/*
Theme Name: Accelerator Industries
Theme URI: http://www.drivendevelopment.com/
Description: Custom WordPress theme for Accelerator Industries.
Author: <a href="http://www.drivendevelopment.com/" target="_blank">Driven Development</a>
Version: 1.0
*/

@import url(default.css);

:root {
    --font-heading: "Rajdhani", sans-serif;
    --font-text: "Rubik", sans-serif;

    --color-accent: #b30b10;
}

/**
 * General
 */
*,
*:before,
*:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

html {
    font-size: 62.5%; 
    -webkit-text-size-adjust: none;
}

html, body {
    margin: 0; 
    padding: 0; 
    background: #282b2e;
    color: #282B2E;
}

body {
    font-family: var(--font-text); 
    font-size: 19px;
    line-height: 1.42em;
    padding-top: 145px;
    transition: 0.25s ease padding-top;
}

form {
    margin: 0; 
    padding: 0;
}

img {
    border: 0; 
    max-width: 100%; 
    height: auto;
}

td {
    vertical-align: top;
}

h1,
h2,
h3,
h4,
h5,
h6,
legend {
    font-family: var(--font-heading);
    text-transform: uppercase;
}

h1 {
    font-size: clamp(50px, 6vw, 70px);
    line-height: .8em;
    text-transform: uppercase;
    margin: 0 0 20px 0;
}

h2,
legend {
    margin: 0 0 20px 0;
    font-size: 38px;
    line-height: 1.1em;
    font-weight: bold;
}

h1:last-child,
h2:last-child {
    margin-bottom: 0;
}

p {
    margin: 0 0 20px 0;
}

p:last-child {
    margin-bottom: 0;
}

a {
    transition: 0.25s ease; 
    color: var(--color-accent);
    text-decoration: underline;
    /* color: #232e6c; */
}

a:focus,
a:hover {
    text-decoration: none;
}

.hidden {
    height: 1px; 
    left: -10000px; 
    overflow: hidden; 
    position: absolute; 
    top: auto; 
    width: 1px;
}

.screen-reader-text,
.visually-hidden,
.sr-only {
    border: 0; 
    clip: rect(1px, 1px, 1px, 1px); 
    clip-path: inset(50%);
    height: 1px; 
    margin: -1px; 
    overflow: hidden; 
    padding: 0; 
    position: absolute !important; 
    width: 1px; 
    word-wrap: normal !important;
}

a#skip,
a#skip:hover,
a#skip:visited {
	display: inline-block;
	background: #000;
	color: #fff;
	text-decoration: none;
	font-weight: bold;
	padding: 10px;
	position: absolute;
	top: 10px;
	left: -1000px;
	transition: none;
}

a#skip:active,
a#skip:focus {
    left: 10px;
    z-index: 99999999;
}

nav ul {
    margin: 0; 
    padding: 0; 
    list-style-type: none;
}

/**
 * Layout
 */
#header {
    background: #fff;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
    transition: 0.25s ease;
}

#header .section > div {
    max-width: 1540px;
}

#header .upper {    
    background: #000;
    font-size: 14px;
    line-height: 1em;
    color: #878787;
}
 
#header .upper > div {
    display: flex;
    justify-content: flex-end;
    padding-top: 10px;
    gap: 0 30px;
    min-height: 40px;
}

#header .upper nav a {
    color: #dbdbdb;
    text-decoration: none;
}

#header .upper nav a:focus,
#header .upper nav a:hover {
    text-decoration: underline;
    color: #fff;
}

#header .upper nav ul {
    display: flex;
    padding: 3px 0 0 0;
}

#header .upper nav li + li:before {
    content: "|";
    padding: 0 10px;
}

#header .upper .shop {
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    background: var(--color-accent);
    color: #fff;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    padding: 5px 10px 5px 20px;
    font-weight: 600;
    gap: 0 15px;
}

#header .upper .shop a {
    color: #fff;
    text-decoration: none;
}

#header .upper .shop a:focus,
#header .upper .shop a:hover {
    text-decoration: underline;
    color: #fff;
}

#header .upper .shop .cart {
    display: flex;
    align-items: center;
}

#header .upper .shop .cart svg {
    width: 22px;
    height: auto;
}

#header .upper .shop .cart .count:before {
    content: "|";
    padding: 0 8px;
}

#header .lower > div {
    position: relative;
    height: 105px;
    transition: 0.25s ease;
}

#header .lower .logo {
    position: absolute;
    width: 320px;
    top: 12px;
    transition: 0.25s ease;
    display: block;
}

#header .lower nav {
    position: absolute;
    font-size: 16px;
    line-height: 1em;
    top: 55px;
    right: 300px;
    transition: 0.25s ease;
}

#header .lower nav a {
    color: #000;
}

#header .lower nav > ul {
    display: flex;
    gap: 0 50px;
}

#header .lower nav > ul > li {
    position: relative;
}

#header .lower nav > ul > li > a {
    text-transform: uppercase;
    color: #000;
    font-weight: bold;
    text-underline-offset: 6px;
    text-decoration-color: #fff;
}

#header .lower nav > ul > li > a:focus,
#header .lower nav > ul > li > a:hover,
#header .lower nav > ul > li:hover > a,
#header .lower nav > ul > li.active > a,
#header .lower nav > ul > li.current-menu-item > a,
#header .lower nav > ul > li.current-menu-ancestor > a {
    text-decoration-color: var(--color-accent);
}

#header .lower nav > ul > li > button {
    position: relative;
    display: inline-block;
    margin: 4px 0 0 5px;
    vertical-align: top;
}

#header .lower nav > ul > li > button:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    border: solid 1px transparent;
    border-top-color: var(--color-accent);
    border-width: 7px 6px;
}

#header .lower nav > ul > li > button svg {
    display: none;
}

#header .lower nav > ul > li > ul {
    padding: 20px;
    background: #fff;
    position: absolute;
    top: calc(100% + 15px);
    left: -20px;
    width: 200px;
    border-radius: 4px;
    box-shadow: 7px 7px 10px rgba(0,0,0,0.4);
    transition: 0.45s ease;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-20px);
}

#header .lower nav > ul > li > button[aria-expanded="true"] + ul {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

#header .lower nav > ul > li > ul > li + li {
    margin-top: 15px;
}

