/* ===== 00-base.css ===== */
/* innatedrivers.com — hand-written stylesheet reproducing the site as captured from Squarespace 7.1 (2026-09-05).
   Layout coordinates live inline in each page (the Fluid Engine grid per section); this file carries everything shared:
   palette + section themes, type scale, header/menu, blocks, forms, footer, and the collection templates in use. */

/* ---------- palette, type scale, defaults ---------- */
:root {
  --white-hsl: 51, 90.91%, 95.69%;
  --black-hsl: 15, 87.27%, 43.14%;
  --accent-hsl: 0, 91.3%, 13.53%;
  --lightAccent-hsl: 43.6, 60.7%, 55.1%;
  --darkAccent-hsl: 210, 93.33%, 11.76%;
  --safeLightAccent-hsl: 0, 0%, 100%;
  --safeDarkAccent-hsl: 0, 91.3%, 13.53%;
  --safeInverseAccent-hsl: 0, 0%, 100%;
  --safeInverseDarkAccent-hsl: 0, 0%, 100%; /* slideshow arrow stroke in the white theme */
  --safeInverseLightAccent-hsl: 0, 0%, 0%;

  --base-font-size: 16px;
  --maxPageWidth: 1400px;
  --pagePadding: 4vw;
  --sqs-site-gutter: var(--pagePadding);
  --sqs-mobile-site-gutter: 6vw;
  --sqs-site-max-width: var(--maxPageWidth);

  --heading-font-font-family: "minerva-modern", "Optima", "Gill Sans", "Trebuchet MS", sans-serif;
  --body-font-font-family: "freight-text-pro", "Baskerville", "Libre Baskerville", "Hoefler Text", Georgia, serif;
  --meta-font-font-family: var(--heading-font-font-family);
  --heading-font-font-weight: 400;
  --heading-font-line-height: 1.4em;
  --heading-font-letter-spacing: 0em;
  --heading-font-text-transform: uppercase;
  --body-font-font-weight: 400;
  --body-font-line-height: 1.6em;
  --body-font-letter-spacing: .01em;

  --heading-1-size-value: 5.2;
  --heading-2-size-value: 2.8;
  --heading-3-size-value: 2;
  --heading-4-size-value: 1.2;
  --large-text-size-value: 1.5;
  --normal-text-size-value: 1.2;
  --small-text-size-value: 1;
  --site-title-font-font-size-value: 2;
  --site-navigation-font-font-size-value: 1.2;
  --primary-button-font-font-size-value: 1.5;
  --secondary-button-font-font-size-value: 1.5;

  /* site default theme ("bright": oxblood ground, white text, gold primary button) */
  --siteBackgroundColor: hsla(var(--accent-hsl), 1);
  --headingExtraLargeColor: hsla(0, 0%, 100%, 1);
  --headingLargeColor: hsla(0, 0%, 100%, 1);
  --headingMediumColor: hsla(0, 0%, 100%, 1);
  --headingSmallColor: hsla(0, 0%, 100%, 1);
  --paragraphLargeColor: hsla(0, 0%, 100%, 1);
  --paragraphMediumColor: hsla(0, 0%, 100%, 1);
  --paragraphSmallColor: hsla(0, 0%, 100%, 1);
  --paragraphLinkColor: hsla(var(--safeInverseAccent-hsl), 1); /* links in text blocks, excerpts, form/newsletter submission text and accordion descriptions; each theme sets its own */
  --section-inset-border-color: hsla(var(--accent-hsl), 1); /* frame around an inset section (background-width--inset); each theme sets its own */
  --primaryButtonBackgroundColor: hsla(var(--lightAccent-hsl), 1);
  --primaryButtonTextColor: hsla(var(--accent-hsl), 1);
  --secondaryButtonBackgroundColor: hsla(0, 0%, 100%, 1);
  --secondaryButtonTextColor: hsla(var(--accent-hsl), 1);
  --tertiaryButtonBackgroundColor: hsla(0, 0%, 100%, 1);
  --tertiaryButtonTextColor: hsla(var(--accent-hsl), 1);
  --siteTitleColor: hsla(0, 0%, 100%, 1);
  --menuOverlayBackgroundColor: hsla(var(--accent-hsl), 1);
  --menuOverlayNavigationLinkColor: hsla(0, 0%, 100%, 1);
  --tweak-line-block-line-color: hsla(var(--safeInverseAccent-hsl), 1); /* line block colour (Squarespace sets one per theme) */
  --shape-block-background-color: hsla(var(--safeInverseAccent-hsl), 1); /* shape block fill + stroke, also per theme */
  --shape-block-stroke-color: hsla(var(--black-hsl), 1);

  /* header height: 2 × 2.5vw padding + title line (1.4em) + 1vw + nav line (1.6em + .2em padding) */
  --site-title-size: min(calc((var(--site-title-font-font-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--site-title-font-font-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--site-title-font-font-size-value) * 1rem)));
  --nav-size: min(calc((var(--site-navigation-font-font-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--site-navigation-font-font-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--site-navigation-font-font-size-value) * 1rem)));
  --header-height: calc(6vw + 1.4 * var(--site-title-size) + 1.8 * var(--nav-size));
}
@media screen and (max-width: 767px) and (orientation: portrait) {
  :root {
    --site-title-size: calc((var(--site-title-font-font-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem);
    --nav-size: calc((var(--site-navigation-font-font-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem);
    /* mobile header: 2 × 6vw padding + the taller of the title line and the 37px burger (35px box + 1px padding) */
    --header-height: calc(12vw + max(1.4 * var(--site-title-size), 37px));
  }
}

/* section themes (from the captured site palette) */
.dark { --section-inset-border-color: hsla(var(--lightAccent-hsl), 1); --paragraphLinkColor: hsla(var(--safeLightAccent-hsl), 1); --shape-block-background-color: hsla(var(--white-hsl), 1); --shape-block-stroke-color: hsla(var(--safeLightAccent-hsl), 1); --tweak-line-block-line-color: hsla(var(--white-hsl), 1); --siteBackgroundColor: hsla(var(--darkAccent-hsl), 1); --headingExtraLargeColor: hsla(var(--white-hsl), 1); --headingLargeColor: hsla(var(--white-hsl), 1); --headingMediumColor: hsla(var(--white-hsl), 1); --headingSmallColor: hsla(var(--white-hsl), 1); --paragraphLargeColor: hsla(var(--white-hsl), 1); --paragraphMediumColor: hsla(var(--white-hsl), 1); --paragraphSmallColor: hsla(var(--white-hsl), 1); --primaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --primaryButtonTextColor: hsla(var(--white-hsl), 1); --secondaryButtonBackgroundColor: hsla(var(--white-hsl), 1); --secondaryButtonTextColor: hsla(var(--darkAccent-hsl), 1); --tertiaryButtonBackgroundColor: hsla(var(--white-hsl), 1); --tertiaryButtonTextColor: hsla(0, 0%, 0%, 1); --siteTitleColor: hsla(var(--white-hsl), 1); }
.dark-bold { --section-inset-border-color: hsla(var(--darkAccent-hsl), 1); --paragraphLinkColor: hsla(0, 0%, 92.16%, 1); --shape-block-background-color: hsla(var(--white-hsl), 1); --shape-block-stroke-color: hsla(var(--safeLightAccent-hsl), 1); --tweak-line-block-line-color: hsla(var(--safeLightAccent-hsl), 1); --siteBackgroundColor: hsla(var(--darkAccent-hsl), 1); --headingExtraLargeColor: hsla(0, 0%, 100%, 1); --headingLargeColor: hsla(0, 0%, 100%, 1); --headingMediumColor: hsla(0, 0%, 100%, 1); --headingSmallColor: hsla(0, 0%, 100%, 1); --paragraphLargeColor: hsla(0, 0%, 89.02%, 1); --paragraphMediumColor: hsla(0, 0%, 89.02%, 1); --paragraphSmallColor: hsla(0, 0%, 89.02%, 1); --primaryButtonBackgroundColor: hsla(var(--lightAccent-hsl), 1); --primaryButtonTextColor: hsla(0, 0%, 0%, 1); --secondaryButtonBackgroundColor: hsla(var(--white-hsl), 1); --secondaryButtonTextColor: hsla(0, 0%, 0%, 1); --tertiaryButtonBackgroundColor: hsla(0, 0%, 100%, 1); --tertiaryButtonTextColor: hsla(0, 0%, 0%, 1); --siteTitleColor: hsla(var(--white-hsl), 1); }
.bright { --shape-block-background-color: hsla(var(--safeInverseAccent-hsl), 1); --shape-block-stroke-color: hsla(var(--black-hsl), 1); --tweak-line-block-line-color: hsla(var(--safeInverseAccent-hsl), 1); --siteBackgroundColor: hsla(var(--accent-hsl), 1); --headingExtraLargeColor: hsla(0, 0%, 100%, 1); --headingLargeColor: hsla(0, 0%, 100%, 1); --headingMediumColor: hsla(0, 0%, 100%, 1); --headingSmallColor: hsla(0, 0%, 100%, 1); --paragraphLargeColor: hsla(0, 0%, 100%, 1); --paragraphMediumColor: hsla(0, 0%, 100%, 1); --paragraphSmallColor: hsla(0, 0%, 100%, 1); --primaryButtonBackgroundColor: hsla(var(--lightAccent-hsl), 1); --primaryButtonTextColor: hsla(var(--accent-hsl), 1); --secondaryButtonBackgroundColor: hsla(0, 0%, 100%, 1); --secondaryButtonTextColor: hsla(var(--accent-hsl), 1); --tertiaryButtonBackgroundColor: hsla(0, 0%, 100%, 1); --tertiaryButtonTextColor: hsla(var(--accent-hsl), 1); --siteTitleColor: hsla(0, 0%, 100%, 1); }
.light { --section-inset-border-color: hsla(var(--lightAccent-hsl), 1); --paragraphLinkColor: hsla(var(--safeDarkAccent-hsl), 1); --shape-block-background-color: hsla(var(--white-hsl), 1); --shape-block-stroke-color: hsla(var(--safeDarkAccent-hsl), 1); --tweak-line-block-line-color: hsla(var(--black-hsl), 1); --siteBackgroundColor: hsla(var(--lightAccent-hsl), 1); --headingExtraLargeColor: hsla(var(--black-hsl), 1); --headingLargeColor: hsla(var(--black-hsl), 1); --headingMediumColor: hsla(var(--black-hsl), 1); --headingSmallColor: hsla(var(--black-hsl), 1); --paragraphLargeColor: hsla(var(--black-hsl), 1); --paragraphMediumColor: hsla(var(--black-hsl), 1); --paragraphSmallColor: hsla(var(--black-hsl), 1); --primaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --primaryButtonTextColor: hsla(0, 0%, 100%, 1); --secondaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --secondaryButtonTextColor: hsla(0, 0%, 100%, 1); --tertiaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --tertiaryButtonTextColor: hsla(0, 0%, 100%, 1); --siteTitleColor: hsla(var(--black-hsl), 1); }
.black { --section-inset-border-color: hsla(var(--lightAccent-hsl), 1); --paragraphLinkColor: hsla(var(--safeLightAccent-hsl), 1); --shape-block-background-color: hsla(var(--white-hsl), 1); --shape-block-stroke-color: hsla(var(--safeDarkAccent-hsl), 1); --tweak-line-block-line-color: hsla(var(--white-hsl), 1); --siteBackgroundColor: hsla(var(--black-hsl), 1); --headingExtraLargeColor: hsla(var(--white-hsl), 1); --headingLargeColor: hsla(var(--white-hsl), 1); --headingMediumColor: hsla(var(--white-hsl), 1); --headingSmallColor: hsla(var(--white-hsl), 1); --paragraphLargeColor: hsla(var(--white-hsl), 1); --paragraphMediumColor: hsla(var(--white-hsl), 1); --paragraphSmallColor: hsla(var(--white-hsl), 1); --primaryButtonBackgroundColor: hsla(var(--white-hsl), 1); --primaryButtonTextColor: hsla(0, 0%, 0%, 1); --secondaryButtonBackgroundColor: hsla(var(--white-hsl), 1); --secondaryButtonTextColor: hsla(0, 0%, 0%, 1); --tertiaryButtonBackgroundColor: hsla(0, 0%, 96.08%, 1); --tertiaryButtonTextColor: hsla(0, 0%, 0%, 1); --siteTitleColor: hsla(var(--white-hsl), 1); }
.white { --section-inset-border-color: hsla(var(--lightAccent-hsl), 1); --paragraphLinkColor: hsla(var(--safeDarkAccent-hsl), 1); --shape-block-background-color: hsla(var(--lightAccent-hsl), 1); --shape-block-stroke-color: hsla(var(--black-hsl), 1); --tweak-line-block-line-color: hsla(var(--black-hsl), 1); --siteBackgroundColor: hsla(var(--white-hsl), 1); --headingExtraLargeColor: hsla(var(--black-hsl), 1); --headingLargeColor: hsla(var(--black-hsl), 1); --headingMediumColor: hsla(var(--black-hsl), 1); --headingSmallColor: hsla(var(--black-hsl), 1); --paragraphLargeColor: hsla(var(--black-hsl), 1); --paragraphMediumColor: hsla(var(--black-hsl), 1); --paragraphSmallColor: hsla(var(--black-hsl), 1); --primaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --primaryButtonTextColor: hsla(0, 0%, 100%, 1); --secondaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --secondaryButtonTextColor: hsla(0, 0%, 100%, 1); --tertiaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --tertiaryButtonTextColor: hsla(0, 0%, 100%, 1); --siteTitleColor: hsla(var(--black-hsl), 1); }
.white-bold { --section-inset-border-color: hsla(var(--lightAccent-hsl), 1); --paragraphLinkColor: hsla(var(--safeDarkAccent-hsl), 1); --shape-block-background-color: hsla(var(--lightAccent-hsl), 1); --shape-block-stroke-color: hsla(var(--safeDarkAccent-hsl), 1); --tweak-line-block-line-color: hsla(var(--safeDarkAccent-hsl), 1); --siteBackgroundColor: hsla(var(--white-hsl), 1); --headingExtraLargeColor: hsla(var(--accent-hsl), 1); --headingLargeColor: hsla(var(--accent-hsl), 1); --headingMediumColor: hsla(var(--accent-hsl), 1); --headingSmallColor: hsla(var(--accent-hsl), 1); --paragraphLargeColor: hsla(var(--black-hsl), 1); --paragraphMediumColor: hsla(var(--black-hsl), 1); --paragraphSmallColor: hsla(var(--black-hsl), 1); --primaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --primaryButtonTextColor: hsla(0, 0%, 100%, 1); --secondaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --secondaryButtonTextColor: hsla(0, 0%, 100%, 1); --tertiaryButtonBackgroundColor: hsla(var(--accent-hsl), 1); --tertiaryButtonTextColor: hsla(0, 0%, 100%, 1); --siteTitleColor: hsla(var(--accent-hsl), 1); }

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-family: sans-serif; -webkit-text-size-adjust: 100%; }
html, body { font-size: var(--base-font-size); }
@media screen and (max-width: 991px) { html { font-size: min(var(--base-font-size), 16px); } }
body { margin: 0; background-color: var(--siteBackgroundColor); color: var(--paragraphMediumColor); word-wrap: break-word; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; }
body.header--menu-open, body.menu-open { overflow: hidden; }
/* the wrapper is a full-height column so the footer sits at the bottom of short pages (404) */
.site-wrapper { position: relative; display: flex; flex-direction: column; min-height: 100vh; }
#footer-sections, footer.sections { margin-top: auto; }
main, .site-wrapper { font-family: var(--body-font-font-family); font-weight: var(--body-font-font-weight); line-height: var(--body-font-line-height); letter-spacing: var(--body-font-letter-spacing); }
img { max-width: 100%; }
svg:not(:root) { overflow: hidden; }
a { color: inherit; cursor: pointer; text-decoration: none; }
/* form controls take the surrounding font (Squarespace's normalize reset); every styled control restates what it needs */
button, input, select, textarea { font-family: inherit; font-size: 100%; margin: 0; }
button, select { text-transform: none; }
[hidden] { display: none !important; }
.visually-hidden, .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* responsive type formulas (Squarespace's: scale with viewport, cap at the max page width) */
.site-wrapper, .system-page {
  font-size: min(calc((var(--normal-text-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--normal-text-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--normal-text-size-value) * 1rem)));
}
h1, h2, h3, h4 { font-family: var(--heading-font-font-family); font-style: normal; font-weight: var(--heading-font-font-weight); line-height: var(--heading-font-line-height); letter-spacing: var(--heading-font-letter-spacing); text-transform: var(--heading-font-text-transform); margin: 2rem 0; }
h1 { color: var(--headingExtraLargeColor); line-height: calc(var(--heading-font-line-height) * (1 + (1 - var(--heading-1-size-value)) / 25)); font-size: min(calc((var(--heading-1-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--heading-1-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--heading-1-size-value) * 1rem))); }
h2 { color: var(--headingLargeColor); line-height: calc(var(--heading-font-line-height) * (1 + (1 - var(--heading-2-size-value)) / 25)); font-size: min(calc((var(--heading-2-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--heading-2-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--heading-2-size-value) * 1rem))); }
h3 { color: var(--headingMediumColor); line-height: calc(var(--heading-font-line-height) * (1 + (1 - var(--heading-3-size-value)) / 25)); font-size: min(calc((var(--heading-3-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--heading-3-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--heading-3-size-value) * 1rem))); }
h4 { color: var(--headingSmallColor); line-height: calc(var(--heading-font-line-height) * (1 + (1 - var(--heading-4-size-value)) / 25)); font-size: min(calc((var(--heading-4-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--heading-4-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--heading-4-size-value) * 1rem))); }
p, .sqsrte-large, .sqsrte-small { margin: 1rem 0; line-height: var(--body-font-line-height); }
.sqsrte-large { color: var(--paragraphLargeColor); font-size: min(calc((var(--large-text-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--large-text-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--large-text-size-value) * 1rem))); }
.sqsrte-small { color: var(--paragraphSmallColor); font-size: min(calc((var(--small-text-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--small-text-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--small-text-size-value) * 1rem))); }
@media screen and (max-width: 767px) and (orientation: portrait) {
  .site-wrapper, .system-page { font-size: calc((var(--normal-text-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
  h1 { font-size: calc((var(--heading-1-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
  h2 { font-size: calc((var(--heading-2-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
  h3 { font-size: calc((var(--heading-3-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
  h4 { font-size: calc((var(--heading-4-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
  .sqsrte-large { font-size: calc((var(--large-text-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
  .sqsrte-small { font-size: calc((var(--small-text-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
}
strong { font-weight: 700; }
em { font-style: italic; }
/* links: the theme's link colour for links in paragraphs, text blocks, excerpts and form/newsletter submission text (the
   accordion description takes the same variable in 30-accordion.css); text-block, excerpt and newsletter links get a 1px
   underline .2em below the baseline. Anchors elsewhere (the system page's included) keep the inherited colour, no underline. */
p a { color: var(--paragraphLinkColor); }
.sqs-block-html a, .eventlist-excerpt a, .sqs-block-newsletter .newsletter-form-header a, .sqs-block-newsletter .newsletter-form-footnote a, .sqs-block-newsletter .form-submission-text a, .sqs-block-form .form-submission-text a { color: var(--paragraphLinkColor); }
.sqs-block-html a, .eventlist-excerpt a, .sqs-block-newsletter a { text-decoration-line: underline; text-decoration-style: solid; text-decoration-color: currentColor; text-decoration-thickness: 1px; text-underline-offset: .2em; text-decoration-skip-ink: auto; white-space: initial; }
.sqsrte-text-color--white { color: hsl(var(--white-hsl)); }
.sqsrte-text-color--black { color: hsl(var(--black-hsl)); }
.sqsrte-text-color--accent { color: hsl(var(--accent-hsl)); }
.sqsrte-text-color--lightAccent { color: hsl(var(--lightAccent-hsl)); }
.sqsrte-text-color--darkAccent { color: hsl(var(--darkAccent-hsl)); }
/* rich-text lists: browser-default 40px indent and 1em margins; Squarespace hides the marker and draws its own bullet / counter
   as an inline-block ::before on the first child, and gives each list item's children .5em vertical margins */
ul, ol { padding-left: 40px; margin: 1em 0; }
ol[data-rte-list] li { counter-increment: rte-list; }
ol[data-rte-list] li:first-child { counter-reset: rte-list; }
ul[data-rte-list] li, ol[data-rte-list] li { list-style-type: none; }
ul[data-rte-list] li > *, ol[data-rte-list] li > * { margin-top: .5em; margin-bottom: .5em; }
ul[data-rte-list] li > *:first-child::before, ol[data-rte-list] li > *:first-child::before { display: inline-block; margin-left: -40px; min-width: 40px; text-align: right; box-sizing: border-box; }
ol[data-rte-list] li > *:first-child::before { content: "  " counter(rte-list) ". "; }
ol[data-rte-list="upper-roman"] li > *:first-child::before { content: "  " counter(rte-list, upper-roman) ". "; }
ol[data-rte-list="upper-alpha"] li > *:first-child::before { content: "  " counter(rte-list, upper-alpha) ". "; }
ol[data-rte-list="lower-alpha"] li > *:first-child::before { content: "  " counter(rte-list, lower-alpha) ". "; }
ol[data-rte-list="lower-roman"] li > *:first-child::before { content: "  " counter(rte-list, lower-roman) ". "; }
ul[data-rte-list] li > *:first-child::before { padding-right: 10px; content: "\2022"; }
ul[data-rte-list="circle"] li > *:first-child::before, ul[data-rte-list] ul[data-rte-list="default"] li > *:first-child::before { content: "\25CB"; }
ul[data-rte-list="square"] li > *:first-child::before, ul[data-rte-list] ul[data-rte-list] ul[data-rte-list="default"] li > *:first-child::before { content: "\25A0"; }
ul[data-rte-list="dash"] li > *:first-child::before { content: "-"; }

/* ---------- header ---------- */
/* the header carries the first section's theme class for its variables but inherits the body colour (white) like the original */
.header { position: absolute; top: 0; left: 0; width: 100%; z-index: 10; pointer-events: none; line-height: 1em; }
.header a, .header button { pointer-events: auto; }
.header-announcement-bar-wrapper { position: relative; z-index: 2; box-sizing: border-box; width: 100%; padding: 2.5vw var(--sqs-site-gutter); pointer-events: auto; } /* z-index 2 keeps the title + burger above the open menu overlay (z-index 1) */
.header-inner { position: relative; z-index: 1; display: flex; align-items: center; width: 100%; max-width: var(--maxPageWidth); margin: 0 auto; }
.header-display-desktop { position: relative; display: flex; width: 100%; justify-content: flex-start; align-items: center; }
.header-display-mobile { display: none; width: 100%; align-items: center; }
.header-actions { display: inline-flex; align-items: center; flex-grow: 0; flex-shrink: 1; }
.header-actions--left { flex: 0 1 25%; max-width: 25%; justify-content: flex-start; }
.header-actions--right { flex: 0 1 25%; max-width: 25%; justify-content: flex-end; }
.header-actions-action { text-align: center; line-height: 1; }
.header-actions-action--social { display: flex; margin: 0; }
.header-actions-action--social .icon { position: relative; display: block; width: 28px; height: 28px; color: var(--siteTitleColor); }
.header-actions-action--social .icon:not(:last-child) { margin-right: 1.7vw; }
.header-actions-action--social .icon:last-child { margin-right: 1vw; }
.icon svg { width: 100%; height: 100%; display: block; fill: currentColor; }
.header-title-nav-wrapper { display: flex; flex-direction: row; flex-wrap: wrap; flex: 0 0 50%; justify-content: center; align-content: center; margin-left: auto; }
.header-title { flex: 0 0 100%; text-align: center; }
.header-title-text { margin: 0; font-family: var(--heading-font-font-family); font-weight: var(--heading-font-font-weight); line-height: var(--heading-font-line-height); letter-spacing: var(--heading-font-letter-spacing); text-transform: var(--heading-font-text-transform); font-size: var(--site-title-size); }
.header-title-text a { color: var(--siteTitleColor); text-decoration: none; }
.header-nav { flex: 0 0 100%; text-align: center; margin: 1vw 0 0; }
.header-nav-wrapper { line-height: 1; }
.header-nav-list { display: flex; flex-wrap: wrap; justify-content: center; }
.header-nav-item { display: inline-flex; margin: 0 .85vw; }
.header-nav-item a { display: inline-flex; align-items: center; padding: .1em 0; color: var(--siteTitleColor); text-decoration: none; font-family: var(--body-font-font-family); font-size: var(--nav-size); line-height: var(--body-font-line-height); letter-spacing: var(--body-font-letter-spacing); }
.header-nav-item--active a { background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-size: 100% 1px; background-position: 0 calc(100% - .1em); }
.header-actions-action--cta { white-space: nowrap; }
.btn { position: relative; display: inline-block; line-height: normal; text-decoration: none; text-align: center; }
.header-actions-action--cta .btn { font-family: var(--body-font-font-family); font-weight: 600; letter-spacing: .01em; padding: .8em .6em; color: var(--secondaryButtonTextColor); background-color: var(--secondaryButtonBackgroundColor); border: 0; font-size: min(calc((var(--secondary-button-font-font-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--secondary-button-font-font-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--secondary-button-font-font-size-value) * 1rem))); }
@media screen and (max-width: 767px) and (orientation: portrait) {
  .header-actions-action--cta .btn { font-size: calc((var(--secondary-button-font-font-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
}
.showOnMobile, .showOnDesktop { display: none; }
.header-burger { display: none; align-items: center; justify-content: center; }
.header-burger-btn { display: inline-block; position: relative; padding: 1px 6px; background: none; border: 0; cursor: pointer; color: inherit; }
.burger-box { position: relative; display: flex; align-items: center; justify-content: center; width: 35px; height: 35px; }
.burger-inner { width: 100%; height: 100%; }
.burger-inner .top-bun, .burger-inner .patty, .burger-inner .bottom-bun { position: absolute; display: block; top: 0; left: 0; bottom: 0; margin: auto; width: 100%; height: 1px; background-color: var(--siteTitleColor); transition: transform 250ms cubic-bezier(.2, .6, .3, 1), width 250ms cubic-bezier(.2, .6, .3, 1); }
.burger-inner.header-menu-icon-doubleLineHamburger .top-bun { transform: translateY(-5.5px); }
.burger-inner.header-menu-icon-doubleLineHamburger .bottom-bun { transform: translateY(5.5px); }
.burger-inner.header-menu-icon-doubleLineHamburger .patty { transform: scale(0); }
.burger-box.open .burger-inner .top-bun { transform: translateX(3.5px) rotate(-135deg); width: 28px; }
.burger-box.open .burger-inner .bottom-bun { transform: translateX(3.5px) rotate(135deg); width: 28px; }
.burger-box.open .burger-inner .patty { transform: scale(0); }
.header--menu-open .burger-inner .top-bun, .header--menu-open .burger-inner .bottom-bun { background-color: var(--menuOverlayNavigationLinkColor); }

/* mobile header + overlay menu */
@media screen and (max-width: 799px) {
  .header-display-desktop { display: none; }
  .header-display-mobile { display: flex; }
  .header-announcement-bar-wrapper { padding: var(--sqs-mobile-site-gutter); }
  .header-display-mobile .header-actions--left, .header-display-mobile .header-nav, .header-display-mobile .header-actions--right .header-actions-action--cta { display: none; }
  .header-display-mobile .header-title-nav-wrapper { flex: 1 1 auto; justify-content: flex-start; margin-left: 0; }
  .header-display-mobile .header-title { text-align: left; }
  .header-display-mobile .header-title-text { font-size: var(--site-title-size); }
  .header-display-mobile .header-actions--right { flex: 0 0 auto; max-width: none; }
  .header-display-mobile .header-burger { display: flex; width: 50px; justify-content: flex-end; align-items: flex-end; margin-left: auto; }
}
.header-menu { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; height: 100dvh; padding-top: var(--header-height); display: flex; flex-direction: column; visibility: hidden; opacity: 0; transition: opacity 250ms ease, visibility 0s linear 250ms; z-index: 1; font-size: 1.2em; }
.header--menu-open .header-menu { visibility: visible; opacity: 1; transition: opacity 250ms ease; pointer-events: auto; }
.header--menu-open .header-menu a { pointer-events: auto; }
.header-menu-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--menuOverlayBackgroundColor); }
.header-menu-nav { position: relative; flex-grow: 1; display: flex; flex-direction: column; }
.header-menu-nav-list { position: relative; flex-grow: 1; display: flex; flex-direction: column; }
.header-menu-nav-folder { position: absolute; top: 0; left: 0; width: 100%; min-height: 100%; display: flex; flex-direction: column; justify-content: flex-start; }
.header-menu-nav-folder-content { flex-grow: 1; display: flex; flex-direction: column; justify-content: center; overflow-y: auto; }
/* menu items: block rows with a 4vw gutter, left-aligned links with 3vw/5vw margins (measured open on the live site) */
.header-menu-nav-wrapper { display: block; text-align: left; }
.header-menu-nav-item { position: relative; display: block; padding: 0 4vw; line-height: 1; }
.header-menu-nav-item a { position: relative; display: inline-flex; align-items: center; margin: 3vw 5vw; text-decoration: none; color: var(--menuOverlayNavigationLinkColor); font-family: var(--body-font-font-family); line-height: 1; font-size: 8.5vmin; }
@media screen and (min-width: 576px) { .header-menu-nav-item a { font-size: 6.6vmin; } }
@media screen and (min-width: 768px) { .header-menu-nav-item a { font-size: 6vmin; } }
.header-menu-nav-item-content { position: relative; display: inline-flex; align-items: center; pointer-events: none; }
/* social row: 25px icons with 15px/7.5px margins (55px row), then the CTA */
.header-menu-actions { display: flex; align-items: center; justify-content: flex-start; flex-grow: 0; flex-shrink: 1; margin: 0 20px 6vw; }
.header-menu-actions-action { text-align: center; line-height: 1; }
.header-menu-actions-action--social { margin: 15px 7.5px; }
.header-menu-actions-action--social .icon { display: block; position: relative; flex-shrink: 0; width: 25px; height: 25px; color: var(--menuOverlayNavigationLinkColor); }
.header-menu-cta { width: 100%; }
.header-menu-cta a { display: inline-block; box-sizing: border-box; margin: 4vw 6vw 6vw; min-width: 210px; text-align: center; text-decoration: none; font-family: var(--body-font-font-family); font-weight: 600; letter-spacing: .01em; line-height: normal; padding: .8em .6em; color: hsla(var(--accent-hsl), 1); background-color: hsla(0, 0%, 100%, 1); font-size: calc((var(--secondary-button-font-font-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
.header--menu-open .header-title-text a { color: var(--menuOverlayNavigationLinkColor); }

/* ---------- sections ---------- */
.sections { position: relative; }
.page-section { position: relative; display: flex; align-items: center; color: var(--paragraphMediumColor); }
.page-section.vertical-alignment--top { align-items: flex-start; }
.page-section.vertical-alignment--bottom { align-items: flex-end; }
.page-section .content-wrapper { position: relative; display: flex; width: 100%; max-width: 100%; justify-content: center; }
.page-section.horizontal-alignment--left > .content-wrapper { justify-content: flex-start; }
.page-section.horizontal-alignment--right > .content-wrapper { justify-content: flex-end; }
.page-section:not(.full-bleed-section) > .content-wrapper { padding-right: var(--pagePadding); padding-left: var(--pagePadding); margin: 0 auto; box-sizing: content-box; }
@media screen and (max-width: 767px) { .page-section:not(.full-bleed-section) > .content-wrapper { padding-right: 6vw; padding-left: 6vw; box-sizing: border-box; } }
.page-section .content { width: 100%; }
@media screen and (min-width: 768px) {
  .page-section.content-width--narrow:not(.content-collection) .content { width: 50%; }
  .page-section.content-width--medium:not(.content-collection) .content { width: 75%; }
}
.page-section.content-width--wide .content { width: 100%; }
/* section height presets: a viewport-relative minimum height on the section plus vertical padding on the content wrapper (custom heights carry both inline) */
.page-section.section-height--small:not(.content-collection):not(.gallery-section):not(.user-items-list-section) { min-height: 33vh; }
.page-section.section-height--medium:not(.content-collection):not(.gallery-section):not(.user-items-list-section) { min-height: 66vh; }
.page-section.section-height--large:not(.content-collection):not(.gallery-section):not(.user-items-list-section) { min-height: 100vh; }
.page-section.section-height--small:not(.content-collection) > .content-wrapper { padding-top: 3.3vmax; padding-bottom: 3.3vmax; }
.page-section.section-height--medium:not(.content-collection) > .content-wrapper { padding-top: 6.6vmax; padding-bottom: 6.6vmax; }
.page-section.section-height--large:not(.content-collection) > .content-wrapper { padding-top: 13.2vmax; padding-bottom: 13.2vmax; }
.section-border { position: absolute; top: calc(-1 * var(--previous-section-divider-offset, 0px)); right: 0; bottom: 0; left: 0; background-color: var(--siteBackgroundColor); }
.section-background { position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: hidden; pointer-events: none; background-color: var(--siteBackgroundColor); } /* painted under the background image too, as on Squarespace */
/* inset sections: the page gutter on all four sides of the section, with the background (image or theme colour) inset by the same
   amount and the exposed frame painted in the theme's inset-border colour (gold around the white form sections on keynotespeaker/podcastguest) */
.page-section.background-width--inset { padding: var(--pagePadding); }
.page-section.background-width--inset .section-border { background-color: var(--section-inset-border-color); }
.background-width--inset .section-background { top: var(--pagePadding); right: var(--pagePadding); bottom: var(--pagePadding); left: var(--pagePadding); }
.page-section.background-width--inset .section-background { top: calc(var(--sqs-site-gutter) + var(--previous-section-divider-offset, 0px)); }
.background-pause-button { display: none; } /* background-video control; the site has no background videos */
.section-background img { display: block; width: 100%; height: 100%; object-fit: cover; }
.section-background-overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-color: var(--siteBackgroundColor); opacity: 0; }
.has-section-divider .section-border { transform: translateZ(0); }
.section-divider-display { position: absolute; top: calc(-1 * var(--previous-section-divider-offset, 0px)); right: 0; bottom: 0; left: 0; pointer-events: none; z-index: 999; }
.section-divider-block { position: absolute; bottom: 0; left: 0; width: 100%; visibility: hidden; }
.section-divider-display svg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: visible; }
.section-divider-svg-stroke { display: none; }
/* the header floats over the first section (Squarespace measures this in JS; site.js does the same) */
main > .sections > .page-section:first-child, .system-page { padding-top: var(--header-height); }

/* ---------- Fluid Engine blocks ---------- */
[data-fluid-engine] { position: relative; height: 100%; width: 100%; }
.fluid-engine .sqs-block { display: flex; height: 100%; width: 100%; flex-direction: column; position: relative; }
.fluid-engine .sqs-block-content { width: 100%; }
.sqs-block-alignment-wrapper { display: flex; width: 100%; height: 100%; }
.fe-block { min-width: 0; }
/* text */
.sqs-text-block-container { width: 100%; }
.sqs-html-content { position: relative; padding: var(--tweak-text-block-padding, 0); }
h1[data-rte-preserve-empty]:empty::before, h2[data-rte-preserve-empty]:empty::before, h3[data-rte-preserve-empty]:empty::before, h4[data-rte-preserve-empty]:empty::before, p[data-rte-preserve-empty]:empty::before { content: ''; display: inline-block; }
.sqs-block-html .sqs-html-content > *:first-child { margin-top: 0; }
.sqs-block-html .sqs-html-content > *:last-child { margin-bottom: 0; }
/* scaled text: the span carries an inline font-size that makes the heading fill the block width on one line
   (Squarespace computes it in JS at every viewport; site.js does the same, rounding to 0.1px like the original) */
.sqsrte-scaled-text-container { display: block; width: 100%; height: auto; }
.sqsrte-scaled-text-container > .sqsrte-scaled-text { display: inline-block; position: relative; white-space: nowrap; margin: 0; padding: 0; transform-origin: 0 0; }
.sqs-html-content .sqsrte-scaled-text-container > .sqsrte-scaled-text > * { margin: 0; padding: 0; line-height: 1; font-size: inherit !important; white-space: nowrap !important; }
/* text highlight decoration (the underline SVG Squarespace draws under a highlighted span; site.js positions it over the span) */
.sqs-block-html .sqs-block-content { position: relative; }
.sqs-block-html .TextShape-node { --stroke: currentcolor; --stroke-width: 1px; --stroke-linecap: square; --stroke-linejoin: square; --opacity: 1; --blend: none; position: absolute; display: block; top: 0; left: 0; pointer-events: none; z-index: -1; user-select: none; mix-blend-mode: var(--blend); }
.sqs-block-html .TextShape-node[data-is-front="true"] { z-index: 1; }
.sqs-block-html .TextShape-node svg { position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; overflow: visible; stroke: var(--stroke); stroke-width: max(1px, var(--stroke-width)); stroke-linecap: var(--stroke-linecap); stroke-linejoin: var(--stroke-linejoin); fill: none; opacity: var(--opacity); }
.sqsrte-text-highlight { position: relative; }
/* image */
.sqs-block-image.sqs-stretched .sqs-block-content, .image-block .sqs-block-content { height: 100%; width: 100%; }
.fluid-image-component-root { display: block; width: 100%; height: 100%; }
.fluid-image-animation-wrapper.sqs-image { display: flex; width: 100%; height: 100%; }
.design-layout-fluid.image-position-left .sqs-image { justify-content: flex-start; }
.design-layout-fluid.image-position-center .sqs-image { justify-content: center; }
.design-layout-fluid.image-position-right .sqs-image { justify-content: flex-end; }
.fluid-image-container { position: relative; height: 100%; width: 100%; overflow: hidden; }
/* "fit" images: the container is the image's aspect-ratio box inside the block, centred vertically and placed by image-position-*.
   Squarespace sizes it in JS through --image-component-container-width/height on the root; site.js sets the same two variables.
   Without them the container is height-limited with a capped width, which draws the same picture for centred images (object-fit: contain).
   The generator records the content mode per breakpoint (data-content-mode-desktop / -mobile) because a block can be fill on desktop and fit on mobile. */
.fluid-image-animation-wrapper.sqs-image { align-items: center; }
.fluid-image-component-root[data-content-mode-desktop="fit"] .fluid-image-container { width: var(--image-component-container-width, auto); height: var(--image-component-container-height, 100%); max-width: 100%; aspect-ratio: var(--image-component-native-aspect-ratio, auto); }
@media screen and (max-width: 767px) {
  .fluid-image-component-root[data-content-mode-mobile="fill"] .fluid-image-container { width: 100%; height: 100%; max-width: none; aspect-ratio: auto; }
  .fluid-image-component-root[data-content-mode-mobile="fit"] .fluid-image-container { width: var(--image-component-container-width, auto); height: var(--image-component-container-height, 100%); max-width: 100%; aspect-ratio: var(--image-component-native-aspect-ratio, auto); }
}
/* per-breakpoint image elements: each block carries a desktop wrapper (and sometimes a mobile one); its own <style> switches them at 767px */
.js-content-mode-element-wrapper { position: relative; width: 100%; height: 100%; }
.js-content-mode-element { display: block; text-decoration: none; }
.js-content-mode-element.content-fill { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.fluid-image-container img { display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: var(--image-component-object-fit, cover); object-position: var(--image-component-focal-point, 50% 50%); }
/* button */
/* the container's alignment also sets the text alignment inside a stretched, multi-line button (live: "Learn More" wraps left-aligned in a --left block) */
.sqs-block-button-container { display: flex; width: 100%; text-align: center; }
.sqs-block-button-container--left { justify-content: flex-start; text-align: left; }
.sqs-block-button-container--center { justify-content: center; text-align: center; }
.sqs-block-button-container--right { justify-content: flex-end; text-align: right; }
.sqs-block-button:has(.sqs-stretched) .sqs-block-content, .sqs-block-button .sqs-stretched .sqs-block-button-element { height: 100%; display: flex; }
.sqs-block-button .sqs-stretched .sqs-block-button-element { width: 100%; }
.sqs-block-button .sqs-block-button-container.sqs-stretched { flex: 1; height: 100%; }
.sqs-block-button-element, .sqs-button-element--primary, .sqs-add-to-cart-button, .eventlist-button, .form-block .sqs-system-button, .newsletter-form-button { display: inline-flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; box-sizing: border-box; cursor: pointer; border: 0; border-radius: 0; font-family: var(--body-font-font-family); font-weight: 600; font-style: normal; letter-spacing: .01em; line-height: normal; color: var(--primaryButtonTextColor); background-color: var(--primaryButtonBackgroundColor); font-size: min(calc((var(--primary-button-font-font-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--primary-button-font-font-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--primary-button-font-font-size-value) * 1rem))); }
@media screen and (max-width: 767px) and (orientation: portrait) {
  .sqs-block-button-element, .sqs-button-element--primary, .sqs-add-to-cart-button, .eventlist-button, .form-block .sqs-system-button, .newsletter-form-button { font-size: calc((var(--primary-button-font-font-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
}
.sqs-block-button-element { text-align: inherit; }
.sqs-block-button-element--small { padding: .8em 1.336em; }
.sqs-block-button-element--medium { padding: 1.2em 2.004em; }
.sqs-block-button-element--large { padding: 1.6em 2.672em; }
.fluid-engine .sqs-block-button .sqs-stretched .sqs-block-button-element { padding-top: 0 !important; padding-bottom: 0 !important; }
/* line: a 1px rule with .5em margins, centred in its cell by the block's own alignment rule; the colour is the theme's line colour */
.sqs-block-horizontalrule hr, .horizontalrule-block hr { border: none; height: 1px; margin: .5em 0; color: #bbb; background-color: var(--tweak-line-block-line-color, #bbb); }
/* shape: an SVG filling its container; fill and stroke come from the theme's shape colours (the block's own <style> turns the stroke off) */
[data-sqsp-block="shape"] .sqs-block-content { height: 100%; flex: 1 1 auto; }
.sqs-shape-block-outer-container { width: 100%; height: 100%; }
.sqs-shape-block-container { position: relative; display: flex; width: 100%; height: 100%; }
.sqs-shape { display: block; position: absolute; overflow: visible; width: 100%; height: 100%; fill: var(--shape-block-background-color); stroke: var(--shape-block-stroke-color); }
.sqs-shape.sqs-shape-rectangle { background: var(--shape-block-background-color); border-color: var(--shape-block-stroke-color); }
/* code block (the custom drivers list) */
.sqs-block-code .sqs-block-content { width: 100%; }
/* accordion: the whole component lives in 30-accordion.css */

/* ---------- newsletter (footer) ---------- */
.newsletter-form-wrapper { width: 100%; }
.newsletter-form-wrapper--alignCenter { text-align: center; }
.newsletter-form-body { display: block; padding: 0 0 1rem; }
.newsletter-form-fields-wrapper { display: inline-block; width: auto; margin: 1rem 0 0; vertical-align: middle; }
.newsletter-form-field-wrapper { display: inline-block; padding: 8px 4px; width: 288px; max-width: 100%; vertical-align: bottom; }
.newsletter-form-field-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.newsletter-form-field-element { display: inline-block; width: 100%; padding: 1.4rem 2rem; margin: 0; border: 1px solid rgba(0, 0, 0, .12); border-radius: 0; background: #fff; color: #000; font-family: var(--body-font-font-family); font-size: inherit; line-height: 1.2rem; letter-spacing: var(--body-font-letter-spacing); -webkit-appearance: none; }
.newsletter-form-field-element::placeholder { color: rgba(0, 0, 0, .3); } /* live placeholder colour (measured) */
.newsletter-form-button-wrapper { display: inline-block; padding: 8px 4px; margin-top: 16px; vertical-align: bottom; }
.newsletter-form-button { padding: 1.4rem 2rem; line-height: 1.2rem; color: var(--tertiaryButtonTextColor); background-color: var(--tertiaryButtonBackgroundColor); }
.newsletter-form-button-label { display: inline-block; }
.form-submission-text { margin-top: 1em; }

/* ---------- system pages (404, thank you) ---------- */
/* the page gutter on every side, the header height on top (the header floats over it), and the first child carries the gutter again as padding */
.system-page { box-sizing: content-box; max-width: var(--maxPageWidth); padding: var(--header-height) var(--pagePadding) var(--pagePadding); margin: 0 auto; }
.system-page > *:first-child { padding-top: var(--pagePadding); }
.system-page p { margin: 1rem 0; }
.system-page ul { margin: 1em 0; padding-left: 40px; }

/* ---------- footer ---------- */
footer.sections { position: relative; }

/* ===== 20-forms.css ===== */
/* 20-forms.css — Form blocks (contact, application, podcast, keynote, trigon forms) — Netlify Forms markup generated by tools/build.mjs rebuildFormBlock()
   Geometry mirrors the live React form (measured on innatedrivers.com, 2026-09-05): body font at the site size (19.36px desktop /
   18.03px mobile), titles at line-height 1.6 + 4px, inputs 10px padding on a 1px black border, 20px between items, the submit
   button in the tertiary button colours at the 1.5 button size. */

/* ---------- block + wrapper ---------- */
.sqs-block-form .sqs-block-content { width: 100%; }
.sqs-block-form .form-wrapper { display: grid; }
/* block with its own background (trigon-trainings): the generator carries the block's --tweak-form-block-background-color and
   --form-block-padding inline; text and button take the site's "on background" colours */
.sqs-block-form.sqs-background-enabled { box-sizing: border-box; height: 100%; background-color: var(--tweak-form-block-background-color); --form-block-color-on-background: hsla(var(--accent-hsl), 1); --form-block-button-background-on-background: hsla(var(--accent-hsl), 1); --form-block-button-text-on-background: hsla(0, 0%, 100%, 1); }
.white .sqs-block-form.sqs-background-enabled, .light .sqs-block-form.sqs-background-enabled, .dark .sqs-block-form.sqs-background-enabled { --form-block-color-on-background: hsla(var(--black-hsl), 1); --form-block-button-background-on-background: hsla(var(--safeDarkAccent-hsl), 1); }
.white-bold .sqs-block-form.sqs-background-enabled, .light-bold .sqs-block-form.sqs-background-enabled, .dark-bold .sqs-block-form.sqs-background-enabled { --form-block-color-on-background: hsla(var(--safeDarkAccent-hsl), 1); --form-block-button-background-on-background: hsla(var(--safeDarkAccent-hsl), 1); }
.sqs-block-form.sqs-background-enabled .form-wrapper { padding: var(--form-block-padding, 6%); color: var(--form-block-color-on-background); }
.sqs-block-form.sqs-background-enabled .form-button-wrapper button { color: var(--form-block-button-text-on-background); background-color: var(--form-block-button-background-on-background); }

/* ---------- field list + items ---------- */
.form-wrapper .field-list { line-height: normal; }
.form-wrapper fieldset, .form-wrapper legend { margin: 0; padding: 0; border: 0; min-width: 0; }
.form-wrapper .form-item { margin: 0 0 20px; }
.form-wrapper .form-item.field { display: grid; }
/* first/last name sit side by side, bottom-aligned (a wrapped caption on one side pushes only that field's input down) */
.form-wrapper .form-item.fields.name { display: flex; align-items: flex-end; gap: 0 10px; margin: 0; }
.form-wrapper .form-item.fields.name .field { display: grid; align-items: flex-start; flex: 1 1 0; min-width: 0; margin: 0 0 20px; }
/* checkbox / radio groups: a column of options, 12px apart, each option 6px below the previous box */
.form-wrapper .form-item.checkbox, .form-wrapper .form-item.radio { display: flex; flex-direction: column; gap: 12px 20px; }

/* ---------- titles, captions, "(required)" ---------- */
.form-wrapper .form-item .title { display: block; padding: 0 0 4px; font-size: inherit; line-height: 1.6; }
.form-wrapper .form-item .title-text { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .446em; }
.form-wrapper .form-item .description { display: block; font-size: 16px; line-height: 1.6; letter-spacing: .01em; opacity: .7; }
.form-wrapper .form-item .caption { display: block; font-size: 12px; }
.form-wrapper .form-item .caption-text { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .446em; margin: 4px 0 0; padding: 0 0 2px; font-size: 16px; line-height: 1.6; letter-spacing: .01em; }
.form-wrapper .form-item .caption-text .description { line-height: 1; }

/* ---------- text inputs ---------- */
.form-wrapper .field-list .field-element { display: block; width: 100%; margin: 0; padding: 10px; border: 1px solid #000; border-radius: 0; background: #fafafa; color: #000; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: 1.6; letter-spacing: .01em; box-sizing: border-box; -webkit-appearance: none; appearance: none; }
.form-wrapper .field-list .field-element:focus { background: #fff; outline: 0; }
.form-wrapper .field-list textarea.field-element { min-height: 100px; resize: vertical; }
.form-wrapper .field-list select.field-element { max-width: 100%; }

/* ---------- checkbox / radio options ---------- */
.form-wrapper .form-item .option { display: block; margin: 6px 0 0; font-size: 16px; line-height: 1.6; letter-spacing: .01em; }
/* vertical-align: top keeps the inline-flex label's synthesized baseline from stretching the 25.6px line box (live option height) */
.form-wrapper .form-item .option label { display: inline-flex; align-items: center; vertical-align: top; column-gap: 11px; padding: 0 4px 0 0; cursor: pointer; }
.form-wrapper .form-item .option input { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 16px; height: 16px; margin: 0; padding: 0; border: 1px solid #000; border-radius: 0; background: #fafafa; box-sizing: border-box; -webkit-appearance: none; appearance: none; cursor: pointer; }
.form-wrapper .form-item .option input[type="radio"] { border-radius: 50%; }
.form-wrapper .form-item .option input::after { content: ''; display: block; width: 4px; height: 8px; margin-top: -2px; border: solid #000; border-width: 0 2px 2px 0; transform: rotate(45deg); opacity: 0; }
.form-wrapper .form-item .option input[type="radio"]::after { width: 8px; height: 8px; margin: 0; border: 0; border-radius: 50%; background: #000; transform: none; }
.form-wrapper .form-item .option input:checked::after { opacity: 1; }
.form-wrapper .form-item .option span { display: block; }

/* ---------- submit ---------- */
.form-wrapper .form-button-wrapper { display: block; text-align: left; }
.form-wrapper .form-button-wrapper--align-center { text-align: center; }
.form-wrapper .form-button-wrapper--align-right { text-align: right; }
/* size and font come from the shared button rule in 00-base.css (.form-block .sqs-system-button); the live form button is an
   inline-block at line-height normal in the tertiary colours */
.form-wrapper .form-button-wrapper button { display: inline-block; margin: 0; padding: 1.2em 2.004em; line-height: normal; color: var(--tertiaryButtonTextColor); background-color: var(--tertiaryButtonBackgroundColor); }
.form-wrapper .form-button-wrapper button[disabled] { opacity: .7; cursor: default; }
.form-wrapper .form-submission-text { margin-top: 20px; }

/* ===== 30-accordion.css ===== */
/* 30-accordion.css — Accordion blocks (executivecoaching, coaching-certification, trigon-trainings ×2, the
   innatedriverscoach event body). Mirrors Squarespace's website.components.accordion stylesheet: every dimension
   comes from the per-block custom properties (--accordion-item-padding-*, --accordion-icon-size, ...) that each page
   carries in its own <style> next to the block, so a 15px-padded accordion (Trigon "pillars") and a 30px one share
   these rules. Overrides the accordion basics in 00-base.css where they differ from the live site. */

/* ---------- theme colours (Squarespace sets these per section theme; the section carries the theme class) ---------- */
:root { --tweak-accordion-block-icon-color: hsla(var(--safeLightAccent-hsl), 1); --tweak-accordion-block-divider-color: hsla(var(--safeLightAccent-hsl), 1); }
.white, .white-bold, .light, .light-bold { --tweak-accordion-block-icon-color: hsla(var(--black-hsl), 1); --tweak-accordion-block-divider-color: hsla(var(--black-hsl), 1); }
.dark, .dark-bold, .black, .black-bold { --tweak-accordion-block-icon-color: hsla(var(--white-hsl), 1); --tweak-accordion-block-divider-color: hsla(var(--white-hsl), 1); }
.bright-inverse { --tweak-accordion-block-icon-color: hsla(var(--accent-hsl), 1); --tweak-accordion-block-divider-color: hsla(var(--accent-hsl), 1); }

/* ---------- list + items ---------- */
.sqs-block-accordion .accordion-items-container { margin: 0; padding: 0; list-style-type: none; width: 100%; }
.sqs-block-accordion .accordion-item { margin: 0; padding: 0; position: relative; }

/* dividers: 1px of the theme's divider colour above the first item and below every item */
.sqs-block-accordion .accordion-divider { background-color: currentColor; color: var(--tweak-accordion-block-divider-color); height: var(--accordion-divider-thickness, 1px); opacity: var(--accordion-divider-opacity, 1); }
.sqs-block-accordion .accordion-divider--top { display: none; }
.sqs-block-accordion .accordion-items-container[data-is-first-divider-visible="true"] .accordion-item:first-of-type .accordion-divider--top { display: block; }
.sqs-block-accordion .accordion-items-container:not([data-is-last-divider-visible="true"]) .accordion-item:last-of-type .accordion-divider:not(.accordion-divider--top) { display: none; }

/* ---------- title row ---------- */
/* the wrapper is an <h4>: heading font at the h4 size (base forces font-size/line-height: inherit on it, so restate the h4 formulas) */
.sqs-block-accordion .accordion-item__title-wrapper { margin: 0; padding: 0; color: var(--headingSmallColor); line-height: calc(var(--heading-font-line-height) * (1 + (1 - var(--heading-4-size-value)) / 25)); font-size: min(calc((var(--heading-4-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--heading-4-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--heading-4-size-value) * 1rem))); }
@media screen and (max-width: 767px) and (orientation: portrait) {
  .sqs-block-accordion .accordion-item__title-wrapper { font-size: calc((var(--heading-4-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
}
/* the click target is a <button>: it inherits the heading font but keeps the UA's line-height: normal (Squarespace never
   sets it), which is why a one-line title measures 23px at 19.36px rather than the heading line-height */
.sqs-block-accordion .accordion-item__click-target { box-sizing: border-box; width: 100%; display: flex; justify-content: space-between; align-items: center; background: transparent; border: none; border-radius: 0; -webkit-appearance: none; appearance: none; cursor: pointer; text-align: left; touch-action: manipulation; color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit; font-style: inherit; text-transform: inherit; letter-spacing: inherit; line-height: normal; padding: var(--accordion-item-padding-top, 30px) var(--accordion-item-padding-right, 0) var(--accordion-item-padding-bottom, 30px) var(--accordion-item-padding-left, 0); }
.sqs-block-accordion .accordion-item__click-target:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; }
.sqs-block-accordion [data-accordion-icon-placement="left"] .accordion-item__click-target { flex-direction: row-reverse; }
.sqs-block-accordion .accordion-item__click-target > * { margin: 0; }
.sqs-block-accordion .accordion-item__title { flex: 1; overflow: hidden; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; text-align: left; }
.sqs-block-accordion [data-accordion-icon-placement="right"] .accordion-item__title { padding-right: var(--accordion-icon-size, 14px); }
.sqs-block-accordion [data-accordion-icon-placement="left"] .accordion-item__title { padding-left: var(--accordion-icon-size, 14px); }
.sqs-block-accordion [data-accordion-title-alignment="center"] .accordion-item__title { text-align: center; }
.sqs-block-accordion [data-accordion-title-alignment="right"] .accordion-item__title { text-align: right; }
.sqs-block-accordion .accordion-item__title > :first-of-type { margin-top: 0; }
.sqs-block-accordion .accordion-item__title > :last-of-type { margin-bottom: 0; }

/* plus icon: a 14×14 box holding two 1px lines of the theme's icon colour; the vertical line lies down when open */
.sqs-block-accordion .accordion-icon-container { position: relative; flex: 0 1 auto; margin: 0; width: var(--accordion-icon-size, 14px); height: var(--accordion-icon-size, 14px); color: var(--tweak-accordion-block-icon-color); }
.sqs-block-accordion .accordion-icon-container > * { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; }
.sqs-block-accordion .plus__horizontal-line, .sqs-block-accordion .plus__vertical-line { display: block; position: absolute; width: 100%; height: var(--accordion-icon-thickness, 1px); background-color: currentColor; transition: transform .25s; }
.sqs-block-accordion .plus__vertical-line { transform: rotate(90deg); }
.sqs-block-accordion .accordion-item[data-is-open="true"] .plus__vertical-line, .sqs-block-accordion .accordion-item--open .plus__vertical-line { transform: rotate(0deg); }

/* ---------- dropdown (closed everywhere on load: data-is-expanded-first-item="false") ---------- */
.sqs-block-accordion .accordion-item__dropdown { box-sizing: border-box; display: none; overflow: hidden; }
.sqs-block-accordion .accordion-item__dropdown--open, .sqs-block-accordion .accordion-item[data-is-open="true"] .accordion-item__dropdown, .sqs-block-accordion .accordion-item--open .accordion-item__dropdown { display: block; }
/* description: body font at paragraph size below the title; Squarespace caps it at 300px but the block's
   --accordion-description-width (70%) is applied as min-width and wins wherever 70% of the block exceeds 300px */
.sqs-block-accordion .accordion-item__description { box-sizing: border-box; max-width: 300px; min-width: var(--accordion-description-width, 100%); padding: var(--accordion-description-padding-top, 0) var(--accordion-description-padding-right, 0) var(--accordion-description-padding-bottom, 30px) var(--accordion-description-padding-left, 0); color: var(--paragraphMediumColor); }
.sqs-block-accordion [data-accordion-description-placement="center"] .accordion-item__description { margin-left: auto; margin-right: auto; }
.sqs-block-accordion [data-accordion-description-placement="right"] .accordion-item__description { margin-left: auto; }
.sqs-block-accordion [data-accordion-description-alignment="center"] .accordion-item__description { text-align: center; }
.sqs-block-accordion [data-accordion-description-alignment="right"] .accordion-item__description { text-align: right; }
.sqs-block-accordion .accordion-item__description > :first-of-type { margin-top: 0; }
.sqs-block-accordion .accordion-item__description > :last-of-type { margin-bottom: 0; }
/* links inside a description take Squarespace's per-theme paragraph link colour (scoped to accordion blocks because
   base does not define --paragraphLinkColor); the live link is not underlined */
.sqs-block-accordion { --paragraphLinkColor: hsla(var(--safeLightAccent-hsl), 1); }
.white .sqs-block-accordion, .white-bold .sqs-block-accordion, .light .sqs-block-accordion, .light-bold .sqs-block-accordion { --paragraphLinkColor: hsla(var(--safeDarkAccent-hsl), 1); }
.dark .sqs-block-accordion, .black .sqs-block-accordion, .black-bold .sqs-block-accordion { --paragraphLinkColor: hsla(var(--safeLightAccent-hsl), 1); }
.dark-bold .sqs-block-accordion { --paragraphLinkColor: hsla(0, 0%, 92.16%, 1); }
.bright-inverse .sqs-block-accordion { --paragraphLinkColor: hsla(var(--accent-hsl), 1); }
.sqs-block-accordion .accordion-item__description a { color: var(--paragraphLinkColor); text-decoration: none; }

@media (prefers-reduced-motion: reduce) {
  .sqs-block-accordion .accordion-item__dropdown, .sqs-block-accordion .plus__vertical-line { transition: none; }
}

/* ===== 40-events.css ===== */
/* 40-events.css — Events collection ("events-stacked"): the /upcoming-events list page, the two event item pages,
   the item-to-item pagination bar, and the classic (pre-Fluid-Engine) layout engine those pages use for their text.
   Values come from capture/probe.json and Squarespace's own rules. The captured site's collection settings, which
   Squarespace expresses as body classes, are baked in here: inset width, small height, side date tag, 3:2 thumbnails,
   excerpt shown; past events NOT shown, no date/time/location text and no calendar-export links in the list. */

/* ---------- classic layout engine (.sqs-layout > .sqs-row > .col > .sqs-block) ----------
   Used by the list page's title section (the generator marks it data-section-kind="classic-editor"; the
   layout-engine-section class is NOT a usable hook, Fluid Engine sections carry it too) and the event item body. Blocks carry 17px padding
   on every side; on desktop the first block in a row drops its top padding (and its bottom one when it is also last). */
.sqs-layout > .sqs-row { margin-left: -17px; margin-right: -17px; }
.sqs-row { width: auto; }
.sqs-col-12 { width: 100%; }
.sqs-layout .sqs-block { position: relative; height: auto; padding: 17px; }
@media screen and (min-width: 768px) {
  .sqs-layout .sqs-row .sqs-block:first-child { padding-top: 0; }
  .sqs-layout .sqs-row .sqs-block:first-child:last-child { padding-bottom: 0; }
}
/* section height presets carry a minimum height on Squarespace (33vh/66vh/100vh); it only bites on the list page's
   title section (mobile) here, so it is scoped to the classic section. */
.page-section[data-section-kind="classic-editor"].section-height--small { min-height: 33vh; }
.page-section[data-section-kind="classic-editor"].section-height--medium { min-height: 66vh; }
.page-section[data-section-kind="classic-editor"].section-height--large { min-height: 100vh; }

/* rich-text lists inside classic text blocks: no native marker, the bullet is a right-aligned ::before hanging in
   the list's 40px indent, and every list item child gets .5em vertical margins */
.sqs-layout .sqs-html-content ul, .sqs-layout .sqs-html-content ol, .eventlist-excerpt ul, .eventlist-excerpt ol { margin: 1em 0; padding-left: 40px; }
.sqs-layout ul[data-rte-list] li, .sqs-layout ol[data-rte-list] li, .eventlist-excerpt ul[data-rte-list] li { list-style-type: none; }
.sqs-layout ul[data-rte-list] li > *, .sqs-layout ol[data-rte-list] li > *, .eventlist-excerpt ul[data-rte-list] li > * { margin-top: .5em; margin-bottom: .5em; }
.sqs-layout ul[data-rte-list] li > *:first-child::before, .sqs-layout ol[data-rte-list] li > *:first-child::before, .eventlist-excerpt ul[data-rte-list] li > *:first-child::before { display: inline-block; margin-left: -40px; min-width: 40px; text-align: right; box-sizing: border-box; white-space: pre; }
.sqs-layout ul[data-rte-list] li > *:first-child::before, .eventlist-excerpt ul[data-rte-list] li > *:first-child::before { padding-right: 10px; content: "\2022"; }

/* "scaled text" (text fitted to its container by Squarespace's JS): line-height 1, never wraps. The generator turns
   the captured pixel size into container-query units so the fit holds at every viewport width. */
[data-section-kind="classic-editor"] .sqs-html-content { container-type: inline-size; }
[data-section-kind="classic-editor"] .sqsrte-scaled-text-container { display: block; width: 100%; height: auto; }
[data-section-kind="classic-editor"] .sqsrte-scaled-text-container .sqsrte-scaled-text { display: block; margin: 0; padding: 0; }
[data-section-kind="classic-editor"] .sqsrte-scaled-text-container .sqsrte-scaled-text > * { font-size: 1em; line-height: 1; margin: 0; padding: 0; white-space: nowrap !important; } /* !important: the captured heading carries an inline pre-wrap, as on Squarespace */

/* ---------- the collection wrapper (.events) shared by the list and the item pages ---------- */
.events { box-sizing: content-box; width: auto; max-width: var(--maxPageWidth); margin: 0 auto; padding: 3.3vw var(--pagePadding); min-height: 33vh; }
.events.events-item { box-sizing: border-box; } /* the item wrapper measures its 1400px cap on the border box (centred with 20px margins at 1440), the list on the content box */
@media screen and (max-width: 767px) { .events { padding-left: 6vw; padding-right: 6vw; } }

/* ---------- event list (/upcoming-events) ---------- */
/* both events are past and the collection does not show past events, exactly as live: the list stays in the markup
   but renders as the empty band the live page shows */
.eventlist.eventlist--past { display: none; }
.eventlist-past-upcoming-divider { display: none; height: 0; margin: 34px auto; border: none; border-top: 1px solid rgba(230, 230, 230, .8); font-size: 68px; line-height: 68px; }
.eventlist--upcoming + .eventlist--past .eventlist-past-upcoming-divider { display: block; }
.eventlist-event { position: relative; display: flex; flex-direction: row; justify-content: flex-start; align-content: flex-start; margin: 68px 0 0; padding: 0; }
.eventlist-event:first-of-type { margin: 0; }
/* thumbnail: 35% column holding a 3:2 box, image filling it */
.eventlist-column-thumbnail { display: block; position: relative; width: 35%; height: 0; padding-bottom: 23.33333333%; background: rgba(110, 110, 110, .05); text-decoration: none; }
.eventlist-column-thumbnail img { display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.eventlist-column-thumbnail:empty { height: auto; min-height: 100px; padding-bottom: 0; background: transparent; }
/* date tag over the thumbnail */
.eventlist-column-date { display: block; position: absolute; top: 0; left: 0; width: 35%; margin: 0; padding: 0; color: #333; text-decoration: none; }
.eventlist-datetag { display: table; position: absolute; top: 10px; right: 10px; width: 70px; height: auto; min-height: 70px; margin: 0; padding: 0; box-sizing: border-box; background: #fff; color: #333; font-size: 14px; line-height: 14px; text-align: center; }
.eventlist-event:not(.eventlist-event--hasimg) .eventlist-datetag { top: 0; background: #e8ecec; }
.eventlist-datetag-inner { display: table-cell; vertical-align: middle; margin: 0; padding: 6px; color: inherit; font-size: 0; line-height: 0; letter-spacing: 0; }
.eventlist-datetag-startdate--month, .eventlist-datetag-startdate--day, .eventlist-datetag-enddate { margin: 3px 0; line-height: 1em; text-transform: uppercase; white-space: nowrap; }
.eventlist-datetag-startdate--month { margin-top: 6px; font-size: 14px; }
.eventlist-datetag-startdate--day { font-size: 26px; }
.eventlist-datetag-enddate { margin: 6px 0 0; padding-top: 6px; border-top: 1px solid #ddd; font-size: 11px; }
.eventlist-event--past .eventlist-datetag-startdate--month, .eventlist-event--past .eventlist-datetag-startdate--day, .eventlist-event--past .eventlist-datetag-enddate { opacity: .3; }
.eventlist-datetag-status { display: none; position: absolute; top: 0; left: 35px; width: 1px; height: 70px; background: #000; transform: rotate(45deg); }
.eventlist-event--past .eventlist-datetag-status { display: block; }
.eventlist-event--past.eventlist-event--multiday .eventlist-datetag-status { top: 0; height: 85px; transform: rotate(38deg); }
/* info column */
.eventlist-column-info { width: 65%; padding: 0 0 0 34px; box-sizing: border-box; }
.eventlist-title { margin: 0 0 17px; padding: 0; font-size: 28px; line-height: 1.2em; }
.eventlist-title .eventlist-title-link { margin: 0; padding: 0; color: inherit; text-decoration: none; font-size: inherit; line-height: inherit; }
.eventlist-meta { list-style-type: none; margin: 0 0 17px; padding: 0; }
.eventlist-meta-item { margin: 0; padding: 0; text-align: left; }
.eventlist-meta a { text-decoration: none; }
/* the list shows neither date text, time, location nor calendar links (collection settings) */
.eventlist-meta-date, .eventlist-meta-time, .eventlist-meta-address, .eventlist-meta-export { display: none; }
.eventlist-meta-address-line::after { content: ", "; }
.eventlist-meta-address-line:last-of-type::after { content: none; }
.eventlist-meta-export-divider { margin: 0 4px; }
.eventlist-meta-export-divider::before { content: "\00B7"; }
.eventlist-excerpt { margin: 0 0 17px; }
.eventlist-excerpt p { margin: .5em 0; }
.eventlist-button { padding: 1.2em 2.004em; }
.eventlist-event .clear { clear: both; }
@media only screen and (max-width: 639px) {
  .eventlist-event { display: block; margin: 34px 0 0; padding: 0; }
  .eventlist-column-thumbnail, .eventlist-column-date, .eventlist-column-info { width: 100%; }
  .eventlist-column-thumbnail { padding-bottom: 66.666%; }
  .eventlist-column-thumbnail:empty { min-height: 0; }
  .eventlist-datetag { left: 0; right: auto; }
  .eventlist-column-info { margin: 25.5px 0 0; padding: 0; }
}

/* ---------- event item (/upcoming-events/<event>) ---------- */
.eventitem-backlink { display: inline-block; position: relative; margin: 0 0 51px; text-decoration: none; }
.eventitem-backlink::before { content: "\2190\0020 "; display: inline-block; width: 1em; margin-right: .25em; }
.eventitem { position: relative; display: flex; flex-direction: row; justify-content: flex-start; align-content: flex-start; }
/* meta column (30%): title, date/time, address; the calendar-export list is kept in the markup but hidden as live */
.eventitem-column-meta { flex: 1 0 30%; box-sizing: border-box; }
.eventitem-title { margin: 0 0 34px; padding: 0; font-size: 28px; line-height: 1.2em; }
.eventitem-meta { list-style-type: none; margin: 0 0 17px; padding: 0; }
.eventitem-meta-item { margin: 0; padding: 0; font-size: .9em; line-height: 1.6em; }
.eventitem-meta a { text-decoration: none; }
.eventitem--multiday .eventitem-meta-date .event-date::after { content: ", "; }
.eventitem--multiday .eventitem-meta-time { display: inline-block; }
.event-datetime-divider::before { content: " \2013 "; }
.eventitem-meta-address-line::after { content: ", "; }
.eventitem-meta-address-line:last-of-type::after { content: none; }
.eventitem-meta-address-line.eventitem-meta-address-line--title { display: block; }
.eventitem-meta-address-line.eventitem-meta-address-line--title::after { content: none; }
.event-meta-addtocalendar-container { display: none; }
.eventitem-meta-export-divider { margin: 0 4px; }
.eventitem-meta-export-divider::before { content: "\00B7"; }
/* content column (70%): a classic layout with the description text block and the CTA button block */
.eventitem-column-content { flex: 1 0 70%; padding-left: 34px; box-sizing: border-box; overflow: hidden; }
/* footer slot under the body (empty on this site; its 17px top margin is still part of the column height) */
.eventitem-content-footer { margin: 17px 0 0; }
.eventitem-content-footer .eventitem-sourceurl { margin: 0 0 8.5px; }
.eventitem-content-footer .eventitem-meta { margin: 0 0 8.5px; }
@media only screen and (max-width: 639px) {
  .eventitem { display: block; }
  .eventitem-title { margin-bottom: 17px; }
  .eventitem-column-meta { margin-bottom: 34px; }
  .eventitem-column-meta, .eventitem-column-content { width: 100%; padding: 0; }
}

/* ---------- previous / next event bar under the item ---------- */
.item-pagination--prev-next { display: flex; padding: 3vw var(--pagePadding); background-color: var(--siteBackgroundColor); }
@media screen and (max-width: 767px) { .item-pagination--prev-next { padding: 3vw 6vw; } }
.item-pagination-link { display: flex; align-items: center; width: auto; max-width: 50%; text-align: left; text-decoration: none; color: var(--paragraphMediumColor); }
.item-pagination-link--prev { margin-left: 0; margin-right: auto; }
.item-pagination-link--next { margin-left: auto; margin-right: 0; text-align: right; }
.item-pagination-link .item-pagination-icon { display: block; box-sizing: content-box; width: 18px; height: 32px; padding-right: 25px; }
.item-pagination-link--next .item-pagination-icon { padding-right: 0; padding-left: 25px; }
.item-pagination-link .item-pagination-icon svg { display: block; width: 18px; height: 32px; fill: none; stroke: var(--siteTitleColor); stroke-width: 1px; }
.item-pagination-link .item-pagination-prev-next { display: none; }
.pagination-title-wrapper { display: block; }
/* date above the title: the collection's "pagination date" style (minerva, size value 1.1, line-height 1em) */
.events-item-pagination-date { display: block; margin: 0 0 1rem; font-family: var(--heading-font-font-family); font-weight: 400; line-height: 1em; letter-spacing: 0; text-transform: none; color: var(--siteTitleColor); font-size: min(calc((1.1 - 1) * 1.2vw + 1rem), max(calc((1.1 - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(1.1 * 1rem))); }
/* title: the collection's "pagination" style (minerva, size value 2, uppercase), line-height forced to 1 */
.item-pagination-link .item-pagination-title { margin: 0; padding: 0; font-family: var(--heading-font-font-family); font-weight: 400; line-height: 1; letter-spacing: 0; text-transform: uppercase; color: var(--siteTitleColor); font-size: min(calc((2 - 1) * 1.2vw + 1rem), max(calc((2 - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(2 * 1rem))); }
@media screen and (max-width: 767px) and (orientation: portrait) {
  .events-item-pagination-date { font-size: calc((1.1 - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
  .item-pagination-link .item-pagination-title { font-size: calc((2 - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
}

/* ===== 50-products.css ===== */
/* 50-products.css — Commerce pages: /services product list, product detail pages, the product block on executivecoaching.
   Every value below was measured on the live pages (capture/probe.json + Playwright) at 1440x900 and 390x844.
   The Purchase buttons deliberately link to /contact (site.config.json purchaseHref); Squarespace's cart is not rebuilt. */

/* ---------- shared: the Purchase button (.sqs-add-to-cart-button) ----------
   Base gives the primary-button font formula + theme colours (oxblood ground, white text in the white theme).
   Here: the full-width box, the centred inner layer, and Squarespace's fitted label (22px at 55px tall, 19px at 48px;
   never larger than the button's own font size, which is what keeps mobile list buttons at 21.064px). */
.product-list .sqs-add-to-cart-button, .product-detail .sqs-add-to-cart-button { display: flex; align-items: center; justify-content: center; width: 100%; max-width: 100%; min-height: 55px; }
.product-list .sqs-add-to-cart-button { padding: 0 1.2rem; }
.product-detail .sqs-add-to-cart-button { padding: 0 20px; }
.sqs-add-to-cart-button-inner { display: flex; align-items: center; justify-content: center; width: 100%; overflow: hidden; }
.product-list .add-to-cart-text, .product-detail .add-to-cart-text { display: flow-root; overflow: hidden; font-size: min(22px, 1em); line-height: 1.2em; }
@media screen and (max-width: 767px) {
  .product-detail .sqs-add-to-cart-button { min-height: 48px; }
  .product-detail .add-to-cart-text { font-size: min(19px, 1em); }
}

/* ---------- /services: product list section ----------
   .product-list is Squarespace's grid shell (header row, items row, a trailing 10px track), padded 2vh × site gutter. */
.product-list { display: grid; grid-template-columns: 100%; grid-template-rows: auto auto 10px; padding: var(--product-list-section-vertical-padding-top, 2vh) var(--sqs-site-gutter) var(--product-list-section-vertical-padding-bottom, 2vh); }
.product-list-header { margin: 0 0 10px; }
.product-list-header .nested-category-title { margin: 0; text-align: center; }
.product-list-container { display: block; }
.product-list-layout-container { display: grid; grid-template-columns: repeat(var(--product-list-num-columns-desktop, 2), minmax(0, 1fr)); gap: var(--product-list-row-spacing, 2vw) var(--product-list-column-spacing, 2vw); }
/* card */
.product-list-item { position: relative; display: flex; flex-direction: column; justify-content: space-between; }
.product-list-item-link { display: flex; flex-direction: column; gap: 1vw; color: inherit; text-decoration: none; }
.product-list-image-wrapper { position: relative; }
.product-list-item-image { margin: 0; min-height: 1px; }
.grid-image-wrapper { position: relative; overflow: hidden; aspect-ratio: var(--product-list-image-aspect-ratio, 4 / 3); }
.grid-image-wrapper img { position: absolute; top: 0; left: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
/* title + price (heading face; the title keeps the body size, the price is the 1.1 step of the site's type formula) */
.product-list-item-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; margin: var(--product-list-image-text-spacing, .5vw) 0 0; text-align: left; }
.product-list-item-title { font-family: var(--heading-font-font-family); font-weight: var(--heading-font-font-weight); letter-spacing: var(--heading-font-letter-spacing); text-transform: uppercase; line-height: 1.4em; }
.product-list-item-price { margin: 8px 0 0; font-family: var(--heading-font-font-family); font-weight: var(--heading-font-font-weight); letter-spacing: var(--heading-font-letter-spacing); line-height: 1em; font-size: min(calc((1.1 - 1) * 1.2vw + 1rem), max(calc((1.1 - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(1.1 * 1rem))); }
.product-list-item-status { display: flex; flex-direction: column; gap: 4px; }
.product-list-item-add-to-cart { margin: 8px 0 0; }
.product-list-item-add-to-cart .sqs-add-to-cart-button-wrapper { display: flex; flex-direction: column; }
@media screen and (max-width: 767px) {
  .product-list { padding-left: var(--sqs-mobile-site-gutter); padding-right: var(--sqs-mobile-site-gutter); }
  .product-list-header .nested-category-title { text-align: left; }
  .product-list-layout-container { grid-template-columns: repeat(var(--product-list-num-columns-mobile, 1), minmax(0, 1fr)); gap: 30px; }
  .grid-image-wrapper { aspect-ratio: var(--product-list-image-aspect-ratio-mobile, 1 / 1); }
}
@media screen and (max-width: 767px) and (orientation: portrait) {
  .product-list-item-price { font-size: calc((1.1 - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
}

/* ---------- /services/p/*: product detail section ----------
   Layout "simple": breadcrumb, then gallery (50%) beside the meta column, 3vw × site gutter around it. */
.product-detail { display: block; }
.product-detail > div { display: flex; flex-direction: column; gap: 22px; padding: 3vw var(--sqs-site-gutter); }
/* breadcrumb */
.product-nav { display: flex; align-items: center; gap: 8px; }
.product-nav-breadcrumb-link { color: inherit; text-decoration: none; }
/* gallery + meta */
.product-content-wrapper { display: flex; align-items: flex-start; gap: var(--product-content-horizontal-spacing, 2vw); }
.product-gallery { display: flex; gap: 10px; overflow: hidden; width: var(--product-gallery-width, 50%); flex-shrink: 0; }
.product-gallery-slides { position: relative; flex: 1 1 auto; min-height: 1px; max-width: 100%; overflow: hidden; aspect-ratio: var(--product-gallery-aspect-ratio, 1 / 1); }
.product-gallery-slides-item { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; }
.product-gallery-slides-item-image { width: 100%; height: 100%; object-fit: cover; }
.product-meta { display: flex; flex-direction: column; gap: 11px; flex: 1 1 0%; min-width: 0; box-sizing: border-box; text-align: left; }
/* title is an h1 set at the h2 size with the plain 1.4em heading line-height */
.product-detail .product-title { margin: 0; line-height: var(--heading-font-line-height); font-size: min(calc((var(--heading-2-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--heading-2-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--heading-2-size-value) * 1rem))); }
.product-detail .product-price { margin: 0 0 5px; font-family: var(--heading-font-font-family); font-weight: var(--heading-font-font-weight); letter-spacing: var(--heading-font-letter-spacing); line-height: 1.4em; text-transform: uppercase; }
.product-description { margin: 0 0 5px; }
.product-description > :first-child { margin-top: 0; }
.product-description > :last-child { margin-bottom: 0; }
.product-add-to-cart { display: flex; flex-direction: column; gap: 16px; align-self: flex-start; width: var(--product-content-form-width, 100%); }
.product-add-to-cart-layout-wrapper { display: flex; flex-direction: column; gap: 16px; }
.product-add-to-cart-button-wrapper { display: block; }
@media screen and (max-width: 767px) {
  .product-detail > div { padding: 24px var(--sqs-mobile-site-gutter) 3vw; }
  .product-nav { display: none; }
  .product-content-wrapper { flex-direction: column; gap: 22px; }
  .product-gallery { width: 100%; }
  /* on mobile the description sits after the button (Squarespace swaps in its .hidden-up-md copy) */
  .product-description { order: 1; margin: 5px 0; }
}
@media screen and (max-width: 767px) and (orientation: portrait) {
  .product-detail .product-title { font-size: calc((var(--heading-2-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
}

/* ---------- product block (executivecoaching): only its Purchase control is switched on ----------
   The block's own <style> supplies --product-block-alignment / --product-block-display-purchase-controls. */
.product-block .productDetails { text-align: var(--product-block-alignment, center); }
.product-block .product-purchase-controls-wrapper { display: var(--product-block-display-purchase-controls, flex); flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin: 8px 0 0; }
.product-block .sqs-add-to-cart-button-wrapper { display: block; flex: 7 1 auto; text-align: center; }
.product-block .sqs-add-to-cart-button { display: block; width: 100%; max-width: 100%; min-height: fit-content; padding: .8rem 1.2rem; }
.product-block .sqs-add-to-cart-button-inner { display: grid; grid-template-areas: "content"; align-items: center; font-size: 16px; line-height: 27px; }
.product-block .add-to-cart-text { grid-area: content; display: block; font-size: 16px; line-height: 27px; }
@media screen and (max-width: 767px) {
  .product-block .product-purchase-controls-wrapper { flex-direction: column; align-items: stretch; }
}

/* ===== 55-calendar.css ===== */
/* 55-calendar.css — /calendar (the 2027 daily calendar product page, pages/calendar.html) and /calendar/thanks.
   The product-detail section reuses 50-products.css; this file only adds the few lines those pages need. */

/* meta column: subtitle under the title, note under the price, both in the body face at the small size */
.calendar-subtitle { margin: 0; color: var(--paragraphMediumColor); }
.calendar-price-note, .calendar-checkout-note { margin: 0; font-size: min(calc((var(--small-text-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--small-text-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--small-text-size-value) * 1rem))); color: var(--paragraphSmallColor); }
.product-description ul { margin: 1rem 0; padding-left: 1.2em; }
.product-description li { margin: .25em 0; }

/* "A page a day": image beside text, stacked on phones */
.calendar-inside-section { padding: 6vw 0; }
.calendar-inside { display: flex; align-items: center; gap: 4vw; padding: 0 var(--sqs-site-gutter); }
.calendar-inside-image { flex: 0 0 40%; }
.calendar-inside-image img { display: block; width: 100%; height: auto; }
.calendar-inside-text { flex: 1 1 0; min-width: 0; }
.calendar-inside-text h2 { margin-top: 0; }
.calendar-inside-text .sqs-block-button-element { padding: .9em 1.6em; margin-top: .5rem; }
@media screen and (max-width: 767px) {
  .calendar-inside-section { padding: 48px 0; }
  .calendar-inside { flex-direction: column; gap: 28px; padding: 0 var(--sqs-mobile-site-gutter); }
  .calendar-inside-image { flex-basis: auto; width: 100%; }
}

/* /calendar/thanks: the system-page layout from 70-system.css, with a heading */
.calendar-thanks h2 { margin-top: 0; }

/* ===== 60-slideshow.css ===== */
/* 60-slideshow.css — User items list banner slideshow (executivecoaching)
   Squarespace's "auto-layout" section: every slide sits in the same grid cell, so the row is as
   tall as the tallest slide; only the active slide is on-screen, the others are parked off-canvas
   with a transform (and aria-hidden) exactly as the live page does. site.js swaps .slide--active.
   Inline config carried over from the live DOM: .slides min-height 13vh, .slide padding 2%,
   .slide-content width/min-width/max-width, .list-item-content__description margin-top 1%,
   and the per-section <style> that sets --title-font-size-value / --body-font-size-value. */

/* ---------- colours (Squarespace's list-section tokens, mapped from the section theme) ---------- */
.user-items-list-banner-slideshow {
  --list-section-banner-slideshow-title-color: var(--headingLargeColor);
  --list-section-banner-slideshow-description-color: var(--paragraphMediumColor);
  --list-section-banner-slideshow-arrow-background-color: hsla(var(--safeDarkAccent-hsl), 1);
  --list-section-banner-slideshow-arrow-color: hsla(var(--safeInverseDarkAccent-hsl, 0, 0%, 100%), 1);
}
.dark .user-items-list-banner-slideshow, .dark-bold .user-items-list-banner-slideshow,
.black .user-items-list-banner-slideshow, .black-bold .user-items-list-banner-slideshow {
  --list-section-banner-slideshow-arrow-background-color: hsla(var(--safeLightAccent-hsl), 1);
  --list-section-banner-slideshow-arrow-color: hsla(var(--safeInverseLightAccent-hsl, 0, 0%, 0%), 1);
}

/* ---------- slideshow frame ---------- */
.user-items-list-banner-slideshow .slideshow-wrapper { position: relative; }
.user-items-list-banner-slideshow .slideshow-gutter { position: relative; overflow: hidden; cursor: grab; padding-left: 0; padding-right: 0; }
.user-items-list-banner-slideshow .slideshow-gutter:focus { outline: none; }
.user-items-list-banner-slideshow .slideshow-gutter:focus-visible::after { content: ''; display: block; box-sizing: border-box; border: 2px solid; pointer-events: none; position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.user-items-list-banner-slideshow .slideshow-holder { margin: auto; max-width: 100%; overflow: hidden; }

/* ---------- slides: one grid cell, active slide on-canvas ---------- */
.user-items-list-banner-slideshow .slides { list-style: none; margin: 0; padding: 0; display: grid; width: 100%; box-sizing: border-box; grid-template-columns: 1fr; grid-template-rows: 1fr; }
.user-items-list-banner-slideshow .slide { position: relative; grid-row: 1 / -1; grid-column: 1 / -1; box-sizing: border-box; display: flex; min-width: 0; transform: translate3d(-9999px, 0, 0); pointer-events: none; user-select: none; }
.user-items-list-banner-slideshow .slide--active { transform: translate3d(0, 0, 0); }
.user-items-list-banner-slideshow .slide a, .user-items-list-banner-slideshow .slide button { pointer-events: auto; }
.user-items-list-banner-slideshow[data-card-vertical-position="top"] .slide { align-items: flex-start; }
.user-items-list-banner-slideshow[data-card-vertical-position="middle"] .slide { align-items: center; }
.user-items-list-banner-slideshow[data-card-vertical-position="bottom"] .slide { align-items: flex-end; }
.user-items-list-banner-slideshow[data-card-horizontal-position="left"] .slide { justify-content: flex-start; }
.user-items-list-banner-slideshow[data-card-horizontal-position="center"] .slide { justify-content: center; }
.user-items-list-banner-slideshow[data-card-horizontal-position="right"] .slide { justify-content: flex-end; }
.user-items-list-banner-slideshow .slide-content { position: relative; box-sizing: border-box; }
@media screen and (max-width: 575px) {
  .user-items-list-banner-slideshow .slides { padding-right: 0 !important; }
  .user-items-list-banner-slideshow .slide-content { margin: 88px 0; }
}

/* ---------- slide text ---------- */
/* title: an h2 sized by the section's own --title-font-size-value (base's min/max type formula);
   line-height is base's h2 formula. The [data-section-id] hop outranks the page's inline <style>. */
.user-items-list-banner-slideshow .list-item-content__title { margin: 0; color: var(--list-section-banner-slideshow-title-color); line-height: calc(var(--heading-font-line-height) * (1 + (1 - var(--heading-2-size-value)) / 25)); }
.user-items-list-banner-slideshow[data-title-alignment="left"] .list-item-content__title { text-align: left; }
.user-items-list-banner-slideshow[data-title-alignment="center"] .list-item-content__title { text-align: center; }
.user-items-list-banner-slideshow[data-title-alignment="right"] .list-item-content__title { text-align: right; }
.user-items-list-item-container.user-items-list-banner-slideshow[data-section-id] .list-item-content__title {
  font-size: min(calc((var(--title-font-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--title-font-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--title-font-size-value) * 1rem)));
}
/* description: body copy sized by --body-font-size-value; the inline margin-top: 1% wins over margin: 0 */
.user-items-list-banner-slideshow .list-item-content__description { margin: 0; letter-spacing: normal; color: var(--list-section-banner-slideshow-description-color); }
.user-items-list-banner-slideshow .list-item-content__description a { color: var(--list-section-banner-slideshow-description-color); }
.user-items-list-banner-slideshow[data-body-alignment="left"] .list-item-content__description { text-align: left; }
.user-items-list-banner-slideshow[data-body-alignment="center"] .list-item-content__description { text-align: center; }
.user-items-list-banner-slideshow[data-body-alignment="right"] .list-item-content__description { text-align: right; }
.user-items-list-item-container.user-items-list-banner-slideshow[data-section-id] .list-item-content__description {
  font-size: min(calc((var(--body-font-size-value) - 1) * 1.2vw + 1rem), max(calc((var(--body-font-size-value) - 1) * 0.012 * var(--maxPageWidth) + 1rem), calc(var(--body-font-size-value) * 1rem)));
}
@media screen and (max-width: 767px) and (orientation: portrait) {
  .user-items-list-item-container.user-items-list-banner-slideshow[data-section-id] .list-item-content__title { font-size: calc((var(--title-font-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
  .user-items-list-item-container.user-items-list-banner-slideshow[data-section-id] .list-item-content__description { font-size: calc((var(--body-font-size-value) - 1) * calc(.012 * min(100vh, 900px)) + 1rem); }
}

/* ---------- desktop arrows: full-height columns at left/right 3vw (inline), 60px round buttons ---------- */
.user-items-list-banner-slideshow .arrow-container { position: absolute; top: 0; height: 100%; display: flex; align-items: center; pointer-events: none; }
.user-items-list-banner-slideshow .user-items-list-banner-slideshow__arrow-button { pointer-events: auto; cursor: pointer; display: block; appearance: none; -webkit-appearance: none; border-radius: 50%; overflow: hidden; width: 60px; height: 60px; border: 0; padding: 0; margin: 0; position: relative; background: transparent; z-index: 1; transition: opacity .3s; }
.user-items-list-banner-slideshow .user-items-list-banner-slideshow__arrow-button:focus { outline: none; }
.user-items-list-banner-slideshow .user-items-list-banner-slideshow__arrow-button:focus-visible::after { content: ''; position: absolute; height: 80%; width: 80%; border-radius: 50%; border: 2px solid; top: 0; left: 0; right: 0; bottom: 0; margin: auto; }
.user-items-list-banner-slideshow .user-items-list-banner-slideshow__arrow-icon-background { background-color: var(--list-section-banner-slideshow-arrow-background-color); }
.user-items-list-banner-slideshow .user-items-list-banner-slideshow__arrow-icon-background-area { position: absolute; width: 100%; height: 100%; left: 0; top: 0; opacity: .7; transition: opacity .3s; }
.user-items-list-banner-slideshow .user-items-list-banner-slideshow__arrow-icon { position: relative; display: block; margin: 0 auto; width: 36px; height: 36px; }
.user-items-list-banner-slideshow .user-items-list-banner-slideshow__arrow-icon-foreground { stroke: var(--list-section-banner-slideshow-arrow-color); }
.user-items-list-banner-slideshow .user-items-list-banner-slideshow__arrow-icon-path { stroke-width: 2px; stroke-linejoin: round; stroke-linecap: round; fill: none; }

/* ---------- mobile arrows: centred row pinned 20px above the bottom of the wrapper, 48px buttons ---------- */
.user-items-list-banner-slideshow .mobile-arrows { display: none; justify-content: center; margin-top: 20px; position: absolute; bottom: 20px; left: 0; width: 100%; }
.user-items-list-banner-slideshow .mobile-arrow-button { pointer-events: auto; cursor: pointer; display: block; appearance: none; -webkit-appearance: none; border: 0; border-radius: 50%; overflow: hidden; width: 48px; height: 48px; margin: 0; padding: 0; position: relative; background: transparent; z-index: 1; }
.user-items-list-banner-slideshow .mobile-arrow-button--left { margin-right: 10px; }
.user-items-list-banner-slideshow .mobile-arrow-icon-background-area { position: absolute; width: 40px; height: 40px; left: 4px; top: 4px; border-radius: 50%; transition: opacity .3s; }
.user-items-list-banner-slideshow .mobile-arrow-icon { position: relative; display: block; margin: 0 auto; width: 20px; height: 20px; }
@media screen and (max-width: 575px) {
  .user-items-list-banner-slideshow .desktop-arrows { display: none; }
  .user-items-list-banner-slideshow .mobile-arrows { display: flex; }
}

/* ===== 70-system.css ===== */
/* 70-system.css — System pages (404, thank-you) and the mobile menu overlay details */
