

/* Theme base styles */










:root {

  /* -------------------------------------------------------
     Global Colors
  ------------------------------------------------------- */
  --color-primary:   #2a2622;
  --color-secondary: #fbf8f3;

  /* Mast brand palette (Figma: Web > Color > Mast Color Palette) */
  --mast-cream:           #F5F3EF;
  --mast-washed-black:    #2A2622;
  --mast-clay:            #B35335;
  --mast-washed-black-75: #57504E;
  --mast-coral:           #FF8373;
  --mast-white:           #FFFFFF;
  --mast-light-clay:      #EFE2D9;
  --mast-grey-brown:      #7F7572;
  --mast-washed-black-30: #BBB7B3;
  --mast-washed-black-15: #E4E4E4;
  --mast-big-sky:         #D0DFE1;
  --mast-wild-rose:       #EFDBDF;
  --mast-soft-sky:        #DBE4E5;
  --mast-dusty-rose:      #F0ECED;

  /* -------------------------------------------------------
     Global Fonts
  ------------------------------------------------------- */
  --font-primary:   'Pangea', 'Pangea', sans-serif;
  --font-secondary: 'degular-mono', 'Inter', sans-serif;

  /* -------------------------------------------------------
     Page layout (Theme settings > Page layout)
  ------------------------------------------------------- */
  /* Widest the page gets; the content width (--layout-max-width in
     _tokens.css) is this less the side margins */
  --page-max-width: 1440px;
  /* Fixed-width page: the whole page wrapper stops at the page width
     (_containers-dnd.css); otherwise it runs full width */
  --page-wrapper-max-width: var(--page-max-width);
  /* Section margins: how far sections run past the page margin.
     0 keeps backgrounds inside the margins; the gutter runs them to the
     page edge (_containers-dnd.css) */
  --section-bleed-x: 0px;
  /* Corners of blocks that reach the page margins (background
     sections, the pinned map story / video scroll stages): the media
     radius when they stop at the margins, square when they run to the
     page edge */
  --inset-radius: var(--media-radius);
  /* Space above a background section: one section gap when they are
     inset panels, so stacked panels don't touch; none when they run to
     the page edge (_containers-dnd.css) */
  --inset-section-gap: var(--space-section-y);

  /* -------------------------------------------------------
     Spacing
  ------------------------------------------------------- */
  /* Values come from _tokens.css; these aliases keep older CSS working
     (theme.css and templates/blog.css) */
  --spacing-vertical:    var(--space-section-y);
  --max-content-width:   var(--layout-max-width);
  --dnd-section-padding: var(--space-section-y) 0 0;

  /* -------------------------------------------------------
     Buttons
  ------------------------------------------------------- */
  --btn-font-color:          #F5F3EF;
  --btn-text-transform:      none;
  --btn-bg:                  #2a2622;
  --btn-border-color:        #2a2622;
  --btn-border-width:        1px;
  --btn-border-style:        none;
  --btn-border-radius:       var(--button-radius);
  --btn-padding-top:         16px;
  --btn-padding-right:       20px;
  --btn-padding-bottom:      16px;
  --btn-padding-left:        20px;

  /* Button hover */
  --btn-hover-color:         #F5F3EF;
  --btn-hover-bg:            #B35335;
  --btn-hover-border-color:  #1a334e;

  /* Button active: the theme's button colour shifted by +40, at the
     same opacity as the theme setting */
  --btn-active-bg:           rgba(82, 78, 74, 1.0);
  --btn-active-border-color: #524e4a;

  /* -------------------------------------------------------
     Forms
  ------------------------------------------------------- */
  --form-bg:                      #fbf8f3;
  --form-padding:                 padding: 0px;
;
  --form-border:                  border: 1px none #fbf8f3;
;
  --form-corner-tl:               0px;
  --form-corner-tr:               0px;
  --form-corner-bl:               0px;
  --form-corner-br:               0px;

  /* Form title */
  --form-title-bg:                #fbf8f3;
  --form-title-border:            border: 1px none #fbf8f3;
;
  --form-title-padding:           0px 0px 30px 0px;
  --form-title-corner-tl:         0px;
  --form-title-corner-tr:         0px;
  --form-title-corner-bl:         0px;
  --form-title-corner-br:         0px;

  /* Form labels & help text */
  --form-label-color:             #2a2622;
  --form-help-text-color:         #2a2622;

  /* Form fields */
  --form-field-placeholder-color: #2a2622;
  --form-field-text-color:        #2a2622;
  --form-field-bg:                #FFFFFF;
  --form-field-border-color:      #D1D6DC;
  --form-field-border-width:      2px;
  --form-field-border-style:      solid;
  --form-field-border-radius:     3px;

  /* Form submit button */
  --form-btn-font-color:          #FFFFFF;
  --form-btn-font-size:           22px;
  --form-btn-bg:                  #2a2622;
  --form-btn-border:              border: 1px none #2a2622;
;
  --form-btn-hover-bg:            #1a334e;
  --form-btn-hover-color:         #ffffff;
  --form-btn-hover-border:        border: 1px none #1a334e;
;

  /* -------------------------------------------------------
     Tables
  ------------------------------------------------------- */
  --table-border:            border: 1px solid #2a2622;
;
  --table-header-text:       #FFFFFF;
  --table-header-bg:         #2a2622;
  --table-body-text:         #2a2622;
  --table-body-bg:           #FFFFFF;
  --table-footer-text:       #2a2622;
  --table-footer-bg:         #FFFFFF;
  --table-cell-spacing:      padding: 18px;
;

  /* -------------------------------------------------------
     Dropdowns for HubSpot menu modules (css/components/_default-modules.css)
     Same colours as the Mast header dropdowns; the header and footer
     themselves are styled by modules/mast_header and mast_footer.
  ------------------------------------------------------- */
  --mega-menu-bg:                 var(--mast-cream);
  --mega-menu-text-color:         var(--mast-washed-black);
  --mega-menu-item-hover:         var(--mast-light-clay);
  --header-dropdown-border-color: transparent;
  --header-dropdown-border-width: 0;
  --header-dropdown-border-style: solid;

  /* -------------------------------------------------------
     Anchor color variants
     (used in _typography.css and blog.css)
  ------------------------------------------------------- */
  --anchor-color:        #2A2622;
  --anchor-color-hover:  #020000;
  --anchor-color-active: #524e4a;

  /* -------------------------------------------------------
     Body text color variants
     (used in blog.css pagination, tags, meta)
  ------------------------------------------------------- */
  --body-color:        #57504E;
  --body-color-hover:  #2f2826;
  --body-color-active: #7f7876;

  /* -------------------------------------------------------
     H2 color variants
     (used in blog listing, related posts)
  ------------------------------------------------------- */
  --h2-color:        #2A2622;
  --h2-color-hover:  #020000;
  --h2-color-active: #524e4a;

}


