/* Focused improvements that retain the existing palette, imagery and layout. */
html { scroll-behavior: auto; }
body { font-family: "Open Sans", Arial, sans-serif; font-size: 16px; line-height: 1.65; color: #666; }
[hidden] { display: none !important; }
img { max-width: 100%; height: auto; }
section[id], main[id] { scroll-margin-top: 80px; }
.skip-link { position: fixed; top: -100px; left: 12px; z-index: 10000; background: #fff; color: #222; padding: 10px 16px; }
.skip-link:focus { top: 12px; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid #147d76; outline-offset: 4px; }
.hero-txt a:focus-visible, .site-footer a:focus-visible { outline-color: #fff; }
.hero-sub-title a, .contact-info a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.home, .faqhome, .termshome { background-attachment: scroll; min-height: 100svh; display: flex; align-items: center; padding: 125px 0 70px; }
.home .st-home-unit, .faqhome .st-home-unit, .termshome .st-home-unit { padding: 0; }
.faqhome > .container, .termshome > .container { width: 100%; }
.hero-title.row-full { width: auto; left: 0; margin-left: 0; }
.navbar-brand img { width: auto; max-width: 140px; }
.section-title h2 { margin-top: 20px; margin-bottom: 10px; }
.btn.btn-discover { left: 0; max-width: 100%; white-space: normal; }
.btn.btn-photo { display: inline-block; margin: 5px; }
.st-feature h3.st-feature-title { margin-top: 0; }
.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid figure { width: auto !important; float: none; margin: 0; cursor: default; }
.grid figure img { width: 100%; height: auto; aspect-ratio: 480 / 255; object-fit: cover; }
.filter input[type="radio"] { display: inline-block; margin: 0 7px 0 0; accent-color: #147d76; }
.filter label:focus-within { outline: 3px solid #147d76; outline-offset: 3px; }
.testimonial blockquote { height: auto; min-height: 210px; }
.testimonials { background: linear-gradient(-90deg, #49565c, #63737b); }
.testimonial-controls { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 25px; }
.testimonial-controls .btn { font-size: 14px; padding: 8px 12px; }
.testimonial-controls .btn, .embed-placeholder .btn, .social-embed .btn { margin: 0; }
.testimonials-carousel ul li + li { margin-top: 35px; }
.js .testimonials-carousel ul li + li { margin-top: 0; }
.testimonial .testimonial-img img { width: 200px; height: 200px; object-fit: cover; }
.contact_map { float: none; display: block; }
#map_canvas { float: none; display: block; height: auto; min-height: 230px; }
.embed-placeholder { padding: 30px; text-align: center; background: #f4f4f4; color: #444; }
.embed-placeholder p { margin: 14px 0; }
.embed-placeholder a { color: #126b65; }
.map-frame { display: block; width: 100%; height: 380px; border: 0; margin-top: 20px; }
.social-embed { min-height: 150px; }
.social-frame { display: block; width: 100%; height: 340px; border: 0; margin-top: 15px; }
.social-embed p { font-size: 14px; margin-top: 10px; }
.social-embed button:disabled, .embed-placeholder button:disabled { opacity: .75; }
.site-footer .contact-info { overflow-wrap: anywhere; }
@media (max-width: 800px) {
  .home { background-image: url(../images/skilled-mountain-biker-mobile.webp); }
  .faqhome { background-image: url(../images/faq-banner-mobile.webp); }
  .termshome { background-image: url(../images/terms-banner-mobile.webp); }
}
@media (max-width: 767px) {
  .navbar-default { height: auto; min-height: 60px; background: rgba(40,40,40,.97); }
  .navbar-brand, .st-navbar-mini .navbar-default .navbar-brand { padding: 15px; }
  .navbar-brand img { height: 30px; }
  .navbar-toggle { margin-top: 13px; }
  .main-nav { max-height: calc(100svh - 65px); overflow-y: auto; background: #282828; }
  html:not(.js) .main-nav.collapse { display: block; }
  html:not(.js) .navbar-fixed-top { position: static; }
  html:not(.js) .navbar-toggle { display: none; }
  .main-nav .navbar-nav > li > a { padding: 12px 20px; }
  .home .hero-txt .hero-title, .faqhome .hero-txt .hero-title, .termshome .hero-txt .hero-title { font-size: clamp(28px,7vw,48px); line-height: 1.25; letter-spacing: 2px; margin: 0 0 22px; }
  .home .hero-txt .hero-sub-title { font-size: 16px; line-height: 1.6; letter-spacing: .5px; overflow-wrap: anywhere; }
  .section-title h1, .section-title h2, .section-title h3 { font-size: 24px; line-height: 1.4; }
  .section-title p { font-size: 30px; line-height: 1.4; }
  .grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .grid figure h2 { font-size: 18px; line-height: 1.3; }
  .btn { font-size: 14px; }
  .testimonial blockquote { min-height: 0; padding: 20px 0; }
  .testimonial .testimonial-img { text-align: center; width: 200px; height: 200px; float: none; margin: 0 auto 20px; }
  .testimonial .testimonial-img:before, .testimonial .testimonial-img:after { display: none; }
}
@media (max-width: 480px) { .grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
