/* =========================================================
   4057 — shared styles
   Colours and fonts live in :root so they're easy to swap
   for the exact brand values.
   ========================================================= */
:root {
  --bg: #111111;
  --text: #f2f2f2;
  --muted: #c9c9c9;
  --green: #44D62C;        /* brand green (swap for exact hex) */
  --green-soft: #44D62C;
  --nav-h: clamp(64px, calc(64px + 24 * (100vw - 360px) / 1080), 88px);   /* nav bar height grows with the screen */
  --gutter: clamp(20px, 5vw, 64px);
  --font: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
  --display: "403SuperVega-Regular", "Roboto", sans-serif;   /* header font: fonts/403-super-vega-regular.css */

  /* Fluid type scale: every size grows smoothly from phone (360px) to laptop (1440px) */
  --fs-xs: clamp(12px, calc(12px + 1.5 * (100vw - 360px) / 1080), 13.5px);
  --fs-sm: clamp(13px, calc(13px + 2 * (100vw - 360px) / 1080), 15px);
  --fs-body: clamp(15px, calc(15px + 3 * (100vw - 360px) / 1080), 18px);
  --fs-h3: clamp(17px, calc(17px + 5 * (100vw - 360px) / 1080), 22px);
  --fs-h2: clamp(22px, calc(22px + 12 * (100vw - 360px) / 1080), 34px);
  --fs-value: clamp(20px, calc(20px + 10 * (100vw - 360px) / 1080), 30px);
  --fs-num: clamp(28px, calc(28px + 12 * (100vw - 360px) / 1080), 40px);
  --fs-display: clamp(44px, calc(44px + 40 * (100vw - 360px) / 1080), 84px);
  --fs-nav: clamp(14px, calc(14px + 2 * (100vw - 360px) / 1080), 16px);
  --fs-faq: clamp(16px, calc(16px + 4 * (100vw - 360px) / 1080), 20px);
  --fs-menu: clamp(20px, calc(20px + 4 * (100vw - 360px) / 1080), 24px);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { background: var(--bg); }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }

/* ---------- Nav ---------- */
.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  height: var(--nav-h);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--gutter);
  background: linear-gradient(to bottom, rgba(17,17,17,.55), rgba(17,17,17,0));
}
.logo { display: flex; align-items: center; height: clamp(20px, calc(20px + 8 * (100vw - 360px) / 1080), 28px); }
.logo img { height: 100%; width: auto; }
/* Over white sections the nav switches to the black logo / dark text (set by js/script.js) */
.logo .logo-dark { display: none; }
.nav.logo-on-light { background: none; }
.nav.logo-on-light .logo .logo-light { display: none; }
.nav.logo-on-light .logo .logo-dark { display: block; }
.nav.links-on-light .nav-links a:not([aria-current]) { color: #111; }
.logo-text { font-size: 24px; font-weight: 300; letter-spacing: .06em; }
.nav-links { display: flex; align-items: center; gap: clamp(18px, calc(18px + 72 * (100vw - 360px) / 1080), 90px); }
.nav-links a { font-size: var(--fs-nav); font-weight: 400; opacity: .9; transition: color .2s, opacity .2s; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--green); opacity: 1; }
.sound-btn { width: clamp(26px, calc(26px + 8 * (100vw - 360px) / 1080), 34px); height: clamp(26px, calc(26px + 8 * (100vw - 360px) / 1080), 34px); display: grid; place-items: center; color: var(--green); }
.sound-btn img { width: 88%; height: auto; }
.sound-btn .snd-on, .sound-btn[aria-pressed="false"] .snd-off { display: block; }
.sound-btn .snd-off, .sound-btn[aria-pressed="false"] .snd-on { display: none; }

/* ---------- Shared type ---------- */
.title { font-size: var(--fs-h2); font-weight: 400; text-transform: uppercase; letter-spacing: .02em; line-height: 1.15; }
.body { font-size: var(--fs-body); font-weight: 300; line-height: 1.3; margin-top: 18px; color: var(--text); }

