.poppins-light {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.poppins-regular {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.poppins-medium {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.poppins-semibold {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.poppins-bold {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.poppins-extrabold {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: normal;
}

.poppins-light-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: italic;
}

.poppins-regular-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: italic;
}

.poppins-medium-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: italic;
}

.poppins-semibold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: italic;
}

.poppins-bold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: italic;
}

.poppins-extrabold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: italic;
}

.permanent-marker-regular {
  font-family: "Permanent Marker", cursive;
  font-weight: 400;
  font-style: normal;
}

.montserrat-<uniquifier> {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}

.tw{background:#000;}
.fb{background:#1877f2;}
.lk{background:#0a66c2;}
.ins{background:#c32aa3;}

.white-bg{background-color:#fff;}
.light-grey-bg{background-color:#f0f2f7;}
.med-grey-bg{background-color:#2f2e2e;}
.dark-grey-bg{background-color:#212121;}
.black-bg{background-color:#0e0e0e;}
.yellow-bg{background-color:#ffff00;}

.white-text-color{color:white;}
.light-grey-text-color{color:#d1d1d1;}
.default-text-color{color:#f2f2f2;}
.dark-text-color, .black-text-color{color:#1c1c1c;}
.yellow-text-color{color: #ffff00;}

body, html {margin: 0; padding: 0; height: 100%; font-family: 'Poppins', sans-serif; scroll-behavior: smooth;}
body {background: #0e0e0e; color:#f2f2f2; font-weight: 300; font-size: 16px; line-height:1.7em; outline: 0; overflow-x:hidden;}
.hidden{display: none;}
a img, button {border: none;}
.center-align{margin:0 auto; display:block;}
a img { display: block;}
a, a.text-link { text-decoration: underline; color:#f2f2f2;}
a:hover, a.text-link:hover{text-decoration: none; color:#fff;}
a.no-underline, a:hover {text-decoration: none;}
img { max-width: 100%; height: auto; display:block;}
* {box-sizing: border-box; -moz-box-sizing: border-box;}
:focus { outline: 0!important; -webkit-box-shadow: none; box-shadow: none;}
p{margin:0 0 15px 0;}
p{font-size:1rem; line-height:1.7em;}
ul, ol{margin:15px 0;}
h1{margin: 0 0 10px 0; font-size: 2.6rem; line-height: 2.9rem; font-weight: 700; font-family: "Montserrat", sans-serif; letter-spacing: 3px;}
h2{margin: 0 0 10px 0; font-size: 2.2rem; line-height: 2.7rem; font-weight: 700; font-family: "Montserrat", sans-serif; letter-spacing: 3px;}
h3{margin:0 0 10px 0; font-size: 1.8rem; line-height: 2.3rem; font-weight:600; font-family: "Montserrat", sans-serif; letter-spacing: 2px;}
h4{margin:0 0 10px 0; font-size: 1.8rem; line-height: 2rem; font-weight:500; font-family: 'Poppins', sans-serif; }
h5{margin:0 0 10px 0; font-size: 1.6rem; line-height: 1.8rem; font-weight:500; }
.center-text{text-align: center;}
figure{margin:12px 0;}
.flex{display:flex;}
.flex-col{display:flex; flex-direction: column;}
.flex1{flex:1;}
button{font-family: 'Poppins', sans-serif;}
.mob-show, .mob-show-flex{display:none;}
.tablet-show{display:none;}
.hidden{display:none;}
.full-width{width:100%;}
hr{margin:30px 0;}

.narrow{max-width: 940px;}
.ex-narrow{max-width: 860px;}

li{margin:8px 0;}

.reg-text{font-weight: 300;}
.bold-text, strong, b{font-weight: 500;}
.ex-bold-text{font-weight: 600;}

.uppercase{text-transform:uppercase;}
.italic{font-style:italic;}

.font-poppins{font-family: 'Poppins', sans-serif;}
.font-montserrat{font-family: "Montserrat", sans-serif;}

.site-wrapper {padding: 0 20px;  zoom: 1; scroll-margin-top: 80px;}
.site-container {max-width: 1400px; min-width: 225px; width:100%; margin: 0 auto; padding: 0;}
.site-container.narrow {max-width: 1200px;}
.site-container.ex-narrow {max-width: 960px;}
.relative{position: relative;}

.cms-right-sidebar, .cms-left-sidebar{ display:flex; flex-direction:row; flex-wrap:wrap;}
.main-container{flex:1;}
.cms-right-sidebar .main-container{margin-right:35px;}
.cms-left-sidebar .main-container{margin-left:35px; order:2}
.sidebar-container{max-width:400px; width:100%;}
.cms-left-sidebar .sidebar-container{order:1;}


.border-top{border-top:1px solid rgba(0,0,0,0.1);}

/* === STAR RATING === */
.star-rating{display:flex; padding:0; margin:0;justify-content: center; align-items: center; gap:1px;} 
.star-rating i{font-size: 17px; line-height: 1em; color: #ffff00;}
.star-rating.rating-4 i:nth-of-type(n+5){color:#bfbfbf;}
.star-rating.rating-3 i:nth-of-type(n+4){color:#bfbfbf;}
.star-rating.rating-2 i:nth-of-type(n+3){color:#bfbfbf;}
.star-rating.rating-1 i:nth-of-type(n+2){color:#bfbfbf;}

.review-disclaimer{border-top:1px solid #dbdbdbff; margin:5px 0 0 0; padding:15px 0 0 0;}
.review-disclaimer p{margin:0; font-size:0.9rem; line-height: 1.6rem; font-style:italic;}

.padding-10{padding:10px;}
.padding-20{padding:20px;}
.padding-30{padding:30px;}
.padding-40{padding:40px;}
.padding-50{padding:50px;}
.padding-60{padding:60px;}
.padding-70{padding:70px;}
.padding-top-5{padding-top:5px;}
.padding-top-10{padding-top:10px;}
.padding-top-15{padding-top:15px;}
.padding-top-20{padding-top:20px;}
.padding-top-30{padding-top:30px;}
.padding-top-40{padding-top:40px;}
.padding-top-50{padding-top:50px;}
.padding-top-60{padding-top:60px;}
.padding-top-70{padding-top:70px;}
.padding-top-80{padding-top:80px;}
.padding-top-90{padding-top:90px;}
.padding-bottom-5{padding-bottom:5px;}
.padding-bottom-10{padding-bottom:10px;}
.padding-bottom-15{padding-bottom:15px;}
.padding-bottom-20{padding-bottom:20px;}
.padding-bottom-30{padding-bottom:30px;}
.padding-bottom-40{padding-bottom:40px;}
.padding-bottom-50{padding-bottom:50px;}
.padding-bottom-60{padding-bottom:60px;}
.padding-bottom-70{padding-bottom:70px;}
.padding-bottom-80{padding-bottom:80px;}
.padding-bottom-90{padding-bottom:90px;}
.padding-left-10{padding-left:10px;}
.padding-left-20{padding-left:20px;}
.padding-left-30{padding-left:30px;}
.padding-left-40{padding-left:40px;}
.padding-left-50{padding-left:50px;}
.padding-left-60{padding-left:60px;}
.padding-left-70{padding-left:70px;}
.padding-left-80{padding-left:80px;}
.padding-right-10{padding-right:10px;}
.padding-right-20{padding-right:20px;}
.padding-right-30{padding-right:30px;}
.padding-right-40{padding-right:40px;}
.padding-right-50{padding-right:50px;}
.padding-right-60{padding-right:60px;}
.padding-right-70{padding-right:70px;}
.padding-right-80{padding-right:80px;}

.padding-y-10{padding-top:10px; padding-bottom:10px}
.padding-y-20{padding-top:20px; padding-bottom:20px}
.padding-y-30{padding-top:30px; padding-bottom:30px}
.padding-y-40{padding-top:40px; padding-bottom:40px}
.padding-y-50{padding-top:50px; padding-bottom:50px}
.padding-y-60{padding-top:60px; padding-bottom:60px}

.padding-x-10{padding-left:10px; padding-right:10px}
.padding-x-20{padding-left:20px; padding-right:20px}
.padding-x-30{padding-left:30px; padding-right:30px}
.padding-x-40{padding-left:40px; padding-right:40px}
.padding-x-50{padding-left:50px; padding-right:50px}
.padding-x-60{padding-left:60px; padding-right:60px}

.margin-0{margin:0;}
.margin-10{margin:10px;}
.margin-20{margin:20px;}
.margin-30{margin:30px;}
.margin-40{margin:40px;}
.margin-50{margin:50px;}
.margin-60{margin:60px;}
.margin-70{margin:70px;}
.margin-top-0{margin-top:0px;}
.margin-top-5{margin-top:5px;}
.margin-top-10{margin-top:10px;}
.margin-top-15{margin-top:15px;}
.margin-top-20{margin-top:20px;}
.margin-top-30{margin-top:30px;}
.margin-top-40{margin-top:40px;}
.margin-top-50{margin-top:50px;}
.margin-top-60{margin-top:60px;}
.margin-top-70{margin-top:70px;}
.margin-bottom-0{margin-bottom:0px;}
.margin-bottom-5{margin-bottom:5px;}
.margin-bottom-10{margin-bottom:10px;}
.margin-bottom-15{margin-bottom:15px;}
.margin-bottom-20{margin-bottom:20px;}
.margin-bottom-25{margin-bottom:25px;}
.margin-bottom-30{margin-bottom:30px;}
.margin-bottom-40{margin-bottom:40px;}
.margin-bottom-50{margin-bottom:50px;}
.margin-bottom-60{margin-bottom:60px;}
.margin-bottom-70{margin-bottom:70px;}
.margin-left-10{margin-left:10px;}
.margin-left-20{margin-left:20px;}
.margin-left-30{margin-left:30px;}
.margin-left-40{margin-left:40px;}
.margin-left-50{margin-left:50px;}
.margin-left-60{margin-left:60px;}
.margin-left-70{margin-left:70px;}
.margin-right-10{margin-right:10px;}
.margin-right-20{margin-right:20px;} 

/* === JS ALERT === */
.js-alert{padding: 12px 20px; background: #d85f5f; position: fixed; top:0; left:0; width:100%; z-index: 9999999999999;}
.js-alert p.heading{font-size: 20px; line-height: 25px; margin: 0 0 5px 0; font-weight: 100; font-family:'Poppins', sans-serif;}
.js-alert p{color:white; margin:0; font-weight: 400; font-family:'Poppins', sans-serif; line-height: 20px;}

.card{border-radius:14px; box-shadow: 1px 5px 7px 0px rgba(0, 0, 0, 0.1); display:flex; flex-direction:column; overflow:hidden;}
.card.white{background:white; color:white;}
.card.dark{background:#161616; color:#d1d1d1; border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 1px 5px 7px 0px rgba(0, 0, 0, 0.07);}
.card.link{transform: translateY(0px); transition:all 200ms linear; text-decoration:none;}
.card.link:hover{box-shadow:0 12px 17px -3px rgb(0 0 0 / .11), 0 6px 8px -4px rgb(0 0 0 / .11); transform: translateY(-3px); scale:1.01; z-index: 1;}

.card .img-container{position:relative;}
.card .img-container img{width:100%;}
.card .img-container:before{content:""; display:block; width:100%; height:20%; background: linear-gradient(0deg, rgba(22,22,22, 1) 5%, rgba(22,22,22, 0) 100%); position:absolute; bottom:-1px; z-index:1;}
.card .text-container{padding:25px 30px 30px 30px;}

input {padding: 10px}
input, select { background: #454545; border-radius: 4px; border: 1px solid #656565; width: 100%; height: 40px; margin-bottom: 15px; font-size: 15px; font-family: "Poppins", sans-serif; font-weight: 400; color:white;}
select {padding: 0 8px}
textarea { background: #454545; border-radius: 4px; border: 1px solid #656565; width: 100%; padding: 12px 10px; margin-bottom: 15px; font-size: 15px; font-family: "Poppins", sans-serif; font-weight: 400; color:white;}
button, input[type=submit] { border: none; font-size: 15px; font-family: "Poppins", sans-serif; font-weight: 400;}
input:focus, textarea:focus {border-color: #ffff00;}
input::placeholder, textarea::placeholder{color:#b3b3b3;}
.button {padding:7px 15px; min-height: 40px; text-transform:uppercase; font-size:0.93em; letter-spacing:3px; font-weight: 600; line-height: 1em; align-items: center; justify-content: center; text-decoration: none; transition: 200ms all linear; display: inline-flex; cursor: pointer;}

.underlined-header{text-transform:uppercase; }
.underlined-header:after{content:""; display:block; margin:15px auto; height:3px; max-width:120px; width:100%; }
.underlined-header.yellow:after{background:#ffff00;}
.underlined-header.dark:after, .underlined-header.dark:after{background:#1c1c1c;}

.solid-button.center{margin:0 auto;}
.solid-button, button.solid-button, input[type=submit].solid-button{padding:7px 15px; min-height: 40px; gap:5px; text-transform:uppercase; font-size:0.93em; letter-spacing:2px; font-weight: 600; line-height: 1.3em; align-items: center; justify-content: center; text-decoration: none; transition: 200ms all linear; display: inline-flex; cursor: pointer;}
.solid-button.white{background:white; color: #0f0f0f;}
.solid-button.yellow{ color:#0f0f0f; background:#ffff00;}
.solid-button.yellow:hover{ color:#0f0f0f; background:#ffff37;}
.solid-button.black{ color:#ffff00; background:#0f0f0f;}
.solid-button.black:hover{ color:#ffff00; background:#2a2a2a;}
.solid-button.small{min-height: 30px; padding:5px 12px; font-size: 0.85em;}
.solid-button.large{ padding:17px 15px; }
.solid-button i{margin:0; display:flex; align-items:center; font-size: 19px;}
.solid-button.small i{margin:0; display:flex; align-items:center; font-size: 16px;}

.border-button{border:2px solid #c1c1c1; background:transparent; padding:5px 15px; min-height: 40px; text-transform:uppercase; font-size:0.93em; letter-spacing:2px; font-weight: 600; line-height: 1em; align-items: center; justify-content: center; text-decoration: none; transition: 200ms all linear; display: inline-flex; cursor: pointer;}
.border-button:hover{color:white; background:#171717;}
.border-button.white{border-color:white; color: white;}
.border-button.white:hover{background:white; color: #0f0f0f;}
.border-button.yellow{border-color:#ffff00; color: #ffff00;}
.border-button.yellow:hover{background:#ffff00; color: #0f0f0f;}
.border-button.black{border-color:#0f0f0f; color: #0f0f0f;}
.border-button.black:hover{background:#0f0f0f; color: #ffff00;}
.border-button.small{min-height: 30px; padding:3px 12px; font-size: 0.85em;}

.text-arrow-link{display:inline-flex; align-items:center; transition:200ms linear all; text-decoration:none; margin:20px 0 0 0;}
.text-arrow-link span{border-bottom:1px solid; transition:200ms linear all; font-size:1.05rem;}
.text-arrow-link:hover span{border-color:transparent;}
.text-arrow-link i{font-size: 24px; display: flex; align-items: center; margin: 0 0 0 7px;}
.text-arrow-link.yellow{color:#ffff00;}

.button-flex-container{display:flex; flex-wrap:wrap; gap:10px;}
.button-flex-container.center{justify-content: center;}

.announcment{padding-top:6px; padding-bottom:6px; text-align:center;}
.announcment p{margin:0; font-weight:600;}
.announcment a{font-weight:400; text-decoration:none; border-bottom:1px solid; color:#ba0328; transition:all 200ms linear;}
.announcment a:hover{border-color:transparent;}

.community-header {padding-top:7px; padding-bottom:7px;}
.community-header .site-container{display:flex; align-items:center; justify-content:center; gap:8px;}
.community-header p{margin:0; font-weight:500;}
.community-header .solid-button{padding: 5px 10px; min-height: 26px; font-size: 0.85em; letter-spacing: 1px;}

.social-links{display:flex; align-items:center;}
.social-links .social{border-radius:100%; display:flex; align-items:center; justify-content:center; width:34px; height:34px; color:white; text-decoration:none;}

.main-header.sticky{padding-top:7px; padding-bottom:7px; position:fixed; left:0; top:-90px; width:100%; pointer-events: none; transition:200ms all linear; z-index:1001; background-color: rgba(0,0,0, 0.5); border-bottom: 1px solid rgba(255, 255, 255, 0.1); backdrop-filter: blur(16px) saturate(1.5);  -webkit-backdrop-filter: blur(16px) saturate(1.5);}
.main-header.sticky .logo{width: 70px;}
.main-header.stuck{top:0; pointer-events: auto;}

.main-header{position:relative; background:#0e0e0e; z-index:1000; display:flex; align-items:center; justify-content:space-between; padding-top:12px; padding-bottom:12px; box-shadow:0 10px 15px -3px rgb(0 0 0 / .05), 0 4px 6px -4px rgb(0 0 0 / .04);}
.main-header .logo{width:94px;}
.main-header .social-links{}
.main-header .social-links .social{margin:0 0 0 10px; background:transparent; color:#ffff00; border:1px solid #ffff00; width: 36px; height: 36px; transition:all 200ms linear;}
.main-header .social-links .social:hover{background:#ffff00; color:#0e0e0e;}

.nav-wrapper{display:flex; align-items:center;}

nav.desktop  {padding: 0; display: flex;}
nav.desktop > a {font-size: 0.95rem; line-height: 24px; font-weight:600; font-family: "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: 2px; padding: 3px 6px; margin: 0 18px 0 0 ; color:white;  text-decoration: none;  display: block;  transition: all linear 250ms; border-radius:6px;}

.drop-link > .trigger{text-decoration:none; margin: 0 18px 0 0 ; font-weight:600; font-family: "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: 2px; font-size: 0.95rem; line-height: 24px; padding: 3px 6px; color:white; transition: all linear 250ms; display: flex; align-items: center; border-radius:6px;}
.drop-link > .trigger i{font-size: 10px; margin: 0 0 0 6px; line-height: 1em; }
.drop-link > p.trigger{cursor:default;}
.main-header nav.desktop > a:hover, .drop-link:hover > .trigger{background: rgba(255,255,255,0.1);}

.drop-menu-wrapper{visibility:hidden; opacity:0; z-index:3; min-width:200px; pointer-events: none; display: block;  position: absolute; margin:0 0 0 -25px; padding: 8px 0 0 0; transition: all linear 250ms; }
.drop-menu{margin:0; padding: 8px 10px; background: #2f2f2f; box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.08); border-radius: 6px; border: 1px solid rgba(255, 255, 255, 0.1);}
.drop-menu a{padding:0; font-weight:600; font-family: "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: 2px; color:#fff; padding: 4px 8px; width:100%; text-align:left; text-decoration:none; display:flex; align-items:center; justify-content:flex-start; font-size:0.95rem; border-radius:6px; transition: all linear 250ms;}
.drop-menu a:hover{background:rgba(255,255,255,0.1);}
.main-header .drop-link:hover > .drop-menu-wrapper{visibility:visible; opacity:1; pointer-events: auto;}


/* === MOB MENU === */
.trigger-overlay{background:0 0; padding:0; font-size:28px; color:white;  margin-left:15px; height:100%; display:none; align-items: center; justify-content: center; cursor: pointer;}
.stuck .trigger-overlay{color:white;}
/* .menu-overlay,.menu-overlay-search{position:fixed; width:100%; height:100%; top:0; left:0; background:#114460; z-index:9999; overflow-x:auto}
.menu-overlay .overlay-close, .menu-overlay-search .overlay-close-search{position:absolute; right:13px; top:13px; padding:0; height:auto; border:none; background:0 0; color:#fff; outline:0; z-index:100; font-size:30px; cursor:pointer}
.menu-overlay nav{text-align:center; position:relative; top:50%; height:85%; transform:translateY(-50%);  max-height: 500px;}
.menu-overlay ul{list-style:none; padding:0; margin:0 auto; display:flex; flex-direction: column; align-items: center; justify-content: space-between; height:100%; position:relative}
.menu-overlay ul li{display:flex; align-items:center; justify-content:center;  margin:0}
.menu-overlay ul li a{position:relative; font-size:1.1rem; font-weight:400; display:flex; color:#fff; transition:color .2s; text-decoration:none}
.menu-overlay .solid-button.white{color:#114460; min-height: 34px; padding: 5px 18px; border-radius:8px;}
.overlay-scale{visibility:hidden; opacity:0; overflow-y:auto; transform:scale(.9); transition:transform .2s, opacity .2s, visibility 0s .2s}
.overlay-scale.open{visibility:visible; opacity:1; transform:scale(1); transition:transform .4s, opacity .4s} */

.sliding-navbar{ position: fixed;  top:0;  left:-380px;  height: 100vh;  width: 320px; background: #2f2f2f; color:white; transition: left 0.3s ease-in-out; z-index: 4600; }
.sliding-navbar .close{position:absolute; top:10px; right:10px; font-size:1.3rem;}
.sliding-navbar--open{ left: 0px;}
.mask{ position:fixed; top: 0px; left:0px; height: 100vh; width:100%; background: rgba(0,0,0,0.5);  z-index: 4500; opacity:0; backdrop-filter: blur(2px); pointer-events: none; transition: opacity 0.3s ease-in-out;}
.mask.show{ opacity:1; pointer-events: auto;}
.navbar--items{display:flex; flex-direction:column; margin-top:40px; border-top:1px solid rgba(255,255,255,0.08); }
.navbar--item{margin:0; border-bottom: 1px solid rgba(255,255,255,0.08); color:white; padding: 10px 15px; font-weight: 500; text-decoration: none; font-size: 1rem; line-height:1.3rem; font-family: "Montserrat", sans-serif; letter-spacing: 1px; text-transform: uppercase; width:100%; display: flex; align-items: center;}
.navbar--item.dark-text-color{color: #1c1c1c; font-weight:700;}
navbar .accordion{border:none; background:transparent;}
navbar .accordion .heading{ padding: 10px 15px ; border-bottom: 1px solid rgba(255,255,255,0.08);  font-weight: 500; font-size: 1rem; line-height:1.3rem; font-family: "Montserrat", sans-serif; letter-spacing: 1px; text-transform: uppercase; display:flex; align-items:center; justify-content:space-between;}
navbar .accordion .heading span{display:flex; align-items:center;}
navbar .accordion .heading i{font-size:1.3rem;}
navbar .accordion .expandable{display:flex; flex-direction:column; padding:0; background:rgba(0,0,0,0.25);}
.menu-opened:before { bottom: 3px;  transition: bottom 0.3s ease-in-out;}
.menu-opened:after { top: 3px; transition: top 0.3s ease-in-out;}

.navbar--item .icon{display: flex; align-items: center; justify-content: center; font-size: 20px; margin-right:5px; width:25px; color:white;}
.accordion .heading.open i.icon.flaticon-sneaker-2, navbar .accordion .heading span .icon.flaticon-gym {transform: none;}

/* === BANNER === */
.banner-wrapper.error {min-height:calc(100vh - 250px); padding-top:30px; padding-bottom:50px;}
.banner-wrapper.error:before{opacity:0.75;}
.banner-wrapper{min-height:calc(100vh - 210px); background-size:cover; background-position:50% 50%; display:flex; align-items:center; position:relative; overflow:hidden;}
.banner-wrapper.community-run{min-height:calc(100vh - 251px);}
.banner-wrapper.generic{min-height:440px;}
.banner-wrapper:before{opacity:0.55; content:""; position:absolute; top:0; left:0; height:100%; width:100%; z-index:0; background: #0f0f0f;}
.banner-wrapper .site-container{position:relative; z-index:1; padding:30px 0 0 0 ;}
.banner-wrapper.homepage .site-container{padding:35px 0 ;}
.banner-wrapper.generic .site-container{margin-top:-10px; display:flex; justify-content:center; text-align:center; padding: 40px 0;}
.banner-wrapper.error .site-container{margin-top:-10px; display:flex; justify-content:center; text-align:center;}
.banner-wrapper .banner-content{max-width:640px; color:white;}
.banner-wrapper .banner-content h1{font-family: "Montserrat", sans-serif; font-size:4.1em; color:white; line-height:1.1em;}
.banner-wrapper.generic .banner-content h1{font-size: 3.6em;}
.banner-wrapper .banner-content p:last-of-type{margin:0; font-size:1.1rem;}
.banner-wrapper .banner-content .text-arrow-link {margin-bottom:60px; font-weight: 400;}

.banner-wrapper.homepage h1{font-weight:800;}
.banner-wrapper h1.tagline{font-size:1.1em; letter-spacing: 3px; color:white; text-transform:uppercase; font-weight:600; line-height: 1.45em;}
.banner-wrapper h2.title{font-family: "Montserrat", sans-serif; font-size:4.5em; font-style:italic; color:white; line-height:1.05em;}
.banner-wrapper.generic h2.title{font-size:3.5em;}
.banner-wrapper .button-container{display:flex; flex-wrap:wrap; gap: 15px; margin-top:20px;}
.banner-wrapper .button-container a {flex:1; padding:17px 10px;}

.repeat-tagline{display:flex; flex-wrap:nowrap; align-items:center; gap:5px; position:absolute; bottom:25px; left:0%;}
.repeat-tagline span{font-size: 13px; line-height: 13px; font-weight: 600; white-space: nowrap; font-family: "Montserrat", sans-serif; letter-spacing: 3px; text-transform:uppercase; z-index:1;}

.banner-sub-bar{text-align:center;}
.banner-sub-bar .border-button{font-weight:800; font-family: "Montserrat", sans-serif; font-size: 1.4rem; height: 52px; padding: 10px 40px; border-width: 3px;}

.split-section{display:flex; align-items:center; gap:100px}
.split-section .img-container{max-width: 580px; flex:1;}
.split-section .img-container img{border-radius:18px;}
.split-section .text-content{margin:0 ; flex:1;}
.split-section .text-content h2{color:white; font-weight: 700; font-family: "Montserrat", sans-serif; letter-spacing: 3px; text-transform:uppercase; margin:0 0 20px 0;}
.split-section .text-content .solid-button{margin-top:10px;}

/* === EVENT SLIDER === */
.event-slider-wrapper{background:url('/img/bg/lincolnshire-trail-bg.webp') 50% 50% no-repeat; background-size:cover;}
.event-slider-wrapper .slogan{margin: 0; font-size: 2rem; color: white; line-height: 1.3em;}
.event-slider .event-item{padding:20px 12px;}
.event-slider .slick-track{display:flex;}
.event-slider .slick-track .slick-slide{height:auto; display:flex;}
.event-slider .slick-dots{ margin: 5px 0 20px 0;}


/* === REVIEW SLIDER ===  */
.review-slider-wrapper .site-container{z-index:1;}
.quote-bg{display:flex; align-items:center; justify-content:center; position:absolute; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; opacity:0.05;}
.quote-bg i{font-size:350px; color:#1c1c1c; display: flex; align-items: center; justify-content: center;}
.yellow-bg .review-item{color:#1c1c1c;}
.review-slider{margin:35px 0 0 0;}
.review-slider .review-item{text-align:center;}
.review-slider .review-content{font-style:italic; font-weight:400; font-size:1.1rem;}
.review-slider .star-rating{margin:30px 0 5px 0;}
.review-slider .review-author{font-weight:500;}
.review-slider .slick-dots{margin: 20px 0 5px 0;}

.review-slider .slick-track{display:flex; align-items: center;}

.slick-dots { margin: 15px 0 5px 0; padding: 0; text-align: center; display:flex; align-items:center; justify-content:center;}
.slick-dots li { list-style: none; display: inline-block; zoom: 1; margin:0;}
.slick-dots li button { text-indent: -999999px; background: transparent; border: 2px solid #ffff00; cursor: pointer; width: 12px; height: 12px; display: block; border-radius: 100%; padding: 0; margin: 0 3px;}
.slick-dots li.slick-active button { background: #ffff00; width: 16px; height: 16px;}

.yellow-bg .star-rating i{ color: #1c1c1c;}

.yellow-bg .slick-dots li button{border-color:#1c1c1c;}
.yellow-bg .slick-dots li.slick-active button { background: #1c1c1c;}

/* === PARTNER SLIDER === */
.partner-slider-wrapper{border-top:1px solid rgba(255,255,255,0.1);}
.partner-slider-wrapper .site-container{text-align:center;}
.partner-slider{margin:45px 0 50px 0;}
.partner-slider.slick-initialized .slick-track{display:flex; align-items:center; justify-content:center;}
.partner-slider.slick-initialized .slick-slide{display:flex; align-items:center; justify-content:center;}
.partner-slider a{display:flex; align-items:center; justify-content:center;}
.partner-slider a img{max-width:200px; width:100%;}

/* === ACCORDION === */
.accordion-wrapper{gap:14px; display: flex; flex-direction: column;}
.accordion {background:rgba(255,255,255,0.1); padding:0; margin:0;}
.accordion .heading{display:flex; align-items: center; padding:14px 20px; cursor: pointer; transition:all 200ms linear; color:white;}
.accordion .heading:hover{background:rgba(0,0,0,0.02);}
.accordion .heading h3, .accordion .heading h4{flex:1; margin:0 8px 0 0; font-size:1.08rem; line-height: 1.7rem; font-weight: 600; transition: all 150ms linear; font-family: 'Montserrat', sans-serif; letter-spacing:1px; text-transform:uppercase;}
.accordion .heading i{font-size:24px; transition: all 150ms linear; display: flex; align-items: center; justify-content: center; color:#ffff00;}
.accordion .heading.open i{ -webkit-transform: rotate(45deg); -webkit-transform-origin: 50% 50%; transform: rotate(45deg);}
.accordion .heading.open, .accordion .heading h3:hover, .accordion .heading h4:hover {color:#ffff00;}
.accordion .expandable{padding:5px 15px;}

.accordion-wrapper.mob-cat-nav{padding:0; box-shadow: 0 3px 8px -3px rgb(0 0 0 / .09), 0 1px 3px -4px rgb(0 0 0 / .08); border: 1px solid rgba(0, 0, 0, 0.09); display:none; background:white; border-radius: 14px;}
.accordion-wrapper.mob-cat-nav .accordion .heading{padding:14px 20px;}
.accordion-wrapper.mob-cat-nav .accordion .expandable{display: flex; flex-direction: column; padding: 0px;}
.accordion-wrapper.mob-cat-nav .accordion .expandable a{border-top: 1px solid rgb(229, 229, 229); padding: 8px 20px; text-decoration: none; transition: 200ms linear;}
.accordion-wrapper.mob-cat-nav .accordion .expandable a.selected{color:#ba0328; font-weight:500;}

/* === TEAM === */
.team-grid{max-width:1000px; margin:35px auto 10px auto}
.team-grid{display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px;}
.team-grid .card {text-align:center;}
.team-grid .card .name{font-size: 1.4rem; line-height: 1.6em; color:white; margin:0 0 10px 0; text-transform:uppercase;}
.team-grid .card img{ object-fit: cover; height:500px;}

/* === BLOG === */
.blog-index{display:grid; gap:30px;}

.blog-card .title{font-size: 1.5rem; line-height: 1.7rem; color:white; margin:0 0 10px 0; text-transform:uppercase;}
.blog-card .excerpt{margin-bottom:20px;}
.blog-card .solid-button{margin-bottom:5px;}

.article-meta{display:flex; align-items:center; justify-content:space-between; margin:5px 0 15px 0;}
.timestamp{display:flex; align-items:center;}
.timestamp i{font-size:20px; margin-top:-1px; display:flex; align-items:center; justify-content:center;}
.timestamp p{margin:0 0 0 7px; font-size:0.95rem; font-style:italic; line-height:1rem; }

.share{display:flex; align-items:center;}
.share p{margin:0 4px 0 0 ;}
.share a{text-decoration:none; margin-left:6px; }
.blog-article .share p{font-size:0.95rem;}
.blog-article .social-links .social{width: 30px; height: 30px;}

.blog-article .text-container h1{font-size:2.1rem; color:white; letter-spacing: 2px;  text-transform:uppercase; line-height: 2.7rem;}
.blog-article .text-container h2{font-size:1.8rem; color:white; letter-spacing: 0px; margin-top:5px; font-weight:600; line-height: 2.3rem;}
.blog-article .text-container h3{font-size:1.5rem; color:white; letter-spacing: 0px; margin-top:5px; font-weight:600;}
.blog-article .text-container h4{font-size:1.3rem; color:white; letter-spacing: 0; margin-top:5px;}

.pagination {display:flex; align-items:center; justify-content:space-between;}

/* === EVENT CARD === */
.event-card-summary{text-decoration:none; text-align:left; width:100%;}
.event-card-summary .promo-tag-wrapper{position:absolute; top:10px; left:10px; z-index:1;}
.promo-tag{border-radius:60px; padding:3px 12px; font-weight:500;}
.promo-tag.yellow{background:#ffff00; color: #0f0f0f;}
.promo-tag p{margin:0; line-height: 1.35em;  font-size: 0.9rem;}
.event-card-summary .img-container img{object-fit: cover; height: 280px;}
.event-card-summary .text-container{padding:25px 30px 10px 30px; flex:1; display: flex; flex-direction: column;}
.event-card-summary .name{text-transform:uppercase; color:white; font-size: 1.25rem; line-height: 1.8rem; margin-bottom:5px; flex:1; letter-spacing: 1px;}
.event-card-summary .item{display:flex;  gap:10px; color:white; padding:10px 0; border-bottom:1px solid rgba(255,255,255,0.1);}
.event-card-summary .item i{font-size:25px; font-weight:100; margin:1px 0 0 0 ; display:flex; align-items:center; justify-content:center;}
.event-card-summary .item p{flex:1; margin:0; font-weight: 300; line-height: 1.45em;}
.event-card-summary .button-container{padding:10px 30px 30px 30px;}
.event-card-summary .button-container .solid-button{width:100%; margin:0;}

.event-card-summary-list{display:grid; gap:30px;}
.event-card-summary.list{display:flex; flex-direction:row;}
.event-card-summary.list .img-container:before{background: linear-gradient(270deg, rgba(22, 22, 22, 1) 5%, rgba(22, 22, 22, 0) 100%); right: -1px; bottom:auto; width: 20%; height: 100%;}
.event-card-summary.list .img-wrapper{max-width:350px; display:flex;}
.event-card-summary.list .text-container{flex:1; padding:25px 30px 30px 30px;}
.event-card-summary.list .img-container img{height:100%;}
.event-card-summary.list .solid-button{margin:20px 0 0 0;}

/* === EVENT PAGE === */
.event-banner.banner-wrapper .site-container{padding: 55px 0;}
.event-banner.banner-wrapper .banner-content{max-width: 980px;}
.event-banner.banner-wrapper .banner-content h1{font-size: 3.6em;}
.event-banner .sub-title{text-transform:uppercase; font-size: 1.3rem; letter-spacing: 6px; margin:0;}

.event-details-card{padding:25px 30px; border: 1px solid rgba(255, 255, 255, 0.1);}
.event-details-card .header-container{display:flex; align-items:center; gap:10px; margin: 0 0 10px 0;}
.event-details-card .header-container .title{flex:1; margin:0;}
.event-details-card .title{font-size: 1.6rem; line-height: 2.1rem;}
.event-details-card .event-descrption{margin-top:10px;}
.event-details-card .event-descrption h2, .event-details-card .event-descrption h3, .event-details-card .event-descrption h4{color:white;}
.event-details-card .event-descrption h3{font-size: 1.5rem; line-height: 1.9rem;}
.event-details-card .event-descrption h4{font-size: 1.3rem; line-height: 1.7rem;}
.event-details-card .event-descrption hr{border-color:rgba(255,255,255,0.2); border-top: 0;}
.event-details-card .event-descrption strong, .event-details-card .event-descrption b{    font-weight: 500}
.event-details-card .button-grid{display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:15px; margin-top:15px;}
.event-details-card .solid-button{width:100%:}

.event-details-table{margin-top:10px; background:rgba(255,255,255,0.05); border-radius:10px;  margin-bottom:5px; padding:2px 0; display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border:1px solid rgba(255,255,255,0.08);}
.event-details-table .item{display:flex; justify-content:flex-start; gap:8px; padding:10px 15px; border-bottom:1px solid rgba(255,255,255,0.08);}
.event-details-table .item i{font-size:24px; display:flex; align-items:center; justify-content:center; color: #ffff00;}
.event-details-table .item p{margin:0; line-height: 1.5em; flex:1; color:white;}
.event-details-table .item .label{font-weight:400;}
.event-details-table .item:nth-of-type(odd){border-right:1px solid rgba(255,255,255,0.05);}
.event-details-table .item:nth-of-type(odd){border-right:1px solid rgba(255,255,255,0.05);}
.event-details-table .item.colspan-2{grid-column: span 2; border-bottom:0;}

.gpx-table{margin-top:10px; background:rgba(255,255,255,0.05); border-radius:10px;  margin-bottom:5px; padding:2px 0; border:1px solid rgba(255,255,255,0.08);}
.gpx-table .item{display:flex; justify-content:flex-start; align-items:center; gap:8px; padding:15px 20px; border-bottom:1px solid rgba(255,255,255,0.08);}
.gpx-table .item:last-of-type{border-bottom:none;}
.gpx-table .item > div{flex:1;}
.gpx-table .item .osmaps{max-width:120px; width:100%; height:auto; margin:0 0 5px 0;}
.gpx-table .item .garmin{max-width:120px; width:100%; height:auto; margin:0 0 5px 0;}
.gpx-table .item p{margin:0; font-size:0.9rem;}

#map.event-map{height:440px; width: 100%; border-radius: 10px; margin-top: 10px; position:relative!important;}
.event-location-card.event-details-card .mob.solid-button{display:none; width:100%; margin-top:15px;}

.grid-mosaic {
  display: grid;
  /* Auto-fill creates as many columns as fit */
  grid-template-columns: repeat(5, minmax(0px, 1fr));
  grid-auto-rows: 280px; /* Fixed height rows for the base unit */
  
  /* CRITICAL: This tells the browser to fill in empty gaps 
     with smaller items if they fit later in the list */
  grid-auto-flow: dense; 
}

.grid-item { overflow: hidden;}
.grid-item img { width: 100%; height: 100%; object-fit: cover;  transition: transform 0.3s ease;}
.span-wide { grid-column: span 1;}
.span-tall { grid-row: span 2; /* Takes up 2 rows */}

/* Optional: Make really big images spanning both */
.span-giant { grid-column: span 2; grid-row: span 2;}

/* === CONTACT === */
.contact-page-wrapper{display:flex; gap:50px; max-width:1220px; margin:30px auto 0 auto; background:#2f2e2e; padding:50px; border-radius:20px; border:1px solid rgba(255,255,255,0.04); box-shadow:1px 5px 7px 0px rgba(0, 0, 0, 0.07);}

.contact-page-wrapper .contact-details-container{order:1; flex:1;}
.contact-page-wrapper .contact-form-container{order:2; flex:1;}

.contact-item{display: flex; gap:20px; align-items: center; margin-bottom: 20px;}
.contact-item .icon{color: #ffff00; background: #454545; display: flex; align-items: center; justify-content: center; border-radius: 14px; width: 60px; height: 60px; text-decoration: none;  font-size:1.7rem; transition: all linear 250ms;}
.contact-item .icon:hover{color: #454545; background: #ffff00;}
.contact-item .details{flex: 1; color:white;}
.contact-item .details a{color:white;}
.contact-item .details .label{font-size: 1.1rem; margin-bottom: 3px; line-height: 1.3rem;}
.contact-page-wrapper .social-links{margin-top:10px;}
.contact-page-wrapper .social{margin: 0 10px 0 0; background: transparent; color: #ffff00; border: 1px solid #ffff00; width: 40px; height: 40px; font-size: 1.1rem; transition: all 200ms linear;}
.contact-page-wrapper .social:hover{background: #ffff00; color: #454545;}

.split-inputs{display: flex; gap:15px;}
.split-inputs input, .split-inputs select{flex:1;}
.contact-form-container textarea{min-height:95px;}
.contact-form-container .solid-button{width:100%;}

.cms-content h1, .cms-content h2, .cms-content h3, .cms-content h4{color:white;}
.cms-content h2, .cms-content h3, .cms-content h4{padding-top:20px;}
.cms-content h1{font-size: 2.1rem; line-height: 2.4rem; letter-spacing: 1px;}
.cms-content h2{font-size: 1.7rem; line-height: 2.2rem; font-weight:600; letter-spacing: 1px;}
.cms-content h3{font-size: 1.5rem; line-height: 1.9rem; font-weight:600; letter-spacing: 1px;}
.cms-content h4{font-size: 1.3rem; line-height: 1.7rem; font-weight:600; letter-spacing: 1px;}
.cms-content hr{border-color:rgba(255,255,255,0.2); border-top: 0;}
.cms-content strong, .cms-content b{    font-weight: 500}

.banner-wrapper .banner-content .community-banner p{margin:0 0 10px 0;}
.banner-wrapper .banner-content .community-banner .solid-button{min-height:36px;}

/* === FOOTER === */
footer{padding-top:40px; padding-bottom:25px; color:white;}

.footer-container {display:flex; align-items:center; justify-content:space-between; flex-direction: column; text-align:center;}
.footer-container .logo-container{ display: flex;  flex-direction: column; margin-bottom:25px; align-items:center;}
.footer-container .logo-container p{margin:10px 0 0 0; font-style:italic; color:rgba(255,255,255,0.8); font-size: 0.9rem;}
.footer-container .links-container .links{display:flex; align-items:center; flex-wrap:wrap; justify-content:center; gap: 8px 20px;}
.footer-container .links-container .links a {color:white; text-decoration:none; border-bottom:1px solid transparent; transition:200ms linear all;  font-size: 0.93rem;}
.footer-container .links-container .links a:hover{border-color:white;}
.footer-container .social-links{margin-top:15px;}
.footer-container .social-links .social{margin:0 5px; background:transparent; color:#fff; border:1px solid #fff; width: 36px; height: 36px; transition:all 200ms linear;}
.footer-container .social-links .social:hover{background:#fff; color:#0e0e0e;}

.footer-legals{text-align:center; font-size: 0.87rem; padding-top:25px; border-top:1px solid rgba(255,255,255,0.2); margin-top:35px; color:rgba(255,255,255,0.8);}
.footer-legals p{margin:10px 0;}
.footer-legals p, .footer-legals a{font-size: 0.87rem; color:rgba(255,255,255,0.8);}
.footer-legals .links{display:flex; align-items:center; justify-content:center; gap: 12px;}
.footer-legals a{text-decoration:none; border-bottom:1px solid transparent; transition:200ms linear all; }
.footer-legals a:hover{border-color:rgba(255,255,255,0.8);}

.results-page-wrapper div.site-wrapper:nth-of-type(odd){background-color: #2f2e2e;}
.results-page-wrapper div.site-wrapper:nth-of-type(even){background-color: #212121;}

.results-table-wrapper{overflow-x:auto; width:100%; position:relative;}
.results-table{width:100%; min-width:520px; border: 1px solid rgba(255, 255, 255, 0.15); border-collapse: collapse; margin-bottom:10px; display:table;}
.results-table tr{border-bottom:1px solid rgba(255,255,255,0.15); transition:all 200ms linear;}
.results-table tbody tr:hover td{background:rgba(255,255,0,0.1);}
.results-table th{padding:8px 15px; font-weight:500; text-align:left; color:white;}
.results-table th.center-text{text-align:center;}
.results-table td{padding:6px 15px;}
.results-table tr:nth-of-type(odd) td{background:rgba(255,255,255,0.07);}