/* Theme base styles */

/* 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;
}

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

:target,
section[id] {
  scroll-margin-top: 80px;
}
/*! 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;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */


/* 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 */
}

/**
 * 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;
}

/* Objects
Non-cosmetic design patterns including grid and layout classes)
*/



/* 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));
    }
  
}

.site-max {
    max-width: var(--container-site-max);
    margin: 0 auto;
}

.flex,
.d-flex {
    display: flex;
}
.flex-row {
    flex-direction: row;
    display: flex;
}
.flex-row-reverse {
    flex-direction: row-reverse;
    display: flex;
}
.flex-column {
    flex-direction: column;
    display: flex;
}
.flex-column-reverse {
    flex-direction: column-reverse;
    display: flex;
}
.justify-center {
    justify-content: center;
}
.justify-start {
    justify-content: flex-start;
}
.justify-between {
    justify-content: space-between;
}
.align-start {
    align-items: flex-start;
}
.justify-end {
    justify-content: flex-end;
}
.align-center {
    align-items: center;
}
.align-end {
    align-items: flex-end;
}
.flex-wrap {
    flex-wrap: wrap;
}
.dnd-section > .row-fluid {
  margin: 0 auto;
}

.dnd-section .dnd-column {
  padding: 0;
}

@media (max-width: 767px) {
  .dnd-section .dnd-column {
    padding: 0;
  }
}

/* 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. */

html[lang^="ja"] body,
html[lang^="zh"] body,
html[lang^="ko"] body {
  line-break: strict;
  overflow-wrap: normal;
  word-break: break-all;
}


/* Anchors */

a {
  cursor: pointer;
}

p a,
.body-l-regular a,
.body-m-regular a,
.body-s-regular a,
.body-xs-regular a {
  color: var(--color-grey-700);
  font-family: var(--typography-styles-body);
  font-weight: 400;
  font-style: normal;
  line-height: 140%;
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: 6%;
  text-underline-offset: auto;
  text-underline-position: from-font;
}



/* 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,
blockquote p,
blockquote span {
  border-left: none !important;
  padding-left: 0 !important;
  margin: 0 !important;
  font-family: var(--body-font) !important;
  font-weight: 400 !important;
  font-style: italic !important;
  font-size: var(--typography-sizes-h4) !important;
  line-height: 120% !important;
  color: var(--text-primary) !important;
  letter-spacing: normal !important;
}

.hs-blog-listing blockquote,
.hs-blog-listing blockquote p,
.hs-blog-listing blockquote span {
  color: var(--text-secondary) !important;
}

/* Horizontal rules */

hr {
  border: none;
  border-bottom: 1px solid #CCC;
}

/* Image alt text */

img {
  font-size: 0.583rem;
  word-break: normal;
}
button,
.button,
.hs-button {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  text-align: center;
  transition: all 0.2s ease-in-out;
  white-space: nowrap;
  padding: 8px 20px;
  height: 40px;
  min-height: 32px;
  font-size: var(--typography-sizes-sm);
  font-family: var(--body-font-second);
  font-weight: 500;
  line-height: 140%;
  text-decoration: none;
  border: none;
  border-radius: 40px;
  gap: 8px;
}

.button span {
  display: flex;
  align-items: center;
  line-height: 1;
}

/* Small size */

.button-small {
  height: 32px;
  padding: 8px 12px;
}

/* Disabled state */

button:disabled,
.button:disabled,
.hs-button:disabled {
  background-color: #D0D0D0;
  border-color: #D0D0D0;
  color: #E6E6E6;
  pointer-events: none;
}

/* Primary */

.button-primary {
  background-color: var(--color-yellow-800);
  color: var(--text-primary);
  position: relative;
  overflow: hidden;
}

.button-primary::before,
.button-secondary::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--interactive-hover-inverse);
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
  pointer-events: none;
}

.button-primary:hover::before,
.button-primary:focus::before,
.button-secondary:hover::before,
.button-secondary:focus::before {
  opacity: 1;
}

.button-primary:hover,
.button-primary:focus {
  color: var(--text-primary);
}

/* Secondary */

.button-secondary {
  background-color: var(--background-inverse);
  color: var(--text-inverse);
  position: relative;
  overflow: hidden;
}

