/*
Theme Name: Flowio
Author: KingsDesign
Author URI: kingsdigital.com.au
Description: Flow FSE: A block-based WordPress theme designed to provide a great editing experience that minimises the visual gap between the frontend and backend. This theme also has a focus on consistent spacing & frontend performance.
Version: 0.4.2
Text Domain: flowio
*/

/*
*  CSS TABLE OF CONTENTS
*
*  1.0 - Reset
*  2.0 - Fonts if in use
*  3.0 - Custom Properties
*  4.0 - General Typography
*  5.0 - Areas
*    5.1 - Header
*    5.2 - Entry Content
*    5.3 - Page-Specific Content
* 6.0 - Utilities
* 7.0 - Buttons
* 8.0 - Gutenberg Conditionals
* 9.0 - Media
* 10.0 - Plugins
*  10.1 - WooCommerce
*/

/* -------------------------------------------------
1.0 Reset
------------------------------------------------- */
html {
  scroll-behavior: smooth;
  overflow-wrap: break-word;
}

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Add default focus style */
*:focus-visible {
  outline-color: var(--gold);
}

/* Remove default padding */
ul,
ol {
  padding: 0;
}

/* Remove default margin */
body,
h1,
h2,
p,
ul,
ol,
li,
figure,
figcaption,
blockquote,
dl,
dd {
  margin: 0;
}

h2 {
  --flow: var(--s-xs);
}

h3,
h4 {
  margin-block-end: var(--s-3xs);
}

/* Make media easier to work with */
img,
picture,
video,
canvas,
svg {
  display: block;
}

img {
  width: 100%;
  height: auto;
  /* background: var(--gold); */
  object-position: var(--focus);
  object-fit: cover;
  opacity: 0;
  overflow: hidden;
  transition: opacity 0.95s;
}

img.loaded {
  opacity: 1;
}

/* Inherit fonts for inputs and buttons */
input,
textarea,
select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
  background: var(--white);
  border: 1px solid var(--black);
  border-radius: 9999px;
  color: currentColor;
  font: inherit;
  padding: 0.5rem 0.9rem;
  width: 100%;
}

select,
.woocommerce table.variations tr td select {
  font-size: var(--wp--preset--font-size--small, 1rem);
  height: auto;
  padding: 0.5rem;
}

textarea::-webkit-input-placeholder {
  line-height: 1.1;
}
textarea::-moz-placeholder {
  line-height: 1.1;
}
textarea:-ms-input-placeholder {
  line-height: 1.1;
}
textarea:-moz-placeholder {
  line-height: 1.1;
}
textarea::placeholder {
  line-height: 1.1;
}

textarea,
.woocommerce form .form-row textarea {
  border-radius: 1.5rem;
  line-height: 1.2;
  padding: 0.75rem;
}

input[type="checkbox"] {
  width: fit-content;
}

input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  margin: 0;
  padding: 0;
  font: inherit;
  color: currentColor;
  width: 1.2em;
  height: 1.2em;
  border: 1px solid var(--black);
  border-radius: 0;
  transform: translateY(-0.075em);
  display: inline-grid;
  place-content: center;
}

.woocommerce form .form-row .input-checkbox {
  display: inline-grid;
}

input[type="checkbox"]::before {
  content: "";
  width: 0.55em;
  height: 0.55em;
  transform: scale(0);
  transition: 120ms transform ease-in-out;
  box-shadow: inset 1em 1em var(--gold);
  transform-origin: bottom left;
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

input[type="checkbox"]:focus {
  outline: 2px solid var(--gold);
  outline-offset: 0;
}

input[type="checkbox"]:checked::before {
  transform: scale(1);
}

input[type="radio"] {
  width: initial;
}

.woocommerce-page .select2-container .select2-search__field,
.woocommerce-page .select2-container .select2-selection {
  border-color: var(--black);
  height: 2.625rem;
  padding: 0.25rem 0.6rem;
}

.woocommerce-page
  .select2-container
  .select2-selection
  .select2-selection__arrow {
  height: 2.625rem;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__arrow
  b {
  border-top-color: var(--black);
}

.select2-container--default .select2-selection--single {
  border-radius: 1.5rem;
}

.select2-container--default
  .select2-results__option--highlighted[aria-selected],
.select2-container--default
  .select2-results__option--highlighted[data-selected] {
  background-color: var(--gold);
  color: var(--black);
}

label,
.woocommerce-page label,
.woocommerce form .form-row label,
.woocommerce div.product form.cart .variations label {
  display: block;
  font-weight: 400;
  line-height: 1.16;
  margin-bottom: 0.5rem;
}

button {
  font: inherit;
  padding: 0;
  cursor: pointer;
  border: none;
}

input[type="submit"] {
  cursor: pointer;
}

a {
  cursor: pointer;
  text-decoration: none;
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.screen-reader-text {
  visibility: hidden;
  position: fixed;
}

/* -------------------------------------------------
End Reset
------------------------------------------------- */

/* -------------------------------------------------
3.0 Custom Properties
------------------------------------------------- */
:root {
  --heading-font: "brandon-grotesque", sans-serif;
  --body-font: "brandon-grotesque", sans-serif;
  --white: #fff;
  --black: #000;
  --richBlack: ##130c0e;
  --off-white: #f9f6ee;
  --gold: #cea24d;
  --gold-50: #ebcfa5;
  --gold-100: #deb879; /* https://colordesigner.io/gradient-generator */
  --gold-900: #97660c;
  --gray-50: #f5f5f5;
  --gray-100: #ddd;
  --gray-200: #bebebe;
  --gray-300: #9d9d9d;
  --gray-400: #858585;
  --gray-500: #6a6a6a;
  --gray-600: #525252;
  --gray-700: #383838;
  --gray-800: #1e1e1e;
  --gray-900: #141414;
  --flex-grow: 1;
  --flex-shrink: 1;
  --flex-base: 17rem;
  --content-width: min(calc(100% - 2.5rem), 98%);
  --w-3xs: 22.5rem;
  --w-2xs: 30rem;
  --w-xs: 33.5rem;
  --w-sm: 40rem;
  --w-md: 48rem;
  --w-lg: 60rem;
  --w-xl: 72rem;
  --w-2xl: 80rem;
  --w-3xl: 96rem;
  --w-4xl: 120rem;
  --w-full: 100%;
  --spacing: 1rem;
  --s-3xs: calc(clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem) * 0.25);
  --s-2xxs: calc(clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem) * 0.375);
  --s-2xs: calc(clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem) * 0.5);
  --s-xxs: calc(clamp(0.625rem, 2vh + 2.5vw, 2.4rem) * 0.75);
  --s-xs: calc(clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem) * 0.75);
  --s-vs: calc(
    clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem) * 0.825
  ); /* very small */
  --s-sm: clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem);
  --s-md: calc(clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem) * 1.5);
  --s-lg: calc(clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem) * 2);
  --s-xl: calc(clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem) * 2.5);
  --s-2xl: calc(clamp(0.875rem, 0.3rem + 2vh + 2vw, 2.25rem) * 3.5);
  --s-c1: clamp(3.5rem, 2vh + 6vw, 6.5rem);
  --h-header: 3.75rem;
  --h-site-nav: 3.75rem;
  --border: 1px solid var(--black, #000);
  --line-h: 1.3;
  --scrollbar-thumb: var(--black);
  --scrollbar-track: var(--gold);
  /* --vh-full: calc(100vh - var(--h-header) - var(--h-site-nav) + 1px); */
  --vh-full: calc(60vh - var(--h-header) - var(--h-site-nav) + 1px);
  --wp--preset--font-size--small: 1rem;
  font-family: var(--body-font);
}

/* -------------------------------------------------
End Custom Properties
------------------------------------------------- */

/* -------------------------------------------------
4.0 General Typography
------------------------------------------------- */

p {
  line-height: var(--line-h);
}

p + p {
  margin-block-start: var(--flow, 1rem);
}

p a {
  color: var(--gold-900);
}

p a:hover {
  text-decoration: underline;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--heading-font);
  line-height: var(--line-h);
  font-weight: 400;
}

h2 {
  text-transform: uppercase;
}

.fs-0,
.has-0-font-size,
h6 {
  font-size: clamp(0.875rem, 0.71rem + 0.18vw, 0.9rem);
}

/* 1rem (16px) is a bit on the small side for brandon-grotesque, so we're bumpting it up a bit */
body,
.fs-1,
.has-1-font-size,
h2,
h5,
.short-slogan,
label textarea,
.fs-0-div .tc-label,
.fs-0-div .tmcp-field-wrap .price.tc-price .amount {
  font-size: clamp(1.1rem, 0.96rem + 0.18vw, 1.125rem);
}

/* 1rem min for All Caps */
h2,
.short-slogan {
  font-size: clamp(1rem, 0.96rem + 0.18vw, 1.125rem);
}

.fs-2,
.has-2-font-size,
h4 {
  font-size: clamp(1.125rem, 1.09rem + 0.18vw, 1.25rem);
}
.fs-3,
.has-3-font-size,
h3,
.woocommerce-page.single-product label {
  font-size: clamp(1.25rem, 1.11rem + 0.71vw, 1.75rem);
}
.fs-4,
.has-4-font-size {
  font-size: clamp(1.5rem, 1.29rem + 1.07vw, 2.25rem);
}
.fs-5,
.has-5-font-size {
  font-size: clamp(1.75rem, 1.39rem + 1.79vw, 3rem);
}
.fs-6,
.has-6-font-size,
h1 {
  /* font-size: clamp(2.5rem, 1.82rem + 2.14vw, 3.75rem);   */
  font-size: clamp(1.5rem, 1.29rem + 1.07vw, 2.5rem);
}

html
  main
  a:not(
    .btn,
    .button,
    .woocommerce-LoopProduct-link,
    .wc-block-grid__product-link,
    .woof_btn_default,

  ),
html
  .wp-block-flowio-section-block
  a:not(
    .btn,
    .button,
    .woocommerce-LoopProduct-link,
    .wc-block-grid__product-link,
    .woof_btn_default,

  ) {
  color: currentColor;
  transition: filter 0.3s;
}

html
  main
  a:not(
    .btn,
    .button,
    .woocommerce-LoopProduct-link,
    .wc-block-grid__product-link,
    .woof_btn_default,

  ):hover,
html
  .wp-block-flowio-section-block
  a:not(
    .btn,
    .button,
    .woocommerce-LoopProduct-link,
    .wc-block-grid__product-link,
    .woof_btn_default,

  ):hover {
  filter: hue-rotate(30deg) brightness(1.5);
}

.heading-font {
  font-family: var(--heading-font);
}

.body-font {
  font-family: var(--body-font);
}

/* style lists */
ul,
ol {
  padding-left: 2rem;
  line-height: 1.3;
}

li {
  margin-block-end: var(--s-2xs);
}

