/* Old Barn Hub: scoped enhancement for the native Elementor page.
 * Copy, images, typography, colors, padding and responsive container settings
 * are held in Elementor. This file supplies image layering, decoration and UI.
 * Load after Elementor's frontend styles. No theme-wide selectors are used.
 */
.obh-site {
  --obh-paper: #f4efe5;
  --obh-paper-dark: #e9e2d4;
  --obh-ink: #252b24;
  --obh-forest: #293a2d;
  --obh-gold: #cfab69;
  --obh-muted: #686b60;
  --obh-line: #d6cfbf;
  --obh-serif: "Libre Baskerville", Georgia, serif;
  --obh-sans: "DM Sans", Arial, sans-serif;
  font-family: var(--obh-sans);
  color: var(--obh-ink);
  -webkit-font-smoothing: antialiased;
  isolation: isolate;
}
.obh-site, .obh-site * { box-sizing: border-box; }
/* This homepage includes its own editable footer. Keep the legacy footer on other pages. */
body:has(.obh-site) #old-barn-custom-footer { display: none; }
.obh-site .e-con, .obh-site .elementor-widget { min-width: 0; }
.obh-site .obh-text p { margin-block: 0; }
.obh-site .obh-text p + p { margin-top: 1em; }
.obh-site .elementor-heading-title { margin: 0; }
.obh-site .obh-image img { display: block; width: 100%; }
.obh-site a, .obh-site button { -webkit-tap-highlight-color: transparent; }
.obh-site a:focus-visible, .obh-site button:focus-visible,
.obh-site input:focus-visible, .obh-site select:focus-visible,
.obh-site textarea:focus-visible {
  outline: 3px solid #bc762f;
  outline-offset: 5px;
}
.obh-site [id] { scroll-margin-top: 30px; }
.obh-site .obh-page-width { max-width: calc(100% - 112px); }
.obh-site .obh-button { width: fit-content; max-width: 100%; flex-shrink: 0; }
.obh-site .obh-button .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 34px;
  text-decoration: none;
  transition: background .2s, transform .2s;
}
.obh-site .obh-button .elementor-button-content-wrapper { align-items: center; }
.obh-site .obh-button .elementor-button:hover { transform: translateY(-2px); }
.obh-site .obh-arrow-up .elementor-button::after,
.obh-site .obh-arrow-right .elementor-button::after,
.obh-site .obh-arrow-down .elementor-button::after {
  content: "↗";
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  transition: transform .2s;
}
.obh-site .obh-arrow-right .elementor-button::after { content: "→"; font-size: 18px; }
.obh-site .obh-arrow-down .elementor-button::after { content: "↓"; font-size: 22px; }
.obh-site .obh-button-text .elementor-button,
.obh-site .obh-button-light-text .elementor-button {
  gap: 23px;
  border-bottom: 1px solid #b0b09b;
  border-radius: 0;
}
.obh-site .obh-button-light-text .elementor-button { border-bottom-color: #9a9d84; }
.obh-site .obh-button-text .elementor-button:hover,
.obh-site .obh-button-light-text .elementor-button:hover { transform: none; }
.obh-site .obh-arrow-right .elementor-button:hover::after { transform: translateX(4px); }
.obh-site .obh-button-outline .elementor-button { gap: 28px; }
.obh-site .obh-announcement > .obh-label,
.obh-site .obh-values > .obh-label,
.obh-site .obh-footer-row > .obh-label,
.obh-site .obh-hero-foot > .obh-label,
.obh-site .obh-toolbar > .obh-label { width: fit-content; flex-shrink: 0; }
.obh-site .obh-announcement-status .elementor-heading-title {
  display: flex;
  align-items: center;
  gap: 8px;
}
.obh-site .obh-announcement-status .elementor-heading-title::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #6c7452;
}
.obh-site .obh-header { position: relative; z-index: 5; }
.obh-site .obh-nav-wrap { max-width: calc(100% - 80px); }
.obh-site .obh-brand { width: 171px; height: 88px; overflow: hidden; flex-shrink: 0; }
.obh-site .obh-brand img { width: 171px; height: 171px; object-fit: contain; transform: translateY(-24px); }
.obh-site .obh-main-nav { flex-shrink: 0; }
.obh-site .obh-nav-link .elementor-button { position: relative; border: 0; }
.obh-site .obh-nav-link .elementor-button::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 5px;
  height: 1px;
  background: var(--obh-gold);
  transition: right .2s;
}
.obh-site .obh-nav-link .elementor-button:hover::after { right: 0; }
.obh-site .obh-menu-toggle { display: none; }
.obh-site .obh-hero { position: relative; }
.obh-site .obh-hero-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.obh-site .obh-hero-photo .elementor-widget-container,
.obh-site .obh-hero-photo picture { height: 100%; display: block; }
.obh-site .obh-hero-photo img { height: 100%; object-fit: cover; object-position: 62% 55%; }
.obh-site .obh-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg,rgba(18,25,19,.91) 0%,rgba(18,25,19,.69) 30%,rgba(18,25,19,.12) 65%,rgba(18,25,19,.02) 100%),linear-gradient(0deg,rgba(18,25,19,.7),transparent 22%);
}
.obh-site .obh-hero-content { position: relative; z-index: 1; }
.obh-site .obh-hero-eyebrow .elementor-heading-title { display: flex; align-items: center; gap: 13px; }
.obh-site .obh-hero-eyebrow .elementor-heading-title::before { content: ""; width: 28px; height: 1px; background: var(--obh-gold); }
.obh-site .obh-hero-title .elementor-heading-title { text-shadow: 0 2px 20px #0001; }
.obh-site .obh-hero-description { max-width: 450px; }
.obh-site .obh-hero-foot { position: absolute; bottom: 31px; left: 0; right: 0; z-index: 1; }
.obh-site .obh-scroll-link .elementor-button { gap: 18px; border: 0; letter-spacing: 1.9px; }
.obh-site .obh-image-caption { position: absolute; right: 14px; bottom: 9px; width: auto; opacity: .6; }
.obh-site .obh-value-star { opacity: .65; }
.obh-site .obh-intro-heading { flex-shrink: 1; }
.obh-site .obh-intro-copy { width: 45%; max-width: 410px; flex-shrink: 1; padding-bottom: 5px; }
.obh-site .obh-filters { max-width: 100%; flex-shrink: 0; }
.obh-site .obh-filter .elementor-button { border: 1px solid transparent; white-space: nowrap; }
.obh-site .obh-filter .elementor-button:hover { border-color: #bfb9a8; transform: none; }
.obh-site .obh-filter.obh-button-filter.is-active .elementor-button { background: var(--obh-forest); color: var(--obh-paper); }
.obh-site .obh-card { flex-shrink: 1; }
.obh-site .obh-card[hidden] { display: none; }
.obh-site .obh-card-image { position: relative; aspect-ratio: 1.45; background: #3b4336; overflow: hidden; }
.obh-site .obh-card-photo { position: absolute; inset: 0; width: 100%; height: 100%; }
.obh-site .obh-card-photo .elementor-widget-container,
.obh-site .obh-card-photo a,
.obh-site .obh-card-photo picture { height: 100%; display: block; }
.obh-site .obh-card-photo img { height: 100%; object-fit: cover; transition: transform .5s; }
.obh-site .obh-card-image:hover .obh-card-photo img { transform: scale(1.045); }
.obh-site .obh-card-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,#10170fcc,transparent 45%); pointer-events: none; }
.obh-site .obh-gathering-crop img { object-position: 75% 70%; width: 145%; max-width: none; transform: translateX(-25%); }
.obh-site .obh-card-image:hover .obh-gathering-crop img { transform: translateX(-25%) scale(1.045); }
.obh-site .obh-image-number { position: absolute; bottom: 19px; left: 20px; z-index: 1; width: auto; pointer-events: none; }
.obh-site .obh-image-arrow { position: absolute; right: 16px; bottom: 12px; z-index: 1; }
.obh-site .obh-image-arrow .elementor-button { border: 0; }
.obh-site .obh-card-body .obh-text { max-width: 320px; }
.obh-site .obh-story-visual, .obh-site .obh-story-copy { flex-shrink: 1; }
.obh-site .obh-story-visual { position: relative; }
.obh-site .obh-story-photo img { height: 425px; object-fit: cover; object-position: 40% center; }
.obh-site .obh-story-stamp {
  position: absolute;
  right: -18px;
  bottom: 60px;
  border-radius: 50%;
  border: 1px solid #d3c7ab;
  outline: 7px solid var(--obh-paper);
  transform: rotate(11deg);
  box-shadow: 0 7px 30px #0001;
}
.obh-site .obh-story-stamp .elementor-widget { width: auto; }
.obh-site .obh-stamp-ampersand .elementor-heading-title { font-style: italic; }
.obh-site .obh-story-copy .obh-text { max-width: 410px; }
.obh-site .obh-maker-symbol { width: auto; flex-shrink: 0; align-self: flex-start; }
.obh-site .obh-maker-copy { width: auto; flex: 1 1 auto; }
.obh-site .obh-join-copy { flex-shrink: 1; }
.obh-site .obh-join-brand { position: relative; overflow: hidden; max-width: 100%; flex-shrink: 1; }
.obh-site .obh-join-brand::before { content: ""; position: absolute; inset: 9px; border: 1px solid #8f876244; pointer-events: none; }
.obh-site .obh-join-logo img { aspect-ratio: 1.2; object-fit: cover; object-position: 50% 38%; }
.obh-site .obh-footer-tagline { opacity: .7; }
.obh-site .obh-back-top .elementor-button { border: 0; letter-spacing: 1.5px; }
.obh-site .obh-back-top .elementor-button::after { font-size: 15px; }
.obh-site .obh-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.obh-site .obh-support-code { width: 0; min-height: 0; height: 0; overflow: hidden; }

/* Native modal containers remain visible in the Elementor editor and without JS.
 * The JS progressively enhances them by moving each into a native <dialog>.
 */
.obh-site > .obh-modal { max-width: 650px; margin: 30px auto; background: var(--obh-paper); border: 1px solid var(--obh-line); }
.obh-site .obh-dialog {
  max-width: 650px;
  width: calc(100% - 36px);
  max-height: 90dvh;
  margin: auto;
  padding: 0;
  border: 0;
  background: var(--obh-paper);
  color: var(--obh-ink);
  box-shadow: 0 30px 100px #0006;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.obh-site .obh-dialog::backdrop { background: #101a15bd; backdrop-filter: blur(4px); }
.obh-site .obh-dialog:not([open]) { display: none; }
.obh-site .obh-dialog .obh-modal { position: relative; width: 100%; max-width: 100%; }
.obh-site .obh-dialog-close { position: absolute; right: 15px; top: 15px; z-index: 3; }
.obh-site .obh-dialog-close .elementor-button { width: 38px; height: 38px; }
.obh-site .obh-modal-image img { height: 220px; object-fit: cover; }
.obh-site .obh-dialog-body .obh-text ul { margin: 18px 0; padding-left: 18px; line-height: 1.9; }
.obh-site .obh-dialog-note { border-left: 2px solid var(--obh-gold); background: var(--obh-paper-dark); }
.obh-site .obh-interest-form { font-family: var(--obh-sans); color: var(--obh-ink); font-size: 12px; }
.obh-site .obh-interest-form p { margin: 0 0 16px; }
.obh-site .obh-interest-form label { display: block; margin-bottom: 8px; font-size: 12px; line-height: 1.5; }
.obh-site .obh-interest-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]),
.obh-site .obh-interest-form select,
.obh-site .obh-interest-form textarea {
  display: block;
  width: 100%;
  background: #fffaf0;
  color: var(--obh-ink);
  border: 1px solid #bfbba9;
  border-radius: 2px;
  padding: 14px;
  font: 14px/1.5 var(--obh-sans);
}
.obh-site .obh-interest-form textarea { min-height: 92px; resize: vertical; }
.obh-site .obh-interest-form input[type="checkbox"],
.obh-site .obh-interest-form input[type="radio"] { width: auto; margin-right: 7px; accent-color: var(--obh-forest); }
.obh-site .obh-interest-form fieldset { margin: 18px 0 24px; border: 0; padding: 0; }
.obh-site .obh-interest-form legend { margin-bottom: 10px; font-weight: 600; }
.obh-site .obh-interest-form .obh-interest-options { display: flex; flex-wrap: wrap; gap: 8px; }
.obh-site .obh-interest-form .obh-interest-options label { margin: 0; border: 1px solid var(--obh-line); padding: 12px; }
.obh-site .obh-interest-form button[type="submit"],
.obh-site .obh-interest-form input[type="submit"] {
  display: inline-block;
  min-height: 49px;
  padding: 14px 23px;
  border: 1px solid transparent;
  border-radius: 2px;
  background: var(--obh-forest);
  color: var(--obh-paper);
  font: 700 12px/1.4 var(--obh-sans);
  cursor: pointer;
}
.obh-site .obh-interest-form button[type="submit"]:hover { background: #3c5140; }
.obh-site .obh-interest-form button:disabled { opacity: .6; cursor: wait; }
.obh-site .obh-interest-form .obh-form-disclosure { font-size: 10px; line-height: 1.6; color: var(--obh-muted); }
.obh-site .obh-form-status { padding-top: 8px; font-size: 12px; line-height: 1.6; }
.obh-site .obh-form-status[role="alert"] { color: #8a3026; }
.elementor-editor-active .obh-site > .obh-modal { margin-top: 40px; }
.elementor-editor-active .obh-site .obh-dialog-close { pointer-events: none; }

@media (min-width: 1500px) {
  .obh-site .obh-hero { min-height: 690px; }
  .obh-site .obh-hero-photo::after { background: linear-gradient(90deg,#121913ed 0%,#12191399 35%,#12191308 75%),linear-gradient(0deg,#121913a6,transparent 25%); }
}
@media (max-width: 1024px) {
  .obh-site .obh-page-width { max-width: calc(100% - 64px); }
  .obh-site .obh-nav-wrap { max-width: calc(100% - 48px); }
  .obh-site .obh-main-nav { width: auto; gap: 24px; }
  .obh-site .obh-button-outline .elementor-button { gap: 16px; }
  .obh-site .obh-maker-cta .elementor-button { gap: 15px; }
}
@media (max-width: 767px) {
  .obh-site [id] { scroll-margin-top: 18px; }
  .obh-site .obh-announcement-status { display: none; }
  .obh-site .obh-page-width { max-width: calc(100% - 44px); }
  .obh-site .obh-nav-wrap { max-width: calc(100% - 36px); }
  .obh-site .obh-brand { width: 140px; height: 78px; }
  .obh-site .obh-brand img { width: 140px; height: 140px; transform: translateY(-15px); }
  .obh-site .obh-header-cta { display: none; }
  .obh-site .obh-menu-toggle { display: block; }
  .obh-site .obh-menu-toggle .elementor-button { width: 43px; height: 43px; padding: 0; }
  .obh-site .obh-main-nav { display: none; position: absolute; z-index: 10; top: 100%; left: 0; right: 0; width: 100%; max-width: 100%; background: #202820; border-top: 1px solid #59645070; padding: 18px 24px; flex-direction: column; gap: 7px; align-items: stretch; }
  .obh-site .obh-main-nav.is-open { display: flex; }
  .obh-site .obh-nav-link { width: 100%; }
  .obh-site .obh-hero-photo img { object-position: 62% 50%; }
  .obh-site .obh-hero-photo::after { background: linear-gradient(90deg,#121913cf,#12191358),linear-gradient(0deg,#121913d9 0%,#12191333 50%); }
  .obh-site .obh-hero-eyebrow .elementor-heading-title { gap: 10px; }
  .obh-site .obh-hero-eyebrow .elementor-heading-title::before { width: 19px; }
  .obh-site .obh-hero-description { max-width: 330px; }
  .obh-site .obh-desktop-break { display: none; }
  .obh-site .obh-button .elementor-button { gap: 27px; }
  .obh-site .obh-hero-foot { bottom: 29px; }
  .obh-site .obh-hero-foot > .obh-label { max-width: 250px; }
  .obh-site .obh-scroll-link .elementor-button { gap: 0; }
  .obh-site .obh-scroll-link .elementor-button-content-wrapper { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .obh-site .obh-intro-copy { width: 100%; max-width: none; }
  .obh-site .obh-filters { width: 100%; }
  .obh-site .obh-card-image { aspect-ratio: 1.5; }
  .obh-site .obh-card-body .obh-text { max-width: 100%; }
  .obh-site .obh-story-photo img { height: 310px; }
  .obh-site .obh-story-stamp { right: -1px; bottom: 49px; }
  .obh-site .obh-maker-symbol { display: none; }
  .obh-site .obh-maker-copy { width: 100%; }
  .obh-site .obh-footer-row { flex-wrap: wrap; }
  .obh-site .obh-footer-tagline { display: none; }
  .obh-site .obh-modal-image img { height: 190px; }
  .obh-site .obh-interest-form .obh-interest-options { gap: 7px; }
  .obh-site .obh-interest-form .obh-interest-options label { font-size: 10px; padding: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .obh-site *, .obh-site *::before, .obh-site *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
