/* ==========================================================
   Oak & Origin — style.css
   ========================================================== */

/* ---------- Base (minimal) ---------- */
:root {
  --oo-header-h: 72px;
  --oo-btn: 40px;
  --oo-mark: 44px;
  --oo-radius: 6px;
  --oo-container: 1560px;
  --oo-gutter: clamp(14px, 1.8vw, 24px);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-padding-top: var(--oo-header-h); }

body {
  margin: 0;
  background: var(--bg-main);
  color: var(--text-main);
  font-family: var(--font-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body.oo-menu-open { overflow: hidden; }

a { color: inherit; }

:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 3px;
}

.oo-header :focus-visible { outline-color: var(--nav-focus); }

/* ---------- Icons (thin line, matches DM Sans) ---------- */
.oo-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.oo-icon {
  display: block;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.oo-chev {
  width: 12px;
  height: 12px;
  stroke-width: 2;
  transition: transform 0.2s ease;
}

/* ---------- Header ---------- */
.oo-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--nav-bg);
  color: var(--nav-text);
  border-bottom: 1px solid var(--nav-border);
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

/* Overlay mode: floats over the hero, transparent until scrolled */
.oo-header--overlay {
  position: fixed;
  inset-inline: 0;
  inset-block-start: 0;
}

.oo-header--overlay:not(.is-solid) {
  background: transparent;
  border-bottom-color: transparent;
}

/* Soft top scrim keeps cream text readable over any hero image */
.oo-header--overlay:not(.is-solid)::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-start: 0;
  height: calc(100% + 32px);
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0));
  pointer-events: none;
  z-index: -1;
}

.oo-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  max-width: var(--oo-container);
  height: var(--oo-header-h);
  margin-inline: auto;
  padding-inline: var(--oo-gutter);
}

/* ---------- Brand (filled logo box + text) ---------- */
.oo-brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  color: var(--nav-text);
  text-decoration: none;
}

.oo-brand__mark {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: var(--oo-btn);
  height: var(--oo-btn);
  border: 1px solid var(--nav-btn-border);
  border-radius: 50%;
  background: transparent;
  color: var(--nav-text);
}

.oo-brand__mark .oo-icon {
  width: 24px;
  height: 24px;
}

.oo-brand__text {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.oo-brand__name {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--nav-text);
}

.oo-brand__sub {
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--nav-muted);
}

/* ---------- Desktop navigation ---------- */
.oo-nav { margin-inline: auto; }

.oo-nav__list {
  display: flex;
  align-items: center;
  gap: clamp(20px, 2.4vw, 44px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.oo-nav__item { position: relative; }

.oo-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 0;
  border: 0;
  background: linear-gradient(currentColor, currentColor) 50% calc(100% - 4px) / 0 1px no-repeat;
  color: var(--nav-text);
  font: 500 0.75rem/1 var(--font-body);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-size 0.25s ease, color 0.2s ease;
}

.oo-nav__link.is-active { background-size: 100% 1px; }

.oo-nav__toggle[aria-expanded="true"] .oo-chev { transform: rotate(180deg); }

/* Dropdown */
.oo-dropdown {
  position: absolute;
  inset-block-start: calc(100% + 14px);
  inset-inline-start: -16px;
  min-width: 190px;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: var(--nav-bg);
  border: 1px solid var(--nav-border);
  border-radius: var(--oo-radius);
  box-shadow: var(--nav-shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}

/* Hover bridge so the pointer can cross the gap */
.oo-dropdown::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-start: -16px;
  height: 16px;
}

.oo-nav__item.is-open .oo-dropdown {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.oo-dropdown__link {
  display: block;
  padding: 12px 14px;
  border-radius: 3px;
  color: var(--nav-muted);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-align: start;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.2s ease, background-color 0.2s ease;
}

.oo-dropdown__link:active { background: rgba(247, 244, 238, 0.06); }

.oo-dropdown__link.is-active {
  color: var(--nav-text);
  font-weight: 700;
}

/* ---------- Utility buttons (themed, square) ---------- */
.oo-tools {
  display: flex;
  align-items: center;
  gap: 8px;
}

.oo-btn {
  display: inline-grid;
  place-items: center;
  width: var(--oo-btn);
  height: var(--oo-btn);
  padding: 0;
  border: 1px solid var(--nav-btn-border);
  border-radius: 50%;
  background: transparent;
  color: var(--nav-text);
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.oo-btn:active,
.oo-btn[aria-pressed="true"],
.oo-btn.is-active {
  background: var(--nav-text);
  border-color: var(--nav-text);
  color: var(--nav-bg);
}

/* Theme icon swap: moon in light mode, sun in dark mode */
.oo-btn .oo-icon--sun { display: none; }
[data-theme="dark"] .oo-btn .oo-icon--moon { display: none; }
[data-theme="dark"] .oo-btn .oo-icon--sun { display: block; }

/* ---------- Hamburger / close (plain icon, no box) ---------- */
.oo-burger {
  display: none;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-inline-end: -10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--nav-text);
  cursor: pointer;
  transition: color 0.2s ease;
}

.oo-burger .oo-icon {
  width: 36px;
  height: 36px;
}

.oo-burger .oo-icon--close { display: none; }
.oo-burger[aria-expanded="true"] .oo-icon--bars { display: none; }
.oo-burger[aria-expanded="true"] .oo-icon--close { display: block; }

/* ---------- Mobile / tablet panel (hidden on desktop) ---------- */
.oo-menu { display: none; }

@keyframes oo-menu-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes oo-menu-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}

/* Perfectly centred nav on wide desktops */
@media (min-width: 1280px) {
  .oo-header__inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
  }
  .oo-nav { margin-inline: 0; justify-self: center; }
  .oo-tools { justify-self: end; }
}

/* Hover effects only where hover really exists */
@media (hover: hover) and (pointer: fine) {
  .oo-nav__link:hover { background-size: 100% 1px; color: var(--nav-hover); }
  .oo-dropdown__link:hover { color: var(--nav-text); background: rgba(247, 244, 238, 0.06); }
  .oo-btn:hover {
    background: var(--nav-text);
    border-color: var(--nav-text);
    color: var(--nav-bg);
  }
  .oo-burger:hover { color: var(--nav-hover); }
}

@media (max-width: 1024px) {
  :root { --oo-header-h: 64px; }

  .oo-nav,
  .oo-tools { display: none; }

  .oo-burger { display: inline-grid; }

  .oo-menu {
    position: fixed;
    inset-inline: 0;
    inset-block-start: var(--oo-header-h);
    inset-block-end: 0;
    flex-direction: column;
    background-color: var(--nav-bg);
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.3));
    border-top: 1px solid var(--nav-border);
  }

  .oo-menu.is-open {
    display: flex;
    animation: oo-menu-fade 0.25s ease both;
  }

  .oo-menu__nav {
    flex: 1;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: clamp(8px, 3vh, 28px) clamp(20px, 5vw, 40px) 12px;
  }

  .oo-menu__list {
    max-width: 560px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
  }

  .oo-menu__item + .oo-menu__item { border-top: 1px solid var(--nav-border); }

  /* Staggered entrance */
  .oo-menu.is-open .oo-menu__item { animation: oo-menu-in 0.45s ease both; }
  .oo-menu.is-open .oo-menu__item:nth-child(2) { animation-delay: 0.05s; }
  .oo-menu.is-open .oo-menu__item:nth-child(3) { animation-delay: 0.1s; }
  .oo-menu.is-open .oo-menu__item:nth-child(4) { animation-delay: 0.15s; }
  .oo-menu.is-open .oo-menu__item:nth-child(5) { animation-delay: 0.2s; }
  .oo-menu.is-open .oo-menu__tools { animation: oo-menu-in 0.45s 0.28s ease both; }

  .oo-menu__link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    min-height: 64px;
    padding: 18px 0;
    border: 0;
    background: transparent;
    color: var(--nav-text);
    font: 500 0.9375rem/1.2 var(--font-body);
    letter-spacing: 0.22em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.2s ease;
  }

  .oo-menu__link:active { color: var(--nav-hover); }

  .oo-menu__item.is-open .oo-menu__toggle .oo-chev { transform: rotate(180deg); }

  /* Home submenu: soft inset panel */
  .oo-menu__sub {
    display: none;
    margin: 0 0 16px;
    padding: 4px 14px;
    list-style: none;
    background: rgba(247, 244, 238, 0.06);
    border-radius: var(--oo-radius);
  }

  .oo-menu__item.is-open .oo-menu__sub {
    display: block;
    animation: oo-menu-in 0.3s ease both;
  }

  .oo-menu__sub li + li { border-top: 1px solid var(--nav-border); }

  .oo-menu__sublink {
    position: relative;
    display: block;
    padding: 15px 0;
    color: var(--nav-muted);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s ease;
  }

  .oo-menu__sublink:active { color: var(--nav-text); }

  /* Active item: bold text + full-width horizontal bottom line */
  .oo-menu__link.is-active,
  .oo-menu__sublink.is-active {
    color: var(--nav-text);
    font-weight: 700;
  }

  .oo-menu__link.is-active::after,
  .oo-menu__sublink.is-active::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    inset-block-end: -1px;
    height: 2px;
    background: var(--nav-text);
  }

  /* Home itself shows no line when one of its children is the active page */
  .oo-menu__toggle.is-active::after { display: none; }

  .oo-menu__tools {
    display: flex;
    justify-content: center;
    gap: 14px;
    padding: 16px 16px max(16px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--nav-border);
    background: var(--nav-bg);
  }
}

@media (max-width: 420px) {
  .oo-header__inner { gap: 12px; }
  .oo-brand { gap: 10px; }
  .oo-brand__mark { width: 40px; height: 40px; }
  .oo-brand__mark .oo-icon { width: 22px; height: 22px; }
  .oo-brand__name { font-size: 1.0625rem; letter-spacing: 0.14em; }
  .oo-brand__sub { font-size: 0.5938rem; letter-spacing: 0.14em; }
}

@media (max-width: 360px) {
  .oo-brand__name { font-size: 1rem; }
  .oo-brand__sub { font-size: 0.5625rem; letter-spacing: 0.1em; }
}

@media (prefers-reduced-motion: reduce) {
  .oo-header,
  .oo-header * {
    transition: none !important;
    animation: none !important;
  }
}







/* ==========================================================
   Oak & Origin — home.css (homepage sections only)
   ========================================================== */
.oo-home {
  --oo-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --oo-content: 1280px;
  --oo-pad: clamp(20px, 4.5vw, 64px);
  --oo-space: clamp(64px, 9vw, 128px);
  overflow-x: clip;
}
[dir="rtl"] .oo-home { --oo-serif: var(--font-body); }

.oo-wrap {
  width: 100%;
  max-width: calc(var(--oo-content) + var(--oo-pad) * 2);
  margin-inline: auto;
  padding-inline: var(--oo-pad);
}
.oo-sec { padding-block: var(--oo-space); }
.oo-sec--soft { background: var(--bg-soft); }

/* ---------- Shared type ---------- */
.oo-eyebrow {
  margin: 0 0 16px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.oo-eyebrow--light { color: rgba(247, 244, 238, 0.8); }

.oo-h2 {
  margin: 0;
  font-family: var(--oo-serif);
  font-weight: 500;
  font-size: clamp(2rem, 4.2vw, 3.5rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  color: var(--text-main);
  text-wrap: balance;
}
.oo-lead {
  max-width: 54ch;
  margin: 20px 0 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  color: var(--text-muted);
}
.oo-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: clamp(32px, 5vw, 56px);
}

/* ---------- Links & buttons ---------- */
.oo-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-block: 6px;
  border-bottom: 1px solid currentColor;
  color: var(--text-main);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
}
.oo-arrow { width: 16px; height: 16px; transition: translate 0.25s ease; }
[dir="rtl"] .oo-arrow { transform: scaleX(-1); }

.oo-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 28px;
  border: 1px solid var(--accent);
  border-radius: var(--oo-radius);
  background: var(--accent);
  color: var(--accent-contrast);
  font: 500 0.75rem/1 var(--font-body);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
.oo-cta--ghost { background: transparent; color: var(--text-main); }
.oo-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 32px; }
.oo-actions--center { justify-content: center; }

@media (hover: hover) and (pointer: fine) {
  .oo-cta:hover { opacity: 0.88; }
  .oo-cta--ghost:hover { background: var(--accent); color: var(--accent-contrast); opacity: 1; }
  .oo-link:hover .oo-arrow { translate: 4px 0; }
  [dir="rtl"] .oo-link:hover .oo-arrow,
  [dir="rtl"] .oo-tile:hover .oo-arrow { translate: -4px 0; }
}

/* ---------- 1. Hero ---------- */
.oo-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  padding-block: clamp(56px, 9vw, 120px);
  background: #382F29;
  color: #F7F4EE;
  isolation: isolate;
}
.oo-hero__media { position: absolute; inset: 0; z-index: -2; }
.oo-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.oo-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(to right, rgba(26, 20, 16, 0.78), rgba(26, 20, 16, 0.34) 52%, rgba(26, 20, 16, 0.04) 82%),
    linear-gradient(to top, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.1) 60%);
}
[dir="rtl"] .oo-hero::after {
  background:
    linear-gradient(to left, rgba(26, 20, 16, 0.78), rgba(26, 20, 16, 0.34) 52%, rgba(26, 20, 16, 0.04) 82%),
    linear-gradient(to top, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.1) 60%);
}
.oo-hero__content { max-width: 640px; }
.oo-hero__title {
  margin: 0;
  font-family: var(--oo-serif);
  font-weight: 500;
  font-size: clamp(2.5rem, 6.4vw, 5.5rem);
  line-height: 1.02;
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.oo-hero__text {
  max-width: 48ch;
  margin: 24px 0 0;
  font-size: clamp(1rem, 1.4vw, 1.1875rem);
  color: rgba(247, 244, 238, 0.88);
}
.oo-hero .oo-cta { --accent: #C9A77C; --accent-contrast: #241A14; border-color: #C9A77C; }
.oo-hero .oo-cta--ghost { color: #F7F4EE; background: rgba(36, 26, 20, 0.62); border-color: #F7F4EE; }
.oo-hero :focus-visible,
.oo-tile:focus-visible,
.oo-era a:focus-visible { outline-color: #F7F4EE; }

/* ---------- Why Oak & Origin (framed image + list + quote) ---------- */
.oo-wy {
  --wy-bg: #211A16;
  --wy-text: #F7F4EE;
  --wy-muted: rgba(247, 244, 238, 0.72);
  --wy-gold: #C9A77C;
  --wy-line: rgba(216, 204, 188, 0.22);
  --wy-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  padding-block: clamp(64px, 9vw, 128px);
  background: var(--wy-bg);
  color: var(--wy-text);
  overflow-x: clip;
}
[data-theme="dark"] .oo-wy { --wy-bg: #0F0B09; }
[dir="rtl"] .oo-wy { --wy-serif: var(--font-body); }

.oo-wy__wrap {
  width: 100%;
  max-width: calc(1200px + var(--oo-pad, 64px) * 2);
  margin-inline: auto;
  padding-inline: var(--oo-pad, clamp(20px, 4.5vw, 64px));
}

.oo-wy__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 6vw, 88px);
  align-items: center;
}

/* Framed image */
.oo-wy__media {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--wy-line);
  border-radius: var(--oo-radius, 6px);
  background: rgba(247, 244, 238, 0.05);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
  aspect-ratio: 10 / 11;
}
.oo-wy__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s ease;
}

/* Content */
.oo-wy__title {
  margin: 0;
  font-family: var(--wy-serif);
  font-size: clamp(2rem, 3.6vw, 3.25rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--wy-text);
  text-wrap: balance;
}
.oo-wy__lead {
  max-width: 52ch;
  margin: 22px 0 0;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--wy-muted);
}

/* Icon list with dividers */
.oo-wy__list {
  margin: clamp(24px, 3.5vw, 36px) 0 0;
  padding: 0;
  list-style: none;
}
.oo-wy__list li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-block: 14px;
  border-bottom: 1px solid var(--wy-line);
  font-size: 1rem;
  font-weight: 600;
  color: var(--wy-text);
  transition: padding-inline-start 0.3s ease;
}
.oo-wy__list li:first-child { border-top: 1px solid var(--wy-line); }
.oo-wy__list .oo-icon {
  flex: none;
  width: 20px;
  height: 20px;
  color: var(--wy-gold);
  stroke-width: 1.7;
}

/* Quote */
.oo-wy__quote {
  margin: clamp(28px, 4vw, 44px) 0 0;
  padding-block: 4px;
  padding-inline-start: 22px;
  border-inline-start: 2px solid var(--wy-gold);
}
.oo-wy__quote p {
  margin: 0;
  max-width: 40ch;
  font-family: var(--wy-serif);
  font-size: clamp(1.25rem, 1.9vw, 1.6rem);
  font-weight: 500;
  line-height: 1.45;
  color: var(--wy-gold);
}

@media (hover: hover) and (pointer: fine) {
  .oo-wy__media:hover img { transform: scale(1.04); }
  .oo-wy__list li:hover { padding-inline-start: 8px; }
}

/* Tablet / mobile: image on top */
@media (max-width: 900px) {
  .oo-wy__grid { grid-template-columns: 1fr; }
  .oo-wy__media { aspect-ratio: 4 / 3; }
}

@media (prefers-reduced-motion: reduce) {
  .oo-wy__media img, .oo-wy__list li { transition: none; }
}



/* ---------- 3. SHOP CARDS — RESPONSIVE 4 x 2 ---------- */

.oo-shop {
  min-height: 120vh;
  min-height: 120svh;
  display: flex;
  align-items: center;
  padding-block: clamp(32px, 5vh, 64px);
  margin-block: clamp(24px, 3vw, 48px);
  border-top: 1px solid var(--border-color);
  background: var(--bg-main);
}

.oo-shop .oo-wrap {
  width: 100%;
  min-width: 0;
}

.oo-shop .oo-head {
  margin-bottom: clamp(18px, 3vh, 32px);
}

/* Desktop: 4 columns, 2 rows for 8 products */
.oo-shop__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 3vh, 34px) clamp(14px, 1.6vw, 24px);
  align-items: start;
}

.oo-card {
  min-width: 0;
  width: 100%;
}

/* Product image */
.oo-card__media {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--oo-radius);
  background: var(--border-color);
}

.oo-card__media a {
  display: block;
  width: 100%;
  height: 100%;
}

.oo-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.6s ease;
}

/* Wishlist */
.oo-card__wish {
  position: absolute;
  inset-block-start: 10px;
  inset-inline-end: 10px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(247, 244, 238, 0.92);
  color: #382F29;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}

.oo-card__wish .oo-icon {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.oo-card__wish[aria-pressed="true"] {
  background: #382F29;
  color: #F7F4EE;
}

.oo-card__wish[aria-pressed="true"] .oo-icon {
  fill: currentColor;
}

/* Product information and cart button */
.oo-card__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-top: 11px;
}

.oo-card__info {
  flex: 1 1 auto;
  min-width: 0;
}

.oo-card__name {
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(0.68rem, 0.78vw, 0.8125rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  color: var(--text-main);
  overflow-wrap: anywhere;
}

.oo-card__name a {
  color: inherit;
  text-decoration: none;
}

.oo-card__price {
  margin: 5px 0 0;
  font-size: clamp(0.875rem, 1vw, 1rem);
  line-height: 1.4;
  color: var(--text-muted);
}

/* Keep the button compact on four-column desktop */
.oo-card__add {
  flex: 0 0 auto;
  padding: 9px 10px;
  border: 1px solid var(--accent);
  border-radius: var(--oo-radius);
  background: transparent;
  color: var(--text-main);
  font-family: var(--font-body);
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  line-height: 1.4;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}

.oo-card__add.is-added {
  background: var(--accent);
  color: var(--accent-contrast);
}

.oo-card__wish:focus-visible,
.oo-card__add:focus-visible,
.oo-card__name a:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 3px;
}

/* Hover effects */
@media (hover: hover) and (pointer: fine) {
  .oo-card__add:hover {
    background: var(--accent);
    color: var(--accent-contrast);
  }

  .oo-card:hover .oo-card__media img {
    transform: scale(1.05);
  }
}

/* Accessible cart status */
.oo-shop__status {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

/* ---------- TABLET: 2 COLUMNS ---------- */
@media (max-width: 1024px) {
  .oo-shop {
    min-height: 0;
    display: block;
    padding-block: var(--oo-space);
  }

  .oo-shop__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 18px;
  }

  .oo-card__media {
    aspect-ratio: 1 / 1;
  }

  .oo-card__name {
    font-size: 0.78rem;
  }

  .oo-card__add {
    padding: 9px 12px;
    font-size: 0.66rem;
  }
}

/* ---------- MOBILE: 1 COLUMN ---------- */
@media (max-width: 519px) {
  .oo-shop__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .oo-card__media {
    aspect-ratio: 1 / 1;
  }

  .oo-card__body {
    align-items: center;
    gap: 12px;
    padding-top: 11px;
  }

  .oo-card__name {
    font-size: 0.8125rem;
    letter-spacing: 0.045em;
  }

  .oo-card__price {
    font-size: 1rem;
  }

  .oo-card__add {
    padding: 9px 14px;
    font-size: 0.6875rem;
  }
}

/* Small mobile: prevent product details from overflowing */
@media (max-width: 360px) {
  .oo-card__body {
    gap: 8px;
  }

  .oo-card__add {
    padding: 8px 9px;
    font-size: 0.6rem;
    letter-spacing: 0.04em;
  }
}

/* RTL */
[dir="rtl"] .oo-card__name,
[dir="rtl"] .oo-card__add {
  letter-spacing: 0;
  text-transform: none;
}

/* ---------- 5. Showroom video ---------- */
.oo-film {
  padding-block: clamp(64px, 9vw, 128px);
  background: var(--bg-main);
  border-top: 1px solid var(--border-color);
}

.oo-film__head {
  max-width: 720px;
  margin-inline: auto;
  margin-bottom: clamp(32px, 5vw, 56px);
  text-align: center;
}
.oo-film__title { margin-inline: auto; }
.oo-film__title em {
  font-style: italic;
  color: #8A6B43;
}
[data-theme="dark"] .oo-film__title em { color: #D8B98A; }

.oo-film__rule {
  display: block;
  width: 64px;
  height: 1px;
  margin: 22px auto 24px;
  background: #8A6B43;
}
[data-theme="dark"] .oo-film__rule { background: #D8B98A; }

.oo-film__head .oo-lead { margin-inline: auto; max-width: 54ch; }

/* Video frame */
.oo-film__frame {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #211A16;
  box-shadow: var(--shadow-soft);
}
.oo-film__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Play / pause button */
.oo-film__toggle {
  position: absolute;
  inset-block-end: clamp(14px, 2vw, 24px);
  inset-inline-end: clamp(14px, 2vw, 24px);
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid rgba(247, 244, 238, 0.6);
  border-radius: 50%;
  background: rgba(36, 26, 20, 0.6);
  backdrop-filter: blur(6px);
  color: #F7F4EE;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.oo-film__toggle:hover { background: rgba(36, 26, 20, 0.85); transform: scale(1.06); }
.oo-film__toggle:focus-visible { outline: 2px solid #F7F4EE; outline-offset: 3px; }
.oo-film__ico { width: 20px; height: 20px; fill: currentColor; stroke: none; }
.oo-film__ico--pause { display: none; }
.oo-film__toggle[aria-pressed="true"] .oo-film__ico--play { display: none; }
.oo-film__toggle[aria-pressed="true"] .oo-film__ico--pause { display: block; }

@media (max-width: 640px) {
  .oo-film__frame { aspect-ratio: 4 / 3; }
  .oo-film__toggle { width: 44px; height: 44px; }
}

[dir="rtl"] .oo-film__title { letter-spacing: 0; }


/* ---------- 6. Process ---------- */
.oo-flow {
  --flow-gold: #D8B98A;
  --flow-text: #F7F4EE;
  --flow-muted: rgba(247, 244, 238, 0.72);
  --flow-line: rgba(216, 185, 138, 0.35);
  --flow-size: 76px;
  padding-block: clamp(72px, 9vw, 128px);
  background: #382F29;
  color: var(--flow-text);
}

/* Heading */
.oo-flow__head {
  max-width: 720px;
  margin-inline: auto;
  margin-bottom: clamp(48px, 7vw, 88px);
  text-align: center;
}
.oo-flow__title { color: var(--flow-text); margin-inline: auto; }
.oo-flow__title em { font-style: italic; color: var(--flow-gold); }
.oo-flow__lead {
  max-width: 54ch;
  margin: 20px auto 0;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--flow-muted);
}

/* Steps */
.oo-flow__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0 clamp(12px, 2vw, 28px);
}
.oo-flow__step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Connector line (previous circle centre -> this circle centre) */
.oo-flow__step:not(:first-child)::before {
  content: "";
  position: absolute;
  inset-block-start: calc(var(--flow-size) / 2);
  inset-inline-start: -50%;
  width: 100%;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--flow-line) 20%, var(--flow-line) 80%, transparent);
}
[dir="rtl"] .oo-flow__step:not(:first-child)::before {
  background: linear-gradient(to left, transparent, var(--flow-line) 20%, var(--flow-line) 80%, transparent);
}

/* Numbered circle */
.oo-flow__num {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: var(--flow-size);
  height: var(--flow-size);
  border: 1px solid var(--flow-gold);
  border-radius: 50%;
  background: #382F29;
  color: var(--flow-gold);
  font-family: var(--oo-serif);
  font-size: 1.75rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  box-shadow: 0 0 0 8px #382F29;
  transition: background-color 0.35s ease, color 0.35s ease, transform 0.35s ease;
}
.oo-flow__name {
  margin: 26px 0 10px;
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--flow-text);
}
.oo-flow__text {
  max-width: 24ch;
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--flow-muted);
}

@media (hover: hover) and (pointer: fine) {
  .oo-flow__step:hover .oo-flow__num {
    background: var(--flow-gold);
    color: #382F29;
    transform: translateY(-4px);
  }
}

/* Tablet / mobile: vertical timeline */
@media (max-width: 900px) {
  .oo-flow { --flow-size: 60px; }
  .oo-flow__list {
    grid-template-columns: 1fr;
    gap: 36px;
    position: relative;
    max-width: 520px;
    margin-inline: auto;
  }
  .oo-flow__list::before {
    content: "";
    position: absolute;
    inset-block: calc(var(--flow-size) / 2);
    inset-inline-start: calc(var(--flow-size) / 2);
    width: 1px;
    background: var(--flow-line);
  }
  .oo-flow__step:not(:first-child)::before { display: none; }
  .oo-flow__step {
    display: grid;
    grid-template-columns: var(--flow-size) 1fr;
    column-gap: 22px;
    align-items: start;
    text-align: start;
  }
  .oo-flow__num { grid-row: 1 / span 2; font-size: 1.375rem; }
  .oo-flow__name { margin: 8px 0 6px; align-self: end; }
  .oo-flow__text { max-width: none; }
}

[dir="rtl"] .oo-flow__name { letter-spacing: 0; text-transform: none; }


/* ---------- 7. Reviews ---------- */
.oo-reviews {
  padding-block: clamp(64px, 9vw, 128px);
  background: var(--bg-main);
}
.oo-reviews__head {
  max-width: 680px;
  margin-inline: auto;
  margin-bottom: clamp(36px, 5vw, 64px);
  text-align: center;
}
.oo-reviews__head .oo-h2 { margin-inline: auto; }
.oo-reviews__head .oo-h2 em { font-style: italic; color: #8A6B43; }
[data-theme="dark"] .oo-reviews__head .oo-h2 em { color: #D8B98A; }
.oo-reviews__head .oo-lead { margin-inline: auto; max-width: 48ch; }

.oo-reviews__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 2vw, 28px);
  align-items: stretch;
}

/* Card */
.oo-review {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: clamp(28px, 3vw, 44px);
  border: 1px solid var(--border-color);
  background: var(--bg-main);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
/* Decorative quote mark */
.oo-review::before {
  content: "\201C";
  position: absolute;
  inset-block-start: 14px;
  inset-inline-end: 24px;
  font-family: var(--oo-serif);
  font-size: 5.5rem;
  line-height: 1;
  color: var(--border-color);
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .oo-review:hover { transform: translateY(-6px); box-shadow: var(--shadow-soft); }
}

/* Stars */
.oo-review__stars { display: flex; gap: 4px; margin-bottom: 22px; }
.oo-review__stars .oo-icon {
  width: 16px;
  height: 16px;
  fill: #B8924F;
  stroke: none;
}

/* Quote */
.oo-review__quote { margin: 0 0 28px; flex: 1; }
.oo-review__quote p {
  margin: 0;
  font-family: var(--oo-serif);
  font-size: clamp(1.15rem, 1.5vw, 1.35rem);
  font-weight: 500;
  line-height: 1.55;
  color: var(--text-main);
}

/* Author */
.oo-review__author {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 22px;
  border-top: 1px solid var(--border-color);
}
.oo-review__avatar {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--accent-contrast);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}
.oo-review__who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.oo-review__name { font-size: 0.9375rem; font-weight: 600; color: var(--text-main); }
.oo-review__meta { font-size: 0.8125rem; color: var(--text-muted); }

/* Highlighted middle card */
.oo-review--accent {
  background: #382F29;
  border-color: #382F29;
  color: #F7F4EE;
}
.oo-review--accent::before { color: rgba(216, 185, 138, 0.25); }
.oo-review--accent .oo-review__quote p,
.oo-review--accent .oo-review__name { color: #F7F4EE; }
.oo-review--accent .oo-review__meta { color: rgba(247, 244, 238, 0.7); }
.oo-review--accent .oo-review__author { border-top-color: rgba(216, 185, 138, 0.3); }
.oo-review--accent .oo-review__avatar { background: #D8B98A; color: #382F29; }
.oo-review--accent .oo-review__stars .oo-icon { fill: #D8B98A; }
[data-theme="dark"] .oo-review--accent { background: #2D2520; border-color: rgba(216, 204, 188, 0.4); }

/* Tablet / mobile */
@media (max-width: 1024px) {
  .oo-reviews__grid { grid-template-columns: 1fr; max-width: 640px; margin-inline: auto; }
}

[dir="rtl"] .oo-review__avatar { letter-spacing: 0; }






/* ---------- 8. Final CTA ---------- */
.oo-final {
  background: radial-gradient(ellipse at 50% 0%, rgba(216, 204, 188, 0.4), rgba(216, 204, 188, 0) 62%), var(--bg-soft);
  border-top: 1px solid var(--border-color);
  text-align: center;
}
.oo-final__inner { max-width: 760px; margin-inline: auto; }
.oo-final__title { font-size: clamp(2.25rem, 5.4vw, 4.5rem); }
.oo-final .oo-lead { margin-inline: auto; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .oo-collections__grid { grid-template-columns: 1fr 1fr; grid-auto-rows: clamp(200px, 32vw, 300px); }
  .oo-featured__grid { grid-template-columns: repeat(2, 1fr); }
  .oo-patina__grid { grid-template-columns: 1fr; }
  .oo-patina__card { margin: -64px 20px 0; }
  .oo-patina__media { aspect-ratio: 4 / 3; }
  .oo-restore__grid,
  .oo-story__grid { grid-template-columns: 1fr; }
  .oo-story__media { margin-bottom: 40px; }
  .oo-story__small { inset-inline-start: auto; inset-inline-end: 16px; inset-block-end: -32px; }
}
@media (max-width: 640px) {
  .oo-collections__grid { grid-template-columns: 1fr; grid-auto-rows: 260px; }
  .oo-tile--tall { grid-row: auto; }
  .oo-tile--wide { grid-column: auto; }
  .oo-eras__list { grid-template-columns: 1fr; }
  .oo-patina__card { margin-inline: 12px; }
  .oo-restore__mosaic { height: 420px; }
}
@media (max-width: 519px) {
  .oo-featured__grid { grid-template-columns: 1fr; }
  .oo-actions .oo-cta { flex: 1 1 100%; }
}

/* ---------- RTL typography ---------- */
[dir="rtl"] .oo-eyebrow,
[dir="rtl"] .oo-link,
[dir="rtl"] .oo-cta,
[dir="rtl"] .oo-piece__badge,
[dir="rtl"] .oo-piece__price { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-h2,
[dir="rtl"] .oo-hero__title { letter-spacing: 0; }

/* ---------- Animation fallback (used only when AOS is not loaded) ---------- */
.oo-aos-fallback .oo-home [data-aos] { opacity: 0; transition: opacity 0.7s ease, transform 0.7s ease; }
.oo-aos-fallback .oo-home [data-aos="fade-up"] { transform: translateY(28px); }
.oo-aos-fallback .oo-home [data-aos="fade-down"] { transform: translateY(-28px); }
.oo-aos-fallback .oo-home [data-aos="fade-right"] { transform: translateX(-28px); }
.oo-aos-fallback .oo-home [data-aos="fade-left"] { transform: translateX(28px); }
[dir="rtl"].oo-aos-fallback .oo-home [data-aos="fade-right"] { transform: translateX(28px); }
[dir="rtl"].oo-aos-fallback .oo-home [data-aos="fade-left"] { transform: translateX(-28px); }
.oo-aos-fallback .oo-home [data-aos].is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .oo-home *, .oo-home *::before, .oo-home *::after { transition: none !important; animation: none !important; }
  .oo-home [data-aos] { opacity: 1 !important; transform: none !important; }
}

/* ==========================================================
   Footer, back-to-top, progress bar & motion
   ========================================================== */

/* ---------- Smooth scroll ---------- */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* ---------- Scroll progress bar ---------- */
.oo-progress {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  height: 3px;
  z-index: 1100;
  pointer-events: none;
}
.oo-progress__bar {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #B8924F, #D8B98A);
  transform: scaleX(0);
  transform-origin: left center;
}
[dir="rtl"] .oo-progress__bar { transform-origin: right center; }

/* ---------- Hero slow zoom ---------- */
@media (prefers-reduced-motion: no-preference) {
  .oo-hero__media img { animation: oo-kenburns 18s ease-out both; }
}
@keyframes oo-kenburns {
  from { transform: scale(1.12); }
  to   { transform: scale(1); }
}

/* ---------- Button lift ---------- */
.oo-cta {
  transition: transform 0.3s ease, background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .oo-cta:hover { transform: translateY(-3px); }
}

/* ---------- Footer ---------- */
.oo-footer {
  --ft-bg: #382F29;
  --ft-text: #F7F4EE;
  --ft-muted: rgba(247, 244, 238, 0.7);
  --ft-line: rgba(216, 185, 138, 0.25);
  --ft-gold: #D8B98A;
  --oo-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  position: relative;
  background: var(--ft-bg);
  color: var(--ft-text);
  overflow: hidden;
}
[data-theme="dark"] .oo-footer { --ft-bg: #17110E; }
[dir="rtl"] .oo-footer { --oo-serif: var(--font-body); }

.oo-footer a { color: inherit; text-decoration: none; }
.oo-footer ul { list-style: none; margin: 0; padding: 0; }
.oo-footer :focus-visible { outline-color: var(--ft-gold); }

.oo-footer__wrap {
  width: 100%;
  max-width: calc(1280px + clamp(20px, 4.5vw, 64px) * 2);
  margin-inline: auto;
  padding-inline: clamp(20px, 4.5vw, 64px);
}
.oo-footer__sr {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* Newsletter strip */
.oo-footer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px 64px;
  flex-wrap: wrap;
  padding-block: clamp(48px, 7vw, 88px);
  border-bottom: 1px solid var(--ft-line);
}
.oo-footer__eyebrow {
  margin: 0 0 12px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ft-gold);
}
.oo-footer__big {
  margin: 0;
  font-family: var(--oo-serif);
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-weight: 500;
  line-height: 1.1;
}
.oo-footer__big em { font-style: italic; color: var(--ft-gold); }

.oo-footer__signup { width: min(100%, 460px); }
.oo-footer__form {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ft-gold);
  transition: border-color 0.2s ease;
}
.oo-footer__form:focus-within { border-bottom-color: var(--ft-text); }
.oo-footer__form input {
  flex: 1;
  min-width: 0;
  padding: 10px 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ft-text);
  font: inherit;
  font-size: 1rem;
}
.oo-footer__form input::placeholder { color: var(--ft-muted); }
.oo-footer__form button {
  flex-shrink: 0;
  padding: 11px 24px;
  border: 0;
  border-radius: var(--oo-radius);
  background: var(--ft-gold);
  color: #382F29;
  font: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 0.25s ease, background-color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .oo-footer__form button:hover { background: #F7F4EE; transform: translateY(-2px); }
}
.oo-footer__msg { min-height: 1.4em; margin: 10px 0 0; font-size: 0.875rem; color: var(--ft-muted); }
.oo-footer__msg.is-ok { color: var(--ft-gold); }
.oo-footer__msg.is-error { color: #F2B8A8; }

/* Columns */
.oo-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.3fr;
  gap: 40px clamp(24px, 4vw, 64px);
  padding-block: clamp(40px, 6vw, 72px);
}
.oo-footer__brand { display: inline-flex; }
.oo-footer__name {
  display: block;
  font-family: var(--oo-serif);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.1;
}
.oo-footer__sub {
  display: block;
  margin-top: 6px;
  font-size: 0.6875rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ft-gold);
}
.oo-footer__about { max-width: 34ch; margin: 18px 0 0; font-size: 0.9375rem; line-height: 1.7; color: var(--ft-muted); }

.oo-footer__title {
  margin: 0 0 20px;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ft-gold);
}
.oo-footer__list { display: grid; gap: 12px; }
.oo-footer__list a,
.oo-footer__list span { font-size: 0.9375rem; color: var(--ft-muted); }

/* Animated underline links */
.oo-footer__list a {
  display: inline-block;
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
  transition: color 0.25s ease, background-size 0.35s ease, translate 0.25s ease;
}
[dir="rtl"] .oo-footer__list a { background-position: 100% 100%; }
@media (hover: hover) and (pointer: fine) {
  .oo-footer__list a:hover { color: var(--ft-text); background-size: 100% 1px; translate: 4px 0; }
  [dir="rtl"] .oo-footer__list a:hover { translate: -4px 0; }
}

.oo-footer__list--info li { display: flex; align-items: flex-start; gap: 12px; }
.oo-footer__list--info i {
  flex-shrink: 0;
  width: 16px;
  margin-top: 4px;
  text-align: center;
  font-size: 0.875rem;
  color: var(--ft-gold);
}

/* Bottom bar */
.oo-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 32px;
  padding-block: 24px;
  border-top: 1px solid var(--ft-line);
  font-size: 0.8125rem;
  color: var(--ft-muted);
}
.oo-footer__copy { margin: 0; }
.oo-footer__legal { display: flex; gap: 24px; margin-inline-end: auto; }
.oo-footer__legal a:hover { color: var(--ft-text); }