.ttu {
  text-transform: uppercase;
}

.tt-none {
  text-transform: none;
}

.ls-md {
  letter-spacing: 0.15em;
}

strong {
  font-weight: 500;
}
/* -------------------------------------------------
End General Typography
------------------------------------------------- */

/* -------------------------------------------------
5.0 Areas
------------------------------------------------- */
html {
  height: 100%;
}

body.theme-flow-fse {
  background-color: var(--off-white);
  height: 100%;
  min-height: calc(100% - var(--wp-admin--admin-bar--height, 0px));
  overflow: initial !important; /* smart cart plugin adds inline overflow: auto on closing smart cart popup, which results in a scrollbar */
  /* padding-bottom: var(--h-site-nav);
	padding-top: var(--h-header); */
}

.site-main,
.wp-site-blocks {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  /* padding-top: var(--h-header); */
}

.wp-site-blocks {
  /* padding-bottom: var(--h-site-nav); */
}

.site-header {
  flex: 0 0 auto;
  /* height: var(--h-header); */
  position: sticky;
  top: 0;
  left: 0;
  z-index: 9;
}

.site-footer {
  flex: 1 0 auto;
  /* padding-bottom: var(--h-site-nav); */
  display: grid;
}

.wp-block-lazyblock-footer,
.theme-footer {
  height: 100%;
}

.landing-intro .flayout-inner-child {
  --flow: 0;
  display: flex;
  flex-direction: column;
  height: calc(
    100% - var(--s-xs) - var(--s-xs)
  ); /* height - top padding - bottom padding */
  justify-content: space-between;
  gap: var(--s-sm);
  height: 100%;
  padding-block-start: var(--s-xs);
  padding-block-end: var(--s-xs);
  padding-inline-start: var(--s-xs);
  padding-inline-end: var(--s-xs);
}

/* aka right sidebar */
.action-col,
.border-l {
  --border-l: 0;
  border-left: var(--border-l);
}

.action-col-left {
  --border-r: 0;
  border-right: var(--border-r);
}

.reverse-sm .action-col-left {
  order: 2;
}

/* --------
5.1 Header
-------- */

.site-header.wp-block-template-part,
.wp-block-lazyblock-header {
  /* display: contents; */
  display: block;
}

.theme-header ul,
.theme-header ol {
  padding-left: 0;
}

.theme-header {
  background-color: var(--off-white);
  color: var(--richBlack);
  /* position: fixed; */
  top: var(--wp-admin--admin-bar--height, 0px);
  width: 100%;
  z-index: 9;
}

.header-content {
  --justify: space-between;
  border-bottom: 1px solid currentColor;
}

.brand {
  color: var(--richBlack);
  text-decoration: none;
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  height: 2.75rem;
  transition: height 0.3s, margin 0.3s;
  align-self: center;
  /* margin-block: 0.625rem; */
}

.brand > svg {
  height: 100%;
  transition: color 0.4s, opacity 0.4s, backdrop-filter 0.4s;
  width: auto;
}

.header-cart-btn {
  align-items: center;
  background-color: var(--off-white);
  display: flex;
  height: 100%;
  justify-content: end;
  text-align: left;
  width: 100%;
}

.header-cart-text {
  flex: 1 1 auto;
  pointer-events: none;
}

.header-cart-btn svg {
  width: 2.75rem;
  height: 2.75rem;
  pointer-events: none;
}
/* .site-navigation {
  background-color: var(--off-white);
  border-top: var(--border);
  bottom: 0;
  position: fixed;
  z-index: 10;
} */

.menu-item {
  list-style: none;
  position: relative;
}

a {
  color: currentColor;
}

.menu-item a,
.menu-item button {
  text-decoration: none;
  font-weight: 400;
  font-size: 1.1rem;
  transition: color 0.3s;
}

.navigation-items {
  align-items: center;
  display: grid;
}

.desktop-nav {
  display: none;
  height: 100%;
}

.desktop-nav > ul {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  transition: margin 0.3s;
}

.desktop-nav > ul > li {
  align-items: center;
  display: grid;
  flex: 1 1 auto;
}

.primary-nav > ul > li {
  flex-basis: 25%;
}

.primary-nav > ul > * + * {
  /* border-left: var(--border); */
}

.secondary-nav > ul > li {
  border-left: var(--border);
}

.secondary-nav > ul > li:first-of-type {
  border-left: 0;
}

.desktop-nav .sub-menu a:hover {
  color: var(--secondary-400);
}

.desktop-nav .menu-item-has-children:hover > .sub-menu,
.desktop-nav .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
}

.curtain-nav-toggle {
  display: flex;
  justify-content: center;
  margin-left: auto;
  margin-right: 0;
}

#menuButton {
  --background: var(--off-white);
  align-items: center;
  display: flex;
  flex: 0 0 3rem;
  justify-content: center;
  margin: 0.25rem 0;
  z-index: 69469;
  margin-left: auto;
  padding: 0 2rem;
}
#menuButton[aria-expanded="true"] {
  position: absolute;
  top: 0;
  right: 0;
}

#menuButton rect,
#menuButton svg {
  transition: all 0.35s;
}

#menuButton[aria-expanded="true"] path:nth-of-type(3) {
  opacity: 0;
}

#menuButton[aria-expanded="true"] path:nth-of-type(1) {
  transform-origin: center;
  transform: rotate(45deg) translateY(46%);
}

#menuButton[aria-expanded="true"] path:nth-of-type(2) {
  transform-origin: center;
  transform: rotate(-45deg) translateY(-46%);
}

.desktop-nav .site-nav {
  padding: 0;
  display: flex;
  align-items: flex-start;
}

.desktop-nav li {
  white-space: nowrap;
  position: relative;
  height: 100%;
  line-height: 1;
  margin-block-end: 0;
  padding: 0;
  transition: all 0.3s;
}

#menu-primary_navigation li.menu-item-has-children button::after {
  content: "";
  display: inline-block;
  position: absolute;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' stroke='white ' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' class='css-i6dzq1'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-size: cover;
  width: 0.875rem;
  height: 0.875rem;
  right: 0.35rem;
  transition: transform 0.3s;
}

#menu-primary_navigation
  li.menu-item-has-children
  button[aria-expanded="true"]::after {
  transform: rotate(180deg);
}

.site-nav > li > a {
  background-color: var(--off-white);
  color: inherit;
  cursor: pointer;
  display: inline-block;
  line-height: 1.17;
  text-align: center;
  text-decoration: none;
  padding: var(--s-vs) var(--s-3xs);
  transition: background-color 0.5s ease;
}

.site-nav > li > a:hover,
.site-nav > li > a:focus,
.site-nav > li > a:active {
  background-color: var(--gold);
}

.site-nav > li > a:focus-visible {
  outline: 1px solid black;
  outline-offset: -1px;
}

#curtain-menu {
  position: fixed;
  top: 0;
  /* left: auto; */
  right: 0;
  background: var(--off-white);
  color: var(--black);
  min-height: 100vh;
  width: 100vw;
  max-width: 0;
  display: none;
  transition: max-width 0.3s ease;
  overflow-y: auto;
  z-index: 1;
}

#curtain-menu-container {
  opacity: 0;
  width: var(--content-width);
  max-width: var(--width-medium);
  margin: auto;
  padding: 3rem 1rem;
  transition: opacity 0.3s ease;
}

#curtain-menu-container.fade-in {
  opacity: 1;
}

#curtain-menu-container ul {
  font-size: 1.25rem;
  margin-block-end: 2rem;
  padding-left: 0;
}

#curtain-menu-container ul > * + * {
  margin-block-start: 0.6rem;
}

#curtain-menu.active {
  display: block;
  /* left: 0; */
}

#curtain-menu.mw-full {
  max-width: 100%;
}

#curtain-content {
  opacity: 0;
  transition: opacity 0.3s;
  padding-block: 5rem;
}

#curtain-content.fade-in {
  opacity: 1;
}

/* --------
End Header
-------- */
/* --------
5.2 Entry Content
-------- */
div[class^="wp-block-lazy"] {
  width: 100%;
  max-width: 100%;
}

.auto-child-width > * {
  max-width: var(--auto-child-max-width, var(--w-sm));
  width: var(--auto-child-width, var(--content-width));
  margin-inline-start: auto;
  margin-inline-end: auto;
}

p > a,
.wp-block-post-navigation-link a,
.wc-forward,
td > a {
  color: var(--gold-900);
  transition: color 0.3s;
}

p > a:hover,
p > a:focus,
.wp-block-post-navigation-link a:hover,
.wp-block-post-navigation-link a:focus,
.wc-forward > a:hover,
.wc-forward > a:focus,
td > a:hover,
td > a:focus {
  color: var(--primary-500);
}

/* --------
5.3 Page-Specific Content
-------- */
.page-headline .flow {
  display: grid;
  row-gap: var(--s-xl);
}

/* Scroll Prompt */
.scroll-prompt {
  display: grid;
  flex: 0 1 auto;
  grid-template-rows: 1fr var(--s-xl);
  justify-items: center;
  row-gap: 0.5rem;
  text-decoration: none;
}

.scroll-prompt svg {
  height: 100%;
  width: auto;
  stroke-width: 3px;
}

/* Full Menu Section */
#full-menu,
.wp-block-post-content .wp-block-flowio-section-block {
  scroll-margin-top: calc(var(--h-header) - 2px);
}
.archive.post-type-archive #full-menu {
  display: none;
}
.archive.post-type-archive .full-menu-grid {
  border-top: var(--border);
}
.full-menu-header {
  border-top: var(--border);
}

.full-menu-header h2 {
  padding-block-start: var(--s-xxs);
  padding-inline-end: var(--s-sm);
  padding-block-end: var(--s-xxs);
  padding-inline-start: var(--s-sm);
}

.contact-details .contact-info {
  border-bottom: var(--border);
  padding: var(--s-2xs) var(--s-xs) var(--s-xs);
}

.contact-details h2 {
  font-size: clamp(1.5rem, 1.29rem + 1.07vw, 2.5rem);
  margin-bottom: var(--s-3xs);
  text-transform: none;
}

.contact-details .address {
  flex: 0 1 auto;
  height: auto;
}

.contact-details .map {
  background-color: #f1f1f1;
  flex: 1 1 auto;
}

.contact-details .map-link,
.map-link img {
  display: block;
  height: 100%;
}

.map-link img,
.map iframe {
  height: 100%;
  min-height: 50vh;
  width: 100%;
}

/* --------
End Entry Content
-------- */

/* --------
5.3 Footer
-------- */
.theme-footer {
  border-top: var(--border);
  /* padding-block-end: var(--h-site-nav); */
  display: grid;
  grid-template-rows: 1fr max-content;
}

.theme-footer ul,
.theme-footer ol {
  padding-left: 0;
}

.footer-content .action-col nav {
  --flex-base: auto;
  margin-block-start: 0.45rem;
}

