:root {
  --aousja-forest: #173c2c;
  --aousja-forest-2: #245c42;
  --aousja-leaf: #34724f;
  --aousja-cream: #f7f3e9;
  --aousja-sand: #e8dfc9;
  --aousja-mustard: #d7a640;
  --aousja-ink: #202a24;
  --aousja-muted: #59665e;
  --aousja-line: #dce3dc;
  --aousja-white: #fff;
  --aousja-radius: 14px;
  --aousja-shadow: 0 14px 40px rgba(23, 60, 44, .08);
  --aousja-content: 1120px;
  --aousja-reading: 810px;
}

html { scroll-behavior: smooth; }
body {
  background: var(--aousja-cream);
  color: var(--aousja-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.7;
}
body, body * { box-sizing: border-box; }
/* The legacy homepage uses intentional 100vw full-bleed bands. Clip only the
   scrollbar-width overhang while preserving their edge-to-edge appearance. */
body.home, body.home #page, body.home .aousja-wrap { overflow-x: clip; }
a { color: var(--aousja-forest-2); text-underline-offset: .16em; text-decoration-thickness: .08em; }
a:hover { color: #9b6b0d; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid var(--aousja-mustard);
  outline-offset: 3px;
}

/* Compact editorial header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid rgba(23, 60, 44, .1);
  box-shadow: 0 5px 24px rgba(23, 60, 44, .06);
  backdrop-filter: blur(12px);
}
.site-header .inside-header { max-width: var(--aousja-content); padding: 11px 24px; }
.site-branding .main-title { font-size: 1.35rem; letter-spacing: -.025em; }
.site-branding .main-title a { color: var(--aousja-forest); font-weight: 850; }
.site-description { color: var(--aousja-muted); font-size: .78rem; line-height: 1.25; }
.main-navigation, .main-navigation ul ul { background: transparent; }
.main-navigation .main-nav > ul > li > a {
  color: var(--aousja-ink);
  font-size: .91rem;
  font-weight: 720;
  padding-inline: 13px;
  position: relative;
}
.main-navigation .main-nav > ul > li > a::after {
  content: "";
  position: absolute;
  left: 13px;
  right: 13px;
  bottom: 4px;
  height: 3px;
  border-radius: 3px;
  background: var(--aousja-mustard);
  transform: scaleX(0);
  transition: transform .18s ease;
}
.main-navigation .main-nav > ul > li:hover > a::after,
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a::after { transform: scaleX(1); }
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--aousja-forest); }
.main-navigation ul ul {
  background: var(--aousja-white);
  border: 1px solid var(--aousja-line);
  border-radius: 10px;
  box-shadow: var(--aousja-shadow);
  overflow: hidden;
}

/* True viewport-width secondary hero */
.aousja-site-hero {
  width: 100%;
  min-height: 350px;
  position: relative;
  display: grid;
  align-items: end;
  isolation: isolate;
  overflow: hidden;
  color: #fff;
  background-color: var(--aousja-forest);
  background-image: var(--aousja-hero-image);
  background-position: center;
  background-size: cover;
}
.aousja-site-hero__shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(11, 39, 27, .96) 0%, rgba(18, 55, 39, .88) 38%, rgba(18, 55, 39, .45) 68%, rgba(18, 55, 39, .22) 100%), linear-gradient(0deg, rgba(8, 27, 19, .48), transparent 62%);
}
.aousja-site-hero__inner {
  width: min(calc(100% - 48px), var(--aousja-content));
  margin-inline: auto;
  padding: 64px 0 36px;
}
.aousja-site-hero__eyebrow {
  margin: 0 0 9px;
  color: #f2ca72;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .14em;
  line-height: 1.2;
  text-transform: uppercase;
}
.aousja-site-hero__title {
  max-width: 850px;
  margin: 0 0 12px;
  color: #fff;
  font-size: clamp(2.25rem, 4.7vw, 4.4rem);
  font-weight: 820;
  letter-spacing: -.045em;
  line-height: .98;
  text-wrap: balance;
}
.aousja-site-hero__intro {
  max-width: 760px;
  margin: 0;
  color: rgba(255,255,255,.9);
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.55;
}
.aousja-site-hero__credit {
  min-height: 1.2em;
  margin: 18px 0 0;
  color: rgba(255,255,255,.72);
  font-size: .72rem;
  line-height: 1.35;
}
.aousja-site-hero__credit a { color: inherit; }
.aousja-site-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.aousja-site-hero__actions a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 9px 15px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 8px;
  color: #fff;
  font-size: .88rem;
  font-weight: 760;
  text-decoration: none;
}
.aousja-site-hero__actions a:first-child { border-color: var(--aousja-mustard); background: var(--aousja-mustard); color: #17321f; }
.aousja-site-hero__actions a:hover { background: #fff; color: var(--aousja-forest); }
.aousja-site-hero--compact { min-height: 280px; }
.aousja-site-hero--compact .aousja-site-hero__title { font-size: clamp(2rem, 4vw, 3.5rem); }

/* Main canvas and readable measure */
.aousja-has-site-hero #page { max-width: none; background: var(--aousja-cream); }
.aousja-has-site-hero #primary { width: 100%; }
.aousja-has-site-hero #right-sidebar, .aousja-has-site-hero #left-sidebar { display: none; }
.aousja-has-site-hero .site-content {
  width: min(calc(100% - 48px), var(--aousja-content));
  max-width: var(--aousja-content);
  margin: 0 auto;
  padding: 42px 0 64px;
}
.aousja-has-site-hero.separate-containers .site-main { margin: 0; }
.aousja-has-site-hero.separate-containers .inside-article,
.aousja-has-site-hero.one-container .inside-article {
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid var(--aousja-line);
  border-radius: var(--aousja-radius);
  background: var(--aousja-white);
  box-shadow: var(--aousja-shadow);
}
.aousja-has-site-hero .entry-header:has(.entry-title),
.aousja-has-site-hero .page-header { display: none; }
.aousja-has-site-hero .entry-content { margin-top: 0; }
.aousja-has-site-hero .entry-content > :first-child { margin-top: 0; }
.aousja-has-site-hero .entry-content h2,
.aousja-has-site-hero .entry-content h3 { color: var(--aousja-forest); letter-spacing: -.025em; text-wrap: balance; }
.aousja-has-site-hero .entry-content h2 { margin: 2.25em 0 .55em; font-size: clamp(1.45rem, 2.3vw, 2rem); line-height: 1.15; }
.aousja-has-site-hero .entry-content h3 { margin: 1.8em 0 .5em; font-size: 1.22rem; line-height: 1.25; }
.aousja-has-site-hero .entry-content p,
.aousja-has-site-hero .entry-content ul,
.aousja-has-site-hero .entry-content ol { margin-bottom: 1.15em; }
.aousja-has-site-hero .entry-content img { border-radius: 12px; }

/* Existing content components, normalized globally */
.aousja-page-grid,
.aousja-discover-links,
.geodir-loop-container .geodir-category-list-view,
.geodir-listings .geodir-category-list-view {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.aousja-page-card,
.aousja-discover-links li,
.geodir-post,
.geodir-loop-container article {
  min-width: 0;
  padding: 22px;
  border: 1px solid var(--aousja-line) !important;
  border-radius: 12px !important;
  background: var(--aousja-white);
  box-shadow: 0 8px 24px rgba(23, 60, 44, .055);
  transition: transform .18s ease, box-shadow .18s ease;
}
.aousja-page-card:hover,
.aousja-discover-links li:hover,
.geodir-post:hover { transform: translateY(-2px); box-shadow: var(--aousja-shadow); }
.aousja-page-card h2 { margin-top: 0 !important; font-size: 1.18rem !important; }
.aousja-page-note {
  margin-top: 26px;
  padding: 18px 20px;
  border: 0;
  border-left: 5px solid var(--aousja-mustard);
  border-radius: 0 10px 10px 0;
  background: #fbf6e8;
}
.aousja-discover-links { margin: 0; padding: 0; list-style: none; }
.aousja-discover-links li { min-height: 100%; }
.aousja-discover-links a { font-weight: 780; text-decoration: none; }

/* Editorial posts and calm legal typography */
.aousja-editorial-post .inside-article,
.aousja-legal-view .inside-article { max-width: var(--aousja-reading); margin-inline: auto; }
.aousja-editorial-post .entry-content,
.aousja-legal-view .entry-content { font-size: 1.02rem; }
.aousja-editorial-post .entry-meta { display: none; }
.aousja-editorial-post .aousja-article > p:first-child { font-size: 1.14rem; color: #37453c; }
.aousja-article a { font-weight: 650; }
.aousja-legal, .aousja-contact { max-width: 100% !important; margin: 0 !important; color: inherit !important; }
.aousja-legal h2 { padding-top: .25em; }
.aousja-legal p, .aousja-legal li { color: #344139; }
.aousja-legal .cmplz-document { max-width: none; }

/* Forms and actions */
form, .nf-form-cont { max-width: 760px; }
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea, select {
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid #b8c5bb;
  border-radius: 8px;
  background: #fff;
  color: var(--aousja-ink);
}
textarea { min-height: 150px; }
button, html input[type="button"], input[type="reset"], input[type="submit"], a.button, .wp-block-button__link {
  min-height: 48px;
  padding: 12px 20px;
  border-radius: 8px;
  background: var(--aousja-forest-2);
  color: #fff;
  font-weight: 760;
  line-height: 1.3;
}
button:hover, input[type="submit"]:hover, a.button:hover, .wp-block-button__link:hover { background: var(--aousja-forest); color: #fff; }

/* GeoDirectory surfaces */
.aousja-directory-view .inside-article { max-width: none; }
.aousja-dir { max-width: 100%; overflow: clip; }
.aousja-dir-band {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
.aousja-dir-tools { min-width: 0; }
.aousja-dir-tools > *, .aousja-dir-tools main { min-width: 0; }
.aousja-technical-page { max-width: 760px; margin-inline: auto; text-align: center; }
.geodir-search-container, .geodir-map-wrap, .geodir-tabs, .geodir-details-sidebar, .geodir-post-slider {
  border-radius: 12px;
  overflow: hidden;
}
.geodir-search-container { padding: 16px; background: #f7f4eb; border: 1px solid var(--aousja-line); }
.geodir-tabs .nav-tabs { border-bottom: 1px solid var(--aousja-line); }
.geodir-tabs .nav-link { min-height: 44px; color: var(--aousja-forest); font-weight: 720; }
.geodir-tabs .nav-link.active { color: var(--aousja-forest); border-bottom-color: var(--aousja-mustard); }
.leaflet-container { min-height: 360px; font-family: inherit; }

/* Useful 404 recovery view without altering SEO or redirects */
.error404 .site-main .inside-article { max-width: var(--aousja-reading); margin-inline: auto; }

/* Footer */
.site-footer { background: #102d21; color: rgba(255,255,255,.78); }
.site-footer .site-info { background: transparent; color: inherit; }
.site-footer .inside-site-info { min-height: 92px; padding: 25px 24px; }
.site-footer a, .site-footer .cmplz-manage-consent { color: #f3cf7d; }
.site-footer .cmplz-manage-consent { min-height: auto; padding: 0; border: 0; background: transparent; font: inherit; text-decoration: underline; }

@media (max-width: 1024px) {
  .aousja-site-hero { min-height: 280px; }
  .aousja-site-hero--compact { min-height: 230px; }
  .aousja-page-grid, .aousja-discover-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-description { display: none; }
}

@media (max-width: 768px) {
  .site-header .inside-header { padding: 9px 18px; }
  .site-branding .main-title { font-size: 1.2rem; }
  .mobile-menu-control-wrapper .menu-toggle { min-height: 44px; border-radius: 8px; color: var(--aousja-forest); }
  .main-navigation.toggled .main-nav > ul { padding: 8px 0 14px; }
  .main-navigation .main-nav > ul > li > a { min-height: 44px; line-height: 44px; }
  .aousja-site-hero { min-height: 240px; }
  .aousja-site-hero--compact { min-height: 230px; }
  .aousja-site-hero__inner { width: min(calc(100% - 36px), var(--aousja-content)); padding: 46px 0 22px; }
  .aousja-site-hero__title { font-size: clamp(2rem, 9.8vw, 3rem); }
  .aousja-site-hero__intro { font-size: .96rem; line-height: 1.48; }
  .aousja-site-hero__credit { margin-top: 11px; }
  .aousja-has-site-hero .site-content { width: calc(100% - 28px); padding: 24px 0 44px; }
  .aousja-has-site-hero.separate-containers .inside-article,
  .aousja-has-site-hero.one-container .inside-article { padding: 22px 18px; border-radius: 11px; }
  .aousja-page-grid, .aousja-discover-links { grid-template-columns: 1fr; }
  .aousja-page-card, .aousja-discover-links li, .geodir-post { padding: 18px; }
  .leaflet-container { min-height: 300px; }
  /* Keep the persistent consent control reachable without covering content. */
  body .cmplz-btn.cmplz-manage-consent.manage-consent-1 {
    right: 8px !important;
    bottom: 8px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 190px !important;
    height: 40px !important;
    max-height: 40px !important;
    min-height: 40px !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    font-size: .78rem !important;
    line-height: 1.15 !important;
    box-shadow: 0 5px 18px rgba(16, 45, 33, .18) !important;
  }
}

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