/* Ultimate Rides CR — shared site stylesheet */

/* Self-hosted fonts (Latin subset only — covers English + Spanish, including
   accents/ñ, since those live in the U+0000-00FF range). Previously loaded
   from fonts.googleapis.com -> fonts.gstatic.com: two extra third-party
   origins in the critical path, each its own DNS+TLS handshake, which adds
   up under a throttled mobile connection. Serving them from our own domain
   removes that chain entirely. Work Sans ships as a single variable-font
   file covering every weight the site uses (400-800) instead of five
   separate static files. */
@font-face{
  font-family:"Bebas Neue";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(../assets/fonts/bebas-neue-v16-latin-400.woff2) format("woff2");
}
@font-face{
  font-family:"Work Sans";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url(../assets/fonts/work-sans-v24-latin-variable.woff2) format("woff2-variations");
}

/* Visually hides text while keeping it in the DOM (readable by screen
   readers, and — unlike aria-label — as literal text content that search
   crawlers and Lighthouse's "descriptive link text" SEO audit read
   directly). Used to extend short visible link labels like "Read more"
   with the extra context needed to make each one unique. */
.visually-hidden{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

:root{
  --bg: oklch(0.15 0.012 55);
  --surface: oklch(0.205 0.014 55);
  --surface-2: oklch(0.255 0.017 55);
  --line: oklch(0.33 0.02 55);
  --text: oklch(0.95 0.006 60);
  --text-dim: oklch(0.73 0.018 60);
  --accent: oklch(0.62 0.19 35);
  --accent-hover: oklch(0.68 0.19 35);
  --accent-ink: oklch(0.17 0.03 35);
  --accent-2: oklch(0.72 0.11 95);
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x:hidden; }
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:"Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,.display{
  font-family:"Bebas Neue","Arial Narrow",sans-serif; font-weight:400;
  letter-spacing:0.02em; line-height:1.03; margin:0; text-wrap:balance;
}
p{ text-wrap:pretty; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ color:var(--accent-hover); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--accent); outline-offset:3px;
}
img{ display:block; max-width:100%; }
ul{ margin:0; padding:0; list-style:none; }

.wrap{ max-width:1240px; margin:0 auto; padding-left:clamp(20px,4vw,48px); padding-right:clamp(20px,4vw,48px); }
.wrap-narrow{ max-width:820px; margin:0 auto; padding-left:clamp(20px,4vw,48px); padding-right:clamp(20px,4vw,48px); }

.eyebrow{ font-size:13px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--accent); }

.btn{
  display:inline-flex; align-items:center; gap:10px; padding:14px 26px; border-radius:3px;
  font-weight:700; font-size:15px; letter-spacing:0.01em; cursor:pointer; border:1px solid transparent;
  white-space:nowrap; font-family:inherit;
}
.btn-primary{ background:var(--accent); color:var(--accent-ink); }
.btn-primary:hover{ background:var(--accent-hover); color:var(--accent-ink); }
.btn-ghost{ background:transparent; color:var(--text); border-color:var(--line); }
.btn-ghost:hover{ border-color:var(--accent); color:var(--text); }
.btn-block{ width:100%; justify-content:center; }

.icon{ width:20px; height:20px; flex:none; }
.icon-lg{ width:34px; height:34px; }

/* ---------- hero slideshow ---------- */
.hero-slide{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity 1.4s ease;
}
.hero-slide.is-active{ opacity:1; }

/* On phones the hero is much taller relative to its width than on desktop,
   so a straight center-crop of these wide banner photos loses the subject
   (slides 2 & 3 are 3-photo composites — a narrow crop only ever shows the
   middle panel unless re-aimed). Re-center per slide for phones only; same
   image files, just a different focal point. */
@media (max-width: 760px){
  /* Each slide is now wrapped in its own <picture> (for the WebP source),
     so ":nth-of-type" on ".hero-slide" itself would match every slide (each
     is the only <img> within its own <picture>). Select by the <picture>
     wrapper's position among its siblings instead. */
  #heroSlideshow picture:nth-of-type(1) .hero-slide{ object-position:64% 58% !important; }
  #heroSlideshow picture:nth-of-type(2) .hero-slide{ object-position:17% 46% !important; }
  #heroSlideshow picture:nth-of-type(3) .hero-slide{ object-position:50% 42% !important; }
}

