/*
	Theme Name: Elev8 Track
	Theme URI: https://elev8track.co.uk
	Description: Elev8 Track WordPress Theme
	Version: 0.1
	Author: Creative Direction
	Author URI: https://creativedirection.info
*/

/*------------------------------------*\
    MAIN
\*------------------------------------*/
/* ===== Colors ===== */
:root {
  /* Solid colors */
  --color-brand-navy:   #0E405B;
  --color-brand-slate:  #263A43;
  --color-accent-red:   #FC4949;
  --color-crimson:      #BE1A33;
  --color-brick:        #CD3043;
  --color-steel-blue:   #5D7993;
  --color-cool-grey:    #9CA3A7;
  --color-mid-grey:     #6C7074;
  --color-light-grey:   #C7C7C7;
  --color-off-white:    #EBEAEA;
  --color-pure-white:   #FFFFFF;
  --color-pure-black:   #000000;

  /* Semantic aliases */
  --color-background:        var(--color-off-white);
  --color-surface:            var(--color-pure-white);
  --color-text:               var(--color-brand-slate);
  --color-text-muted:         var(--color-cool-grey);
  --color-primary:            var(--color-accent-red);
  --color-primary-contrast:   var(--color-pure-white);

  /* Gradients */

  --gradient-black-to-slate:     linear-gradient(0deg, #080C0D 0%, var(--color-brand-slate) 100%);
  --gradient-navy-to-slate:      linear-gradient(135deg, var(--color-brand-navy) 0%, var(--color-brand-slate) 100%);
  --gradient-steel-to-offwhite:  linear-gradient(135deg, var(--color-steel-blue) 0%, var(--color-off-white) 100%);
  --gradient-crimson-to-accent:  linear-gradient(135deg, var(--color-crimson) 0%, var(--color-accent-red) 100%);

  /* Shadows */
  --shadow-soft:   0 2px 8px rgba(0, 0, 0, 0.08);
  --shadow-medium: 0 6px 18px rgba(0, 0, 0, 0.12);

  /* Spacing scale */
  --space-xs: 4px;
  --space-s:  8px;
  --space-m:  16px;
  --space-l:  24px;
  --space-xl: 40px;

  /* Font families */
  --font-body: "schnebel-sans-me", sans-serif;
  --font-heading: "widescreen", sans-serif;
  --font-menu: "widescreen-ex", sans-serif;
  --font-uex: "widescreen-uex", sans-serif;

  /* Fluid font sizes */
  --font-size-xs:  0.91em;
  --font-size-s:   clamp(0.875rem, 0.80rem + 0.30vw, 1.00rem);
  --font-size-m:   clamp(1.00rem,  0.90rem + 0.50vw, 1.25rem);
  --font-size-l:   clamp(1.25rem,  1.10rem + 0.80vw, 1.75rem);
  --font-size-xl:  clamp(1.75rem,  1.40rem + 1.50vw, 2.50rem);
  --font-size-xxl: clamp(2em,  3.86em, 3.86em);

  /* Typography extras */
  --heading-line-height: 1.2;
  --heading-letter-spacing: -0.01em;
  --body-line-height: 1.3;
  --body-letter-spacing: -0.01em;
}


/* html element 62.5% font-size for REM use */
html {
	/*font-size:62.5%;*/
}

body {
  background-color: var(--color-background);
  color: var(--color-text);
  font-family: var(--font-body);
  line-height: var(--body-line-height);
  letter-spacing: var(--body-letter-spacing);
  font-size: 19px;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  line-height: var(--heading-line-height);
  letter-spacing: var(--heading-letter-spacing);
  text-transform: uppercase;
  margin: 0;
}
h1 {
	font-family: var(--font-uex) !important;
	font-size: 2.4em;
}
h2 {
	font-family: var(--font-menu);
	font-weight:900 !important;
}

.btn-primary {
  background: var(--color-primary);
  color: var(--color-primary-contrast);
  padding: var(--space-s) var(--space-m);
  border-radius: 6px;
  box-shadow: var(--shadow-soft);
}

.section-gradient {
  background: var(--gradient-navy-to-slate);
}

/* global box-sizing */
*,
*:after,
*:before {
	-moz-box-sizing:border-box;
	box-sizing:border-box;
	-webkit-font-smoothing:antialiased;
	font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
}

/* clear */
.clear:before,
.clear:after {
    content:' ';
    display:table;
}

.clear:after {
    clear:both;
}
.clear {
    *zoom:1;
}
img {
	max-width:100%;
	vertical-align:bottom;
}
a {
	color:var(--color-brick);
	text-decoration:none;
}
a:hover {
	color:#444;
}
a:focus {
	outline:0;
}
a:hover,
a:active {
	outline:0;
}
input:focus {
	outline:0;
	border:1px solid #04A4CC;
}

/*------------------------------------*\
    STRUCTURE
\*------------------------------------*/

/* wrapper */
.wrapper {
	position:relative;
}
.inner-wide {
	max-width: 1600px;
	margin: 0 auto;
	width:96%;
}
.inner {
	max-width: 1470px;
	margin: 0 auto;
	width:85%;
}
.inner-narrow {
	width:80%;
	max-width: 1300px;
	margin: 0 auto;
}
.narrow {
	max-width:875px;
	margin:0 auto;
	width:70%;
}
/* header */
.header {
	position:sticky;
	top:0;
	z-index:99;
	transition:0.6s all;
	background-color: #EBEAEA;
}
.scrolled .header {
	background-color: rgba(235, 234, 234, 0.98);
	/*backdrop-filter: blur(40px);*/
    /*--webkit-backdrop-filter: blur(40px);*/
    /*box-shadow: inset 0 0 2000px rgba(235, 234, 234, .1);*/
}
.header .inner {
	display: flex;
	justify-content: space-between;
	/*backdrop-filter: blur(40px);*/
}
.header-right {
	display: flex;
	align-items: center;
}
/* logo */
.logo {
}
.logo-img {

	max-width: 284px;
	padding:1em;
}
.header-link {
	font-weight: 900;
	text-transform: uppercase;
	font-family: var(--font-heading);
    letter-spacing: 0.08em;
    color: var(--color-brand-slate);
    font-size: 0.8em;
    padding-right: 1em;
    /*margin-right: 1em;*/
    border-right:1px solid #ccc;
}
#header-booking-button {
    display: table;
}
#header-booking-button-link {
	font-family: var(--font-heading);
    font-weight: 900;
    font-size: 0.8em;
    text-transform: uppercase;
    position: relative;
    padding-right: 25px;
    color: var(--color-brand-slate);
    letter-spacing: 0.08em;
    padding:1em 2.8em 1em 1em;
}
#header-booking-button-link:after {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background-image: url(img/button-arrow.php?col=cd3043);
    position: absolute;
    right: 1em;
    top: 50%;
    transform: translateY(calc(-50% - 1px));
    transition: 0.3s all;
}

