@import url(fontawesome-all.min.css);
@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,600,700,300i,600i,700i|Raleway:600,800");

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;}
* {
	
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: sans-serif;
}

body {
    background: #f5f5f5;
    color: #333;
    line-height: 1.6;
}
html {
    scroll-behavior: smooth;
}

html, body {
    height: 100%;
    overflow-x: hidden;
}

/* Typography */

	html {
		font-size: 18pt;
	}

		@media screen and (max-width: 1920px) {

			html {
				font-size: 13pt;
			}

		}

		@media screen and (max-width: 1152px) {

			html {
				font-size: 14pt;
			}

		}

		@media screen and (max-width: 736px) {

			html {
				font-size: 12pt;
			}

		}

		@media screen and (max-width: 480px) {

			html {
				font-size: 11pt;
			}

		}

	body {
		background-color: #ffffff;
		color: #000000;
		max-width: 1920px;
		margin: 0 auto;		
	}

	body, input, select, textarea {
		color: #000000;
		font-family: 'Fredoka One', sans-serif;
		font-size: 1rem;
		font-weight: 300;
		letter-spacing: 0.0375em;
		line-height: 2;
	}

	a {
		-moz-transition: border-bottom-color 0.25s ease-in-out;
		-webkit-transition: border-bottom-color 0.25s ease-in-out;
		-ms-transition: border-bottom-color 0.25s ease-in-out;
		transition: border-bottom-color 0.25s ease-in-out;
		text-decoration: none;
		color: #000000;
		border-bottom: dotted 1px;
	}

		a:hover {
			text-decoration: none;
			border-bottom-color: transparent;
		}

	strong, b {
		font-weight: 600;
		color: #000000;
	}

	em, i {
		font-style: italic;
	}

	p {
		margin: 0 0 0 0;
	}

	h1, h2, h3, h4, h5, h6 {
		color: #000000;
		font-family: "Raleway", Helvetica, sans-serif;
		font-weight: 600;
		letter-spacing: 0.175em;
		line-height: 1.75;
		margin: 0 0 0 0;
		text-transform: uppercase;
	}

		h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
			color: inherit;
			text-decoration: none;
		}

	h1 {
		font-family: "Source Sans Pro", Helvetica, sans-serif;
		font-size: 5rem;
		font-weight: 700;
		letter-spacing: -0.05em;
		line-height: 1.1;
		margin: 0 0 0 0;
		text-transform: none;
	}

	h2 {
		font-family: 'Permanent Marker', cursive;
		font-size: 1.25rem;
		font-weight: 800;
		margin: 0 0 0 0;
	}

	h3 {
		font-size: 1.0rem;
	}

	h4 {
		font-size: 0.875rem;
	}

	h5 {
		font-size: 0.75rem;
	}

	h6 {
		font-size: 0.625rem;
	}

	@media screen and (max-width: 736px) {

		h1 {
			font-size: 4.5rem;
			line-height: 1.1;
		}

		h2 {
			font-size: 1.25rem;
			line-height: 1.1;
		}

		h3 {
			font-size: 0.9rem;
		}

		h4 {
			font-size: 0.75rem;
		}

		h5 {
			font-size: 0.675rem;
		}

	}

	@media screen and (max-width: 360px) {

		h1 {
			font-size: 3.75rem;
		}

		h2 {
			font-size: 1.125rem;
		}

		h3 {
			font-size: 0.8rem;
		}

		h4 {
			font-size: 0.675rem;
		}

		h5 {
			font-size: 0.675rem;
		}

	}

	sub {
		font-size: 0.8rem;
		position: relative;
		top: 0.5rem;
	}

	sup {
		font-size: 0.8rem;
		position: relative;
		top: -0.5rem;
	}

	blockquote {
		border-left: solid 0.5rem rgba(144, 144, 144, 0.25);
		font-style: italic;
		margin: 0 0 2rem 0;
		padding: 1rem 0 1rem 2rem;
	}

	code {
		background: rgba(144, 144, 144, 0.1);
		border-radius: 0.325rem;
		font-family: "Courier New", monospace;
		font-size: 0.9rem;
		margin: 0 0.25rem;
		padding: 0.25rem 0.65rem;
	}

	pre {
		-webkit-overflow-scrolling: touch;
		font-family: "Courier New", monospace;
		font-size: 0.9rem;
		margin: 0 0 2rem 0;
		width: 100%;
	}

		pre code {
			display: block;
			line-height: 1.75;
			padding: 1rem 1.5rem;
			overflow-x: auto;
		}

	hr {
		border: 0;
		border-bottom: solid 2px rgba(144, 144, 144, 1);
		margin: 3rem 0;
	}

		hr.major {
			margin: 5rem 0;
		}

		@media screen and (max-width: 736px) {

			hr.major {
				margin: 3rem 0;
			}

		}