:root {
  /* Type: Mobile */
  --type-indice-size: 12.5px;
  --type-indice-lh: 1.2;

  --type-h1-size: 42px;  --type-h1-weight: 400; --type-h1-lh: 1.2;
  --type-h2-size: 35px;  --type-h2-weight: 400; --type-h2-lh: 1.2;
  --type-h3-size: 25px;  --type-h3-weight: 400; --type-h3-lh: 1.2;
  --type-h4-size: 19px;  --type-h4-weight: 400; --type-h4-lh: 1.2;
  --type-h5-size: 16px;  --type-h5-weight: 400; --type-h5-lh: 1.2;  /* Regular (Web Brand Guidelines 3849:157, 2026-10-26; was Medium) */
  --type-h6-size: 16px;  --type-h6-weight: 300; --type-h6-lh: 1.2;  /* Light on phones and tablets; Regular from 1024px */

  --type-body-size: 16px;         --type-body-weight: 300;         --type-body-lh: 1.4;   /* body copy = Pangea Light 16 on phones and tablets (design, 2026-10-07; Figma Mobile style was 15), 17 on desktop (2026-10-26) */
  --type-body-medium-size: 15px;  --type-body-medium-weight: 500;  --type-body-medium-lh: 1.2;
  --type-caption-size: 12px;      --type-caption-weight: 300;      --type-caption-lh: 1.2;
  --type-button-size: 16px;

  /* Body copy and smaller (design, 2026-10-12; elements/_typography.css):
     Pangea text at the body size or smaller gets letter-spacing, a
     line-length cap and the alternate a / g; headings, display text
     and monospace set --small-text: 0 and get none of them */
  --small-text: 1;
  --small-text-max: calc(var(--type-body-size) + 0.5px);  /* largest size that counts as "small" */
  --small-text-tracking: 0.025rem;
  --body-measure: 41.5em;        /* ~96 characters of Pangea Light per line (design, 2026-10-12; was 32em / ~74) */

  /* Type colours */
  --color-heading: var(--mast-washed-black);
  --color-body:    var(--mast-washed-black-75);
  --color-body-strong: var(--mast-washed-black);
  --color-caption: var(--mast-grey-brown);
  --color-indice:  var(--mast-washed-black);
  --color-indice-bullet: var(--mast-coral);

  /* Buttons (Button Solid/Default) */
  --button-padding: 16px 20px;
  --button-radius: 8px;          /* same as media corners (user, 2026-10-05; Figma said 4) */

  /* Spacing: Mobile */
  --space-gutter-x: 15px;        /* page side margins */
  --space-section-y: 30px;       /* top of each section */
  --space-indice-heading: 25px;
  --space-header-content: 25px;  /* section header to the content under it */
  --space-heading-body: 30px;
  --space-text-media: 30px;
  --space-media-caption: 15px;
  --space-before-cta: 30px;
  --grid-gap: 10px;              /* between all images/columns */
  --text-max-width: 100%;
  --media-radius: 8px;
  /* content width: the page width (theme setting, 1440px) less the side margins, so 1380px */
  --layout-max-width: calc(var(--page-max-width, 1440px) - 2 * var(--space-gutter-x));
}

/* Tablet (Figma 834) */
@media (min-width: 768px) {
  :root {
    --type-indice-size: 15px;

    --type-h1-size: 46px;  --type-h1-lh: 1.1;
    --type-h2-size: 36px;
    --type-h3-size: 28px;
    --type-h4-size: 22px;
    --type-h5-size: 18px;
    --type-h6-size: 18px;

    --type-body-size: 16px;         --type-body-weight: 300;   /* Light, per the 2026-10-07 body copy rule (Figma Tablet style was Regular) */
    --type-body-medium-size: 16px;
    --type-caption-size: 12px;
    --type-button-size: 17px;

    --space-gutter-x: 30px;
    --space-section-y: 40px;
    --space-indice-heading: 30px;
    --space-header-content: 30px;
    --space-heading-body: 25px;
    --space-text-media: 40px;
    --space-media-caption: 15px;
    --text-max-width: 465px;
  }
}

/* 1440 */
@media (min-width: 1024px) {
  :root {
    --type-h1-size: 55px;  --type-h1-lh: 1.2;
    --type-h2-size: 39px;  --type-h2-lh: 1.3;
    --type-h3-size: 31px;  --type-h3-lh: 1.3;
    --type-h4-size: 25px;  --type-h4-lh: 1.3;
    --type-h5-size: 20px;  --type-h5-weight: 400; --type-h5-lh: 1.3;
    --type-h6-size: 20px;  --type-h6-weight: 400; --type-h6-lh: 1.3;  /* Figma Desktop/H6 is Regular (text styles 12085:12686, 2026-10-26) */

    --type-body-size: 17px;         --type-body-weight: 300;  --type-body-lh: 1.3;  /* Figma Desktop/Light Body Copy 17/1.3 (2026-10-26; was 16) */
    --type-body-medium-size: 16px;  --type-body-medium-weight: 500;  --type-body-medium-lh: 1.3;
    --type-caption-size: 15px;      --type-caption-lh: 1.3;
    --type-button-size: 17px;      /* Figma Button Solid/Default (was 21) */

    --space-section-y: 60px;
    --space-indice-heading: 40px;  /* Rules_1440 3850:116 */
    --space-header-content: 40px;  /* Figma About: every section header to its content */
    --space-heading-body: 30px;    /* Rules_1440 3850:116 */
    --space-text-media: 60px;
    --space-media-caption: 20px;
    --space-before-cta: 50px;
    --text-max-width: 705px;
  }
}

/* Nothing above 1440: the page is capped at 1440px (1380px of
   content), so the 1440 type and spacing hold on wider screens. The
   Figma 1920 / 2560 text styles are no longer used. */
/*
 * theme.css
 * Mast Theme — style rules only.
 * All custom properties are defined in css/settings/_variables.css
 */