#header .lower nav > ul > li > ul > li > a {
    text-decoration-color: #fff;
    text-underline-offset: 2px;
    line-height: 1.2em;
}

#header .lower nav > ul > li > ul > li > a:focus,
#header .lower nav > ul > li > ul > li > a:hover {
    text-decoration-color: var(--color-accent);
}

#header .lower .phone {
    position: absolute;
    top: 25px;
    right: 40px;
    font-size: 15px;
    line-height: 1.1em;
    color: var(--color-accent);
    transition: 0.25s ease;
}

#header .lower .phone a {
    color: #000;
    text-decoration: none;
    font-size: 32px;
    line-height: 1.1em;
    display: block;
    font-family: var(--font-heading);
    font-weight: bold;
    letter-spacing: .7px;
}

#header .lower .toggle-menu {
    position: absolute;
    display: none;
    right: 20px;
    top: 15px;
}

#header .lower .toggle-menu svg {
    width: 28px;
    height: auto;
    display: block;
}

body.scrolled {
    padding-top: 60px;
}

body.scrolled #header {
    top: -40px;
}

body.scrolled #header .lower {
    box-shadow: 0 0 20px rgba(0,0,0,0.4);
}

body.scrolled #header .lower > div {
    height: 60px;
}

body.scrolled #header .lower .logo {
    top: 7px;
    width: 180px;
}

body.scrolled #header .lower nav {
    top: 23px;
}

body.scrolled #header .lower .phone {
    top: 7px;
}

#main {
    overflow: hidden;
}

#footer .upper {
    background: #000;
    color: #fff;
    font-size: 16px;
    line-height: 2.25em;
}

#footer .upper h2 {
    margin: 0 0 20px 0;
    font-size: 16px;
    line-height: 1.2em;
    color: #ED1C24;
    text-transform: uppercase;
    font-family: var(--font-text);
}

#footer .upper > div {
    display: flex;
    flex-wrap: wrap;
    padding-top: 60px;
    padding-bottom: 60px;
}

#footer .upper a {
    color: #fff;
    text-decoration: none;
}

#footer .upper a:focus,
#footer .upper a:hover {
    text-decoration: underline;
}

#footer .upper .info {
    width: 35%;
}

#footer .upper nav {
    width: 65%;
    display: flex;
    flex-wrap: wrap;
    line-height: 1.2em;
}

#footer .upper nav > div:first-child {
    width: 66.6666%;
}

#footer .upper nav > div:last-child {
    width: 33.3333%;
}

#footer .upper nav h2 {
    margin: 0 0 28px 0;
}

#footer .upper nav li + li {
    margin-top: 17px;
}

#footer .lower {
    color: #a4a4a4;
    font-size: 14px;
    line-height: 1.2em;
}

#footer .lower > div {
    padding-top: 15px;
    padding-bottom: 15px;
}

#footer .lower a {
    color: #a4a4a4;
    text-decoration: underline;
}

#footer .lower a:focus,
#footer .lower a:hover {
    text-decoration: none;
}

#footer .lower ul {
    margin: 0 0 0 20px;
    padding: 0;
    list-style-type: none;
    display: inline-flex;
}

#footer .lower li + li:before {
    content: "|";
    padding: 0 10px;
}

#footer .lower .prop65 {
    margin-top: 10px;
    font-size: 12px;
    line-height: 1.2em;
}

#mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    transition: 0.5s ease-out;
    background: #fff;
    padding: 40px;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    transition: 0.25s ease;
    font-size: 16px;
    overflow: scroll;
}

#mobile-menu a {
    text-decoration: none;
    color: #000;
}

#mobile-menu a:focus,
#mobile-menu a:hover {
    text-decoration: underline;
}

#mobile-menu .close {
    position: absolute;
    top: 10px;
    right: 20px;
}

#mobile-menu .close svg {
    display: block;
    width: 30px;
}

#mobile-menu .primary-nav {
    border-bottom: solid 1px #ccc;
    margin: 0 0 20px 0;
    padding: 0 0 20px 0;
}

#mobile-menu .primary-nav > ul > li > a {
    text-transform: uppercase;
    font-weight: bold;
}

#mobile-menu .primary-nav > ul > li + li {
    margin-top: 10px;
}

#mobile-menu .primary-nav > ul > li > ul {
    padding: 5px 0 5px 20px;
}

#mobile-menu .secondary-nav > ul > li + li {
    margin-top: 5px;
}

#mobile-menu .cart {
    display: flex;
    gap: 0 10px;
    color: #000;
    text-decoration: none;
    margin: 20px 0;
}

#mobile-menu .cart svg {
    width: 22px;
    height: auto;
}

#mobile-menu .phone {
    font-size: 15px;
    line-height: 1.1em;
    color: var(--color-accent);
}

#mobile-menu .phone a {
    font-size: 32px;
    line-height: 1.1em;
    display: block;
    font-family: var(--font-heading);
    font-weight: bold;
    letter-spacing: .7px;
}

.section > div {
    max-width: 1280px; 
    margin: 0 auto; 
    padding: 0 40px; 
    position: relative;
}

.section.wide > div {
    max-width: 1580px;
}

.section.white {
    background-color: #fff;
}

.section.grey {
    background-color: #282B2E;
    color: #fff;
}

.section.grey a {
    color: #fff;
}

.section.light-grey {
    background-color: #EBEFF2;
}

.section.black {
    background-color: #000;
    color: #fff;
}

.section.small-gutter > div {
    padding-top: 40px;
    padding-bottom: 40px;
}

.section.gutter > div {
    padding-top: 80px;
    padding-bottom: 80px;
}

.section.large-gutter > div {
    padding-top: 100px;
    padding-bottom: 100px;
}

section:has(+ .dealer-locator-banner) > .section:last-child > div {
    padding-bottom: 120px;
}

 /**
  * Miscellaneous
  */
.btn,
input.gform_button[type="submit"] {
    background: var(--color-accent);
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: bold;
    padding: 10px 30px;
    border-radius: 50px;
    display: inline-block;
    cursor: pointer;
    border: solid 2px var(--color-accent);
    transition: all 0.25s ease;
    font-size: 16px;
    line-height: 1.25em;
    text-align: center;
}

.btn:focus,
.btn:hover,
input.gform_button[type="submit"]:focus,
input.gform_button[type="submit"]:hover {
    background: #000;
    color: #fff;
}

