/* Theme base styles */

/* Fonts
Custom @font-face declarations.
*/

/* Font imports
The @font-face declarations now live in an inline <style> in
src/templates/layouts/base.html, next to the font preloads, so the preload URL
and the font URL are identical and the download starts from the HTML rather than
after this stylesheet loads. Reference the families via the --font-* custom
properties in variables.css. Do not redeclare these families here: a later
@font-face with the same family and weight overrides the inline one and brings
back the preload URL mismatch.
*/

/* Variables
Design tokens (colors, etc.) exposed as CSS custom properties on :root.
*/

/* Design tokens
Generated from Figma variables (Default mode). Do not hardcode these hex values elsewhere — reference the custom properties instead.
*/

:root {
  /* Fonts */
  --font-primary: 'Rubik', sans-serif;
  --font-secondary: 'TAY Bone Quixote', serif;
  --font-tertiary: 'TAY Lennon', serif;
  --font-quaternary: 'TAYRosemary', serif;

  /* Brand */
  --color-brand-primary: #681F39;
  --color-brand-primary-deep: #671837;
  --color-brand-secondary: #C43527;
  --color-brand-salmon: #F7AD97;
  --color-brand-cream: #F9F6EF;
  --color-brand-orange: #E38A26;
  --color-brand-olive: #B4B355;
  --color-brand-olive-tint: #D7D4A2;

  /* Neutral */
  --color-neutral-white: #FFFFFF;
  --color-neutral-black: #000000;
  --color-neutral-gray: #959494;

  /* Accent */
  --color-accent-peach-light: #F9CFC0;
  --color-accent-peach: #E9906D;
  --color-accent-blush: #F8E0D5;
  --color-accent-sand: #EBDFC8;
  --color-accent-cream-warm: #FBF6F0;
  --color-accent-olive: #E1DEA5;
  --color-accent-olive-dark: #D7D4A2;
  --color-accent-lavender: #C8AEC3;
  --color-accent-burgundy-mid: #762844;
  --color-accent-brick: #C93327;
  --color-accent-citron: #C8C65B;

  /* Spacing */
  --spacing-2: 2px; /* Hairline gaps, tight icon spacing */
  --spacing-4: 4px; /* Tight element spacing, small icon gaps */
  --spacing-8: 8px; /* Compact spacing, form field gaps */
  --spacing-10: 10px; /* Compact spacing, form field gaps */
  --spacing-12: 12px; /* Default text spacing, small card padding */
  --spacing-16: 16px; /* Standard element spacing, input padding */
  --spacing-18: 18px;
  --spacing-20: 20px; /* Comfortable spacing between related items */
  --spacing-24: 24px; /* Section sub-groups, card padding */
  --spacing-32: 32px; /* Between content blocks, card gaps */
  --spacing-36: 36px; /* Between related content groups */
  --spacing-40: 40px; /* Between content groups */
  --spacing-48: 48px; /* Small section padding */
  --spacing-56: 56px; /* Medium section padding */
  --spacing-64: 64px; /* Section gaps, large padding */
  --spacing-72: 72px; /* Large content group spacing */
  --spacing-80: 80px; /* Section padding, hero spacing */
  --spacing-96: 96px; /* Large section padding */
  --spacing-112: 112px; /* Hero/banner vertical padding */
  --spacing-120: 120px;
  --spacing-124: 124px;
  --spacing-128: 128px; /* Major section breaks */
  --spacing-160: 160px; /* Extra large section spacing */
  --spacing-200: 200px; /* Full section separators */
  --spacing-224: 224px;
  --spacing-240: 240px; /* Hero-level spacing */
  --spacing-300: 300px; /* Maximum section spacing */
}

/* Tools
Any animations, or functions used throughout the project.
Note: _macros.css needs to be imported into each stylesheet where macros are used and not included here
*/

/* Generic
This is where reset, normalize & box-sizing styles go.
*/

*, *:before, *:after {
  box-sizing: border-box;
}
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
  font-family: var(--font-primary);
  background-color: var(--color-brand-cream);
  overflow: unset;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * Add the correct box sizing in Firefox.
 */

