@layer cemora-default {

  /* Some styles brought in from Normalize and adapted for layering styling. */
  /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */


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

  /**
  * Render the `main` element consistently in IE.
  */

  main {
    display: block;
  }

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

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

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

  /**
  * 1. Add the correct box sizing in Firefox.
  * 2. Show the overflow in Edge and IE.
  */

  hr {
    box-sizing: content-box; /* 1 */
    height: 0; /* 1 */
    overflow: visible; /* 2 */
  }

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

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

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

  /**
  * Remove the gray background on active links in IE 10.
  */

  a {
    background-color: transparent;
  }

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

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

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

  b,
  strong {
    font-weight: bolder;
  }

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

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

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

  small {
    font-size: 100%;
  }

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

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

  sub {
    bottom: -0.25em;
  }

  sup {
    top: -0.5em;
  }

  /* Embedded content
    ========================================================================== */

  /**
  * Remove the border on images inside links in IE 10.
  */

  img {
    border-style: none;
  }

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

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

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

  /**
  * Show the overflow in IE.
  * 1. Show the overflow in Edge.
  */

  button,
  input { /* 1 */
    overflow: visible;
  }

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

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

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

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

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

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

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

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

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

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

  /**
  * 1. Correct the text wrapping in Edge and IE.
  * 2. Correct the color inheritance from `fieldset` elements in IE.
  * 3. Remove the padding so developers are not caught out when they zero out
  *    `fieldset` elements in all browsers.
  */

  legend {
    box-sizing: border-box; /* 1 */
    color: inherit; /* 2 */
    display: table; /* 1 */
    max-width: 100%; /* 1 */
    padding: 0; /* 3 */
    white-space: normal; /* 1 */
  }

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

  progress {
    vertical-align: baseline;
  }

  /**
  * Remove the default vertical scrollbar in IE 10+.
  */

  textarea {
    overflow: auto;
  }

  /**
  * 1. Add the correct box sizing in IE 10.
  * 2. Remove the padding in IE 10.
  */

  [type="checkbox"],
  [type="radio"] {
    box-sizing: border-box; /* 1 */
    padding: 0; /* 2 */
  }

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

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

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

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

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

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

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

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

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

  /*
  * Add the correct display in Edge, IE 10+, and Firefox.
  */

  details {
    display: block;
  }

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

  summary {
    display: list-item;
  }

  /* Misc
    ========================================================================== */

  /**
  * Add the correct display in IE 10+.
  */

  template {
    display: none;
  }

  /**
  * Add the correct display in IE 10.
  */

  [hidden] {
    display: none;
  }


  /* Some styles brought in from Bootstrap (but just a few) and adapted for CSS isolation and styling. */

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  fieldset {
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
  }

  button,
  input,
  select,
  optgroup,
  textarea {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
  }

} /* end of layer cemora-default */


