/* Brand orange sampled from the published Canyons logo. */
:root {
  --brand-orange: #c4661c;
  --brand-orange-hover: #b05b19;
  --brand-orange-text: #9e5116;
  --brand-orange-rgb: 196 102 28;
  --brand-on-orange: #11140c;
}
/* Small lettering uses a shade of the same orange for readable contrast. */
body > header nav > a:not(.nav-pay):hover,
.eyebrow, .overline, .contact-kicker, .contact-links a, .map-label,
.text-link, .arrow-link, .outline-button, .rates-heading .cream-button,
.alt-footer strong, .alt-footer a:hover, .arrival-map-links a,
.weather-source a, .arrival-banner > a,
.amenity-item span, .park-status, .legal-jump a, .policy a,
.legal-heading .eyebrow, .rules-heading .eyebrow, .rules-grid span,
.footer-credit a, footer .site-legal a:hover, footer > a:not(.footer-brand):hover,
.back:hover, .agreement-row strong, #date-error,
.check-summary .total, .owner-actions .edit,
.roster-table td:nth-child(1), .billing-overdue {
  color: var(--brand-orange-text);
}
legend { color: var(--brand-orange-text); }
/* Dark lettering keeps the exact logo orange readable on filled controls. */
body > header nav .nav-pay, body > header.alt-header nav .nav-pay, body > header .menu-toggle,
.button, .owner-app .button, .owner-app > header .nav-pay,
.owner-app > header .menu-toggle, .policy-number,
.owner-main .retention-danger button:not(.button),
.owner-app .site-board .site.occupied, .attention-count {
  color: var(--brand-on-orange);
}
body > header nav .nav-pay:hover, body > header.alt-header nav .nav-pay:hover, body > header .menu-toggle:hover,
.button:hover, .owner-app .button:hover, .owner-app > header .nav-pay:hover,
.owner-main .retention-danger button:not(.button):hover {
  background: var(--brand-orange-hover);
  color: #fff;
}
.arrival-banner, .arrival-banner h2,
.amenity-section, .amenity-section .overline,
.rules-note, .tenant, .amenities {
  color: var(--brand-on-orange);
}
.portal-app .owner-main button.occupancy-map-lot.occupied,
.map-status.occupied, .portal-app .map-space-button.occupied {
  color: var(--brand-on-orange);
  border-color: var(--brand-orange-text);
}
.portal-app .attention-count { color: var(--brand-orange-text); }

/* White check-in labels need a slightly deeper orange for legibility. */
body > header nav .nav-pay,
body > header.alt-header nav .nav-pay,
.home-page .arrival-checkin {
  color: #fff;
  background-color: #b05b19;
}
body > header nav .nav-pay:hover,
body > header.alt-header nav .nav-pay:hover,
.home-page .arrival-checkin:hover {
  color: #fff;
  background-color: #a35317;
}

/* Gentle motion keeps the park's pages lively without slowing down a visit. */
@media (prefers-reduced-motion: no-preference) {
  @keyframes canyons-arrive {
    from { opacity: .8; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
  }
  .alt-hero-copy, .arrival-banner, .gallery-heading, .map-hero,
  .pay-heading, .square-main > h1, .legal-heading, .rules-heading {
    animation: canyons-arrive .7s ease-out both;
  }
  .arrival-banner { animation-delay: .12s; }
  .button, .arrival-checkin, .cream-button, .dark-button, .outline-button,
  body > header nav a, .gallery-card img {
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
  }
  @media (hover: hover) {
    .button:not(:disabled):hover, .arrival-checkin:hover, .cream-button:hover,
    .dark-button:hover, .outline-button:hover {
      transform: translateY(-2px);
      box-shadow: 0 6px 16px rgb(33 39 31 / .14);
    }
    .gallery-card button:hover img { transform: scale(1.035); }
    body > header nav a:not(.nav-pay):hover { transform: translateY(-1px); }
  }
  @supports (animation-timeline: view()) {
    .home-page .section-heading, .home-page .rates-heading,
    .home-page .rv-rate-card, .home-page .tent-rate-card,
    .home-page .extras-rate-card, .home-page .amenity-copy,
    .home-page .arrival-map, .home-page .local-weather,
    .gallery-card, .map-shell {
      animation: canyons-arrive linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 35%;
    }
  }
}
