{"version":3,"sources":["01-tools/_font-face.scss","00-settings/_typography.scss","02-generic/_colors.scss","01-tools/_color-schemes.scss","_external/gravity-particles/color-schemes.scss","02-generic/_typography.scss","../../node_modules/modularscale-sass/stylesheets/modularscale/_respond.scss","01-tools/_typography.scss","02-generic/_heydon.scss","00-settings/_spacing.scss","01-tools/_container.scss","00-settings/_layout.scss","01-tools/_sticky-footer.scss","02-generic/_layout.scss","03-elements/_inline-text.scss","03-elements/_block-text.scss","03-elements/_headings.scss","03-elements/_media.scss","03-elements/_tables.scss","00-settings/_strokes.scss","gravity.css","03-elements/_buttons.scss","03-elements/_forms.scss","03-elements/_input.scss","03-elements/_lists.scss","04-objects/_full-bleed.scss","01-tools/_layouts.scss","04-objects/_lists.scss","01-tools/_utilities.scss","04-objects/_sticky-footer.scss","05-components/01-atoms/01-block-text/_pullout.scss","05-components/01-atoms/01-block-text/_05-ascii-art.scss","05-components/01-atoms/02-lists/_01-list-horizontal.scss","05-components/01-atoms/04-media/_10-logotype.scss","05-components/01-atoms/04-media/_25-icon.scss","05-components/01-atoms/06-buttons/_05-icon-button.scss","01-tools/_transitions.scss","05-components/01-atoms/06-buttons/_07-cta.scss","00-settings/_transition-speeds.scss","05-components/01-atoms/06-buttons/_08-toggle-menu.scss","01-tools/_size.scss","05-components/01-atoms/10-navigation/_00-nav-link.scss","05-components/02-molecules/00-navigation/_00-nav-menu.scss","05-components/02-molecules/01-cards/_location-card.scss","05-components/02-molecules/01-cards/_job-card.scss","05-components/02-molecules/02-lists/05-three-column-list-justified.scss","05-components/03-organisms/00-page-structure/_00-page-header.scss","05-components/03-organisms/00-page-structure/_01-page-footer.scss","01-tools/_borders.scss","05-components/03-organisms/00-page-structure/_02-page-intro.scss","01-tools/_decorations.scss","05-components/03-organisms/03-articles/_00-related-items.scss","05-components/03-organisms/_steps.scss","05-components/03-organisms/_list-cards-basic.scss","05-components/03-organisms/_list-inline-row.scss","05-components/03-organisms/_hero.scss","05-components/03-organisms/_card-basic.scss","05-components/03-organisms/_copy-ostentatious.scss","05-components/03-organisms/_callout.scss","05-components/01-atoms/03-forms/_01-form-group.scss","06-utilities/_text.scss","06-utilities/_padding.scss","06-utilities/_margin.scss","06-utilities/_box.scss","04-objects/_layouts.scss","05-components/01-atoms/04-media/_24-image.scss"],"names":[],"mappings":"AAyDE,WACE,0BAA8B,CAC9B,iBCCY,CDAZ,eCAG,CDCH,mOAEwD,CAN1D,WACE,0BAA8B,CAC9B,iBCIQ,CDHR,eCAG,CDCH,yOAEwD,CAN1D,WACE,0BAA8B,CAC9B,iBCSY,CDRZ,eCQG,CDPH,0NAEwD,CAN1D,WACE,0BAA8B,CAC9B,iBCYQ,CDXR,eCQG,CDPH,gOAEwD,CAN1D,WACE,0BAA8B,CAC9B,iBCiBY,CDhBZ,eCgBG,CDfH,6NAEwD,CAN1D,WACE,0BAA8B,CAC9B,iBCoBQ,CDnBR,eCgBG,CDfH,mOAEwD,CAN1D,WACE,iCAA8B,CAC9B,iBC0Be,CDzBf,eCyBM,CDxBN,2OAEwD,CE7D5D,MCgHM,4BC7BkB,CD6BlB,mCC5BsB,CD4BtB,2BC3BiB,CD2BjB,sCC1ByB,CD0BzB,wCCzB2B,CDyB3B,kCCxBwB,CDwBxB,4BCpBkB,CDoBlB,sCCnByB,CDmBzB,qCClB2B,CDkB3B,4BCjBkB,CDiBlB,mCChBsB,CDgBtB,wCCf2B,CDe3B,sCCdyB,CDczB,wCCb2B,CDa3B,8BCZiB,CDYjB,mCCXyB,CDWzB,qCCV2B,CDU3B,qCCTwB,CDoC1B,eCxDoB,CD0DtB,uCAAoE,CAFlE,UC/CoB,CDiDtB,kCAAoE,CDpIpE,iCAAsB,CGTxB,EAEE,iCAAkC,CAClC,kCAAmC,CAEnC,mBAAoB,CAGpB,iCAAkC,CHRpC,MI6BU,4BAAoF,CAApF,4BAAoF,CAApF,mBAAoF,CAApF,uBAAoF,CAApF,wBAAoF,CAApF,yBAAoF,CAApF,0BAAoF,CAApF,2BAAoF,CAApF,2BAAoF,CDT5F,+DJyFc,CIxFd,iBJAsB,CICtB,6BAAsF,CAGxF,KEmFE,6BAAsD,CF5GxD,EGQE,QAAS,CAET,qBAAsB,CAGtB,aAAc,CACd,mBAAoB,CAItB,IACE,gBC2J2B,CDvJ7B,8BAOE,YAAa,CHLf,KKVE,eCVsF,CDgBpF,uBAAsD,CACtD,iBDJoB,CCKpB,gBDLoB,CGatB,YAAa,CACb,gBAN0C,CAO1C,qBAAsB,CC7BtB,gBJcsB,CIbtB,mBJasB,CGiBtB,WACE,UAAW,CACX,aAAc,CACd,QAAS,CACT,eAAgB,CAChB,SAXc,CAehB,YACE,SAhBc,CE/BlB,aX6II,UC5CoB,CD8CtB,kCAAoE,CW/ItE,gBX6II,aC3CwB,CD6C1B,sCAAoE,CW/ItE,4BX6II,aC1C6B,CD4C/B,2CAAoE,CW/ItE,eX6II,aCzC2B,CD2C7B,yCAAoE,CW5HtE,SAEE,eb8Fa,Ca3Ff,cAGE,wDb6Fa,Ca1Ff,KX+GI,aCpD6B,CDsD/B,2CAAoE,CAFlE,qBCrC6B,CDuC/B,sDAAoE,CW5GtE,KP2EE,gCAAsD,CJ+BpD,aC9C2B,CDgD7B,yCAAoE,CWzGpE,iBAAkB,CCtCpB,IACE,wDduHa,CctHb,eAAgB,CAGlB,WAGE,mBNgL4B,CM7K9B,cRmGE,+BAAsD,CQvGtD,gBNiL4B,CMxK9B,WR8FE,gCAAsD,CJ+BpD,aC9C2B,CDgD7B,yCAAoE,CY5HpE,iBAAkB,CCnBpB,kBAME,ef6Ga,Ce5Gb,sBAAwB,CACxB,iBfgB4B,Ceb9B,GTmGE,+BAAsD,CS/FxD,GT+FE,+BAAsD,CS3FxD,GT2FE,+BAAsD,CSvFxD,GTuFE,+BAAsD,CSnFxD,GTmFE,+BAAsD,CS/ExD,GT+EE,+BAAsD,CU9GxD,QAEE,cAAe,CACf,WAAY,CAId,QAME,oBAAqB,CANvB,YASI,aAAc,CAId,YAAa,CAMjB,IACE,iBAAkB,CAgBpB,eACE,yCAA2C,CAG7C,eACE,yCAA2C,CAG7C,eACE,yCAA2C,CCpD7C,MACE,UAAW,CACX,wBAAyB,CAG3B,GACE,ejB6Ga,CiB1Gf,MAEE,sBTSsB,CSRtB,qBCG+B,CDF/B,kBCNmB,CC8VrB,4DC9VE,2BZ0BwC,CYzBxC,cAAe,CACf,epB0Ga,CmByPb,gHC/VE,UAAW,CACX,cAA+B,CAC/B,sBZkBsC,CYjBtC,kBAAmB,CDsWvB,cjBzOI,UC5CoB,CD8CtB,kCAAoE,CkBxGpE,0BFhCmB,CEgCnB,yCFhCmB,CCwXnB,kCjBlPE,qBCxDoB,CD0DtB,6CAAoE,CiBgPpE,oBjBlPE,oBC1C6B,CD4C/B,kDAAoE,CAFlE,aC1C6B,CD4C/B,2CAAoE,CiB8PpE,sDjBhQE,oBCzC2B,CD2C7B,gDAAoE,CAFlE,qBCxDoB,CD0DtB,6CAAoE,CAFlE,aCzC2B,CD2C7B,yCAAoE,CiBqQpE,oDjBvQE,oBCxC6B,CD0C/B,kDAAoE,CAFlE,aCxC6B,CD0C/B,2CAAoE,CiB6QtE,iEjB/QI,qBCxDoB,CD0DtB,6CgBxImB,CCqZrB,ajB/QI,UC5CoB,CD8CtB,kCAAoE,CkBxGpE,0BFhCmB,CEgCnB,yCFhCmB,CC8ZnB,mBjBxRE,oBC1C6B,CD4C/B,kDAAoE,CAFlE,aC1C6B,CD4C/B,2CAAoE,CiB6RpE,uCjB/RE,qBCxDoB,CD0DtB,6CAAoE,CiB6RpE,oBjB/RE,oBCzC2B,CD2C7B,gDAAoE,CAFlE,aCzC2B,CD2C7B,yCAAoE,CiBoSpE,kDjBtSE,oBCxC6B,CD0C/B,kDAAoE,CAFlE,qBCxDoB,CD0DtB,6CAAoE,CAFlE,aCxC6B,CD0C/B,2CAAoE,CiB4StE,iCjB9SI,qBC5CoB,CD8CtB,6CAAoE,CAFlE,UCxDoB,CD0DtB,kCAAoE,CkBxGpE,0BFhCmB,CEgCnB,yCFhCmB,CC8bnB,6CjBxTE,oBC1C6B,CD4C/B,kDAAoE,CAFlE,wBC1C6B,CD4C/B,sDAAoE,CAFlE,UCxDoB,CD0DtB,kCAAoE,CiB8TpE,+CjBhUE,oBCzC2B,CD2C7B,gDAAoE,CAFlE,wBCzC2B,CD2C7B,oDAAoE,CAFlE,UCxDoB,CD0DtB,kCAAoE,CiBsUpE,kHjBxUE,oBCxC6B,CD0C/B,kDAAoE,CAFlE,wBCxC6B,CD0C/B,sDAAoE,CAFlE,UCxDoB,CD0DtB,kCAAoE,CmB/ItE,6BAIE,iBAAkB,CCJpB,MACE,aAAc,CADhB,eAII,UAAW,CACX,oBd4BsC,CcxB1C,6CACE,UAAW,CACX,cAI8C,CAGhD,sDANE,uBdqBwC,CcpBxC,sBdoBwC,CcnBxC,kDAAyD,CACzD,6CAQ8C,CALhD,SACE,aAI8C,CCvBhD,MAEE,mBfyBwC,CeN1C,kBAIE,iBfEwC,CgB1B1C,mBACE,UAAW,CACX,cAAe,CACf,cAAe,CACf,aAAc,CACd,aAAc,CACd,gBAAiB,CAEjB,4BfQA,eCVsF,CDgBpF,uBAAsD,CACtD,iBDJoB,CCKpB,gBDLoB,CiBgCtB,6BACE,WA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,CDoBlB,sCCnByB,CDmBzB,qCClB2B,CDkB3B,4BCjBkB,CDiBlB,mCChBsB,CDgBtB,wCCf2B,CDe3B,sCCdyB,CDczB,wCCb2B,CDa3B,8BCZiB,CDYjB,mCCXyB,CDWzB,qCCV2B,CDU3B,qCCTwB,CDsC5B,uCAAoE,CAApE,kCAAoE,CAwCpE,8BArEI,+BCvDkB,CDuDlB,gCCtDsB,CDsDtB,8BCrDiB,CDqDjB,sCCpDyB,CDoDzB,wCCnD2B,CDmD3B,qCClDwB,CDkDxB,4BC9CkB,CD8ClB,sCC7CyB,CD6CzB,qCC5C2B,CD4C3B,4BC3CkB,CD2ClB,mCC1CsB,CD0CtB,wCCzC2B,CDyC3B,sCCxCyB,CDwCzB,wCCvC2B,CDuC3B,8BCtCiB,CDsCjB,sCCrCyB,CDqCzB,wCCpC2B,CDoC3B,qCA6BgE,CAwCpE,qEAxCA,uCAAoE,CAApE,kCAAoE,CAwCpE,uCArEI,4BC3GkB,CD2GlB,gCC1GsB,CD0GtB,2BCzGiB,CDyGjB,mCCxGyB,CDwGzB,qCCvG2B,CDuG3B,kCCtGwB,CDsGxB,+BClGkB,CDkGlB,sCCjGyB,CDiGzB,qCChG2B,CDgG3B,+BC/FkB,CD+FlB,mCC9FsB,CD8FtB,wCC7F2B,CD6F3B,sCC5FyB,CD4FzB,wCC3F2B,CD2F3B,8BC1FiB,CD0FjB,sCCzFyB,CDyFzB,wCCxF2B,CDwF3B,qCA6BgE,CAwCpE,sCArEI,+BCjFkB,CDiFlB,gCChFsB,CDgFtB,8BC/EiB,CD+EjB,sCC9EyB,CD8EzB,wCC7E2B,CD6E3B,qCC5EwB,CD4ExB,4BCxEkB,CDwElB,sCCvEyB,CDuEzB,qCCtE2B,CDsE3B,4BCrEkB,CDqElB,mCCpEsB,CDoEtB,wCCnE2B,CDmE3B,sCClEyB,CDkEzB,wCCjE2B,CDiE3B,8BChEiB,CDgEjB,sCC/DyB,CD+DzB,wCC9D2B,CD8D3B,qCA6BgE,CAwCpE,wEAxCA,uCAAoE,CAApE,kCAAoE,CAwCpE,kCArEI,+BCvDkB,CDuDlB,gCCtDsB,CDsDtB,8BCrDiB,CDqDjB,sCCpDyB,CDoDzB,wCCnD2B,CDmD3B,qCClDwB,CDkDxB,4BC9CkB,CD8ClB,sCC7CyB,CD6CzB,qCC5C2B,CD4C3B,4BC3CkB,CD2ClB,mCC1CsB,CD0CtB,wCCzC2B,CDyC3B,sCCxCyB,CDwCzB,wCCvC2B,CDuC3B,8BCtCiB,CDsCjB,sCCrCyB,CDqCzB,wCCpC2B,CDoC3B,qCA6BgE,CAwCpE,mCArEI,4BC7BkB,CD6BlB,mCC5BsB,CD4BtB,2BC3BiB,CD2BjB,sCC1ByB,CD0BzB,wCCzB2B,CDyB3B,kCCxBwB,CDwBxB,4BCpBkB,CDoBlB,sCCnByB,CDmBzB,qCClB2B,CDkB3B,4BCjBkB,CDiBlB,mCChBsB,CDgBtB,wCCf2B,CDe3B,sCCdyB,CDczB,wCCb2B,CDa3B,8BCZiB,CDYjB,mCCXyB,CDWzB,qCCV2B,CDU3B,qCA6BgE,CAwCpE,mEAxCA,uCAAoE,CAApE,kCAAoE,CAwCpE,gCArEI,4BCHkB,CDGlB,mCCFsB,CDEtB,2BCDiB,CDCjB,mCCAyB,CDAzB,qCCC2B,CDD3B,kCCEwB,CDFxB,4BCMkB,CDNlB,mCCOyB,CDPzB,wCCQ2B,CDR3B,4BCSkB,CDTlB,mCCUsB,CDVtB,wCCW2B,CDX3B,sCCYyB,CDZzB,qCCa2B,CDb3B,8BCciB,CDdjB,sCCeyB,CDfzB,wCCgB2B,CDhB3B,qCA6BgE,CAwCpE,oCArEI,+BCuBkB,CDvBlB,mCCwBsB,CDxBtB,8BCyBiB,CDzBjB,sCC0ByB,CD1BzB,wCC2B2B,CD3B3B,qCC4BwB,CD5BxB,+BCgCkB,CDhClB,mCCiCyB,CDjCzB,qCCkC2B,CDlC3B,+BCmCkB,CDnClB,mCCoCsB,CDpCtB,wCCqC2B,CDrC3B,sCCsCyB,CDtCzB,wCCuC2B,CDvC3B,8BCwCiB,CDxCjB,sCCyCyB,CDzCzB,wCC0C2B,CD1C3B,qCA6BgE,CAwCpE,oEAxCA,uCAAoE,CAApE,kCAAoE,CAwCpE,gCArEI,4BCiDkB,CDjDlB,mCCkDsB,CDlDtB,2BCmDiB,CDnDjB,sCCoDyB,CDpDzB,wCCqD2B,CDrD3B,qCCsDwB,CDtDxB,+BC0DkB,CD1DlB,sCC2DyB,CD3DzB,wCC4D2B,CD5D3B,+BC6DkB,CD7DlB,mCC8DsB,CD9DtB,wCC+D2B,CD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MtC,mBhDNsC,CgD3B1C,qCAoCM,oBhDToC,CgDUpC,mBhDVoC,CiD3B1C,kBnD8GE,+BAAsD,CiBlGrD,CAHC,yBATJ,YAUM,iBfUkB,CiBetB,sBACE,6BAAuE,CAQzE,qCACE,YAAa,CuB7CjB,6CAcM,eAAgB,CAdtB,uBC2CE,2QAA6M,CE3C/M,gCA0BM,gBAAiB,CACjB,aAAc,CACd,oB3CDoC,C2CEpC,cAAe,CACf,2BjCf2B,CiCgB3B,mBAAoB,CACpB,gBAAiB,CAhCvB,+BAsCM,eAAgB,CAtCtB,uCA2DM,aAAc,CACd,OAAQ,CACR,SAAU,CACV,yBAA0B,CC9DhC,yB3B6BI,YAAa,CACb,cAAe,CACf,oBjBJsC,CiBQxC,2BACE,8BAAuE,CAGrE,mBjBZoC,CiBiBxC,0CACE,YAAa,CAVf,2BAkBE,WAAY,C2BrDhB,iE3BiEE,eAAgB,CAQhB,qKAEE,kBjBhDsC,CgD3B1C,0BA0CI,oBAAwE,CjC9BzE,ClByCC,yBJnDJ,MIoDM,wBAA6F,CAA7F,sBAA6F,CAA7F,sBAA6F,CAA7F,0BAA6F,CAA7F,2BAA6F,CAA7F,2BAA6F,CAA7F,2BAA6F,CAA7F,0BAA6F,CAA7F,2BAA6F,CD3BnG,KKWI,iBAAkB,CAClB,gBAAiB,Ce9BnB,4Bf6BE,iBAAkB,CAClB,gBAAiB,CqCUrB,0JrCXI,iBAAkB,CAClB,gBAAiB,CgDvCrB,yChDsCI,iBAAkB,CAClB,gBAAiB,CLdpB,CKOG,uGLLJ,KKMM,iBAAkB,CexBtB,4BfwBI,iBAAkB,CqCgBxB,0JrChBM,iBAAkB,CgDjCxB,yChDiCM,iBAAkB,CGzBvB,CViHG,mCDvHJ,MC0HU,+BC3Fc,CD2Fd,gCC1FkB,CD0FlB,8BCzFa,CDyFb,sCCxFqB,CDwFrB,wCCvFuB,CDuFvB,qCCtFoB,CDsFpB,4BClFc,CDkFd,sCCjFqB,CDiFrB,qCChFuB,CDgFvB,4BC/Ec,CD+Ed,mCC9EkB,CD8ElB,wCC7EuB,CD6EvB,sCC5EqB,CD4ErB,wCC3EuB,CD2EvB,8BC1Ea,CD0Eb,sCCzEqB,CDyErB,wCCxEuB,CDwEvB,qCCvEoB,C6DpD5B,0BAEI,kBAAmB,C9DoLvB,6BA3DQ,+BC3Fc,CD2Fd,gCC1FkB,CD0FlB,8BCzFa,CDyFb,sCCxFqB,CDwFrB,wCCvFuB,CDuFvB,qCCtFoB,CDsFpB,4BClFc,CDkFd,sCCjFqB,CDiFrB,qCChFuB,CDgFvB,4BC/Ec,CD+Ed,mCC9EkB,CD8ElB,wCC7EuB,CD6EvB,sCC5EqB,CD4ErB,wCC3EuB,CD2EvB,8BC1Ea,CD0Eb,sCCzEqB,CDyErB,wCCxEuB,CDwEvB,qCCvEoB,CDkI5B,8BA3DQ,4BCrHc,CDqHd,gCCpHkB,CDoHlB,2BCnHa,CDmHb,mCClHqB,CDkHrB,qCCjHuB,CDiHvB,kCChHoB,CDgHpB,+BC5Gc,CD4Gd,sCC3GqB,CD2GrB,qCC1GuB,CD0GvB,+BCzGc,CDyGd,mCCxGkB,CDwGlB,wCCvGuB,CDuGvB,sCCtGqB,CDsGrB,wCCrGuB,CDqGvB,8BCpGa,CDoGb,sCCnGqB,CDmGrB,wCClGuB,CDkGvB,qCCjGoB,CFf7B,C6CAG,yBAZJ,oCAaM,iBAAkB,CAKxB,2BAII,qBAAsB,CACtB,iBAAkB,CARnB","file":"gravity.css","sourcesContent":["////\n/// Internsal functions and mixing for setting up `@font-face` declariations.\n///\n/// @group typography\n/// @access private\n////\n\n\n/// Takes a list of local font names and formats them into\n/// a list like: `local(\"name 1\"), local(\"name 2\"), ...`\n///\n/// This is intended for `@font-face` declarations, where we may need to specify\n/// one or more `local()` names for a font.\n///\n/// Refer to te `grav-font-face()` mixin's documentation for more info on where\n/// to find the local font names.\n///\n/// @param {list | string} $local-names - (List of) local font name(s).\n///\n@function grav-format-local-names($local-names) {\n  $output: local('#{nth($local-names, 1)}');\n\n  @for $i from 2 to length($local-names)+1 {\n    $output: $output,\n    local('#{nth($local-names, $i)}');\n  }\n\n  @return $output;\n}\n\n/// Generates an `@font-face` declaration.\n///\n/// Used internally by Gravity to generate all necessary `@font-face` declarations.\n///\n/// Intentionally only uses WOFF2 and WOFF formats. This has sufficiently broad browser support,\n/// so there's little point bloating our CSS with additional EOT or TTF sources.\n///\n/// You can find a font file's local name in macOS by opening the \"Font Book\" app, selecting the\n/// font you're after and clicking the 'i' (info) button in the toolbar. The \"PostScript name\" is\n/// the value you're after.\n///\n/// `$src-path` may be an absolute or relative URL path and should exclude the trailing slash.\n///\n/// See:\n/// - https://css-tricks.com/snippets/css/using-font-face/\n/// - https://stackoverflow.com/a/18134406\n///\n/// @param {string} $font-family - The font family name,\n///     which can later be used in `font-family` CSS rules to use this font.\n/// @param {string} $font-weight - The CSS `font-weight` value that these font files are for.\n/// @param {string} $font-style - The CSS `font-style` value that these font files are for.\n/// @param {string} $src-path - The URL path to the directory containing the font files\n///     (excluding a trailing slash).\n/// @param {string} $src-basename - The base filename (excluding the file extension) shared by\n///     `.woff2` and `.woff` font files that will be referenced.\n/// @param {list | string} $local-names - (List of) local font name(s).\n@mixin grav-font-face($font-family, $font-weight, $font-style, $src-path, $src-basename, $local-names) {\n  @font-face {\n    font-family: '#{$font-family}';\n    font-style: $font-style;\n    font-weight: $font-weight;\n    src: grav-format-local-names($local-names),\n    url('#{$src-path}/#{$src-basename}.woff2') format('woff2'),\n    url('#{$src-path}/#{$src-basename}.woff') format('woff');\n  }\n}\n","////\n/// Typography-related values\n///\n/// @group typography\n////\n\n/// The base font size used at the narrowest viewport width.\n///\n/// @type length value\n///\n/// @access private\n$grav-font-size-smallest-viewport: 1rem;\n\n/// The base font size used at the widest viewport width.\n///\n/// @type length value\n///\n/// @access private\n$grav-font-size-largest-viewport: 1.25rem;\n\n/// The default line height.\n///\n/// @type number\n$grav-line-height: 1.414;\n$grav-line-height-title: 1.025;\n\n/// The optimal maximum width for a line of text.\n///\n/// @type length value\n$grav-line-max-width-m: 40em;\n\n/// The primary font family.\n///\n/// This is the font family that is applied to most UI elements.\n///\n/// @access private\n$_grav-font-family-primary: \"Helvetica Neue\";\n\n/// The monospace font family.\n///\n/// This is the font family is applied to select UI elements that\n/// should render with a monospaces font. For example `<pre>` or\n/// `<code>`.\n///\n/// @access private\n$_grav-font-family-mono: \"Wipro Akkurat Mono TT\";\n\n/// Map of web fonts to declare in the CSS output.\n///\n/// This map is used internally by Gravity to generate\n/// `@font-face` declarations.\n///\n/// The organisation is as follows:\n/// Font family > CSS font weight > CSS font style\n///\n/// Note: To understand where the `local()` names come from, refer to the\n/// comments for the `grav-font-face()` mixin.\n///\n/// @access private\n$grav-font-faces: ($_grav-font-family-primary: ( // Light\n    300: (normal: (local-name: \"HelveticaNeueLTStd-UltLt\",\n        base-name: \"HelveticaNeueLTStd-UltLt\"\n      ),\n      italic: (local-name: \"HelveticaNeueLTStd-UltLtIt\",\n        base-name: \"HelveticaNeueLTStd-UltLtIt\"\n      ),\n    ),\n    // Regular\n    400: (normal: (local-name: \"HelveticaNeueLTStd-Md\",\n        base-name: \"HelveticaNeueLTStd-Md\"\n      ),\n      italic: (local-name: \"HelveticaNeueLTStd-MdIt\",\n        base-name: \"HelveticaNeueLTStd-MdIt\"\n      ),\n    ),\n    // Bold\n    900: (normal: (local-name: \"HelveticaNeueLTStd-Blk\",\n        base-name: \"HelveticaNeueLTStd-Blk\"\n      ),\n      italic: (local-name: \"HelveticaNeueLTStd-BlkIt\",\n        base-name: \"HelveticaNeueLTStd-BlkIt\"\n      ),\n    ),\n  ),\n  $_grav-font-family-mono: ( // Regular\n    normal: (normal: (local-name: \"WiproAkkuratMonoTT-Regular\",\n        base-name: \"WiproAkkuratMonoWeb-Regular\",\n      ),\n    ),\n  ),\n);\n\n/// The default URL path that is prefixed to font filenames.\n///\n/// This variable is used internally by Gravity to generate\n/// `@font-face` declarations.\n///\n/// @access private\n$grav-font-src-path: \"https://static.buildit.digital/fonts/v1.0.0\";\n\n/// Map of available typefaces.\n///\n/// This map is used internally by Gravity's typography\n/// SASS functions.\n///\n/// @access private\n$grav-typefaces: (primary: (stack: ($_grav-font-family-primary,\n      \"Helvetica Neue\",\n      \"Helvetica\",\n      \"Arial\",\n      system-ui,\n      sans-serif,\n    ),\n    weights: (light: 300,\n      regular: 400,\n      bold: 900,\n    ),\n  ),\n  mono: (stack: ($_grav-font-family-mono,\n      \"Akkurat Mono\",\n      monospace,\n    ),\n    weights: (regular: normal,\n    ),\n  ),\n);\n","// Global color settings\n\n:root {\n  // Define CSS custom properties for default color scheme\n  @include grav-color-scheme-props($grav-co-scheme-default-name, $grav-co-scheme-default-dark-name);\n\n  // Apply default color scheme with a fallback for older\n  // browsers that do not support CSS custom properties.\n  @include grav-color-scheme-apply(true);\n\n  // Used by the smart border mixin\n  --grav-co-transparent: transparent;\n}\n","////\n/// Functions and mixins for working with color schemes.\n///\n/// @group  colors\n////\n\n// ---- Internal helper functions ----\n\n/// Retrieves the color scheme map associated with a given name.\n///\n/// The color scheme names must be taken from the ones provided by the\n/// `@buildit/gravity-particles` package.\n///\n/// @param {string} $scheme-name - The name of the color scheme to retrieve.\n///\n/// @return {color scheme map} A color scheme map.\n///\n/// @throw Throws an error message if the color scheme name is not valid.\n///\n/// @access private\n@function grav-color-scheme-map($scheme-name) {\n  @if (not map-has-key($grav-co-schemes, $scheme-name)) {\n    @error 'Color scheme #{$scheme-name} not found';\n  }\n  @return map-get($grav-co-schemes, $scheme-name);\n}\n\n/// Generates a Gravity color scheme utility class selector.\n///\n/// @param {string} $suffix - The suffix to append to the CSS class selector.\n///\n/// @return {string} A CSS class selector.\n///\n/// @access private\n@function grav-color-scheme-class-selector($suffix) {\n  @return '.grav-u-color-scheme-#{$suffix}';\n}\n\n/// Checks the validity of a color group name and errors if\n/// it is invalid.\n///\n/// Only `a` and `b` are valid group names.\n///\n/// @param {string} $group - The group name to check.\n///\n/// @return {boolean} `true` if the group name is valid.\n///\n/// @throw Throws an error message if the color group name is not valid.\n///\n/// @access private\n@function grav-is-valid-color-scheme-group($group) {\n  $valid-groups: ('a', 'b');\n\n  @if not index($valid-groups, $group) {\n    @error '\"#{$group}\" is not a valid color group name.';\n    @return false;\n  }\n  @else {\n    @return true;\n  }\n}\n\n/// Retrieves a group of color purposes from a color scheme.\n///\n/// @param {string} $scheme-name - The name of the color scheme.\n/// @param {string} $group - The group to retrieve (must be `a` or `b`).\n///\n/// @return {color group map} A color scheme group map.\n///\n/// @access private\n@function grav-color-scheme-group($scheme-name, $group) {\n  @if grav-is-valid-color-scheme-group($group) {\n    $color-scheme-map: grav-color-scheme-map($scheme-name);\n    $group-key: 'group-#{$group}';\n    @return map-get($color-scheme-map, $group-key);\n  }\n}\n\n\n// ---- Public API ----\n\n/// Returns the CSS custom property name of a given color purpose.\n///\n/// @param {string} $group - The color purpose's group name.\n/// @param {string} $purpose - One of the Gravity color purpose names.\n///\n/// @return {string} A CSS custom property name.\n@function grav-color-css-prop-name($group, $purpose) {\n  @if grav-is-valid-color-scheme-group($group) {\n    @return --grav-co-grp-#{$group}-#{$purpose};\n  }\n}\n\n/// Returns the default color scheme's color value for a given group's color purpose.\n///\n/// @param {string} $group - The color purpose's group name.\n/// @param {string} $purpose - One of the color purpose names.\n///\n/// @return {color value} The default scheme's color value for the given group A purpose.\n@function grav-color-default-value($group, $purpose) {\n  $group: grav-color-scheme-group($grav-co-scheme-default-name, $group);\n  @return map-get($group, $purpose);\n}\n\n\n/// Outputs CSS custom property definitions for a color scheme.\n///\n/// @param {string} $scheme-name - The name of the color scheme that should be used.\n/// @param {string} $dark-scheme-name - An optional 2nd color scheme that will be used when the user has enabled dark mode.\n@mixin grav-color-scheme-props($scheme-name, $dark-scheme-name: false) {\n  $groups: ('a', 'b');\n\n  @each $group in $groups {\n    @each $purpose, $color-value in grav-color-scheme-group($scheme-name, $group) {\n      #{grav-color-css-prop-name($group, $purpose)}: $color-value;\n    }\n  }\n\n  // Add optional overrides for users who have enabled their\n  // OS's \"dark mode\" or equivalent\n  @if ($dark-scheme-name != false) {\n    @media (prefers-color-scheme: dark) {\n      @each $group in $groups {\n        @each $purpose, $color-value in grav-color-scheme-group($dark-scheme-name, $group) {\n          #{grav-color-css-prop-name($group, $purpose)}: $color-value;\n        }\n      }\n    }\n  }\n}\n\n/// Applies a color purpose value to the given CSS property.\n///\n/// @param {string} $css-property - The CSS property that the color shoud be applied to.\n/// @param {string} $group - The color purpose's group name.\n/// @param {string} $purpose - One of the Gravity group A color purposes.\n/// @param {boolean} $use-fallback [true] - If `true`, the default color scheme's color value will be\n///         set first as a fallback for older browsers that do not support CSS custom\n///         properties. Otherwise, only the CSS custom property value will be used.\n@mixin grav-color-apply($css-property, $group, $purpose, $use-fallback: true) {\n  @if $use-fallback {\n    #{$css-property}: grav-color-default-value($group, $purpose);\n  }\n  #{$css-property}: var(#{grav-color-css-prop-name($group, $purpose)});\n}\n\n/// Sets the `color` and `background-color` to the `neutral` colors of group A and B\n/// respectively.\n///\n/// Color scheme classes must always do this to visually \"apply\" the new color scheme\n/// to the element they are set on.\n///\n/// @param {boolean} $use-fallback [false] - If `true`, the default color scheme's color values\n///         will be set first as a fallback for older browsers that do not support CSS custom\n///         properties. Otherwise, only the CSS custom property value will be used.\n@mixin grav-color-scheme-apply($use-fallback: false) {\n  @include grav-color-apply('background', 'a', 'neutral', $use-fallback);\n  @include grav-color-apply('color', 'b', 'neutral', $use-fallback);\n}\n\n/// Defines a color scheme CSS utility class.\n///\n/// A color scheme class will do the following:\n///\n/// - Set `background-color` to the color scheme's group A `neutral` color value.\n/// - Set `color` to the color scheme's group B `neutral` color value.\n/// - Sets the values of all color purpose CSS custom properties.\n///\n/// In effect, the element the class is applied and all its children will have their\n/// colors changed as per what the color scheme defines.\n///\n/// @param {string} $class-suffix - The suffix that will be appended to the generated class name.\n/// @param {string} $scheme-name - Optional name of the color scheme that should be used. If omitted, the\n///         `$class-suffix` will be used as the color scheme name.\n/// @param {string} $dark-scheme-name - An optional 2nd color scheme that will be used when the user has\n///         enabled dark mode.\n@mixin grav-color-scheme-define-class($class-suffix, $scheme-name: false, $dark-scheme-name: false) {\n  @if ($scheme-name == false) {\n    // If no color scheme name was explicitly set, we make it\n    // the same as the class name suffix\n    $scheme-name: $class-suffix;\n  }\n\n  #{grav-color-scheme-class-selector($class-suffix)} {\n    @include grav-color-scheme-props($scheme-name, $dark-scheme-name);\n    @include grav-color-scheme-apply;\n  }\n}\n","\n\n\n$grav-co-schemes: (\n  \n  'buildit-black-red': (\n    'group-a': (\n      'neutral': #000000,\n      'neutral-alt': #000000,\n      'accent': #000000,\n      'accent-success': #000000,\n      'accent-attention': #000000,\n      'accent-danger': #000000,\n    ),\n\n    'group-b': (\n      'neutral': #ebecef,\n      'neutral-subtle': #c3c7ce,\n      'neutral-emphasis': #ffffff,\n      'control': #ebecef,\n      'control-alt': #b433e2,\n      'control-emphasis': #ff3f00,\n      'control-active': #ff663b,\n      'control-disabled': #878e9d,\n      'accent': #ff3f00,\n      'accent-success': #00c76a,\n      'accent-attention': #ffa719,\n      'accent-danger': #ff2552,\n    )\n  ),\n  \n  'buildit-dark-red': (\n    'group-a': (\n      'neutral': #061434,\n      'neutral-alt': #000000,\n      'accent': #061434,\n      'accent-success': #061434,\n      'accent-attention': #061434,\n      'accent-danger': #061434,\n    ),\n\n    'group-b': (\n      'neutral': #ffffff,\n      'neutral-subtle': #ebecef,\n      'neutral-emphasis': #ffffff,\n      'control': #ffffff,\n      'control-alt': #c766e9,\n      'control-emphasis': #ff3f00,\n      'control-active': #ff663b,\n      'control-disabled': #878e9d,\n      'accent': #ff3f00,\n      'accent-success': #00c76a,\n      'accent-attention': #ffa719,\n      'accent-danger': #ff5173,\n    )\n  ),\n  \n  'buildit-dark': (\n    'group-a': (\n      'neutral': #061434,\n      'neutral-alt': #000000,\n      'accent': #061434,\n      'accent-success': #061434,\n      'accent-attention': #061434,\n      'accent-danger': #061434,\n    ),\n\n    'group-b': (\n      'neutral': #ffffff,\n      'neutral-subtle': #ebecef,\n      'neutral-emphasis': #ffffff,\n      'control': #ffffff,\n      'control-alt': #c766e9,\n      'control-emphasis': #74a2fc,\n      'control-active': #98a5e5,\n      'control-disabled': #878e9d,\n      'accent': #4382fb,\n      'accent-success': #00c76a,\n      'accent-attention': #ffa719,\n      'accent-danger': #ff5173,\n    )\n  ),\n  \n  'buildit-white': (\n    'group-a': (\n      'neutral': #ffffff,\n      'neutral-alt': #f2f7ff,\n      'accent': #ffffff,\n      'accent-success': #ccf4e1,\n      'accent-attention': #ffedd1,\n      'accent-danger': #ffffff,\n    ),\n\n    'group-b': (\n      'neutral': #000000,\n      'neutral-subtle': #061434,\n      'neutral-emphasis': #000000,\n      'control': #000000,\n      'control-alt': #8100af,\n      'control-emphasis': #0060ff,\n      'control-active': #0000c8,\n      'control-disabled': #697184,\n      'accent': #0060ff,\n      'accent-success': #000000,\n      'accent-attention': #000000,\n      'accent-danger': #cc1e42,\n    )\n  ),\n  \n  'teal-black': (\n    'group-a': (\n      'neutral': #000000,\n      'neutral-alt': #262626,\n      'accent': #000000,\n      'accent-success': #000000,\n      'accent-attention': #000000,\n      'accent-danger': #000000,\n    ),\n\n    'group-b': (\n      'neutral': #cccccc,\n      'neutral-subtle': #999999,\n      'neutral-emphasis': #e6e6e6,\n      'control': #cccccc,\n      'control-alt': #b69cca,\n      'control-emphasis': #00b49d,\n      'control-active': #50c0ad,\n      'control-disabled': #999999,\n      'accent': #00b49d,\n      'accent-success': #b6d772,\n      'accent-attention': #ffd27c,\n      'accent-danger': #f15b46,\n    )\n  ),\n  \n  'teal-dark-gray': (\n    'group-a': (\n      'neutral': #404040,\n      'neutral-alt': #404040,\n      'accent': #4d4848,\n      'accent-success': #4d4848,\n      'accent-attention': #4d4848,\n      'accent-danger': #4d4848,\n    ),\n\n    'group-b': (\n      'neutral': #e6e6e6,\n      'neutral-subtle': #cccccc,\n      'neutral-emphasis': #ffffff,\n      'control': #e6e6e6,\n      'control-alt': #d6c9e3,\n      'control-emphasis': #82cdbf,\n      'control-active': #acdcd2,\n      'control-disabled': #b3b3b3,\n      'accent': #82cdbf,\n      'accent-success': #c7df94,\n      'accent-attention': #ffdfa4,\n      'accent-danger': #f9ac90,\n    )\n  ),\n  \n  'teal-white': (\n    'group-a': (\n      'neutral': #ffffff,\n      'neutral-alt': #f1f1f1,\n      'accent': #ffffff,\n      'accent-success': #eaf3d8,\n      'accent-attention': #ffdfa4,\n      'accent-danger': #fdd4c2,\n    ),\n\n    'group-b': (\n      'neutral': #404040,\n      'neutral-subtle': #4d4848,\n      'neutral-emphasis': #404040,\n      'control': #4d4848,\n      'control-alt': #6f2c91,\n      'control-emphasis': #007c6c,\n      'control-active': #005c50,\n      'control-disabled': #666666,\n      'accent': #007c6c,\n      'accent-success': #4d4848,\n      'accent-attention': #4d4848,\n      'accent-danger': #4d4848,\n    )\n  ),\n  \n);\n","// Setting global typography defaults\n\n* {\n  // Text rendering tweaks (formerly came from Gravy lib)\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n\n  line-height: inherit;\n\n  // Text rendering tweaks (formerly came from Gravy lib)\n  text-rendering: optimizeLegibility;\n}\n\n\n:root {\n  // Generate a set of CSS custom properties for our\n  // scale of repsonsive font-sizes. These will all\n  // be rem values:\n  @for $i from $grav-scale-min through $grav-scale-max {\n    @include ms-respond(grav-font-size-css-propname($i), $i);\n  }\n\n  font-family: grav-font-family-stack('primary');\n  line-height: $grav-line-height;\n  -webkit-text-size-adjust: 100%; /* stylelint-disable-line property-no-vendor-prefix */\n}\n\nbody {\n  // Set default font-size on body for everything else to inherit.\n  // Note: We intentionally do *not* set this on :root, as that seems to interfere\n  // with the fluid text sizing.\n  @include grav-font-size(0);\n}\n","// Generate calc() function\n// based on Mike Riethmuller's Precise control over responsive typography\n// http://madebymike.com.au/writing/precise-control-responsive-typography/\n@function ms-fluid($val1: 1em, $val2: 1em, $break1: 0, $break2: 0) {\n  $diff: ms-unitless($val2) - ms-unitless($val1);\n\n  // v1 + (v2 - v1) * ( (100vw - b1) / b2 - b1 )\n  @return calc( #{$val1} + #{ms-unitless($val2) - ms-unitless($val1)} * ( ( 100vw - #{$break1}) / #{ms-unitless($break2) - ms-unitless($break1)} ) );\n}\n\n// Main responsive mixin\n@mixin ms-respond($prop, $val, $map: $modularscale, $ms-important: false) {\n  $base: $ms-base;\n  $ratio: $ms-ratio;\n\n  $first-write: true;\n  $last-break: null;\n\n  $important: '';\n\n  @if $ms-important == true {\n    $important: ' !important';\n  }\n\n  // loop through all settings with a breakpoint type value\n  @each $v, $s in $map {\n    @if type-of($v) == number {\n      @if unit($v) != '' {\n\n        // Write out the first value without a media query.\n        @if $first-write {\n          #{$prop}: unquote(\"#{ms-function($val, $thread: $v, $settings: $map)}#{$important}\");\n\n          // Not the first write anymore, reset to false to move on.\n          $first-write: false;\n          $last-break: $v;\n        }\n\n        // Write intermediate breakpoints.\n        @else {\n          @media (min-width: $last-break) and (max-width: $v) {\n            $val1: ms-function($val, $thread: $last-break, $settings: $map);\n            $val2: ms-function($val, $thread: $v, $settings: $map);\n            #{$prop}: unquote(\"#{ms-fluid($val1,$val2,$last-break,$v)}#{$important}\");\n          }\n          $last-break: $v;\n        }\n      }\n    }\n  }\n\n  // Write the last breakpoint.\n  @if $last-break {\n    @media (min-width: $last-break) {\n      #{$prop}: unquote(\"#{ms-function($val, $thread: $last-break, $settings: $map)}#{$important}\");\n    }\n  }\n}","////\n/// Typography-related functions and mixins\n///\n/// @group typography\n////\n\n// ---- Private helpers -----\n\n/// Returns a given typeface's map\n///\n/// @param {string} $name - One of the typeface names defined\n///             in the `$grav-typefaces` map.\n/// @return {map} A map of the typeface's details.\n///\n/// @access private\n@function grav-typeface($name) {\n  @if (not map-has-key($grav-typefaces, $name)) {\n    @error ('Typeface with name \"#{$name}\" not found');\n  }\n\n  @return map-get($grav-typefaces, $name);\n}\n\n/// Returns the CSS `font-weight` value for a given typeface and weight.\n///\n/// @param {string} $name - One of the typeface names defined\n///             in the `$grav-typefaces` map.\n/// @param {string} $weight - One of the typeface's weight names.\n/// @return {string} The typeface's CSS `font-weight`.\n///\n/// @access private\n@function grav-font-weight($name, $weight) {\n  $typeface: grav-typeface($name);\n\n  @if (not map-has-key($typeface, 'weights')) {\n    @error ('Typeface \"#{$name}\" has no weights defined');\n  }\n\n  $weights: map-get($typeface, 'weights');\n\n  @if (not map-has-key($weights, $weight)) {\n    @error ('Typeface \"#{$name}\" has no weight called \"#{$weight}\".');\n  }\n\n  @return map-get($weights, $weight);\n}\n\n/// Returns font-size CSS custom property name suffix for\n/// a given point on our modular scale.\n///\n/// @param {number} $scale - A point on Gravity's typographic scale.\n/// @return {string} The corresponding CSS custom property name suffix.\n///\n/// @access private\n@function grav-font-size-varname-suffix($scale) {\n  @if ($scale < $grav-scale-min) or ($scale > $grav-scale-max) {\n    @error '#{$scale} is not a valid point on Gravity\\'s typographic scale. Values must be in the range from #{$grav-scale-min} to #{$grav-scale-max}.';\n  }\n\n  @if $scale < 0 {\n    @return 'minus-#{abs($scale)}';\n  }\n\n  @else if $scale>0 {\n    @return 'plus-#{$scale}';\n  }\n\n  @else {\n    // No need to use the mixin, this will always be\n    // 1rem\n    // --grav-fs-base: 1rem;\n    @return 'base';\n  }\n}\n\n\n// ---- Public API -----\n\n/// Returns the CSS `font-family` stack for the given typeface.\n///\n/// Intended to be used when setting `font-family` in your CSS code.\n///\n/// @param {string} $name - One of Gravity's typeface names. Supported\n///             values are: `primary` and `mono`.\n/// @return {list} The typeface's CSS font stack.\n@function grav-font-family-stack($name) {\n  $typeface: grav-typeface($name);\n\n  @if (not map-has-key($typeface, 'stack')) {\n    @error ('Typeface \"#{$name}\" has no font stack defined');\n  }\n\n  @return map-get($typeface, 'stack');\n}\n\n/// Returns the full `font-size` CSS property name for\n/// a given point on our modular scale.\n///\n/// @param {number} $scale - A point on Gravity's typographic scale.\n/// @return {string} The corresponding CSS custom property name.\n@function grav-font-size-css-propname($scale) {\n  @return --grav-fs-#{grav-font-size-varname-suffix($scale)};\n}\n\n\n/// Mixin for setting the font-size at a given point\n/// on our modular scale.\n///\n/// @param {number} $scale - A point on Gravity's typographic scale.\n@mixin grav-font-size($scale) {\n  font-size: var(#{grav-font-size-css-propname($scale)});\n}\n","/**\n  Some low-specifity defaults inspired by Heydon Pickering's Aximoatic CSS\n\n  * https://alistapart.com/article/axiomatic-css-and-lobotomized-owls\n  * https://www.smashingmagazine.com/2016/11/css-inheritance-cascade-global-scope-new-old-worst-best-friends/\n*/\n\n\n* {\n  // Zero any margins coming from user-agent stylesheets\n  margin: 0;\n\n  box-sizing: border-box;\n\n  // Make everything inherit key typography properties by default\n  color: inherit; // Note, border-color defaults to this too, unless overridden\n  font-family: inherit;\n}\n\n// Default vertical margin *between* block elements\n* + * {\n  margin-top: $grav-sp-vertical-gap;\n}\n\n// Exceptions to the * + * rule\nbody,\nbr,\ndt + dt,\ndd,\nth,\ntd,\noption {\n  margin-top: 0;\n}\n","////\n/// Space values to be used for margins, paddings, etc.\n///\n/// Inspired by posts like:\n/// * https://medium.com/eightshapes-llc/space-in-design-systems-188bcbae0d62\n///\n///\n/// @group space\n////\n\n/// Calculates a length on Gravity's spacing scale.\n///\n/// This is just a local helper function and not intended to be\n/// used outside of this file.\n///\n/// @param {number} $n - The point on Gravity's spacing scale.\n/// @return {length value} The corresponding size from Gravity's spacing scale.\n///\n/// @access private\n@function grav-sp-calc($n) {\n  $space-base-size: 1rem;\n  $space-multiplier: 1.3;\n\n  $result: $space-base-size;\n\n  @if $n>0 {\n    @for $i from 1 through $n {\n      $result: $result * $space-multiplier;\n    }\n  }\n\n  @else if $n < 0 {\n    @for $i from $n through -1 {\n      $result: $result / $space-multiplier;\n    }\n  }\n\n  @return $result;\n}\n\n\n/* Global set of one-dimensional space sizes */\n\n/// Extra small space size.\n///\n/// @type length value\n$grav-sp-xs: grav-sp-calc(-2);\n\n/// Small space size.\n///\n/// @type length value\n$grav-sp-s: grav-sp-calc(-1);\n\n/// Medium space size.\n///\n/// @type length value\n$grav-sp-m: grav-sp-calc(0);\n\n/// Large space size.\n///\n/// @type length value\n$grav-sp-l: grav-sp-calc(1);\n\n/// Extra large space size.\n///\n/// @type length value\n$grav-sp-xl: grav-sp-calc(2);\n\n/// Extra extra large space size.\n///\n/// @type length value\n$grav-sp-xxl: grav-sp-calc(3);\n\n\n/// Global map of one-dimensional space sizes, plus zero\n///\n/// These are the same values as the corresponding `$grav-sp-*`\n/// variables. This map is for situations where you need to\n/// iterate over the available space values.\n///\n/// @type map\n$grav-sp-map: ('none': 0,\n'xs': $grav-sp-xs,\n's': $grav-sp-s,\n'm': $grav-sp-m,\n'l': $grav-sp-l,\n'xl': $grav-sp-xl,\n'xxl': $grav-sp-xxl);\n\n// Global set of two-dimensional insets (typically used as padding values)\n\n/// Extra small inset.\n///\n/// Intended to be used as a value for the CSS `padding` shorthand property.\n/// Creates an even inset on all sides.\n///\n/// @type length value list\n$grav-sp-inset-xs: $grav-sp-xs $grav-sp-xs;\n\n/// Small inset.\n///\n/// Intended to be used as a value for the CSS `padding` shorthand property.\n/// Creates an even inset on all sides.\n///\n/// @type length value list\n$grav-sp-inset-s: $grav-sp-s $grav-sp-s;\n\n/// Medium inset.\n///\n/// Intended to be used as a value for the CSS `padding` shorthand property.\n/// Creates an even inset on all sides.\n///\n/// @type length value list\n$grav-sp-inset-m: $grav-sp-m $grav-sp-m;\n\n/// Large inset.\n///\n/// Intended to be used as a value for the CSS `padding` shorthand property.\n/// Creates an even inset on all sides.\n///\n/// @type length value list\n$grav-sp-inset-l: $grav-sp-l $grav-sp-l;\n\n/// Extra small squished inset.\n///\n/// Intended to be used as a value for the CSS `padding` shorthand property.\n/// Creates an inset that is wider horizontally than it is vertically. Good\n/// for inline block elements and components like buttons, chips, etc.\n///\n/// @type length value list\n$grav-sp-inset-squished-xs: $grav-sp-xs $grav-sp-s;\n\n/// Small squished inset.\n///\n/// Intended to be used as a value for the CSS `padding` shorthand property.\n/// Creates an inset that is wider horizontally than it is vertically. Good\n/// for inline block elements and components like buttons, chips, etc.\n///\n/// @type length value list\n$grav-sp-inset-squished-s: $grav-sp-s $grav-sp-m;\n\n/// Medium squished inset.\n///\n/// Intended to be used as a value for the CSS `padding` shorthand property.\n/// Creates an inset that is wider horizontally than it is vertically. Good\n/// for inline block elements and components like buttons, chips, etc.\n///\n/// @type length value list\n$grav-sp-inset-squished-m: $grav-sp-m $grav-sp-l;\n\n/// Large squished inset.\n///\n/// Intended to be used as a value for the CSS `padding` shorthand property.\n/// Creates an inset that is wider horizontally than it is vertically. Good\n/// for inline block elements and components like buttons, chips, etc.\n///\n/// @type length value list\n$grav-sp-inset-squished-l: $grav-sp-l $grav-sp-xl;\n\n/// Outer horizontal margin between page content and viewport edge on narrow\n/// viewports.\n///\n/// @type length value\n$grav-sp-page-content-inset: $grav-sp-m;\n\n/// Multiplier for ostentatious copy on `medium` and above viewports.\n///\n/// @type number\n$grav-sp-ostentatious-padding-left-multiplier: 8;\n\n/// Standard vertical gap between successive block elements.\n///\n/// Note that is expressed as an `em` value, so it will scale according to the\n/// `font-size` of the block elements it affects.\n///\n/// @type length value\n$grav-sp-vertical-gap: 0.75em;\n\n/// Larger vertical gap for use on specific block elements.\n///\n/// Note that is expressed as an `em` value, so it will scale according to the\n/// `font-size` of the block elements it affects.\n///\n/// @type length value\n$grav-sp-vertical-gap-l: 1.5em;\n","////\n/// @group layout\n////\n\n/// Turns an element into a page content container.\n///\n/// Page containers are intended to wrap top-level page sections. On narrow\n/// viewports they create small margin (`$grav-sp-page-content-inset`) to the left and right,\n/// to ensure that content within does not touch the edges of the viewport. The content area\n/// will the expand horizontally until its width is `$grav-page-content-max-width`, at which\n/// point it stops expanding and will be horizontally centered if the viewport is even wider.\n///\n/// @param {boolean} $no-margin [false] - If set to `true`, the page content container will be not\n///     have outer margins on narrow viewports (\"full-bleed\" in other words) and expand up\n///     the width of the `extra-large` breakpoint and then stop and be centered on the page.\n///\n@mixin grav-l-container($no-margin: false) {\n  max-width: $grav-page-content-max-width;\n\n  @if ($no-margin) {\n    width: 100%;\n  }\n  @else {\n    width: calc(100% - #{2 * $grav-sp-page-content-inset});\n    margin-right: $grav-sp-page-content-inset;\n    margin-left: $grav-sp-page-content-inset;\n  }\n\n  // IE10+ bug that happens when using margin: auto\n  // to fill all the available space between flex items.\n  // More info: https://github.com/philipwalton/flexbugs#flexbug-15\n  @media (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    @media (min-width: grav-breakpoint(extra-large)) {\n      align-self: center;\n    }\n  }\n\n  @media (min-width: grav-breakpoint(extra-large)) {\n    margin-right: auto;\n    margin-left: auto;\n  }\n}\n","////\n/// @group  layout\n////\n\n/// The maximum width of the page content.\n///\n/// @type length value\n$grav-page-content-max-width: $grav-breakpoint-largest - 2 * $grav-sp-page-content-inset;\n","////\n/// @group layout\n////\n\n/// Turns an element into a sticky footer container.\n///\n/// A \"sticky footer\" is a page footer that \"sticks\" to the bottom\n/// of the viewport on short pages that don't have enough content to\n/// naturally push the footer down to the bottom of the viewport or\n/// beyond. Without the \"sticky footer\" effect, the page footer\n/// would just appear immediately after any preceding content and leave\n/// an empty space below it.\n///\n/// This mixin should be applied to whatever element is a direct parent\n/// of the page footer.\n///\n/// It words by setting the `min-height` of the container to be the height\n/// of the viewport (unless you provide a different value) and turning it\n/// into a column flexbox. Then, an `::after` pseudo element is inserted and\n/// positioned _before_ the page footer (which is assumed to tbe the last\n/// visible element within the container). This pseudo element has a\n/// `margin-top: auto;` which, in a flexbox context, will expand to fill any\n/// excess space. So, if there is excess space in the container, this will\n/// fill it up and push the subsequent page footer downwards so that it is\n/// flush with the bottom of the container.\n///\n/// @param {length} $min-height [100vh] - The `min-height` to set on the\n///           container.\n@mixin grav-sticky-footer($min-height: 100vh) {\n  // An order value that should be high enough\n  // to always place items to the end of a flexbox\n  $last-order: 100;\n\n  display: flex;\n  min-height: $min-height;\n  flex-direction: column;\n\n  &::after {\n    content: '';\n    display: block;\n    height: 0;\n    margin-top: auto; // Expands to fill any excess space\n    order: $last-order;\n  }\n\n  // Move footer after the pseudo element\n  > footer {\n    order: $last-order + 1;\n  }\n  @at-root .grav-c-page-footer {\n    order: $last-order + 1;\n  }\n}\n","body {\n  @include grav-l-container;\n  @if $grav-config-body-sticky-footer {\n    @include grav-sticky-footer;\n  }\n\n  padding-top: $grav-sp-page-content-inset;\n  padding-bottom: $grav-sp-page-content-inset;\n}\n","a[href] {\n  &:link {\n    @include grav-color-apply('color', 'b', 'control');\n  }\n\n  &:visited {\n    @include grav-color-apply('color', 'b', 'control-alt');\n  }\n\n  &:hover,\n  &:focus {\n    @include grav-color-apply('color', 'b', 'control-emphasis');\n  }\n\n  &:active {\n    @include grav-color-apply('color', 'b', 'control-active');\n  }\n}\n\nb,\nstrong {\n  font-weight: grav-font-weight('primary', 'bold');\n}\n\ncode,\nkbd,\nsamp {\n  font-family: grav-font-family-stack('mono');\n}\n\nmark {\n  @include grav-color-apply('color', 'a', 'accent-attention');\n  @include grav-color-apply('background-color', 'b', 'accent-attention');\n}\n\ncite {\n  @include grav-font-size(-2);\n  @include grav-color-apply('color', 'b', 'neutral-subtle');\n  font-style: normal;\n}\n","pre {\n  font-family: grav-font-family-stack('mono');\n  overflow: scroll;\n}\n\nblockquote {\n  @include grav-font-size(3);\n  margin-top: $grav-sp-vertical-gap-l;\n  margin-bottom: $grav-sp-vertical-gap-l;\n}\n\nhr {\n  @include grav-font-size(3);\n  margin-top: $grav-sp-vertical-gap-l;\n}\n\nfigcaption {\n  @include grav-font-size(-2);\n  @include grav-color-apply('color', 'b', 'neutral-subtle');\n  font-style: normal;\n}\n","h1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  font-weight: grav-font-weight('primary', 'bold');\n  letter-spacing: -0.025em;\n  line-height: $grav-line-height-title;\n}\n\nh1 {\n  @include grav-font-size(6);\n}\n\nh2 {\n  @include grav-font-size(5);\n}\n\nh3 {\n  @include grav-font-size(4);\n}\n\nh4 {\n  @include grav-font-size(3);\n}\n\nh5 {\n  @include grav-font-size(2);\n}\n\nh6 {\n  @include grav-font-size(1);\n}\n","img,\nsvg {\n  max-width: 100%;\n  height: auto;\n}\n\n\npicture {\n  // Avoid slight gap below <img> when the\n  // <picture> is display:block due to <img>\n  // being display:inline by default.\n  // (The <img> is aligned with baseline, not\n  // the bottom of the text box)\n  display: inline-block;\n\n  > img {\n    display: block;\n\n    // Avoid <img> inside <picture> having\n    // top margin applied by the * + * rule\n    margin-top: 0;\n  }\n}\n\n\n// Set default fill for inlineed SVGs.\nsvg {\n  fill: currentColor;\n}\n\n/*\n  To enable recolouring of SVG symbols that get pulled in\n  via <use> we have to use CSS custom properties. This is\n  because the original SVG is essentially cloned into a\n  shadow DOM of the parent <svg> and so, you can't select\n  elements within it via CSS selectors. However, some\n  values including custom properties are inherited across\n  the shadow DOM boundary.\n*/\n// The following class names are defined in the source SVGs\n// provided by Gravity Particles and thus deviate from our\n// usual class-naming conventions:\n// stylelint-disable selector-class-pattern\n.grav-svg-hl-1 {\n  fill: var(--grav-co-svg-hl-1, currentColor);\n}\n\n.grav-svg-hl-2 {\n  fill: var(--grav-co-svg-hl-2, currentColor);\n}\n\n.grav-svg-hl-3 {\n  fill: var(--grav-co-svg-hl-3, currentColor);\n}\n// stylelint-enable selector-class-pattern\n","table {\n  width: 100%;\n  border-collapse: collapse;\n}\n\nth {\n  font-weight: grav-font-weight('primary', 'bold');\n}\n\nth,\ntd {\n  padding: $grav-sp-inset-squished-s;\n  border-width: $grav-st-thickness;\n  border-style: $grav-st-style;\n}\n","////\n/// Stroke thicknesses and styles used for borders.\n///\n/// @group strokes\n////\n\n/// The default border style.\n$grav-st-style: solid;\n\n// Can't use grav-px2rem() function here because it gets\n// defined later, in the tools\n\n/// The default (small) border thickness.\n///\n/// @type length value\n$grav-st-thickness: 1 / 16 * 1rem; // 1px\n\n/// Medium border thickness.\n///\n/// @type length value\n$grav-st-thickness-medium: 2 / 16 * 1rem; // 2px\n\n/// Large border thickness.\n///\n/// @type length value\n$grav-st-thickness-large: 5 / 16 * 1rem; // 5px\n\n","/**\n  Import all SASS partials that make up Gravity's UI library\n\n  Partials are organised as per Harry Roberts' ITCSS architecture.\n  See: https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/\n*/\n/* stylelint-disable scss/dollar-variable-pattern */\n/* stylelint-enable scss/dollar-variable-pattern */\n/* Global set of one-dimensional space sizes */\n@font-face {\n  font-family: \"Helvetica Neue\";\n  font-style: normal;\n  font-weight: 300;\n  src: local(\"HelveticaNeueLTStd-UltLt\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-UltLt.woff2\") format(\"woff2\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-UltLt.woff\") format(\"woff\"); }\n\n@font-face {\n  font-family: \"Helvetica Neue\";\n  font-style: italic;\n  font-weight: 300;\n  src: local(\"HelveticaNeueLTStd-UltLtIt\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-UltLtIt.woff2\") format(\"woff2\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-UltLtIt.woff\") format(\"woff\"); }\n\n@font-face {\n  font-family: \"Helvetica Neue\";\n  font-style: normal;\n  font-weight: 400;\n  src: local(\"HelveticaNeueLTStd-Md\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-Md.woff2\") format(\"woff2\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-Md.woff\") format(\"woff\"); }\n\n@font-face {\n  font-family: \"Helvetica Neue\";\n  font-style: italic;\n  font-weight: 400;\n  src: local(\"HelveticaNeueLTStd-MdIt\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-MdIt.woff2\") format(\"woff2\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-MdIt.woff\") format(\"woff\"); }\n\n@font-face {\n  font-family: \"Helvetica Neue\";\n  font-style: normal;\n  font-weight: 900;\n  src: local(\"HelveticaNeueLTStd-Blk\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-Blk.woff2\") format(\"woff2\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-Blk.woff\") format(\"woff\"); }\n\n@font-face {\n  font-family: \"Helvetica Neue\";\n  font-style: italic;\n  font-weight: 900;\n  src: local(\"HelveticaNeueLTStd-BlkIt\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-BlkIt.woff2\") format(\"woff2\"), url(\"https://static.buildit.digital/fonts/v1.0.0/HelveticaNeueLTStd-BlkIt.woff\") format(\"woff\"); }\n\n@font-face {\n  font-family: \"Wipro Akkurat Mono TT\";\n  font-style: normal;\n  font-weight: normal;\n  src: local(\"WiproAkkuratMonoTT-Regular\"), url(\"https://static.buildit.digital/fonts/v1.0.0/WiproAkkuratMonoWeb-Regular.woff2\") format(\"woff2\"), url(\"https://static.buildit.digital/fonts/v1.0.0/WiproAkkuratMonoWeb-Regular.woff\") format(\"woff\"); }\n\n:root {\n  --grav-co-grp-a-neutral: #ffffff;\n  --grav-co-grp-a-neutral-alt: #f2f7ff;\n  --grav-co-grp-a-accent: #ffffff;\n  --grav-co-grp-a-accent-success: #ccf4e1;\n  --grav-co-grp-a-accent-attention: #ffedd1;\n  --grav-co-grp-a-accent-danger: #ffffff;\n  --grav-co-grp-b-neutral: #000000;\n  --grav-co-grp-b-neutral-subtle: #061434;\n  --grav-co-grp-b-neutral-emphasis: #000000;\n  --grav-co-grp-b-control: #000000;\n  --grav-co-grp-b-control-alt: #8100af;\n  --grav-co-grp-b-control-emphasis: #0060ff;\n  --grav-co-grp-b-control-active: #0000c8;\n  --grav-co-grp-b-control-disabled: #697184;\n  --grav-co-grp-b-accent: #0060ff;\n  --grav-co-grp-b-accent-success: #000000;\n  --grav-co-grp-b-accent-attention: #000000;\n  --grav-co-grp-b-accent-danger: #cc1e42;\n  background: #ffffff;\n  background: var(--grav-co-grp-a-neutral);\n  color: #000000;\n  color: var(--grav-co-grp-b-neutral);\n  --grav-co-transparent: transparent; }\n  @media (prefers-color-scheme: dark) {\n    :root {\n      --grav-co-grp-a-neutral: #061434;\n      --grav-co-grp-a-neutral-alt: #000000;\n      --grav-co-grp-a-accent: #061434;\n      --grav-co-grp-a-accent-success: #061434;\n      --grav-co-grp-a-accent-attention: #061434;\n      --grav-co-grp-a-accent-danger: #061434;\n      --grav-co-grp-b-neutral: #ffffff;\n      --grav-co-grp-b-neutral-subtle: #ebecef;\n      --grav-co-grp-b-neutral-emphasis: #ffffff;\n      --grav-co-grp-b-control: #ffffff;\n      --grav-co-grp-b-control-alt: #c766e9;\n      --grav-co-grp-b-control-emphasis: #ff3f00;\n      --grav-co-grp-b-control-active: #ff663b;\n      --grav-co-grp-b-control-disabled: #878e9d;\n      --grav-co-grp-b-accent: #ff3f00;\n      --grav-co-grp-b-accent-success: #00c76a;\n      --grav-co-grp-b-accent-attention: #ffa719;\n      --grav-co-grp-b-accent-danger: #ff5173; } }\n\n* {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  line-height: inherit;\n  text-rendering: optimizeLegibility; }\n\n:root {\n  --grav-fs-minus-2: 0.69444rem;\n  --grav-fs-minus-1: 0.83333rem;\n  --grav-fs-base: 1rem;\n  --grav-fs-plus-1: 1.2rem;\n  --grav-fs-plus-2: 1.44rem;\n  --grav-fs-plus-3: 1.728rem;\n  --grav-fs-plus-4: 2.0736rem;\n  --grav-fs-plus-5: 2.48832rem;\n  --grav-fs-plus-6: 2.98598rem;\n  font-family: \"Helvetica Neue\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", system-ui, sans-serif;\n  line-height: 1.414;\n  -webkit-text-size-adjust: 100%;\n  /* stylelint-disable-line property-no-vendor-prefix */ }\n  @media (min-width: 32rem) and (max-width: 75rem) {\n    :root {\n      --grav-fs-minus-2: calc( 0.69444rem + 0.10556 * ( ( 100vw - 32rem) / 43 )); } }\n  @media (min-width: 75rem) {\n    :root {\n      --grav-fs-minus-2: 0.8rem; } }\n  @media (min-width: 32rem) and (max-width: 75rem) {\n    :root {\n      --grav-fs-minus-1: calc( 0.83333rem + 0.16667 * ( ( 100vw - 32rem) / 43 )); } }\n  @media (min-width: 75rem) {\n    :root {\n      --grav-fs-minus-1: 1rem; } }\n  @media (min-width: 32rem) and (max-width: 75rem) {\n    :root {\n      --grav-fs-base: calc( 1rem + 0.25 * ( ( 100vw - 32rem) / 43 )); } }\n  @media (min-width: 75rem) {\n    :root {\n      --grav-fs-base: 1.25rem; } }\n  @media (min-width: 32rem) and (max-width: 75rem) {\n    :root {\n      --grav-fs-plus-1: calc( 1.2rem + 0.3625 * ( ( 100vw - 32rem) / 43 )); } }\n  @media (min-width: 75rem) {\n    :root {\n      --grav-fs-plus-1: 1.5625rem; } }\n  @media (min-width: 32rem) and (max-width: 75rem) {\n    :root {\n      --grav-fs-plus-2: calc( 1.44rem + 0.51313 * ( ( 100vw - 32rem) / 43 )); } }\n  @media (min-width: 75rem) {\n    :root {\n      --grav-fs-plus-2: 1.95312rem; } }\n  @media (min-width: 32rem) and (max-width: 75rem) {\n    :root {\n      --grav-fs-plus-3: calc( 1.728rem + 0.71341 * ( ( 100vw - 32rem) / 43 )); } }\n  @media (min-width: 75rem) {\n    :root {\n      --grav-fs-plus-3: 2.44141rem; } }\n  @media (min-width: 32rem) and (max-width: 75rem) {\n    :root {\n      --grav-fs-plus-4: calc( 2.0736rem + 0.97816 * ( ( 100vw - 32rem) / 43 )); } }\n  @media (min-width: 75rem) {\n    :root {\n      --grav-fs-plus-4: 3.05176rem; } }\n  @media (min-width: 32rem) and (max-width: 75rem) {\n    :root {\n      --grav-fs-plus-5: calc( 2.48832rem + 1.32638 * ( ( 100vw - 32rem) / 43 )); } }\n  @media (min-width: 75rem) {\n    :root {\n      --grav-fs-plus-5: 3.8147rem; } }\n  @media (min-width: 32rem) and (max-width: 75rem) {\n    :root {\n      --grav-fs-plus-6: calc( 2.98598rem + 1.78239 * ( ( 100vw - 32rem) / 43 )); } }\n  @media (min-width: 75rem) {\n    :root {\n      --grav-fs-plus-6: 4.76837rem; } }\n\nbody {\n  font-size: var(--grav-fs-base); }\n\n/**\n  Some low-specifity defaults inspired by Heydon Pickering's Aximoatic CSS\n\n  * https://alistapart.com/article/axiomatic-css-and-lobotomized-owls\n  * https://www.smashingmagazine.com/2016/11/css-inheritance-cascade-global-scope-new-old-worst-best-friends/\n*/\n* {\n  margin: 0;\n  box-sizing: border-box;\n  color: inherit;\n  font-family: inherit; }\n\n* + * {\n  margin-top: 0.75em; }\n\nbody,\nbr,\ndt + dt,\ndd,\nth,\ntd,\noption {\n  margin-top: 0; }\n\nbody {\n  max-width: 73rem;\n  width: calc(100% - 2rem);\n  margin-right: 1rem;\n  margin-left: 1rem;\n  display: flex;\n  min-height: 100vh;\n  flex-direction: column;\n  padding-top: 1rem;\n  padding-bottom: 1rem; }\n\n@media (-ms-high-contrast: none) and (min-width: 75rem), (-ms-high-contrast: active) and (min-width: 75rem) {\n  body {\n    align-self: center; } }\n  @media (min-width: 75rem) {\n    body {\n      margin-right: auto;\n      margin-left: auto; } }\n  body::after {\n    content: '';\n    display: block;\n    height: 0;\n    margin-top: auto;\n    order: 100; }\n  body > footer {\n    order: 101; }\n  .grav-c-page-footer {\n    order: 101; }\n\na[href]:link {\n  color: #000000;\n  color: var(--grav-co-grp-b-control); }\n\na[href]:visited {\n  color: #8100af;\n  color: var(--grav-co-grp-b-control-alt); }\n\na[href]:hover, a[href]:focus {\n  color: #0060ff;\n  color: var(--grav-co-grp-b-control-emphasis); }\n\na[href]:active {\n  color: #0000c8;\n  color: var(--grav-co-grp-b-control-active); }\n\nb,\nstrong {\n  font-weight: 900; }\n\ncode,\nkbd,\nsamp {\n  font-family: \"Wipro Akkurat Mono TT\", \"Akkurat Mono\", monospace; }\n\nmark {\n  color: #ffedd1;\n  color: var(--grav-co-grp-a-accent-attention);\n  background-color: #000000;\n  background-color: var(--grav-co-grp-b-accent-attention); }\n\ncite {\n  font-size: var(--grav-fs-minus-2);\n  color: #061434;\n  color: var(--grav-co-grp-b-neutral-subtle);\n  font-style: normal; }\n\npre {\n  font-family: \"Wipro Akkurat Mono TT\", \"Akkurat Mono\", monospace;\n  overflow: scroll; }\n\nblockquote {\n  font-size: var(--grav-fs-plus-3);\n  margin-top: 1.5em;\n  margin-bottom: 1.5em; }\n\nhr {\n  font-size: var(--grav-fs-plus-3);\n  margin-top: 1.5em; }\n\nfigcaption {\n  font-size: var(--grav-fs-minus-2);\n  color: #061434;\n  color: var(--grav-co-grp-b-neutral-subtle);\n  font-style: normal; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  font-weight: 900;\n  letter-spacing: -0.025em;\n  line-height: 1.025; }\n\nh1 {\n  font-size: var(--grav-fs-plus-6); }\n\nh2 {\n  font-size: var(--grav-fs-plus-5); }\n\nh3 {\n  font-size: var(--grav-fs-plus-4); }\n\nh4 {\n  font-size: var(--grav-fs-plus-3); }\n\nh5 {\n  font-size: var(--grav-fs-plus-2); }\n\nh6 {\n  font-size: var(--grav-fs-plus-1); }\n\nimg,\nsvg {\n  max-width: 100%;\n  height: auto; }\n\npicture {\n  display: inline-block; }\n  picture > img {\n    display: block;\n    margin-top: 0; }\n\nsvg {\n  fill: currentColor; }\n\n/*\n  To enable recolouring of SVG symbols that get pulled in\n  via <use> we have to use CSS custom properties. This is\n  because the original SVG is essentially cloned into a\n  shadow DOM of the parent <svg> and so, you can't select\n  elements within it via CSS selectors. However, some\n  values including custom properties are inherited across\n  the shadow DOM boundary.\n*/\n.grav-svg-hl-1 {\n  fill: var(--grav-co-svg-hl-1, currentColor); }\n\n.grav-svg-hl-2 {\n  fill: var(--grav-co-svg-hl-2, currentColor); }\n\n.grav-svg-hl-3 {\n  fill: var(--grav-co-svg-hl-3, currentColor); }\n\ntable {\n  width: 100%;\n  border-collapse: collapse; }\n\nth {\n  font-weight: 900; }\n\nth,\ntd {\n  padding: 0.76923rem 1rem;\n  border-width: 0.0625rem;\n  border-style: solid; }\n\n/* == Styles shared by all buttons == */\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"],\nbutton:not([type]) {\n  padding: 0.59172rem 0.76923rem;\n  cursor: pointer;\n  font-weight: 900; }\n  [type=\"button\"] > .grav-c-icon,\n  [type=\"reset\"] > .grav-c-icon,\n  [type=\"submit\"] > .grav-c-icon,\n  button:not([type]) > .grav-c-icon {\n    width: auto;\n    height: 1.414em;\n    margin-right: 0.59172rem;\n    vertical-align: top; }\n\n/* == Styles for specific kinds of buttons == */\n[type=\"button\"] {\n  border-color: #000000;\n  border-color: var(--grav-co-grp-b-control);\n  background-color: #ffffff;\n  background-color: var(--grav-co-grp-a-neutral);\n  color: #000000;\n  color: var(--grav-co-grp-b-control);\n  border-width: 0.0625rem;\n  border-style: solid; }\n  [type=\"button\"]:hover {\n    border-color: #0060ff;\n    border-color: var(--grav-co-grp-b-control-emphasis);\n    background-color: #ffffff;\n    background-color: var(--grav-co-grp-a-neutral);\n    color: #0060ff;\n    color: var(--grav-co-grp-b-control-emphasis); }\n  [type=\"button\"]:active {\n    border-color: #0000c8;\n    border-color: var(--grav-co-grp-b-control-active);\n    background-color: #ffffff;\n    background-color: var(--grav-co-grp-a-neutral);\n    color: #0000c8;\n    color: var(--grav-co-grp-b-control-active); }\n  [type=\"button\"][aria-pressed=\"true\"] {\n    border-color: #0000c8;\n    border-color: var(--grav-co-grp-b-control-active);\n    background-color: #ffffff;\n    background-color: var(--grav-co-grp-a-neutral);\n    color: #0000c8;\n    color: var(--grav-co-grp-b-control-active); }\n  [type=\"button\"]:disabled, [type=\"button\"]:disabled:hover {\n    border-color: #697184;\n    border-color: var(--grav-co-grp-b-control-disabled);\n    background-color: #ffffff;\n    background-color: var(--grav-co-grp-a-neutral);\n    color: #697184;\n    color: var(--grav-co-grp-b-control-disabled); }\n\n[type=\"reset\"] {\n  border-color: #000000;\n  border-color: var(--grav-co-grp-b-control);\n  background-color: #ffffff;\n  background-color: var(--grav-co-grp-a-neutral);\n  color: #000000;\n  color: var(--grav-co-grp-b-control);\n  border-width: 0.0625rem;\n  border-style: solid; }\n  [type=\"reset\"]:hover {\n    border-color: #0060ff;\n    border-color: var(--grav-co-grp-b-control-emphasis);\n    background-color: #ffffff;\n    background-color: var(--grav-co-grp-a-neutral);\n    color: #0060ff;\n    color: var(--grav-co-grp-b-control-emphasis); }\n  [type=\"reset\"]:active {\n    border-color: #0000c8;\n    border-color: var(--grav-co-grp-b-control-active);\n    background-color: #ffffff;\n    background-color: var(--grav-co-grp-a-neutral);\n    color: #0000c8;\n    color: var(--grav-co-grp-b-control-active); }\n  [type=\"reset\"]:disabled, [type=\"reset\"]:disabled:hover {\n    border-color: #697184;\n    border-color: var(--grav-co-grp-b-control-disabled);\n    background-color: #ffffff;\n    background-color: var(--grav-co-grp-a-neutral);\n    color: #697184;\n    color: var(--grav-co-grp-b-control-disabled); }\n\n[type=\"submit\"],\nbutton:not([type]) {\n  border-color: #000000;\n  border-color: var(--grav-co-grp-b-control);\n  background-color: #000000;\n  background-color: var(--grav-co-grp-b-control);\n  color: #ffffff;\n  color: var(--grav-co-grp-a-neutral);\n  border-width: 0.0625rem;\n  border-style: solid; }\n  [type=\"submit\"]:hover,\n  button:not([type]):hover {\n    border-color: #0060ff;\n    border-color: var(--grav-co-grp-b-control-emphasis);\n    background-color: #0060ff;\n    background-color: var(--grav-co-grp-b-control-emphasis);\n    color: #ffffff;\n    color: var(--grav-co-grp-a-neutral); }\n  [type=\"submit\"]:active,\n  button:not([type]):active {\n    border-color: #0000c8;\n    border-color: var(--grav-co-grp-b-control-active);\n    background-color: #0000c8;\n    background-color: var(--grav-co-grp-b-control-active);\n    color: #ffffff;\n    color: var(--grav-co-grp-a-neutral); }\n  [type=\"submit\"]:disabled, [type=\"submit\"]:disabled:hover,\n  button:not([type]):disabled,\n  button:not([type]):disabled:hover {\n    border-color: #697184;\n    border-color: var(--grav-co-grp-b-control-disabled);\n    background-color: #697184;\n    background-color: var(--grav-co-grp-b-control-disabled);\n    color: #ffffff;\n    color: var(--grav-co-grp-a-neutral); }\n\ninput,\ntextarea,\nselect,\nbutton {\n  font-size: inherit; }\n\nlabel {\n  display: block; }\n  label > textarea {\n    width: 100%;\n    margin-top: 0.76923rem; }\n\ninput:not([type=\"radio\"]):not([type=\"checkbox\"]) {\n  width: 100%;\n  max-width: 40ch;\n  padding-right: 0.59172rem;\n  padding-left: 0.59172rem;\n  border: 0.0625rem solid var(--grav-co-grp-b-neutral);\n  background-color: var(--grav-co-grp-a-neutral); }\n\ntextarea {\n  display: block;\n  padding-right: 0.59172rem;\n  padding-left: 0.59172rem;\n  border: 0.0625rem solid var(--grav-co-grp-b-neutral);\n  background-color: var(--grav-co-grp-a-neutral); }\n\nul,\nol {\n  padding-left: 1.3rem; }\n  @media (min-width: 44rem) {\n    ul > li,\n    ol > li {\n      padding-left: 0.76923rem; } }\n  @media (min-width: 56rem) {\n    ul > li,\n    ol > li {\n      padding-left: 1rem; } }\n\nli + li {\n  margin-top: 1.3rem; }\n\nli > ul,\nli > ol {\n  margin-top: 1.3rem; }\n\n.grav-o-full-bleed {\n  width: auto;\n  max-width: none;\n  margin-right: 0;\n  margin-left: 0;\n  padding-top: 0;\n  padding-bottom: 0; }\n  .grav-o-full-bleed__content {\n    max-width: 73rem;\n    width: calc(100% - 2rem);\n    margin-right: 1rem;\n    margin-left: 1rem; }\n\n@media (-ms-high-contrast: none) and (min-width: 75rem), (-ms-high-contrast: active) and (min-width: 75rem) {\n  .grav-o-full-bleed__content {\n    align-self: center; } }\n    @media (min-width: 75rem) {\n      .grav-o-full-bleed__content {\n        margin-right: auto;\n        margin-left: auto; } }\n\n@media (min-width: 32rem) {\n  .grav-o-two-column,\n  .grav-o-three-column,\n  .grav-o-four-column {\n    display: flex;\n    flex-wrap: wrap;\n    margin-left: -1.3rem; }\n    .grav-o-two-column > *,\n    .grav-o-three-column > *,\n    .grav-o-four-column > * {\n      width: calc((100% - 2.6rem) / 2);\n      margin-left: 1.3rem; }\n    .grav-o-two-column > *:nth-child(-n + 2),\n    .grav-o-three-column > *:nth-child(-n + 2),\n    .grav-o-four-column > *:nth-child(-n + 2) {\n      margin-top: 0; } }\n\n@media (min-width: 44rem) {\n  .grav-o-three-column > *,\n  .grav-o-four-column > * {\n    width: calc((100% - 3.9rem) / 3); }\n  .grav-o-three-column > *:nth-child(-n + 3),\n  .grav-o-four-column > *:nth-child(-n + 3) {\n    margin-top: 0; } }\n\n@media (min-width: 56rem) {\n  .grav-o-four-column > * {\n    width: calc((100% - 5.2rem) / 4); }\n  .grav-o-four-column > *:nth-child(-n + 4) {\n    margin-top: 0; } }\n\n.grav-o-column-no-danglies > * {\n  flex-grow: 1; }\n\n.grav-o-reset-list,\n.grav-o-reset-list-deep {\n  padding-left: 0;\n  list-style: none; }\n  .grav-o-reset-list > li,\n  .grav-o-reset-list-deep > li {\n    padding-left: 0; }\n\n.grav-o-reset-list-deep ul,\n.grav-o-reset-list-deep ol {\n  padding-left: 0;\n  list-style: none; }\n  .grav-o-reset-list-deep ul > li,\n  .grav-o-reset-list-deep ol > li {\n    padding-left: 0; }\n\n.grav-o-sticky-footer {\n  display: flex;\n  min-height: calc(100vh - 2rem);\n  flex-direction: column; }\n  .grav-o-sticky-footer::after {\n    content: '';\n    display: block;\n    height: 0;\n    margin-top: auto;\n    order: 100; }\n  .grav-o-sticky-footer > footer {\n    order: 101; }\n  .grav-c-page-footer {\n    order: 101; }\n  .grav-o-sticky-footer.grav-o-full-beed,\n  .grav-o-full-bleed .grav-o-sticky-footer {\n    min-height: 100vh; }\n  .grav-o-sticky-footer--unstick {\n    display: block;\n    min-height: none; }\n\n.grav-c-pullout {\n  font-size: var(--grav-fs-plus-4); }\n\n.grav-c-ascii-art {\n  font-size: var(--grav-fs-plus-2);\n  margin-bottom: 1.3rem; }\n\n.grav-c-list-horizontal {\n  display: flex;\n  padding-left: 0;\n  flex-direction: row;\n  list-style: none; }\n  .grav-c-list-horizontal > li {\n    margin: 0 0.76923rem; }\n\n.grav-c-logotype {\n  --grav-co-svg-hl-1: var(--grav-co-grp-b-accent); }\n\n@media (prefers-color-scheme: dark) {\n  .grav-c-image__invertible {\n    filter: invert(100); } }\n\n.grav-c-icon {\n  display: inline-block;\n  width: auto;\n  height: 1em; }\n\n.grav-c-icon-button {\n  padding: 0.59172rem 0.59172rem; }\n  .grav-c-icon-button > .grav-c-icon {\n    margin: 0; }\n\n[href].grav-c-cta {\n  transition: color 0.23s ease-out;\n  display: inline-block;\n  position: relative;\n  margin: 0;\n  padding: 0.59172rem 0.76923rem;\n  border-width: 0;\n  text-decoration: none;\n  z-index: 0; }\n  [href].grav-c-cta:link {\n    color: currentColor; }\n  [href].grav-c-cta:visited {\n    color: inherit; }\n  [href].grav-c-cta:focus, [href].grav-c-cta:hover {\n    color: inherit; }\n    [href].grav-c-cta:focus::after, [href].grav-c-cta:hover::after {\n      background-color: #ffffff;\n      background-color: var(--grav-co-grp-a-accent);\n      height: 100%; }\n  [href].grav-c-cta::after {\n    background-color: #0060ff;\n    background-color: var(--grav-co-grp-b-accent);\n    content: '';\n    width: 100%;\n    height: 0.3125rem;\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    transition-duration: 0.23s;\n    transition-property: height, background-color;\n    z-index: -1; }\n\n.grav-c-toggle-menu {\n  height: 3.125rem;\n  margin-top: 0;\n  background: none;\n  border-style: hidden; }\n  .grav-c-toggle-menu:hover, .grav-c-toggle-menu:active, .grav-c-toggle-menu:focus, .grav-c-toggle-menu[aria-pressed] {\n    background: none; }\n  .grav-c-toggle-menu__icon {\n    transition: all 0.23s ease-out;\n    display: block;\n    width: 2.0625rem;\n    height: 0.3125rem;\n    position: relative;\n    margin-top: auto;\n    background-color: currentColor; }\n    .grav-c-toggle-menu__icon::before, .grav-c-toggle-menu__icon::after {\n      transition: all 0.23s ease-out;\n      content: '';\n      display: block;\n      width: 2.0625rem;\n      height: 0.3125rem;\n      position: absolute;\n      left: 0;\n      background-color: currentColor; }\n    .grav-c-toggle-menu__icon::before {\n      top: -0.6875rem; }\n    .grav-c-toggle-menu__icon::after {\n      top: 0.6875rem; }\n  .grav-c-toggle-menu:focus .grav-c-toggle-menu__icon::before,\n  .grav-c-toggle-menu:active .grav-c-toggle-menu__icon::before,\n  .grav-c-toggle-menu:hover .grav-c-toggle-menu__icon::before {\n    transform: translateY(-0.125rem); }\n  .grav-c-toggle-menu:focus .grav-c-toggle-menu__icon::after,\n  .grav-c-toggle-menu:active .grav-c-toggle-menu__icon::after,\n  .grav-c-toggle-menu:hover .grav-c-toggle-menu__icon::after {\n    transform: translateY(0.125rem); }\n  .grav-c-toggle-menu[aria-pressed='true']:focus .grav-c-toggle-menu__icon,\n  .grav-c-toggle-menu[aria-pressed='true']:active .grav-c-toggle-menu__icon,\n  .grav-c-toggle-menu[aria-pressed='true']:hover .grav-c-toggle-menu__icon {\n    transform: scale(1.2); }\n  .grav-c-toggle-menu[aria-pressed='true'] .grav-c-toggle-menu__icon {\n    background-color: inherit; }\n    .grav-c-toggle-menu[aria-pressed='true'] .grav-c-toggle-menu__icon::before {\n      top: 0;\n      transform: rotate(135deg); }\n    .grav-c-toggle-menu[aria-pressed='true'] .grav-c-toggle-menu__icon::after {\n      top: 0;\n      transform: rotate(-135deg); }\n\n.grav-c-nav-link {\n  display: inline-block;\n  padding: 0.59172rem 0.76923rem;\n  font-weight: 900;\n  text-decoration: none;\n  white-space: nowrap; }\n  .grav-c-nav-link[href]:visited {\n    color: #000000;\n    color: var(--grav-co-grp-b-control); }\n  .grav-c-nav-link[href]:hover, .grav-c-nav-link[href]:focus {\n    color: #0060ff;\n    color: var(--grav-co-grp-b-control-emphasis); }\n  .grav-c-nav-link:not([href]) {\n    font-weight: 900; }\n\n.grav-c-nav-menu {\n  text-align: right; }\n  .grav-c-nav-menu > ul {\n    padding-left: 0;\n    list-style: none;\n    margin-right: -0.76923rem;\n    margin-left: -0.76923rem; }\n    .grav-c-nav-menu > ul > li {\n      padding-left: 0; }\n    @media (min-width: 44rem) {\n      .grav-c-nav-menu > ul {\n        display: flex;\n        flex-wrap: wrap; } }\n  .grav-c-nav-menu li {\n    margin: 0; }\n  @media (min-width: 44rem) {\n    .grav-c-nav-menu > ul {\n      margin-left: -2.06923rem; }\n    .grav-c-nav-menu li {\n      margin-left: 1.3rem; } }\n  .grav-c-nav-menu li:not(.grav-c-nav-menu__external-link) + li.grav-c-nav-menu__external-link {\n    margin-top: 1rem; }\n    @media (min-width: 44rem) {\n      .grav-c-nav-menu li:not(.grav-c-nav-menu__external-link) + li.grav-c-nav-menu__external-link {\n        margin-top: 0;\n        margin-left: 2.6rem; } }\n\n.grav-c-location-card {\n  font-size: var(--grav-fs-minus-1);\n  display: grid;\n  margin-top: 1.3rem;\n  grid-gap: 1rem;\n  grid-template-areas: 'title' 'info' 'map';\n  grid-template-columns: 1fr; }\n  @media (min-width: 32rem) {\n    .grav-c-location-card {\n      grid-template-areas: 'title title' 'map info';\n      grid-template-columns: 1fr 1fr; } }\n  .grav-c-location-card > h2 {\n    grid-area: title; }\n  .grav-c-location-card > p {\n    margin: 0;\n    grid-area: info; }\n  .grav-c-location-card > a {\n    margin: 0;\n    grid-area: map; }\n\n.grav-c-job-card > span::before {\n  content: ' - '; }\n\n.grav-c-three-column-list-justified {\n  padding-left: 0;\n  list-style: none; }\n  .grav-c-three-column-list-justified > li {\n    padding-left: 0; }\n  .grav-c-three-column-list-justified > li {\n    margin-top: 0.5rem; }\n  @media (min-width: 32rem) {\n    .grav-c-three-column-list-justified {\n      display: flex;\n      flex-wrap: wrap;\n      margin-left: -1.3rem; }\n      .grav-c-three-column-list-justified > * {\n        width: calc((100% - 3.9rem) / 3);\n        margin-left: 1.3rem; }\n      .grav-c-three-column-list-justified > *:nth-child(-n + 3) {\n        margin-top: 0; }\n      .grav-c-three-column-list-justified > li:nth-child(3n+2) {\n        text-align: center; }\n      .grav-c-three-column-list-justified > li:nth-child(3n) {\n        text-align: right; } }\n\nbody > header,\n.grav-c-page-header {\n  margin-top: -1rem; }\n  body > header > div,\n  .grav-c-page-header > div {\n    display: flex;\n    flex-wrap: wrap;\n    padding-top: 1rem;\n    padding-bottom: 1rem;\n    align-items: center;\n    justify-content: space-between; }\n    @media (min-width: 44rem) {\n      body > header > div,\n      .grav-c-page-header > div {\n        padding-top: 0; } }\n  body > header .grav-c-toggle-menu,\n  .grav-c-page-header .grav-c-toggle-menu {\n    flex-shrink: 0;\n    /* stylelint-disable-next-line selector-max-compound-selectors */\n    /* stylelint-disable-next-line selector-max-compound-selectors */ }\n    @media (min-width: 44rem) {\n      body > header .grav-c-toggle-menu,\n      .grav-c-page-header .grav-c-toggle-menu {\n        display: none; } }\n    body > header .grav-c-toggle-menu[aria-pressed] ~ .grav-c-nav-menu,\n    body > header .grav-c-toggle-menu[aria-pressed='false'] ~ .grav-c-nav-menu,\n    .grav-c-page-header .grav-c-toggle-menu[aria-pressed] ~ .grav-c-nav-menu,\n    .grav-c-page-header .grav-c-toggle-menu[aria-pressed='false'] ~ .grav-c-nav-menu {\n      transition: max-height 0.5s ease-out;\n      max-height: 0;\n      overflow: hidden; }\n      @media (min-width: 44rem) {\n        body > header .grav-c-toggle-menu[aria-pressed] ~ .grav-c-nav-menu,\n        body > header .grav-c-toggle-menu[aria-pressed='false'] ~ .grav-c-nav-menu,\n        .grav-c-page-header .grav-c-toggle-menu[aria-pressed] ~ .grav-c-nav-menu,\n        .grav-c-page-header .grav-c-toggle-menu[aria-pressed='false'] ~ .grav-c-nav-menu {\n          display: flex;\n          max-height: none;\n          overflow: visible; } }\n    body > header .grav-c-toggle-menu[aria-pressed='true'] ~ .grav-c-nav-menu,\n    .grav-c-page-header .grav-c-toggle-menu[aria-pressed='true'] ~ .grav-c-nav-menu {\n      max-height: 100vh; }\n      @media (min-width: 44rem) {\n        body > header .grav-c-toggle-menu[aria-pressed='true'] ~ .grav-c-nav-menu,\n        .grav-c-page-header .grav-c-toggle-menu[aria-pressed='true'] ~ .grav-c-nav-menu {\n          display: flex; } }\n  body > header .grav-c-nav-menu,\n  .grav-c-page-header .grav-c-nav-menu {\n    width: 100%;\n    margin-top: 0.76923rem; }\n    @media (min-width: 44rem) {\n      body > header .grav-c-nav-menu,\n      .grav-c-page-header .grav-c-nav-menu {\n        width: auto;\n        margin-top: 1rem; } }\n  body > header + *,\n  .grav-c-page-header + * {\n    margin-top: calc(var(--grav-fs-base) * 1.5); }\n\n.grav-c-page-header__logo {\n  width: 70%; }\n  .grav-c-page-header__logo a {\n    display: block; }\n    .grav-c-page-header__logo a:visited {\n      color: #000000;\n      color: var(--grav-co-grp-b-control); }\n    .grav-c-page-header__logo a:hover, .grav-c-page-header__logo a:focus {\n      color: #0060ff;\n      color: var(--grav-co-grp-b-control-emphasis); }\n  .grav-c-page-header__logo svg {\n    display: block;\n    max-height: 2.0625rem; }\n  @media (min-width: 44rem) {\n    .grav-c-page-header__logo {\n      max-width: 15.625rem;\n      margin: 1rem 1rem 0 0;\n      flex-shrink: 0; }\n      .grav-c-page-header__logo svg {\n        width: 100%; } }\n\n/* stylelint-disable-next-line selector-no-qualifying-type */\nbody.grav-o-full-bleed > header,\n.grav-o-full-bleed .grav-c-page-header {\n  margin-top: 0; }\n  body.grav-o-full-bleed > header > div,\n  .grav-o-full-bleed .grav-c-page-header > div {\n    max-width: 73rem;\n    width: calc(100% - 2rem);\n    margin-right: 1rem;\n    margin-left: 1rem; }\n\n@media (-ms-high-contrast: none) and (min-width: 75rem), (-ms-high-contrast: active) and (min-width: 75rem) {\n  body.grav-o-full-bleed > header > div,\n  .grav-o-full-bleed .grav-c-page-header > div {\n    align-self: center; } }\n    @media (min-width: 75rem) {\n      body.grav-o-full-bleed > header > div,\n      .grav-o-full-bleed .grav-c-page-header > div {\n        margin-right: auto;\n        margin-left: auto; } }\n\nbody > footer,\n.grav-c-page-footer {\n  border-bottom-color: #0060ff;\n  border-bottom-color: var(--grav-co-grp-b-accent);\n  font-size: var(--grav-fs-minus-1);\n  border-top-width: 0.0625rem;\n  border-top-style: solid;\n  border-top-color: #061434;\n  border-top-color: var(--grav-co-grp-b-neutral-subtle);\n  padding-top: 1.2375rem;\n  margin-bottom: -1rem;\n  padding-bottom: 1.3rem;\n  border-bottom-width: 0.125rem;\n  border-bottom-style: solid; }\n  body > footer[class*='grav-u-color-scheme-'],\n  .grav-c-page-footer[class*='grav-u-color-scheme-'] {\n    border-top-color: var(--grav-co-transparent); }\n  @media (max-width: 44rem) {\n    body > footer *,\n    .grav-c-page-footer * {\n      text-align: center; } }\n\n.grav-c-page-footer__lists {\n  display: flex; }\n  @media (max-width: 44rem) {\n    .grav-c-page-footer__lists {\n      flex-direction: column;\n      text-align: center; } }\n  .grav-c-page-footer__lists ul {\n    margin: 0;\n    padding: 0;\n    list-style: none;\n    text-decoration: none; }\n    @media (min-width: 44rem) {\n      .grav-c-page-footer__lists ul:first-of-type {\n        padding-right: 6.25rem; } }\n    .grav-c-page-footer__lists ul li {\n      margin: 0;\n      padding: 0; }\n\n/* stylelint-disable-next-line selector-no-qualifying-type */\nbody.grav-o-full-bleed > footer,\n.grav-o-full-bleed .grav-c-page-footer {\n  margin-bottom: 0; }\n  body.grav-o-full-bleed > footer > div,\n  .grav-o-full-bleed .grav-c-page-footer > div {\n    max-width: 73rem;\n    width: calc(100% - 2rem);\n    margin-right: 1rem;\n    margin-left: 1rem; }\n\n@media (-ms-high-contrast: none) and (min-width: 75rem), (-ms-high-contrast: active) and (min-width: 75rem) {\n  body.grav-o-full-bleed > footer > div,\n  .grav-o-full-bleed .grav-c-page-footer > div {\n    align-self: center; } }\n    @media (min-width: 75rem) {\n      body.grav-o-full-bleed > footer > div,\n      .grav-o-full-bleed .grav-c-page-footer > div {\n        margin-right: auto;\n        margin-left: auto; } }\n\n.grav-c-page-intro > * {\n  display: block; }\n\n.grav-c-page-intro h1 {\n  font-size: var(--grav-fs-plus-6); }\n\n@media (min-width: 56rem) {\n  .grav-c-page-intro p,\n  .grav-c-page-intro time {\n    max-width: 44rem; } }\n\n.grav-c-page-intro time {\n  color: #061434;\n  color: var(--grav-co-grp-b-neutral-subtle); }\n\n.grav-c-page-intro img {\n  clip-path: polygon(0% 0%, 0% calc(100% - var(--grav-fs-plus-4)), 0.76923rem calc(100% - var(--grav-fs-plus-4)), calc(0.76923rem + var(--grav-fs-plus-4)) 100%, calc(0.76923rem + var(--grav-fs-plus-4) * 2) calc(100% - var(--grav-fs-plus-4)), 100% calc(100% - var(--grav-fs-plus-4)), 100% 0%);\n  background: #f2f7ff;\n  background: var(--grav-co-grp-a-neutral-alt);\n  width: 100%;\n  min-height: 16rem;\n  max-height: 30rem;\n  object-fit: cover; }\n  @media (min-width: 44rem) {\n    .grav-c-page-intro img {\n      clip-path: polygon(0% 0%, 0% calc(100% - var(--grav-fs-plus-4)), 1.3rem calc(100% - var(--grav-fs-plus-4)), calc(1.3rem + var(--grav-fs-plus-4)) 100%, calc(1.3rem + var(--grav-fs-plus-4) * 2) calc(100% - var(--grav-fs-plus-4)), 100% calc(100% - var(--grav-fs-plus-4)), 100% 0%); } }\n  @media (min-width: 56rem) {\n    .grav-c-page-intro img {\n      clip-path: polygon(0% 0%, 0% calc(100% - var(--grav-fs-plus-4)), 10.4rem calc(100% - var(--grav-fs-plus-4)), calc(10.4rem + var(--grav-fs-plus-4)) 100%, calc(10.4rem + var(--grav-fs-plus-4) * 2) calc(100% - var(--grav-fs-plus-4)), 100% calc(100% - var(--grav-fs-plus-4)), 100% 0%); } }\n\n.grav-c-related-items {\n  padding: 0;\n  list-style: none;\n  text-align: center; }\n  .grav-c-related-items > li {\n    max-width: 33.75rem;\n    margin-right: auto;\n    margin-left: auto; }\n    .grav-c-related-items > li span {\n      color: #061434;\n      color: var(--grav-co-grp-b-neutral-subtle);\n      display: block; }\n    .grav-c-related-items > li a {\n      font-size: var(--grav-fs-plus-2);\n      font-weight: 900; }\n    @media (min-width: 44rem) {\n      .grav-c-related-items > li a {\n        display: block; } }\n\n.grav-c-steps {\n  padding-left: 0;\n  list-style: none;\n  counter-reset: steps; }\n  .grav-c-steps > li {\n    padding-left: 0; }\n  .grav-c-steps > li {\n    border-color: #0060ff;\n    border-color: var(--grav-co-grp-b-accent);\n    position: relative;\n    margin-top: 0;\n    margin-left: 1.3rem;\n    padding-bottom: 1rem;\n    padding-left: 1.3rem;\n    border-width: 0;\n    border-left-width: 0.0625rem;\n    border-style: dashed;\n    counter-increment: steps; }\n  .grav-c-steps > li:last-child,\n  .grav-c-steps > li:nth-child(odd):last-child {\n    border-width: 0; }\n  @media (min-width: 56rem) {\n    .grav-c-steps > li:nth-child(odd) {\n      margin-right: 50%;\n      margin-left: 0;\n      padding-right: 1.3rem;\n      padding-left: 0;\n      border-right-width: 0.0625rem;\n      border-left-width: 0;\n      text-align: right; } }\n  @media (min-width: 56rem) {\n    .grav-c-steps > li:nth-child(even) {\n      margin-left: 50%; } }\n  .grav-c-steps > li::before {\n    background-color: #0060ff;\n    background-color: var(--grav-co-grp-b-accent);\n    color: #ffffff;\n    color: var(--grav-co-grp-a-neutral);\n    content: counters(steps, \".\");\n    min-width: 1em;\n    position: absolute;\n    left: 0;\n    padding: 0.76923rem 0.76923rem;\n    font-weight: 900;\n    line-height: 1;\n    text-align: center;\n    transform: translateX(-50%); }\n  @media (min-width: 56rem) {\n    .grav-c-steps > li:nth-child(odd)::before {\n      display: block;\n      right: 0;\n      left: auto;\n      transform: translateX(50%); } }\n  .grav-c-steps p {\n    margin-top: 0; }\n\n.grav-c-list-cards-basic {\n  padding-left: 0;\n  list-style: none; }\n  .grav-c-list-cards-basic > li {\n    padding-left: 0; }\n  .grav-c-list-cards-basic > li + li {\n    margin-top: 1.69rem; }\n  @media (min-width: 56rem) {\n    .grav-c-list-cards-basic {\n      display: flex;\n      flex-wrap: wrap;\n      margin-left: -1.69rem; }\n      .grav-c-list-cards-basic > * {\n        width: calc((100% - 3.38rem) / 2);\n        margin-left: 1.69rem; }\n      .grav-c-list-cards-basic > *:nth-child(-n + 2) {\n        margin-top: 0; }\n      .grav-c-list-cards-basic > * {\n        flex-grow: 1; }\n      .grav-c-list-cards-basic > .grav-c-list-cards-basic__item--callout {\n        flex-basis: 100%; }\n        .grav-c-list-cards-basic > .grav-c-list-cards-basic__item--callout:not(:first-child),\n        .grav-c-list-cards-basic > .grav-c-list-cards-basic__item--callout + :nth-child(-n + 2) {\n          margin-top: 1.69rem; } }\n\n.grav-c-list-inline-row {\n  padding-left: 0;\n  list-style: none;\n  display: flex;\n  flex-wrap: wrap;\n  margin-top: 0;\n  margin-left: -1rem;\n  text-align: center; }\n  .grav-c-list-inline-row > li {\n    padding-left: 0; }\n  .grav-c-list-inline-row > li {\n    flex: auto;\n    margin-top: 1rem;\n    margin-left: 1rem; }\n\n.grav-c-hero {\n  text-align: center; }\n  .grav-c-hero .grav-c-hero__banner {\n    display: block;\n    width: 100%;\n    height: 26.5rem;\n    object-fit: cover;\n    object-position: center; }\n  .grav-c-hero .grav-c-hero__container {\n    background-color: #ffffff;\n    background-color: var(--grav-co-grp-a-neutral);\n    width: calc(100% - 2rem);\n    max-width: 65rem;\n    position: relative;\n    margin: -3.5rem auto 0;\n    padding: 3.5rem 1rem 1rem 1rem; }\n    .grav-c-hero .grav-c-hero__container > * {\n      max-width: 55rem;\n      margin-right: auto;\n      margin-left: auto; }\n\n.grav-c-card-basic {\n  width: 100%; }\n  .grav-c-card-basic h1,\n  .grav-c-card-basic h2,\n  .grav-c-card-basic h3,\n  .grav-c-card-basic h4,\n  .grav-c-card-basic h5,\n  .grav-c-card-basic h6 {\n    font-size: var(--grav-fs-plus-1); }\n  .grav-c-card-basic p {\n    font-size: var(--grav-fs-minus-2); }\n  .grav-c-card-basic img {\n    background: #f2f7ff;\n    background: var(--grav-co-grp-a-neutral-alt);\n    display: block;\n    width: 100%;\n    height: 16rem;\n    object-fit: cover; }\n  .grav-c-card-basic picture {\n    display: block; }\n  .grav-c-card-basic > a {\n    display: block;\n    position: relative; }\n    .grav-c-card-basic > a img {\n      clip-path: polygon(0% 0%, 0% 100%, 2rem 100%, calc(2rem + 1rem) calc(100% - 1rem), calc(2rem + 1rem * 2) 100%, 100% 100%, 100% 0%); }\n    .grav-c-card-basic > a > svg {\n      fill: #ffffff;\n      fill: var(--grav-co-grp-a-neutral);\n      transition: opacity 0.23s ease-out;\n      width: 4rem;\n      height: 16rem;\n      position: absolute;\n      top: 0;\n      left: 50%;\n      margin: 0;\n      opacity: 0;\n      transform: translate(-50%, 0);\n      z-index: 1; }\n    .grav-c-card-basic > a::after {\n      clip-path: polygon(0% 0%, 0% 100%, 2rem 100%, calc(2rem + 1rem) calc(100% - 1rem), calc(2rem + 1rem * 2) 100%, 100% 100%, 100% 0%);\n      background-color: #0060ff;\n      background-color: var(--grav-co-grp-b-control-emphasis);\n      transition: opacity 0.23s ease-out;\n      content: '';\n      width: 100%;\n      height: 16rem;\n      position: absolute;\n      top: 0;\n      left: 0;\n      opacity: 0; }\n  .grav-c-card-basic > a:hover::after,\n  .grav-c-card-basic > a:focus::after {\n    opacity: 0.75; }\n  .grav-c-card-basic > a:hover > svg,\n  .grav-c-card-basic > a:focus > svg {\n    opacity: 1; }\n\n.grav-c-ostentatious-copy {\n  padding-right: 0.76923rem;\n  padding-left: 0.76923rem; }\n  .grav-c-ostentatious-copy > blockquote {\n    margin-right: -0.76923rem;\n    margin-left: -0.76923rem; }\n  .grav-c-ostentatious-copy > * {\n    display: block; }\n    .grav-c-ostentatious-copy > * + * {\n      margin-top: 1.5em; }\n  .grav-c-ostentatious-copy figcaption {\n    text-align: center; }\n  .grav-c-ostentatious-copy img {\n    display: block;\n    max-height: 75vh;\n    margin: auto; }\n  .grav-c-ostentatious-copy picture {\n    display: block; }\n  @media (min-width: 44rem) {\n    .grav-c-ostentatious-copy {\n      padding-right: 1.3rem;\n      padding-left: 1.3rem; }\n      .grav-c-ostentatious-copy > blockquote {\n        margin-right: -1.3rem;\n        margin-left: -1.3rem; } }\n  @media (min-width: 56rem) {\n    .grav-c-ostentatious-copy {\n      padding-left: 10.4rem; } }\n\n.grav-c-callout p {\n  font-size: var(--grav-fs-plus-2);\n  line-height: 1.2; }\n  @media (min-width: 32rem) {\n    .grav-c-callout p {\n      max-width: 24rem;\n      margin-right: 1.3rem; } }\n  @media (min-width: 44rem) {\n    .grav-c-callout p {\n      font-size: var(--grav-fs-plus-3); } }\n\n.grav-c-callout .grav-c-callout__columns {\n  max-width: 73rem;\n  width: calc(100% - 2rem);\n  margin-right: 1rem;\n  margin-left: 1rem;\n  padding-top: 0.75em;\n  padding-bottom: 0.75em; }\n\n@media (-ms-high-contrast: none) and (min-width: 75rem), (-ms-high-contrast: active) and (min-width: 75rem) {\n  .grav-c-callout .grav-c-callout__columns {\n    align-self: center; } }\n  @media (min-width: 75rem) {\n    .grav-c-callout .grav-c-callout__columns {\n      margin-right: auto;\n      margin-left: auto; } }\n  @media (min-width: 32rem) {\n    .grav-c-callout .grav-c-callout__columns {\n      display: flex;\n      align-items: center;\n      justify-content: space-between; } }\n\n.grav-c-callout .grav-c-three-column-list-justified {\n  max-width: 28rem; }\n  @media (min-width: 32rem) {\n    .grav-c-callout .grav-c-three-column-list-justified {\n      margin-top: 0; } }\n\n.grav-c-form-group > label {\n  display: block; }\n\n.grav-c-form-group > input {\n  margin-top: 0.76923rem; }\n\n.grav-u-color-scheme-default {\n  --grav-co-grp-a-neutral: #ffffff;\n  --grav-co-grp-a-neutral-alt: #f2f7ff;\n  --grav-co-grp-a-accent: #ffffff;\n  --grav-co-grp-a-accent-success: #ccf4e1;\n  --grav-co-grp-a-accent-attention: #ffedd1;\n  --grav-co-grp-a-accent-danger: #ffffff;\n  --grav-co-grp-b-neutral: #000000;\n  --grav-co-grp-b-neutral-subtle: #061434;\n  --grav-co-grp-b-neutral-emphasis: #000000;\n  --grav-co-grp-b-control: #000000;\n  --grav-co-grp-b-control-alt: #8100af;\n  --grav-co-grp-b-control-emphasis: #0060ff;\n  --grav-co-grp-b-control-active: #0000c8;\n  --grav-co-grp-b-control-disabled: #697184;\n  --grav-co-grp-b-accent: #0060ff;\n  --grav-co-grp-b-accent-success: #000000;\n  --grav-co-grp-b-accent-attention: #000000;\n  --grav-co-grp-b-accent-danger: #cc1e42;\n  background: var(--grav-co-grp-a-neutral);\n  color: var(--grav-co-grp-b-neutral); }\n  @media (prefers-color-scheme: dark) {\n    .grav-u-color-scheme-default {\n      --grav-co-grp-a-neutral: #061434;\n      --grav-co-grp-a-neutral-alt: #000000;\n      --grav-co-grp-a-accent: #061434;\n      --grav-co-grp-a-accent-success: #061434;\n      --grav-co-grp-a-accent-attention: #061434;\n      --grav-co-grp-a-accent-danger: #061434;\n      --grav-co-grp-b-neutral: #ffffff;\n      --grav-co-grp-b-neutral-subtle: #ebecef;\n      --grav-co-grp-b-neutral-emphasis: #ffffff;\n      --grav-co-grp-b-control: #ffffff;\n      --grav-co-grp-b-control-alt: #c766e9;\n      --grav-co-grp-b-control-emphasis: #ff3f00;\n      --grav-co-grp-b-control-active: #ff663b;\n      --grav-co-grp-b-control-disabled: #878e9d;\n      --grav-co-grp-b-accent: #ff3f00;\n      --grav-co-grp-b-accent-success: #00c76a;\n      --grav-co-grp-b-accent-attention: #ffa719;\n      --grav-co-grp-b-accent-danger: #ff5173; } }\n\n.grav-u-color-scheme-contrast {\n  --grav-co-grp-a-neutral: #061434;\n  --grav-co-grp-a-neutral-alt: #000000;\n  --grav-co-grp-a-accent: #061434;\n  --grav-co-grp-a-accent-success: #061434;\n  --grav-co-grp-a-accent-attention: #061434;\n  --grav-co-grp-a-accent-danger: #061434;\n  --grav-co-grp-b-neutral: #ffffff;\n  --grav-co-grp-b-neutral-subtle: #ebecef;\n  --grav-co-grp-b-neutral-emphasis: #ffffff;\n  --grav-co-grp-b-control: #ffffff;\n  --grav-co-grp-b-control-alt: #c766e9;\n  --grav-co-grp-b-control-emphasis: #74a2fc;\n  --grav-co-grp-b-control-active: #98a5e5;\n  --grav-co-grp-b-control-disabled: #878e9d;\n  --grav-co-grp-b-accent: #4382fb;\n  --grav-co-grp-b-accent-success: #00c76a;\n  --grav-co-grp-b-accent-attention: #ffa719;\n  --grav-co-grp-b-accent-danger: #ff5173;\n  background: var(--grav-co-grp-a-neutral);\n  color: var(--grav-co-grp-b-neutral); }\n  @media (prefers-color-scheme: dark) {\n    .grav-u-color-scheme-contrast {\n      --grav-co-grp-a-neutral: #000000;\n      --grav-co-grp-a-neutral-alt: #000000;\n      --grav-co-grp-a-accent: #000000;\n      --grav-co-grp-a-accent-success: #000000;\n      --grav-co-grp-a-accent-attention: #000000;\n      --grav-co-grp-a-accent-danger: #000000;\n      --grav-co-grp-b-neutral: #ebecef;\n      --grav-co-grp-b-neutral-subtle: #c3c7ce;\n      --grav-co-grp-b-neutral-emphasis: #ffffff;\n      --grav-co-grp-b-control: #ebecef;\n      --grav-co-grp-b-control-alt: #b433e2;\n      --grav-co-grp-b-control-emphasis: #ff3f00;\n      --grav-co-grp-b-control-active: #ff663b;\n      --grav-co-grp-b-control-disabled: #878e9d;\n      --grav-co-grp-b-accent: #ff3f00;\n      --grav-co-grp-b-accent-success: #00c76a;\n      --grav-co-grp-b-accent-attention: #ffa719;\n      --grav-co-grp-b-accent-danger: #ff2552; } }\n\n.grav-u-color-scheme-buildit-black-red {\n  --grav-co-grp-a-neutral: #000000;\n  --grav-co-grp-a-neutral-alt: #000000;\n  --grav-co-grp-a-accent: #000000;\n  --grav-co-grp-a-accent-success: #000000;\n  --grav-co-grp-a-accent-attention: #000000;\n  --grav-co-grp-a-accent-danger: #000000;\n  --grav-co-grp-b-neutral: #ebecef;\n  --grav-co-grp-b-neutral-subtle: #c3c7ce;\n  --grav-co-grp-b-neutral-emphasis: #ffffff;\n  --grav-co-grp-b-control: #ebecef;\n  --grav-co-grp-b-control-alt: #b433e2;\n  --grav-co-grp-b-control-emphasis: #ff3f00;\n  --grav-co-grp-b-control-active: #ff663b;\n  --grav-co-grp-b-control-disabled: #878e9d;\n  --grav-co-grp-b-accent: #ff3f00;\n  --grav-co-grp-b-accent-success: #00c76a;\n  --grav-co-grp-b-accent-attention: #ffa719;\n  --grav-co-grp-b-accent-danger: #ff2552;\n  background: var(--grav-co-grp-a-neutral);\n  color: var(--grav-co-grp-b-neutral); }\n\n.grav-u-color-scheme-buildit-dark-red {\n  --grav-co-grp-a-neutral: #061434;\n  --grav-co-grp-a-neutral-alt: #000000;\n  --grav-co-grp-a-accent: #061434;\n  --grav-co-grp-a-accent-success: #061434;\n  --grav-co-grp-a-accent-attention: #061434;\n  --grav-co-grp-a-accent-danger: #061434;\n  --grav-co-grp-b-neutral: #ffffff;\n  --grav-co-grp-b-neutral-subtle: #ebecef;\n  --grav-co-grp-b-neutral-emphasis: #ffffff;\n  --grav-co-grp-b-control: #ffffff;\n  --grav-co-grp-b-control-alt: #c766e9;\n  --grav-co-grp-b-control-emphasis: #ff3f00;\n  --grav-co-grp-b-control-active: #ff663b;\n  --grav-co-grp-b-control-disabled: #878e9d;\n  --grav-co-grp-b-accent: #ff3f00;\n  --grav-co-grp-b-accent-success: #00c76a;\n  --grav-co-grp-b-accent-attention: #ffa719;\n  --grav-co-grp-b-accent-danger: #ff5173;\n  background: var(--grav-co-grp-a-neutral);\n  color: var(--grav-co-grp-b-neutral); }\n\n.grav-u-color-scheme-buildit-dark {\n  --grav-co-grp-a-neutral: #061434;\n  --grav-co-grp-a-neutral-alt: #000000;\n  --grav-co-grp-a-accent: #061434;\n  --grav-co-grp-a-accent-success: #061434;\n  --grav-co-grp-a-accent-attention: #061434;\n  --grav-co-grp-a-accent-danger: #061434;\n  --grav-co-grp-b-neutral: #ffffff;\n  --grav-co-grp-b-neutral-subtle: #ebecef;\n  --grav-co-grp-b-neutral-emphasis: #ffffff;\n  --grav-co-grp-b-control: #ffffff;\n  --grav-co-grp-b-control-alt: #c766e9;\n  --grav-co-grp-b-control-emphasis: #74a2fc;\n  --grav-co-grp-b-control-active: #98a5e5;\n  --grav-co-grp-b-control-disabled: #878e9d;\n  --grav-co-grp-b-accent: #4382fb;\n  --grav-co-grp-b-accent-success: #00c76a;\n  --grav-co-grp-b-accent-attention: #ffa719;\n  --grav-co-grp-b-accent-danger: #ff5173;\n  background: var(--grav-co-grp-a-neutral);\n  color: var(--grav-co-grp-b-neutral); }\n\n.grav-u-color-scheme-buildit-white {\n  --grav-co-grp-a-neutral: #ffffff;\n  --grav-co-grp-a-neutral-alt: #f2f7ff;\n  --grav-co-grp-a-accent: #ffffff;\n  --grav-co-grp-a-accent-success: #ccf4e1;\n  --grav-co-grp-a-accent-attention: #ffedd1;\n  --grav-co-grp-a-accent-danger: #ffffff;\n  --grav-co-grp-b-neutral: #000000;\n  --grav-co-grp-b-neutral-subtle: #061434;\n  --grav-co-grp-b-neutral-emphasis: #000000;\n  --grav-co-grp-b-control: #000000;\n  --grav-co-grp-b-control-alt: #8100af;\n  --grav-co-grp-b-control-emphasis: #0060ff;\n  --grav-co-grp-b-control-active: #0000c8;\n  --grav-co-grp-b-control-disabled: #697184;\n  --grav-co-grp-b-accent: #0060ff;\n  --grav-co-grp-b-accent-success: #000000;\n  --grav-co-grp-b-accent-attention: #000000;\n  --grav-co-grp-b-accent-danger: #cc1e42;\n  background: var(--grav-co-grp-a-neutral);\n  color: var(--grav-co-grp-b-neutral); }\n\n.grav-u-color-scheme-teal-black {\n  --grav-co-grp-a-neutral: #000000;\n  --grav-co-grp-a-neutral-alt: #262626;\n  --grav-co-grp-a-accent: #000000;\n  --grav-co-grp-a-accent-success: #000000;\n  --grav-co-grp-a-accent-attention: #000000;\n  --grav-co-grp-a-accent-danger: #000000;\n  --grav-co-grp-b-neutral: #cccccc;\n  --grav-co-grp-b-neutral-subtle: #999999;\n  --grav-co-grp-b-neutral-emphasis: #e6e6e6;\n  --grav-co-grp-b-control: #cccccc;\n  --grav-co-grp-b-control-alt: #b69cca;\n  --grav-co-grp-b-control-emphasis: #00b49d;\n  --grav-co-grp-b-control-active: #50c0ad;\n  --grav-co-grp-b-control-disabled: #999999;\n  --grav-co-grp-b-accent: #00b49d;\n  --grav-co-grp-b-accent-success: #b6d772;\n  --grav-co-grp-b-accent-attention: #ffd27c;\n  --grav-co-grp-b-accent-danger: #f15b46;\n  background: var(--grav-co-grp-a-neutral);\n  color: var(--grav-co-grp-b-neutral); }\n\n.grav-u-color-scheme-teal-dark-gray {\n  --grav-co-grp-a-neutral: #404040;\n  --grav-co-grp-a-neutral-alt: #404040;\n  --grav-co-grp-a-accent: #4d4848;\n  --grav-co-grp-a-accent-success: #4d4848;\n  --grav-co-grp-a-accent-attention: #4d4848;\n  --grav-co-grp-a-accent-danger: #4d4848;\n  --grav-co-grp-b-neutral: #e6e6e6;\n  --grav-co-grp-b-neutral-subtle: #cccccc;\n  --grav-co-grp-b-neutral-emphasis: #ffffff;\n  --grav-co-grp-b-control: #e6e6e6;\n  --grav-co-grp-b-control-alt: #d6c9e3;\n  --grav-co-grp-b-control-emphasis: #82cdbf;\n  --grav-co-grp-b-control-active: #acdcd2;\n  --grav-co-grp-b-control-disabled: #b3b3b3;\n  --grav-co-grp-b-accent: #82cdbf;\n  --grav-co-grp-b-accent-success: #c7df94;\n  --grav-co-grp-b-accent-attention: #ffdfa4;\n  --grav-co-grp-b-accent-danger: #f9ac90;\n  background: var(--grav-co-grp-a-neutral);\n  color: var(--grav-co-grp-b-neutral); }\n\n.grav-u-color-scheme-teal-white {\n  --grav-co-grp-a-neutral: #ffffff;\n  --grav-co-grp-a-neutral-alt: #f1f1f1;\n  --grav-co-grp-a-accent: #ffffff;\n  --grav-co-grp-a-accent-success: #eaf3d8;\n  --grav-co-grp-a-accent-attention: #ffdfa4;\n  --grav-co-grp-a-accent-danger: #fdd4c2;\n  --grav-co-grp-b-neutral: #404040;\n  --grav-co-grp-b-neutral-subtle: #4d4848;\n  --grav-co-grp-b-neutral-emphasis: #404040;\n  --grav-co-grp-b-control: #4d4848;\n  --grav-co-grp-b-control-alt: #6f2c91;\n  --grav-co-grp-b-control-emphasis: #007c6c;\n  --grav-co-grp-b-control-active: #005c50;\n  --grav-co-grp-b-control-disabled: #666666;\n  --grav-co-grp-b-accent: #007c6c;\n  --grav-co-grp-b-accent-success: #4d4848;\n  --grav-co-grp-b-accent-attention: #4d4848;\n  --grav-co-grp-b-accent-danger: #4d4848;\n  background: var(--grav-co-grp-a-neutral);\n  color: var(--grav-co-grp-b-neutral); }\n\n.grav-u-text-centered {\n  text-align: center; }\n\n.grav-u-max-word-count-m {\n  max-width: 40em;\n  margin-right: auto;\n  margin-left: auto; }\n\n.grav-u-font-size-minus-2 {\n  font-size: var(--grav-fs-minus-2); }\n\n.grav-u-font-size-minus-1 {\n  font-size: var(--grav-fs-minus-1); }\n\n.grav-u-font-size-base {\n  font-size: var(--grav-fs-base); }\n\n.grav-u-font-size-plus-1 {\n  font-size: var(--grav-fs-plus-1); }\n\n.grav-u-font-size-plus-2 {\n  font-size: var(--grav-fs-plus-2); }\n\n.grav-u-font-size-plus-3 {\n  font-size: var(--grav-fs-plus-3); }\n\n.grav-u-font-size-plus-4 {\n  font-size: var(--grav-fs-plus-4); }\n\n.grav-u-font-size-plus-5 {\n  font-size: var(--grav-fs-plus-5); }\n\n.grav-u-font-size-plus-6 {\n  font-size: var(--grav-fs-plus-6); }\n\n.grav-u-pt-none {\n  padding-top: 0 !important; }\n\n.grav-u-pb-none {\n  padding-bottom: 0 !important; }\n\n.grav-u-pl-none {\n  padding-left: 0 !important; }\n\n.grav-u-pr-none {\n  padding-right: 0 !important; }\n\n.grav-u-pt-xs {\n  padding-top: 0.59172rem !important; }\n\n.grav-u-pb-xs {\n  padding-bottom: 0.59172rem !important; }\n\n.grav-u-pl-xs {\n  padding-left: 0.59172rem !important; }\n\n.grav-u-pr-xs {\n  padding-right: 0.59172rem !important; }\n\n.grav-u-pt-s {\n  padding-top: 0.76923rem !important; }\n\n.grav-u-pb-s {\n  padding-bottom: 0.76923rem !important; }\n\n.grav-u-pl-s {\n  padding-left: 0.76923rem !important; }\n\n.grav-u-pr-s {\n  padding-right: 0.76923rem !important; }\n\n.grav-u-pt-m {\n  padding-top: 1rem !important; }\n\n.grav-u-pb-m {\n  padding-bottom: 1rem !important; }\n\n.grav-u-pl-m {\n  padding-left: 1rem !important; }\n\n.grav-u-pr-m {\n  padding-right: 1rem !important; }\n\n.grav-u-pt-l {\n  padding-top: 1.3rem !important; }\n\n.grav-u-pb-l {\n  padding-bottom: 1.3rem !important; }\n\n.grav-u-pl-l {\n  padding-left: 1.3rem !important; }\n\n.grav-u-pr-l {\n  padding-right: 1.3rem !important; }\n\n.grav-u-pt-xl {\n  padding-top: 1.69rem !important; }\n\n.grav-u-pb-xl {\n  padding-bottom: 1.69rem !important; }\n\n.grav-u-pl-xl {\n  padding-left: 1.69rem !important; }\n\n.grav-u-pr-xl {\n  padding-right: 1.69rem !important; }\n\n.grav-u-pt-xxl {\n  padding-top: 2.197rem !important; }\n\n.grav-u-pb-xxl {\n  padding-bottom: 2.197rem !important; }\n\n.grav-u-pl-xxl {\n  padding-left: 2.197rem !important; }\n\n.grav-u-pr-xxl {\n  padding-right: 2.197rem !important; }\n\n.grav-u-mt-none {\n  margin-top: 0 !important; }\n\n.grav-u-mb-none {\n  margin-bottom: 0 !important; }\n\n.grav-u-ml-none {\n  margin-left: 0 !important; }\n\n.grav-u-mr-none {\n  margin-right: 0 !important; }\n\n.grav-u-mt-xs {\n  margin-top: 0.59172rem !important; }\n\n.grav-u-mb-xs {\n  margin-bottom: 0.59172rem !important; }\n\n.grav-u-ml-xs {\n  margin-left: 0.59172rem !important; }\n\n.grav-u-mr-xs {\n  margin-right: 0.59172rem !important; }\n\n.grav-u-mt-s {\n  margin-top: 0.76923rem !important; }\n\n.grav-u-mb-s {\n  margin-bottom: 0.76923rem !important; }\n\n.grav-u-ml-s {\n  margin-left: 0.76923rem !important; }\n\n.grav-u-mr-s {\n  margin-right: 0.76923rem !important; }\n\n.grav-u-mt-m {\n  margin-top: 1rem !important; }\n\n.grav-u-mb-m {\n  margin-bottom: 1rem !important; }\n\n.grav-u-ml-m {\n  margin-left: 1rem !important; }\n\n.grav-u-mr-m {\n  margin-right: 1rem !important; }\n\n.grav-u-mt-l {\n  margin-top: 1.3rem !important; }\n\n.grav-u-mb-l {\n  margin-bottom: 1.3rem !important; }\n\n.grav-u-ml-l {\n  margin-left: 1.3rem !important; }\n\n.grav-u-mr-l {\n  margin-right: 1.3rem !important; }\n\n.grav-u-mt-xl {\n  margin-top: 1.69rem !important; }\n\n.grav-u-mb-xl {\n  margin-bottom: 1.69rem !important; }\n\n.grav-u-ml-xl {\n  margin-left: 1.69rem !important; }\n\n.grav-u-mr-xl {\n  margin-right: 1.69rem !important; }\n\n.grav-u-mt-xxl {\n  margin-top: 2.197rem !important; }\n\n.grav-u-mb-xxl {\n  margin-bottom: 2.197rem !important; }\n\n.grav-u-ml-xxl {\n  margin-left: 2.197rem !important; }\n\n.grav-u-mr-xxl {\n  margin-right: 2.197rem !important; }\n\n.grav-u-box {\n  border-width: 0.0625rem;\n  border-style: solid;\n  border-color: #000000;\n  border-color: var(--grav-co-grp-b-neutral);\n  padding: 0.9375rem; }\n  .grav-u-box[class*='grav-u-color-scheme-'] {\n    border-color: var(--grav-co-transparent); }\n","/* == Styles shared by all buttons == */\n\n// Button with no type attribute defaults to \"submit\"\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"],\nbutton:not([type]) {\n  padding: $grav-sp-inset-squished-xs;\n  cursor: pointer;\n  font-weight: grav-font-weight(\"primary\", \"bold\");\n\n  // Scale icons in buttons to match the line-height\n  > .grav-c-icon {\n    width: auto;\n    height: 1em * $grav-line-height;\n    margin-right: $grav-sp-xs;\n    vertical-align: top;\n  }\n}\n\n/* == Styles for specific kinds of buttons == */\n\n// Applies `border`, `background-color` and `color` properties for buttons.\n@mixin grav-apply-button-colors($color-name, $is-primary) {\n  @include grav-color-apply(\"border-color\", \"b\", $color-name);\n\n  @if $is-primary {\n    @include grav-color-apply(\"background-color\", \"b\", $color-name);\n    @include grav-color-apply(\"color\", \"a\", \"neutral\");\n  } @else {\n    @include grav-color-apply(\"background-color\", \"a\", \"neutral\");\n    @include grav-color-apply(\"color\", \"b\", $color-name, true);\n  }\n}\n\n@mixin grav-button-styles($is-primary, $is-toggle: false) {\n  @include grav-apply-button-colors(\"control\", $is-primary);\n\n  border-width: $grav-st-thickness;\n  border-style: $grav-st-style;\n\n  &:hover {\n    @include grav-apply-button-colors(\"control-emphasis\", $is-primary);\n  }\n\n  &:active {\n    @include grav-apply-button-colors(\"control-active\", $is-primary);\n  }\n\n  @if $is-toggle {\n    &[aria-pressed=\"true\"] {\n      // Same styles as :active\n      @include grav-apply-button-colors(\"control-active\", $is-primary);\n    }\n  }\n\n  &:disabled {\n    &,\n    &:hover {\n      @include grav-apply-button-colors(\"control-disabled\", $is-primary);\n    }\n  }\n}\n\n[type=\"button\"] {\n  @include grav-button-styles(false, true);\n}\n\n[type=\"reset\"] {\n  @include grav-button-styles(false);\n}\n\n[type=\"submit\"],\nbutton:not([type]) {\n  @include grav-button-styles(true);\n}\n","input,\ntextarea,\nselect,\nbutton {\n  font-size: inherit;\n}\n","label {\n  display: block;\n\n  > textarea {\n    width: 100%;\n    margin-top: $grav-sp-s;\n  }\n}\n\ninput:not([type=\"radio\"]):not([type=\"checkbox\"]) {\n  width: 100%;\n  max-width: 40ch;\n  padding-right: $grav-sp-xs;\n  padding-left: $grav-sp-xs;\n  border: grav-px2rem(1) solid var(--grav-co-grp-b-neutral);\n  background-color: var(--grav-co-grp-a-neutral);\n}\n\ntextarea {\n  display: block;\n  padding-right: $grav-sp-xs;\n  padding-left: $grav-sp-xs;\n  border: grav-px2rem(1) solid var(--grav-co-grp-b-neutral);\n  background-color: var(--grav-co-grp-a-neutral);\n}\n","ul,\nol {\n  padding-left: $grav-sp-l;\n\n  > li {\n    @media (min-width: grav-breakpoint(medium)) {\n      padding-left: $grav-sp-s;\n    }\n\n    @media (min-width: grav-breakpoint(large)) {\n      padding-left: $grav-sp-m;\n    }\n  }\n}\n\nli + li {\n  // Decrease default vertical space\n  // between successive list items\n  margin-top: $grav-sp-l;\n}\n\nli > ul,\nli > ol {\n  // Add space above nested lists and their\n  // parent list item's text\n  margin-top: $grav-sp-l;\n}\n","// Undos the effects of grav-l-container() mixin\n.grav-o-full-bleed {\n  width: auto;\n  max-width: none;\n  margin-right: 0;\n  margin-left: 0;\n  padding-top: 0;\n  padding-bottom: 0;\n\n  &__content {\n    @include grav-l-container;\n  }\n}\n","////\n/// @group layout\n////\n\n/// Creates a multi-column layout.\n///\n/// Note: This will apply a negative left margin, so this mixin should not\n/// be used on elements that need to set any other horizontal margin values.\n///\n/// @param {number} $column-count [2] - How many equal width columns the space\n///                       should be divided into.\n/// @param {length} $column-gap [$grav-sp-l] - The width of the gap between\n///                       columns.\n/// @param {boolean} $additive - Whether or not this layout is overriding another column\n///                       layout (for instance in a media query that is altering the number\n///                       of columns). If `true` only CSS declarations that would differ are\n///                       output. Any declarations common to any column layout are omitted.\n@mixin grav-l-column-layout($column-count: 2, $column-gap: $grav-sp-l, $additive: false) {\n  // Note: We intentionally only use left margins to create the gap between\n  // columns. This is because the container has a _negative_ left margin to\n  // cancel out the left margins of the left-most items in each row.\n  // If we had instead use right margins (or both left and right margins) and\n  // thus had a negative right margin, we might encounter overflow issues when\n  // the negative right margin extends beyond the viewport and creates horizontal\n  // scrolling.\n  // Your read more about how negative margins behave in CSS here:\n  // https://www.smashingmagazine.com/2009/07/the-definitive-guide-to-using-negative-margins/\n\n  @if not $additive {\n    display: flex;\n    flex-wrap: wrap;\n    margin-left: -$column-gap;\n  }\n\n  // All children start with margin on their sides\n  > * {\n    width: calc((100% - #{$column-count * $column-gap}) / #{$column-count});\n\n    @if not $additive {\n      margin-left: $column-gap;\n    }\n  }\n\n  // Select the top row's children and remove the top margin\n  > *:nth-child(-n + #{$column-count}) {\n    margin-top: 0;\n  }\n}\n\n/// Expands items in the last row of a column layout, if there aren't enough\n/// to fill all columns in that row.\n@mixin grav-l-column-no-danglies {\n  > * {\n    flex-grow: 1;\n  }\n}\n\n/// Makes an item within a \"no-danglies\" column layout span the full width of the parent\n/// element.\n///\n/// @param {number} $column-count [2] - The number of columns the column layout has\n///                       that this item is within.\n/// @param {length} $margin-top [$grav-sp-vertical-gap] - The size of the vertical gap\n///                       between rows in this column layout.\n@mixin grav-l-column-item-full-width($column-count: 2, $margin-top: $grav-sp-vertical-gap) {\n  flex-basis: 100%;\n\n  // Multi-column layouts remove the top margin of all items in\n  // the first row. If the item being stretched is one of those,\n  // then it will necessarily create a new row and therefore need\n  // its top margin reinstated. Likewise, subsequent items that\n  // would have otherwise been in the first row also need their\n  // top margins reinstated.\n  &:not(:first-child),\n  + :nth-child(-n + #{$column-count}) {\n    margin-top: $margin-top;\n  }\n}\n","// Utility class to remove default bullet or numbered list styles.\n// Often useful in conjunction with things like column layout classes.\n.grav-o-reset-list,\n%grav-o-reset-list {\n  @include grav-reset-list;\n}\n\n// Utility class to remove default bullet or numbered list styles,\n// including all nested lists.\n.grav-o-reset-list-deep {\n  @extend %grav-o-reset-list;\n\n  ul,\n  ol {\n    @include grav-reset-list;\n  }\n}\n","////\n/// @group utils\n////\n\n/// Resets browser's default list styling that gets applied to `<ul>` or `<ol>`.\n///\n/// Useful for situations where something is semantically marked up as a list, but\n/// the standard bullet list styling is not wanted.\n@mixin grav-reset-list {\n  padding-left: 0;\n  list-style: none;\n\n  > li {\n    padding-left: 0;\n  }\n}\n",".grav-o-sticky-footer {\n  // By default, <body> has top and bottom padding, so we need to subtract that\n  // from the sticky footer container's min height.\n  @include grav-sticky-footer( calc(100vh - #{2 * $grav-sp-page-content-inset}) );\n\n  // Special case:\n  // When on or within a full-bleed body, that vertical padding is gone, so we\n  // need to adjust our min-height accordingly:\n  &.grav-o-full-beed,\n  .grav-o-full-bleed & {\n    min-height: 100vh;\n  }\n\n\n  // \"Modifier\" to negate the sticky footer effect on a container.\n  &--unstick {\n    display: block;\n    min-height: none;\n  }\n}\n",".grav-c-pullout {\n  @include grav-font-size(4);\n}\n",".grav-c-ascii-art {\n  @include grav-font-size(2);\n  margin-bottom: $grav-sp-l;\n}\n",".grav-c-list-horizontal {\n  display: flex;\n  padding-left: 0;\n  flex-direction: row;\n  list-style: none;\n\n  > li {\n    margin: 0 $grav-sp-s;\n  }\n}\n",".grav-c-logotype {\n  --grav-co-svg-hl-1: var(--grav-co-grp-b-accent);\n}\n",".grav-c-icon {\n  display: inline-block;\n  width: auto;\n  height: 1em;\n}\n",".grav-c-icon-button {\n  padding: $grav-sp-inset-xs;\n\n  > .grav-c-icon {\n    margin: 0;\n  }\n}\n","////\n/// @group animation\n////\n\n/// Applies a transition to a CSS property.\n///\n/// @param {string} $property - The CSS property to apply the transition to.\n/// @param {duration} $transition-speed [$grav-tr-speed-regular] - The duration of the transition.\n/// @param {easing function} $ease [ease-out] - The CSS easing function to apply to the transition.\n@mixin grav-transition($property, $transition-speed: $grav-tr-speed-regular, $ease: ease-out) {\n  transition: $property $transition-speed $ease;\n}\n","[href].grav-c-cta {\n  @include grav-transition(color);\n  display: inline-block;\n  position: relative;\n  margin: 0;\n  padding: $grav-sp-inset-squished-xs;\n  border-width: 0;\n  text-decoration: none;\n  z-index: 0;\n\n  &:link {\n    color: currentColor;\n  }\n\n  &:visited {\n    color: inherit;\n  }\n\n  &:focus,\n  &:hover {\n    color: inherit;\n\n    &::after {\n      @include grav-color-apply('background-color', 'a', 'accent');\n\n      height: 100%;\n    }\n  }\n\n  &::after {\n    @include grav-color-apply('background-color', 'b', 'accent');\n\n    content: '';\n    width: 100%;\n    height: $grav-st-thickness-large;\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    transition-duration: $grav-tr-speed-regular;\n    transition-property: height, background-color;\n    z-index: -1;\n  }\n}\n","////\n/// @group animation\n////\n\n/// Slowest transition speed.\n///\n/// Should be used only on elements that have no functional requirement and that change the user's perception of\n/// information *during* the transition.\n///\n/// e.g. transitioning a marker's position such that during the transition it indicates different data points\n/// This is mostly just here for reference. Use 3s to 10s depending on the use case.\n///\n/// @type duration\n$grav-tr-speed-slowest: 10s;\n\n/// Slower transition speed.\n///\n/// This is the limit of the average user's flow of thought (1s).\n/// This should only be used on large (viewport space) decorative animations. Not on any functional elements.\n///\n/// @type duration\n$grav-tr-speed-slower: 1s;\n\n/// Slow transition speed.\n///\n/// Can be used where an obvious transition is desired on larger (viewport space) components.\n///\n/// @type duration\n$grav-tr-speed-slow: 0.5s;\n\n/// Regular transition speed.\n///\n/// This speed should be perceived by the average person (230ms).\n/// This is the default speed.\n///\n/// @type duration\n$grav-tr-speed-regular: 0.23s;\n\n/// Fast transition speed.\n///\n/// This is considered the limit for the average person (100ms).\n/// It may be perceived as instant for many people.\n///\n/// @type duration\n$grav-tr-speed-fast: 0.1s;\n\n/// Fastest transition speed.\n///\n/// Only for decoration, most users will perceive this as instant.\n///\n/// @type duration\n$grav-tr-speed-fastest: 0.06s;\n",".grav-c-toggle-menu {\n  $grav-sp-icon: grav-px2rem(11);\n  $grav-tr-icon-hover: grav-px2rem(2);\n  $grav-tr-icon-rotate: 135deg;\n  $grav-tr-icon-scale: 1.2;\n  $grav-size-icon: grav-px2rem(50);\n  $grav-width-icon: grav-px2rem(33);\n\n  height: $grav-size-icon;\n  margin-top: 0;\n  background: none;\n  border-style: hidden;\n\n  &:hover,\n  &:active,\n  &:focus,\n  &[aria-pressed] {\n    background: none;\n  }\n\n  &__icon {\n    @include grav-transition(all);\n    display: block;\n    width: $grav-width-icon;\n    height: $grav-st-thickness-large;\n    position: relative;\n    margin-top: auto;\n    background-color: currentColor;\n\n    &::before,\n    &::after {\n      @include grav-transition(all);\n      content: '';\n      display: block;\n\n      width: $grav-width-icon;\n      height: $grav-st-thickness-large;\n      position: absolute;\n      left: 0;\n      background-color: currentColor;\n    }\n\n    &::before {top: -$grav-sp-icon;}\n\n    &::after {top: $grav-sp-icon;}\n\n  }\n\n  &:focus &__icon::before,\n  &:active &__icon::before,\n  &:hover &__icon::before {\n    transform: translateY(-$grav-tr-icon-hover);\n  }\n\n  &:focus &__icon::after,\n  &:active &__icon::after,\n  &:hover &__icon::after {\n    transform: translateY($grav-tr-icon-hover);\n  }\n\n  &[aria-pressed='true']:focus &__icon,\n  &[aria-pressed='true']:active &__icon,\n  &[aria-pressed='true']:hover &__icon {\n    transform: scale($grav-tr-icon-scale);\n  }\n\n  &[aria-pressed='true'] &__icon {\n    background-color: inherit;\n\n    &::before {\n      top: 0;\n      transform: rotate($grav-tr-icon-rotate);\n    }\n\n    &::after {\n      top: 0;\n      transform: rotate(-$grav-tr-icon-rotate);\n    }\n  }\n}\n","////\n/// @group utilities\n////\n\n/// Converts a px value to the rem equivalent.\n///\n/// The input to this must be a _unitless_ number, since Gravity's\n/// SASS linting rules forbid `px` values.\n///\n/// Note, that this conversion assumes the typical default value\n/// of 16px / 1rem. If users have changed their OS or browser's\n/// default text sizes, then the REM values will appear bigger.\n/// But, that's the behaviour we want anyway! ;-)\n///\n/// @param {number} $px-value - The pixel value to convert.\n///\n/// @return {length (in rem)} The equivalent value in rem (assuming a 16px default font size).\n@function grav-px2rem($px-value) {\n  @return ($px-value / 16) * 1rem;\n}\n",".grav-c-nav-link {\n  display: inline-block;\n  padding: $grav-sp-inset-squished-xs;\n  font-weight: grav-font-weight('primary', 'bold');\n  text-decoration: none;\n  white-space: nowrap;\n\n  &[href] {\n    &:visited {\n      // Make visited links use some color as non-visited ones\n      @include grav-color-apply('color', 'b', 'control');\n    }\n\n    &:hover,\n    &:focus {\n      // Need to re-instate the hover/focus color since the previous block\n      // that overrides the usual visited color will otherwise still apply.\n      // This is because these selectors have a higher specificity that\n      // the ones that apply the basic <a> styles.\n      @include grav-color-apply('color', 'b', 'control-emphasis');\n    }\n  }\n\n  // Placeholder nav links are used to highlight the\n  // current page, so we want them to appear bold\n  &:not([href]) {\n    font-weight: grav-font-weight('primary', 'bold');\n  }\n}\n",".grav-c-nav-menu {\n  $trigger-breakpoint: grav-breakpoint(medium);\n  $horizontal-gap: $grav-sp-l;\n  $nav-link-padding: $grav-sp-s;\n\n  text-align: right;\n\n  > ul {\n    @include grav-reset-list;\n\n    margin-right: -$nav-link-padding;\n    margin-left: -$nav-link-padding;\n\n    @media (min-width: $trigger-breakpoint) {\n      display: flex;\n      flex-wrap: wrap;\n    }\n  }\n\n  li {\n    margin: 0;\n  }\n\n  @media (min-width: $trigger-breakpoint) {\n    > ul {\n      margin-left: -1 * ($nav-link-padding + $horizontal-gap);\n    }\n\n    li {\n      margin-left: $horizontal-gap;\n    }\n  }\n\n  // Increase gap between last internal link and first\n  // external link\n  li:not(#{&}__external-link)+li#{&}__external-link {\n    margin-top: $grav-sp-m;\n\n    @media (min-width: $trigger-breakpoint) {\n      margin-top: 0;\n      margin-left: $horizontal-gap * 2;\n    }\n  }\n}\n",".grav-c-location-card {\n  @include grav-font-size(-1);\n  display: grid;\n  margin-top: $grav-sp-l;\n  grid-gap: $grav-sp-m;\n  grid-template-areas:\n    'title'\n    'info'\n    'map';\n  grid-template-columns: 1fr;\n\n  @media (min-width: grav-breakpoint(small)) {\n    grid-template-areas:\n      'title title'\n      'map info';\n    grid-template-columns: 1fr 1fr;\n  }\n\n  > h2 {\n    grid-area: title;\n  }\n\n  > p {\n    margin: 0;\n    grid-area: info;\n  }\n\n  > a {\n    margin: 0;\n    grid-area: map;\n  }\n}\n",".grav-c-job-card {\n  > span::before {\n    content: ' - ';\n  }\n}\n",".grav-c-three-column-list-justified {\n  @include grav-reset-list;\n\n  > li {\n    margin-top: 0.5rem;\n  }\n\n  @media (min-width: grav-breakpoint(small)) {\n    @include grav-l-column-layout(3);\n\n    > li {\n      &:nth-child(3n+2) {\n        text-align: center;\n      }\n\n      &:nth-child(3n) {\n        text-align: right;\n      }\n    }\n  }\n}\n","$grav-page-heading-logo-width: grav-px2rem(250);\n$grav-page-heading-trigger-breakpoint: grav-breakpoint(medium);\n\n// Note: The Page Header always spans the full width of the viewport. This\n// is in case we want to give it any kind of full-bleed background styling.\n// The child elements within therefore need to respect the maximum content\n// width ($grav-page-content-max-width) themselves, where necessary.\nbody > header,\n.grav-c-page-header {\n  margin-top: -1 * $grav-sp-page-content-inset;\n\n  > div {\n    display: flex;\n    flex-wrap: wrap;\n    padding-top: $grav-sp-m;\n    padding-bottom: $grav-sp-m;\n    align-items: center;\n    justify-content: space-between;\n\n    @media (min-width: $grav-page-heading-trigger-breakpoint) {\n      padding-top: 0;\n    }\n  }\n\n  .grav-c-toggle-menu {\n    flex-shrink: 0;\n\n    @media (min-width: $grav-page-heading-trigger-breakpoint) {\n      display: none;\n    }\n\n    /* stylelint-disable-next-line selector-max-compound-selectors */\n    &[aria-pressed] ~ .grav-c-nav-menu,\n    &[aria-pressed='false'] ~ .grav-c-nav-menu {\n      @include grav-transition(max-height, $grav-tr-speed-slow);\n      max-height: 0;\n      overflow: hidden;\n\n      @media (min-width: $grav-page-heading-trigger-breakpoint) {\n        // stylelint-disable-line max-nesting-depth\n        display: flex;\n        max-height: none;\n        overflow: visible;\n      }\n    }\n\n    /* stylelint-disable-next-line selector-max-compound-selectors */\n    &[aria-pressed='true'] ~ .grav-c-nav-menu {\n      max-height: 100vh;\n\n      @media (min-width: $grav-page-heading-trigger-breakpoint) {\n        // stylelint-disable-line max-nesting-depth\n        display: flex;\n      }\n    }\n  }\n\n  .grav-c-nav-menu {\n    width: 100%;\n    margin-top: $grav-sp-s;\n\n    @media (min-width: $grav-page-heading-trigger-breakpoint) {\n      width: auto;\n      margin-top: $grav-sp-m;\n    }\n  }\n\n  // Special rule for adjacent elements\n  + * {\n    // This creates a gap equivalent to $grav-sp-vertical-gap-l applied to an element that has\n    // the base font size, regardless of what the element's actual font-size is. This ensures\n    // a consistent gap between the page header and the first item that follows it, regardless\n    // of whether that happens to be <h1>, <p>, <main>, or anything else.\n    margin-top: calc(var(#{grav-font-size-css-propname(0)}) * 1.5);\n  }\n}\n\n\n.grav-c-page-header__logo {\n  width: 70%; // 2/3 ish of the space\n\n  a {\n    display: block;\n\n    &:visited {\n      // Make visited logo link use some color as non-visited one\n      @include grav-color-apply('color', 'b', 'control');\n    }\n\n    &:hover,\n    &:focus {\n      // Need to re-instate the hover/focus color since the previous block\n      // that overrides the usual visited color will otherwise still apply.\n      // This is because these selectors have a higher specificity that\n      // the ones that apply the basic <a> styles.\n      @include grav-color-apply('color', 'b', 'control-emphasis');\n    }\n  }\n\n  svg {\n    display: block;\n    max-height: grav-px2rem(33); // Otherwise IE11 makes it 150px tall :-(\n  }\n\n\n  @media (min-width: $grav-page-heading-trigger-breakpoint) {\n    max-width: grav-px2rem(250);\n    margin: $grav-sp-m $grav-sp-m 0 0;\n    flex-shrink: 0;\n\n    svg {\n      width: 100%;\n    }\n  }\n}\n\n\n// Special case:\n// Header within a full-bleed body, should use its DIV\n// as a content container\n/* stylelint-disable-next-line selector-no-qualifying-type */\nbody.grav-o-full-bleed > header,\n.grav-o-full-bleed .grav-c-page-header {\n  margin-top: 0;\n\n  > div {\n    @include grav-l-container;\n  }\n}\n","body > footer,\n.grav-c-page-footer {\n  @include grav-color-apply('border-bottom-color', 'b', 'accent');\n  @include grav-font-size(-1);\n  @include grav-padded-border(top, $grav-sp-l, $color-b-purpose: 'neutral-subtle');\n\n  margin-bottom: -1 * $grav-sp-page-content-inset;\n  padding-bottom: $grav-sp-l;\n  border-bottom-width: $grav-st-thickness-medium;\n  border-bottom-style: solid;\n\n  * {\n    @media (max-width: grav-breakpoint(medium)) {\n      text-align: center;\n    }\n  }\n}\n\n.grav-c-page-footer__lists {\n  display: flex;\n\n  @media (max-width: grav-breakpoint(medium)) {\n    flex-direction: column;\n    text-align: center;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    list-style: none;\n    text-decoration: none;\n\n    @media (min-width: grav-breakpoint(medium)) {\n      &:first-of-type {\n        padding-right: grav-px2rem(100);\n      }\n    }\n\n    li {\n      margin: 0;\n      padding: 0;\n    }\n  }\n}\n\n// Special case:\n// Footer within a full-bleed body, should use its DIV\n// as a content container\n/* stylelint-disable-next-line selector-no-qualifying-type */\nbody.grav-o-full-bleed > footer,\n.grav-o-full-bleed .grav-c-page-footer {\n  margin-bottom: 0;\n\n  > div {\n    @include grav-l-container;\n  }\n}\n","////\n/// @group styling\n////\n\n/// Returns a list of side suffixes that can be used to generate CSS property names.\n///\n/// Given a list of CSS side names, e.g. `(top bottom)`, this function will return a\n/// that list of side names each prefixed by a hyphen (e.g. `(-top -bottom)`). This is\n/// useful when wanting to dynamically generate CSS property names in an `@each` loop\n/// for each desired direction (see example below).\n///\n/// Furthermore, if an empty list is provided, a list with a single empty string is returned.\n/// This allows code like the example below to also generate shorthand properties that apply\n/// to all sides.\n///\n/// @example scss\n///   @each $side-suffix in grav-side-suffixes(top left right) {\n///     border#{$side-suffix}: ...;\n///     padding#{$side-suffix}: ...;\n///   }\n///\n/// @param {list} $sides [()] - List of CSS side names for which to generate suffixes. Valid\n///           side names are: `top`, `right`, `bottom`, `left`, `inline-start`, `inline-end`,\n///           `block-start` and `block-end`. Attempting to use any other side name will throw\n///           an error.\n///\n/// @return {list} A list of side names, each prefixed by a hyphen. Or, if an empty list was provided,\n///           a list containing an empty string.\n///\n/// @group utilities\n/// @access private\n@function grav-side-suffixes($sides: ()) {\n  $valid-sides: top left bottom right inline-start inline-end block-start block-end;\n\n  @if length($sides)==0 {\n    @return ('');\n  }\n\n  @else {\n    $side-suffixes: ();\n\n    @each $side in $sides {\n      @if not index($valid-sides, $side) {\n        @error '\"#{$side}\" is not a valid side name in CSS.';\n      }\n\n      $side-suffixes: append($side-suffixes, -#{$side});\n    }\n\n    @return $side-suffixes;\n  }\n}\n\n\n/// Generates CSS border declarations.\n///\n/// This mixin will output `border-width`, `-style` and `-color` declarations for all the\n/// sides specified. Border colors will always be a group B color, so you can only choose\n/// from the available group B color purposes. Colors will be declared with a fallback value\n/// (from the page's default theme) for compatibility with older browsers that do not support\n/// CSS custom properties.\n///\n/// You can also opt to have \"smart\" borders which will become transparent if the element also\n/// has a `grav-u-color-scheme-*` class applied to it. This is useful for containers that should\n/// always be visually boxed in. With smart borders they get a visible border by default, but if\n/// authors intentionally apply a color scheme whose background color provides enough contrast\n/// against the surrounding area's background to make the bounds of the container visible, then\n/// the border is redundant and disappears. Note that **it is the author's responsibility to apply\n/// a color scheme whose background provides sufficient color contrast**.\n///\n/// @param {list} $sides [()] - List of CSS side names for which to generate suffixes. Valid\n///           side names are: `top`, `right`, `bottom`, `left`, `inline-start`, `inline-end`,\n///           `block-start` and `block-end`. Attempting to use any other side name will throw\n///           an error.\n/// @param {length} $thickness [$grav-st-thickness] - The value used for the `border-width`.\n/// @param {CSS border style} $style [$grav-st-style] - The value used for the `border-style`.\n/// @param {string} $color-b-purpose [neutral] - One of Gravity's group B color purposes.\n/// @param {boolean} $smart [true] - Whether or not to generate \"smart\" borders.\n@mixin grav-border($sides: (), $thickness: $grav-st-thickness, $style: $grav-st-style, $color-b-purpose: 'neutral', $smart: true) {\n\n  // Apply the specified borders\n  @each $side-suffix in grav-side-suffixes($sides) {\n    border#{$side-suffix}-width: $thickness;\n    border#{$side-suffix}-style: $style;\n    @include grav-color-apply(border#{$side-suffix}-color, 'b', $color-b-purpose);\n  }\n\n  @if $smart {\n\n    // Set the borders to transparent when a color scheme class is\n    // applied to the element.\n    &[class*='grav-u-color-scheme-'] {\n      @each $side-suffix in grav-side-suffixes($sides) {\n        border#{$side-suffix}-color: var(--grav-co-transparent);\n      }\n    }\n  }\n}\n\n/// Generates CSS border and padding declarations such that they widths add up to a\n/// specified value.\n///\n/// This mixin is useful for styling containers whose content is inset by one of the\n/// standard Gravity padding amounts, but may also need (smart) borders. When those\n/// borders are visible, you don't want the width of the border to push the content\n/// further inwards. This mixin therefore works out the remainder of the target padding\n/// width minus the border width and applies that.\n///\n/// @param {list} $sides [()] - List of CSS side names for which to generate suffixes. Valid\n///           side names are: `top`, `right`, `bottom`, `left`, `inline-start`, `inline-end`,\n///           `block-start` and `block-end`. Attempting to use any other side name will throw\n///           an error.\n/// @param {length} $padding [$grav-sp-m] - The _target_ padding amount. I.e. by how much\n///           the element's content should be inset.\n/// @param {length} $thickness [$grav-st-thickness] - The value used for the `border-width`.\n/// @param {CSS border style} $style [$grav-st-style] - The value used for the `border-style`.\n/// @param {string} $color-b-purpose [neutral] - One of Gravity's group B color purposes.\n/// @param {boolean} $smart [true] - Whether or not to generate \"smart\" borders.\n@mixin grav-padded-border($sides: (), $padding: $grav-sp-m, $thickness: $grav-st-thickness, $style: $grav-st-style, $color-b-purpose: 'neutral', $smart: true) {\n  @include grav-border($sides, $thickness, $style, $color-b-purpose, $smart);\n\n  $padding-remainder: $padding - $thickness;\n\n  @if $padding-remainder < 0 {\n    @warn 'Border thickness is bigger than padding.';\n  }\n\n  @each $side-suffix in grav-side-suffixes($sides) {\n    @if $padding-remainder>0 {\n      padding#{$side-suffix}: $padding-remainder;\n    }\n  }\n}\n",".grav-c-page-intro {\n  $grav-c-page-intro-notch-size: var(--grav-fs-plus-4);\n\n  > * {\n    display: block;\n  }\n\n  h1 {\n    @include grav-font-size(6);\n  }\n\n  p,\n  time {\n    @media (min-width: grav-breakpoint(large)) {\n      max-width: 44rem;\n    }\n  }\n\n  time {\n    @include grav-color-apply('color', 'b', 'neutral-subtle');\n  }\n\n  img {\n    @include grav-decoration-notch-out($grav-c-page-intro-notch-size, $grav-sp-s);\n    @include grav-color-apply('background', 'a', 'neutral-alt');\n\n    width: 100%;\n    min-height: 16rem;\n    max-height: 30rem;\n    object-fit: cover;\n\n    @media (min-width: grav-breakpoint(medium)) {\n      @include grav-decoration-notch-out($grav-c-page-intro-notch-size, $grav-sp-l);\n    }\n\n    @media (min-width: grav-breakpoint(large)) {\n      @include grav-decoration-notch-out($grav-c-page-intro-notch-size, $grav-sp-l * $grav-sp-ostentatious-padding-left-multiplier);\n    }\n  }\n}\n","////\n/// @group styling\n////\n\n/// Adds a `clip-path` which creates an inward pointing notch along the\n/// bottom of the element.\n///\n/// The notch is triangular begins `$inset` away from the bottom left corner of the element:\n///\n/// ```\n/// ┌-----------┐\n/// |           |\n/// |           |\n/// |___/\\______| ├-- $size\n/// --┬-\n/// $inset\n/// ```\n///\n/// @param {length} $size [1rem] - The height of the triangular notch.\n/// @param {length} $inset [2rem] - The horizontal distance from the bottom left corner to the start of the notch.\n@mixin grav-decoration-notch-in($size: 1rem, $inset: 2rem) {\n  clip-path: polygon(0% 0%, 0% 100%, $inset 100%, calc(#{$inset} + #{$size}) calc(100% - #{$size}), calc(#{$inset} + #{$size} * 2) 100%, 100% 100%, 100% 0%);\n}\n\n/// Adds a `clip-path` which creates an outward pointing notch along the\n/// bottom of the element.\n///\n/// The notch is triangular begins `$inset` away from the bottom left corner of the element.\n/// Note that - apart from the notch - this essentially crops the bottom portion of the element:\n///\n/// ```\n/// ┌-----------┐\n/// |           |\n/// |           |\n/// |___  ______|\n/// ....\\/....... ├-- $size\n/// --┬-\n/// $inset\n/// ```\n///\n/// @param {length} $size [1rem] - The height of the triangular notch.\n/// @param {length} $inset [2rem] - The horizontal distance from the bottom left corner to the start of the notch.\n@mixin grav-decoration-notch-out($size: 1rem, $inset: 2rem) {\n  clip-path: polygon(0% 0%, 0% calc(100% - #{$size}), $inset calc(100% - #{$size}), calc(#{$inset} + #{$size}) 100%, calc(#{$inset} + #{$size} * 2) calc(100% - #{$size}), 100% calc(100% - #{$size}), 100% 0%);\n}\n",".grav-c-related-items {\n  padding: 0;\n  list-style: none;\n  text-align: center;\n\n  > li {\n    max-width: grav-px2rem(540); // equivalent to 540px\n    margin-right: auto;\n    margin-left: auto;\n\n    span {\n      @include grav-color-apply('color', 'b', 'neutral-subtle');\n      display: block;\n    }\n\n    a {\n      @include grav-font-size(2);\n      font-weight: grav-font-weight('primary', 'bold');\n    }\n\n    @media (min-width: grav-breakpoint(medium)) {\n      a {\n        display: block;\n      }\n    }\n  }\n}\n",".grav-c-steps {\n  @include grav-reset-list;\n\n  counter-reset: steps;\n\n  > li {\n    @include grav-color-apply('border-color', 'b', 'accent');\n\n    position: relative;\n    margin-top: 0;\n    margin-left: $grav-sp-l;\n    padding-bottom: $grav-sp-m;\n    padding-left: $grav-sp-l;\n    border-width: 0;\n    border-left-width: $grav-st-thickness;\n    border-style: dashed;\n    counter-increment: steps;\n  }\n\n  > li:last-child,\n  > li:nth-child(odd):last-child {\n    border-width: 0;\n  }\n\n  > li:nth-child(odd) {\n    @media (min-width: grav-breakpoint(large)) {\n      margin-right: 50%;\n      margin-left: 0;\n      padding-right: $grav-sp-l;\n      padding-left: 0;\n      border-right-width: $grav-st-thickness;\n      border-left-width: 0;\n      text-align: right;\n    }\n  }\n\n  > li:nth-child(even) {\n    @media (min-width: grav-breakpoint(large)) {\n      margin-left: 50%;\n    }\n  }\n\n  > li::before {\n    @include grav-color-apply('background-color', 'b', 'accent');\n    @include grav-color-apply('color', 'a', 'neutral');\n\n    content: counters(steps, '.');\n    min-width: 1em;\n    position: absolute;\n    left: 0;\n    padding: $grav-sp-inset-s;\n    font-weight: grav-font-weight('primary', 'bold');\n    line-height: 1;\n    text-align: center;\n    transform: translateX(-50%);\n  }\n\n  > li:nth-child(odd)::before {\n    @media (min-width: grav-breakpoint(large)) {\n      display: block;\n      right: 0;\n      left: auto;\n      transform: translateX(50%);\n    }\n  }\n\n  p {\n    margin-top: 0;\n  }\n}\n",".grav-c-list-cards-basic {\n  @include grav-reset-list;\n\n  $columns: 2;\n\n  > li + li {\n    margin-top: $grav-sp-xl;\n  }\n\n  @media (min-width: grav-breakpoint(large)) {\n    @include grav-l-column-layout($columns, $grav-sp-xl);\n    @include grav-l-column-no-danglies;\n\n    // Callouts go full-width\n    > .grav-c-list-cards-basic__item--callout {\n      @include grav-l-column-item-full-width($columns, $grav-sp-xl);\n    }\n  }\n}\n",".grav-c-list-inline-row {\n  @include grav-reset-list;\n\n  display: flex;\n  flex-wrap: wrap;\n  margin-top: 0; // Let 1st row items within create the top margin\n  margin-left: -$grav-sp-m;\n  text-align: center;\n\n  > li {\n    flex: auto;\n    margin-top: $grav-sp-m;\n    margin-left: $grav-sp-m;\n  }\n}\n",".grav-c-hero {\n  text-align: center;\n\n  .grav-c-hero__banner {\n    display: block;\n    width: 100%;\n    height: 26.5rem;\n    object-fit: cover;\n    object-position: center;\n  }\n\n  .grav-c-hero__container {\n    @include grav-color-apply('background-color', 'a', 'neutral');\n\n    // The amount by which the container overlaps the image:\n    $container-vertical-shift: 3.5rem;\n\n    // The width to which the horizontal gaps between the container\n    // and the boundary of the content area can grow:\n    $container-horizontal-max-margin: 4rem;\n\n    // The width to which the horizontal gap between the container and\n    // the content within it can grow:\n    $container-horizontal-max-inset: 5rem;\n\n    width: calc(100% - #{$grav-sp-m * 2});\n    max-width: $grav-page-content-max-width - ($container-horizontal-max-margin * 2);\n    position: relative; // Needed to let container DIV overlap banner IMG element\n    margin: (-1 * $container-vertical-shift) auto 0;\n    padding: $container-vertical-shift $grav-sp-m $grav-sp-m $grav-sp-m;\n\n    > * {\n      max-width: $grav-page-content-max-width - ($container-horizontal-max-margin * 2) - ($container-horizontal-max-inset * 2);\n      margin-right: auto;\n      margin-left: auto;\n    }\n  }\n}\n",".grav-c-card-basic {\n  $card-image-height: 16rem;\n  width: 100%;\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    @include grav-font-size(1);\n  }\n\n  p {\n    @include grav-font-size(-2);\n  }\n\n  img {\n    @include grav-color-apply('background', 'a', 'neutral-alt');\n    display: block;\n    width: 100%;\n    height: $card-image-height;\n    object-fit: cover;\n  }\n\n  picture {\n    display: block;\n  }\n\n  > a {\n    display: block;\n    position: relative;\n\n    img {\n      @include grav-decoration-notch-in;\n    }\n\n    > svg {\n      @include grav-color-apply('fill', 'a', 'neutral');\n      @include grav-transition(opacity);\n\n      width: 4rem;\n      height: $card-image-height;\n      position: absolute;\n      top: 0;\n      left: 50%;\n      margin: 0;\n      opacity: 0;\n      transform: translate(-50%, 0);\n      z-index: 1;\n    }\n\n    &::after {\n      @include grav-decoration-notch-in;\n      @include grav-color-apply('background-color', 'b', 'control-emphasis');\n      @include grav-transition(opacity);\n\n      content: ''; // ::before and ::after both require content\n      width: 100%;\n      height: $card-image-height;\n      position: absolute;\n      top: 0;\n      left: 0;\n      opacity: 0;\n    }\n  }\n\n  > a:hover,\n  > a:focus {\n    &::after {\n      opacity: 0.75;\n    }\n\n    > svg {\n      opacity: 1;\n    }\n  }\n}\n",".grav-c-ostentatious-copy {\n  padding-right: $grav-sp-s;\n  padding-left: $grav-sp-s;\n\n  > blockquote {\n    margin-right: -$grav-sp-s;\n    margin-left: -$grav-sp-s;\n  }\n\n  > * {\n    display: block;\n\n    + * {\n      margin-top: $grav-sp-vertical-gap-l;\n    }\n  }\n\n  figcaption {\n    text-align: center;\n  }\n\n  img {\n    display: block;\n    max-height: 75vh;\n    margin: auto;\n  }\n\n  picture {\n    display: block;\n  }\n\n  @media (min-width: grav-breakpoint(medium)) {\n    padding-right: $grav-sp-l;\n    padding-left: $grav-sp-l;\n\n    > blockquote {\n      margin-right: -$grav-sp-l;\n      margin-left: -$grav-sp-l;\n    }\n  }\n\n  @media (min-width: grav-breakpoint(large)) {\n    padding-left: $grav-sp-l * $grav-sp-ostentatious-padding-left-multiplier;\n  }\n}\n",".grav-c-callout {\n  $columns-breakpoint: small;\n\n  p {\n    @include grav-font-size(2);\n    line-height: 1.2;\n\n    @media (min-width: grav-breakpoint($columns-breakpoint)) {\n      max-width: 24rem;\n      margin-right: $grav-sp-l;\n    }\n\n    @media (min-width: grav-breakpoint(medium)) {\n      @include grav-font-size(3);\n    }\n  }\n\n  .grav-c-callout__columns {\n    @include grav-l-container;\n\n    padding-top: $grav-sp-vertical-gap;\n    padding-bottom: $grav-sp-vertical-gap;\n\n    @media (min-width: grav-breakpoint($columns-breakpoint)) {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n    }\n  }\n\n  .grav-c-three-column-list-justified {\n    max-width: 28rem;\n\n    @media (min-width: grav-breakpoint($columns-breakpoint)) {\n      margin-top: 0;\n    }\n  }\n}\n",".grav-c-form-group {\n  > label {\n    display: block;\n  }\n\n  > input {\n    margin-top: $grav-sp-s;\n  }\n}\n",".grav-u-text-centered {\n  text-align: center;\n}\n\n.grav-u-max-word-count-m {\n  max-width: $grav-line-max-width-m;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n\n// Generate utility classes for available text sizes\n@for $i from $grav-scale-min through $grav-scale-max {\n  .grav-u-font-size-#{grav-font-size-varname-suffix($i)} {\n    @include grav-font-size($i);\n  }\n}\n","// Generate padding utility classes for available spacing sizes\n@each $name, $space in $grav-sp-map {\n  $sides: (top, bottom, left, right);\n  @each $side in $sides {\n    .grav-u-p#{str-slice($side, 0, 1)}-#{$name} {\n      padding-#{$side}: #{$space} !important;\n    }\n  }\n}\n","// Generate margin utility classes for available spacing sizes\n@each $name, $space in $grav-sp-map {\n  $sides: (top, bottom, left, right);\n  @each $side in $sides {\n    .grav-u-m#{str-slice($side, 0, 1)}-#{$name} {\n      margin-#{$side}: #{$space} !important;\n    }\n  }\n}\n",".grav-u-box {\n  @include grav-padded-border;\n}\n","// some utility classes to use the grav-l-column-layout mixin directly as classes with sensible breakpoints.\n// max 2 column, min 1 column\n.grav-o-two-column,\n%grav-o-two-column {\n  @media (min-width: grav-breakpoint(small)) {\n    @include grav-l-column-layout(2);\n  }\n}\n\n// Max 3 column.\n// Starts with 1 column on narrow viewports and\n// increases to 2 and then 3 columns as the width\n// increases.\n.grav-o-three-column,\n%grav-o-three-column {\n  @extend %grav-o-two-column;\n\n  @media (min-width: grav-breakpoint(medium)) {\n    @include grav-l-column-layout(3, $additive: true);\n  }\n}\n\n// Max 4 column.\n// Starts with 1 column on narrow viewports and\n// increases to 2, 3 and then 4 columns as the width\n// increases.\n.grav-o-four-column {\n  @extend %grav-o-three-column;\n\n  @media (min-width: grav-breakpoint(large)) {\n    @include grav-l-column-layout(4, $additive: true);\n  }\n}\n\n// utility class to expand items in column layouts if the final row is not full.\n.grav-o-column-no-danglies {\n  @include grav-l-column-no-danglies;\n}\n",".grav-c-image {\n  &__invertible {\n    @media (prefers-color-scheme: dark) {\n      filter: invert(100);\n    }\n  }\n}\n"]}