.btn.sml {
    font-size: 14px;
    padding: 7px 20px;
}

.btn.outline {
    background: #000;   
    color: #fff;
}

.btn.outline:focus,
.btn.outline:hover {
    background: var(--color-accent);
}

.btn.black {
    background: #282b2e;
    border-color: #282b2e;
}

.btn.black:focus,
.btn.black:hover {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.btn.search {
    display: inline-flex;
    gap: 0 10px;
    align-items: center;
}

.btn.search svg {
    width: 20px;
    height: auto;
}

.btn.search path {
    fill: #fff;
}

.btn.with-loader {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    position: relative;
}

.btn.with-loader.loading .loading-spinner {
    display: block;
    position: absolute;
    left: calc(50% - 10px);
    top: calc(50% - 10px);
}

.btn.with-loader.loading .text {
    visibility: hidden;
}

button.plain,
nav button,
.link-button {
    margin: 0;
    padding: 0;
    cursor: pointer;
    background: none;
    border: none;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    text-align: inherit;
}

.link-button {
    text-decoration: underline;
    color: var(--color-accent)
}

.link-button:focus,
.link-button:hover {
    text-decoration: none;
}

.sub-nav ul {
    margin: 0 0 40px 0;
    padding: 0;
    list-style-type: none;
    display: flex;
}

.sub-nav li + li:before {
    content: "|";
    padding: 0 15px;
}

.back {
    margin-top: 40px;
}

hr {
    border: none;
    border-top: solid 1px #707070;
    background: none;
    height: 1px;
    margin: 60px 0;
}

.loading-spinner {
    display: none;
    width: 20px;
    padding: 4px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #fff;
    --_m: 
        conic-gradient(#0000 10%,#000),
        linear-gradient(#000 0 0) content-box;
    -webkit-mask: var(--_m);
    mask: var(--_m);
    -webkit-mask-composite: source-out;
    mask-composite: subtract;
    animation: loading-spinner-animation 1s infinite linear;
}

@keyframes loading-spinner-animation {
    to {
        transform: rotate(1turn);
    }
}

.faq > div + div {
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid #d0d0d0;
}

.custom-dialog {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    visibility: hidden;
    opacity: 0;
    transition: 0.25s ease;
}

.custom-dialog[aria-hidden="false"] {
    visibility: visible;
    opacity: 1;
}

.custom-dialog > div {
    background: #fff;
    padding: 40px;
    max-width: 800px;
    width: 100%; 
}

.custom-dialog .actions {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px;
}

.custom-dialog .suggested-products {
    margin: 0 0 40px 0;
}

.custom-dialog .product-tiles {
    --columns: 3;
}

.custom-dialog .product-tiles h3 {
    margin-bottom: 20px;
}

ul.social {
    margin: 0;
    padding: 0;
    list-style-type: none;
    display: flex;
    gap: 0 20px;
}

ul.social li {
    display: flex;
}

ul.social a {
    position: relative;
}

ul.social svg {
    display: block;
}

ul.social a:after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: transparent;
    position: absolute;
    bottom: -7px;
    transition: 0.25s ease;
}

ul.social a:focus:after,
ul.social a:hover:after {
    background: #fff;
}

.quick-shop-block {
    padding: 40px;
    background: #414345;
    font-size: 16px;
    color: #fff;
}

.quick-shop-block h2 {
    margin: 0 0 5px 0;
    font-size: 38px;
    color: #fff;
}

.quick-shop-block [type="text"] {
    display: block;
    width: 100%;
    border: none;
}

.quick-shop-block .error {
    display: none;
    font-size: 14px;
    line-height: 1.4em;
}

.highlights-banner {
    background: var(--color-accent);
    overflow: hidden;
}

.highlights-banner > div {
    max-width: 1320px;
}

.highlights-banner ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    color: #fff;
}

.highlights-banner li {
    width: 33.3333%;
    padding: 40px 40px;
    display: flex;
    align-items: center;
    gap: 0 20px;
    position: relative;
    z-index: 0;
}

.highlights-banner li:before {
    content: "";
    display: block;
    position: absolute;
    top: -3px;
    left: -1px;
    right: -1px;
    bottom: -3px;
    background: #282b2e;
    transform: skew(-26deg);
    z-index: -1;
}

.highlights-banner li:nth-child(2):before {
    background: linear-gradient(to bottom, rgba(66,68,70,1) 0%, rgba(40,43,46,1) 100%);
}

.highlights-banner li:nth-child(3):before {
    background: #424446;
}

.highlights-banner svg {
    width: 55px;
    height: auto;
    flex-shrink: 0;
}

.mfp-container {
    padding: 20px;
}

.dialog {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
    background: #fff;
}

.dialog .header {
    background: var(--color-accent);
    color: #fff;
    padding: 20px 40px;
    position: relative;
}

.dialog .header h2 {
    font-size: 38px;
    line-height: 1em;
    margin: 0;
}

.dialog .header .close {
    position: absolute;
    top: 10px;
    right: 20px;
    font-weight: 600;
    font-size: 14px;
    line-height: 20px;
    color: #fff;
    text-transform: uppercase;
    display: flex;
    gap: 0 10px;
    width: auto;
    height: auto;
    opacity: 1;
    border: solid 1px transparent;
    padding: 2px;
}

.dialog .header .close:focus,
.dialog .header .close:hover {
    border-color: #fff;
}

.dialog .header .close span:last-child {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
}

.dialog .body {
    padding: 40px;
}

.custom-select {
    border: solid 1px #ededee;
    border-radius: 5px;
    overflow: hidden;
    position: relative;
    z-index: 0;
}

.custom-select:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 40px;
    background: #dbdcdd;
    z-index: -1;
}

.custom-select:after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 4px);
    right: 12px;
    border: solid 8px transparent;
    border-top-color: #282b2e;
    z-index: -1;
}

.custom-select select {
    appearance: none;
    display: block;
    width: 100%;
    padding: 10px 40px 10px 20px;
    border: none;
    background: transparent;
    font-size: 16px;
    line-height: 20px;
    font-family: var(--font-text);
    color: #282b2e;
}

.custom-select:focus-within {
    border-color: blue;
}

.mower-lookup-form label {
    font-weight: bold;
    display: block;
}

.mower-lookup-form .fields {
    --columns: 2;
    --gap: 50px;
    display: flex;
    flex-wrap: wrap;
    gap: 20px var(--gap);
}