/* Mobile */
@media (max-width: 768px) {
    .hero {
        display: block !important;
        min-height: auto !important;
        height: auto !important;
    }

    .content-section {
        display: block !important;
    }

    .content-left {
        display: block !important;
        height: auto !important;
        padding: 20px;
        border-right: none;
        border-bottom: 1px solid #ddd;
    }

    .content-right {
        display: block !important;
        height: auto !important;
        padding: 20px;
    }

    .content-footer {
        width: 100%;
    }
	
	.bike-card {
		flex-direction: column;
    }

    .gear-item {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 10px;
    }

    .gear-item .gear-image {
        display: flex;
        justify-content: center;
    }

	.bike-info {
		flex: 1 1 auto !important;
		flex-basis: auto !important; /* override the 400px */
		min-height: 0 !important;    /* make absolutely sure */
		padding: 10px; /* keep your padding */
	}
	
}

/* Section Snapping */
section {
    min-height: 100vh; /* allows it to grow on tall content */
    scroll-snap-align: start;
}

body {
    scroll-snap-type: y mandatory;
    overflow-y: scroll;
}

/* Hero Section */
.hero {
    display: grid;
    grid-template-columns: 35% 65%;
    min-height: 100vh;
    height: auto;
    margin: 0 auto;
}

.hero-left {
    background: #cbc19e;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
	height: 100vh;
}

.hero-left .logo {
    max-width: 80%;
    height: auto;
    margin-bottom: 20px;
}

.hero-left .button {
    display: block;
    width: 80%;
    text-align: center;
    padding: 15px;
    margin: 10px 0;
    text-decoration: none;
    font-size: 1.2em;
    color: #000;
    font-weight: bold;
}

.hero-left .button.red {
    background: #e53935;
    color: #fff;
}

.hero-left .button.blue {
    background: #03a9f4;
    color: #fff;
}

.hero-right {
	display: block;
	background-image: url('../images/hero.png'); 
    background-size: cover;
    background-position: center;
	height: 100vh;          /* add this */
    width: 100%;            /* optional, ensures full width */
    min-height: 100vh;      /* optional but helps on some browsers */
}

.hero-right iframe {
    width: 50%;
    height: 50%;
}

/* Hero Video */
.video-container {
	width: 90%;
    max-width: 1500px; /* or whatever looks nice in your hero */
    margin: 0 auto;
    position: relative;
}

.video-container iframe {
    margin-top: 10rem;
	width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    border: none;
}

.video-container iframe {
    border: 6px solid #fff; /* thick cartoon border */
    border-radius: 10px; /* slightly rounded corners */
    padding: 5px; /* inner spacing */
    background-color: #fff; /* white background behind video */
    transition: transform 0.2s ease; /* subtle animation on hover */
}

.video-container iframe:hover {
    transform: scale(1.02); /* small zoom on hover */
}

/* Content Sections */
.main {
    display: flex;
    flex-direction: column;
}

.content-section {
    display: grid;
    grid-template-columns: 35% 65%;
	min-height: 100vh;
    height: auto;
    margin: 0px;
    background: #fff;
}