#header-booking-button-link:hover:after {
    transform: translateY(-50%) rotate(-45deg);
}
/* nav */
.nav {
	/*display: none;*/
	position:fixed;
	top:0;
	right:0;
	width:35vw;
	height:100vh;
	background: var(--gradient-black-to-slate);
	transition:0.6s background;
}
.nav a {
	color:#fff;
	text-transform: uppercase;
	transition:0.6s all;
}
.nav a:hover {
	color:var(--color-brick);
}
.nav-inner {
	width:85%;
	height:100%;
	margin:0 auto;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.nav-menus h6 {
	font-family: var(--title-font);
	font-size: 1.36em;
	letter-spacing: 0.1em;
	font-weight: 700;
	margin:0;
	margin-bottom:1em;
	margin-block-end: 0;
}
.nav-inner > div {
	display: flex;
	flex-direction: column;
	gap: 2em;
}
.nav ul {
	margin: 0;
	padding: 0;
}
.nav ul li {
	list-style: none;
	font-family: var(--font-menu);
	letter-spacing: var(--title-letter-spacing);
	text-transform: uppercase;
	font-size:2.2em;
	line-height:1.2em;
	font-weight:700;
}
.nav ul li a {
	color:#fff;
	/*display: none;*/

}
.nav-button {
	width:45px;
	margin-left: 2em;
	z-index: 999;
	class:pointer;
	transition: 0.6s all;
}
.nav-button:hover {
	opacity:0.7;
}
.nav-button span {
	height:3px;
	background-color: var(--color-brick);
	width: 100%;
	margin-top:4px;
	display: block;
	padding:0;
	transition: 0.6s all;
	transform-origin: center;
}
.nav-button span:first-of-type {
	margin-top:0;
}
.nav-button.open span {
	margin: 0;
	background-color: var(--color-light-grey);
	height:8px;
	transform: scale(0.5);
}
.nav-button.open span:nth-of-type(1) {
	transform: rotate(45deg) translateY(135%) scale(0.8);
}
.nav-button.open span:nth-of-type(2) {
	opacity:0;
}
.nav-button.open span:nth-of-type(3) {
	transform: rotate(-45deg) translateY(-135%) scale(0.8);
}
.nav-bottom {
	margin-top: 100px;
}
.nav-bottom > div {
	margin-bottom: 1em;
}
.nav-bottom h6 {
	font-size:0.9em;
	letter-spacing: 0.08em;
	color:#4C4C4C;
	margin: 0;
}
.nav-bottom a {
	font-family: var(--h6-font);
	font-weight:600;
	font-size:1.2em;
	leter-spacing:0.08em;
}


/* Panel slide */
.nav {
  transform: translate3d(100%, 0, 0);
  transition: transform .5s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
  width:40%;
}
.nav-open .nav { transform: translate3d(0, 0, 0); }

/* Keyframes ensure both opacity + transform animate */
@keyframes nav-link-slide-in {
  from { opacity: 0; transform: translate3d(50px, 0, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* Base state for links */
.nav ul li a {
  display: block;               /* keeps box consistent */
  opacity: 0;
  transform: translate3d(50px,0,0);
  will-change: transform, opacity;
  backface-visibility: hidden;
  margin-bottom:0.3em;
}

/* Animate when nav opens */
.nav-open .nav ul li a {
  animation: nav-link-slide-in .38s cubic-bezier(.22,.61,.36,1) both;
}

/* Stagger (adjust count as needed) */
.nav-open .nav ul li:nth-child(1)  a { animation-delay: 0ms; }
.nav-open .nav ul li:nth-child(2)  a { animation-delay: 80ms; }
.nav-open .nav ul li:nth-child(3)  a { animation-delay: 160ms; }
.nav-open .nav ul li:nth-child(4)  a { animation-delay: 240ms; }
.nav-open .nav ul li:nth-child(5)  a { animation-delay: 320ms; }
.nav-open .nav ul li:nth-child(6)  a { animation-delay: 400ms; }

.nav-bottom {
	font-family: var(--font-heading);
	letter-spacing: 0.08em;
}

.nav-bottom h6 {
	margin-bottom:1em;
}
.nav-bottom a {
	color:#EBEAEA;
}

/* footer */
.footer {
	min-height:40vh;
	background-image: url(img/footer-bg.webp);
	display: flex;
	align-items: flex-end;
	padding-bottom: 50px;
	aspect-ratio:380 / 193;
	background-size: cover;
	background-repeat: no-repeat;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size:0.9em;
}

.footer .inner {
	display: flex;
	justify-content: space-between;
	gap:3em;
	align-items: center;
}

.footer-nav ul {
	display: flex;
	gap:2em;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--font-menu);
}
.footer-nav a {
	color:#fff;
}

.design-credit {
	color:var(--color-off-white);
	font-size: 0.72em;
}
.design-credit a {
	font-weight: 500;
	color:var(--color-off-white);
}


/*------------------------------------*\
    PAGES
\*------------------------------------*/


.home-hero-button a:after {
	top:27px !important;
	transform: translateY(0);
}

#post-404 .inner {
	text-align: center;
}
#post-404 img {
	max-width: 700px;
}
#post-404 h1 {
	font-size:6em;
}
.error404 .footer {
	aspect-ratio: unset;
	background-size: cover;
}


