/* Project Ezra public-site polish. Kept separate from Astra and Elementor so
   theme/plugin updates cannot overwrite these refinements. */
:root {
  --ezra-green-950: #073526;
  --ezra-green-900: #0a4430;
  --ezra-green-700: #176c4c;
  --ezra-gold-500: #c3912e;
  --ezra-ink: #172a23;
  --ezra-muted: #5e6d66;
  --ezra-surface: #ffffff;
  --ezra-surface-soft: #f7f8f4;
  --ezra-line: rgba(7, 53, 38, 0.13);
  --ezra-shadow-sm: 0 8px 28px rgba(7, 53, 38, 0.08);
  --ezra-shadow-md: 0 18px 48px rgba(7, 53, 38, 0.13);
  --ezra-radius: 22px;
}

html { scroll-behavior: smooth; }
body { color: var(--ezra-ink); -webkit-font-smoothing: antialiased; }
a, button, input, textarea, select { transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid rgba(195, 145, 46, .5);
  outline-offset: 3px;
}

/* Header and navigation */
.site-header-primary-section-left,
.site-header-primary-section-right { min-width: 0; }
.ast-primary-header-bar {
  border-bottom: 1px solid var(--ezra-line);
  background: rgba(255,255,255,.96);
  box-shadow: 0 6px 24px rgba(7, 53, 38, .045);
}
.ast-primary-header-bar .site-primary-header-wrap { min-height: 82px; }
.site-header .custom-logo-link { display: inline-flex; align-items: center; }
.site-header .custom-logo { width: auto; max-height: 58px; object-fit: contain; }
.main-header-menu > .menu-item > .menu-link {
  position: relative;
  min-height: 46px;
  padding-inline: 14px;
  color: var(--ezra-green-950);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.2;
}
.main-header-menu > .menu-item > .menu-link::after {
  content: '';
  position: absolute;
  right: 14px;
  bottom: 7px;
  left: 14px;
  height: 2px;
  border-radius: 2px;
  background: var(--ezra-gold-500);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}
.main-header-menu > .menu-item:hover > .menu-link::after,
.main-header-menu > .current-menu-item > .menu-link::after { transform: scaleX(1); }

