html { font-size: var(--edit-body-size, 16px); }
body { background: var(--edit-background, #fbfaf6); color: var(--edit-text, #111210); font-family: var(--edit-body-font); font-size: 1rem; }
h1, h2, .large-copy, .utility-intro, .service-band strong, .selected-finish strong { font-family: var(--edit-heading-font); }
h3 { font-family: var(--edit-heading-font); }
h2 { font-size: clamp(calc(var(--edit-heading-size, 83px) * .52), 5.1vw, var(--edit-heading-size, 83px)); }
.hero-stage h1 { font-size: clamp(calc(var(--edit-hero-size, 72px) * .57), 4.3vw, var(--edit-hero-size, 72px)); }
.button, .nav-cta { font-size: var(--edit-button-size, 12px); }
:root { --brass: var(--edit-accent, #b98b49); --ink: var(--edit-text, #111210); --paper: var(--edit-background, #fbfaf6); }
.button-primary { background: var(--edit-button-background); color: var(--edit-button-text); }
.button-primary:hover, .button-primary:focus-visible { background: var(--edit-button-background); filter: brightness(1.08); }
.button-ghost, .nav-cta { color: var(--edit-dark-text); border-color: currentColor; }
.button-ghost:hover, .nav-cta:hover { background: var(--edit-button-background); color: var(--edit-button-text); }
.intro-grid > p, .feature-grid article p, .utility-intro, .fine-print, .process-list p, .story-copy p:not(.eyebrow), .consultation-copy > p:not(.eyebrow), .faq-list details p, .contact-note span, .form-help { color: var(--edit-muted-text); }
.finishes, .site-footer, .hero-scroll, .hero-stage, .site-nav.is-open { background-color: var(--edit-dark-background); color: var(--edit-dark-text); }
.site-header, .hero-copy, .hero-lede, .finish-copy > p:not(.eyebrow), .finish-button, .finish-button.is-active, .selected-finish span, .service-band, .service-band span, .service-band p, .footer-contact span { color: var(--edit-dark-text); }
.hero-lede, .selected-finish span, .service-band span, .service-band p, .footer-contact span { opacity: .78; }
.hero-stage h1 em { color: var(--edit-dark-text); opacity: .88; }
.story { background: var(--edit-story-background); }
.consultation-form { background: var(--edit-surface); }
.service-band { background: var(--edit-band-background); }
/* Keep the opening section's light background independent of the shared palette. */
#opening, #opening .hero-stage { background-color: #ddd6ca; }
#opening .hero-text { position: relative; isolation: isolate; }
#opening .hero-text::before { content: ""; position: absolute; inset: -12px -10px; z-index: -1; background: rgba(0,0,0,.12); pointer-events: none; }
[data-edit] { white-space: pre-line; overflow-wrap: anywhere; }
.outland-edit-link { position: fixed; right: 22px; bottom: 22px; z-index: 100; background: #fbfaf6; color: #111210; border: 1px solid #d8d0c5; border-radius: 40px; box-shadow: 0 5px 28px #0003; padding: 12px 22px; text-decoration: none; font: 600 14px/1.4 system-ui; }
.outland-edit-link:hover { background: #eee7dc; }
.outland-edit-link:focus-visible { outline: 3px solid #b98b49; outline-offset: 4px; }
.is-editor-preview [data-edit] { cursor: text; }
.is-editor-preview [data-edit]:hover, .editor-highlight { outline: 2px solid #b98b49; outline-offset: 6px; }
.is-editor-preview .hero-scroll { height: 100svh; }
.is-editor-preview .hero-stage::after { opacity: 1; }
.is-editor-preview .hero-stage .hero-copy { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
.is-editor-preview .scroll-cue, .is-editor-preview .sequence-progress { display: none; }
@media (max-width: 680px) {
  h2 { font-size: clamp(26px, 11vw, calc(var(--edit-heading-size, 83px) * .74)); }
  .hero-stage h1 { font-size: clamp(27px, 9.2vw, calc(var(--edit-hero-size, 72px) * .73)); }
}
