/*
Theme Name: March Clean 2026
Text Domain: marchclean
Version: 2.1
Requires at least: 4.7
Requires PHP: 5.2.4
Description: A bare bones clean theme for use on Elementor websites.
Author: March (March Branding Ltd)
Author URI: https://marchbranding.com/
*/

/* -------------------------------------------------------------------------- */
/*	CSS Reset
/* -------------------------------------------------------------------------- */

:root {
	--font-primary: sans-serif;
	--font-secondary: sans-serif;
	--font-text: sans-serif;
	--font-accent: sans-serif;
	--transition-time: 0.3s;
	--z-index-high: 9999;
	--z-index-medium: 300;
	--z-index-low: 200;

}

/* RESET */
*,
*:focus {
	outline: none !important;
}

html,
body {
	border: none;
	margin: 0;
	padding: 0;
	overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
address,
big,
cite,
code,
em,
font,
img,
small,
strike,
sub,
sup,
li,
ol,
ul,
fieldset,
form,
label,
legend,
button,
table,
caption,
tr,
th,
td {
	border: none;
	font-size: inherit;
	line-height: inherit;
	margin: 0;
	padding: 0;
	text-align: inherit;
}

blockquote::before,
blockquote::after {
	content: "";
}

[type=button]:focus,
[type=button]:hover,
[type=submit]:focus,
[type=submit]:hover,
button:focus,
button:hover {
	background-color: unset;
}

p:last-child {
	margin: 0;
}

/* ELEMENTOR OVERRIDES */

.elementor-icon svg {
	height: auto;
}

.elementor-widget-text-editor p:last-child {
	margin: 0;
}

.elementor-widget-text-editor p {
	margin-bottom: 1.2em;
}

.elementor-widget-text-editor p:last-child {
	margin: 0;
}

.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol,
.field-group ul,
.field-group ol {
	padding: 0 0 0 20px;
	margin: 0 0 1.2em 0;
}

.elementor-widget-text-editor li {
	padding: 0;
	margin: 0;
	list-style-position: outside;
}

.elementor-widget-text-editor li>ol li,
.elementor-widget-text-editor li>ul li {
	margin: 10px 0 10px 20px;
}



/* CUSTOM STYLES */

/* Main Nav */
#main-nav {
  transition: transform 0.4s ease;
}

#nav-toggle {
  display: none;
  position: fixed;
  top: 24px;
  right: 24px;
  z-index: 1000;
  width: 44px;
  height: 44px;
  background: rgba(0, 0, 0, 0.35);
  border: none;
  border-radius: 50%;
  padding: 0;
  cursor: pointer;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

#nav-toggle span {
  display: block;
  position: absolute;
  left: 13px;
  width: 18px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease;
}

#nav-toggle span:nth-child(1) { top: 16px; }
#nav-toggle span:nth-child(2) { top: 21px; }
#nav-toggle span:nth-child(3) { top: 26px; }

#nav-toggle.active span:nth-child(1) {
  top: 21px;
  transform: rotate(45deg);
}

#nav-toggle.active span:nth-child(2) {
  opacity: 0;
}

#nav-toggle.active span:nth-child(3) {
  top: 21px;
  transform: rotate(-45deg);
}

@media (max-width: 1024px) {
  #nav-toggle {
    display: block;
    opacity: 0;
    transition: opacity 0.4s ease;
  }

  #nav-toggle.toggle-visible {
    opacity: 1;
  }

  #main-nav {
    transform: translateX(-100%);
  }

  #main-nav.nav-open {
    transform: translateX(0);
  }
}

/* Slides */

html {
  scroll-behavior: auto;
	scroll-snap-type: none !important;
}

.snap-section {
	min-height: 100vh;
	box-sizing: border-box;
	scroll-snap-align: none !important;
	scroll-snap-stop: normal !important;
}
.ken-burns {
  position: relative !important;
  overflow: hidden !important;
}

.kb-bg-image {
  position: absolute !important;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0 !important;
  pointer-events: none;
  overflow: hidden;
  will-change: transform;
}
.kb-bg-image::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.15);
  z-index: 1;
  pointer-events: none;
}

.kb-bg-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
}

/* Neutralise Elementor's own entrance-animation hidden state entirely within
   reveal-content sections - our own JS owns visibility here exclusively. */
.reveal-content .elementor-invisible {
  opacity: 1;
  visibility: visible;
}

/* Our own resting (hidden) state - declared after the rule above so it wins
   when both match the same element */
.reveal-content .elementor-widget-heading,
.reveal-content .elementor-widget-text-editor,
.reveal-content .elementor-widget-image:not(.kb-bg-image),
.reveal-content .elementor-widget-button {
  opacity: 0;
  transform: translateY(24px);
}

@media (max-width: 1024px) {
  .snap-section {
    min-height: auto;
  }
  .reveal-content .elementor-widget-heading,
  .reveal-content .elementor-widget-text-editor,
  .reveal-content .elementor-widget-image:not(.kb-bg-image),
  .reveal-content .elementor-widget-button {
    opacity: 1;
    transform: none;
  }
}

/* TOOLS */
.aspect-ratio-3-2 img {
	aspect-ratio: 3/2;
	object-fit: cover;
}

.aspect-ratio-2-3 img {
	aspect-ratio: 2/3;
	object-fit: cover;
}

.aspect-ratio-4-3 img {
	aspect-ratio: 4/3;
	object-fit: cover;
}

.aspect-ratio-3-4 img {
	aspect-ratio: 3/4;
	object-fit: cover;
}

.aspect-ratio-1 img {
	aspect-ratio: 1/1;
	object-fit: cover;
}

.aspect-ratio-16-9 img {
	aspect-ratio: 16/9;
	object-fit: cover;
}

/* Animation Overrides */

.animated {
	animation-duration: 0.9s !important;
}

.animated.animated-slow {
	animation-duration: 1.2s !important;
}

.animated.animated-fast {
	animation-duration: 0.6s !important;
}

@keyframes fadeInUp {

	0% {
		opacity: 0;
		transform: translate3d(0, 20%, 0);
	}

	100% {
		opacity: 1;
		transform: none;
	}
}

@keyframes rotate {
    0% {
        transform: rotate(360deg);
    }
    100% {
        transform: rotate(0deg);
    }
}


/* Gravity Forms */

/* --- Base resets --- */
input:not([type="submit"]),
textarea {
	box-shadow: none !important;
}
.gform_wrapper .gform_fields .gfield {
	margin-bottom: 16px !important;
}
.gform_wrapper .gform_fields .gfield:last-child {
	margin-bottom: 0 !important;
}
.gform_heading {
	display: none !important;
}
.gform-theme--framework .gform-field-label--type-inline {
	margin: 0 !important;
}

/* --- Labels (hidden) --- */
.gform_wrapper .gfield_label {
	display: none !important;
}
/* -- hide the honeypot --*/
.gform_wrapper .gform_validation_container {
	display: none !important;
}

.gform_wrapper .ginput_container_name {
	display: flex !important;
	gap: 16px !important;
}
.gform_wrapper .ginput_container_name > span {
	flex: 1 !important;
}


/* MEDIA QUERIES - Set to match your Elementor breakpoints*/
@media only screen and (max-width: 1365px) {

}

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

}

@media (max-width: 767px) {
.taxonomy-links li a {
    font-size: 16px;	
}
}

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

}
