/* =============================================================


   Content:
   1.  Meyer CSS Reset
   2.  CSS Custom Properties
   3.  Base & Typography
   4.  Skip Link
   5.  Header & Navigation
   6.  Hero
   7.  Opening Status Banner
   8.  Why Us
   9.  In Store Right Now
   10. Events
   11. Location
   12. Footer
   13. Gear Hero
   14. Gear Categories
   15. Gear CTA
   16. Page Heroes (services + about)
   17. Services Page
   18. Services + About CTAs
   19. About — Story Timeline
   20. About — Stats
   21. About — Team
   22. Accessibility Page
   23. 404 Page
   24. Responsive Breakpoints
============================================================= */


/* =============================================================
   1. MEYER CSS RESET
============================================================= */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}


/* =============================================================
   2. CSS CUSTOM PROPERTIES
============================================================= */
:root {
    /* Colors —  */

  --prim-green: #1c2e1e;
  --prim-green-mid: #2a4030;
  --cream: #f4f0e8;
  --cream-dark: #e8e2d6;
  --white: #ffffff;
  --dark: #6b5c4e;
  --light-orange:#ff790b;
  --orange: #a94c00;
  --orange-dark: #9e3e12;
 
  /* Fonts —  */

  --f-display: "Montserrat", "Arial", "Helvetica", sans-serif;
  --f-body: 'Source Sans 3', 'Helvetica Neue', 'Arial', sans-serif;

  /* Spacing —  */

  --spc-xs: 0.5em;
  --spc-s: 1em;
  --spc-m: 1.5em;
  --spc-l: 2.5em;
  --spc-xl: 4em;
  --spc-2x: 6em;
  --radius: 4px;
  --radius-l: 8px;
}


/* =============================================================
   3. BASE & TYPOGRAPHY
============================================================= */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}



body {
  font-family: var(--f-body);
  font-size: 1em;
  line-height: 1.55;
  color: var(--dark);
  background-color: var(--cream);
}

/* All headings inherit display font — single cascade rule */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--f-display);
  font-weight: 900;
  line-height: 1.1;
  color: var(--prim-green);
}

h1 {
  font-size: 3em;
}

h2 {
  font-size: 2.2em;
}

h3 {
  font-size: 1.2em;
  font-weight: 700;
}


a {
  font-family: var(--f-display);
  display: flex;
  align-items: center;
  color: var(--orange);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-size: 0.85em;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--radius);
  transition: background-color 0.2s, color 0.2s;
  padding: 0.65em 1.75em;

}

a:visited {
  color: var(--white);
}

a:hover,
a:active {
  color: var(--orange-dark);
}

a:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 3px;
  border-radius: var(--radius);
}


section h2 {
  font-size: 2.5em;
  line-height: 1.0;
  margin-bottom: var(--spc-s);
}


/* =============================================================
   4. SKIP LINK
============================================================= */
.skip-link {
  position: absolute;
  top: -200%;
  left: var(--spc-s);
  padding: 0.75em 1.25em;
  background: var(--orange);
  color: var(--white);
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 0.9em;
  text-decoration: none;
  border-radius: 0 0 var(--radius) var(--radius);
  z-index: 9999;
  transition: top 0.15s;
}

.skip-link:focus {
  top: 0;
  color: var(--cream);
}
.skip-link:hover {
  color: var(--cream);
}

/* =============================================================
   5. HEADER & NAVIGATION 
============================================================= */
header {
  position: sticky;
  top: 0;
  z-index: 100;
  background-color: var(--prim-green);
  border-bottom: 1px solid rgb(255 255 255 / 0.06);
}

header > nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  max-width: var(--max-w);
  margin-inline: auto;
  padding: var(--spc-xs) var(--spc-s);
  gap: var(--spc-s);
}

/* Logo link */
header > nav > a {
  display: block;
  text-decoration: none;
  line-height: 0;
}

/* Hide the checkbox completely — it's only a state holder */
#nav-toggle {
  display: none;
}

/* Label acts as the visible hamburger button */
header nav label[for="nav-toggle"] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  cursor: pointer;
  border-radius: var(--radius);
  transition: background-color 0.2s;
}

header nav label[for="nav-toggle"]:hover {
  background-color: var(--prim-green-mid);
}

/* Burger icon — three bars via pseudo-elements */
.burger,
.burger::before,
.burger::after {
  display: block;
  width: 22px;
  height: 2px;
  background-color: var(--cream);
  position: relative;
  transition: transform 0.2s, opacity 0.2s;
  pointer-events: none;
}