.content-left {
    height: auto; /* allow left column to match content height */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    padding: 20px;
    background-color: #f0f0f0;
    border-right: 0px solid #ddd;
}

.content-left h2 {
    margin-top: auto;
	margin-bottom: auto;
	font-size: 2em;
    text-align: right;
}

.content-right {
    padding: 20px; /* already set, leave it */
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

#third .content-right {
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    height: 100%; /* force it to fill the section */
}

.content-right p {
    /*max-width: 800px;*/
    text-align: left;
    font-size: 0.9em;
}

.content-footer {
    flex-shrink: 0; /* prevents it being squashed */
    width: 100%; /* optional - makes it full width */
}

/* Icons */
	ul.icons {
		cursor: default;
		list-style: none;
		padding-left: 0;
	}

		ul.icons li {
			display: inline-block;
		}

			ul.icons li:last-child {
				padding-right: 0;
			}

			ul.icons li a {
    -moz-transition: background-color 0.25s ease-in-out;
    -webkit-transition: background-color 0.25s ease-in-out;
    -ms-transition: background-color 0.25s ease-in-out;
    transition: background-color 0.25s ease-in-out;
    width: 4rem;
    height: 4rem;
    text-align: center;
    line-height: 5rem;
    border-radius: 2.25rem;
    display: inline-block;
}

ul.icons li a i {
    font-size: 2.25rem;
}

ul.icons li a:hover {
    background-color: #eee4c1;
	transform: scale(1.02); /* small zoom on hover */
}

/* Feature Icons */
	ul.feature-icons {
		display: flex;
		flex-wrap: wrap;
		list-style: none;
		margin: 3rem 0;
		padding-left: 0;
	}

		ul.feature-icons:first-child {
			margin-top: 0;
		}

		ul.feature-icons li {
			margin: 2.5rem 0 0 0;
			padding: 0.5rem 0 0 4.5rem;
			position: relative;
			width: 50%;
		}

			ul.feature-icons li:before {
				background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 512 512'%3E%3Cpath d='M256,0l221.7,128v256L256,512L34.3,384V128L256,0z' fill='rgba(144, 144, 144, 0.1)' /%3E%3C/svg%3E");
				background-position: center;
				background-repeat: no-repeat;
				background-size: contain;
				color: #000000;
				display: block;
				font-size: 1.25rem;
				height: 3.25rem;
				left: 0;
				line-height: 3.25rem;
				position: absolute;
				text-align: center;
				top: 0;
				width: 3.25rem;
			}

			ul.feature-icons li:nth-child(1), ul.feature-icons li:nth-child(2) {
				margin-top: 0;
			}

		@media screen and (max-width: 736px) {

			ul.feature-icons {
				margin: 0 0 3rem 0;
			}

				ul.feature-icons li {
					width: 100%;
				}

					ul.feature-icons li:nth-child(2) {
						margin-top: 2rem;
					}

		}

/* Table */
	.table-wrapper {
		-webkit-overflow-scrolling: touch;
		overflow-x: auto;
	}

	table {
		margin: 0 0 2rem 0;
		width: 100%;
	}

		table tbody tr {
			border: solid 0px rgba(144, 144, 144, 0.25);
			border-left: 0;
			border-right: 0;
		}

	/*		table tbody tr:nth-child(2n + 1) {
				background-color: rgba(144, 144, 144, 0.1);
			}
*/
		table td {
			padding: 0.75rem 0.75rem;
		}

		table th {
			color: #000000;
			font-size: 0.9rem;
			font-weight: 600;
			padding: 0 0.75rem 0.75rem 0.75rem;
			text-align: left;
		}

		table thead {
			border-bottom: solid 2px rgba(144, 144, 144, 0.25);
		}

		table tfoot {
			border-top: solid 2px rgba(144, 144, 144, 0.25);
		}

		table.alt {
			border-collapse: separate;
		}

			table.alt tbody tr td {
				border: solid 1px rgba(144, 144, 144, 0.25);
				border-left-width: 0;
				border-top-width: 0;
			}

				table.alt tbody tr td:first-child {
					border-left-width: 1px;
				}

			table.alt tbody tr:first-child td {
				border-top-width: 1px;
			}

			table.alt thead {
				border-bottom: 0;
			}

			table.alt tfoot {
				border-top: 0;
			}

