/* Structural defaults only. Final page compositions belong to a later phase. */
:root {
  --vv-cream: var(--wp--preset--color--cream, #f5f1e8);
  --vv-forest: var(--wp--preset--color--forest, #173d32);
  --vv-ink: var(--wp--preset--color--ink, #17251f);
  --vv-white: var(--wp--preset--color--white, #fff);
  --vv-content: 82.5rem;
  --vv-gutter: clamp(4rem, 5vw, 5.5rem);
  --vv-space: clamp(2.5rem, 5vw, 5rem);
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
img, video { max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
a, button, input, textarea, select, summary { touch-action: manipulation; }
:where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
:where(h1, h2, h3, h4, p, li, a) { overflow-wrap: anywhere; }
[hidden] { display: none !important; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; position: absolute; white-space: nowrap; }
.skip-link:focus { clip: auto; clip-path: none; width: auto; height: auto; margin: 0; padding: 1rem; top: 0; left: 0; background: var(--vv-white); color: var(--vv-ink); z-index: 1000; }
.vv-site-header, .vv-site-footer { padding: 1rem var(--vv-gutter); }
.vv-site-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.vv-site-name { color: inherit; }
.vv-site-header ul, .vv-site-footer ul { display: flex; flex-wrap: wrap; gap: 1rem; padding: 0; list-style: none; }
.vv-site-header a, .vv-site-footer a { display: inline-block; padding-block: 0.5rem; }
.vv-site-header .sub-menu { padding-inline-start: 1rem; }
.vv-document-header, .vv-document-content > :not(.vv-section) { width: min(calc(100% - 2 * var(--vv-gutter)), var(--vv-content)); margin-inline: auto; }
.vv-document-content > .alignwide { max-width: var(--vv-content); }
.vv-document-content > .alignfull { width: 100%; max-width: none; }
.vv-section { position: relative; isolation: isolate; padding: var(--vv-space) var(--vv-gutter); }
.vv-section__inner { position: relative; z-index: 2; max-width: var(--vv-content); margin-inline: auto; min-width: 0; }
.vv-section__inner > :first-child { margin-block-start: 0; }
.vv-section__inner > :last-child { margin-block-end: 0; }
.vv-background--cream { background-color: var(--vv-cream); color: var(--vv-ink); }
.vv-background--forest { background-color: var(--vv-forest); color: var(--vv-white); }
.vv-background--image, .vv-background--video { background-color: var(--vv-ink); color: var(--vv-white); }
.vv-section__background, .vv-section__overlay { position: absolute; inset: 0; overflow: hidden; }
.vv-section__background { z-index: 0; }
.vv-section__background-image, .vv-section__background-video { display: block; width: 100%; height: 100%; object-fit: cover; }
.vv-section__overlay { z-index: 1; background: rgb(0 0 0 / 65%); pointer-events: none; }
.vv-overlay--soft .vv-section__overlay { background: rgb(0 0 0 / 58%); }
.vv-overlay--strong .vv-section__overlay { background: rgb(0 0 0 / 78%); }
.vv-background--video { padding-block-end: max(var(--vv-space), 4rem); }
.vv-background--video > .vv-section__overlay { bottom: 4rem; }
.vv-spacing--compact { --vv-space: clamp(1.5rem, 3vw, 3rem); }
.vv-spacing--spacious { --vv-space: clamp(3.5rem, 7vw, 7rem); }
.vv-align--left { text-align: start; }
.vv-align--center { text-align: center; }
.vv-align--center .wp-block-buttons { justify-content: center; }
.vv-typography--editorial { font-family: var(--wp--preset--font-family--serif, Georgia, serif); }
.vv-layout--wide > .vv-section__inner { max-width: var(--vv-content); }
.vv-section--cards.vv-layout--grid > .vv-section__inner, .vv-section--testimonials.vv-layout--grid > .vv-section__inner, .vv-offering-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1rem, 3vw, 2rem); }
.vv-offering-grid { list-style: none; padding: 0; width: 100%; }
.vv-card, .vv-quote { min-width: 0; }
.vv-offering-card { min-width: 0; text-align: start; }
.vv-offering-card__image { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.vv-cta, .vv-section .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0.65rem 1.25rem; border: 1px solid transparent; border-radius: 0.25rem; background: var(--vv-forest); color: var(--vv-white); text-decoration: none; }
.vv-background--forest .vv-cta, .vv-background--forest .wp-block-button__link { background: var(--vv-cream); color: var(--vv-forest); }
.vv-ctastyle--secondary .vv-cta, .vv-ctastyle--secondary .wp-block-button__link { background: transparent; color: inherit; border-color: currentColor; }
.vv-ctastyle--text .vv-cta, .vv-ctastyle--text .wp-block-button__link { background: transparent; color: inherit; text-decoration: underline; padding-inline: 0; }
.vv-tabs__list { display: flex; gap: 0.5rem; overflow-x: auto; margin-block-end: 1.5rem; padding: 0.25rem; }
.vv-tabs__list button { min-height: 44px; padding: 0.5rem 1rem; flex: 0 0 auto; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 0.25rem; cursor: pointer; }
.vv-tabs__list [aria-selected="true"] { background: var(--vv-forest); color: var(--vv-white); }
.vv-background--forest .vv-tabs__list [aria-selected="true"] { background: var(--vv-cream); color: var(--vv-forest); }
.vv-section summary { min-height: 44px; padding-block: 0.5rem; cursor: pointer; }
.vv-section[data-vv-animation="fade"], .vv-section[data-vv-animation="rise"] { transition: opacity 420ms ease, transform 420ms ease; }
.vv-section.is-vv-pending { opacity: 0; }
.vv-section[data-vv-animation="rise"].is-vv-pending { transform: translateY(1rem); }
.vv-editor-section { outline: 1px dashed currentColor; outline-offset: -1px; }
.vv-editor-section__label { position: relative; z-index: 3; display: block; margin-block-end: 1rem; padding: 0.35rem 0.6rem; border: 1px solid currentColor; font-family: var(--wp--preset--font-family--sans, system-ui, sans-serif); font-size: 0.75rem; font-weight: 600; line-height: 1.5; text-align: start; }
.vv-editor-section.is-vv-hidden { outline-style: dotted; }
.vv-editor-section.is-vv-hidden > .vv-editor-section__label { border-inline-start-width: 4px; border-style: dashed; }
.vv-editor-section.is-vv-hidden > .vv-section__inner { outline: 1px dotted currentColor; outline-offset: 0.5rem; }
@media (min-width: 48rem) {
  .vv-layout--split > .vv-section__inner, .vv-layout--reverse > .vv-section__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(1.5rem, 4vw, 4rem); }
  .vv-layout--reverse > .vv-section__inner > :first-child { order: 2; }
  .vv-section--cards.vv-layout--grid > .vv-section__inner, .vv-section--testimonials.vv-layout--grid > .vv-section__inner, .vv-offering-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 70rem) {
  .vv-offering-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 47.999rem) {
  :root { --vv-gutter: 1.25rem; }
  .vv-mobile--compact { --vv-space: 1.5rem; }
  .vv-section .wp-block-columns { flex-direction: column; }
  .vv-section .wp-block-media-text { grid-template-columns: 100% !important; }
  .vv-section .wp-block-media-text > .wp-block-media-text__content, .vv-section .wp-block-media-text > .wp-block-media-text__media { grid-column: 1; grid-row: auto; }
}
@media (min-width: 48rem) and (max-width: 64rem) {
  :root { --vv-gutter: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .vv-section[data-vv-animation] { opacity: 1; transform: none; transition: none; }
}

/* Background videos are decorative; controls never cover homepage content. */
.vv-section__background-video { pointer-events: none; }