.burger::before,
.burger::after {
  content: '';
  position: absolute;
  left: 0;
}

.burger::before { top: -7px; }
.burger::after  { top:  7px; }

/* When checkbox is checked — animate burger to X */
#nav-toggle:checked ~ label[for="nav-toggle"] .burger {
  background-color: transparent;
}

#nav-toggle:checked ~ label[for="nav-toggle"] .burger::before {
  transform: rotate(45deg) translate(5px, 5px);
}

#nav-toggle:checked ~ label[for="nav-toggle"] .burger::after {
  transform: rotate(-45deg) translate(5px, -5px);
}

/* Nav list — hidden by default on mobile */
header nav ul {
  display: none;
  flex-direction: column;
  width: 100%;
  padding: var(--spc-xs) 0 var(--spc-s);
  gap: 2px;
  border-top: 1px solid rgb(255 255 255 / 0.06);
}

/* Checkbox checked — show the menu */
#nav-toggle:checked ~ ul {
  display: flex;
}

header nav ul a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0.5em var(--spc-s);
  font-size: 0.85em;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  color: rgb(244 240 232 / 0.85);
  border-radius: var(--radius);
  transition: background-color 0.2s, color 0.2s;
}

header nav ul a:hover,
header nav ul a:focus {
  background-color: var(--prim-green-mid);
  color: var(--cream);
}

header nav a[aria-current="page"] { color:var(--light-orange); }


/* =============================================================
   6. HERO
============================================================= */
.hero {
  position: relative;
  background-image: url('images/hero-image.webp');
  background-size: cover;
  background-position: center 30%; 
}

.hero>div:first-child {
  position: absolute;
  inset: 0;
  

   background: linear-gradient(to right, rgba(0, 40, 4, 0.97) , rgba(15, 49, 20, 0.4));
}

.hero>div:nth-child(2) {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  padding: var(--spc-2x) var(--spc-m);
  gap: var(--spc-m);
}



.hero h1 {
  color: var(--cream);
  display: flex;
  flex-direction: column;
  max-width: 200px;
}

.hero h1>span:first-child {
  font-size: 0.6em;
  opacity: 0.65;
}

.hero h1>span:last-child {
  font-size: 1.7em;
  line-height: 0.92;
  letter-spacing: -0.02em;
}

.hero>div:nth-child(2)>div{
  display: flex;
  flex-direction: column;
  gap: var(--spc-m);
}

.hero>div:nth-child(2)>div p {
  color: rgb(244 240 232);
  font-family: var(--f-body);margin-top: var(--spc-s) ;
  font-size: 1em;max-width: 280px;
}


.hero a {
color: var(--cream);
  background-color: var(--orange);
  max-width: 220px;


}

.hero a:hover,a:visited {
  color: var(--cream);
  background-color: var(--orange-dark);
}



/* =============================================================
   7. OPENING STATUS BANNER
============================================================= */
.opening-status {

  padding: 1em 0.8em;
  font-family: var(--f-display);
  font-size: 0.88em;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
}

.opening-status.is-open {
  background: rgb(1, 137, 44);
  color: #ffffff;
  outline: 1px solid rgb(42 122 59 / 0.4);
}

.opening-status.is-closed {
  background: rgb(178, 4, 4);
  color: #e6e4e4;
  outline: 1px solid rgb(139 32 32 / 0.4);
}

.opening-status p {
  line-height: 1;
  font-size: 1em;
}


/* =============================================================
   8. WHY US
============================================================= */
.why-us {
  background-color: var(--prim-green);
  padding: var(--spc-2x) var(--spc-m);
}

.why-us>div:first-child {
  max-width: var(--max-w);
  margin-bottom: var(--spc-xl);
}

.why-us>div:first-child>p {
  font-family: var(--f-display);
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--light-orange);
  margin-bottom: var(--spc-s);
}

.why-us>div:first-child>h2 {
  color: var(--cream);
  max-width: 300px;

}

/* reason grid */
.why-us>div:last-child {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spc-l);
}

.why-us>div:last-child>div {
  position: relative;
  padding-top: var(--spc-m);
  border-top: 1px solid rgb(255 255 255 / 0.08);
}


.why-us h3 {
  color: var(--cream);
  margin-bottom: var(--spc-xs);
}

.why-us p {
  color: rgb(244 240 232 / 0.65);
  font-size: 0.95em;
}


/* =============================================================
   9. IN STORE RIGHT NOW
============================================================= */
.new-products {
  background-color: var(--cream-dark);
  padding: var(--spc-2x) var(--spc-m);
}