.curtain-nav--1 a,
.menu-footer_one-container .menu-item a {
  font-size: clamp(1.25rem, 1.1rem + 0.45vw, 1.5rem);
}

.theme-footer .menu-item a:hover,
.theme-footer .menu-item a:focus,
.theme-footer .menu-item a:active {
  color: var(--gold-900);
}

.menu-footer_two-container ul {
  line-height: 1.6;
}

.social-footer {
  display: flex;
  gap: 0.1rem;
}

.footer-credit a {
  font-weight: 500;
  text-decoration: none;
}

.footer-credit a:hover,
.footer-credit a:focus,
.footer-credit a:active {
  text-decoration: underline;
}

/* --------
End Footer
-------- */

/* -------------------------------------------------
End Areas
------------------------------------------------- */
/* -------------------------------------------------
6.0 Utilities
------------------------------------------------- */
/* Flow */
.flow,
.inner-flow,
.ff-final {
  --flow: 1rem;
}

.flow > * + * {
  margin-block-start: var(--flow, 1rem);
}

.inner-flow > * + * {
  margin-block-start: var(--inner-flow, var(--flow, 1rem));
}

.flex-flow {
  display: flex;
  flex-direction: column;
  gap: var(--flow, 1rem);
}
.ff-final {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: end;
}
.flow-none {
  --flow: 0;
}

.flow-2xs {
  --flow: 0.25rem;
}
.flow-xs {
  --flow: 0.5rem;
}
.flow-sm {
  --flow: 1rem;
}
.flow-md {
  --flow: 1.5rem;
}
.flow-lg {
  --flow: 2rem;
}
.flow-xl {
  --flow: 2.5rem;
}
.flow-2xl {
  --flow: 3rem;
}

/* Margins */
.m-3xs {
  margin: var(--s-3xs);
}

.m-2xs {
  margin: var(--s-2xs);
}

.m-xs {
  margin: var(--s-xs);
}

.m-sm {
  margin: var(--s-sm);
}

.m-md {
  margin: var(--s-md);
}

.m-lg {
  margin: var(--s-lg);
}

.m-xl {
  margin: var(--s-xl);
}

.m-2xl {
  margin: var(--s-2xl);
}

.m-c1 {
  margin: var(--s-c1);
}

.m-none {
  margin: 0;
}

.my-3xs {
  margin-block-start: var(--s-3xs);
  margin-block-end: var(--s-3xs);
}

.my-2xs {
  margin-block-start: var(--s-2xs);
  margin-block-end: var(--s-2xs);
}

.my-xs {
  margin-block-start: var(--s-xs);
  margin-block-end: var(--s-xs);
}

.my-sm {
  margin-block-start: var(--s-sm);
  margin-block-end: var(--s-sm);
}

.my-md {
  margin-block-start: var(--s-md);
  margin-block-end: var(--s-md);
}

.my-lg {
  margin-block-start: var(--s-lg);
  margin-block-end: var(--s-lg);
}

.my-xl {
  margin-block-start: var(--s-xl);
  margin-block-end: var(--s-xl);
}

.my-2xl {
  margin-block-start: var(--s-2xl);
  margin-block-end: var(--s-2xl);
}

.my-c1 {
  margin-block-start: var(--s-c1);
  margin-block-end: var(--s-c1);
}

.my-none {
  margin-block-start: 0;
  margin-block-end: 0;
}

.mx-3xs {
  margin-inline-start: var(--s-3xs);
  margin-inline-end: var(--s-3xs);
}

.mx-2xs {
  margin-inline-start: var(--s-2xs);
  margin-inline-end: var(--s-2xs);
}

.mx-xs {
  margin-inline-start: var(--s-xs);
  margin-inline-end: var(--s-xs);
}

.mx-sm {
  margin-inline-start: var(--s-sm);
  margin-inline-end: var(--s-sm);
}

.mx-md {
  margin-inline-start: var(--s-md);
  margin-inline-end: var(--s-md);
}

.mx-lg {
  margin-inline-start: var(--s-lg);
  margin-inline-end: var(--s-lg);
}

.mx-xl {
  margin-inline-start: var(--s-xl);
  margin-inline-end: var(--s-xl);
}

.mx-2xl {
  margin-inline-start: var(--s-2xl);
  margin-inline-end: var(--s-2xl);
}

.mx-c1 {
  margin-inline-start: var(--s-c1);
  margin-inline-end: var(--s-c1);
}

.mx-auto {
  margin-inline-start: auto;
  margin-inline-end: auto;
}

.mt-3xs {
  margin-block-start: var(--s-3xs);
  --mt: var(--s-3xs);
}

.mt-2xs {
  margin-block-start: var(--s-2xs);
  --mt: var(--s-2xs);
}

.mt-xs {
  margin-block-start: var(--s-xs);
  --mt: var(--s-xs);
}

.mt-sm {
  margin-block-start: var(--s-sm);
  --mt: var(--s-sm);
}

.mt-md {
  margin-block-start: var(--s-md);
  --mt: var(--s-md);
}

.mt-lg {
  margin-block-start: var(--s-lg);
  --mt: var(--s-lg);
}

.mt-xl {
  margin-block-start: var(--s-xl);
  --mt: var(--s-xl);
}

.mt-2xl {
  margin-block-start: var(--s-2xl);
  --mt: var(--s-2xl);
}

.mt-c1 {
  margin-block-start: var(--s-c1);
  --mt: var(--s-c1);
}

.mt-none {
  margin-block-start: 0;
  --mt: 0;
}

.mb-3xs {
  margin-block-end: var(--s-3xs);
}

.mb-2xs {
  margin-block-end: var(--s-2xs);
}

.mb-xs {
  margin-block-end: var(--s-xs);
}

.mb-sm {
  margin-block-end: var(--s-sm);
}

.mb-md {
  margin-block-end: var(--s-md);
}

.mb-lg {
  margin-block-end: var(--s-lg);
}

.mb-xl {
  margin-block-end: var(--s-xl);
}

.mb-2xl {
  margin-block-end: var(--s-2xl);
}

.mb-c1 {
  margin-block-end: var(--s-c1);
}

.mb-none {
  margin-block-end: 0;
}

.ml-3xs {
  margin-inline-start: var(--s-3xs);
}

.ml-2xs {
  margin-inline-start: var(--s-2xs);
}

.ml-xs {
  margin-inline-start: var(--s-xs);
}

.ml-sm {
  margin-inline-start: var(--s-sm);
}

.ml-md {
  margin-inline-start: var(--s-md);
}

.ml-lg {
  margin-inline-start: var(--s-lg);
}

.ml-xl {
  margin-inline-start: var(--s-xl);
}

.ml-2xl {
  margin-inline-start: var(--s-2xl);
}

.ml-c1 {
  margin-inline-start: var(--s-c1);
}

.ml-none {
  margin-inline-start: 0;
}

.mr-3xs {
  margin-inline-end: var(--s-3xs);
}

.mr-2xs {
  margin-inline-end: var(--s-2xs);
}

.mr-xs {
  margin-inline-end: var(--s-xs);
}

.mr-sm {
  margin-inline-end: var(--s-sm);
}

.mr-md {
  margin-inline-end: var(--s-md);
}

.mr-lg {
  margin-inline-end: var(--s-lg);
}

.mr-xl {
  margin-inline-end: var(--s-xl);
}

.mr-2xl {
  margin-inline-end: var(--s-2xl);
}

.mr-c1 {
  margin-inline-end: var(--s-c1);
}

.mr-none {
  margin-inline-end: 0;
}
/*Padding*/
.p-3xs {
  padding: var(--s-3xs);
}

.p-2xs {
  padding: var(--s-2xs);
}

.p-xs {
  padding: var(--s-xs);
}

.p-sm {
  padding: var(--s-sm);
}

.p-md {
  padding: var(--s-md);
}

.p-lg {
  padding: var(--s-lg);
}

.p-xl {
  padding: var(--s-xl);
}

.p-2xl {
  padding: var(--s-2xl);
}

.p-c1 {
  padding: var(--s-c1);
}

.p-none {
  padding: 0;
}

.py-3xs {
  padding-block-start: var(--s-3xs);
  padding-block-end: var(--s-3xs);
}

.py-2xs {
  padding-block-start: var(--s-2xs);
  padding-block-end: var(--s-2xs);
}

.py-xs {
  padding-block-start: var(--s-xs);
  padding-block-end: var(--s-xs);
}

.py-sm {
  padding-block-start: var(--s-sm);
  padding-block-end: var(--s-sm);
}

.py-md {
  padding-block-start: var(--s-md);
  padding-block-end: var(--s-md);
}

.py-lg {
  padding-block-start: var(--s-lg);
  padding-block-end: var(--s-lg);
}

.py-xl {
  padding-block-start: var(--s-xl);
  padding-block-end: var(--s-xl);
}

.py-2xl {
  padding-block-start: var(--s-2xl);
  padding-block-end: var(--s-2xl);
}

.py-c1 {
  padding-block-start: var(--s-c1);
  padding-block-end: var(--s-c1);
}

.py-none {
  padding-block-start: 0;
  padding-block-end: 0;
}

.px-3xs {
  padding-inline-start: var(--s-3xs);
  padding-inline-end: var(--s-3xs);
}

.px-2xs {
  padding-inline-start: var(--s-2xs) !important;
  padding-inline-end: var(--s-2xs) !important;
}

.px-xs {
  padding-inline-start: var(--s-xs);
  padding-inline-end: var(--s-xs);
}

.px-sm {
  padding-inline-start: var(--s-sm);
  padding-inline-end: var(--s-sm);
}

.px-md {
  padding-inline-start: var(--s-md);
  padding-inline-end: var(--s-md);
}

.px-lg {
  padding-inline-start: var(--s-lg);
  padding-inline-end: var(--s-lg);
}

.px-xl {
  padding-inline-start: var(--s-xl);
  padding-inline-end: var(--s-xl);
}

.px-2xl {
  padding-inline-start: var(--s-2xl);
  padding-inline-end: var(--s-2xl);
}

.px-c1 {
  padding-inline-start: var(--s-c1);
  padding-inline-end: var(--s-c1);
}

.px-auto {
  padding-inline-start: auto;
  padding-inline-end: auto;
}

.pt-3xs {
  padding-block-start: var(--s-3xs);
}

.pt-2xs {
  padding-block-start: var(--s-2xs);
}

.pt-xs {
  padding-block-start: var(--s-xs);
}

.pt-sm {
  padding-block-start: var(--s-sm);
}

.pt-md {
  padding-block-start: var(--s-md);
}

.pt-lg {
  padding-block-start: var(--s-lg);
}

.pt-xl {
  padding-block-start: var(--s-xl);
}

.pt-2xl {
  padding-block-start: var(--s-2xl);
}

.pt-c1 {
  padding-block-start: var(--s-c1);
}