.mower-lookup-form .fields > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.mower-lookup-form .submit-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    margin: 40px 0 0 0;
    font-style: italic;
}

.mower-lookup-form .hide {
    display: none;
}

.mower-lookup-form [type="text"] {
    width: 100%;
    display: block;
}

table.generic {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
}

table.generic th {
    background: #ddd;
    border: solid 1px #ddd;
    padding: 10px;
}

table.generic td {
    padding: 10px;
    border: solid 1px #ddd;
}

.video-with-play-icon {
    display: block;
    position: relative;
}

.video-with-play-icon:before {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 37px);
    left: calc(50% - 37px);
    width: 74px;
    aspect-ratio: 1 / 1;
    background: url(images/play.png) no-repeat center center;
}

.video-with-play-icon img {
    display: block;
}

.two-cols {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 80px;
    align-items: center;
}

.two-cols > div {
    width: calc(50% - 40px);
}

.two-cols.reverse {
    flex-direction: row-reverse;
}

.two-cols img {
    display: block;
    width: 100%;
}

.page-intro-banner {
    background: #000 url(images/bg-about.jpg) no-repeat center center;
    background-size: cover;
    color: #fff;
    position: relative;
    overflow: hidden;
}

.page-intro-banner > div {
    padding-top: 80px;
    padding-bottom: 80px;
}

.page-intro-banner.short > div {
    padding-top: 60px;
    padding-bottom: 60px;
}

.page-intro-banner:before {
	content: "";
	position: absolute;
	top: 0;
	left: calc(50% + 400px);
	right: 0;
	bottom: 0;
	background: var(--color-accent);
	transform: skewX(-26deg);
	transform-origin: left bottom;
	z-index: 0;
}

.page-intro-banner .content {
    max-width: 950px;
}

.page-intro-banner.no-image {
    background-image: none;
}

.about-page-intro-banner {
    background-image: url(images/bg-about-2.webp);
}

/**
 * Home
 */
.hero-banner {
    font-size: 24px;
    line-height: 1.5em;
    color: #fff;
    position: relative;
    overflow: hidden;
}

.hero-banner:before {
    content: "";
    position: absolute;
    top: 0;
    left: calc(50% + 300px);
    right: 0;
    bottom: 0;
    background: var(--color-accent);
    transform: skewX(-26deg);
    transform-origin: left bottom;
    z-index: 1;
}

.hero-banner:after {
    content: "";
    position: absolute;
    top: 0;
    left: calc(50% + 300px);
    right: 0;
    bottom: 0;
    background: linear-gradient(to right, rgba(0,0,0,0) 0%,rgba(0,0,0,0.5) 100%);
    transform: skewX(-26deg);
    transform-origin: left bottom;
    z-index: 1;
}

.hero-banner .background {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: calc(50% + 600px);
    background: url(images/bg-hero.webp) no-repeat center center;
    background-size: cover;
}

.hero-banner h1 sup {
    font-size: 21px;
}

.hero-banner .content {
    display: flex;
    align-items: center;
    position: relative;
    z-index: 2;
    flex-wrap: wrap;
}

.hero-banner .left {
    width: 55%;
    display: flex;
    align-items: center;
    min-height: 550px;    
    padding: 60px 0 60px 180px;
}

.hero-banner .left p {
    max-width: 550px;   
}

.hero-banner .right {
    position: relative;
    width: 45%;
}

.hero-banner .right img {
    display: block;
    margin-top: 30px;
}

.new-banner {
    background: #000;
    position: relative;
    overflow: hidden;
}

.new-banner:before {
    content: "";
    position: absolute;
    top: -5px;
    left: calc(50% - 380px);
    right: 0;
    bottom: -5px;
    background: #ebeff1;
    transform: skewX(-26deg);
    transform-origin: left bottom;
}

.new-banner > div {
    padding-top: 40px;
    padding-bottom: 40px;
}

.new-banner h2 {
    font-size: 20px;
    line-height: 1em;
    margin: 0 0 5px 0;
    color: var(--color-accent)
}

.new-banner h3 {
    font-size: 38px;
    line-height: 1em;
    margin: 0 0 5px 0;
}

.new-banner .content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.new-banner .left {
    width: 37%;
}

.new-banner .right {
    width: 63%;
    padding: 0 0 0 40px;
}

.new-banner .actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: -20px;
    gap: 20px 40px;
}

.new-banner .actions img {
    max-width: 200px;
    mix-blend-mode: multiply;
}

.lookup-banner {
    background: #000;
    position: relative;
    overflow: hidden;
    color: #fff;
}

.lookup-banner:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 250px;
    background: url(images/bg-field.webp) no-repeat center bottom;
    background-size: cover;
}

.lookup-banner:after {
    content: "";
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    height: 60px;
    background: linear-gradient(to top, rgba(0,0,0,0) 0%,rgba(0,0,0,1) 100%);
    opacity: 0.6;
}

.lookup-banner > div {
    padding-top: 60px;
    padding-bottom: 70px;
}

.lookup-banner .content {
    display: flex;
    flex-wrap: wrap;
}

.lookup-banner .left {
    width: 70%;
    padding: 0 60px 0 0;
}

.lookup-banner .left h2 {
    font-size: 38px;
    line-height: 1em;
    color: #000;
    margin: 0 0 20px 0;
}

.lookup-banner .right {
    width: 30%;
}

.products-banner {
    background: #000;
    color: #fff;
}

.products-banner > div {
    padding-top: 60px;
    padding-bottom: 140px;
}

.products-banner h2 {
    font-size: 20px;
    line-height: 1em;
    margin: 0 0 5px 0;
    color: #ED1C24;
    text-align: center;
}

.products-banner h3 {
    font-size: 70px;
    line-height: 1em;
    margin: 0 0 50px 0;
    color: #fff;
    text-align: center;
}

.products {
    --columns: 3;
    --gap: 50px;
    display: flex;
    flex-wrap: wrap;
    gap: 60px var(--gap);
    text-align: center;
}

.products > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
    display: flex;
    flex-direction: column;
}

.products h4 {
    font-size: 38px;
    line-height: 1em;
    margin: 0 0 5px 0;
}

.products p:not(.photo) {
    max-width: 280px;
    margin-left: auto;
    margin-right: auto;
}

.products p:last-child {
    margin-top: auto;
}