/* Layout */
.content-wrapper {
  max-width: var(--max-content-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.section-spacing {
  padding-top: var(--spacing-vertical);
  padding-bottom: var(--spacing-vertical);
}

/* Generic */


@font-face {
  font-family: "Pangea";
  src: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/raw_assets/public/MastDev/theme/Mast_2026/fonts/Pangea-Light-subset.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
/* Light: characters Pangea-Light-subset.woff2 lacks (1073), from the older full file */
@font-face {
  font-family: "Pangea";
  src: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/Pangea-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  unicode-range: U+A2-A5, U+A7, U+100-130, U+132-151, U+154-15F, U+162-177, U+179-17C, U+17F-181, U+186-18A, U+18E-191, U+193-194, U+196-1A1, U+1A4-1A5, U+1A9-1AA, U+1AC-1B9, U+1C0-1F5, U+1F8-220, U+226-233, U+237-23E, U+241-254, U+256-257, U+259, U+25B, U+25F-261, U+263-26A, U+26C, U+26F, U+271-272, U+275, U+278, U+27D-27E, U+283-284, U+288-28C, U+28E, U+292, U+294-295, U+298, U+29D, U+2A7, U+2B0-2B3, U+2B7-2B9, U+2BB-2BC, U+2BE-2C1, U+2C8, U+2E1-2E3, U+300-304, U+306-30D, U+30F, U+311-313, U+315, U+31B, U+320, U+323-329, U+32D-332, U+335, U+342, U+35C-35D, U+361, U+37B, U+37E, U+384-38A, U+38C, U+38E-3A1, U+3A3-3BB, U+3BD-3CE, U+3FD, U+400-45F, U+462-463, U+472-475, U+490-493, U+496-49D, U+4A0-4A5, U+4AA-4AB, U+4AE-4B3, U+4B6-4BB, U+4C0-4C2, U+4CF-4DF, U+4E2-4F5, U+4F8-4F9, U+500-501, U+510-511, U+51A-51D, U+5C3, U+E3F, U+1D7D, U+1DBB, U+1DBF, U+1DC6-1DC7, U+1E00-1E9B, U+1E9E, U+1EA0-1EF9, U+2010-2012, U+2015, U+2020-2021, U+2023, U+203D, U+2052, U+2070-2071, U+2074-2079, U+207F-2089, U+2090-209C, U+20A1, U+20A6, U+20A9-20AE, U+20B1-20B2, U+20B4-20B5, U+20B8-20BA, U+20BC-20BD, U+20BF-20C0, U+2113, U+2116-2117, U+2120, U+2126, U+212E, U+2150-215E, U+2183-2184, U+2202, U+2205-2206, U+220F, U+2211, U+2219-221A, U+221E, U+222B, U+2245, U+2259, U+22C5, U+2300, U+25A0-25A1, U+25B2-25B4, U+25B6-25B8, U+25BC-25BE, U+25C0-25C2, U+25C6-25C7, U+25CA-25CB, U+25CF, U+2610-2612, U+262E, U+2713, U+272A, U+27E8-27E9, U+2C63-2C66, U+2C6D-2C70, U+2C72-2C73, U+2E18, U+2E38, U+3003, U+A726-A727, U+A72A-A72B, U+A78B-A78D, U+A798-A799, U+A7AA, U+A7AC-A7AE, U+A7B2-A7B7, U+AB53, U+FB01-FB02, U+1F10D-1F10F, U+1F16D-1F16F;
}
@font-face {
  font-family: "Pangea";
  src: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/raw_assets/public/MastDev/theme/Mast_2026/fonts/Pangea-Regular-subset.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* Regular: characters Pangea-Regular-subset.woff2 lacks (716), from the older full file */
@font-face {
  font-family: "Pangea";
  src: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/Pangea-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+A2-A5, U+A7, U+100-130, U+132-151, U+154-15F, U+162-177, U+179-17C, U+17F, U+18F, U+1A0-1A1, U+1AF-1B0, U+1C4-1DC, U+1E2-1E3, U+1E6-1E7, U+1F1-1F3, U+1FA-1FD, U+218-21B, U+232-233, U+237, U+259, U+2BB-2BC, U+2BE-2BF, U+300-304, U+306-30C, U+312, U+31B, U+323, U+326-328, U+32E, U+331, U+37E, U+384-38A, U+38C, U+38E-3A1, U+3A3-3BB, U+3BD-3CE, U+400-45F, U+462-463, U+472-475, U+490-493, U+496-49D, U+4A0-4A5, U+4AA-4AB, U+4AE-4B3, U+4B6-4BB, U+4C0-4C2, U+4CF-4DF, U+4E2-4F5, U+4F8-4F9, U+500-501, U+51A-51D, U+E3F, U+1E0C-1E0F, U+1E24-1E25, U+1E28-1E2B, U+1E32-1E33, U+1E36-1E3B, U+1E40-1E49, U+1E58-1E5F, U+1E62-1E63, U+1E6C-1E6F, U+1E80-1E85, U+1E88-1E89, U+1E92-1E96, U+1E9E, U+1EA0-1EF9, U+2010-2012, U+2015, U+2020-2021, U+2023, U+203D, U+2052, U+2070, U+2074-2079, U+2080-2089, U+20A1, U+20A6, U+20A9-20AE, U+20B1-20B2, U+20B4-20B5, U+20B8-20BA, U+20BC-20BD, U+20BF-20C0, U+2113, U+2116-2117, U+2120, U+2126, U+212E, U+2150-215E, U+2202, U+2205-2206, U+220F, U+2211, U+2219-221A, U+221E, U+222B, U+2245, U+2259, U+22C5, U+2300, U+25A0-25A1, U+25B2-25B4, U+25B6-25B8, U+25BC-25BE, U+25C0-25C2, U+25C6-25C7, U+25CA-25CB, U+25CF, U+2610-2612, U+262E, U+2713, U+272A, U+27E8-27E9, U+2E18, U+2E38, U+3003, U+FB01-FB02, U+1F10D-1F10F, U+1F16D-1F16F;
}
@font-face {
  font-family: "Pangea";
  src: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/raw_assets/public/MastDev/theme/Mast_2026/fonts/Pangea-Medium-subset.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* Medium: characters Pangea-Medium-subset.woff2 lacks (1073), from the older full file */
@font-face {
  font-family: "Pangea";
  src: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/Pangea-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+A2-A5, U+A7, U+100-130, U+132-151, U+154-15F, U+162-177, U+179-17C, U+17F-181, U+186-18A, U+18E-191, U+193-194, U+196-1A1, U+1A4-1A5, U+1A9-1AA, U+1AC-1B9, U+1C0-1F5, U+1F8-220, U+226-233, U+237-23E, U+241-254, U+256-257, U+259, U+25B, U+25F-261, U+263-26A, U+26C, U+26F, U+271-272, U+275, U+278, U+27D-27E, U+283-284, U+288-28C, U+28E, U+292, U+294-295, U+298, U+29D, U+2A7, U+2B0-2B3, U+2B7-2B9, U+2BB-2BC, U+2BE-2C1, U+2C8, U+2E1-2E3, U+300-304, U+306-30D, U+30F, U+311-313, U+315, U+31B, U+320, U+323-329, U+32D-332, U+335, U+342, U+35C-35D, U+361, U+37B, U+37E, U+384-38A, U+38C, U+38E-3A1, U+3A3-3BB, U+3BD-3CE, U+3FD, U+400-45F, U+462-463, U+472-475, U+490-493, U+496-49D, U+4A0-4A5, U+4AA-4AB, U+4AE-4B3, U+4B6-4BB, U+4C0-4C2, U+4CF-4DF, U+4E2-4F5, U+4F8-4F9, U+500-501, U+510-511, U+51A-51D, U+5C3, U+E3F, U+1D7D, U+1DBB, U+1DBF, U+1DC6-1DC7, U+1E00-1E9B, U+1E9E, U+1EA0-1EF9, U+2010-2012, U+2015, U+2020-2021, U+2023, U+203D, U+2052, U+2070-2071, U+2074-2079, U+207F-2089, U+2090-209C, U+20A1, U+20A6, U+20A9-20AE, U+20B1-20B2, U+20B4-20B5, U+20B8-20BA, U+20BC-20BD, U+20BF-20C0, U+2113, U+2116-2117, U+2120, U+2126, U+212E, U+2150-215E, U+2183-2184, U+2202, U+2205-2206, U+220F, U+2211, U+2219-221A, U+221E, U+222B, U+2245, U+2259, U+22C5, U+2300, U+25A0-25A1, U+25B2-25B4, U+25B6-25B8, U+25BC-25BE, U+25C0-25C2, U+25C6-25C7, U+25CA-25CB, U+25CF, U+2610-2612, U+262E, U+2713, U+272A, U+27E8-27E9, U+2C63-2C66, U+2C6D-2C70, U+2C72-2C73, U+2E18, U+2E38, U+3003, U+A726-A727, U+A72A-A72B, U+A78B-A78D, U+A798-A799, U+A7AA, U+A7AC-A7AE, U+A7B2-A7B7, U+AB53, U+FB01-FB02, U+1F10D-1F10F, U+1F16D-1F16F;
}
@font-face {
  font-family: "Pangea";
  src: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/raw_assets/public/MastDev/theme/Mast_2026/fonts/Pangea-Bold-subset.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
/* Bold: characters Pangea-Bold-subset.woff2 lacks (716), from the older full file */
@font-face {
  font-family: "Pangea";
  src: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/fonts/Pangea-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+A2-A5, U+A7, U+100-130, U+132-151, U+154-15F, U+162-177, U+179-17C, U+17F, U+18F, U+1A0-1A1, U+1AF-1B0, U+1C4-1DC, U+1E2-1E3, U+1E6-1E7, U+1F1-1F3, U+1FA-1FD, U+218-21B, U+232-233, U+237, U+259, U+2BB-2BC, U+2BE-2BF, U+300-304, U+306-30C, U+312, U+31B, U+323, U+326-328, U+32E, U+331, U+37E, U+384-38A, U+38C, U+38E-3A1, U+3A3-3BB, U+3BD-3CE, U+400-45F, U+462-463, U+472-475, U+490-493, U+496-49D, U+4A0-4A5, U+4AA-4AB, U+4AE-4B3, U+4B6-4BB, U+4C0-4C2, U+4CF-4DF, U+4E2-4F5, U+4F8-4F9, U+500-501, U+51A-51D, U+E3F, U+1E0C-1E0F, U+1E24-1E25, U+1E28-1E2B, U+1E32-1E33, U+1E36-1E3B, U+1E40-1E49, U+1E58-1E5F, U+1E62-1E63, U+1E6C-1E6F, U+1E80-1E85, U+1E88-1E89, U+1E92-1E96, U+1E9E, U+1EA0-1EF9, U+2010-2012, U+2015, U+2020-2021, U+2023, U+203D, U+2052, U+2070, U+2074-2079, U+2080-2089, U+20A1, U+20A6, U+20A9-20AE, U+20B1-20B2, U+20B4-20B5, U+20B8-20BA, U+20BC-20BD, U+20BF-20C0, U+2113, U+2116-2117, U+2120, U+2126, U+212E, U+2150-215E, U+2202, U+2205-2206, U+220F, U+2211, U+2219-221A, U+221E, U+222B, U+2245, U+2259, U+22C5, U+2300, U+25A0-25A1, U+25B2-25B4, U+25B6-25B8, U+25BC-25BE, U+25C0-25C2, U+25C6-25C7, U+25CA-25CB, U+25CF, U+2610-2612, U+262E, U+2713, U+272A, U+27E8-27E9, U+2E18, U+2E38, U+3003, U+FB01-FB02, U+1F10D-1F10F, U+1F16D-1F16F;
}
/* Border-box sizing everywhere: padding and borders count inside an
   element's width, which the grid and module layouts assume */
*, *: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 */




/* CSS variables */
/* --column-width-multiplier: one column as a percentage (100 / 12) */

:root {
  --column-gap: var(--grid-gap, 10px);
  --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%;
}


/* Tablet layout */

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .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));
    }
  
}


/* Desktop layout */
@media screen and (min-width:1024px) {
  .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));
    }
  
}
/* =============================================================
   _containers-dnd.css
   Page margins, section rhythm and column gaps, from the Figma
   spacing rules (values in settings/_tokens.css).
   ============================================================= */