.pt-none {
  padding-block-start: 0;
}

.pb-3xs {
  padding-block-end: var(--s-3xs);
}

.pb-2xs {
  padding-block-end: var(--s-2xs);
}

.pb-xs {
  padding-block-end: var(--s-xs);
}

.pb-sm {
  padding-block-end: var(--s-sm);
}

.pb-md {
  padding-block-end: var(--s-md);
}

.pb-lg {
  padding-block-end: var(--s-lg);
}

.pb-xl {
  padding-block-end: var(--s-xl);
}

.pb-2xl {
  padding-block-end: var(--s-2xl);
}

.pb-c1 {
  padding-block-end: var(--s-c1);
}

.pb-none {
  padding-block-end: 0;
}

.pl-3xs {
  padding-inline-start: var(--s-3xs);
}

.pl-2xs {
  padding-inline-start: var(--s-2xs);
}

.pl-xs {
  padding-inline-start: var(--s-xs);
}

.pl-sm {
  padding-inline-start: var(--s-sm);
}

.pl-md {
  padding-inline-start: var(--s-md);
}

.pl-lg {
  padding-inline-start: var(--s-lg);
}

.pl-xl {
  padding-inline-start: var(--s-xl);
}

.pl-2xl {
  padding-inline-start: var(--s-2xl);
}

.pl-c1 {
  padding-inline-start: var(--s-c1);
}

.pl-none {
  padding-inline-start: 0;
}

.pr-3xs {
  padding-inline-end: var(--s-3xs);
}

.pr-2xs {
  padding-inline-end: var(--s-2xs);
}

.pr-xs {
  padding-inline-end: var(--s-xs);
}

.pr-sm {
  padding-inline-end: var(--s-sm);
}

.pr-md {
  padding-inline-end: var(--s-md);
}

.pr-lg {
  padding-inline-end: var(--s-lg);
}

.pr-xl {
  padding-inline-end: var(--s-xl);
}

.pr-2xl {
  padding-inline-end: var(--s-2xl);
}

.pr-c1 {
  padding-inline-end: var(--s-c1);
}

.pr-none {
  padding-inline-end: 0;
}

/* Block Widths */
.mw-3xs {
  max-width: var(--w-3xs);
}

.mw-2xs {
  max-width: var(--w-2xs);
}

.mw-xs {
  max-width: var(--w-xs);
}

.mw-sm {
  max-width: var(--w-sm);
}

.mw-md {
  max-width: var(--w-md);
}

.mw-lg {
  max-width: var(--w-lg);
}

.mw-xl {
  max-width: var(--w-xl);
}

.mw-2xl {
  max-width: var(--w-2xl);
}

.mw-3xl {
  max-width: var(--w-3xl);
}

.mw-4xl {
  max-width: var(--w-4xl);
}

.mw-content {
  max-width: var(--content-width);
}

.mw-full {
  max-width: 100%;
}

.w-content {
  width: var(--content-width);
}

.w-full {
  width: 100%;
}

.cmw-3xs {
  --auto-child-max-width: var(--w-3xs);
}

.cmw-2xs {
  --auto-child-max-width: var(--w-2xs);
}

.cmw-xs {
  --auto-child-max-width: var(--w-xs);
}

.cmw-sm {
  --auto-child-max-width: var(--w-sm);
}

.cmw-md {
  --auto-child-max-width: var(--w-md);
}

.cmw-lg {
  --auto-child-max-width: var(--w-lg);
}

.cmw-xl {
  --auto-child-max-width: var(--w-xl);
}

.cmw-2xl {
  --auto-child-max-width: var(--w-2xl);
}

.cmw-3xl {
  --auto-child-max-width: var(--w-3xl);
}

.cmw-4xl {
  --auto-child-max-width: var(--w-4xl);
}

.cmw-full {
  --auto-child-max-width: 100%;
}

.cw-content {
  --auto-child-width: var(--content-width);
}

.cw-full {
  --auto-child-width: 100%;
}

/* Grid Utilities */
.grid-cols,
.grid-cols > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(max(25%, 18rem), 1fr));
  gap: var(--gap);
}

/* Other Utilities */
.border-t {
  border-top: var(--border);
}

.border-b {
  border-bottom: var(--border);
}

.td-none {
  text-decoration: none;
}

.ar-square,
.wp-block-image.ar-square * {
  aspect-ratio: 1/1;
}

.ar-landscape,
.wp-block-image.ar-landscape * {
  aspect-ratio: 3/2;
}

.ar-portrait,
.wp-block-image.ar-portrait * {
  aspect-ratio: 4/5;
}

.border-full,
.wp-block-image.border-full * {
  border-radius: 50%;
  margin-bottom: 0;
}

.wp-block-image.border-full {
  display: grid;
  place-items: center;
}

.ta-l,
.has-text-align-left {
  text-align: left;
}

.ta-c,
.has-text-align-center {
  text-align: center;
}

.ta-r,
.has-text-align-right {
  text-align: right;
}

.fw-1 {
  font-weight: 100;
}

.fw-2 {
  font-weight: 200;
}

.fw-3 {
  font-weight: 300;
}

.fw-4 {
  font-weight: 400;
}

.fw-5 {
  font-weight: 500;
}

.fw-6 {
  font-weight: 600;
}

.fw-7 {
  font-weight: 500;
}

.fw-8 {
  font-weight: 800;
}

.fw-9 {
  font-weight: 900;
}

.stack {
  display: grid;
  grid-template-areas: "stack";
  position: relative;
}

.stack > * {
  grid-area: stack;
  position: relative;
}

.stack > img {
  position: absolute;
  object-fit: cover;
  height: 100%;
}

.stack > .overlay {
  width: 100%;
  height: 100%;
  background: var(--overlay, rgba(0, 0, 0, 0.5));
}

/* Colour Utilities */

.col-white,
.has-white-color {
  color: var(--white);
}

.col-black,
.has-black-color {
  color: var(--black);
}

.col-g-50,
.has-gray-50-color {
  color: var(--gray-50);
}

.col-g-100,
.has-gray-100-color {
  color: var(--gray-100);
}

.col-g-200,
.has-gray-200-color {
  color: var(--gray-200);
}

.col-g-300,
.has-gray-300-color {
  color: var(--gray-300);
}

.col-g-400,
.has-gray-400-color {
  color: var(--gray-400);
}

.col-g-500,
.has-gray-500-color {
  color: var(--gray-500);
}

.col-g-600,
.has-gray-600-color {
  color: var(--gray-600);
}

.col-g-700,
.has-gray-700-color {
  color: var(--gray-700);
}

.col-g-800,
.has-gray-800-color {
  color: var(--gray-800);
}

.col-g-900,
.has-gray-900-color {
  color: var(--gray-900);
}

.bg-white,
.has-white-background-color {
  background-color: var(--white);
}

.bg-black,
.has-black-background-color {
  background-color: var(--black);
}

.bg-g-50,
.has-gray-50-background-color {
  background-color: var(--gray-50);
}

.bg-g-100,
.has-gray-100-background-color {
  background-color: var(--gray-100);
}

.bg-g-200,
.has-gray-200-background-color {
  background-color: var(--gray-200);
}

.bg-g-300,
.has-gray-300-background-color {
  background-color: var(--gray-300);
}

.bg-g-400,
.has-gray-400-background-color {
  background-color: var(--gray-400);
}

.bg-g-500,
.has-gray-500-background-color {
  background-color: var(--gray-500);
}

.bg-g-600,
.has-gray-600-background-color {
  background-color: var(--gray-600);
}

.bg-g-700,
.has-gray-700-background-color {
  background-color: var(--gray-700);
}

.bg-g-800,
.has-gray-800-background-color {
  background-color: var(--gray-800);
}

.bg-g-900,
.has-gray-900-background-color {
  background-color: var(--gray-900);
}

.flex-layout {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap, 2rem);
  row-gap: var(--row-gap, var(--gap, 2rem));
  justify-content: var(--justify);
  align-items: var(--align);
}

.flex-layout > * {
  flex-grow: var(--flex-grow, 1);
  flex-shrink: var(--flex-shrink, 1);
  flex-basis: var(--flex-base, 17rem);
  max-width: var(--flex-child-max-width);
  min-width: var(--flex-child-min-width);
}
.f-nowrap {
  flex-wrap: nowrap;
}
.fb-2 {
  --flex-base: 2rem;
}
.fb-4 {
  --flex-base: 4rem;
}
.fb-6 {
  --flex-base: 6rem;
}
.fb-8 {
  --flex-base: 8rem;
}
.fb-10 {
  --flex-base: 10rem;
}
.fb-12 {
  --flex-base: 12rem;
}
.fb-14 {
  --flex-base: 14rem;
}
.fb-16 {
  --flex-base: 16rem;
}
.fb-18 {
  --flex-base: 18rem;
}
.fb-20 {
  --flex-base: 20rem;
}
.fb-24 {
  --flex-base: 24rem;
}
.fb-28 {
  --flex-base: 28rem;
}
.fb-32 {
  --flex-base: 32rem;
}
.fb-36 {
  --flex-base: 36rem;
}
.fb-40 {
  --flex-base: 40rem;
}
.fb-48 {
  --flex-base: 48rem;
}
.gap-none {
  --gap: 0;
}
.gap-2xs {
  --gap: 0.25rem;
}
.gap-xs {
  --gap: 0.5rem;
}
.gap-sm {
  --gap: 1rem;
}
.gap-md {
  --gap: 1.5rem;
}
.gap-lg {
  --gap: 2rem;
}
.gap-xl {
  --gap: 2.5rem;
}
.gap-2xl {
  --gap: 3rem;
}
.row-gap-none {
  --row-gap: 0;
}
.row-gap-2xs {
  --row-gap: 0.25rem;
}
.row-gap-xs {
  --row-gap: 0.5rem;
}
.row-gap-sm {
  --row-gap: 1rem;
}
.row-gap-md {
  --row-gap: 1.5rem;
}
.row-gap-lg {
  --row-gap: 2rem;
}
.row-gap-xl {
  --row-gap: 2.5rem;
}
.row-gap-2xl {
  --row-gap: 3rem;
}

.cols-layout {
  columns: var(--maxCols, 4) var(--colBase, 10rem);
  gap: var(--gap, 1rem);
}

.cols-layout > * + * {
  margin-block-start: var(--row-gap, var(--gap, 1rem));
}

.cols-layout > div {
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
}

.mw-2 {
  max-width: 2rem;
}
.mw-4 {
  max-width: 4rem;
}
.mw-6 {
  max-width: 6rem;
}
.mw-8 {
  max-width: 8rem;
}
.mw-10 {
  max-width: 10rem;
}
.mw-12 {
  max-width: 12rem;
}
.mw-14 {
  max-width: 14rem;
}
.mw-16 {
  max-width: 16rem;
}
.mw-18 {
  max-width: 18rem;
}
.mw-20 {
  max-width: 20rem;
}
.mw-24 {
  max-width: 24rem;
}
.mw-28 {
  max-width: 28rem;
}
.mw-32 {
  max-width: 32rem;
}
.mw-40 {
  max-width: 40rem;
}