.new-products>div:first-child {
  max-width: var(--max-w);
  margin-bottom: var(--spc-xl);
}
.new-products>div:first-child>h2 {
  max-width:230px;
}
.new-products>div:first-child>p {
  font-size: 0.95em;
  max-width: 400px;
}

.new-products>div:nth-child(2) {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spc-s);
  margin-bottom: var(--spc-l);
}

.new-products figure {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-l);
  background: var(--prim-green);
}

.new-products figure img {
  width: 100%;
  height: auto;
  object-fit: cover;
  opacity: 0.85;
  transition: transform 0.4s ease, opacity 0.4s;
}

.new-products figure:hover img {
  transform: scale(1.03);
  opacity: 0.7;
}


/* first figure — taller aspect ratio */
.new-products figure:first-child img {
  aspect-ratio: 3/ 4;
}

/* Secondary figures */
.new-products figure:nth-child(2) img,
.new-products figure:last-child img {
  aspect-ratio: 5 / 3;
}



/* figcaption overlays from the bottom */
.new-products figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: var(--spc-m);
  background: linear-gradient(to top, rgba(1, 30, 4, 0.95) 0%, rgb(28 46 30 / 0) 100%);
  width: 100%;

}

.new-products figcaption h3 {
  color: var(--cream);
  font-size: 1.1em;
  margin-bottom: 0.3em;
}

.new-products figcaption p {
  color: rgb(244 240 232 / 0.75);
  font-size: 0.95em;
}


.new-products>a:last-child {
  width: fit-content;
  border-radius: 0;
  margin-inline: auto;
  color: var(--prim-green);
  border-bottom: 2px solid var(--orange);
}

.new-products>a:last-child:hover {
  color: var(--orange);
}


/* =============================================================
   10. EVENTS
============================================================= */
.upcoming-events {
  background-color: var(--prim-green);
  padding: var(--spc-2x) var(--spc-m);
}

.upcoming-events>div:first-child {
  margin-inline: auto;
  margin-bottom: var(--spc-xl);
}
.upcoming-events>div:first-child>h2 {
 max-width: 300px;
}
.upcoming-events>div:first-child>p:first-child {
  font-family: var(--f-display);
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--light-orange);
  margin-bottom: var(--spc-s);
}

.upcoming-events>div:first-child>h2 {
  color: var(--cream);

}

.upcoming-events>div:first-child>p:last-child {
  color: rgb(244 240 232 / 0.65);
  max-width: 400px;
  font-size: 0.95em;
}

.upcoming-events>div:nth-child(2) {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spc-s);
  margin-inline: auto;
  margin-bottom: var(--spc-l);
}

.upcoming-events>div>div {
  display: flex;
  gap: var(--spc-m);
  align-items: flex-start;
  padding: var(--spc-m);
  border: 1px solid rgb(255 255 255 / 0.08);
  border-radius: var(--radius);
  transition: border-color 0.2s, background-color 0.2s;
}

.upcoming-events>div>div:hover {
  border-color: rgb(255 255 255 / 0.18);
  background-color: rgb(255 255 255 / 0.03);
}

.upcoming-events time {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-width: 54px;
  aspect-ratio: 1;
  background-color: var(--orange);
  border-radius: var(--radius);
  font-family: var(--f-display);
  color: var(--white);
}

.upcoming-events time>span:first-child {
  font-size: 1.5em;
  font-weight: 900;
  line-height: 1;
}

.upcoming-events time>span:last-child {
  font-size: 0.8em;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.upcoming-events>div>div>div>h3 {
  color: var(--cream);
  font-size: 1em;
  font-weight: 700;
  margin-bottom: 0.3em;
}

.upcoming-events>div>div>div>p {
  color: rgb(244 240 232 / 0.6);
  font-size: 0.88em;
}

.upcoming-events>a:last-child {
  width: fit-content;  border-radius: 0;

  margin-inline: auto;
  color: rgb(244 240 232 / 0.85);
  border-bottom: 1px solid rgba(244, 240, 232, 0.338);

}

.upcoming-events>a:last-child:hover {
  color: var(--cream);
  border-color: var(--orange);
}


/* =============================================================
   11. LOCATION
============================================================= */
.location {
  background-color: var(--cream);
  padding: var(--spc-2x) var(--spc-m);
}

.location>div:first-child {
  margin-inline: auto;
  margin-bottom: var(--spc-xl);
}

.location>div:first-child>h2 {
  font-size: 2.8em;
  text-align: left;
  margin-bottom: var(--spc-s);
}

.location>div:first-child>p {
  max-width: 400px;
  font-size: 0.95em;
}

.location>div:last-child {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spc-l);
  margin-inline: auto;
}