.dealer-locator-banner {
    background: linear-gradient(to bottom,  rgba(66,68,70,1) 0%,rgba(40,43,46,1) 100%);
    color: #fff;
}

.dealer-locator-banner > div {
    padding-top: 1px;
    padding-bottom: 60px;
}

.dealer-locator-banner .header {
    text-align: center;
    margin: -44px 0 20px 0;
}

.dealer-locator-banner h2 {
    display: inline-block;
    padding: 22px 20px 20px 20px;
    position: relative;
    z-index: 0;
    margin: 0;
    font-size: 38px;
    line-height: 1em;
    text-align: center;
    width: 100%;
    max-width: 460px;
}

.dealer-locator-banner h2:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--color-accent);
    transform: skewX(-26deg);
    z-index: -1;
}

.dealer-locator-banner .content {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 40px 100px;
}

.dealer-locator-banner form {
    display: flex;  
    gap: 10px 20px;
}

.dealer-locator-banner [type="text"] {
    display: block;
    width: 100%;
    border: none;
    border-radius: 50px;
    padding: 10px 30px;
}

.dealer-locator-banner .btn {
    white-space: nowrap;
}

.instagram-banner {
    background: url(images/bg-grass.webp) no-repeat center center;
    background-size: cover;
    position: relative;
    overflow: hidden;
}

.instagram-banner:after {
    content: "";
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    height: 60px;
    background: linear-gradient(to top, rgba(0,0,0,0) 0%,rgba(0,0,0,1) 100%);
    opacity: 0.6;
}

.instagram-banner > div {
    padding-top: 30px;
    padding-bottom: 100px;
}

.instagram-banner .header {
    text-align: center;
    margin: 0 0 30px 0;
}

.instagram-banner .header h2 {
    margin: 0 0 5px 0;
}

.instagram-banner .header .icon {
    margin: 0 0 10px 0;
}

.instagram-banner .header .icon svg {
    display: block;
    margin: 0 auto;
}

.instagram-banner .header a {
    color: #000;
    text-decoration: none;
}

.instagram-banner .header a:focus,
.instagram-banner .header a:hover {
    text-decoration: underline;
}

.instagram-banner .feed {
    background: #fff;
    box-shadow: 0 0 50px rgba(0,0,0,0.4);
    padding: 40px 40px 0 40px;
}

#main #sb_instagram #sbi_images {
    padding: 0;
}

.brands-banner {
    background: #ebeff1;
}

.brands-banner > div {
    padding-top: 50px;
    padding-bottom: 50px;
}

.brands-banner h2 {
    margin: 0 0 40px 0;
    text-align: center;
}

ul.brands {
    margin: 0 auto;
    padding: 0;
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
    max-width: 1050px;
}

ul.brands li:last-child img {
    mix-blend-mode: multiply;
}

/**
 * Product pages
 */
.product-intro-banner {
    background: #000 url(images/bg-grass-catchers-2.jpg) no-repeat center center;
    background-size: cover;
    color: #fff;
    position: relative;
    overflow: hidden;
}

.product-intro-banner > div {
    padding-top: 80px;
    padding-bottom: 80px;
    z-index: 1;
}

.product-intro-banner:after {
	content: "";
	position: absolute;
	top: 0;
	left: calc(50% + 300px);
	right: 0;
	bottom: 0;
	background: var(--color-accent);
	transform: skewX(-26deg);
	transform-origin: left bottom;
	z-index: 0;
}

.product-intro-banner:before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #000;
    opacity: 0.5;
    z-index: 0;
}

.product-intro-banner .content {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: space-between;
    position: relative;
}

.product-intro-banner .content .left {
    width: 70%;
    padding: 0 60px 0 0;
    max-width: 660px;
}

.product-intro-banner .content .right {
    width: 30%;;
}

.section-intro {
    background: #000;
    color: #fff;
}

.section-intro h2 {
    margin: 0;
}

.section-intro h2 span {
    display: inline-block;
    position: relative;
    padding: 20px 0;
    z-index: 1;
}

.section-intro h2 span:before {
	content: "";
	position: absolute;
	top: 0;
	right: -80px;
	bottom: 0;
    width: 10000px;
	background: var(--color-accent);
	transform: skewX(-26deg);
	transform-origin: left bottom;
	z-index: -1;
}

.product-details {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 80px;
    line-height: 1.57em;
}

.product-details > div {
    width: calc(50% - 40px);
}

.product-details .price {
    font-size: 26px;
    font-weight: bold;
    margin: 0;
}

.product-gallery img {
    display: block;
    width: 100%;
}

.product-gallery .slick-arrow {
    position: absolute;
    top: calc(50% - 20px);
    left: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    z-index: 1;
}

.product-gallery .slick-arrow.slick-next {
    left: auto;
    right: 0;
}

.product-gallery .slick-arrow svg {
    width: 13px;
    height: auto;
}

.product-gallery .slick-arrow path {
    fill: #fff;
}

.product-gallery .thumbs {
    --columns: 5;
    --gap: 5px;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
}

.product-gallery .thumbs > button {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.product-gallery .thumbs button {
    border: solid 1px transparent;
}

.product-gallery .thumbs button.active {
    border-color: #ED1C24;
}

.size-compare-photos {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    align-items: stretch;
    margin: 40px 0 0 0;
}

.size-compare-photos > div:first-child {
    width: calc(65% - 20px);
}

.size-compare-photos > div:last-child {
    width: calc(35% - 20px);
}

.size-compare-photos img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

table.specs {
    width: 100%;
    border-collapse: collapse;
    margin: 30px 0;
    border: solid 1px #707070;
    font-size: 16px;
}

table.specs th {
    text-align: left;
}

table.specs th,
table.specs td {
    padding: 15px;
    border: solid 1px #707070;
}

table.list {
    width: 100%;
    border-collapse: collapse;
    margin: 30px 0;
    font-size: 16px;
}

table.list th,
table.list td {
    padding: 20px;
    border-bottom: solid 1px #707070;
}

table.list th:first-child,
table.list td:first-child {
    padding-left: 0;
}

table.list th:last-child,
table.list td:last-child {
    padding-right: 0;
}

table.list th {
    text-align: left;
    font-size: 19px;
    vertical-align: bottom;
}

table.list .label {
    display: none;
}

table.sizes td:first-child {
    text-transform: uppercase;
}

table.sizes td:last-child {
    text-align: right;
}

.fine-print {
    font-size: 14px;
    line-height: 1.4em;
    font-style: italic;
}

.install-callout {
    display: flex;
    gap: 40px 80px;
    justify-content: space-between;
    align-items: center;
}

.install-callout .left {
    max-width: 660px;
    width: 60%;
}

.install-callout .right {
    width: 30%;
}

.product-tiles {
    --columns: 4;
    --gap: 15px;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
    font-size: 14px;
    line-height: 1.4em;
    color: #000;
}

.product-tiles > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
    background: #fff;
    border: solid 1px #D0D0D0;
    padding: 20px;
    position: relative;
    display: flex;
    flex-direction: column;
}