.fcmw-2 {
  --flex-child-max-width: 2rem;
}
.fcmw-4 {
  --flex-child-max-width: 4rem;
}
.fcmw-6 {
  --flex-child-max-width: 6rem;
}
.fcmw-8 {
  --flex-child-max-width: 8rem;
}
.fcmw-10 {
  --flex-child-max-width: 10rem;
}
.fcmw-12 {
  --flex-child-max-width: 12rem;
}
.fcmw-14 {
  --flex-child-max-width: 14rem;
}
.fcmw-16 {
  --flex-child-max-width: 16rem;
}
.fcmw-18 {
  --flex-child-max-width: 18rem;
}
.fcmw-20 {
  --flex-child-max-width: 20rem;
}
.fcmw-24 {
  --flex-child-max-width: 24rem;
}
.fcmw-28 {
  --flex-child-max-width: 28rem;
}
.fcmw-32 {
  --flex-child-max-width: 32rem;
}
.fcmw-36 {
  --flex-child-max-width: 36rem;
}
.fcmw-40 {
  --flex-child-max-width: 40rem;
}
.fcmw-33pc {
  --flex-child-max-width: 33%;
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.vh-full {
  min-height: var(--vh-full);
}
.flex-column {
  display: flex;
  flex-direction: column;
  justify-content: stretch;
}
.grid-layout {
  display: grid;
  grid-template-columns: repeat(
    var(--col-fill, auto-fit),
    minmax(var(--col-min, 15rem), var(--col-max, 1fr))
  );
  grid-auto-rows: var(--grid-auto-rows, 1fr);
  gap: var(--gap, 2rem);
}
.justify-start {
  --justify: start;
}
.justify-center {
  --justify: center;
}
.justify-end {
  --justify: end;
}
.justify-around {
  --justify: space-around;
}
.justify-between {
  --justify: space-between;
}
.align-start {
  --align: start;
}
.align-stretch {
  --align: stretch;
}
.align-center {
  --align: center;
}
.align-end {
  --align: end;
}
.align-around {
  --align: space-around;
}
.align-between {
  --align: space-between;
}
.as-start {
  align-self: start;
}
.as-center {
  align-self: center;
}
.as-end {
  align-self: end;
}
.js-start {
  justify-self: start;
}
.js-center {
  justify-self: center;
}
.js-end {
  justify-self: end;
}

/* Border Radius */
.rounded-tl {
  border-top-left-radius: 9999px;
}
.rounded-tr {
  border-top-right-radius: 9999px;
}
.rounded-br {
  border-bottom-right-radius: 9999px;
}
.rounded-bl {
  border-bottom-left-radius: 9999px;
}

/* full height children */
.ch-h-full > .flow,
.ch-h-full > .flow > * {
  height: 100%;
}

.hide-to-md,
.hide-to-lg {
  display: none !important;
}

.hide-visually {
  border-width: 0;
  clip: rect(0, 0, 0);
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* -------------------------------------------------
End Utilities
------------------------------------------------- */

/* -------------------------------------------------
7.0 Buttons
------------------------------------------------- */
.btn,
html .woocommerce .button,
html .woocommerce button.button,
html .woocommerce button.button.alt,
html .woocommerce button.button.alt.disabled,
html .woocommerce a.button.checkout-button,
html .woof_btn_default,
.linkbtn > a,
.nf-form-content input[type="button"],
button[type="submit"] {
  --background: var(--white);
  --hBackground: var(--gold);
  --fBackground: var(--gold);
  --aBackground: var(--gold);
  --borderRadius: 9999px;
  --padding: 0.6875rem var(--s-xs);
  color: var(--color, var(--black));
  cursor: pointer;
  background: var(--background, #fff);
  border: var(--border, 2px solid #000);
  border-radius: var(--borderRadius, 0);
  padding: var(--padding, 0.5rem 1rem);
  transform: var(--transform, none);
  display: block;
  width: fit-content;
  text-decoration: none;
  font-weight: 400;
  font-size: 1.1rem;
  transition: background-color 0.55s, color 0.55s, border 0.55s;
}

html .woocommerce button.button.alt.disabled {
  pointer-events: none;
}
button svg {
  pointer-events: none;
}

.btn:hover,
html .woocommerce .button:hover,
html .woocommerce button.button:hover,
html .woocommerce button.button.alt:hover,
html .woocommerce button.button.alt.disabled:hover,
html .woocommerce a.button.checkout-button:hover,
html .woof_btn_default:hover,
.linkbtn > a:hover,
html body input[id^="nf-"][type="button"]:hover,
button[type="submit"]:hover {
  color: var(--hColor, var(--black));
  background: var(--hBackground, #fff);
  border: var(--hBorder, 1px solid var(--black));
  cursor: pointer;
}

.btn:focus,
html .woocommerce .button:focus,
html .woocommerce button.button:focus,
html .woocommerce button.button.alt:focus,
html .woocommerce button.button.alt.disabled:focus,
html .woocommerce a.button.checkout-button:focus,
html .woof_btn_default:focus,
.linkbtn > a:focus,
html body input[id^="nf-"][type="button"]:focus,
button[type="submit"]:focus {
  color: var(--fColor, var(--black));
  background: var(--fBackground, var(--gold));
  border: var(--fBorder, 1px solid var(--black));
  outline: none;
}

.btn:active,
html .woocommerce .button:active,
html .woocommerce button.button:active,
html .woocommerce button.button.alt:active,
html .woocommerce button.button.alt.disabled:active,
html .woocommerce a.button.checkout-button:active,
html .woof_btn_default:active,
.linkbtn > a:active,
html body input[id^="nf-"][type="button"]:active,
button[type="submit"]:active {
  color: var(--aColor, var(--black));
  background: var(--aBackground, var(--gold));
  border: var(--aBorder, 2px solid var(--gold));
}

.header-button {
  --color: black;
  --hColor: black;
  --fColor: black;
  --aColor: black;
  --border: none;
  --hBorder: none;
  --fBorder: none;
  --aBorder: none;
  --borderRadius: 0;
  --padding: 0.25rem;
}

.black-outline-black-fill {
  --color: var(--black);
  --hColor: var(--white);
  --fColor: var(--white);
  --aColor: var(--white);
  --background: none;
  --hBackground: var(--black);
  --fBackground: var(--black);
  --aBackground: var(--black);
  --border: 2px solid var(--black);
  --hBorder: 2px solid var(--black);
  --fBorder: 2px solid var(--black);
  --aBorder: 2px solid var(--black);
}

.black-fill-black-outline {
  --color: var(--white);
  --hColor: var(--black);
  --fColor: var(--black);
  --aColor: var(--black);
  --background: var(--black);
  --hBackground: none;
  --fBackground: none;
  --aBackground: none;
  --border: 2px solid var(--black);
  --hBorder: 2px solid var(--black);
  --fBorder: 2px solid var(--black);
  --aBorder: 2px solid var(--black);
}

.white-outline-white-fill {
  --color: var(--white);
  --hColor: var(--black);
  --fColor: var(--black);
  --aColor: var(--black);
  --background: none;
  --hBackground: var(--white);
  --fBackground: var(--white);
  --aBackground: var(--white);
  --border: 2px solid var(--white);
  --hBorder: 2px solid var(--white);
  --fBorder: 2px solid var(--white);
  --aBorder: 2px solid var(--white);
}

.white-fill-white-outline {
  --color: var(--black);
  --hColor: var(--white);
  --fColor: var(--white);
  --aColor: var(--white);
  --background: var(--white);
  --hBackground: none;
  --fBackground: none;
  --aBackground: none;
  --border: 2px solid var(--white);
  --hBorder: 2px solid var(--white);
  --fBorder: 2px solid var(--white);
  --aBorder: 2px solid var(--white);
}

.black-outline-white-fill {
  --color: var(--black);
  --hColor: var(--black);
  --fColor: var(--black);
  --aColor: var(--black);
  --background: none;
  --hBackground: var(--white);
  --fBackground: var(--white);
  --aBackground: var(--white);
  --border: 2px solid var(--black);
  --hBorder: 2px solid var(--white);
  --fBorder: 2px solid var(--white);
  --aBorder: 2px solid var(--white);
}

.white-outline-black-fill {
  --color: var(--white);
  --hColor: var(--white);
  --fColor: var(--white);
  --aColor: var(--white);
  --background: none;
  --hBackground: var(--black);
  --fBackground: var(--black);
  --aBackground: var(--black);
  --border: 2px solid var(--white);
  --hBorder: 2px solid var(--black);
  --fBorder: 2px solid var(--black);
  --aBorder: 2px solid var(--black);
}
/* -------------------------------------------------
End Buttons
------------------------------------------------- */
/* -------------------------------------------------
8.0 Gutenberg Extras
------------------------------------------------- */
.buttons-block {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: var(--bbj);
  align-items: var(--bba);
}

.bbj-start {
  --bbj: start;
}

.bbj-center {
  --bbj: center;
}

.bbj-end {
  --bbj: end;
}

.bba-start {
  --bba: start;
}

.bba-center {
  --bba: center;
}

.bba-end {
  --bba: end;
}

.sticker,
.double-sticker .flayout-inner-child {
  position: sticky;
  top: 6rem;
}

.section-sticker > .flow {
  height: 100%;
}

.section-sticker > .flow > * {
  position: sticky;
  top: 6rem;
}

/* -------------------------------------------------
End Gutenberg Conditionals
------------------------------------------------- */
.buttons-block {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: var(--bbj);
  align-items: var(--bba);
}

.bbj-start {
  --bbj: start;
}

.bbj-center {
  --bbj: center;
}

.bbj-end {
  --bbj: end;
}

.bba-start {
  --bba: start;
}

.bba-center {
  --bba: center;
}

.bba-end {
  --bba: end;
}

.search-form {
  display: grid;
  grid-template-columns: 1fr auto;
  height: fit-content;
}

.search-form .search-field {
  height: 100%;
  width: 100%;
  border: 1px solid var(--gray-200);
  border-radius: 0;
  padding: 0.5rem;
}

.wp-block-search__input {
  border: 1px solid currentColor;
}

hr.wp-block-separator,
.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
  border: none;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  height: 1px;
  background: currentColor;
}

/* -------------------------------------------------
WooCommerce Styles
------------------------------------------------- */

html div[data-block-name="woocommerce/legacy-template"] {
  max-width: unset;
}

.woocommerce-message {
  align-items: center;
  background-color: var(--off-white);
  border-bottom: var(--border);
  border-top-color: var(--gold);
  display: flex;
  justify-content: space-between;
  margin-bottom: 0;
}

.woocommerce-page .woocommerce-message .button {
  order: 3;
}

.woocommerce-message::before {
  color: var(--gold);
  top: 1.75rem;
}

.woocommerce-info,
.woocommerce-error {
  background-color: var(--gold);
  border-top-color: var(--black);
  color: var(--black);
}

.woocommerce-info::before,
.woocommerce-error::before {
  color: var(--black);
}

/* Remove Floats */
.woocommerce div.product form.cart div.quantity,
.woocommerce div.product form.cart .button,
.woocommerce-message::after,
.woocommerce-page .woocommerce-message .button {
  float: none;
}

/* Product Loop / List */
ul.products {
  padding: 0;
}

.woocommerce .products ul,
.woocommerce ul.products {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(auto-fit, minmax(max(16.67%, 12rem), 1fr));
  margin: 0 0 -1px; /* -1px bottom to avoid border double-up with footer for bottom items */
}

/* hide old WooCommerce clear fix markup */
.woocommerce .products ul:after,
.woocommerce .products ul:before,
.woocommerce ul.products:after,
.woocommerce ul.products:before {
  display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
  border-bottom: var(--border);
  border-right: var(--border);
  float: none;
  font-size: clamp(1.25rem, 1.11rem + 0.71vw, 1.75rem);
  margin: 0 -1px 0 0;
  text-align: left;
  width: 100%;
}

.woocommerce ul.products li.product img {
  aspect-ratio: 5/4;
  border-bottom-left-radius: 9999px;
  border-bottom-right-radius: 9999px;
  transition: all 0.5s;
}

.woocommerce ul.products li.product > a.woocommerce-loop-product__link {
  color: inherit;
}

.woocommerce ul.products li.product .price {
  color: inherit;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: inherit;
  font-size: clamp(1.25rem, 1.11rem + 0.71vw, 1.75rem);
  text-transform: none;
}

.woocommerce ul.products li.product .button {
  margin-top: 0.25rem;
}

/* Product Page */

.product-detail {
  color: var(--black);
}

.product-detail .main-col-inner {
  display: grid;
  grid-template-rows: max-content;
}

.product-header {
  padding: var(--s-2xs) var(--s-xs);
}

.product-short-description p {
  --flow: 0.75rem;
  font-weight: 300;
}

.short-slogan {
  font-style: italic;
  text-transform: uppercase;
}

.short-slogan span {
  margin-left: -0.75rem;
}

.woocommerce #content div.product div.images,
.woocommerce div.product div.images,
.woocommerce-page #content div.product div.images,
.woocommerce-page div.product div.images {
  float: none;
  height: 100%;
  margin-bottom: 0;
  width: 100%;
}

.woocommerce-product-gallery__wrapper {
  height: 100%;
}

.woocommerce-product-gallery__image {
  border-bottom-right-radius: 9999px;
  border-top-right-radius: 9999px;
  /* height: 100%; */
  overflow: hidden;
  transform: translateZ(
    0
  ); /* required so that iOS doesn't show flash of overflow before rounding corners */
}
.woocommerce-product-gallery__image a {
  pointer-events: none;
}
.woocommerce div.product div.images img {
  height: 100%;
}

.quantity-wrap {
  align-items: center;
  justify-content: start;
  display: flex;
  gap: 0.5rem;
}

.quantity-wrap .tc-totals-form {
  width: auto;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  --flow: 0;
  color: inherit;
  font-size: 0.88rem;
  line-height: 1;
}

.woocommerce div.product p.unit-price,
.woocommerce div.product span.unit-price {
  color: var(--gray-500);
  flex: 1 1 auto;
  font-size: 0.8em;
  text-align: left;
  margin-top: 1rem;
}

.single-product .summary.entry-summary,
.woocommerce #content div.product div.summary,
.woocommerce div.product div.summary,
.woocommerce-page #content div.product div.summary,
.woocommerce-page div.product div.summary {
  display: block;
  float: none;
  margin-block-start: 0;
  margin-bottom: 0;
  width: 100%;
}

.single-product .product_meta {
  display: none;
}

.single_variation_wrap .woocommerce-variation-price {
  display: none;
}

.add-to-cart__wrap {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1.5rem;
  row-gap: 1rem;
}

.add-to-cart__wrap p {
  flex: 1 1 9rem;
}

button[name="add-to-cart"] {
  flex: 0 0 auto;
  height: 100%;
  display: grid;
  align-items: center;
}

.woocommerce .add-to-cart__wrap a.added_to_cart {
  display: none;
}

.woocommerce div.product form.cart .variations {
  margin-bottom: 0;
  padding: var(--s-2xs);
}

.woocommerce-variation-description {
  padding: 0 var(--s-2xs) var(--s-2xs);
}

.woocommerce div.product form.cart .woocommerce-variation-description p {
  font-weight: 500;
  margin-block-end: 0;
}

.woocommerce div.product form.cart table.variations th {
  display: block;
}

.woocommerce div.product form.cart .variations label {
  font-weight: 400;
}

.variations .value {
  display: flex;
  align-items: center;
}

/* Checkout Page */
.woocommerce table.shop_table td {
  vertical-align: top;
}

.woocommerce-checkout label {
  font-size: clamp(1.1rem, 0.96rem + 0.18vw, 1.125rem);
}

#shipping_required_field_wrap.floracart_stylised
  .woocommerce-input-wrapper
  label
  span {
  border-color: var(--black);
  border-radius: 9999px;
  cursor: pointer;
  display: block;
  font-size: clamp(1.1rem, 0.96rem + 0.18vw, 1.125rem);
  min-width: 6.5rem;
  padding: 0.4rem 1.2rem;
  text-align: center;
}

#shipping_required_field_wrap.floracart_stylised
  .woocommerce-input-wrapper
  label
  span:hover {
  background-color: var(--gold);
}

#shipping_required_field_wrap.floracart_stylised
  .woocommerce-input-wrapper
  input[type="radio"]:checked
  + span {
  background-color: var(--gold-50);
}

#kdhc_billing_details_header_field {
  margin-top: var(--s-md);
}

.woocommerce-checkout .col2-set .col-2 {
  margin-top: var(--s-2xl);
}

#ship-to-different-address label {
  align-items: center;
  display: flex;
  gap: 0.5rem;
}

.woocommerce-checkout .checkout .shipping_address {
  padding-top: 0.375rem;
}

label[for="order_comments"] {
  font-size: clamp(1.1rem, 0.96rem + 0.18vw, 1.125rem);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table tfoot td {
  font-weight: 500;
}

#add_payment_method #payment ul.payment_methods,
.woocommerce-cart #payment ul.payment_methods,
.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 2px solid var(--off-white);
}

.wc_payment_method > input[type="radio"],
.wc_payment_method > label {
  display: inline-block;
}

#add_payment_method #payment,
.woocommerce-cart #payment,
.woocommerce-checkout #payment {
  background-color: var(--white);
}

#add_payment_method #payment div.payment_box,
.woocommerce-cart #payment div.payment_box,
.woocommerce-checkout #payment div.payment_box {
  background-color: var(--white);
  border: 2px solid var(--gold);
  margin: 0.25rem 0 2rem;
}