/* Map div */
.location>div:last-child>div:first-child iframe {
  width: 100%;
  height: 300px;
  border: none;
  border-radius: var(--radius-l);
  filter: grayscale(20%) contrast(1.05);
}

.location>div:last-child>div:last-child {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spc-m);
}

.location>div:last-child>div:last-child>div>h3 {
  font-size: 0.86em;
  text-transform: uppercase;
  color: var(--orange);
  font-weight: 700;
  margin-bottom: var(--spc-xs);
}

.location address {
  font-size: 0.92em;
  color: var(--dark);
max-width: 140px;}

/* Opening hours list */
.location ul {
  font-size: 0.92em;
  line-height: 2.2;
  color: var(--dark);
}



.location p {
  font-size: 0.88em;
  margin-top: 0.3em;
}

/* Contact links */
.location address a {
  font-family: var(--f-body);
  font-size: 0.92em;
  color: var(--dark);
  transition: color 0.2s;
  text-transform: none;
  padding: 0;
  font-weight: normal;
  letter-spacing: 0;
}

.location address a:hover {
  color: var(--orange);
}

.location address ul {
  display: flex;
  flex-direction: column;
  gap: 0.35em;
}
.no-js .map-wrap {
  display: none;}
.no-js .opening-status {
    display: none;
}
/* =============================================================
   12. FOOTER
============================================================= */
footer {
  background-color: var(--prim-green);
  color: var(--cream);
  padding: var(--spc-2x) var(--spc-m) var(--spc-m);
}

footer>div:nth-child(1) {
  margin-bottom: var(--spc-l);
  padding-bottom: var(--spc-l);
  border-bottom: 1px solid rgb(255 255 255 / 0.08);
}

footer>div>a:nth-child(1) {
  padding: 0;
}

footer>div:nth-child(1) img {
  margin-bottom: var(--spc-s);
  opacity: 0.9;
}

footer>div:nth-child(1) p {
  color: rgb(244 240 232 / 0.8);
  font-size: 0.88em;
max-width: 230px;
}

footer nav {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spc-m);
  margin-bottom: var(--spc-l);
}

footer nav h3 {
  font-size: 0.8em;
  text-transform: uppercase;
  color: rgb(244 240 232 / 1);
  margin-bottom: var(--spc-s);
  font-weight: 700;
}

footer nav a {
  display: flex;
  align-items: center;
  padding: 0.15em 0;
  color: rgb(244 240 232 / 0.7);
  font-family: var(--f-body);
  text-transform: none;
  font-weight: normal;
  letter-spacing: 0;
}

footer nav a:hover,
footer nav a:focus {
  color: var(--cream);
}

footer nav address li {
  color: rgb(244 240 232 / 1);
  font-size: 0.85em;
  line-height: 1.8;
  padding: 0.1em 0;
}

footer nav address a {
  font-size: 0.9em;
  padding: 0;
  color: rgb(244 240 232 / 0.65);
}

footer>div:last-child {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--spc-s);
  padding-top: var(--spc-m);
  border-top: 1px solid rgb(255 255 255 / 0.08);
}

footer>div:last-child p,
footer>div:last-child a {
  font-size: 0.8em;
  color: rgb(244 240 232 / 0.8);
  font-family: var(--f-body);
  text-transform: none;
  letter-spacing: 0; font-weight: normal;
}
footer>div:last-child a{
    font-size: 1.1em;padding: 0;   text-decoration: underline;


}
footer>div:last-child a:hover {
  color: var(--light-orange);
}


/* =============================================================
   13. GEAR HERO
============================================================= */
.gear-hero {
  background-color: var(--prim-green);
  padding: var(--spc-2x) var(--spc-m) var(--spc-xl);
  border-bottom: 3px solid var(--orange);
}

.gear-hero>div {
  max-width: var(--max-w);
}

.gear-hero>div>p:first-child {
  font-family: var(--f-display);
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--light-orange);
  margin-bottom: var(--spc-s);
}

.gear-hero h1 {
  color: var(--cream);
  max-width: 300px;
}

.gear-hero>div>p:last-child {
  color: rgb(244 240 232 / 0.6);
  max-width: 400px;
  font-size: 1em;
  margin-top: var(--spc-s);
}


/* =============================================================
   14. GEAR CATEGORIES
============================================================= */
.gears {
  background-color: var(--cream);
  padding: 0 var(--spc-m);
}

.gears>div {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spc-l);
  padding: var(--spc-l) 0;
  border-bottom: 1px solid rgb(0 0 0 / 0.08);
}