@layer cemora-default {

:root {
    --primary: #82161D;
    --secondary: #25465F;
    --tertiary: #FEF34D;
    --info: #209BC0;
    --success: #70C020;
    --warning: #C08320;
    --danger: #C02E20;

    --primary-light: #F8D3D6;
    --secondary-light: #DAE7F1;
    --tertiary-light: #FFFBCC;
    --info-light: #D3EFF8;
    --success-light: #E5F8D3;
    --warning-light: #F8EAD3;
    --danger-light: #F8D6D3;

    --primary-dark: #410B0F;
    --secondary-dark: #152837;
    --tertiary-dark: #4C4700;
    --info-dark: #166983;
    --success-dark: #4D8316;
    --warning-dark: #835916;
    --danger-dark: #831F16;

    --neutral-base: #FFFFFF;
    --neutral-0: var(--neutral-base);
    --neutral-1: #FCFCFC;
    --neutral-2: #F2F2F2;
    --neutral-3: #E3E3E3;
    --neutral-4: #CCCCCC;
    --neutral-5: #B0B0B0;
    --neutral-6: #8F8F8F;
    --neutral-7: #666666;
    --neutral-8: #363636;
    --neutral-9: var(--neutral-accent);
    --neutral-accent: #000000;

    --text-primary: var(--neutral-9);
    --text-secondary: var(--neutral-8);
    --text-disabled: var(--neutral-6);
    --text-placeholder: var(--neutral-4);
    --text-inverted: var(--neutral-0);

    --spacing-tiny: calc(0.5 * var(--spacing-small));
    --spacing-small: 8px;
    --spacing-medium: calc(2 * var(--spacing-small));
    --spacing-large: calc(3 * var(--spacing-small));
    --spacing-jumbo: calc(4 * var(--spacing-small));

    --icon-tiny: calc(var(--icon-small) - 4px);
    --icon-small: 24px;
    --icon-medium: calc(var(--icon-small) + 4px);
    --icon-large: calc(var(--icon-medium) + 4px);
    --icon-jumbo: calc(var(--icon-large) + 4px);

    --text-tiny: calc(var(--text-normal) - 4px);
    --text-small: calc(var(--text-normal) - 2px);
    --text-normal: 18px;
    --text-large: calc(var(--text-normal) + 3px);
    --text-jumbo: calc(var(--text-large) + 3px);

    --text-h6: var(--text-normal);
    --text-h5: var(--text-h6); /* Same size as h6, but typically bold */
    --text-header-ratio: 1.189207115; /* Fourth root of 2, makes H1 double size of P */
    --text-h4: calc(var(--text-header-ratio) * var(--text-h5));
    --text-h3: calc(var(--text-header-ratio) * var(--text-h4));
    --text-h2: calc(var(--text-header-ratio) * var(--text-h3));
    --text-h1: calc(var(--text-header-ratio) * var(--text-h2));

    --animation-duration: 0.25s;

    --layout-header-height: 64px;
    --layout-footer-height: 180px;
    --layout-aside-width: 250px;
    --layout-search-width: 300px;
    --layout-icon-height: 133px;
    --layout-phone-width: 375px;
    --layout-tablet-width: 768px;
    --layout-laptop-width: 1280px;

    --input-button-height: 40px;
    --input-rounding: 6px;
    --input-minimum-width: 88px;

}

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

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

.primary-dark {
    background-color: var(--primary-dark);
    color: var(--text-inverted);
}

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

.secondary-light {
    background-color: var(--secondary-light);
    color: var(--text-primary);
}

.secondary-dark {
    background-color: var(--secondary-dark);
    color: var(--text-inverted);
}

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

.tertiary {
    background-color: var(--tertiary);
    color: var(--text-inverted);
}

.tertiary-light {
    background-color: var(--tertiary-light);
    color: var(--text-primary);
}

.tertiary-dark {
    background-color: var(--tertiary-dark);
    color: var(--text-inverted);
}

.danger-light {
    background-color: var(--danger-light);
    color: var(--text-primary);
}

.danger-dark {
    background-color: var(--danger-dark);
    color: var(--text-inverted);
}

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

.success-light {
    background-color: var(--success-light);
    color: var(--text-primary);
}

.success-dark {
    background-color: var(--success-dark);
    color: var(--text-inverted);
}

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

.info-light {
    background-color: var(--info-light);
    color: var(--text-primary);
}

.info-dark {
    background-color: var(--info-dark);
    color: var(--text-inverted);
}

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

.warning-light {
    background-color: var(--warning-light);
    color: var(--text-primary);
}

.warning-dark {
    background-color: var(--warning-dark);
    color: var(--text-inverted);
}

.neutral-0 {
    background-color: var(--neutral-0);
    color: var(--text-primary);
}

.neutral-1 {
    background-color: var(--neutral-1);
    color: var(--text-primary);
}

.neutral-2 {
    background-color: var(--neutral-2);
    color: var(--text-primary);
}

.neutral-3 {
    background-color: var(--neutral-3);
    color: var(--text-primary);
}

.neutral-4 {
    background-color: var(--neutral-4);
    color: var(--text-primary);
}

.neutral-5 {
    background-color: var(--neutral-5);
    color: var(--text-primary);
}

.neutral-6 {
    background-color: var(--neutral-6);
    color: var(--text-primary);
}

.neutral-7 {
    background-color: var(--neutral-7);
    color: var(--text-inverted);
}

.neutral-8 {
    background-color: var(--neutral-8);
    color: var(--text-inverted);
}

.neutral-9 {
    background-color: var(--neutral-9);
    color: var(--text-inverted);
}

.icon {
    width: var(--icon-small);
    height: var(--icon-small);
}

.glyph {
    width: var(--icon-tiny);
    height: var(--icon-tiny);
}

button.unobtrusive {
    border: none;
    padding: var(--spacing-small);
    outline: none;
}

/*
    Page bodies typically follow, section > article > section layout. The outer section is for 
    full-bleed, while the article has padding.  Sub-sections then are used for vertical spacing
    inside of an article.
*/

section {
display: flex;
flex-direction: column;
gap: var(--spacing-medium);
}

article {
padding-left: var(--spacing-medium);
padding-right: var(--spacing-medium);
display: flex;
flex-direction: column;
gap: 0;
}

article section {
    padding: var(--spacing-small) 0;
    gap: var(--spacing-small);
}

/*
    Standard text and inline/character styles.
*/

h1, h2, h3, h4, h5, h6 {
    font-family: 'HeaderFont', san-serif;
    font-size: var(--text-normal);
    font-weight: normal;
    margin: 0;
    padding: 0;
}

span, div, p {
    font-family: 'BodyFont', san-serif;
    font-size: var(--text-normal);
    font-weight: normal;
    margin: 0;
    padding: 0;
}

h1 {
    font-weight: bold;
    font-size: var(--text-h1);
}

h2 {
    font-weight: bold;
    font-size: var(--text-h2);
}

h3 {
    font-weight: bold;
    font-size: var(--text-h3);
}

h4 {
    font-weight: bold;
    font-size: var(--text-h4);
}

h5 {
    font-weight: bold;
    font-size: var(--text-h5);
}

h5 {
    font-weight: normal;
    font-size: var(--text-h6);
}

code {
    font-family: monospace;
    background-color: var(--primary-light);
    padding: 0 2px;
}

mark {
    background-color: var(--info-light);
}

del {
    color: var(--danger);
}

ins {
    color: var(--success);
}

/*
    Block styles
*/

/* Prefer flex/gap over margin and padding */
pre, ol, ul {
    margin: 0;
    padding: 0;
}

/* Reduce size on left to favor single bullet or ordered lists of rank less than 10. */
ol, ul {
    padding-left: var(--spacing-large);
}

pre:has(code) {
    font-family: monospace;
    background-color: var(--primary-light);
    padding: var(--spacing-small);
    border: solid 1px var(--primary);
    border-radius: var(--input-rounding);
}

} /* end of layer cemora-default */