/*------------------------------------*\
    THANKS GUTENBERG
\*------------------------------------*/
.wp-block-verse {
	font-family: Widescreen;
	font-weight: 600;
	font-size: 0.73em;
	letter-spacing: 0.1em;
	color: #cd3043;
	text-transform: uppercase;
}

.wp-block-list {
	list-style: none;
	padding: 0;
}
.wp-block-list li {
	position: relative;
	padding-left: 40px;
	margin-bottom: 0.4em;
}

.wp-block-list li::before {
	content:'';
	display: block;
	position: absolute;
	left:0;
	top:4px;
	height:18px;
	width: 22px;
	background-image: url(img/list-arrow.svg);
	background-repeat: no-repeat;
	background-position: center;
}

/*------------------------------------*\
	BITS N BOBS
\*------------------------------------*/

.home-video {
	border-radius: 5px;
	border-top-left-radius: 80px;
	overflow: hidden;
	position: relative;
}

.home-video::before {
	content:'';
	display: block;
	position: absolute;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	background-image: url(img/video-overlay.svg);
	background-repeat: no-repeat;
	background-position: center right;
	background-size: contain;
}

.has-border-radius-top-right img {
	border-radius: 5px 80px 5px 5px;
}

.has-blurred-circle-right {
	position: relative;
	background-image: url(img/circle-blur-right.webp);
	background-repeat: no-repeat;
	background-position: bottom right;
	background-size: 400px;
}
.has-blurred-circle-left {
	position: relative;
	background-image: url(img/circle-blur-left.webp);
	background-repeat: no-repeat;
	background-position: bottom left;
	background-size: 250px;
}