hr {
  box-sizing: content-box;
  height: 0;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: 500;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Remove the inheritance of text transform in Edge and Firefox.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers.
 */

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

figure {
  margin: 0;
}

/* Objects
Non-cosmetic design patterns including grid and layout classes)
*/



/* CSS variables */

:root {
  --column-gap: 2.13%;
  --column-width-multiplier: 8.333;
}

/* Mobile layout */

.row-fluid {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}


  .row-fluid .span1,
  .row-fluid .span2,
  .row-fluid .span3,
  .row-fluid .span4,
  .row-fluid .span5,
  .row-fluid .span6,
  .row-fluid .span7,
  .row-fluid .span8,
  .row-fluid .span9,
  .row-fluid .span10,
  .row-fluid .span11,
  .row-fluid .span12{
  min-height: 1px;
  width: 100%;
}

/* Desktop layout */

@media (min-width: 768px) {
  .row-fluid {
    flex-wrap: nowrap;
    justify-content: space-between;
  }

  
    .row-fluid .span1 {
      width: calc(var(--column-width-multiplier) * 1% * 1 - var(--column-gap) * (11 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span2 {
      width: calc(var(--column-width-multiplier) * 1% * 2 - var(--column-gap) * (10 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span3 {
      width: calc(var(--column-width-multiplier) * 1% * 3 - var(--column-gap) * (9 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span4 {
      width: calc(var(--column-width-multiplier) * 1% * 4 - var(--column-gap) * (8 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span5 {
      width: calc(var(--column-width-multiplier) * 1% * 5 - var(--column-gap) * (7 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span6 {
      width: calc(var(--column-width-multiplier) * 1% * 6 - var(--column-gap) * (6 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span7 {
      width: calc(var(--column-width-multiplier) * 1% * 7 - var(--column-gap) * (5 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span8 {
      width: calc(var(--column-width-multiplier) * 1% * 8 - var(--column-gap) * (4 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span9 {
      width: calc(var(--column-width-multiplier) * 1% * 9 - var(--column-gap) * (3 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span10 {
      width: calc(var(--column-width-multiplier) * 1% * 10 - var(--column-gap) * (2 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span11 {
      width: calc(var(--column-width-multiplier) * 1% * 11 - var(--column-gap) * (1 * var(--column-width-multiplier) / 100));
    }
  
}
.content-wrapper {
  margin: 0 auto;
  padding: 0 1rem;
}

@media screen and (min-width: 1380px) {
  .content-wrapper {
    padding: 0;
  }
}
.container {
  max-width: 1264px;
  width: 100%;
  margin: auto;
  padding: 0 var(--spacing-16);
}
.container--md {
  max-width: 1024px;
}
.container--lg {
  max-width: 1344px;
}
.container--footer {
  max-width: 1272px;
  padding: 0 var(--spacing-24);
}

.dnd-section > .row-fluid {
  margin: 0 auto;
}

.dnd-section .dnd-column {
  padding: 0;
}


@media (min-width:768px) {
  .container {
    padding-inline: var(--spacing-32);
  }
}

/* Elements
Base HTML elements are styled in this section (<body>, <h1>, <a>, <p>, <button> etc.)
*/

/* The overflow-wrap is meant to prevent long/large words from breaking the mobile responsiveness of a page (e.g. horizontal scrolling). It is preferred to reduce font sizes on mobile to address this, with this CSS specifically helping with extreme scenarios where a reduction in font size is not possible. */

body {
  line-height: 1.4;
  overflow-wrap: break-word;
}

/* Handles word breaking for a few specific languages which handle breaks in words differently. If your content is not translated into these languages, you can safely remove this.  */

html[lang^="ja"] body,
html[lang^="zh"] body,
html[lang^="ko"] body {
  line-break: strict;
  overflow-wrap: normal;
  word-break: break-all;
}

/* Paragraphs */

p {
  font-size: 1rem;
  margin: 0 0 1.4rem;
}

/* Anchors */

a {
  cursor: pointer;
  transition: 0.3s ease-in-out;
}

a:focus-visible {
  outline-color: var(--color-brand-primary);
}

/* Headings */

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 1.4rem;
  font-weight: 400;
}

/* Type scale — reusable heading/body styles matching this project's
   Figma text styles (Heading/H1, Heading/H3, Body/Callout, Body/Lead).
   Apply as an extra class alongside a module's own BEM class and
   whichever heading tag fits that module's place in the page's heading
   outline: heading LEVEL (h1-h6) is chosen for document structure, and
   doesn't always match visual size across modules (e.g.
   product-slider__heading and desert-grown__headline are both <h2>,
   but only the former is Heading/H1-sized; split-content__row-heading
   and recipe-slider__intro-line are <h3> but are Body/Callout and
   Body/Lead weight, not the bold Heading/H3 treatment) — see
   .claude/rules/markup.md. Typography only: color is left to each
   module, since the same size/weight shows up on different background
   colors across the site (burgundy, salmon, white). */

.heading-h1 {
  font-family: var(--font-secondary);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.15;
  letter-spacing: normal;
}

.heading-h3 {
  font-family: var(--font-secondary);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: normal;
}

.body-callout {
  font-family: var(--font-tertiary);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: normal;
}

.body-lead {
  font-family: var(--font-tertiary);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: normal;
}

@media (min-width: 768px) {
  .heading-h1 {
    font-size: 36px;
  }

  .body-lead {
    font-size: 20px;
  }
}

@media (min-width: 1199px) {
  .heading-h1 {
    font-size: 48px;
    line-height: 55px;
  }

  .heading-h3 {
    font-size: 28px;
    line-height: 32px;
  }

  .body-callout {
    font-size: 20px;
  }

  .body-lead {
    font-size: 24px;
    line-height: 1.333;
  }
}

/* Lists */

ul,
ol {
  margin: 0 0 1.4rem;
}

ul ul,
ol ul,
ul ol,
ol ol {
  margin: 0;
}

ul.no-list {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

/* Code blocks */

pre {
  overflow: auto;
}

code {
  vertical-align: bottom;
}

/* Blockquotes */

blockquote {
  border-left: 2px solid;
  margin: 0 0 1.4rem;
  padding-left: 0.7rem;
}

/* Horizontal rules */

hr {
  border: none;
  border-bottom: 1px solid #CCC;
}

/* Image alt text */

img {
  font-size: 0.583rem;
  word-break: normal;
  max-width: 100%;
  height: auto;
}
button,
.button,
.hs-button {
  cursor: pointer;
  display: inline-block;
  text-align: center;
  transition: all 0.15s linear;
  white-space: normal;
}

button:disabled,
.button:disabled,
.hs-button:disabled {
  background-color: #D0D0D0;
  border-color: #D0D0D0;
  color: #E6E6E6;
}

/* No button */

.no-button,
.no-button:hover,
.no-button:focus,
.no-button:active {
  background: none;
  border: none;
  border-radius: 0;
  color: initial;
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 0;
  padding: 0;
  text-align: left;
  text-decoration: none;
  transition: none;
}

.l-btn {
  border-radius: 2px;
  border: 1px solid var(--color-brand-primary);
  padding: var(--spacing-8) var(--spacing-12);
  background-color: transparent;
  color: var(--color-brand-primary);
  min-height: 40px;
  font-family: var(--font-tertiary);
  font-size: 14px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 1.6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  transition: 0.3s ease-in-out;
}
.l-btn:is(:hover,:focus-visible) {
  background-color: var(--color-brand-primary);
  color: var(--color-neutral-white);
  border-radius: 2px;
}
.l-btn--light {
  border-color: var(--color-neutral-white);
  color: var(--color-neutral-white);
}
.l-btn--light:focus {
  color: var(--color-neutral-white);
}
.l-btn--light:is(:hover,:focus-visible) {
  background-color: var(--color-neutral-white);
  color: var(--color-brand-primary);
}
.l-btn--salmon {
  border-color: var(--color-brand-salmon);
  color: var(--color-brand-salmon);
}
.l-btn--salmon:is(:hover,:focus-visible) {
  background-color: var(--color-brand-salmon);
  color: var(--color-brand-primary);
}
.l-btn--secondary {
  font-family: var(--font-secondary);
  background-color: var(--color-brand-secondary);
  border-color: var(--color-brand-secondary);
  color: var(--color-brand-cream);
  
  border-radius: 10px;
}
.l-btn--secondary:is(:hover,:focus-visible) {
  background-color: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  border-radius: 10px;
}
@media (min-width: 1199px) {
  .l-btn {
    font-size: 16px;
    min-height: 75px;
    padding: var(--spacing-16) var(--spacing-32);
  }
  .l-btn--secondary {
    letter-spacing: 2px;
    font-size: 20px;
    padding: 20px 32px;
    min-height: 61px;
  }
}
/* Fields */

.hs-form-field {
  margin-bottom: 1.4rem;
}

/* Labels */

form label {
  display: block;
  font-size: 0.875rem;
  margin-bottom: 0.35rem;
}

/* Form Title */
.form-title {
  margin-bottom: 0;
}

/* Help text */

form legend {
  font-size: 0.875rem;
}

/* Inputs */

form input[type=text],
form input[type=search],
form input[type=email],
form input[type=password],
form input[type=tel],
form input[type=number],
form input[type=file],
form select,
form textarea {
  display: inline-block;
  font-size: 0.875rem;
  padding: 0.7rem;
  width: 100%;
}

form textarea {
  resize: vertical;
}

form fieldset {
  max-width: 100% !important;
}

/* Inputs - checkbox/radio */

form .inputs-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

form .inputs-list > li {
  display: block;
  margin: 0.7rem 0;
}

form .inputs-list input,
form .inputs-list span {
  vertical-align: middle;
}

form input[type=checkbox],
form input[type=radio] {
  cursor: pointer;
  margin-right: 0.35rem;
}

/* Inputs - date picker */

.hs-dateinput {
  position: relative;
}

.hs-dateinput:before {
  content:'\01F4C5';
  position: absolute;
  right: 10%;
  top: 50%;
  transform: translateY(-50%);
}

.fn-date-picker .pika-table thead th {
  color: #FFF;
}

.fn-date-picker td.is-selected .pika-button {
  border-radius: 0;
  box-shadow: none;
}

.fn-date-picker td .pika-button:hover,
.fn-date-picker td .pika-button:focus {
  border-radius: 0 !important;
  color: #FFF;
}

/* Inputs - file picker */

form input[type=file] {
  background-color: transparent;
  border: initial;
  padding: initial;
}

/* Headings and text */

form .hs-richtext,
form .hs-richtext p {
  font-size: 0.875rem;
  margin: 0 0 1.4rem;
}

form .hs-richtext img {
  max-width: 100% !important;
}

/* GDPR */

.legal-consent-container .hs-form-booleancheckbox-display > span,
.legal-consent-container .hs-form-booleancheckbox-display > span p {
  margin-left: 1rem !important;
}

/* Validation */

.hs-form-required {
  color: #EF6B51;
}

.hs-input.invalid.error {
  border-color: #EF6B51;
}

.hs-error-msg {
  color: #EF6B51;
  margin-top: 0.35rem;
}

/* Submit button */

form input[type=submit],
form .hs-button {
  cursor: pointer;
  display: inline-block;
  text-align: center;
  transition: all 0.15s linear;
  white-space: normal;
}

/* Captcha */

.grecaptcha-badge {
  margin: 0 auto;
}


  /* Search button input field and suggestions */
  .body-container-wrapper .hs-search-field__button {
    padding: 15px;
  }

  .body-container-wrapper .hs-search-field__bar--button-inline .hs-search-field__button {
    margin-left: 6px;
    margin-bottom: 0;
  }

  .body-container-wrapper .hs-search-field__button svg {
    height: 15px;
    fill: #fff;
  }

  .body-container-wrapper .hs-search-field__bar > form > .hs-search-field__input {
    padding: 10px;
  }

  .body-container-wrapper .hs-search-field__suggestions li a {
    color: #494A52;
    padding: 0.35rem 0.7rem;
    text-decoration: none;
    transition: background-color 0.3s;
  }

/* Table */

table {
  border-collapse: collapse;
  margin-bottom: 1.4rem;
  overflow-wrap: break-word;
}

/* Table cells */

td,
th {
  vertical-align: top;
}

/* Table header */

thead th {
  vertical-align: bottom;
}

/* Components
Specific pieces of UI that are stylized. Typically used for global partial styling
*/

/* Website header partial (src/templates/partials/header.html)
   The header itself — logo, nav, CTA, sticky states, mobile menu — is styled
   in src/css/theme-overrides.css ("7. Website header"), since the header is
   hand-authored directly in the partial rather than a custom module.
   This file only covers what's left in the partial: the navigation skipper.
*/

.header__skip {
  height: 1px;
  left: -1000px;
  overflow: hidden;
  position: absolute;
  text-align: left;
  top: -1000px;
  width: 1px;
}

.header__skip:hover,
.header__skip:focus,
.header__skip:active {
  height: auto;
  left: 0;
  overflow: visible;
  top: 0;
  width: auto;
  z-index: 100;
}
/* Menu and simple menu */

.hs-menu-wrapper ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding-left: 0;
}

/* Horizontal menu */

.hs-menu-wrapper.hs-menu-flow-horizontal .hs-menu-children-wrapper {
  flex-direction: column;
}

@media (max-width: 767px) {
  .hs-menu-wrapper.hs-menu-flow-horizontal ul {
    flex-direction: column;
  }
}

/* Vertical menu */

.hs-menu-wrapper.hs-menu-flow-vertical ul {
  flex-direction: column;
}

/* Flyouts */

.hs-menu-wrapper.hs-menu-flow-vertical.flyouts ul {
  display: inline-flex;
}

@media (max-width: 767px) {
  .hs-menu-wrapper.hs-menu-flow-vertical ul {
    display: flex;
  }
}

.hs-menu-wrapper.flyouts .hs-item-has-children {
  position: relative;
}

.hs-menu-wrapper.flyouts .hs-menu-children-wrapper {
  left: -9999px;
  opacity: 0;
  position: absolute;
}

.hs-menu-wrapper.flyouts .hs-menu-children-wrapper a {
  display: block;
  white-space: nowrap;
}

.hs-menu-wrapper.hs-menu-flow-horizontal.flyouts .hs-item-has-children:hover > .hs-menu-children-wrapper {
  left: 0;
  opacity: 1;
  top: 100%;
}

.hs-menu-wrapper.hs-menu-flow-vertical.flyouts .hs-item-has-children:hover > .hs-menu-children-wrapper {
  left: 100%;
  opacity: 1;
  top: 0;
}

@media (max-width: 767px) {
  .hs-menu-wrapper.flyouts .hs-menu-children-wrapper,
  .hs-menu-wrapper.hs-menu-flow-horizontal.flyouts .hs-item-has-children:hover > .hs-menu-children-wrapper,
  .hs-menu-wrapper.hs-menu-flow-vertical.flyouts .hs-item-has-children:hover > .hs-menu-children-wrapper {
    left: 0;
    opacity: 1;
    position: relative;
    top: auto;
  }
}

/* CTA, logo, and rich text images */

.hs_cos_wrapper_type_cta img,
.hs_cos_wrapper_type_logo img,
.hs_cos_wrapper_type_rich_text img {
  height: auto;
  max-width: 100%;
}

/* Utilities
Helper classes with ability to override anything that comes before it
*/

/* For content that needs to be visually hidden but stay visible for screenreaders */

.show-for-sr {
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  height: 1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

@media (max-width: 767px) {
  .show-for-sr--mobile {
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    height: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
  }
}

/* Badge popup — a standalone, theme-aware block (not scoped under
   .hero-banner) since the same badge/popup pattern is reused by other
   sections in SCOPE.md (Desert Grown, Map Section, Photo Story Block).
   `.popup__panel` sets --popup-fg/--popup-bg and its own text color from
   them; every child below just inherits `color` rather than repeating a
   theme value, so `.popup--dark` only has to override the two variables.

   Centered over the full viewport on a light dimming overlay — `.nd.popup`
   is a fixed, full-screen flex container that centers `.popup__panel`;
   src/js/main.js ("Badge popups") only toggles `hidden` and traps focus,
   it doesn't calculate a position. */

.nd.popup {
  --popup-bg: var(--color-brand-salmon);
  --popup-fg: var(--color-brand-primary);
  align-items: center;
  background-color: rgba(0, 0, 0, 0.3);
  bottom: 0;
  display: flex;
  justify-content: center;
  left: 0;
  padding: var(--spacing-16);
  position: fixed;
  right: 0;
  top: 0;
  z-index: 100;
}

.nd.popup[hidden] {
  display: none;
}

/* src/js/main.js toggles this on <body> for as long as any popup is open,
   so the page behind a positioned popup can't be scrolled. */
body.is-popup-open {
  overflow: hidden;
}

.nd.popup .popup__panel {
  align-items: center;
  aspect-ratio: 1;
  background-color: var(--popup-bg);
  border-radius: 50%;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  color: var(--popup-fg);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-16);
  justify-content: center;
  overflow: hidden;
  padding: var(--spacing-40) var(--spacing-32);
  position: relative;
  text-align: center;
  width: min(528px, 88vw);
}

.nd.popup .popup__watermark {
  aspect-ratio: 363.029 / 407.064;
  left: 50%;
  opacity: 0.1;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 65%;
}

.nd.popup .popup__close {
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--spacing-4);
  position: absolute;
  z-index: 2;
  right: 20px;
  top: 100px;
}

.nd.popup .popup__close-icon {
  display: block;
  height: 16px;
  width: 16px;
  color: var(--popup-fg);
  transition: 0.3s ease-in-out;
}

.nd.popup .popup__close-icon:is(:hover, :focus-visible) {
  transform: scale(1.2);
}

.nd.popup .popup__eyebrow {
  height: auto;
  left: 50%;
  overflow: visible;
  position: absolute;
  top: 40px;
  transform: translateX(-50%);
  width: 100%;
  z-index: 1;
}

.nd.popup .popup__eyebrow text {
  fill: currentColor;
  font-family: var(--font-tertiary);
  font-size: 12px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.nd.popup .popup__content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nd.popup .popup__heading {
  font-family: var(--font-tertiary);
  font-size: 18px;
  line-height: 1.3;
  margin: 0;
  max-width: 85%;
  position: relative;
  z-index: 1;
}

.nd.popup .popup__body {
  font-family: var(--font-primary);
  font-size: 15px;
  line-height: 1.4;
  margin: 0;
  max-width: 85%;
  position: relative;
  z-index: 1;
}

.nd.popup--dark {
  --popup-bg: var(--color-brand-secondary);
  --popup-fg: var(--color-neutral-white);
}
.nd.popup--dark .popup__watermark {
  opacity: 1;
}
.nd.popup--dark .popup__watermark > g {
  color: var(--color-brand-primary);
}

@media (min-width: 768px) {
  .nd.popup .popup__close-icon{
    height: 20px;
    width: 20px;
  }

  .nd.popup .popup__close {
    right: 32px;
    top: 130px;
    padding: var(--spacing-8);
  }

  .nd.popup .popup__body {
    max-width: 79%;
  }
  .nd.popup .popup__panel {
    width: min(428px, 88vw);
    max-width: 90%;
  }
}

@media (min-width: 1199px) {
  .nd.popup .popup__panel {
    width: min(528px, 88vw);
    padding-top: 120px;
  }
  .nd.popup .popup__heading {
    font-size: 24px;
    line-height: 32px;
  }
  .nd.popup .popup__body {
    font-size: 20px;
    line-height: 26px;
  }
  .nd.popup .popup__close {
    right: 62px;
  }
}

@keyframes pulse {
  0% {
    transform: scale(0.98);
  }

  50% {
    transform: scale(1.02);
  }

  100% {
    transform: scale(0.98);
  }
}

@keyframes rotating {
  0% {
    transform: rotate(0);
  }

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

.nd-rotate {
  animation: rotating 20s linear infinite;
}
.px-0 {
  padding-inline: 0;
}