@layer cemora-default {

/*
  Body divs show blocks of text, align them with a decent gap.
*/
div.body {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-small);
}

/*
  Cemora generated failures when they inject errors.
*/
div.liquid-error {
  padding: var(--spacing-large);
  border: solid var(--spacing-medium) var(--danger);
  background-color: var(--danger-light);
}

} /* end layer cemora-default */


:root {
    --primary-hue: 356.1deg;
    --primary-saturation: 71.1%;
    --primary-lightness: 29.8%;

    --secondary-hue: 206.4deg;
    --secondary-saturation: 44.4%;
    --secondary-lightness: 26.1%;

    --tertiary-hue: 54deg;
    --tertiary-saturation: 99%;
    --tertiary-lightness: 65%;

    --dark-lightness: 15%;

}


@layer radiant-heights {

/*
  Forms should be small and mobile friendly, provide general layout information here.  In forms,
  ensure labels and standard form elements are used.
*/  

form {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-small);
  }
  
    form label {
      font-weight: 500;
    }
  
    form input[type="text"], form input[type="email"], form input[type="phone"], 
    form input[type="password"], form textarea {
      padding: var(--spacing-small);
      border-radius: var(--input-rounding);
      border: 1px solid var(--secondary);
      width: 100%;
    }
  
    form textarea {
      resize: vertical;
    }
  
    form input[type="submit"] {
      background-color: var(--primary);
      color: var(--text-inverted);
      padding: var(--spacing-small);
      border-radius: var(--input-rounding);
      font-weight: bold;
    }
  
      form input[type="submit"]:hover {
        background-color: var(--primary-light);
      }
  
  /*
    Honeypot: The contact-us form has a phone field which should not be filled in.  It is a honeypot
    for spam bots.  Hide the field from users in a real browser using CSS, further obfuscated by
    using a relative position selector.
  */
  form div:nth-of-type(2) {
    display: none;
  }
  
  /*
    Buttons, wherever they are should have a consistent look and feel.
  */
  
  button {
    min-width: 88px;
    min-height: 40px;
    border: none;
    outline: none;
    border-radius: 4px;
    background-color: var(--secondary);
    color: var(--text-inverted);
    padding: 0 var(--spacing-medium);
    font-weight: 500;
  }
  
} /* end layer radiant-heights */ 