.has-e8-watermark {
	background-image: url(img/e8-watermark.svg);
		background-repeat: no-repeat;
	background-position: center right;
	background-size: 400px;
}

/* MODAL STUFF */
.modal-container {
	position: fixed;
	height: 100vh;
	width: 100vw;
	top: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.95);
	display: block;
	z-index: 9999;
	display: none;
}

.modal-inner {
	display: flex;
    align-items: center;
    justify-content: center;
    max-height: 100vh;
    height:100vh;
    width: 100%;
}

.modal-content {
	width: 60%;
	display: block;
	overflow:scroll;
	position: relative;
	max-height:100vh;
	padding:3em 0;
}

.modal-close {
	position: absolute;
	top: 60px;
	right: 7.5%;
	line-height: 1;
	font-size: 50px;
	cursor: pointer;
	z-index: 2;
	color:#F73238;
}

/*------------------------------------*\
    RESPONSIVE
\*------------------------------------*/
@media only screen and (max-width:1400px) {
	.nav {
		width: 50%;
	}
}

@media only screen and (max-width:1200px) {
	.hide-tablet {
		display: none;
	}

	.has-e8-watermark {
		background-color: #EBEAEA;
		background-blend-mode: color-burn;
	}
	.footer {
		aspect-ratio: unset;
		background-position: right;
	}
	.footer .inner {
		justify-content: flex-end;
		align-items: flex-start;
	}
	.footer-nav ul {
		flex-direction:column;
		gap:0.7em;
		text-shadow: #263a43 1px 0 10px;
	}
}
@media only screen and (max-width:1024px) {
	.nav {
		width: 75%;
	}
	.header-link {
		display: none;
	}
	.footer .inner { 
		flex-direction: column;
	}
}
@media only screen and (max-width:768px) {
	h1 {
		font-size:1.4em;
	}
	.logo img {
		width:225px;
		padding-left: 0;
	}
	.footer {
		background-color: #ebeaea;
		background-position: right -250px center;
		background-blend-mode: luminosity;
	}
	#header-booking-button {
		display: none;
	}
	.inner, .inner-wide, .inner-narrow, .narrow {
		width: 95%;
	}
	.nav {
		width: 100%;
	}
	.nav ul li {
		font-size: 1.8em;
	}
	.nav-bottom a {
		font-size: 1em;
	}
	.has-blurred-circle-left, .has-blurred-circle-right {
		background-image: none;
	}
	.has-xxl-font-size {
		font-size:1.4em !important;
	}

	:where(.wp-block-group.has-background) {
		padding:25px;
	}
}

