/* WOVO site kit. Every rule is scoped to .ws-root so the same stylesheet can
   style public sites and the in-app preview without touching the app UI.
   Responsive rules use container queries so the preview's phone width works.
   Display fonts are self-hosted (SIL OFL, see fonts/licenses) and only
   downloaded by pages whose design uses them. */
@font-face { font-family: "WOVO Bitter"; src: url("./fonts/bitter-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "WOVO Bebas Neue"; src: url("./fonts/bebas-neue-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "WOVO Libre Franklin"; src: url("./fonts/libre-franklin-800.woff2") format("woff2"); font-weight: 800; font-display: swap; }
@font-face { font-family: "WOVO Playfair"; src: url("./fonts/playfair-display-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "WOVO Archivo"; src: url("./fonts/archivo-800.woff2") format("woff2"); font-weight: 800; font-display: swap; }
@font-face { font-family: "WOVO Cormorant"; src: url("./fonts/cormorant-garamond-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "WOVO Oswald"; src: url("./fonts/oswald-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "WOVO Josefin"; src: url("./fonts/josefin-sans-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "WOVO Russo"; src: url("./fonts/russo-one-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
/* Body and display faces for the per-client design layer (October 17, 2026; SIL OFL, latin subsets, variable weights where the file carries them). */
@font-face { font-family: "WOVO Inter"; src: url("./fonts/inter.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "WOVO Lora"; src: url("./fonts/lora.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "WOVO Source Sans"; src: url("./fonts/source-sans-3.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "WOVO Nunito"; src: url("./fonts/nunito.woff2") format("woff2"); font-weight: 400 800; font-display: swap; }
@font-face { font-family: "WOVO Fraunces"; src: url("./fonts/fraunces-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "WOVO DM Serif"; src: url("./fonts/dm-serif-display-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "WOVO Space Grotesk"; src: url("./fonts/space-grotesk-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }

.ws-root {
  --ws-accent: #c2410c; --ws-accent-soft: #fff1ea; --ws-on-accent: #ffffff; --ws-accent-text: var(--ws-accent);
  --ws-bg: #ffffff; --ws-surface: #f6f5f3; --ws-text: #1c1a19; --ws-muted: #5d5853; --ws-line: #e4e0db;
  --ws-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ws-display: var(--ws-font); --ws-display-weight: 700; --ws-display-case: none; --ws-display-spacing: -0.01em; --ws-display-style: normal;
  --ws-radius: 14px; --ws-button-radius: 999px;
  --ws-header-bg: color-mix(in srgb, var(--ws-bg) 92%, transparent); --ws-header-text: var(--ws-text);
  --ws-hero-bg: linear-gradient(180deg, var(--ws-accent-soft), var(--ws-bg)); --ws-hero-text: var(--ws-text); --ws-hero-muted: var(--ws-muted);
  --ws-band-bg: var(--ws-accent); --ws-band-text: var(--ws-on-accent);
  --ws-overlay: linear-gradient(90deg, rgba(0, 0, 0, .72), rgba(0, 0, 0, .35) 60%, rgba(0, 0, 0, .15));
  container-type: inline-size; container-name: ws; position: relative;
  margin: 0; background: var(--ws-bg); color: var(--ws-text); font-family: var(--ws-font);
  font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-align: left;
}
.ws-root *, .ws-root *::before, .ws-root *::after { box-sizing: border-box; }
.ws-root.ws-accent-ruby { --ws-accent: #a4161a; --ws-accent-soft: #fbeaea; }
.ws-root.ws-accent-rose { --ws-accent: #b83b5e; --ws-accent-soft: #fcecf1; }
.ws-root.ws-accent-coral { --ws-accent: #c2410c; --ws-accent-soft: #fff1ea; }
.ws-root.ws-accent-amber { --ws-accent: #a95106; --ws-accent-soft: #fff5e6; }
.ws-root.ws-accent-green { --ws-accent: #3f7d20; --ws-accent-soft: #eef7e6; }
.ws-root.ws-accent-sage { --ws-accent: #44704f; --ws-accent-soft: #edf5ef; }
.ws-root.ws-accent-ocean { --ws-accent: #1d5f8a; --ws-accent-soft: #e8f2f9; }
.ws-root.ws-accent-violet { --ws-accent: #6d28d9; --ws-accent-soft: #f2ecfd; }
.ws-root.ws-accent-ink { --ws-accent: #1f2937; --ws-accent-soft: #eef0f3; }
.ws-root.ws-style-elegant { --ws-bg: #fbf8f5; --ws-surface: #f3ede7; --ws-line: #e6ddd4;
  --ws-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif; --ws-display-weight: 500; --ws-radius: 4px; --ws-button-radius: 2px; }
.ws-root.ws-style-modern { --ws-radius: 16px; }
.ws-root.ws-style-bold { --ws-display-weight: 850; --ws-radius: 10px; --ws-button-radius: 8px; }
.ws-root.ws-style-warm { --ws-bg: #fffaf3; --ws-surface: #fbf0e2; --ws-line: #efdfca;
  --ws-font: ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI", system-ui, sans-serif; --ws-radius: 22px; }
.ws-root.ws-style-bold.ws-preset-classic { --ws-hero-bg: var(--ws-accent); --ws-hero-text: var(--ws-on-accent); --ws-hero-muted: var(--ws-on-accent); }

/* ---- Design systems (presets). Each overrides tokens, then a few layout rules below. ---- */
.ws-root.ws-preset-homestead {
  --ws-bg: #fbf6ec; --ws-surface: #f3e9d6; --ws-text: #2a1d14; --ws-muted: #634f40; --ws-line: #e3d3b8;
  --ws-accent: #9b2c1f; --ws-accent-soft: #f6e3d6; --ws-on-accent: #ffffff; --ws-accent-text: #8d2518;
  --ws-display: "WOVO Bitter", Rockwell, "Roboto Slab", Georgia, serif; --ws-display-weight: 700; --ws-radius: 8px; --ws-button-radius: 6px;
  --ws-font: "Iowan Old Style", Charter, "Bitstream Charter", Georgia, serif;
  --ws-header-bg: #fbf6ec; --ws-hero-bg: #7a2418; --ws-hero-text: #fff8ec; --ws-hero-muted: #f3dccb;
  --ws-band-bg: #2a1d14; --ws-band-text: #fbf6ec;
  --ws-overlay: linear-gradient(180deg, rgba(42, 20, 12, .25), rgba(42, 20, 12, .78));
}
.ws-root.ws-preset-smokehouse {
  --ws-bg: #141110; --ws-surface: #1f1a17; --ws-text: #f5eee7; --ws-muted: #c3b6aa; --ws-line: #3a302a;
  --ws-accent: #e8742a; --ws-accent-soft: #2a1d15; --ws-on-accent: #160f0b; --ws-accent-text: #f08a45;
  --ws-display: "WOVO Bebas Neue", Impact, "Arial Narrow", sans-serif; --ws-display-weight: 400; --ws-display-case: uppercase; --ws-display-spacing: 0.02em;
  --ws-radius: 4px; --ws-button-radius: 3px;
  --ws-header-bg: rgba(20, 17, 16, .94); --ws-hero-bg: radial-gradient(ellipse at 20% 110%, #6b2a0d 0%, #2a1610 45%, #141110 75%); --ws-hero-text: #fff6ee; --ws-hero-muted: #d9c7b8;
  --ws-band-bg: #e8742a; --ws-band-text: #160f0b;
  --ws-overlay: linear-gradient(180deg, rgba(10, 7, 5, .35), rgba(10, 7, 5, .88));
}
.ws-root.ws-preset-civic {
  --ws-bg: #ffffff; --ws-surface: #f1f4f9; --ws-text: #0f1f38; --ws-muted: #45546b; --ws-line: #d9e0ea;
  --ws-accent: #b3202a; --ws-accent-soft: #fbe9ea; --ws-on-accent: #ffffff; --ws-accent-text: #a51c25;
  --ws-display: "WOVO Libre Franklin", "Franklin Gothic Medium", "Arial Black", sans-serif; --ws-display-weight: 800; --ws-display-spacing: -0.015em;
  --ws-radius: 6px; --ws-button-radius: 4px;
  --ws-header-bg: #ffffff; --ws-hero-bg: #12294a; --ws-hero-text: #ffffff; --ws-hero-muted: #cdd8ea;
  --ws-band-bg: #12294a; --ws-band-text: #ffffff;
  --ws-overlay: linear-gradient(90deg, rgba(10, 25, 48, .9), rgba(10, 25, 48, .45));
}
.ws-root.ws-preset-estate {
  --ws-bg: #fbfaf6; --ws-surface: #f1eee4; --ws-text: #1b2420; --ws-muted: #535e58; --ws-line: #e0dccf;
  --ws-accent: #1d3a2f; --ws-accent-soft: #e7eee9; --ws-on-accent: #fbfaf6; --ws-accent-text: #1d3a2f;
  --ws-display: "WOVO Playfair", "Didot", "Bodoni 72", Georgia, serif; --ws-display-weight: 600; --ws-radius: 2px; --ws-button-radius: 2px;
  --ws-header-bg: rgba(251, 250, 246, .95); --ws-hero-bg: #fbfaf6; --ws-hero-text: #1b2420; --ws-hero-muted: #535e58;
  --ws-band-bg: #1d3a2f; --ws-band-text: #fbfaf6; --ws-brass: #8a6a2f;
}
.ws-root.ws-preset-rapid {
  --ws-bg: #ffffff; --ws-surface: #eef2f7; --ws-text: #0b1b33; --ws-muted: #45546b; --ws-line: #d6deea;
  --ws-accent: #ffc628; --ws-accent-soft: #fff6d9; --ws-on-accent: #0b1b33; --ws-accent-text: #174ea6;
  --ws-display: "WOVO Archivo", "Arial Black", Helvetica, sans-serif; --ws-display-weight: 800; --ws-display-spacing: -0.02em;
  --ws-radius: 10px; --ws-button-radius: 10px;
  --ws-header-bg: #0b1b33; --ws-header-text: #ffffff; --ws-hero-bg: linear-gradient(160deg, #0b1b33 0%, #13325e 100%); --ws-hero-text: #ffffff; --ws-hero-muted: #cfdbee;
  --ws-band-bg: #0b1b33; --ws-band-text: #ffffff;
  --ws-overlay: linear-gradient(90deg, rgba(8, 20, 40, .92), rgba(8, 20, 40, .55));
}
.ws-root.ws-preset-atelier {
  --ws-bg: #fffaf8; --ws-surface: #f8ede9; --ws-text: #3a2a2c; --ws-muted: #735d61; --ws-line: #efdcd6;
  --ws-accent: #9c5b63; --ws-accent-soft: #f8e9ea; --ws-on-accent: #ffffff; --ws-accent-text: #8d4f57;
  --ws-display: "WOVO Cormorant", "Cormorant Garamond", Garamond, "Times New Roman", serif; --ws-display-weight: 600; --ws-display-spacing: 0;
  --ws-radius: 20px; --ws-button-radius: 999px;
  --ws-header-bg: rgba(255, 250, 248, .94); --ws-hero-bg: linear-gradient(135deg, #fbeee9 0%, #fffaf8 55%, #f6e6e8 100%); --ws-hero-text: #3a2a2c; --ws-hero-muted: #735d61;
  --ws-band-bg: #3a2a2c; --ws-band-text: #fffaf8;
}
.ws-root.ws-preset-forge {
  --ws-bg: #0e0e0e; --ws-surface: #181818; --ws-text: #ededed; --ws-muted: #a9a9a9; --ws-line: #2d2d2d;
  --ws-accent: #cfd2d6; --ws-accent-soft: #1d1f22; --ws-on-accent: #0e0e0e; --ws-accent-text: #dfe2e6;
  --ws-display: "WOVO Oswald", "Arial Narrow", Impact, sans-serif; --ws-display-weight: 600; --ws-display-case: uppercase; --ws-display-spacing: 0.035em;
  --ws-radius: 2px; --ws-button-radius: 2px;
  --ws-header-bg: rgba(14, 14, 14, .95); --ws-hero-bg: repeating-linear-gradient(135deg, #121212 0 18px, #151515 18px 36px); --ws-hero-text: #ffffff; --ws-hero-muted: #bdbdbd;
  --ws-band-bg: #cfd2d6; --ws-band-text: #0e0e0e;
  --ws-overlay: linear-gradient(180deg, rgba(0, 0, 0, .45), rgba(0, 0, 0, .88));
}
.ws-root.ws-preset-river {
  --ws-bg: #faf6ea; --ws-surface: #f1e8d0; --ws-text: #2f241d; --ws-muted: #5f5046; --ws-line: #e1d4b4;
  --ws-accent: #5a3a26; --ws-accent-soft: #efe3c4; --ws-on-accent: #faf6ea; --ws-accent-text: #1f6485;
  --ws-display: "WOVO Josefin", "Avenir Next", "Gill Sans", sans-serif; --ws-display-weight: 700; --ws-display-spacing: 0;
  --ws-radius: 16px; --ws-button-radius: 999px;
  --ws-header-bg: rgba(250, 246, 234, .95); --ws-hero-bg: linear-gradient(165deg, #23392b 0%, #2b4a3a 55%, #1f6485 130%); --ws-hero-text: #faf6ea; --ws-hero-muted: #dfe6d6;
  --ws-band-bg: #23392b; --ws-band-text: #faf6ea;
  --ws-overlay: linear-gradient(180deg, rgba(20, 30, 22, .2), rgba(20, 30, 22, .78));
}
.ws-root.ws-preset-pitlane {
  --ws-bg: #0a0a0a; --ws-surface: #151515; --ws-text: #f5f5f5; --ws-muted: #adadad; --ws-line: #272727;
  --ws-accent: #ff6a13; --ws-accent-soft: #231208; --ws-on-accent: #0a0a0a; --ws-accent-text: #ff8a3d;
  --ws-display: "WOVO Russo", "Eurostile", "Arial Black", sans-serif; --ws-display-weight: 400; --ws-display-case: uppercase; --ws-display-spacing: 0.01em; --ws-display-style: italic;
  --ws-radius: 4px; --ws-button-radius: 2px;
  --ws-header-bg: rgba(10, 10, 10, .94); --ws-hero-bg: linear-gradient(115deg, #0a0a0a 0 55%, #ff6a13 55% 58%, #0a0a0a 58% 61%, #ffb000 61% 62.5%, #0a0a0a 62.5%); --ws-hero-text: #ffffff; --ws-hero-muted: #c9c9c9;
  --ws-band-bg: #ff6a13; --ws-band-text: #0a0a0a;
  --ws-overlay: linear-gradient(90deg, rgba(0, 0, 0, .9), rgba(0, 0, 0, .45) 65%, rgba(0, 0, 0, .2));
}

/* ---- Brand color on a design preset: any accent except ink recolors buttons, links and bands. ---- */
.ws-root.ws-accent-ruby { --ws-brand: #a4161a; --ws-brand-soft: #fbeaea; --ws-brand-light: #f0646a; }
.ws-root.ws-accent-rose { --ws-brand: #b83b5e; --ws-brand-soft: #fcecf1; --ws-brand-light: #f27a9b; }
.ws-root.ws-accent-coral { --ws-brand: #c2410c; --ws-brand-soft: #fff1ea; --ws-brand-light: #fb8a4c; }
.ws-root.ws-accent-amber { --ws-brand: #a95106; --ws-brand-soft: #fff5e6; --ws-brand-light: #f5a524; }
.ws-root.ws-accent-green { --ws-brand: #3f7d20; --ws-brand-soft: #eef7e6; --ws-brand-light: #7bcb2f; }
.ws-root.ws-accent-sage { --ws-brand: #44704f; --ws-brand-soft: #edf5ef; --ws-brand-light: #8cc59a; }
.ws-root.ws-accent-ocean { --ws-brand: #1d5f8a; --ws-brand-soft: #e8f2f9; --ws-brand-light: #5fb1e6; }
.ws-root.ws-accent-violet { --ws-brand: #6d28d9; --ws-brand-soft: #f2ecfd; --ws-brand-light: #a98bfa; }
.ws-root:not(.ws-preset-classic):not(.ws-accent-ink) {
  --ws-accent: var(--ws-brand); --ws-accent-text: var(--ws-brand); --ws-accent-soft: var(--ws-brand-soft); --ws-on-accent: #ffffff;
  --ws-band-bg: var(--ws-brand); --ws-band-text: #ffffff;
}
.ws-root.ws-preset-smokehouse:not(.ws-accent-ink), .ws-root.ws-preset-forge:not(.ws-accent-ink), .ws-root.ws-preset-pitlane:not(.ws-accent-ink) {
  --ws-accent: var(--ws-brand-light); --ws-accent-text: var(--ws-brand-light); --ws-accent-soft: color-mix(in srgb, var(--ws-brand-light) 14%, #111111);
  --ws-on-accent: #111111; --ws-band-bg: var(--ws-brand-light); --ws-band-text: #111111;
}
.ws-root.ws-preset-smokehouse:not(.ws-accent-ink) { --ws-hero-bg: radial-gradient(ellipse at 20% 110%, color-mix(in srgb, var(--ws-brand-light) 38%, #141110) 0%, #1b1a14 45%, #141110 75%); }
.ws-root.ws-preset-homestead:not(.ws-accent-ink) { --ws-hero-bg: color-mix(in srgb, var(--ws-brand) 80%, #000000); }

/* ---- Base ---- */
.ws-root a { color: var(--ws-accent-text); text-underline-offset: 3px; }
.ws-root a:focus-visible, .ws-root summary:focus-visible, .ws-root button:focus-visible, .ws-root input:focus-visible, .ws-root select:focus-visible, .ws-root textarea:focus-visible {
  outline: 3px solid var(--ws-accent-text); outline-offset: 3px; border-radius: 4px; }
.ws-root img { display: block; max-width: 100%; }
.ws-root p { margin: 0 0 1em; }
.ws-root h1, .ws-root h2, .ws-root h3 { margin: 0; font-family: var(--ws-display); font-weight: var(--ws-display-weight); line-height: 1.12; letter-spacing: var(--ws-display-spacing);
  text-transform: var(--ws-display-case); font-style: var(--ws-display-style); color: inherit; }
.ws-root h3 { line-height: 1.25; }
.ws-icon { width: 1.05em; height: 1.05em; fill: currentColor; flex: none; }
.ws-sr, .ws-hp { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ws-skip { position: absolute; left: 12px; top: -60px; z-index: 20; background: var(--ws-text); color: var(--ws-bg) !important; padding: 10px 14px; border-radius: 6px; }
.ws-skip:focus { top: 12px; }
.ws-px { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.ws-wrap { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.ws-narrow { max-width: 780px; }

/* Header */
.ws-header { position: sticky; top: 0; z-index: 5; background: var(--ws-header-bg); color: var(--ws-header-text); border-bottom: 1px solid var(--ws-line); backdrop-filter: blur(10px); }
.ws-header-row { display: flex; align-items: center; gap: 22px; min-height: 70px; position: relative; }
.ws-brand { display: inline-flex; align-items: center; gap: 12px; font-family: var(--ws-display); font-weight: var(--ws-display-weight); font-size: 21px; line-height: 1.1;
  text-transform: var(--ws-display-case); letter-spacing: var(--ws-display-spacing); font-style: var(--ws-display-style);
  color: var(--ws-header-text) !important; text-decoration: none; margin-right: auto; overflow-wrap: anywhere; min-width: 0; }
.ws-logo { height: 46px; width: auto; max-width: 180px; object-fit: contain; }
.ws-nav { display: flex; gap: 20px; flex-wrap: nowrap; }
.ws-nav a { color: var(--ws-header-text); opacity: .78; text-decoration: none; font-size: 15px; font-weight: 550; white-space: nowrap; }
.ws-nav a:hover, .ws-nav a[aria-current="page"] { opacity: 1; }
.ws-nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; text-decoration-color: var(--ws-accent); }
.ws-header-call { display: none; align-items: center; gap: 8px; font-weight: 700; text-decoration: none; color: var(--ws-header-text) !important; white-space: nowrap; }
.ws-menu { display: none; }
.ws-menu summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--ws-line);
  border-radius: var(--ws-button-radius); font-weight: 650; font-size: 15px; color: var(--ws-header-text); }
.ws-menu summary::-webkit-details-marker { display: none; }
.ws-menu-bars { width: 18px; height: 12px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; position: relative; }
.ws-menu-bars::after { content: ""; position: absolute; left: 0; right: 0; top: 3px; border-top: 2px solid currentColor; }
.ws-menu-panel { position: absolute; left: 0; right: 0; top: 100%; display: flex; flex-direction: column; gap: 4px; padding: 12px 18px 20px; background: var(--ws-bg);
  border-bottom: 1px solid var(--ws-line); box-shadow: 0 18px 30px rgba(0, 0, 0, .12); }
.ws-menu-panel a:not(.ws-button) { color: var(--ws-text); text-decoration: none; font-size: 18px; font-weight: 600; padding: 10px 2px; border-bottom: 1px solid var(--ws-line); }
.ws-menu-panel a[aria-current="page"] { color: var(--ws-accent-text); }
.ws-menu-panel .ws-button { margin-top: 12px; }

/* Buttons */
.ws-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding: 12px 24px; border-radius: var(--ws-button-radius);
  background: var(--ws-accent); color: var(--ws-on-accent) !important; text-decoration: none; font-weight: 700; font-size: 16px; line-height: 1.2; border: 2px solid var(--ws-accent); cursor: pointer; font-family: inherit; text-align: center; }
.ws-header .ws-button, .ws-mobilebar .ws-button { white-space: nowrap; }
.ws-button:hover { filter: brightness(1.08); }
.ws-button-small { min-height: 42px; padding: 9px 18px; font-size: 15px; }
.ws-button-quiet { background: transparent; color: var(--ws-accent-text) !important; border-color: currentColor; }
.ws-button-inverse { background: var(--ws-band-text); color: var(--ws-band-bg) !important; border-color: var(--ws-band-text); }
.ws-button-block { width: 100%; }
.ws-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.ws-actions:empty { display: none; }

/* Sections */
.ws-section { padding: 88px 0; }
.ws-section + .ws-section { border-top: 1px solid var(--ws-line); }
.ws-heading { font-size: clamp(28px, 4.2cqi, 42px); margin-bottom: 20px !important; }
.ws-intro, .ws-lead { color: var(--ws-muted); max-width: 660px; }
.ws-lead { font-size: 20px; }
.ws-eyebrow { text-transform: uppercase; letter-spacing: .14em; font-size: 13px; font-weight: 700; color: var(--ws-accent-text); margin-bottom: 18px !important; }
.ws-label { display: flex; align-items: center; gap: 6px; text-transform: uppercase; letter-spacing: .12em; font-size: 12px; font-weight: 700; color: var(--ws-muted); }
.ws-note { color: var(--ws-muted); font-size: 15px; margin-top: 12px !important; }
.ws-page-head { padding: 72px 0 40px; background: var(--ws-surface); border-bottom: 1px solid var(--ws-line); }
.ws-page-head .ws-display { margin-bottom: 0 !important; }
.ws-page-head + .ws-section { border-top: 0; }

/* Hero */
.ws-block-hero { position: relative; padding: 108px 0 100px; background: var(--ws-hero-bg); color: var(--ws-hero-text); border-top: 0 !important; overflow: hidden; }
.ws-block-hero .ws-eyebrow { color: var(--ws-hero-text); opacity: .9; }
.ws-block-hero .ws-lead { color: var(--ws-hero-muted); }
.ws-block-hero .ws-button-quiet { color: var(--ws-hero-text) !important; }
.ws-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; align-items: center; }
.ws-hero-copy { position: relative; z-index: 1; }
.ws-display { font-size: clamp(38px, 7cqi, 76px); margin-bottom: 22px !important; max-width: 16ch; overflow-wrap: anywhere; }
.ws-hero-img { width: 100%; height: 100%; object-fit: cover; }
/* Full-bleed photo heroes (default for most designs). */
.ws-hero-media { min-height: min(86vh, 760px); display: flex; align-items: flex-end; }
.ws-hero-media > .ws-wrap { position: static; }
.ws-hero-media .ws-hero-art { position: absolute; inset: 0; z-index: 0; }
.ws-hero-media .ws-hero-art::after { content: ""; position: absolute; inset: 0; background: var(--ws-overlay); }
.ws-hero-media { --ws-hero-text: #ffffff; --ws-hero-muted: rgba(255, 255, 255, .88); }
/* Split photo heroes (classic, civic, estate, atelier). */
.ws-preset-classic .ws-hero-media, .ws-preset-civic .ws-hero-media, .ws-preset-estate .ws-hero-media, .ws-preset-atelier .ws-hero-media { min-height: 0; display: block; }
.ws-preset-classic .ws-hero-media .ws-hero-grid, .ws-preset-civic .ws-hero-media .ws-hero-grid, .ws-preset-estate .ws-hero-media .ws-hero-grid,
.ws-preset-atelier .ws-hero-media .ws-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
.ws-preset-classic .ws-hero-media .ws-hero-art, .ws-preset-civic .ws-hero-media .ws-hero-art, .ws-preset-estate .ws-hero-media .ws-hero-art,
.ws-preset-atelier .ws-hero-media .ws-hero-art { position: relative; inset: auto; aspect-ratio: 4 / 5; border-radius: var(--ws-radius); overflow: hidden; }
.ws-preset-classic .ws-hero-media .ws-hero-art::after, .ws-preset-civic .ws-hero-media .ws-hero-art::after, .ws-preset-estate .ws-hero-media .ws-hero-art::after,
.ws-preset-atelier .ws-hero-media .ws-hero-art::after { display: none; }
.ws-preset-classic .ws-hero-media, .ws-preset-estate .ws-hero-media, .ws-preset-atelier .ws-hero-media { --ws-hero-text: var(--ws-text); --ws-hero-muted: var(--ws-muted); }
.ws-preset-civic .ws-hero-media { --ws-hero-text: #ffffff; --ws-hero-muted: #cdd8ea; }
.ws-style-bold.ws-preset-classic .ws-hero-media { --ws-hero-text: var(--ws-on-accent); --ws-hero-muted: var(--ws-on-accent); }

/* About, services, gallery, quotes, hours, faq */
.ws-about-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px; align-items: center; }
.ws-split .ws-about-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.ws-about-img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--ws-radius); }
.ws-service-list { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
.ws-service { padding: 20px 0; border-bottom: 1px solid var(--ws-line); }
.ws-service-head { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.ws-service h3 { font-size: 20px; }
.ws-service p { color: var(--ws-muted); margin: 6px 0 0; font-size: 15px; }
.ws-price { font-weight: 700; color: var(--ws-accent-text); white-space: nowrap; }
.ws-gallery { list-style: none; padding: 0; margin: 32px 0 0; columns: 3; column-gap: 16px; }
.ws-gallery li { break-inside: avoid; margin-bottom: 16px; }
.ws-gallery-img { width: 100%; height: auto; border-radius: var(--ws-radius); background: var(--ws-surface); }
.ws-quotes { list-style: none; padding: 0; margin: 32px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ws-quote { background: var(--ws-surface); border-radius: var(--ws-radius); padding: 28px; }
.ws-quote blockquote { margin: 0; font-size: 17px; }
.ws-quote-author { color: var(--ws-muted); font-weight: 600; margin: 0 !important; }
.ws-hours { margin: 24px 0 0; display: grid; }
.ws-hours div { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--ws-line); }
.ws-hours dt { font-weight: 700; }
.ws-hours dd { margin: 0; color: var(--ws-muted); text-align: right; }
.ws-hours-compact { margin-top: 8px; }
.ws-hours-compact div { padding: 7px 0; font-size: 15px; }
.ws-faq-list { margin-top: 24px; }
.ws-faq-item { border-bottom: 1px solid var(--ws-line); padding: 18px 0; }
.ws-faq-item summary { cursor: pointer; font-weight: 700; font-size: 18px; }
.ws-faq-item p { color: var(--ws-muted); margin: 12px 0 0; }

/* Menu */
.ws-menu-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 28px; }
.ws-menu-jump a { border: 1px solid var(--ws-line); border-radius: 999px; padding: 7px 14px; font-size: 14px; font-weight: 650; text-decoration: none; color: var(--ws-text); background: var(--ws-bg); }
.ws-menu-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 56px; margin-top: 24px; }
.ws-menu-section { padding: 0 !important; border: 0 !important; scroll-margin-top: 90px; }
.ws-menu-title { font-size: 26px; padding-bottom: 10px; margin-bottom: 8px !important; border-bottom: 2px solid var(--ws-accent); }
.ws-menu-items { list-style: none; margin: 0; padding: 0; }
.ws-menu-items li { padding: 13px 0; border-bottom: 1px dashed var(--ws-line); }
.ws-menu-row { display: flex; align-items: baseline; gap: 10px; }
.ws-menu-name { font-weight: 700; }
.ws-menu-dots { flex: 1; border-bottom: 1px dotted var(--ws-muted); opacity: .45; transform: translateY(-4px); min-width: 16px; }
.ws-menu-desc { color: var(--ws-muted); font-size: 15px; margin: 4px 0 0 !important; }

/* Contact */
.ws-block-contact { background: var(--ws-surface); }
.ws-contact-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 48px; }
.ws-contact-list { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 20px; }
.ws-contact-list li { display: flex; gap: 14px; align-items: flex-start; }
.ws-contact-list li > .ws-icon { margin-top: 26px; color: var(--ws-accent-text); width: 22px; height: 22px; }
.ws-contact-list a, .ws-contact-list span > span:not(.ws-label) { font-size: 19px; overflow-wrap: anywhere; }
.ws-contact-side { display: grid; gap: 28px; align-content: start; }
.ws-contact-hours .ws-label .ws-icon { width: 14px; height: 14px; }
.ws-socials { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 10px 0 0 !important; }
.ws-social { font-weight: 650; }

/* Bands */
.ws-block-cta { background: var(--ws-band-bg); color: var(--ws-band-text); text-align: center; border-top: 0 !important; }
.ws-cta-band { display: flex; flex-direction: column; align-items: center; }
.ws-block-cta p { max-width: 640px; opacity: .92; }
.ws-block-cta .ws-actions { justify-content: center; }
.ws-banner { background: var(--ws-accent); color: var(--ws-on-accent); padding: 18px 0; }
.ws-banner + .ws-section { border-top: 0; }
.ws-banner-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.ws-banner-title { font-family: var(--ws-display); font-weight: var(--ws-display-weight); text-transform: var(--ws-display-case); letter-spacing: var(--ws-display-spacing);
  font-style: var(--ws-display-style); font-size: 21px; margin: 0 !important; line-height: 1.2; }
.ws-banner-body { margin: 4px 0 0 !important; opacity: .92; }
.ws-banner .ws-button-inverse { background: var(--ws-on-accent); color: var(--ws-accent) !important; border-color: var(--ws-on-accent); }

/* Events, features, people, links */
.ws-events { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.ws-event { background: var(--ws-surface); border: 1px solid var(--ws-line); border-radius: var(--ws-radius); padding: 24px; }
.ws-event h3 { font-size: 21px; margin-bottom: 8px !important; }
.ws-event p { color: var(--ws-muted); margin-bottom: 0; }
.ws-event-when { display: inline-block; color: var(--ws-accent-text) !important; font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 10px !important; }
.ws-features { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; counter-reset: ws-step; }
.ws-feature { background: var(--ws-surface); border-radius: var(--ws-radius); padding: 24px; border: 1px solid var(--ws-line); }
.ws-feature h3 { font-size: 20px; margin-bottom: 6px !important; }
.ws-feature p { color: var(--ws-muted); margin: 0; font-size: 15.5px; }
.ws-features-steps .ws-feature { counter-increment: ws-step; }
.ws-features-steps .ws-feature::before { content: counter(ws-step); display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; margin-bottom: 14px;
  background: var(--ws-accent); color: var(--ws-on-accent); font-weight: 800; font-family: var(--ws-display); font-style: normal; }
.ws-features-checks .ws-features { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 6px 28px; }
.ws-features-checks .ws-feature { display: flex; gap: 12px; background: transparent; border: 0; border-bottom: 1px solid var(--ws-line); border-radius: 0; padding: 14px 0; }
.ws-features-checks .ws-feature > .ws-icon { color: var(--ws-accent-text); width: 22px; height: 22px; margin-top: 2px; }
.ws-people { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 24px; }
.ws-person { background: var(--ws-surface); border-radius: var(--ws-radius); overflow: hidden; border: 1px solid var(--ws-line); }
.ws-person > div { padding: 22px; }
.ws-person h3 { font-size: 21px; }
.ws-person-img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ws-person-role { color: var(--ws-accent-text); font-weight: 700; font-size: 14px; margin: 4px 0 10px !important; }
.ws-person p:not(.ws-person-role) { color: var(--ws-muted); font-size: 15.5px; }
.ws-links { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.ws-links .ws-note { margin-top: 8px !important; }

/* Forms */
.ws-form-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 48px; align-items: start; }
.ws-form { background: var(--ws-surface); border: 1px solid var(--ws-line); border-radius: var(--ws-radius); padding: 28px; }
.ws-form-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ws-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.ws-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ws-field-wide { grid-column: 1 / -1; }
.ws-field label { font-weight: 650; font-size: 15px; }
.ws-required { color: var(--ws-accent-text); }
.ws-field input, .ws-field select, .ws-field textarea { width: 100%; font: inherit; font-size: 16px; color: var(--ws-text); background: var(--ws-bg); border: 1.5px solid var(--ws-line);
  border-radius: min(var(--ws-radius), 10px); padding: 12px 14px; min-height: 48px; }
.ws-field textarea { resize: vertical; min-height: 130px; }
.ws-field input:focus, .ws-field select:focus, .ws-field textarea:focus { border-color: var(--ws-accent-text); }
.ws-form-foot { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 20px; }
.ws-form-note { color: var(--ws-muted); font-size: 14px; margin: 0 !important; }
.ws-form[aria-disabled="true"] { opacity: .85; }
.ws-thanks { text-align: center; padding: 120px 0; }
.ws-thanks .ws-display { margin-left: auto; margin-right: auto; }
.ws-thanks > .ws-wrap > .ws-icon { width: 56px; height: 56px; margin: 0 auto 20px; color: var(--ws-accent-text); }
.ws-thanks .ws-actions, .ws-thanks .ws-lead { justify-content: center; margin-left: auto; margin-right: auto; }

/* Footer */
.ws-footer { border-top: 1px solid var(--ws-line); padding: 52px 0 60px; font-size: 15px; color: var(--ws-muted); background: var(--ws-surface); }
.ws-footer-row { display: flex; justify-content: space-between; gap: 32px 48px; flex-wrap: wrap; }
.ws-footer-brand { max-width: 340px; }
.ws-footer-name { font-family: var(--ws-display); font-weight: var(--ws-display-weight); text-transform: var(--ws-display-case); letter-spacing: var(--ws-display-spacing);
  font-style: var(--ws-display-style); color: var(--ws-text); font-size: 21px; margin-bottom: 8px !important; }
.ws-footer-hours { min-width: 220px; }
.ws-footer-meta { text-align: right; }
.ws-footer-nav { display: flex; flex-wrap: wrap; gap: 8px 18px; justify-content: flex-end; margin-bottom: 12px; }
.ws-footer-nav a { color: var(--ws-text); text-decoration: none; font-weight: 600; }
.ws-footer-meta .ws-socials { justify-content: flex-end; margin-bottom: 10px !important; }
.ws-badge { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 13px; color: var(--ws-muted) !important; border: 1px solid var(--ws-line); border-radius: 999px; padding: 5px 12px; text-decoration: none; }
.ws-badge:hover { color: var(--ws-text) !important; }
.ws-badge-free { font-size: 18px; font-weight: 700; padding: 12px 22px; border-width: 2px; color: var(--ws-text) !important; }
.ws-badge-pro { font-size: 12px; padding: 4px 10px; }
.ws-custom-frame { display: block; width: 100%; max-width: 100%; border: 0; background: transparent; }
.ws-custom-placeholder { border: 1px dashed var(--ws-line); border-radius: var(--ws-radius); padding: 28px; color: var(--ws-muted); }
.ws-mobilebar { display: none; }

/* ---- Design-specific touches ---- */
.ws-preset-homestead .ws-header { border-bottom: 3px double var(--ws-line); }
.ws-preset-homestead .ws-hero-plain { background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, .035) 0 2px, transparent 2px 46px), var(--ws-hero-bg); }
.ws-preset-homestead .ws-heading::after { content: ""; display: block; width: 64px; height: 4px; margin-top: 14px; background: var(--ws-accent); border-radius: 2px; }
.ws-preset-homestead .ws-block-cta .ws-heading::after, .ws-preset-homestead .ws-thanks .ws-heading::after { margin-left: auto; margin-right: auto; background: var(--ws-band-text); }
.ws-preset-homestead .ws-menu-sections { background: #fffdf7; border: 1px solid var(--ws-line); border-radius: var(--ws-radius); padding: 36px 40px; box-shadow: 0 1px 0 var(--ws-line), 0 18px 40px -28px rgba(60, 30, 10, .35); }
.ws-preset-homestead .ws-header-call { display: inline-flex; color: var(--ws-accent-text) !important; }

.ws-preset-smokehouse .ws-display { font-size: clamp(52px, 10cqi, 116px); line-height: .92; max-width: 13ch; }
.ws-preset-smokehouse .ws-heading { font-size: clamp(38px, 6cqi, 60px); }
.ws-preset-smokehouse .ws-menu-title { font-size: 34px; border-bottom-color: var(--ws-accent); }
.ws-preset-smokehouse .ws-section:nth-of-type(even):not(.ws-block-hero):not(.ws-block-cta) { background: var(--ws-surface); }
.ws-preset-smokehouse .ws-block-hero .ws-eyebrow { color: var(--ws-accent-text); opacity: 1; }
.ws-preset-smokehouse .ws-header-call { display: inline-flex; color: var(--ws-accent-text) !important; }

.ws-preset-civic .ws-header { border-bottom: 4px solid var(--ws-accent); }
.ws-preset-civic .ws-block-hero .ws-display::after { content: ""; display: block; width: 88px; height: 6px; background: var(--ws-accent); margin-top: 22px; }
.ws-preset-civic .ws-block-hero .ws-eyebrow { color: #ffffff; letter-spacing: .2em; }
.ws-preset-civic .ws-hero-media .ws-hero-art { border: 6px solid #ffffff; box-shadow: 18px 18px 0 var(--ws-accent); }
.ws-preset-civic .ws-hero-media { background: var(--ws-hero-bg); }
.ws-preset-civic .ws-block-hero .ws-button-quiet { border-color: #ffffff; }
.ws-preset-civic .ws-heading { text-transform: none; }
.ws-preset-civic .ws-feature { border-top: 4px solid var(--ws-accent); }

.ws-preset-estate .ws-eyebrow, .ws-preset-estate .ws-person-role, .ws-preset-estate .ws-event-when { color: var(--ws-brass) !important; letter-spacing: .22em; }
.ws-preset-estate .ws-display { font-size: clamp(40px, 6.6cqi, 72px); max-width: 14ch; }
.ws-preset-estate .ws-hero-plain { border-bottom: 1px solid var(--ws-line); }
.ws-preset-estate .ws-hero-media .ws-hero-art { aspect-ratio: 3 / 4; box-shadow: 0 30px 60px -30px rgba(15, 30, 22, .45); }
.ws-preset-estate .ws-heading { font-size: clamp(30px, 4.4cqi, 46px); }
.ws-preset-estate .ws-feature { background: transparent; border: 0; border-top: 1px solid var(--ws-brass); border-radius: 0; padding: 22px 0 0; }
.ws-preset-estate .ws-button { letter-spacing: .08em; text-transform: uppercase; font-size: 14px; }

.ws-preset-rapid .ws-header { border-bottom: 0; }
.ws-preset-rapid .ws-header-call { display: inline-flex; background: var(--ws-accent); color: var(--ws-on-accent) !important; padding: 10px 16px; border-radius: var(--ws-button-radius); font-size: 17px; }
.ws-preset-rapid .ws-header .ws-button-small { background: transparent; border-color: rgba(255, 255, 255, .45); color: #ffffff !important; }
.ws-preset-rapid .ws-menu summary { border-color: rgba(255, 255, 255, .35); }
.ws-preset-rapid .ws-block-hero .ws-eyebrow { color: var(--ws-accent); opacity: 1; }
.ws-preset-rapid .ws-block-hero .ws-button:not(.ws-button-quiet) { font-size: 19px; min-height: 58px; padding: 14px 28px; }
.ws-preset-rapid .ws-block-hero .ws-button-quiet { border-color: rgba(255, 255, 255, .7); }
.ws-preset-rapid .ws-features-steps .ws-feature::before { background: #0b1b33; color: #ffc628; }
.ws-preset-rapid .ws-block-cta .ws-button-inverse { background: var(--ws-accent); color: var(--ws-on-accent) !important; border-color: var(--ws-accent); }
.ws-preset-rapid .ws-price, .ws-preset-rapid .ws-event-when { color: #174ea6 !important; }

.ws-preset-atelier .ws-display { font-size: clamp(44px, 7.4cqi, 84px); font-weight: 600; line-height: 1.02; }
.ws-preset-atelier .ws-heading { font-size: clamp(34px, 5cqi, 52px); }
.ws-preset-atelier .ws-hero-media .ws-hero-art { border-radius: 999px 999px 24px 24px; aspect-ratio: 3 / 4; }
.ws-preset-atelier .ws-eyebrow { letter-spacing: .3em; font-weight: 600; }
.ws-preset-atelier .ws-service { border-bottom-style: dotted; }
.ws-preset-atelier .ws-gallery-img { border-radius: 18px; }

.ws-preset-forge .ws-display { font-size: clamp(44px, 8.4cqi, 96px); line-height: .98; max-width: 14ch; }
.ws-preset-forge .ws-heading { font-size: clamp(32px, 5cqi, 52px); }
.ws-preset-forge .ws-eyebrow { color: #cfd2d6; letter-spacing: .28em; }
.ws-preset-forge .ws-block-hero .ws-display::after { content: ""; display: block; width: 120px; height: 3px; margin-top: 24px; background: linear-gradient(90deg, #cfd2d6, #6b6f75); }
.ws-preset-forge .ws-feature { border-left: 3px solid #cfd2d6; }
.ws-preset-forge .ws-header-call { display: inline-flex; }
.ws-preset-forge .ws-brand-has-logo .ws-brand-name { font-size: 18px; }
.ws-preset-forge .ws-section:nth-of-type(even):not(.ws-block-hero):not(.ws-block-cta) { background: var(--ws-surface); }

.ws-preset-river .ws-display { font-size: clamp(40px, 7cqi, 80px); }
.ws-preset-river .ws-block-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 42px; z-index: 1;
  background: radial-gradient(60px 22px at 30px 0, transparent 97%, var(--ws-bg) 100%) 0 0 / 60px 42px repeat-x; }
.ws-preset-river .ws-eyebrow { color: #cfe6f2; }
.ws-preset-river .ws-section:not(.ws-block-hero) .ws-eyebrow { color: var(--ws-accent-text); }
.ws-preset-river .ws-feature { background: #fffdf6; }
.ws-preset-river .ws-links .ws-button { background: #1f6485; border-color: #1f6485; color: #ffffff !important; }

.ws-preset-pitlane .ws-display { font-size: clamp(44px, 8.6cqi, 98px); line-height: .96; max-width: 13ch; }
.ws-preset-pitlane .ws-heading { font-size: clamp(32px, 5cqi, 54px); }
.ws-preset-pitlane .ws-button { transform: skewX(-10deg); }
.ws-preset-pitlane .ws-button > * { transform: skewX(10deg); }
.ws-preset-pitlane .ws-button { text-transform: uppercase; letter-spacing: .06em; font-style: italic; }
.ws-preset-pitlane .ws-heading::before { content: ""; display: block; width: 72px; height: 6px; margin-bottom: 16px; background: linear-gradient(90deg, #ff6a13 0 70%, #ffb000 70%); transform: skewX(-20deg); }
.ws-preset-pitlane .ws-block-cta .ws-heading::before { margin-left: auto; margin-right: auto; background: #0a0a0a; }
.ws-preset-pitlane .ws-block-hero .ws-eyebrow { color: var(--ws-accent-text); opacity: 1; }
.ws-preset-pitlane .ws-header-call { display: inline-flex; color: var(--ws-accent-text) !important; }
.ws-preset-pitlane .ws-feature { border-left: 4px solid var(--ws-accent); }
.ws-preset-pitlane .ws-section:nth-of-type(even):not(.ws-block-hero):not(.ws-block-cta) { background: var(--ws-surface); }

/* ---- Responsive ---- */
@container ws (max-width: 1100px) {
  .ws-nav { display: none; }
  .ws-menu { display: block; }
  .ws-header-call span { display: none; }
}
@container ws (max-width: 980px) {
  .ws-quotes { grid-template-columns: minmax(0, 1fr); }
  .ws-gallery { columns: 2; }
  .ws-nav { gap: 14px; }
  .ws-header-call span { display: none; }
  .ws-form-wrap, .ws-menu-sections { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@container ws (max-width: 760px) {
  .ws-wrap { padding: 0 18px; }
  .ws-header-call { display: none !important; }
  .ws-header-row { min-height: 62px; gap: 12px; }
  .ws-logo { height: 38px; max-width: 140px; }
  .ws-brand { font-size: 18px; }
  .ws-section { padding: 60px 0; }
  .ws-block-hero { padding: 64px 0; }
  .ws-hero-media { min-height: 72vh; }
  .ws-preset-classic .ws-hero-media .ws-hero-grid, .ws-preset-civic .ws-hero-media .ws-hero-grid, .ws-preset-estate .ws-hero-media .ws-hero-grid,
  .ws-preset-atelier .ws-hero-media .ws-hero-grid, .ws-split .ws-about-grid, .ws-contact-grid, .ws-service-list, .ws-form-grid { grid-template-columns: minmax(0, 1fr); }
  .ws-preset-classic .ws-hero-media .ws-hero-art, .ws-preset-estate .ws-hero-media .ws-hero-art { aspect-ratio: 4 / 3; }
  .ws-preset-civic .ws-hero-media .ws-hero-art { aspect-ratio: 4 / 3; box-shadow: 10px 10px 0 var(--ws-accent); }
  .ws-hero-grid, .ws-about-grid { gap: 32px; }
  .ws-lead { font-size: 18px; }
  .ws-menu-sections { padding: 24px 18px !important; }
  .ws-form { padding: 20px; }
  .ws-footer { padding-bottom: 110px; }
  .ws-footer-meta { text-align: left; }
  .ws-footer-meta .ws-socials, .ws-footer-nav { justify-content: flex-start; }
  .ws-mobilebar { display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 6; padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    background: var(--ws-bg); border-top: 1px solid var(--ws-line); box-shadow: 0 -8px 24px rgba(0, 0, 0, .12); }
  .ws-mobilebar .ws-button { flex: 1; min-height: 50px; padding: 10px 12px; }
  .ws-header > .ws-wrap > .ws-button-small { display: none; }
  .ws-banner-row { flex-direction: column; align-items: flex-start; }
}
@container ws (max-width: 460px) {
  .ws-gallery { columns: 1; }
  .ws-display { font-size: 40px; }
  .ws-preset-smokehouse .ws-display, .ws-preset-forge .ws-display, .ws-preset-pitlane .ws-display { font-size: 50px; }
  .ws-actions .ws-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .ws-root * { scroll-behavior: auto !important; transition: none !important; } }

/* Optional presentation. Legacy pages do not contain ws-polished, so every
   existing declaration above and every existing snapshot keeps its behavior. */
.ws-root.ws-polished .ws-section { padding: clamp(52px, 6cqi, 82px) 0; }
.ws-root.ws-polished .ws-block-hero { padding: clamp(66px, 8cqi, 112px) 0; }
.ws-root.ws-polished .ws-block-about { padding: clamp(64px, 8cqi, 104px) 0; }
.ws-root.ws-polished .ws-header { transition: background-color 300ms ease, border-color 300ms ease; }
.ws-root.ws-polished .ws-heading { letter-spacing: -.025em; max-width: 23ch; }
.ws-root.ws-polished .ws-service-list { gap: 18px; }
.ws-root.ws-polished .ws-service { background: var(--ws-surface); border: 1px solid var(--ws-line); border-radius: max(14px, var(--ws-radius)); padding: 26px; }
.ws-root.ws-polished .ws-service h3, .ws-root.ws-polished .ws-feature h3 { font-family: var(--ws-display); font-weight: var(--ws-display-weight); letter-spacing: -.015em; }
.ws-root.ws-polished .ws-feature, .ws-root.ws-polished .ws-quote, .ws-root.ws-polished .ws-form, .ws-root.ws-polished .ws-event { border-radius: max(16px, var(--ws-radius)); }
.ws-root.ws-polished .ws-features-checks .ws-feature { border: 1px solid var(--ws-line); background: var(--ws-surface); padding: 20px; border-radius: 16px; }
.ws-root.ws-polished .ws-features-checks .ws-feature > .ws-icon { flex: none; padding: 9px; width: 40px; height: 40px; border-radius: 50%; background: var(--ws-bg); }
.ws-root.ws-polished .ws-gallery-img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: max(14px, var(--ws-radius)); }
.ws-root.ws-polished .ws-block-cta { background: var(--ws-bg); padding: clamp(28px, 4cqi, 54px) 18px; }
.ws-root.ws-polished .ws-cta-band { background: var(--ws-band-bg); border-radius: max(20px, var(--ws-radius)); padding: clamp(34px, 5cqi, 64px); }
.ws-root.ws-polished .ws-faq-item { padding: 22px; margin-bottom: 12px; border: 1px solid var(--ws-line); border-radius: 14px; background: var(--ws-surface); }
.ws-root.ws-polished .ws-button { transition: transform 250ms ease, box-shadow 250ms ease, filter 250ms ease; }
.ws-root.ws-polished .ws-button:focus-visible, .ws-root.ws-polished summary:focus-visible, .ws-root.ws-polished a:focus-visible,
.ws-root.ws-custom-accent .ws-button:focus-visible, .ws-root.ws-custom-accent summary:focus-visible, .ws-root.ws-custom-accent a:focus-visible { outline: 3px solid #000000; outline-offset: 3px; box-shadow: 0 0 0 3px #ffffff; }
.ws-root.ws-polished .ws-block-cta p, .ws-root.ws-custom-accent .ws-block-cta p { color: var(--ws-band-text); opacity: 1; }
.ws-root.ws-polished .ws-block-cta a:not(.ws-button), .ws-root.ws-custom-accent .ws-block-cta a:not(.ws-button) { color: var(--ws-band-text); }
.ws-root.ws-polished .ws-banner-body, .ws-root.ws-custom-accent .ws-banner-body { opacity: 1; }
.ws-root .ws-hours-status { overflow-wrap: anywhere; }
.ws-root.ws-polished .ws-button:hover, .ws-root.ws-custom-accent .ws-button:hover { filter: none; }
.ws-root.ws-polished .ws-hero-copy, .ws-root.ws-polished .ws-about-grid, .ws-root.ws-polished .ws-service-list, .ws-root.ws-polished .ws-features, .ws-root.ws-polished .ws-gallery, .ws-root.ws-polished .ws-form-wrap {
  opacity: 1; transform: none; animation: wovo-site-gentle-in 800ms cubic-bezier(.22,1,.36,1); }
@keyframes wovo-site-gentle-in { from { opacity: .65; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@supports (animation-timeline: view()) {
  .ws-root.ws-polished .ws-about-grid, .ws-root.ws-polished .ws-service-list, .ws-root.ws-polished .ws-features, .ws-root.ws-polished .ws-gallery, .ws-root.ws-polished .ws-form-wrap { animation-timeline: view(); animation-range: entry 0% entry 100%; }
}
@media (hover: hover) and (pointer: fine) { .ws-root.ws-polished .ws-button:hover:not(:focus-visible) { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(0,0,0,.12); } }
@container ws (max-width: 760px) { .ws-root.ws-polished .ws-service { padding: 22px; } .ws-root.ws-polished .ws-cta-band { padding: 32px 20px; } }
@media (prefers-reduced-motion: reduce) { .ws-root.ws-polished *, .ws-root.ws-polished *::before, .ws-root.ws-polished *::after { animation: none !important; transition: none !important; transform: none !important; } }
@media print { .ws-root.ws-polished * { animation: none !important; transition: none !important; transform: none !important; opacity: 1 !important; } .ws-root.ws-polished .ws-header { position: static; } .ws-root.ws-polished .ws-mobilebar { display: none; } }

/* Bounded mobile/accessibility corrections. Keep the complete legacy and
   polished stylesheet above unchanged; previews and the reader share this tail. */
.ws-root { overflow-wrap: anywhere; }
/* Native actions include anonymous text nodes (form/thanks/404) as well as
   icon + span links. Both must shrink within their containing component. */
.ws-root .ws-button { min-width: 0; max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
.ws-root .ws-button > span { min-width: 0; overflow-wrap: anywhere; }
.ws-nav a { min-width: 0; white-space: normal; }
.ws-hours dt, .ws-hours dd { min-width: 0; overflow-wrap: anywhere; }
.ws-price { min-width: 1em; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.ws-menu-row .ws-price { flex-shrink: 0; max-width: 40%; }
/* Keyboard indication must appear immediately, including on dark bands.
   Preserve the existing hover motion without fading the white focus ring. */
.ws-root.ws-polished .ws-button:focus-visible { transition: transform 250ms ease, filter 250ms ease; }
/* Keep the reveal movement while form labels and controls retain full contrast. */
.ws-root.ws-polished .ws-form-wrap { animation-name: wovo-site-form-gentle-in; }
@keyframes wovo-site-form-gentle-in { from { opacity: 1; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.ws-root .ws-form[aria-disabled="true"] { opacity: 1; }
.ws-root.ws-preset-pitlane .ws-thanks .ws-button { max-width: calc(100% - 48px); }
.ws-root:not(.ws-polished):not(.ws-custom-accent) .ws-header :focus-visible { outline-color: var(--ws-header-text); }
.ws-root:not(.ws-polished):not(.ws-custom-accent) .ws-menu-panel :focus-visible { outline-color: var(--ws-accent-text); }
.ws-root:not(.ws-polished):not(.ws-custom-accent) .ws-block-hero :focus-visible { outline-color: var(--ws-hero-text); }
.ws-root:not(.ws-polished):not(.ws-custom-accent) .ws-block-cta :focus-visible { outline-color: var(--ws-band-text); }
.ws-root:not(.ws-polished):not(.ws-custom-accent) .ws-banner :focus-visible { outline-color: var(--ws-on-accent); }
.ws-root a, .ws-root button, .ws-root summary, .ws-root input, .ws-root select, .ws-root textarea, .ws-root [id] { scroll-margin-top: 96px; }
.ws-header:has(.ws-menu[open]) { z-index: 7; }
.ws-header-row { padding-top: 6px; padding-bottom: 6px; }
.ws-brand { min-width: min(11em, 32%); min-height: 44px; }
.ws-brand-has-logo { flex-wrap: wrap; row-gap: 2px; }
.ws-nav { gap: 6px 20px; flex-wrap: wrap; justify-content: flex-end; min-width: 0; }
.ws-menu summary { white-space: nowrap; }
.ws-header-call { justify-content: center; min-height: 44px; min-width: 44px; }
.ws-menu-panel { max-height: 70vh; max-height: 70dvh; overflow-y: auto; overscroll-behavior: contain; }
.ws-header .ws-menu-panel .ws-button { white-space: normal; overflow-wrap: anywhere; }
@container ws (max-width: 1100px) {
  .ws-header-row > .ws-button { min-width: 0; white-space: normal; }
  .ws-header-row > .ws-button > span { min-width: 0; overflow-wrap: anywhere; }
  .ws-root a, .ws-root button, .ws-root summary, .ws-root input, .ws-root select, .ws-root textarea, .ws-root [id] { scroll-margin-top: 220px; }
}
.ws-button-small { min-height: 44px; }
.ws-service-head { flex-wrap: wrap; gap: 2px 16px; }
.ws-service h3 { flex: 1 1 12em; min-width: 0; overflow-wrap: anywhere; }
.ws-menu-name { min-width: 0; overflow-wrap: anywhere; }
.ws-menu-jump a { display: inline-flex; align-items: center; min-height: 44px; }
.ws-faq-item summary { min-height: 44px; padding: 7px 0; }
.ws-about-img { background: var(--ws-surface); }
.ws-person-img { background: var(--ws-line); }
/* Reserve the gallery cell rather than crop a healthy thin panorama. Keep
   meaningful alt text visible when a media request fails. */
.ws-gallery li { min-height: 80px; background: var(--ws-surface); border-radius: var(--ws-radius); }
@container ws (max-width: 760px) {
  .ws-mobilebar .ws-button { flex: 1 1 0; min-width: 0; white-space: normal; }
  .ws-mobilebar .ws-button > span { min-width: 0; overflow-wrap: anywhere; }
  /* A schema-valid 40-character action can wrap to six lines on 320px.
     Reserve its measured height plus breathing room and the device safe area. */
  .ws-footer { padding-bottom: calc(180px + env(safe-area-inset-bottom)); }
  .ws-root a, .ws-root button, .ws-root summary, .ws-root input, .ws-root select, .ws-root textarea, .ws-root [id] { scroll-margin-top: 280px; scroll-margin-bottom: calc(180px + env(safe-area-inset-bottom)); }
  .ws-root:has(.ws-form :focus) .ws-mobilebar { display: none; }
  .ws-root:has(.ws-form :focus) .ws-header { position: relative; }
}
/* Short viewports need their content area back when a wrapped brand is tall. */
@media (max-height: 500px) {
  .ws-root .ws-header { position: relative; }
  .ws-root a, .ws-root button, .ws-root summary, .ws-root input, .ws-root select, .ws-root textarea, .ws-root [id] { scroll-margin-top: 24px; }
}
@container ws (max-width: 460px) { .ws-price { white-space: normal; overflow-wrap: anywhere; } }
@media print { .ws-root .ws-mobilebar { display: none; } .ws-root .ws-header { position: static; } }
/* Native supporter progress uses verified server aggregates, never a local counter. */
.ws-supporter-total { font-size: 2rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.ws-supporter-progress { width: 100%; height: 1rem; accent-color: var(--ws-accent); }

/* Native community sections. Existing client selectors and declarations stay
   intact; these styles apply only to the new structured blocks. */
.ws-block-calendar [hidden], .ws-block-facebook [hidden], .ws-block-game [hidden] { display: none !important; }
.ws-calendar-controls, .ws-facebook-controls, .ws-game-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0; }
.ws-calendar-controls button { min-height: 44px; padding: 8px 16px; border: 2px solid var(--ws-line); border-radius: var(--ws-radius); background: var(--ws-surface); color: var(--ws-text); font: inherit; cursor: pointer; }
.ws-calendar-controls button[aria-pressed="true"] { border-color: var(--ws-accent); text-decoration: underline; text-underline-offset: 5px; }
.ws-calendar-month { margin: 28px 0; }
.ws-calendar-month > h3 { font-size: 1.3rem; margin-bottom: 14px; }
.ws-calendar-events, .ws-directory-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 20px; }
.ws-block-calendar .ws-event, .ws-directory-item { padding: 24px; border: 1px solid var(--ws-line); border-radius: var(--ws-radius); min-width: 0; background: var(--ws-surface); }
.ws-block-calendar .ws-event h4, .ws-directory-item h3 { margin: 12px 0; font-size: 1.25rem; }
.ws-block-calendar .ws-event-when, .ws-block-calendar .ws-event-zone { font-size: .95rem; }
.ws-block-calendar .ws-event-status { display: inline-block; border: 1px solid currentColor; padding: 4px 10px; border-radius: 999px; margin: 12px 0 0; font-size: .85rem; font-weight: 700; }
.ws-block-calendar .ws-event-location, .ws-directory-address { white-space: normal; }
.ws-directory-map { margin: 24px 0; }
.ws-directory-map svg { display: block; width: 100%; height: auto; max-height: 360px; }
.ws-directory-map-background { fill: var(--ws-surface); stroke: var(--ws-line); }
.ws-directory-marker { fill: var(--ws-text); }
.ws-directory-marker-label { fill: var(--ws-surface); font: 700 16px system-ui, sans-serif; }
.ws-directory-north { fill: none; stroke: var(--ws-text); stroke-width: 2; }
.ws-directory-north-label { fill: var(--ws-text); font: 700 14px system-ui, sans-serif; }
.ws-directory-map figcaption { margin-top: 8px; font-size: .9rem; }
.ws-directory-item .ws-note { margin-top: 20px; }
.ws-facebook-frame { width: 100%; max-width: 500px; min-width: 0; }
.ws-facebook-frame iframe { display: block; max-width: 100%; border: 0; border-radius: var(--ws-radius); }
.ws-facebook-status { max-width: 65ch; }
.ws-game { margin-top: 24px; }
.ws-game-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 32px; }
.ws-game-art { position: relative; padding-bottom: 20px; min-width: 0; }
.ws-game-scene { width: 100%; height: auto; display: block; }
.ws-game-sky { fill: #e6f3fc; }
.ws-game-sun { fill: #f8ca68; }
.ws-game-hills { fill: #9fbd83; }
.ws-game-water { fill: #6aaec6; }
.ws-game-bank { fill: #b49a76; }
.ws-game-tiles { fill: #89613f; stroke: #5e412a; stroke-width: 1; }
.ws-game-mascot { display: block; width: min(58%, 260px); max-height: 260px; height: auto; object-fit: contain; margin: -34px 0 0 auto; position: relative; background: var(--ws-surface); border: 3px solid var(--ws-surface); border-radius: 12px; }
.ws-game-play { min-width: 0; }
.ws-game-progress-label { font-weight: 700; margin-bottom: 6px; }
.ws-game-progress { padding: 14px 18px; border: 2px solid var(--ws-line); border-radius: var(--ws-radius); font-weight: 700; font-variant-numeric: tabular-nums; }
.ws-game-status { min-height: 3em; }
.ws-game-facts { display: grid; gap: 14px; margin-top: 28px; }
.ws-game-fact { border: 1px solid var(--ws-line); border-radius: var(--ws-radius); background: var(--ws-surface); padding: 18px 22px; }
.ws-game-fact summary { min-height: 44px; cursor: pointer; font-weight: 700; }
.ws-game-fact p { margin: 14px 0; }
.ws-game-fact a { display: inline-block; min-height: 44px; }
.ws-game-context { display: inline-block; font-size: .8rem; font-weight: 400; margin-left: 8px; }
.ws-game-controls .ws-button:disabled { cursor: default; }
@container ws (max-width: 760px) { .ws-game-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; } }
@media (prefers-reduced-motion: reduce) {
  .ws-block-calendar *, .ws-block-directory *, .ws-block-facebook *, .ws-block-game * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print { .ws-calendar-controls, .ws-facebook-controls, .ws-game-controls { display: none !important; } .ws-game-fact[hidden] { display: block !important; } }
/* Native silent video sections play only after a visitor uses the controls. */
.ws-root .ws-video-figure { margin: 0; min-width: 0; }
.ws-root .ws-video { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; background: #111; border-radius: var(--ws-radius, 8px); }
.ws-root .ws-video-disclosure { font-weight: 700; margin-top: 1rem; }
.ws-root .ws-video:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }

/* Calendar month view is an enhancement of the existing full event list. */
.ws-block-calendar .ws-calendar-navigation { justify-content: space-between; gap: 12px; }
.ws-calendar-navigation h3 { flex: 1 1 12rem; margin: 0; font-size: 1.3rem; text-align: center; }
.ws-calendar-grid-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--ws-line); border-radius: var(--ws-radius); }
.ws-calendar-grid-scroll:focus-visible, .ws-calendar-grid-event:focus-visible, .ws-block-calendar .ws-event:focus-visible { outline: 3px solid var(--ws-accent); outline-offset: 3px; }
.ws-calendar-grid { width: 100%; min-width: 840px; table-layout: fixed; border-collapse: collapse; background: var(--ws-surface); }
.ws-calendar-grid th { padding: 12px 8px; font-size: .9rem; text-align: center; border-bottom: 1px solid var(--ws-line); }
.ws-calendar-grid th abbr { text-decoration: none; }
.ws-calendar-grid td { height: 128px; vertical-align: top; padding: 8px; border: 1px solid var(--ws-line); }
.ws-calendar-grid td h4 { margin: 0 0 8px; font-size: 1rem; }
.ws-calendar-grid-padding { background: color-mix(in srgb, var(--ws-line) 22%, var(--ws-surface)); }
.ws-calendar-grid-today h4 time { display: inline-block; min-width: 28px; padding: 2px 6px; border-radius: 999px; background: var(--ws-accent); color: var(--ws-on-accent, #fff); text-align: center; }
.ws-calendar-grid-events { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ws-calendar-grid-event { display: block; min-height: 44px; padding: 7px; border: 1px solid var(--ws-line); border-radius: 6px; overflow-wrap: anywhere; font-size: .9rem; line-height: 1.35; }
.ws-calendar-grid-event-time { display: block; margin-top: 5px; font-size: .8rem; }
.ws-calendar-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@container ws (max-width: 760px) { .ws-block-calendar .ws-calendar-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .ws-calendar-navigation h3 { grid-column: 1 / -1; grid-row: 1; } .ws-calendar-navigation [data-wovo-calendar-move="today"] { grid-column: 1 / -1; justify-self: start; } }
@container ws (min-width: 761px) { .ws-calendar-scroll-hint { display: none; } }
@media print { .ws-block-calendar .ws-calendar-month-view { display: none !important; } .ws-block-calendar .ws-calendar-list[hidden], .ws-block-calendar .ws-calendar-list [hidden] { display: block !important; } }

/* Calendar events read as a clear agenda: a date badge, then when, what and where. */
.ws-block-calendar .ws-calendar-events { grid-template-columns: minmax(0, 1fr); gap: 14px; max-width: 860px; }
.ws-block-calendar .ws-event { padding: 20px 22px; }
.ws-block-calendar .ws-event > article { display: flex; gap: 20px; align-items: flex-start; }
.ws-block-calendar .ws-event-date { flex: none; width: 68px; padding: 8px 0 9px; border-radius: calc(var(--ws-radius) * .75); background: var(--ws-accent); color: var(--ws-on-accent, #fff); text-align: center; display: flex; flex-direction: column; line-height: 1.15; }
.ws-block-calendar .ws-event-date span { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.ws-block-calendar .ws-event-date strong { font-size: 1.7rem; font-weight: 800; }
.ws-block-calendar .ws-event-body { min-width: 0; flex: 1; }
.ws-block-calendar .ws-event-when { display: block; margin: 0 0 4px !important; font-size: .82rem; letter-spacing: .04em; }
.ws-block-calendar .ws-event h4 { margin: 0 0 8px; font-size: 1.3rem; }
.ws-block-calendar .ws-event-status { margin: 0 0 10px; padding: 2px 10px; font-size: .78rem; }

.ws-block-calendar .ws-event-location { font-weight: 600; }
.ws-block-calendar .ws-button-small { margin-top: 12px; }
@container ws (max-width: 520px) { .ws-block-calendar .ws-event > article { gap: 14px; } .ws-block-calendar .ws-event-date { width: 56px; } .ws-block-calendar .ws-event-date strong { font-size: 1.4rem; } }
/* Simple event cards: room to breathe and a "when" line that fits on one row. */
.ws-events { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.ws-events .ws-event-when { letter-spacing: .05em; font-size: 12.5px; }
.ws-events .ws-event h3 { font-size: 20px; line-height: 1.25; }
.ws-block-calendar .ws-event-status { text-transform: uppercase; letter-spacing: .06em; }
.ws-block-calendar .ws-event-past .ws-event-status { background: var(--ws-text); color: var(--ws-bg, #fff); border-color: var(--ws-text); }
.ws-block-calendar .ws-event-past .ws-event-date { background: var(--ws-muted); }
.ws-block-calendar .ws-event-upcoming .ws-event-status, .ws-block-calendar .ws-event-current .ws-event-status { color: var(--ws-accent-text); }

/* Link lists read as action cards: what it is, then one clear button. */
.ws-links { grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 18px; }
.ws-links > li { display: flex; flex-direction: column; gap: 14px; padding: 22px; border: 1px solid var(--ws-line); border-radius: var(--ws-radius); background: var(--ws-surface); }
.ws-links > li .ws-note { order: -1; margin: 0 !important; font-size: 1rem; color: var(--ws-text); line-height: 1.5; }
.ws-links > li .ws-button { margin-top: auto; }
/* A gallery with only a few photos fills the row instead of leaving a gap. */
.ws-gallery:has(> li:nth-child(2):last-child) { columns: 2; }
.ws-gallery:has(> li:first-child:last-child) { columns: 1; max-width: 760px; }
.ws-block-calendar .ws-calendar-events { max-width: none; }
@container ws (min-width: 900px) { .ws-block-calendar .ws-calendar-events:has(> li:nth-child(2)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* The live page marks each event's state on the element itself, so a finished event is styled the moment it ends. */
.ws-block-calendar .ws-event[data-wovo-event-state="past"] .ws-event-status { background: var(--ws-text); color: var(--ws-bg, #fff); border-color: var(--ws-text); }
.ws-block-calendar .ws-event[data-wovo-event-state="past"] .ws-event-date { background: var(--ws-muted); }
.ws-block-calendar .ws-event[data-wovo-event-state="upcoming"] .ws-event-status, .ws-block-calendar .ws-event[data-wovo-event-state="current"] .ws-event-status { color: var(--ws-accent-text); }

/* Giving buttons (owner request, October 6, 2026). A button that opens a giving page, or is labelled as a donation, is
   made to be seen: larger, heavier, with a heart and a soft ring in the site's own accent color. Appended, so nothing
   above changes. The heart beats three times when the page opens and then rests. */
.ws-button-give { font-size: 18px; font-weight: 800; min-height: 56px; padding: 14px 30px; box-shadow: 0 10px 24px rgba(0, 0, 0, .18); }
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .ws-button-give { box-shadow: 0 0 0 5px color-mix(in srgb, var(--ws-accent) 26%, transparent), 0 12px 26px color-mix(in srgb, var(--ws-accent) 34%, transparent); }
}
.ws-button-give.ws-button-small { font-size: 16px; min-height: 46px; padding: 10px 20px; }
/* In the hero the accent can be the background itself, so there the button takes the hero's text color, and its label is
   forced to plain black or white against it, whichever the theme makes readable. */
.ws-block-hero .ws-button-give { background: var(--ws-hero-text); border-color: var(--ws-hero-text); color: var(--ws-hero-text) !important; box-shadow: 0 12px 26px rgba(0, 0, 0, .28); }
.ws-block-hero .ws-button-give > * { filter: invert(1) grayscale(1) contrast(100); }
.ws-button-give .ws-icon { animation: ws-give-beat 1.8s ease-in-out 3; }
@keyframes ws-give-beat { 0%, 60%, 100% { scale: 1; } 30% { scale: 1.22; } }
@media (prefers-reduced-motion: reduce) { .ws-button-give .ws-icon { animation: none; } }

/* Section colors (owner request, October 6, 2026). An owner may give one section a color from a fixed list. Each
   color sets the section's own background and a readable text color, and the buttons, cards, lines and form fields
   inside follow it. Appended, so nothing above changes; a section with no color chosen is untouched. */
.ws-root .ws-tone { --ws-tone-text: #ffffff; --ws-tone-muted: rgba(255, 255, 255, .88); --ws-tone-line: rgba(255, 255, 255, .3); --ws-tone-surface: rgba(255, 255, 255, .1); }
.ws-root .ws-tone-accent { --ws-tone-bg: var(--ws-accent); --ws-tone-text: var(--ws-on-accent); --ws-tone-muted: var(--ws-on-accent); }
.ws-root .ws-tone-dark { --ws-tone-bg: #17191c; }
.ws-root .ws-tone-red { --ws-tone-bg: #9b2c1f; }
.ws-root .ws-tone-green { --ws-tone-bg: #1f5d3a; }
.ws-root .ws-tone-blue { --ws-tone-bg: #1b4f7a; }
.ws-root .ws-tone-teal { --ws-tone-bg: #0f6466; }
.ws-root .ws-tone-purple { --ws-tone-bg: #56358a; }
.ws-root .ws-tone-gold { --ws-tone-bg: #f2c230; --ws-tone-text: #1c1a12; --ws-tone-muted: #3a3521; --ws-tone-line: rgba(28, 26, 18, .28); --ws-tone-surface: rgba(255, 255, 255, .55); }
.ws-root .ws-tone-light { --ws-tone-bg: #ffffff; --ws-tone-text: #18211c; --ws-tone-muted: #4d5852; --ws-tone-line: #d9ded9; --ws-tone-surface: #f4f6f4; }
.ws-root .ws-tone-soft { --ws-tone-bg: var(--ws-accent-soft); }
/* A call to action is a box, so its color is the box's color. */
.ws-root .ws-block-cta.ws-tone:not(.ws-tone-soft) { --ws-band-bg: var(--ws-tone-bg); --ws-band-text: var(--ws-tone-text); }
.ws-root .ws-block-cta.ws-tone-soft { --ws-band-bg: var(--ws-accent-soft); --ws-band-text: var(--ws-text); }
.ws-root .ws-section.ws-tone-soft:not(.ws-block-cta) { background: var(--ws-accent-soft); }
.ws-root .ws-section.ws-tone:not(.ws-tone-soft):not(.ws-block-cta) { background: var(--ws-tone-bg); color: var(--ws-tone-text);
  --ws-bg: var(--ws-tone-bg); --ws-text: var(--ws-tone-text); --ws-muted: var(--ws-tone-muted); --ws-line: var(--ws-tone-line); --ws-surface: var(--ws-tone-surface);
  --ws-accent-text: var(--ws-tone-text); --ws-band-bg: var(--ws-tone-bg); --ws-band-text: var(--ws-tone-text);
  --ws-hero-bg: var(--ws-tone-bg); --ws-hero-text: var(--ws-tone-text); --ws-hero-muted: var(--ws-tone-muted); }
.ws-root .ws-section.ws-tone:not(.ws-tone-soft):not(.ws-block-cta) .ws-button:not(.ws-button-quiet):not(.ws-button-inverse) { background: var(--ws-tone-text); border-color: var(--ws-tone-text); color: var(--ws-tone-bg) !important; }
.ws-root .ws-section.ws-tone:not(.ws-tone-soft):not(.ws-block-cta) .ws-button-give > * { filter: none; }
.ws-root .ws-section.ws-tone:not(.ws-tone-soft) input, .ws-root .ws-section.ws-tone:not(.ws-tone-soft) select, .ws-root .ws-section.ws-tone:not(.ws-tone-soft) textarea { background: #ffffff; color: #18211c; border-color: var(--ws-tone-line); }
/* The owner's own background and text colors for a section arrive from tones.css; the softer shades are worked out here. */
.ws-root .ws-tone-custom { --ws-tone-muted: var(--ws-tone-text); --ws-tone-line: var(--ws-tone-text); --ws-tone-surface: transparent; }
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .ws-root .ws-tone-custom { --ws-tone-muted: color-mix(in srgb, var(--ws-tone-text) 88%, var(--ws-tone-bg)); --ws-tone-line: color-mix(in srgb, var(--ws-tone-text) 30%, transparent); --ws-tone-surface: color-mix(in srgb, var(--ws-tone-text) 9%, transparent); }
}
/* Maison design: cream and wine with a fine serif. Numbered price cards, a soft call-to-action card, a dark footer. */
.ws-root.ws-preset-maison {
  --ws-bg: #fdfbf7; --ws-surface: #f5ece4; --ws-text: #2a2022; --ws-muted: #6b5d5f; --ws-line: #eadfd5;
  --ws-accent: #9b1b2a; --ws-accent-soft: #f7e9e6; --ws-on-accent: #ffffff; --ws-accent-text: #8f1826;
  --ws-display: "WOVO Cormorant", "Cormorant Garamond", Garamond, "Times New Roman", serif; --ws-display-weight: 600; --ws-display-spacing: 0;
  --ws-radius: 18px; --ws-button-radius: 999px;
  --ws-header-bg: rgba(253, 251, 247, .95); --ws-hero-bg: linear-gradient(135deg, #f8efe8 0%, #fdfbf7 58%, #f5e6e2 100%); --ws-hero-text: #2a2022; --ws-hero-muted: #6b5d5f;
  --ws-band-bg: #f5ece4; --ws-band-text: #2a2022;
}
.ws-preset-maison .ws-display { font-size: clamp(44px, 7.2cqi, 82px); line-height: 1.04; }
.ws-preset-maison .ws-heading { font-size: clamp(34px, 4.8cqi, 52px); line-height: 1.08; }
.ws-preset-maison .ws-em { font-style: italic; color: var(--ws-accent-text); }
.ws-preset-maison .ws-eyebrow { letter-spacing: .28em; font-weight: 600; font-size: 12px; }
.ws-preset-maison .ws-button { text-transform: uppercase; letter-spacing: .14em; font-size: 13px; box-shadow: 0 10px 24px rgba(155, 27, 42, .2); }
.ws-preset-maison .ws-button-quiet { box-shadow: none; border-width: 1px; color: var(--ws-text) !important; border-color: var(--ws-text); }
.ws-preset-maison .ws-header-call { display: inline-flex; font-weight: 600; font-size: 15px; }
.ws-preset-maison .ws-brand-has-logo .ws-brand-name { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ws-preset-maison .ws-logo { max-width: 200px; }
.ws-preset-maison .ws-gallery-img { border-radius: 18px; }
/* Split photo hero under an arch. */
.ws-preset-maison .ws-hero-media { min-height: 0; display: block; --ws-hero-text: var(--ws-text); --ws-hero-muted: var(--ws-muted); }
.ws-preset-maison .ws-hero-media .ws-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
.ws-preset-maison .ws-hero-media .ws-hero-art { position: relative; inset: auto; aspect-ratio: 3 / 4; border-radius: 999px 999px 24px 24px; overflow: hidden; }
.ws-preset-maison .ws-hero-media .ws-hero-art::after { display: none; }
/* A later welcome banner with a picture is a wine feature band; its picture is shown whole. */
.ws-preset-maison .ws-block-hero:has(h2.ws-display) { background: linear-gradient(135deg, #9b1b2a 0%, #7d1522 68%, #8f2433 100%); --ws-hero-text: #ffffff; --ws-hero-muted: #f3dede; padding: clamp(64px, 9cqi, 120px) 0; }
.ws-preset-maison .ws-block-hero:has(h2.ws-display) .ws-display { font-size: clamp(38px, 5.4cqi, 60px); margin-bottom: 14px !important; }
.ws-preset-maison .ws-block-hero:has(h2.ws-display) .ws-em { color: inherit; font-style: normal; }
.ws-preset-maison .ws-block-hero:has(h2.ws-display) .ws-eyebrow { color: #ffffff; }
.ws-preset-maison .ws-block-hero:has(h2.ws-display) .ws-lead:first-of-type { font-family: var(--ws-display); font-weight: 500; font-size: clamp(24px, 3cqi, 34px); line-height: 1.25; color: #ffffff; max-width: 15em; }
.ws-preset-maison .ws-block-hero:has(h2.ws-display) .ws-lead + .ws-lead { font-size: 17px; max-width: 26em; }
.ws-preset-maison .ws-block-hero:has(h2.ws-display) .ws-button { background: #ffffff; color: #7d1522 !important; border-color: #ffffff; box-shadow: none; }
.ws-preset-maison .ws-block-hero:has(h2.ws-display) .ws-button-quiet { background: transparent; color: #ffffff !important; }
.ws-preset-maison .ws-block-hero:has(h2.ws-display) .ws-hero-art { aspect-ratio: auto; border-radius: 0; overflow: visible; }
.ws-preset-maison .ws-block-hero:has(h2.ws-display) .ws-hero-img { height: auto; object-fit: contain; filter: drop-shadow(0 26px 34px rgba(40, 6, 12, .35)); }
/* Services as numbered price cards. In a list of three or four, the last card is the featured one. */
.ws-preset-maison .ws-service-list { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; counter-reset: ws-maison-service; }
.ws-preset-maison .ws-service { counter-increment: ws-maison-service; display: flex; flex-direction: column; padding: 26px 24px 30px; background: #fffdfa; border: 1px solid var(--ws-line); border-radius: 16px; }
.ws-preset-maison .ws-service::before { content: counter(ws-maison-service, decimal-leading-zero); margin-bottom: 34px; font-family: var(--ws-display); font-style: italic; font-size: 16px; color: #9a8468; }
.ws-preset-maison .ws-service-head { flex-direction: column; align-items: flex-start; gap: 14px; padding-bottom: 18px; margin-bottom: 14px; border-bottom: 1px solid var(--ws-line); }
.ws-preset-maison .ws-service-head:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.ws-preset-maison .ws-service h3 { flex: none; font-family: var(--ws-display); font-weight: 600; font-size: 27px; line-height: 1.15; }
.ws-preset-maison .ws-service .ws-price { font-family: var(--ws-display); font-weight: 600; font-size: 34px; line-height: 1; white-space: normal; }
.ws-preset-maison .ws-service p { font-size: 15px; line-height: 1.65; }
.ws-preset-maison .ws-service-list:has(> .ws-service:nth-child(3)):not(:has(> .ws-service:nth-child(5))) > .ws-service:last-child {
  background: linear-gradient(160deg, #9b1b2a, #7a1420); border-color: #7a1420; color: #ffffff; box-shadow: 0 24px 40px rgba(122, 20, 32, .28); }
.ws-preset-maison .ws-service-list:has(> .ws-service:nth-child(3)):not(:has(> .ws-service:nth-child(5))) > .ws-service:last-child h3 { color: #ffffff; }
.ws-preset-maison .ws-service-list:has(> .ws-service:nth-child(3)):not(:has(> .ws-service:nth-child(5))) > .ws-service:last-child .ws-price { color: #ffffff; }
.ws-preset-maison .ws-service-list:has(> .ws-service:nth-child(3)):not(:has(> .ws-service:nth-child(5))) > .ws-service:last-child p { color: #ffffff; }
.ws-preset-maison .ws-service-list:has(> .ws-service:nth-child(3)):not(:has(> .ws-service:nth-child(5))) > .ws-service:last-child::before { color: #f0cfd2; }
.ws-preset-maison .ws-service-list:has(> .ws-service:nth-child(3)):not(:has(> .ws-service:nth-child(5))) > .ws-service:last-child .ws-service-head { border-bottom-color: rgba(255, 255, 255, .28); }
/* A checklist is one soft card with round icons. */
.ws-preset-maison .ws-features-checks .ws-heading { font-style: italic; font-weight: 500; }
.ws-preset-maison .ws-features-checks .ws-heading .ws-em { color: inherit; }
.ws-preset-maison .ws-features-checks .ws-features { gap: 22px 32px; padding: clamp(24px, 4cqi, 44px); background: var(--ws-surface); border: 1px solid var(--ws-line); border-radius: 24px; }
.ws-preset-maison .ws-features-checks .ws-feature { align-items: center; gap: 16px; padding: 0; border: 0; }
.ws-preset-maison .ws-features-checks .ws-feature > .ws-icon { width: 44px; height: 44px; margin: 0; padding: 12px; border-radius: 50%; background: #fffdfa; box-shadow: 0 2px 8px rgba(42, 32, 34, .06); }
.ws-preset-maison .ws-features-checks .ws-feature h3 { font-size: 17px; margin-bottom: 2px !important; }
/* Announcement: a quiet wine strip. Call to action: a cream card with a fine inner line. */
.ws-preset-maison .ws-banner { background: linear-gradient(135deg, #9b1b2a, #7d1522); }
.ws-preset-maison .ws-banner .ws-button { box-shadow: none; }
.ws-preset-maison .ws-block-cta { background: var(--ws-bg); padding: clamp(36px, 6cqi, 76px) 24px; }
.ws-preset-maison .ws-cta-band { padding: clamp(44px, 7cqi, 88px) 24px; background: var(--ws-surface); border-radius: 28px; outline: 1px solid #e6d8cc; outline-offset: -14px; }
.ws-preset-maison .ws-block-cta p { color: var(--ws-muted); opacity: 1; font-size: 19px; }
.ws-preset-maison .ws-block-cta p:nth-of-type(2) { order: 3; margin-top: 24px; font-family: var(--ws-display); font-style: italic; font-size: 21px; color: var(--ws-accent-text); }
.ws-preset-maison .ws-block-cta .ws-button-inverse { background: var(--ws-accent); color: #ffffff !important; border-color: var(--ws-accent); }
.ws-preset-maison .ws-footer { --ws-text: #ffffff; --ws-muted: #cfc4c0; --ws-line: rgba(255, 255, 255, .16); --ws-accent-text: #f3d3d3; background: #221c1c; border-top: 0; }
.ws-preset-maison .ws-footer a { color: #ffffff; }
@container ws (max-width: 760px) {
  .ws-preset-maison .ws-hero-media .ws-hero-grid { grid-template-columns: minmax(0, 1fr); }
  .ws-preset-maison .ws-hero-media .ws-hero-art { max-width: 420px; }
  .ws-preset-maison .ws-service::before { margin-bottom: 18px; }
  .ws-preset-maison .ws-cta-band { outline-offset: -10px; }
  .ws-preset-maison .ws-features-checks .ws-features { grid-template-columns: minmax(0, 1fr); padding: 22px 18px; }
}
/* Supper design: cream, near-black and deep red with slab headlines. A dark menu board, white review cards, a red call-to-action band. */
.ws-root.ws-preset-supper {
  --ws-bg: #f4f0ea; --ws-surface: #ffffff; --ws-text: #1a1213; --ws-muted: #5d4f4c; --ws-line: #e2d8d0;
  --ws-accent: #b3141b; --ws-accent-soft: #f6e4e2; --ws-on-accent: #ffffff; --ws-accent-text: #9c1017;
  --ws-display: "WOVO Bitter", Rockwell, "Roboto Slab", Georgia, serif; --ws-display-weight: 700; --ws-display-spacing: -0.01em;
  --ws-radius: 16px; --ws-button-radius: 999px;
  --ws-header-bg: rgba(244, 240, 234, .96); --ws-hero-bg: radial-gradient(ellipse at 78% 40%, #efe4dd 0%, #f4f0ea 62%); --ws-hero-text: #1a1213; --ws-hero-muted: #3f3331;
  --ws-band-bg: #8f0f16; --ws-band-text: #ffffff;
}
.ws-preset-supper .ws-display { font-size: clamp(42px, 7cqi, 80px); line-height: 1.04; max-width: 11ch; }
.ws-preset-supper .ws-heading { font-size: clamp(30px, 4.4cqi, 46px); line-height: 1.1; }
.ws-preset-supper .ws-button { font-size: 15px; box-shadow: 0 8px 20px rgba(179, 20, 27, .18); }
.ws-preset-supper .ws-button-quiet { background: #ffffff; color: var(--ws-text) !important; border: 1px solid #cfc3ba; box-shadow: none; }
.ws-preset-supper .ws-header-call { display: inline-flex; font-weight: 600; font-size: 15px; }
.ws-preset-supper .ws-logo { height: 58px; max-width: 120px; }
.ws-preset-supper .ws-brand-has-logo .ws-brand-name { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ws-preset-supper .ws-nav a { font-weight: 650; opacity: 1; }
/* The welcome picture is shown whole beside the words, never cropped or covered. */
.ws-preset-supper .ws-hero-media { min-height: 0; display: block; --ws-hero-text: #1a1213; --ws-hero-muted: #3f3331; }
.ws-preset-supper .ws-hero-media .ws-hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.ws-preset-supper .ws-hero-media .ws-hero-art { position: relative; inset: auto; max-width: 440px; justify-self: center; }
.ws-preset-supper .ws-hero-media .ws-hero-art::after { display: none; }
.ws-preset-supper .ws-hero-media .ws-hero-img { height: auto; object-fit: contain; filter: drop-shadow(0 22px 30px rgba(60, 20, 16, .22)); }
.ws-preset-supper .ws-block-hero .ws-eyebrow { display: inline-block; padding: 7px 14px; background: #ffffff; border: 1px solid var(--ws-line); border-radius: 999px; letter-spacing: .04em; text-transform: none; font-size: 13px; opacity: 1; }
.ws-preset-supper .ws-block-hero .ws-lead { color: #2a1f1e; max-width: 26em; }
/* A checklist is a dark strip of short words. Highlight cards are a dark menu board. */
.ws-preset-supper .ws-features-checks { --ws-text: #ffffff; --ws-muted: #d7ccc7; --ws-line: rgba(255, 255, 255, .14); padding: 26px 0; background: #1b1617; color: #ffffff; border-top: 0 !important; }
.ws-preset-supper .ws-features-checks .ws-heading { font-size: 22px; text-align: center; margin-bottom: 14px !important; }
.ws-preset-supper .ws-features-checks .ws-intro { margin-left: auto; margin-right: auto; text-align: center; }
.ws-preset-supper .ws-features-checks .ws-features { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px; margin-top: 0; }
.ws-preset-supper .ws-features-checks .ws-heading + .ws-features { margin-top: 8px; }
.ws-preset-supper .ws-features-checks .ws-feature { align-items: center; gap: 12px; padding: 0; border: 0; }
.ws-preset-supper .ws-features-checks .ws-feature > .ws-icon { width: 9px; height: 9px; margin: 0; padding: 0; background: #e0363d; border-radius: 1px; transform: rotate(45deg); fill: #e0363d; }
.ws-preset-supper .ws-features-checks .ws-feature h3 { font-family: var(--ws-display); font-size: 21px; margin: 0 !important; }
.ws-preset-supper .ws-features-cards { --ws-text: #ffffff; --ws-muted: #cfc4bf; --ws-line: rgba(255, 255, 255, .16); --ws-accent-text: #ff5a60; background: radial-gradient(ellipse at 15% 100%, #2b1a17 0%, #141011 55%); color: #ffffff; text-align: center; border-top: 0 !important; }
.ws-preset-supper .ws-features-cards .ws-intro { margin-left: auto; margin-right: auto; }
.ws-preset-supper .ws-features-cards .ws-features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; max-width: 820px; margin-left: auto; margin-right: auto; text-align: left; }
.ws-preset-supper .ws-features-cards .ws-feature { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 18px 0; background: none; border: 0; border-top: 1px solid var(--ws-line); border-radius: 0; }
.ws-preset-supper .ws-features-cards .ws-feature > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; width: 100%; }
.ws-preset-supper .ws-features-cards .ws-feature h3 { font-family: var(--ws-display); font-size: 25px; margin: 0 !important; }
.ws-preset-supper .ws-features-cards .ws-feature p { color: var(--ws-accent-text); font-size: 14px; font-weight: 600; }
.ws-preset-supper .ws-features-steps .ws-feature { background: #ffffff; }
/* Reviews: white cards on a warm tint. */
.ws-preset-supper .ws-block-testimonials { background: #ebe2dc; }
.ws-preset-supper .ws-quotes { gap: 18px; }
.ws-preset-supper .ws-quote { background: #ffffff; border: 1px solid #e3d8d0; box-shadow: 0 6px 18px rgba(60, 30, 20, .05); }
.ws-preset-supper .ws-quote:first-child { background: #171213; border-color: #171213; color: #ffffff; }
.ws-preset-supper .ws-quote:first-child .ws-quote-author { color: #d7ccc7; }
.ws-preset-supper .ws-quote-author { font-weight: 700; }
/* Announcement: a dark card. Call to action: a deep red band. */
.ws-preset-supper .ws-banner { padding: 0 24px; margin: 56px 0; background: none; }
.ws-preset-supper .ws-banner-row { flex-direction: column; align-items: flex-start; gap: 22px; padding: clamp(28px, 5cqi, 52px); background: radial-gradient(ellipse at 20% 110%, #2b1a17 0%, #141011 60%); color: #ffffff; border-radius: 22px; }
.ws-preset-supper .ws-banner-title { font-size: clamp(30px, 4.4cqi, 46px); }
.ws-preset-supper .ws-banner-body { color: #e6dcd7; max-width: 34em; }
.ws-preset-supper .ws-banner .ws-button-inverse { background: var(--ws-accent); color: #ffffff !important; border-color: var(--ws-accent); }
.ws-preset-supper .ws-block-cta { background: linear-gradient(120deg, #8f0f16 0%, #7a0b12 60%, #96222a 100%); }
.ws-preset-supper .ws-block-cta .ws-button-inverse { background: #ffffff; color: #8f0f16 !important; border-color: #ffffff; box-shadow: none; }
.ws-preset-supper .ws-links > li { background: #ffffff; }
.ws-preset-supper .ws-block-contact { background: #ffffff; }
.ws-preset-supper .ws-footer { --ws-text: #ffffff; --ws-muted: #cfc4bf; --ws-line: rgba(255, 255, 255, .14); --ws-accent-text: #ff7a7f; background: #100c0d; border-top: 0; }
.ws-preset-supper .ws-footer a { color: #ffffff; }
.ws-preset-supper .ws-footer .ws-label { color: #ff7a7f; }
@container ws (max-width: 760px) {
  .ws-preset-supper .ws-hero-media .ws-hero-grid { grid-template-columns: minmax(0, 1fr); }
  .ws-preset-supper .ws-hero-media .ws-hero-art { max-width: 260px; }
  .ws-preset-supper .ws-features-cards .ws-features { grid-template-columns: minmax(0, 1fr); }
  .ws-preset-supper .ws-banner { padding: 0 16px; margin: 36px 0; }
  .ws-preset-supper .ws-logo { height: 46px; }
}
/* Pipeline design: navy with a blueprint grid and steel blue. A stat row under the welcome banner, service rows, numbered stages, spec tables. */
.ws-root.ws-preset-pipeline {
  --ws-bg: #ffffff; --ws-surface: #eef2f5; --ws-text: #0f2233; --ws-muted: #4a5d6e; --ws-line: #d9e1e8;
  --ws-accent: #1b6a94; --ws-accent-soft: #e6f1f7; --ws-on-accent: #ffffff; --ws-accent-text: #17628a;
  --ws-display: "WOVO Archivo", "Arial Black", Helvetica, sans-serif; --ws-display-weight: 800; --ws-display-spacing: -0.02em;
  --ws-radius: 6px; --ws-button-radius: 4px;
  --ws-header-bg: rgba(255, 255, 255, .97); --ws-hero-bg: #0f2740; --ws-hero-text: #ffffff; --ws-hero-muted: #cfdbe6;
  --ws-band-bg: #0f2740; --ws-band-text: #ffffff;
}
.ws-preset-pipeline .ws-display { font-size: clamp(38px, 6cqi, 66px); line-height: 1.06; max-width: 13ch; }
.ws-preset-pipeline .ws-heading { font-size: clamp(28px, 3.8cqi, 40px); line-height: 1.12; max-width: 18ch; }
.ws-preset-pipeline .ws-button { font-size: 15px; }
.ws-preset-pipeline .ws-header-call { display: inline-flex; font-weight: 700; font-size: 15px; color: var(--ws-accent-text) !important; }
.ws-preset-pipeline .ws-brand-has-logo .ws-brand-name { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ws-preset-pipeline .ws-logo { height: 50px; max-width: 150px; }
.ws-preset-pipeline .ws-nav a { font-weight: 650; opacity: 1; }
/* Blueprint grid behind the welcome banner, the page title and the team. */
.ws-preset-pipeline .ws-block-hero { padding: clamp(72px, 9cqi, 120px) 0; background-color: #0f2740; background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: 44px 44px; }
.ws-preset-pipeline .ws-block-hero .ws-eyebrow { color: #8fc4e0; opacity: 1; }
.ws-preset-pipeline .ws-block-hero .ws-lead { max-width: 30em; }
.ws-preset-pipeline .ws-block-hero .ws-button-quiet { border-width: 1px; border-color: rgba(255, 255, 255, .6); }
.ws-preset-pipeline .ws-page-head { background-color: #0f2740; background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: 44px 44px; border-bottom: 0; color: #ffffff; }
.ws-preset-pipeline .ws-page-head .ws-eyebrow { color: #8fc4e0; }
/* Highlight cards carry a pale blue top line. Straight under the welcome banner they are a stat row. */
.ws-preset-pipeline .ws-features-cards .ws-features { gap: 28px 24px; }
.ws-preset-pipeline .ws-features-cards .ws-feature { padding: 16px 0 0; background: none; border: 0; border-top: 2px solid #a9d3e8; border-radius: 0; }
.ws-preset-pipeline .ws-features-cards .ws-feature h3 { font-size: 17px; line-height: 1.25; }
.ws-preset-pipeline .ws-features-cards .ws-feature p { font-size: 14.5px; }
.ws-preset-pipeline .ws-block-hero + .ws-features-cards { padding: 0; border-bottom: 1px solid var(--ws-line); }
.ws-preset-pipeline .ws-block-hero + .ws-features-cards .ws-heading { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ws-preset-pipeline .ws-block-hero + .ws-features-cards .ws-features { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0; margin-top: 0; }
.ws-preset-pipeline .ws-block-hero + .ws-features-cards .ws-feature { padding: 26px 24px 28px 0; border-top: 0; }
.ws-preset-pipeline .ws-block-hero + .ws-features-cards .ws-feature + .ws-feature { padding-left: 24px; border-left: 1px solid var(--ws-line); }
.ws-preset-pipeline .ws-block-hero + .ws-features-cards .ws-feature h3 { font-family: var(--ws-display); font-size: 26px; }
/* Services are rows with a fine rule. */
.ws-preset-pipeline .ws-service-list { gap: 0 48px; border-top: 1px solid var(--ws-line); }
.ws-preset-pipeline .ws-service { padding: 20px 0 22px; }
.ws-preset-pipeline .ws-service h3 { font-size: 18px; font-weight: 750; }
/* Steps are numbered stages on a dashed line. */
.ws-preset-pipeline .ws-features-steps { background: var(--ws-surface); }
.ws-preset-pipeline .ws-features-steps .ws-features { grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: 26px 0; }
.ws-preset-pipeline .ws-features-steps .ws-feature { position: relative; padding: 0 10px; background: none; border: 0; border-radius: 0; text-align: center; }
.ws-preset-pipeline .ws-features-steps .ws-feature::before { position: relative; z-index: 1; width: 38px; height: 38px; margin: 0 auto 12px; background: #ffffff; color: var(--ws-accent-text); border: 2px solid var(--ws-accent); font-weight: 800; font-size: 15px; }
.ws-preset-pipeline .ws-features-steps .ws-feature:first-child::before { background: var(--ws-accent); color: #ffffff; }
.ws-preset-pipeline .ws-features-steps .ws-feature::after { content: ""; position: absolute; top: 19px; left: 0; right: 0; border-top: 2px dashed #8fbdd6; }
.ws-preset-pipeline .ws-features-steps .ws-feature h3 { font-size: 14.5px; line-height: 1.3; }
.ws-preset-pipeline .ws-features-steps .ws-feature p { font-size: 13.5px; }
/* A checklist is a spec table. */
.ws-preset-pipeline .ws-features-checks .ws-features { grid-template-columns: minmax(0, 1fr); gap: 0; max-width: 760px; background: #ffffff; border: 1px solid var(--ws-line); border-top: 4px solid #0f2740; border-radius: 6px; box-shadow: 0 10px 26px rgba(15, 39, 64, .08); }
.ws-preset-pipeline .ws-features-checks .ws-feature { padding: 16px 20px; border-bottom: 1px solid var(--ws-line); }
.ws-preset-pipeline .ws-features-checks .ws-feature:last-child { border-bottom: 0; }
.ws-preset-pipeline .ws-features-checks .ws-feature > .ws-icon { width: 18px; height: 18px; margin-top: 3px; }
.ws-preset-pipeline .ws-features-checks .ws-feature > div { display: grid; grid-template-columns: minmax(150px, .8fr) minmax(0, 1.6fr); gap: 4px 20px; width: 100%; }
.ws-preset-pipeline .ws-features-checks .ws-feature h3 { font-size: 16px; margin: 0 !important; }
/* The team sits on navy. */
.ws-preset-pipeline .ws-block-people { --ws-text: #ffffff; --ws-muted: #cfdbe6; --ws-line: rgba(255, 255, 255, .16); --ws-accent-text: #7fc1e3; background-color: #0f2740; background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: 44px 44px; color: #ffffff; border-top: 0 !important; }
.ws-preset-pipeline .ws-person { background: rgba(255, 255, 255, .04); }
.ws-preset-pipeline .ws-links > li { background: #ffffff; }
.ws-preset-pipeline .ws-button-block.ws-button { background: #ffffff; color: var(--ws-accent-text) !important; border: 1px solid #b9c7d3; }
/* Call to action: a navy-to-blue band with the button beside the words. */
.ws-preset-pipeline .ws-block-cta { background: linear-gradient(100deg, #0f2740 0%, #14415f 100%); text-align: left; }
.ws-preset-pipeline .ws-cta-band { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 40px; }
.ws-preset-pipeline .ws-cta-band .ws-heading { grid-column: 1; max-width: none; margin-bottom: 6px !important; }
.ws-preset-pipeline .ws-cta-band p { grid-column: 1; margin: 0; }
.ws-preset-pipeline .ws-cta-band .ws-actions { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; }
.ws-preset-pipeline .ws-block-cta .ws-button-inverse { background: #ffffff; color: #0f2740 !important; border-color: #ffffff; }
.ws-preset-pipeline .ws-footer { --ws-text: #ffffff; --ws-muted: #c3d2df; --ws-line: rgba(255, 255, 255, .14); --ws-accent-text: #7fc1e3; background: #0b1d30; border-top: 0; }
.ws-preset-pipeline .ws-footer a { color: #ffffff; }
@container ws (max-width: 760px) {
  .ws-preset-pipeline .ws-cta-band { grid-template-columns: minmax(0, 1fr); }
  .ws-preset-pipeline .ws-cta-band .ws-actions { grid-column: 1; grid-row: auto; margin-top: 18px; }
  .ws-preset-pipeline .ws-block-hero + .ws-features-cards .ws-feature { padding: 18px 12px 18px 0; }
  .ws-preset-pipeline .ws-block-hero + .ws-features-cards .ws-feature + .ws-feature { padding-left: 12px; }
  .ws-preset-pipeline .ws-features-checks .ws-feature > div { grid-template-columns: minmax(0, 1fr); }
  .ws-preset-pipeline .ws-features-steps .ws-features { grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }
}
/* Notice above the header of a site nobody has paid hosting for. */
.ws-hosting-notice { background: #15171c; color: #f5f6f8; padding: 10px 20px; text-align: center; font-size: 14px; line-height: 1.5; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.ws-hosting-notice p { margin: 0 auto !important; max-width: 70em; }
.ws-hosting-notice strong { font-weight: 700; color: #ffffff; }
.ws-hosting-notice span { color: #c9ced6; }
.ws-root .ws-hosting-notice a { color: #ff7a2f; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.ws-root .ws-hosting-notice a:hover { color: #ffa066; }
.ws-root .ws-hosting-notice a:focus-visible { outline: 2px solid #ffffff; outline-offset: 2px; }
@media (max-width: 640px) {
  .ws-hosting-notice { font-size: 13px; padding: 9px 14px; }
  .ws-hosting-notice span { display: block; }
}

/* Banner with a background clip (October 21, 2026). The clip sits behind the copy under a dark shade for contrast;
   it is decorative (aria-hidden) and stops for people who asked for less motion. */
.ws-root .ws-hero-video-bg { position: relative; overflow: hidden; isolation: isolate; min-height: min(78vh, 720px); display: flex; align-items: safe center; padding-block: 56px; box-sizing: border-box; color: #ffffff; --ws-hero-text: #ffffff; --ws-hero-muted: #e6e6e6; }
.ws-root .ws-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; pointer-events: none; opacity: 0; transition: opacity .9s ease; }
.ws-root .ws-hero-video.is-active { opacity: 1; }
.ws-root .ws-hero-logo { display: block; width: min(320px, 60vw); height: auto; margin: 0 0 20px; filter: drop-shadow(0 6px 24px rgba(0, 0, 0, .45)); }
.ws-root .ws-hero-grid:has(.ws-hero-logo) { grid-template-columns: minmax(0, 1fr); justify-items: center; }
.ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-hero-copy, .ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-hero-copy .ws-display, .ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-hero-copy .ws-lead, .ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-hero-copy .ws-eyebrow { text-align: center; }
.ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-hero-copy { max-width: 860px; margin-inline: auto; }
.ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-hero-copy .ws-display { max-width: none; margin-inline: auto; }
.ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-hero-copy .ws-display::after { margin-left: auto; margin-right: auto; }
.ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-hero-copy .ws-lead { margin-inline: auto; }
.ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-hero-logo { margin-left: auto; margin-right: auto; }
.ws-root .ws-hero-grid:has(.ws-hero-logo) .ws-actions { justify-content: center; }
.ws-root .ws-hero-shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(8, 8, 10, .62) 0%, rgba(8, 8, 10, .38) 55%, rgba(8, 8, 10, .70) 100%); }
.ws-root .ws-hero-video-bg > .ws-wrap { position: relative; z-index: 2; width: 100%; }
.ws-root .ws-hero-video-bg .ws-display, .ws-root .ws-hero-video-bg .ws-lead, .ws-root .ws-hero-video-bg .ws-eyebrow { color: #ffffff; text-shadow: 0 2px 18px rgba(0, 0, 0, .45); }
.ws-root .ws-hero-video-tag { position: absolute; right: 12px; bottom: 10px; z-index: 2; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: rgba(255, 255, 255, .62); pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .ws-root .ws-hero-video { display: none; } }

/* Price cards (October 21, 2026): "cards" are raised panels; "holo" adds an iridescent edge and a slow sheen. CSS only.
   Cards keep their natural height (no stretching to the tallest card); the price sits right under the name. */
.ws-root .ws-service-list.ws-service-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 20px; align-items: start; }
.ws-root .ws-service-cards .ws-service { padding: 26px 24px 28px; border: 1px solid var(--ws-line); border-radius: calc(var(--ws-radius, 8px) + 8px); background: var(--ws-surface); box-shadow: 0 12px 32px rgba(0, 0, 0, .09); display: flex; flex-direction: column; gap: 0; min-height: 0; }
.ws-root .ws-service-cards .ws-service-head { flex-direction: column; flex-wrap: nowrap; justify-content: flex-start; align-items: flex-start; gap: 10px; padding: 0; margin: 0; border: 0; }
.ws-root .ws-service-cards .ws-service h3, .ws-root .ws-service-cards .ws-price { flex: none; width: auto; }
.ws-root .ws-service-cards .ws-service h3 { margin: 0; font-size: 19px; line-height: 1.25; }
.ws-root .ws-service-cards .ws-price { font-size: 32px; line-height: 1.05; letter-spacing: -.025em; white-space: normal; }
.ws-root .ws-service-cards .ws-service p { margin: 12px 0 0; line-height: 1.6; }
.ws-root .ws-service-cards .ws-service p:empty { display: none; }
.ws-root .ws-service-holo .ws-service { position: relative; overflow: hidden; isolation: isolate; color: #f6f7fb; border: 1px solid transparent; background: transparent; box-shadow: 0 22px 44px rgba(10, 12, 30, .4); }
.ws-root .ws-service-holo .ws-service::before { content: ""; position: absolute; inset: -100%; z-index: -2; background: conic-gradient(from 0deg, #ff7a59, #ffd36e, #8affc1, #6fd3ff, #c58cff, #ff6fb7, #ff7a59); animation: ws-holo-spin 10s linear infinite; }
.ws-root .ws-service-holo .ws-service::after { content: ""; position: absolute; inset: 2px; z-index: -1; border-radius: inherit; background: linear-gradient(115deg, rgba(255, 255, 255, 0) 42%, rgba(255, 255, 255, .09) 50%, rgba(255, 255, 255, 0) 58%), linear-gradient(160deg, #15171f 0%, #1d2030 55%, #141620 100%); background-size: 260% 100%, 100% 100%; animation: ws-holo-sheen 7s ease-in-out infinite; }
.ws-root .ws-service-holo .ws-service h3 { color: #ffffff; }
.ws-root .ws-service-holo .ws-service p { color: #c7cbe0; }
.ws-root .ws-service-holo .ws-price { color: transparent; background: linear-gradient(100deg, #ffd36e, #8affc1 35%, #6fd3ff 65%, #ff6fb7); -webkit-background-clip: text; background-clip: text; background-size: 220% 100%; animation: ws-holo-sheen 6s ease-in-out infinite; }
@keyframes ws-holo-spin { to { transform: rotate(360deg); } }
@keyframes ws-holo-sheen { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@media (prefers-reduced-motion: reduce) { .ws-root .ws-service-holo .ws-service::before, .ws-root .ws-service-holo .ws-service::after, .ws-root .ws-service-holo .ws-price { animation: none; } }

/* Product shelf, photo tiles and announcement bar (October 27, 2026: the Snake River Farms layout, owner request).
   "shelf" is one sliding row of square product photos with name, price and a Shop now button (scroll snap, no script);
   "tiles" are tall photo tiles with the name over the picture, each one a link. The announcement is a thin line above the header. */
.ws-root .ws-announce { background: var(--ws-surface, #f4f2ee); color: var(--ws-text, #222020); border-bottom: 1px solid var(--ws-line, #e5e1da); text-align: center; font-size: 13px; line-height: 1.45; letter-spacing: .02em; padding: 8px 16px; }
.ws-root .ws-announce p { margin: 0 auto; max-width: 70em; }
.ws-root .ws-announce a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.ws-root .ws-service-list.ws-service-shelf { display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: minmax(200px, calc((100% - 60px) / 4)); gap: 20px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding: 0 0 16px; scrollbar-width: thin; }
.ws-root .ws-service-shelf .ws-service { scroll-snap-align: start; display: flex; flex-direction: column; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; min-width: 0; }
.ws-root .ws-service-shelf .ws-service-photo { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; margin: 0 0 14px; border-radius: var(--ws-radius, 0); }
.ws-root .ws-service-shelf .ws-service-head { flex-direction: column; flex-wrap: nowrap; align-items: flex-start; gap: 6px; padding: 0; margin: 0; border: 0; }
.ws-root .ws-service-shelf .ws-service h3 { flex: none; width: auto; margin: 0; font-family: var(--ws-font); font-weight: 600; font-size: 16px; line-height: 1.35; letter-spacing: 0; text-transform: none; font-style: normal; }
.ws-root .ws-service-shelf .ws-price { font-size: 15px; font-weight: 600; letter-spacing: 0; color: var(--ws-text); white-space: normal; }
.ws-root .ws-service-shelf .ws-service > p { margin: auto 0 0; padding-top: 16px; }
.ws-root .ws-service-shelf .ws-service-link { text-transform: uppercase; letter-spacing: .1em; font-size: 12px; font-weight: 700; }
@container ws (max-width: 760px) { .ws-root .ws-service-list.ws-service-shelf { grid-auto-columns: 64%; gap: 14px; } }
.ws-root .ws-service-list.ws-service-tiles { grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 14px; }
.ws-root .ws-service-tiles .ws-tile { position: relative; padding: 0; border: 0; overflow: hidden; border-radius: var(--ws-radius, 0); background: var(--ws-ink, #151515); }
.ws-root .ws-service-tiles .ws-tile-link { display: block; position: relative; aspect-ratio: 3 / 4; color: #ffffff; text-decoration: none; }
.ws-root .ws-service-tiles .ws-tile-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ws-root .ws-service-tiles .ws-tile-link::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .74)); }
.ws-root .ws-service-tiles .ws-tile-name { position: absolute; left: 16px; right: 16px; bottom: 16px; z-index: 1; font-family: var(--ws-display); font-weight: var(--ws-display-weight, 600); font-size: 22px; line-height: 1.15; color: #ffffff; }
.ws-root .ws-service-tiles .ws-tile-note { display: block; margin-top: 6px; font-family: var(--ws-font); font-weight: 600; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .86); }
.ws-root .ws-service-tiles a.ws-tile-link:hover .ws-tile-img, .ws-root .ws-service-tiles a.ws-tile-link:focus-visible .ws-tile-img { transform: scale(1.045); }
@media (prefers-reduced-motion: reduce) { .ws-root .ws-service-tiles .ws-tile-img { transition: none; } }
/* Outlined buttons on a full-photo banner were drawn in the dark brand color on the dark photo; they are white there. */
.ws-root.ws-design-hero-full.ws-design-buttons-outline .ws-block-hero.ws-hero-media .ws-button { background: transparent; color: #ffffff; border-color: #ffffff; }
.ws-root.ws-design-hero-full.ws-design-buttons-outline .ws-block-hero.ws-hero-media .ws-button:hover { background: #ffffff; color: #111111; }

/* Outlined and underlined button styles (theme.design): the base button rule forces its text to the on-accent color with
   !important, which made these transparent buttons white on white. They take the brand text color instead; on a full-photo
   banner and on a dark band they are white (October 27, 2026). */
.ws-root.ws-design-buttons-outline .ws-button, .ws-root.ws-design-buttons-underline .ws-button { color: var(--ws-accent-text) !important; }
.ws-root.ws-design-buttons-outline .ws-button:hover { color: var(--ws-on-accent) !important; }
.ws-root.ws-design-buttons-outline .ws-button-quiet, .ws-root.ws-design-buttons-underline .ws-button-quiet { color: var(--ws-text) !important; }
.ws-root.ws-design-buttons-outline .ws-button-quiet:hover { color: var(--ws-bg) !important; background: var(--ws-text); border-color: var(--ws-text); }
.ws-root.ws-design-hero-full.ws-design-buttons-outline .ws-block-hero.ws-hero-media .ws-button, .ws-root.ws-design-hero-full.ws-design-buttons-underline .ws-block-hero.ws-hero-media .ws-button { color: #ffffff !important; }
.ws-root.ws-design-hero-full.ws-design-buttons-underline .ws-block-hero.ws-hero-media .ws-button { box-shadow: inset 0 -2px 0 #ffffff; }
.ws-root.ws-design-hero-full.ws-design-buttons-outline .ws-block-hero.ws-hero-media .ws-button:hover { color: #111111 !important; }
.ws-root.ws-design-buttons-outline .ws-cta-band .ws-button, .ws-root.ws-design-buttons-underline .ws-cta-band .ws-button { color: var(--ws-band-text) !important; border-color: var(--ws-band-text); }
.ws-root.ws-design-buttons-underline .ws-cta-band .ws-button { box-shadow: inset 0 -2px 0 var(--ws-band-text); }
.ws-root.ws-design-buttons-outline .ws-cta-band .ws-button:hover { background: var(--ws-band-text); color: var(--ws-band-bg) !important; }

/* Scroll story (October 28, 2026): a full-screen picture with large words. At rest it is the after photo. The reader's
   script adds ws-story-live, which makes the section tall, pins the picture and sets --ws-p (0 to 1) from the scroll. */
.ws-block-story { position: relative; padding: 0 !important; background: #0c0c0c; color: #ffffff; }
.ws-story-stage { position: relative; min-height: 88vh; display: grid; overflow: hidden; isolation: isolate; }
.ws-story-media { position: absolute; inset: 0; z-index: -2; }
.ws-story-media img, .ws-story-media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ws-story-before, .ws-story-edge, .ws-story-video { display: none; }
.ws-story-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.34) 34%, rgba(0,0,0,0) 62%), linear-gradient(180deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.04) 34%, rgba(0,0,0,.1) 58%, rgba(0,0,0,.72) 100%); }
@media (max-width: 760px) { .ws-story-shade { background: linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.1) 30%, rgba(0,0,0,.35) 55%, rgba(0,0,0,.85) 100%); } }
.ws-story-copy { align-self: end; padding-top: 18vh; padding-bottom: 9vh; }
.ws-block-story .ws-story-title { color: #ffffff !important; font-size: clamp(2.7rem, 8.4vw, 7.6rem); line-height: .93; letter-spacing: -.035em; max-width: 13ch; margin: 0; text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,.35); }
.ws-story-steps { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 14px; max-width: 34rem; counter-reset: story; }
.ws-story-steps li { counter-increment: story; display: grid; grid-template-columns: 2.4em 1fr; column-gap: 12px; color: #ffffff; }
.ws-story-steps li::before { content: counter(story, decimal-leading-zero); grid-row: span 2; font-size: .78rem; letter-spacing: .14em; padding-top: .45em; opacity: .7; border-top: 1px solid rgba(255,255,255,.55); }
.ws-story-steps strong { font-size: clamp(1.1rem, 2.2vw, 1.45rem); line-height: 1.2; }
.ws-story-steps span { opacity: .82; line-height: 1.45; }
.ws-story-cue { margin: 30px 0 0; font-size: .76rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: #ffffff; opacity: .8; }
.ws-story-cue::after { content: "  \2193"; }
.ws-block-story .ws-hero-video-tag { z-index: 3; }
.ws-story-live { height: calc(100vh * (1.7 + var(--ws-story-count, 1) * .55)); }
.ws-story-live .ws-story-stage { position: sticky; top: 0; height: 100vh; min-height: 0; }
.ws-story-live .ws-story-before { display: block; }
.ws-story-live.ws-story-reveal .ws-story-after { clip-path: inset(0 calc((1 - var(--ws-p, 0)) * 100%) 0 0); }
.ws-story-live.ws-story-reveal .ws-story-edge { display: block; position: absolute; top: 0; bottom: 0; left: calc(var(--ws-p, 0) * 100%); width: 3px; margin-left: -1.5px;
  background: #ffffff; box-shadow: 0 0 18px 5px rgba(255,255,255,.55), 0 0 60px 18px rgba(190,225,255,.35); opacity: calc(1 - max(0, var(--ws-p, 0) - .97) * 33); }
.ws-story-live.ws-story-video .ws-story-video { display: block; }
.ws-story-live .ws-story-steps li { opacity: .16; transform: translateY(10px); transition: opacity .45s ease, transform .45s ease; }
.ws-story-live .ws-story-steps li.is-on { opacity: 1; transform: none; }
.ws-story-live .ws-story-cue { transition: opacity .4s ease; }
.ws-story-live.ws-story-moved .ws-story-cue { opacity: 0; }
@media (max-width: 760px) { .ws-story-copy { padding-bottom: 12vh; } .ws-story-steps { gap: 10px; } }

/* A scroll story that opens the page runs under a see-through header (October 28, 2026). The section in video mode carries the
   ws-story-video class that also hides the not-yet-started video, so the section itself is shown explicitly. */
.ws-section.ws-block-story { display: block; }
.ws-root:has(.ws-main > .ws-block-story:first-child) .ws-header { position: absolute; left: 0; right: 0; background: linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,0)); border-bottom: 0; backdrop-filter: none; color: #ffffff; }
.ws-root:has(.ws-main > .ws-block-story:first-child) .ws-header :is(.ws-nav a, .ws-brand-name, .ws-header-call, .ws-menu summary) { color: #ffffff !important; }
.ws-root:has(.ws-main > .ws-block-story:first-child) .ws-header .ws-logo { filter: drop-shadow(0 1px 6px rgba(0,0,0,.4)); }
.ws-block-story .ws-story-copy { padding-top: 22vh; }

/* Scroll story polish (October 28, 2026): the see-through header keeps its place below a hosting notice; on wide screens a video
   story sits in the right two thirds, its left edge fading into the dark, so the words stand on black beside it. */
.ws-root:has(.ws-main > .ws-block-story:first-child) .ws-header { top: auto; }
.ws-story-cue { margin-top: 44px; }
.ws-story-live .ws-story-steps li { transform: translateY(6px); }
@media (min-width: 900px) {
  .ws-story-video .ws-story-media { left: 34%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%); mask-image: linear-gradient(90deg, transparent 0, #000 24%); }
  .ws-story-video .ws-story-shade { background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 70%, rgba(0,0,0,.55) 100%); }
  .ws-story-video .ws-story-copy { align-self: center; padding-top: 12vh; padding-bottom: 6vh; }
  .ws-story-video .ws-story-steps, .ws-story-video .ws-story-title { max-width: min(34rem, 30vw); }
}

/* Scroll story zoom (October 28, 2026): a real photo in a sharp frame over a blurred copy of itself; the frame grows and the
   picture inside eases back as the visitor scrolls. At rest it is a still framed photo. */
.ws-story-zoom .ws-story-backdrop { filter: blur(38px) brightness(.42) saturate(1.15); transform: scale(1.25); }
.ws-story-zoom .ws-story-frame { position: absolute; z-index: 1; right: 7vw; top: 50%; height: min(78vh, 760px); aspect-ratio: 4 / 5; transform: translateY(-50%);
  overflow: hidden; border-radius: 22px; box-shadow: 0 40px 120px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.08); }
.ws-story-zoom .ws-story-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ws-story-live.ws-story-zoom { height: calc(100vh * (1.25 + var(--ws-story-count, 1) * .4)); }
.ws-story-live.ws-story-zoom .ws-story-frame { transform: translateY(-50%) scale(calc(.84 + var(--ws-p, 0) * .16)) rotate(calc((1 - var(--ws-p, 0)) * -2.5deg)); }
.ws-story-live.ws-story-zoom .ws-story-frame img { transform: scale(calc(1.18 - var(--ws-p, 0) * .18)); }
.ws-story-zoom .ws-story-copy { position: relative; z-index: 2; align-self: center; padding-top: 10vh; padding-bottom: 6vh; }
.ws-story-zoom .ws-story-title, .ws-story-zoom .ws-story-steps { max-width: min(36rem, 44vw); }
.ws-story-zoom .ws-story-shade { background: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,0) 60%); }
@media (max-width: 760px) {
  .ws-story-zoom .ws-story-frame { right: auto; left: 50%; top: 14vh; height: 44vh; transform: translateX(-50%); }
  .ws-story-live.ws-story-zoom .ws-story-frame { transform: translateX(-50%) scale(calc(.86 + var(--ws-p, 0) * .14)) rotate(calc((1 - var(--ws-p, 0)) * -2deg)); }
  .ws-story-zoom .ws-story-copy { align-self: end; padding-top: 60vh; padding-bottom: 10vh; }
  .ws-story-zoom .ws-story-title, .ws-story-zoom .ws-story-steps { max-width: none; }
  .ws-story-zoom .ws-story-title { font-size: clamp(2.3rem, 11vw, 3.4rem); }
}

/* Scroll story spacing under the design layer (October 28, 2026): the design layer resets paragraph and list margins, so the
   story's own spacing is restated with a stronger selector. */
.ws-root .ws-block-story .ws-story-steps { margin-top: 28px; }
.ws-root .ws-block-story .ws-story-cue { margin-top: 44px; }

/* Scroll story zoom without the card (owner, October 28, 2026: "I don't like those square things"): the photo runs full height to
   the right edge and fades into the dark on its left; no frame, corners or shadow. On phones it fills the top and fades downward. */
.ws-story-zoom .ws-story-frame { right: 0; top: 0; bottom: 0; height: 100%; aspect-ratio: 3 / 4; max-width: 62vw; transform: none; border-radius: 0; box-shadow: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 34%); mask-image: linear-gradient(90deg, transparent 0, #000 34%); }
.ws-story-live.ws-story-zoom .ws-story-frame { transform: none; }
.ws-story-live.ws-story-zoom .ws-story-frame img { transform: scale(calc(1.14 - var(--ws-p, 0) * .14)); }
.ws-story-zoom .ws-story-backdrop { filter: blur(48px) brightness(.3) saturate(1.1); }
@media (max-width: 760px) {
  .ws-story-zoom .ws-story-frame, .ws-story-live.ws-story-zoom .ws-story-frame { left: 0; right: 0; top: 0; bottom: auto; width: 100%; height: 66vh; max-width: none; aspect-ratio: auto; transform: none;
    -webkit-mask-image: linear-gradient(180deg, #000 58%, transparent 100%); mask-image: linear-gradient(180deg, #000 58%, transparent 100%); }
}

/* Video stories on wide screens show the whole clip at full height against the right edge, its left side fading into the dark,
   so a tall phone clip is never cropped (October 28, 2026). The still behind it is hidden once the clip is live. */
@media (min-width: 900px) {
  .ws-story-video .ws-story-media { left: 0; -webkit-mask-image: none; mask-image: none; }
  .ws-story-live.ws-story-video .ws-story-media > video.ws-story-video { left: auto; right: 0; width: auto; max-width: 66vw; height: 100%; aspect-ratio: auto; object-fit: contain;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16%); mask-image: linear-gradient(90deg, transparent 0, #000 16%); }
  .ws-story-live.ws-story-video .ws-story-after { opacity: 0; }
}

/* Less black (owner, October 28, 2026: "there's so much black"): the blurred copy behind a story is brighter and more colorful, a
   video story gets its still as that blurred backdrop, the picture covers more of the screen and the shade only darkens behind
   the words. */
.ws-story-zoom .ws-story-backdrop { filter: blur(34px) brightness(.62) saturate(1.35); transform: scale(1.2); }
.ws-story-zoom .ws-story-frame { aspect-ratio: auto; width: 64vw; max-width: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22%); mask-image: linear-gradient(90deg, transparent 0, #000 22%); }
.ws-story-zoom .ws-story-shade, .ws-story-video .ws-story-shade { background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.28) 32%, rgba(0,0,0,0) 55%); }
.ws-story-live.ws-story-video .ws-story-after { opacity: 1; filter: blur(34px) brightness(.62) saturate(1.35); transform: scale(1.2); }
@media (min-width: 900px) {
  .ws-story-live.ws-story-video .ws-story-media > video.ws-story-video { max-width: 70vw; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%); mask-image: linear-gradient(90deg, transparent 0, #000 12%); }
}
@media (max-width: 760px) {
  .ws-story-zoom .ws-story-frame, .ws-story-live.ws-story-zoom .ws-story-frame { width: 100%; height: 70vh; }
  .ws-story-zoom .ws-story-shade, .ws-story-video .ws-story-shade { background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.6) 100%); }
}

/* Clean split for photo and video stories (owner, October 28, 2026: "I don't like this blur"): no blurred fill. The words sit on
   the site's own solid background on the left; the picture fills the right half edge to edge, top to bottom, with a straight edge.
   On phones the picture fills the top and the words sit below it. The header stays solid above these stories. */
.ws-block-story.ws-story-zoom, .ws-block-story.ws-story-video { background: var(--ws-bg); color: var(--ws-text); }
.ws-block-story:is(.ws-story-zoom, .ws-story-video) :is(.ws-story-backdrop, .ws-story-shade) { display: none; }
.ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-title { color: var(--ws-text) !important; text-shadow: none; }
.ws-block-story:is(.ws-story-zoom, .ws-story-video) :is(.ws-story-steps li, .ws-story-cue) { color: var(--ws-text); }
.ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-steps li::before { border-top-color: currentColor; }
.ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-media { left: auto; right: 0; width: 50vw; -webkit-mask-image: none; mask-image: none; overflow: hidden; }
.ws-block-story.ws-story-zoom .ws-story-frame, .ws-story-live.ws-story-zoom .ws-story-frame { inset: 0; width: 100%; height: 100%; max-width: none; aspect-ratio: auto; transform: none; -webkit-mask-image: none; mask-image: none; }
.ws-story-live.ws-story-video .ws-story-media > video.ws-story-video, .ws-block-story.ws-story-video .ws-story-after { inset: 0; left: 0; right: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 58%; filter: none; transform: none; -webkit-mask-image: none; mask-image: none; }
.ws-story-live.ws-story-video .ws-story-after { opacity: 0; }
.ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-copy { margin-left: 0; max-width: 46vw; padding-left: max(24px, calc((100vw - 1180px) / 2)); }
.ws-root:has(.ws-main > .ws-block-story:is(.ws-story-zoom, .ws-story-video):first-child) .ws-header { position: sticky; top: 0; background: var(--ws-header-bg); border-bottom: 1px solid var(--ws-line); }
@media (max-width: 760px) {
  .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-media { left: 0; width: 100%; height: 58vh; bottom: auto; }
  .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-copy { max-width: none; padding-left: 20px; align-self: end; padding-top: 62vh; padding-bottom: 8vh; }
}

/* The solid header above a photo or video story keeps its own colors: the header text color, or the dark bar of a design with
   an inverse header (October 28, 2026). */
.ws-root:has(.ws-main > .ws-block-story:is(.ws-story-zoom, .ws-story-video):first-child) .ws-header :is(.ws-nav a, .ws-brand-name, .ws-header-call, .ws-menu summary) { color: var(--ws-header-text) !important; }
.ws-root.ws-design-nav-inverse:has(.ws-main > .ws-block-story:is(.ws-story-zoom, .ws-story-video):first-child) .ws-header { background: var(--ws-ink); border-bottom-color: transparent; }
.ws-root.ws-design-nav-inverse:has(.ws-main > .ws-block-story:is(.ws-story-zoom, .ws-story-video):first-child) .ws-header :is(.ws-nav a, .ws-brand-name, .ws-header-call, .ws-menu summary) { color: var(--ws-on-ink) !important; }

/* Photo and video stories scroll with the page (owner, October 28, 2026: "you need to double scroll ... it should just be
   scroll down"): no pinning; each is one screen tall on wide screens and plays as it passes. On phones the picture sits on top in
   the normal flow and the words follow below it, so nothing overlaps and nothing waits. */
.ws-story-live:is(.ws-story-zoom, .ws-story-video) { height: auto; }
.ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-stage, .ws-story-live:is(.ws-story-zoom, .ws-story-video) .ws-story-stage { position: relative; top: auto; height: auto; min-height: 92vh; }
.ws-story-live:is(.ws-story-zoom, .ws-story-video) .ws-story-steps li { opacity: .3; }
.ws-story-live:is(.ws-story-zoom, .ws-story-video) .ws-story-steps li.is-on { opacity: 1; }
@media (max-width: 760px) {
  .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-stage, .ws-story-live:is(.ws-story-zoom, .ws-story-video) .ws-story-stage { display: block; min-height: 0; }
  .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-media { position: relative; inset: auto; z-index: 0; width: 100%; height: 56vh; height: 56svh; min-height: 300px; }
  .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-copy { position: relative; max-width: none; padding: 30px 22px 46px; }
  .ws-root .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-title { font-size: clamp(2.5rem, 12.5vw, 3.6rem); line-height: .95; max-width: none; }
  .ws-root .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-steps { margin-top: 22px; gap: 12px; }
  .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-steps strong { font-size: 1.15rem; }
  .ws-root .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-story-cue { display: none; }
  .ws-block-story:is(.ws-story-zoom, .ws-story-video) .ws-hero-video-tag { top: calc(56svh - 34px); bottom: auto; }
}
/* Colored story panels get depth (owner, October 28, 2026: "the plain blue and green looks ass"): the section color fades from
   a lit corner into a darker shade of itself, and the step numbers take the brand accent. The first story can carry the logo. */
.ws-root .ws-section.ws-block-story.ws-tone:is(.ws-story-zoom, .ws-story-video):not(.ws-tone-soft) {
  background: radial-gradient(90% 75% at 0% 0%, color-mix(in srgb, var(--ws-tone-bg) 72%, #ffffff) 0%, transparent 62%),
    linear-gradient(165deg, var(--ws-tone-bg) 0%, color-mix(in srgb, var(--ws-tone-bg) 58%, #000000) 100%); }
.ws-root .ws-block-story.ws-tone:is(.ws-story-zoom, .ws-story-video) .ws-story-steps li::before { color: var(--ws-accent); border-top-color: var(--ws-accent); opacity: 1; }
.ws-block-story .ws-story-logo { display: block; width: auto; height: clamp(72px, 9vw, 120px); max-width: 70%; object-fit: contain; margin: 0 0 26px; }
@media (max-width: 760px) { .ws-block-story .ws-story-logo { height: 64px; margin-bottom: 18px; } }

/* Announcement bar in the brand color (owner, October 30, 2026: "make this look better at the top"). The thin grey line read as
   fine print; it is now a solid accent band in the display type with an arrow when it links. */
.ws-root .ws-announce { background: var(--ws-accent); color: var(--ws-on-accent); border-bottom: 0; font-family: var(--ws-display, inherit); font-weight: 700; font-size: 15px; letter-spacing: .07em; text-transform: uppercase; padding: 11px 16px; }
.ws-root .ws-announce a { text-decoration: none; display: inline-flex; align-items: center; gap: .55em; }
.ws-root .ws-announce a::after { content: "\2192"; font-size: 1.15em; line-height: 1; transition: transform .2s ease; }
.ws-root .ws-announce a:hover::after, .ws-root .ws-announce a:focus-visible::after { transform: translateX(4px); }
@media (max-width: 760px) { .ws-root .ws-announce { font-size: 13px; letter-spacing: .05em; padding: 10px 14px; } }

/* Colored hours panels read like a sign, and framed maps get room (owner, October 30, 2026: "make the hours look better", "like the
   actual google maps"). Only hours sections given a block color change, so plain hours sections keep their look. */
.ws-root .ws-section.ws-block-hours.ws-tone:not(.ws-tone-soft) { background: radial-gradient(90% 75% at 0% 0%, color-mix(in srgb, var(--ws-tone-bg) 72%, #fff) 0%, transparent 62%), linear-gradient(165deg, var(--ws-tone-bg), color-mix(in srgb, var(--ws-tone-bg) 58%, #000)); }
.ws-root .ws-block-hours.ws-tone .ws-narrow { max-width: 820px; text-align: center; }
.ws-root .ws-block-hours.ws-tone .ws-heading { font-size: clamp(44px, 6vw, 76px); margin-bottom: 8px; }
.ws-root .ws-block-hours.ws-tone .ws-hours { margin-top: 26px; text-align: left; }
.ws-root .ws-block-hours.ws-tone .ws-hours div { align-items: baseline; padding: 16px 6px; border-bottom: 1px solid color-mix(in srgb, currentColor 20%, transparent); }
.ws-root .ws-block-hours.ws-tone .ws-hours div:first-child { border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent); }
.ws-root .ws-block-hours.ws-tone .ws-hours dt { font-family: var(--ws-display, inherit); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; font-size: clamp(20px, 2.3vw, 28px); line-height: 1.1; }
.ws-root .ws-block-hours.ws-tone .ws-hours dt::before { content: "\2605"; color: var(--ws-accent); margin-right: .6em; font-size: .8em; vertical-align: .08em; }
.ws-root .ws-block-hours.ws-tone .ws-hours dt { flex: 1 1 auto; overflow-wrap: normal; }
/* Long values (a specials list, October 30, 2026) wrap instead of pushing the page wider than a phone. */
.ws-root .ws-block-hours.ws-tone .ws-hours dd { color: inherit; font-weight: 700; font-size: clamp(17px, 1.9vw, 22px); white-space: normal; flex: 0 1 auto; max-width: 68%; }
.ws-root .ws-block-hours.ws-tone .ws-note { margin-top: 22px; opacity: .8; text-align: center; }
.ws-root .ws-embed-map { margin: 28px 0 0; border-radius: var(--ws-radius, 10px); overflow: hidden; box-shadow: 0 18px 50px rgba(0, 0, 0, .14); }
.ws-root .ws-embed-map iframe { display: block; width: 100%; height: clamp(360px, 58vh, 560px); border: 0; }
.ws-root .ws-block-links:has(.ws-embed-map) .ws-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.ws-root .ws-block-links:has(.ws-embed-map) .ws-links > li { padding: 0; border: 0; background: none; flex: 1 1 220px; }
.ws-root .ws-block-links:has(.ws-embed-map) .ws-links .ws-button { width: 100%; }
/* On a phone each row stacks: the day on top, the hours or the special beneath it, so long values never crowd the day name. */
@media (max-width: 760px) { .ws-root .ws-block-hours.ws-tone .ws-hours div { padding: 13px 2px; flex-direction: column; align-items: flex-start; gap: 4px; } .ws-root .ws-block-hours.ws-tone .ws-hours dd { font-size: 16px; max-width: none; text-align: left; padding-left: 1.5em; } }

/* Culleoka's five owner-requested action colors. The reader adds this scope only for its verified website ID. */
.ws-root.ws-culleoka-buttons .ws-button[href$="#member-signup"],
.ws-root.ws-culleoka-buttons .ws-button[href$="get-involved/"],
.ws-root.ws-culleoka-buttons .ws-button[href="https://wovomedia.com/club/9f872dcb-a4a1-4ca7-9965-ca90f052e39b"] {
  background: #1d4ed8; border-color: #1d4ed8; color: #ffffff !important; filter: none;
}
.ws-root.ws-culleoka-buttons .ws-button[href="https://wovomedia.com/give/9f872dcb-a4a1-4ca7-9965-ca90f052e39b"] {
  background: #23753d; border-color: #23753d; color: #ffffff !important; filter: none;
}
.ws-root.ws-culleoka-buttons .ws-button[href="#calendar"] {
  background: #facc15; border-color: #936b00; color: #1f2937 !important; filter: none;
}
.ws-root.ws-culleoka-buttons .ws-button[href$="#suggest-event"] {
  background: #b91c1c; border-color: #b91c1c; color: #ffffff !important; filter: none;
}
.ws-root.ws-culleoka-buttons .ws-button[href$="#request-help"] {
  background: #4b5563; border-color: #4b5563; color: #ffffff !important; filter: none;
}
.ws-root.ws-culleoka-buttons .ws-button:focus-visible {
  outline: 3px solid #0f172a; outline-offset: 3px; box-shadow: 0 0 0 3px #ffffff;
}

.ws-root.ws-culleoka-buttons #ways .ws-links > li > .ws-button { width:100%; height:64px; min-height:64px; flex-shrink:0; box-sizing:border-box; padding:10px 12px; font-size:16px; font-weight:700; line-height:1.2; box-shadow:none; }
.ws-root.ws-culleoka-buttons #ways .ws-button > span { min-width:0; }

.ws-root.ws-culleoka-buttons .ws-header .ws-header-row { max-width:1280px; }
.ws-root.ws-culleoka-buttons .ws-header .ws-logo { width:88px; height:88px; max-width:88px; flex-shrink:0; object-fit:contain; }
@media (min-width:641px) { .ws-root.ws-culleoka-buttons .ws-header .ws-brand { flex-wrap:nowrap; flex-shrink:0; min-width:0; } .ws-root.ws-culleoka-buttons .ws-header .ws-brand-name { min-width:0; } }
@media (max-width:640px) { .ws-root.ws-culleoka-buttons .ws-header .ws-logo { width:64px; height:64px; max-width:64px; } }

/* Columbia Dam Now: larger header logo. */
.ws-root.ws-columbia .ws-header .ws-logo { width: 76px; height: 76px; max-width: 76px; flex-shrink: 0; object-fit: contain; }
.ws-root.ws-columbia .ws-header .ws-brand { flex-wrap: nowrap; gap: 14px; }
@media (max-width: 640px) { .ws-root.ws-columbia .ws-header .ws-logo { width: 58px; height: 58px; max-width: 58px; } }
/* Columbia Dam Now: the block-building game. */
.ws-root.ws-columbia .ws-game-layout { align-items: start; gap: 36px; }
.ws-root.ws-columbia .ws-game-art { padding-bottom: 0; }
.ws-root.ws-columbia .ws-game-scene { border-radius: 18px; box-shadow: 0 22px 48px -18px rgba(16, 42, 34, .55), 0 2px 6px rgba(16, 42, 34, .18); background: #8fc3d6; }
/* The published blocks are 20 units tall; drawn 1.8 times taller from the footing so the wall reads as a dam. */
.ws-root.ws-columbia .ws-game-tiles { fill: #dcd7ca; stroke: #8a8476; stroke-width: 3.2; stroke-linejoin: round; transform-origin: 200px 236px; transform: scaleY(1.8); }
.ws-root.ws-columbia .ws-game-tiles rect { vector-effect: non-scaling-stroke; }
.ws-root.ws-columbia .ws-game-tiles rect:nth-child(3n) { fill: #cfc9bb; }
.ws-root.ws-columbia .ws-game-tiles rect:nth-child(4n+1) { fill: #e6e1d5; }
.ws-root.ws-columbia .ws-game-tiles rect:nth-child(7n) { fill: #c6c0b1; }
.ws-root.ws-columbia .ws-game-tiles rect { transform-box: fill-box; transform-origin: 50% 100%; }
.ws-root.ws-columbia .ws-game-tiles rect[visibility="visible"] { animation: ws-columbia-drop .5s cubic-bezier(.2, .85, .3, 1.25) both; }
@keyframes ws-columbia-drop { from { transform: translateY(-48px) scale(.92); opacity: 0; } 60% { opacity: 1; } to { transform: none; opacity: 1; } }
.ws-root.ws-columbia .ws-game-lake, .ws-root.ws-columbia .ws-game-finale, .ws-root.ws-columbia .ws-game-shade { opacity: 0; transition: opacity .9s ease; }
.ws-root.ws-columbia .ws-game-scene:has(.ws-game-tiles > rect:nth-child(1)[visibility="visible"]) .ws-game-shade { opacity: 1; }
.ws-root.ws-columbia .ws-game-scene:has(.ws-game-tiles > rect:nth-child(10)[visibility="visible"]) .ws-game-lake { opacity: .55; }
.ws-root.ws-columbia .ws-game-scene:has(.ws-game-tiles > rect:last-child[visibility="visible"]) .ws-game-lake,
.ws-root.ws-columbia .ws-game-scene:has(.ws-game-tiles > rect:last-child[visibility="visible"]) .ws-game-finale { opacity: 1; }
.ws-root.ws-columbia .ws-game-spill { animation: ws-columbia-spill 1.1s linear infinite; }
@keyframes ws-columbia-spill { to { stroke-dashoffset: -18; } }
.ws-root.ws-columbia .ws-game-cloud { animation: ws-columbia-drift 60s linear infinite alternate; }
@keyframes ws-columbia-drift { to { transform: translateX(46px); } }
.ws-root.ws-columbia .ws-game-mascot { width: min(52%, 230px); margin: 20px auto 0; border: 4px solid #ffffff; border-radius: 16px; box-shadow: 0 14px 30px -12px rgba(16, 42, 34, .6); background: #ffffff; }
.ws-root.ws-columbia .ws-game-play { background: var(--ws-surface); border: 1px solid var(--ws-line); border-radius: 18px; padding: 26px 28px; }
.ws-root.ws-columbia .ws-game-progress-label { text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; color: var(--ws-muted); }
.ws-root.ws-columbia .ws-game-progress { --ws-columbia-built: 0%; position: relative; border: 0; border-radius: 999px; padding: 9px 18px; text-align: center; color: #10231b; font-size: .95rem;
  background: linear-gradient(90deg, #3fae7c 0, #7fd1a4 var(--ws-columbia-built), #e4e9e3 var(--ws-columbia-built)); box-shadow: inset 0 1px 3px rgba(16, 42, 34, .22); }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="1"] { --ws-columbia-built: 5%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="2"] { --ws-columbia-built: 10%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="3"] { --ws-columbia-built: 15%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="4"] { --ws-columbia-built: 20%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="5"] { --ws-columbia-built: 25%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="6"] { --ws-columbia-built: 30%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="7"] { --ws-columbia-built: 35%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="8"] { --ws-columbia-built: 40%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="9"] { --ws-columbia-built: 45%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="10"] { --ws-columbia-built: 50%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="11"] { --ws-columbia-built: 55%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="12"] { --ws-columbia-built: 60%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="13"] { --ws-columbia-built: 65%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="14"] { --ws-columbia-built: 70%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="15"] { --ws-columbia-built: 75%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="16"] { --ws-columbia-built: 80%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="17"] { --ws-columbia-built: 85%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="18"] { --ws-columbia-built: 90%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="19"] { --ws-columbia-built: 95%; }
.ws-root.ws-columbia .ws-game-progress[aria-valuemax="20"][aria-valuenow="20"] { --ws-columbia-built: 100%; }
.ws-root.ws-columbia .ws-game-controls .ws-button { min-height: 50px; }
.ws-root.ws-columbia .ws-game-fact { border-left: 4px solid #3fae7c; }
@media (prefers-reduced-motion: reduce) { .ws-root.ws-columbia .ws-game-tiles rect[visibility="visible"], .ws-root.ws-columbia .ws-game-spill, .ws-root.ws-columbia .ws-game-cloud { animation: none; } .ws-root.ws-columbia .ws-game-lake, .ws-root.ws-columbia .ws-game-finale, .ws-root.ws-columbia .ws-game-shade { transition: none; } }
@media print { .ws-root.ws-columbia .ws-game-lake, .ws-root.ws-columbia .ws-game-finale { opacity: 0 !important; } }

/* County Wide Bail Bonding: larger header logo. */
.ws-header .ws-logo[src$="7da98c43-61e4-4dce-86d5-6a0983637405.png"] { height: 86px; max-width: 240px; }
.ws-header .ws-brand:has(> .ws-logo[src$="7da98c43-61e4-4dce-86d5-6a0983637405.png"]) .ws-brand-name { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@container ws (max-width: 760px) { .ws-header .ws-logo[src$="7da98c43-61e4-4dce-86d5-6a0983637405.png"] { height: 62px; max-width: 170px; } }

/* Owner-chosen motion (theme.motion). Pages without a ws-motion-* class are untouched. Nothing here hides content at
   rest: every effect is a keyframe "from" state, so a browser that does not run the animation shows the page as usual.
   Headlines animate once when the page opens; where the browser supports scroll-driven animation, headlines below the
   welcome banner and whole sections animate as they scroll into view instead. The scroll ranges end about a third of
   the way up the screen: finishing at the bottom edge would be over before the visitor could see it. */
.ws-root[class*="ws-motion-text-"] .ws-display, .ws-root[class*="ws-motion-text-"] .ws-heading,
.ws-root[class*="ws-motion-text-"] .ws-block-hero .ws-eyebrow, .ws-root[class*="ws-motion-text-"] .ws-block-hero .ws-lead {
  animation-duration: 900ms; animation-timing-function: cubic-bezier(.22,1,.36,1); animation-fill-mode: both; }
.ws-root[class*="ws-motion-text-"] .ws-block-hero .ws-display { animation-delay: 120ms; }
.ws-root[class*="ws-motion-text-"] .ws-block-hero .ws-lead { animation-delay: 260ms; }
.ws-root.ws-motion-text-rise .ws-display, .ws-root.ws-motion-text-rise .ws-heading, .ws-root.ws-motion-text-rise .ws-block-hero .ws-eyebrow, .ws-root.ws-motion-text-rise .ws-block-hero .ws-lead { animation-name: wovo-motion-rise; }
.ws-root.ws-motion-text-fade .ws-display, .ws-root.ws-motion-text-fade .ws-heading, .ws-root.ws-motion-text-fade .ws-block-hero .ws-eyebrow, .ws-root.ws-motion-text-fade .ws-block-hero .ws-lead { animation-name: wovo-motion-fade; }
.ws-root.ws-motion-text-slide .ws-display, .ws-root.ws-motion-text-slide .ws-heading, .ws-root.ws-motion-text-slide .ws-block-hero .ws-eyebrow, .ws-root.ws-motion-text-slide .ws-block-hero .ws-lead { animation-name: wovo-motion-slide; }
.ws-root.ws-motion-text-wipe .ws-display, .ws-root.ws-motion-text-wipe .ws-heading, .ws-root.ws-motion-text-wipe .ws-block-hero .ws-eyebrow, .ws-root.ws-motion-text-wipe .ws-block-hero .ws-lead { animation-name: wovo-motion-wipe; }
.ws-root.ws-motion-text-pop .ws-display, .ws-root.ws-motion-text-pop .ws-heading, .ws-root.ws-motion-text-pop .ws-block-hero .ws-eyebrow, .ws-root.ws-motion-text-pop .ws-block-hero .ws-lead { animation-name: wovo-motion-pop; animation-timing-function: cubic-bezier(.34,1.56,.64,1); }
@keyframes wovo-motion-rise { from { opacity: .08; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes wovo-motion-fade { from { opacity: .08; } to { opacity: 1; } }
@keyframes wovo-motion-slide { from { opacity: .08; transform: translateX(-36px); } to { opacity: 1; transform: none; } }
@keyframes wovo-motion-wipe { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 -4% 0 0); } }
@keyframes wovo-motion-pop { from { opacity: .08; transform: scale(.9); } to { opacity: 1; transform: none; } }
@keyframes wovo-motion-zoom { from { opacity: .08; transform: scale(.94); } to { opacity: 1; transform: none; } }
@supports (animation-timeline: view()) {
  .ws-root[class*="ws-motion-text-"] .ws-section:not(.ws-block-hero) .ws-heading, .ws-root[class*="ws-motion-text-"] .ws-section:not(.ws-block-hero) .ws-display {
    animation-timeline: view(); animation-range: entry 30% cover 34%; animation-duration: auto; animation-delay: 0s; animation-timing-function: linear; }
  .ws-root[class*="ws-motion-sections-"] .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > * {
    animation-timeline: view(); animation-range: entry 0% cover 30%; animation-duration: auto; animation-timing-function: linear; animation-fill-mode: both; }
  .ws-root.ws-motion-sections-fade .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > * { animation-name: wovo-motion-fade; }
  .ws-root.ws-motion-sections-rise .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > * { animation-name: wovo-motion-rise; }
  .ws-root.ws-motion-sections-slide .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > * { animation-name: wovo-motion-slide; }
  .ws-root.ws-motion-sections-zoom .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > * { animation-name: wovo-motion-zoom; }
}
@media (prefers-reduced-motion: reduce) { .ws-root[class*="ws-motion-"] * { animation: none !important; } }
@media print { .ws-root[class*="ws-motion-"] * { animation: none !important; } }
/* Browsers without scroll-driven animation: a small script the reader adds marks the page (ws-motion-js) and then each
   headline and section as it comes into view (ws-in). Until then they wait in the animation's starting look. Without the
   script nothing waits, and print shows everything. A welcome banner is never animated as a section: its picture is
   positioned against the whole banner, and an animated box inside it would hold the picture to that box. */
.ws-root.ws-motion-js[class*="ws-motion-text-"] .ws-section:not(.ws-block-hero) .ws-heading:not(.ws-in), .ws-root.ws-motion-js[class*="ws-motion-text-"] .ws-section:not(.ws-block-hero) .ws-display:not(.ws-in) { animation-name: none; opacity: .08; }
.ws-root.ws-motion-js[class*="ws-motion-sections-"] .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > :not(.ws-in) { opacity: .08; }
.ws-root.ws-motion-js[class*="ws-motion-sections-"] .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > .ws-in { animation-duration: 800ms; animation-timing-function: cubic-bezier(.22,1,.36,1); animation-fill-mode: both; }
.ws-root.ws-motion-js.ws-motion-sections-fade .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > .ws-in { animation-name: wovo-motion-fade; }
.ws-root.ws-motion-js.ws-motion-sections-rise .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > .ws-in { animation-name: wovo-motion-rise; }
.ws-root.ws-motion-js.ws-motion-sections-slide .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > .ws-in { animation-name: wovo-motion-slide; }
.ws-root.ws-motion-js.ws-motion-sections-zoom .ws-main > .ws-section:not(:first-child):not(.ws-block-hero) > .ws-in { animation-name: wovo-motion-zoom; }
@media print { .ws-root.ws-motion-js .ws-heading, .ws-root.ws-motion-js .ws-display, .ws-root.ws-motion-js .ws-main > .ws-section > * { opacity: 1 !important; } }

/* Picture size and fit per section (owner, October 15, 2026). "Whole" shows the full picture, so logos are never cut off. */
.ws-img-whole .ws-about-img, .ws-img-whole .ws-gallery-img, .ws-img-whole .ws-person-img { object-fit: contain; background: var(--ws-surface); }
.ws-img-whole .ws-about-img { padding: 6%; box-sizing: border-box; }
/* A whole-picture hero sits beside the words instead of behind them, in every design. */
.ws-root .ws-img-whole.ws-hero-media { min-height: 0; display: block; --ws-hero-text: var(--ws-text); --ws-hero-muted: var(--ws-muted); }
.ws-root .ws-img-whole.ws-hero-media .ws-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
.ws-root .ws-img-whole.ws-hero-media .ws-hero-art { position: relative; inset: auto; aspect-ratio: auto; border-radius: var(--ws-radius); overflow: visible; background: none; box-shadow: none; border: 0; }
.ws-root .ws-img-whole.ws-hero-media .ws-hero-art::after { display: none; }
.ws-root .ws-img-whole .ws-hero-img { height: auto; max-height: 72vh; object-fit: contain; }
@container ws (max-width: 760px) { .ws-root .ws-img-whole.ws-hero-media .ws-hero-grid { grid-template-columns: minmax(0, 1fr); } }
.ws-img-small .ws-hero-art, .ws-img-small .ws-about-art { width: 55%; margin-inline: auto; }
.ws-img-medium .ws-hero-art, .ws-img-medium .ws-about-art { width: 78%; margin-inline: auto; }
.ws-img-small .ws-gallery { columns: 5 140px; }
.ws-img-medium .ws-gallery { columns: 4 200px; }
.ws-img-small .ws-person-img { max-width: 140px; }
.ws-img-medium .ws-person-img { max-width: 220px; }

/* The owner's Culleoka homepage meeting notice, in the site's cream and barn red palette. */
.ws-root.ws-culleoka-buttons .ws-culleoka-meeting-notice {
  background: #fff7e5; color: #371c13; border-top: 5px solid #7a2418; border-bottom: 1px solid #dec59e; padding: 24px 0 26px;
}
.ws-root.ws-culleoka-buttons .ws-culleoka-meeting-notice .ws-wrap { display: grid; gap: 8px; }
.ws-root.ws-culleoka-buttons .ws-culleoka-meeting-notice p { margin: 0 !important; max-width: 70ch; color: #371c13; line-height: 1.5; }
.ws-root.ws-culleoka-buttons .ws-culleoka-meeting-label { font-size: 14px; font-weight: 750; color: #7a2418 !important; }
.ws-root.ws-culleoka-buttons .ws-culleoka-meeting-notice h2 {
  margin: 0 !important; font-family: var(--ws-display); font-weight: var(--ws-display-weight); font-size: clamp(25px, 3vw, 36px); line-height: 1.15; color: #371c13; text-wrap: balance;
}
.ws-root.ws-culleoka-buttons .ws-culleoka-meeting-location { font-size: 19px; }
.ws-root.ws-culleoka-buttons .ws-culleoka-meeting-december { border-left: 3px solid #7a2418; padding-left: 12px; font-size: 17px; }
.ws-root.ws-culleoka-buttons .ws-culleoka-meeting-ornaments { border-top: 1px solid #dec59e; padding-top: 12px; font-size: 17px; }

/* C&P CPR Classes. Applied only for verified native site da5545c6-d920-4928-823f-c6ea40aa02fa. */
.ws-root.ws-cp-cpr {
  --ws-bg:#faf6ee; --ws-surface:#fffdf9; --ws-text:#122d40; --ws-muted:#50616e; --ws-line:#dcded9;
  --ws-accent:#bf3038; --ws-on-accent:#fff; --ws-accent-text:#a9212b; --ws-accent-soft:#f9e8e5;
  --ws-font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ws-display:"WOVO Archivo",var(--ws-font); --ws-display-weight:800;
  --ws-header-bg:#faf6ee; --ws-header-text:#122d40; --ws-radius:12px; --ws-button-radius:6px;
  font-size:17px; line-height:1.65;
}
.ws-cp-cpr .ws-wrap { max-width:1240px; padding-inline:48px; }
.ws-cp-cpr .ws-section { padding:88px 0; scroll-margin-top:110px; }
.ws-cp-cpr .ws-header { border-bottom:1px solid #dcded9; backdrop-filter:none; }
.ws-cp-cpr .ws-header-row { min-height:88px; gap:26px; }
.ws-cp-cpr .ws-brand { font-family:var(--ws-display); font-size:20px; letter-spacing:-.04em; }
.ws-cp-cpr .ws-brand-name { max-width:240px; }
.ws-cp-cpr .ws-logo { width:190px; max-height:60px; object-fit:contain; }
.ws-cp-cpr .ws-brand-has-logo .ws-brand-name { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.ws-cp-cpr .ws-nav { gap:24px; }
.ws-cp-cpr .ws-nav a { font-size:13px; font-weight:650; }
.ws-cp-cpr .ws-button { padding:15px 24px; font-size:14px; font-weight:750; min-height:50px; box-shadow:none; transition:background .18s ease,transform .18s ease; }
.ws-cp-cpr .ws-button:hover { transform:translateY(-2px); filter:none; background:#9f232b; }
.ws-cp-cpr .ws-button-quiet { background:transparent; color:#122d40; border-color:#9ba8b0; }
.ws-cp-cpr .ws-button-quiet:hover { background:#e8ece9; }
.ws-cp-cpr a:focus-visible,.ws-cp-cpr summary:focus-visible { outline:3px solid #bf3038; outline-offset:5px; }
.ws-cp-cpr #hero { background:#faf6ee; color:#122d40; padding:80px 0 88px; overflow:hidden; }
.ws-cp-cpr #hero .ws-hero-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); align-items:center; gap:58px; }
.ws-cp-cpr #hero.ws-hero-plain .ws-hero-grid { grid-template-columns:minmax(0,1fr); }
.ws-cp-cpr #hero .ws-hero-copy { max-width:650px; padding:0; animation:none; }
.ws-cp-cpr .ws-eyebrow { color:#a9212b; font-size:11px; letter-spacing:.15em; line-height:1.6; margin:0 0 23px; }
.ws-cp-cpr #hero .ws-display { color:#122d40; font-size:clamp(40px,5.5cqw,72px); line-height:1.06; letter-spacing:-.055em; max-width:650px; margin:0 0 28px; }
.ws-cp-cpr #hero .ws-lead { color:#50616e; max-width:500px; font-size:17px; line-height:1.8; margin:0 0 32px; }
.ws-cp-cpr #hero .ws-actions { gap:12px; }
.ws-cp-cpr #hero .ws-button { background:#bf3038; border-color:#bf3038; color:#fff; }
.ws-cp-cpr #hero .ws-button-quiet { background:transparent; color:#122d40; border-color:#8b9ba6; }
.ws-cp-cpr #hero .ws-button-quiet:hover { background:#e8ece9; }
.ws-cp-cpr #hero .ws-hero-art { position:relative; inset:auto; aspect-ratio:4/3; border:0; border-radius:16px 16px 72px 16px; overflow:hidden; box-shadow:14px 14px 0 #e6e2da; }
.ws-cp-cpr #hero .ws-hero-art::after { display:none; }
.ws-cp-cpr #hero .ws-hero-img { object-fit:cover; object-position:70% center; width:100%; height:100%; }
.ws-cp-cpr .cp-image-caption { position:absolute; bottom:14px; left:18px; margin:0; padding:5px 10px; background:#faf6eef2; color:#122d40; border-radius:4px; font-size:10px; line-height:1.5; }
.ws-cp-cpr .ws-heading { font-size:clamp(29px,3.6cqw,43px); line-height:1.15; letter-spacing:-.045em; margin:0 0 18px; max-width:740px; }
.ws-cp-cpr .ws-intro { color:#50616e; max-width:660px; font-size:16px; line-height:1.8; margin:0 0 34px; }
.ws-cp-cpr #services { background:#122d40; color:#fff; }
.ws-cp-cpr #services .ws-heading { color:#faf6ee; }
.ws-cp-cpr #services .ws-intro { color:#c1cfd5; }
.ws-cp-cpr #services .ws-service-list { gap:24px; counter-reset:cp-course; }
.ws-cp-cpr #services .ws-service { counter-increment:cp-course; padding:34px; background:#1d3a4e; border:1px solid #385365; border-radius:10px; }
.ws-cp-cpr #services .ws-service::before { content:"0" counter(cp-course); display:block; color:#ef858a; font-size:13px; letter-spacing:.1em; margin-bottom:26px; }
.ws-cp-cpr #services .ws-service h3 { color:#fff; font-size:29px; line-height:1.2; flex:none; }
.ws-cp-cpr #services .ws-service p { color:#c1cfd5; font-size:15px; line-height:1.75; margin:16px 0 0; max-width:38ch; }
.ws-cp-cpr :is(#practice,#about) { background:#fffdf9; }
.ws-cp-cpr :is(#practice,#about) .ws-about-grid { gap:64px; align-items:center; }
.ws-cp-cpr :is(#practice,#about) .ws-about-art { position:relative; border-radius:12px; overflow:hidden; }
.ws-cp-cpr :is(#practice,#about) .ws-about-img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.ws-cp-cpr :is(#practice,#about) p { color:#50616e; max-width:53ch; font-size:16px; line-height:1.85; }
.ws-cp-cpr #how { background:#faf6ee; }
.ws-cp-cpr #how .ws-features { gap:28px; counter-reset:cp-step; }
.ws-cp-cpr #how .ws-feature { counter-increment:cp-step; display:block; background:transparent; padding:28px 0; border:0; border-top:1px solid #c7cdc9; border-radius:0; box-shadow:none; }
.ws-cp-cpr #how .ws-feature::before { content:"0" counter(cp-step); display:block; width:auto; height:auto; background:transparent; color:#bf3038; font-size:13px; letter-spacing:.12em; margin:0 0 22px; }
.ws-cp-cpr #how h3 { color:#122d40; font-size:21px; }
.ws-cp-cpr #how .ws-feature p { font-size:15px; color:#50616e; }
.ws-cp-cpr #who { padding:32px 0 60px; }
.ws-cp-cpr #who .ws-heading { font-size:13px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:24px; }
.ws-cp-cpr #who .ws-features { display:flex; flex-wrap:wrap; gap:10px; }
.ws-cp-cpr #who .ws-feature { background:#f1ede4; border:1px solid #dddcd3; border-radius:5px; padding:11px 16px; box-shadow:none; }
.ws-cp-cpr #who h3 { font-family:var(--ws-font); font-size:12px; font-weight:600; letter-spacing:0; margin:0; }
.ws-cp-cpr #instructors { background:#fffdf9; }
.ws-cp-cpr #instructors .ws-people { gap:24px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.ws-cp-cpr #instructors .ws-person { display:flex; flex-direction:column; padding:32px; background:#f5f2eb; border:1px solid #e0e0d7; border-radius:10px; }
.ws-cp-cpr #instructors .ws-person > div:first-child { flex:1; }
.ws-cp-cpr #instructors .cp-instructor-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:24px; }
.ws-cp-cpr #instructors .cp-instructor-actions .ws-button { padding:14px 12px; font-size:13px; }
.ws-cp-cpr #instructors .cp-instructor-actions .ws-button:nth-child(2) { --ws-on-accent:#122d40; background:transparent; border-color:#9ba8b0; }
.ws-cp-cpr #instructors .cp-instructor-actions .ws-button:nth-child(2):hover { background:#e8ece9; }
.ws-cp-cpr #instructors .ws-person h3 { font-size:25px; margin:0 0 8px; }
.ws-cp-cpr #instructors .ws-person-role { color:#a9212b; font-size:12px; font-weight:700; }
.ws-cp-cpr #instructors .ws-person p { font-size:15px; color:#50616e; }
.ws-cp-cpr :is(#instructor-contact,#links) { background:#fffdf9; padding:0 0 80px; }
.ws-cp-cpr :is(#instructor-contact,#links) .ws-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0; }
.ws-cp-cpr :is(#instructor-contact,#links) .ws-links li { min-width:0; }
.ws-cp-cpr :is(#instructor-contact,#links) .ws-button { font-size:13px; padding:14px 12px; text-align:center; justify-content:center; }
.ws-cp-cpr :is(#instructor-contact,#links) .ws-links li:nth-child(even) .ws-button { --ws-on-accent:#122d40; background:transparent; color:#122d40; border-color:#9ba8b0; }
.ws-cp-cpr #faq { background:#faf6ee; }
.ws-cp-cpr #faq .ws-wrap { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:60px; }
.ws-cp-cpr #faq .ws-heading { font-size:40px; }
.ws-cp-cpr #faq .ws-faq { margin:0; }
.ws-cp-cpr #faq details { background:transparent; border:0; border-top:1px solid #cbd1cc; border-radius:0; margin:0; padding:0; }
.ws-cp-cpr #faq details:last-child { border-bottom:1px solid #cbd1cc; }
.ws-cp-cpr #faq summary { padding:22px 35px 22px 0; color:#122d40; font-size:15px; font-weight:700; }
.ws-cp-cpr #faq details p { color:#50616e; font-size:15px; line-height:1.8; padding:0 26px 22px 0; margin:0; }
.ws-cp-cpr #book { background:#faf6ee; padding:0 0 80px; }
.ws-cp-cpr #book .ws-cta-band { background:#bf3038; color:#fff; border-radius:12px; padding:44px 48px; box-shadow:none; display:flex; justify-content:space-between; align-items:center; gap:30px; }
.ws-cp-cpr #book .ws-heading { color:#fff; font-size:36px; }
.ws-cp-cpr #book p { color:#ffe8e8; font-size:15px; max-width:52ch; }
.ws-cp-cpr #book .ws-button { background:#fff; color:#a9212b; border-color:#fff; white-space:nowrap; }
.ws-cp-cpr #contact { background:#122d40; color:#fff; padding:64px 0; }
.ws-cp-cpr #contact .ws-heading { color:#fff; }
.ws-cp-cpr #contact .ws-contact-card { background:transparent; border:0; padding:0; box-shadow:none; }
.ws-cp-cpr #contact .ws-label { color:#bccbd3; }
.ws-cp-cpr #contact a { color:#fff; }
.ws-cp-cpr #contact .ws-contact-grid { gap:40px; }
.ws-cp-cpr #contact .ws-button { border-color:#bf3038; background:#bf3038; }
.ws-cp-cpr :is(#class-hours,#hours) { background:#fffdf9; padding:48px 0; }
.ws-cp-cpr :is(#class-hours,#hours) .ws-narrow { max-width:1240px; }
.ws-cp-cpr :is(#class-hours,#hours) .ws-heading { font-size:30px; }
.ws-cp-cpr :is(#class-hours,#hours) .ws-note { color:#50616e; margin-bottom:0; }
.ws-cp-cpr :is(#class-hours,#hours) .ws-hours { margin-bottom:0; }
.ws-cp-cpr .ws-footer { background:#122d40; color:#bccbd3; border-top:1px solid #355061; padding:40px 0; }
.ws-cp-cpr .ws-footer-name { color:#fff; font-size:20px; }
.ws-cp-cpr .ws-footer a { color:#e5edf0; }
.ws-cp-cpr .ws-footer p { font-size:12px; }
.ws-cp-cpr .cp-footer-logo { display:block; width:185px; height:auto; padding:10px; background:#faf6ee; border-radius:6px; margin:0 0 20px; }
.ws-cp-cpr .ws-mobilebar { background:#faf6ee; border-color:#dcded9; }
.ws-cp-cpr .ws-menu-panel { background:#faf6ee; border-color:#dcded9; }
.ws-cp-cpr .ws-menu-panel a { color:#122d40; padding:15px; min-height:48px; }
.ws-cp-cpr .ws-menu summary { color:#122d40; min-height:44px; }
.ws-cp-cpr .ws-hero-copy,.ws-cp-cpr .ws-about-grid,.ws-cp-cpr .ws-service-list,.ws-cp-cpr .ws-features,.ws-cp-cpr .ws-people { animation:none; }
@container ws (max-width:1050px) {
  .ws-cp-cpr .ws-wrap { padding-inline:32px; }
  .ws-cp-cpr .ws-header-row { gap:14px; }
  .ws-cp-cpr .ws-nav { gap:15px; }
  .ws-cp-cpr .ws-nav a { font-size:12px; }
  .ws-cp-cpr .ws-brand { font-size:17px; }
  .ws-cp-cpr #hero .ws-hero-grid { gap:32px; }
}
@container ws (max-width:760px) {
  .ws-cp-cpr .ws-wrap { padding-inline:24px; }
  .ws-cp-cpr .ws-section { padding:56px 0; scroll-margin-top:95px; }
  .ws-cp-cpr .ws-header-row { min-height:76px; }
  .ws-cp-cpr .ws-brand { font-size:17px; }
  .ws-cp-cpr .ws-logo { width:148px; max-height:48px; }
  .ws-cp-cpr #hero { padding:48px 0 60px; }
  .ws-cp-cpr #hero .ws-hero-grid { grid-template-columns:minmax(0,1fr); gap:34px; }
  .ws-cp-cpr #hero .ws-display { font-size:clamp(40px,9.5cqw,58px); line-height:1.08; }
  .ws-cp-cpr #hero .ws-lead { font-size:15px; }
  .ws-cp-cpr #hero .ws-hero-art { aspect-ratio:4/3; border-radius:12px 12px 48px 12px; box-shadow:8px 8px 0 #e6e2da; }
  .ws-cp-cpr .ws-eyebrow { font-size:10px; margin-bottom:20px; }
  .ws-cp-cpr .ws-button { padding:14px 19px; font-size:13px; }
  .ws-cp-cpr .ws-heading { font-size:32px; }
  .ws-cp-cpr #services .ws-service-list { grid-template-columns:minmax(0,1fr); gap:16px; }
  .ws-cp-cpr #services .ws-service { padding:28px; }
  .ws-cp-cpr :is(#practice,#about) .ws-about-grid { gap:28px; grid-template-columns:minmax(0,1fr); }
  .ws-cp-cpr #how .ws-features { gap:8px; }
  .ws-cp-cpr #how .ws-feature { padding:24px 0; }
  .ws-cp-cpr #who { padding:8px 0 48px; }
  .ws-cp-cpr #instructors .ws-people { grid-template-columns:minmax(0,1fr); gap:16px; }
  .ws-cp-cpr #instructors .cp-instructor-actions { grid-template-columns:minmax(0,1fr); }
  .ws-cp-cpr :is(#instructor-contact,#links) { padding:0 0 56px; }
  .ws-cp-cpr :is(#instructor-contact,#links) .ws-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ws-cp-cpr #faq .ws-wrap { display:block; }
  .ws-cp-cpr #faq .ws-heading { font-size:32px; margin-bottom:28px; }
  .ws-cp-cpr #book { padding:0 0 56px; }
  .ws-cp-cpr #book .ws-cta-band { display:block; padding:30px 24px; }
  .ws-cp-cpr #book .ws-heading { font-size:29px; }
  .ws-cp-cpr #book .ws-button { margin-top:15px; }
  .ws-cp-cpr #contact { padding:48px 0; }
}
@media (prefers-reduced-motion:reduce) {
  .ws-cp-cpr .ws-button { transition:none; }
  .ws-cp-cpr .ws-button:hover { transform:none; }
}

/* Darryl's existing native site only. Words, links, forms and image choices
   remain editable builder data. Keep the supplied brokerage mark uncropped. */
.ws-root.ws-darryl { --ws-brass:#9a7329; --ws-bg:#fbfaf8; --ws-surface:#f6f1e7; --ws-text:#172131; --ws-muted:#535e6c; --ws-line:#ddd9d1; --ws-ink:#071d35; }
.ws-root.ws-darryl .ws-header-row { flex-wrap:wrap; gap:12px 22px; padding-top:16px; padding-bottom:10px; }
.ws-root.ws-darryl .ws-brand { flex:1 1 440px; align-items:center; gap:18px; min-width:0; flex-wrap:nowrap; }
.ws-root.ws-darryl .ws-brand-name { font-size:clamp(27px,3cqi,36px); font-weight:700; letter-spacing:-.025em; line-height:1.08; white-space:normal; max-width:14ch; min-width:0; flex:1; }
.ws-root.ws-darryl .ws-logo { width:116px; height:116px; max-width:116px; object-fit:contain; flex:none; }
.ws-root.ws-darryl .ws-header-call { display:flex !important; font-weight:700; font-size:18px; }
.ws-root.ws-darryl .ws-header-call span { display:inline !important; }
.ws-root.ws-darryl .ws-nav { order:4; flex:1 1 100%; justify-content:flex-start; border-top:1px solid var(--ws-line); padding-top:4px; flex-wrap:wrap; gap:4px 22px; }
.ws-root.ws-darryl .ws-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:16px; opacity:1; }
.ws-root.ws-darryl .ws-nav a:hover { color:var(--ws-accent-text); text-decoration:underline; text-underline-offset:6px; }
.ws-root.ws-darryl .ws-section { padding:clamp(44px,4.8cqi,68px) 0; }
.ws-root.ws-darryl .ws-block-hero { padding:clamp(40px,4.5cqi,72px) 0; }
.ws-root.ws-darryl .ws-hero-grid { gap:clamp(28px,4cqi,54px); }
.ws-root.ws-darryl .ws-hero-media .ws-hero-art { aspect-ratio:3 / 4; max-height:600px; box-shadow:none; border-radius:12px; }
.ws-root.ws-darryl .ws-hero-img { object-position:center 25%; }
.ws-root.ws-darryl .ws-eyebrow { letter-spacing:.06em; font-size:14px; line-height:1.6; }
.ws-root.ws-darryl .ws-display { font-size:clamp(40px,5.2cqi,66px); max-width:16ch; line-height:1.08; letter-spacing:-.025em; text-wrap:balance; }
.ws-root.ws-darryl .ws-heading { font-size:clamp(29px,3.4cqi,40px); line-height:1.15; letter-spacing:-.02em; text-wrap:balance; margin-bottom:18px !important; }
.ws-root.ws-darryl .ws-page-head { padding:clamp(34px,3.8cqi,54px) 0; }
.ws-root.ws-darryl .ws-page-head .ws-display { font-size:clamp(36px,4.4cqi,54px); max-width:24ch; }
.ws-root.ws-darryl .ws-page-head .ws-eyebrow { margin-bottom:10px !important; }
.ws-root.ws-darryl .ws-lead { font-size:19px; line-height:1.7; }
.ws-root.ws-darryl .ws-intro, .ws-root.ws-darryl .ws-form-copy p { line-height:1.7; }
.ws-root.ws-darryl .ws-prose { max-width:72ch; }
.ws-root.ws-darryl .ws-button { text-transform:none; letter-spacing:0; min-height:48px; font-size:16px; border-radius:6px; line-height:1.35; }
.ws-root.ws-darryl .ws-actions { gap:12px; margin-top:24px; }
.ws-root.ws-darryl .ws-feature { border-top:2px solid var(--ws-brass); padding-top:22px; }
.ws-root.ws-darryl .ws-feature h3 { font-size:23px; margin-bottom:10px !important; }
.ws-root.ws-darryl .ws-feature p { font-size:16px; line-height:1.65; }
.ws-root.ws-darryl .ws-features { gap:28px; }
.ws-root.ws-darryl #meet-darryl { background:#f6f1e7; }
.ws-root.ws-darryl #meet-darryl .ws-heading { font-size:28px; }
.ws-root.ws-darryl #meet-darryl .ws-about-grid { grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:clamp(24px,4cqi,48px); align-items:center; }
.ws-root.ws-darryl #meet-darryl img { width:100%; max-width:420px; height:auto; aspect-ratio:auto; object-fit:contain; background:transparent; justify-self:end; }
.ws-root.ws-darryl #about-bio .ws-about-img { height:auto; aspect-ratio:auto; max-height:600px; object-fit:contain; object-position:top center; border-radius:12px; }
.ws-root.ws-darryl .ws-links { grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:20px; margin-top:24px; }
.ws-root.ws-darryl #tools .ws-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ws-root.ws-darryl .ws-links > li { padding:24px; gap:14px; background:#fff; border-radius:12px; }
.ws-root.ws-darryl .ws-links > li .ws-button { margin-top:0; justify-content:flex-start; text-align:left; background:transparent; color:var(--ws-accent-text) !important; border-color:#cfc6bc; }
.ws-root.ws-darryl .ws-links > li .ws-button:hover { background:var(--ws-surface); filter:none; border-color:var(--ws-accent-text); }
.ws-root.ws-darryl .ws-links > li .ws-note { order:0; color:var(--ws-muted); font-size:16px; line-height:1.65; }
.ws-root.ws-darryl .ws-block-form { background:#f5f6f7; }
.ws-root.ws-darryl .ws-form-wrap { gap:40px; }
.ws-root.ws-darryl .ws-form { background:#fff; border:1px solid var(--ws-line); border-radius:16px; padding:30px; box-shadow:0 8px 24px -20px #292c30; }
.ws-root.ws-darryl .ws-form-copy { align-self:start; }
.ws-root.ws-darryl .ws-form-grid { gap:20px; }
.ws-root.ws-darryl .ws-field label { font-size:16px; }
.ws-root.ws-darryl .ws-field input, .ws-root.ws-darryl .ws-field select, .ws-root.ws-darryl .ws-field textarea { min-height:50px; background:#fff; border-color:#87817a; border-radius:6px; }
.ws-root.ws-darryl .ws-field input::placeholder, .ws-root.ws-darryl .ws-field textarea::placeholder { color:#62666b; opacity:1; }
.ws-root.ws-darryl .ws-form-foot { gap:14px; margin-top:24px; }
.ws-root.ws-darryl .ws-form-note { line-height:1.6; }
.ws-root.ws-darryl .ws-contact-list a { display:inline-block; min-height:44px; padding:5px 0; }
.ws-root.ws-darryl .ws-contact-list .ws-label { letter-spacing:.08em; font-size:13px; }
.ws-root.ws-darryl .ws-faq-item { padding:18px 0; }
.ws-root.ws-darryl .ws-faq-item summary { min-height:48px; line-height:1.45; }
.ws-root.ws-darryl .ws-block-cta { padding:clamp(40px,4.8cqi,64px) 0; }
.ws-root.ws-darryl .ws-block-cta .ws-heading { max-width:24ch; }
.ws-root.ws-darryl [id$="-brokerage"], .ws-root.ws-darryl #brokerage { padding-top:28px; padding-bottom:28px; border-top:1px solid var(--ws-line); }
.ws-root.ws-darryl [id$="-brokerage"] .ws-heading, .ws-root.ws-darryl #brokerage .ws-heading { font-size:32px; }
.ws-root.ws-darryl .ws-footer { background:#071d35; color:#fff; padding-top:48px; }
.ws-root.ws-darryl .ws-footer-name { font-size:34px; line-height:1.12; }
.ws-root.ws-darryl .ws-footer .ws-footer-name, .ws-root.ws-darryl .ws-footer a { color:#fff; }
.ws-root.ws-darryl .ws-footer-nav a, .ws-root.ws-darryl .ws-footer-contact a { display:inline-flex; align-items:center; min-height:44px; }
.ws-root.ws-darryl .ws-footer-bottom { gap:16px; }
.ws-root.ws-darryl .ws-thanks { padding:64px 0; }
/* The two-color ring remains visible on navy, gold and the house image. */
.ws-root.ws-darryl a:focus-visible, .ws-root.ws-darryl summary:focus-visible, .ws-root.ws-darryl button:focus-visible, .ws-root.ws-darryl input:focus-visible, .ws-root.ws-darryl select:focus-visible, .ws-root.ws-darryl textarea:focus-visible { outline:3px solid #17191c !important; outline-offset:4px; box-shadow:0 0 0 4px #fff; }
.ws-root.ws-darryl a, .ws-root.ws-darryl button, .ws-root.ws-darryl summary, .ws-root.ws-darryl input, .ws-root.ws-darryl select, .ws-root.ws-darryl textarea, .ws-root.ws-darryl [id] { scroll-margin-top:230px; }
/* Container queries also cover narrow native editor previews. */
@container ws (max-width:1100px) {
 .ws-root.ws-darryl .ws-nav { display:none; }
 .ws-root.ws-darryl .ws-brand { flex-basis:100%; }
 .ws-root.ws-darryl .ws-menu { margin-left:auto; }
 .ws-root.ws-darryl .ws-menu summary { min-height:48px; padding:10px 16px; border-color:#87817a; }
 .ws-root.ws-darryl .ws-menu-panel { max-height:calc(100dvh - 260px); background:var(--ws-bg); padding-bottom:24px; }
 .ws-root.ws-darryl .ws-menu-panel a:not(.ws-button) { min-height:48px; padding:12px 4px; }
}
@container ws (max-width:760px) {
 .ws-root.ws-darryl .ws-header-row { gap:8px 12px; padding-top:12px; padding-bottom:12px; }
 .ws-root.ws-darryl .ws-brand { gap:14px; }
 .ws-root.ws-darryl .ws-brand-name { font-size:27px; max-width:14ch; }
 .ws-root.ws-darryl .ws-logo { width:96px; height:96px; max-width:96px; }
 .ws-root.ws-darryl .ws-header-call { font-size:17px; }
 .ws-root.ws-darryl .ws-section { padding:42px 0; }
 .ws-root.ws-darryl .ws-block-hero { padding:36px 0 42px; min-height:0; }
 .ws-root.ws-darryl .ws-display { font-size:40px; }
 .ws-root.ws-darryl .ws-eyebrow { font-size:13px; margin-bottom:14px !important; }
 .ws-root.ws-darryl .ws-lead { font-size:18px; line-height:1.65; }
 .ws-root.ws-darryl .ws-hero-media .ws-hero-art { aspect-ratio:3 / 4; max-height:none; }
 .ws-root.ws-darryl .ws-links { grid-template-columns:minmax(0,1fr); gap:14px; }
 .ws-root.ws-darryl #tools .ws-links { grid-template-columns:minmax(0,1fr); }
 .ws-root.ws-darryl .ws-links > li { padding:20px; }
 .ws-root.ws-darryl .ws-form { padding:20px; }
 .ws-root.ws-darryl .ws-form-wrap { gap:22px; }
 .ws-root.ws-darryl .ws-form-foot .ws-button { width:100%; }
 .ws-root.ws-darryl .ws-footer { padding-bottom:calc(110px + env(safe-area-inset-bottom)); }
 .ws-root.ws-darryl .ws-mobilebar { gap:8px; }
 .ws-root.ws-darryl .ws-mobilebar .ws-button { font-size:15px; padding:10px 8px; }
 .ws-root.ws-darryl a, .ws-root.ws-darryl button, .ws-root.ws-darryl summary, .ws-root.ws-darryl input, .ws-root.ws-darryl select, .ws-root.ws-darryl textarea, .ws-root.ws-darryl [id] { scroll-margin-top:200px; scroll-margin-bottom:90px; }
}
@container ws (max-width:360px) {
 .ws-root.ws-darryl .ws-brand { gap:10px; }
 .ws-root.ws-darryl .ws-brand-name { font-size:25px; }
 .ws-root.ws-darryl .ws-display { font-size:36px; }
 .ws-root.ws-darryl .ws-header-call { font-size:16px; }
 .ws-root.ws-darryl .ws-menu summary { padding:10px 12px; }
}
/* Tablets keep text/photo columns; phones get the complete portrait below text. */
@container ws (max-width:640px) {
 .ws-root.ws-darryl #meet-darryl .ws-about-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
 .ws-root.ws-darryl #meet-darryl img { max-width:100%; justify-self:center; }
}
@media print {
 .ws-root.ws-darryl .ws-header { position:static; }
 .ws-root.ws-darryl .ws-mobilebar, .ws-root.ws-darryl .ws-menu { display:none; }
 .ws-root.ws-darryl .ws-section { break-inside:avoid; }
}

/* Full-width house hero. Its photo, copy and both actions are native fields. */
.ws-root.ws-darryl #hero.ws-hero-media { position:relative; isolation:isolate; overflow:hidden; background:#071d35; color:#fff; padding:clamp(72px,7.5cqi,118px) 0; min-height:640px; display:grid; align-items:center; }
.ws-root.ws-darryl #hero .ws-hero-grid { display:block; position:static; width:100%; }
.ws-root.ws-darryl #hero .ws-hero-art { position:absolute; inset:0; aspect-ratio:auto; max-height:none; border-radius:0; z-index:-2; box-shadow:none; }
.ws-root.ws-darryl #hero .ws-hero-img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.ws-root.ws-darryl #hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(5,22,40,.96),rgba(5,22,40,.84) 42%,rgba(5,22,40,.38) 78%,rgba(5,22,40,.18)); }
.ws-root.ws-darryl #hero .ws-hero-copy { max-width:690px; position:relative; }
.ws-root.ws-darryl #hero .ws-display { color:#fff; font-size:clamp(44px,5.4cqi,76px); max-width:16ch; line-height:1.05; }
.ws-root.ws-darryl #hero .ws-eyebrow { color:#e4c47f; font-weight:700; }
.ws-root.ws-darryl #hero .ws-lead { color:#fff; max-width:56ch; }
.ws-root.ws-darryl #hero .ws-button { background:#d6ad56; border-color:#d6ad56; color:#071d35 !important; font-weight:700; }
.ws-root.ws-darryl #hero .ws-button-quiet { background:#fff; border-color:#fff; color:#071d35 !important; }
.ws-root.ws-darryl #hero-image-note { padding:12px 0; background:#071d35; color:#e4e8ed; }
.ws-root.ws-darryl #hero-image-note p { font-size:13px; line-height:1.5; margin:0; }
.ws-root.ws-darryl .ws-block-cta { background:#071d35; color:#fff; }
.ws-root.ws-darryl .ws-block-cta .ws-heading { color:#fff; }
.ws-root.ws-darryl .ws-block-cta .ws-button { background:#d6ad56; border-color:#d6ad56; color:#071d35 !important; }
.ws-root.ws-darryl .ws-feature { border-top-color:#d6ad56; }
@container ws (max-width:760px) {
 .ws-root.ws-darryl #hero.ws-hero-media { padding:54px 0 60px; min-height:610px; }
 .ws-root.ws-darryl #hero .ws-display { font-size:clamp(39px,10cqi,50px); max-width:15ch; }
 .ws-root.ws-darryl #hero .ws-hero-copy { max-width:100%; }
 .ws-root.ws-darryl #hero .ws-hero-img { object-position:58% center; }
 .ws-root.ws-darryl #hero::after { background:linear-gradient(90deg,rgba(5,22,40,.94),rgba(5,22,40,.81) 65%,rgba(5,22,40,.68)); }
 .ws-root.ws-darryl #hero .ws-actions { align-items:stretch; flex-direction:column; max-width:340px; }
 .ws-root.ws-darryl #hero .ws-button { width:100%; }
}
@media print {
 .ws-root.ws-darryl #hero.ws-hero-media { color:#172131; background:#fff; min-height:0; padding:30px 0; }
 .ws-root.ws-darryl #hero .ws-hero-art, .ws-root.ws-darryl #hero::after { display:none; }
 .ws-root.ws-darryl #hero .ws-display, .ws-root.ws-darryl #hero .ws-lead { color:#172131; }
}

.ws-darryl .ws-native-calculator{width:100%;min-width:0;padding:clamp(20px,3vw,36px);border:1px solid var(--ws-line,#dedbd5);background:#fff;border-radius:18px}
.ws-darryl .ws-native-calculator fieldset{margin:0;padding:0;border:0;min-width:0}
.ws-darryl .ws-native-calculator legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.ws-darryl .ws-native-calculator .ws-form-foot{flex-wrap:wrap;gap:12px}
.ws-darryl .ws-calc-clear{border:1px solid #8d8b85;background:transparent;color:inherit;border-radius:999px;padding:12px 20px;font:inherit;cursor:pointer}
.ws-darryl .ws-calc-result{margin-top:24px;padding:22px;border-radius:12px;background:#f3f6f4;scroll-margin-top:110px}
.ws-darryl .ws-calc-result h3{font-size:1.2rem;margin:0 0 8px}
.ws-darryl .ws-calc-total{font-size:clamp(28px,4vw,42px);line-height:1.15;letter-spacing:-.04em;margin:8px 0 20px;font-weight:700;color:#174736}
.ws-darryl .ws-calc-result dl{margin:0;display:grid;gap:8px}
.ws-darryl .ws-calc-result dl>div{display:flex;gap:12px;justify-content:space-between;align-items:baseline;border-bottom:1px solid #d9e2dc;padding-bottom:8px}
.ws-darryl .ws-calc-result dt{min-width:0}.ws-darryl .ws-calc-result dd{margin:0;flex-shrink:0;font-variant-numeric:tabular-nums;font-weight:650}
.ws-darryl .ws-calc-error{color:#8a2424;font-weight:650;scroll-margin-top:110px}
.ws-darryl .ws-calc-error:empty{display:none}.ws-darryl .ws-calc-note{font-size:.86rem;line-height:1.6;color:#5e625d;margin:18px 0 0}
.ws-darryl .ws-native-calculator input:focus-visible,.ws-darryl .ws-native-calculator button:focus-visible,.ws-darryl .ws-calc-result:focus-visible,.ws-darryl .ws-calc-error:focus-visible{outline:3px solid #286649;outline-offset:4px}
@media(max-width:540px){.ws-darryl .ws-native-calculator .ws-form-grid{grid-template-columns:1fr}.ws-darryl .ws-calc-result{padding:16px}.ws-darryl .ws-calc-result dl>div{font-size:.88rem;gap:8px}}

.ws-darryl .ws-darryl-adam-demo{background:#f4f1e8;color:#29362e;padding:44px 0}.ws-darryl .ws-darryl-adam-demo .ws-wrap{max-width:840px}.ws-darryl .ws-demo-disclosure{display:block;font:700 14px/1.5 system-ui;letter-spacing:.01em;color:#7e272b;margin:0 0 14px}.ws-darryl .ws-demo-questions,.ws-darryl .ws-demo-actions{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.ws-darryl .ws-demo-questions button,.ws-darryl .ws-demo-actions a{font:600 16px/1.4 system-ui;min-height:44px;padding:12px 18px;border:1px solid #34483b;border-radius:8px;background:#fff;color:#29362e;text-decoration:none;cursor:pointer}.ws-darryl .ws-demo-questions button[aria-pressed=true],.ws-darryl .ws-demo-actions a{background:#34483b;color:#fff}.ws-darryl .ws-demo-questions button:disabled{opacity:.6;cursor:default}.ws-darryl .ws-demo-reply{padding:22px;border:1px solid #d1d5ca;border-radius:12px;background:#fff}.ws-darryl .ws-demo-reply p{margin:0 0 12px}.ws-darryl .ws-demo-powered{font:600 13px/1.5 system-ui}.ws-darryl .ws-darryl-adam-demo :focus-visible{outline:3px solid #aa2530;outline-offset:3px}@media(max-width:480px){.ws-darryl .ws-demo-questions button{width:100%;text-align:left}.ws-darryl .ws-demo-reply{padding:18px}}

/* Owner, October 15, 2026: Darryl asked for darrylmartinrealtor.com to match darryl-selling.homes. Same navy and gold,
   Georgia headlines, full-bleed hero, gold "Experience matters" strip, white tool cards, navy portrait card with the gold
   quote, white search band, grey home-value section and navy closing band. Words, links and photos stay builder data. */
.ws-root.ws-darryl { --ws-navy:#071d35; --ws-gold:#d6ad56; --ws-cream:#f6f1e7; --ws-bg:#fbfaf8; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; }
.ws-root.ws-darryl .ws-display, .ws-root.ws-darryl .ws-heading, .ws-root.ws-darryl .ws-brand-name, .ws-root.ws-darryl .ws-footer-name { font-family:Georgia,"Times New Roman",serif; font-weight:500; letter-spacing:0; }
.ws-root.ws-darryl .ws-heading { font-size:clamp(34px,5cqi,50px); line-height:1.08; }
.ws-root.ws-darryl .ws-button { border-radius:8px; font-weight:900; font-size:14px; text-transform:uppercase; letter-spacing:.04em; min-height:48px; padding:14px 18px; }
/* Hero: photo behind a navy gradient, headline white, first line of the lead in gold italic script. */
.ws-root.ws-darryl #hero { background:#071d35; color:#fff; min-height:min(86vh,760px); display:flex; align-items:flex-end; padding:0 !important; position:relative; isolation:isolate; }
.ws-root.ws-darryl #hero .ws-hero-art, .ws-root.ws-darryl #hero::after { display:block !important; }
.ws-root.ws-darryl #hero .ws-hero-art { position:absolute; inset:0; z-index:-2; aspect-ratio:auto; max-height:none; border-radius:0; box-shadow:none; margin:0; }
.ws-root.ws-darryl #hero .ws-hero-img { width:100%; height:100%; object-fit:cover; object-position:center; border-radius:0; }
.ws-root.ws-darryl #hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(5,22,40,.94) 0%,rgba(5,22,40,.82) 34%,rgba(5,22,40,.38) 63%,rgba(5,22,40,.04) 100%),linear-gradient(transparent 70%,rgba(3,13,24,.35)); }
.ws-root.ws-darryl #hero .ws-hero-grid { grid-template-columns:minmax(0,1fr); padding:clamp(54px,8cqi,120px) 0 72px; }
.ws-root.ws-darryl #hero .ws-hero-copy { max-width:720px; }
.ws-root.ws-darryl #hero .ws-eyebrow { color:var(--ws-gold); font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:900; }
.ws-root.ws-darryl #hero .ws-display { color:#fff; font-size:clamp(50px,7cqi,82px); font-weight:500; line-height:.96; max-width:14ch; margin:14px 0; }
.ws-root.ws-darryl #hero .ws-lead { color:#eef2f5; font-size:18px; line-height:1.6; max-width:620px; }
.ws-root.ws-darryl #hero .ws-lead:first-of-type { font-family:Georgia,"Times New Roman",serif; font-style:italic; color:var(--ws-gold); font-size:clamp(25px,4cqi,36px); line-height:1.2; margin-bottom:14px; }
.ws-root.ws-darryl #hero .ws-actions { flex-direction:row; flex-wrap:wrap; max-width:none; gap:11px; margin-top:22px; }
.ws-root.ws-darryl #hero .ws-button { width:auto; background:var(--ws-gold); border-color:var(--ws-gold); color:var(--ws-navy) !important; }
.ws-root.ws-darryl #hero .ws-button-quiet { background:#fff; border-color:#fff; color:var(--ws-navy) !important; }
/* Experience strip: gold bar with the headline, cream row of four points. */
.ws-root.ws-darryl #experience { background:var(--ws-cream) !important; color:#172131 !important; padding:0 !important; border-bottom:1px solid #ece5da; }
.ws-root.ws-darryl #experience .ws-wrap { max-width:none; padding:0; }
.ws-root.ws-darryl #experience .ws-heading { background:var(--ws-gold); color:var(--ws-navy); text-align:center; font-family:inherit; font-size:13px; font-weight:900; letter-spacing:.11em; text-transform:uppercase; padding:13px 20px; margin:0 !important; }
.ws-root.ws-darryl #experience .ws-features { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; padding:23px clamp(17px,3cqi,40px); width:min(1160px,100%); margin:0 auto; }
.ws-root.ws-darryl #experience .ws-feature { border:0; padding:0; text-align:center; background:transparent; box-shadow:none; border-radius:0; display:block; }
.ws-root.ws-darryl #experience .ws-feature svg, .ws-root.ws-darryl #experience .ws-feature-icon { display:none; }
.ws-root.ws-darryl #experience .ws-feature h3 { font-family:inherit; font-size:15px; font-weight:800; margin:0 0 3px !important; color:#172131; }
.ws-root.ws-darryl #experience .ws-feature p { font-size:12px; color:#737373; line-height:1.4; }
/* Tool cards: four white cards, bold title, muted note. */
.ws-root.ws-darryl #tools { padding:70px 0; }
.ws-root.ws-darryl #tools .ws-heading::before { content:"Helping families move forward"; display:block; font-family:inherit; font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:900; color:var(--ws-gold); margin-bottom:7px; }
.ws-root.ws-darryl #tools .ws-links { grid-template-columns:repeat(4,1fr); gap:15px; }
.ws-root.ws-darryl #tools .ws-links > li { background:#fff; border:1px solid #e6e1d8; border-radius:14px; padding:23px; box-shadow:0 12px 28px rgba(10,25,45,.05); gap:7px; }
.ws-root.ws-darryl #tools .ws-links > li .ws-button { background:transparent; border:0; padding:0; min-height:0; color:var(--ws-navy) !important; font-family:inherit; font-size:16px; font-weight:800; text-transform:none; letter-spacing:0; text-align:left; justify-content:flex-start; }
.ws-root.ws-darryl #tools .ws-links > li .ws-button::before { content:"✦"; display:block; font-size:28px; color:#9a762d; margin-bottom:10px; font-weight:400; }
.ws-root.ws-darryl #tools .ws-links > li .ws-note { font-size:14px; color:#697383; line-height:1.5; }
/* Portrait card: navy, photo on the left, gold italic quote. */
.ws-root.ws-darryl #meet-darryl { background:transparent !important; color:#fff !important; padding:0 0 70px !important; }
.ws-root.ws-darryl #meet-darryl .ws-wrap { background:var(--ws-navy); border-radius:20px; overflow:hidden; }
.ws-root.ws-darryl #meet-darryl .ws-about-grid { grid-template-columns:.88fr 1.12fr; gap:0; align-items:stretch; direction:rtl; }
.ws-root.ws-darryl #meet-darryl .ws-about-grid > * { direction:ltr; }
.ws-root.ws-darryl #meet-darryl .ws-about-grid > div:first-child { padding:48px; display:flex; flex-direction:column; justify-content:center; }
.ws-root.ws-darryl #meet-darryl .ws-about-art { margin:0; }
.ws-root.ws-darryl #meet-darryl img, .ws-root.ws-darryl #meet-darryl .ws-about-img { width:100%; max-width:none; height:100%; min-height:520px; object-fit:cover; object-position:center 18%; border-radius:0; justify-self:stretch; background:var(--ws-navy); }
.ws-root.ws-darryl #meet-darryl .ws-heading { color:#fff; font-size:clamp(34px,5cqi,50px); margin-bottom:8px !important; }
.ws-root.ws-darryl #meet-darryl .ws-heading::before { content:"Your Middle Tennessee REALTOR®"; display:block; font-family:inherit; font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:900; color:var(--ws-gold); margin-bottom:10px; }
.ws-root.ws-darryl #meet-darryl p { color:#d8e0e8; line-height:1.7; }
.ws-root.ws-darryl #meet-darryl p:first-of-type { color:#fff; font-weight:800; }
.ws-root.ws-darryl #meet-darryl p:nth-of-type(3) { font-family:Georgia,"Times New Roman",serif; font-style:italic; color:var(--ws-gold); font-size:23px; border-left:3px solid var(--ws-gold); padding-left:16px; margin:18px 0; }
.ws-root.ws-darryl #reach-darryl { padding:0 0 70px !important; margin-top:-56px; }
.ws-root.ws-darryl #reach-darryl .ws-wrap { background:var(--ws-navy); border-radius:0 0 20px 20px; padding:0 48px 40px; }
.ws-root.ws-darryl #reach-darryl .ws-heading { display:none; }
.ws-root.ws-darryl #reach-darryl .ws-links { display:flex; flex-wrap:wrap; gap:11px; margin:0; }
.ws-root.ws-darryl #reach-darryl .ws-links > li { background:transparent; border:0; padding:0; box-shadow:none; }
.ws-root.ws-darryl #reach-darryl .ws-links > li .ws-note { display:none; }
.ws-root.ws-darryl #reach-darryl .ws-links > li .ws-button { background:var(--ws-gold); border-color:var(--ws-gold); color:var(--ws-navy) !important; }
.ws-root.ws-darryl #reach-darryl .ws-links > li:nth-child(2) .ws-button { background:#fff; border-color:#fff; }
.ws-root.ws-darryl #reach-darryl .ws-links > li:nth-child(3) .ws-button { background:transparent; border:1px solid rgba(255,255,255,.5); color:#fff !important; }
/* Search band: white card, photo left, navy button right below the copy. */
.ws-root.ws-darryl #live-search { padding:0 !important; }
.ws-root.ws-darryl #live-search .ws-wrap { background:#fff; border:1px solid #e6e1d8; border-radius:18px 18px 0 0; overflow:hidden; }
.ws-root.ws-darryl #live-search .ws-about-grid { grid-template-columns:1.08fr .92fr; gap:0; direction:rtl; align-items:stretch; }
.ws-root.ws-darryl #live-search .ws-about-grid > * { direction:ltr; }
.ws-root.ws-darryl #live-search .ws-about-grid > div:first-child { padding:42px 42px 8px; }
.ws-root.ws-darryl #live-search .ws-about-art { margin:0; }
.ws-root.ws-darryl #live-search img, .ws-root.ws-darryl #live-search .ws-about-img { width:100%; height:100%; min-height:420px; object-fit:cover; border-radius:0; }
.ws-root.ws-darryl #live-search p:first-of-type { font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:900; color:var(--ws-gold); }
.ws-root.ws-darryl #live-search p { color:#697383; line-height:1.65; }
.ws-root.ws-darryl #browse { padding:0 0 70px !important; background:transparent !important; color:#172131 !important; }
.ws-root.ws-darryl #browse .ws-wrap { background:#fff; border:1px solid #e6e1d8; border-top:0; border-radius:0 0 18px 18px; padding:0 42px 42px; text-align:left; }
.ws-root.ws-darryl #browse .ws-heading, .ws-root.ws-darryl #browse p { display:none; }
.ws-root.ws-darryl #browse .ws-actions { justify-content:flex-start; margin:0; }
.ws-root.ws-darryl #browse .ws-button { background:var(--ws-navy); border-color:var(--ws-navy); color:#fff !important; }
/* Home value: grey section, white form box. Payment: cream box. Closing band: navy, centered, gold button. */
.ws-root.ws-darryl #home-value { background:#f5f6f7 !important; padding:70px 0 !important; }
.ws-root.ws-darryl #home-value .ws-heading::before { content:"Thinking about making a move?"; display:block; font-family:inherit; font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:900; color:var(--ws-gold); margin-bottom:7px; }
.ws-root.ws-darryl #home-value .ws-form { background:#fff; border:1px solid #e6e1d8; border-radius:15px; padding:25px; box-shadow:0 10px 28px rgba(10,25,45,.04); }
.ws-root.ws-darryl #home-value .ws-button { background:var(--ws-navy); border-color:var(--ws-navy); color:#fff !important; }
.ws-root.ws-darryl #payment { background:#fbfaf8 !important; color:#172131 !important; padding:70px 0 !important; }
.ws-root.ws-darryl #payment .ws-cta-band { text-align:left; align-items:flex-start; }
.ws-root.ws-darryl #payment .ws-heading::before { content:"Buyer tool"; display:block; font-family:inherit; font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:900; color:var(--ws-gold); margin-bottom:7px; }
.ws-root.ws-darryl #payment p { background:var(--ws-cream); border-radius:10px; padding:19px; color:#697383; max-width:720px; }
.ws-root.ws-darryl #payment .ws-actions { justify-content:flex-start; }
.ws-root.ws-darryl #payment .ws-button { background:var(--ws-navy); border-color:var(--ws-navy); color:#fff !important; }
.ws-root.ws-darryl #value { background:var(--ws-navy) !important; color:#fff !important; padding:70px 0 !important; text-align:center; }
.ws-root.ws-darryl #value .ws-heading { color:#fff; }
.ws-root.ws-darryl #value .ws-heading::before { content:"Let's connect"; display:block; font-family:inherit; font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:900; color:var(--ws-gold); margin-bottom:7px; }
.ws-root.ws-darryl #value p { color:#d7e0e8; }
.ws-root.ws-darryl #value .ws-button { background:var(--ws-gold); border-color:var(--ws-gold); color:var(--ws-navy) !important; }
.ws-root.ws-darryl #home-policies { padding:40px 0 20px !important; }
@media (max-width: 900px) {
  .ws-root.ws-darryl #experience .ws-features, .ws-root.ws-darryl #tools .ws-links { grid-template-columns:repeat(2,1fr); }
  .ws-root.ws-darryl #meet-darryl .ws-about-grid, .ws-root.ws-darryl #live-search .ws-about-grid { grid-template-columns:minmax(0,1fr); direction:ltr; }
  .ws-root.ws-darryl #meet-darryl img, .ws-root.ws-darryl #meet-darryl .ws-about-img { min-height:0; aspect-ratio:4 / 5; }
  .ws-root.ws-darryl #live-search img, .ws-root.ws-darryl #live-search .ws-about-img { min-height:0; aspect-ratio:16 / 10; }
  .ws-root.ws-darryl #meet-darryl .ws-about-grid > div:first-child, .ws-root.ws-darryl #reach-darryl .ws-wrap { padding-left:24px; padding-right:24px; }
  .ws-root.ws-darryl #live-search .ws-about-grid > div:first-child, .ws-root.ws-darryl #browse .ws-wrap { padding-left:24px; padding-right:24px; }
}
@media (max-width: 600px) { .ws-root.ws-darryl #experience .ws-features, .ws-root.ws-darryl #tools .ws-links { grid-template-columns:minmax(0,1fr); } .ws-root.ws-darryl #hero .ws-actions { flex-direction:column; align-items:stretch; } }
.ws-root.ws-darryl #payment .ws-cta-band, .ws-root.ws-darryl #value .ws-cta-band, .ws-root.ws-darryl #browse .ws-cta-band { background:transparent; padding:0; border-radius:0; box-shadow:none; }
.ws-root.ws-darryl #experience .ws-heading { max-width:none; width:100%; display:block; text-wrap:initial; }
.ws-root.ws-darryl #experience .ws-feature > div { display:block; }
.ws-root.ws-darryl #payment .ws-heading { color:var(--ws-navy); }
.ws-root.ws-darryl #payment p, .ws-root.ws-darryl #payment .ws-heading::before { color:#697383; }
.ws-root.ws-darryl #payment .ws-heading::before { color:var(--ws-gold); }
.ws-root.ws-darryl #browse .ws-cta-band { align-items:flex-start; }
.ws-root.ws-darryl #hero .ws-display + .ws-lead { font-family:Georgia,"Times New Roman",serif; font-style:italic; color:var(--ws-gold); font-size:clamp(25px,4cqi,36px); line-height:1.2; margin-bottom:14px; }
/* Round five: brand bar over the hero like the reference, per-card tool icons, calculator and digital card sections. */
.ws-root.ws-darryl .ws-header { position:absolute; top:0; left:0; right:0; z-index:5; background:transparent; border:0; box-shadow:none; color:#fff; }
.ws-root.ws-darryl .ws-header-row { padding-top:22px; padding-bottom:10px; gap:12px 22px; }
.ws-root.ws-darryl .ws-logo { width:54px; height:54px; max-width:54px; border:1px solid rgba(255,255,255,.7); border-radius:0; padding:4px; background:transparent; object-fit:contain; }
.ws-root.ws-darryl .ws-brand-name { font-family:inherit; font-size:13px; font-weight:900; letter-spacing:.17em; text-transform:uppercase; color:#fff; max-width:none; }
.ws-root.ws-darryl .ws-nav { border-top:0; padding-top:0; }
.ws-root.ws-darryl .ws-nav a, .ws-root.ws-darryl .ws-header-call { color:#fff; font-size:14px; }
.ws-root.ws-darryl .ws-header .ws-button { background:var(--ws-gold); border-color:var(--ws-gold); color:var(--ws-navy) !important; }
.ws-root.ws-darryl .ws-mobilebar, .ws-root.ws-darryl .ws-header .ws-menu-toggle { color:#fff; }
.ws-root.ws-darryl #hero .ws-hero-grid { padding-top:clamp(150px,22cqi,230px); }
.ws-root.ws-darryl #hero .ws-display { font-size:clamp(50px,7.2cqi,88px); }
.ws-root.ws-darryl #tools .ws-links > li .ws-button::before { content:"✦"; }
.ws-root.ws-darryl #tools .ws-links > li:nth-child(1) .ws-button::before { content:"⌕"; }
.ws-root.ws-darryl #tools .ws-links > li:nth-child(2) .ws-button::before { content:"⌂"; }
.ws-root.ws-darryl #tools .ws-links > li:nth-child(3) .ws-button::before { content:"$"; }
.ws-root.ws-darryl #tools .ws-links > li .ws-button { display:block; }
.ws-root.ws-darryl #tools .ws-links > li .ws-button::before { display:block; }
.ws-root.ws-darryl #monthly-payment-calculator { background:#fbfaf8 !important; color:#172131 !important; padding:70px 0 !important; }
.ws-root.ws-darryl #monthly-payment-calculator .ws-heading::before { content:"Buyer tool"; display:block; font-family:inherit; font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:900; color:var(--ws-gold); margin-bottom:7px; }
.ws-root.ws-darryl #monthly-payment-calculator .ws-form { background:#fff; border:1px solid #e6e1d8; border-radius:15px; padding:25px; box-shadow:0 10px 28px rgba(10,25,45,.04); }
.ws-root.ws-darryl #monthly-payment-calculator .ws-button { background:var(--ws-navy); border-color:var(--ws-navy); color:#fff !important; }
.ws-root.ws-darryl #monthly-payment-calculator .darryl-calc-result, .ws-root.ws-darryl #monthly-payment-calculator output { display:block; margin-top:15px; padding:19px; border-radius:10px; background:var(--ws-cream); }
.ws-root.ws-darryl #share-card { background:var(--ws-cream) !important; color:#172131 !important; padding:70px 0 !important; }
.ws-root.ws-darryl #share-card .ws-about-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
.ws-root.ws-darryl #share-card .ws-heading::before { content:"Share Darryl"; display:block; font-family:inherit; font-size:12px; letter-spacing:.17em; text-transform:uppercase; font-weight:900; color:var(--ws-gold); margin-bottom:7px; }
.ws-root.ws-darryl #share-card p:first-of-type { display:none; }
.ws-root.ws-darryl #share-card p { color:#697383; max-width:560px; }
.ws-root.ws-darryl #share-card .ws-about-art { margin:0; }
.ws-root.ws-darryl #share-card img, .ws-root.ws-darryl #share-card .ws-about-img { width:100%; max-width:1100px; height:auto; aspect-ratio:auto; object-fit:contain; border-radius:18px; box-shadow:0 16px 40px rgba(7,29,53,.16); border:1px solid #ddd2bd; background:var(--ws-navy); }
@container ws (max-width: 760px) { .ws-root.ws-darryl .ws-header { position:static; background:var(--ws-navy); } .ws-root.ws-darryl #hero .ws-hero-grid { padding-top:54px; } }
/* Owner, October 16, 2026: the business is Darryl Martin, REALTOR® with Synergy Realty Network as broker in the tagline, footer and brokerage block. */
.ws-root.ws-darryl .ws-brand-name { font-family:inherit; font-size:13px; font-weight:900; letter-spacing:.17em; text-transform:uppercase; color:#fff; max-width:none; }
/* October 16, 2026 (phone check): the Browse listings button keeps the card's inset on every screen size. */
.ws-root.ws-darryl #browse .ws-wrap { padding:0 42px 42px; }
.ws-root.ws-darryl #browse .ws-cta-band { margin:0; padding:0; width:100%; }
.ws-root.ws-darryl #browse .ws-actions { margin:0; }
@media (max-width: 900px) { .ws-root.ws-darryl #browse .ws-wrap { padding:0 24px 28px; } }
@container ws (max-width: 760px) { .ws-root.ws-darryl #browse .ws-wrap { padding:0 24px 28px; } .ws-root.ws-darryl #browse .ws-cta-band { margin:0; padding:0; } }
/* The wrap and the band are the same element here: keep it centered with the card's inset. */
.ws-root.ws-darryl #browse .ws-wrap.ws-cta-band { margin:0 auto; padding:0 42px 42px; width:min(1160px, 100%); }
@media (max-width: 900px) { .ws-root.ws-darryl #browse .ws-wrap.ws-cta-band { padding:0 24px 28px; } }
@container ws (max-width: 760px) { .ws-root.ws-darryl #browse .ws-wrap.ws-cta-band { padding:0 24px 28px; } }

/* October 16, 2026: the portrait is a composed graphic (text and badge), so it is shown whole on navy instead of cropped;
   the contact buttons sit inside the same navy card with no page strip between them. */
.ws-root.ws-darryl #meet-darryl { padding-bottom:0 !important; }
.ws-root.ws-darryl #meet-darryl .ws-wrap { border-radius:20px 20px 0 0; }
.ws-root.ws-darryl #meet-darryl .ws-about-art { background:var(--ws-navy); display:flex; align-items:center; }
.ws-root.ws-darryl #meet-darryl img, .ws-root.ws-darryl #meet-darryl .ws-about-img { object-fit:contain; object-position:center; min-height:0; height:auto; max-height:640px; }
.ws-root.ws-darryl #reach-darryl { margin-top:0; background:transparent !important; padding:0 0 70px !important; }
.ws-root.ws-darryl #reach-darryl .ws-wrap { border-radius:0 0 20px 20px; padding:8px 48px 40px; }
@media (max-width:900px) {
  .ws-root.ws-darryl #meet-darryl img, .ws-root.ws-darryl #meet-darryl .ws-about-img { aspect-ratio:auto; height:auto; max-height:none; }
}
/* Pages without the home hero (Financing, Buy, Sell, …) get a solid navy header bar; the overlay header is for the hero only. */
.ws-root.ws-darryl:not(:has(#hero)) .ws-header { position:static; background:var(--ws-navy); }
.ws-root.ws-darryl:not(:has(#hero)) .ws-header-row { padding-bottom:18px; }
/* October 16, 2026 (second pass): the portrait fills its column edge to edge; the card takes the portrait's height. */
.ws-root.ws-darryl #meet-darryl .ws-about-art { display:block; }
.ws-root.ws-darryl #meet-darryl img, .ws-root.ws-darryl #meet-darryl .ws-about-img { display:block; width:100%; height:auto; max-height:none; min-height:0; object-fit:fill; }
/* The site's image-size setting (ws-img-medium) narrows about art to 78%; the portrait column is always full width. */
.ws-root.ws-darryl.ws-img-medium #meet-darryl .ws-about-art, .ws-root.ws-darryl #meet-darryl .ws-about-art { width:100%; margin-inline:0; }
.ws-root.ws-darryl #reach-darryl .ws-wrap { margin-top:-1px; } /* no hairline where the two navy sections meet */

.ws-root.ws-darryl .ws-darryl-direct { display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; }
.ws-root.ws-darryl .ws-darryl-direct a { display:inline-flex; flex-wrap:wrap; align-items:center; gap:7px; min-height:44px; font-size:18px; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.ws-root.ws-darryl .ws-darryl-header-direct { order:-1; flex:1 0 100%; width:100%; padding-bottom:8px; border-bottom:1px solid var(--ws-line); }
.ws-root.ws-darryl .ws-darryl-footer-direct { margin-bottom:22px; }
.ws-root.ws-darryl .ws-header-call { font-size:14px; font-weight:500; }
.ws-root.ws-darryl .ws-darryl-header-phones { display:grid; gap:0; align-self:center; }
.ws-root.ws-darryl .ws-darryl-header-personal { display:inline-flex; align-items:center; gap:6px; min-height:44px; font-size:18px; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.ws-root.ws-darryl .ws-darryl-office-label { display:block; font-size:13px; }
@container ws (max-width:760px) { .ws-root.ws-darryl .ws-darryl-direct { gap:4px 16px; } .ws-root.ws-darryl .ws-darryl-direct a, .ws-root.ws-darryl .ws-darryl-header-personal { font-size:16px; } }

.ws-root.ws-darryl .ws-darryl-adam-live { background:#f4f1e8; color:#29362e; }
.ws-root.ws-darryl .ws-darryl-adam-live [data-adam-form] { margin:20px 0; }
.ws-root.ws-darryl .ws-darryl-adam-live fieldset { border:0; margin:0; padding:0; display:grid; gap:12px; min-width:0; }
.ws-root.ws-darryl .ws-darryl-adam-live label { font-weight:700; }
.ws-root.ws-darryl .ws-darryl-adam-live textarea { width:100%; box-sizing:border-box; resize:vertical; min-height:112px; border:1px solid #66756a; border-radius:8px; padding:12px; background:#fff; color:#172131; font:16px/1.5 system-ui; }
.ws-root.ws-darryl .ws-darryl-adam-live .ws-demo-reply:empty, .ws-root.ws-darryl .ws-adam-error:empty { display:none; }
.ws-root.ws-darryl .ws-darryl-adam-live .ws-adam-question { font-weight:650; white-space:pre-wrap; }
.ws-root.ws-darryl .ws-darryl-adam-live .ws-adam-answer { white-space:pre-wrap; }
.ws-root.ws-darryl .ws-adam-disclosure { font-size:14px; line-height:1.6; }
.ws-root.ws-darryl .ws-adam-error { color:#8a2424; font-weight:650; }
.ws-root.ws-darryl .ws-darryl-adam-live fieldset:disabled, .ws-root.ws-darryl .ws-darryl-adam-live button:disabled { opacity:.65; }