.product-tiles > div:hover .overlay,
.product-tiles > div:focus-within .overlay {
    opacity: 1;
}

.product-tiles h3 {
    margin: 0 0 5px 0;
    font-size: 19px;
    line-height: 1em;
    text-transform: none;
    font-family: var(--font-text);
}

.product-tiles .photo {
    margin: 0 0 20px 0;
    background: #ddd;
    aspect-ratio: 1 / .75;
}

.product-tiles .photo img {
    display: block;
    aspect-ratio: 1 / .75;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.product-tiles .photo.no-crop img {
    object-fit: contain;
}

.product-tiles .overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255,255,255,0.6);
    opacity: 0;
    transition: 0.25s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

.product-tiles .price {
    color: #B31B20;
    margin: 0;
    font-size: 19px;
}

.product-tiles .overlay .btn {
    width: 80%;    
}

.product-tiles .footer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    justify-content: space-between;
    align-items: center;
    margin: auto 0 0 0;
}

.product-tiles .featured {
    width: 100%;
    display: flex;
    padding: 35px;
    gap: 20px 50px;
    align-items: center;
    flex-direction: row;
}

.product-tiles .featured > div {
    width: calc(50% - 25px);
}

.product-tiles .featured h3 {
    font-size: 30px;
    margin: 0 0 20px 0;
}

.product-tiles .featured img {
    aspect-ratio: 3 / 2;
}

.product-tiles .featured .price {
    font-size: 26px;
}

.product-tiles .featured .footer {
    margin: 20px 0 0 0;
}

.product-tiles.no-borders > div {
    border: none;
}

.product-tiles .callout {
    padding: 0 30px 20px 30px;
    background: #000;
    color: #fff;
    font-size: 16px;
    line-height: 1.5em;
}

.product-tiles .callout h3 {
    text-transform: uppercase;
    font-size: 26px;
    line-height: 1.2em;
}

.product-tiles .callout .icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    font-size: 16px;
    background: var(--color-accent);
    margin: 0 0 30px 0;
}

.product-tiles .photo-tile {
    padding: 0;
    border: none;
    width: calc(50% - var(--gap) / 2);
}

.product-tiles .photo-tile img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.stock-status.in-stock {
    color: #3c8542;
}

.stock-status.out-of-stock {
    color: var(--color-accent);
}

.eyebrow {
    margin: 0 0 15px 0;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 19px;
    color: var(--color-accent);
}

.quantity-field {
    display: flex;
    border: solid 1px #D0D0D0;
    border-radius: 5px;
}

/* Chrome, Safari, Edge, Opera */
.quantity-field input::-webkit-outer-spin-button,
.quantity-field input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.quantity-field button {
    width: 40px;
    text-align: center;
}

.quantity-field input[type=number] {    
    -moz-appearance: textfield; /* Firefox */
    border: none;
    border-radius: 0;
    width: 60px;
    text-align: center;
    font-weight: bold;
    border-left: solid 1px #D0D0D0;
    border-right: solid 1px #D0D0D0;
}

.add-to-cart.with-quantity {
    display: flex;
    gap: 0 15px;
}

.add-to-cart.with-quantity .btn {
    border-radius: 0;
}

/**
 * Installation
 */
.install-tiles {
    --columns: 3;
    --gap: 40px;

    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
    font-size: 16px;
    color: #fff;
}

.install-tiles > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
    background: #000;
}

.install-tiles h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
}

.install-tiles h3 a {
    color: #fff;
    text-decoration: none;
}

.install-tiles h3 a:focus,
.install-tiles h3 a:hover {
    text-decoration: underline;
}

.install-tiles .photo img {
    width: 100%;
    height: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    display: block;
}

.install-tiles .content {
    padding: 30px;
}

.install-detail {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 60px 0;
    padding: 0 0 60px 0;
    border-bottom: solid 1px #707070;
    gap: 40px 0;
}

.install-detail > .left {
    width: 30%;
}

.install-detail > .right {
    width: 70%;
    padding: 0 0 0 60px;
}

.install-detail .variation + .variation {
    margin-top: 60px;
}

.install-detail .steps {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

.install-detail .steps .photo {
    width: 33%;
}

.install-detail .steps > li {
    display: flex;
    flex-wrap: wrap;
}

.install-detail .steps > li + li {
    margin-top: 30px;
}

.install-detail .steps h3 {
    font-size: 24px;
    margin: 0 0 5px 0;
}

.install-detail .steps .photo img {
    display: block;
    width: 100%;
}

.install-detail .steps .instructions {
    width: 67%;
    padding: 0 0 0 40px;
}

.install-warnings-callout {
    font-size: 16px;
}

.install-warnings-callout h2 {
    font-size: 24px;
    margin: 0 0 5px 0;
}

.tools-needed {
    background: #fff;
    border: solid 1px #D0D0D0;
    padding: 30px;
    font-size: 16px;
}

.tools-needed h2 {
    background: #000;
    margin: -31px -31px 20px -31px;
    color: #fff;
    font-size: 24px;
    padding: 22px 20px 22px 110px;
    position: relative;
    overflow: hidden;
    z-index: 0;
}

.tools-needed h2:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: -50px;
    width: 110px;
    height: 100%;
    transform: skewX(-26deg);
    transform-origin: right bottom;
    background: var(--color-accent);
    z-index: -1;
}

.tools-needed h2:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 70px;
    height: 100%;
    background: url(images/icon-tools.svg) no-repeat center center;
    background-size: 40px auto;
}

.tools-needed ul {
    margin: 0;
    padding: 0 0 0 20px;
}

.tools-needed ul li + li {
    margin-top: 10px;
}