.button-secondary:hover,
.button-secondary:focus {
  color: var(--text-inverse);
}

/* Tertiary */

.button-tertiary {
  background: none;
  color: var(--text-primary);
  border: 1px solid var(--border-medium);
}

.button-tertiary:hover,
.button-tertiary:focus {
  background: var(--interactive-hover);
  color: var(--text-primary);
  border: 1px solid var(--border-medium);
}

/* Link */

.button-link {
  background: none;
  border: none;
  border-radius: 8px;
  padding: 0;
  height: auto;
  gap: 8px;
  box-shadow: none;
  color: var(--text-primary);
}

.button-link:hover,
.button-link:focus {
  background: none;
  box-shadow: none;
  text-decoration: none;
  color: var(--text-secondary);
}

.button-link .button-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.button-link .button-icon img,
.button-link .button-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Mobile buttons */

@media (max-width: 767px) {
  /* Single button: hug width (like desktop) */
  .button:not(.button-link) {
    width: auto;
  }

  /* Multiple buttons in a cta-group: fill space equally */
  .cta-group {
    display: flex;
    flex-direction: row;
    gap: 8px;
    width: 100%;
  }

  .cta-group .button:not(.button-link) {
    flex: 1 1 0%;
    width: 100%;
    justify-content: center;
  }
}

/* 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;
  height: auto;
  min-height: 0;
  text-align: left;
  text-decoration: none;
  transition: none;
}
/* Form Title */
h3.form-title {
  margin-bottom: 8px;
  color: var(--text-primary);
}
h3.form-title:empty {
  display: none;
}

/* Fields */

.hs-form-field {
  margin-bottom: 16px;
}

/* Labels */

form label {
  color: var(--text-primary);
  font-size: var(--typography-sizes-caption);
  font-style: normal;
  font-weight: 500;
  line-height: 140%; /* 16.8px */
  margin-bottom: 8px;
  display: block;
}



/* Help text */

form legend {
  font-size: 0.875rem;
}

/* Inputs */

form .form-columns-2 {
  display: flex;
  gap: 16px;
}
@media(max-width: 767px) {
  form .form-columns-2 {
    display: flex;
    gap: 0px;
    flex-direction: column;
  }
  form .form-columns-2 .hs-form-field  {
    width: 100% !important;
  }
}
form .input {
  margin-right: 0px !important;
  display: flex;
}


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;
  border: 1px solid var(--border-weak);
  width: 100% !important;
  padding: 14px 12px;
  margin: 0px;
  outline: none;
  font-family: var(--typography-Fonts-Secondary);
  color: var(--text-tertiary);
  font-size: var(--typography-sizes-sm);
  font-style: normal;
  font-weight: 400;
  line-height: 140%;
  background-color: transparent;
}
form input[type=text]::placeholder,
form input[type=search]::placeholder,
form input[type=email]::placeholder,
form input[type=password]::placeholder,
form input[type=tel]::placeholder,
form input[type=number]::placeholder,
form textarea::placeholder {
  opacity: 0.5;
}
form input[type=text]:focus,
form input[type=search]:focus,
form input[type=email]:focus,
form input[type=password]:focus,
form input[type=tel]:focus,
form input[type=number]:focus,
form textarea:focus {
  border-color: #FFBC01;
}
form select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'><path d='M11.6672 14.6188C11.5633 14.5803 11.4646 14.5143 11.3709 14.4208L6.87666 9.92652C6.73833 9.78802 6.6675 9.61394 6.66416 9.40427C6.661 9.19477 6.73183 9.01752 6.87666 8.87252C7.02166 8.72769 7.19733 8.65527 7.40366 8.65527C7.61 8.65527 7.78566 8.72769 7.93066 8.87252L12.0037 12.9458L16.0767 8.87252C16.2152 8.73419 16.3892 8.66336 16.5989 8.66002C16.8084 8.65686 16.9857 8.72769 17.1307 8.87252C17.2755 9.01752 17.3479 9.19319 17.3479 9.39952C17.3479 9.60586 17.2755 9.78152 17.1307 9.92652L12.6364 14.4208C12.5427 14.5143 12.444 14.5803 12.3402 14.6188C12.2363 14.6573 12.1242 14.6765 12.0037 14.6765C11.8832 14.6765 11.771 14.6573 11.6672 14.6188Z' fill='%23928E85'/></svg>");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 20px;
  padding-right: 40px; /* żeby tekst nie nachodził na ikonę */
}
form textarea {
  resize: vertical;
  height: 88px;
}