.gears>div:last-of-type {
  border-bottom: none;
}



.gears>div>div:first-child figure {
  margin: 0;
  border-radius: var(--radius-l);
  overflow: hidden;
}

.gears>div>div:first-child img {
  width: 100%;
  aspect-ratio: 5 / 4;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.gears>div>div:first-child:hover img {
  transform: scale(1.02);
}


.gears>div>div:last-child {
  display: flex;
  flex-direction: column;
  gap: var(--spc-m);
}

.gears>div h2 {
  font-size: 2em;
  line-height: 1.05;
  margin-bottom: 0;

}

.gears>div>div:last-child>p {
  font-size: 0.95em;
}




/* =============================================================
   15. GEAR CTA
============================================================= */
.gear-cta {
  background-color: var(--prim-green-mid);
  padding: var(--spc-2x) var(--spc-m);
}

.gear-cta>div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}


.gear-cta h2 {
  color: var(--cream);
  line-height: 1.05;
  margin-bottom: var(--spc-s);
  margin: 0;
}

.gear-cta>div>p{
  color: rgb(244 240 232 / 0.88);
  max-width: 400px;
  text-align: center;
  margin: var(--spc-m) 0;
  font-size: 0.95em;
}

.gear-cta>div>div {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spc-s);
}



.gear-cta>div>div>a {
  background-color: var(--orange);
  color: var(--white);
  border: 2px solid var(--orange);
}

.gear-cta>div>div>a:hover {
  background-color: var(--orange-dark);
}



/* =============================================================
   16. SERVICE & ABOUT PAGE
============================================================= */
.services-hero,
.about-hero {
  background-color: var(--prim-green);
  padding: var(--spc-2x) var(--spc-m) var(--spc-xl);
  border-bottom: 3px solid var(--orange);
}

.services-hero>div,
.about-hero>div {
  max-width: var(--max-w);
}

.services-hero>div>p:first-child,
.about-hero>div>p:first-child {
  font-family: var(--f-display);
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--light-orange);
  margin-bottom: var(--spc-s);
}

.services-hero h1,
.about-hero h1 {
  color: var(--cream);
  margin-bottom: 0;
  max-width: 330px;
}

.services-hero>div>p:last-child,
.about-hero>div>p:last-child {
  color: rgb(244 240 232 / 0.6);
  max-width: 400px;
  margin-top: var(--spc-s);
  font-size: 1em;
}


/* =============================================================
   17. SERVICES PAGE
============================================================= */
.service {
  background-color: var(--cream);
  padding: 0 var(--spc-m);
}

.service>div {
  display: grid;
  gap: var(--spc-l);
  padding: var(--spc-l) 0;
  border-bottom: 1px solid rgb(0 0 0 / 0.08);
}

.service>div:last-of-type {
  border-bottom: none;
}



.service>div>div {
  display: flex;
  flex-direction: column;
  gap: var(--spc-m);
}

.service>div h2 {
  font-size: 1.5em;
  line-height: 1.1;
  margin: 0;
}

.service>div>div>p {
  font-size: 0.95em;
  max-width: 400px;
}

.service dl,.gears dl  {
  display: grid;
  gap: 0.35em var(--spc-m);
  border-top: 1px solid rgb(0 0 0 / 0.08);
  padding-top: var(--spc-s);
  font-size: 0.88em;
  max-width: 540px;
}

.service dt,.gears dt {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 0.7em;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--orange);
}

.service dd,.gears dd {
  color: var(--dark);
  line-height: 1.5;
  margin-bottom: var(--spc-s);

}


/* =============================================================
   18. SERVICES + ABOUT CTAs
============================================================= */
.services-cta,
.about-cta {
  background-color: var(--prim-green-mid);
  padding: var(--spc-2x) var(--spc-m);
}

.services-cta>div,
.about-cta>div {
  max-width: var(--max-w);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}



.services-cta h2,
.about-cta h2 {
  font-size: 2em;
  text-align: center;
  color: var(--cream);
  line-height: 1.05;
  margin-bottom: 0;
}

.services-cta>div>p,
.about-cta>div>p {
  color: rgb(244 240 232 / 0.88);
  max-width: 400px;
  margin: var(--spc-m) 0;
  font-size: 0.95em;
  text-align: center;
}

.services-cta>div>div,
.about-cta>div>div {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spc-s);
}


.services-cta>div>div>a,
.about-cta>div>div>a {
  background-color: var(--orange);
  color: var(--white);
  border: 2px solid var(--orange);
}