.oo-footer__social { display: flex; gap: 10px; }
.oo-footer__social a {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--ft-line);
  border-radius: 50%;
  color: var(--ft-text);
  font-size: 0.9375rem;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
@media (hover: hover) and (pointer: fine) {
  .oo-footer__social a:hover {
    background: var(--ft-gold);
    border-color: var(--ft-gold);
    color: #382F29;
    transform: translateY(-3px);
  }
}

@media (max-width: 1024px) {
  .oo-footer__grid { grid-template-columns: 1fr 1fr; }
  .oo-footer__col--brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .oo-footer__grid { grid-template-columns: 1fr; }
  .oo-footer__top { align-items: flex-start; }
  .oo-footer__bottom { flex-direction: column; align-items: flex-start; }
  .oo-footer__legal { margin-inline-end: 0; }
}

[dir="rtl"] .oo-footer__eyebrow,
[dir="rtl"] .oo-footer__sub,
[dir="rtl"] .oo-footer__title,
[dir="rtl"] .oo-footer__form button { letter-spacing: 0; text-transform: none; }

/* ---------- Back to top ---------- */
.oo-top {
  --top-ring: #D8B98A;
  position: fixed;
  inset-block-end: 24px;
  inset-inline-end: 24px;
  z-index: 900;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid #D8B98A;
  border-radius: 50%;
  background: #F7F4EE;
  color: #382F29;
  box-shadow: var(--shadow-soft);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px) scale(0.9);
  transition: opacity 0.35s ease, transform 0.35s ease, visibility 0.35s;
}
[data-theme="dark"] .oo-top { --top-ring: #8A6B43; }
.oo-top.is-visible { opacity: 1; visibility: visible; transform: none; }

.oo-top__ring { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.oo-top__ring circle { fill: none; stroke-width: 2; }
.oo-top__track { stroke: currentColor; opacity: 0.18; }
.oo-top__fill {
  stroke: var(--top-ring);
  stroke-linecap: round;
  stroke-dasharray: 138.23;
  stroke-dashoffset: 138.23;
}
.oo-top__arrow {
  position: relative;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .oo-top.is-visible:hover { transform: translateY(-4px); }
  .oo-top:hover .oo-top__arrow { transform: translateY(-3px); }
}
.oo-top:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 4px; }

@media (max-width: 640px) {
  .oo-top { width: 46px; height: 46px; inset-block-end: 16px; inset-inline-end: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .oo-top, .oo-top__arrow, .oo-footer * { transition: none !important; }
}


/* ==========================================================
   Oak & Origin — home.css (homepage sections only)
   ========================================================== */
.oo-home {
  --oo-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --oo-content: 1280px;
  --oo-pad: clamp(20px, 4.5vw, 64px);
  --oo-space: clamp(64px, 9vw, 128px);
  overflow-x: clip;
}
[dir="rtl"] .oo-home { --oo-serif: var(--font-body); }

.oo-wrap {
  width: 100%;
  max-width: calc(var(--oo-content) + var(--oo-pad) * 2);
  margin-inline: auto;
  padding-inline: var(--oo-pad);
}
.oo-sec { padding-block: var(--oo-space); }
.oo-sec--soft { background: var(--bg-soft); }

/* ---------- Shared type ---------- */
.oo-eyebrow {
  margin: 0 0 16px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.oo-eyebrow--light { color: rgba(247, 244, 238, 0.8); }

.oo-h2 {
  margin: 0;
  font-family: var(--oo-serif);
  font-weight: 500;
  font-size: clamp(2rem, 4.2vw, 3.5rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  color: var(--text-main);
  text-wrap: balance;
}
.oo-lead {
  max-width: 54ch;
  margin: 20px 0 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  color: var(--text-muted);
}
.oo-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: clamp(32px, 5vw, 56px);
}

/* ---------- Links & buttons ---------- */
.oo-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-block: 6px;
  border-bottom: 1px solid currentColor;
  color: var(--text-main);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
}
.oo-arrow { width: 16px; height: 16px; transition: translate 0.25s ease; }
[dir="rtl"] .oo-arrow { transform: scaleX(-1); }

.oo-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 28px;
  border: 1px solid var(--accent);
  border-radius: var(--oo-radius);
  background: var(--accent);
  color: var(--accent-contrast);
  font: 500 0.75rem/1 var(--font-body);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
.oo-cta--ghost { background: transparent; color: var(--text-main); }
.oo-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 32px; }
.oo-actions--center { justify-content: center; }

@media (hover: hover) and (pointer: fine) {
  .oo-cta:hover { opacity: 0.88; }
  .oo-cta--ghost:hover { background: var(--accent); color: var(--accent-contrast); opacity: 1; }
  .oo-link:hover .oo-arrow { translate: 4px 0; }
  [dir="rtl"] .oo-link:hover .oo-arrow,
  [dir="rtl"] .oo-tile:hover .oo-arrow { translate: -4px 0; }
}

/* ---------- Hero background video ---------- */
.oo-hero__media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (min-width: 1024px) {
  .oo-hero__media video { object-position: 56% center; }
}

/* Play / pause button */
.oo-hero__toggle {
  position: absolute;
  inset-block-end: clamp(20px, 3vw, 36px);
  inset-inline-end: clamp(20px, 4.5vw, 64px);
  z-index: 2;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgba(247, 244, 238, 0.6);
  border-radius: 50%;
  background: rgba(36, 26, 20, 0.55);
  backdrop-filter: blur(6px);
  color: #F7F4EE;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.oo-hero__toggle:hover { background: rgba(36, 26, 20, 0.85); transform: scale(1.06); }
.oo-hero__toggle:focus-visible { outline: 2px solid #F7F4EE; outline-offset: 3px; }
.oo-hero__ico { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.oo-hero__ico--pause { display: none; }
.oo-hero__toggle[aria-pressed="true"] .oo-hero__ico--play { display: none; }
.oo-hero__toggle[aria-pressed="true"] .oo-hero__ico--pause { display: block; }

@media (max-width: 640px) {
  .oo-hero__toggle { width: 42px; height: 42px; }
}

/* ---------- Home 2 · Browse collections (centered heading + 4 large cards) ---------- */
.oo-browse {
  --br-bg: #382F29;
  --br-text: #F7F4EE;
  --br-muted: rgba(247, 244, 238, 0.72);
  --br-gold: #D8B98A;
  --br-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  padding-block: clamp(64px, 9vw, 128px);
  background: var(--br-bg);
  color: var(--br-text);
  overflow-x: clip;
}
[data-theme="dark"] .oo-browse { --br-bg: #17110E; }
[dir="rtl"] .oo-browse { --br-serif: var(--font-body); }

/* Stacked layout: heading on top, cards below */
.oo-browse__layout {
  display: flex;
  flex-direction: column;
  gap: clamp(36px, 5vw, 64px);
}

/* ---------- Top: centered intro ---------- */
.oo-browse__intro {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}
.oo-browse__eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0 0 20px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--br-muted);
}
.oo-browse__eyebrow span { color: var(--br-gold); }

.oo-browse__title {
  margin: 0;
  font-family: var(--br-serif);
  font-size: clamp(2.5rem, 5vw, 4.25rem);
  font-weight: 500;
  line-height: 1.08;
  color: var(--br-text);
  text-wrap: balance;
}
.oo-browse__title em { font-style: italic; color: var(--br-gold); }

.oo-browse__text {
  max-width: 56ch;
  margin: 24px auto 32px;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--br-muted);
}

.oo-browse__all {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--br-gold);
  color: var(--br-text);
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  transition: gap 0.3s ease, color 0.2s ease;
}
.oo-browse__all:hover { gap: 16px; color: var(--br-gold); }

/* ---------- Arrows ---------- */
.oo-browse__arrow {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: translate 0.3s ease;
}
[dir="rtl"] .oo-browse__arrow { transform: scaleX(-1); }

/* ---------- Bottom: large cards ---------- */
.oo-browse__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(16px, 2vw, 32px);
}
.oo-browse__card {
  display: block;
  color: inherit;
  text-decoration: none;
}
.oo-browse__media {
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: rgba(247, 244, 238, 0.08);
}
.oo-browse__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}
.oo-browse__name {
  display: block;
  margin-top: 20px;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--br-text);
}
.oo-browse__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  font-size: 0.9375rem;
  color: var(--br-muted);
  transition: color 0.25s ease;
}
.oo-browse__card:focus-visible { outline: 2px solid var(--br-gold); outline-offset: 4px; }

@media (hover: hover) and (pointer: fine) {
  .oo-browse__card:hover .oo-browse__media img { transform: scale(1.06); }
  .oo-browse__card:hover .oo-browse__more { color: var(--br-gold); }
  .oo-browse__card:hover .oo-browse__arrow { translate: 4px 0; }
  [dir="rtl"] .oo-browse__card:hover .oo-browse__arrow { translate: -4px 0; }
}

/* ---------- Tablet: 2 x 2 ---------- */
@media (max-width: 1024px) {
  .oo-browse__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Mobile: swipeable ---------- */
@media (max-width: 640px) {
  .oo-browse__grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 16px;
    margin-inline: calc(var(--oo-pad, 20px) * -1);
    padding-inline: var(--oo-pad, 20px);
    padding-bottom: 12px;
    scrollbar-width: thin;
    scrollbar-color: rgba(216, 185, 138, 0.5) transparent;
  }
  .oo-browse__item { flex: 0 0 72vw; scroll-snap-align: start; }
}

/* ---------- RTL ---------- */
[dir="rtl"] .oo-browse__eyebrow { letter-spacing: 0; text-transform: none; }


/* ---------- 3. Featured pieces (numbered strip, no images) ---------- */
.oo-fp {
  --fp-bg: #382F29;
  --fp-text: #F7F4EE;
  --fp-muted: rgba(247, 244, 238, 0.72);
  --fp-gold: #D8B98A;
  --fp-line: rgba(216, 185, 138, 0.28);
  --fp-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  padding-block: clamp(64px, 9vw, 128px);
  background: var(--fp-bg);
  color: var(--fp-text);
  overflow-x: clip;
}
[data-theme="dark"] .oo-fp { --fp-bg: #17110E; }
[dir="rtl"] .oo-fp { --fp-serif: var(--font-body); }

.oo-fp__wrap {
  width: 100%;
  max-width: calc(var(--oo-content, 1280px) + var(--oo-pad, 64px) * 2);
  margin-inline: auto;
  padding-inline: var(--oo-pad, clamp(20px, 4.5vw, 64px));
}

/* Heading */
.oo-fp__head {
  max-width: 760px;
  margin-inline: auto;
  margin-bottom: clamp(40px, 6vw, 80px);
  text-align: center;
}
.oo-fp__title {
  margin: 0;
  font-family: var(--fp-serif);
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.015em;
  color: var(--fp-text);
}
.oo-fp__title span,
.oo-fp__title em { display: block; }
.oo-fp__title em { font-style: italic; color: var(--fp-gold); }
.oo-fp__lead {
  max-width: 52ch;
  margin: 24px auto 0;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--fp-muted);
}

/* Strip: 1px gaps over a line-coloured background draw the dividers */
.oo-fp__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--fp-line);
  border-block: 1px solid var(--fp-line);
}
.oo-fp__cell { background: var(--fp-bg); min-width: 0; }
.oo-fp__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 190px;
  padding: clamp(22px, 2.2vw, 32px);
  color: inherit;
  text-decoration: none;
  transition: background-color 0.35s ease;
}

/* Number + line */
.oo-fp__top { display: flex; align-items: center; gap: 16px; }
.oo-fp__num {
  font-size: 1rem;
  letter-spacing: 0.04em;
  color: var(--fp-gold);
}
.oo-fp__line { flex: 1; height: 1px; background: var(--fp-line); }

/* Text */
.oo-fp__name {
  margin: 28px 0 0;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 3.2vw, 3rem);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--fp-text);
}
.oo-fp__meta {
  max-width: 28ch;
  margin: 12px 0 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--fp-muted);
}
.oo-fp__price {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: auto;
  padding-top: 28px;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fp-gold);
}
.oo-fp__price .oo-arrow { width: 16px; height: 16px; }

/* Label row */
.oo-fp__tags {
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 28px;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fp-muted);
}
.oo-fp__tags li { display: inline-flex; align-items: center; gap: 28px; }
.oo-fp__tags li:not(:last-child)::after {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--fp-gold);
}

/* View collection link */
.oo-fp__more { display: flex; justify-content: center; margin-top: clamp(32px, 4vw, 48px); }
.oo-fp .oo-link { color: var(--fp-text); }

.oo-fp :focus-visible { outline: 2px solid var(--fp-gold); outline-offset: -2px; }

@media (hover: hover) and (pointer: fine) {
  .oo-fp__link:hover { background: rgba(247, 244, 238, 0.04); }
  .oo-fp__link:hover .oo-arrow { translate: 4px 0; }
  [dir="rtl"] .oo-fp__link:hover .oo-arrow { translate: -4px 0; }
}

/* Tablet: 2 x 2 */
@media (max-width: 1024px) {
  .oo-fp__grid { grid-template-columns: repeat(2, 1fr); }
}
/* Mobile: single column */
@media (max-width: 519px) {
  .oo-fp__grid { grid-template-columns: 1fr; }
  .oo-fp__tags { gap: 10px 18px; }
  .oo-fp__tags li { gap: 18px; }
}

/* RTL */
[dir="rtl"] .oo-fp__price,
[dir="rtl"] .oo-fp__tags,
[dir="rtl"] .oo-fp__name { letter-spacing: 0; text-transform: none; }



/* ---------- 4. WOODS WE WORK WITH ---------- */

.oo-wd {
  background: var(--bg-main);
  border-top: 1px solid var(--border-color);
}

/* Centered heading */
.oo-wd__head {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  margin-bottom: clamp(36px, 5vw, 64px);
  text-align: center;
}

.oo-wd__head .oo-h2,
.oo-wd__head .oo-lead {
  margin-inline: auto;
}

/* Wood grid */
.oo-wd__list {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 24px);
  margin: 0;
  padding: 0;
  list-style: none;
  border-block: 1px solid var(--border-color);
}

/* Individual wood item */
.oo-wd__item {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: clamp(28px, 3.5vw, 44px) 8px;
  text-align: center;
}

/* Circular wood swatch */
.oo-wd__swatch {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: clamp(76px, 7vw, 104px);
  aspect-ratio: 1 / 1;
  margin-bottom: 14px;
  overflow: hidden;
  border-radius: 50%;

  background:
    repeating-linear-gradient(
      100deg,
      rgba(0, 0, 0, 0.08) 0 2px,
      rgba(255, 255, 255, 0.05) 2px 5px,
      transparent 5px 11px
    ),
    linear-gradient(
      135deg,
      var(--w1),
      var(--w2) 55%,
      var(--w3)
    );

  box-shadow:
    inset 0 2px 4px rgba(255, 255, 255, 0.25),
    inset 0 -3px 6px rgba(0, 0, 0, 0.3),
    0 6px 14px rgba(56, 47, 41, 0.18);

  transition: transform 0.4s ease;
}

/* Actual Oak image fills the circle */
.oo-wd__swatch img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

/* Texture for the remaining wood samples */
.oo-wd__texture {
  position: absolute;
  inset: 0;
  display: block;
  border-radius: inherit;

  background:
    repeating-linear-gradient(
      100deg,
      rgba(0, 0, 0, 0.12) 0 2px,
      rgba(255, 255, 255, 0.06) 2px 5px,
      transparent 5px 11px
    ),
    linear-gradient(
      135deg,
      var(--w1),
      var(--w2) 55%,
      var(--w3)
    );
}

/* Wood name */
.oo-wd__name {
  display: block;
  font-family: var(--oo-serif);
  font-size: clamp(1.25rem, 1.8vw, 1.65rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--text-main);
}

/* Wood description */
.oo-wd__note {
  display: block;
  max-width: 20ch;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-muted);
}

/* Collection link */
.oo-wd__more {
  display: flex;
  justify-content: center;
  margin-top: clamp(32px, 4vw, 48px);
}

/* Hover effect */
@media (hover: hover) and (pointer: fine) {
  .oo-wd__item:hover .oo-wd__swatch {
    transform: translateY(-6px) rotate(-8deg) scale(1.06);
  }
}

/* ---------- TABLET ---------- */
@media (max-width: 1024px) {
  .oo-wd__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 16px;
  }

  .oo-wd__item {
    padding: 28px 8px;
  }

  .oo-wd__swatch {
    width: clamp(76px, 10vw, 100px);
  }
}

/* ---------- MOBILE ---------- */
@media (max-width: 519px) {
  .oo-wd__head {
    margin-bottom: 32px;
  }

  .oo-wd__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 10px;
  }

  .oo-wd__item {
    padding: 24px 6px;
  }

  .oo-wd__swatch {
    width: 80px;
    margin-bottom: 10px;
  }

  .oo-wd__name {
    font-size: 1.3rem;
  }

  .oo-wd__note {
    max-width: 19ch;
    font-size: 0.8125rem;
  }
}

/* ---------- SMALL MOBILE ---------- */
@media (max-width: 360px) {
  .oo-wd__swatch {
    width: 68px;
  }

  .oo-wd__item {
    padding-inline: 4px;
  }

  .oo-wd__note {
    font-size: 0.78rem;
  }
}




/* ---------- 5. Browse by era (full-screen slider) ---------- */
.oo-es {
  --es-bg: #382F29;
  --es-text: #F7F4EE;
  --es-muted: rgba(247, 244, 238, 0.78);
  --es-gold: #D8B98A;
  --es-line: rgba(247, 244, 238, 0.45);
  --es-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --es-pad: clamp(20px, 4.5vw, 64px);
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 600px;
  overflow: hidden;
  background: var(--es-bg);
  color: var(--es-text);
}
[data-theme="dark"] .oo-es { --es-bg: #17110E; }
[dir="rtl"] .oo-es { --es-serif: var(--font-body); }

/* Slides stack on top of each other and cross-fade */
.oo-es__slide {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease, visibility 0s linear 0.8s;
}
.oo-es__slide.is-active {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

/* Image side */
.oo-es__media { position: relative; overflow: hidden; background: rgba(247, 244, 238, 0.06); }
.oo-es__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  transition: transform 1.6s ease;
}
.oo-es__slide.is-active .oo-es__media img { transform: scale(1); }

/* Text side */
.oo-es__panel {
  display: flex;
  align-items: center;
  padding-inline: clamp(28px, 6vw, 100px);
}
.oo-es__body {
  width: 100%;
  max-width: 560px;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.oo-es__slide.is-active .oo-es__body {
  opacity: 1;
  transform: none;
  transition-delay: 0.25s;
}

.oo-es__eyebrow {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 22px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--es-muted);
}
.oo-es__eyebrow span { color: var(--es-gold); }

.oo-es__title {
  margin: 0;
  font-family: var(--es-serif);
  font-size: clamp(2.5rem, 4.8vw, 4.5rem);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: -0.01em;
  color: var(--es-text);
  text-wrap: balance;
}
.oo-es__text {
  max-width: 44ch;
  margin: 24px 0 0;
  font-family: var(--es-serif);
  font-size: clamp(1.15rem, 1.6vw, 1.4rem);
  font-style: italic;
  line-height: 1.6;
  color: var(--es-muted);
}
.oo-es__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 32px;
  padding-block: 6px;
  border-bottom: 1px solid var(--es-gold);
  color: var(--es-text);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
}
.oo-es__link .oo-arrow { width: 16px; height: 16px; }

/* Arrows (top right) */
.oo-es__nav {
  position: absolute;
  inset-block-start: clamp(24px, 5vh, 44px);
  inset-inline-end: var(--es-pad);
  z-index: 3;
  display: flex;
  gap: 10px;
}
.oo-es__btn {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--es-line);
  border-radius: 50%;
  background: transparent;
  color: var(--es-text);
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.oo-es__btn .oo-icon { width: 18px; height: 18px; stroke-width: 1.8; }
[dir="rtl"] .oo-es__btn .oo-icon { transform: scaleX(-1); }

/* Dots (bottom right) */
.oo-es__dots {
  position: absolute;
  inset-block-end: clamp(24px, 5vh, 44px);
  inset-inline-end: var(--es-pad);
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 4px;
}
.oo-es__dot {
  position: relative;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.oo-es__dot::before {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--es-text);
  opacity: 0.4;
  translate: -50% -50%;
  transition: opacity 0.25s ease, width 0.25s ease, height 0.25s ease;
}
.oo-es__dot.is-active::before { opacity: 1; width: 8px; height: 8px; }

.oo-es :focus-visible { outline: 2px solid var(--es-gold); outline-offset: 3px; }

.oo-es__sr {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

@media (hover: hover) and (pointer: fine) {
  .oo-es__btn:hover { background: var(--es-text); border-color: var(--es-text); color: var(--es-bg); }
  .oo-es__link:hover .oo-arrow { translate: 4px 0; }
  [dir="rtl"] .oo-es__link:hover .oo-arrow { translate: -4px 0; }
}

/* Tablet / mobile: image on top, text below, still exactly one screen */
@media (max-width: 860px) {
  .oo-es { min-height: 620px; }
  .oo-es__slide { grid-template-columns: 1fr; grid-template-rows: 42% 1fr; }
  .oo-es__panel { align-items: flex-start; padding: clamp(24px, 5vh, 40px) var(--es-pad) 96px; }
  .oo-es__eyebrow { margin-bottom: 14px; }
  .oo-es__title { font-size: clamp(2.1rem, 8vw, 3rem); }
  .oo-es__text { margin-top: 14px; font-size: 1.1rem; }
  .oo-es__link { margin-top: 20px; }
  .oo-es__nav { inset-block-start: auto; inset-block-end: 28px; inset-inline-start: var(--es-pad); inset-inline-end: auto; }
  .oo-es__dots { inset-block-end: 38px; }
}

/* RTL */
[dir="rtl"] .oo-es__eyebrow,
[dir="rtl"] .oo-es__link { letter-spacing: 0; text-transform: none; }

@media (prefers-reduced-motion: reduce) {
  .oo-es *, .oo-es *::before, .oo-es *::after { transition: none !important; animation: none !important; }
  .oo-es__media img { transform: none; }
  .oo-es__body { opacity: 1; transform: none; }
}


/* Period line under the title */
.oo-es__period {
  margin: 14px 0 0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--es-gold);
}

/* Fact sheet */
.oo-es__facts {
  margin: clamp(20px, 3.5vh, 32px) 0 0;
  padding: 0;
  border-top: 1px solid var(--es-line);
}
.oo-es__facts > div {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 20px;
  padding-block: clamp(10px, 1.8vh, 14px);
  border-bottom: 1px solid var(--es-line);
}
.oo-es__facts dt {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--es-gold);
  align-self: center;
}
.oo-es__facts dd {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--es-text);
}

/* Buttons */
.oo-es__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  margin-top: clamp(22px, 4vh, 36px);
}
.oo-es__actions .oo-es__link { margin-top: 0; }
.oo-es__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 26px;
  border: 1px solid var(--es-gold);
  border-radius: var(--oo-radius);
  background: var(--es-gold);
  color: #241A14;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.3s ease, opacity 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .oo-es__cta:hover { transform: translateY(-3px); opacity: 0.92; }
}

/* Slightly larger content area, tighter text */
.oo-es__body { max-width: 600px; }
.oo-es__text {
  margin-top: 20px;
  font-size: clamp(1.05rem, 1.35vw, 1.2rem);
}

/* Short desktop screens: tighten spacing so it still fits 100vh */
@media (min-width: 861px) and (max-height: 760px) {
  .oo-es__title { font-size: clamp(2.25rem, 4vw, 3.5rem); }
  .oo-es__text { margin-top: 14px; font-size: 1rem; line-height: 1.5; }
  .oo-es__facts dd { font-size: 0.875rem; }
}

/* Tablet / mobile: hide fact sheet so the slide still fits one screen */
@media (max-width: 860px) {
  .oo-es__facts { display: none; }
  .oo-es__period { margin-top: 10px; }
}

[dir="rtl"] .oo-es__period,
[dir="rtl"] .oo-es__facts dt,
[dir="rtl"] .oo-es__cta { letter-spacing: 0; text-transform: none; }

/* ---------- 6. Restoration (sticky intro + accordion) ---------- */
.oo-rs { background: var(--bg-main); border-top: 1px solid var(--border-color); padding-block: clamp(64px, 8vw, 112px); }

.oo-rs__grid {
  display: grid;
  grid-template-columns: 5fr 6fr;
  gap: clamp(32px, 7vw, 112px);
  align-items: start;
}
.oo-rs__intro { position: sticky; inset-block-start: calc(var(--oo-header-h) + 32px); }

/* Accordion */
.oo-rs__list { border-bottom: 1px solid var(--border-color); }
.oo-rs__item { border-top: 1px solid var(--border-color); }

.oo-rs__sum {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2.4vw, 32px);
  padding-block: clamp(20px, 2.6vw, 30px);
  list-style: none;
  cursor: pointer;
}
.oo-rs__sum::-webkit-details-marker { display: none; }

.oo-rs__num { flex: none; width: 2.2em; font-size: 0.875rem; letter-spacing: 0.06em; color: #8A6B43; }
[data-theme="dark"] .oo-rs__num { color: #D8B98A; }

.oo-rs__name {
  flex: 1;
  font-family: var(--oo-serif);
  font-size: clamp(1.5rem, 2.6vw, 2.25rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--text-main);
  transition: color 0.25s ease;
}

/* Plus / minus */
.oo-rs__plus {
  position: relative;
  flex: none;
  width: 40px;
  height: 40px;
  border: 1px solid var(--border-color);
  border-radius: 50%;
  transition: background-color 0.25s ease, border-color 0.25s ease, rotate 0.35s ease;
}
.oo-rs__plus::before,
.oo-rs__plus::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 14px;
  height: 1.5px;
  background: var(--text-main);
  translate: -50% -50%;
  transition: background-color 0.25s ease, opacity 0.25s ease;
}
.oo-rs__plus::after { rotate: 90deg; }

.oo-rs__item[open] .oo-rs__plus { background: var(--accent); border-color: var(--accent); rotate: 180deg; }
.oo-rs__item[open] .oo-rs__plus::before,
.oo-rs__item[open] .oo-rs__plus::after { background: var(--accent-contrast); }
.oo-rs__item[open] .oo-rs__plus::after { opacity: 0; }

/* Body */
.oo-rs__body {
  padding: 0 0 clamp(24px, 3vw, 36px);
  padding-inline-start: calc(2.2em + clamp(16px, 2.4vw, 32px));
  padding-inline-end: 56px;
  animation: oo-rs-in 0.45s ease both;
}
.oo-rs__body p { margin: 0; max-width: 52ch; font-size: 1rem; line-height: 1.7; color: var(--text-muted); }

.oo-rs__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.oo-rs__tags li {
  padding: 7px 14px;
  border: 1px solid var(--border-color);
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
}

@keyframes oo-rs-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}

.oo-rs__sum:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: -2px; }

@media (hover: hover) and (pointer: fine) {
  .oo-rs__sum:hover .oo-rs__name { color: #8A6B43; }
  [data-theme="dark"] .oo-rs__sum:hover .oo-rs__name { color: #D8B98A; }
  .oo-rs__sum:hover .oo-rs__plus { border-color: var(--text-main); }
}

/* Tablet / mobile */
@media (max-width: 1024px) {
  .oo-rs__grid { grid-template-columns: 1fr; }
  .oo-rs__intro { position: static; }
}
@media (max-width: 519px) {
  .oo-rs__body { padding-inline: 0; }
  .oo-rs__plus { width: 36px; height: 36px; }
}

/* RTL */
[dir="rtl"] .oo-rs__tags li { letter-spacing: 0; text-transform: none; }

@media (prefers-reduced-motion: reduce) {
  .oo-rs__body { animation: none; }
  .oo-rs__plus { transition: none; }
}
/* ---------- 7. The bigger picture (full-bleed image) ---------- */
.oo-bp {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 90vh;
  min-height: 90svh;
  padding-block: clamp(72px, 10vw, 140px);
  background: #211A16;
  color: #F7F4EE;
  text-align: center;
  isolation: isolate;
  overflow: hidden;
}
.oo-bp__media { position: absolute; inset: 0; z-index: -2; }
.oo-bp__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Dark overlay keeps the text readable on any photo */
.oo-bp::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(20, 14, 10, 0.35), rgba(20, 14, 10, 0.7) 75%),
    linear-gradient(to bottom, rgba(20, 14, 10, 0.55), rgba(20, 14, 10, 0.45) 50%, rgba(20, 14, 10, 0.75));
}

.oo-bp__inner {
  width: 100%;
  max-width: 980px;
  margin-inline: auto;
  padding-inline: var(--oo-pad, clamp(20px, 4.5vw, 64px));
}

/* Eyebrow with side lines */
.oo-bp__eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin: 0 0 24px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #D8B98A;
}
.oo-bp__eyebrow::before,
.oo-bp__eyebrow::after {
  content: "";
  width: clamp(28px, 5vw, 56px);
  height: 1px;
  background: rgba(216, 185, 138, 0.6);
}