form fieldset {
  max-width: 100% !important;
}

/* Inputs - checkbox/radio */

form .inputs-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

form .inputs-list > li {
  display: flex;
  margin: 16px 0;
}
form .inputs-list > li label {
  margin-bottom: 0;
  display: flex;
}
form .inputs-list input,
form .inputs-list span {
  vertical-align: middle;
}
form .inputs-list span {
  color: var(--text-primary);
  font-size: var(--typography-sizes-caption);
  font-style: normal;
  font-weight: 500;
  line-height: 140%; 
  margin: 0 !important;
  margin-top: 1px !important;
}
form .inputs-list span * {
  font-size: inherit;
  text-decoration: none;
}
form input[type=checkbox],
form input[type=radio] {
  cursor: pointer;
  margin-right: 8px;
  width: 16px !important;
  height: 16px;
}

/* 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-family: var(--typography-Fonts-Secondary);
  color: var(--text-tertiary);
  font-size: var(--typography-sizes-sm);
  font-style: normal;
  font-weight: 400;
  line-height: 140%; /* 19.6px */
  margin-bottom: 8px;
}

form .hs-richtext img {
  max-width: 100% !important;
}

/* Validation */

.hs-form-required {
  color: #ff5130
}

.hs-input.invalid.error {
  border-color: #ff5130
}

.hs-error-msg {
  color: #ff5130;
  margin-top: 0px;
  font-style: italic;
  text-transform: unset;
}
.legal-consent-container .field.hs-form-field {
  margin-bottom: 0 !important;
}
.hs_error_rollup {
    display: none;
}
/* Submit button */

.hs-submit {

  .actions {
    margin-top: 16px;
  }
}

form input[type=submit],
form .hs-button {
  width: 100%;
  background-color: var(--color-yellow-900);
  color: var(--text-primary);
  box-shadow: 0px 4px 12px 2px rgba(0, 0, 0, 0.06);
}
form input[type=submit]:hover,
form .hs-button:hover {
  background-color: var(--color-yellow-800);
}

/* 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
*/

.floral {
  position: absolute;
  height: 100%;
  aspect-ratio: 1 / 1;
  overflow: clip;
  pointer-events: none;
  --floral-offset-x: 0%;
  --floral-offset-y: 0%;
  --floral-scale: 1;
}

/* Left/right anchors clamp to the viewport edge when viewport < --container-site-max (1440px).
   Above 1440px: anchor to the container max-width edge (current behavior, florals sit in the gutter).
   Below 1440px: anchor to viewport edge, floral center stays on screen. */
.floral--top-left { top: 0; left: max(0px, calc(50% - var(--container-site-max) / 2)); transform: translate(calc(-50% + var(--floral-offset-x)), var(--floral-offset-y)) scale(var(--floral-scale)); transform-origin: left top; }
.floral--top-center { top: 0; left: 50%; transform: translate(calc(-50% + var(--floral-offset-x)), var(--floral-offset-y)) scale(var(--floral-scale)); transform-origin: center top; }
.floral--top-right { top: 0; right: max(0px, calc(50% - var(--container-site-max) / 2)); transform: translate(calc(50% + var(--floral-offset-x)), var(--floral-offset-y)) scale(var(--floral-scale)); transform-origin: right top; }
.floral--center-left { top: 50%; left: max(0px, calc(50% - var(--container-site-max) / 2)); transform: translate(calc(-50% + var(--floral-offset-x)), calc(-50% + var(--floral-offset-y))) scale(var(--floral-scale)); transform-origin: left center; }
.floral--center { top: 50%; left: 50%; transform: translate(calc(-50% + var(--floral-offset-x)), calc(-50% + var(--floral-offset-y))) scale(var(--floral-scale)); transform-origin: center center; }
.floral--center-right { top: 50%; right: max(0px, calc(50% - var(--container-site-max) / 2)); transform: translate(calc(50% + var(--floral-offset-x)), calc(-50% + var(--floral-offset-y))) scale(var(--floral-scale)); transform-origin: right center; }
.floral--bottom-left { bottom: 0; left: max(0px, calc(50% - var(--container-site-max) / 2)); transform: translate(calc(-50% + var(--floral-offset-x)), var(--floral-offset-y)) scale(var(--floral-scale)); transform-origin: left bottom; }
.floral--bottom-center { bottom: 0; left: 50%; transform: translate(calc(-50% + var(--floral-offset-x)), var(--floral-offset-y)) scale(var(--floral-scale)); transform-origin: center bottom; }
.floral--bottom-right { bottom: 0; right: max(0px, calc(50% - var(--container-site-max) / 2)); transform: translate(calc(50% + var(--floral-offset-x)), var(--floral-offset-y)) scale(var(--floral-scale)); transform-origin: right bottom; }