/* Arrow */
.moto-arrow a {
    display: inline-block;
    width: 4rem;
    height: 4rem;
    text-align: center;
    line-height: 6rem;
    border-radius: 2.25rem;
    background-color: transparent;
    -moz-transition: background-color 0.25s ease-in-out;
    -webkit-transition: background-color 0.25s ease-in-out;
    -ms-transition: background-color 0.25s ease-in-out;
    transition: background-color 0.25s ease-in-out;
}

.moto-arrow a:hover {
    background-color: #eee4c1; /* light transparent background on hover */
}


	a.arrow {
		border-bottom: 0;
		display: inline-block;
		height: 4rem;
		position: relative;
		width: 6rem;
	}

		a.arrow .label {
			display: none;
		}

		a.arrow:before {
			background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 512 512'%3E%3Cpath d='M442.53,346.28L293.65,495.16c-0.33,0.33-0.7,0.62-1.05,0.94c-9.16,9.77-22.15,15.9-36.6,15.9 c-14.44,0-27.43-6.13-36.59-15.88c-0.35-0.33-0.72-0.62-1.06-0.96L69.47,346.28c-19.62-19.62-19.62-51.44,0-71.05 c19.62-19.62,51.43-19.62,71.06,0l65.23,65.23V50.24C205.76,22.5,228.25,0,256,0s50.24,22.5,50.24,50.24v290.21l65.23-65.23 c19.62-19.62,51.43-19.62,71.05,0C462.15,294.84,462.15,326.66,442.53,346.28z' fill='%23000000' /%3E%3C/svg%3E");
			background-position: center;
			background-repeat: no-repeat;
			background-size: contain;
			content: '';
			display: inline-block;
			height: 100%;
			position: relative;
			width: 3rem;
		}

/* BRAND CAROUSEL */
.brand-carousel {
overflow: hidden;
position: relative;
width: 100%;
background-color: transparent;
padding: 10px 0;
}

.brand-track {
    display: flex;
    width: calc(400%); /* allow for seamless loop */
    animation: scrollBrands 25s linear infinite;
}

.brand-track img {
    height: 40px;
    margin: 0 20px;
    flex-shrink: 0;
}

@keyframes scrollBrands {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* Bike Section */
.bike-card {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #ccc;
    padding: 10px;
    margin-bottom: 10px;
}

.bike-image {
    flex: 0 0 180px;
    padding: 10px;
}

.bike-info {
    flex: 1 1 500px;
	font-size: 0.85em;
    padding: 10px;
}

.bike-specs {
    flex: 1 1 150px;
	padding: 10px 10px 10px 20px;
    color: #555;
}

/* Gear Section */
.gear-item {
    display: flex;
    flex-wrap: wrap; /* so it collapses nicely on mobile */
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%; /* key! makes it fill .content-right */
    border-bottom: 1px solid #ccc;
    padding: 10px 0;
    margin-bottom: 10px;
    gap: 20px; /* spacing between columns */
    box-sizing: border-box; /* safe */
}
.gear-item .gear-image {
    flex: 0 0 120px; /* fixed width for images */
	margin-left: 20px;
    max-width: 120px;
}

.gear-item .gear-info {
    flex: 1; /* this is the key! make it take available space */
    min-width: 200px;
    padding: 10px;
    font-size: 0.9em;
    box-sizing: border-box;
}

.gear-item .gear-image:nth-of-type(2) {
    flex: 0 0 120px; /* second image fixed too */
    max-width: 120px;
}

.gear-item .gear-tech {
    flex: 1; /* again: take remaining space */
    min-width: 200px;
    padding: 10px;
    font-size: 0.9em;
    box-sizing: border-box;
}