.services-cta>div>div>a:hover,
.about-cta>div>div>a:hover {
  background-color: var(--orange-dark);
  border-color: var(--orange-dark);
}




/* =============================================================
   19. ABOUT 
============================================================= */
.story {
  background-color: var(--cream);
  padding: var(--spc-xl) var(--spc-m);
}

.story>div:first-child {

  margin-bottom: var(--spc-xl);
  padding-bottom: var(--spc-l);
  border-bottom: 1px solid rgb(0 0 0 / 0.08);
}

.story>div:first-child>p {
  font-family: var(--f-display);
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: var(--spc-s);
}

.story>div:first-child>h2 {
  margin: 0;
  line-height: 1.05;
}

.story>ul {

  position: relative;
  padding-left: var(--spc-l);
}

.story>ul::before {
  content: '';
  position: absolute;
  left: 0.5em;
  top: 0.5em;
  bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--orange), rgb(200 80 26 / 0.08));
}

.story>ul>li {
  position: relative;
  margin-bottom: var(--spc-xl);
}

.story>ul>li:last-child {
  margin-bottom: 0;
}

.story>ul>li::before {
  content: '';
  position: absolute;
  left: calc(0em - var(--spc-l) + 0.15em);
  top: 0.35em;
  width: 14px;
  height: 14px;
  background-color: var(--orange);
  border-radius: 50%;
  border: 3px solid var(--cream);
  box-shadow: 0 0 0 2px var(--orange);
}

.story time {
  font-family: var(--f-display);
  font-size: 0.68em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--orange);
  background: rgb(200 80 26 / 0.08);
  padding: 0.25em 0.6em;
  border-radius: 2px;
  margin-bottom: var(--spc-s);
}

.story ul li div {
  background: var(--white);
  border-radius: var(--radius);
  padding: var(--spc-m) var(--spc-l);
  box-shadow: 0 2px 8px rgb(0 0 0 / 0.05);
}

.story ul li div h3 {
  font-size: 1.1em;
  margin-bottom: var(--spc-xs);
  color: var(--prim-green);
}

.story ul li div p {
  font-size: 0.92em;
  line-height: 1.75;
}


/* =============================================================
   20. ABOUT — STATS
============================================================= */
.data-stats {
  background-color: var(--prim-green);
  padding: var(--spc-2x) var(--spc-m);
}

.data-stats>div:first-child {

  margin-bottom: var(--spc-xl);
  padding-bottom: var(--spc-l);
  border-bottom: 1px solid rgb(255 255 255 / 0.08);
}

.data-stats>div:first-child>p {
  font-family: var(--f-display);
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--light-orange);
  margin-bottom: var(--spc-s);
}

.data-stats>div:first-child>h2 {
  color: var(--cream);
  font-size: 2.5em;
  line-height: 1.05;
  max-width: 300px;
  margin: 0;
}

.data-stats>dl {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spc-m);
}

.data-stats>dl>div {
  padding: var(--spc-m);
  border: 1px solid rgb(255 255 255 / 0.07);
  border-radius: var(--radius);
  border-top: 3px solid var(--orange);
}

.data-stats dd {
  font-family: var(--f-display);
  font-size: 1.2em;
  font-weight: 900;
  color: var(--light-orange);
  line-height: 1;
  margin-bottom: 0.3em;
}

.data-stats dt {
  font-family: var(--f-display);
  font-size: 0.78em;
  font-weight: 700;
  color: var(--cream);
  margin-bottom: 0.2em;
}

.data-stats dd:last-of-type {
  font-family: var(--f-body);

  font-size: 0.78em;
  color: rgb(244 240 232 / 0.7);
  font-weight: 500;

}


/* =============================================================
   21. ABOUT — TEAM
============================================================= */
.our-team {
  background-color: var(--cream-dark);
  padding: var(--spc-2x) var(--spc-m);
}

.our-team>div:first-child {
  margin-bottom: var(--spc-xl);
  padding-bottom: var(--spc-l);
  border-bottom: 1px solid rgb(0 0 0 / 0.08);
}

.our-team>div:first-child>p {
  font-family: var(--f-display);
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #9b4703;
  margin-bottom: var(--spc-s);
}

.our-team>div:first-child>h2 {
  font-size: 2.5em;
  line-height: 1.05;
  margin: 0;
}

.our-team>ul {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: var(--spc-m);
}


.our-team>ul>li {
  background: var(--white);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 2px 12px rgb(0 0 0 / 0.06);
  transition: transform 0.2s, box-shadow 0.2s;
}

.our-team>ul>li:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgb(0 0 0 / 0.1);
}