/* Heading: first line bold, rest light, like the reference */
.oo-bp__title {
  margin: 0;
  font-family: var(--oo-serif, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(2.5rem, 6.4vw, 5.5rem);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.015em;
  color: #FFFFFF;
  text-wrap: balance;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}
.oo-bp__bold { display: block; font-weight: 700; }
.oo-bp__title em { display: block; font-style: italic; color: #D8B98A; }

.oo-bp__lead {
  max-width: 54ch;
  margin: 28px auto 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.7;
  color: rgba(247, 244, 238, 0.9);
}

.oo-bp .oo-cta { --accent: #C9A77C; --accent-contrast: #241A14; border-color: #C9A77C; }
.oo-bp .oo-cta--ghost { color: #F7F4EE; background: rgba(36, 26, 20, 0.5); border-color: #F7F4EE; }
.oo-bp :focus-visible { outline-color: #F7F4EE; }

@media (hover: hover) and (pointer: fine) {
  .oo-bp .oo-cta--ghost:hover { background: #F7F4EE; color: #241A14; }
}

@media (max-width: 519px) {
  .oo-bp { min-height: 0; }
  .oo-bp__eyebrow { letter-spacing: 0.16em; }
}

/* RTL */
[dir="rtl"] .oo-bp__eyebrow { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-bp__title { letter-spacing: 0; }

/* ---------- 8. Final CTA (framed box with gold corners) ---------- */
.oo-cx {
  --cx-bg: #211A16;
  --cx-text: #F7F4EE;
  --cx-muted: rgba(247, 244, 238, 0.74);
  --cx-gold: #C9A77C;
  --cx-line: rgba(216, 204, 188, 0.28);
  --cx-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  padding-block: clamp(64px, 9vw, 128px);
  background: var(--cx-bg);
  color: var(--cx-text);
  overflow-x: clip;
}
[data-theme="dark"] .oo-cx { --cx-bg: #0F0B09; }
[dir="rtl"] .oo-cx { --cx-serif: var(--font-body); }

.oo-cx__wrap {
  width: 100%;
  max-width: calc(1080px + var(--oo-pad, 64px) * 2);
  margin-inline: auto;
  padding-inline: var(--oo-pad, clamp(20px, 4.5vw, 64px));
}

/* Frame */
.oo-cx__frame {
  position: relative;
  padding: clamp(48px, 7vw, 88px) clamp(24px, 6vw, 96px);
  border: 1px solid var(--cx-line);
  text-align: center;
}

/* Gold corners: top-left and bottom-right */
.oo-cx__frame::before,
.oo-cx__frame::after {
  content: "";
  position: absolute;
  width: 34px;
  height: 34px;
  pointer-events: none;
}
.oo-cx__frame::before {
  inset-block-start: -1px;
  inset-inline-start: -1px;
  border-block-start: 2px solid var(--cx-gold);
  border-inline-start: 2px solid var(--cx-gold);
}
.oo-cx__frame::after {
  inset-block-end: -1px;
  inset-inline-end: -1px;
  border-block-end: 2px solid var(--cx-gold);
  border-inline-end: 2px solid var(--cx-gold);
}

.oo-cx__eyebrow {
  margin: 0 0 22px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cx-gold);
}
.oo-cx__title {
  max-width: 16ch;
  margin: 0 auto;
  font-family: var(--cx-serif);
  font-size: clamp(2.25rem, 5.4vw, 4.5rem);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--cx-text);
  text-wrap: balance;
}
.oo-cx__title em { font-style: italic; color: var(--cx-gold); }
.oo-cx__lead {
  max-width: 50ch;
  margin: 24px auto 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.7;
  color: var(--cx-muted);
}

/* Buttons */
.oo-cx__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-top: 36px;
}
.oo-cx__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 28px;
  border: 1px solid transparent;
  border-radius: var(--oo-radius, 6px);
  font: 600 0.9375rem/1 var(--font-body);
  text-decoration: none;
  transition: transform 0.3s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.oo-cx__btn--gold { background: var(--cx-gold); border-color: var(--cx-gold); color: #241A14; }
.oo-cx__btn--dark { background: #0F0B09; border-color: var(--cx-line); color: var(--cx-text); }

.oo-cx :focus-visible { outline: 2px solid var(--cx-gold); outline-offset: 4px; }

@media (hover: hover) and (pointer: fine) {
  .oo-cx__btn:hover { transform: translateY(-3px); }
  .oo-cx__btn--gold:hover { background: #D8B98A; border-color: #D8B98A; }
  .oo-cx__btn--dark:hover { border-color: var(--cx-gold); color: var(--cx-gold); }
}

@media (max-width: 519px) {
  .oo-cx__btn { flex: 1 1 100%; }
  .oo-cx__frame::before,
  .oo-cx__frame::after { width: 24px; height: 24px; }
}

/* RTL */
[dir="rtl"] .oo-cx__eyebrow { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-cx__title { letter-spacing: 0; }
/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .oo-collections__grid { grid-template-columns: 1fr 1fr; grid-auto-rows: clamp(200px, 32vw, 300px); }
  .oo-featured__grid { grid-template-columns: repeat(2, 1fr); }
  .oo-patina__grid { grid-template-columns: 1fr; }
  .oo-patina__card { margin: -64px 20px 0; }
  .oo-patina__media { aspect-ratio: 4 / 3; }
  .oo-restore__grid,
  .oo-story__grid { grid-template-columns: 1fr; }
  .oo-story__media { margin-bottom: 40px; }
  .oo-story__small { inset-inline-start: auto; inset-inline-end: 16px; inset-block-end: -32px; }
}
@media (max-width: 640px) {
  .oo-collections__grid { grid-template-columns: 1fr; grid-auto-rows: 260px; }
  .oo-tile--tall { grid-row: auto; }
  .oo-tile--wide { grid-column: auto; }
  .oo-eras__list { grid-template-columns: 1fr; }
  .oo-patina__card { margin-inline: 12px; }
  .oo-restore__mosaic { height: 420px; }
}
@media (max-width: 519px) {
  .oo-featured__grid { grid-template-columns: 1fr; }
  .oo-actions .oo-cta { flex: 1 1 100%; }
}

/* ---------- RTL typography ---------- */
[dir="rtl"] .oo-eyebrow,
[dir="rtl"] .oo-link,
[dir="rtl"] .oo-cta,
[dir="rtl"] .oo-piece__badge,
[dir="rtl"] .oo-piece__price { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-h2,
[dir="rtl"] .oo-hero__title { letter-spacing: 0; }

/* ---------- Animation fallback (used only when AOS is not loaded) ---------- */
.oo-aos-fallback .oo-home [data-aos] { opacity: 0; transition: opacity 0.7s ease, transform 0.7s ease; }
.oo-aos-fallback .oo-home [data-aos="fade-up"] { transform: translateY(28px); }
.oo-aos-fallback .oo-home [data-aos="fade-down"] { transform: translateY(-28px); }
.oo-aos-fallback .oo-home [data-aos="fade-right"] { transform: translateX(-28px); }
.oo-aos-fallback .oo-home [data-aos="fade-left"] { transform: translateX(28px); }
[dir="rtl"].oo-aos-fallback .oo-home [data-aos="fade-right"] { transform: translateX(28px); }
[dir="rtl"].oo-aos-fallback .oo-home [data-aos="fade-left"] { transform: translateX(-28px); }
.oo-aos-fallback .oo-home [data-aos].is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .oo-home *, .oo-home *::before, .oo-home *::after { transition: none !important; animation: none !important; }
  .oo-home [data-aos] { opacity: 1 !important; transform: none !important; }
}
@media (min-width: 1024px) {
  .oo-hero__media img { object-position: 56% center; }
}

/* ---------- 4. Split story ---------- */
.oo-split {
  padding-block: clamp(64px, 9vw, 128px);
  background: var(--bg-main);
  border-top: 1px solid var(--border-color);
}
.oo-split__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(40px, 7vw, 112px);
}

/* Left: images */
.oo-split__media { position: relative; padding-bottom: 48px; }
.oo-split__main {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: var(--oo-radius);
  background: var(--border-color);
}
.oo-split__main img,
.oo-split__small img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s ease;
}
.oo-split__small {
  position: absolute;
  inset-block-end: 0;
  inset-inline-end: -28px;
  width: 42%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: var(--oo-radius);
  border: 8px solid var(--bg-main);
  background: var(--border-color);
  box-shadow: var(--shadow-soft);
}
@media (hover: hover) and (pointer: fine) {
  .oo-split__media:hover .oo-split__main img { transform: scale(1.04); }
}

/* Right: content */
.oo-split__content .oo-lead { max-width: 52ch; }
.oo-split__list {
  list-style: none;
  margin: clamp(24px, 3.5vw, 40px) 0;
  padding: 0;
  display: grid;
  gap: 22px;
}
.oo-split__item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.oo-split__icon {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--border-color);
  border-radius: 50%;
  color: var(--text-main);
}
.oo-split__icon .oo-icon {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.oo-split__title {
  margin: 0 0 4px;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-main);
}
.oo-split__text {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--text-muted);
}

/* Tablet / mobile */
@media (max-width: 1024px) {
  .oo-split__grid { grid-template-columns: 1fr; }
  .oo-split__media { max-width: 560px; margin-inline: auto; width: 100%; }
  .oo-split__small { inset-inline-end: 12px; }
}
@media (max-width: 519px) {
  .oo-split__small { width: 46%; border-width: 6px; }
}
















@media (min-width: 641px) {
  .oo-tile--wide img { object-position: center center; }
}







/* Editorial treatment for section titles */
.oo-head { flex-direction: column; align-items: center; text-align: center; }
.oo-head > div { width: 100%; }
.oo-head .oo-h2 { margin-inline: auto; }
.oo-h2 em { color: #D8B98A; font-style: italic; }


/* Keep sections 2 and 3 on their original heading layout */
.oo-collections .oo-head,
.oo-shop .oo-head,
.oo-featured .oo-head { display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; text-align: left; }
.oo-collections .oo-head > div,
.oo-shop .oo-head > div,
.oo-featured .oo-head > div { width: auto; }
.oo-collections .oo-head .oo-h2,
.oo-shop .oo-head .oo-h2,
.oo-featured .oo-head .oo-h2 { margin-inline: 0; }

/* Apply the editorial heading treatment to both home page heroes */
.oo-hero__content { max-width: 640px; margin-inline-start: 0; margin-inline-end: auto; text-align: start; }
.oo-hero__title em { color: #D8B98A; font-style: italic; }
.oo-hero__text { margin-inline-start: 0; margin-inline-end: auto; }
.oo-hero .oo-actions { justify-content: flex-start; }



.oo-hero__title { font-size: clamp(2.5rem, 5vw, 4.5rem); text-align: start; }
.oo-hero__title em { color: #D8B98A; font-style: italic; }


.oo-hero .oo-eyebrow { margin-bottom: 24px; }
.oo-hero__text { margin-top: 32px; }
.oo-hero .oo-actions { margin-top: 40px; }


.oo-review__avatar { object-fit: cover; }


[data-theme="dark"] .oo-final {
  background: radial-gradient(ellipse at 50% 0%, #514238 0%, #382F29 38%, #211A16 100%);
}


[data-theme="light"] .oo-final {
  background: radial-gradient(ellipse at 50% 0%, #E6D8C3 0%, #F7F4EE 42%, #FFFFFF 100%);
}









/* Footer brand mirrors the header logo */
.oo-footer .oo-brand { display: inline-flex; align-items: center; gap: 14px; color: var(--ft-text); }
.oo-footer .oo-brand__mark { display: inline-grid; place-items: center; flex: none; width: 40px; height: 40px; border: 1px solid var(--ft-line); border-radius: 50%; color: var(--ft-text); }
.oo-footer .oo-brand__mark .oo-icon { width: 22px; height: 22px; }
.oo-footer .oo-brand__text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.oo-footer .oo-brand__name { display: block; font-family: var(--font-heading); font-size: 1.125rem; font-weight: 500; line-height: 1; letter-spacing: 0.18em; text-transform: uppercase; white-space: nowrap; color: var(--ft-text); }
.oo-footer .oo-brand__sub { display: block; margin: 0; font-size: 0.5625rem; line-height: 1.2; letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap; color: var(--ft-muted); }


.oo-footer__col--brand .oo-footer__social { margin-top: 22px; }





/* Give the newsletter signup a little breathing room above the form */
.oo-footer__signup { margin-top: 16px; }


/* Align the newsletter form closer to the heading and lower it slightly */
.oo-footer__signup { margin-top: 32px; }
@media (min-width: 1025px) {
  .oo-footer__signup { margin-inline-end: 24px; }
}


/* Keep Home 2 collection cards inset from the screen edges on mobile */
@media (max-width: 640px) {
  .oo-browse__grid {
    margin-inline: 0;
    padding-inline: 0;
  }
}


/* Keep the Home 2 featured title on one line */
.oo-fp__title { white-space: nowrap; font-size: clamp(2rem, 5.5vw, 5rem); }
.oo-fp__title span,
.oo-fp__title em { display: inline; }


/* Match the Home 2 featured eyebrow to the numbered section label style */
.oo-fp > .oo-fp__wrap > .oo-browse__eyebrow {
  color: var(--fp-muted);
}
.oo-fp > .oo-fp__wrap > .oo-browse__eyebrow span {
  color: var(--fp-gold);
}

/* Home 2 collection and featured sections use white surfaces in light mode */
.oo-browse {
  --br-bg: #FFFFFF;
  --br-text: #382F29;
  --br-muted: rgba(56, 47, 41, 0.75);
}
[data-theme="dark"] .oo-browse {
  --br-bg: #211A16;
  --br-text: #F7F4EE;
  --br-muted: rgba(247, 244, 238, 0.72);
}
.oo-fp {
  --fp-bg: #FFFFFF;
  --fp-text: #382F29;
  --fp-muted: rgba(56, 47, 41, 0.75);
  --fp-line: rgba(56, 47, 41, 0.2);
}
[data-theme="dark"] .oo-fp {
  --fp-bg: #211A16;
  --fp-text: #F7F4EE;
  --fp-muted: rgba(247, 244, 238, 0.72);
  --fp-line: rgba(216, 185, 138, 0.28);
}

/* Ensure Home 2 section headings and gold accents read clearly on white */
[data-theme="light"] .oo-browse__title,
[data-theme="light"] .oo-fp__title {
  color: #382F29;
}
[data-theme="light"] .oo-browse__title em,
[data-theme="light"] .oo-fp__title em {
  color: #A77C44;
}

/* Keep the Home 1 hero image fixed in its final crop */
.oo-home .oo-hero__media img {
  animation: none;
  transform: none;
}


/* Keep Home 2 section eyebrows consistent with the featured section */
.oo-wd__head > .oo-eyebrow,
.oo-es__eyebrow,
.oo-rs__intro > .oo-eyebrow,
.oo-bp__eyebrow,
.oo-cx__eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.oo-wd__head > .oo-eyebrow,
.oo-rs__intro > .oo-eyebrow { color: #D8B98A; }
.oo-es__eyebrow { color: var(--es-muted); }
.oo-es__eyebrow span { color: #D8B98A; }
.oo-bp__eyebrow,
.oo-cx__eyebrow { color: #D8B98A; }


/* Number the Home 2 section eyebrows in the featured style */
.oo-wd__head > .oo-eyebrow,
.oo-es__eyebrow,
.oo-rs__intro > .oo-eyebrow,
.oo-bp__eyebrow,
.oo-cx__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
}
.oo-wd__head > .oo-eyebrow,
.oo-bp__eyebrow,
.oo-cx__eyebrow { justify-content: center; }
.oo-rs__intro > .oo-eyebrow { justify-content: flex-start; }
.oo-wd__head > .oo-eyebrow span,
.oo-es__eyebrow span,
.oo-rs__intro > .oo-eyebrow span,
.oo-bp__eyebrow span,
.oo-cx__eyebrow span { color: #D8B98A; }
.oo-bp__eyebrow::before,
.oo-bp__eyebrow::after { display: none; }


/* Match section 4 eyebrow directly to the featured eyebrow */
.oo-wd__head > .oo-eyebrow {
  justify-content: center;
  gap: 14px;
  margin-bottom: 20px;
  color: rgba(247, 244, 238, 0.72);
}
.oo-wd__head > .oo-eyebrow span { color: #D8B98A; }


/* Ensure section 4's number remains visible in its flex eyebrow */
.oo-wd__head > .oo-eyebrow > span {
  display: inline-block;
  flex: 0 0 auto;
  color: #D8B98A;
  opacity: 1;
  visibility: visible;
}


/* Unify numbered eyebrows for Home 2 sections 4, 6, 7, and 8 */
.oo-wd__head > .oo-eyebrow,
.oo-rs__intro > .oo-eyebrow,
.oo-bp__eyebrow,
.oo-cx__eyebrow {
  color: rgba(247, 244, 238, 0.72);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.oo-wd__head > .oo-eyebrow span,
.oo-rs__intro > .oo-eyebrow span,
.oo-bp__eyebrow span,
.oo-cx__eyebrow span {
  display: inline-block;
  flex: 0 0 auto;
  color: #D8B98A;
  opacity: 1;
  visibility: visible;
}


/* Mobile layout for the era slider: reserve clear space for its controls */
@media (max-width: 860px) {
  .oo-es {
    height: 100svh;
    min-height: 700px;
  }
  .oo-es__slide {
    grid-template-rows: minmax(210px, 34svh) minmax(0, 1fr);
  }
  .oo-es__panel {
    padding: 22px var(--es-pad) 132px;
  }
  .oo-es__body { max-width: 600px; }
  .oo-es__text {
    margin-top: 12px;
    font-size: clamp(1rem, 4.5vw, 1.1rem);
    line-height: 1.45;
  }
  .oo-es__actions {
    gap: 12px 22px;
    margin-top: 18px;
  }
  .oo-es__cta { min-height: 44px; }
  .oo-es__nav { inset-block-end: 28px; }
  .oo-es__dots {
    inset-block-end: 38px;
    inset-inline-end: calc(var(--es-pad) + 56px);
  }
}
@media (max-width: 519px) {
  .oo-es { min-height: 680px; }
  .oo-es__panel { padding-inline: 20px; }
  .oo-es__title { font-size: clamp(2rem, 8vw, 2.6rem); }
  .oo-es__nav { inset-inline-start: 20px; }
}


/* Tablet tuning for the era slider */
@media (min-width: 520px) and (max-width: 860px) {
  .oo-es__slide {
    grid-template-rows: minmax(190px, 30svh) minmax(0, 1fr);
  }
  .oo-es__panel {
    padding: 24px 36px 150px;
  }
  .oo-es__eyebrow { margin-bottom: 12px; }
  .oo-es__title { font-size: clamp(2.2rem, 5vw, 2.8rem); }
  .oo-es__text {
    max-width: 48ch;
    margin-top: 10px;
    font-size: 1.05rem;
    line-height: 1.4;
  }
  .oo-es__actions {
    gap: 10px 20px;
    margin-top: 16px;
  }
}



/* Desktop product cards keep the full image visible in the taller frame */
@media (min-width: 1025px) {
  .oo-card__media img {
    object-fit: contain;
    background: var(--bg-main);
  }
}


/* Desktop featured cards use four columns for eight products */
@media (min-width: 1025px) {
  .oo-shop__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .oo-card__media { aspect-ratio: 1 / 1; }
  .oo-card__media img {
    object-fit: cover;
    background: var(--bg-main);
  }
}

/* Home 1 trust section: match the image height to the content panel */
@media (min-width: 901px) {
  .oo-wy__grid { align-items: stretch; }
  .oo-wy__media { height: 100%; aspect-ratio: auto; }
  .oo-wy__media img { object-fit: cover; object-position: center; }
}

/* Shared dark background across Home 1 and Home 2 sections */
[data-theme="dark"] .oo-hero,
[data-theme="dark"] .oo-wy,
[data-theme="dark"] .oo-shop,
[data-theme="dark"] .oo-split,
[data-theme="dark"] .oo-film,
[data-theme="dark"] .oo-flow,
[data-theme="dark"] .oo-reviews,
[data-theme="dark"] .oo-final,
[data-theme="dark"] .oo-browse,
[data-theme="dark"] .oo-fp,
[data-theme="dark"] .oo-wd,
[data-theme="dark"] .oo-es,
[data-theme="dark"] .oo-rs,
[data-theme="dark"] .oo-bp,
[data-theme="dark"] .oo-cx {
  background-color: #0F0B09;
}
[data-theme="dark"] .oo-header--overlay:not(.is-solid) {
  background: #0F0B09;
  border-bottom-color: var(--nav-border);
}
[data-theme="dark"] .oo-header--overlay:not(.is-solid)::before { display: none; }

/* Keep both solid and overlay navbar states matched to the dark footer */
[data-theme="dark"] .oo-header { background-color: #17110E; }
[data-theme="dark"] .oo-header--overlay:not(.is-solid) { background: #17110E; }

/* Home 1 section-two heading follows the shared editorial heading style */
.oo-wy .oo-wy__title { color: var(--wy-text); }
.oo-wy__title em { color: #D8B98A; font-style: italic; }

/* Dark mode process circles blend into their section background */
[data-theme="dark"] .oo-flow__num {
  background: #0F0B09;
  box-shadow: 0 0 0 8px #0F0B09;
}

/* Separate Home 1 sections 5, 6, and 7 */
.oo-flow,
.oo-reviews {
  border-top: 1px solid var(--border-color);
}

/* Oak wood photo fills its circular swatch */
.oo-wd__swatch { overflow: hidden; }
.oo-wd__swatch img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}

/* Show the complete era photo on tablet and mobile */
@media (max-width: 860px) {
  .oo-es__media { background: var(--es-bg); }
  .oo-es__media img { object-fit: contain; }
}

/* Give responsive era photos more vertical space while keeping them full width */
@media (max-width: 860px) {
  .oo-es { min-height: 820px; }
  .oo-es__slide {
    grid-template-rows: minmax(300px, 48svh) minmax(0, 1fr);
  }
  .oo-es__media { background: var(--es-bg); }
  .oo-es__media img { object-fit: cover; object-position: center; }
}

/* Further enlarge the responsive era image panel */
@media (max-width: 860px) {
  .oo-es { min-height: 960px; }
  .oo-es__slide {
    grid-template-rows: minmax(380px, 60svh) minmax(0, 1fr);
  }
}

/* Taller era image on tablet screens */
@media (min-width: 520px) and (max-width: 860px) {
  .oo-es { min-height: 1120px; }
  .oo-es__slide {
    grid-template-rows: minmax(460px, 72svh) minmax(0, 1fr);
  }
}

/* Tablet era slider: full-viewport image followed by the text panel */
@media (min-width: 520px) and (max-width: 860px) {
  .oo-es {
    height: auto;
    min-height: calc(100svh + 580px);
  }
  .oo-es__slide {
    grid-template-rows: 100svh minmax(580px, 1fr);
  }
}

/* Dark-mode featured-piece boxes match the section background */
[data-theme="dark"] .oo-fp__cell {
  background: var(--bg-main);
}

/* White section surfaces in light mode; navbar and footer retain their colors */
[data-theme="light"] .oo-hero,
[data-theme="light"] .oo-wy,
[data-theme="light"] .oo-shop,
[data-theme="light"] .oo-split,
[data-theme="light"] .oo-film,
[data-theme="light"] .oo-flow,
[data-theme="light"] .oo-reviews,
[data-theme="light"] .oo-final,
[data-theme="light"] .oo-browse,
[data-theme="light"] .oo-fp,
[data-theme="light"] .oo-wd,
[data-theme="light"] .oo-es,
[data-theme="light"] .oo-rs,
[data-theme="light"] .oo-bp,
[data-theme="light"] .oo-cx {
  background-color: #FFFFFF;
}
[data-theme="light"] .oo-wy {
  --wy-bg: #FFFFFF;
  --wy-text: #382F29;
  --wy-muted: rgba(56, 47, 41, 0.75);
  --wy-line: rgba(56, 47, 41, 0.2);
}
[data-theme="light"] .oo-flow {
  --flow-text: #382F29;
  --flow-muted: rgba(56, 47, 41, 0.75);
  --flow-line: rgba(138, 107, 67, 0.4);
  --flow-gold: #8A6B43;
}
[data-theme="light"] .oo-flow__num {
  background: #FFFFFF;
  box-shadow: 0 0 0 8px #FFFFFF;
}
[data-theme="light"] .oo-es {
  --es-bg: #FFFFFF;
  --es-text: #382F29;
  --es-muted: rgba(56, 47, 41, 0.75);
  --es-gold: #8A6B43;
  --es-line: rgba(56, 47, 41, 0.28);
}
[data-theme="light"] .oo-cx {
  --cx-bg: #FFFFFF;
  --cx-text: #382F29;
  --cx-muted: rgba(56, 47, 41, 0.75);
  --cx-gold: #8A6B43;
  --cx-line: rgba(56, 47, 41, 0.25);
}

/* Keep the secondary CTA readable against its dark background in light mode */
[data-theme="light"] .oo-cx__btn--dark {
  color: #F7F4EE;
}
@media (hover: hover) and (pointer: fine) {
  [data-theme="light"] .oo-cx__btn--dark:hover {
    color: var(--cx-gold);
  }
}

/* Home 2 final CTA uses the same readable light palette as the other sections */
[data-theme="light"] .oo-cx__eyebrow {
  color: rgba(56, 47, 41, 0.72);
}
[data-theme="light"] .oo-cx__eyebrow span,
[data-theme="light"] .oo-cx__title em {
  color: #8A6B43;
}
[data-theme="light"] .oo-cx__title { color: #382F29; }
[data-theme="light"] .oo-cx__lead { color: rgba(56, 47, 41, 0.75); }
[data-theme="light"] .oo-cx__btn--gold {
  background: #8A6B43;
  border-color: #8A6B43;
  color: #FFFFFF;
}
[data-theme="light"] .oo-cx__btn--dark {
  background: transparent;
  border-color: rgba(56, 47, 41, 0.45);
  color: #382F29;
}
@media (hover: hover) and (pointer: fine) {
  [data-theme="light"] .oo-cx__btn--gold:hover {
    background: #735735;
    border-color: #735735;
  }
  [data-theme="light"] .oo-cx__btn--dark:hover {
    background: #F7F4EE;
    border-color: #8A6B43;
    color: #382F29;
  }
}

/* Improve heading and eyebrow contrast across every light-mode section */
[data-theme="light"] h1,
[data-theme="light"] h2,
[data-theme="light"] h3,
[data-theme="light"] .oo-h1,
[data-theme="light"] .oo-h2,
[data-theme="light"] .oo-wd__head .oo-h2,
[data-theme="light"] .oo-es__title,
[data-theme="light"] .oo-rs__title,
[data-theme="light"] .oo-bp__title,
[data-theme="light"] .oo-cx__title {
  color: #382F29;
}
[data-theme="light"] h1 em,
[data-theme="light"] h2 em,
[data-theme="light"] h3 em,
[data-theme="light"] .oo-h1 em,
[data-theme="light"] .oo-h2 em,
[data-theme="light"] .oo-wd__head .oo-h2 em,
[data-theme="light"] .oo-es__title em,
[data-theme="light"] .oo-rs__title em,
[data-theme="light"] .oo-bp__title em,
[data-theme="light"] .oo-cx__title em {
  color: #8A6B43;
}
[data-theme="light"] .oo-eyebrow,
[data-theme="light"] .oo-wd__head > .oo-eyebrow,
[data-theme="light"] .oo-es__eyebrow,
[data-theme="light"] .oo-rs__intro > .oo-eyebrow,
[data-theme="light"] .oo-bp__eyebrow,
[data-theme="light"] .oo-cx__eyebrow {
  color: #5B4937;
}
[data-theme="light"] .oo-wd__head > .oo-eyebrow span,
[data-theme="light"] .oo-es__eyebrow span,
[data-theme="light"] .oo-rs__intro > .oo-eyebrow span,
[data-theme="light"] .oo-bp__eyebrow span,
[data-theme="light"] .oo-cx__eyebrow span {
  color: #8A6B43;
}
/* Keep labels over the dark hero image white for contrast. */
[data-theme="light"] .oo-hero .oo-eyebrow--light {
  color: rgba(247, 244, 238, 0.9);
}

/* Preserve light text over the hero image and dark footer in light mode */
[data-theme="light"] .oo-hero .oo-hero__title {
  color: #F7F4EE;
}
[data-theme="light"] .oo-hero .oo-hero__title em {
  color: #D8B98A;
}
[data-theme="light"] .oo-footer h2,
[data-theme="light"] .oo-footer h3,
[data-theme="light"] .oo-footer__big {
  color: #F7F4EE;
}
[data-theme="light"] .oo-footer h2 em,
[data-theme="light"] .oo-footer h3 em,
[data-theme="light"] .oo-footer__big em {
  color: #D8B98A;
}

/* Keep the dark image-backed story section readable in light mode */
[data-theme="light"] .oo-bp__title,
[data-theme="light"] .oo-bp__title .oo-bp__bold {
  color: #F7F4EE;
}
[data-theme="light"] .oo-bp__title em,
[data-theme="light"] .oo-bp__eyebrow {
  color: #D8B98A;
}

/* Dark mode: keep the overlay header transparent over the hero, then solid on scroll */
[data-theme="dark"] .oo-header--overlay:not(.is-solid) {
  background: transparent;
  border-bottom-color: transparent;
}
[data-theme="dark"] .oo-header--overlay:not(.is-solid)::before {
  display: block;
}
[data-theme="dark"] .oo-header--overlay.is-solid {
  background: #17110E;
  border-bottom-color: var(--nav-border);
}

/* ==========================================================
   Oak & Origin - products.css (Products page)
   S1  Banner (100vh): full-bleed photo, headline, clickable era timeline
   S2  Eras: sticky timeline rail beside five era chapters
   Only site colours are used. Logical properties keep RTL working.
   ========================================================== */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

.oo-pbpage {
  --pe-pad: clamp(56px, 8vw, 104px);
  --pe-gap: clamp(16px, 2vw, 28px);
  --pe-block: clamp(40px, 6vw, 72px);
  --pe-ease: cubic-bezier(.2, .8, .2, 1);
  --pe-line: color-mix(in srgb, var(--text-main) 26%, transparent);
  --pe-cream: #F7F4EE; --pe-sand: #D8CCBC; --pe-dark: #0F0B09;
  --oo-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --oo-content: 1280px;
  --oo-pad: clamp(20px, 4.5vw, 64px);
  display: block; padding: 0; overflow-x: clip;
}
[dir="rtl"] .oo-pbpage { --oo-serif: var(--font-body); }
.oo-pbpage *, .oo-pbpage *::before, .oo-pbpage *::after { box-sizing: border-box; }
.oo-pbpage :where(h1, h2, h3, h4, p, ol, ul, figure) { margin: 0; padding: 0; }
.oo-pbpage :where(ol, ul) { list-style: none; }

/* ---------- S1: banner ---------- */
.oo-pb {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; min-height: 100vh; min-height: 100svh;
  padding-block: var(--pe-pad);
  padding-top: calc(var(--pe-pad) + var(--oo-header-h, 72px));
  background: var(--pe-dark); color: var(--pe-cream);
}
.oo-pb__media { position: absolute; inset: 0; z-index: -2; }
.oo-pb__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; transform: scale(1); animation: pb-settle 2.6s var(--pe-ease) both; }
@keyframes pb-settle { from { transform: scale(1.12); } to { transform: scale(1); } }
.oo-pb::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(15, 11, 9, .9) 0, rgba(15, 11, 9, .62) 55%, rgba(15, 11, 9, .35) 100%),
    linear-gradient(0deg, rgba(15, 11, 9, .85) 0, rgba(15, 11, 9, 0) 45%);
}
.oo-pb__wrap { display: flex; flex-direction: column; justify-content: space-between; gap: var(--pe-gap); }
.oo-pb__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pe-gap); margin-block: auto; max-width: 58rem; }
.oo-pb__eyebrow { display: inline-flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--pe-sand); }
.oo-pb__eyebrow::before { content: ""; width: 44px; height: 2px; background: var(--pe-sand); transform-origin: left center; }
.oo-pb__title { font-family: var(--oo-serif, 'Cormorant Garamond', Georgia, serif); font-weight: 500; font-size: clamp(2.75rem, 7vw, 6.5rem); line-height: 1; letter-spacing: -.015em; color: var(--pe-cream); text-wrap: balance; }
.oo-pb__title em { font-style: italic; color: var(--pe-sand); }
[data-theme] .oo-pb .oo-pb__title { color: var(--pe-cream); }
[data-theme] .oo-pb .oo-pb__title em { color: var(--pe-sand); }
.oo-pb__lede { max-width: 40rem; font: 400 clamp(1.0625rem, 1.4vw, 1.25rem)/1.6 var(--font-body); color: rgba(247, 244, 238, .88); }
.oo-pb__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.oo-pb__btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 30px;
  background: var(--pe-cream); color: #382F29; border: 2px solid var(--pe-cream);
  font: 600 .9375rem/1 var(--font-body); letter-spacing: .08em; text-transform: uppercase; text-decoration: none;
  transition: background-color .25s ease, color .25s ease;
}
.oo-pb__btn:hover, .oo-pb__btn:focus-visible { background: var(--pe-sand); border-color: var(--pe-sand); }
.oo-pb__btn--ghost { background: transparent; color: var(--pe-cream); }
.oo-pb__btn--ghost:hover, .oo-pb__btn--ghost:focus-visible { background: var(--pe-cream); color: #382F29; border-color: var(--pe-cream); }
.oo-pb__btn:focus-visible { outline: 3px solid var(--pe-sand); outline-offset: 3px; }

/* era timeline: a ruled line with five equal stops */
.oo-pb__line { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); padding-top: var(--pe-gap); border-top: 2px solid rgba(247, 244, 238, .28); }
.oo-pb__line::before { content: ""; position: absolute; inset: -12px 0 auto 0; height: 10px; background: repeating-linear-gradient(90deg, rgba(247, 244, 238, .4) 0 2px, transparent 2px 14px); }
.oo-pb__line::after { content: ""; position: absolute; inset: -2px 0 auto 0; height: 2px; background: var(--pe-sand); transform-origin: left center; transform: scaleX(0); animation: pb-draw 1.8s var(--pe-ease) .5s forwards; }
@keyframes pb-draw { to { transform: scaleX(1); } }
.oo-pb__line li { position: relative; min-width: 0; }
.oo-pb__line a { position: relative; display: flex; flex-direction: column; gap: 4px; padding-inline-end: 12px; color: var(--pe-cream); text-decoration: none; }
.oo-pb__line i { position: absolute; inset-block-start: calc(var(--pe-gap) * -1 - 8px); inset-inline-start: 0; width: 14px; height: 14px; background: var(--pe-dark); border: 2px solid var(--pe-sand); transition: background-color .25s ease; }
.oo-pb__line b { font: 500 clamp(1.125rem, 1.7vw, 1.5rem)/1.2 var(--oo-serif, 'Cormorant Garamond', Georgia, serif); transition: color .25s ease; }
.oo-pb__line span { font: 500 .9375rem/1.4 var(--font-body); letter-spacing: .04em; color: rgba(247, 244, 238, .82); }
.oo-pb__line a:hover i, .oo-pb__line a:focus-visible i { background: var(--pe-sand); }
.oo-pb__line a:hover b, .oo-pb__line a:focus-visible b { color: var(--pe-sand); }
.oo-pb__line a:focus-visible { outline: 3px solid var(--pe-sand); outline-offset: 6px; }
.oo-pb__copy > *, .oo-pb__line li { animation: pb-rise .9s var(--pe-ease) both; }
.oo-pb__copy > :nth-child(1) { animation-delay: .15s; } .oo-pb__copy > :nth-child(2) { animation-delay: .28s; }
.oo-pb__copy > :nth-child(3) { animation-delay: .42s; } .oo-pb__copy > :nth-child(4) { animation-delay: .54s; }
.oo-pb__line li { animation-delay: calc(.8s + var(--i, 0) * .12s); }
@keyframes pb-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

/* ---------- S2: eras ---------- */
.oo-pe { position: relative; padding-block: var(--pe-pad); background: var(--bg-main); color: var(--text-main); }
.oo-pe__head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pe-gap); margin-bottom: var(--pe-block); }
.oo-pe__eyebrow { display: inline-flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); }
.oo-pe__eyebrow::before { content: ""; width: 44px; height: 2px; background: var(--text-main); }
.oo-pe__title { font-family: var(--oo-serif, 'Cormorant Garamond', Georgia, serif); font-weight: 500; font-size: clamp(2.25rem, 5vw, 4.25rem); line-height: 1.05; letter-spacing: -.01em; color: var(--text-main); text-wrap: balance; }
.oo-pe__title em, .oo-pe__name em { font-style: italic; color: #8A6B43; }
[data-theme="dark"] .oo-pe__title em { color: var(--pe-sand); }
.oo-pe__lede { max-width: 40rem; font: 400 clamp(1.0625rem, 1.3vw, 1.1875rem)/1.65 var(--font-body); color: var(--text-muted); }

.oo-pe__grid { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: calc(var(--pe-gap) * 2.5); align-items: start; }

/* rail */
.oo-pe__rail { position: sticky; inset-block-start: calc(var(--oo-header-h, 72px) + var(--pe-gap)); }
.oo-pe__rail ol { --p: 0; position: relative; display: flex; flex-direction: column; gap: var(--pe-gap); padding-inline-start: 34px; }
.oo-pe__rail ol::before, .oo-pe__rail ol::after { content: ""; position: absolute; inset-block-start: 7px; inset-inline-start: 6px; width: 2px; }
.oo-pe__rail ol::before { inset-block-end: 7px; background: var(--pe-line); }
.oo-pe__rail ol::after { height: calc((100% - 14px) * var(--p)); background: var(--text-main); }
.oo-pe__rail li { position: relative; }
.oo-pe__rail a { display: flex; flex-direction: column; gap: 2px; color: var(--text-muted); text-decoration: none; transition: color .3s ease, transform .4s var(--pe-ease); }
.oo-pe__rail i { position: absolute; inset-block-start: 6px; inset-inline-start: -34px; width: 14px; height: 14px; background: var(--bg-main); border: 2px solid var(--text-muted); z-index: 1; transition: background-color .3s ease, border-color .3s ease; }
.oo-pe__rail b { font: 500 1.375rem/1.2 var(--oo-serif, 'Cormorant Garamond', Georgia, serif); }
.oo-pe__rail span { font: 500 .9375rem/1.4 var(--font-body); letter-spacing: .04em; }
.oo-pe__rail a:hover, .oo-pe__rail a:focus-visible, .oo-pe__rail a.is-active { color: var(--text-main); }
.oo-pe__rail b, .oo-pe__rail span { transition: transform .4s var(--pe-ease); }
.oo-pe__rail a.is-active b, .oo-pe__rail a.is-active span { transform: translateX(4px); }
.oo-pe__rail a.is-active i, .oo-pe__rail a:hover i { background: var(--text-main); border-color: var(--text-main); }
.oo-pe__rail a:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 4px; }

/* chapters */
.oo-pe__list { min-width: 0; }
.oo-pe__era { scroll-margin-top: calc(var(--oo-header-h, 72px) + var(--pe-gap)); }
.oo-pe__era + .oo-pe__era { margin-top: var(--pe-block); padding-top: var(--pe-block); border-top: 2px solid var(--pe-line); }
.oo-pe__era-head { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.05fr); gap: var(--pe-gap) calc(var(--pe-gap) * 1.5); align-items: end; margin-bottom: calc(var(--pe-gap) * 1.5); }
.oo-pe__no { font: 500 clamp(4rem, 7vw, 6.5rem)/.8 var(--oo-serif, 'Cormorant Garamond', Georgia, serif); color: transparent; -webkit-text-stroke: 1.5px var(--text-main); font-variant-numeric: lining-nums; }
.oo-pe__id { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.oo-pe__years { font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--text-muted); }
.oo-pe__name { font: 500 clamp(2rem, 3.4vw, 3.1rem)/1.05 var(--oo-serif, 'Cormorant Garamond', Georgia, serif); letter-spacing: -.01em; color: var(--text-main); text-wrap: balance; }
.oo-pe__desc { font: 400 1.0625rem/1.65 var(--font-body); color: var(--text-muted); }

.oo-pe__items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pe-gap); }
.oo-pe__item { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.oo-pe__fig { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: color-mix(in srgb, var(--text-main) 8%, transparent); clip-path: inset(0 0 0 0); transition: clip-path 1s var(--pe-ease) calc(var(--k, 0) * .14s); }
.oo-pe__fig::after { content: ""; position: absolute; inset: auto 0 0 0; height: 3px; background: var(--text-main); transform: scaleX(0); transform-origin: left center; transition: transform .6s var(--pe-ease); }
.oo-pe__item:hover .oo-pe__fig::after, .oo-pe__item:focus-within .oo-pe__fig::after { transform: scaleX(1); }
.oo-pe__fig img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; transform: scale(1); transition: transform 1.4s var(--pe-ease) calc(var(--k, 0) * .14s); }
.oo-pe__item:hover .oo-pe__fig img { transform: scale(1.05); }
.oo-pe__pname { font: 600 1.0625rem/1.35 var(--font-body); color: var(--text-main); }
.oo-pe__buy { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid var(--pe-line); }
.oo-pe__price { font: 500 1.0625rem/1.3 var(--font-body); color: var(--text-muted); }
.oo-pe__add { min-height: 44px; padding: 0 16px; background: transparent; color: var(--text-main); border: 1px solid var(--text-main); font: 600 .875rem/1.2 var(--font-body); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.oo-pe__add:hover, .oo-pe__add:focus-visible, .oo-pe__add.is-added { background: var(--accent); color: var(--accent-contrast); }
.oo-pe__add:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.oo-pe__status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* chapter entrance (only when JS runs) */
.pe-js .oo-pe__era:not(.is-in) .oo-pe__fig { clip-path: inset(100% 0 0 0); }
.pe-js .oo-pe__era:not(.is-in) .oo-pe__fig img { transform: scale(1.18); }
.pe-js .oo-pe__era .oo-pe__era-head > *, .pe-js .oo-pe__era .oo-pe__pname, .pe-js .oo-pe__era .oo-pe__buy { transition: opacity .8s var(--pe-ease), transform .8s var(--pe-ease); }
.pe-js .oo-pe__era:not(.is-in) .oo-pe__era-head > *, .pe-js .oo-pe__era:not(.is-in) .oo-pe__pname, .pe-js .oo-pe__era:not(.is-in) .oo-pe__buy { opacity: 0; transform: translateY(16px); }
.pe-js .oo-pe__era-head > :nth-child(2) { transition-delay: .1s; } .pe-js .oo-pe__era-head > :nth-child(3) { transition-delay: .2s; }

/* tablet: rail becomes a sticky strip */
@media (max-width: 1024px) {
  .oo-pe__grid { grid-template-columns: minmax(0, 1fr); gap: var(--pe-gap); }
  .oo-pe__rail { inset-block-start: var(--oo-header-h, 64px); z-index: 5; margin-inline: calc(var(--oo-pad, 20px) * -1); padding-inline: var(--oo-pad, 20px); background: var(--bg-main); border-bottom: 2px solid var(--pe-line); }
  .oo-pe__rail ol { flex-direction: row; gap: 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
  .oo-pe__rail ol::before, .oo-pe__rail ol::after, .oo-pe__rail i { display: none; }
  .oo-pe__rail li { flex: none; }
  .oo-pe__rail a { padding: 12px 20px 10px; border-bottom: 3px solid transparent; margin-bottom: -2px; }
  .oo-pe__rail a.is-active { border-bottom-color: var(--text-main); }
  .oo-pe__rail a.is-active b, .oo-pe__rail a.is-active span { transform: none; }
  .oo-pe__era-head { grid-template-columns: auto minmax(0, 1fr); }
  .oo-pe__desc { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .oo-pb__line { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(132px, 1fr); overflow-x: auto; scrollbar-width: none; }
  .oo-pe__items { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .oo-pe__item { scroll-snap-align: start; }
  .oo-pe__era-head { grid-template-columns: minmax(0, 1fr); }
  .oo-pe__no { font-size: 4rem; }
}
@media (prefers-reduced-motion: reduce) {
  .oo-pb *, .oo-pb__media img { animation: none !important; }
  .oo-pb__line::after { transform: none; }
  .pe-js .oo-pe__era:not(.is-in) .oo-pe__fig { clip-path: inset(0 0 0 0); }
  .pe-js .oo-pe__era:not(.is-in) .oo-pe__fig img { transform: none; }
  .pe-js .oo-pe__era:not(.is-in) .oo-pe__era-head > *, .pe-js .oo-pe__era:not(.is-in) .oo-pe__pname, .pe-js .oo-pe__era:not(.is-in) .oo-pe__buy { opacity: 1; transform: none; }
  .oo-pe__era *, .oo-pe__rail * { transition: none !important; }
}
/* ---------- S3: timber by era (five wood-grain segments joined into one band, text aligned beneath each) ---------- */
.oo-pt { position: relative; padding-block: var(--pe-pad); background: color-mix(in srgb, var(--text-main) 5%, var(--bg-main)); color: var(--text-main); }
.oo-pt__head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--pe-gap) calc(var(--pe-gap) * 3); align-items: end; margin-bottom: var(--pe-block); }
.oo-pt__title { font-family: var(--oo-serif, 'Cormorant Garamond', Georgia, serif); font-weight: 500; font-size: clamp(2.25rem, 5vw, 4.25rem); line-height: 1.05; letter-spacing: -.01em; color: var(--text-main); text-wrap: balance; }
.oo-pt__title em { font-style: italic; color: #8A6B43; }
[data-theme="dark"] .oo-pt__title em { color: var(--pe-sand); }
.oo-pt__side { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pe-gap); }
.oo-pt__lede { max-width: 36rem; font: 400 clamp(1.0625rem, 1.3vw, 1.1875rem)/1.65 var(--font-body); color: var(--text-muted); }
.oo-pt__link { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; font: 600 .9375rem/1.2 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--text-main); text-decoration: none; border-bottom: 2px solid var(--text-main); transition: gap .3s var(--pe-ease); }
.oo-pt__link svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.oo-pt__link:hover, .oo-pt__link:focus-visible { gap: 18px; }
.oo-pt__link:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 4px; }
.oo-pt__row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.oo-pt__item { display: flex; flex-direction: column; gap: var(--pe-gap); min-width: 0; }
.oo-pt__fig { position: relative; height: clamp(240px, 28vw, 360px); overflow: hidden; background: color-mix(in srgb, var(--text-main) 12%, transparent); clip-path: inset(0 0 0 0); transition: clip-path 1s var(--pe-ease) calc(var(--k, 0) * .14s); }
.oo-pt__fig img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.03); transform-origin: 50% 0; transition: transform 1.6s var(--pe-ease) calc(var(--k, 0) * .14s); }
.oo-pt__item:hover .oo-pt__fig img { transform: scale(1.08); }
.oo-pt__item + .oo-pt__item .oo-pt__fig::before { content: ""; position: absolute; inset-block: 0; inset-inline-start: 0; width: 2px; background: color-mix(in srgb, var(--text-main) 5%, var(--bg-main)); z-index: 1; }
.oo-pt__no { position: absolute; inset-block-start: 0; inset-inline-start: 0; z-index: 2; display: grid; place-items: center; width: 52px; height: 52px; background: var(--bg-main); color: var(--text-main); font: 500 1.5rem/1 var(--oo-serif, 'Cormorant Garamond', Georgia, serif); }
.oo-pt__txt { display: flex; flex-direction: column; gap: 8px; padding-inline-end: var(--pe-gap); }
.oo-pt__era { display: flex; flex-direction: column; gap: 2px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.oo-pt__wood { font: 500 clamp(1.75rem, 2.4vw, 2.25rem)/1.1 var(--oo-serif, 'Cormorant Garamond', Georgia, serif); color: var(--text-main); }
.oo-pt__note { font: 400 1rem/1.6 var(--font-body); color: var(--text-muted); }
.pe-js .oo-pt:not(.is-in) .oo-pt__fig { clip-path: inset(100% 0 0 0); }
.pe-js .oo-pt:not(.is-in) .oo-pt__fig img { transform: scale(1.18); }
.pe-js .oo-pt .oo-pt__head > *, .pe-js .oo-pt .oo-pt__txt { transition: opacity .8s var(--pe-ease) calc(var(--k, 0) * .14s + .1s), transform .8s var(--pe-ease) calc(var(--k, 0) * .14s + .1s); }
.pe-js .oo-pt:not(.is-in) .oo-pt__head > *, .pe-js .oo-pt:not(.is-in) .oo-pt__txt { opacity: 0; transform: translateY(16px); }
@media (max-width: 1024px) {
  .oo-pt__head { grid-template-columns: minmax(0, 1fr); }
  .oo-pt__row { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 38%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .oo-pt__item { scroll-snap-align: start; }
}
@media (max-width: 640px) { .oo-pt__row { grid-auto-columns: 72%; } }
@media (prefers-reduced-motion: reduce) {
  .pe-js .oo-pt:not(.is-in) .oo-pt__fig { clip-path: inset(0 0 0 0); }
  .pe-js .oo-pt:not(.is-in) .oo-pt__fig img { transform: none; }
  .pe-js .oo-pt:not(.is-in) .oo-pt__head > *, .pe-js .oo-pt:not(.is-in) .oo-pt__txt { opacity: 1; transform: none; }
  .oo-pt * { transition: none !important; }
}
[dir="rtl"] .oo-pt__link, [dir="rtl"] .oo-pt__era { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-pt__link svg { transform: scaleX(-1); }
/* RTL */
[dir="rtl"] .oo-pb__eyebrow, [dir="rtl"] .oo-pb__btn, [dir="rtl"] .oo-pb__line span, [dir="rtl"] .oo-pe__eyebrow, [dir="rtl"] .oo-pe__years, [dir="rtl"] .oo-pe__add { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-pb__line::after, [dir="rtl"] .oo-pe__fig::after { transform-origin: right center; }
[dir="rtl"] .oo-pb__eyebrow::before { transform-origin: right center; }

/* ==========================================================
   Products / S4 How we date a piece, S5 Visit
   One padding token (--pe-pad) top and bottom, one gap (--pe-gap). Only site colours are used.
   ========================================================== */
.oo-pa { padding-block: var(--pe-pad); background: var(--bg-main); color: var(--text-main); }
.oo-pa__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: calc(var(--pe-gap) * 2.5); align-items: stretch; }
.oo-pa__stage { position: relative; isolation: isolate; min-height: clamp(440px, 46vw, 620px); overflow: hidden; background: color-mix(in srgb, var(--text-main) 12%, transparent); }
.oo-pa__stage img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 2s var(--pe-ease); }
.oo-pa__stage::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,11,9,.1), rgba(15,11,9,.35)); pointer-events: none; }
.oo-pa__h, .oo-pa__v { position: absolute; background: #F7F4EE; box-shadow: 0 0 0 1px rgba(15,11,9,.35); pointer-events: none; transition: top .7s var(--pe-ease), left .7s var(--pe-ease); }
.oo-pa__h { inset-inline: 0; top: var(--y); height: 1px; }
.oo-pa__v { inset-block: 0; left: var(--x); width: 1px; }
.oo-pa__pt { position: absolute; left: var(--x); top: var(--y); display: grid; place-items: center; width: 40px; height: 40px; padding: 0; transform: translate(-50%, -50%); border: 2px solid #F7F4EE; background: rgba(15,11,9,.62); color: #F7F4EE; font: 600 .9375rem/1 var(--font-body); cursor: pointer; transition: background-color .3s ease, color .3s ease, transform .4s var(--pe-ease); }
.oo-pa__pt:hover { transform: translate(-50%, -50%) scale(1.1); }
.oo-pa__pt.is-active { background: #F7F4EE; color: #0F0B09; transform: translate(-50%, -50%) scale(1.15); }
.oo-pa__pt:focus-visible, .oo-pa__row:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.oo-pa__stage .oo-pa__pt:focus-visible { outline-color: #F7F4EE; }
.oo-pa__body { display: flex; flex-direction: column; gap: var(--pe-gap); min-width: 0; }
.oo-pa__eyebrow { display: flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.oo-pa__eyebrow::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.oo-pa__title { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2.25rem, 4.4vw, 3.75rem); line-height: 1.05; letter-spacing: -.01em; color: var(--text-main); text-wrap: balance; }
.oo-pa__title em { font-style: italic; color: #8A6B43; }
[data-theme="dark"] .oo-pa__title em { color: var(--pe-sand); }
.oo-pa__lede { font: 400 1.0625rem/1.6 var(--font-body); color: var(--text-muted); max-width: 44ch; }
.oo-pa__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--pe-line); }
.oo-pa__item { position: relative; border-bottom: 1px solid var(--pe-line); }
.oo-pa__row { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: baseline; width: 100%; padding: var(--pe-gap) 0; background: none; border: 0; text-align: start; color: var(--text-main); cursor: pointer; font: inherit; }
.oo-pa__row b { font: 500 1.5rem/1 var(--oo-serif); color: var(--text-muted); transition: color .3s ease; }
.oo-pa__row span { font: 500 clamp(1.5rem, 2.2vw, 1.875rem)/1.1 var(--oo-serif); transition: color .3s ease, transform .4s var(--pe-ease); }
.oo-pa__row:hover span { transform: translateX(6px); }
.oo-pa__more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--pe-ease); }
.oo-pa__more > p { overflow: hidden; margin: 0; padding-inline-start: 56px; font: 400 1rem/1.6 var(--font-body); color: var(--text-muted); }
.oo-pa__item.is-active .oo-pa__more { grid-template-rows: 1fr; }
.oo-pa__item.is-active .oo-pa__more > p { padding-bottom: var(--pe-gap); }
.oo-pa__item.is-active .oo-pa__row b, .oo-pa__item.is-active .oo-pa__row span { color: #8A6B43; }
[data-theme="dark"] .oo-pa__item.is-active .oo-pa__row b, [data-theme="dark"] .oo-pa__item.is-active .oo-pa__row span { color: var(--pe-sand); }
.oo-pa__bar { position: absolute; inset-inline: 0; bottom: -1px; height: 2px; background: var(--text-main); transform: scaleX(0); transform-origin: left; }
.oo-pa__item.is-active .oo-pa__bar { animation: paBar 6s linear forwards; }
.oo-pa.is-paused .oo-pa__bar { animation-play-state: paused; }
.oo-pa.no-auto .oo-pa__item.is-active .oo-pa__bar { animation: none; transform: scaleX(1); }
@keyframes paBar { to { transform: scaleX(1); } }
.pe-js .oo-pa:not(.is-in) .oo-pa__stage { clip-path: inset(0 0 100% 0); }
.pe-js .oo-pa .oo-pa__stage { transition: clip-path 1.1s var(--pe-ease); }
.pe-js .oo-pa:not(.is-in) .oo-pa__stage img { transform: scale(1.15); }
.pe-js .oo-pa:not(.is-in) .oo-pa__pt { opacity: 0; }
.pe-js .oo-pa .oo-pa__pt { transition: background-color .3s ease, color .3s ease, transform .4s var(--pe-ease), opacity .5s ease calc(.7s + var(--pi, 0) * .12s); }
.pe-js .oo-pa:not(.is-in) .oo-pa__body > *, .pe-js .oo-pa:not(.is-in) .oo-pa__item { opacity: 0; transform: translateY(18px); }
.pe-js .oo-pa .oo-pa__body > *, .pe-js .oo-pa .oo-pa__item { transition: opacity .8s var(--pe-ease), transform .8s var(--pe-ease); }
.pe-js .oo-pa .oo-pa__item { transition-delay: calc(.3s + var(--pi, 0) * .1s); }

.oo-pv { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--pe-pad); background: #0F0B09; color: #F7F4EE; }
.oo-pv__slats { position: absolute; inset: 0; z-index: -2; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; background: #0F0B09; }
.oo-pv__slats i { position: relative; overflow: hidden; background: #2a211c; transform-origin: bottom; }
.oo-pv__slats img { position: absolute; top: 0; inset-inline-start: calc(var(--k) * -100%); width: 500%; max-width: none; height: 100%; object-fit: cover; }
.oo-pv::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(15,11,9,.88) 0%, rgba(15,11,9,.7) 55%, rgba(15,11,9,.55) 100%); }
.oo-pv__wrap { display: flex; flex-direction: column; gap: var(--pe-block); }
.oo-pv__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pe-gap); max-width: 46rem; }
.oo-pv__eyebrow { display: flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--pe-sand); }
.oo-pv__eyebrow::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.oo-pv__title { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2.5rem, 6vw, 5rem); line-height: 1.02; letter-spacing: -.01em; color: #F7F4EE; text-wrap: balance; }
.oo-pv__title em { font-style: italic; color: var(--pe-sand); }
.oo-pv__lede { font: 400 1.125rem/1.6 var(--font-body); color: rgba(247,244,238,.85); max-width: 46ch; }
.oo-pv__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pe-gap) calc(var(--pe-gap) * 1.5); }
.oo-pv__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 32px; background: #F7F4EE; color: #0F0B09; font: 700 1rem/1.2 var(--font-body); text-decoration: none; transition: background-color .3s ease, transform .3s var(--pe-ease); }
.oo-pv__btn:hover, .oo-pv__btn:focus-visible { background: var(--pe-sand); transform: translateY(-3px); }
.oo-pv__link { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; font: 600 .9375rem/1.2 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: #F7F4EE; text-decoration: none; border-bottom: 2px solid #F7F4EE; transition: gap .3s var(--pe-ease); }
.oo-pv__link svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.oo-pv__link:hover, .oo-pv__link:focus-visible { gap: 18px; }
.oo-pv__btn:focus-visible, .oo-pv__link:focus-visible, .oo-pv__facts a:focus-visible { outline: 3px solid #F7F4EE; outline-offset: 4px; }
.oo-pv__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--pe-gap) * 2); margin: 0; }
.oo-pv__facts > div { display: flex; flex-direction: column; gap: 8px; padding-top: var(--pe-gap); border-top: 1px solid rgba(247,244,238,.45); position: relative; }
.oo-pv__facts > div::before { content: ""; position: absolute; inset-inline-start: 0; top: -1px; height: 3px; width: 100%; background: var(--pe-sand); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--pe-ease); }
.oo-pv__facts > div:hover::before { transform: scaleX(1); }
.oo-pv__facts dt { font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--pe-sand); }
.oo-pv__facts dd { margin: 0; font: 500 clamp(1.375rem, 2vw, 1.75rem)/1.25 var(--oo-serif); color: #F7F4EE; }
.oo-pv__facts a { color: inherit; text-decoration: none; }
.oo-pv__facts a:hover { text-decoration: underline; text-underline-offset: 5px; }
.pe-js .oo-pv:not(.is-in) .oo-pv__slats i { transform: scaleY(0); }
.pe-js .oo-pv .oo-pv__slats i { transition: transform 1.1s var(--pe-ease) calc(var(--k) * .12s); }
.pe-js .oo-pv:not(.is-in) .oo-pv__copy > *, .pe-js .oo-pv:not(.is-in) .oo-pv__facts > div { opacity: 0; transform: translateY(20px); }
.pe-js .oo-pv .oo-pv__copy > *, .pe-js .oo-pv .oo-pv__facts > div { transition: opacity .8s var(--pe-ease), transform .8s var(--pe-ease); }
.pe-js .oo-pv .oo-pv__copy > :nth-child(1) { transition-delay: .5s; } .pe-js .oo-pv .oo-pv__copy > :nth-child(2) { transition-delay: .6s; } .pe-js .oo-pv .oo-pv__copy > :nth-child(3) { transition-delay: .7s; } .pe-js .oo-pv .oo-pv__copy > :nth-child(4) { transition-delay: .8s; }
.pe-js .oo-pv .oo-pv__facts > div:nth-child(1) { transition-delay: .9s; } .pe-js .oo-pv .oo-pv__facts > div:nth-child(2) { transition-delay: 1s; } .pe-js .oo-pv .oo-pv__facts > div:nth-child(3) { transition-delay: 1.1s; }

@media (max-width: 960px) {
  .oo-pa__grid { grid-template-columns: minmax(0, 1fr); gap: var(--pe-block); }
  .oo-pa__stage { min-height: 0; aspect-ratio: 4 / 5; }
  .oo-pv__facts { grid-template-columns: minmax(0, 1fr); gap: var(--pe-gap); }
}
@media (max-width: 560px) { .oo-pv__slats { grid-template-columns: repeat(5, minmax(0, 1fr)); } .oo-pv::after { background: rgba(15,11,9,.78); } }
@media (prefers-reduced-motion: reduce) {
  .oo-pa *, .oo-pv * { transition: none !important; animation: none !important; }
  .pe-js .oo-pa .oo-pa__stage, .pe-js .oo-pa .oo-pa__stage img, .pe-js .oo-pa .oo-pa__pt, .pe-js .oo-pa .oo-pa__body > *, .pe-js .oo-pa .oo-pa__item, .pe-js .oo-pv .oo-pv__slats i, .pe-js .oo-pv .oo-pv__copy > *, .pe-js .oo-pv .oo-pv__facts > div { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
[dir="rtl"] .oo-pv__link svg { transform: scaleX(-1); }
[dir="rtl"] .oo-pa__eyebrow, [dir="rtl"] .oo-pv__eyebrow, [dir="rtl"] .oo-pv__link, [dir="rtl"] .oo-pv__facts dt { letter-spacing: 0; }
[dir="rtl"] .oo-pa__h, [dir="rtl"] .oo-pa__v, [dir="rtl"] .oo-pa__pt { direction: ltr; }

/* ==========================================================
   Restoration page: S1 banner (100vh), S2 what we restore
   Same tokens as the Products page (--pe-pad, --pe-gap, --pe-block). Only site colours are used.
   ========================================================== */
.oo-rb { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); min-height: 100vh; min-height: 100svh; background: var(--pe-dark); color: var(--pe-cream); }
.oo-rb__copy { display: flex; flex-direction: column; justify-content: space-between; gap: var(--pe-block); --rb-pad: clamp(36px, 6vh, 64px); padding-block: var(--rb-pad); padding-top: calc(var(--rb-pad) + var(--oo-header-h, 72px)); padding-inline: max(var(--oo-pad), calc((100vw - var(--oo-content)) / 2 + var(--oo-pad))) var(--pe-block); min-width: 0; }
.oo-rb__main { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pe-gap); margin-block: auto; }
.oo-rb__eyebrow { display: flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--pe-sand); }
.oo-rb__eyebrow::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.oo-rb__title { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2.5rem, min(6.2vw, 10vh), 5.75rem); line-height: 1; letter-spacing: -.015em; color: var(--pe-cream); text-wrap: balance; }
.oo-rb__title em { font-style: italic; color: var(--pe-sand); }
.oo-rb__lede { max-width: 46ch; font: 400 1.125rem/1.6 var(--font-body); color: rgba(247,244,238,.85); }
.oo-rb__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pe-gap) calc(var(--pe-gap) * 1.5); }
.oo-rb__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 32px; background: var(--pe-cream); color: var(--pe-dark); font: 700 1rem/1.2 var(--font-body); text-decoration: none; transition: background-color .3s ease, transform .3s var(--pe-ease); }
.oo-rb__btn:hover, .oo-rb__btn:focus-visible { background: var(--pe-sand); transform: translateY(-3px); }
.oo-rb__link { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; font: 600 .9375rem/1.2 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--pe-cream); text-decoration: none; border-bottom: 2px solid var(--pe-cream); transition: gap .3s var(--pe-ease); }
.oo-rb__link svg, .oo-rs__link svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.oo-rb__link:hover, .oo-rb__link:focus-visible, .oo-rs__link:hover, .oo-rs__link:focus-visible { gap: 18px; }
.oo-rb__btn:focus-visible, .oo-rb__link:focus-visible { outline: 3px solid var(--pe-cream); outline-offset: 4px; }
.oo-rb__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pe-gap) calc(var(--pe-gap) * 1.5); margin: 0; }
.oo-rb__facts > div { display: flex; flex-direction: column; gap: 6px; padding-top: var(--pe-gap); border-top: 1px solid rgba(247,244,238,.45); }
.oo-rb__facts dt { font: 500 clamp(1.25rem, 1.8vw, 1.625rem)/1.15 var(--oo-serif); color: var(--pe-cream); }
.oo-rb__facts dd { margin: 0; font: 400 .9375rem/1.45 var(--font-body); color: rgba(247,244,238,.78); }
.oo-rb__media { position: relative; isolation: isolate; margin: 0; overflow: hidden; min-height: 320px; background: #2a211c; }
.oo-rb__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: rbSettle 2.6s var(--pe-ease) both; }
.oo-rb__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(15,11,9,.75) 0%, rgba(15,11,9,0) 40%); pointer-events: none; }
.oo-rb__media figcaption { position: absolute; z-index: 2; inset-inline-start: var(--pe-block); inset-block-end: clamp(36px, 6vh, 64px); font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--pe-cream); }
.oo-rb__rule { position: absolute; z-index: 2; inset-block: 0; inset-inline-start: 0; width: 28px; background: repeating-linear-gradient(180deg, var(--pe-sand) 0 1px, transparent 1px 12px), repeating-linear-gradient(180deg, var(--pe-sand) 0 2px, transparent 2px 60px); background-size: 14px 100%, 28px 100%; background-repeat: no-repeat; transform-origin: top; animation: rbRule 1.6s var(--pe-ease) .3s both; }
@keyframes rbSettle { from { transform: scale(1.14); } to { transform: scale(1); } }
@keyframes rbRule { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.pe-js .oo-rb__main > *, .pe-js .oo-rb__facts > div { animation: rbRise .9s var(--pe-ease) both; }
.pe-js .oo-rb__main > :nth-child(1) { animation-delay: .15s; } .pe-js .oo-rb__main > :nth-child(2) { animation-delay: .25s; } .pe-js .oo-rb__main > :nth-child(3) { animation-delay: .4s; } .pe-js .oo-rb__main > :nth-child(4) { animation-delay: .5s; }
.pe-js .oo-rb__facts > div:nth-child(1) { animation-delay: .65s; } .pe-js .oo-rb__facts > div:nth-child(2) { animation-delay: .75s; } .pe-js .oo-rb__facts > div:nth-child(3) { animation-delay: .85s; }
@keyframes rbRise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

.oo-rs { padding-block: var(--pe-pad); background: var(--bg-main); color: var(--text-main); }
.oo-rs__head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--pe-gap) calc(var(--pe-gap) * 3); align-items: end; margin-bottom: var(--pe-block); }
.oo-rs__titles { display: flex; flex-direction: column; gap: var(--pe-gap); }
.oo-rs__eyebrow { display: flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.oo-rs__eyebrow::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.oo-rs__title { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2.25rem, 5vw, 4.25rem); line-height: 1.05; letter-spacing: -.01em; color: var(--text-main); }
.oo-rs__title em { font-style: italic; color: #8A6B43; }
[data-theme="dark"] .oo-rs__title em { color: var(--pe-sand); }
.oo-rs__side { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pe-gap); }
.oo-rs__lede { font: 400 1.0625rem/1.6 var(--font-body); color: var(--text-muted); max-width: 46ch; }
.oo-rs__link { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; font: 600 .9375rem/1.2 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--text-main); text-decoration: none; border-bottom: 2px solid var(--text-main); transition: gap .3s var(--pe-ease); }
.oo-rs__link:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 4px; }
.oo-rs__list { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--pe-line); }
.oo-rs__row { position: relative; isolation: isolate; display: grid; grid-template-columns: 72px minmax(0, 1.1fr) minmax(0, 1.3fr) minmax(0, 220px); align-items: center; gap: var(--pe-gap) calc(var(--pe-gap) * 1.5); padding: calc(var(--pe-gap) * 1.4) 0; border-top: 1px solid var(--pe-line); color: var(--text-main); transition: color .5s var(--pe-ease), padding .5s var(--pe-ease); }
.oo-rs__row::before { content: ""; position: absolute; inset-block: 0; inset-inline: calc(50% - 50vw); z-index: -1; background: var(--text-main); transform: scaleY(0); transform-origin: bottom; transition: transform .55s var(--pe-ease); }
.oo-rs__no { font: 500 1.5rem/1 var(--oo-serif); color: var(--text-muted); transition: color .4s ease; }
.oo-rs__name { margin: 0; font: 500 clamp(1.875rem, 3.4vw, 3rem)/1.05 var(--oo-serif); letter-spacing: -.01em; color: var(--text-main); transition: color .5s var(--pe-ease), transform .5s var(--pe-ease); }
.oo-rs__row:hover .oo-rs__name, .oo-rs__row:focus-within .oo-rs__name { color: var(--bg-main); transform: translateX(10px); }
.oo-rs__txt { display: flex; flex-direction: column; gap: 10px; }
.oo-rs__txt p { margin: 0; font: 400 1rem/1.6 var(--font-body); color: var(--text-muted); transition: color .4s ease; }
.oo-rs__txt .oo-rs__time { font-weight: 600; font-size: .9375rem; color: var(--text-main); }
.oo-rs__time span { margin-inline-end: 8px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); transition: color .4s ease; }
.oo-rs__peek { position: absolute; z-index: 3; inset-inline-end: 0; top: 50%; width: 220px; aspect-ratio: 4 / 5; margin: 0; overflow: hidden; background: color-mix(in srgb, var(--text-main) 14%, transparent); transform: translateY(-50%); clip-path: inset(0 0 100% 0); transition: clip-path .6s var(--pe-ease); pointer-events: none; box-shadow: var(--shadow-soft); }
.oo-rs__peek img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.2); transition: transform 1s var(--pe-ease); }
.oo-rs__row:hover, .oo-rs__row:focus-within { color: var(--bg-main); }
.oo-rs__row:hover::before, .oo-rs__row:focus-within::before { transform: scaleY(1); }
.oo-rs__row:hover .oo-rs__no, .oo-rs__row:hover .oo-rs__txt p, .oo-rs__row:hover .oo-rs__time, .oo-rs__row:hover .oo-rs__time span { color: var(--bg-main); }
.oo-rs__row:hover .oo-rs__peek { clip-path: inset(0); }
.oo-rs__row:hover .oo-rs__peek img { transform: scale(1); }
.pe-js .oo-rs:not(.is-in) .oo-rs__row { opacity: 0; transform: translateY(24px); }
.pe-js .oo-rs .oo-rs__row { transition: color .5s var(--pe-ease), opacity .8s var(--pe-ease) calc(var(--k) * .12s), transform .8s var(--pe-ease) calc(var(--k) * .12s); }
.pe-js .oo-rs:not(.is-in) .oo-rs__head > * { opacity: 0; transform: translateY(18px); }
.pe-js .oo-rs .oo-rs__head > * { transition: opacity .8s var(--pe-ease), transform .8s var(--pe-ease); }

