:root {
  --mobile_nav_button_color: #1A1C24;
  --mobile_nav_active_button_color: #fff;
  --mobile_nav_background: #1A1C24;
  --mobile_nav_item_color: #fff;
  --mobile_nav_dropdown_background: #fff;
  --mobile_nav_dropdown_item_color: #000;

  --desktop_nav_dropdown_background: #fff;

  --OX-Green: #53EB7C;
  --OX-Dark-Blue: #1A1C24;
  --OX-Tea-Green: #C3DBC5;
  --OX-Off-White: #FCFCFC;
  --OX-Alabaster-Grey: #E5E6E4;
  --OX-Grapefruit-Pink: #FE8583;

  --DMSans: "DM Sans", sans-serif, system-ui,-apple-system;
  --Lato: "Lato", sans-serif, system-ui,-apple-system;
  --gf-color-danger: #ffe47c !important;
}

.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl, .row {
  --bs-gutter-x: 1.666667rem;
}

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html, body {
  color: #19234A;
  font-family: var(--DMSans);
  font-size: 18px;
}

@media (min-width: 768px) {
  :root {
    font-size: calc(1rem + ((1vw - .48rem) * 1.389));
  }

  html, body {
    font-size: 16px;
  }
	
  .container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl, .row {
  	--bs-gutter-x: 1.174518rem;
  }
}

.container {
  max-width: 46.980707rem;
  width: 100%;
}

/* Typewriter hero — JS reveals chars one at a time; cursor blinks while typing. */
.ox_hero_typewriter {
  display: inline-block;
}

.ox_hero_typewriter::after {
  content: '|';
  display: inline-block;
  margin-left: 0.05em;
  font-weight: 300;
  animation: ox_typewriter_caret 0.9s step-end infinite;
}

.ox_hero_typewriter.is-done::after {
  animation: none;
  opacity: 0;
}

@keyframes ox_typewriter_caret {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}

@keyframes fadeInNav {
	0% {
		transform: translate(-50%, 20%) scale(0.9);
		opacity: 0;
	}
	100% {
		transform: translate(-50%, 0) scale(1);
		opacity: 1;
	}
}

.ox_main_menu li.menu-item-has-children:hover .sub-menu {
	-webkit-animation: fadeInNav 0.25s cubic-bezier(0.3, 0.76, 0.47, 1.15);
	animation: fadeInNav 0.25s cubic-bezier(0.3, 0.76, 0.47, 1.15);
	-webkit-animation-fill-mode: both;
	animation-fill-mode: both;
	display: flex;
	margin-top: 0;
	opacity: 1;
	visibility: visible;
}

.sub-menu {
	visibility: hidden;
}

.sub-menu {
	width: auto;
	height: auto;
	min-width: 10.962165rem;
	padding-top: 0.548108rem;
	padding-bottom: 0.548108rem;
	padding-inline: 0.315831rem;
	border-radius: 2px;
	background-color: var(--desktop_nav_dropdown_background, #fff);
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	box-shadow: 0 1px 1px 2px rgba(0, 0, 0, .08), 0 2px 2px rgba(0, 0, 0, .12), 0 4px 4px rgba(0, 0, 0, .12), 0 6px 6px rgba(0, 0, 0, .12), 0 10px 10px rgba(0, 0, 0, .08);
	z-index: 1000;
	flex-direction: column;
	flex-wrap: wrap;
	opacity: 0;
	list-style: none;
}

ul.sub-menu li a {
	display: block;
}