/* ---------- header ---------- */
header.site-header{
  position:sticky; top:0; z-index:50; background:oklch(0.13 0.012 55);
  border-bottom:1px solid var(--line);
}
/* Note: intentionally no backdrop-filter/transform on <header> — either one
   would make it the containing block for the fixed mobile nav panel below,
   collapsing that panel to the header's own 84px box instead of the viewport. */
header.site-header .bar{ display:flex; align-items:center; justify-content:space-between; height:84px; gap:24px; }
header.site-header nav{ display:flex; align-items:center; gap:26px; font-size:14.5px; font-weight:600; }
header.site-header nav > a{ color:var(--text); }
.nav-drop{ position:relative; }
.nav-drop > a{ display:flex; align-items:center; gap:5px; color:var(--text); cursor:pointer; }
.nav-drop-panel{
  position:absolute; top:36px; left:-16px; width:270px; background:var(--surface);
  border:1px solid var(--line); border-radius:6px; padding:10px;
  box-shadow:0 18px 40px oklch(0 0 0 / 0.45);
  opacity:0; visibility:hidden; transform:translateY(6px); transition:all .15s ease;
}
.nav-drop:hover .nav-drop-panel{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-drop-panel a{ display:block; padding:9px 12px; border-radius:4px; color:var(--text-dim); font-weight:500; font-size:14px; }
.nav-drop-panel a:hover{ background:var(--surface-2); color:var(--text); }
.nav-drop-panel .cta-link{ color:var(--accent); font-weight:700; }
.nav-drop-panel .divider{ height:1px; background:var(--line); margin:6px 4px; }
.nav-drop-panel a.current{ color:var(--accent); }

/* ---------- mobile menu toggle ---------- */
.menu-toggle{
  display:none; background:transparent; border:1px solid var(--line); border-radius:6px;
  width:42px; height:42px; align-items:center; justify-content:center; color:var(--text);
  cursor:pointer; flex:none; padding:0;
}
.menu-toggle svg{ width:20px; height:20px; }
.menu-toggle .icon-x{ display:none; }
header.site-header.nav-open .menu-toggle .icon-bars{ display:none; }
header.site-header.nav-open .menu-toggle .icon-x{ display:block; }

@media (max-width: 980px){
  .menu-toggle{ display:flex; }
  .wa-label{ display:none; }
  header.site-header .bar > a{ padding:11px 12px !important; }

  header.site-header nav{
    position:fixed; top:84px; left:0; right:0; bottom:0;
    display:flex; flex-direction:column; align-items:stretch; gap:0;
    background:var(--bg); padding:8px clamp(20px,4vw,48px) 40px; overflow-y:auto;
    transform:translateX(100%); transition:transform .25s ease;
    border-top:1px solid var(--line);
  }
  header.site-header.nav-open nav{ transform:translateX(0); }
  header.site-header nav > a{ padding:16px 2px; font-size:16.5px; border-bottom:1px solid var(--line); }

  .nav-drop{ border-bottom:1px solid var(--line); }
  .nav-drop > a{ padding:16px 2px; font-size:16.5px; justify-content:space-between; }
  .nav-drop > a svg{ transition:transform .2s ease; }
  .nav-drop.drop-open > a svg{ transform:rotate(180deg); }
  .nav-drop-panel{
    position:static; width:auto; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:none; background:transparent; padding:0;
    max-height:0; overflow:hidden; transition:max-height .2s ease;
  }
  .nav-drop.drop-open .nav-drop-panel{ max-height:640px; padding-bottom:10px; }
  .nav-drop-panel a{ padding:11px 8px; font-size:15px; }

  .footer-grid{ grid-template-columns:1fr 1fr !important; }
  .quick-facts{ position:static !important; }
  .grid-sidebar{ grid-template-columns:1fr !important; }
}

@media (max-width: 560px){
  .footer-grid{ grid-template-columns:1fr !important; }
}

/* ---------- page hero (interior pages) ---------- */
.page-hero{ position:relative; padding:150px 0 64px; overflow:hidden; border-bottom:1px solid var(--line); }
.page-hero .bg{ position:absolute; inset:0; z-index:0; }
.page-hero .bg img{ width:100%; height:100%; object-fit:cover; }
.page-hero .scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, oklch(0.1 0.01 55 / 0.82) 0%, oklch(0.1 0.01 55 / 0.6) 38%, oklch(0.1 0.01 55 / 0.32) 75%, oklch(0.1 0.01 55 / 0.22) 100%); }
.page-hero .wrap{ position:relative; z-index:2; }
.page-hero h1{ font-size:clamp(34px,5vw,58px); color:#fff; margin-top:16px; text-shadow:0 2px 16px oklch(0.05 0.01 55 / 0.55); }
.page-hero p.lead{ font-size:16.5px; color:oklch(0.94 0.01 60); max-width:640px; margin-top:16px; line-height:1.6; text-shadow:0 1px 10px oklch(0.05 0.01 55 / 0.5); }
.page-hero .eyebrow{ text-shadow:0 1px 8px oklch(0.05 0.01 55 / 0.5); }
.page-hero .breadcrumb{ text-shadow:0 1px 6px oklch(0.05 0.01 55 / 0.5); }
.breadcrumb{ font-size:13px; color:var(--text-dim); display:flex; gap:8px; align-items:center; }
.breadcrumb a{ color:var(--text-dim); }
.breadcrumb a:hover{ color:var(--accent); }

/* ---------- sections ---------- */
section.block{ padding:76px 0; }
section.block.tight{ padding:48px 0; }
section.block.alt{ background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }

/* ---------- responsive grid utilities ---------- */
.grid-sidebar{ display:grid; grid-template-columns:2fr 1fr; gap:56px; align-items:start; }
.grid-2up{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.grid-contact{ display:grid; grid-template-columns:1fr 1.3fr; gap:56px; align-items:start; }
.grid-sidebar > *, .grid-2up > *, .grid-contact > *{ min-width:0; }
@media (max-width: 980px){
  .grid-2up{ grid-template-columns:1fr; }
  .grid-contact{ grid-template-columns:1fr; }
}

/* ---------- cards ---------- */
.card{ background:var(--surface); border:1px solid var(--line); border-radius:8px; }
.tour-photo{ background-image:url(../assets/hero.jpg); background-size:230% auto; height:150px; border-radius:8px 8px 0 0; position:relative; overflow:hidden; }
.tour-photo .grad{ position:absolute; inset:0; border-radius:8px 8px 0 0; background:linear-gradient(180deg, oklch(0.15 0.012 55 / 0.15), oklch(0.15 0.012 55 / 0.92)); }
.tour-photo .badge-row{ position:absolute; top:14px; right:14px; left:14px; display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.badge{
  font-size:12.5px; font-weight:700; letter-spacing:0.08em; color:#fff;
  background:oklch(0.15 0.012 55 / 0.55); border:1px solid oklch(1 0 0 / 0.3);
  border-radius:20px; padding:6px 14px; backdrop-filter:blur(3px); display:inline-block; white-space:nowrap;
}
/* A dedicated (darker) shade rather than var(--accent) directly: white
   text on the brand accent orange is only ~4:1 contrast, under the 4.5:1
   needed for small bold text (flagged by PageSpeed/axe) — this shade
   clears it while staying visually on-brand. */
.badge-solid{ background:oklch(0.50 0.19 35); border-color:oklch(0.50 0.19 35); color:#fff; }
.badge-outline{ background:transparent; color:var(--accent); border:1px solid oklch(0.62 0.19 35 / 0.4); }
.badge-outline-2{ background:transparent; color:var(--accent-2); border:1px solid oklch(0.72 0.11 95 / 0.4); }

/* ---------- quick facts sidebar (tour pages) ---------- */
.quick-facts{ background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:26px; position:sticky; top:100px; }
.quick-facts dl{ display:flex; flex-direction:column; gap:14px; margin:18px 0; }
.quick-facts .row{ display:flex; justify-content:space-between; gap:12px; padding-bottom:14px; border-bottom:1px solid var(--line); font-size:14px; }
.quick-facts .row:last-child{ border-bottom:none; padding-bottom:0; }
.quick-facts .row dt{ color:var(--text-dim); font-weight:600; }
.quick-facts .row dd{ margin:0; font-weight:700; text-align:right; }

/* ---------- itinerary ---------- */
.itinerary{ display:flex; flex-direction:column; }
.itinerary .day{ display:grid; grid-template-columns:64px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
.itinerary .day:last-child{ border-bottom:none; }
.itinerary .day .num{ font-family:"Bebas Neue",sans-serif; font-size:30px; color:var(--accent); line-height:1; }
.itinerary .day h3{ font-family:"Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:16.5px; font-weight:700; letter-spacing:0; margin-bottom:6px; color:var(--text); }
.itinerary .day p{ font-size:14.5px; color:var(--text-dim); line-height:1.6; margin:0; }

/* ---------- checklist ---------- */
.check-list{ display:flex; flex-direction:column; gap:12px; }
.check-list li{ display:flex; align-items:flex-start; gap:12px; font-size:14.5px; color:var(--text-dim); line-height:1.5; }
.check-list li svg{ flex:none; margin-top:2px; color:var(--accent); }

/* ---------- reviews ---------- */
.review-card{ background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:24px; display:flex; flex-direction:column; gap:14px; }
.review-card .stars{ display:flex; gap:3px; color:var(--accent); }
.review-card p{ font-size:14.5px; line-height:1.6; color:var(--text); margin:0; flex:1; }
.review-card .meta{ font-size:12.5px; color:var(--text-dim); display:flex; justify-content:space-between; border-top:1px solid var(--line); padding-top:12px; }

/* ---------- forms ---------- */
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:13px; font-weight:600; color:var(--text-dim); }
.field input, .field select, .field textarea{
  width:100%; background:var(--bg); border:1px solid var(--line); border-radius:5px; padding:13px 14px;
  color:var(--text); font-family:inherit; font-size:14.5px;
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--accent); outline:none; }
.field textarea{ resize:vertical; min-height:120px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-grid > *{ min-width:0; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.form-note{ font-size:13px; color:var(--text-dim); line-height:1.6; }

/* ---------- gallery ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(220px,100%),1fr)); gap:16px; }
.gallery-grid .g-item{ aspect-ratio:4/3; border-radius:8px; border:1px solid var(--line); transition:opacity .15s ease; overflow:hidden; }
.gallery-grid .g-item img{ width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }
.gallery-grid .g-item:hover, .gallery-grid .g-item:focus-visible{ opacity:0.85; outline:2px solid var(--accent); outline-offset:2px; }

/* ---------- gallery lightbox ---------- */
.gallery-lightbox{
  display:none; position:fixed; inset:0; z-index:1000;
  background:oklch(0.05 0.005 55 / 0.92);
  align-items:center; justify-content:center;
  padding:min(5vh,48px) min(5vw,48px);
}
.gallery-lightbox.is-open{ display:flex; }
.gallery-lightbox img{
  max-width:100%; max-height:100%; width:auto; height:auto;
  border-radius:6px; box-shadow:0 20px 60px oklch(0 0 0 / 0.5);
  object-fit:contain;
}
.gallery-lightbox-close{
  position:absolute; top:18px; right:22px; z-index:1001;
  width:44px; height:44px; border-radius:50%; border:1px solid oklch(1 0 0 / 0.25);
  background:oklch(0.12 0.01 55 / 0.85); color:#fff; font-size:26px; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.gallery-lightbox-close:hover{ background:var(--accent); border-color:var(--accent); }
.gallery-lightbox-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:1001;
  width:50px; height:50px; border-radius:50%; border:1px solid oklch(1 0 0 / 0.25);
  background:oklch(0.12 0.01 55 / 0.85); color:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.gallery-lightbox-arrow:hover{ background:var(--accent); border-color:var(--accent); }
.gallery-lightbox-arrow:disabled{ opacity:0.35; cursor:default; background:oklch(0.12 0.01 55 / 0.85); border-color:oklch(1 0 0 / 0.25); }
.gallery-lightbox-prev{ left:14px; }
.gallery-lightbox-next{ right:14px; }
.gallery-lightbox-counter{
  position:absolute; bottom:18px; left:50%; transform:translateX(-50%); z-index:1001;
  color:oklch(1 0 0 / 0.8); font-size:13px; font-weight:700; letter-spacing:0.03em;
  background:oklch(0.12 0.01 55 / 0.7); padding:6px 16px; border-radius:20px; white-space:nowrap;
}
@media (max-width:640px){
  .gallery-lightbox-arrow{ width:40px; height:40px; }
  .gallery-lightbox-prev{ left:6px; }
  .gallery-lightbox-next{ right:6px; }
}

/* ---------- press pages: photo grid + video embed ---------- */
.press-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(180px,100%),1fr)); gap:14px; }
.press-grid .press-tile{ display:block; border-radius:8px; overflow:hidden; border:1px solid var(--line); line-height:0; background:var(--surface); cursor:pointer; }
.press-grid img{ width:100%; height:100%; aspect-ratio:3/2; object-fit:cover; display:block; transition:transform .35s ease; }
.press-grid .press-tile:hover img, .press-grid .press-tile:focus-visible img{ transform:scale(1.05); }
.press-grid .press-tile:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.video-embed{ position:relative; width:100%; aspect-ratio:16/9; border-radius:8px; overflow:hidden; border:1px solid var(--line); background:var(--surface); }
.video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---------- home page: Google reviews carousel ---------- */
.g-review-carousel{ position:relative; max-width:1100px; margin:0 auto; padding:0 50px; box-sizing:border-box; }
.g-review-viewport{ overflow:hidden; border-radius:12px; max-height:250px; }
.g-review-track{ display:flex; gap:18px; touch-action:pan-y; cursor:grab; transition:transform .35s ease; }
.g-review-track.dragging, .g-review-track.no-anim{ transition:none; }
.g-review-track.dragging{ cursor:grabbing; }
.g-review-slide{ flex:0 0 100%; min-width:100%; box-sizing:border-box; user-select:none; }
@media (min-width:640px){
  .g-review-slide{ flex:0 0 calc(50% - 9px); min-width:calc(50% - 9px); }
}
@media (min-width:960px){
  .g-review-slide{ flex:0 0 calc(33.333% - 12px); min-width:calc(33.333% - 12px); }
}
.g-review-slide img{ -webkit-user-drag:none; pointer-events:none; }
.g-review-arrow{ position:absolute; top:50%; transform:translateY(-50%); width:34px; height:34px; border-radius:50%; background:#fff; border:1px solid #e2e2e4; color:#1a1a1a; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 2px 10px rgba(0,0,0,.15); padding:0; flex:none; }
.g-review-arrow:hover{ background:#f4f4f5; }
.g-review-prev{ left:0; }
.g-review-next{ right:0; }
/* Dots: the visible pill is a small ::after so the button itself can be a
   full 24x24px CSS-pixel touch target (axe/Lighthouse touch-target size
   rule) without changing how big the dot looks. The active/inactive size
   change is done with "transform:scaleX()" rather than animating "width"
   directly — width changes aren't GPU-composited and were flagged as a
   non-composited animation; scaleX is. */
.g-review-dots{ display:flex; justify-content:center; gap:2px; margin-top:14px; }
.g-review-dot{
  width:24px; height:24px; padding:0; border:0; background:transparent; cursor:pointer;
  display:flex; align-items:center; justify-content:center; flex:none;
}
.g-review-dot::after{
  content:""; display:block; width:18px; height:7px; border-radius:4px; background:#d8d8da;
  transform:scaleX(0.389); transition:transform .2s ease, background .2s ease;
}
.g-review-dot.is-active::after{ background:#1a1a1a; transform:scaleX(1); }
@media (max-width:420px){
  .g-review-carousel{ padding:0 34px; }
}

/* ---------- legal text ---------- */
.legal h2{ font-family:"Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:20px; font-weight:700; letter-spacing:0; color:var(--text); margin:40px 0 14px; }
.legal h2:first-child{ margin-top:0; }
.legal p{ font-size:15px; line-height:1.7; color:var(--text-dim); margin:0 0 14px; }
.legal ul{ display:flex; flex-direction:column; gap:8px; margin:0 0 14px; }
.legal ul li{ font-size:15px; line-height:1.7; color:var(--text-dim); padding-left:20px; position:relative; }
.legal ul li::before{ content:"—"; position:absolute; left:0; color:var(--accent); }
.legal strong{ color:var(--text); }

/* ---------- footer ---------- */
footer.site-footer{ border-top:1px solid var(--line); padding:64px 0 32px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.footer-col-title{ font-size:12.5px; font-weight:700; letter-spacing:0.1em; color:var(--text-dim); margin-bottom:16px; }
.footer-links{ display:flex; flex-direction:column; gap:10px; font-size:14px; }
.footer-links a{ color:var(--text-dim); }
.footer-links a:hover{ color:var(--accent); }
.social-row{ display:flex; gap:12px; margin-top:20px; }
.social-row a{
  width:36px; height:36px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--text-dim);
}
.social-row a:hover{ border-color:var(--accent); color:var(--accent); }
.footer-partners{ margin-top:44px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.footer-partners-label{ font-size:12.5px; font-weight:700; letter-spacing:0.1em; color:var(--text-dim); text-transform:uppercase; }
.partner-badge{ display:flex; align-items:center; justify-content:center; background:#fff; border-radius:7px; padding:7px 11px; height:38px; }
.partner-badge img{ height:100%; width:auto; max-width:109px; object-fit:contain; display:block; }
.footer-bottom{
  margin-top:32px; padding-top:24px; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:13px; color:var(--text-dim);
}
.footer-bottom a{ color:var(--text-dim); text-decoration:underline; }
.footer-bottom a:hover{ color:var(--accent); }

@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
