/* Guide TPE — overrides & motion */

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Public Sans', sans-serif;
}

.font-display {
  font-family: 'Fraunces', serif;
}

/* Hero entrance */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero-fade-1 { animation: fadeUp .8s cubic-bezier(.22,.61,.36,1) both; }
.hero-fade-2 { animation: fadeUp .8s cubic-bezier(.22,.61,.36,1) .15s both; }
.hero-fade-3 { animation: fadeUp .8s cubic-bezier(.22,.61,.36,1) .3s both; }

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease-out, transform .7s ease-out;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Underline hover */
.link-underline {
  position: relative;
}
.link-underline::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width .25s ease;
}
.link-underline:hover::after {
  width: 100%;
}

/* Nav dropdowns */
.nav-dropdown {
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.group:hover .nav-dropdown,
.group:focus-within .nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

[data-nav-key].is-active {
  color: #C1502E;
}

::selection {
  background: #C1502E;
  color: #F7F3EC;
}
