:root {
  --oh-cream: #f8f6f1;
  --oh-white: #ffffff;
  --oh-sage: #a7b39a;
  --oh-forest: #556b57;
  --oh-deep-forest: #425443;
  --oh-charcoal: #333333;
  --oh-muted: #657066;
  --oh-line: #dce2d8;
  --oh-gold: #d8bf75;
  --oh-heading: "Cormorant Garamond", Georgia, serif;
  --oh-body: "Manrope", Arial, sans-serif;
}

body,
button,
input,
select,
textarea,
.editor-styles-wrapper {
  color: var(--oh-charcoal);
  font-family: var(--oh-body);
}

h1,
h2,
h3,
h4,
h5,
h6,
.editor-styles-wrapper h1,
.editor-styles-wrapper h2,
.editor-styles-wrapper h3 {
  color: var(--oh-deep-forest);
  font-family: var(--oh-heading);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.08;
}

.oh-page-pattern {
  --wp--style--global--content-size: 760px;
  --wp--style--global--wide-size: 1200px;
  color: var(--oh-charcoal);
}

.oh-section {
  padding: clamp(3.75rem, 8vw, 7.5rem) clamp(1.25rem, 4vw, 3rem);
}

.oh-section > .wp-block-group__inner-container,
.oh-section > .wp-block-columns,
.oh-section > .wp-block-heading,
.oh-section > p,
.oh-section > .wp-block-buttons,
.oh-section > .wp-block-list,
.oh-section > .wp-block-table {
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
}

.oh-cream { background: var(--oh-cream); }
.oh-sage { background: color-mix(in srgb, var(--oh-sage) 24%, white); }
.oh-forest { background: var(--oh-forest); color: var(--oh-white); }
.oh-forest h1,
.oh-forest h2,
.oh-forest h3,
.oh-forest p,
.oh-forest li { color: var(--oh-white); }

.oh-eyebrow {
  color: var(--oh-forest);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.oh-forest .oh-eyebrow { color: var(--oh-cream); }
.oh-display { font-size: clamp(3rem, 7vw, 5.75rem); margin: 0; }
.oh-title { font-size: clamp(2.3rem, 5vw, 4.25rem); margin-top: 0; }
.oh-lead { font-size: clamp(1.05rem, 2vw, 1.25rem); line-height: 1.75; }

.oh-hero { padding-bottom: clamp(3rem, 7vw, 6rem); padding-top: clamp(3.5rem, 8vw, 7rem); }
.oh-hero .wp-block-columns { align-items: center !important; gap: clamp(2rem, 6vw, 5rem); }
.oh-hero-image img { aspect-ratio: 3 / 2; border-radius: 0.75rem; height: auto; object-fit: cover; width: 100%; }

.oh-card-grid { gap: 1.25rem; }
.oh-card {
  background: var(--oh-white);
  border: 1px solid var(--oh-line);
  border-radius: 0.75rem;
  box-shadow: 0 12px 30px rgba(51, 51, 51, 0.07);
  height: 100%;
  padding: clamp(1.4rem, 3vw, 2rem);
}

.oh-card h3 { font-size: clamp(1.55rem, 3vw, 2rem); margin-top: 0; }
.oh-step-number { color: var(--oh-forest); font-family: var(--oh-heading); font-size: 2.2rem; line-height: 1; }
.oh-forest .oh-step-number { color: var(--oh-cream); }

.wp-block-button__link,
.ast-button,
button,
input[type="submit"] {
  background: var(--oh-forest);
  border: 1px solid var(--oh-forest);
  border-radius: 999px;
  color: var(--oh-white);
  font-family: var(--oh-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  min-height: 48px;
  padding: 0.95rem 1.5rem;
  text-transform: uppercase;
}

.oh-forest .wp-block-button__link { background: var(--oh-cream); border-color: var(--oh-cream); color: var(--oh-deep-forest); }
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible { background: var(--oh-deep-forest); border-color: var(--oh-deep-forest); color: var(--oh-white); }

.oh-stat { border-left: 1px solid rgba(255, 255, 255, 0.32); padding-left: 1.5rem; }
.oh-stat strong { display: block; font-family: var(--oh-heading); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 400; }
.oh-quote { border-left: 3px solid var(--oh-gold); font-family: var(--oh-heading); font-size: 1.45rem; margin: 0; padding-left: 1.25rem; }
.oh-table table { border-color: var(--oh-line); }
.oh-table th { background: var(--oh-forest); color: var(--oh-white); }
.oh-table td,
.oh-table th { border-color: var(--oh-line); padding: 1rem; }
.oh-placeholder { border: 1px dashed var(--oh-sage); border-radius: 0.75rem; color: var(--oh-muted); min-height: 14rem; padding: 3rem 1.5rem; text-align: center; }
.oh-contact-details a { color: var(--oh-forest); }

@media (max-width: 781px) {
  .oh-section { padding-left: 1.25rem; padding-right: 1.25rem; }
  .oh-hero .wp-block-columns { gap: 2rem; }
  .oh-stat { border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.32); padding-left: 0; padding-top: 1.25rem; }
}