@media only screen and (-webkit-min-device-pixel-ratio:1.5),
	   only screen and (min-resolution:144dpi) {

}

/*------------------------------------*\
    MISC
\*------------------------------------*/

::selection {
	background:#04A4CC;
	color:#FFF;
	text-shadow:none;
}
::-webkit-selection {
	background:#04A4CC;
	color:#FFF;
	text-shadow:none;
}
::-moz-selection {
	background:#04A4CC;
	color:#FFF;
	text-shadow:none;
}

/*------------------------------------*\
    WORDPRESS CORE
\*------------------------------------*/

.alignnone {
	margin:5px 20px 20px 0;
}
.aligncenter,
div.aligncenter {
	display:block;
	margin:5px auto 5px auto;
}
.alignright {
	float:right;
	margin:5px 0 20px 20px;
}
.alignleft {
	float:left;
	margin:5px 20px 20px 0;
}
a img.alignright {
	float:right;
	margin:5px 0 20px 20px;
}
a img.alignnone {
	margin:5px 20px 20px 0;
}
a img.alignleft {
	float:left;
	margin:5px 20px 20px 0;
}
a img.aligncenter {
	display:block;
	margin-left:auto;
	margin-right:auto;
}
.wp-caption {
	background:#FFF;
	border:1px solid #F0F0F0;
	max-width:96%;
	padding:5px 3px 10px;
	text-align:center;
}
.wp-caption.alignnone {
	margin:5px 20px 20px 0;
}
.wp-caption.alignleft {
	margin:5px 20px 20px 0;
}
.wp-caption.alignright {
	margin:5px 0 20px 20px;
}
.wp-caption img {
	border:0 none;
	height:auto;
	margin:0;
	max-width:98.5%;
	padding:0;
	width:auto;
}
.wp-caption .wp-caption-text,
.gallery-caption {
	font-size:11px;
	line-height:17px;
	margin:0;
	padding:0 4px 5px;
}
.sticky {

}
.bypostauthor {

}

/*------------------------------------*\
    PRINT
\*------------------------------------*/

@media print {
	* {
		background:transparent !important;
		color:#000 !important;
		box-shadow:none !important;
		text-shadow:none !important;
	}
	a,
	a:visited {
		text-decoration:underline;
	}
	a[href]:after {
		content:" (" attr(href) ")";
	}
	abbr[title]:after {
		content:" (" attr(title) ")";
	}
	.ir a:after,
	a[href^="javascript:"]:after,
	a[href^="#"]:after {
		content:"";
	}
	pre,blockquote {
		border:1px solid #999;
		page-break-inside:avoid;
	}
	thead {
		display:table-header-group;
	}
	tr,img {
		page-break-inside:avoid;
	}
	img {
		max-width:100% !important;
	}
	@page {
		margin:0.5cm;
	}
	p,
	h2,
	h3 {
		orphans:3;
		widows:3;
	}
	h2,
	h3 {
		page-break-after:avoid;
	}
}



/* GRAVITY FORM */

.gform-body input,
.gform-body textarea,
.gform-body input::placeholder,
.gform-body textarea::placeholder {
	font-family: var(--font-body);
}

.gform_title {
	margin-bottom: 45px;
}

/* ---------- Layout (button under right column stays the same) ---------- */
#gform_1.form--trackday{
  --msg-h: 220px;           /* ↓ make this smaller/bigger to taste */
  display:grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas:
    "name    track"
    "email   date"
    "phone   message"
    "company message"
    "group   message"
    ".       submit";
  column-gap:36px;
  row-gap:14px;
}

