:root {
  --color-bg: #efe4d0; --color-text: #3d2a18; --color-heading: #24180e;
  --color-muted: #7a5c3e; --color-accent: #8b5a2b; --color-surface: #e6d5b8;
  --color-border: rgba(36,24,14,.12); --nav-fg: #efe4d0; --nav-solid: rgba(239,228,208,.95);
  --nav-solid-fg: #24180e; --btn-primary-fg: #efe4d0; --btn-ghost-fg: #efe4d0;
  --font-display: 'Frank Ruhl Libre', serif; --font-body: 'Assistant', sans-serif; --footer-bg: #e6d5b8;
}
html:has(body.theme-wood) { overflow-x: hidden; }
.theme-wood { overflow-x: hidden; overscroll-behavior-x: none; }
.theme-wood [data-reveal="left"],
.theme-wood [data-reveal="right"] { transform: translateY(28px); }
.theme-wood .zoom-img img { transition: transform 2.4s ease; }
.theme-wood .zoom-img:hover img { transform: scale(1.08); }
body { font-family: var(--font-body); background: var(--color-bg); color: var(--color-text); }
h1,h2,h3 { font-family: var(--font-display); }
.hero-actions { display: flex; gap: .8rem; flex-wrap: wrap; }
.wood-hero { position: relative; min-height: 100vh; overflow: hidden; display: flex; align-items: flex-end; isolation: isolate; }
.wood-hero__grain { position: absolute; inset: 0; overflow: hidden; }
.wood-hero__grain img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85) contrast(1.08); }
.wood-hero__veil { position: absolute; inset: 0; background:
  linear-gradient(to top, rgba(36,24,14,.88) 0%, rgba(36,24,14,.45) 42%, rgba(36,24,14,.2) 100%),
  radial-gradient(circle at 80% 20%, rgba(161,98,42,.28), transparent 42%);
  pointer-events: none; }
.wood-hero__plate { position: absolute; width: min(34vw, 420px); height: 52vh; left: 7%; top: 16%; overflow: hidden;
  border: 8px solid rgba(239,228,208,.88); box-shadow: 0 24px 50px rgba(36,24,14,.45); }
.wood-hero__plate img { width: 100%; height: 100%; object-fit: cover; }
.wood-hero__copy { position: relative; z-index: 2; padding: 7rem 8vw 5rem; color: #efe4d0; max-width: 40rem; }
.wood-hero .eyebrow { color: #e0c49a; }
.wood-hero h1 { font-size: clamp(2.6rem, 6.5vw, 5rem); line-height: 1.05; }
.wood-hero .lede { white-space: nowrap; font-size: clamp(.72rem, 3.2vw, 1.15rem); margin: .4rem 0 1.5rem; color: #ead9c0; }
.btn--ghost { color: #efe4d0; border-color: rgba(239,228,208,.45); }
.wood-cinema { overflow: hidden; background: #24180e; padding: 14px 0; }
.wood-marquee { overflow: hidden; width: 100%; direction: ltr; }
.wood-marquee__track { display: flex; width: max-content; animation: wood-roll 52s linear infinite; }
.wood-marquee:hover .wood-marquee__track,
.wood-marquee:focus-within .wood-marquee__track { animation-play-state: paused; }
.wood-marquee__set { display: flex; gap: 10px; padding-inline-end: 10px; flex-shrink: 0; }
.wood-marquee figure { flex: 0 0 340px; margin: 0; overflow: hidden; background: #3d2a18; }
.wood-marquee img { height: 28vh; width: 340px; object-fit: cover; display: block; filter: saturate(.8) contrast(1.05); }
@keyframes wood-roll { to { transform: translate3d(-50%, 0, 0); } }
.wood-swatches { display: flex; gap: 1.6rem; justify-content: center; padding: 1.8rem 1rem; background: #24180e; color: #efe4d0; flex-wrap: wrap; }
.wood-swatch { text-align: center; }
.wood-swatches i { display: block; width: 72px; height: 72px; border-radius: 50%; margin: 0 auto .45rem; background-size: cover; background-position: center;
  box-shadow: inset 0 0 14px rgba(0,0,0,.35), 0 0 0 2px rgba(224,196,154,.35); }
.wood-about { padding: 6.5rem 0; overflow: hidden; }
.wood-about__grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 800px) { .wood-about__grid { grid-template-columns: 1.05fr .95fr; } }
.wood-about__img { overflow: hidden; min-height: 340px; background: #d9cbb3; }
.wood-about__img img { width: 100%; height: 100%; object-fit: cover; min-height: 340px; }
.wood-about h2 { font-size: clamp(2rem, 4.5vw, 3.2rem); max-width: 14ch; }
.wood-pills { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }
.wood-pills div { background: var(--color-surface); padding: 1rem 1.2rem; min-width: 7rem; }
.wood-pills b { display: block; font-family: var(--font-display); font-size: 1.5rem; color: var(--color-accent); }
.wood-pills span { font-size: .85rem; color: var(--color-muted); }
.wood-belief { position: relative; min-height: 68vh; display: flex; align-items: center; justify-content: flex-start; overflow: hidden; }
.wood-belief__img { position: absolute; inset: 0; }
.wood-belief__img img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.32) saturate(.8); }
.wood-belief blockquote { position: relative; z-index: 1; max-width: 32rem; text-align: right; color: #efe4d0; padding: 3rem 8vw; margin: 0; }
.wood-belief .eyebrow { color: #e0c49a; }
.wood-belief__quote { font-family: var(--font-display); font-size: clamp(1.35rem, 2.8vw, 2.1rem); line-height: 1.5; text-align: right; }
.wood-belief cite { display: block; margin-top: 1.4rem; font-style: normal; letter-spacing: .08em; font-size: .85rem; color: #d9cbb3; text-align: right; }
.wood-process { padding: 6rem 0; overflow: hidden; }
.wood-process h2 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); margin-bottom: .4rem; }
.wood-process ol { display: grid; gap: 1.2rem; margin-top: 2rem; }
@media (min-width: 800px) { .wood-process ol { grid-template-columns: repeat(4,1fr); } }
.wood-process li { background: var(--color-surface); padding: 1.5rem 1.3rem 1.6rem; border-inline-start: 6px solid var(--color-accent); }
.wood-process b { color: var(--color-accent); font-family: var(--font-display); }
.wood-svc { display: grid; overflow: hidden; }
@media (min-width: 800px) { .wood-svc { grid-template-columns: 1fr 1fr; } }
.wood-svc article { background: #e6d5b8; }
.wood-svc img { height: 42vh; object-fit: cover; width: 100%; }
.wood-svc h3, .wood-svc p { padding: 0 1.2rem; }
.wood-svc h3 { margin: 1rem 0 .3rem; }
.wood-svc p { padding-bottom: 1.5rem; color: var(--color-muted); }
.wood-gal { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; background: #24180e; overflow: hidden; }
@media (min-width: 800px) { .wood-gal { grid-template-columns: repeat(4,1fr); } }
.wood-gal img { height: 32vh; object-fit: cover; width: 100%; }
.wood-contact .contact-wrap, .wood-contact .contact-form, .wood-contact .map-card { border-radius: 2px; }
@media (max-width: 700px) {
  .wood-hero__plate { display: none; }
  .wood-marquee figure, .wood-marquee img { flex-basis: 250px; width: 250px; height: 30vh; }
}
@media (prefers-reduced-motion: reduce) {
  .wood-marquee__track { animation: none; }
  .wood-hero__grain img { animation: none; }
}
body.a11y-stop-motion .wood-marquee__track { animation: none; }