.floral__masked {
  width: 100%;
  height: 100%;
  -webkit-mask-image: var(--floral-mask);
  mask-image: var(--floral-mask);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-mode: alpha;
  mask-mode: alpha;
}

.floral__masked img {
  width: 100%;
  height: 100%;
  display: block;
  user-select: none;
}

@media (max-width: 767px) {
  .floral {
    height: 250px !important;
  }

  .carousel-module__inline-image > .floral,
  .feature-hero > .floral {
    height: 100% !important;
  }
}
.icon-wrapper {
  width: 64px;
  height: 64px;
  border-radius: var(--corner-radius-m);
  overflow: clip;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
}

.icon-wrapper img {
  width: 32px;
  aspect-ratio: 1 / 1;
  display: block;
  object-fit: contain;
}

@media (max-width: 767px) {
  .icon-wrapper {
    width: 48px;
    height: 48px;
    border-radius: var(--corner-radius-s);
  }
}
/* Scroll Animation Initial States
   Elements with data-animate are hidden until JS initializes.
   Gated behind .js-animations — if JS fails, content stays visible.
   Respects prefers-reduced-motion. */

@media (prefers-reduced-motion: no-preference) {
    .js-animations [data-animate="fade-up"],
    .js-animations [data-animate="fade-up-stagger"] > *,
    .js-animations [data-animate="waapi-stagger"] > * {
        opacity: 0;
    }
}

/* Active state for scroll-linked indicators */
[data-scroll-indicator].is-active {
    opacity: 1 !important;
}
/* Odometer — shared rolling digit counter styles */