@media (max-width: 960px) {
  .oo-rb { grid-template-columns: minmax(0, 1fr); }
  .oo-rb__copy { padding-inline: var(--oo-pad); }
  .oo-rb__media { min-height: 0; aspect-ratio: 4 / 3; }
  .oo-rb__facts { grid-template-columns: minmax(0, 1fr); }
  .oo-rs__head { grid-template-columns: minmax(0, 1fr); }
  .oo-rs__row { grid-template-columns: 56px minmax(0, 1fr); }
  .oo-rs__row > .oo-rs__txt, .oo-rs__row > .oo-rs__peek { grid-column: 2; }
  .oo-rs__peek { position: relative; inset: auto; transform: none; width: 100%; aspect-ratio: 4 / 3; clip-path: none; box-shadow: none; }
  .oo-rs__peek img { transform: none; }
  .oo-rs__row::before { display: none; }
  .oo-rs__row:hover, .oo-rs__row:focus-within { color: var(--text-main); }
  .oo-rs__row:hover .oo-rs__name, .oo-rs__row:focus-within .oo-rs__name { color: var(--text-main); transform: none; }
  .oo-rs__row:hover .oo-rs__no, .oo-rs__row:hover .oo-rs__txt p, .oo-rs__row:hover .oo-rs__time span { color: var(--text-muted); }
  .oo-rs__row:hover .oo-rs__time { color: var(--text-main); }
}
@media (prefers-reduced-motion: reduce) {
  .oo-rb *, .oo-rs * { animation: none !important; transition: none !important; }
  .pe-js .oo-rs .oo-rs__row, .pe-js .oo-rs .oo-rs__head > * { opacity: 1 !important; transform: none !important; }
}
[dir="rtl"] .oo-rb__link svg, [dir="rtl"] .oo-rs__link svg { transform: scaleX(-1); }
[dir="rtl"] .oo-rb__eyebrow, [dir="rtl"] .oo-rs__eyebrow, [dir="rtl"] .oo-rb__link, [dir="rtl"] .oo-rs__link { letter-spacing: 0; }
[data-theme] .oo-rb .oo-rb__title { color: var(--pe-cream); }
[data-theme] .oo-rb .oo-rb__title em { color: var(--pe-sand); }