#add_payment_method #payment div.payment_box::before,
.woocommerce-cart #payment div.payment_box::before,
.woocommerce-checkout #payment div.payment_box::before {
  border-bottom: 0.7rem solid var(--gold);
  top: -0.7rem;
}

#add_payment_method #payment ul.payment_methods li input,
.woocommerce-cart #payment ul.payment_methods li input,
.woocommerce-checkout #payment ul.payment_methods li input {
  accent-color: var(--black);
  margin-right: 0.5rem;
  position: relative;
  top: -2px;
}

/* Stripe */
.wc-payment-form .wc-stripe-elements-field,
.wc-payment-form .wc-stripe-iban-element-field {
  border-color: var(--black);
  padding: 0.75rem;
}

/* Login page */
.woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

/* Account Pages */
.woocommerce-edit-address .woocommerce-MyAccount-content > p {
  border: 1px solid var(--gray-100);
  padding: 0.5rem;
  margin-block-end: 1rem;
}

.woocommerce .products img {
  opacity: 1;
}

.woocommerce-order-details__title {
  margin-block: var(--s-sm);
}

.woocommerce-account .wc-item-meta {
  margin-block-start: var(--s-2xs);
}
/* -------------------------------------------------
End WooCommerce Styles
------------------------------------------------- */

/* -------------------------------------------------
9.0 Media
------------------------------------------------- */

.wp-block-lazyblock-hamlet-svg-header {
  max-width: 58rem;
}

.wp-block-lazyblock-hamlet-svg-header svg {
  height: auto;
  width: 100%;
}

.rounded-img {
  align-content: center;
  display: grid;
  grid-template-rows: auto;
  height: 100%;
  justify-content: center;
}

.wp-block-lazyblock-rounded-image {
  --auto-child-max-width: var(--w-full);
  height: 100%;
}

.vh-full-img,
.rounded-img.h-full {
  grid-template-rows: 1fr;
  height: 100%;
  max-height: 100vh;
}

.vh-full-img > img,
.rounded-img img {
  --focus: center;
  height: 100%;
}

.rounded-img.mw-lg,
.rounded-img.mw-md {
  padding-block-start: var(--s-3xs);
}

.rounded-img.mw-lg img,
.rounded-img.mw-md img {
  max-width: var(--w-2xs);
}

.wp-block-lazyblock-image-grid {
  height: 100%;
}

.img-grid {
  --auto-child-max-width: 100%;
  --col-gap: 0;
  --grid-padding: var(--s-sm);
  --row-gap: 1rem;
  column-gap: var(--col-gap);
  display: grid;
  height: 100%;
  justify-content: center;
  overflow: hidden;
  padding: var(--grid-padding);
  row-gap: var(--row-gap);
}

.img-grid figure {
  overflow: hidden;
  position: relative;
}

.img-grid img {
  height: 100%;
}

.img-grid--1 {
  --row-gap: var(--s-sm);
  align-items: start;
  height: auto;
  padding-block-end: var(--s-sm);
  padding-inline: var(--s-sm);
}

.img-grid--1 figure {
  aspect-ratio: 1.5/1;
  max-height: 22rem;
}

.img-grid--1 .grid-fig--1 {
  align-self: end;
}

.img-grid--2 {
  align-items: center;
  grid-template-areas: "a b";
  padding-block-end: var(--s-md);
  padding-block-start: var(--s-md);
}

.img-grid--2 figure {
  height: 100%;
  max-height: 30rem;
}

.img-grid--3 {
  --p-inline: 0;
  --row-gap: var(--s-sm);
  --grid-tc: 1fr 1fr;
  align-items: start;
  grid-template-columns: var(--grid-tc);
  justify-items: center;
  max-width: unset;
  padding-block-end: var(--s-sm);
  padding-inline: var(--p-inline);
}

