@font-face {
  font-family: "AACA Display";
  src: url("/assets/external/fonts.gstatic.com/s/playfairdisplay/v40/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_qiTXtHA-Q.woff2") format("woff2");
  font-display: swap;
  font-weight: 400 800;
}

@font-face {
  font-family: "AACA Sans";
  src: url("/assets/external/fonts.gstatic.com/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K4.woff2") format("woff2");
  font-display: swap;
  font-weight: 400 800;
}

:root {
  --primary: #2fd06e;
  --primary-light: #6cf09a;
  --primary-dark: #168c48;
  --dark: #0b100e;
  --dark-alt: #101814;
  --cream: #f7f4ec;
  --warm-gray: #e4e0d6;
  --text: #17201c;
  --text-light: #5b675f;
  --gold: #d8b15a;
  --gold-light: #ead39e;
  --white: #fff;
  --font-display: "AACA Display", Georgia, serif;
  --font-sans: "AACA Sans", Arial, sans-serif;
}

html { max-width: 100%; overflow-x: hidden; scroll-padding-top: 90px; }

body {
  max-width: 100%;
  overflow-x: hidden;
  font-family: var(--font-sans);
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, .serif { font-family: var(--font-display); }

.skip-link {
  position: fixed;
  top: 10px;
  left: 12px;
  z-index: 100000;
  padding: 10px 15px;
  color: #06110b;
  background: var(--primary-light);
  border-radius: 4px;
  transform: translateY(-160%);
  transition: transform .2s ease;
}

.skip-link:focus { transform: translateY(0); }

:where(a, button, input, textarea, select):focus-visible {
  outline: 3px solid var(--primary-light);
  outline-offset: 3px;
}

header .logo img,
.logo img {
  width: auto;
  max-width: min(240px, 42vw);
  object-fit: contain;
}

.nav-links a::after { background: var(--primary); }
.nav-cta { color: #06110b !important; }

.btn-primary {
  color: #07130c;
  background: var(--primary);
  box-shadow: 0 10px 30px rgba(47, 208, 110, .18);
}

.btn-primary:hover {
  color: #041008;
  background: var(--primary-light);
  box-shadow: 0 15px 38px rgba(47, 208, 110, .28);
}

.contact-direct {
  min-height: 260px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 18px;
}

.contact-direct h3 { font-size: clamp(1.55rem, 3vw, 2.25rem); }
.contact-direct p { max-width: 54ch; color: var(--text-light); }

.reveal,
.rv {
  transition-duration: .7s;
  transition-timing-function: cubic-bezier(.2, .8, .2, 1);
}

.reveal.visible,
.rv.visible {
  opacity: 1 !important;
  transform: none !important;
}

@media (max-width: 820px) {
  .nav-links.active { display: flex; }
  .mobile-toggle { border: 0; background: transparent; }
}

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