/* ==========================================================
   Restoration S3 Our approach, S4 Process (bento layouts)
   --pk-gap is the single spacing step: grid gap, panel padding and inner gaps.
   ========================================================== */
.oo-pk, .oo-pq { --pk-gap: clamp(16px, 2vw, 28px); --pk-pad: calc(var(--pk-gap) * 1.6); padding-block: var(--pe-pad); color: var(--text-main); }
.oo-pk { background: var(--bg-main); }
.oo-pq { background: color-mix(in srgb, var(--text-main) 5%, var(--bg-main)); }
.oo-pk__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: var(--pk-gap); height: clamp(540px, 46vw, 640px); }
.oo-pk__panel { display: flex; flex-direction: column; justify-content: space-between; gap: var(--pk-gap); min-width: 0; padding: var(--pk-pad); border-radius: 8px; background: var(--nav-bg); color: #F7F4EE; }
.oo-pk__main { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pk-gap); }
.oo-pk__eyebrow, .oo-pq__eyebrow { display: flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; }
.oo-pk__eyebrow { color: var(--pe-sand); }
.oo-pq__eyebrow { color: var(--text-muted); }
.oo-pk__eyebrow::before, .oo-pq__eyebrow::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.oo-pk__title { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2.5rem, 4.6vw, 4.25rem); line-height: 1.02; letter-spacing: -.015em; text-wrap: balance; }
[data-theme] .oo-pk .oo-pk__title { color: #F7F4EE; }
.oo-pk__title em { font-style: italic; color: var(--pe-sand); }
.oo-pk__lede { max-width: 42ch; font: 400 1.0625rem/1.6 var(--font-body); color: rgba(247,244,238,.85); }
.oo-pk__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.oo-pk__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 26px; border-radius: 6px; background: var(--pe-sand); color: #0F0B09; font: 700 1rem/1.2 var(--font-body); text-decoration: none; transition: background-color .3s ease, color .3s ease, transform .3s var(--pe-ease); }
.oo-pk__btn--ghost { background: transparent; color: #F7F4EE; box-shadow: inset 0 0 0 2px rgba(247,244,238,.7); }
.oo-pk__btn:hover, .oo-pk__btn:focus-visible { background: #F7F4EE; color: #0F0B09; transform: translateY(-3px); }
.oo-pk__note, .oo-pq__tile { display: flex; align-items: center; gap: 16px; text-decoration: none; transition: transform .4s var(--pe-ease), border-color .3s ease; }
.oo-pk__note { padding: 12px; border-radius: 8px; background: rgba(247,244,238,.08); border: 1px solid rgba(247,244,238,.3); color: #F7F4EE; }
.oo-pk__thumb, .oo-pq__thumb { position: relative; flex: none; width: 96px; aspect-ratio: 1; overflow: hidden; border-radius: 6px; background: #2a211c; }
.oo-pk__thumb img, .oo-pq__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--pe-ease); }
.oo-pk__note:hover img, .oo-pq__tile:hover img { transform: scale(1.1); }
.oo-pk__ntxt, .oo-pq__ttxt { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
.oo-pk__ntxt b, .oo-pq__ttxt b { font: 600 1rem/1.35 var(--font-body); }
.oo-pk__ntxt span, .oo-pq__ttxt span { font: 400 .9375rem/1.4 var(--font-body); opacity: .8; }
.oo-pk__note i, .oo-pq__cta i { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--pe-sand); color: #0F0B09; transition: transform .4s var(--pe-ease); }
.oo-pk__note i svg, .oo-pq__cta i svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.oo-pk__note:hover, .oo-pk__note:focus-visible, .oo-pq__tile:hover, .oo-pq__tile:focus-visible, .oo-pq__cta:hover, .oo-pq__cta:focus-visible { transform: translateY(-4px); }
.oo-pk__note:hover i, .oo-pq__cta:hover i { transform: rotate(-45deg); }
.oo-pk__btn:focus-visible, .oo-pk__note:focus-visible { outline: 3px solid #F7F4EE; outline-offset: 3px; }
.oo-pq__tile:focus-visible, .oo-pq__cta:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.oo-pk__photo { position: relative; isolation: isolate; display: flex; align-items: flex-end; margin: 0; padding: var(--pk-gap); overflow: hidden; border-radius: 8px; background: #2a211c; min-width: 0; }
.oo-pk__photo > img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--pe-ease); }
.oo-pk__photo:hover > img { transform: scale(1.05); }
.oo-pk__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pk-gap); width: 100%; }
.oo-pk__facts p { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: var(--pk-gap); border-radius: 8px; background: var(--bg-main); color: var(--text-main); box-shadow: var(--shadow-soft); transition: transform .4s var(--pe-ease); }
.oo-pk__facts p:hover { transform: translateY(-4px); }
.oo-pk__facts b { font: 500 clamp(1.75rem, 2.6vw, 2.5rem)/1.05 var(--oo-serif); }
.oo-pk__facts span { font: 400 .9375rem/1.4 var(--font-body); color: var(--text-muted); }

.oo-pq__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .85fr) minmax(0, .9fr); gap: var(--pk-gap); height: clamp(560px, 46vw, 660px); }
.oo-pq__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pk-gap); min-width: 0; }
.oo-pq__title { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2.25rem, 3.8vw, 3.5rem); line-height: 1.05; letter-spacing: -.01em; color: var(--text-main); text-wrap: balance; }
.oo-pq__title em { font-style: italic; color: #8A6B43; }
[data-theme="dark"] .oo-pq__title em { color: var(--pe-sand); }
.oo-pq__lede { max-width: 40ch; font: 400 1.0625rem/1.6 var(--font-body); color: var(--text-muted); }
.oo-pq__tile { width: 100%; max-width: 420px; margin-top: auto; padding: 10px; border-radius: 8px; background: var(--bg-main); border: 1px solid var(--pe-line); color: var(--text-main); box-shadow: var(--shadow-soft); }
.oo-pq__photo { position: relative; isolation: isolate; margin: 0; overflow: hidden; border-radius: 8px; background: #2a211c; min-width: 0; }
.oo-pq__photo img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--pe-ease); }
.oo-pq__photo:hover img { transform: scale(1.05); }
.oo-pq__photo figcaption { position: absolute; inset-inline-start: var(--pk-gap); inset-block-end: var(--pk-gap); padding: 8px 16px; border-radius: 6px; background: #F7F4EE; color: #0F0B09; font: 700 .9375rem/1.3 var(--font-body); }
.oo-pq__side { display: flex; flex-direction: column; gap: var(--pk-gap); min-width: 0; }
.oo-pq__stages { flex: 1 1 0; display: flex; flex-direction: column; gap: var(--pk-gap); min-height: 0; padding: var(--pk-pad); border-radius: 8px; background: var(--pe-sand); color: #0F0B09; }
.oo-pq__num { display: flex; align-items: baseline; gap: 12px; margin: 0; }
.oo-pq__num b { font: 500 clamp(2.5rem, 4vw, 3.5rem)/1 var(--oo-serif); }
.oo-pq__num span { font: 600 1rem/1.3 var(--font-body); }
.oo-pq__list { display: flex; flex-direction: column; justify-content: space-between; flex: 1; margin: 0; padding: 0; list-style: none; }
.oo-pq__list li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 8px; padding-top: 10px; border-top: 1px solid rgba(15,11,9,.35); }
.oo-pq__list b { font: 600 .9375rem/1.5 var(--font-body); }
.oo-pq__list span { display: flex; flex-direction: column; font: 400 .9375rem/1.4 var(--font-body); }
.oo-pq__list em { font: 500 1.25rem/1.2 var(--oo-serif); font-style: normal; }
.oo-pq__cta { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: var(--pk-gap); border-radius: 8px; background: var(--nav-bg); color: #F7F4EE; text-decoration: none; transition: transform .4s var(--pe-ease); }
.oo-pq__ctxt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.oo-pq__ctxt b { font: 600 clamp(1.0625rem, 1.5vw, 1.25rem)/1.25 var(--font-body); }
.oo-pq__ctxt span { font: 400 .9375rem/1.4 var(--font-body); opacity: .85; }

/* entrance */
.pe-js .oo-pk:not(.is-in) .oo-pk__panel, .pe-js .oo-pk:not(.is-in) .oo-pk__photo { clip-path: inset(0 0 100% 0); }
.pe-js .oo-pk .oo-pk__panel, .pe-js .oo-pk .oo-pk__photo { transition: clip-path 1s var(--pe-ease); }
.pe-js .oo-pk .oo-pk__photo { transition-delay: .15s; }
.pe-js .oo-pk:not(.is-in) .oo-pk__photo > img { transform: scale(1.15); }
.pe-js .oo-pk:not(.is-in) .oo-pk__main > *, .pe-js .oo-pk:not(.is-in) .oo-pk__note, .pe-js .oo-pk:not(.is-in) .oo-pk__facts p { opacity: 0; transform: translateY(22px); }
.pe-js .oo-pk .oo-pk__main > *, .pe-js .oo-pk .oo-pk__note, .pe-js .oo-pk .oo-pk__facts p { transition: opacity .8s var(--pe-ease), transform .8s var(--pe-ease); }
.pe-js .oo-pk .oo-pk__main > :nth-child(1) { transition-delay: .35s; } .pe-js .oo-pk .oo-pk__main > :nth-child(2) { transition-delay: .45s; } .pe-js .oo-pk .oo-pk__main > :nth-child(3) { transition-delay: .55s; } .pe-js .oo-pk .oo-pk__main > :nth-child(4) { transition-delay: .65s; }
.pe-js .oo-pk .oo-pk__note { transition-delay: .8s; } .pe-js .oo-pk .oo-pk__facts p:nth-child(1) { transition-delay: .8s; } .pe-js .oo-pk .oo-pk__facts p:nth-child(2) { transition-delay: .95s; }
.pe-js .oo-pq:not(.is-in) .oo-pq__copy > *, .pe-js .oo-pq:not(.is-in) .oo-pq__stages, .pe-js .oo-pq:not(.is-in) .oo-pq__cta { opacity: 0; transform: translateY(22px); }
.pe-js .oo-pq .oo-pq__copy > *, .pe-js .oo-pq .oo-pq__stages, .pe-js .oo-pq .oo-pq__cta { transition: opacity .8s var(--pe-ease), transform .8s var(--pe-ease); }
.pe-js .oo-pq .oo-pq__copy > :nth-child(2) { transition-delay: .1s; } .pe-js .oo-pq .oo-pq__copy > :nth-child(3) { transition-delay: .2s; } .pe-js .oo-pq .oo-pq__copy > :nth-child(4) { transition-delay: .3s; }
.pe-js .oo-pq .oo-pq__stages { transition-delay: .35s; } .pe-js .oo-pq .oo-pq__cta { transition-delay: .5s; }
.pe-js .oo-pq:not(.is-in) .oo-pq__photo { clip-path: inset(100% 0 0 0); }
.pe-js .oo-pq .oo-pq__photo { transition: clip-path 1.1s var(--pe-ease) .15s; }
.pe-js .oo-pq:not(.is-in) .oo-pq__photo img { transform: scale(1.18); }
.pe-js .oo-pq:not(.is-in) .oo-pq__list li { opacity: 0; transform: translateX(-14px); }
.pe-js .oo-pq .oo-pq__list li { transition: opacity .6s var(--pe-ease), transform .6s var(--pe-ease); }
.pe-js .oo-pq .oo-pq__list li:nth-child(1) { transition-delay: .7s; } .pe-js .oo-pq .oo-pq__list li:nth-child(2) { transition-delay: .82s; } .pe-js .oo-pq .oo-pq__list li:nth-child(3) { transition-delay: .94s; } .pe-js .oo-pq .oo-pq__list li:nth-child(4) { transition-delay: 1.06s; }

@media (max-width: 1000px) {
  .oo-pk__grid, .oo-pq__grid { grid-template-columns: minmax(0, 1fr); height: auto; }
  .oo-pk__photo { min-height: clamp(380px, 70vw, 520px); }
  .oo-pq__photo { aspect-ratio: 4 / 3; }
  .oo-pq__tile { margin-top: 0; }
  .oo-pq__side { display: grid; grid-template-columns: minmax(0, 1fr); }
  .oo-pq__stages { flex: none; }
}
@media (max-width: 640px) {
  .oo-pk__facts { grid-template-columns: minmax(0, 1fr); }
  .oo-pq__side { grid-template-columns: minmax(0, 1fr); }
  .oo-pk__thumb, .oo-pq__thumb { width: 72px; }
}
@media (prefers-reduced-motion: reduce) {
  .oo-pk *, .oo-pq * { transition: none !important; }
  .pe-js .oo-pk .oo-pk__panel, .pe-js .oo-pk .oo-pk__photo, .pe-js .oo-pk .oo-pk__main > *, .pe-js .oo-pk .oo-pk__note, .pe-js .oo-pk .oo-pk__facts p, .pe-js .oo-pq .oo-pq__copy > *, .pe-js .oo-pq .oo-pq__stages, .pe-js .oo-pq .oo-pq__cta, .pe-js .oo-pq .oo-pq__photo, .pe-js .oo-pq .oo-pq__list li, .pe-js .oo-pk .oo-pk__photo > img, .pe-js .oo-pq .oo-pq__photo img { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
[dir="rtl"] .oo-pk__note i svg, [dir="rtl"] .oo-pq__cta i svg { transform: scaleX(-1); }
[dir="rtl"] .oo-pk__eyebrow, [dir="rtl"] .oo-pq__eyebrow { letter-spacing: 0; }

[data-theme] .oo-pk .oo-pk__title em { color: var(--pe-sand); }

/* ==========================================================
   Restoration S5 Before & after (condition report), S6 The details (mosaic)
   --pk-gap is the single spacing step: grid gap, tile padding and inner gaps.
   Top and bottom section padding are the same (--pe-pad). Colours: site tokens only.
   ========================================================== */
.oo-pf, .oo-pg { --pk-gap: clamp(16px, 2vw, 28px); --pk-pad: calc(var(--pk-gap) * 1.4); padding-block: var(--pe-pad); color: var(--text-main); }
.oo-pf { background: var(--bg-main); }
.oo-pg { background: color-mix(in srgb, var(--text-main) 5%, var(--bg-main)); }

/* ----- S5 ----- */
.oo-pf__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: calc(var(--pk-gap) * 2); align-items: center; }
.oo-pf__fig { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 8px; background: #2a211c; box-shadow: var(--shadow-soft); }
.oo-pf__fig img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.oo-pf__shade { position: absolute; inset-block: 0; inset-inline-start: 0; width: 50%; backdrop-filter: grayscale(.85) sepia(.25) brightness(.82); -webkit-backdrop-filter: grayscale(.85) sepia(.25) brightness(.82); border-inline-end: 2px solid #F7F4EE; }
.oo-pf__shade::after { content: ""; position: absolute; top: 50%; inset-inline-end: -19px; width: 36px; height: 36px; margin-top: -18px; border-radius: 50%; background: #F7F4EE; box-shadow: 0 0 0 5px rgba(15,11,9,.35); }
.oo-pf__tag { position: absolute; top: var(--pk-gap); padding: 8px 16px; border-radius: 999px; background: rgba(15,11,9,.82); color: #F7F4EE; font: 700 .9375rem/1.2 var(--font-body); letter-spacing: .12em; text-transform: uppercase; }
.oo-pf__tag--a { inset-inline-start: var(--pk-gap); }
.oo-pf__tag--b { inset-inline-end: var(--pk-gap); background: #D8CCBC; color: #0F0B09; }
.oo-pf__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pk-gap); min-width: 0; }
.oo-pf__eyebrow { display: flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.oo-pf__eyebrow::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.oo-pf__title { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2.25rem, 4vw, 3.75rem); line-height: 1.04; letter-spacing: -.015em; text-wrap: balance; color: var(--text-main); }
.oo-pf__title em { font-style: italic; color: var(--text-muted); }
.oo-pf__lede { max-width: 46ch; font: 400 1.0625rem/1.6 var(--font-body); color: var(--text-muted); }
.oo-pf__report { width: 100%; margin: 0; border-bottom: 1px solid var(--pe-line); }
.oo-pf__row { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: baseline; gap: var(--pk-gap); padding-block: 16px; border-top: 1px solid var(--pe-line); transition: background-color .3s ease; }
.oo-pf__row:hover { background: color-mix(in srgb, var(--text-main) 5%, transparent); }
.oo-pf__row dt { font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.oo-pf__row dd { margin: 0; font: 500 1.125rem/1.4 var(--font-body); color: var(--text-main); }
.oo-pf__link { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 6px; border-bottom: 2px solid currentColor; color: var(--text-main); font: 700 1rem/1.2 var(--font-body); text-decoration: none; transition: gap .3s var(--pe-ease), color .3s ease; }
.oo-pf__link svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.oo-pf__link:hover, .oo-pf__link:focus-visible { gap: 18px; }
.oo-pf__link:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 6px; }

/* ----- S6 ----- */
.oo-pg__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(280px, 24vw, 340px); gap: var(--pk-gap); grid-template-areas: "t t p1 p2" "p3 s p1 p4"; }
.oo-pg__t { grid-area: t; }
.oo-pg__p1 { grid-area: p1; } .oo-pg__p2 { grid-area: p2; } .oo-pg__p3 { grid-area: p3; } .oo-pg__p4 { grid-area: p4; }
.oo-pg__s { grid-area: s; }
.oo-pg__t, .oo-pg__s, .oo-pg__p { min-width: 0; border-radius: 8px; overflow: hidden; }
.oo-pg__t { display: flex; flex-direction: column; justify-content: center; gap: calc(var(--pk-gap) * 1.2); padding: var(--pk-pad); background: var(--bg-main); border: 1px solid var(--pe-line); }
.oo-pg__eyebrow { display: flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.oo-pg__eyebrow::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.oo-pg__title { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2rem, 3.3vw, 3.125rem); line-height: 1.04; letter-spacing: -.015em; text-wrap: balance; color: var(--text-main); }
.oo-pg__title em { font-style: italic; color: var(--text-muted); }
.oo-pg__lede { max-width: 44ch; font: 400 1.0625rem/1.55 var(--font-body); color: var(--text-muted); }
.oo-pg__p { position: relative; margin: 0; background: #2a211c; }
.oo-pg__p img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--pe-ease); }
.oo-pg__p:hover img { transform: scale(1.07); }
.oo-pg__p figcaption { position: absolute; inset-inline: 0; bottom: 0; display: flex; flex-direction: column; gap: 4px; padding: calc(var(--pk-pad) * 1.6) var(--pk-pad) var(--pk-pad); background: linear-gradient(to top, rgba(15,11,9,.92) 0%, rgba(15,11,9,.7) 55%, rgba(15,11,9,0) 100%); color: #F7F4EE; }
.oo-pg__p figcaption b { font: 600 1.125rem/1.3 var(--font-body); }
.oo-pg__p figcaption span { font: 400 .9375rem/1.4 var(--font-body); color: rgba(247,244,238,.88); }
.oo-pg__s { display: flex; flex-direction: column; justify-content: space-between; gap: var(--pk-gap); padding: var(--pk-pad); background: var(--nav-bg); border: 1px solid rgba(216,204,188,.3); color: #F7F4EE; }
.oo-pg__stitle { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(1.75rem, 2.4vw, 2.25rem); line-height: 1.1; color: #F7F4EE; }
.oo-pg__sbody { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pk-gap); }
.oo-pg__sbody p { font: 400 1rem/1.5 var(--font-body); color: rgba(247,244,238,.88); }
.oo-pg__btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 50px; padding: 0 22px; white-space: nowrap; border-radius: 6px; background: #D8CCBC; color: #0F0B09; font: 700 1rem/1.2 var(--font-body); text-decoration: none; transition: background-color .3s ease, transform .4s var(--pe-ease); }
.oo-pg__btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.oo-pg__btn:hover, .oo-pg__btn:focus-visible { background: #F7F4EE; transform: translateY(-3px); }
.oo-pg__btn:focus-visible { outline: 3px solid #F7F4EE; outline-offset: 3px; }

/* ----- entrance (only when JS runs) ----- */
.pe-js .oo-pf:not(.is-in) .oo-pf__fig { clip-path: inset(0 100% 0 0); }
.pe-js .oo-pf .oo-pf__fig { transition: clip-path 1.1s var(--pe-ease); }
[dir="rtl"].pe-js .oo-pf:not(.is-in) .oo-pf__fig, [dir="rtl"] .pe-js .oo-pf:not(.is-in) .oo-pf__fig { clip-path: inset(0 0 0 100%); }
.pe-js .oo-pf:not(.is-in) .oo-pf__shade { width: 100%; }
.pe-js .oo-pf .oo-pf__shade { transition: width 1.5s var(--pe-ease) .9s; }
.pe-js .oo-pf:not(.is-in) .oo-pf__tag, .pe-js .oo-pf:not(.is-in) .oo-pf__copy > *, .pe-js .oo-pf:not(.is-in) .oo-pf__row { opacity: 0; transform: translateY(20px); }
.pe-js .oo-pf .oo-pf__tag, .pe-js .oo-pf .oo-pf__copy > *, .pe-js .oo-pf .oo-pf__row { transition: opacity .8s var(--pe-ease), transform .8s var(--pe-ease); }
.pe-js .oo-pf .oo-pf__tag { transition-delay: 1.5s; }
.pe-js .oo-pf .oo-pf__copy > :nth-child(1) { transition-delay: .15s; } .pe-js .oo-pf .oo-pf__copy > :nth-child(2) { transition-delay: .25s; } .pe-js .oo-pf .oo-pf__copy > :nth-child(3) { transition-delay: .35s; }
.pe-js .oo-pf .oo-pf__row { transition-delay: calc(.45s + var(--k) * .1s); }
.pe-js .oo-pf .oo-pf__copy > :last-child { transition-delay: .95s; }
.pe-js .oo-pg:not(.is-in) .oo-pg__t, .pe-js .oo-pg:not(.is-in) .oo-pg__s, .pe-js .oo-pg:not(.is-in) .oo-pg__p { opacity: 0; transform: translateY(26px); }
.pe-js .oo-pg .oo-pg__t, .pe-js .oo-pg .oo-pg__s, .pe-js .oo-pg .oo-pg__p { transition: opacity .9s var(--pe-ease), transform .9s var(--pe-ease); transition-delay: calc(var(--k) * .12s); }
.pe-js .oo-pg:not(.is-in) .oo-pg__p img { transform: scale(1.18); }

@media (max-width: 1000px) {
  .oo-pf__grid { grid-template-columns: minmax(0, 1fr); }
  .oo-pf__fig { max-width: 640px; width: 100%; margin-inline: auto; }
  .oo-pg__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; grid-template-areas: "t t" "p1 p2" "p3 p4" "s s"; }
  .oo-pg__p { aspect-ratio: 4 / 5; }
  .oo-pg__s { gap: calc(var(--pk-gap) * 1.5); }
}
@media (max-width: 640px) {
  .oo-pf__row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .oo-pg__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "t" "p1" "p2" "p3" "p4" "s"; }
  .oo-pg__p { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) {
  .oo-pf *, .oo-pg * { transition: none !important; }
  .pe-js .oo-pf .oo-pf__fig, .pe-js .oo-pf .oo-pf__tag, .pe-js .oo-pf .oo-pf__copy > *, .pe-js .oo-pf .oo-pf__row, .pe-js .oo-pg .oo-pg__t, .pe-js .oo-pg .oo-pg__s, .pe-js .oo-pg .oo-pg__p { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .pe-js .oo-pf .oo-pf__shade { width: 50% !important; }
}
[dir="rtl"] .oo-pf__link svg, [dir="rtl"] .oo-pg__btn svg { transform: scaleX(-1); }
[dir="rtl"] .oo-pf__eyebrow, [dir="rtl"] .oo-pg__eyebrow, [dir="rtl"] .oo-pf__tag, [dir="rtl"] .oo-pf__row dt { letter-spacing: 0; }

/* ==========================================================
   Restoration S7 Call to action (full-width photograph under a dark wash)
   Cream text on a fixed dark wash, so it reads the same in light and dark mode.
   ========================================================== */
.oo-pc { --pk-gap: clamp(16px, 2vw, 28px); position: relative; overflow: hidden; padding-block: var(--pe-pad); background: #0F0B09; color: #F7F4EE; isolation: isolate; }
.oo-pc__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; display: block; }
.oo-pc::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(15,11,9,.92) 0%, rgba(15,11,9,.8) 45%, rgba(15,11,9,.66) 100%); }
.oo-pc__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: calc(var(--pk-gap) * 2.4); align-items: center; }
.oo-pc__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pk-gap); min-width: 0; }
.oo-pc__eyebrow, .oo-pc__nk { display: flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: #D8CCBC; }
.oo-pc__eyebrow::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.oo-pc__title { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2.5rem, 4.8vw, 4.5rem); line-height: 1.02; letter-spacing: -.015em; text-wrap: balance; color: #F7F4EE; }
.oo-pc__title em { font-style: italic; color: #D8CCBC; }
.oo-pc__lede { max-width: 48ch; font: 400 1.125rem/1.6 var(--font-body); color: rgba(247,244,238,.9); }
.oo-pc__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.oo-pc__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 28px; border-radius: 6px; background: #D8CCBC; color: #0F0B09; font: 700 1rem/1.2 var(--font-body); text-decoration: none; transition: background-color .3s ease, transform .4s var(--pe-ease), box-shadow .3s ease; }
.oo-pc__btn--ghost { background: transparent; color: #F7F4EE; box-shadow: inset 0 0 0 2px rgba(247,244,238,.7); }
.oo-pc__btn:hover, .oo-pc__btn:focus-visible { background: #F7F4EE; color: #0F0B09; transform: translateY(-3px); }
.oo-pc__btn:focus-visible { outline: 3px solid #F7F4EE; outline-offset: 3px; }
.oo-pc__next { min-width: 0; padding: calc(var(--pk-gap) * 1.4); border-radius: 8px; background: rgba(15,11,9,.62); border: 1px solid rgba(216,204,188,.4); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); display: flex; flex-direction: column; gap: var(--pk-gap); }
.oo-pc__steps { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid rgba(216,204,188,.3); }
.oo-pc__steps li { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: baseline; gap: var(--pk-gap); padding-block: var(--pk-gap); border-top: 1px solid rgba(216,204,188,.3); }
.oo-pc__steps b { font: 500 2rem/1 var(--oo-serif); color: #D8CCBC; }
.oo-pc__steps span { display: flex; flex-direction: column; gap: 4px; font: 400 1rem/1.5 var(--font-body); color: rgba(247,244,238,.9); }
.oo-pc__steps em { font: 600 1.125rem/1.3 var(--font-body); font-style: normal; color: #F7F4EE; }
@keyframes ooPcZoom { from { transform: scale(1.12); } to { transform: scale(1); } }
.pe-js .oo-pc.is-in .oo-pc__bg { animation: ooPcZoom 2.4s var(--pe-ease) both; }
.pe-js .oo-pc:not(.is-in) .oo-pc__copy > *, .pe-js .oo-pc:not(.is-in) .oo-pc__next { opacity: 0; transform: translateY(24px); }
.pe-js .oo-pc:not(.is-in) .oo-pc__steps li { opacity: 0; transform: translateX(-16px); }
.pe-js .oo-pc .oo-pc__copy > *, .pe-js .oo-pc .oo-pc__next, .pe-js .oo-pc .oo-pc__steps li { transition: opacity .8s var(--pe-ease), transform .8s var(--pe-ease); }
.pe-js .oo-pc .oo-pc__copy > :nth-child(2) { transition-delay: .1s; } .pe-js .oo-pc .oo-pc__copy > :nth-child(3) { transition-delay: .2s; } .pe-js .oo-pc .oo-pc__copy > :nth-child(4) { transition-delay: .3s; }
.pe-js .oo-pc .oo-pc__next { transition-delay: .25s; }
.pe-js .oo-pc .oo-pc__steps li { transition-delay: calc(.55s + var(--k) * .12s); }
@media (max-width: 1000px) {
  .oo-pc__grid { grid-template-columns: minmax(0, 1fr); }
  .oo-pc::before { background: rgba(15,11,9,.8); }
}
@media (max-width: 520px) { .oo-pc__steps li { grid-template-columns: 44px minmax(0, 1fr); } .oo-pc__btn { width: 100%; } }
@media (prefers-reduced-motion: reduce) {
  .oo-pc * { transition: none !important; }
  .pe-js .oo-pc .oo-pc__bg { animation: none !important; }
  .pe-js .oo-pc .oo-pc__copy > *, .pe-js .oo-pc .oo-pc__next, .pe-js .oo-pc .oo-pc__steps li { opacity: 1 !important; transform: none !important; }
}
[dir="rtl"] .oo-pc__eyebrow, [dir="rtl"] .oo-pc__nk { letter-spacing: 0; }

/* ==========================================================
   Login & Sign up (.oo-au): a full-height photograph beside the form panel.
   Theme tokens only (light + dark), every text >= 15px, equal top and bottom padding.
   ========================================================== */
.oo-aupage { --au-pad: clamp(40px, 6vw, 80px); --au-gap: clamp(16px, 2.4vh, 24px); --au-err: #A32D22; --au-ok: #2E6B45; --au-line: color-mix(in srgb, var(--text-main) 42%, transparent); }
[data-theme="dark"] .oo-aupage { --au-err: #FF9F94; --au-ok: #8FD9AB; }
.oo-aupage *, .oo-aupage *::before, .oo-aupage *::after { box-sizing: border-box; }
.oo-au { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: calc(100vh - var(--oo-header-h)); min-height: calc(100svh - var(--oo-header-h)); background: var(--bg-main); color: var(--text-main); }
.oo-au__media { position: relative; margin: 0; overflow: hidden; background: #2a211c; min-height: 420px; }
.oo-au__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.oo-au__media figcaption { position: absolute; inset-inline: 0; bottom: 0; display: flex; flex-direction: column; gap: var(--au-gap); padding: calc(var(--au-pad) * 1.6) var(--au-pad) var(--au-pad); background: linear-gradient(to top, rgba(15,11,9,.94) 0%, rgba(15,11,9,.78) 55%, rgba(15,11,9,0) 100%); color: #F7F4EE; }
.oo-au__quote { font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: 1.05; letter-spacing: -.01em; text-wrap: balance; color: #F7F4EE; }
.oo-au__quote em { font-style: italic; color: #D8CCBC; }
.oo-au__points { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.oo-au__points li { display: flex; align-items: center; gap: 12px; font: 400 1.0625rem/1.4 var(--font-body); color: rgba(247,244,238,.92); }
.oo-au__points li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: #D8CCBC; }
.oo-au__panel { display: flex; align-items: center; justify-content: center; padding: var(--au-pad) clamp(20px, 5vw, 72px); }
.oo-au__card { width: 100%; max-width: 480px; display: flex; flex-direction: column; gap: 0; }
.oo-au__eyebrow { display: flex; align-items: center; gap: 14px; font: 600 .9375rem/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.oo-au__eyebrow::before { content: ""; width: 36px; height: 2px; background: currentColor; }
.oo-au__title { margin: 12px 0 0; font-family: var(--oo-serif); font-weight: 500; font-size: clamp(2.5rem, 4vw, 3.75rem); line-height: 1.02; letter-spacing: -.015em; color: var(--text-main); }
.oo-au__lede { margin: 12px 0 0; font: 400 1.0625rem/1.55 var(--font-body); color: var(--text-muted); }
.oo-au__form { display: grid; gap: var(--au-gap); margin-top: calc(var(--au-gap) * 1.4); }
.oo-au__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--au-gap); align-items: start; }
.oo-au__field { display: grid; align-content: start; gap: 8px; min-width: 0; }
.oo-au__field label { font: 600 .9375rem/1.3 var(--font-body); color: var(--text-main); }
.oo-au__input { position: relative; display: block; }
.oo-au__input input { display: block; width: 100%; min-height: 54px; padding: 0 16px; background: var(--bg-main); color: var(--text-main); border: 1.5px solid var(--au-line); border-radius: 6px; font: 400 1rem/1.2 var(--font-body); transition: border-color .25s ease, box-shadow .25s ease; }
.oo-au__input input::placeholder { color: var(--text-muted); opacity: 1; }
.oo-au__input input:hover { border-color: var(--text-main); }
.oo-au__input input:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; border-color: var(--text-main); }
.oo-au__input--pw input { padding-inline-end: 78px; }
.oo-au__eye { position: absolute; top: 50%; inset-inline-end: 6px; transform: translateY(-50%); min-height: 42px; padding: 0 12px; background: transparent; border: 0; border-radius: 4px; color: var(--text-main); font: 600 .9375rem/1 var(--font-body); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.oo-au__eye:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 0; }
.oo-au__field.is-bad .oo-au__input input { border-color: var(--au-err); }
.oo-au__err { font: 600 .9375rem/1.4 var(--font-body); color: var(--au-err); }
.oo-au__err:empty { display: none; }
.oo-au__meter { display: grid; gap: 8px; }
.oo-au__bars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.oo-au__bars i { height: 6px; border-radius: 3px; background: var(--au-line); opacity: .45; transition: background-color .3s ease, opacity .3s ease; }
.oo-au__meter[data-lvl="1"] .oo-au__bars i:nth-child(-n+1) { background: var(--au-err); opacity: 1; }
.oo-au__meter[data-lvl="2"] .oo-au__bars i:nth-child(-n+2), .oo-au__meter[data-lvl="3"] .oo-au__bars i:nth-child(-n+3) { background: var(--text-main); opacity: 1; }
.oo-au__meter[data-lvl="4"] .oo-au__bars i { background: var(--au-ok); opacity: 1; }
.oo-au__mtx { font: 400 .9375rem/1.4 var(--font-body); color: var(--text-muted); }
.oo-au__meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px var(--au-gap); }
.oo-au__field .oo-au__check, .oo-au__check { display: inline-flex; align-items: flex-start; gap: 12px; font: 400 1rem/1.5 var(--font-body); color: var(--text-main); cursor: pointer; }
.oo-au__check input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--accent); cursor: pointer; }
.oo-au__check input:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.oo-au__link { color: var(--text-main); font: 700 1rem/1.4 var(--font-body); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; transition: opacity .25s ease; }
.oo-au__link:hover, .oo-au__link:focus-visible { opacity: .72; }
.oo-au__link:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.oo-au__btn { width: 100%; min-height: 56px; padding: 0 24px; border: 0; border-radius: 6px; background: var(--accent); color: var(--accent-contrast); font: 700 1.0625rem/1.2 var(--font-body); cursor: pointer; transition: transform .35s var(--pe-ease, ease), box-shadow .3s ease; }
.oo-au__btn:hover, .oo-au__btn:focus-visible { transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.oo-au__btn:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.oo-au__status { font: 600 1rem/1.5 var(--font-body); }
.oo-au__status:empty { display: none; }
.oo-au__status.is-ok { color: var(--au-ok); }
.oo-au__status.is-bad { color: var(--au-err); }
.oo-au__switch { margin-top: calc(var(--au-gap) * 1.4); padding-top: var(--au-gap); border-top: 1px solid var(--au-line); font: 400 1.0625rem/1.5 var(--font-body); color: var(--text-muted); }
.oo-au__switch .oo-au__link { margin-inline-start: 8px; }
.pe-js .oo-au__card > *, .pe-js .oo-au__form > * { animation: ooAuIn .8s cubic-bezier(.2,.8,.2,1) both; }
.pe-js .oo-au__card > :nth-child(2) { animation-delay: .08s; } .pe-js .oo-au__card > :nth-child(3) { animation-delay: .16s; } .pe-js .oo-au__card > :nth-child(4) { animation-delay: .24s; } .pe-js .oo-au__card > :nth-child(5) { animation-delay: .4s; }
.pe-js .oo-au__media img { animation: ooAuZoom 2s cubic-bezier(.2,.8,.2,1) both; }
@keyframes ooAuIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes ooAuZoom { from { transform: scale(1.1); } to { transform: scale(1); } }
@media (max-width: 960px) {
  .oo-au { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .oo-au__media { min-height: 0; aspect-ratio: 16 / 9; }
  .oo-au__points { display: none; }
  .oo-au__media figcaption { padding: calc(var(--au-pad) * .8) var(--au-pad) calc(var(--au-pad) * .5); }
}
@media (max-width: 560px) { .oo-au__row { grid-template-columns: 1fr; } .oo-au__media { aspect-ratio: 4 / 3; } }
@media (prefers-reduced-motion: reduce) { .pe-js .oo-au__card > *, .pe-js .oo-au__form > *, .pe-js .oo-au__media img { animation: none !important; } }
[dir="rtl"] .oo-au__eyebrow { letter-spacing: 0; }
[dir="rtl"] .oo-au__input input[type="email"] { direction: ltr; text-align: right; }









/* ==========================================================
   Oak & Origin — About page (page-specific)
   Scope: main.oo-about only. Reuses tokens from theme.css / style.css
   ========================================================== */

.oo-about {
  --ab-bg: #FFFFFF;
  --ab-hero: #F7F4EE;
  --ab-alt: #F7F4EE;
  --ab-gold: #7D5F39;
  --ab-line: rgba(56, 47, 41, 0.22);
}
[data-theme="dark"] .oo-about {
  --ab-bg: #0F0B09;
  --ab-hero: #0F0B09;
  --ab-alt: #17110E;
  --ab-gold: #D8B98A;
  --ab-line: rgba(216, 185, 138, 0.3);
}

.oo-about em { font-style: italic; }
.oo-about-head .oo-h2 em,
.oo-about-story .oo-h2 em { color: var(--ab-gold); }

/* ---------- About · 1. Hero (split panel + image, 100vh) ---------- */
.oo-ahero {
  --ah-bg: #382F29;
  --ah-text: #F7F4EE;
  --ah-muted: rgba(247, 244, 238, 0.78);
  --ah-line: rgba(216, 204, 188, 0.35);
  --ah-accent: #D8CCBC;

  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  min-height: 100vh;
  min-height: 100svh;
  background: var(--ah-bg);
  color: var(--ah-text);
  isolation: isolate;
}
[data-theme="dark"] .oo-ahero { --ah-bg: #17110E; }

/* ----- Left panel ----- */
.oo-ahero__panel {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(32px, 5vh, 56px);
  /* top padding clears the transparent overlay header */
  padding-block: calc(var(--oo-header-h) + clamp(32px, 6vh, 72px)) clamp(28px, 5vh, 56px);
  padding-inline: var(--oo-pad) clamp(32px, 5vw, 88px);
}
.oo-ahero__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  max-width: 640px;
}
.oo-ahero__eyebrow { margin-bottom: 28px; }
.oo-ahero__title {
  margin: 0;
  font-family: var(--oo-serif);
  font-weight: 500;
  font-size: clamp(2.5rem, 5vw, 4.75rem);
  line-height: 1.04;
  letter-spacing: -0.015em;
  color: var(--ah-text);
  text-wrap: balance;
}
.oo-ahero__title em { display: block; font-style: italic; color: var(--ah-accent); }
.oo-ahero__text {
  max-width: 46ch;
  margin: 28px 0 0;
  padding-inline-start: 20px;
  border-inline-start: 1px solid var(--ah-accent);
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.75;
  color: var(--ah-muted);
}

/* 3-step strip */
.oo-ahero__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 2vw, 32px);
  max-width: 640px;
  margin: 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--ah-line);
  list-style: none;
}
.oo-ahero__steps li { display: flex; flex-direction: column; gap: 6px; }
.oo-ahero__num {
  font-family: var(--oo-serif);
  font-size: 1.5rem;
  line-height: 1;
  color: var(--ah-accent);
}
.oo-ahero__label {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ah-muted);
}

/* ----- Right visual ----- */
.oo-ahero__visual { position: relative; min-height: 420px; }
.oo-ahero__frame { position: absolute; inset: 0; overflow: hidden; }
.oo-ahero__frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}
/* soft blend so the photo meets the panel naturally */
.oo-ahero__frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to right, rgba(26, 20, 16, 0.35), rgba(26, 20, 16, 0) 35%),
    linear-gradient(to top, rgba(26, 20, 16, 0.45), rgba(26, 20, 16, 0) 40%);
}
[dir="rtl"] .oo-ahero__frame::after {
  background:
    linear-gradient(to left, rgba(26, 20, 16, 0.35), rgba(26, 20, 16, 0) 35%),
    linear-gradient(to top, rgba(26, 20, 16, 0.45), rgba(26, 20, 16, 0) 40%);
}

/* Overlapping detail card (sits across the seam) */
.oo-ahero__card {
  position: absolute;
  inset-block-end: clamp(72px, 12vh, 128px);
  inset-inline-start: calc(-1 * clamp(56px, 7vw, 120px));
  z-index: 2;
  display: grid;
  grid-template-columns: clamp(84px, 9vw, 132px) 1fr;
  align-items: stretch;
  width: clamp(250px, 26vw, 360px);
  margin: 0;
  border: 1px solid var(--ah-line);
  border-radius: var(--oo-radius);
  background: #F7F4EE;
  color: #382F29;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.35);
  overflow: hidden;
}
.oo-ahero__card img { display: block; width: 100%; height: 100%; min-height: 120px; object-fit: cover; }
.oo-ahero__card figcaption {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 16px 18px;
}
.oo-ahero__card-kicker {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(56, 47, 41, 0.7);
}
.oo-ahero__card-title {
  font-family: var(--oo-serif);
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.15;
}

/* Scroll cue */
.oo-ahero__scroll {
  position: absolute;
  inset-block-end: clamp(20px, 4vh, 40px);
  inset-inline-end: var(--oo-pad);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: #F7F4EE;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
}
.oo-ahero__scroll i {
  position: relative;
  display: block;
  width: 1px;
  height: 48px;
  background: rgba(247, 244, 238, 0.35);
  overflow: hidden;
}
.oo-ahero__scroll i::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  top: -50%;
  height: 50%;
  background: #F7F4EE;
}
@media (prefers-reduced-motion: no-preference) {
  .oo-ahero__frame img { animation: oo-kenburns 18s ease-out both; }
  .oo-ahero__scroll i::after { animation: oo-ahero-scroll 2s ease-in-out infinite; }
}
@keyframes oo-ahero-scroll { to { top: 100%; } }
.oo-ahero :focus-visible { outline: 2px solid #F7F4EE; outline-offset: 3px; }

/* Keep light text on the dark panel in light mode
   (the site-wide light-mode h1 / .oo-eyebrow rules would otherwise darken it) */
[data-theme="light"] .oo-ahero .oo-ahero__title { color: #F7F4EE; }
[data-theme="light"] .oo-ahero .oo-ahero__title em { color: #D8CCBC; }
[data-theme="light"] .oo-ahero .oo-eyebrow--light { color: rgba(247, 244, 238, 0.9); }

/* ----- Tablet & mobile: image becomes the background, still 100vh ----- */
@media (max-width: 900px) {
  .oo-ahero { grid-template-columns: minmax(0, 1fr); }
  .oo-ahero__visual { position: absolute; inset: 0; z-index: -1; min-height: 0; }
  .oo-ahero__frame::after {
    background: linear-gradient(to top, rgba(26, 20, 16, 0.92), rgba(26, 20, 16, 0.62) 55%, rgba(26, 20, 16, 0.4));
  }
  .oo-ahero__panel { padding-inline: var(--oo-pad); }
  .oo-ahero__card,
  .oo-ahero__scroll { display: none; }
}
@media (max-width: 519px) {
  .oo-ahero__steps { gap: 8px; }
  .oo-ahero__label { letter-spacing: 0.1em; font-size: 0.6875rem; }
}

/* RTL */
[dir="rtl"] .oo-ahero__eyebrow,
[dir="rtl"] .oo-ahero__label,
[dir="rtl"] .oo-ahero__card-kicker,
[dir="rtl"] .oo-ahero__scroll { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-ahero__title { letter-spacing: 0; }

/* ---------- 2. Our story (headline row + wide image + 3 columns) ---------- */
.oo-about-story {
  padding-block: var(--oo-space);
  background: var(--bg-main);
  border-top: 1px solid var(--border-color);
}

/* Top row */
.oo-about-story__top {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: clamp(24px, 6vw, 96px);
  align-items: end;
  margin-bottom: clamp(36px, 5vw, 64px);
}
.oo-about-story__lead {
  max-width: 44ch;
  margin: 0;
  padding-inline-start: clamp(16px, 2vw, 28px);
  border-inline-start: 1px solid var(--border-color);
  font-family: var(--oo-serif);
  font-size: clamp(1.25rem, 1.9vw, 1.625rem);
  line-height: 1.5;
  color: var(--text-main);
}

/* Wide image */
.oo-about-story__media {
  position: relative;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 21 / 9;
  border-radius: var(--oo-radius);
  background: var(--border-color);
}
.oo-about-story__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
  transition: transform 0.8s ease;
}
@media (hover: hover) and (pointer: fine) {
  .oo-about-story__media:hover img { transform: scale(1.04); }
}

/* Three columns */
.oo-about-story__cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: clamp(32px, 5vw, 64px);
  border-top: 1px solid var(--border-color);
}
.oo-about-story__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: clamp(24px, 3vw, 40px) clamp(20px, 3vw, 40px) 0;
  border-inline-start: 1px solid var(--border-color);
}
.oo-about-story__col:first-child { padding-inline-start: 0; border-inline-start: 0; }
.oo-about-story__col:last-child { padding-inline-end: 0; }
.oo-about-story__col p {
  max-width: 40ch;
  margin: 0;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--text-muted);
}
.oo-about-story__num {
  font-family: var(--oo-serif);
  font-size: 1.5rem;
  line-height: 1;
  color: var(--text-muted);
}
.oo-about-story__h3 {
  margin: 0;
  font-family: var(--oo-serif);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  line-height: 1.15;
  color: var(--text-main);
}
.oo-about-story__col .oo-link { margin-top: 8px; }

/* Tablet */
@media (max-width: 1024px) {
  .oo-about-story__top { grid-template-columns: 1fr; align-items: start; }
  .oo-about-story__media { aspect-ratio: 16 / 9; }
  .oo-about-story__cols { grid-template-columns: 1fr 1fr; }
  .oo-about-story__col--cta {
    grid-column: 1 / -1;
    padding-inline-start: 0;
    border-inline-start: 0;
    border-top: 1px solid var(--border-color);
    margin-top: 32px;
  }
}

/* Mobile */
@media (max-width: 640px) {
  .oo-about-story__media { aspect-ratio: 4 / 3; }
  .oo-about-story__cols { grid-template-columns: 1fr; }
  .oo-about-story__col,
  .oo-about-story__col:last-child {
    padding-inline: 0;
    border-inline-start: 0;
  }
  .oo-about-story__col + .oo-about-story__col {
    margin-top: 28px;
    border-top: 1px solid var(--border-color);
  }
  .oo-about-story__col--cta { margin-top: 28px; }
}

/* RTL */
[dir="rtl"] .oo-about-story__h3,
[dir="rtl"] .oo-about-story__lead { letter-spacing: 0; }

@media (prefers-reduced-motion: reduce) {
  .oo-about-story__media img { transition: none; }
}

/* ---------- 3. Our history (expanding photo panels) ---------- */
.oo-about-history {
  --hp-bg: #211A16;
  padding-block: var(--oo-space);
  background: var(--hp-bg);
  color: #F7F4EE;
  border-top: 1px solid rgba(216, 204, 188, 0.2);
}
[data-theme="dark"] .oo-about-history { --hp-bg: #17110E; }

/* Keep light text on the dark section (site-wide light-mode h2/h3/eyebrow rules would darken it) */
[data-theme="light"] .oo-about-history .oo-h2,
[data-theme="light"] .oo-about-history .oo-hp__title { color: #F7F4EE; }
[data-theme="light"] .oo-about-history .oo-h2 em { color: #D8CCBC; }
[data-theme="light"] .oo-about-history .oo-eyebrow--light { color: rgba(247, 244, 238, 0.85); }
.oo-about-history .oo-h2 { color: #F7F4EE; }
.oo-about-history .oo-h2 em { color: #D8CCBC; }
.oo-about-history .oo-lead { color: rgba(247, 244, 238, 0.78); }

/* Panel row */
.oo-hp-list {
  display: flex;
  gap: 12px;
  height: clamp(480px, 72vh, 640px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.oo-hp {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--oo-radius);
  background: #382F29;
  transition: flex-grow 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.oo-hp.is-active { flex-grow: 4.2; }

.oo-hp__img { position: absolute; inset: 0; }
.oo-hp__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.5) saturate(0.7);
  transition: filter 0.7s ease, transform 0.9s ease;
}
.oo-hp.is-active .oo-hp__img img { filter: brightness(0.8) saturate(1); transform: scale(1.03); }
.oo-hp::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(20, 14, 11, 0.88), rgba(20, 14, 11, 0.1) 60%);
  pointer-events: none;
}

/* Collapsed tab (number + vertical title) */
.oo-hp__tab {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
  padding: clamp(18px, 2vw, 28px);
  border: 0;
  background: transparent;
  color: #F7F4EE;
  font: inherit;
  text-align: start;
  cursor: pointer;
}
.oo-hp__num {
  font-family: var(--oo-serif);
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  line-height: 1;
  color: #D8CCBC;
}
.oo-hp__label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: opacity 0.3s ease;
}
.oo-hp.is-active .oo-hp__label { opacity: 0; }
.oo-hp__tab:focus-visible { outline: 2px solid #F7F4EE; outline-offset: -4px; }

/* Expanded content */
.oo-hp__content {
  position: absolute;
  inset-inline-start: 0;
  inset-block-end: 0;
  z-index: 2;
  width: clamp(260px, 36vw, 460px);
  padding: clamp(20px, 2.4vw, 36px);
  visibility: hidden;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.4s ease, transform 0.5s ease, visibility 0s linear 0.4s;
}
.oo-hp.is-active .oo-hp__content {
  visibility: visible;
  opacity: 1;
  transform: none;
  transition: opacity 0.5s ease 0.3s, transform 0.6s ease 0.3s, visibility 0s;
}
.oo-hp__step {
  display: block;
  margin-bottom: 10px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #D8CCBC;
}
.oo-hp__title {
  margin: 0 0 12px;
  font-family: var(--oo-serif);
  font-weight: 500;
  font-size: clamp(1.75rem, 2.8vw, 2.5rem);
  line-height: 1.1;
  color: #F7F4EE;
}
.oo-hp__content p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: rgba(247, 244, 238, 0.85);
}

/* Tablet & mobile: vertical accordion */
@media (max-width: 900px) {
  .oo-hp-list { flex-direction: column; height: auto; }
  .oo-hp { flex: none; height: 84px; transition: height 0.6s cubic-bezier(0.2, 0.7, 0.2, 1); }
  .oo-hp.is-active { height: 440px; }
  .oo-hp__tab { flex-direction: row; align-items: center; justify-content: flex-start; gap: 18px; }
  .oo-hp__label { writing-mode: horizontal-tb; transform: none; }
  .oo-hp__content { width: 100%; }
}
@media (max-width: 519px) {
  .oo-hp.is-active { height: 480px; }
}

/* RTL */
[dir="rtl"] .oo-hp__step,
[dir="rtl"] .oo-hp__label { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-hp__title { letter-spacing: 0; }

@media (prefers-reduced-motion: reduce) {
  .oo-hp, .oo-hp__img img, .oo-hp__content { transition: none !important; }
}

/* ---------- 4. Meet the team ---------- */
.oo-about-team {
  padding-block: var(--oo-space);
  background: var(--ab-bg);
  border-top: 1px solid var(--border-color);
}
.oo-about-team__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(32px, 3.5vw, 48px) clamp(16px, 2vw, 32px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.oo-about-member { min-width: 0; }
.oo-about-member__photo {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  background: var(--border-color);
}
.oo-about-member__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}
.oo-about-member__name {
  margin: 22px 0 0;
  font-family: var(--oo-serif);
  font-size: clamp(1.4rem, 1.8vw, 1.65rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--text-main);
}
.oo-about-member__role {
  margin: 8px 0 0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ab-gold);
}
.oo-about-member__text {
  margin: 14px 0 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--text-muted);
}

/* ---------- 5. Final CTA ---------- */
.oo-about-cta {
  padding-block: var(--oo-space);
  background: #211A16;
  color: #F7F4EE;
  text-align: center;
  border-bottom: 1px solid rgba(216, 185, 138, 0.25);
}
.oo-about-cta__inner { max-width: 760px; margin-inline: auto; }
.oo-about-cta .oo-about-cta__eyebrow {
  margin: 0 0 20px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #D8B98A;
}
.oo-about-cta .oo-about-cta__title {
  margin: 0;
  font-family: var(--oo-serif);
  font-weight: 500;
  font-size: clamp(2.25rem, 5.2vw, 4.25rem);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: #F7F4EE;
  text-wrap: balance;
}
.oo-about-cta .oo-about-cta__title em { color: #D8B98A; }
.oo-about-cta__text {
  max-width: 48ch;
  margin: 24px auto 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.7;
  color: rgba(247, 244, 238, 0.8);
}
.oo-about-cta .oo-cta { --accent: #C9A77C; --accent-contrast: #241A14; border-color: #C9A77C; }
.oo-about-cta .oo-cta--ghost {
  background: transparent;
  color: #F7F4EE;
  border-color: rgba(247, 244, 238, 0.7);
}
.oo-about-cta :focus-visible { outline-color: #F7F4EE; }

/* ---------- Hover (only where hover exists) ---------- */
@media (hover: hover) and (pointer: fine) {
  .oo-about-crumbs__list a:hover { background-size: 100% 1px; color: var(--text-main); }
  .oo-about-story__media:hover img { transform: scale(1.04); }
  .oo-about-timeline__item:hover::before { background: var(--ab-gold); }
  .oo-about-member:hover .oo-about-member__photo img { transform: scale(1.05); }
  .oo-about-cta .oo-cta--ghost:hover {
    background: #F7F4EE;
    border-color: #F7F4EE;
    color: #241A14;
  }
}

/* ---------- Tablet: 768–1024 ---------- */
@media (max-width: 1024px) {
  .oo-about-team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Stack columns / vertical timeline ---------- */
@media (max-width: 900px) {
  .oo-about-hero__grid,
  .oo-about-story__grid { grid-template-columns: minmax(0, 1fr); }
  .oo-about-hero__grid { align-items: start; }

  .oo-about-story__media { max-width: 560px; width: 100%; margin-inline: auto; }
  .oo-about-story__media::before {
    inset-block-start: 12px;
    inset-block-end: -12px;
    inset-inline-start: 12px;
    inset-inline-end: -12px;
  }

  .oo-about-timeline {
    grid-template-columns: minmax(0, 1fr);
    max-width: 560px;
    margin-inline: auto;
  }
  .oo-about-timeline::before {
    inset-block: calc(var(--node) / 2) 0;
    inset-inline-start: calc(var(--node) / 2);
    inset-inline-end: auto;
    width: 1px;
    height: auto;
    background: linear-gradient(to bottom, var(--ab-line) 85%, transparent);
  }
  .oo-about-timeline__item {
    padding: 0 0 36px;
    padding-inline-start: 44px;
  }
  .oo-about-timeline__item:last-child { padding-bottom: 0; }
  .oo-about-timeline__item::before { inset-block-start: 3px; }
}

/* ---------- Mobile: 320–767 ---------- */
@media (max-width: 519px) {
  .oo-about-team__grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 420px;
    margin-inline: auto;
  }
}

/* ---------- RTL ---------- */
[dir="rtl"] .oo-about-crumbs__list,
[dir="rtl"] .oo-about-timeline__step,
[dir="rtl"] .oo-about-member__role,
[dir="rtl"] .oo-about-cta .oo-about-cta__eyebrow { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-about-hero__title,
[dir="rtl"] .oo-about-cta .oo-about-cta__title { letter-spacing: 0; }
[dir="rtl"] .oo-about-crumbs__list a { background-position: 100% 100%; }
/* About hero uses the same light surface and text palette as the home sections */
@media (min-width: 901px) {
  [data-theme="light"] .oo-ahero {
    --ah-bg: #FFFFFF;
    --ah-text: #382F29;
    --ah-muted: rgba(56, 47, 41, 0.78);
    --ah-line: rgba(56, 47, 41, 0.22);
    --ah-accent: #8A6B43;
  }
  [data-theme="light"] .oo-ahero__title { color: #382F29; }
  [data-theme="light"] .oo-ahero__title em { color: #8A6B43; }
  [data-theme="light"] .oo-ahero .oo-eyebrow--light { color: #5B4937; }
}

/* Match the About hero heading accents to Home 1 and Home 2 in dark mode */
[data-theme="dark"] .oo-ahero__title { color: #F7F4EE; }
[data-theme="dark"] .oo-ahero__title em { color: #D8B98A; }

/* Keep the About hero heading readable in light mode at every viewport width */
[data-theme="light"] .oo-ahero__title { color: #382F29; }
[data-theme="light"] .oo-ahero__title em { color: #8A6B43; }

/* Override the legacy high-specificity light-mode hero colors */
[data-theme="light"] .oo-ahero .oo-ahero__title { color: #382F29; }
[data-theme="light"] .oo-ahero .oo-ahero__title em { color: #8A6B43; }

/* Center and space the About history introduction like the home sections */
.oo-about-history .oo-about-head {
  max-width: 860px;
  margin: 0 auto clamp(36px, 5vw, 64px);
  text-align: center;
}
.oo-about-history .oo-about-head > .oo-eyebrow {
  justify-content: center;
  margin-inline: auto;
}
.oo-about-history .oo-about-head .oo-h2 {
  margin-inline: auto;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.08;
}
.oo-about-history .oo-about-head .oo-lead {
  max-width: 58ch;
  margin: 18px auto 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.7;
}

/* Match the About history heading accent to the other section headings */
[data-theme="dark"] .oo-about-history .oo-h2 em { color: #D8B98A; }
[data-theme="light"] .oo-about-history .oo-h2 em { color: #8A6B43; }

/* Center and space the About team introduction like the home sections */
.oo-about-team .oo-about-head {
  max-width: 860px;
  margin: 0 auto clamp(36px, 5vw, 64px);
  text-align: center;
}
.oo-about-team .oo-about-head > .oo-eyebrow {
  justify-content: center;
  margin-inline: auto;
}
.oo-about-team .oo-about-head .oo-h2 {
  margin-inline: auto;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.08;
}
.oo-about-team .oo-about-head .oo-lead {
  max-width: 58ch;
  margin: 18px auto 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.7;
}

/* About story section follows the site surface color in both themes */
[data-theme="light"] .oo-about-story { background-color: #FFFFFF; }
[data-theme="dark"] .oo-about-story { background-color: #0F0B09; }




/* ---------- Contact · 1. Hero (content left, image right) ---------- */
.oo-chero {
  --ch-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --ch-pad: clamp(20px, 4.5vw, 64px);
  --ch-accent: #8A6B43;

  display: flex;
  align-items: center;
  min-height: calc(100vh - var(--oo-header-h));
  min-height: calc(100svh - var(--oo-header-h));
  padding-block: clamp(32px, 6vh, 72px);
  background: var(--bg-main);
  overflow-x: clip;
}
[data-theme="dark"] .oo-chero { --ch-accent: #D8B98A; }
[dir="rtl"] .oo-chero { --ch-serif: var(--font-body); }

.oo-chero__wrap {
  width: 100%;
  max-width: calc(1280px + var(--ch-pad) * 2);
  margin-inline: auto;
  padding-inline: var(--ch-pad);
}
.oo-chero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(40px, 7vw, 112px);
  align-items: center;
}

/* ----- Left ----- */
.oo-chero__content { max-width: 620px; }
.oo-chero__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 24px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ch-accent);
}
.oo-chero__eyebrow::before {
  content: "";
  width: 32px;
  height: 1px;
  background: currentColor;
}
.oo-chero__title {
  margin: 0;
  font-family: var(--ch-serif);
  font-weight: 500;
  font-size: clamp(2.5rem, 5.2vw, 4.75rem);
  line-height: 1.04;
  letter-spacing: -0.015em;
  color: var(--text-main);
  text-wrap: balance;
}
[data-theme] .oo-chero .oo-chero__title { color: var(--text-main); }
[data-theme] .oo-chero .oo-chero__title em { font-style: italic; color: var(--ch-accent); }
.oo-chero__text {
  max-width: 48ch;
  margin: 24px 0 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.75;
  color: var(--text-muted);
}

.oo-chero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  margin-top: 32px;
}
.oo-chero__ico { width: 16px; height: 16px; flex: none; }

/* divider + trust points */
.oo-chero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  margin: 36px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid var(--border-color);
  list-style: none;
}
.oo-chero__trust li {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-main);
}
.oo-chero__trust .oo-chero__ico { color: var(--ch-accent); width: 18px; height: 18px; }

/* ----- Right ----- */
.oo-chero__visual {
  position: relative;
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
}
.oo-chero__frame {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 6 / 5;
  max-height: calc(100svh - var(--oo-header-h) - 96px);
  width: 100%;
  border-radius: var(--oo-radius);
  background: var(--border-color);
}
.oo-chero__frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
}

/* floating cards */
.oo-chero__card {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 20px 12px 12px;
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  background: var(--bg-main);
  box-shadow: var(--shadow-soft);
}
.oo-chero__card--top {
  inset-block-start: clamp(20px, 4vw, 40px);
  inset-inline-start: calc(-1 * clamp(16px, 3vw, 40px));
}
.oo-chero__card--bottom {
  inset-block-end: clamp(20px, 4vw, 40px);
  inset-inline-end: calc(-1 * clamp(12px, 2vw, 28px));
}
.oo-chero__card-ico {
  display: grid;
  place-items: center;
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: var(--oo-radius);
  background: var(--accent);
  color: var(--accent-contrast);
}
.oo-chero__card-ico .oo-icon { width: 20px; height: 20px; }
.oo-chero__card-text { display: flex; flex-direction: column; gap: 2px; line-height: 1.2; }
.oo-chero__card-text small {
  font-size: 0.75rem;
  color: var(--text-muted);
}
.oo-chero__card-text strong {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-main);
}

/* ----- Tablet & mobile: stack, content first ----- */
@media (max-width: 900px) {
  .oo-chero { min-height: 0; padding-block: clamp(40px, 8vw, 72px); }
  .oo-chero__grid { grid-template-columns: 1fr; }
  .oo-chero__content { max-width: none; }
  .oo-chero__visual { max-width: 560px; }
  .oo-chero__frame { max-height: none; }
}
@media (max-width: 519px) {
  .oo-chero__actions .oo-cta { flex: 1 1 100%; }
  .oo-chero__card { padding: 10px 14px 10px 10px; gap: 10px; }
  .oo-chero__card--top { inset-inline-start: -8px; }
  .oo-chero__card--bottom { inset-inline-end: -8px; }
  .oo-chero__card-ico { width: 38px; height: 38px; }
}

/* RTL */
[dir="rtl"] .oo-chero__eyebrow { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-chero__title { letter-spacing: 0; }




/* ---------- Contact · 2. Get in touch (4 joined columns) ---------- */
.oo-cways {
  --cw-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --cw-pad: clamp(20px, 4.5vw, 64px);
  --cw-accent: #8A6B43;

  padding-block: clamp(64px, 9vw, 128px);
  background: var(--bg-main);
  border-top: 1px solid var(--border-color);
  overflow-x: clip;
}
[data-theme="dark"] .oo-cways { --cw-accent: #D8B98A; }
[dir="rtl"] .oo-cways { --cw-serif: var(--font-body); }

.oo-cways__wrap {
  width: 100%;
  max-width: calc(1280px + var(--cw-pad) * 2);
  margin-inline: auto;
  padding-inline: var(--cw-pad);
}

/* Heading */
.oo-cways__head {
  max-width: 720px;
  margin: 0 auto clamp(36px, 5vw, 64px);
  text-align: center;
}
.oo-cways__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 20px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cw-accent);
}
.oo-cways__eyebrow::before {
  content: "";
  width: 32px;
  height: 1px;
  background: currentColor;
}
.oo-cways__title {
  margin: 0;
  font-family: var(--cw-serif);
  font-weight: 500;
  font-size: clamp(2rem, 4.2vw, 3.5rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
[data-theme] .oo-cways .oo-cways__title { color: var(--text-main); }
[data-theme] .oo-cways .oo-cways__title em { font-style: italic; color: var(--cw-accent); }
.oo-cways__lead {
  max-width: 52ch;
  margin: 18px auto 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.7;
  color: var(--text-muted);
}

/* Joined card: 1px gaps over a border-colored background draw the dividers */
.oo-cways__card {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  background: var(--border-color);
  box-shadow: var(--shadow-soft);
}
.oo-cways__card::before {            /* accent bar on top */
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: 1;
  height: 4px;
  background: var(--cw-accent);
}
.oo-cways__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(28px, 3vw, 40px) clamp(22px, 2.6vw, 36px);
  background: var(--bg-main);
}

.oo-cways__ico {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 28px;
  border: 1px solid var(--border-color);
  border-radius: 50%;
  color: var(--cw-accent);
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.oo-cways__ico .oo-icon { width: 22px; height: 22px; }
.oo-cways__h3 {
  margin: 0 0 10px;
  font-family: var(--cw-serif);
  font-weight: 500;
  font-size: clamp(1.5rem, 2vw, 1.875rem);
  line-height: 1.15;
}
[data-theme] .oo-cways .oo-cways__h3 { color: var(--text-main); }
.oo-cways__desc {
  max-width: 28ch;
  margin: 0 0 24px;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--text-muted);
}

/* detail rows */
.oo-cways__meta { margin: auto 0 0; display: grid; gap: 8px; }
.oo-cways__meta div { font-size: 0.9375rem; line-height: 1.55; color: var(--text-muted); }
.oo-cways__meta dt,
.oo-cways__meta dd { display: inline; margin: 0; }
.oo-cways__meta dt { font-weight: 600; color: var(--text-main); }
.oo-cways__meta a {
  font-weight: 600;
  color: var(--cw-accent);
  text-decoration: none;
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
  transition: background-size 0.3s ease;
  overflow-wrap: anywhere;
}
.oo-cways__meta a:hover,
.oo-cways__meta a:focus-visible { background-size: 100% 1px; }

@media (hover: hover) and (pointer: fine) {
  .oo-cways__item:hover .oo-cways__ico {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--accent-contrast);
  }
}

/* Tablet: 2 x 2 */
@media (max-width: 1024px) {
  .oo-cways__card { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Mobile: 1 column */
@media (max-width: 600px) {
  .oo-cways__card { grid-template-columns: 1fr; }
  .oo-cways__desc { max-width: none; }
}

/* RTL */
[dir="rtl"] .oo-cways__eyebrow { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-cways__title,
[dir="rtl"] .oo-cways__h3 { letter-spacing: 0; }

@media (prefers-reduced-motion: reduce) {
  .oo-cways__ico, .oo-cways__meta a { transition: none; }
}



/* ---------- Contact · 3. Send a message (intro + image left, form card right) ---------- */
.oo-cform {
  --cf-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --cf-pad: clamp(20px, 4.5vw, 64px);
  --cf-accent: #8A6B43;

  padding-block: clamp(64px, 9vw, 128px);
  background: var(--bg-soft);
  border-top: 1px solid var(--border-color);
  overflow-x: clip;
}
[data-theme="dark"] .oo-cform { --cf-accent: #D8B98A; }
[dir="rtl"] .oo-cform { --cf-serif: var(--font-body); }

.oo-cform__wrap {
  width: 100%;
  max-width: calc(1280px + var(--cf-pad) * 2);
  margin-inline: auto;
  padding-inline: var(--cf-pad);
}
.oo-cform__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: start;
}

/* ----- Left ----- */
.oo-cform__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 20px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cf-accent);
}
.oo-cform__eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; }
.oo-cform__title {
  margin: 0;
  font-family: var(--cf-serif);
  font-weight: 500;
  font-size: clamp(2rem, 4.2vw, 3.5rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
[data-theme] .oo-cform .oo-cform__title { color: var(--text-main); }
[data-theme] .oo-cform .oo-cform__title em { font-style: italic; color: var(--cf-accent); }
.oo-cform__lead {
  max-width: 48ch;
  margin: 18px 0 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.7;
  color: var(--text-muted);
}

.oo-cform__media {
  margin: clamp(28px, 4vw, 40px) 0 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: var(--oo-radius);
  background: var(--border-color);
}
.oo-cform__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 62%;
}

.oo-cform__list {
  display: grid;
  gap: 14px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}
.oo-cform__list li {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-main);
}
.oo-cform__tick {
  display: grid;
  place-items: center;
  flex: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--accent-contrast);
}
.oo-cform__tick .oo-icon { width: 14px; height: 14px; }

/* ----- Right: form card ----- */
.oo-cform__card {
  padding: clamp(24px, 3.2vw, 44px);
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  background: var(--bg-main);
  box-shadow: var(--shadow-soft);
}
.oo-cform__form { display: grid; gap: 22px; }
.oo-cform__row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.oo-cform__field { display: grid; gap: 8px; min-width: 0; }
.oo-cform__field label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-main);
}
.oo-cform__field label span { font-weight: 400; color: var(--text-muted); }

.oo-cform input[type="text"],
.oo-cform input[type="email"],
.oo-cform input[type="tel"],
.oo-cform select,
.oo-cform textarea {
  width: 100%;
  min-height: 52px;
  padding: 0 16px;
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  background: var(--bg-main);
  color: var(--text-main);
  font: inherit;
  font-size: 0.9375rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.oo-cform textarea { min-height: 160px; padding: 14px 16px; line-height: 1.6; resize: vertical; }
.oo-cform ::placeholder { color: var(--text-muted); opacity: 0.8; }
.oo-cform input:focus-visible,
.oo-cform select:focus-visible,
.oo-cform textarea:focus-visible {
  outline: none;
  border-color: var(--text-main);
  box-shadow: 0 0 0 3px var(--border-color);
}
.oo-cform input:user-invalid,
.oo-cform select:user-invalid,
.oo-cform textarea:user-invalid { border-color: #B3402F; }

/* custom select arrow */
.oo-cform__select { position: relative; }
.oo-cform__select select {
  appearance: none;
  -webkit-appearance: none;
  padding-inline-end: 44px;
  cursor: pointer;
}
.oo-cform__select select:invalid { color: var(--text-muted); }
.oo-cform__select .oo-icon {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: 16px;
  width: 18px;
  height: 18px;
  translate: 0 -50%;
  color: var(--text-muted);
  pointer-events: none;
}

.oo-cform__count {
  justify-self: end;
  font-size: 0.8125rem;
  color: var(--text-muted);
}

/* consent */
.oo-cform__consent {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.875rem;
  color: var(--text-muted);
  cursor: pointer;
}
.oo-cform__consent input {
  width: 20px;
  height: 20px;
  margin: 0;
  flex: none;
  accent-color: var(--accent);
  cursor: pointer;
}

/* submit */
.oo-cform__submit { width: 100%; min-height: 54px; }
.oo-cform__send { width: 16px; height: 16px; }
[dir="rtl"] .oo-cform__send { transform: scaleX(-1); }

/* ----- Tablet & mobile ----- */
@media (max-width: 900px) {
  .oo-cform__grid { grid-template-columns: 1fr; }
  .oo-cform__media { aspect-ratio: 16 / 10; }
}
@media (max-width: 519px) {
  .oo-cform__row { grid-template-columns: 1fr; }
}

/* RTL */
[dir="rtl"] .oo-cform__eyebrow { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-cform__title { letter-spacing: 0; }

@media (prefers-reduced-motion: reduce) {
  .oo-cform input, .oo-cform select, .oo-cform textarea { transition: none; }
}

/* Contact form section: match the left column height to the form on desktop */
@media (min-width: 901px) {
  .oo-cform__grid { align-items: stretch; }
  .oo-cform__intro {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .oo-cform__media {
    flex: 1 1 0;
    min-height: 180px;
    aspect-ratio: auto;
  }
  .oo-cform__card { height: 100%; }
}



/* ---------- Contact · 4. Find us (map + info card) ---------- */
.oo-cvisit {
  --cv-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --cv-pad: clamp(20px, 4.5vw, 64px);
  --cv-accent: #8A6B43;

  padding-block: clamp(64px, 9vw, 128px);
  background: var(--bg-main);
  border-top: 1px solid var(--border-color);
  overflow-x: clip;
}
[data-theme="dark"] .oo-cvisit { --cv-accent: #D8B98A; }
[dir="rtl"] .oo-cvisit { --cv-serif: var(--font-body); }

.oo-cvisit__wrap {
  width: 100%;
  max-width: calc(1280px + var(--cv-pad) * 2);
  margin-inline: auto;
  padding-inline: var(--cv-pad);
}

/* Heading row */
.oo-cvisit__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: clamp(32px, 5vw, 56px);
}
.oo-cvisit__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 20px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cv-accent);
}
.oo-cvisit__eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; }
.oo-cvisit__title {
  margin: 0;
  font-family: var(--cv-serif);
  font-weight: 500;
  font-size: clamp(2rem, 4.2vw, 3.5rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
[data-theme] .oo-cvisit .oo-cvisit__title { color: var(--text-main); }
[data-theme] .oo-cvisit .oo-cvisit__title em { font-style: italic; color: var(--cv-accent); }
.oo-cvisit__lead {
  max-width: 48ch;
  margin: 18px 0 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.7;
  color: var(--text-muted);
}
.oo-cvisit__ico { width: 16px; height: 16px; flex: none; }

/* Grid */
.oo-cvisit__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(20px, 2.4vw, 32px);
  align-items: stretch;
}

/* Map */
.oo-cvisit__map {
  position: relative;
  min-height: 480px;
  overflow: hidden;
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  background: var(--border-color);
  box-shadow: var(--shadow-soft);
}
.oo-cvisit__map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
/* soften the map in dark mode */
[data-theme="dark"] .oo-cvisit__map iframe {
  filter: invert(0.9) hue-rotate(180deg) saturate(0.7) brightness(0.9);
}

/* Info card */
.oo-cvisit__card {
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  background: var(--bg-soft);
}
.oo-cvisit__h3 {
  margin: 0 0 14px;
  font-family: var(--cv-serif);
  font-weight: 500;
  font-size: clamp(1.625rem, 2.4vw, 2.125rem);
  line-height: 1.12;
}
[data-theme] .oo-cvisit .oo-cvisit__h3 { color: var(--text-main); }
.oo-cvisit__address {
  margin: 0;
  font-style: normal;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-muted);
}
.oo-cvisit__label {
  margin: 28px 0 8px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cv-accent);
}

/* Hours */
.oo-cvisit__hours { margin: 0; padding: 0; list-style: none; }
.oo-cvisit__hours li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 16px;
  padding-block: 14px;
  border-bottom: 1px dashed var(--border-color);
  font-size: 0.9375rem;
}
.oo-cvisit__hours span { font-weight: 600; color: var(--text-main); }
.oo-cvisit__hours time { color: var(--text-muted); }
.oo-cvisit__hours .oo-cvisit__hours--accent span,
.oo-cvisit__hours .oo-cvisit__hours--accent time { color: var(--cv-accent); font-weight: 600; }

/* Contact lines */
.oo-cvisit__contact {
  display: grid;
  gap: 12px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}
.oo-cvisit__contact li {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.oo-cvisit__contact .oo-cvisit__ico { width: 18px; height: 18px; color: var(--cv-accent); }
.oo-cvisit__contact a {
  font-weight: 600;
  color: var(--text-main);
  text-decoration: none;
  overflow-wrap: anywhere;
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
  transition: background-size 0.3s ease;
}
.oo-cvisit__contact a:hover,
.oo-cvisit__contact a:focus-visible { background-size: 100% 1px; }

/* Note strip */
.oo-cvisit__note {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: auto 0 0;
  padding: 14px 16px;
  border-radius: var(--oo-radius);
  background: var(--bg-main);
  border: 1px solid var(--border-color);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-muted);
}
.oo-cvisit__contact + .oo-cvisit__note { margin-top: 28px; }
.oo-cvisit__note .oo-cvisit__ico { color: var(--cv-accent); width: 18px; height: 18px; }

/* Get Directions button */
.oo-cvisit__dir { gap: 10px; }

/* Tablet & mobile */
@media (max-width: 900px) {
  .oo-cvisit__grid { grid-template-columns: 1fr; }
  .oo-cvisit__map { min-height: 340px; aspect-ratio: 16 / 10; }
}
@media (max-width: 519px) {
  .oo-cvisit__dir { width: 100%; }
  .oo-cvisit__map { aspect-ratio: 4 / 3; }
}

/* RTL */
[dir="rtl"] .oo-cvisit__eyebrow,
[dir="rtl"] .oo-cvisit__label { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-cvisit__title { letter-spacing: 0; }
[dir="rtl"] .oo-cvisit__dir .oo-cvisit__ico { transform: scaleX(-1); }

@media (prefers-reduced-motion: reduce) {
  .oo-cvisit__contact a { transition: none; }
}



/* ---------- Contact · 5. CTA (dark panel + action rows) ---------- */
.oo-ccta {
  --cc-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --cc-pad: clamp(20px, 4.5vw, 64px);
  --cc-bg: #382F29;
  --cc-text: #F7F4EE;
  --cc-muted: rgba(247, 244, 238, 0.78);
  --cc-line: rgba(216, 204, 188, 0.3);
  --cc-accent: #D8CCBC;

  padding-block: clamp(48px, 7vw, 96px);
  background: var(--bg-main);
  border-top: 1px solid var(--border-color);
  overflow-x: clip;
}
[data-theme="dark"] .oo-ccta { --cc-bg: #17110E; }
[dir="rtl"] .oo-ccta { --cc-serif: var(--font-body); }

.oo-ccta__wrap {
  width: 100%;
  max-width: calc(1280px + var(--cc-pad) * 2);
  margin-inline: auto;
  padding-inline: var(--cc-pad);
}

/* Panel */
.oo-ccta__panel {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: center;
  overflow: hidden;
  padding: clamp(32px, 6vw, 88px);
  border-radius: var(--oo-radius);
  background: var(--cc-bg);
  color: var(--cc-text);
}

/* Decorative ring (pure CSS, no image) */
.oo-ccta__ring {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: -12%;
  z-index: -1;
  width: clamp(320px, 46vw, 620px);
  aspect-ratio: 1;
  translate: 0 -50%;
  border: 1px solid var(--cc-line);
  border-radius: 50%;
  box-shadow:
    0 0 0 48px rgba(216, 204, 188, 0.04),
    0 0 0 96px rgba(216, 204, 188, 0.025);
  pointer-events: none;
}
[dir="rtl"] .oo-ccta__ring { inset-inline-start: auto; inset-inline-end: -12%; }

/* Left */
.oo-ccta__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 20px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cc-accent);
}
.oo-ccta__eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; }
.oo-ccta__title {
  margin: 0;
  font-family: var(--cc-serif);
  font-weight: 500;
  font-size: clamp(2.25rem, 4.8vw, 4.25rem);
  line-height: 1.05;
  letter-spacing: -0.015em;
  text-wrap: balance;
}
/* keep light text on the dark panel in light mode (site-wide h2 rules would darken it) */
[data-theme] .oo-ccta .oo-ccta__title { color: var(--cc-text); }
[data-theme] .oo-ccta .oo-ccta__title em { display: block; font-style: italic; color: var(--cc-accent); }
.oo-ccta__text {
  max-width: 44ch;
  margin: 22px 0 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.75;
  color: var(--cc-muted);
}

/* Right: action rows */
.oo-ccta__actions {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--cc-line);
}
.oo-ccta__actions li { border-bottom: 1px solid var(--cc-line); }
.oo-ccta__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-block: clamp(18px, 2.4vw, 28px);
  color: var(--cc-text);
  text-decoration: none;
}
.oo-ccta__row-text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.oo-ccta__row small {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cc-accent);
}
.oo-ccta__row strong {
  font-family: var(--cc-serif);
  font-weight: 500;
  font-size: clamp(1.375rem, 2.2vw, 2rem);
  line-height: 1.15;
  overflow-wrap: anywhere;
  transition: translate 0.3s ease;
}
.oo-ccta__go {
  display: grid;
  place-items: center;
  flex: none;
  width: 48px;
  height: 48px;
  border: 1px solid var(--cc-line);
  border-radius: 50%;
  color: var(--cc-text);
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.oo-ccta__go .oo-icon { width: 18px; height: 18px; }
[dir="rtl"] .oo-ccta__go .oo-icon { transform: scaleX(-1); }

.oo-ccta__row:focus-visible { outline: 2px solid var(--cc-text); outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  .oo-ccta__row:hover strong { translate: 8px 0; }
  [dir="rtl"] .oo-ccta__row:hover strong { translate: -8px 0; }
  .oo-ccta__row:hover .oo-ccta__go {
    background: var(--cc-text);
    border-color: var(--cc-text);
    color: var(--cc-bg);
  }
}

/* Tablet & mobile */
@media (max-width: 900px) {
  .oo-ccta__panel { grid-template-columns: 1fr; }
  .oo-ccta__content { max-width: 600px; }
}
@media (max-width: 519px) {
  .oo-ccta__go { width: 42px; height: 42px; }
}

/* RTL */
[dir="rtl"] .oo-ccta__eyebrow,
[dir="rtl"] .oo-ccta__row small { letter-spacing: 0; text-transform: none; }
[dir="rtl"] .oo-ccta__title { letter-spacing: 0; }

@media (prefers-reduced-motion: reduce) {
  .oo-ccta__row strong, .oo-ccta__go { transition: none; }
}
/* Use the home-page CTA palette and shape consistently across page content */
.oo-home .oo-cta,
.oo-about .oo-cta,
.oo-contact .oo-cta {
  --accent: #C9A77C;
  --accent-contrast: #241A14;
  border-color: #C9A77C;
}
.oo-home .oo-cta--ghost,
.oo-about .oo-cta--ghost,
.oo-contact .oo-cta--ghost {
  background: transparent;
  color: var(--text-main);
  border-color: currentColor;
}

/* Match the custom final CTA buttons to the shared home-page button system */
.oo-cx__btn {
  min-height: 48px;
  padding-inline: 28px;
  border-radius: var(--oo-radius);
  font: 500 0.75rem/1 var(--font-body);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.oo-cx .oo-cx__btn--gold {
  background: #C9A77C;
  border-color: #C9A77C;
  color: #241A14;
}
.oo-cx .oo-cx__btn--dark {
  background: transparent;
  border-color: currentColor;
  color: var(--cx-text);
}
@media (hover: hover) and (pointer: fine) {
  .oo-cx .oo-cx__btn--gold:hover {
    background: #D8B98A;
    border-color: #D8B98A;
  }
}




/* Shared dark background across Home 1 and Home 2 sections */
[data-theme="dark"] .oo-hero,
[data-theme="dark"] .oo-wy,
[data-theme="dark"] .oo-shop,
[data-theme="dark"] .oo-split,
[data-theme="dark"] .oo-film,
[data-theme="dark"] .oo-flow,
[data-theme="dark"] .oo-reviews,
[data-theme="dark"] .oo-final,
[data-theme="dark"] .oo-browse,
[data-theme="dark"] .oo-fp,
[data-theme="dark"] .oo-wd,
[data-theme="dark"] .oo-es,
[data-theme="dark"] .oo-rs,
[data-theme="dark"] .oo-bp,
[data-theme="dark"] .oo-cx {
  background-color: #0F0B09;
}
[data-theme="dark"] .oo-header--overlay:not(.is-solid) {
  background: #0F0B09;
  border-bottom-color: var(--nav-border);
}
[data-theme="dark"] .oo-header--overlay:not(.is-solid)::before { display: none; }

/* Keep both solid and overlay navbar states matched to the dark footer */
[data-theme="dark"] .oo-header { background-color: #17110E; }
[data-theme="dark"] .oo-header--overlay:not(.is-solid) { background: #17110E; }

/* Home 1 section-two heading follows the shared editorial heading style */
.oo-wy .oo-wy__title { color: var(--wy-text); }
.oo-wy__title em { color: #D8B98A; font-style: italic; }

/* Dark mode process circles blend into their section background */
[data-theme="dark"] .oo-flow__num {
  background: #0F0B09;
  box-shadow: 0 0 0 8px #0F0B09;
}

/* Separate Home 1 sections 5, 6, and 7 */
.oo-flow,
.oo-reviews {
  border-top: 1px solid var(--border-color);
}

/* Oak wood photo fills its circular swatch */
.oo-wd__swatch { overflow: hidden; }
.oo-wd__swatch img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}

/* Show the complete era photo on tablet and mobile */
@media (max-width: 860px) {
  .oo-es__media { background: var(--es-bg); }
  .oo-es__media img { object-fit: contain; }
}

/* Give responsive era photos more vertical space while keeping them full width */
@media (max-width: 860px) {
  .oo-es { min-height: 820px; }
  .oo-es__slide {
    grid-template-rows: minmax(300px, 48svh) minmax(0, 1fr);
  }
  .oo-es__media { background: var(--es-bg); }
  .oo-es__media img { object-fit: cover; object-position: center; }
}

/* Further enlarge the responsive era image panel */
@media (max-width: 860px) {
  .oo-es { min-height: 960px; }
  .oo-es__slide {
    grid-template-rows: minmax(380px, 60svh) minmax(0, 1fr);
  }
}

/* Taller era image on tablet screens */
@media (min-width: 520px) and (max-width: 860px) {
  .oo-es { min-height: 1120px; }
  .oo-es__slide {
    grid-template-rows: minmax(460px, 72svh) minmax(0, 1fr);
  }
}

/* Tablet era slider: full-viewport image followed by the text panel */
@media (min-width: 520px) and (max-width: 860px) {
  .oo-es {
    height: auto;
    min-height: calc(100svh + 580px);
  }
  .oo-es__slide {
    grid-template-rows: 100svh minmax(580px, 1fr);
  }
}

/* Dark-mode featured-piece boxes match the section background */
[data-theme="dark"] .oo-fp__cell {
  background: var(--bg-main);
}

/* White section surfaces in light mode; navbar and footer retain their colors */
[data-theme="light"] .oo-hero,
[data-theme="light"] .oo-wy,
[data-theme="light"] .oo-shop,
[data-theme="light"] .oo-split,
[data-theme="light"] .oo-film,
[data-theme="light"] .oo-flow,
[data-theme="light"] .oo-reviews,
[data-theme="light"] .oo-final,
[data-theme="light"] .oo-browse,
[data-theme="light"] .oo-fp,
[data-theme="light"] .oo-wd,
[data-theme="light"] .oo-es,
[data-theme="light"] .oo-rs,
[data-theme="light"] .oo-bp,
[data-theme="light"] .oo-cx {
  background-color: #FFFFFF;
}
[data-theme="light"] .oo-wy {
  --wy-bg: #FFFFFF;
  --wy-text: #382F29;
  --wy-muted: rgba(56, 47, 41, 0.75);
  --wy-line: rgba(56, 47, 41, 0.2);
}
[data-theme="light"] .oo-flow {
  --flow-text: #382F29;
  --flow-muted: rgba(56, 47, 41, 0.75);
  --flow-line: rgba(138, 107, 67, 0.4);
  --flow-gold: #8A6B43;
}
[data-theme="light"] .oo-flow__num {
  background: #FFFFFF;
  box-shadow: 0 0 0 8px #FFFFFF;
}
[data-theme="light"] .oo-es {
  --es-bg: #FFFFFF;
  --es-text: #382F29;
  --es-muted: rgba(56, 47, 41, 0.75);
  --es-gold: #8A6B43;
  --es-line: rgba(56, 47, 41, 0.28);
}
[data-theme="light"] .oo-cx {
  --cx-bg: #FFFFFF;
  --cx-text: #382F29;
  --cx-muted: rgba(56, 47, 41, 0.75);
  --cx-gold: #8A6B43;
  --cx-line: rgba(56, 47, 41, 0.25);
}

/* Keep the secondary CTA readable against its dark background in light mode */
[data-theme="light"] .oo-cx__btn--dark {
  color: #F7F4EE;
}
@media (hover: hover) and (pointer: fine) {
  [data-theme="light"] .oo-cx__btn--dark:hover {
    color: var(--cx-gold);
  }
}

/* Home 2 final CTA uses the same readable light palette as the other sections */
[data-theme="light"] .oo-cx__eyebrow {
  color: rgba(56, 47, 41, 0.72);
}
[data-theme="light"] .oo-cx__eyebrow span,
[data-theme="light"] .oo-cx__title em {
  color: #8A6B43;
}
[data-theme="light"] .oo-cx__title { color: #382F29; }
[data-theme="light"] .oo-cx__lead { color: rgba(56, 47, 41, 0.75); }
[data-theme="light"] .oo-cx__btn--gold {
  background: #8A6B43;
  border-color: #8A6B43;
  color: #FFFFFF;
}
[data-theme="light"] .oo-cx__btn--dark {
  background: transparent;
  border-color: rgba(56, 47, 41, 0.45);
  color: #382F29;
}
@media (hover: hover) and (pointer: fine) {
  [data-theme="light"] .oo-cx__btn--gold:hover {
    background: #735735;
    border-color: #735735;
  }
  [data-theme="light"] .oo-cx__btn--dark:hover {
    background: #F7F4EE;
    border-color: #8A6B43;
    color: #382F29;
  }
}

/* Improve heading and eyebrow contrast across every light-mode section */
[data-theme="light"] h1,
[data-theme="light"] h2,
[data-theme="light"] h3,
[data-theme="light"] .oo-h1,
[data-theme="light"] .oo-h2,
[data-theme="light"] .oo-wd__head .oo-h2,
[data-theme="light"] .oo-es__title,
[data-theme="light"] .oo-rs__title,
[data-theme="light"] .oo-bp__title,
[data-theme="light"] .oo-cx__title {
  color: #382F29;
}
[data-theme="light"] h1 em,
[data-theme="light"] h2 em,
[data-theme="light"] h3 em,
[data-theme="light"] .oo-h1 em,
[data-theme="light"] .oo-h2 em,
[data-theme="light"] .oo-wd__head .oo-h2 em,
[data-theme="light"] .oo-es__title em,
[data-theme="light"] .oo-rs__title em,
[data-theme="light"] .oo-bp__title em,
[data-theme="light"] .oo-cx__title em {
  color: #8A6B43;
}
[data-theme="light"] .oo-eyebrow,
[data-theme="light"] .oo-wd__head > .oo-eyebrow,
[data-theme="light"] .oo-es__eyebrow,
[data-theme="light"] .oo-rs__intro > .oo-eyebrow,
[data-theme="light"] .oo-bp__eyebrow,
[data-theme="light"] .oo-cx__eyebrow {
  color: #5B4937;
}
[data-theme="light"] .oo-wd__head > .oo-eyebrow span,
[data-theme="light"] .oo-es__eyebrow span,
[data-theme="light"] .oo-rs__intro > .oo-eyebrow span,
[data-theme="light"] .oo-bp__eyebrow span,
[data-theme="light"] .oo-cx__eyebrow span {
  color: #8A6B43;
}
/* Keep labels over the dark hero image white for contrast. */
[data-theme="light"] .oo-hero .oo-eyebrow--light {
  color: rgba(247, 244, 238, 0.9);
}

/* Preserve light text over the hero image and dark footer in light mode */
[data-theme="light"] .oo-hero .oo-hero__title {
  color: #F7F4EE;
}
[data-theme="light"] .oo-hero .oo-hero__title em {
  color: #D8B98A;
}
[data-theme="light"] .oo-footer h2,
[data-theme="light"] .oo-footer h3,
[data-theme="light"] .oo-footer__big {
  color: #F7F4EE;
}
[data-theme="light"] .oo-footer h2 em,
[data-theme="light"] .oo-footer h3 em,
[data-theme="light"] .oo-footer__big em {
  color: #D8B98A;
}

/* Keep the dark image-backed story section readable in light mode */
[data-theme="light"] .oo-bp__title,
[data-theme="light"] .oo-bp__title .oo-bp__bold {
  color: #F7F4EE;
}
[data-theme="light"] .oo-bp__title em,
[data-theme="light"] .oo-bp__eyebrow {
  color: #D8B98A;
}

/* Dark mode: keep the overlay header transparent over the hero, then solid on scroll */
[data-theme="dark"] .oo-header--overlay:not(.is-solid) {
  background: transparent;
  border-bottom-color: transparent;
}
[data-theme="dark"] .oo-header--overlay:not(.is-solid)::before {
  display: block;
}
[data-theme="dark"] .oo-header--overlay.is-solid {
  background: #17110E;
  border-bottom-color: var(--nav-border);
}








/* ==========================================
   RESTORATION & CRAFTSMANSHIP
   Unique namespace: oo-craft
   ========================================== */

.oo-craft {
  --craft-serif: var(--oo-serif, "Cormorant Garamond", Georgia, serif);
  --craft-pad: clamp(20px, 4.5vw, 64px);
  --craft-accent: #8A6B43;

  padding-block: clamp(64px, 9vw, 128px);
  background: var(--bg-main);
  border-top: 1px solid var(--border-color);
  overflow-x: clip;
}

[data-theme="dark"] .oo-craft {
  --craft-accent: #D8B98A;
}

[dir="rtl"] .oo-craft {
  --craft-serif: var(--font-body);
}

.oo-craft *,
.oo-craft *::before,
.oo-craft *::after {
  box-sizing: border-box;
}

.oo-craft__container {
  width: 100%;
  max-width: calc(1280px + var(--craft-pad) * 2);
  margin-inline: auto;
  padding-inline: var(--craft-pad);
}

/* ---------- Heading ---------- */

.oo-craft__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px 48px;
  margin-bottom: clamp(32px, 5vw, 56px);
}

.oo-craft__intro {
  flex: 1 1 480px;
  min-width: 0;
  max-width: 680px;
}

.oo-craft__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 20px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--craft-accent);
}

.oo-craft__eyebrow::before {
  content: "";
  flex: 0 0 32px;
  width: 32px;
  height: 1px;
  background: currentColor;
}

.oo-craft__title {
  margin: 0;
  font-family: var(--craft-serif);
  font-size: clamp(2rem, 4.2vw, 3.5rem);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.01em;
  text-wrap: balance;
  color: var(--text-main);
}

.oo-craft__title em {
  font-style: italic;
  color: var(--craft-accent);
}

.oo-craft__lead {
  max-width: 54ch;
  margin: 18px 0 0;
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.7;
  color: var(--text-muted);
}

/* ---------- Actions ---------- */

.oo-craft__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
}

.oo-craft__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 12px 22px;
  border: 1px solid var(--accent);
  border-radius: var(--oo-radius);
  background: var(--accent);
  color: var(--accent-contrast);
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease;
}

.oo-craft__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  color: var(--text-main);
  font-size: 0.8125rem;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.25s ease;
}

.oo-craft__arrow {
  display: block;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.25s ease;
}

/* ---------- Bento grid ---------- */

.oo-craft__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 1.8vw, 24px);
  align-items: stretch;
}

/* ---------- Workshop image ---------- */

.oo-craft__visual {
  position: relative;
  grid-column: 1;
  grid-row: 1 / span 2;
  min-width: 0;
  min-height: 520px;
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--oo-radius) * 4);
  background: var(--border-color);
  isolation: isolate;
}

.oo-craft__visual img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.9s ease;
}

.oo-craft__visual::after {
  position: absolute;
  inset: 0;
  z-index: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(20, 14, 11, 0.88),
    rgba(20, 14, 11, 0) 55%
  );
}

.oo-craft__caption {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  z-index: 1;
  display: grid;
  gap: 8px;
  padding: clamp(20px, 2.4vw, 32px);
  color: #F7F4EE;
}

.oo-craft__caption span {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  line-height: 1.5;
  text-transform: uppercase;
  color: #D8CCBC;
}

.oo-craft__caption strong {
  font-family: var(--craft-serif);
  font-size: clamp(1.375rem, 2vw, 1.75rem);
  font-weight: 500;
  line-height: 1.2;
}

/* ---------- Service cards ---------- */

.oo-craft__card {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(22px, 2.6vw, 36px);
  border: 1px solid var(--border-color);
  border-radius: calc(var(--oo-radius) * 4);
  background: var(--bg-soft);
  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    border-color 0.35s ease;
}

.oo-craft__icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 22px;
  border: 1px solid var(--border-color);
  border-radius: 50%;
  color: var(--craft-accent);
}

