/* 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;
}
/*! 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.
 */

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: bolder;
}

/**
 * 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)
*/




/* 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 */



/* Anchors */

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

/* Headings */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
}

/* Lists */

ul,
ol {
  margin: 0!important;
}

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

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;
}





:root {
  /* ==========================================================================
     Fluid Typography Scale (Base: 1rem = 16px)
     Scales dynamically between 320px (mobile) and 1920px (desktop)
     ========================================================================== */

  /* H1: Max 62px (3.875rem) | Min 36px (2.25rem) */
  --text-h1: clamp(2.25rem, 1.625vw + 1.925rem, 3.875rem);

  /* H2: Max 50px (3.125rem) | Min 32px (2rem) */
  --text-h2: clamp(2rem, 1.125vw + 1.775rem, 3.125rem);

  /* H3: Max 36px (2.25rem) | Min 28px (1.75rem) */
  --text-h3: clamp(1.75rem, 0.5vw + 1.65rem, 2.25rem);

  /* H4: Max 32px (2rem) | Min 24px (1.5rem) */
  --text-h4: clamp(1.5rem, 0.5vw + 1.4rem, 2rem);

  /* H5: Max 28px (1.75rem) | Min 20px (1.25rem) */
  --text-h5: clamp(1.25rem, 0.5vw + 1.15rem, 1.75rem);

  /* H6: Max 24px (1.5rem) | Min 16px (1rem) */
  --text-h6: clamp(1rem, 0.5vw + 0.9rem, 1.5rem);

  /* Body & Body-Highlight: Max 18px (1.125rem) | Min 16px (1rem) */
  --text-body: clamp(1rem, 0.125vw + 0.975rem, 1.125rem);

  /* Body 2 & Body 2-Highlight: Max 16px (1rem) | Min 14px (0.875rem) */
  --text-body-2: clamp(0.875rem, 0.125vw + 0.85rem, 1rem);
}

/* Update your classes as well */

/* --- Global Heading Styles --- */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--primary-font);
  color: var(--text-primary);
  font-weight: 700; 
  margin: 0;
  line-height: 1.2;
}

h1 { font-size: var(--text-h1);}
h2 { font-size: var(--text-h2); }
h3 { font-size: var(--text-h3); }
h4 { font-size: var(--text-h4); }
h5 { font-size: var(--text-h5); }
h6 { font-size: var(--text-h6); }



a{
color:var(--tertiary-dark-text-color);
}

.body {
  font-size: var(--text-body);
  font-family: var(--secondary-font); 
  line-height: 1.5;
  margin-top: 0;
}

.body-highlight{
  font-weight:600;
  font-family: var(--secondary-font);
  font-size: var(--text-body);
  line-height: 1.5;
}

.body-2 {
  /* max: 31px (1.9375rem) | min: 16px (1rem) */
  font-size:var(--text-body-2) ;
  font-family: var(--secondary-font); 
  line-height: 1.5;
  margin-top: 0;
}
.body-2-highlight{
  font-size:var(--text-body-2) ;
  font-family: var(--secondary-font);
  font-weight:600;
  line-height: 1.5;
}
/* @import url('http://example.com/example_style.css'); */

/***********************************************/
/* CSS @imports must be at the top of the file */
/* Add them above this section                 */
/***********************************************/

/*****************************************/
/* Start your style declarations here    */
/*****************************************/

/* 1. Define Continuum Bold (from contb.ttf) */
/* @font-face {
  font-family: 'Continuum';
  src: url('https://145627525.fs1.hubspotusercontent-eu1.net/hubfs/145627525/Re-board%20web%20content/contb.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
} */