/* Flatten inner wrappers so .gfield is a grid item */
#gform_1.form--trackday .gform-body,
#gform_1.form--trackday .gform_fields{ display:contents; }

/* Map fields (IDs included as fallback) */
#gform_1.form--trackday .fld-name    , #field_1_1{ grid-area:name; }
#gform_1.form--trackday .fld-email   , #field_1_4{ grid-area:email; }
#gform_1.form--trackday .fld-phone   , #field_1_5{ grid-area:phone; }
#gform_1.form--trackday .fld-company , #field_1_3{ grid-area:company; }
#gform_1.form--trackday .fld-group   , #field_1_6{ grid-area:group; }
#gform_1.form--trackday .fld-track   , #field_1_7{ grid-area:track; }
#gform_1.form--trackday .fld-date    , #field_1_9{ grid-area:date; }
#gform_1.form--trackday .fld-message , #field_1_8{ grid-area:message; }

/* Footer in right column */
#gform_1.form--trackday .gform_footer{
  grid-area:submit; grid-column:2; justify-self:start; align-self:start;
  margin:0; padding-top:8px; float:none !important; clear:none !important; width:auto !important;
}

/* ---------- Kill “random” spacing coming from the theme ---------- */
#gform_wrapper_1 .gfield{ margin:0 !important; }                   /* li items */
#gform_wrapper_1 .gfield .ginput_container{ margin-top:0 !important; } /* some themes add margin here */
#gform_wrapper_1 .gform_validation_container{ display:none; }       /* honeypot extra space */

/* ---------- Inputs look ---------- */
#gform_wrapper_1 input[type="text"],
#gform_wrapper_1 input[type="email"],
#gform_wrapper_1 input[type="tel"],
#gform_wrapper_1 input[type="number"],
#gform_wrapper_1 select,
#gform_wrapper_1 textarea{
  width:100% !important;
  border:0; 
  border-radius:5px; 
  background:#f1f3f5;
  padding:18px 20px; font-size:18px; line-height:1.4;
  box-shadow:0 16px 40px rgba(0,0,0,.12);
}

/* Make the message field smaller so it doesn't blow up the rows */
#gform_wrapper_1 .fld-message textarea,
#gform_wrapper_1 #field_1_8 textarea{
  min-height: var(--msg-h);   /* 220px by default */
  resize: vertical;
}

/* Optional: hide labels if you want placeholders-only */
#gform_wrapper_1 .gform-field-label{ display:none !important; }

/* Submit button style (no extra class required) */
#gform_wrapper_1 .gform_footer .gform_button,
#gform_wrapper_1 #gform_submit_button_1{
	font-family: "widescreen", sans-serif;
    font-weight: 600;
    font-size: 0.9em;
    text-transform: uppercase;
    position: relative;
    padding-right: 25px;
    color: #fff;
    color: #ebeaea;
    background-color: #cd3043;
    letter-spacing: 0.08em;
    padding: 1em 2.5em 1em 1em;
    display: block;
    border-radius: 2px;
    border:0;
    position: relative;
}
.submit-container {
	position: relative;
}
.submit-container::after {
	content: '';
    display: block;
    width: 15px;
    height: 15px;
    background-image: url(img/button-arrow.php?col=ebeaea);
    position: absolute;
    right: 1em;
    top: 45%;
    transform: translateY(-50%);
    transition: 0.3s all;
    cursor: pointer;
}
.submit-container:hover::after {
	transform: translateY(-50%) rotate(-45deg);
}

/* Stack on mobile */
@media (max-width:900px){
:root {
	--wp--preset--spacing--80: 25px;
}
  #gform_1.form--trackday{
  	display: block;
    grid-template-columns:1fr;
    grid-template-areas:
      "name" "track" "email" "date" "phone" "company" "group" "message" "submit";
  }

  #gform_1.form--trackday input {
  	margin-bottom: 5px;
  }
}