.btn {
  display: inline-block; margin-top: 28px;
  padding: 6px 36px; border: 1px solid var(--green); border-radius: 999px;   /* fixed size at every screen width */
  color: var(--green); font-size: 15px; font-weight: 400;
  transition: box-shadow .25s;
}
.btn:hover, .btn:focus-visible { /* outline glows, button stays see-through */
  box-shadow: 0 0 10px rgba(68, 214, 44, .7), inset 0 0 6px rgba(68, 214, 44, .35); outline: none;
}

/* ---------- Home ---------- */
.home {
  position: relative; min-height: 100vh; min-height: 100svh; overflow: hidden;
  background: #1b2a1b url("../images/hero.webp") center / cover no-repeat;
}
.home::after { /* darken for legibility */
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(10,14,10,.75) 0%, rgba(10,14,10,.15) 55%, rgba(10,14,10,.35) 100%);
}
.home-inner {
  position: absolute; inset: auto var(--gutter) clamp(32px, 6vh, 60px) var(--gutter); z-index: 2;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 40px;
}
.hero-mark { width: min(46vw, 560px); }
.hero-mark img { width: 100%; height: auto; }
.hero-mark-text { /* fallback until the big logo asset is added */
  font-size: clamp(90px, 15vw, 210px); font-weight: 300; line-height: .8; letter-spacing: .02em;
  background: linear-gradient(120deg, #3f8f2a, #b8e04a 55%, #4f9b2e);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.home-copy { max-width: 400px; text-align: right; }
.home-copy .title { white-space: nowrap; }
.home-copy .body { font-size: var(--fs-body); }

/* ---------- Explore / scroll experience ---------- */
.experience { position: relative; }            /* height set by JS */
.stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; background: var(--bg); }
.stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.fog {
  position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background:
    radial-gradient(ellipse 70% 55% at 50% 55%, rgba(92,128,78,.85), rgba(34,48,30,.95) 60%, #0f140e 100%);
}
.copy {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: min(560px, calc(100% - 2 * var(--gutter)));
  opacity: 0; pointer-events: none;
  text-shadow: 0 1px 12px rgba(0,0,0,.45);
}
.copy.right  { left: auto; right: var(--gutter); text-align: right; }
.copy.left   { left: var(--gutter); }
.copy.center { left: 50%; transform: translate(-50%, -50%); text-align: center; }
.copy.is-on  { pointer-events: auto; }
.copy { z-index: 3; }
.stage::after { /* darker fade at the top and bottom of every scene */
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(to bottom, rgba(10,13,10,.8) 0%, rgba(10,13,10,0) 24%, rgba(10,13,10,0) 66%, rgba(10,13,10,.85) 100%);
}
.progress { z-index: 3; }
/* Once the page scrolls, the nav gets a dark backing so text doesn't run under the logo */
.nav { transition: background .3s; }
.nav.is-scrolled { background: linear-gradient(to bottom, rgba(14, 18, 14, .96) 62%, rgba(14, 18, 14, 0)); }
.fog.is-black { background: #000; }
.copy.intro.is-timed-out { opacity: 0 !important; transition: opacity .8s; }
.end-copy { width: min(640px, 90vw); }
.end-copy .title { white-space: normal; }
.end-copy .body { margin-top: 18px; }
.end-copy .btn { margin-top: 28px; }
.copy .title, .copy .body { text-shadow: 0 1px 14px rgba(0,0,0,.65), 0 0 2px rgba(0,0,0,.4); } /* legible over bright frames */

.intro { left: 50%; top: auto; bottom: 12vh; transform: translateX(-50%); width: auto; text-align: center; }
.intro .title { font-size: var(--fs-h2); white-space: nowrap; }
.scroll-icon { width: 34px; height: 122px; border-radius: 999px; background: #e3e3e3; position: relative; flex: none; }
.scroll-icon::after {
  content: ""; position: absolute; left: 50%; top: 12px; width: 16px; height: 16px; margin-left: -8px;
  border-radius: 50%; background: #1d1d1d; animation: scroll-dot 1.8s ease-in-out infinite;
}
@keyframes scroll-dot { 0%, 15% { transform: translateY(0); } 70%, 100% { transform: translateY(78px); opacity: .2; } }
.intro .text { max-width: 520px; }

.progress { position: absolute; left: 0; bottom: 0; height: 2px; width: 0; background: var(--green); opacity: .7; }

/* ---------- Map ---------- */
.map-page {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "intro box"; align-items: center; gap: 5vw;
  min-height: 100vh; min-height: 100svh; padding: calc(var(--nav-h) + 30px) var(--gutter) 60px;
  background: radial-gradient(ellipse 75% 40% at 40% 50%, #34503a 0%, #1b2a1f 50%, #0f140f 100%);
}
.map-intro { grid-area: intro; max-width: 470px; }
.map-title { font-family: var(--display); font-size: var(--fs-display); font-weight: normal; line-height: 1; }
.map-intro .body { margin-top: 10px; }
.map-art, .map-panel { grid-area: box; height: min(66vh, 560px); min-height: 420px; border: 1px solid var(--green); border-radius: 14px; }
.map-art { position: relative; overflow: hidden; }
.map-frame { position: absolute; inset: 0; }
.map-layer { position: absolute; left: -19.8%; top: -9.4%; width: 139%; aspect-ratio: 2000 / 1622; }
.map-layer img { width: 100%; height: 100%; }
.marker {
  position: absolute; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%;
  background: var(--green); box-shadow: 0 0 12px var(--green);
  transition: transform .2s, box-shadow .2s;
}
.marker::before { content: ""; position: absolute; inset: -14px; } /* bigger tap area */
.marker:hover, .marker.is-active { transform: scale(1.35); box-shadow: 0 0 18px 3px var(--green); }
.map-panel {
  z-index: 3; display: flex; height: auto; min-height: min(66vh, 560px); padding: clamp(22px, 2.6vw, 40px) clamp(22px, 2.6vw, 34px);
  background: radial-gradient(ellipse 90% 50% at 50% 35%, #2c4431 0%, #18261c 60%, #10170f 100%);
}
.map-panel[hidden] { display: none; }
.map-page.has-selection .map-art { visibility: hidden; }   /* only one box shows at a time */
.biz { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: clamp(18px, 2.4vh, 30px); }
/* The card is at least as tall as the map box and grows to fit, so it never scrolls; extra room is shared between its three parts */
.biz-close { position: absolute; top: 0; right: 0; width: clamp(26px, calc(26px + 10 * (100vw - 360px) / 1080), 36px); height: clamp(26px, calc(26px + 10 * (100vw - 360px) / 1080), 36px); }
.biz-close svg { width: 100%; height: 100%; fill: none; stroke: var(--green); stroke-width: 1.6; }
.biz .title { font-size: var(--fs-h2); font-weight: 400; padding: 30px 50px 0 0; }
.biz-meta { margin-top: 8px; font-size: var(--fs-sm); line-height: 1.3; }
.biz h3 { font-size: var(--fs-h3); font-weight: 400; }
.biz p { font-size: var(--fs-sm); font-weight: 300; line-height: 1.3; margin-top: 10px; }
.biz-services { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-top: 10px; }
.biz ul { list-style: none; font-size: var(--fs-sm); font-weight: 300; line-height: 1.3; }
.biz .btn { margin-top: 0; flex-shrink: 0; }
/* ---------- About ---------- */
.about-page { background: var(--bg); }
.about-hero {
  position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center;
  min-height: 100vh; min-height: 100svh; padding: calc(var(--nav-h) + 30px) var(--gutter) 60px;   /* same as the map page, so both titles sit at the same height */
}
.about-hero { /* same green glow as the map page */
  background: radial-gradient(ellipse 75% 40% at 40% 50%, #34503a 0%, #1b2a1f 50%, #0f140f 100%);
}
.about-hero::before { /* the wires render layered on top, faded right down */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: url("../frames/mtpilot/frame_0120.webp") center / cover;
  opacity: .14; filter: grayscale(.3);
  -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent);
  mask-image: linear-gradient(to bottom, #000 70%, transparent);
}
.about-hero h1 { font-size: var(--fs-display); line-height: 1; }
.about-hero p { margin-top: 10px; max-width: 470px; font-size: var(--fs-body); font-weight: 300; line-height: 1.3; }
/* Both intro paragraphs reserve 4 lines, so MAP and BEHIND THE SCENES land at exactly the same height */
.about-hero p, .map-intro .body { min-height: 5.2em; }

.about-row {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "title ." "img text";
  column-gap: 7vw; row-gap: 14px; padding: 110px var(--gutter);
}
.about-row > .title { grid-area: title; }
.about-row .about-img { grid-area: img; }
.about-row .about-text { grid-area: text; }
.about-text p { font-size: var(--fs-body); font-weight: 300; line-height: 1.25; }
.about-text p + p { margin-top: 22px; }
.story-photo { width: min(100%, 340px); aspect-ratio: 6 / 5; object-fit: cover; object-position: 50% 30%; border-radius: 14px; filter: grayscale(1); }
.mission-art { aspect-ratio: 43 / 21; border-radius: 14px; background: center / cover no-repeat; background-position: 55% 60%; }

.values {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "title list" "intro list"; column-gap: 7vw;
  padding: 120px var(--gutter);
  background: radial-gradient(ellipse 70% 50% at 50% 50%, #2f4834 0%, #1a281d 55%, var(--bg) 100%);
}
.values > .title { grid-area: title; }
.values-intro { grid-area: intro; align-self: end; font-size: var(--fs-body); font-weight: 300; line-height: 1.25; max-width: 400px; }
.values-list { grid-area: list; list-style: none; align-self: end; }
.values-list li { display: flex; justify-content: space-between; align-items: baseline;
  padding: 26px 0 10px; border-bottom: 1px solid var(--green); font-size: var(--fs-value); font-weight: 400; }
.values-list .num { font-family: var(--display); font-size: var(--fs-num); font-weight: normal; }

.contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 7vw; align-items: start; padding: 110px var(--gutter); }
.contact-info p { margin-top: 8px; max-width: 420px; font-size: var(--fs-body); font-weight: 300; line-height: 1.2; }
.contact-form { display: flex; flex-direction: column; gap: 14px; margin-top: 30px;
  border: 1px solid var(--green); border-radius: 14px; padding: 34px; }
.contact-form .row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; }
.contact-form .field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.contact-form .label { font-size: var(--fs-xs); }
.contact-form input, .contact-form textarea {
  width: 100%; background: transparent; color: var(--text); font: inherit; font-size: var(--fs-sm); font-weight: 300;
  border: 1px solid #e3e3e3; border-radius: 8px; padding: 6px 10px; outline: none;
}
.contact-form textarea { min-height: 74px; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--green); }
.contact-form .btn { align-self: flex-end; margin-top: 16px; }
.hidden-field { position: absolute; left: -9999px; }
.form-thanks { color: var(--green); font-size: 14px; }

.faqs { padding: 60px var(--gutter) 160px; }
.faq-list { display: flex; flex-direction: column; margin-top: 40px; }
.faq-list details { border-bottom: 1px solid #cfcfcf; }
.faq-list summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center;
  padding: 20px 0 6px; font-size: var(--fs-faq); font-weight: 400; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; font-size: 1.5em; font-weight: 300; line-height: 1; margin-left: 20px; }
.faq-list details[open] summary::after { content: "–"; }
.faq-list details p { font-size: var(--fs-body); font-weight: 300; line-height: 1.35; padding: 8px 0 20px; max-width: 1000px; color: var(--muted); }
.faq-list a { color: var(--green); }

.footer { padding: 0 var(--gutter) 30px; }
.footer-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "pages mail" "pages logo";
  border-top: 1px solid #8a8a8a; padding-top: 26px; row-gap: 22px; }
.footer h3 { font-size: var(--fs-sm); font-weight: 400; text-transform: uppercase; margin-bottom: 10px; }
.foot-pages { grid-area: pages; }
.foot-mail { grid-area: mail; text-align: right; }
.footer-cols a { display: block; font-size: var(--fs-sm); font-weight: 300; margin-bottom: 4px; color: var(--muted); }
.footer-cols a:hover { color: var(--green); }
.footer-cols .footer-logo { grid-area: logo; justify-self: end; }
.footer-cols .footer-logo img { width: 120px; height: auto; }
.copyright { text-align: center; margin-top: 30px; font-size: var(--fs-sm); color: var(--muted); }

/* =========================================================
   Phones and small screens
   (portrait phones, and phones turned sideways)
   ========================================================= */
.display-font { font-family: var(--display); font-weight: normal; text-transform: uppercase; letter-spacing: .02em; line-height: 1.1; }
.menu-btn, .rotate-note, .only-mobile { display: none; }

/* Full-screen menu (built by js/script.js) */
.menu-overlay {
  position: fixed; inset: 0; z-index: 200; overflow-y: auto;
  padding: 26px var(--gutter) 40px;
  background: radial-gradient(ellipse 85% 40% at 50% 46%, #33503a 0%, #1a2a1f 55%, #0b0f0b 100%);
  opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;
}
.menu-overlay.is-open { opacity: 1; visibility: visible; }
.menu-close { display: block; margin-left: auto; width: clamp(30px, calc(30px + 14 * (100vw - 360px) / 1080), 44px); height: clamp(30px, calc(30px + 14 * (100vw - 360px) / 1080), 44px); }
.menu-close svg { width: 100%; height: 100%; fill: none; stroke: var(--green); stroke-width: 1.6; }
.menu-title { font-size: var(--fs-display); margin: 18px 0 24px; }
.menu-list a, .menu-list summary {
  display: flex; justify-content: space-between; align-items: center;
  padding: 26px 0 8px; border-bottom: 1px solid var(--green); font-size: var(--fs-menu); cursor: pointer; list-style: none;
}
.menu-list summary::-webkit-details-marker { display: none; }
.menu-list summary::after { content: "+"; font-size: 1.5em; font-weight: 300; line-height: .8; }
.menu-list details[open] summary::after { content: "–"; }
.menu-list a[aria-current="page"] { color: var(--green); }
.menu-setting { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 20px 0 6px; font-size: var(--fs-body); color: var(--muted); }
.menu-setting .state { color: var(--green); }

@media (max-width: 760px), (max-height: 500px) and (orientation: landscape) {
  :root { --gutter: 22px; }
  .only-mobile { display: revert; }
  .only-desktop { display: none !important; }
  .nav { background: linear-gradient(to bottom, rgba(10, 14, 10, .7), rgba(10, 14, 10, 0)); }
  .nav-links a, .nav-links .sound-btn { display: none; }
  .menu-btn { display: block; width: clamp(30px, calc(30px + 14 * (100vw - 360px) / 1080), 44px); }
  .menu-btn img { width: 100%; height: auto; }
}

@media (max-width: 760px) {
  /* Home */
  .home { background-position: 31% center; }
  .home::after { background: linear-gradient(to top, rgba(10,14,10,.9) 0%, rgba(10,14,10,.35) 45%, rgba(10,14,10,.1) 70%, rgba(10,14,10,.4) 100%); }
  .home-inner { flex-direction: column; align-items: stretch; gap: 26px; bottom: 7vh; }
  .hero-mark { width: 100%; }
  .home-copy { text-align: right; max-width: none; }
  .home-copy .title { font-size: clamp(22px, 7.2vw, 34px); letter-spacing: 0; }
  .home-copy .body { margin-left: auto; max-width: 330px; }
  .home-copy .btn { margin-top: 30px; }
  .biz .title { padding-top: 0; }
  .biz-services .btn { align-self: flex-end; }
  .contact-form .btn { margin-top: 26px; }

  /* Explore: phones held upright are asked to rotate */
  .rotate-note {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px;
    position: fixed; inset: 0; z-index: 40; padding: 0 var(--gutter); text-align: center;
    background: radial-gradient(ellipse 85% 40% at 50% 50%, #33503a 0%, #1a2a1f 55%, #0b0f0b 100%);
  }
  .rotate-note { transition: opacity .6s, visibility .6s; }
  .rotate-note.is-dismissed { opacity: 0; visibility: hidden; }
  .rotate-note svg { width: 120px; }

  /* If they keep the phone upright, the scroll still works: text sits at the bottom */
  .copy.right, .copy.left { left: var(--gutter); right: var(--gutter); width: auto; padding-left: 0; top: auto; bottom: 10vh; transform: none; }
  .end-copy { width: calc(100% - 2 * var(--gutter)); }
  .rotate-note p { font-size: var(--fs-body); font-weight: 300; }

  /* Map: title on top, then the map box */
  .map-page { grid-template-columns: 1fr; grid-template-areas: "intro" "box"; align-items: start; gap: 34px; padding-bottom: 28px; }
  .map-art, .map-panel { border-radius: 20px; }
  .map-art { height: 66vh; min-height: 460px; }
  .map-panel { height: auto; min-height: max(66vh, 460px); }
  .map-layer { left: -19%; top: 0; width: 180%; }
  .map-panel { padding: 28px 22px; }
  .biz-services { flex-direction: column; align-items: stretch; gap: 30px; }

  /* About: everything in one column */
  .about-row { grid-template-columns: 1fr; grid-template-areas: "title" "text" "img"; padding: 70px var(--gutter) 50px; row-gap: 16px; }
  .about-row .about-img { margin-top: 30px; }
  .story-photo { width: 100%; aspect-ratio: 16 / 11; }
  .mission-art { aspect-ratio: 16 / 8; }
  .values { grid-template-columns: 1fr; grid-template-areas: "title" "intro" "list"; row-gap: 14px; padding: 70px var(--gutter) 90px; }
  .values-intro { max-width: none; }
  .contact { grid-template-columns: minmax(0, 1fr); padding: 120px var(--gutter) 80px;
    background: radial-gradient(ellipse 100% 45% at 50% 40%, #2a4130 0%, #18261c 50%, var(--bg) 100%); }
  .contact-form { border: 0; padding: 0; gap: 16px; }
  .contact-form .row { gap: 20px; }
  .contact-form input, .contact-form textarea { border-radius: 10px; padding: 10px 12px; }
  .contact-form textarea { min-height: 112px; }
  .faqs { padding: 80px var(--gutter) 90px; }
  .faq-list .faq-small { order: -1; }          /* phone order: "Can I get my business..." second */
  .faq-list details:first-of-type { order: -2; }
  .footer { padding: 30px var(--gutter) 40px; background: radial-gradient(ellipse 100% 60% at 50% 20%, #23362a 0%, var(--bg) 70%); }
  .footer-cols .footer-logo img { width: 130px; }
  .copyright { margin-top: -22px; }
}

/* Phones turned sideways: Explore */
@media (max-height: 500px) and (orientation: landscape) {
  .copy .title { font-size: 22px; }
  .copy .body { font-size: 13px; margin-top: 10px; }
  .copy { width: min(420px, 46%); }
  .end-copy { width: 80vw; }
  .end-copy .title { font-size: 24px; } .end-copy .body { font-size: 14px; margin-top: 12px; } .end-copy .btn { margin-top: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-icon::after { animation: none; }
}