/* 2. Define Continuum Medium (from contm.ttf) - Optional but good since you uploaded it */
@font-face {
  font-family: 'Inter Display';
  src: url('https://26291308.fs1.hubspotusercontent-eu1.net/hubfs/26291308/Inter%20Display%20Font/InterDisplay-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* 3. Define Continuum Light (from contl.ttf) - Optional but good since you uploaded it */
/* @font-face {
  font-family: 'Continuum';
  src: url('https://145627525.fs1.hubspotusercontent-eu1.net/hubfs/145627525/Re-board%20web%20content/contl.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
 */
/* 4.  Franklin Gothic Book*/
@font-face {
  font-family: 'Franklin Gothic Book';
  src: url('https://145627525.fs1.hubspotusercontent-eu1.net/hubfs/145627525/Re-board%20web%20content/FRABK.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}



:root {
  /* Global Colors */
  --primary-color: #2F6BFF;

  /* Background Colors */
  --bg-star: #FFCC00;
  --bg-primary: #FFFFFF;
  --bg-accent-1: #EAF0F3;
  --bg-accent-2: #C8E3F3;
  --bg-accent-3: #D8DEE4;
  --dark-bg: #0B0F1A;

  /* Text Colors */
  --text-primary: #011032;
  --text-secondary: #6B738B;
  --text-tertiary: #8A8F98;
  --text-light-primary: #FFFFFF;
  --text-light-secondary: #B5B7BA;

  /* Gradients */
  --gradient-1: transparent;
  --gradient-2: linear-gradient(to right, rgba(45, 124, 254, 1), rgba(8, 85, 252, 1));
  --gradient-3: linear-gradient(to right, rgba(1, 16, 51, 1), rgba(14, 40, 98, 1));
  --gradient-4: linear-gradient(to right, rgba(8, 85, 252, 1), rgba(45, 124, 254, 1));

  /* Global Fonts */
  --primary-font: 'Inter Display', sans-serif;
  --primary-font-color: #011032;

  --secondary-font: 'Geist', sans-serif;
  --secondary-font-color: #6B738B;

  --tertiary-font: 'Geist Mono', monospace;
  --tertiary-font-color: #8A8F98;

  /* General Styles */
  --global-border-width: 1px;
  --global-border-color: #E8E4DF;
  --global-border-radius: 8px;

  /* Primary Button */
  --btn-primary-font: 'Franklin Gothic Book', sans-serif;
  --btn-primary-font-size: 18px;
  --btn-primary-text-color: #FFFFFF;
  --btn-primary-bg-color: #221F20;
  --btn-primary-border-radius: 13px;

  /* Secondary Button */
  --btn-secondary-font: 'Franklin Gothic Book', sans-serif;
  --btn-secondary-font-size: 18px;
  --btn-secondary-text-color: #221F20;
  --btn-secondary-bg-color: #FFFFFF;
  --btn-secondary-border-radius: 13px;

  /* Container */
  --container-max-width: 1280px;

}




/* ==================================
   Eyebrow Text (.eyebrow-custom)
   ================================== */

/* Main Wrapper - Styled as a subtle pill */
.eyebrow-custom {
  display: inline-flex;
  align-items: center;
  gap: 8px; /* Space between icon and text */
  padding: 10px 10px 10px 8px;
  background-color: var(--bg-accent-2);
  border-radius: 6px;
}

/* The Energy Ellipse Icon */
.eyebrow-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  object-fit: contain;
}

/* Inner Content Wrapper */
.eyebrow-content {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* The Eyebrow Text */
.eyebrow-text {
  margin: 0;
  font-family: var(--tertiary-font);
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary); 
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1;
}

/* The Blinking Cursor */
.eyebrow-cursor {
  display: inline-block;
  width: 6px;
  height: 14px;
  background-color: #01103233;
  animation: eyebrow-blink 1s step-end infinite;
}

/* Blinking Keyframe Animation */
@keyframes eyebrow-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}



/****** Other Utility Classes CSS START *********/
/***********************************************/

.border {
  border: var(--border-width) solid var(--border-color);
}

.primary-bg {
  background-color: var(--primary-bg);
}

.secondary-bg {
  background-color: var(--secondary-bg);
}

.dark-bg {
  background-color: var(--dark-bg);
}

.rounded {
  border-radius: var(--border-radius);
}



/****** Other Utility Classes CSS END *********/
/*********************************************/


/* Padding 80 */
.p-80  { padding: clamp(1rem, 4vw + 0.2rem, 5rem); }
.pt-80 { padding-top: clamp(1rem, 4vw + 0.2rem, 5rem); }
.pr-80 { padding-right: clamp(1rem, 4vw + 0.2rem, 5rem); }
.pb-80 { padding-bottom: clamp(1rem, 4vw + 0.2rem, 5rem); }
.pl-80 { padding-left: clamp(1rem, 4vw + 0.2rem, 5rem); }
.px-80 { padding-inline: clamp(1rem, 4vw + 0.2rem, 5rem); }
.py-80 { padding-block: clamp(1rem, 4vw + 0.2rem, 5rem); }


/* Margin 72 (36px to 72px) */
.m-72  { margin: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.mt-72 { margin-top: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.mr-72 { margin-right: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.mb-72 { margin-bottom: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.ml-72 { margin-left: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.mx-72 { margin-inline: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.my-72 { margin-block: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }

.p-72  { padding: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.pt-72 { padding-top: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.pr-72 { padding-right: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.pb-72 { padding-bottom: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.pl-72 { padding-left: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.px-72 { padding-inline: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }
.py-72 { padding-block: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }

.gap-72  { gap: clamp(2.25rem, 2.25vw + 1.8rem, 4.5rem); }



/* Padding */
.p-40 { padding: clamp(24px, 2vw, 40px); }
.pt-40 { padding-top: clamp(24px, 2vw, 40px); }
.pr-40 { padding-right: clamp(24px, 2vw, 40px); }
.pb-40 { padding-bottom: clamp(24px, 2vw, 40px); }
.pl-40 { padding-left: clamp(24px, 2vw, 40px); }
.px-40 { padding-inline: clamp(24px, 2vw, 40px); }
.py-40 { padding-block: clamp(24px, 2vw, 40px); }


/* Margin 80 */
.m-80  { margin: clamp(1rem, 4vw + 0.2rem, 5rem); }
.mt-80 { margin-top: clamp(1rem, 4vw + 0.2rem, 5rem); }
.mr-80 { margin-right: clamp(1rem, 4vw + 0.2rem, 5rem); }
.mb-80 { margin-bottom: clamp(1rem, 4vw + 0.2rem, 5rem); }
.ml-80 { margin-left: clamp(1rem, 4vw + 0.2rem, 5rem); }
.mx-80 { margin-inline: clamp(1rem, 4vw + 0.2rem, 5rem); }
.my-80 { margin-block: clamp(1rem, 4vw + 0.2rem, 5rem); }

/* Gap 80 */
.gap-80   { gap: clamp(1rem, 4vw + 0.2rem, 5rem); }
.gap-x-80 { column-gap: clamp(1rem, 4vw + 0.2rem, 5rem); }
.gap-y-80 { row-gap: clamp(1rem, 4vw + 0.2rem, 5rem); }

/* Margin */
.m-40 { margin: clamp(24px, 2vw, 40px); }
.mt-40 { margin-top: clamp(24px, 2vw, 40px); }
.mr-40 { margin-right: clamp(24px, 2vw, 40px); }
.mb-40 { margin-bottom: clamp(24px, 2vw, 40px); }
.ml-40 { margin-left: clamp(24px, 2vw, 40px); }
.mx-40 { margin-inline: clamp(24px, 2vw, 40px); }
.my-40 { margin-block: clamp(24px, 2vw, 40px); }

.p-36 { padding: clamp(22px, 1.8vw, 36px); }
.pt-36 { padding-top: clamp(22px, 1.8vw, 36px); }
.pr-36 { padding-right: clamp(22px, 1.8vw, 36px); }
.pb-36 { padding-bottom: clamp(22px, 1.8vw, 36px); }
.pl-36 { padding-left: clamp(22px, 1.8vw, 36px); }
.px-36 { padding-inline: clamp(22px, 1.8vw, 36px); }
.py-36 { padding-block: clamp(22px, 1.8vw, 36px); }

/* Margin */
.m-36 { margin: clamp(22px, 1.8vw, 36px); }
.mt-36 { margin-top: clamp(22px, 1.8vw, 36px); }
.mr-36 { margin-right: clamp(22px, 1.8vw, 36px); }
.mb-36 { margin-bottom: clamp(22px, 1.8vw, 36px); }
.ml-36 { margin-left: clamp(22px, 1.8vw, 36px); }
.mx-36 { margin-inline: clamp(22px, 1.8vw, 36px); }
.my-36 { margin-block: clamp(22px, 1.8vw, 36px); }

/* Padding */
.p-32 { padding: clamp(20px, 1.6vw, 32px); }
.pt-32 { padding-top: clamp(20px, 1.6vw, 32px); }
.pr-32 { padding-right: clamp(20px, 1.6vw, 32px); }
.pb-32 { padding-bottom: clamp(20px, 1.6vw, 32px); }
.pl-32 { padding-left: clamp(20px, 1.6vw, 32px); }
.px-32 { padding-inline: clamp(20px, 1.6vw, 32px); }
.py-32 { padding-block: clamp(20px, 1.6vw, 32px); }

/* Margin */
.m-32 { margin: clamp(20px, 1.6vw, 32px); }
.mt-32 { margin-top: clamp(20px, 1.6vw, 32px); }
.mr-32 { margin-right: clamp(20px, 1.6vw, 32px); }
.mb-32 { margin-bottom: clamp(20px, 1.6vw, 32px); }
.ml-32 { margin-left: clamp(20px, 1.6vw, 32px); }
.mx-32 { margin-inline: clamp(20px, 1.6vw, 32px); }
.my-32 { margin-block: clamp(20px, 1.6vw, 32px); }

/* Padding */
.p-24 { padding: clamp(16px, 1.2vw, 24px); }
.pt-24 { padding-top: clamp(16px, 1.2vw, 24px); }
.pr-24 { padding-right: clamp(16px, 1.2vw, 24px); }
.pb-24 { padding-bottom: clamp(16px, 1.2vw, 24px); }
.pl-24 { padding-left: clamp(16px, 1.2vw, 24px); }
.px-24 { padding-inline: clamp(16px, 1.2vw, 24px); }
.py-24 { padding-block: clamp(16px, 1.2vw, 24px); }

/* Margin */
.m-24 { margin: clamp(16px, 1.2vw, 24px); }
.mt-24 { margin-top: clamp(16px, 1.2vw, 24px); }
.mr-24 { margin-right: clamp(16px, 1.2vw, 24px); }
.mb-24 { margin-bottom: clamp(16px, 1.2vw, 24px); }
.ml-24 { margin-left: clamp(16px, 1.2vw, 24px); }
.mx-24 { margin-inline: clamp(16px, 1.2vw, 24px); }
.my-24 { margin-block: clamp(16px, 1.2vw, 24px); }



.p-20 { padding: clamp(12px, 1vw, 20px); }
.pt-20 { padding-top: clamp(12px, 1vw, 20px); }
.pr-20 { padding-right: clamp(12px, 1vw, 20px); }
.pb-20 { padding-bottom: clamp(12px, 1vw, 20px); }
.pl-20 { padding-left: clamp(12px, 1vw, 20px); }
.px-20 { padding-left: clamp(12px, 1vw, 20px); padding-right: clamp(12px, 1vw, 20px); }
.py-20 { padding-top: clamp(12px, 1vw, 20px); padding-bottom: clamp(12px, 1vw, 20px); }


.m-20 { margin: clamp(12px, 1vw, 20px); }
.mt-20 { margin-top: clamp(12px, 1vw, 20px); }
.mr-20 { margin-right: clamp(12px, 1vw, 20px); }
.mb-20 { margin-bottom: clamp(12px, 1vw, 20px); }
.ml-20 { margin-left: clamp(12px, 1vw, 20px); }
.mx-20 { margin-left: clamp(12px, 1vw, 20px); margin-right: clamp(12px, 1vw, 20px); }
.my-20 { margin-top: clamp(12px, 1vw, 20px); margin-bottom: clamp(12px, 1vw, 20px); }

/* Padding */
.p-16 { padding: clamp(12px, 0.8vw, 16px); }
.pt-16 { padding-top: clamp(12px, 0.8vw, 16px); }
.pr-16 { padding-right: clamp(12px, 0.8vw, 16px); }
.pb-16 { padding-bottom: clamp(12px, 0.8vw, 16px); }
.pl-16 { padding-left: clamp(12px, 0.8vw, 16px); }
.px-16 { padding-inline: clamp(12px, 0.8vw, 16px); }
.py-16 { padding-block: clamp(12px, 0.8vw, 16px); }

/* Margin */
.m-16 { margin: clamp(12px, 0.8vw, 16px); }
.mt-16 { margin-top: clamp(12px, 0.8vw, 16px); }
.mr-16 { margin-right: clamp(12px, 0.8vw, 16px); }
.mb-16 { margin-bottom: clamp(12px, 0.8vw, 16px); }
.ml-16 { margin-left: clamp(12px, 0.8vw, 16px); }
.mx-16 { margin-inline: clamp(12px, 0.8vw, 16px); }
.my-16 { margin-block: clamp(12px, 0.8vw, 16px); }

.p-10 { padding: clamp(6px, 0.5vw, 10px); }
.pt-10 { padding-top: clamp(6px, 0.5vw, 10px); }
.pr-10 { padding-right: clamp(6px, 0.5vw, 10px); }
.pb-10 { padding-bottom: clamp(6px, 0.5vw, 10px); }
.pl-10 { padding-left: clamp(6px, 0.5vw, 10px); }
.px-10 { padding-left: clamp(6px, 0.5vw, 10px); padding-right: clamp(6px, 0.5vw, 10px); }
.py-10 { padding-top: clamp(6px, 0.5vw, 10px); padding-bottom: clamp(6px, 0.5vw, 10px); }

.m-10 { margin: clamp(6px, 0.5vw, 10px); }
.mt-10 { margin-top: clamp(6px, 0.5vw, 10px); }
.mr-10 { margin-right: clamp(6px, 0.5vw, 10px); }
.mb-10 { margin-bottom: clamp(6px, 0.5vw, 10px); }
.ml-10 { margin-left: clamp(6px, 0.5vw, 10px); }
.mx-10 { margin-left: clamp(6px, 0.5vw, 10px); margin-right: clamp(6px, 0.5vw, 10px); }
.my-10 { margin-top: clamp(6px, 0.5vw, 10px); margin-bottom: clamp(6px, 0.5vw, 10px); }

/* Gap 48 (36px to 48px) */
.gap-48   { gap: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.gap-x-48 { column-gap: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.gap-y-48 { row-gap: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }


/* Padding 48 */
.p-48  { padding: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.pt-48 { padding-top: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.pr-48 { padding-right: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.pb-48 { padding-bottom: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.pl-48 { padding-left: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.px-48 { padding-inline: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.py-48 { padding-block: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }

/* Margin 48 */
.m-48  { margin: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.mt-48 { margin-top: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.mr-48 { margin-right: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.mb-48 { margin-bottom: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.ml-48 { margin-left: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.mx-48 { margin-inline: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }
.my-48 { margin-block: clamp(2.25rem, 0.75vw + 2.1rem, 3rem); }

/* Gap 40 (24px to 40px) */
.gap-40 { gap: clamp(24px, 2vw, 40px); }
.gap-x-40 { column-gap: clamp(24px, 2vw, 40px); }
.gap-y-40 { row-gap: clamp(24px, 2vw, 40px); }



/* Gap 32 (20px to 32px) */
.gap-32 { gap: clamp(20px, 1.6vw, 32px); }
.gap-x-32 { column-gap: clamp(20px, 1.6vw, 32px); }
.gap-y-32 { row-gap: clamp(20px, 1.6vw, 32px); }


/* Gap 24 (16px to 24px) */
.gap-24 { gap: clamp(16px, 1.2vw, 24px); }
.gap-x-24 { column-gap: clamp(16px, 1.2vw, 24px); }
.gap-y-24 { row-gap: clamp(16px, 1.2vw, 24px); }

/* Gap 16 (12px to 16px) */
.gap-16 { gap: clamp(12px, 0.8vw, 16px); }
.gap-x-16 { column-gap: clamp(12px, 0.8vw, 16px); }
.gap-y-16 { row-gap: clamp(12px, 0.8vw, 16px); }



.gap-30 { gap: clamp(16px, 1.5vw, 30px); }
.gap-x-30 { row-gap: clamp(16px, 1.5vw, 30px); }
.gap-y-30 { column-gap: clamp(16px, 1.5vw, 30px); }


.gap-36   { gap: clamp(1rem, 1.25vw + 0.75rem, 2.25rem); }
.gap-x-36 { column-gap: clamp(1rem, 1.25vw + 0.75rem, 2.25rem); }
.gap-y-36 { row-gap: clamp(1rem, 1.25vw + 0.75rem, 2.25rem); }



.gap-20 { gap: clamp(12px, 1vw, 20px); }
.gap-x-20 { row-gap: clamp(12px, 1vw, 20px); }
.gap-y-20 { column-gap: clamp(12px, 1vw, 20px); }

.gap-10 { gap: clamp(6px, 0.5vw, 10px); }
.gap-x-10 { row-gap: clamp(6px, 0.5vw, 10px); }
.gap-y-10 { column-gap: clamp(6px, 0.5vw, 10px); }


/*************   */
.clamp-1{
  white-space: nowrap; 
  overflow: hidden; 
  text-overflow: ellipsis;
}

.clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;   /* number of lines */
  -webkit-box-orient: vertical;

  overflow: hidden;
  text-overflow: ellipsis;
}
/******  *********/



/* global container for moduels */

.section{
  width:100%;
  padding: 5em 0;
}

.container{
  max-width:var(--container-max-width);
  width:90%;
  margin:0 auto;
}


:root {
  /* Surfaces and borders that the landing page adds to the palette */
  --bg-accent-4: #F2F6F8;        /* Background/Light/Accent BG 4 */
  --dark-bg-accent-2: #0C121E;   /* Background/Dark/Accent BG 2  */
  --border-light-2: #E4E5E7;     /* Border/Light 2 */
  --border-dark-1: #181E29;      /* Border/Dark 1  */
  --border-dark-2: #384761;      /* Border/Dark 2  */

  /* Link/button colour used on dark surfaces */
  --btn-on-dark: #4D80FF;        /* Buttons/Dark/Default */

  /* Hero display type: 120px at 1920, floors at 40px */
  --text-display: clamp(2.5rem, 5.9vw + 0.4rem, 7.5rem);

  /* 1920 canvas with 120px gutters leaves 1680 of content */
  --lp-container-max: 1680px;
  --lp-gutter: clamp(1.25rem, 6.25vw, 7.5rem);
}

/* Shell shared by every ABR LP module */
.abr-lp {
  width: 100%;
  position: relative;
}

.abr-lp-container {
  max-width: var(--lp-container-max);
  width: 100%;
  margin: 0 auto;
}

/* Figma sets headings in Inter Display *Medium* with -5% tracking on the
   larger sizes. The global rule is 700 with no tracking, so correct it
   for landing-page scope only rather than changing the whole theme. */
.abr-lp h1,
.abr-lp h2,
.abr-lp h3,
.abr-lp h4,
.abr-lp h5,
.abr-lp h6 {
  font-weight: 500;
}

.abr-lp h1,
.abr-lp h2,
.abr-lp h3 {
  letter-spacing: -0.05em;
}

/* The shared eyebrow macro is reused as-is; these adjust it to the
   landing-page spec (4px radius, 16px icon, no blinking cursor). */
.abr-lp .eyebrow-custom {
  border-radius: 4px;
  padding: 8px 16px 8px 8px;
}

.abr-lp .eyebrow-icon {
  width: 16px;
  height: 16px;
}

.abr-lp .eyebrow-cursor {
  display: none;
}

/* Dark sections invert the eyebrow's neighbouring text, not the pill */
.abr-lp--dark {
  background-color: var(--dark-bg);
  color: var(--text-light-primary);
}

.abr-lp--dark h1,
.abr-lp--dark h2,
.abr-lp--dark h3,
.abr-lp--dark h4,
.abr-lp--dark h5,
.abr-lp--dark h6 {
  color: var(--text-light-primary);
}


/* ------------------------------------------------------------------
   Primary button: the shared .p-btn macro re-tuned to the LP spec
   (48px tall, 44px arrow box, 16px gap, linear rather than radial
   gradient). Hover padding is 26px so the total width does not jump
   when the left icon collapses and the right icon slides in.
   ------------------------------------------------------------------ */

.abr-lp .p-btn {
  background-image: linear-gradient(to left, #2D7CFE 0%, #0855FC 100%);
  box-shadow: 0 5px 20px rgba(47, 107, 255, 0.5);
  padding: 2px 24px 2px 2px;
  font-weight: 500;
}

.abr-lp .p-btn .btn-bg-fill {
  width: 44px;
  border-radius: 12px;
}

.abr-lp .p-btn .btn-icon-left {
  width: 44px;
  min-width: 44px;
  max-width: 44px;
  height: 44px;
  margin-right: 16px;
}

.abr-lp .p-btn:hover {
  padding: 2px 24px 2px 26px;
  box-shadow: 0 4px 12px rgba(5, 82, 252, 0.18);
}

.abr-lp .p-btn:hover .btn-bg-fill {
  border-radius: 12px;
}

/* ------------------------------------------------------------------
   Inline chevron link (Figma "get-started-btn" without a fill).
   Static by design: chevrons nudge right on hover, nothing more.
   ------------------------------------------------------------------ */

.abr-lp .abr-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--secondary-font);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  text-decoration: underline;
  color: var(--btn-on-dark);
  transition: opacity 0.2s ease;
}

.abr-lp .abr-link img {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  transition: transform 0.2s ease;
}

.abr-lp .abr-link:hover {
  opacity: 0.85;
}

.abr-lp .abr-link:hover img {
  transform: translateX(3px);
}

.abr-lp .abr-link--light {
  color: var(--text-light-primary);
}

.abr-lp .abr-link--brand {
  color: var(--primary-color);
}





/* Mobile css */
@media(max-width:768px){
  .section{
    padding:3em 0 !important;
  }
}
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;
}


/****** Custom Button CSS START *********/
/*      Animated primary button        */
/***************************/

/* Base Button Styles */
.p-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  background-image: radial-gradient(circle farthest-corner at 150% 0%, #51a2ff, #0552fc);
  border-radius: 0.875em;
  border: none;
  padding: 2px 32px 2px 2px;
  font-family: var(--secondary-font);
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 6px 14px #1355ff66;
  cursor: pointer;
  overflow: hidden; 
  /* MUCH FASTER: 0.3s */
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Expanding White Background (Layer 1) */
.p-btn .btn-bg-fill {
  position: absolute;
  top: 2px; 
  left: 2px; 
  width: 50px; 
  height: calc(100% - 4px); 
  background-color: #ffffff;
  border-radius: calc(0.875em - 2px); 
  /* FASTER SOFT BOUNCE: 0.35s */
  transition: all 0.35s cubic-bezier(0.34, 1.2, 0.64, 1);
  z-index: 1; 
}

/* ============================
   INFINITE LOOP TRACK 
   ============================ */

/* Left Icon Wrapper (Layer 2 - Above White Box) */
.p-btn .btn-icon-left {
  position: relative;
  display: flex;
  align-items: center;
  width: 50px;
  min-width: 50px; 
  max-width: 50px;
  height: 50px;
  flex-shrink: 0; 
  margin-right: 12px;
  overflow: hidden; 
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 2; 
}

/* The Track that holds two arrows and slides perfectly */
.p-btn .btn-icon-track {
  display: flex;
  gap: 30px; 
  padding-left: 15px; 
  width: max-content;
  animation: infinite-slide 2.5s linear infinite; 
}

/* Base Icon styling */
.p-btn .btn-icon-img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  flex-shrink: 0;
}

/* Seamless Left-to-Right Keyframes */
@keyframes infinite-slide {
  0% { transform: translateX(-50px); } 
  100% { transform: translateX(0px); } 
}

/* ============================ */

/* Text Wrapper (Layer 2 - Above White Box) */
.p-btn .btn-text {
  position: relative;
  color: #ffffff;
  white-space: nowrap; 
  transition: color 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 2; 
}

/* Right Icon Wrapper (Layer 2 - Above White Box) */
.p-btn .btn-icon-right {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 0;
  min-width: 0;
  opacity: 0;
  margin-left: 0;
  transform: translateX(-15px);
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  overflow: hidden;
  z-index: 2; 
}

/* ============================
   HOVER ANIMATION STATES 
   ============================ */

/* 1. Pause the looping animation on hover */
.p-btn:hover .btn-icon-track {
  animation-play-state: paused;
}

/* 2. Shift padding to keep text centered WITHOUT changing total button width */
.p-btn:hover {
  padding: 2px 24px 2px 36px; 
  box-shadow: 0 4px 12px rgba(5, 82, 252, 0.1);
}

/* 3. Expand the white background */
.p-btn:hover .btn-bg-fill {
  top: 2px;
  left: 2px;
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  border-radius: calc(0.875em - 2px); 
}

/* 4. Change text color */
.p-btn:hover .btn-text {
  color: #011032;
}

/* 5. Collapse and fade out the left icon wrapper */
.p-btn:hover .btn-icon-left {
  width: 0;
  min-width: 0;
  max-width: 0;
  opacity: 0;
  margin-right: 0;
  transform: scale(0.5);
}

/* 6. Reveal and slide in the right icon */
.p-btn:hover .btn-icon-right {
  width: 24px;
  min-width: 24px;
  opacity: 1;
  margin-left: 12px;
  transform: translateX(0);
  overflow: visible;
}


/* ==================================
   Secondary Button (.s-btn)
   ================================== */

/* Base Styles (Padding and sizing exactly matches .p-btn) */
.s-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  background: transparent;
  border-radius: 0.875em;
  border: none;
  padding: 2px 32px 2px 2px; 
  font-family: var(--secondary-font);
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  overflow: hidden; 
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1); 
  z-index: 1; 
}

/* Expanding Background (Invisible by default, expands on hover) */
.s-btn .s-btn-bg-fill {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 50px; 
  height: calc(100% - 4px);
  background-color: transparent; 
  border-radius: calc(0.875em - 2px); 
  /* FASTER SOFT BOUNCE */
  transition: all 0.35s cubic-bezier(0.34, 1.2, 0.64, 1);
  z-index: -1; 
}

/* ============================
   INFINITE LOOP TRACK 
   ============================ */

/* Left Icon Wrapper (Layer 2) */
.s-btn .s-btn-icon-left {
  position: relative;
  display: flex;
  align-items: center;
  width: 50px;
  min-width: 50px; 
  max-width: 50px;
  height: 50px;
  flex-shrink: 0; 
  margin-right: 12px; 
  overflow: hidden; 
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1); 
  z-index: 2; 
}

/* Track and Loop */
.s-btn .s-btn-icon-track {
  display: flex;
  gap: 30px; 
  padding-left: 15px; 
  width: max-content;
  animation: s-infinite-slide 2.5s linear infinite; 
}

/* Base Icon styling */
.s-btn .s-btn-icon-img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  flex-shrink: 0;
}

/* Text Wrapper */
.s-btn .s-btn-text {
  position: relative;
  color: #2F6BFF; 
  white-space: nowrap; 
  transition: color 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 2; 
}

/* 1px Custom Underline */
.s-btn .s-btn-text::after {
  content: '';
  position: absolute;
  bottom: -2px; 
  left: 0;
  width: 100%;
  height: 2px;
  background-color: currentColor; 
  transition: background-color 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Right Icon Wrapper (Hidden Initially) */
.s-btn .s-btn-icon-right {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 0;
  min-width: 0;
  opacity: 0;
  margin-left: 0;
  transform: translateX(-15px);
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  overflow: hidden;
  z-index: 2; 
}

/* ============================
   HOVER ANIMATION STATES 
   ============================ */

.s-btn:hover .s-btn-icon-track {
  animation-play-state: paused;
}

.s-btn:hover {
  padding: 2px 24px 2px 36px; 
}

.s-btn:hover .s-btn-bg-fill {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 0.875em;
  background-color: rgba(47, 107, 255, 0.08); 
}

.s-btn:hover .s-btn-text {
  color: #011032;
}

.s-btn:hover .s-btn-icon-left {
  width: 0;
  min-width: 0;
  max-width: 0;
  opacity: 0;
  margin-right: 0;
  transform: scale(0.5);
}

.s-btn:hover .s-btn-icon-right {
  width: 24px;
  min-width: 24px;
  opacity: 1;
  margin-left: 12px;
  transform: translateX(0);
  overflow: visible;
}
/* ════════════════════════════════
   HubSpot form overrides
   Works for legacy + multi-step
   Mapped to New Global Variables
════════════════════════════════ */

/* Field spacing */
.fh-form-wrap .hs-form .hs-form-field {
  margin-bottom: 20px;
}

.form-columns-1 .hs-input {
  width: 100%;
}

/* Hide labels for standard input fields, show for radio/checkbox groups */
.fh-form-wrap .hs-form .hs-fieldtype-text > label,
.fh-form-wrap .hs-form .hs-fieldtype-email > label,
.fh-form-wrap .hs-form .hs-fieldtype-phone > label,
.fh-form-wrap .hs-form .hs-fieldtype-number > label,
.fh-form-wrap .hs-form .hs-fieldtype-select > label,
.fh-form-wrap .hs-form .hs-fieldtype-textarea > label {
  display: block;
}

.hs-fieldtype-textarea{
  margin-bottom: 20px;
}

.fh-form-wrap .hs-form .hs-fieldtype-radio > label,
.fh-form-wrap .hs-form .hs-fieldtype-checkbox > label {
  display: block;
  font-family: var(--secondary-font);
  font-size: clamp(1rem, 0.5625vw + 0.8875rem, 1.5625rem);
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 14px;
}

/* Text / email / phone / number inputs */
.fh-form-wrap .hs-form input.hs-input:not([type="checkbox"]):not([type="radio"]),
.fh-form-wrap .hs-form select.hs-input {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  box-sizing: border-box;
  padding: 14px 16px;
  background: var(--bg-primary);
  border:none;
  border-radius: 14px;
  font-family: var(--secondary-font);
  font-size: .875rem;
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.2s ease;
  padding:19px;
 font-size:14px;
}

/* Select arrow */
.fh-form-wrap .hs-form select.hs-input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 44px;
  cursor: pointer;
  width: 100% !important;
}

/* Textarea */
.fh-form-wrap .hs-form textarea.hs-input {
  -webkit-appearance: none;
  appearance: none;
  width: 100% !important;
  box-sizing: border-box;
  min-height: 92px;
  padding: 19px;
  background: var(--bg-primary);
  border:none;
  border-radius: 14px;
  font-family: var(--secondary-font);
  font-size: 14px;
  color: var(--text-primary);
  resize: vertical;
  outline: none;
  transition: border-color 0.2s ease;
  margin-bottom: 0px;
}

/* Focus state */
.fh-form-wrap .hs-form input.hs-input:focus,
.fh-form-wrap .hs-form select.hs-input:focus,
.fh-form-wrap .hs-form textarea.hs-input:focus {
  border-color: var(--primary-color);
  box-shadow: none;
}

/* Placeholder text */
.fh-form-wrap .hs-form input::placeholder,
.fh-form-wrap .hs-form textarea::placeholder {
  color: var(--text-secondary);
}

/* ── Radio buttons ── */
.fh-form-wrap .hs-form .inputs-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.fh-form-wrap .hs-form .hs-form-radio,
.fh-form-wrap .hs-form .hs-form-radio-display {
  margin-bottom: 12px;
}

.fh-form-wrap .hs-form .hs-form-radio label,
.fh-form-wrap .hs-form .hs-form-radio-display label {
  display: flex !important;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-family: var(--secondary-font);
  font-size: clamp(1rem, 0.5625vw + 0.8875rem, 1.5625rem);
  color: var(--text-primary);
  line-height: 1.4;
}

.fh-form-wrap .hs-form input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  flex-shrink: 0;
  width: 20px !important;
  height: 20px;
  border: var(--global-border-width) solid var(--global-border-color);
  border-radius: 50%;
  cursor: pointer;
  margin: 0;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.fh-form-wrap .hs-form input[type="radio"]:checked {
  background-color: var(--primary-color);
  border-color: var(--primary-color);
  box-shadow: inset 0 0 0 3px #ffffff;
}

/* ── GDPR / Consent section ── */
.fh-form-wrap .hs-form .legal-consent-container {
  margin-top: 12px;
}

.fh-form-wrap .hs-form .legal-consent-container .hs-richtext {
  font-family: var(--secondary-font);
  font-size: 13px;
  color: var(--text-tertiary);
  line-height: 1.5;
  margin-bottom: 12px;
}

.fh-form-wrap .hs-form .legal-consent-container .hs-richtext p {
  margin: 0;
}

.fh-form-wrap .hs-form .legal-consent-container .hs-form-booleancheckbox {
  margin-bottom: 0;
}

.fh-form-wrap .hs-form .legal-consent-container .hs-form-booleancheckbox label {
  display: flex !important;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  font-family: var(--secondary-font);
  font-size: 13px;
  font-weight: 400;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* Custom checkbox */
.fh-form-wrap .hs-form input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border: var(--global-border-width) solid var(--global-border-color);
  border-radius: 4px;
  cursor: pointer;
  margin: 0;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.fh-form-wrap .hs-form input[type="checkbox"]:checked {
  background-color: var(--primary-color);
  border-color: var(--primary-color);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='M2 6l3 3 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 10px;
}

/* ── Submit / Next / Prev buttons ── */
/* ── Submit / Next / Prev buttons (Legacy) ── */
.fh-form-wrap .hs-form .hs-button {
  -webkit-appearance: none;
  appearance: none;
  display: inline-block;
  
  /* Set the solid hover color on the base button */
  background: var(--primary-color);
  color: var(--btn-primary-text-color);
  
  border: none;
  border-radius: var(--btn-primary-border-radius);
  padding: 14px 36px;
  font-family: var(--btn-primary-font);
  font-size: var(--btn-primary-font-size);
  cursor: pointer;
  width: 100%;
  box-shadow: 0 6px 14px 0 #00061742;
  
  /* Setup for the gradient overlay */
  position: relative;
  z-index: 1;
  overflow: hidden; 
  
  transition: background 0.3s cubic-bezier(.39, .575, .565, 1);
}


.fh-form-wrap .hs-form .hs-button:hover {
  color: var(--text-light-primary);
  background:var(--dark-bg);
}


/* ── Submit Buttons (Multi-step) ── */
[data-hsfc-id=Renderer] .hsfc-Button {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline-block !important;
  
  /* Set the solid hover color on the base button */
  background-color: var(--text-primary) !important;
  background-image: none !important; /* Overrides any default HubSpot inline gradients */
  color: var(--btn-primary-text-color) !important;
  
  border: none !important;
  border-radius: var(--btn-primary-border-radius) !important;
  padding: 14px 36px !important;
  font-family: var(--btn-primary-font) !important;
  font-size: var(--btn-primary-font-size) !important;
  cursor: pointer !important;
  width: 100% !important;
  box-shadow: 0 6px 14px 0 #00061742 !important;
  
  /* Setup for the gradient overlay */
  position: relative !important;
  z-index: 1 !important;
  overflow: hidden !important;
  
  transition: color 0.3s cubic-bezier(.39, .575, .565, 1) !important;
}

/* The gradient sits on top of the solid background */
[data-hsfc-id=Renderer] .hsfc-Button::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-image: radial-gradient(circle farthest-corner at 200% 10%, #51a2ff, #0552fc) !important;
  z-index: -1 !important; /* Keeps it behind the text */
  transition: opacity 0.3s cubic-bezier(.39, .575, .565, 1) !important;
}

/* Fade out the gradient to reveal the solid background color */
[data-hsfc-id=Renderer] .hsfc-Button:hover::before {
  opacity: 0 !important;
}

[data-hsfc-id=Renderer] .hsfc-Button:hover {
  color: var(--text-light-primary) !important;
}

/* ── Error messages ── */
.fh-form-wrap .hs-form .hs-error-msgs {
  list-style: none;
  padding: 0;
  margin: 4px 0 0;
}

.fh-form-wrap .hs-form .hs-error-msg,
.fh-form-wrap .hs-form label.hs-error-msg {
  font-family: var(--secondary-font);
  font-size: 12px;
  color: #EF6B51;
  display: block;
}

/* ── Multi-step: progress bar ── */
.fh-form-wrap .hs-form .hs-progress-bar {
  height: 4px;
  background: var(--global-border-color);
  border-radius: 2px;
  margin-bottom: 24px;
  overflow: hidden;
}

.fh-form-wrap .hs-form .hs-progress-bar .hs-progress-bar-fill {
  height: 100%;
  background: var(--primary-color);
  border-radius: 2px;
  transition: width 0.4s ease;
}


/* ════════════════════════════════
   Multi Step Overrides
   ════════════════════════════════ */

/* ── Individual Radio Option Rows ── */
.fh-form-wrap .hsfc-FieldLabel {
  display: flex !important;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-family: var(--secondary-font);
  font-size: clamp(1rem, 0.5625vw + 0.8875rem, 1.5625rem);
  color: var(--text-primary);
  line-height: 1.4;
  margin-bottom: 12px;
}

/* ── Custom Radio Buttons ── */
.fh-form-wrap input[type="radio"].hsfc-RadioInput {
  -webkit-appearance: none;
  appearance: none;
  flex-shrink: 0;
  width: 20px !important;
  height: 20px;
  border: var(--global-border-width) solid var(--global-border-color);
  border-radius: 50%;
  cursor: pointer;
  margin: 0;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

[data-hsfc-id=Renderer] .hsfc-Step .hsfc-Step__Content {
 padding:0 !important;
}

[data-hsfc-id=Renderer] .hsfc-RadioFieldGroup__Options label {
  margin-bottom: 12px;
}

.hsfc-RadioInput:checked:after {
  background-color: var(--primary-color) !important;
}

[data-hsfc-id=Renderer] .hsfc-NavigationRow {
 margin-top:0px !important;
}

/* ── Text Input ── */
[data-hsfc-id=Renderer] .hsfc-TextInput {
  -webkit-appearance: none;
  appearance: none;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 14px 16px !important;
  background: var(--bg-primary) !important;
  border: none !important;
  border-radius: 14px !important;
  font-family: var(--secondary-font) !important;
  font-size: .875rem !important;
  color: var(--text-primary) !important;
  resize: vertical !important;
  outline: none !important;
  transition: border-color 0.2s ease !important;
}

[data-hsfc-id=Renderer] .hsfc-TextInput:focus{
 box-shadow:none !important;
}

[data-hsfc-id=Renderer] .hsfc-TextInput:active {
 box-shadow:none !important;
}

[data-hsfc-id=Renderer] .hsfc-TextInput:focus-visible{
outline:none !important;
}

[data-hsfc-id=Renderer] .hsfc-TextInput:hover {
 box-shadow: none !important;
}

[data-hsfc-id=Renderer] .hsfc-TextareaInput:focus {
 box-shadow:none !important;
}

[data-hsfc-id=Renderer] .hsfc-TextareaInput:active {
box-shadow:none !important;
}

[data-hsfc-id=Renderer] .hsfc-TextareaInput:hover{
 box-shadow:none !important;
}

[data-hsfc-id=Renderer] .hsfc-DropdownOptions__List__ListItem {
  background: var(--bg-primary) !important;
}

[data-hsfc-id=Renderer] .hsfc-DropdownOptions__Search {
  background: var(--bg-primary) !important;
}

[data-hsfc-id=Renderer] .hsfc-TextareaInput {
  -webkit-appearance: none;
  appearance: none;
  width: 100% !important;
  box-sizing: border-box;
  padding: 14px 16px;
  background: var(--bg-primary) !important;
  border: none !important;
  border-radius: 14px !important;
  font-family: var(--secondary-font) !important;
  font-size: .875rem !important;
  color: var(--text-primary) !important;
  resize: vertical !important;
  min-height: 90px !important;
  outline: none !important;
  transition: border-color 0.2s ease !important;
}

.hsfc-NavigationRow__Buttons:has(>*:only-child) {
  justify-content: flex-start !important;
}

/* ── Submit Buttons ── */
[data-hsfc-id=Renderer] .hsfc-Button {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline-block !important;
  background: var(--primary-color) !important;
  color: var(--btn-primary-text-color) !important;
  border: none !important;
  border-radius: var(--btn-primary-border-radius) !important;
  padding: 14px 36px !important;
  font-family: var(--btn-primary-font) !important;
  font-size: var(--btn-primary-font-size) !important;
  cursor: pointer !important;
  transition: background 0.3s ease, color 0.3s ease !important; 
  margin-top: 8px !important;
  width: 100% !important;
  box-shadow: 0 6px 14px 0 #00061742 !important;
  transition: border-color .3s cubic-bezier(.39, .575, .565, 1), box-shadow .3s cubic-bezier(.39, .575, .565, 1), color .3s cubic-bezier(.39, .575, .565, 1);
}

[data-hsfc-id=Renderer] .hsfc-Button:hover {
  background: var(--text-primary) !important;
  color: var(--text-light-primary) !important;
}

/* ── Labels & Text ── */
[data-hsfc-id=Renderer] .hsfc-FieldLabel {
  display: block !important;
  font-family: var(--primary-font) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  line-height: 1.2 !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

[data-hsfc-id=Renderer] .hsfc-RichText p {
  display: block;
  font-family: var(--primary-font) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--text-primary) !important;
  margin-bottom: 16px !important;
}
[data-hsfc-id=Renderer] .hsfc-Button:not([disabled]):hover {
  transform: translateY(0px) !important;
}

[data-hsfc-id=Renderer] .hsfc-RadioFieldGroup__Options label {
  gap: 12px !important;
}

/* ── Phone Inputs ── */
.hsfc-PhoneInput {
  gap: 0px !important;
}

.hsfc-PhoneInput .hsfc-TextInput {
  border-top-left-radius: 0px !important;
  border-top-right-radius: 14px !important;
  border-bottom-right-radius: 14px !important;
  border-bottom-left-radius: 0px !important;
}

[data-hsfc-id=Renderer] .hsfc-PhoneInput:not(.hsfc-PhoneInput--rtl) .hsfc-PhoneInput__FlagAndCaret {
  border: none !important;
  border-right: 0px !important; 
  border-top-left-radius: 14px !important;
  border-bottom-left-radius: 14px !important;
  background: var(--bg-primary);
}

/* ════════════════════════════════
   Generic Inputs & Overrides
   ════════════════════════════════ */

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


.form-columns-2{
 display:flex;
 gap: 10px;
}

form label {
  display: block;
  margin-bottom: 0.35rem;
  font-family: var(--primary-font);
  color: var(--text-primary);
  line-height: 1.2;
  margin-top: 0;
  font-size:1rem;
  font-weight:600;
  margin-bottom:16px;
}

.form-title {
  margin-bottom: 0;
}

form legend {
  font-size: 0.875rem;
}

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;
}

@media (max-width: 400px), (min-device-width: 320px) and (max-device-width: 480px) {
  .fh-form-wrap .hs-form input.hs-input:not([type="checkbox"]):not([type="radio"]),
  .fh-form-wrap .hs-form select.hs-input {
    width: 100% !important;
  }
}

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;
}

/* 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: var(--bg-primary); /* Adjusted from #FFF to fit themes dynamically */
}

.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: var(--bg-primary);
}

/* 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: 10px !important;
  border-radius: var(--global-border-radius);
  font-family: var(--secondary-font);
  font-size: clamp(1rem, 0.5625vw + 0.8875rem, 1.5625rem);
  color: var(--text-secondary);
}

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

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

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

/* Submit button fallback */
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 Input module integration */
.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: var(--bg-primary);
}

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

.body-container-wrapper .hs-search-field__suggestions li a {
  color: var(--text-primary);
  padding: 0.35rem 0.7rem;
  text-decoration: none;
  transition: background-color 0.3s;
}


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




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