.oo-craft__icon svg {
  display: block;
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.oo-craft__number {
  position: absolute;
  inset-block-start: clamp(18px, 2.2vw, 30px);
  inset-inline-end: clamp(22px, 2.6vw, 36px);
  font-family: var(--craft-serif);
  font-size: 1.5rem;
  line-height: 1;
  color: var(--text-muted);
  opacity: 0.5;
}

.oo-craft__heading {
  margin: 0 0 10px;
  font-family: var(--craft-serif);
  font-size: clamp(1.5rem, 2vw, 1.875rem);
  font-weight: 500;
  line-height: 1.12;
  color: var(--text-main);
}

.oo-craft__description {
  margin: 0 0 20px;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--text-muted);
}

/* Service tags */

.oo-craft__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: auto 0 0;
  padding: 0;
  list-style: none;
}

.oo-craft__tags li {
  padding: 6px 12px;
  border: 1px solid var(--border-color);
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-main);
}

/* ---------- Accent card ---------- */

.oo-craft__card--accent {
  border-color: var(--accent);
  background: var(--accent);
}

.oo-craft__card--accent .oo-craft__heading,
.oo-craft__card--accent .oo-craft__description,
.oo-craft__card--accent .oo-craft__number,
.oo-craft__card--accent .oo-craft__icon {
  color: var(--accent-contrast);
}