@layer radiant-heights {

/*
    Social links will be embedded SVGs, get their coloring and alignment correct.
*/
div.socials {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-small);
  }
  
    div.socials svg {
      height: var(--icon-large);
      fill: var(--secondary);
    }
  
    footer div.socials svg {
      fill: var(--neutral-0);
    }
    
} /* end layer radiant-heights */ 


@layer radiant-heights {

/*
  Sections are full bleed side-to-side on the pages, with main being made up of a stack of them.
  Mobile first, so the sections are default aligned in column mode, but switch to row layout on 
  larger screens.
*/
main section {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-medium);
  align-items: center;
  padding: var(--spacing-jumbo) 0;
}

  main section div.container {
    width: 100%;
    max-width: 1024px;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-large);
    /*padding: var(--spacing-large);*/
    padding: 0 var(--spacing-medium);
    align-items: start;
  }

    main section div.container div.text {
      flex: 1 1 100px;
      display: flex;
      flex-direction: column;
      gap: var(--spacing-small);
      justify-content: center;
      color: var(--text);
      align-items: start;
    }

    main section div.container div.image {
      flex: 1 1 100px;
      justify-content: center;
      align-items: center;
      align-content: center;
    }

      main section div.container div.image img {
        max-width: 100%;
        max-height: 100%;
      }

/*
  Inline pages header content to be centered and have a max-width.
*/
main section h1 {
  background-color: var(--secondary-light);
  color: var(--secondary);
  width: 100%;
  text-align: center;
  padding: var(--spacing-medium);
}

/*
  Sections alternate in background colors by default (overridden by some section types).
*/
main section.section-odd {
  background-color: var(--secondary-dark);
  color: var(--text-inverted);
}

main section.section-odd h2 {
  color: var(--tertiary);
}

@media (min-width: 801px) {
  main section.section-odd > div {
    flex-direction: row-reverse;
    align-items: center;
  }
}

main section.section-even {
  background-color: var(--secondary);
  color: var(--text-inverted);
}

main section.section-even h2 {
  color: var(--tertiary);
}

@media (min-width: 801px) {
  main section.section-even > div {
    flex-direction: row;
    align-items: center;
  }
}

/*
  Hyperlinks for left/right sections need to be styled with a light theme; but not for plain text sections.
*/
main section a {
  color: var(--text-inverted);
  text-decoration: none;
}

  main section a:hover {
    text-decoration: underline;
  }

  main section.text a {
    color: var(--text);
  }

/*
  Buttons generated using Markdown need line-height bumped up when on a line by themselves.
*/
main section p > a.button {
  line-height: 64px;
}

/*
  The hero section has a bit more spacing and different color Call to Action, as well as 
  different handling for image resizing.
*/
main section.hero {
  padding-bottom: var(--spacing-jumbo);
}

  main section.hero div.container div.text a {
    background-color: var(--secondary);
  }

  main section.hero div.container div.image img {
    max-height: 400px;
    object-fit: cover;
    width: 100%;
    min-height: 256px;
  }

/*
  The action section is just a single button, so center it; also revert the background color.
*/
main section.action {
  background-color: inherit;
}

  main section.action div.container {
    align-items: center;
  }

    main section.action div.container div.text {
      display: flex;
      align-items: center;
    }

/*
  Section refinements for the section with a image and content always stacked, but a bit narrower.
*/

main section.spotlight {
  background-color: initial;
  color: var(--text-primary);
}

main section.spotlight div.container {
  max-width: 800px;
}

  main section.spotlight div.container ul {
    font-size: var(--text-large);
    gap: var(--spacing-medium);
    display: flex;
    flex-direction: column;
  }

  main section.spotlight div.container h2, main section.spotlight div.container h3,
  main section.spotlight div.container h4, main section.spotlight div.container h5
  {
    width: 100%;
    text-align: center;
    color: var(--secondary);
  }
  