.install-videos > div {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 80px;
    align-items: center;
}

.install-videos > div > div {
    width: calc(50% - 40px);
}

.install-videos .thumb img {
    width: 100%;
    display: block;
}

/**
 * Dealers
 */
.dealers {
    color: #fff;
}

.dealers > div {
    padding: 30px;
    background-color: #000;
}

.dealers > div + div {
    margin-top: 40px;
}

.dealers p {
    margin: 0;
}

.dealers h3 {
    margin: 0;
}

.dealers a {
    color: #fff;
}

.dealers a:focus,
.dealers a:hover {
    text-decoration: none;
}

.dealers .link-button {
    color: #ED1C24;
}

#dealer-feedback-form-dialog legend,
#dealer-feedback-form-dialog .gfield--type-textarea .gfield_label {
    font-family: var(--font-text);
}

#dealer-feedback-form-dialog .gfield_radio {
    display: flex;
    gap: 20px;
}

#dealer-feedback-form-dialog .gform_footer {
    margin: 10px 0 0 0;
    padding: 0;
}

#dealer-feedback-form-dialog .gform_button {
    margin: 0;
}

.search-bar > div {
    padding-top: 20px;
    padding-bottom: 20px;
}

.search-bar h2 {
    margin: 0;
    font-size: 24px;
}

.search-bar form {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
}

.search-bar .fields {
    display: flex;
    gap: 10px 30px;
    align-items: center;
}

.search-bar .input {
    display: flex;
    gap: 0 10px;
    background: #fff;
    padding: 10px;
    align-items: center;
}

.search-bar .input input {
    width: 100%;
    border: none;
    padding: 0;
}

.search-bar .btn {
    white-space: nowrap;
}

/**
 * Cart/Checkout
 */
.cart {
    margin-top: 0;
}

.cart td.remove {
    text-align: right;
}

.cart-line-items {
    text-align: right;
}

.cart-line-items > div + div {
    margin-top: 20px;
}

.cart .remove-mobile,
.cart .quantity-mobile {
    display: none;
}

.checkout {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 80px;
}

.checkout > .left {
    width: calc(75% - 80px);
}

.checkout > .right {
    width: calc(25%);
}

.checkout .row {
    --columns: 2;
    --gap: 20px;

    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
}

.checkout .row + .row {
    margin-top: 20px;
}

.checkout .row.x3 {
    --columns: 3;
}