.our-team img {
  width: 100%;
  height: clamp(360px, 46vw, 320px);
  object-fit: cover;
  object-position: center top;
  display: block;
}
.our-team>ul>li:hover img {
  filter: grayscale(0%);
}

.our-team>ul>li>div {
  padding: var(--spc-m);
}

.our-team h3 {
  font-size: 1em;
  margin-bottom: 0.2em;
}

.our-team>ul>li>div>span {
  font-family: var(--f-display);
  font-size: 0.8em;
  font-weight: 600;
  color: var(--orange);
  margin-bottom: var(--spc-xs);
}

.our-team>ul>li>div>p {
  font-size: 0.88em;
  line-height: 1.6;
}

/* =============================================================
   ACCESSIBILITY PAGE
============================================================= */

/* Hero — same treatment as services + about heroes */
.accessibility-hero {
  background-color: var(--prim-green);
  padding: var(--spc-2x) var(--spc-m) var(--spc-xl);
  border-bottom: 3px solid var(--orange);
}

.accessibility-hero > div {
  max-width: var(--max-w);
}

/* Kicker label */
.accessibility-hero > div > p:first-child {
  font-family: var(--f-display);
  font-size: 0.7em;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--light-orange);
  margin-bottom: var(--spc-s);
}

.accessibility-hero h1 {
  font-size: 2.5em;
  color: var(--cream);
  margin-bottom: var(--spc-s);
  max-width: 300px;
}

/* Last reviewed date */
.accessibility-hero > div > p:last-child {
  color: rgb(244 240 232 / 0.9);
  font-size: 0.85em;
  margin-top: var(--spc-xs);
}

/* Article wrapper */
.accessibility-statement {
 
padding: var(--spc-l) var(--spc-m);}

/* Each section inside the article */
.accessibility-statement section {
  padding: 0;
  margin-bottom: var(--spc-xl);
  padding-bottom: var(--spc-xl);
  border-bottom: 1px solid rgb(0 0 0 / 0.07);
}

.accessibility-statement section:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.accessibility-statement h2 {
  font-size: 1.3em;
  text-align: left;
  margin-bottom: var(--spc-m);
  color: var(--prim-green);
}

.accessibility-statement p {
  font-size: 0.95em;
  line-height: 1.75;max-width: 800px;
  margin-bottom: var(--spc-s);
}

.accessibility-statement p:last-child {
  margin-bottom: 0;
}

/* Feature list */
.accessibility-statement ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spc-s);
  margin-top: var(--spc-s);
}

.accessibility-statement li {
  font-size: 0.92em;
  line-height: 1.7;
  color: var(--dark);
  padding-left: var(--spc-m);
  position: relative;
}

/* orange dot before each list item */
.accessibility-statement li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  background-color: var(--orange);
  border-radius: 50%;
}

.accessibility-statement section:nth-of-type(3) ul {
  gap: 0.3em;
  margin-bottom: var(--spc-s);
}

.accessibility-statement section:nth-of-type(3) li {
  padding-left: var(--spc-s);
}

.accessibility-statement section:nth-of-type(3) li::before {
  display: none;
}

.accessibility-statement address ul {
  margin-top: var(--spc-s);
  gap: 0.4em;
}

.accessibility-statement address li {
  padding-left: 0;
  font-size: 0.92em;
  line-height: 1.6;
}

.accessibility-statement address li::before {
  display: none;
}

/* Links inside the statement */
.accessibility-statement a {
  color: var(--orange);
  font-family: var(--f-body);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 1em;
  padding: 0;
  display: inline;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.accessibility-statement a:hover {
  color: var(--orange-dark);
}

/* Inline code */
.accessibility-statement code {
  font-family: monospace;
  font-size: 0.88em;
  background: var(--cream-dark);
  padding: 0.15em 0.4em;
  border-radius: 3px;
  color: var(--prim-green);
}
/* =============================================================
   23. 404 PAGE
============================================================= */
.error-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 70vh;
  text-align: center;
  padding: var(--spc-2x) var(--spc-m);
  max-width: 900px;
  margin-inline: auto;
}

.error-page>span:first-child {
  font-family: var(--f-display);
  font-size: 4em;
  font-weight: 900;
  color: var(--orange);
margin-bottom:0.4em;
}

.error-page h1 {
  margin-bottom: 0.4em; font-size: 3em;
}

.error-page p {
  margin-bottom: var(--spc-l);  max-width: 500px;

}

.error-page>div {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spc-s);
  justify-content: center;
}


.error-page>div>a:first-child {
  background-color: var(--orange);
  color: var(--white);
  border: 2px solid var(--orange);
}