/*
  Section refinements for a 'full' width section, used for aligning content using flex-wrap.
*/

    main section.justify-full > div {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-items: stretch;
    }
    
    main section.justify-full h2 {
        text-align: center;
        color: var(--secondary);
    }

/*
    Video in an iFrame needs a special hack to get it to have the right aspect ratio and to be
    aligned properly.
*/

main section.video div.video {
  flex: 1 1 100px;
  position: relative;
  display: flex;
  width: 100%; /* Important when in mobile mode */
}

  main section.video div.video div.aspect-ratio-hack {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
  }

  main section.video div.video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }

} /* end layer radiant-heights */ 


@layer radiant-heights {

/*
    Standard text and inline/character styles.
*/

h1, h2, h3, h4, h5, h6 {
    font-family: 'Barlow', san-serif;
}

span, div, p {
    font-family: 'Roboto', san-serif;
}

} /* end layer radiant-heights */
@layer cemora-default, radiant-heights, retro-sport;

/*
  Retro Sport Palette
*/
@layer retro-sport {
:root {
    /* Mustard Yellow */
    --primary-hue: 47.07deg;
    --primary-saturation: 100%;
    --primary-lightness: 67.25%;

    /* Cherry Red */
    --secondary-hue: 2.16deg;
    --secondary-saturation: 69.87%;
    --secondary-lightness: 53.14%;

    /* Sky Blue */
    --tertiary-hue: 197.4deg;
    --tertiary-saturation: 71.43%;
    --tertiary-lightness: 72.55%;

    --dark-lightness: 15%;
}
}


@layer radiant-heights {

/* 
  Size and colorize the header like a banner/flag with accents and large logo.
*/
header {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-small);
}
 
  header section {
    display: flex;
    align-items: center;
  }
 
    header section div img {
        max-height: var(--layout-icon-height);
        max-width: calc(var(--layout-phone-width) - 2 * var(--spacing-small));
      }
        
    header div.top-accent {
      background-color: var(--primary);
      height: 48px;
      display: flex;
      flex-direction: row;
      align-items: center;
      padding: 0 var(--spacing-medium);
    }
  
      header div.top-accent a {
        display: flex;
        flex-direction: row;
        align-items: center;
      }
  
      header div.top-accent a svg {
        height: var(--icon-medium);
        fill: var(--text-inverted);
        flex: 0 0 auto;
      }
  
      header div.top-accent div.center {
        flex: 1 1 auto;
      }
  
    header div.bottom-accent {
      background-color: var(--secondary);
      height: 48px;
    }

    header section div.banner {
      display: flex;
      flex-direction: column;
      flex: 1 1 auto;
      width: 100%;
      max-width: 1024px;
      gap: var(--spacing-large);
      padding: 0 var(--spacing-medium);
    }

    @media (min-width: 801px) {
      header section div.banner {
        flex-direction: row;
      }
    }
    
/*
  Mobile hamburger menu button. 
*/
@media (min-width: 801px) {
  header div.mobile-menu {
    display: none;
  }
}

/*
  Mobile version call out menu for the hamburger menu.
*/
header div.nav.curtain {
  position: fixed;
  z-index: 100;
  background-color: #00000000;
  left: 0;
  top: 48px;
  padding: 0;
  width: 0;
  height: calc(100vh - 48px);
  transition: width var(--animation-duration);
}

  header div.nav.curtain .box {
    display: flex;
    gap: 10px;
    flex-direction: column;
    box-shadow: 0px 6px 16px 0px var(--neutral-9);
    width: 0;
    min-height: 50vh;
    overflow: hidden;
    transition: width var(--animation-duration);
    background-color: var(--neutral-0);
  }
   
    header div.nav.curtain .box nav {
      display: flex;
      flex-direction: column;
    }

      header div.nav.curtain .box nav a {
        color: var(--secondary);
        text-decoration: none;
        padding: var(--spacing-small) var(--spacing-medium);
        font-size: var(--text-large);
        font-weight: bold;
      }

        header div.nav.curtain .box nav a:hover {
          background-color: var(--secondary-light);
        }

  header div.nav.curtain.visible {
    width: 100vw;
  }

    header div.nav.curtain.visible .box {
      width: 80%;
    }