/* Page: 1440px max (theme setting Page layout > Page width), so content
   is at most 1380px with the 30px side margins (15px on phones).
   Fixed-width page on (the default): the wrapper stops at 1440px too,
   so the whole page, section backgrounds included, sits centred on
   wider screens. Off: the wrapper isn't capped and sections run full
   width; only the content inside them is capped. */
.body-wrapper {
  margin: 0 auto;
  max-width: var(--page-wrapper-max-width, none);
  padding: var(--space-gutter-x);
}

/* Non-DnD pages (blog): the same 1380px of content */
.content-wrapper {
  margin: 0 auto;
  max-width: calc(var(--layout-max-width) + 2 * var(--space-gutter-x));
  padding: var(--space-gutter-x);
}

/* Section rhythm: each section is padded on top only, so the gap
   between consecutive sections equals one Figma section gap. */
.dnd-section,
.content-wrapper--vertical-spacing {
  padding: var(--dnd-section-padding);
}

/* Section width (theme setting Page layout > Section margins):
   - On (the default, like the live site): sections stay inside the
     page margins, so backgrounds stop at 1380px. --section-bleed-x is 0.
   - Off: sections run past the margins to the page wrapper's edges (the
     margin moves inside them), so backgrounds span the 1440px page, or
     the whole screen when Fixed-width page is off.
   Either way the content row is centred at 1380px (below).
   --page-bleed-x is how far full-bleed modules (marquee, video scroll,
   map story) reach past the content: to the section edge. */
.dnd-section {
  --page-bleed-x: var(--section-bleed-x, var(--space-gutter-x));
  margin-left: calc(-1 * var(--section-bleed-x, var(--space-gutter-x)));
  margin-right: calc(-1 * var(--section-bleed-x, var(--space-gutter-x)));
  padding-left: var(--page-bleed-x);
  padding-right: var(--page-bleed-x);
}

/* Sections with a background colour or image keep a page margin of
   padding on every side, so content never touches the coloured edge
   (with Section margins on, their content is 1320px). With Section
   margins on they also get the 8px media corners, like the header and
   footer bars. */
.dnd-section[class*="-background-"] {
  --page-bleed-x: var(--space-gutter-x);
  border-radius: var(--inset-radius, 0);
  padding-bottom: var(--space-section-y);
}

/* A section's top padding is its gap to the section above, but a
   background section's padding sits inside its colour. With Section
   margins on, keep a section gap above it too, so two panels in a row
   (or content and a panel) don't touch. */
.dnd-section + .dnd-section[class*="-background-"] {
  margin-top: var(--inset-section-gap, 0);
}

.body-container-wrapper {
  padding-bottom: var(--space-section-y);
}

/* 10px between all columns and images (--grid-gap), with the row
   capped and centred at the 1380px content width */
.dnd-section > .row-fluid {
  align-items: start;
  gap: var(--grid-gap);
  margin: 0 auto;
  max-width: var(--layout-max-width);
}

.dnd-section .dnd-column {
  display: flex;
  flex-direction: column;
  gap: var(--grid-gap);
  padding: 0;
}

/* Optional helpers for modules and rich text that follow the
   Figma "text block + media" rule */
.text-block {
  max-width: var(--text-max-width);
}

.text-block + .media,
.text-block + img,
.space-before-media {
  margin-top: var(--space-text-media);
}

.space-before-cta {
  margin-top: var(--space-before-cta);
}

/* Elements */
/* =============================================================
   _typography.css
   Element type styles. Sizes, weights, line heights and colours
   come from the Figma type scale in settings/_tokens.css, which
   switches values per breakpoint, so no media queries are needed here.
   ============================================================= */

/* Body
   overflow-wrap prevents long words from breaking mobile layout.
   Font size reductions are preferred; this handles extreme cases. */
body {
  background-color: var(--mast-cream);  /* Figma page background */
  color: var(--color-body);
  font-family: var(--font-primary);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-lh);
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

/* Text selection: a light clay tint (#EBD6C6 is not a palette token).
   The !important makes it win over any other ::selection rule. */
::selection {
  background-color: #EBD6C6 !important;
  color: var(--mast-washed-black);
}

/* CJK language word-break handling.
   Safe to remove if content is not translated into these languages. */
html[lang^="ja"] body,
html[lang^="zh"] body,
html[lang^="ko"] body {
  line-break: strict;
  overflow-wrap: normal;
  word-break: break-all;
}

/* Paragraphs inherit body type */
p {
  margin: 0 0 1.4em;
}

/* Body copy and smaller (design, 2026-10-12): Pangea text at the body
   size or smaller gets 0.025rem letter-spacing, at most ~96 characters
   per line and the alternate g (ss01) and a (ss02) from the Pangea
   subsets in generic/_fonts.css (tokens in settings/_tokens.css).
   Headings, display text and monospace set --small-text: 0 (inherited
   by everything inside them) and get none of the three.
   - Spacing and line length also test the size, in the values:
     (--small-text-max - 1em) is positive only at body size or smaller.
   - The alternates can't: in font properties em is the parent's size,
     so larger text is listed under "Display text" below instead.
   Set on every element, as letter-spacing inherits as a fixed length;
   :where() has no specificity, so any rule that sets its own spacing,
   width or features still wins. */
:where(body *) {
  font-feature-settings: "ss01" var(--small-text), "ss02" var(--small-text);
  letter-spacing: clamp(0px, (var(--small-text-max) - 1em) * 1000, var(--small-text-tracking) * var(--small-text));
}

:where(p, ul:not([class]) > li, ol:not([class]) > li) {
  max-width: max(var(--body-measure), (1em - var(--small-text-max)) * 10000, (1 - var(--small-text)) * 100000px);
}

/* Display text: Pangea set larger than body copy keeps the original
   a / g (design: not on headings). Measured on the QA page, 1440 wide;
   add new module styles larger than body copy here. */
:where(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, blockquote,
       .button, .hs-button, .hsfc-Button,
       .card-stack__title,
       .img-card__cta, .img-card__layout-overlay .img-card__text p,
       .mast-contact-info:not(.mast-contact-info__layout-cards) .info__name,
       .mast-chart__callout,
       .mast-cta__text,
       .mast-footer__address, .mast-footer__button, .mast-footer__phone, .mast-footer__text,
       .mast-forms__tab-text,
       .mast-hero__link, .mast-hero__subheader, .mast-hero__toc,
       .mast-news__list-text,
       .mast-quote:not(.mast-quote--split_left, .mast-quote--split_right) .mast-quote__attribution, .mast-quote__text,
       .mast-quote-tabs__tab-attribution, .mast-quote-tabs__tab-quote,
       .mast-swiper__panel-title, .mast-swiper__timeline-caption,
       .mast-tabs__tab-content-header,
       .mast-video__tags, .mast-video__title,
       .mast-video-scroll__heading, .mast-video-scroll__text,
       .stat-card-grid__title) {
  --small-text: 0;
}

/* Rich text centred in the editor stays centred once capped (specific
   enough to beat the p margin above; module rules still win) */
p:is([style*="text-align: center"], [style*="text-align:center"]) {
  margin-inline: auto;
}

:where(code, kbd, pre, samp) {
  --small-text: 0;  /* monospace: not Pangea body copy (elements/_typography.css) */
}

/* Body copy medium (Figma "Body Copy Medium") */
.body-medium {
  color: var(--color-body-strong);
  font-size: var(--type-body-medium-size);
  font-weight: var(--type-body-medium-weight);
  line-height: var(--type-body-medium-lh);
}

/* Anchors */
a {
  color: var(--anchor-color);
  cursor: pointer;
  font-family: var(--font-primary);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

a:hover,
a:focus {
  color: var(--anchor-color-hover);
}

a:active {
  color: var(--anchor-color-active);
}

/* Headings */
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  color: var(--color-heading);
  font-family: var(--font-primary);
  font-style: normal;
  letter-spacing: 0;
  margin: 0 0 var(--space-heading-body);
  text-transform: none;
}