.img-grid--3 figure {
  aspect-ratio: 2/3;
}

.img-grid--4 {
  --row-gap: 2.25rem;
  --grid-padding: 0;
  grid-template-areas:
    "a a"
    "b c";
}

.img-grid--4 .grid-fig--1 {
  grid-area: a;
}

.img-grid--4 .grid-fig--2 {
  grid-area: b;
}

.img-grid--4 .grid-fig--3 {
  grid-area: c;
}

.image-text-grid {
  border-top: var(--border);
  display: grid;
  gap: 0;
  grid-template-columns: 1fr 1fr;
  margin: 0 0 -1px; /* -1px bottom to avoid border double-up with footer for bottom items */
}

.image-text-grid > * + * {
  border-left: var(--border);
}

.grid-item__text-wrap {
  padding: 0 var(--s-2xs) var(--s-xs);
  text-align: center;
}

/* -------------------------------------------------
10.0 - Plugins
------------------------------------------------- */

/* -------------------
10.1 - WooCommerce
--------------------*/

.woocommerce form .form-row .required {
  color: var(--black);
}

.select2-search.select2-search--dropdown,
.woocommerce-billing-fields > h3:first-of-type {
  display: none;
}

.woocommerce-additional-fields {
  margin-top: 2rem;
}

.woocommerce .quantity .qty {
  padding: 0.4rem 1.1rem;
  width: 6rem;
}

dl p {
  line-height: 1.5;
}

.wp-block-lazyblock-simple-product-block {
  padding: var(--s-sm) var(--s-xs);
}

.product-link-wrap {
  text-align: center;
}

.product-link {
  background-color: var(--gold);
  border: var(--border);
  border-bottom-right-radius: 9999px;
  border-top-right-radius: 9999px;
  color: var(--black);
  cursor: pointer;
  display: inline-block;
  line-height: var(--line-h);
  margin-block-start: var(--s-xs);
  max-width: 25.75rem;
  padding: var(--s-xxs) var(--s-sm);
  text-align: center;
  text-decoration: none;
  transition: background-color 0.3s ease-in-out;
  width: 100%;
}

.product-link:hover,
.product-link:focus,
.product-link:active {
  background-color: var(--gold-100);
}

/* SMART CART - POPUP MINI CART */

#woocommerce-smart-cart-popup.popup-cart-content-overlay .popup-cart-content {
  padding-left: var(--s-xs);
  padding-right: var(--s-xs);
  padding-top: calc(var(--h-header) - 1px);
}

#woocommerce-smart-cart-popup .popup-cart-content.animated {
  animation-duration: 0.6s;
}

#woocommerce-smart-cart-data {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.popup-cart-content-overlay
  .popup-cart-content
  #popup-cart-info
  .popup-cart-header {
  align-items: center;
  background-color: var(--gold);
  border-bottom: 2px solid var(--black);
  display: flex;
  font-size: clamp(1.1rem, 0.96rem + 0.18vw, 1.125rem);
  height: calc(var(--h-header) - 1px);
  isolation: isolate;
  justify-content: space-between;
  position: fixed;
  text-align: left;
  top: 0;
  width: calc(
    100% - var(--s-xs) - var(--s-xs)
  ); /* 40px = L + R padding of overlay */
}

.popup-cart-content-overlay .popup-cart-content #popup-cart-info {
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
  margin-block-start: 0.75rem;
  max-height: calc(100vh - 200px - var(--h-header));
}

#popup-cart-info::-webkit-scrollbar {
  width: 0.2rem;
}

#popup-cart-info::-webkit-scrollbar-track {
  background: var(--scrollbar-track);
}

#popup-cart-info::-webkit-scrollbar-thumb {
  background-color: var(--scrollbar-thumb);
  border-radius: 0.25rem;
}

.popup-cart-content-overlay
  .popup-cart-content
  .popup-cart-header
  .close-popup-cart {
  left: initial;
  position: static;
}

#woocommerce-smart-cart-popup .popup-cart-content .close-popup-cart {
  background-color: var(--gold);
}

.popup-cart-content-overlay.active .popup-cart-content {
  background-color: var(--gold);
  max-width: unset;
  width: 100%;
}

.popup-cart-content-overlay .popup-cart-content > .close-popup-cart {
  display: none;
}

.popup-cart-content-overlay .popup-cart-content .cart-prd-row,
.cart-prd-desc > .variation,
.popup-cart-content-overlay
  .popup-cart-content
  .cart-prd-row
  .woocommerce-smart-cart-remove-cart-item,
.woocommerce-smart-cart-calculation .woocommerce-smart-cart-calculation-amt {
  font-size: 0.875rem;
}

.popup-cart-content-overlay .popup-cart-content .cart-prd-row {
  align-items: start;
  border-top: 0;
  display: grid;
  grid-template-areas:
    "thumb desc"
    "thumb remove";
  grid-template-columns: 40% 1fr;
  padding-bottom: var(--s-xs);
  padding-top: var(--s-xs);
  text-transform: uppercase;
}

.popup-cart-content-overlay
  .popup-cart-content
  .cart-prd-row
  .woocommerce-smart-cart-remove-cart-item {
  grid-area: remove;
  height: auto;
  justify-self: start;
  margin-block-start: 1rem;
  margin-inline-start: -0.25rem;
  padding: 0.25rem;
  position: static;
  width: auto;
}

.popup-cart-content-overlay
  .popup-cart-content
  .cart-prd-row
  .woocommerce-smart-cart-remove-cart-item:before {
  content: "Remove" !important;
  font-family: var(--body-font);
  font-weight: 500;
  text-transform: uppercase;
}

#woocommerce-smart-cart-popup .cart-prd-thumb {
  float: none;
  grid-area: thumb;
  padding-right: 1.25rem;
  width: 100%;
}

.popup-cart-content-overlay .popup-cart-content .cart-prd-row::after {
  background-color: var(--black);
  bottom: 0;
  content: "";
  display: block;
  height: 2px;
  position: absolute;
  width: max(22%, 6.25rem);
}

.popup-cart-content-overlay .popup-cart-content .cart-prd-row:last-of-type {
  border: 0;
}

.popup-cart-content-overlay
  .popup-cart-content
  .cart-prd-row:last-of-type::after {
  display: none;
}

.cart-prd-thumb img {
  aspect-ratio: 1;
  border-bottom-left-radius: 1.25rem;
  border-top-left-radius: 1.25rem;
  border-bottom-right-radius: 50%;
  border-top-right-radius: 50%;
  max-width: 300px;
  opacity: 1;
}

.popup-cart-content-overlay .popup-cart-content .cart-prd-row .cart-prd-desc {
  align-items: center;
  column-gap: 0.75rem;
  display: grid;
  grid-area: desc;
  grid-template-areas:
    "info info"
    "variation variation"
    "price qty";
  grid-template-columns: 1fr max-content;
  row-gap: 1.2rem;
  width: 95%;
}

.woocommerce-smart-cart-item-info {
  font-size: 1rem;
  grid-area: info;
  padding-bottom: 0 !important;
}

.woocommerce-smart-cart-quantity {
  background-color: var(--white);
  float: none;
  grid-area: qty;
  height: 1.75rem;
  margin-right: 0;
}

.woocommerce-smart-cart-quantity input,
.woocommerce-smart-cart-add-related-product input {
  height: 1.75rem !important;
}

.woocommerce-smart-cart-quantity input[type="text"],
.woocommerce-smart-cart-add-related-product input[type="text"] {
  border-left: 1px solid var(--black) !important;
  border-right: 1px solid var(--black) !important;
  border-radius: 0;
}

.woocommerce-smart-cart-quantity
  input[type="button"].woocommerce-smart-cart-remove-item,
.woocommerce-smart-cart-quantity
  input[type="button"].woocommerce-smart-cart-add-item {
  border: 0;
  font-family: var(--body-font);
  font-size: 1.5rem !important;
  font-weight: 400;
  line-height: 0.75 !important;
  padding: 0;
  width: 2rem !important;
}

.woocommerce-smart-cart-quantity {
  border-radius: 9999px;
  grid-area: qty;
  overflow: hidden;
}

.cart-prd-desc > .variation {
  grid-area: variation;
}

.cart-prd-desc .cart-prd-price {
  grid-area: price;
}

.popup-cart-content-overlay .popup-cart-content .cart-prd-row .cart-prd-price,
#woocommerce-smart-cart-subtotal,
#woocommerce-smart-cart-total {
  font-weight: 400;
}

.woocommerce-smart-cart-calculation {
  border-top: 2px solid var(--black);
  margin-block-start: 0.75rem;
  padding-top: 1rem;
}

.woocommerce-smart-cart-calculation .woocommerce-smart-cart-button {
  background-color: var(--white);
  border: 0;
  color: var(--black);
  font-weight: 500;
  margin-top: 1rem;
  padding-bottom: var(--s-xs);
  padding-top: var(--s-xs);
  text-align: center;
  text-transform: uppercase;
  transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;
  width: 100%;
}

.woocommerce-smart-cart-button[href$="/shop"] {
  display: none;
}

.empty-order {
  margin-block-start: var(--s-lg);
  min-height: 8rem;
}

/* Extra Product Options */
.tc-extra-product-options {
  border-bottom: var(--border);
}

.tm-extra-product-options-field {
  padding-inline-end: var(--s-2xs);
  padding-inline-start: var(--s-2xs);
}

.summary .tm-extra-product-options .tc-row,
.tc-row,
.tc-extra-product-options .cpf-section.tc-cell {
  margin: 0;
}

.tm-extra-product-options .tc-epo-label {
  margin-block-end: 0.5rem;
  margin-block-start: 0;
}

.tm-extra-product-options .dietary .tmcp-textarea {
  height: 4.5rem;
}

dt.tm-final-totals {
  display: none;
}

.tc-totals-form .tm-epo-totals {
  padding: 0;
  position: relative;
  top: -1px;
}

.tm-extra-product-options-totals .tm-final-totals .amount.final {
  font-weight: 500;
}

.catering-options .tc-section-inner-wrap {
  --tcgap: 0;
}

.catering-options .tc-section-inner-wrap .cpf-element {
  padding-block-end: var(--s-2xs);
}

.tm-extra-product-options .tc-cell {
  padding-inline: 0;
}

.tm-extra-product-options .tc-cell.catering-options,
.tm-extra-product-options .tc-cell.dietary {
  padding-inline: var(--s-2xs);
}

.cpf-section.dietary {
  --tcgap: 0;
  border-top: var(--border);
  padding-block-end: var(--s-3xs);
  padding-block-start: var(--s-2xs);
}

.cpf-section.dietary h3 {
  font-size: clamp(1.25rem, 1.11rem + 0.71vw, 1.5rem);
}

.cpf-section.dietary textarea {
  min-height: 5rem;
}