/*
  Desktop version of the header with a horizontal menu, only on wide screens.
*/

div.desktop-menu {
  display: none;
  flex-direction: row;
  align-items: center;
  justify-content: end;
  gap: var(--spacing-large);
  flex: 1 1 auto;
}

  div.desktop-menu nav {
    display: flex;
    gap: var(--spacing-medium);
  }

    div.desktop-menu nav a {
      color: var(--secondary);
      text-decoration: none;
      font-weight: bold;
      font-size: var(--text-jumbo);
    }

  div.desktop-menu a:hover {
    color: var(--primary);
  }

@media (min-width: 801px) {
  div.desktop-menu {
    display: flex;
  }  
}

/*
  Desktop version support for More... button
*/

.banner {
  position: relative;
}

.desktop-menu {
  overflow: hidden; /* Prevent children from expanding. */
}

.desktop-menu .nav.box {
  width: 100%;
  max-width: 800px; /* Adjust as needed */
  margin: 0 auto;
}

.desktop-menu nav.horizontal {
  display: flex;
  flex-wrap: nowrap; /* Keep horizontal */
  align-items: center;
  max-width: 100%; /* Constrain to container */
  overflow: hidden; /* Prevent overflow */
  justify-content: end;
}

.desktop-menu nav.horizontal a.main {
  text-decoration: none;
  white-space: nowrap; /* Prevent wrapping */
}

.desktop-menu nav.horizontal a.main:hover {
  border-radius: var(--input-rounding);
}

/* More link styling */
.desktop-menu a.more {
  display: none; /* Hidden by default */
  text-decoration: none;
  cursor: pointer;
}

  .desktop-menu a.more.visible {
    display: inline-block;
  }

/* Dropdown menu styling */
.desktop-menu nav.more-items {
  display: none; /* Overridden when class .visible */
  position: absolute;    
  top: 63%;
  right: 0;  
  background: var(--neutral-1);    
  border: 1px solid var(--neutral-7);    
  border-radius: var(--input-rounding);    
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);    
  min-width: 200px;    
  z-index: 1000;    
  flex-direction: column;    
  align-items: start;    
  gap: var(--spacing-small);  
}

  .desktop-menu nav.more-items.active {
    display: flex;
    padding: var(--spacing-small) 0;
  }

.desktop-menu nav.more-items a.dropdown {
  text-decoration: none;
  color: var(--secondary);
  padding: var(--spacing-tiny) var(--spacing-large);
  width: 100%;    
  text-align: left;
}

.desktop-menu nav.more-items a.dropdown:hover {
  background-color: #f0f0f0;
}

/* Visibility classes */
.desktop-menu .visible {
  display: block;
}

.desktop-menu .suppress {
  display: none;
}

} /* end layer radiant-heights */

@layer radiant-heights {

/*
  Testimonials show flow and be shown together, optimize for short testimonials and flex flow them.
*/
  section.testimonials div.testimonial {
    flex: 0 0 300px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-small);
  }

    section.testimonials div.testimonial div.content {
      text-align: center;
    }

  section.testimonials div.author {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--spacing-small);
  }

    section.testimonials div.author div.author-info {
      align-items: start;
      display: flex;
      flex-direction: column;
    }

      section.testimonials div.author div.author-info.no-headshot {
        align-items: center;
      }
  
    section.testimonials div.author img.author {
      width: 60px;
      height: 60px;
      border-radius: 50%;
    }

    section.testimonials div.author div.name {
      font-weight: bold;
    }

    section.testimonials div.author div.rating {
      display: flex;
      gap: 2px;
    }

} /* end layer radiant-heights */


/*
  When specially formatted as a data list, the visual will appear as an accordion view.  
*/