h1, .h1 { font-size: var(--type-h1-size); font-weight: var(--type-h1-weight); line-height: var(--type-h1-lh); }
h2, .h2 { font-size: var(--type-h2-size); font-weight: var(--type-h2-weight); line-height: var(--type-h2-lh); }
h3, .h3 { font-size: var(--type-h3-size); font-weight: var(--type-h3-weight); line-height: var(--type-h3-lh); }
h4, .h4 { font-size: var(--type-h4-size); font-weight: var(--type-h4-weight); line-height: var(--type-h4-lh); }
h5, .h5 { font-size: var(--type-h5-size); font-weight: var(--type-h5-weight); line-height: var(--type-h5-lh); }
h6, .h6 { font-size: var(--type-h6-size); font-weight: var(--type-h6-weight); line-height: var(--type-h6-lh); }

/* Indice: the small mono eyebrow above a heading (Figma "Indice Text") */
.indice-text {
  color: var(--color-indice);
  --small-text: 0;  /* monospace: not Pangea body copy (elements/_typography.css) */
  font-family: var(--font-secondary);
  font-size: var(--type-indice-size);
  font-weight: 400;
  line-height: var(--type-indice-lh);
  margin: 0 0 var(--space-indice-heading);
  text-transform: uppercase;
}

/* Optional coral square before the indice, as in the Figma spacing rules */
.indice-text--bullet {
  align-items: center;
  display: flex;
  gap: 10px;
}

.indice-text--bullet::before {
  background-color: var(--color-indice-bullet);
  border-radius: 2px;
  content: "";
  flex-shrink: 0;
  height: 9px;
  width: 9px;
}

/* Caption (Figma "Caption Text"); sits under media */
.caption-text {
  color: var(--color-caption);
  font-family: var(--font-primary);
  font-size: var(--type-caption-size);
  font-weight: var(--type-caption-weight);
  line-height: var(--type-caption-lh);
  margin-top: var(--space-media-caption);
}

/* Lists */
ul,
ol {
  margin: 0 0 1.4em;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin: 0;
}
ul.no-list {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

/* Contact lines for rich text (Figma 12085:17582, "Our nurseries"):
   <ul class="contact-list"> with li.contact-list__phone / __address.
   Grey Brown icon, then body copy. Figma's 15px between lines is
   letter to letter, so 7px between 1.3 line boxes here; the 30px
   above comes from the paragraph margin. Each icon box is Figma's
   frame, centred on the first line. Both icons are the textured Figma
   UI Icons (Phone, Map Pin; 2026-11-12), masked in Grey Brown. */
ul.contact-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  list-style: none;
  margin: 0 0 1.4em;
  padding-left: 0;
}

ul.contact-list > li {
  align-items: flex-start;
  color: var(--color-body);
  display: flex;
  margin: 0;
}

ul.contact-list > li::before {
  background: no-repeat center;
  content: "";
  flex: none;
  height: 1.3em;   /* fallback for 1lh */
  height: 1lh;
}

ul.contact-list a {
  color: inherit;
  text-decoration: none;
}

ul.contact-list a:hover,
ul.contact-list a:focus {
  text-decoration: underline;
}

ul.contact-list > .contact-list__phone {
  gap: 10px;
}