.checkout .col {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.checkout .label {
    display: block;
    font-size: 16px;
}

.checkout input[type="text"],
.checkout input[type="email"],
.checkout input[type="tel"],
.checkout input[type="password"]
.checkout textarea {
    border: solid 1px #D0D0D0;
    width: 100%;
}

.checkout fieldset {
    border: none;
    padding: 0;
    margin: 0 0 40px 0;
}

.checkout button[type="submit"] {
    width: 100%;
    justify-content: center;
}

.checkout .custom-select {
    border-color: #D0D0D0;
}

.checkout .ak-hi-note {
    font-size: 14px;
    margin-top: 40px;
}

.checkout .payment-profiles {
    margin: 0 0 20px 0;
    padding: 0;
    list-style-type: none;
}

.order-summary .items > div {
    display: flex;
    justify-content: space-between;
    gap: 0 20px;
    border-bottom: solid 1px #707070;
    padding: 10px 0;
}

.order-summary .line-items > div {
    text-align: right;
    margin-top: 10px;
}

.messages {
    border: solid 1px var(--color-accent);
    padding: 20px;
    margin: 20px 0 40px 0;
    border-radius: 10px;
}

.messages ul {
    margin: 0;
}

/**
 * Account/Dealer Portal
 */
.account-form {
    font-size: 16px;
}

.account-form .label {
    display: block;
}

.account-form input[type="text"],
.account-form input[type="email"],
.account-form input[type="tel"],
.account-form input[type="password"],
.account-form input[type="number"],
.account-form input[type="url"],
.account-form textarea {
    border: solid 1px #D0D0D0;
    width: 100%;
}

.account-form.medium-width {
    max-width: 600px;
}

.account-form .row {
    --columns: 2;
    --gap: 20px;

    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
}

.account-form .row + .row {
    margin-top: 20px;
}

.account-form .row.x1 {
    --columns: 1;
}

.account-form .row.x3 {
    --columns: 3;
}

.account-form .col {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.account-form .note {
    font-size: 14px;
    line-height: 1.4em;
    margin-top: 5px;
}

.account-form .note.error {
    color: var(--color-accent);
}

.account-form .custom-select {
	border-color: #D0D0D0;
}

.account-form input[disabled] {
    background: #e5e5e5;
}

.account-form .field-with-button {
    display: flex;
    gap: 20px;
    align-items: center;
}

.expiration-date {
    display: flex;
    gap: 0 10px;

}
.info-cards {
    --columns: 3;
    --gap: 30px;

    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
    margin: 0 0 60px 0;
}

.info-cards > .info-card {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.info-card {
    font-size: 16px;
    padding: 20px;
    border: solid 2px var(--color-accent);
    border-radius: 10px;  
    display: flex;
    flex-direction: column;  
}

.info-card h2 {
    font-size: 20px;
    margin: 0 0 10px 0;
}

.info-card .actions {
    margin-top: auto;
}

.dealer-order-form {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: center;
    margin: 0 0 40px 0;
}

.dealer-order-form .field {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dealer-order-form input[type="text"],
.dealer-order-form input[type="number"] {
    border-color: #D0D0D0;
}

.dealer-order-form input[type="text"] {
    max-width: 150px;
}

/**
 * Forms
 */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="number"],
input[type="url"],
input[type="date"],
input[type="datetime-local"],
input[type="color"],
select,
textarea,
#main .generic-form input[type="text"],
#main .generic-form input[type="email"],
#main .generic-form input[type="tel"],
#main .generic-form input[type="password"],
#main .generic-form input[type="number"],
#main .generic-form input[type="url"],
#main .generic-form input[type="date"],
#main .generic-form input[type="datetime-local"],
#main .generic-form input[type="color"],
#main .generic-form select,
#main .generic-form textarea {
    border: solid 1px #f1f1f1;
    padding: 10px;
    font-size: 16px;
    line-height: 20px;
    font-family: var(--font-text);
    border-radius: 5px;
}

input[type="submit"] {
    cursor: pointer; 
    border-radius: 0;
}

button {
    -webkit-appearance: none; 
    -webkit-border-radius: none;
    appearance: none;
    border-radius: none;
    cursor: pointer;
}

.gform_wrapper.gravity-theme .gfield_label {
    font-size: inherit;
    text-transform: none;
}

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

    #header .lower nav {
        right: 280px
    }

    #header .lower nav > ul {
        gap: 0 30px;
    }

    #header .lower nav li.home {
        display: none;
    }

}

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

    body {
        padding-top: 100px;
    }
    
    #header .upper > div {
        padding-left: 20px;
        padding-right: 20px;
    }

    #header .lower > div {
        height: 60px;
        padding: 0 20px;
    }
    
    #header .lower .logo {
        top: 7px;
        width: 180px;
    }
    
    #header .lower nav {
        display: none;
    }
    
    #header .lower .phone {
        top: 7px;
        right: 80px;
    }

    #header .lower .toggle-menu {
        display: block;
    }

    body.show-menu {
        overflow: hidden;
    }

    body.show-menu #mobile-menu {
        visibility: visible;
        opacity: 1;
    }

    .hero-banner .left {
        padding-left: 0;
    }

    .search-bar form {
        flex-wrap: wrap;
    }

    .product-tiles {
        --columns: 3;
    }

    .install-tiles {
        --columns: 2;
    }

}

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

    #footer .upper .info {
        width: 100%;
        margin: 0 0 40px 0;
    }

    #footer .upper nav {
        width: 100%;
    }

    .hero-banner:before {
        left: 50%;
    }

    .hero-banner .left {
        width: 100%;
        padding: 60px 0;
        min-height: 1px;
    }

    .hero-banner .right {
        width: 100%;
        padding: 0;
    }

    .new-banner {
        background: #ebeff1;
    }

    .new-banner .left {
        width: 100%;
    }

    .new-banner .right {
        width: 100%;
        padding: 0;
    }

    .new-banner .actions {
        margin-top: 0;
    }

    .lookup-banner .left {
        width: 100%;
        padding: 0;
        margin: 0 0 40px 0;
    }

    .lookup-banner .right {
        width: 100%;
    }

    .highlights-banner li {
        width: 100%;
    }

    .highlights-banner li:before {
        top: 0;
        bottom: 0;
    }

    .products {
        --columns: 2;
    }

    .dealer-locator-banner .content {
        flex-direction: column;
        align-items: center;
    }

    ul.brands {
        justify-content: center;
    }

    .install-callout {
        flex-wrap: wrap;
    }

    .install-callout .left {
        max-width: 100%;
        width: 100%;
    }

    .install-callout .right {
        width: 100%;
        order: -1;
    }

    .two-cols {
        flex-direction: column;
    }

    .two-cols > div {
        width: 100%;
    }

    .product-intro-banner .content .left {
        width: 100%;
        padding: 0;
        margin: 0 0 40px 0;
    }

    .product-intro-banner .content .right {
        width: 100%;
    }

    .product-details {
        flex-direction: column-reverse;
    }

    .product-details .details {
        width: 100%;
    }

    .product-details .photos {
        width: 100%;
    }

    table.list th,
    table.list td {
        padding: 10px;
    }

    .info-cards {
        --columns: 2;
    }

}

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

    body {
        padding-top: 60px;
    }

    #header .upper {
        display: none;
    }

    #header .lower .phone {
        display: none;
    }

    body.scrolled #header {
        top: 0;
    }
        
    #footer .upper nav > div:first-child {
        width: 100%;
        margin: 0 0 40px 0;
    }

    #footer .upper nav > div:last-child {
        width: 100%;
    }

    #footer .lower ul {
        display: flex;
        margin: 10px 0 0 0;
    }

    table.list .label {
        display: inline;
    }

    table.sizes thead {
        display: none;
    }

    table.sizes td {
        display: block;
        width: 100%;
        padding: 0;
        border: none;
    }

    table.sizes td:first-child {
        text-transform: none;
        padding-top: 20px;
    }

    table.sizes td:last-child {
        text-align: left;
        border-bottom: solid 1px #707070;
        padding-bottom: 20px;
    }

    .checkout > .left {
        width: 100%;
    }

    .checkout > .right {
        display: none;
    }

    .install-detail > .left,
    .install-detail > .right {
        width: 100%;
        padding: 0;
    }

    .install-videos > div > div {
        width: 100%;
    }

    .product-tiles .featured {
        flex-wrap: wrap;
    }

    .product-tiles .featured > div {
        width: 100%;
    }

    .product-tiles {
        --columns: 2;
    }

    .install-tiles {
        --columns: 1;
    }

    .size-compare-photos > div:first-child,
    .size-compare-photos > div:last-child {
        width: 100%;
    }

    .info-cards {
        --columns: 1;
    }    

}

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

    .products {
        --columns: 1;
    }

    .hero-banner h1,
    .products-banner h3 {
        font-size: 50px;
    }

    .dealer-locator-banner form {
        flex-wrap: wrap;
    }

    .dealer-locator-banner .btn {
        width: 100%;
        white-space: normal;
    }

    .highlights-banner > div {
        padding: 0;
        text-align: center;
    }

    .highlights-banner li {
        flex-direction: column;
        gap: 20px 0;
    }

    .highlights-banner li:before {
        transform: none;
    }

    .search-bar .fields {
        flex-wrap: wrap;
    }

    .search-bar .input,
    .search-bar .btn {
        width: 100%;
    }

    .mower-lookup-form .fields {
        --columns: 1;
    }

    .mower-lookup-form .submit-row {
        flex-direction: column;
    }    

    .checkout .row,
    .checkout .row.x3 {
        --columns: 1;
    }

    .cart .total {
        text-align: right;
    }

    .cart .remove,
    .cart .quantity {
        display: none;
    }

    .cart .quantity-mobile {
        display: inline;
    }

    .cart .remove-mobile {
        display: block;
    }

    .product-tiles {
        --columns: 1;
    }

    .dialog .header {
        padding-top: 40px;
    }
    
}

@media only screen and (max-width: 550px) {
}

@media only screen and (max-width: 500px) {
}

@media only screen and (max-width: 450px) {
}

@media only screen and (max-width: 400px) {
}

@media only screen and (max-width: 350px) {
}

@media only screen and (max-width: 300px) {
}
 