.odometer {
    font-family: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: inherit;
    display: inline-flex;
    font-size: inherit;
}
.odometer-inside {
    display: inline-flex;
}
.odometer-formatting-mark {
    width: auto !important;
    transition: none !important;
}
.odometer.odometer-auto-theme .odometer-digit {
    display: inline-block;
    vertical-align: middle;
    position: relative;
}
.odometer.odometer-auto-theme .odometer-digit .odometer-digit-spacer {
    display: inline-block;
    vertical-align: middle;
    visibility: hidden;
}
.odometer.odometer-auto-theme .odometer-digit .odometer-digit-inner {
    text-align: left;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
    contain: layout style;
}
.odometer.odometer-auto-theme .odometer-digit .odometer-ribbon {
    display: block;
}
.odometer.odometer-auto-theme .odometer-digit .odometer-ribbon-inner {
    display: block;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
    transform: translateZ(0);
}
.odometer.odometer-auto-theme .odometer-digit .odometer-value {
    display: block;
    transform: translateZ(0);
}
.odometer.odometer-auto-theme .odometer-digit .odometer-value.odometer-last-value {
    position: absolute;
}
.odometer.odometer-auto-theme.odometer-animating-up .odometer-ribbon-inner {
    transition: transform 2s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.odometer.odometer-auto-theme.odometer-animating-up.odometer-animating .odometer-ribbon-inner {
    transform: translateY(-100%);
}
.odometer.odometer-auto-theme.odometer-animating-down .odometer-ribbon-inner {
    transform: translateY(-100%);
}
.odometer.odometer-auto-theme.odometer-animating-down.odometer-animating .odometer-ribbon-inner {
    transition: transform 2s cubic-bezier(0.25, 0.1, 0.25, 1);
    transform: translateY(0);
}

/* Utilities
Helper classes with ability to override anything that comes before it
*/

/* ==========================================================================
   Text Styles — Utility classes matching Figma text style definitions
   Font sizes reference --typography-sizes-* variables (responsive via media queries)
   ========================================================================== */

/* Headlines — STIX Two Math */

.headline-title {
  font-family: var(--body-font);
  font-weight: 400;
  font-size: var(--typography-sizes-title);
  line-height: 110%;
  letter-spacing: -1.28px;
}

h1,
.headline-h1 {
  font-family: var(--body-font);
  font-weight: 400;
  font-size: var(--typography-sizes-h1);
  line-height: 110%;
  letter-spacing: -1.12px;
}

h2,
.headline-h2 {
  font-family: var(--body-font);
  font-weight: 400;
  font-size: var(--typography-sizes-h2);
  line-height: 110%;
  letter-spacing: -0.96px;
}

h3,
.headline-h3 {
  font-family: var(--body-font);
  font-weight: 400;
  font-size: var(--typography-sizes-h3);
  line-height: 110%;
  letter-spacing: -0.8px;
}

h4,
.headline-h4 {
  font-family: var(--body-font);
  font-weight: 400;
  font-size: var(--typography-sizes-h4);
  line-height: 110%;
  letter-spacing: -0.64px;
}

h5,
.headline-h5 {
  font-family: var(--body-font);
  font-weight: 400;
  font-size: var(--typography-sizes-h5);
  line-height: 112.5%;
  letter-spacing: -0.48px;
}

h6,
.headline-h6 {
  font-family: var(--body-font);
  font-weight: 400;
  font-size: var(--typography-sizes-h6);
  line-height: 112.5%;
  letter-spacing: -0.48px;
}

/* Body — Euclid Circular A */

.body-l-regular {
  font-family: var(--body-font-second);
  font-weight: 400;
  font-size: var(--typography-sizes-lg);
  line-height: 140%;
  letter-spacing: -0.2px;
}

.body-l-medium {
  font-family: var(--body-font-second);
  font-weight: 500;
  font-size: var(--typography-sizes-lg);
  line-height: 140%;
  letter-spacing: -0.2px;
}

.body-m-regular {
  font-family: var(--body-font-second);
  font-weight: 400;
  font-size: var(--typography-sizes-md);
  line-height: 140%;
  letter-spacing: -0.16px;
}

.body-m-medium {
  font-family: var(--body-font-second);
  font-weight: 500;
  font-size: var(--typography-sizes-md);
  line-height: 140%;
  letter-spacing: -0.16px;
}

.body-s-regular {
  font-family: var(--body-font-second);
  font-weight: 400;
  font-size: var(--typography-sizes-sm);
  line-height: 140%;
}

.body-s-medium {
  font-family: var(--body-font-second);
  font-weight: 500;
  font-size: var(--typography-sizes-sm);
  line-height: 140%;
}

.body-xs-regular {
  font-family: var(--body-font-second);
  font-weight: 400;
  font-size: var(--typography-sizes-caption);
  line-height: 140%;
}

.body-xs-medium {
  font-family: var(--body-font-second);
  font-weight: 500;
  font-size: var(--typography-sizes-caption);
  line-height: 140%;
}

/* Strong — maps to medium weight across all text styles */

b,
strong {
  font-weight: 500;
}

/* Special */
.label {
  font-style: normal;
  font-weight: 400;
  line-height: 140%;
  letter-spacing: 0.28px;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--text-tertiary);
  font-family: var(--body-font-second);
  font-size: var(--typography-sizes-sm);
}

.text-label {
  font-family: var(--body-font-second);
  font-weight: 500;
  font-size: var(--typography-sizes-label);
  line-height: 140%;
  letter-spacing: 0.14px;
  text-transform: uppercase;
}

.text-navigation {
  font-family: var(--body-font-second);
  font-weight: 500;
  font-size: var(--typography-sizes-sm);
  line-height: 140%;
}

.quote-l {
  font-family: var(--body-font);
  font-weight: 400;
  font-size: var(--typography-sizes-h3);
  line-height: 120%;
  letter-spacing: -0.8px;
}

.quote-m {
  font-family: var(--body-font);
  font-weight: 400;
  font-style: italic;
  font-size: var(--typography-sizes-h4);
  line-height: 120%;
}

.number-l {
  font-family: var(--body-font);
  font-weight: 400;
  font-size: var(--typography-sizes-title);
  line-height: 60%;
}
/* 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;
  }
}