.site-header-primary-section-right { gap: 10px; }
.ast-header-button-1,
.ast-header-button-3 { flex: 0 0 auto; }
.ast-header-button-1 .ast-builder-button-wrap,
.ast-header-button-3 .ast-builder-button-wrap { white-space: nowrap; }
.ast-header-button-1[data-section*="section-hb-button-"] .ast-builder-button-wrap .ast-custom-button,
.ast-header-button-3[data-section*="section-hb-button-"] .ast-builder-button-wrap .ast-custom-button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  padding: 11px 19px;
  border: 1.5px solid transparent;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 750;
  line-height: 1.1;
  white-space: nowrap;
  box-shadow: none;
}
.ast-header-button-1 .ast-custom-button { color: #fff; background: var(--ezra-green-900); }
.ast-header-button-1 .ast-custom-button:hover { color: #fff; background: var(--ezra-green-700); transform: translateY(-1px); box-shadow: var(--ezra-shadow-sm); }
.ast-header-button-3 .ast-custom-button { color: var(--ezra-green-900); background: transparent; border-color: var(--ezra-green-700) !important; }
.ast-header-button-3 .ast-custom-button:hover { color: #fff; background: var(--ezra-green-900); transform: translateY(-1px); }

/* Consistent page rhythm and readable measures */
.site-content { overflow: clip; }
.entry-content > .elementor { margin-inline: auto; }
.elementor-widget-text-editor { color: var(--ezra-muted); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-heading .elementor-heading-title { text-wrap: balance; }
.elementor-widget-text-editor { text-wrap: pretty; }
.elementor-button,
.wp-element-button,
button:not(.menu-toggle),
input[type="submit"] {
  min-height: 48px;
  border-radius: 999px !important;
  font-weight: 700;
  line-height: 1.2;
}
.elementor-button:hover,
.wp-element-button:hover,
input[type="submit"]:hover { transform: translateY(-2px); box-shadow: var(--ezra-shadow-sm); }

/* Content imagery */
.entry-content .elementor-widget-image img:not(.custom-logo),
.entry-content img.wp-image-307,
.entry-content img.wp-image-383 {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: var(--ezra-radius);
  box-shadow: var(--ezra-shadow-md);
}
.elementor-widget-image a { display: block; border-radius: var(--ezra-radius); overflow: hidden; }
.elementor-widget-image a img { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.elementor-widget-image a:hover img { transform: scale(1.025); }

/* Cards and form surfaces used across registration/contact pages */
.elementor-widget-form .elementor-form,
.wp-block-group.has-background {
  border: 1px solid var(--ezra-line);
  border-radius: var(--ezra-radius);
  box-shadow: var(--ezra-shadow-sm);
}
.elementor-field-group > label { margin-bottom: 7px; color: var(--ezra-ink); font-weight: 650; }
.elementor-field-group .elementor-field,
.entry-content input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.entry-content textarea,
.entry-content select {
  min-height: 48px;
  border: 1px solid rgba(7, 53, 38, .18) !important;
  border-radius: 12px !important;
  background-color: #fff;
  color: var(--ezra-ink);
}
.entry-content textarea { min-height: 130px; }
.elementor-field-group .elementor-field:focus,
.entry-content input:focus,
.entry-content textarea:focus,
.entry-content select:focus {
  border-color: var(--ezra-green-700) !important;
  box-shadow: 0 0 0 4px rgba(23,108,76,.1) !important;
}

/* Standard WordPress pages that are not fully designed in Elementor */
.page:not(.home) .entry-header { margin-bottom: 34px; }
.page:not(.home) .entry-title { color: var(--ezra-green-950); text-wrap: balance; }
.page:not(.home) .site-main > article:not(.elementor-page) { max-width: 980px; margin-inline: auto; padding: clamp(42px, 7vw, 90px) 24px; }

/* Merchandise currently has no product photography. Remove Elementor's
   obvious placeholder artwork and use intentional branded surfaces until
   approved chocolate/apparel images are supplied. */
.page-id-566 .elementor-element-130b50f2,
.page-id-566 .elementor-element-471be57 {
  overflow: hidden;
  border: 1px solid var(--ezra-line);
  border-radius: 24px;
  box-shadow: var(--ezra-shadow-sm);
}
.page-id-566 .elementor-element-130b50f2::before {
  background-color: #7c4b19 !important;
  background-image: radial-gradient(circle at 18% 20%, rgba(255,220,148,.38), transparent 32%), linear-gradient(135deg, #3f2410, #a96e24) !important;
  background-position: center !important;
  background-size: cover !important;
}
.page-id-566 .elementor-element-471be57::before {
  background-color: var(--ezra-green-900) !important;
  background-image: radial-gradient(circle at 82% 18%, rgba(195,145,46,.38), transparent 30%), linear-gradient(135deg, #062f22, #247653) !important;
  background-position: center !important;
  background-size: cover !important;
}
.page-id-566 .elementor-element-7bfb5a4 { --margin-top: 0; }

/* Tablet: make room before Astra switches to its mobile header. */
@media (min-width: 922px) and (max-width: 1160px) {
  .main-header-menu > .menu-item > .menu-link { padding-inline: 9px; font-size: 14px; }
  .ast-header-button-1[data-section*="section-hb-button-"] .ast-builder-button-wrap .ast-custom-button,
  .ast-header-button-3[data-section*="section-hb-button-"] .ast-builder-button-wrap .ast-custom-button { padding-inline: 14px; font-size: 13px; }
  .site-header .custom-logo { max-width: 170px; }
}

@media (max-width: 921px) {
  .ast-primary-header-bar .site-primary-header-wrap { min-height: 72px; }
  .ast-mobile-header-wrap .ast-builder-menu-mobile .menu-link {
    min-height: 50px;
    padding: 13px 22px;
    border-bottom: 1px solid var(--ezra-line);
    color: var(--ezra-green-950);
    font-size: 16px;
    font-weight: 650;
  }
  .ast-mobile-header-wrap .main-header-menu { overflow: hidden; border: 1px solid var(--ezra-line); border-radius: 16px; box-shadow: var(--ezra-shadow-md); }
  .ast-mobile-header-wrap .menu-toggle { border-radius: 12px; }
  .elementor-widget-form .elementor-form { padding: clamp(18px, 4vw, 30px); }
}

@media (max-width: 767px) {
  .elementor > .e-con { --padding-left: 20px; --padding-right: 20px; }
  .elementor-widget-heading .elementor-heading-title { line-height: 1.08; }
  .elementor-button { width: 100%; justify-content: center; padding: 15px 20px !important; font-size: 16px !important; }
  .elementor-widget-image img { border-radius: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