.error-page>div>a:first-child:hover {
  background-color: var(--orange-dark);
}

.error-page>div>a:last-child {
  background-color: transparent;
  color: var(--orange);
  border: 2px solid var(--orange);
}

.error-page>div>a:last-child:hover {
  background-color: var(--orange);
  color: var(--white);
}

/* Screen reader only — used in nav.php for logo */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


/* =============================================================
   24. RESPONSIVE — mobile-first
============================================================= */
/* ── 500px — first nudge down ── */
@media (min-width: 500px) {
  .new-products figure:first-child img {
    aspect-ratio: 4 / 3;
  }

  .new-products figure:nth-child(2) img,
  .new-products figure:last-child img {
    aspect-ratio: 16 / 9;
  }
}
/* ── TABLET: 600px ──────────────────────────────────────── */
@media (min-width: 600px) {

  h1 {
    font-size: 3.5em
  }

  h2 {
    font-size: 2.8em;
  }

  header nav label[for="nav-toggle"] {
    display: none;
  }

  header nav ul {
    display: flex ;
    flex-direction: row;
    width: auto;
    padding: 0;
    gap: 4px;
    border-top: none;
  }

  .hero h1>span:last-child {
    font-size: 2em;
  }
  .hero>div:nth-child(2)>div p {
  max-width: 480px;
}


  .why-us>div:last-child {
    grid-template-columns: repeat(3, 1fr);
  }

  .new-products>div:nth-child(2) {
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 1fr 1fr;
  }

  .new-products figure:first-child {
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .new-products figure:first-child img {
    aspect-ratio: unset;
    height: 100%;
  }

  .new-products figure:nth-child(2) img,
  .new-products figure:last-child img {
    height: 100%;
  }

  .upcoming-events>div:nth-child(2) {
    grid-template-columns: repeat(2, 1fr);
  }

  .location>div:last-child {
    grid-template-columns: 1fr 1fr;
  }

  .location>div:last-child>div:first-child iframe {
    height: 100%;
    min-height: 360px;
  }


  footer nav {
    grid-template-columns: repeat(3, 1fr);
  }

  .gears>div {
    grid-template-columns: 1fr 1fr;
    align-items: center;
  }

.services-hero h1
{
  max-width: 410px;
}
.about-hero h1,.gear-hero h1 {
  max-width: 440px;
}


  .service {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    padding: var(--spc-l) var(--spc-m);
  }

  .service>div {
    border: 1px solid rgb(0 0 0 / 0.09);
    padding: var(--spc-m);
    border-radius: var(--radius);
  }

  .data-stats dd {
    font-size: 1.5em;
  }

  .data-stats dt {
    font-size: 1em;
  }

 .data-stats dd:last-of-type {
    font-size: 0.9em;
  }

  .our-team>ul {
    grid-template-columns: repeat(2, 1fr);
  } 
.accessibility-hero h1{
    font-size: 3.5em;
  } 
}

/* ── DESKTOP: 900px ─────────────────────────────────────── */
@media (min-width: 900px) {

  h1 {
    font-size: 4em;
  }

  .hero h1>span:last-child {
    font-size: 2.2em;
  }
  .new-products figure:first-child img {
    max-height: 580px;
  }

  .new-products figure:nth-child(2) img,
  .new-products figure:last-child img {
    max-height: 280px;
  }
  .gears>div {
    padding: var(--spc-xl) 0;
  }

  .story>ul {
    padding: 0 100px;
  }

  .story>ul>li::before {
    left: calc(0em - 104px + 0.15em);

  }

  .data-stats>dl {
    grid-template-columns: repeat(4, 1fr);
  }

  .our-team>ul {
    grid-template-columns: repeat(4, 1fr);
  }

  footer {
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-template-rows: auto auto;
    column-gap: var(--spc-xl);
    align-items: start;
  }

  footer>div:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
    margin-bottom: 0;
    border-bottom: none;
  }

  footer nav {
    grid-column: 2;
    grid-row: 1;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: none;
    border-left: 1px solid rgb(255 255 255 / 0.07);
    padding-left: var(--spc-xl);
    margin-bottom: 0;
  }

  footer>div:last-child {
    grid-column: 1 / -1;
  }
}

/* ── WIDE: 1200px ───────────────────────────────────────── */
@media (min-width: 1100px) {
  section {
    padding-inline: 120px !important;
  } 
    .new-products figure:first-child img {
    max-height: 640px;
  }

  .new-products figure:nth-child(2) img,
  .new-products figure:last-child img {
    max-height: 310px;
  } 
}