.oo-craft__card--accent .oo-craft__description {
  opacity: 0.85;
}

.oo-craft__card--accent .oo-craft__number {
  opacity: 0.45;
}

.oo-craft__card--accent .oo-craft__icon,
.oo-craft__card--accent .oo-craft__tags li {
  border-color: currentColor;
}

.oo-craft__card--accent .oo-craft__tags li {
  color: var(--accent-contrast);
}

/* ---------- Hover ---------- */

@media (hover: hover) and (pointer: fine) {
  .oo-craft__button:hover {
    background: transparent;
    color: var(--text-main);
  }

  .oo-craft__link:hover {
    color: var(--craft-accent);
  }

  .oo-craft__link:hover .oo-craft__arrow {
    transform: translateX(4px);
  }

  [dir="rtl"] .oo-craft__link:hover .oo-craft__arrow {
    transform: translateX(-4px);
  }

  .oo-craft__card:hover {
    transform: translateY(-4px);
    border-color: var(--text-muted);
    box-shadow: var(--shadow-soft);
  }

  .oo-craft__visual:hover img {
    transform: scale(1.04);
  }
}

/* ---------- Tablet ---------- */

@media (max-width: 1024px) {
  .oo-craft__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto;
  }

  .oo-craft__visual {
    grid-column: 1 / -1;
    grid-row: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .oo-craft__card {
    min-height: 300px;
  }
}

