/* Brand utilities and reusable page-building primitives */

#main-content .et_pb_button,
#main-content .wp-block-button__link,
#main-content input[type="submit"],
#main-content input[type="button"],
#main-content input[type="reset"],
#main-content button:not(.mfp-close):not(.mobile_menu_bar):not(.cli-mobile-menu__toggle):not(.cli-mobile-menu__close) {
  align-items: center;
  background: var(--cli-accent);
  border: 1px solid var(--cli-accent);
  border-radius: 8px;
  box-shadow: none;
  color: var(--cli-white);
  display: inline-flex;
  font-family: var(--cli-font-sans) !important;
  font-size: var(--cli-text-body);
  font-weight: 700;
  gap: var(--cli-space-xs);
  justify-content: center;
  letter-spacing: 0.01em;
  min-height: 44px;
  padding: var(--cli-space-sm) var(--cli-space-md);
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

#main-content .et_pb_button:hover,
#main-content .et_pb_button:focus-visible,
#main-content .wp-block-button__link:hover,
#main-content .wp-block-button__link:focus-visible,
#main-content input[type="submit"]:hover,
#main-content input[type="submit"]:focus-visible,
#main-content input[type="button"]:hover,
#main-content input[type="button"]:focus-visible,
#main-content input[type="reset"]:hover,
#main-content input[type="reset"]:focus-visible,
#main-content button:not(.mfp-close):not(.mobile_menu_bar):not(.cli-mobile-menu__toggle):not(.cli-mobile-menu__close):hover,
#main-content button:not(.mfp-close):not(.mobile_menu_bar):not(.cli-mobile-menu__toggle):not(.cli-mobile-menu__close):focus-visible {
  background: var(--cli-accent-dark);
  border-color: var(--cli-accent-dark);
  color: var(--cli-white);
  transform: translateY(-1px);
}

#main-content input[type="text"],
#main-content input[type="email"],
#main-content input[type="url"],
#main-content input[type="password"],
#main-content input[type="search"],
#main-content input[type="tel"],
#main-content input[type="number"],
#main-content input[type="date"],
#main-content textarea,
#main-content select {
  background: var(--cli-white);
  border: var(--cli-border-light);
  border-radius: 0;
  box-shadow: none;
  color: var(--cli-text-primary);
  font-family: var(--cli-font-sans) !important;
  font-size: var(--cli-text-body);
  min-height: 44px;
  padding: var(--cli-space-sm) var(--cli-space-md);
}

#main-content input::placeholder,
#main-content textarea::placeholder {
  color: var(--cli-text-muted);
}

#main-content input:focus,
#main-content textarea:focus,
#main-content select:focus {
  border-color: var(--cli-forest-mid);
  outline: 2px solid rgba(15, 110, 86, 0.14);
  outline-offset: 1px;
}

.cli-section-shell {
  padding: var(--cli-space-2xl) var(--cli-space-xl);
}

.cli-eyebrow,
.cli-label,
.cli-section-label {
  color: var(--cli-forest-mid);
  display: inline-block;
  font-family: var(--cli-font-sans) !important;
  font-size: var(--cli-text-label);
  font-weight: 700;
  letter-spacing: var(--cli-tracking-label);
  line-height: 1.3;
  margin-bottom: var(--cli-space-sm);
  text-transform: uppercase;
}

.cli-meta,
.cli-caption {
  color: var(--cli-text-muted);
  font-family: var(--cli-font-sans) !important;
  font-size: var(--cli-text-small);
  line-height: 1.6;
}

.cli-display {
  font-size: clamp(38px, 4vw, var(--cli-text-display));
}

.cli-h2 {
  font-size: clamp(30px, 3.2vw, var(--cli-text-h2));
}

.cli-h3 {
  font-size: clamp(22px, 2.2vw, var(--cli-text-h3));
}

.cli-h4 {
  font-size: var(--cli-text-h4);
}

.cli-card,
.cli-surface-card,
.cli-content-card {
  background: var(--cli-white);
  border: var(--cli-border-light);
  box-shadow: none;
  padding: var(--cli-space-md);
}

.cli-callout {
  background: var(--cli-white);
  border-left: var(--cli-border-accent);
  padding: var(--cli-space-md);
}

.cli-quote {
  border-left: var(--cli-border-quote);
  color: var(--cli-text-secondary);
  padding-left: var(--cli-space-md);
}

.cli-surface-dark {
  background: var(--cli-forest-deep);
  color: var(--cli-jade-mist);
}

.cli-surface-dark h1,
.cli-surface-dark h2,
.cli-surface-dark h3,
.cli-surface-dark h4,
.cli-surface-dark h5,
.cli-surface-dark h6 {
  color: var(--cli-white);
}

.cli-surface-dark p,
.cli-surface-dark li,
.cli-surface-dark .cli-meta,
.cli-surface-dark .cli-caption {
  color: var(--cli-jade-mist);
}

.cli-surface-dark a:not(.et_pb_button):not(.wp-block-button__link) {
  color: var(--cli-jade);
}

.cli-card-grid {
  display: grid;
  gap: var(--cli-space-lg);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.cli-stack > * + * {
  margin-top: var(--cli-space-md);
}

@media (max-width: 980px) {
  .cli-section-shell {
    padding: var(--cli-space-xl) var(--cli-space-md);
  }

  .cli-card-grid {
    gap: var(--cli-space-md);
    grid-template-columns: 1fr;
  }
}