ul.contact-list > .contact-list__phone::before {
  /* Figma's Phone (UI Icons 11927:7749) as a mask, Grey Brown like the
     address pin; the box keeps the old icon's width so the text stays put */
  -webkit-mask: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/raw_assets/public/MastDev/theme/Mast_2026/images/mast/icon-phone.png") center / auto 13px no-repeat;
          mask: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/raw_assets/public/MastDev/theme/Mast_2026/images/mast/icon-phone.png") center / auto 13px no-repeat;
  background-color: var(--mast-grey-brown, #7F7572);
  width: 12.309px;
}

ul.contact-list > .contact-list__address {
  gap: 15px;
}

ul.contact-list > .contact-list__address::before {
  /* Figma's Map Pin (UI Icons 11927:7743) as a mask, so it keeps the
     Grey Brown of these contact lines */
  -webkit-mask: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/raw_assets/public/MastDev/theme/Mast_2026/images/mast/icon-map-pin.png") center / 9px auto no-repeat;
          mask: url("https://23185209.fs1.hubspotusercontent-na1.net/hubfs/23185209/raw_assets/public/MastDev/theme/Mast_2026/images/mast/icon-map-pin.png") center / 9px auto no-repeat;
  background-color: var(--mast-grey-brown, #7F7572);
  width: 9px;
}

/* Code blocks */
pre {
  max-width: 100%;
  overflow: auto;
  white-space: pre-wrap;
}
code {
  vertical-align: bottom;
}

/* Blockquotes */
/* Figma quote styling, for quotes in rich text: H4, Washed Black,
   a Clay rule on the left */
blockquote {
  border-left: 2px solid var(--mast-clay, #B35335);
  color: var(--color-heading);
  font-family: var(--font-primary);
  font-size: var(--type-h4-size);
  font-weight: 400;
  line-height: 1.3;
  margin: 0 0 1.4em;
  padding: 5px 0 5px 25px;
}

/* Horizontal rules */
hr {
  border: none;
  border-bottom: 1px solid var(--mast-washed-black-30, #BBB7B3);
}

/* Image alt text: small, so a broken image's alt text doesn't push
   the layout around (sizing rules for img are in _media.css) */
img {
  font-size: 0.583rem;
  word-break: normal;
}
/* =============================================================
   _buttons.css
   Structural defaults + theme variable consumption.
   All custom properties defined in settings/_variables.css

   Contents:
     1. Base button (HubSpot boilerplate): every <button>, .button,
        HubSpot form buttons and blog "read more" buttons, coloured
        from the theme's button settings
     2. Helpers: .no-button, outline buttons, .button-group
     3. Mast buttons (.button--primary etc.) from Figma, plus sizes
        and icons
   ============================================================= */

/* ── 1. Base button ─────────────────────────────────────── */

button,
.button,
.hs-button,
.hs-blog-post-listing__post-button {
  cursor: pointer;
  display: inline-block;
  text-align: center;
  /*transition: all 0.15s linear;*/
  white-space: normal;
  margin: 10px 0;

  /* Theme */
  font-family: var(--font-primary);
  font-size: var(--type-button-size);
  color: var(--btn-font-color);
  text-transform: var(--btn-text-transform);
  text-decoration: none;
  background-color: var(--btn-bg);
  border: var(--btn-border-width) var(--btn-border-style) var(--btn-border-color);
  border-radius: var(--button-radius);
  line-height: 1.2;
  padding: var(--button-padding);
}

button:hover,
button:focus,
.button:hover,
.button:focus,
.hs-button:hover,
.hs-button:focus,
.hs-blog-post-listing__post-button:hover,
.hs-blog-post-listing__post-button:focus {
  color: var(--btn-hover-color);
  background-color: var(--btn-hover-bg);
  border-color: var(--btn-hover-border-color);
  border-radius: var(--button-radius);
  text-decoration: none;
}

button:active,
.button:active,
.hs-button:active,
.hs-blog-post-listing__post-button:active {
  background-color: var(--btn-active-bg);
  border-color: var(--btn-active-border-color);
}

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

/* ── 2. Helpers ─────────────────────────────────────────── */

/* No button — reset to neutral */
.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;
}

.outline-button {
  color: #fff;
  background: transparent;
  border: 1px solid #fff;
}

.outline-button:hover,
.outline-button:focus,
.outline-button:active {
  background: #FFF;
  border: 1px solid #fff;
  color: #000;
}

.dark-outline-button {
  color: #000;
  background: transparent;
  border: 1px solid #000;
}

.dark-outline-button:hover,
.dark-outline-button:focus,
.dark-outline-button:active {
  background: #FFF;
  border: 1px solid #fff;
  color: #000;
}


.button-group {
  text-align: center;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}

.button-group a {
  width: fit-content;
}

/* Side by side from tablet up */
@media screen and (min-width:768px) {
  .button-group {
    flex-direction: row;
    gap: 1rem;
  }
}

/* =============================================================
   Mast buttons (Figma Component Variations > Buttons/CTAs 9124:3150)
   Add a style class to .button: --primary, --secondary, --tertiary
   (hero / on images), --inverted (on dark sections) or --link. Used by
   the button module and available in rich text.

   Figma: 17px Pangea, 14px / 18px padding, 4px radius (now 8px, to
   match the media corners), 86x40 for "Button" (16px, 13px / 17px,
   81x37 on phones). Every style carries a
   1.5px border (the outline styles' stroke) so all sizes match; the
   padding allows for it.

   The fractional paddings reproduce Figma's box sizes: vertical =
   (box height - 1.2 line height - two 1.5px borders) / 2, e.g.
   (40 - 20.4 - 3) / 2 = 8.3px; horizontal = Figma's padding less the
   1.5px border (18 - 1.5 = 16.5px).
   ============================================================= */

.button.button--primary,
.button.button--secondary,
.button.button--tertiary,
.button.button--inverted {
  align-items: center;
  border: 1.5px solid transparent;
  border-radius: var(--button-radius);
  display: inline-flex;
  font-family: var(--font-primary);
  font-size: 16px;
  font-weight: 400;
  gap: 10px;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1.2;
  margin: 0;
  padding: 7.4px 15.5px;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

@media (min-width: 768px) {
  .button.button--primary,
  .button.button--secondary,
  .button.button--tertiary,
  .button.button--inverted {
    font-size: 17px;
    padding: 8.3px 16.5px;
  }
}

/* Primary: Washed Black, Clay on hover */
.button.button--primary {
  background-color: var(--mast-washed-black, #2A2622);
  border-color: var(--mast-washed-black, #2A2622);
  color: var(--mast-cream, #F5F3EF);
}

.button.button--primary:hover,
.button.button--primary:focus-visible {
  background-color: var(--mast-clay, #B35335);
  border-color: var(--mast-clay, #B35335);
  color: var(--mast-cream, #F5F3EF);
}

/* Secondary: Washed Black outline, Clay outline and text on hover */
.button.button--secondary {
  background-color: transparent;
  border-color: var(--mast-washed-black, #2A2622);
  color: var(--mast-washed-black, #2A2622);
}

.button.button--secondary:hover,
.button.button--secondary:focus-visible {
  background-color: transparent;
  border-color: var(--mast-clay, #B35335);
  color: var(--mast-clay, #B35335);
}

/* Hero / tertiary (on images; Figma HERO/ TERTIARY 9124:3204, states
   9124:3213 / 9124:3215 phone and 9124:3217 / 9124:3219 tablet+desktop):
   a 1.5px Cream outline and Cream text with no fill, solid Cream with
   Washed Black text on hover */
.button.button--tertiary {
  background-color: transparent;
  border-color: var(--mast-cream, #F5F3EF);
  color: var(--mast-cream, #F5F3EF);
}

.button.button--tertiary:hover,
.button.button--tertiary:focus-visible {
  background-color: var(--mast-cream, #F5F3EF);
  border-color: var(--mast-cream, #F5F3EF);
  color: var(--mast-washed-black, #2A2622);
}

/* Inverted (solid Cream on dark sections; not in the Figma set, kept for
   the pre-sale pages): Clay on hover */
.button.button--inverted {
  background-color: var(--mast-cream, #F5F3EF);
  border-color: var(--mast-cream, #F5F3EF);
  color: var(--mast-washed-black, #2A2622);
}

.button.button--inverted:hover,
.button.button--inverted:focus-visible {
  background-color: var(--mast-clay, #B35335);
  border-color: var(--mast-clay, #B35335);
  color: var(--mast-cream, #F5F3EF);
}

/* Text link: underlined label, Clay on hover. The base properties are
   repeated on :hover / :focus-visible so the base button hover above
   can't add a background or border. */
.button.button--link,
.button.button--link:hover,
.button.button--link:focus-visible {
  align-items: center;
  background: none;
  border: 0;
  border-radius: 0;
  color: var(--mast-washed-black, #2A2622);
  display: inline-flex;
  font-family: var(--font-primary);
  font-size: 17px;
  gap: 10px;
  line-height: 1.2;
  margin: 0;
  padding: 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-transform: none;
  text-underline-offset: 4px;
}

.button.button--link:hover,
.button.button--link:focus-visible {
  color: var(--mast-clay, #B35335);
}

.button.button--primary:focus-visible,
.button.button--secondary:focus-visible,
.button.button--tertiary:focus-visible,
.button.button--inverted:focus-visible,
.button.button--link:focus-visible {
  outline: 2px solid var(--mast-clay, #B35335);
  outline-offset: 2px;
}

/* Sizes: small and large around the Figma size */
.button.button--sm {
  font-size: 14px;
  padding: 5.6px 12.5px;
}

.button.button--lg {
  font-size: 20px;
  padding: 11px 22.5px;
}

/* Icons sit 10px from the label; --icon-right puts them after it */
.button .button__icon {
  display: inline-flex;
  flex: none;
  height: 0.75em;
  width: 0.75em;
}

.button .button__icon svg {
  display: block;
  height: 100%;
  width: 100%;
}

.button.button--icon-right {
  flex-direction: row-reverse;
}
/* =============================================================
   _forms.css
   Structural defaults + theme variable consumption.
   All custom properties defined in settings/_variables.css
   Styles HubSpot forms (and any <form>) site-wide: fields, labels,
   checkboxes, date picker, GDPR text, validation, submit button,
   and the v1 search input module. Module-specific form styling
   (mast_forms) lives in that module.
   ============================================================= */

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

/* Labels */
form label {
  display: block;
  font-size: 0.875rem;
  margin-bottom: 0.35rem;
  color: var(--form-label-color);
  font-family: var(--font-primary);
}

/* Form Title */
.form-title {
  margin-bottom: 0;
  background-color: var(--form-title-bg);
  border: var(--form-title-border);
  border-radius: var(--form-title-corner-tl) var(--form-title-corner-tr)
                 var(--form-title-corner-br) var(--form-title-corner-bl);
  padding: var(--form-title-padding);
  --small-text: 0;  /* monospace: not Pangea body copy (elements/_typography.css) */
  font-family: var(--font-secondary);
}

/* Help text */
form legend {
  font-size: 0.875rem;
  color: var(--form-help-text-color);
  font-family: var(--font-primary);
}

form .hs-field-desc {
  color: var(--form-help-text-color);
  font-family: var(--font-primary);
}

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

  /* Theme */
  font-family: var(--font-primary);
  color: var(--form-field-text-color);
  background-color: var(--form-field-bg);
  border: var(--form-field-border-width) var(--form-field-border-style) var(--form-field-border-color);
  border-radius: var(--form-field-border-radius);
}

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 {
  color: var(--form-field-placeholder-color);
  opacity: 0.7;
}

/* Cross-browser placeholder */
::-webkit-input-placeholder { color: var(--form-field-placeholder-color); }
::-moz-placeholder           { color: var(--form-field-placeholder-color); }
:-ms-input-placeholder       { color: var(--form-field-placeholder-color); }

form textarea {
  resize: vertical;
}

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

/* Form wrapper */
form,
.submitted-message,
.hs-form-private,
.hbspt-form form {
  background-color: var(--form-bg);
  padding: var(--form-padding);
  border: var(--form-border);
  border-radius: var(--form-corner-tl) var(--form-corner-tr)
                 var(--form-corner-br) var(--form-corner-bl);
}

/* 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: a calendar emoji (U+1F4C5) inside the field,
   and the Pikaday calendar HubSpot opens */
.hs-dateinput {
  position: relative;
}

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

.hs-fieldtype-date .input .hs-dateinput:before {
  color: var(--form-field-placeholder-color);
}

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

.fn-date-picker td.is-selected .pika-button {
  background: var(--color-primary);
  border-radius: 0;
  box-shadow: none;
}

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

.fn-date-picker td.is-today .pika-button {
  color: var(--color-primary);
}

/* 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 (#EF6B51: boilerplate error red, not a Mast palette colour) */
.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;

  /* Theme */
  font-family: var(--font-primary);
  font-size: var(--form-btn-font-size);
  color: var(--form-btn-font-color);
  background-color: var(--form-btn-bg);
  border: var(--form-btn-border);
  border-radius: var(--btn-border-radius);
  padding: var(--btn-padding-top) var(--btn-padding-right)
           var(--btn-padding-bottom) var(--btn-padding-left);
  text-transform: var(--btn-text-transform);
}

form input[type=submit]:hover,
form input[type=submit]:focus,
form .hs-button:hover,
form .hs-button:focus {
  background-color: var(--form-btn-hover-bg);
  color: var(--form-btn-hover-color);
  border: var(--form-btn-hover-border);
}

form input[type=submit]:active,
form .hs-button:active {
  background-color: var(--btn-active-bg);
  border-color: var(--btn-active-border-color);
}

/* Captcha */
.grecaptcha-badge {
  margin: 0 auto;
}



  /* Search input field and suggestions */
  .body-container-wrapper .hs-search-field__button {
    padding: 15px;
    background-color: var(--btn-bg);
    color: var(--btn-font-color);
  }
  .body-container-wrapper .hs-search-field__button:hover {
    background-color: var(--btn-hover-bg);
  }
  .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: var(--color-primary);
    padding: 0.35rem 0.7rem;
    text-decoration: none;
    transition: background-color 0.3s;
  }

/* =============================================================
   _tables.css
   Structural defaults + theme variable consumption.
   All custom properties defined in settings/_variables.css
   Two layers: the boilerplate rules below use the theme's table
   settings; the Mast rules after them then override most of those
   (fills, borders, padding) with the Figma table style.
   ============================================================= */

/* Table */
table {
  border-collapse: collapse;
  margin-bottom: 1.4rem;
  overflow-wrap: break-word;
  width: 100%;
  font-family: var(--font-primary);
  border: var(--table-border);
  background-color: var(--table-body-bg);
}

/* Table cells */
td,
th {
  vertical-align: top;
  border: var(--table-border);
  padding: var(--table-cell-spacing);
  color: var(--table-body-text);
}

/* Table header */
thead th {
  vertical-align: bottom;
  color: var(--table-header-text);
  background-color: var(--table-header-bg);
}

/* Table body */
tbody td {
  color: var(--table-body-text);
  background-color: var(--table-body-bg);
}

/* Table footer */
tfoot td {
  color: var(--table-footer-text);
  background-color: var(--table-footer-bg);
}

/* =============================================================
   Mast tables (rich text): no fills, Washed Black 30% rules between
   rows, a Washed Black rule under the header, 15px cell padding,
   body copy. Matches the stats / accordion rules.
   ============================================================= */
table {
  background: none;
  border: 0;
  border-collapse: collapse;
  font-size: var(--type-body-size);
  margin: 0 0 1.4em;
}

td,
th {
  background: none;
  border: 0;
  border-bottom: 1px solid var(--mast-washed-black-30, #BBB7B3);
  color: var(--color-body);
  font-weight: 300;
  line-height: 1.3;
  padding: 15px;
  text-align: left;
  vertical-align: top;
}

thead th,
thead td {
  background: none;
  border-bottom-color: var(--mast-washed-black, #2A2622);
  color: var(--color-heading);
  font-weight: 400;
  vertical-align: bottom;
}

tbody td {
  background: none;
}

tfoot td {
  background: none;
  border-bottom: 0;
  color: var(--color-heading);
  font-weight: 400;
}

/* Wide tables scroll sideways on phones instead of breaking the page */
@media (max-width: 767px) {
  table {
    display: block;
    overflow-x: auto;
  }
}
/* =============================================================
   _media.css
   Images, video and iframes: never wider than their column, and
   rounded like the Figma media inside page content. Photos and video
   only: SVG images (icons, logos, illustrations) and the theme's icon
   PNGs stay square, and
   modules reset their raster logos and illustrations themselves.
   ============================================================= */

/* Images never overflow their column (HubSpot image modules write a
   fixed pixel width inline) */
img {
  height: auto;
  max-width: 100%;
}

/* 8pt corner radius on photos and video (Figma spacing rules). :where
   keeps the SVG / icon tests out of the specificity, so module
   overrides still win as before. The theme's own icon PNGs
   (images/mast/icon-*: the textured Figma UI Icons) stay square. */
.body-container-wrapper img:where(:not([src*=".svg"]):not([src*="/images/mast/icon-"])),
.body-container-wrapper video,
.body-container-wrapper iframe {
  border-radius: var(--media-radius);
}

/* Components */
/* =============================================================
   _header.css
   The header itself is styled by modules/mast_header.module.
   This file only keeps the keyboard "Skip to content" link
   rendered by templates/partials/header.html.
   ============================================================= */

/* Parked off-screen until it receives keyboard focus, then shown
   top-left above everything (z-index 1000 > the header's 100) */
.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 {
  background-color: var(--mast-cream);
  border-radius: var(--button-radius);
  color: var(--mast-washed-black);
  height: auto;
  left: 8px;
  overflow: visible;
  padding: 8px 12px;
  top: 8px;
  width: auto;
  z-index: 1000;
}

/* =============================================================
   _default-modules.css
   Structural styles for HubSpot's built-in modules: the menu and
   simple menu (.hs-menu-wrapper) and CTA / logo / rich text images.
   Flyout dropdown colours come from --mega-menu-* in
   settings/_variables.css (the Mast header's dropdown colours).
   The site header uses modules/mast_header instead of these menus.
   ============================================================= */

/* 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: row;
  }
}

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

/* Flyouts: submenus are parked off-screen (left: -9999px) and moved
   into place on hover; on phones they show inline instead */
.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;

  /* Theme */
  background-color: var(--mega-menu-bg);
  border: var(--header-dropdown-border-width) var(--header-dropdown-border-style) var(--header-dropdown-border-color);
}

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

  /* Theme */
  color: var(--mega-menu-text-color);
}

.hs-menu-wrapper.flyouts .hs-menu-children-wrapper a:hover {
  background-color: var(--mega-menu-item-hover);
}

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

/* Templates */

/* =============================================================
   blog.css
   Blog-specific styles + theme variable consumption.
   All custom properties defined in settings/_variables.css
   For templates/blog-post.html and blog-index.html. Included in
   main.css and also loaded by those templates (template_css).
   ============================================================= */

/* -------------------------------------------------------
   Blog post
------------------------------------------------------- */

.blog-post,
.blog-header__inner,
.blog-related-posts {
  padding: var(--spacing-vertical) 0;
}

.blog-post {
  margin: 0 auto;
  max-width: 960px;
}

.blog-post__meta {
  margin-bottom: 1.4rem;
}

.blog-post__meta a {
  color: var(--body-color);
  text-decoration: underline;
}

.blog-post__timestamp {
  display: block;
}

.blog-post__tags svg {
  height: auto;
  margin-right: 0.35rem;
  width: 15px;
}

.blog-post__tag-link {
  font-size: 0.875rem;
  color: var(--body-color);
}

.blog-post__tag-link:hover,
.blog-post__tag-link:focus {
  color: var(--body-color-hover);
}

.blog-post__tag-link:active {
  color: var(--body-color-active);
}

/* -------------------------------------------------------
   Blog related posts
------------------------------------------------------- */

.blog-related-posts {
  background-color: var(--color-secondary);
}

.blog-related-posts h2 {
  text-align: center;
}

.blog-related-posts__list {
  display: flex;
  flex-wrap: wrap;
}

.blog-related-posts__post {
  flex: 0 0 100%;
  padding: 1rem;
}

@media screen and (min-width: 768px) {
  .blog-related-posts__post {
    flex: 0 0 calc(100% / 2);
  }
}

@media screen and (min-width: 1000px) {
  .blog-related-posts__post {
    flex: 0 0 calc(100% / 3);
  }
}

.blog-related-posts__image {
  height: auto;
  max-width: 100%;
}

.blog-related-posts__title {
  margin: 0.7rem 0;
}

.blog-related-posts__title-link,
.blog-related-posts__title-link:hover,
.blog-related-posts__title-link:focus,
.blog-related-posts__title-link:active {
  font-size: var(--type-h2-size);
  font-weight: var(--type-h2-weight);
  line-height: var(--type-h2-lh);
}

.blog-related-posts__title-link {
  color: var(--h2-color);
}

.blog-related-posts__title-link:hover,
.blog-related-posts__title-link:focus {
  color: var(--h2-color-hover);
}

.blog-related-posts__title-link:active {
  color: var(--h2-color-active);
}

/* -------------------------------------------------------
   Blog comments
------------------------------------------------------- */

.blog-comments {
  margin: 0 auto;
  margin-bottom: var(--spacing-vertical);
  max-width: 680px;
}

.blog-comments .hs-submit {
  text-align: center;
}

.blog-comments .comment-reply-to {
  border: 0 none;
  color: var(--anchor-color);
}

.blog-comments .comment-reply-to:hover,
.blog-comments .comment-reply-to:focus {
  background-color: transparent;
  color: var(--anchor-color-hover);
  text-decoration: underline;
}

.blog-comments .comment-reply-to:active {
  color: var(--anchor-color-active);
}

#comments-listing .comment-reply-to {
  color: var(--anchor-color);
}

#comments-listing .comment-reply-to:hover,
#comments-listing .comment-reply-to:focus {
  color: var(--anchor-color-hover);
}

#comments-listing .comment-reply-to:active {
  color: var(--anchor-color-active);
}

/* -------------------------------------------------------
   Blog listing (module)
------------------------------------------------------- */

.hs-blog-post-listing__post-title-link,
.hs-blog-post-listing__post-title-link:hover,
.hs-blog-post-listing__post-title-link:focus,
.hs-blog-post-listing__post-title-link:active {
  font-size: var(--type-h2-size);
  font-weight: var(--type-h2-weight);
  line-height: var(--type-h2-lh);
}

.hs-blog-post-listing__post-title-link {
  color: var(--h2-color);
}

.hs-blog-post-listing__post-title-link:hover,
.hs-blog-post-listing__post-title-link:focus {
  color: var(--h2-color-hover);
}

.hs-blog-post-listing__post-title-link:active {
  color: var(--h2-color-active);
}

.hs-blog-post-listing__post-tag,
.hs-blog-post-listing__post-author-name {
  color: var(--body-color);
}

/* -------------------------------------------------------
   Blog pagination
------------------------------------------------------- */

.hs-pagination__link-text,
.hs-pagination__link--number {
  color: var(--body-color);
}

.hs-pagination__link:hover .hs-pagination__link-text,
.hs-pagination__link:focus .hs-pagination__link-text,
.hs-pagination__link--number:hover,
.hs-pagination__link--number:focus {
  color: var(--body-color-hover);
}

.hs-pagination__link:active .hs-pagination__link-text,
.hs-pagination__link--number:active {
  color: var(--body-color-active);
}

.hs-pagination__link-icon svg {
  fill: var(--body-color);
}

/* -------------------------------------------------------
   Misc
------------------------------------------------------- */

/* Targets one specific module instance by its HubSpot-generated id */
#hs_cos_wrapper_widget_4a1b1937-015a-4790-ad91-ed84aa1e177d {
  width: fit-content;
}
/* =============================================================
   system.css
   System page styles + theme variable consumption.
   All custom properties defined in settings/_variables.css
   For templates/system/* (error, search, password, membership and
   email subscription pages). Included in main.css and also loaded by
   those templates (template_css).
   ============================================================= */

/* Error pages: the status code (data-error="404") is drawn huge and
   pale behind the message; z-index -1 keeps it under the text */
.error-page {
  padding: 10rem 0;
  position: relative;
  text-align: center;
}

.error-page:before {
  color: #F3F6F9;
  content: attr(data-error);
  font-size: 40vw;
  font-weight: bold;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  z-index: -1;
}

@media screen and (min-width: 1100px) {
  .error-page:before {
    font-size: 20rem;
  }
}

/* Mast 404 (templates/system/404.html): a random photo and line from the
   HubDB "Error Page Content" table on a rounded inset panel, white text on
   a shade, the line placed top / middle / bottom by the row's text
   position. Hidden rows ([hidden]) wait for the picker script. */
.mast-404 {
  padding: 0 var(--space-gutter-x) var(--space-section-y);
}

.mast-404__slide {
  align-items: center;
  background-color: var(--mast-washed-black, #2A2622);
  border-radius: var(--inset-radius, 8px);
  display: flex;
  flex-direction: column;
  isolation: isolate;
  margin: 0 auto;
  max-width: var(--layout-max-width, 1380px);
  min-height: max(30rem, calc(100svh - 12rem));
  overflow: hidden;
  padding: 3rem 1.5rem;
  position: relative;
  text-align: center;
}

.mast-404__slide[hidden] {
  display: none;
}

.mast-404__slide--text-start { justify-content: flex-start; }
.mast-404__slide--text-center { justify-content: center; }
.mast-404__slide--text-end { justify-content: flex-end; }

.mast-404__photo {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
  z-index: -2;
}

/* Shade so white text reads on bright skies and pale ground */
.mast-404__slide::before {
  background: linear-gradient(180deg, rgba(42, 38, 34, 0.45) 0%, rgba(42, 38, 34, 0.2) 55%, rgba(42, 38, 34, 0.45) 100%);
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.mast-404__content {
  max-width: 1000px;
}

.mast-404__code {
  color: var(--mast-cream, #F5F3EF);
  font-size: var(--type-h3-size);
  letter-spacing: 0.04em;
  margin: 0 0 0.5rem;
}

.mast-404__heading {
  color: var(--mast-cream, #F5F3EF);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  margin: 0 0 1.5rem;
  text-wrap: balance;
}

.mast-404__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1rem;
  justify-content: center;
}

/* No photos (table empty or unreachable): dark text on the page colour */
.mast-404__slide--plain {
  background-color: transparent;
}

.mast-404__slide--plain::before {
  display: none;
}

.mast-404__slide--plain .mast-404__code,
.mast-404__slide--plain .mast-404__heading {
  color: var(--color-heading);
}

/* System pages */
.systems-page {
  margin: 0 auto;
  max-width: 700px;
  padding: 3rem 1.4rem;
}

.systems-page--search-results {
  max-width: 100%;
}

.systems-page .header {
  background-color: transparent;
  border-bottom: none;
  padding: 0;
}

.systems-page .success {
  background-color: #CDE3CC;
  border: 1.5px solid #4F7D24;
  border-radius: 6px;
  color: #4F7D24;
  display: inline-block;
  margin: 1.4rem 0;
  padding: 0.1rem 0.7rem;
  width: 100%;
}

.systems-page form input {
  max-width: 100%;
}

.systems-page form input[type='submit'] {
  margin: 0.7rem 0;
  display: block;
}

/* Search pages */
.hs-search-results__title {
  color: var(--color-heading);
  font-size: 1.25rem;
  margin-bottom: 0.35rem;
  text-decoration: underline;
}

.hs-search-results__title:hover {
  text-decoration: none;
}

.hs-search-results__description {
  padding-top: 0.7rem;
}

/* Password prompt */
.password-prompt input[type=password] {
  height: auto !important;
  margin-bottom: 1.4rem;
}

.systems-page #hs-login-widget-remember,
.systems-page #hs-login-widget-remember ~ label {
  display: inline-block;
  margin-bottom: 0.175rem;
}

.systems-page #hs_login_reset {
  display: block;
  margin-bottom: 0.7rem;
}

/* Backup unsubscribe */
.backup-unsubscribe #email-prefs-form div {
  padding-bottom: 0 !important;
}

.backup-unsubscribe input[type=email] {
  font-size: 0.875rem !important;
  margin-bottom: 1.4rem;
  padding: 0.7rem !important;
}

/* Subscription preferences: js/main.js adds .disabled to each
   subscription when "unsubscribe from all" is checked */
#email-prefs-form .item.disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

#email-prefs-form .item.disabled input:disabled {
  cursor: not-allowed;
}

/* Membership pages */
#hs-membership-form a[class*='show-password'] {
  font-size: 0.75rem;
}

/* Input error messages */
.form-input-validation-message ul.hs-error-msgs {
  padding-left: 0;
  margin: 0;
}

.form-input-validation-message ul.hs-error-msgs li {
  margin: 0;
}

/* Utilities */
/* =============================================================
   _helper.css
   Utility classes, applied by hand in templates and rich text.
   ============================================================= */

/* For content that needs to be visually hidden but stay visible for screenreaders.
   !important so the hiding holds whatever other rules target the element. */

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

/* The same, on phones only */
@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;
  }
}