section dl {
  display: flex;
  flex-direction: column;
  border-bottom: solid 1px var(--neutral-5);
  margin: 0;
}

  section dl dt {
    font-size: var(--text-large);
    font-weight: bold;
    color: var(--text);
    border-top: solid 1px var(--neutral-5);
    padding: var(--spacing-small);
    display: flex;
    flex-direction: row;
    gap: 20px;
    justify-content: space-between;
    cursor: pointer;
  }

    /* Style the dt tag, assume collapsed if no class */
    section dl dt::after {
      content: "＋";
      font-size: var(--text-jumbo);
      color: var(--neutral-5);
      font-weight: bold;
    }

    section dl dt.expanded::after {
      content: "－";
    }

  /* Style the dd tag, assume collapsed if no class */
  section dl dd {
    margin: 0;
    height: 0;
    overflow: hidden;
    transition: height 0.5s ease, padding 0.5s ease, opacity 0.5s ease;
    color: var(--text);
    padding: 0 var(--spacing-medium);
    opacity: 0;
  }

    section dl dd.expanded {
      height: initial;
      padding: var(--spacing-medium);
      opacity: 100%;
    }

/*
  Size and colorize the footer.
*/
footer {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-small);
    background-color: var(--primary);
    color: var(--text-inverted);
    padding: var(--spacing-medium) 0;
  }
  
    footer section div img {
      max-height: var(--layout-icon-height);
      max-width: calc(var(--layout-phone-width) - 2 * var(--spacing-small));
    }
    

/*
  Display of the nav links in the footer should be high contrast and menu-like, not link-like.
  Layout should be in a flex-wrap style that adapts responsively.
*/
footer nav {
  display: flex;
  flex-direction: column;
  align-items: start;
}

footer > section {
  align-items: center;
}
  
  /* div for aligning in the non-margins */
  footer > section > div {
    align-items: center;
    max-width: 1024px;
  }
  
    /* div for laying out the footer sections */  
    footer > section > div > div {
      display: flex;
      align-items: flex-start;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: var(--spacing-medium);
      padding: 0 var(--spacing-medium);
    }

/* Disclaimer text should be left aligned and spaced */
footer > section .disclaimer {
  text-align: left;
  width: 100%;
  padding-top: var(--spacing-large);
  color: var(--neutral-3);
}

/* Copyright text should be centered */
footer > section .copyright {
  text-align: center;
  width: 100%;
  color: var(--neutral-3);
}
    
  
footer div.primary-menu, footer div.secondary-menu {
flex: 1 1 auto;
}

footer div.logo-and-social {
  flex: 1 1 auto;
  align-items: center;
  display: flex;
  flex-direction: column;
}
  
footer nav a {
  color: var(--text-inverted);
  text-decoration: none;
}

  footer nav a:hover {
    text-decoration: underline;
  }
@layer cemora-default, radiant-heights;

@layer radiant-heights {

/* 
  Top level layout of the page, flex for header>main>footer layout.  No gap is used so that the
  header and main can blend together for some designs.  Unfortunately requires a vertical padding
  on the main to separate it from the footer.
*/
body {
  font-family: sans-serif;
  line-height: 1.5;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  height: 100vh;
}

  body > header {
    flex: 0 0 auto;
    color: #fff;
    text-align: center;
    width: 100%;
  }

  body > main {
    flex: 1 1 auto;
    padding-bottom: var(--spacing-jumbo);
  }

  body > footer {
    flex: 0 0 auto;
  }

/*
  Links that should look like buttons, rendered with 'button' class.
*/
a.button {
  color: var(--text-inverted);
  background-color: var(--primary);
  padding: var(--spacing-medium);
  border-radius: var(--input-rounding);
  font-weight: bold;
  text-decoration: none;
  min-width: 160px;
  text-align: center;
}

  a.button:hover {
    outline: solid 1px var(--tertiary);
  }

  a.button:after {
    content: " \25B6\FE0E"; /* Right arrow followed by text variation selector to avoid emoji escaping. */
  }

/*
  Main body images and videos have their corners trimmed a little to make site a bit 'softer'.
*/
div.image img, div.video iframe {
  border-radius: var(--input-rounding);
}

} /* end layer radiant-heights */


section.sponsors > div {
    gap: 0;
}

section.sponsors div.card {
    height: 300px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--spacing-medium);
}

section.sponsors div.card div.image img {
    max-height: 100%;
    max-width: 100%;
    margin: 0 auto;
}

section.sponsors div.card div.content h2 {
    color: inherit;
}