/* ---------- Mobile ---------- */

@media (max-width: 640px) {
  .oo-craft {
    padding-block: 56px;
  }

  .oo-craft__header {
    align-items: flex-start;
    gap: 22px;
    margin-bottom: 30px;
  }

  .oo-craft__intro {
    flex-basis: 100%;
  }

  .oo-craft__title {
    font-size: clamp(2rem, 8vw, 2.75rem);
  }

  .oo-craft__actions {
    width: 100%;
    align-items: flex-start;
    gap: 10px 18px;
  }

  .oo-craft__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .oo-craft__visual {
    grid-column: auto;
    grid-row: auto;
    aspect-ratio: 4 / 3;
  }

  .oo-craft__card {
    min-height: 0;
    padding: 24px;
  }

  .oo-craft__icon {
    margin-bottom: 18px;
  }
}

/* ---------- Small mobile ---------- */

@media (max-width: 380px) {
  .oo-craft__container {
    padding-inline: 16px;
  }

  .oo-craft__actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .oo-craft__card {
    padding: 20px;
  }

  .oo-craft__tags {
    gap: 6px;
  }

  .oo-craft__tags li {
    padding: 6px 9px;
    font-size: 0.75rem;
  }
}

/* ---------- RTL ---------- */

[dir="rtl"] .oo-craft__eyebrow,
[dir="rtl"] .oo-craft__caption span {
  letter-spacing: 0;
  text-transform: none;
}

[dir="rtl"] .oo-craft__title,
[dir="rtl"] .oo-craft__heading {
  letter-spacing: 0;
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
  .oo-craft__card,
  .oo-craft__visual img,
  .oo-craft__button,
  .oo-craft__link,
  .oo-craft__arrow {
    transition: none;
  }
}

/* Product era cards: match the Home 1 product card treatment */
.oo-pe__fig { border-radius: var(--oo-radius); }
.oo-pe__fig::after { display: none; }
.oo-pe__pname { margin: 0; font: 600 .8125rem/1.4 var(--font-body); letter-spacing: .045em; text-transform: uppercase; }
.oo-pe__buy { padding-top: 0; border-top: 0; }
.oo-pe__price { margin: 0; font-size: 1rem; }
.oo-pe__add { min-height: 38px; padding: 0 12px; border-radius: var(--oo-radius); font-size: .6875rem; letter-spacing: .06em; }

/* Compact process summary fills the mobile intro gap */
.oo-pq__quick { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; width: 100%; margin: 4px 0 0; padding: 0; list-style: none; }
.oo-pq__quick li { display: flex; flex-direction: column; gap: 6px; padding: 10px 8px; border-top: 1px solid var(--pe-line); color: var(--text-main); }
.oo-pq__quick b { font: 500 1.35rem/1 var(--oo-serif); color: var(--text-muted); }
.oo-pq__quick span { font: 600 .75rem/1.3 var(--font-body); letter-spacing: .04em; text-transform: uppercase; }
@media (min-width: 1001px) { .oo-pq__quick { display: none; } }
@media (max-width: 380px) { .oo-pq__quick { gap: 4px; } .oo-pq__quick li { padding-inline: 5px; } .oo-pq__quick span { font-size: .6875rem; } }

/* Contact form validation feedback */
.oo-cform__error { display: block; color: #B3402F; font-size: .8125rem; line-height: 1.4; }
.oo-cform [aria-invalid="true"] { border-color: #B3402F; box-shadow: 0 0 0 2px color-mix(in srgb, #B3402F 20%, transparent); }
[data-theme="dark"] .oo-cform__error { color: #FF9F94; }
.oo-cform__consent-error { margin-top: -14px; }

/* Shared Home 1 / Home 2 button system across every page and theme */
:is(.oo-cta, [class*="__btn"]:not(.oo-es__btn), [class*="__button"], [class*="__submit"], [class*="__add"], .oo-footer__form button) {
  border: 1px solid #C9A77C;
  border-radius: var(--oo-radius);
  background: #C9A77C;
  color: #241A14;
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .25s ease;
}
:is(.oo-cta, [class*="__btn"]:not(.oo-es__btn), [class*="__button"], [class*="__submit"], [class*="__add"], .oo-footer__form button):is([class*="--ghost"], [class*="--dark"]) {
  background: transparent;
  border-color: currentColor;
  color: var(--text-main);
  box-shadow: none;
}
:is(.oo-cta--ghost, .oo-pb__btn--ghost, .oo-pk__btn--ghost, .oo-pc__btn--ghost) { background: transparent; border-color: currentColor; color: var(--text-main); }
.oo-hero .oo-cta--ghost, .oo-bp .oo-cta--ghost, .oo-about-cta .oo-cta--ghost { color: #F7F4EE; border-color: #F7F4EE; }
:is(.oo-card__add, .oo-pe__add) { background: transparent; border-color: currentColor; color: var(--text-main); }
@media (hover: hover) and (pointer: fine) {
  :is(.oo-cta, [class*="__btn"]:not(.oo-es__btn), [class*="__button"], [class*="__submit"], [class*="__add"], .oo-footer__form button):not(:is([class*="--ghost"], [class*="--dark"])):hover { background: #D8B98A; border-color: #D8B98A; color: #241A14; transform: translateY(-2px); }
  :is(.oo-cta--ghost, .oo-pb__btn--ghost, .oo-pk__btn--ghost, .oo-pc__btn--ghost, .oo-card__add, .oo-pe__add):hover { background: #C9A77C; border-color: #C9A77C; color: #241A14; }
}
:is(.oo-cta, [class*="__btn"]:not(.oo-es__btn), [class*="__button"], [class*="__submit"], [class*="__add"], .oo-footer__form button):focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
[data-theme="dark"] :is(.oo-cta--ghost, .oo-pb__btn--ghost, .oo-pk__btn--ghost, .oo-pc__btn--ghost, .oo-card__add, .oo-pe__add) { color: #F7F4EE; border-color: #F7F4EE; }


/* Keep the Home 1 hero secondary CTA legible over its photograph */
.oo-hero .oo-cta.oo-cta--ghost { background: rgba(36, 26, 20, .62); border-color: #F7F4EE; color: #F7F4EE; }
@media (hover: hover) and (pointer: fine) { .oo-hero .oo-cta.oo-cta--ghost:hover { background: #F7F4EE; border-color: #F7F4EE; color: #241A14; } }


/* Keep the Home 2 story hero secondary CTA legible over its dark image */
.oo-bp .oo-cta.oo-cta--ghost { background: rgba(36, 26, 20, .62); border-color: #F7F4EE; color: #F7F4EE; }
@media (hover: hover) and (pointer: fine) { .oo-bp .oo-cta.oo-cta--ghost:hover { background: #F7F4EE; border-color: #F7F4EE; color: #241A14; } }


/* Keep the About page final CTA secondary button readable on its dark panel */
.oo-about-cta .oo-cta.oo-cta--ghost { background: rgba(36, 26, 20, .62); border-color: #F7F4EE; color: #F7F4EE; }
@media (hover: hover) and (pointer: fine) { .oo-about-cta .oo-cta.oo-cta--ghost:hover { background: #F7F4EE; border-color: #F7F4EE; color: #241A14; } }


/* Keep ghost buttons readable over dark image sections */
.oo-pb .oo-pb__btn.oo-pb__btn--ghost, .oo-pc .oo-pc__btn.oo-pc__btn--ghost { background: rgba(36, 26, 20, .62); border-color: #F7F4EE; color: #F7F4EE; }
@media (hover: hover) and (pointer: fine) {
  .oo-pb .oo-pb__btn.oo-pb__btn--ghost:hover, .oo-pc .oo-pc__btn.oo-pc__btn--ghost:hover { background: #F7F4EE; border-color: #F7F4EE; color: #241A14; }
}


/* Lock image-section heading contrast in both themes */
.oo-pv .oo-pv__title, .oo-pc .oo-pc__title { color: #F7F4EE; }
.oo-pv .oo-pv__title em { color: #D8CCBC; }
.oo-pc .oo-pc__title em { color: #D8CCBC; }


/* Home-style CTA system for Products and Restoration pages */
:is(.oo-pb .oo-pb__btn:not(.oo-pb__btn--ghost), .oo-pv .oo-pv__btn, .oo-rb .oo-rb__btn, .oo-pk .oo-pk__btn:not(.oo-pk__btn--ghost), .oo-pg .oo-pg__btn, .oo-pc .oo-pc__btn:not(.oo-pc__btn--ghost)) {
  min-height: 48px;
  padding: 0 28px;
  border: 1px solid #C9A77C;
  border-radius: var(--oo-radius);
  background: #C9A77C;
  color: #241A14;
  font: 600 .75rem/1.2 var(--font-body);
  letter-spacing: .16em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}
:is(.oo-pb .oo-pb__btn--ghost, .oo-pc .oo-pc__btn--ghost) {
  background: rgba(36, 26, 20, .62);
  border: 1px solid #F7F4EE;
  color: #F7F4EE;
  box-shadow: none;
}
.oo-pk .oo-pk__btn--ghost {
  background: transparent;
  border: 1px solid var(--text-main);
  color: var(--text-main);
  box-shadow: none;
}
:is(.oo-pb .oo-pb__btn:not(.oo-pb__btn--ghost), .oo-pv .oo-pv__btn, .oo-rb .oo-rb__btn, .oo-pk .oo-pk__btn:not(.oo-pk__btn--ghost), .oo-pg .oo-pg__btn, .oo-pc .oo-pc__btn:not(.oo-pc__btn--ghost)):hover {
  background: #D8B98A;
  border-color: #D8B98A;
  color: #241A14;
}
:is(.oo-pb .oo-pb__btn--ghost, .oo-pc .oo-pc__btn--ghost):hover { background: #F7F4EE; border-color: #F7F4EE; color: #241A14; }
.oo-pk .oo-pk__btn--ghost:hover { background: #C9A77C; border-color: #C9A77C; color: #241A14; }
:is(.oo-pe .oo-pe__add) {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--text-main);
  border-radius: var(--oo-radius);
  background: transparent;
  color: var(--text-main);
  font: 600 .6875rem/1.2 var(--font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
}
[data-theme="dark"] .oo-pe .oo-pe__add { border-color: #F7F4EE; color: #F7F4EE; }
@media (hover: hover) and (pointer: fine) { .oo-pe .oo-pe__add:hover { background: #C9A77C; border-color: #C9A77C; color: #241A14; } }


/* Restoration approach panel uses a dark surface in both themes */
.oo-pk .oo-pk__btn.oo-pk__btn--ghost { background: rgba(247, 244, 238, .06); border-color: #F7F4EE; color: #F7F4EE; }
@media (hover: hover) and (pointer: fine) { .oo-pk .oo-pk__btn.oo-pk__btn--ghost:hover { background: #F7F4EE; border-color: #F7F4EE; color: #241A14; } }


/* Match Products and Restoration outlined CTA sizing to the Home buttons */
:is(.oo-pb .oo-pb__btn--ghost, .oo-pk .oo-pk__btn--ghost, .oo-pc .oo-pc__btn--ghost) {
  min-height: 48px;
  padding: 0 28px;
  border-radius: var(--oo-radius);
  font: 600 .75rem/1.2 var(--font-body);
  letter-spacing: .16em;
  text-transform: uppercase;
}


/* Light-surface buttons use antique brown; dark-surface buttons keep warm gold */
[data-theme="light"] :is(.oo-cta, [class*="__btn"]:not(.oo-es__btn), [class*="__button"], [class*="__submit"], [class*="__add"], .oo-footer__form button):not([class*="--ghost"]):not([class*="--dark"]) {
  background: #8A6B43;
  border-color: #8A6B43;
  color: #F7F4EE;
}
[data-theme="light"] :is(.oo-cta, [class*="__btn"]:not(.oo-es__btn), [class*="__button"], [class*="__submit"], [class*="__add"]):is([class*="--ghost"], [class*="--dark"]) {
  background: transparent;
  border-color: #8A6B43;
  color: #8A6B43;
  box-shadow: none;
}
[data-theme="light"] :is(.oo-hero, .oo-bp, .oo-about-cta, .oo-pb, .oo-pv, .oo-rb, .oo-pc, .oo-cx, .oo-pk__panel, .oo-es) :is(.oo-cta, [class*="__btn"]:not(.oo-es__btn), [class*="__button"], [class*="__submit"]) {
  background: #C9A77C;
  border-color: #C9A77C;
  color: #241A14;
}
[data-theme="light"] :is(.oo-hero, .oo-bp, .oo-about-cta, .oo-pb, .oo-pv, .oo-rb, .oo-pc, .oo-cx, .oo-pk__panel, .oo-es) :is(.oo-cta, [class*="__btn"]:not(.oo-es__btn)):is([class*="--ghost"], [class*="--dark"]) {
  background: transparent;
  border-color: #F7F4EE;
  color: #F7F4EE;
  box-shadow: none;
}
[data-theme="light"] :is(.oo-hero, .oo-bp, .oo-about-cta, .oo-pb, .oo-pv, .oo-rb, .oo-pc, .oo-cx, .oo-pk__panel, .oo-es) :is(.oo-cta, [class*="__btn"]:not(.oo-es__btn)):not(:is([class*="--ghost"], [class*="--dark"])):hover { background: #D8B98A; border-color: #D8B98A; color: #241A14; }
[data-theme="light"] :is(.oo-hero, .oo-bp, .oo-about-cta, .oo-pb, .oo-pv, .oo-rb, .oo-pc, .oo-cx, .oo-pk__panel, .oo-es) :is(.oo-cta, [class*="__btn"]:not(.oo-es__btn)):is([class*="--ghost"], [class*="--dark"]):hover { background: #F7F4EE; border-color: #F7F4EE; color: #241A14; }
[data-theme="light"] .oo-pe .oo-pe__add:hover { background: #8A6B43; border-color: #8A6B43; color: #F7F4EE; }


/* Dark-mode Add to Cart buttons use the Home hero gold fill */
[data-theme="dark"] :is(.oo-card__add, .oo-pe__add) {
  background: #C9A77C;
  border-color: #C9A77C;
  color: #241A14;
}
@media (hover: hover) and (pointer: fine) {
  [data-theme="dark"] :is(.oo-card__add, .oo-pe__add):hover { background: #D8B98A; border-color: #D8B98A; color: #241A14; }
}


/* Darker antique-brown text and accent for the light Home 1 trust section */
[data-theme="light"] .oo-wy {
  --wy-text: #2D2017;
  --wy-gold: #6B4A2B;
}


/* Use the Home hero gold fill for buttons on the dark footer */
.oo-footer .oo-footer__form button {
  background: #C9A77C;
  border-color: #C9A77C;
  color: #241A14;
}
@media (hover: hover) and (pointer: fine) { .oo-footer .oo-footer__form button:hover { background: #D8B98A; border-color: #D8B98A; color: #241A14; } }


/* Light mode: use the darker hero gold for the Home 1 CTA and footer Subscribe */
[data-theme="light"] .oo-hero .oo-cta:not(.oo-cta--ghost), [data-theme="light"] .oo-footer .oo-footer__form button {
  background: #8A6B43;
  border-color: #8A6B43;
  color: #F7F4EE;
}
@media (hover: hover) and (pointer: fine) {
  [data-theme="light"] .oo-hero .oo-cta:not(.oo-cta--ghost):hover, [data-theme="light"] .oo-footer .oo-footer__form button:hover { background: #735637; border-color: #735637; color: #F7F4EE; }
}


/* Ensure light-mode hero and footer gold wins over shared CTA tokens */
[data-theme="light"] .oo-hero .oo-cta:not(.oo-cta--ghost), [data-theme="light"] .oo-footer .oo-footer__form button { background: #8A6B43 !important; border-color: #8A6B43 !important; color: #F7F4EE !important; }
@media (hover: hover) and (pointer: fine) { [data-theme="light"] .oo-hero .oo-cta:not(.oo-cta--ghost):hover, [data-theme="light"] .oo-footer .oo-footer__form button:hover { background: #735637 !important; border-color: #735637 !important; color: #F7F4EE !important; } }


/* Requested #C9A77C fill for the Home 1 hero and footer buttons */
[data-theme="light"] .oo-hero .oo-cta:not(.oo-cta--ghost), [data-theme="light"] .oo-footer .oo-footer__form button { background: #C9A77C !important; border-color: #C9A77C !important; color: #241A14 !important; }
@media (hover: hover) and (pointer: fine) { [data-theme="light"] .oo-hero .oo-cta:not(.oo-cta--ghost):hover, [data-theme="light"] .oo-footer .oo-footer__form button:hover { background: #D8B98A !important; border-color: #D8B98A !important; color: #241A14 !important; } }


/* Light-mode Home 1 hero secondary button matches the dark outlined reference */
[data-theme="light"] .oo-hero .oo-cta.oo-cta--ghost { background: rgba(36, 26, 20, .62) !important; border-color: #F7F4EE !important; color: #F7F4EE !important; }
@media (hover: hover) and (pointer: fine) { [data-theme="light"] .oo-hero .oo-cta.oo-cta--ghost:hover { background: #F7F4EE !important; border-color: #F7F4EE !important; color: #241A14 !important; } }



/* Product page: match dark-mode Add to Cart buttons to the filled gold reference. */
[data-theme="dark"] .oo-pe .oo-pe__add {
  background: #C9A77C;
  border-color: #C9A77C;
  color: #241A14;
}
@media (hover: hover) and (pointer: fine) {
  [data-theme="dark"] .oo-pe .oo-pe__add:hover {
    background: #D8B98A;
    border-color: #D8B98A;
    color: #241A14;
  }
}

/* Home 2 era slider: smaller eyebrow and more vertical breathing room. */
.oo-es__body {
  padding-block: clamp(16px, 3vh, 32px);
}
.oo-es__eyebrow {
  margin-bottom: 26px;
  font-size: 0.625rem;
}

/* About hero: keep text legible when the image becomes the tablet/mobile backdrop. */
@media (max-width: 900px) {
  .oo-ahero__frame::after {
    background: linear-gradient(to top, rgba(26, 20, 16, 0.94), rgba(26, 20, 16, 0.76) 55%, rgba(26, 20, 16, 0.62));
  }
  .oo-ahero .oo-ahero__title { color: #F7F4EE; }
  .oo-ahero .oo-ahero__title em { color: #D8B98A; }
  .oo-ahero .oo-ahero__text { color: rgba(247, 244, 238, 0.94); }
  .oo-ahero .oo-ahero__eyebrow { color: rgba(247, 244, 238, 0.94); }
}

/* Light-mode About hero: override desktop heading colors over the tablet/mobile image. */
@media (max-width: 900px) {
  [data-theme="light"] .oo-ahero .oo-ahero__title { color: #F7F4EE; }
  [data-theme="light"] .oo-ahero .oo-ahero__title em { color: #D8B98A; }
  [data-theme="light"] .oo-ahero .oo-ahero__text,
  [data-theme="light"] .oo-ahero .oo-ahero__eyebrow { color: rgba(247, 244, 238, 0.96); }
}

/* Restoration hero: theme-appropriate copy panel and text in light mode. */
[data-theme="light"] .oo-rb {
  background: #F7F4EE;
  color: #382F29;
}
[data-theme="light"] .oo-rb .oo-rb__eyebrow,
[data-theme="light"] .oo-rb .oo-rb__eyebrow::before,
[data-theme="light"] .oo-rb .oo-rb__title em,
[data-theme="light"] .oo-rb .oo-rb__facts dt {
  color: #8A6B43;
}
[data-theme="light"] .oo-rb .oo-rb__title,
[data-theme="light"] .oo-rb .oo-rb__link,
[data-theme="light"] .oo-rb .oo-rb__facts dt {
  color: #382F29;
}
[data-theme="light"] .oo-rb .oo-rb__lede,
[data-theme="light"] .oo-rb .oo-rb__facts dd {
  color: rgba(56, 47, 41, 0.78);
}
[data-theme="light"] .oo-rb .oo-rb__facts > div {
  border-top-color: rgba(56, 47, 41, 0.35);
}
[data-theme="light"] .oo-rb .oo-rb__link {
  border-bottom-color: #382F29;
}
[data-theme="light"] .oo-rb .oo-rb__link:focus-visible {
  outline-color: #8A6B43;
}

/* Restoration details CTA: align the button to the card's padded content width. */
.oo-pg__sbody {
  width: 100%;
}
.oo-pg__btn {
  width: 100%;
  white-space: normal;
  text-align: center;
}

/* Restoration process photo: show its full portrait image on tablet and mobile. */
@media (max-width: 960px) {
  .oo-pq__photo {
    aspect-ratio: 906 / 1157;
  }
  .oo-pq__photo img {
    object-fit: contain;
    transform: none;
  }
  .oo-pq__photo:hover img,
  .pe-js .oo-pq:not(.is-in) .oo-pq__photo img {
    transform: none;
  }
}


/* Restoration approach note: stack thumbnail above its copy on mobile. */
@media (max-width: 640px) {
  .oo-pk__note {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 40px;
    grid-template-areas: "thumb thumb" "copy arrow";
    align-items: center;
    gap: 12px;
  }
  .oo-pk__note .oo-pk__thumb {
    grid-area: thumb;
    width: 100%;
    aspect-ratio: 4 / 3;
  }
  .oo-pk__note .oo-pk__ntxt { grid-area: copy; }
  .oo-pk__note > i { grid-area: arrow; }
}

/* Restoration approach fact badges: compact spacing and type on mobile. */
@media (max-width: 640px) {
  .oo-pk__facts {
    gap: 8px;
  }
  .oo-pk__facts p {
    gap: 3px;
    padding: 8px 12px;
    border-radius: 6px;
  }
  .oo-pk__facts b {
    font-size: 1.25rem;
  }
  .oo-pk__facts span {
    font-size: 0.8125rem;
    line-height: 1.3;
  }
}

/* Keep the showroom address on the info card surface, without a colored fill. */
[data-theme] .oo-cvisit .oo-cvisit__address {
  background: transparent !important;
}

/* Show the contact address as plain, readable text without a badge treatment. */
[data-theme] .oo-cvisit .oo-cvisit__address {
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  color: var(--text-muted);
  font-style: normal;
  font-weight: 400;
  text-transform: none;
}

/* Ensure the showroom address has strong contrast on the light contact card. */
[data-theme="light"] .oo-cvisit .oo-cvisit__address {
  color: #382F29 !important;
  opacity: 1;
}

/* Contact map: scale the map height to the viewport on narrow screens. */
@media (max-width: 640px) {
  .oo-cvisit__map {
    min-height: 0;
    height: clamp(240px, 75vw, 320px);
    aspect-ratio: auto;
  }
}









/* ==========================================================
   Cart badge + "In cart" button state
   ========================================================== */
.oo-btn { position: relative; }
.oo-cart-count {
  position: absolute;
  top: -5px;
  inset-inline-end: -5px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: #F7F4EE;
  color: #382F29;
  font: 700 0.6875rem/18px var(--font-body);
  text-align: center;
  pointer-events: none;
}
.oo-cart-count[hidden] { display: none; }

.oo-card__add.is-incart,
.oo-pe__add.is-incart,
.oo-card__add.is-incart:hover,
.oo-pe__add.is-incart:hover {
  background: transparent;
  color: var(--text-main);
  opacity: 0.6;
  cursor: default;
}

/* ==========================================================
   Checkout page
   ========================================================== */
.oo-co {
  --co-error: #B3261E;
  background: var(--bg-main);
  color: var(--text-main);
  font-family: var(--font-body);
  padding-block: clamp(32px, 6vw, 88px);
}
[data-theme="dark"] .oo-co { --co-error: #F2B8B5; }
.oo-co [hidden] { display: none !important; }
.oo-co :focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }

.oo-co__wrap {
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: var(--oo-gutter);
}
.oo-co__head { margin-bottom: clamp(24px, 3vw, 40px); }
.oo-co__head .oo-eyebrow { margin-bottom: 8px; }
.oo-co__title,
.oo-co__h2 {
  margin: 0;
  font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  font-weight: 500;
  line-height: 1.1;
}
.oo-co__title { font-size: clamp(2.25rem, 4.5vw, 3.5rem); }
.oo-co__title:focus { outline: none; }
.oo-co__h2 { margin-bottom: 16px; font-size: clamp(1.5rem, 2.4vw, 2rem); }
.oo-co__count { margin: 8px 0 0; color: var(--text-muted); }

.oo-co__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: clamp(24px, 3vw, 48px);
  align-items: start;
}

/* form blocks */
.oo-co__block {
  min-width: 0;
  margin: 0 0 20px;
  padding: clamp(18px, 2.4vw, 32px);
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
}
.oo-co__legend {
  padding-inline: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.oo-co__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.oo-co__field { min-width: 0; }
.oo-co__field--full { grid-column: 1 / -1; }
.oo-co__field label {
  display: block;
  margin-bottom: 6px;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.oo-co__field input {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  background: transparent;
  color: var(--text-main);
  font: 400 1rem var(--font-body);
}
.oo-co__field input:focus-visible { border-color: var(--accent); outline-offset: 2px; }
.oo-co__field input[aria-invalid="true"] { border-color: var(--co-error); }
.oo-co__error { display: block; margin-top: 4px; font-size: 0.8125rem; color: var(--co-error); }
.oo-co__error:empty { display: none; }

/* radio cards */
.oo-co__choice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  cursor: pointer;
}
.oo-co__choice:first-of-type { margin-top: 16px; }
.oo-co__choice input {
  flex: none;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: var(--accent);
}
.oo-co__choice:has(input:checked) { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.oo-co__choice:focus-within { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.oo-co__choice strong { display: block; font-weight: 600; }
.oo-co__choice small { display: block; margin-top: 2px; font-size: 0.875rem; color: var(--text-muted); }
.oo-co__note { margin: 14px 0 0; font-size: 0.8125rem; line-height: 1.5; color: var(--text-muted); }

/* summary */
.oo-co__summary {
  position: sticky;
  top: calc(var(--oo-header-h) + 20px);
  padding: clamp(18px, 2.4vw, 32px);
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  background: var(--bg-main);
}
.oo-co__list { margin: 0; padding: 0; list-style: none; }
.oo-co__item {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding-block: 14px;
  border-bottom: 1px solid var(--border-color);
}
.oo-co__item img { width: 72px; height: 72px; object-fit: cover; border-radius: var(--oo-radius); }
.oo-co__iname p,
.oo-co__iprice { margin: 0; font-weight: 600; }
.oo-co__iname p { margin-bottom: 2px; }
.oo-co__remove {
  padding: 6px 0;
  border: 0;
  background: none;
  color: var(--text-muted);
  font: inherit;
  font-size: 0.8125rem;
  text-decoration: underline;
  cursor: pointer;
}
.oo-co__remove:hover { color: var(--text-main); }
.oo-co__totals { margin: 16px 0 0; }
.oo-co__totals div { display: flex; justify-content: space-between; gap: 16px; padding-block: 6px; }
.oo-co__totals dt,
.oo-co__totals dd { margin: 0; }
.oo-co__totals .oo-co__total {
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px solid var(--border-color);
  font-size: 1.125rem;
  font-weight: 700;
}

/* buttons + empty / confirmation panels */
.oo-co__place,
.oo-co__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 28px;
  border: 1px solid var(--accent);
  border-radius: var(--oo-radius);
  background: var(--accent);
  color: var(--accent-contrast);
  font: 600 0.875rem/1.2 var(--font-body);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.oo-co__place { width: 100%; margin-top: 20px; }
.oo-co__place:hover,
.oo-co__btn:hover { background: transparent; color: var(--text-main); }
.oo-co__center {
  padding: clamp(32px, 6vw, 72px) var(--oo-gutter);
  border: 1px solid var(--border-color);
  border-radius: var(--oo-radius);
  text-align: center;
}
.oo-co__center p { max-width: 52ch; margin: 0 auto 20px; color: var(--text-muted); }
.oo-co__center strong { color: var(--text-main); }
.oo-co__center:focus { outline: none; }

[dir="rtl"] .oo-co__place,
[dir="rtl"] .oo-co__btn,
[dir="rtl"] .oo-co__legend { letter-spacing: 0; text-transform: none; }

@media (max-width: 1024px) {
  .oo-co__layout { grid-template-columns: 1fr; }
  .oo-co__summary { position: static; }
}
@media (max-width: 600px) {
  .oo-co__grid { grid-template-columns: 1fr; }
  .oo-co__item { grid-template-columns: 64px minmax(0, 1fr) auto; }
  .oo-co__item img { width: 64px; height: 64px; }
}
/* Checkout actions use the Home primary button color in both themes. */
.oo-co__place,
.oo-co__btn {
  background: #C9A77C;
  border-color: #C9A77C;
  color: #241A14;
}
.oo-co__place:hover,
.oo-co__btn:hover {
  background: #D8B98A;
  border-color: #D8B98A;
  color: #241A14;
}
.oo-co__place:focus-visible,
.oo-co__btn:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 3px;
}

/* Light-mode checkout buttons explicitly match the Home primary button. */
[data-theme="light"] .oo-co .oo-co__place,
[data-theme="light"] .oo-co .oo-co__btn {
  background: #8A6B43 !important;
  border-color: #8A6B43 !important;
  color: #F7F4EE !important;
}
@media (hover: hover) and (pointer: fine) {
  [data-theme="light"] .oo-co .oo-co__place:hover,
  [data-theme="light"] .oo-co .oo-co__btn:hover {
    background: #735637 !important;
    border-color: #735637 !important;
    color: #F7F4EE !important;
  }
}




/* ==========================================
       OAK & ORIGIN — 404 PAGE
    ========================================== */

    .oo-error {
      min-height: 100svh;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 48px 24px;
      background: var(--bg-main);
      color: var(--text-main);
      overflow: hidden;
      position: relative;
      isolation: isolate;
    }

    .oo-error::before {
      content: "";
      position: absolute;
      width: 460px;
      height: 460px;
      border: 1px solid var(--border-color);
      border-radius: 50%;
      opacity: 0.35;
      z-index: -1;
      pointer-events: none;
    }

    .oo-error__content {
      width: 100%;
      max-width: 760px;
      margin-inline: auto;
      text-align: center;
      animation: oo-error-enter 0.75s ease both;
    }

    .oo-error__brand {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      margin-bottom: clamp(48px, 9vh, 84px);
      color: var(--text-main);
      text-decoration: none;
    }

    .oo-error__brand-icon {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      border: 1px solid var(--border-color);
      color: var(--text-main);
      font-size: 17px;
    }

    .oo-error__brand-copy {
      display: flex;
      flex-direction: column;
      text-align: start;
      gap: 3px;
    }

    .oo-error__brand-name {
      font-family: "Cormorant Garamond", serif;
      font-size: 25px;
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.02em;
    }

    .oo-error__brand-sub {
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--text-muted);
    }

    .oo-error__eyebrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      margin: 0 0 20px;
      color: var(--text-muted);
      font-family: "DM Sans", sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.2em;
      text-transform: uppercase;
    }

    .oo-error__eyebrow::before,
    .oo-error__eyebrow::after {
      content: "";
      width: 24px;
      height: 1px;
      background: var(--border-color);
    }

    .oo-error__number {
      margin: 0;
      font-family: "Cormorant Garamond", serif;
      font-size: clamp(130px, 24vw, 250px);
      font-weight: 500;
      letter-spacing: -0.075em;
      line-height: 0.78;
      color: var(--text-main);
    }

    .oo-error__number span {
      color: #A47B50;
      font-style: italic;
    }

    .oo-error__title {
      margin: 36px 0 14px;
      font-family: "Cormorant Garamond", serif;
      font-size: clamp(34px, 5vw, 52px);
      font-weight: 600;
      line-height: 1.1;
      letter-spacing: -0.025em;
      color: var(--text-main);
    }

    .oo-error__description {
      max-width: 440px;
      margin: 0 auto;
      color: var(--text-muted);
      font-family: "DM Sans", sans-serif;
      font-size: 15px;
      line-height: 1.9;
    }

    .oo-error__actions {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: 14px;
      margin-top: 34px;
    }

    .oo-error__button {
      min-height: 52px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 11px;
      padding: 0 25px;
      border: 1px solid var(--accent);
      border-radius: 2px;
      background: var(--accent);
      color: var(--accent-contrast);
      font-family: "DM Sans", sans-serif;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.045em;
      text-decoration: none;
      cursor: pointer;
      transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease;
    }

    .oo-error__button:hover {
      background: #A47B50;
      border-color: #A47B50;
      color: #fff;
      transform: translateY(-2px);
    }

    .oo-error__button--secondary {
      background: transparent;
      color: var(--text-main);
      border-color: var(--border-color);
    }

    .oo-error__button--secondary:hover {
      background: var(--text-main);
      border-color: var(--text-main);
      color: var(--bg-main);
    }

    .oo-error__footer {
      margin-top: clamp(54px, 9vh, 84px);
      padding-top: 20px;
      border-top: 1px solid var(--border-color);
      color: var(--text-muted);
      font-family: "DM Sans", sans-serif;
      font-size: 11px;
      letter-spacing: 0.04em;
    }

    .oo-error__footer span {
      color: var(--text-main);
    }

    [data-theme="dark"] .oo-error__number span {
      color: #C6A27B;
    }

    [data-theme="dark"] .oo-error__button:hover {
      color: #fff;
    }

    .oo-error__button:focus-visible,
    .oo-error__brand:focus-visible {
      outline: 2px solid var(--focus-ring);
      outline-offset: 5px;
    }

    @keyframes oo-error-enter {
      from {
        opacity: 0;
        transform: translateY(18px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @media (max-width: 600px) {
      .oo-error {
        padding: 32px 20px;
      }

      .oo-error::before {
        width: 300px;
        height: 300px;
      }

      .oo-error__brand {
        margin-bottom: 58px;
      }

      .oo-error__title {
        margin-top: 30px;
      }

      .oo-error__description {
        font-size: 14px;
      }

      .oo-error__actions {
        flex-direction: column;
        width: 100%;
      }

      .oo-error__button {
        width: 100%;
        max-width: 320px;
      }

      .oo-error__footer {
        margin-top: 58px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .oo-error__content {
        animation: none;
      }

      .oo-error__button {
        transition: none;
      }
    }