td.product-name a.tm-cart-edit-options,
.tm-cart-edit-options {
  color: var(--gold-900);
  font-size: 1.2rem;
  font-style: normal;
  font-weight: 400;
  padding-block: var(--s-3xs);
}

td.product-name a.tm-cart-edit-options:hover,
.tm-cart-edit-options:hover,
td.product-name a.tm-cart-edit-options:focus,
.tm-cart-edit-options:focus,
td.product-name a.tm-cart-edit-options:active,
.tm-cart-edit-options:active {
  text-decoration: underline;
}

/* WooCommerce category archive pages. Not actually linked to anywhere from the site,
 * but styling them on the off-chance that someone somehow lands on this page.
 */
.archive .woocommerce-products-header,
.archive .woocommerce-notices-wrapper,
.archive .woocommerce-result-count,
.archive .woocommerce-ordering {
  padding-inline: var(--s-xs);
}

.archive .woocommerce-products-header {
  padding-block-start: var(--s-sm);
}

.archive .woocommerce-ordering {
  max-width: 28rem;
  padding-block-end: var(--s-sm);
}

/* MailChimp SignUp */
.mc-field-group .combined {
  display: flex;
}

.mc-field-group .email {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  position: relative;
  z-index: 2;
}

.mc-field-group .subscribe,
html .woocommerce .mc-field-group .subscribe {
  -webkit-appearance: none;
  border-left: 0;
  padding: 0.6875rem 1.6rem 0.6875rem 1.25rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  margin-left: -1px;
  position: relative;
  width: auto;
  z-index: 1;
}

/* Ninja Forms */
.nf-form-cont {
  padding-top: 0.3rem;
}

.nf-form-layout .nf-form-content {
  padding: 0;
  margin-top: 1rem;
}

.nf-form-fields-required {
  padding-bottom: 0.9rem;
}

/*** This is to select which elements should span multiple columns ***/
nf-fields-wrap nf-field:nth-child(3) {
  grid-column: span 2;
}

.nf-field-label label {
  font-weight: 500;
}

.nf-form-content .list-select-wrap .nf-field-element > div,
.nf-form-content input:not([type="button"]),
.nf-form-content textarea {
  background-color: var(--white);
  border: 1px solid var(--black);
  border-radius: 2rem;
  color: var(--black);
  padding-inline-start: 1rem;
  padding-inline-end: 1rem;
}

.nf-error.field-wrap .nf-field-element:after {
  display: none;
}

.nf-form-content input[type="button"] {
  --padding: 0.6875rem var(--s-md);
  cursor: pointer;
}

.nf-form-content input[type="submit"] {
  cursor: pointer;
  min-width: 7.5rem;
}

.nf-form-content button:hover,
.nf-form-content input[type="button"]:hover,
.nf-form-content input[type="submit"]:hover,
.nf-form-content button:focus,
.nf-form-content input[type="button"]:focus,
.nf-form-content input[type="submit"]:focus,
.nf-form-content button:active,
.nf-form-content input[type="button"]:active,
.nf-form-content input[type="submit"]:active {
  background-color: var(--gold);
  border-color: var(--black);
  color: var(--black);
}

@media screen and (min-width: 32rem) {
  .product-header,
  .product-short-description {
    border-bottom: var(--border);
  }
}

@media (min-width: 48rem) {
  .contact-details h1.contact-info {
    padding-block-end: calc(
      (clamp(1.1rem, 0.96rem + 0.18vw, 1.125rem) * var(--line-h)) + var(--s-3xs) +
        var(--s-xs)
    );
  }

  .contact-details .address {
    border-bottom: var(--border);
  }

  .woocommerce-checkout .col2-set .col-2 {
    margin-block-start: 11rem;
  }

  .woocommerce-checkout .checkout .col-2 h3#ship-to-different-address {
    margin-block-start: 0.5rem;
  }
}

@media (min-width: 48.875rem) {
  .product-link-wrap {
    text-align: left;
  }

  .add-to-cart__wrap p {
    order: 2;
  }

  .single-product .product-image {
    border-bottom: var(--border);
  }

  .img-grid--3 {
    --grid-tc: 1fr;
    --p-inline: var(--s-sm);
  }

  .img-grid--3 figure {
    max-width: 13.5rem;
    width: 65%;
  }

  .img-grid--3 figure:first-of-type {
    margin-inline-end: -33%;
  }

  .action-col,
  .border-l {
    --border-l: var(--border, 0);
    border-left: var(--border-l, 0);
  }

  .header-content .action-col,
  .site-navigation .action-col,
  .entry-content .action-col,
  .entry-content .flex-layout > .action-col,
  .theme-footer .action-col,
  .post-type-archive-product .action-col,
  .post-type-archive-product .flex-layout > .action-col {
    max-width: calc(40% + 1px);
  }

  .action-col-left {
    max-width: 40%;
  }

  .entry-content .action-col-left {
    --border-r: var(--border);
  }

  .reverse-sm .action-col-left {
    order: 0;
  }

  .rounded-img.mw-md,
  .rounded-img.mw-lg {
    padding-block-start: var(--s-sm);
  }

  .image-text-grid {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}

@media screen and (min-width: 64rem) {
  :root {
    --h-header: 5.5625rem;
    --h-site-nav: 5rem;
  }

  .hide-to-lg {
    display: grid !important;
  }

  .brand {
    height: 4.25rem;
  }

  .header-cart-btn::before {
    content: "Your order";
    flex: 1 1 auto;
  }

  .desktop-nav {
    display: block;
  }

  .desktop-nav.primary-nav {
    /* border-right: var(--border); */
  }

  #menuButton,
  .curtain-nav-toggle {
    display: none;
  }

  .info-col {
    --align: stretch;
    border-left: var(--border);
    max-width: 24rem;
  }

  .main-col .action-col,
  .flex-layout > .action-col {
    --border-l: 1px solid var(--black);
    --flex-child-max-width: none;
  }

  .full-menu-header h2 {
    max-width: calc(20% - 1px);
  }

  .popup-cart-content-overlay.active .popup-cart-content {
    max-width: 41%;
  }

  .flex-layout > .desktop-col {
    --flex-child-max-width: none;
    display: block;
  }

  .vh-full-img {
    min-height: calc(100vh - var(--h-header) - var(--h-site-nav) + 1px);
    /* min-height: calc(60vh - var(--h-header) - var(--h-site-nav) + 1px); */
  }

  .rounded-img.mw-md img {
    max-width: var(--w-3xs);
  }
}
.popup-cart-content-overlay
  .popup-cart-content
  .cart-prd-row.hide-cart-prd-thumbnail
  .cart-prd-thumb {
  display: block;
}
.charity-disclaimer img {
  max-width: 10rem;
}

.radio-image.tm-tooltip {
  border-radius: 100%;
  aspect-ratio: 1;
}
.single-product.postid-4908 .radio-image-label {
  display: block !important;
  font-size: 0.5em;
}
.tc-tooltip {
  color: #cea24d;
}
.tm-extra-product-options
  ul.tmcp-ul-wrap.tm-element-ul-radio
  li.tmcp-field-wrap {
  margin: 0 0.5rem;
  padding: 0.25rem;
  margin-bottom: 0.5rem;
}
li.tmcp-field-wrap.tmhexcolorimage-li-nowh.tm-per-row.tc-mode-images.tc-active {
  border: 2px solid #000;
  border-radius: 5px;
  background: #e9e9e9;
  transition: all 300ms;
}
#product-4908 .wp-block-flowio-flayout {
  align-items: start;
}

.noui-horizontal .noui-tooltip,
.noui-handle,
.noui-connect {
  background: #cea24d;
}

/* header */
.header-branding {
  display: flex;
  gap: 1rem;
}
.hamlet-svg-header-modified {
  max-width: 100%;
}
.hamlet-svg-header-modified svg {
  width: 100%;
  height: auto;
}
.site-notice {
  color: #fff;
  background-color: var(--gold);
  color: #000;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.site-notice p a {
  color: #000;
  text-decoration: underline;
}
.site-notice.hidden {
  display: none;
}
.site-notice .close {
  background-color: transparent;
}
@media screen and (min-width: 783px) {
  .hamlet-svg-header-modified {
    max-height: 80vh;
  }
  .hamlet-svg-header-modified svg {
    height: 100%;
    width: auto;
  }
}

.tax-product_cat.term-corporate-catering .woocommerce-products-header {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}

.tax-product_cat.term-corporate-catering .wc-block-components-product-image img,
.woocommerce-shop img:not(.rounded-img img) {
  aspect-ratio: 4/3;
  border-radius: 0.75rem;
  overflow: hidden;
}
.wp-block-button.is-style-brand-button {
  display: block;
}
.wp-block-button.is-style-brand-button a {
  background-color: var(--gold);
  border: var(--border);
  border-bottom-right-radius: 9999px;
  border-top-right-radius: 9999px;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  color: var(--black);
  cursor: pointer;
  display: inline-block;
  line-height: var(--line-h);
  margin-block-start: var(--s-xs);
  max-width: 25.75rem;
  padding: var(--s-xxs) var(--s-sm);
  text-align: center;
  text-decoration: none;
  transition: background-color 0.3s ease-in-out;
  width: 100%;
}

.woocommerce.wc-block-catalog-sorting .woocommerce-ordering {
  margin-left: 0;
  padding-left: 0;
  padding-bottom: 0;
}
.tm-extra-product-options .radio-image,
.tm-extra-product-options .checkbox-image {
  border-radius: 100%;
  aspect-ratio: 1;
}
.tm-extra-product-options .tm-epo-field.tmcp-checkbox {
  width: 1.2rem !important;
  height: 1.2rem !important;
  border-radius: 5px;
}
.radio-image-label,
.checkbox-image-label {
  font-size: clamp(1.1rem, 0.96rem + 0.18vw, 1.125rem);
}
.dietary-options .tc-secttion-inner-wrap > .tc-row {
  display: flex;
}
.tc-element-inner-wrap {
  margin-top: 0.25rem;
}
.dietary-options .tc-element-inner-wrap h3 {
  display: none;
}
.dietary-options .tc-element-inner-wrap .tc-row.tc-quantity-right {
  max-width: 50%;
  gap: 1.5rem;
  height: 42px;
}
.dietary-options h3 {
  margin-bottom: var(--flow) !important;
}
.dietary-options *:not(h3) {
  font-size: clamp(1.1rem, 0.96rem + 0.18vw, 1.125rem) !important;
}

.term-corporate-group-catering .wc-block-product-template__responsive > li {
  display: flex;
  flex-direction: column;
}
.term-corporate-group-catering
  .wc-block-product-template__responsive
  > li
  .wp-block-woocommerce-product-price {
  margin-top: auto;
}

.tm-extra-product-options .price-per-person-div .tc-price {
  margin-top: 6px !important;
}
.price-per-person-div .tc-price .amount:after {
  content: " per person";
}
