@import url(https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap);
@import url(https://fonts.googleapis.com/icon?family=Material+Icons+Round);
/**
 * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML
 * Based on https://github.com/chriskempson/tomorrow-theme
 * @author Rose Pritchard
 */

code[class*="language-"],
pre[class*="language-"] {
	color: #ccc;
	background: none;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;

}

/* Code blocks */
pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background: #2d2d2d;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .1em;
	border-radius: .3em;
	white-space: normal;
}

.token.comment,
.token.block-comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: #999;
}

.token.punctuation {
	color: #ccc;
}

.token.tag,
.token.attr-name,
.token.namespace,
.token.deleted {
	color: #e2777a;
}

.token.function-name {
	color: #6196cc;
}

.token.boolean,
.token.number,
.token.function {
	color: #f08d49;
}

.token.property,
.token.class-name,
.token.constant,
.token.symbol {
	color: #f8c555;
}

.token.selector,
.token.important,
.token.atrule,
.token.keyword,
.token.builtin {
	color: #cc99cd;
}

.token.string,
.token.char,
.token.attr-value,
.token.regex,
.token.variable {
	color: #7ec699;
}

.token.operator,
.token.entity,
.token.url {
	color: #67cdcc;
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

.token.inserted {
	color: green;
}

/*ace.js*/
.ace_br1 {border-top-left-radius    : 3px;}
.ace_br2 {border-top-right-radius   : 3px;}
.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}
.ace_br4 {border-bottom-right-radius: 3px;}
.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}
.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}
.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}
.ace_br8 {border-bottom-left-radius : 3px;}
.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}
.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}
.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}
.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}
.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}
.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}
.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}
.ace_editor {
position: relative;
overflow: hidden;
padding: 0;
font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
direction: ltr;
text-align: left;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.ace_scroller {
position: absolute;
overflow: hidden;
top: 0;
bottom: 0;
background-color: inherit;
-ms-user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
cursor: text;
}
.ace_content {
position: absolute;
box-sizing: border-box;
min-width: 100%;
contain: style size layout;
font-variant-ligatures: no-common-ligatures;
}
.ace_dragging .ace_scroller:before{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
content: '';
background: rgba(250, 250, 250, 0.01);
z-index: 1000;
}
.ace_dragging.ace_dark .ace_scroller:before{
background: rgba(0, 0, 0, 0.01);
}
.ace_selecting, .ace_selecting * {
cursor: text !important;
}
.ace_gutter {
position: absolute;
overflow : hidden;
width: auto;
top: 0;
bottom: 0;
left: 0;
cursor: default;
z-index: 4;
-ms-user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
contain: style size layout;
}
.ace_gutter-active-line {
position: absolute;
left: 0;
right: 0;
}
.ace_scroller.ace_scroll-left {
box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;
}
.ace_gutter-cell {
position: absolute;
top: 0;
left: 0;
right: 0;
padding-left: 19px;
padding-right: 6px;
background-repeat: no-repeat;
}
.ace_gutter-cell.ace_error {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==);
background-repeat: no-repeat;
background-position: 2px center;
}
.ace_gutter-cell.ace_warning {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==);
background-position: 2px center;
}
.ace_gutter-cell.ace_info {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=);
background-position: 2px center;
}
.ace_dark .ace_gutter-cell.ace_info {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC);
}
.ace_scrollbar {
contain: strict;
position: absolute;
right: 0;
bottom: 0;
z-index: 6;
}
.ace_scrollbar-inner {
position: absolute;
cursor: text;
left: 0;
top: 0;
}
.ace_scrollbar-v{
overflow-x: hidden;
overflow-y: scroll;
top: 0;
}
.ace_scrollbar-h {
overflow-x: scroll;
overflow-y: hidden;
left: 0;
}
.ace_print-margin {
position: absolute;
height: 100%;
}
.ace_text-input {
position: absolute;
z-index: 0;
width: 0.5em;
height: 1em;
opacity: 0;
background: transparent;
-moz-appearance: none;
-webkit-appearance: none;
        appearance: none;
border: none;
resize: none;
outline: none;
overflow: hidden;
font: inherit;
padding: 0 1px;
margin: 0 -1px;
contain: strict;
-ms-user-select: text;
-moz-user-select: text;
-webkit-user-select: text;
user-select: text;
white-space: pre!important;
}
.ace_text-input.ace_composition {
background: transparent;
color: inherit;
z-index: 1000;
opacity: 1;
}
.ace_composition_placeholder { color: transparent }
.ace_composition_marker { 
border-bottom: 1px solid;
position: absolute;
border-radius: 0;
margin-top: 1px;
}
[ace_nocontext=true] {
transform: none!important;
filter: none!important;
-webkit-clip-path: none!important;
        clip-path: none!important;
-webkit-mask : none!important;
        mask : none!important;
contain: none!important;
perspective: none!important;
mix-blend-mode: initial!important;
z-index: auto;
}
.ace_layer {
z-index: 1;
position: absolute;
overflow: hidden;
word-wrap: normal;
white-space: pre;
height: 100%;
width: 100%;
box-sizing: border-box;
pointer-events: none;
}
.ace_gutter-layer {
position: relative;
width: auto;
text-align: right;
pointer-events: auto;
height: 1000000px;
contain: style size layout;
}
.ace_text-layer {
font: inherit !important;
position: absolute;
height: 1000000px;
width: 1000000px;
contain: style size layout;
}
.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {
contain: style size layout;
position: absolute;
top: 0;
left: 0;
right: 0;
}
.ace_hidpi .ace_text-layer,
.ace_hidpi .ace_gutter-layer,
.ace_hidpi .ace_content,
.ace_hidpi .ace_gutter {
contain: strict;
will-change: transform;
}
.ace_hidpi .ace_text-layer > .ace_line, 
.ace_hidpi .ace_text-layer > .ace_line_group {
contain: strict;
}
.ace_cjk {
display: inline-block;
text-align: center;
}
.ace_cursor-layer {
z-index: 4;
}
.ace_cursor {
z-index: 4;
position: absolute;
box-sizing: border-box;
border-left: 2px solid;
transform: translatez(0);
}
.ace_multiselect .ace_cursor {
border-left-width: 1px;
}
.ace_slim-cursors .ace_cursor {
border-left-width: 1px;
}
.ace_overwrite-cursors .ace_cursor {
border-left-width: 0;
border-bottom: 1px solid;
}
.ace_hidden-cursors .ace_cursor {
opacity: 0.2;
}
.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {
opacity: 0;
}
.ace_smooth-blinking .ace_cursor {
transition: opacity 0.18s;
}
.ace_animate-blinking .ace_cursor {
-webkit-animation-duration: 1000ms;
        animation-duration: 1000ms;
-webkit-animation-timing-function: step-end;
        animation-timing-function: step-end;
-webkit-animation-name: blink-ace-animate;
        animation-name: blink-ace-animate;
-webkit-animation-iteration-count: infinite;
        animation-iteration-count: infinite;
}
.ace_animate-blinking.ace_smooth-blinking .ace_cursor {
-webkit-animation-duration: 1000ms;
        animation-duration: 1000ms;
-webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
-webkit-animation-name: blink-ace-animate-smooth;
        animation-name: blink-ace-animate-smooth;
}
@-webkit-keyframes blink-ace-animate {
from, to { opacity: 1; }
60% { opacity: 0; }
}
@keyframes blink-ace-animate {
from, to { opacity: 1; }
60% { opacity: 0; }
}
@-webkit-keyframes blink-ace-animate-smooth {
from, to { opacity: 1; }
45% { opacity: 1; }
60% { opacity: 0; }
85% { opacity: 0; }
}
@keyframes blink-ace-animate-smooth {
from, to { opacity: 1; }
45% { opacity: 1; }
60% { opacity: 0; }
85% { opacity: 0; }
}
.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {
position: absolute;
z-index: 3;
}
.ace_marker-layer .ace_selection {
position: absolute;
z-index: 5;
}
.ace_marker-layer .ace_bracket {
position: absolute;
z-index: 6;
}
.ace_marker-layer .ace_error_bracket {
position: absolute;
border-bottom: 1px solid #DE5555;
border-radius: 0;
}
.ace_marker-layer .ace_active-line {
position: absolute;
z-index: 2;
}
.ace_marker-layer .ace_selected-word {
position: absolute;
z-index: 4;
box-sizing: border-box;
}
.ace_line .ace_fold {
box-sizing: border-box;
display: inline-block;
height: 11px;
margin-top: -2px;
vertical-align: middle;
background-image:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=),
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=);
background-repeat: no-repeat, repeat-x;
background-position: center center, top left;
color: transparent;
border: 1px solid black;
border-radius: 2px;
cursor: pointer;
pointer-events: auto;
}
.ace_dark .ace_fold {
}
.ace_fold:hover{
background-image:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=),
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC);
}
.ace_tooltip {
background-color: #FFF;
background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));
border: 1px solid gray;
border-radius: 1px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
color: black;
max-width: 100%;
padding: 3px 4px;
position: fixed;
z-index: 999999;
box-sizing: border-box;
cursor: default;
white-space: pre;
word-wrap: break-word;
line-height: normal;
font-style: normal;
font-weight: normal;
letter-spacing: normal;
pointer-events: none;
}
.ace_folding-enabled > .ace_gutter-cell {
padding-right: 13px;
}
.ace_fold-widget {
box-sizing: border-box;
margin: 0 -12px 0 1px;
display: none;
width: 11px;
vertical-align: top;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==);
background-repeat: no-repeat;
background-position: center;
border-radius: 3px;
border: 1px solid transparent;
cursor: pointer;
}
.ace_folding-enabled .ace_fold-widget {
display: inline-block;   
}
.ace_fold-widget.ace_end {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==);
}
.ace_fold-widget.ace_closed {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==);
}
.ace_fold-widget:hover {
border: 1px solid rgba(0, 0, 0, 0.3);
background-color: rgba(255, 255, 255, 0.2);
box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);
}
.ace_fold-widget:active {
border: 1px solid rgba(0, 0, 0, 0.4);
background-color: rgba(0, 0, 0, 0.05);
box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
}
.ace_dark .ace_fold-widget {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC);
}
.ace_dark .ace_fold-widget.ace_end {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==);
}
.ace_dark .ace_fold-widget.ace_closed {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==);
}
.ace_dark .ace_fold-widget:hover {
box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
background-color: rgba(255, 255, 255, 0.1);
}
.ace_dark .ace_fold-widget:active {
box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
}
.ace_inline_button {
border: 1px solid lightgray;
display: inline-block;
margin: -1px 8px;
padding: 0 5px;
pointer-events: auto;
cursor: pointer;
}
.ace_inline_button:hover {
border-color: gray;
background: rgba(200,200,200,0.2);
display: inline-block;
pointer-events: auto;
}
.ace_fold-widget.ace_invalid {
background-color: #FFB4B4;
border-color: #DE5555;
}
.ace_fade-fold-widgets .ace_fold-widget {
transition: opacity 0.4s ease 0.05s;
opacity: 0;
}
.ace_fade-fold-widgets:hover .ace_fold-widget {
transition: opacity 0.05s ease 0.05s;
opacity:1;
}
.ace_underline {
text-decoration: underline;
}
.ace_bold {
font-weight: bold;
}
.ace_nobold .ace_bold {
font-weight: normal;
}
.ace_italic {
font-style: italic;
}
.ace_error-marker {
background-color: rgba(255, 0, 0,0.2);
position: absolute;
z-index: 9;
}
.ace_highlight-marker {
background-color: rgba(255, 255, 0,0.2);
position: absolute;
z-index: 8;
}
.ace_mobile-menu {
position: absolute;
line-height: 1.5;
border-radius: 4px;
-ms-user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
background: white;
box-shadow: 1px 3px 2px grey;
border: 1px solid #dcdcdc;
color: black;
}
.ace_dark > .ace_mobile-menu {
background: #333;
color: #ccc;
box-shadow: 1px 3px 2px grey;
border: 1px solid #444;
}
.ace_mobile-button {
padding: 2px;
cursor: pointer;
overflow: hidden;
}
.ace_mobile-button:hover {
background-color: #eee;
opacity:1;
}
.ace_mobile-button:active {
background-color: #ddd;
}
.ace_placeholder {
font-family: arial;
transform: scale(0.9);
transform-origin: left;
white-space: pre;
opacity: 0.7;
margin: 0 10px;
}
.ace-tm .ace_gutter {
background: #f0f0f0;
color: #333;
}
.ace-tm .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-tm .ace_fold {
background-color: #6B72E6;
}
.ace-tm {
background-color: #FFFFFF;
color: black;
}
.ace-tm .ace_cursor {
color: black;
}
.ace-tm .ace_invisible {
color: rgb(191, 191, 191);
}
.ace-tm .ace_storage,
.ace-tm .ace_keyword {
color: blue;
}
.ace-tm .ace_constant {
color: rgb(197, 6, 11);
}
.ace-tm .ace_constant.ace_buildin {
color: rgb(88, 72, 246);
}
.ace-tm .ace_constant.ace_language {
color: rgb(88, 92, 246);
}
.ace-tm .ace_constant.ace_library {
color: rgb(6, 150, 14);
}
.ace-tm .ace_invalid {
background-color: rgba(255, 0, 0, 0.1);
color: red;
}
.ace-tm .ace_support.ace_function {
color: rgb(60, 76, 114);
}
.ace-tm .ace_support.ace_constant {
color: rgb(6, 150, 14);
}
.ace-tm .ace_support.ace_type,
.ace-tm .ace_support.ace_class {
color: rgb(109, 121, 222);
}
.ace-tm .ace_keyword.ace_operator {
color: rgb(104, 118, 135);
}
.ace-tm .ace_string {
color: rgb(3, 106, 7);
}
.ace-tm .ace_comment {
color: rgb(76, 136, 107);
}
.ace-tm .ace_comment.ace_doc {
color: rgb(0, 102, 255);
}
.ace-tm .ace_comment.ace_doc.ace_tag {
color: rgb(128, 159, 191);
}
.ace-tm .ace_constant.ace_numeric {
color: rgb(0, 0, 205);
}
.ace-tm .ace_variable {
color: rgb(49, 132, 149);
}
.ace-tm .ace_xml-pe {
color: rgb(104, 104, 91);
}
.ace-tm .ace_entity.ace_name.ace_function {
color: #0000A2;
}
.ace-tm .ace_heading {
color: rgb(12, 7, 255);
}
.ace-tm .ace_list {
color:rgb(185, 6, 144);
}
.ace-tm .ace_meta.ace_tag {
color:rgb(0, 22, 142);
}
.ace-tm .ace_string.ace_regex {
color: rgb(255, 0, 0)
}
.ace-tm .ace_marker-layer .ace_selection {
background: rgb(181, 213, 255);
}
.ace-tm.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px white;
}
.ace-tm .ace_marker-layer .ace_step {
background: rgb(252, 255, 0);
}
.ace-tm .ace_marker-layer .ace_stack {
background: rgb(164, 229, 101);
}
.ace-tm .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgb(192, 192, 192);
}
.ace-tm .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.07);
}
.ace-tm .ace_gutter-active-line {
background-color : #dcdcdc;
}
.ace-tm .ace_marker-layer .ace_selected-word {
background: rgb(250, 250, 255);
border: 1px solid rgb(200, 200, 250);
}
.ace-tm .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y;
}
.error_widget_wrapper {
background: inherit;
color: inherit;
border:none
}
.error_widget {
border-top: solid 2px;
border-bottom: solid 2px;
margin: 5px 0;
padding: 10px 40px;
white-space: pre-wrap;
}
.error_widget.ace_error, .error_widget_arrow.ace_error{
border-color: #ff5a5a
}
.error_widget.ace_warning, .error_widget_arrow.ace_warning{
border-color: #F1D817
}
.error_widget.ace_info, .error_widget_arrow.ace_info{
border-color: #5a5a5a
}
.error_widget.ace_ok, .error_widget_arrow.ace_ok{
border-color: #5aaa5a
}
.error_widget_arrow {
position: absolute;
border: solid 5px;
border-top-color: transparent!important;
border-right-color: transparent!important;
border-left-color: transparent!important;
top: -5px;
}
/*ext-code_lens.js*/
.ace_codeLens {
position: absolute;
color: #aaa;
font-size: 88%;
background: inherit;
width: 100%;
display: flex;
align-items: flex-end;
pointer-events: none;
}
.ace_codeLens > a {
cursor: pointer;
pointer-events: auto;
}
.ace_codeLens > a:hover {
color: #0000ff;
text-decoration: underline;
}
.ace_dark > .ace_codeLens > a:hover {
color: #4e94ce;
}
/*ext-emmet.js*/
.ace_snippet-marker {
box-sizing: border-box;
background: rgba(194, 193, 208, 0.09);
border: 1px dotted rgba(211, 208, 235, 0.62);
position: absolute;
}
/*ext-keybinding_menu.js*/
#ace_settingsmenu, #kbshortcutmenu {
background-color: #F7F7F7;
color: black;
box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);
padding: 1em 0.5em 2em 1em;
overflow: auto;
position: absolute;
margin: 0;
bottom: 0;
right: 0;
top: 0;
z-index: 9991;
cursor: default;
}
.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {
box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);
background-color: rgba(255, 255, 255, 0.6);
color: black;
}
.ace_optionsMenuEntry:hover {
background-color: rgba(100, 100, 100, 0.1);
transition: all 0.3s
}
.ace_closeButton {
background: rgba(245, 146, 146, 0.5);
border: 1px solid #F48A8A;
border-radius: 50%;
padding: 7px;
position: absolute;
right: -8px;
top: -8px;
z-index: 100000;
}
.ace_closeButton{
background: rgba(245, 146, 146, 0.9);
}
.ace_optionsMenuKey {
color: darkslateblue;
font-weight: bold;
}
.ace_optionsMenuCommand {
color: darkcyan;
font-weight: normal;
}
.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {
vertical-align: middle;
}
.ace_optionsMenuEntry button[ace_selected_button=true] {
background: #e7e7e7;
box-shadow: 1px 0px 2px 0px #adadad inset;
border-color: #adadad;
}
.ace_optionsMenuEntry button {
background: white;
border: 1px solid lightgray;
margin: 0px;
}
.ace_optionsMenuEntry button:hover{
background: #f0f0f0;
}
/*ext-language_tools.js*/
.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {
background-color: #CAD6FA;
z-index: 1;
}
.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {
background-color: #3a674e;
}
.ace_editor.ace_autocomplete .ace_line-hover {
border: 1px solid #abbffe;
margin-top: -1px;
background: rgba(233,233,253,0.4);
position: absolute;
z-index: 2;
}
.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {
border: 1px solid rgba(109, 150, 13, 0.8);
background: rgba(58, 103, 78, 0.62);
}
.ace_completion-meta {
opacity: 0.5;
margin: 0.9em;
}
.ace_completion-message {
color: blue;
}
.ace_editor.ace_autocomplete .ace_completion-highlight{
color: #2d69c7;
}
.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{
color: #93ca12;
}
.ace_editor.ace_autocomplete {
width: 300px;
z-index: 200000;
border: 1px lightgray solid;
position: fixed;
box-shadow: 2px 3px 5px rgba(0,0,0,.2);
line-height: 1.4;
background: #fefefe;
color: #111;
}
.ace_dark.ace_editor.ace_autocomplete {
border: 1px #484747 solid;
box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);
line-height: 1.4;
background: #25282c;
color: #c1c1c1;
}
/*ext-options.js*/
/*ext-prompt.js*/
.ace_prompt_container {
max-width: 600px;
width: 100%;
margin: 20px auto;
padding: 3px;
background: white;
border-radius: 2px;
box-shadow: 0px 2px 3px 0px #555;
}
/*ext-searchbox.js*/
.ace_search {
background-color: #ddd;
color: #666;
border: 1px solid #cbcbcb;
border-top: 0 none;
overflow: hidden;
margin: 0;
padding: 4px 6px 0 4px;
position: absolute;
top: 0;
z-index: 99;
white-space: normal;
}
.ace_search.left {
border-left: 0 none;
border-radius: 0px 0px 5px 0px;
left: 0;
}
.ace_search.right {
border-radius: 0px 0px 0px 5px;
border-right: 0 none;
right: 0;
}
.ace_search_form, .ace_replace_form {
margin: 0 20px 4px 0;
overflow: hidden;
line-height: 1.9;
}
.ace_replace_form {
margin-right: 0;
}
.ace_search_form.ace_nomatch {
outline: 1px solid red;
}
.ace_search_field {
border-radius: 3px 0 0 3px;
background-color: white;
color: black;
border: 1px solid #cbcbcb;
border-right: 0 none;
outline: 0;
padding: 0;
font-size: inherit;
margin: 0;
line-height: inherit;
padding: 0 6px;
min-width: 17em;
vertical-align: top;
min-height: 1.8em;
box-sizing: content-box;
}
.ace_searchbtn {
border: 1px solid #cbcbcb;
line-height: inherit;
display: inline-block;
padding: 0 6px;
background: #fff;
border-right: 0 none;
border-left: 1px solid #dcdcdc;
cursor: pointer;
margin: 0;
position: relative;
color: #666;
}
.ace_searchbtn:last-child {
border-radius: 0 3px 3px 0;
border-right: 1px solid #cbcbcb;
}
.ace_searchbtn:disabled {
background: none;
cursor: default;
}
.ace_searchbtn:hover {
background-color: #eef1f6;
}
.ace_searchbtn.prev, .ace_searchbtn.next {
padding: 0px 0.7em
}
.ace_searchbtn.prev:after, .ace_searchbtn.next:after {
content: "";
border: solid 2px #888;
width: 0.5em;
height: 0.5em;
border-width:  2px 0 0 2px;
display:inline-block;
transform: rotate(-45deg);
}
.ace_searchbtn.next:after {
border-width: 0 2px 2px 0 ;
}
.ace_searchbtn_close {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;
border-radius: 50%;
border: 0 none;
color: #656565;
cursor: pointer;
font: 16px/16px Arial;
padding: 0;
height: 14px;
width: 14px;
top: 9px;
right: 7px;
position: absolute;
}
.ace_searchbtn_close:hover {
background-color: #656565;
background-position: 50% 100%;
color: white;
}
.ace_button {
margin-left: 2px;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-o-user-select: none;
-ms-user-select: none;
user-select: none;
overflow: hidden;
opacity: 0.7;
border: 1px solid rgba(100,100,100,0.23);
padding: 1px;
box-sizing:    border-box!important;
color: black;
}
.ace_button:hover {
background-color: #eee;
opacity:1;
}
.ace_button:active {
background-color: #ddd;
}
.ace_button.checked {
border-color: #3399ff;
opacity:1;
}
.ace_search_options{
margin-bottom: 3px;
text-align: right;
-webkit-user-select: none;
-moz-user-select: none;
-o-user-select: none;
-ms-user-select: none;
user-select: none;
clear: both;
}
.ace_search_counter {
float: left;
font-family: arial;
padding: 0 8px;
}
/*ext-settings_menu.js*/
/*keybinding-emacs.js*/
.ace_occur-highlight {
border-radius: 4px;
background-color: rgba(87, 255, 8, 0.25);
position: absolute;
z-index: 4;
box-sizing: border-box;
box-shadow: 0 0 4px rgb(91, 255, 50);
}
.ace_dark .ace_occur-highlight {
background-color: rgb(80, 140, 85);
box-shadow: 0 0 4px rgb(60, 120, 70);
}
.ace_marker-layer .ace_isearch-result {
position: absolute;
z-index: 6;
box-sizing: border-box;
}
div.ace_isearch-result {
border-radius: 4px;
background-color: rgba(255, 200, 0, 0.5);
box-shadow: 0 0 4px rgb(255, 200, 0);
}
.ace_dark div.ace_isearch-result {
background-color: rgb(100, 110, 160);
box-shadow: 0 0 4px rgb(80, 90, 140);
}
.emacs-mode .ace_cursor{
border: 1px rgba(50,250,50,0.8) solid!important;
box-sizing: border-box!important;
background-color: rgba(0,250,0,0.9);
opacity: 0.5;
}
.emacs-mode .ace_hidden-cursors .ace_cursor{
opacity: 1;
background-color: transparent;
}
.emacs-mode .ace_overwrite-cursors .ace_cursor {
opacity: 1;
background-color: transparent;
border-width: 0 0 2px 2px !important;
}
.emacs-mode .ace_text-layer {
z-index: 4
}
.emacs-mode .ace_cursor-layer {
z-index: 2
}
/*keybinding-vim.js*/
.normal-mode .ace_cursor{
border: none;
background-color: rgba(255,0,0,0.5);
}
.normal-mode .ace_hidden-cursors .ace_cursor{
background-color: transparent;
border: 1px solid red;
opacity: 0.7
}
.ace_dialog {
position: absolute;
left: 0; right: 0;
background: inherit;
z-index: 15;
padding: .1em .8em;
overflow: hidden;
color: inherit;
}
.ace_dialog-top {
border-bottom: 1px solid #444;
top: 0;
}
.ace_dialog-bottom {
border-top: 1px solid #444;
bottom: 0;
}
.ace_dialog input {
border: none;
outline: none;
background: transparent;
width: 20em;
color: inherit;
font-family: monospace;
}
.ace-cobalt .ace_gutter {
background: #011e3a;
color: rgb(128,145,160)
}
.ace-cobalt .ace_print-margin {
width: 1px;
background: #555555
}
.ace-cobalt {
background-color: #002240;
color: #FFFFFF
}
.ace-cobalt .ace_cursor {
color: #FFFFFF
}
.ace-cobalt .ace_marker-layer .ace_selection {
background: rgba(179, 101, 57, 0.75)
}
.ace-cobalt.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #002240;
}
.ace-cobalt .ace_marker-layer .ace_step {
background: rgb(127, 111, 19)
}
.ace-cobalt .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgba(255, 255, 255, 0.15)
}
.ace-cobalt .ace_marker-layer .ace_active-line {
background: rgba(0, 0, 0, 0.35)
}
.ace-cobalt .ace_gutter-active-line {
background-color: rgba(0, 0, 0, 0.35)
}
.ace-cobalt .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(179, 101, 57, 0.75)
}
.ace-cobalt .ace_invisible {
color: rgba(255, 255, 255, 0.15)
}
.ace-cobalt .ace_keyword,
.ace-cobalt .ace_meta {
color: #FF9D00
}
.ace-cobalt .ace_constant,
.ace-cobalt .ace_constant.ace_character,
.ace-cobalt .ace_constant.ace_character.ace_escape,
.ace-cobalt .ace_constant.ace_other {
color: #FF628C
}
.ace-cobalt .ace_invalid {
color: #F8F8F8;
background-color: #800F00
}
.ace-cobalt .ace_support {
color: #80FFBB
}
.ace-cobalt .ace_support.ace_constant {
color: #EB939A
}
.ace-cobalt .ace_fold {
background-color: #FF9D00;
border-color: #FFFFFF
}
.ace-cobalt .ace_support.ace_function {
color: #FFB054
}
.ace-cobalt .ace_storage {
color: #FFEE80
}
.ace-cobalt .ace_entity {
color: #FFDD00
}
.ace-cobalt .ace_string {
color: #3AD900
}
.ace-cobalt .ace_string.ace_regexp {
color: #80FFC2
}
.ace-cobalt .ace_comment {
font-style: italic;
color: #0088FF
}
.ace-cobalt .ace_heading,
.ace-cobalt .ace_markup.ace_heading {
color: #C8E4FD;
background-color: #001221
}
.ace-cobalt .ace_list,
.ace-cobalt .ace_markup.ace_list {
background-color: #130D26
}
.ace-cobalt .ace_variable {
color: #CCCCCC
}
.ace-cobalt .ace_variable.ace_language {
color: #FF80E1
}
.ace-cobalt .ace_meta.ace_tag {
color: #9EFFFF
}
.ace-cobalt .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHCLSvkPAAP3AgSDTRd4AAAAAElFTkSuQmCC) right repeat-y
}

/**
 * Vendor Styles
 */
/**
 * Base styling
 */
/**
 * Components - objects
 */
/**
 * Components - blocks
 */
/**
 * Components - structures
 */
/**
 * Utilities
 */
/**
 * IE specific styling
 */
/**
 * Fonts
 */
/**
 * Material icons
 */
/* http://meyerweb.com/eric/tools/css/reset/
   v5.0.1 | 20191019
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, menu, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
main, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, main, menu, nav, section {
  display: block;
}

/* HTML5 hidden-attribute fix for newer browsers */
*[hidden] {
  display: none;
}

body {
  line-height: 1;
}

menu, ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

@-webkit-keyframes passing-through {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }
  30%, 70% {
    opacity: 1;
    transform: translateY(0px);
  }
  100% {
    opacity: 0;
    transform: translateY(-40px);
  }
}
@keyframes passing-through {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }
  30%, 70% {
    opacity: 1;
    transform: translateY(0px);
  }
  100% {
    opacity: 0;
    transform: translateY(-40px);
  }
}
@-webkit-keyframes slide-in {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }
  30% {
    opacity: 1;
    transform: translateY(0px);
  }
}
@keyframes slide-in {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }
  30% {
    opacity: 1;
    transform: translateY(0px);
  }
}
@-webkit-keyframes pulse {
  0% {
    transform: scale(1);
  }
  10% {
    transform: scale(1.1);
  }
  20% {
    transform: scale(1);
  }
}
@keyframes pulse {
  0% {
    transform: scale(1);
  }
  10% {
    transform: scale(1.1);
  }
  20% {
    transform: scale(1);
  }
}
.dropzone, .dropzone * {
  box-sizing: border-box;
}

.dropzone {
  min-height: 150px;
  border: 2px solid rgba(0, 0, 0, 0.3);
  background: white;
  padding: 20px 20px;
}

.dropzone.dz-clickable {
  cursor: pointer;
}

.dropzone.dz-clickable * {
  cursor: default;
}

.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
  cursor: pointer;
}

.dropzone.dz-started .dz-message {
  display: none;
}

.dropzone.dz-drag-hover {
  border-style: solid;
}

.dropzone.dz-drag-hover .dz-message {
  opacity: 0.5;
}

.dropzone .dz-message {
  text-align: center;
  margin: 2em 0;
}

.dropzone .dz-message .dz-button {
  background: none;
  color: inherit;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  outline: inherit;
}

.dropzone .dz-preview {
  position: relative;
  display: inline-block;
  vertical-align: top;
  margin: 16px;
  min-height: 100px;
}

.dropzone .dz-preview:hover {
  z-index: 1000;
}

.dropzone .dz-preview:hover .dz-details {
  opacity: 1;
}

.dropzone .dz-preview.dz-file-preview .dz-image {
  border-radius: 20px;
  background: #999;
  background: linear-gradient(to bottom, #eee, #ddd);
}

.dropzone .dz-preview.dz-file-preview .dz-details {
  opacity: 1;
}

.dropzone .dz-preview.dz-image-preview {
  background: white;
}

.dropzone .dz-preview.dz-image-preview .dz-details {
  transition: opacity 0.2s linear;
}

.dropzone .dz-preview .dz-remove {
  font-size: 14px;
  text-align: center;
  display: block;
  cursor: pointer;
  border: none;
}

.dropzone .dz-preview .dz-remove:hover {
  text-decoration: underline;
}

.dropzone .dz-preview:hover .dz-details {
  opacity: 1;
}

.dropzone .dz-preview .dz-details {
  z-index: 20;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  font-size: 13px;
  min-width: 100%;
  max-width: 100%;
  padding: 2em 1em;
  text-align: center;
  color: rgba(0, 0, 0, 0.9);
  line-height: 150%;
}

.dropzone .dz-preview .dz-details .dz-size {
  margin-bottom: 1em;
  font-size: 16px;
}

.dropzone .dz-preview .dz-details .dz-filename {
  white-space: nowrap;
}

.dropzone .dz-preview .dz-details .dz-filename:hover span {
  border: 1px solid rgba(200, 200, 200, 0.8);
  background-color: rgba(255, 255, 255, 0.8);
}

.dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
  overflow: hidden;
  text-overflow: ellipsis;
}

.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
  border: 1px solid transparent;
}

.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {
  background-color: rgba(255, 255, 255, 0.4);
  padding: 0 0.4em;
  border-radius: 3px;
}

.dropzone .dz-preview:hover .dz-image img {
  transform: scale(1.05, 1.05);
  filter: blur(8px);
}

.dropzone .dz-preview .dz-image {
  border-radius: 20px;
  overflow: hidden;
  width: 120px;
  height: 120px;
  position: relative;
  display: block;
  z-index: 10;
}

.dropzone .dz-preview .dz-image img {
  display: block;
}

.dropzone .dz-preview.dz-success .dz-success-mark {
  -webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
  animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
}

.dropzone .dz-preview.dz-error .dz-error-mark {
  opacity: 1;
  -webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
  animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
}

.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
  pointer-events: none;
  opacity: 0;
  z-index: 500;
  position: absolute;
  display: block;
  top: 50%;
  left: 50%;
  margin-left: -27px;
  margin-top: -27px;
}

.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {
  display: block;
  width: 54px;
  height: 54px;
}

.dropzone .dz-preview.dz-processing .dz-progress {
  opacity: 1;
  transition: all 0.2s linear;
}

.dropzone .dz-preview.dz-complete .dz-progress {
  opacity: 0;
  transition: opacity 0.4s ease-in;
}

.dropzone .dz-preview:not(.dz-processing) .dz-progress {
  -webkit-animation: pulse 6s ease infinite;
  animation: pulse 6s ease infinite;
}

.dropzone .dz-preview .dz-progress {
  opacity: 1;
  z-index: 1000;
  pointer-events: none;
  position: absolute;
  height: 16px;
  left: 50%;
  top: 50%;
  margin-top: -8px;
  width: 80px;
  margin-left: -40px;
  background: rgba(255, 255, 255, 0.9);
  -webkit-transform: scale(1);
  border-radius: 8px;
  overflow: hidden;
}

.dropzone .dz-preview .dz-progress .dz-upload {
  background: #333;
  background: linear-gradient(to bottom, #666, #444);
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 0;
  transition: width 300ms ease-in-out;
}

.dropzone .dz-preview.dz-error .dz-error-message {
  display: block;
}

.dropzone .dz-preview.dz-error:hover .dz-error-message {
  opacity: 1;
  pointer-events: auto;
}

.dropzone .dz-preview .dz-error-message {
  pointer-events: none;
  z-index: 1000;
  position: absolute;
  display: block;
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  border-radius: 8px;
  font-size: 13px;
  top: 130px;
  left: -10px;
  width: 140px;
  background: #be2626;
  background: linear-gradient(to bottom, #be2626, #a92222);
  padding: 0.5em 1.2em;
  color: white;
}

.dropzone .dz-preview .dz-error-message:after {
  content: "";
  position: absolute;
  top: -6px;
  left: 64px;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #be2626;
}

.ss-main {
  position: relative;
  display: inline-block;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  color: #666;
  width: 100%;
}

.ss-main .ss-single-selected {
  display: flex;
  cursor: pointer;
  width: 100%;
  height: 30px;
  padding: 6px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #fff;
  outline: 0;
  box-sizing: border-box;
  transition: background-color 0.2s;
}

.ss-main .ss-single-selected.ss-disabled {
  background-color: #dcdee2;
  cursor: not-allowed;
}

.ss-main .ss-single-selected.ss-open-above {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}

.ss-main .ss-single-selected.ss-open-below {
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}

.ss-main .ss-single-selected .placeholder {
  display: flex;
  flex: 1 1 100%;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
  width: calc(100% - 30px);
  line-height: 1em;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.ss-main .ss-single-selected .placeholder * {
  display: flex;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: auto;
}

.ss-main .ss-single-selected .placeholder .ss-disabled {
  color: #dedede;
}

.ss-main .ss-single-selected .ss-deselect {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 1 auto;
  margin: 0 6px 0 6px;
  font-weight: bold;
}

.ss-main .ss-single-selected .ss-deselect.ss-hide {
  display: none;
}

.ss-main .ss-single-selected .ss-arrow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 1 auto;
  margin: 0 6px 0 6px;
}

.ss-main .ss-single-selected .ss-arrow span {
  border: solid #666;
  border-width: 0 2px 2px 0;
  display: inline-block;
  padding: 3px;
  transition: transform 0.2s, margin 0.2s;
}

.ss-main .ss-single-selected .ss-arrow span.arrow-up {
  transform: rotate(-135deg);
  margin: 3px 0 0 0;
}

.ss-main .ss-single-selected .ss-arrow span.arrow-down {
  transform: rotate(45deg);
  margin: -3px 0 0 0;
}

.ss-main .ss-multi-selected {
  display: flex;
  flex-direction: row;
  cursor: pointer;
  min-height: 30px;
  width: 100%;
  padding: 0 0 0 3px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #fff;
  outline: 0;
  box-sizing: border-box;
  transition: background-color 0.2s;
}

.ss-main .ss-multi-selected.ss-disabled {
  background-color: #dcdee2;
  cursor: not-allowed;
}

.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-disabled {
  color: #666;
}

.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-value .ss-value-delete {
  cursor: not-allowed;
}

.ss-main .ss-multi-selected.ss-open-above {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}

.ss-main .ss-multi-selected.ss-open-below {
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}

.ss-main .ss-multi-selected .ss-values {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  flex: 1 1 100%;
  width: calc(100% - 30px);
}

.ss-main .ss-multi-selected .ss-values .ss-disabled {
  display: flex;
  padding: 4px 5px;
  margin: 2px 0px;
  line-height: 1em;
  align-items: center;
  width: 100%;
  color: #dedede;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@-webkit-keyframes scaleIn {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes scaleIn {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@-webkit-keyframes scaleOut {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0);
    opacity: 0;
  }
}
@keyframes scaleOut {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0);
    opacity: 0;
  }
}
.ss-main .ss-multi-selected .ss-values .ss-value {
  display: flex;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  align-items: center;
  font-size: 12px;
  padding: 3px 5px;
  margin: 3px 5px 3px 0px;
  color: #fff;
  background-color: #5897fb;
  border-radius: 4px;
  -webkit-animation-name: scaleIn;
          animation-name: scaleIn;
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-timing-function: ease-out;
          animation-timing-function: ease-out;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}

.ss-main .ss-multi-selected .ss-values .ss-value.ss-out {
  -webkit-animation-name: scaleOut;
          animation-name: scaleOut;
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-timing-function: ease-out;
          animation-timing-function: ease-out;
}

.ss-main .ss-multi-selected .ss-values .ss-value .ss-value-delete {
  margin: 0 0 0 5px;
  cursor: pointer;
}

.ss-main .ss-multi-selected .ss-add {
  display: flex;
  flex: 0 1 3px;
  margin: 9px 12px 0 5px;
}

.ss-main .ss-multi-selected .ss-add .ss-plus {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #666;
  position: relative;
  height: 10px;
  width: 2px;
  transition: transform 0.2s;
}

.ss-main .ss-multi-selected .ss-add .ss-plus:after {
  background: #666;
  content: "";
  position: absolute;
  height: 2px;
  width: 10px;
  left: -4px;
  top: 4px;
}

.ss-main .ss-multi-selected .ss-add .ss-plus.ss-cross {
  transform: rotate(45deg);
}

.ss-content {
  position: absolute;
  width: 100%;
  margin: -1px 0 0 0;
  box-sizing: border-box;
  border: solid 1px #dcdee2;
  z-index: 1010;
  background-color: #fff;
  transform-origin: center top;
  transition: transform 0.2s, opacity 0.2s;
  opacity: 0;
  transform: scaleY(0);
}

.ss-content.ss-open {
  display: block;
  opacity: 1;
  transform: scaleY(1);
}

.ss-content .ss-search {
  display: flex;
  flex-direction: row;
  padding: 8px 8px 6px 8px;
}

.ss-content .ss-search.ss-hide {
  height: 0px;
  opacity: 0;
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 0px;
}

.ss-content .ss-search.ss-hide input {
  height: 0px;
  opacity: 0;
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 0px;
}

.ss-content .ss-search input {
  display: inline-flex;
  font-size: inherit;
  line-height: inherit;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0px;
  height: 30px;
  padding: 6px 8px;
  margin: 0;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #fff;
  outline: 0;
  text-align: left;
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -webkit-appearance: textfield;
}

.ss-content .ss-search input::-moz-placeholder {
  color: #8a8a8a;
  vertical-align: middle;
}

.ss-content .ss-search input:-ms-input-placeholder {
  color: #8a8a8a;
  vertical-align: middle;
}

.ss-content .ss-search input::placeholder {
  color: #8a8a8a;
  vertical-align: middle;
}

.ss-content .ss-search input:focus {
  box-shadow: 0 0 5px #5897fb;
}

.ss-content .ss-search .ss-addable {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  font-size: 22px;
  font-weight: bold;
  flex: 0 0 30px;
  height: 30px;
  margin: 0 0 0 8px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  box-sizing: border-box;
}

.ss-content .ss-addable {
  padding-top: 0px;
}

.ss-content .ss-list {
  max-height: 200px;
  overflow-x: hidden;
  overflow-y: auto;
  text-align: left;
}

.ss-content .ss-list .ss-optgroup .ss-optgroup-label {
  padding: 6px 10px 6px 10px;
  font-weight: bold;
}

.ss-content .ss-list .ss-optgroup .ss-option {
  padding: 6px 6px 6px 25px;
}

.ss-content .ss-list .ss-optgroup-label-selectable {
  cursor: pointer;
}

.ss-content .ss-list .ss-optgroup-label-selectable:hover {
  color: #fff;
  background-color: #5897fb;
}

.ss-content .ss-list .ss-option {
  padding: 6px 10px 6px 10px;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.ss-content .ss-list .ss-option * {
  display: inline-block;
}

.ss-content .ss-list .ss-option:hover, .ss-content .ss-list .ss-option.ss-highlighted {
  color: #fff;
  background-color: #5897fb;
}

.ss-content .ss-list .ss-option.ss-disabled {
  cursor: not-allowed;
  color: #dedede;
  background-color: #fff;
}

.ss-content .ss-list .ss-option:not(.ss-disabled).ss-option-selected {
  color: #666;
  background-color: rgba(88, 151, 251, 0.1);
}

.ss-content .ss-list .ss-option.ss-hide {
  display: none;
}

.ss-content .ss-list .ss-option .ss-search-highlight {
  background-color: #fffb8c;
}

.ss-main .ss-single-selected {
  border: none;
  height: auto;
  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z'/></svg>");
  background-repeat: no-repeat;
  background-position: right;
  padding: 11px 40px 11px 8px;
}
.ss-main .ss-single-selected .ss-arrow {
  display: none;
}
.ss-main .ss-single-selected .placeholder {
  min-height: 18px;
}
.ss-main.select-field__input {
  background-image: none;
  padding-right: 0;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.tippy-box {
  background: #ffffff;
  box-shadow: 0 10px 10px 0 rgba(74, 78, 87, 0.2);
  border-top: 1px solid rgba(74, 78, 87, 0.1);
  -webkit-animation: dropDown 0.2s ease-in both;
          animation: dropDown 0.2s ease-in both;
}

.tippy-content {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  text-align: center;
  line-height: 20px;
  color: #4a4e57;
  white-space: pre-line;
  justify-content: center;
  width: 100%;
  padding: 8px;
}
@media (min-width: 768px) {
  .tippy-content {
    padding: 8px 24px;
  }
}
.tippy-content:hover {
  background: #f7f7f7;
}

.tippy-arrow {
  width: 16px;
  height: 16px;
  color: #ffffff;
}
.tippy-arrow::before {
  content: "";
  position: absolute;
  border-color: transparent;
  border-style: solid;
}
.tippy-box[data-placement^=top] > .tippy-arrow::before {
  bottom: 8px;
  left: 0;
  border-width: 8px 8px 0;
  border-top-color: initial;
  transform-origin: center top;
}
.tippy-box[data-placement^=bottom] > .tippy-arrow {
  top: 0;
}
.tippy-box[data-placement^=bottom] > .tippy-arrow::before {
  top: -8px;
  left: 0;
  border-width: 0 8px 8px;
  border-color: transparent;
  border-bottom-color: rgba(74, 78, 87, 0.1);
  transform-origin: center bottom;
}
.tippy-box[data-placement^=bottom] > .tippy-arrow::after {
  content: "";
  position: absolute;
  border-color: transparent;
  border-style: solid;
  top: -7px;
  left: 0;
  border-width: 0 8px 8px;
  border-bottom-color: initial;
  transform-origin: center bottom;
}
.tippy-box:hover .tippy-arrow {
  color: #f7f7f7;
}

* {
  box-sizing: border-box;
}

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

html {
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
}

body {
  background: #ffffff;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow-y: scroll;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.has-suppressed-highlight button:focus,
body.has-suppressed-highlight input:focus,
body.has-suppressed-highlight select:focus,
body.has-suppressed-highlight summary:focus,
body.has-suppressed-highlight textarea:focus {
  outline: none;
}

main {
  flex: 1 0 auto;
}

header,
footer {
  flex-shrink: 0;
}

select {
  border: 0;
  background: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

button,
input {
  border: 0;
  background: none;
  cursor: pointer;
  margin: 0;
  padding: 0;
}
button::-ms-clear,
input::-ms-clear {
  display: none;
}

input[type=text] {
  min-width: 0;
}

summary {
  list-style: none;
}

summary::-webkit-details-marker {
  display: none;
}

summary::after {
  background: none;
}

details[open] summary::after {
  background: none;
}

input[type=search],
input[type=search]::-webkit-search-decoration,
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-results-button,
input[type=search]::-webkit-search-results-decoration {
  -webkit-appearance: none;
          appearance: none;
}

img {
  max-width: 100%;
  vertical-align: middle;
  border: 0;
}

strong,
b {
  font-weight: 700;
}

:root {
  --content-max-width: 1244px;
  --theme-bg-colour: #f7f7f7;
  --theme-alt-bg-colour: #f7f7f7;
  --theme-text-colour: #4a4e57;
  --theme-alt-text-colour: #d9121f;
}
:root .t-discover {
  --theme-bg-colour: #00bf9f;
  --theme-alt-bg-colour: #40ceb7;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-air-quality {
  --theme-bg-colour: #00bf9f;
  --theme-alt-bg-colour: #40ceb7;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-activist-engineering {
  --theme-bg-colour: #ffffff;
  --theme-alt-bg-colour: #40ceb7;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-forum {
  --theme-bg-colour: #0098bf;
  --theme-alt-bg-colour: #40b2cf;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-home {
  --theme-bg-colour: #e36666;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-learn,
:root .t-grass-roots-education,
:root .t-student-innovation,
:root .t-learning-and-skills,
:root .t-opportunities {
  --theme-bg-colour: #01c44e;
  --theme-alt-bg-colour: #41d37a;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-resources {
  --theme-bg-colour: #ffdb0f;
  --theme-alt-bg-colour: #ffe44b;
  --theme-text-colour: #1d1d1b;
}
:root .t-services {
  --theme-bg-colour: #ff8b2d;
  --theme-alt-bg-colour: #fea861;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-innovation {
  --theme-bg-colour: #ffffff;
  --theme-alt-bg-colour: #fea861;
  --theme-text-colour: #1d1d1b;
}
:root .t-software,
:root .t-software-ds-pcb,
:root .t-software-ds-pcb-pro,
:root .t-software-dse,
:root .t-software-dsm,
:root .t-software-pcb-compare,
:root .t-software-ds-pcb-v10,
:root .t-software-ds-pcb-pro-v10,
:root .t-draftsight,
:root .t-software-pcb-compare-v10 {
  --theme-bg-colour: #d1aadc;
  --theme-alt-bg-colour: #ddbfe5;
  --theme-text-colour: #1d1d1b;
}

body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover, a:focus {
  color: #4a4e57;
  text-decoration: none;
}

button:hover {
  text-decoration: none;
}

.header {
  color: #4a4e57;
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 400;
}

.o-button:hover, .o-button:focus {
  color: #ffffff;
}
.o-button.o-button--secondary:hover, .o-button.o-button--secondary:focus {
  color: #1d1d1b;
}

.footer__nav-link > a:hover {
  color: #ffffff;
}

.filter-bar__filter {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  line-height: normal;
}
.filter-bar__filter:hover, .filter-bar__filter:focus, .filter-bar__filter.is-active {
  color: #ffffff;
}

.language-selector__link:focus {
  color: #ffffff;
}

.wysiwyg ol li::before {
  display: none;
}
.wysiwyg ul li {
  background-image: none;
  padding-left: 0;
}

.o-badge {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  max-width: 100%;
  border-radius: 4px;
  padding: 4px 16px;
  margin-bottom: 4px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  color: #ffffff;
  background-color: #1d1d1b;
}

.o-badge--tutorial {
  background-color: #bcbcbc;
  color: #1d1d1b;
}

.o-badge--product {
  background-color: #d9121f;
}

.o-branded-text {
  font-weight: 700;
}

.o-branded-text__highlight {
  color: #d9121f;
}

.o-button {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  line-height: 1;
  padding: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #ffffff;
  border-radius: 4px;
  background-color: #1d1d1b;
  cursor: pointer;
}
.o-button:hover {
  background-color: #4a4e57;
}
.o-button:disabled {
  pointer-events: none;
}

@media (max-width: 768px) {
  .o-button--full-width-mobile {
    width: 100%;
  }
}

.o-button--small {
  padding: 12px 16px;
}

.o-button--danger {
  background-color: #d9121f;
}

.o-button--secondary {
  color: #1d1d1b;
  background-color: #edeff1;
}
.o-button--secondary:hover {
  background-color: #bcbcbc;
}

.o-button--active {
  background-color: #bcbcbc;
}

.o-button--ghost {
  color: #1d1d1b;
  background-color: transparent;
}
.o-button--ghost:hover {
  color: #1d1d1b;
  background-color: transparent;
}

.is-loading-cards .o-button__load-more, .has-all-items .o-button__load-more {
  display: none;
}

.o-button--icon-left,
.o-button--icon-right {
  position: relative;
  vertical-align: bottom;
  padding-left: 40px;
  padding-right: 40px;
}
.o-button--small .o-button--icon-left,
.o-button--small .o-button--icon-right {
  padding-left: 24px;
  padding-right: 24px;
}

.o-button--icon-right .o-button__icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 16px;
}
.o-button--icon-left .o-button__icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 16px;
}

.o-show-more {
  position: absolute;
  bottom: -60px;
  width: 120px;
  border-radius: 4px;
  background-color: #f7f7f7;
  content: "";
  color: #4a4e57;
}
.o-show-more::before {
  content: "keyboard_arrow_up";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 58px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-retracted .o-show-more::before {
  content: "keyboard_arrow_down";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 58px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.form__errors {
  margin-bottom: 24px;
}

.form__error {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #d9121f;
}

.form__field-group {
  margin-bottom: 24px;
}
.form__field-group > .input-field {
  margin-bottom: 0;
}
.form__field-group > .input-field > .input-field__label {
  margin-bottom: 8px;
}
.form__field-group .o-radio {
  margin-bottom: 8px;
}

.form__legend {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .form__legend {
    font-size: 28px;
    line-height: 36px;
  }
}

.form__toggle {
  display: none;
}
.form__toggle.is-visible {
  margin-bottom: 24px;
  display: block;
  padding: 24px 24px 1px;
  background-color: #f7f7f7;
}

/**
 * FormField
 *
 * To be used as follows:
 * @include formField(string fieldName);
 * Applies default styling to basic form field elements such as input, label, errors etc.
 *
 */
/**
 * ToggleField
 *
 * To be used as follows:
 * @include toggleField(string fieldName);
 * Applies default styling to toggle form field elements such as checkboxes & radio buttons.
 *
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.o-checkbox {
  margin-bottom: 24px;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.o-checkbox__input {
  opacity: 0;
  position: absolute;
  z-index: -1;
}
.o-checkbox__input:focus + .o-checkbox__label::before {
  outline: 2px solid #3244ff;
  outline-offset: 2px;
}
.has-suppressed-highlight .o-checkbox__input:focus + .o-checkbox__label::before {
  outline: none;
  outline-offset: 0;
  box-shadow: 0 0 4px 0 #3244ff;
}

.o-checkbox__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  position: relative;
  padding-left: 24px;
  color: #1d1d1b;
  cursor: pointer;
}
.o-checkbox__label::before {
  position: absolute;
  top: 4px;
  left: 0;
  content: "";
  border: 2px solid #4a4e57;
  margin-right: 8px;
  display: inline-block;
  background-color: #ffffff;
}
.o-checkbox__label > span {
  flex: 1;
}
.o-checkbox__label:hover::before {
  background: #edeff1;
}

.o-checkbox__error {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.o-checkbox__error::before {
  content: "error";
  font-family: "Material Icons Round";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.o-checkbox__help {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 8px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
}
.o-checkbox__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.o-checkbox__label {
  align-items: center;
}
.o-checkbox__label.input-field__label {
  font-weight: normal;
}
.o-checkbox__label::before {
  height: 18px;
  width: 18px;
  border-radius: 3px;
  align-self: flex-start;
}

.o-checkbox__input:checked + .o-checkbox__label::before {
  background-color: #3244ff;
  border-radius: 3px;
  transform: rotate(0deg) scale(1);
  opacity: 1;
  border: 2px solid #3244ff;
}
.o-checkbox__input:checked + .o-checkbox__label::after {
  content: "";
  transform: rotate(45deg) scale(1);
  position: absolute;
  left: 6px;
  top: 6px;
  opacity: 1;
  width: 6px;
  height: 12px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  background-color: transparent;
  border-radius: 0;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.o-radio {
  margin-bottom: 24px;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.o-radio__input {
  opacity: 0;
  position: absolute;
  z-index: -1;
}
.o-radio__input:focus + .o-radio__label::before {
  outline: 2px solid #3244ff;
  outline-offset: 2px;
}
.has-suppressed-highlight .o-radio__input:focus + .o-radio__label::before {
  outline: none;
  outline-offset: 0;
  box-shadow: 0 0 4px 0 #3244ff;
}

.o-radio__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  position: relative;
  padding-left: 24px;
  color: #1d1d1b;
  cursor: pointer;
}
.o-radio__label::before {
  position: absolute;
  top: 4px;
  left: 0;
  content: "";
  border: 2px solid #4a4e57;
  margin-right: 8px;
  display: inline-block;
  background-color: #ffffff;
}
.o-radio__label > span {
  flex: 1;
}
.o-radio__label:hover::before {
  background: #edeff1;
}

.o-radio__error {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.o-radio__error::before {
  content: "error";
  font-family: "Material Icons Round";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.o-radio__help {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 8px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
}
.o-radio__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.o-radio__label.input-field__label {
  font-weight: normal;
}
.o-radio__label::before {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  flex: 0 0 18px;
  align-self: flex-start;
}

.o-radio__input:checked + .o-radio__label::before {
  background: transparent;
  border-color: #3244ff;
}
.o-radio__input:checked + .o-radio__label::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 9px;
  width: 8px;
  height: 8px;
  display: inline-block;
  border-radius: 50%;
  margin-right: 10px;
  background: #3244ff;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.select-field {
  margin-bottom: 24px;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.select-field__input {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.select-field__input:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.select-field__input:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.is-invalid .select-field__input {
  border-color: #d9121f;
}
.select-field__input::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.select-field__input:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.select-field__input::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

.select-field__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.is-invalid > .select-field__label {
  color: #d9121f;
}
.select-field__label a {
  font-weight: 700;
}
.select-field__label a:hover {
  color: #d9121f;
}

.o-form_row__label--disabled {
  color: #7f8695;
}

.select-field__label--regular {
  font-weight: 400;
}

.select-field__label-required {
  font-weight: normal;
}

.select-field__error {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.select-field__error::before {
  content: "error";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.select-field__help {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
  margin-bottom: 8px;
}
.select-field__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.select-field__input {
  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z'/></svg>");
  background-repeat: no-repeat;
  background-position: calc(100% - 8px) 50%;
  padding-right: 40px;
}

.select-field__input--no-padding {
  padding: 0;
}

.select-field--inline {
  margin: 24px 0 0;
}
@media (min-width: 768px) {
  .select-field--inline {
    flex-direction: row;
    align-items: center;
    margin: 0;
  }
}
.select-field--inline .select-field__label {
  margin-bottom: 12px;
}
@media (min-width: 768px) {
  .select-field--inline .select-field__label {
    margin: 0 12px 0 0;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.input-field {
  margin-bottom: 24px;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.input-field__input {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.input-field__input:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.input-field__input:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.is-invalid .input-field__input {
  border-color: #d9121f;
}
.input-field__input::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.input-field__input:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.input-field__input::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

.input-field__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.is-invalid > .input-field__label {
  color: #d9121f;
}
.input-field__label a {
  font-weight: 700;
}
.input-field__label a:hover {
  color: #d9121f;
}

.o-form_row__label--disabled {
  color: #7f8695;
}

.input-field__label--regular {
  font-weight: 400;
}

.input-field__label-required {
  font-weight: normal;
}

.input-field__error {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.input-field__error::before {
  content: "error";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.input-field__help {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
  margin-bottom: 8px;
}
.input-field__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.input-field--with-associated-control {
  margin-bottom: 8px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.o-bar-input {
  border: none;
  margin: 0;
  padding: 4px 0 8px;
}

.o-bar-input__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #ffffff;
}

.o-bar-input__options {
  display: flex;
}

.o-bar-input__input {
  display: none;
}

.o-bar-input__label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 20px;
  flex: 1 1 20%;
  background-color: #edeff1;
  color: #1d1d1b;
  margin-right: 8px;
  transition: all 0.3s ease;
  text-align: center;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  padding: 4px;
  cursor: pointer;
}
.o-bar-input__label:last-child {
  margin-right: 0;
}

.o-bar-input__input:not(:checked) + .o-bar-input__label:hover {
  background-color: #d9121f;
  color: #ffffff;
}

.o-bar-input__input:checked + .o-bar-input__label {
  background-color: #d9121f;
  color: #ffffff;
}

.o-icon {
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.o-banner-title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #ffffff;
}

.o-landing-page-title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-landing-page-title {
    font-size: 48px;
    line-height: 56px;
  }
}

.o-page-title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-page-title {
    font-size: 40px;
    line-height: 48px;
  }
}

.o-section-title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-section-title {
    font-size: 32px;
    line-height: 40px;
  }
}

.o-section-sub-title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-section-sub-title {
    font-size: 28px;
    line-height: 36px;
  }
}

.o-content-title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-content-title {
    font-size: 28px;
    line-height: 36px;
  }
}

.o-card-title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #4a4e57;
}

.o-card-title--small {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
}

.o-skip-to-content {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  left: -10000px;
  padding: 8px;
  z-index: 1;
  background-color: #ffffff;
}
.o-skip-to-content:focus {
  top: 80px;
  left: 16px;
}

.o-loading-indicator {
  display: block;
  content: "";
  margin: 100px calc(50% - 25px);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border-top: 5px solid #d9121f;
  border-right: 5px solid transparent;
  -webkit-animation: spin 0.6s linear infinite;
          animation: spin 0.6s linear infinite;
}

.o-loading-indicator--small {
  margin: 0 16px;
  display: inline-block;
  width: 16px;
  height: 16px;
  border-top: 2px solid #d9121f;
}

.o-loading-indicator--feed {
  display: none;
}
.is-loading-cards .o-loading-indicator--feed {
  display: block;
}

.o-loading-indicator--lazy-load {
  display: none;
}
.is-loading-cards .o-loading-indicator--lazy-load, .is-loading-content .o-loading-indicator--lazy-load {
  display: block;
}

@-webkit-keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.o-feedback-trigger {
  position: -webkit-sticky;
  position: sticky;
  top: calc(100vh - 64px);
  left: 16px;
  display: block;
  z-index: 9;
  height: 52px;
  width: 52px;
  padding: 8px;
  margin-bottom: -52px;
  border-radius: 50%;
  background-color: #d46d6a;
  box-shadow: 0 4px 4px 0 rgba(29, 29, 27, 0.4);
  transition: box-shadow 0.3s ease-in-out, background 0.3s ease-in-out;
}
@media (min-width: 768px) {
  .o-feedback-trigger {
    top: calc(100vh - 90px);
    height: 74px;
    width: 74px;
    margin-bottom: -74px;
    padding: 16px;
  }
}
@media (min-width: 1440px) {
  .o-feedback-trigger {
    left: calc(50% - 1244px / 1.8);
  }
}
.o-feedback-trigger::after {
  content: "thumbs_up_down";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  position: absolute;
  left: 50%;
  top: 50%;
  font-size: 24px;
  color: #ffffff;
  transform: translate(-50%, -50%);
  speak: none;
}
@media (min-width: 768px) {
  .o-feedback-trigger::after {
    font-size: 40px;
  }
}
.o-feedback-trigger:hover {
  box-shadow: 0 4px 4px 0 rgba(29, 29, 27, 0.1);
}
.o-feedback-trigger.is-active {
  background-color: #4a4e57;
}
.o-feedback-trigger.is-active::after {
  content: "expand_more";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 62px;
}
@media (min-width: 768px) {
  .o-feedback-trigger.is-active::after {
    font-size: 74px;
  }
}

.feedback-content {
  text-align: center;
}

.w-feedback-trigger {
  padding: 0 0 68px;
}
@media (min-width: 768px) {
  .w-feedback-trigger {
    padding-bottom: 74px;
  }
}
@media (min-width: 1440px) {
  .w-feedback-trigger {
    padding-bottom: 0;
  }
}

@media (min-width: 1440px) {
  .w-feedback-trigger--bottom-padding {
    padding-bottom: 74px;
  }
}

@media (min-width: 1440px) {
  .o-feedback-trigger--2col-layout {
    left: calc(50% - 1244px/2 - 74px - 40px * 2);
  }
}

.o-table {
  width: 100%;
}
.o-table.is-hidden {
  display: none;
}
.o-table th {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #1d1d1b;
  border-bottom: solid 1px #bcbcbc;
}
.o-table td {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  border-bottom: solid 1px #edeff1;
  font-weight: normal;
}
.o-table td,
.o-table th {
  text-align: left;
  padding: 16px;
  vertical-align: top;
}
.o-table td:first-child,
.o-table th:first-child {
  text-align: left;
  padding-left: 0;
}
.o-table td:last-child,
.o-table th:last-child {
  text-align: left;
  padding-right: 0;
}
.o-table.o-table--with-actions td:last-child {
  padding-top: 8px;
  padding-bottom: 8px;
}

.w-table {
  overflow: auto;
}

.o-body-large-regular {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
}

.o-body-large-bold {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}

.o-body-regular {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

.o-body-bold {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
}

.o-body-supporting {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
}

.o-heading-extra-large {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
}
@media (min-width: 768px) {
  .o-heading-extra-large {
    font-size: 48px;
    line-height: 56px;
  }
}

.o-heading-large {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
}
@media (min-width: 768px) {
  .o-heading-large {
    font-size: 40px;
    line-height: 48px;
  }
}

.o-heading-medium {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
}
@media (min-width: 768px) {
  .o-heading-medium {
    font-size: 32px;
    line-height: 40px;
  }
}

.o-heading-small {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .o-heading-small {
    font-size: 28px;
    line-height: 36px;
  }
}

.o-text-link {
  font-weight: 700;
  color: #3244ff;
}
.o-text-link:hover {
  color: #d9121f;
}

.notice-banner {
  background-color: #f7f7f7;
}

.notice-banner__content {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .notice-banner__content {
    padding-left: 24px;
  }
}

.notice-banner__container {
  justify-content: center;
  align-items: center;
}
@media (min-width: 768px) {
  .notice-banner__container {
    display: flex;
    justify-content: center;
    align-items: center;
  }
}

.notice-banner__buttons {
  margin: 24px;
}
@media (min-width: 768px) {
  .notice-banner__buttons {
    display: flex;
    flex-wrap: initial;
    justify-content: left;
    margin: 24px;
  }
}

.notice-banner__button {
  margin: 24px;
}

.w-advert {
  width: 100%;
  padding: 24px 16px;
  overflow: hidden;
  display: flex;
  justify-content: center;
}

.advert.advert--placeholder {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgb(216, 216, 216);
  height: 250px;
  width: 300px;
}
@media (min-width: 768px) {
  .advert.advert--placeholder {
    height: 90px;
    width: 728px;
  }
}

.access-restriction {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
}

.access-restriction__teaser {
  position: relative;
  height: 150px;
  overflow-y: hidden;
  margin-bottom: 24px;
}
.access-restriction__teaser::after {
  position: absolute;
  content: "";
  background: linear-gradient(to bottom, transparent 0%, transparent 25px, #ffffff 150px, #ffffff 100%);
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.access-restriction__panel > * {
  margin-bottom: 24px;
}
.access-restriction__panel :last-child {
  margin-bottom: 0;
}

.access-restriction__panel-title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
}
@media (min-width: 768px) {
  .access-restriction__panel-title {
    font-size: 40px;
    line-height: 48px;
  }
}

.access-restriction__register-button {
  display: flex;
}

@media (max-width: 768px) {
  .access-restriction__register-button {
    flex-direction: column;
  }
}
.addthis__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
}

.alert {
  --alert-bg-colour: #f7f7f7;
  --alert-text-colour: #4a4e57;
  --alert-border-colour: #edeff1;
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  position: relative;
  padding-top: 12px;
  padding-left: 24px;
  padding-bottom: 12px;
  padding-right: 64px;
  color: var(--alert-text-colour);
  background-color: var(--alert-bg-colour);
  border: 1px solid var(--alert-border-colour);
  border-radius: 4px;
}

.alert--success {
  --alert-bg-colour: #dff0d8;
  --alert-text-colour: #3c763d;
  --alert-border-colour: #d6e9c6;
}

.alert--error {
  --alert-bg-colour: #f8d7da;
  --alert-text-colour: #721c24;
  --alert-border-colour: #f5c6cb;
}

.alert--warning {
  --alert-bg-colour: #fff3cd;
  --alert-text-colour: #856404;
  --alert-border-colour: #ffeeba;
}

.alert--info {
  --alert-bg-colour: #d1ecf1;
  --alert-text-colour: #0c5460;
  --alert-border-colour: #bee5eb;
}

.alert__close {
  position: absolute;
  right: 0;
  top: 0;
  height: 45px;
  width: 40px;
  color: var(--alert-text-colour);
  content: "";
}
.alert__close::before {
  content: "close";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 20px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

.attachments__tooltip, .comment-report__tooltip {
  position: absolute;
  left: 0;
  width: 100%;
  background: #ffffff;
  margin-top: 20px;
  display: none;
  box-shadow: 0 10px 10px 0 rgba(74, 78, 87, 0.2);
  z-index: 1;
  border-top: 1px solid rgba(74, 78, 87, 0.1);
}
@media (min-width: 768px) {
  .attachments__tooltip, .comment-report__tooltip {
    width: auto;
    margin-top: 24px;
    border-radius: 4px;
    box-shadow: 2px 2px 1px rgba(225, 225, 225, 0.5);
    left: 50%;
    transform: translateX(-50%);
    border-top: none;
  }
  .attachments__tooltip::before, .comment-report__tooltip::before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #ffffff;
    left: 50%;
    transform: translateX(-50%);
    top: -5px;
  }
  .attachments__tooltip::after, .comment-report__tooltip::after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid rgba(225, 225, 225, 0.5);
    left: 50%;
    z-index: -1;
    transform: translateX(-50%);
    top: -6px;
  }
}
.is-dropdown-open .attachments__tooltip, .is-dropdown-open .comment-report__tooltip {
  display: block;
  -webkit-animation: dropDown 0.2s ease-in both;
          animation: dropDown 0.2s ease-in both;
}
@-webkit-keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}

.attachments__tooltip-link, .comment-report__tooltip-link {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
  white-space: nowrap;
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 16px;
}
@media (min-width: 768px) {
  .attachments__tooltip-link, .comment-report__tooltip-link {
    font-family: "Roboto", Arial, sans-serif;
    font-size: 12px;
    line-height: 20px;
    padding: 8px 24px;
  }
}
.attachments__tooltip-link:hover, .comment-report__tooltip-link:hover {
  background: #f7f7f7;
}

.forum-content__text h1, .wysiwyg h1, .comment__text h1 {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
}
@media (min-width: 768px) {
  .forum-content__text h1, .wysiwyg h1, .comment__text h1 {
    font-size: 40px;
    line-height: 48px;
  }
}
.forum-content__text h2, .wysiwyg h2, .comment__text h2 {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
}
@media (min-width: 768px) {
  .forum-content__text h2, .wysiwyg h2, .comment__text h2 {
    font-size: 32px;
    line-height: 40px;
  }
}
.forum-content__text h3, .wysiwyg h3, .comment__text h3 {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .forum-content__text h3, .wysiwyg h3, .comment__text h3 {
    font-size: 28px;
    line-height: 36px;
  }
}
.forum-content__text h4, .wysiwyg h4, .comment__text h4 {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .forum-content__text h4, .wysiwyg h4, .comment__text h4 {
    font-size: 28px;
    line-height: 36px;
  }
}
.forum-content__text h1, .wysiwyg h1, .comment__text h1,
.forum-content__text h2,
.wysiwyg h2,
.comment__text h2,
.forum-content__text h3,
.wysiwyg h3,
.comment__text h3,
.forum-content__text h4,
.wysiwyg h4,
.comment__text h4,
.forum-content__text p,
.wysiwyg p,
.comment__text p {
  margin-bottom: 24px;
}
.forum-content__text b, .wysiwyg b, .comment__text b,
.forum-content__text strong,
.wysiwyg strong,
.comment__text strong {
  font-weight: 700;
}
.forum-content__text em, .wysiwyg em, .comment__text em {
  font-style: italic;
}
.forum-content__text a, .wysiwyg a, .comment__text a {
  font-weight: 700;
  color: #3244ff;
}
.forum-content__text a:hover, .wysiwyg a:hover, .comment__text a:hover {
  color: #d9121f;
}
.forum-content__text ul, .wysiwyg ul, .comment__text ul {
  list-style: disc;
}
.forum-content__text ol, .wysiwyg ol, .comment__text ol {
  list-style: decimal;
}
.forum-content__text li, .wysiwyg li, .comment__text li {
  margin-left: 40px;
}
.forum-content__text sup, .wysiwyg sup, .comment__text sup,
.forum-content__text sub,
.wysiwyg sub,
.comment__text sub {
  font-size: 75%;
  position: relative;
}
.forum-content__text sup, .wysiwyg sup, .comment__text sup {
  top: -0.5em;
}
.forum-content__text sub, .wysiwyg sub, .comment__text sub {
  bottom: -0.25em;
}
.forum-content__text table[border="1"] th, .wysiwyg table[border="1"] th, .comment__text table[border="1"] th,
.forum-content__text table[border="1"] td,
.wysiwyg table[border="1"] td,
.comment__text table[border="1"] td {
  border: 1px solid #1d1d1b;
}
.forum-content__text blockquote, .wysiwyg blockquote, .comment__text blockquote {
  padding: 8px 0 8px 24px;
  background-color: #f7f7f7;
  border-left: 3px solid rgba(74, 78, 87, 0.2);
}
.forum-content__text blockquote p, .wysiwyg blockquote p, .comment__text blockquote p {
  margin-bottom: 0;
}

.author-summary {
  background-color: #f7f7f7;
  padding: 16px;
}
@media (min-width: 768px) {
  .author-summary {
    padding: 24px;
  }
}

.author-summary__header {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .author-summary__header {
    flex-direction: row;
    justify-content: space-between;
  }
}

.author-summary__avatar {
  margin-bottom: 24px;
}

.author-summary__follow {
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .author-summary__follow {
    max-width: 250px;
    width: 100%;
  }
}

@media (min-width: 768px) {
  .author-summary__bio {
    padding: 0 40px 24px;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.card__badges, .product-card__badges {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  padding: 8px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.card--product .card__image-container, .card--product .product-card__image-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 66.66%;
}

.card__image, .product-card__image {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  width: 100%;
}

.card--product .card__image, .card--product .product-card__image {
  -o-object-fit: contain;
     object-fit: contain;
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.card__label, .product-card__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  padding: 16px 24px 24px;
  flex-grow: 1;
  color: #4a4e57;
  text-align: left;
}

.card--has-meta-data .card__label, .card--has-meta-data .product-card__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
.product-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  position: relative;
}
.product-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}

.product-card__button {
  width: 100%;
  height: 100%;
}

.product-card__button-body {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.product-card__overlay {
  display: none;
}
.is-overlay-visible .product-card__overlay {
  display: flex;
  border-radius: 4px;
  position: absolute;
  pointer-events: none;
  flex-direction: column;
  justify-content: center;
  padding: 24px;
  width: 100%;
  height: 100%;
  top: 0;
  background-color: rgba(74, 78, 87, 0.8);
  z-index: 10;
}

.product-card__overlay-button {
  margin-bottom: 24px;
  position: relative;
  pointer-events: auto;
  display: inline-block;
}
.product-card__overlay-button:last-child {
  margin-bottom: 0;
}
.product-card__overlay-button::after {
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
}

.product-card__overlay-button--basket {
  transition: all 0.2s ease-in-out;
}
.product-card__overlay-button--basket::after {
  content: "shopping_basket";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #d9121f;
}
.product-card__overlay-button--basket.is-added {
  background-color: #d9121f;
}
.product-card__overlay-button--basket.is-added::after {
  color: #ffffff;
}

.product-card__overlay-button--info::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

.is-added .product-card__basket-add-text {
  display: none;
}

.product-card__basket-add-text--added {
  display: none;
}
.is-added .product-card__basket-add-text--added {
  display: block;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.product-card__badges, .card__badges {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  padding: 8px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.card--product .product-card__image-container, .card--product .card__image-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 66.66%;
}

.product-card__image, .card__image {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  width: 100%;
}

.card--product .product-card__image, .card--product .card__image {
  -o-object-fit: contain;
     object-fit: contain;
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.product-card__label, .card__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  padding: 16px 24px 24px;
  flex-grow: 1;
  color: #4a4e57;
  text-align: left;
}

.card--has-meta-data .product-card__label, .card--has-meta-data .card__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
.card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  position: relative;
}
.card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}

.w-card__quote {
  position: relative;
  display: flex;
  justify-content: space-around;
  flex-direction: column;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  padding: 40px;
  flex-grow: 1;
  background-color: #4a4e57;
}

.card__quote {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #ffffff;
}

.card__quote-open {
  position: absolute;
  z-index: 1;
  top: 16px;
  left: 24px;
}

.card__quote-close {
  position: absolute;
  z-index: 1;
  right: 24px;
  bottom: 16px;
}

.card--quote .card__label {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 24px;
  min-height: 56px;
  flex-grow: 0;
}

.card--muted-hover:hover {
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
}

.card--full-height {
  height: 100%;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.card-meta {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  display: flex;
  justify-content: space-between;
  color: #4a4e57;
  font-family: "Roboto", Arial, sans-serif;
  padding: 8px 24px;
  border-top: 1px solid #bcbcbc;
}

.card-meta__stats {
  display: flex;
  justify-content: space-between;
}
.card-meta__stats > span {
  padding-right: 8px;
}
.card-meta__stats > span::before {
  font-size: 12px;
  padding-right: 4px;
  vertical-align: text-top;
  speak: none;
}

.card-meta__views::before {
  content: "remove_red_eye";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.card-meta__comments::before {
  content: "mode_comment";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.card-meta__likes::before {
  content: "thumb_up";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.tech-card {
  display: inline-flex;
  flex-direction: row;
  padding: 8px;
  align-items: center;
}
@media (min-width: 992px) {
  .tech-card {
    flex-direction: column;
    padding: 0;
    align-items: flex-start;
  }
}

.is-retracted .tech-card--transient {
  display: none;
}

.tech-card__image {
  height: 40px;
  width: 40px;
  margin-right: 8px;
  flex-shrink: 0;
}
@media (min-width: 992px) {
  .tech-card__image {
    height: auto;
    width: 100%;
    margin-right: 0;
  }
}

.tech-card__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
}
@media (min-width: 992px) {
  .tech-card__label {
    font-family: "Roboto", Arial, sans-serif;
    font-size: 18px;
    line-height: 28px;
    font-weight: 700;
    max-width: 100%;
    padding: 16px 24px 24px;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.info-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  justify-content: space-between;
}
.info-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}

.info-card__body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  padding: 24px;
}
.info-card__body h3 {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}
.info-card__body ul {
  flex-direction: column;
}
@media (min-width: 480px) {
  .info-card--jumbo .info-card__body ul {
    -moz-column-count: 2;
         column-count: 2;
  }
}
.info-card__body li {
  padding-left: 24px;
  position: relative;
  margin-bottom: 8px;
}
.info-card__body li::before {
  content: "check";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  position: absolute;
  line-height: 20px;
  left: 0;
  color: #d9121f;
}

.info-card__embedded-video {
  margin-bottom: 24px;
}

.info-card__footer {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  font-weight: 700;
  color: #1d1d1b;
  border-top: 1px solid #edeff1;
  padding: 12px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.info-card__footer::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.info-card__footer:hover {
  color: #d9121f;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.post-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
}
.post-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
@media (min-width: 768px) {
  .post-card {
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
  }
}

.post-card__metadata {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .post-card__metadata {
    margin-left: auto;
  }
}

.post-card__metadata-set {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
}
@media (min-width: 768px) {
  .post-card__metadata-set {
    justify-content: flex-start;
  }
}

.post-card__metadata-label {
  margin-left: 8px;
}

.post-card__metadata-value {
  color: #d9121f;
}

.post-card__body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .post-card__body {
    flex-basis: 70%;
  }
}

.post-card__body-title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #1d1d1b;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .post-card__body-title {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 8px;
  }
}

.post-card__body-subtext {
  display: none;
}
@media (min-width: 768px) {
  .post-card__body-subtext {
    font-family: "Roboto", Arial, sans-serif;
    font-size: 16px;
    line-height: 24px;
    display: flex;
    flex-direction: row;
  }
}

.post-card__author {
  display: flex;
  flex-direction: row;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .post-card__author {
    margin-bottom: 0;
  }
}

.post-card__author-image {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 24px;
}
.post-card__author-image > svg {
  width: 50px;
  height: 50px;
  fill: #4a4e57;
}
@media (min-width: 768px) {
  .post-card__author-image {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    display: inline-block;
  }
  .post-card__author-image > svg {
    width: 68px;
    height: 68px;
    fill: #4a4e57;
  }
}

.post-card__author-body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .post-card__author-body {
    display: none;
  }
}

.post-card__author-username {
  font-weight: 700;
}
@media (min-width: 768px) {
  .post-card__author-username {
    margin-right: 16px;
  }
}

.post-card__author-subtext {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.related-article-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  padding: 24px;
  display: flex;
  flex-direction: column;
  border-radius: 10px;
  background-color: #ffffff;
}
.related-article-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}

.related-article-card__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: 700;
  margin-bottom: 24px;
}

.related-article-card__details {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}

.related-article-card__type {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #d9121f;
}

.related-article-card__author {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  text-align: right;
}

.related-article-card__tags {
  margin-top: auto;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.search-result {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  position: relative;
  align-items: flex-start;
  padding: 24px;
}
.search-result:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
@media (min-width: 768px) {
  .search-result {
    flex-direction: row;
  }
}

.search-result__image-container {
  margin-bottom: 8px;
  width: 100%;
  position: relative;
  text-align: center;
}
@media (min-width: 768px) {
  .search-result__image-container {
    width: 140px;
    margin-bottom: 0;
    margin-right: 24px;
  }
}
.search-result--product .search-result__image-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 50%;
}
@media (min-width: 768px) {
  .search-result--product .search-result__image-container {
    height: 103px;
    width: 140px;
    padding-top: 0;
  }
}

.search-result--product .search-result__image {
  -o-object-fit: contain;
     object-fit: contain;
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.search-result__image-overlay {
  position: absolute;
  bottom: 4px;
  left: 4px;
}

.search-result__body {
  display: flex;
  flex: 1;
  justify-content: space-between;
  flex-direction: column-reverse;
  width: 100%;
}
@media (min-width: 768px) {
  .search-result__body {
    flex-direction: row;
  }
}

.search-result__badges {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
}
@media (min-width: 768px) {
  .search-result__badges {
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.search-result-metadata {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: flex;
  flex-direction: column;
}

.search-result-metadata__headline {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 8px;
  color: #1d1d1b;
}

.search-result-metadata__image {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 8px;
  vertical-align: middle;
}
.search-result-metadata__image > svg {
  width: 28px;
  height: 28px;
  fill: #4a4e57;
}

.search-result-metadata__large {
  display: none;
}
@media (min-width: 768px) {
  .search-result-metadata__large {
    display: block;
    margin-bottom: 8px;
  }
}

.search-result-metadata__item {
  margin-right: 24px;
}

.search-result-metadata__small {
  display: flex;
  align-items: flex-start;
  margin-top: 8px;
}
@media (min-width: 768px) {
  .search-result-metadata__small {
    display: none;
  }
}

.search-result-metadata__owner {
  font-weight: 700;
}

.search-result-metadata__subtitle {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

.search-result-metadata__content_parent {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .search-result-metadata__content_parent {
    display: none;
  }
  .search-result-metadata__large .search-result-metadata__content_parent {
    display: inline-block;
  }
}

.search-result-metadata__price {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #1d1d1b;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.search-placeholder-image {
  position: relative;
  width: 100%;
}
.search-placeholder-image::before {
  content: "";
  padding-top: 39%;
  height: 0;
  display: block;
}
@media (min-width: 768px) {
  .search-placeholder-image::before {
    padding-top: 71%;
  }
}
.search-placeholder-image::after {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  speak: none;
  color: #ffffff;
}

.search-placeholder-image--question {
  background-color: #0098bf;
}
.search-placeholder-image--question::after {
  content: "help";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 56px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.search-placeholder-image--support {
  background-color: #d1aadc;
}
.search-placeholder-image--support::after {
  content: "article";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 56px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.glide {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}
.glide * {
  box-sizing: inherit;
}
.glide__track {
  overflow: hidden;
}
.glide__slides {
  position: relative;
  width: 100%;
  list-style: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transform-style: preserve-3d;
  touch-action: pan-Y;
  overflow: hidden;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  display: flex;
  flex-wrap: nowrap;
  will-change: transform;
}
.glide__slides--dragging {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.glide__slide {
  width: 100%;
  height: 100%;
  flex-shrink: 0;
  white-space: normal;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}
.glide__slide a {
  -webkit-user-select: none;
          user-select: none;
  -webkit-user-drag: none;
  -moz-user-select: none;
  -ms-user-select: none;
}
.glide__arrows {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.glide__bullets {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.glide--rtl {
  direction: rtl;
}

.glide--swipeable {
  cursor: -webkit-grab;
  cursor: grab;
}

.glide--dragging {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

.glide__track {
  padding-left: 8px;
  padding-right: 8px;
  margin-left: -8px;
  margin-right: -8px;
}

.glide__slides {
  box-sizing: content-box;
  padding: calc(2 * 8px) 8px;
  margin-left: -8px;
  margin-right: -8px;
}

.glide__slide {
  box-sizing: border-box;
  height: auto;
}
@media (min-width: 480px) {
  [data-carousel-cards-per-view="2"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 480px) and (max-width: 991px) {
  [data-carousel-cards-per-view="3"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 992px) {
  [data-carousel-cards-per-view="3"] .glide__slide {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  [data-carousel-cards-per-view="4"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  [data-carousel-cards-per-view="4"] .glide__slide {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
@media (min-width: 992px) {
  [data-carousel-cards-per-view="4"] .glide__slide {
    width: calc(25% - 12px);
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  [data-carousel-cards-per-view="5"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  [data-carousel-cards-per-view="5"] .glide__slide {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  [data-carousel-cards-per-view="5"] .glide__slide {
    width: calc(25% - 12px);
  }
}
@media (min-width: 1440px) {
  [data-carousel-cards-per-view="5"] .glide__slide {
    width: calc(20% - 12.8px);
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  [data-carousel-cards-per-view="6"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  [data-carousel-cards-per-view="6"] .glide__slide {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  [data-carousel-cards-per-view="6"] .glide__slide {
    width: calc(25% - 12px);
  }
}
@media (min-width: 1440px) {
  [data-carousel-cards-per-view="6"] .glide__slide {
    width: calc(16.6666666667% - 13.3333333333px);
  }
}

/**
 * Carousel controls are the arrows to navigate between slides
 */
.carousel-controls__arrow {
  background: #ffffff;
  border: 1px solid rgb(232, 232, 232);
  border-radius: 48px;
  box-shadow: 0 2px 30px 0 rgba(0, 0, 0, 0.5);
  height: 48px;
  width: 48px;
  color: #d9121f;
  position: absolute;
  display: block;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  opacity: 1;
  cursor: pointer;
  transition: opacity 0.2s ease;
  line-height: 1;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow {
    height: 80px;
    width: 80px;
  }
}
.carousel-controls__arrow.is-disabled {
  opacity: 0;
}

.carousel-controls__arrow--left {
  left: 10px;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow--left {
    left: calc(-80px / 2);
  }
}
.carousel-controls__arrow--left::after {
  content: "keyboard_arrow_left";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 34px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #d9121f;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow--left::after {
    font-size: 48px;
  }
}
@media (min-width: 1440px) {
  .carousel--peekaboo .carousel-controls__arrow--left {
    left: calc((-80px / 2) + 100px);
  }
}

.carousel-controls__arrow--right {
  right: 10px;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow--right {
    right: calc(-80px / 2);
  }
}
.carousel-controls__arrow--right::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 34px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #d9121f;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow--right::after {
    font-size: 48px;
  }
}
@media (min-width: 1440px) {
  .carousel--peekaboo .carousel-controls__arrow--right {
    right: calc((-80px / 2) + 100px);
  }
}

@media (min-width: 1440px) {
  .carousel--peekaboo {
    position: relative;
  }
  .carousel--peekaboo::before {
    position: absolute;
    top: 0;
    left: -8px;
    height: 100%;
    width: 108px;
    background: linear-gradient(to right, var(--carousel-bg-colour) 0%, rgba(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue), 0%) 75%, rgba(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue), 0%) 100%);
    z-index: 2;
    content: "";
  }
  .carousel--peekaboo::after {
    position: absolute;
    top: 0;
    right: -8px;
    height: 100%;
    width: 108px;
    background: linear-gradient(to left, var(--carousel-bg-colour) 0%, rgba(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue), 0%) 75%, rgba(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue), 0%) 100%);
    z-index: 2;
    content: "";
  }
}

.comment {
  display: flex;
  flex-direction: column;
  padding: 24px 16px;
}
@media (min-width: 768px) {
  .comment {
    padding: 16px 40px;
  }
}
.comment:not(.comment--nested) {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
}

.comment--nested {
  display: none;
}
@media (min-width: 768px) {
  .comment--nested {
    display: flex;
    padding-top: 0;
    padding-bottom: 0;
    padding-right: 0;
  }
}
.is-expanded .comment--nested {
  padding-top: 0;
  padding-bottom: 0;
  display: flex;
}
.is-expanded .comment--nested:not(.comment--nested-multiple) {
  border-left: 2px solid #bcbcbc;
}
@media (min-width: 768px) {
  .is-expanded .comment--nested:not(.comment--nested-multiple) {
    border-left: 0;
  }
}

.comment--nested-multiple {
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
  border-left: 0;
}

.comment--preview .comment__reply-button,
.comment--preview .comment__actions {
  display: none;
}
.comment--preview .comment__text {
  margin-bottom: 0;
}

.comment__header {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .comment__header {
    align-items: center;
    flex-direction: row;
  }
}

.comment__avatar {
  margin-right: 16px;
  margin-bottom: 16px;
  position: relative;
}
@media (min-width: 768px) {
  .comment__avatar {
    margin-bottom: 0;
  }
}
.comment--nested .comment__avatar::before {
  content: "";
  position: absolute;
  width: 16px;
  border-bottom: 1px solid #bcbcbc;
  left: -16px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .comment--nested .comment__avatar::before {
    width: 40px;
    left: -40px;
  }
}

.comment__metadata {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 992px) {
  .comment__metadata {
    flex-grow: 1;
  }
}
@media (min-width: 768px) {
  .comment__metadata {
    align-items: center;
    flex-direction: row;
  }
}

.comment__user-metadata {
  display: none;
}
@media (min-width: 992px) {
  .comment__user-metadata {
    display: block;
  }
}

.comment__actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
}
@media (min-width: 768px) {
  .comment__actions {
    justify-content: flex-end;
  }
}

@media (min-width: 768px) {
  .comment__body {
    margin-left: 64px;
  }
}

.comment__timestamps {
  display: flex;
  flex-direction: column;
}
@media (min-width: 480px) {
  .comment__timestamps {
    flex-direction: row;
  }
}

.comment__datetime {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #1d1d1b;
  display: block;
  margin-bottom: 16px;
  margin-right: 16px;
}

.comment__text {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 40px;
}

.comment__reply-button {
  margin-bottom: 24px;
}
.comment__reply-button::before {
  content: "reply";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 14px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  margin-right: 8px;
}

.comment__replies {
  display: flex;
  flex-direction: column;
}

.comment__replies-divider {
  display: block;
  width: 100%;
  height: 1px;
  color: #bcbcbc;
  background-color: #bcbcbc;
}
@media (min-width: 768px) {
  .comment__replies-divider {
    margin-left: 40px;
  }
}

.comment__toggle-replies {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  padding-left: 16px;
  padding-right: 16px;
  text-align: left;
  display: block;
  position: relative;
}
@media (min-width: 768px) {
  .comment__toggle-replies {
    display: none;
  }
}
.comment__toggle-replies::after {
  content: "keyboard_arrow_down";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
}
.is-expanded .comment__toggle-replies::after {
  content: "keyboard_arrow_up";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

@media (min-width: 768px) {
  .comment--has-replies .comment__body-container {
    border-left: 2px solid #bcbcbc;
    margin-left: 18px;
  }
  .comment--has-replies .comment__body-container .comment__body {
    margin-left: 34px;
  }
  .comment--nested .comment__body-container {
    border-left: none;
    margin-left: 0;
  }
  .comment--nested .comment__body-container .comment__body {
    margin-left: 40px;
  }
}

.add-comment {
  display: flex;
  flex-direction: column;
  position: relative;
  padding: 24px 16px;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .add-comment {
    padding: 16px 40px;
  }
}
.add-comment.is-pending {
  opacity: 0.5;
}
.add-comment.is-reply {
  padding: 0;
  margin-left: 0;
}
@media (min-width: 768px) {
  .add-comment.is-reply {
    margin-left: 40px;
  }
}
.add-comment:not(.is-reply) {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
}

.add-comment__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}

.add-comment__body {
  margin-bottom: 24px;
}

.add-comment__controls {
  display: flex;
  flex-direction: column;
}
@media (min-width: 480px) {
  .add-comment__controls {
    flex-direction: row;
  }
}

.add-comment__submit {
  width: 100%;
  margin-bottom: 16px;
}
@media (min-width: 480px) {
  .add-comment__submit {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-bottom: 0;
  }
}

.add-comment__cancel {
  text-decoration: underline;
}
@media (min-width: 481px) {
  .add-comment__cancel {
    margin-left: 24px;
  }
}

.add-comment__loading-indicator {
  display: none;
}
.is-pending .add-comment__loading-indicator {
  position: absolute;
  top: 65px;
  left: 0;
  display: block;
}
.is-reply .add-comment__loading-indicator {
  top: 0;
}

.o-comment-section-header {
  padding: 24px 16px;
  text-align: center;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .o-comment-section-header {
    padding: 16px 40px;
    text-align: left;
  }
}

.comment-report {
  display: inline-flex;
  position: relative;
}

.comment-report__tooltip {
  top: 54px;
  left: -150px;
  width: unset;
  box-shadow: 0 10px 10px 0 rgba(74, 78, 87, 0.2);
  border-top: 1px solid rgba(74, 78, 87, 0.1);
}
@media (min-width: 768px) {
  .comment-report__tooltip {
    left: -100%;
  }
}
.comment-report__tooltip::before, .comment-report__tooltip::after {
  display: none;
}

.comment-report__tooltip-link {
  white-space: pre;
  text-align: center;
}

.content-header {
  display: flex;
  flex-direction: column;
}

.content-header__title-container,
.content-header__meta {
  display: flex;
  flex-direction: column;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .content-header__title-container,
.content-header__meta {
    flex-direction: row;
    justify-content: space-between;
    margin-bottom: 0;
  }
}

.content-header__title {
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .content-header__title {
    flex: 1 1 auto;
    margin-right: 40px;
  }
}

.content-header__follow {
  flex: 1 0 auto;
}
@media (min-width: 768px) {
  .content-header__follow {
    width: 100%;
    flex: 0 1 230px;
    align-self: baseline;
  }
}

.content-header__publish-info {
  display: flex;
  align-items: center;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .content-header__publish-info {
    margin-bottom: 0;
  }
}

.content-header__author {
  margin-right: 24px;
}

.content-header__date {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #1d1d1b;
}

.content-footer {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 992px) {
  .content-footer {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.content-footer__actions {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .content-footer__actions {
    flex-direction: row;
    align-items: flex-end;
  }
}

.content-footer__addthis {
  margin-bottom: 40px;
}
@media (min-width: 992px) {
  .content-footer__addthis {
    margin-bottom: 0;
  }
}

.content-footer__action {
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .content-footer__action {
    margin-bottom: 0;
    margin-right: 8px;
  }
}

.expandable-item {
  color: #1d1d1b;
  border-bottom: 1px solid #edeff1;
  padding: 0;
}

.expandable-item__handle {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  position: relative;
  padding-right: 24px;
  padding-top: 16px;
  padding-bottom: 16px;
  cursor: pointer;
}
.expandable-item__handle::after {
  content: "add";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #d9121f;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
.expandable-item[open] .expandable-item__handle::after {
  content: "remove";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.expandable-item__drawer {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  padding-top: 8px;
  padding-bottom: 16px;
}
.js-details-not-supported .expandable-item__drawer {
  display: none;
}
.js-details-not-supported[open] .expandable-item__drawer {
  display: block;
}

.expandable-item--large .expandable-item__handle {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .expandable-item--large .expandable-item__handle {
    font-size: 28px;
    line-height: 36px;
  }
}
.expandable-item--large .expandable-item__handle::after {
  font-size: 26px;
}
@media (min-width: 768px) {
  .expandable-item--large .expandable-item__handle::after {
    font-size: 28px;
  }
}
.expandable-item[open] .expandable-item--large .expandable-item__handle::after {
  font-size: 26px;
}
@media (min-width: 768px) {
  .expandable-item[open] .expandable-item--large .expandable-item__handle::after {
    font-size: 28px;
  }
}

.expandable-item--standalone {
  margin-bottom: 24px;
}

.feedback {
  color: #4a4e57;
}

.feedback__content {
  padding: 16px;
  background-color: #4a4e57;
}

.feedback__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px;
}

.feedback__logo {
  flex: 0 0 110px;
}

.feedback-content {
  text-align: left;
  white-space: normal;
  margin: -8px;
}
@media (min-width: 768px) {
  .feedback-content {
    margin: -24px;
  }
}

.feedback-content__avatar {
  display: flex;
  align-items: center;
  padding: 8px 16px;
}

.feedback-content__username {
  margin-left: 16px;
  font-weight: bold;
}

.feedback-content__company {
  color: #d9121f;
}

.feedback-content__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin: 8px 16px;
}

.w-feedback-content {
  display: none;
}

.w-footer {
  width: 100%;
  padding: 0 16px;
  background: #1d1d1b;
}

.footer {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  width: 100%;
  max-width: 1244px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
  padding-top: 24px;
  padding-bottom: 24px;
  color: #ffffff;
}

.footer__separator {
  height: 1px;
  width: 100%;
  margin-top: 16px;
  margin-bottom: 8px;
  background-color: rgba(255, 255, 255, 0.2);
}

@media (min-width: 768px) {
  .footer__branding {
    display: inline-flex;
  }
}

.footer__ds-logo {
  margin-right: 16px;
}
.footer__ds-logo > svg {
  height: 20px;
}

.footer__partners {
  display: flex;
  align-items: center;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .footer__partners {
    margin-bottom: 0;
  }
}
.footer__partners svg {
  height: 20px;
  margin-right: 4px;
}
.footer__partners a:first-child {
  margin-left: 16px;
}

.footer__language-selector {
  width: 100%;
}
@media (min-width: 768px) {
  .footer__language-selector {
    width: auto;
  }
}

.footer__nav-link {
  position: relative;
  display: inline-block;
  margin: 0;
}
.footer__nav-link > a {
  color: #ffffff;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-right: 8px;
  display: inline-block;
}
.footer__nav-link:not(:last-child)::after {
  padding-right: 8px;
  content: "|";
}

.footer__social-icons {
  height: 16px;
  display: inline-flex;
  align-items: center;
  font-weight: 700;
}
.footer__social-icons svg {
  height: 16px;
}
.footer__social-icons svg > path {
  fill: #ffffff;
}

.footer__social-icons-link {
  line-height: 1;
  padding: 0 8px;
}

.w-header {
  width: 100%;
  padding-left: 16px;
  padding-right: 16px;
  background-color: #ffffff;
  box-shadow: 0 2px 30px 0 rgba(188, 188, 188, 0.38);
  position: -webkit-sticky;
  position: sticky;
  z-index: 10;
  top: 0;
}
.w-header.nav-is-open {
  position: fixed;
  z-index: 20;
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100%;
}

.header {
  width: 100%;
  max-width: 1244px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 8px;
  padding-bottom: 8px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}

.header__logo > img {
  height: 40px;
}
@media (min-width: 600px) {
  .header__logo > img {
    height: 24px;
  }
}

.header__icons {
  display: flex;
}

@media (min-width: 480px) {
  .header__nav-button {
    margin-left: 24px;
  }
}

.header__full-width-search {
  flex-basis: 100%;
  opacity: 1;
}
.is-scrolled .header__full-width-search {
  opacity: 0;
  height: 0;
}

.header__nav {
  display: none;
  flex-basis: 100%;
  margin-top: 8px;
  padding-bottom: 8px;
}
.nav-is-open .header__nav {
  display: block;
  overflow: auto;
  /*
      16px: header top padding
      40px: header height
      40px: full width search height
      8px: nav top margin
   */
  height: calc(100vh - 104px);
}
@media (min-width: 768px) {
  .nav-is-open .header__nav {
    height: calc(100vh - 64px);
  }
}

.header-icon {
  min-width: 48px;
  position: relative;
  display: flex;
  flex-direction: column;
  margin-left: 8px;
  align-items: center;
  color: #4a4e57;
  text-align: center;
}
@media (min-width: 480px) {
  .header-icon {
    margin-left: 16px;
  }
}
@media (min-width: 768px) {
  .header-icon {
    margin: 0 8px;
  }
}
.header-icon:hover {
  color: #d9121f;
}

.header-icon--search-toggle {
  display: none;
}
@media (min-width: 480px) {
  .header-icon--search-toggle {
    display: inherit;
  }
}
.header-icon--search-toggle:hover {
  color: #d9121f;
}

.header-icon--basket {
  display: none;
}
.header-icon--basket.has-items {
  display: inherit;
}

.header-icon--contribute {
  display: none;
}
@media (min-width: 340px) {
  .header-icon--contribute {
    display: flex;
  }
}

.header-icon__icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: inline-block;
  pointer-events: none;
  display: inherit;
  vertical-align: center;
}
.header-icon__icon > svg {
  width: 24px;
  height: 24px;
  fill: #4a4e57;
}

.header-icon__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  color: #4a4e57;
  pointer-events: none;
  display: inherit;
}
.header-icon:hover .header-icon__label {
  color: #d9121f;
}

.header-icon__notification {
  width: 20px;
  height: 20px;
  top: -8px;
  right: 4px;
  position: absolute;
  display: none;
  pointer-events: none;
  color: #d9121f;
  text-shadow: 2px 2px 4px rgba(29, 29, 27, 0.5);
}
.has-notifications .header-icon__notification {
  display: block;
}

.header-icon__counter {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 16px;
  min-height: 16px;
  display: block;
  padding-left: 6px;
  padding-right: 6px;
  border-radius: 999em;
  font-weight: 700;
  font-family: "Roboto", Arial, sans-serif;
  background: #d9121f;
  color: #ffffff;
}

.nav-button {
  display: flex;
  flex-direction: column;
  margin-left: 8px;
  cursor: pointer;
  align-items: center;
}
.nav-button:hover .nav-button__icon {
  background-color: #d9121f;
}

.nav-button__icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: #1d1d1b;
  box-shadow: 0 2px 7px 0 rgba(29, 29, 27, 0.27);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.nav-button__burger,
.nav-button__burger::before,
.nav-button__burger::after {
  width: 12px;
  height: 1px;
  content: "";
  display: block;
  background-color: #ffffff;
  transition: 0.4s;
  pointer-events: none;
}

.nav-button__burger::before {
  position: absolute;
  bottom: 3px;
}
.nav-is-open .nav-button__burger::before {
  transform: rotate(-45deg) translate(-2px, 2px);
}

.nav-button__burger {
  position: relative;
}
.nav-is-open .nav-button__burger {
  background-color: transparent;
}

.nav-button__burger::after {
  position: absolute;
  bottom: -3px;
}
.nav-is-open .nav-button__burger::after {
  transform: rotate(45deg) translate(-2px, -2px);
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.expanding-search {
  justify-content: flex-end;
  border-bottom: none;
  max-height: 40px;
}
@media (max-width: 767px) {
  .expanding-search {
    display: none;
  }
}
.expanding-search:focus-within {
  transition: border 0.2s;
  border-bottom: 1px solid #4a4e57;
}

.expanding-search__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  color: #4a4e57;
}
.expanding-search__label > span {
  opacity: 1;
  transition: opacity 0.2s;
}

.expanding-search__input {
  order: 2;
  width: 0;
  transition: width 0.2s, opacity 0.2s;
  max-height: 24px;
}
.expanding-search__input.has-content {
  width: 200px;
}
.expanding-search__input.has-content ~ .expanding-search__label span {
  opacity: 0;
}
.expanding-search__input.has-content ~ .expanding-search__reset {
  display: inline-block;
}
.expanding-search__input:focus {
  width: 200px;
}
.expanding-search__input:focus ~ .expanding-search__label span {
  opacity: 0;
}

.expanding-search__reset {
  margin-bottom: 12px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.full-width-search {
  margin-top: 16px;
  width: 100%;
  position: relative;
  border-bottom: 1px solid #4a4e57;
}
@media (min-width: 768px) {
  .full-width-search {
    display: none;
  }
}

.full-width-search__label > span {
  opacity: 0;
  position: absolute;
}

.header-search {
  display: flex;
  position: relative;
}

.header-search__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  order: 1;
  text-align: center;
  color: rgba(74, 78, 87, 0.45);
}
.header-search__label:hover {
  color: #d9121f;
}
.header-search__label:hover::before {
  color: #d9121f;
}
.header-search__label::before {
  content: "search";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #4a4e57;
  display: block;
}

.header-search__input {
  width: 100%;
  padding-right: 8px;
  padding-left: 8px;
  order: 2;
}
.header-search__input.has-content {
  padding-right: 24px;
}
.header-search__input.has-content ~ .header-search__reset {
  display: inline-block;
}
.header-search__input::-moz-placeholder {
  color: #4a4e57;
}
.header-search__input:-ms-input-placeholder {
  color: #4a4e57;
}
.header-search__input::placeholder {
  color: #4a4e57;
}
@supports (-webkit-overflow-scrolling: touch) {
  .header-search__input {
    font-size: 16px;
    transform: scale(0.75);
    transform-origin: left;
    height: 32px;
  }
}

.header-search__reset {
  display: none;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  padding: 4px;
}
.header-search__reset::after {
  content: "close";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 18px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  display: block;
  color: rgba(74, 78, 87, 0.45);
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.expanding-search {
  justify-content: flex-end;
  border-bottom: none;
  max-height: 40px;
}
@media (max-width: 767px) {
  .expanding-search {
    display: none;
  }
}
.expanding-search:focus-within {
  transition: border 0.2s;
  border-bottom: 1px solid #4a4e57;
}

.expanding-search__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  color: #4a4e57;
}
.expanding-search__label > span {
  opacity: 1;
  transition: opacity 0.2s;
}

.expanding-search__input {
  order: 2;
  width: 0;
  transition: width 0.2s, opacity 0.2s;
  max-height: 24px;
}
.expanding-search__input.has-content {
  width: 200px;
}
.expanding-search__input.has-content ~ .expanding-search__label span {
  opacity: 0;
}
.expanding-search__input.has-content ~ .expanding-search__reset {
  display: inline-block;
}
.expanding-search__input:focus {
  width: 200px;
}
.expanding-search__input:focus ~ .expanding-search__label span {
  opacity: 0;
}

.expanding-search__reset {
  margin-bottom: 12px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.full-width-search {
  margin-top: 16px;
  width: 100%;
  position: relative;
  border-bottom: 1px solid #4a4e57;
}
@media (min-width: 768px) {
  .full-width-search {
    display: none;
  }
}

.full-width-search__label > span {
  opacity: 0;
  position: absolute;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.dropdown-menu-list {
  position: absolute;
  left: 0;
  width: 100%;
  background: #ffffff;
  margin-top: 20px;
  display: none;
  box-shadow: 0 10px 10px 0 rgba(74, 78, 87, 0.2);
  z-index: 1;
  border-top: 1px solid rgba(74, 78, 87, 0.1);
}

@media (min-width: 768px) {
  .dropdown-menu-list {
    width: auto;
    margin-top: 24px;
    border-radius: 4px;
    box-shadow: 2px 2px 1px rgba(225, 225, 225, 0.5);
    left: 50%;
    transform: translateX(-50%);
    border-top: none;
  }

  .dropdown-menu-list::before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #ffffff;
    left: 50%;
    transform: translateX(-50%);
    top: -5px;
  }

  .dropdown-menu-list::after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid rgba(225, 225, 225, 0.5);
    left: 50%;
    z-index: -1;
    transform: translateX(-50%);
    top: -6px;
  }
}
.is-dropdown-open .dropdown-menu-list {
  display: block;
  -webkit-animation: dropDown 0.2s ease-in both;
          animation: dropDown 0.2s ease-in both;
}

@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
.dropdown-menu-list__item {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
  white-space: nowrap;
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 16px;
}

@media (min-width: 768px) {
  .dropdown-menu-list__item {
    font-family: "Roboto", Arial, sans-serif;
    font-size: 12px;
    line-height: 20px;
    padding: 8px 24px;
  }
}
.dropdown-menu-list__item:hover {
  background: #f7f7f7;
}

.w-dropdown-menu-list {
  --dropdown-top-margin: 48px;
}
@media (min-width: 768px) {
  .w-dropdown-menu-list {
    --dropdown-top-margin: 20px;
    position: relative;
  }
}
.is-scrolled .w-dropdown-menu-list {
  --dropdown-top-margin: $spacing-1;
}
@media (min-width: 768px) {
  .is-scrolled .w-dropdown-menu-list {
    --dropdown-top-margin: 20px;
    position: relative;
  }
}

.dropdown-menu-list__item--separator {
  border-bottom: 1px solid rgba(74, 78, 87, 0.1);
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.site-nav {
  max-width: 900px;
  margin: 0 auto;
}

.site-nav__categories {
  display: flex;
  flex-flow: row wrap;
}

.site-nav__category {
  width: 100%;
}
@media (min-width: 768px) {
  .site-nav__category {
    width: 33.333%;
    padding: 16px;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.site-nav-category {
  color: #4a4e57;
  border-bottom: 1px solid #f7f7f7;
}
@media (min-width: 768px) {
  .site-nav-category {
    border: none;
  }
}

.site-nav-category__heading {
  position: relative;
  padding-top: 16px;
  display: block;
}
@media (min-width: 768px) {
  .site-nav-category__heading {
    border-bottom: 0;
    padding-bottom: 8px;
  }
}

.site-nav-category__link {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}
@media (max-width: 767px) {
  .site-nav-category__link::after {
    content: "add";
    font-family: "Material Icons Round";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
    speak: none;
    color: #d9121f;
    margin-left: 8px;
  }
  .is-expanded .site-nav-category__link::after {
    content: "remove";
    font-family: "Material Icons Round";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
  }
}
@media (min-width: 768px) {
  .site-nav-category__link {
    justify-content: flex-start;
  }
  .site-nav-category__link::after {
    content: "keyboard_arrow_right";
    font-family: "Material Icons Round";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
    speak: none;
    color: #d9121f;
    margin-left: 8px;
  }
}

.site-nav-category__link--small {
  display: flex;
  color: inherit;
  width: 100%;
}
@media (min-width: 768px) {
  .site-nav-category__link--small {
    display: none;
  }
}

.site-nav-category__link--large {
  display: none;
}
@media (min-width: 768px) {
  .site-nav-category__link--large {
    display: flex;
  }
}

.site-nav-category__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  line-height: 24px;
  position: relative;
}
@media (min-width: 768px) {
  .site-nav-category__title::before {
    content: "";
    width: 0;
    position: absolute;
    background-color: #d9121f;
    transition: width 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
    z-index: -1;
    height: 2px;
    bottom: 0;
    left: 0;
  }
  .site-nav-category__link:hover .site-nav-category__title {
    color: #d9121f;
    transition: color 0.5s ease;
  }
  .site-nav-category__link:hover .site-nav-category__title::before {
    width: 100%;
  }
}

.site-nav-category__description {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  font-style: italic;
  margin-bottom: 24px;
  max-width: 260px;
}
@media (min-width: 768px) {
  .site-nav-category__description {
    margin-bottom: 0;
    max-width: none;
  }
}

.site-nav-category__items {
  display: none;
}
@media (min-width: 768px) {
  .site-nav-category__items {
    display: block;
  }
}
.is-expanded .site-nav-category__items {
  display: block;
  -webkit-animation: fadeIn 0.3s ease-in both;
          animation: fadeIn 0.3s ease-in both;
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
    transform: translate3d(0, -2%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translate3d(0, -2%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media (min-width: 768px) {
  .site-nav-item--small-screen-only {
    display: none;
  }
}

.site-nav-item__link {
  display: flex;
  justify-content: space-between;
  padding-top: 8px;
  padding-bottom: 8px;
}
.site-nav-item__link::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #d9121f;
  margin-left: 8px;
}

.site-nav-item__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  line-height: 24px;
  color: #4a4e57;
  position: relative;
}
@media (min-width: 768px) {
  .site-nav-item__title::before {
    content: "";
    width: 0;
    position: absolute;
    background-color: #d9121f;
    transition: width 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
    z-index: -1;
    height: 2px;
    bottom: 0;
    left: 0;
  }
  .site-nav-item__link:hover .site-nav-item__title {
    color: #d9121f;
    transition: color 0.5s ease;
  }
  .site-nav-item__link:hover .site-nav-item__title::before {
    width: 100%;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.site-nav-footer {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  display: flex;
  justify-content: space-between;
  flex-flow: column;
}
@media (min-width: 768px) {
  .site-nav-footer {
    max-width: 1244px;
    margin: 0 auto;
    flex-flow: row;
  }
}

@media (min-width: 768px) {
  .site-nav-footer__links {
    display: inline;
  }
}

.site-nav-footer__link {
  position: relative;
  display: inline-block;
  margin: 0;
}
.site-nav-footer__link > a {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-right: 8px;
  display: inline-block;
}
.site-nav-footer__link:not(:last-child)::after {
  padding-right: 8px;
  content: "|";
}

.site-nav-footer__social-icons {
  display: inline-flex;
  align-items: center;
}
@media (min-width: 768px) {
  .site-nav-footer__social-icons {
    white-space: nowrap;
    margin-left: 8px;
  }
}

.site-nav-footer__social-icon {
  margin: 0 8px;
  line-height: 1;
}
.site-nav-footer__social-icon svg {
  max-width: 16px;
  height: 20px;
}

.language-selector {
  position: relative;
}

.language-selector__list {
  background: #1d1d1b;
  position: absolute;
  bottom: 32px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  width: 100%;
  border-radius: 5px;
  box-shadow: 2px 2px 27px 0 rgba(29, 29, 27, 0.7);
  right: 0;
  z-index: 15;
  display: none;
  color: #ffffff;
}
@media (min-width: 768px) {
  .language-selector__list {
    min-width: 128px;
  }
}
.language-selector__list::before, .language-selector__list::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  left: 5%;
  transform: translateX(-10%);
}
@media (min-width: 768px) {
  .language-selector__list::before, .language-selector__list::after {
    left: 70%;
    transform: translateX(-70%);
  }
}
.language-selector__list::before {
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid #1d1d1b;
  z-index: 2;
  bottom: -5px;
}
.language-selector__list::after {
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid rgba(225, 225, 225, 0.5);
  z-index: 1;
  bottom: -6px;
}
.is-dropdown-open .language-selector__list {
  display: block;
  -webkit-animation: raiseIn 0.2s ease-in both;
          animation: raiseIn 0.2s ease-in both;
}
@-webkit-keyframes raiseIn {
  from {
    opacity: 0;
    transform: translate3d(0, 0%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, -2%, 0);
  }
}
@keyframes raiseIn {
  from {
    opacity: 0;
    transform: translate3d(0, 0%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, -2%, 0);
  }
}

.language-selector__item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  cursor: pointer;
}
.language-selector__item:hover {
  background: rgba(188, 188, 188, 0.1);
}

.language-selector__link {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 8px 8px;
}
.language-selector__link:hover {
  color: #ffffff;
}

.language-selector__flag {
  margin-right: 22px;
  width: 16px;
  height: 16px;
}

.active-language {
  color: #ffffff;
  display: flex;
  align-items: center;
}
.active-language::after {
  content: "keyboard_arrow_down";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-dropdown-open .active-language::after {
  content: "keyboard_arrow_up";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.active-language__flag {
  width: 16px;
  height: 16px;
}

.active-language__flag,
.active-language__label {
  pointer-events: none;
  margin-right: 8px;
}

.hero {
  min-height: 460px;
  height: 100%;
  position: relative;
  padding-top: 40px;
  padding-bottom: 104px;
  display: flex;
  flex-direction: column;
  align-items: baseline;
  overflow: hidden;
  width: 100%;
  background-repeat: no-repeat;
  background-position: center;
}
.t-discover .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Discover_479px_small.db9c0786..png);
}
@media (min-width: 480px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Discover_767x460_medium_small.5307201a..png);
  }
}
@media (min-width: 768px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Discover_991x460_medium.f19e96b1..png);
  }
}
@media (min-width: 992px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Discover_1244x460_medium_large.ad1e2b65..png);
  }
}
@media (min-width: 1440px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Discover_1244x460_large.51038b5a..png);
  }
}
.t-air-quality .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Air_Quality_479px_small.8bf8b2d2..png);
}
@media (min-width: 480px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Air_Quality_767x460_medium_small.c369065d..png);
  }
}
@media (min-width: 768px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Air_Quality_991x460_medium.100d0e5f..png);
  }
}
@media (min-width: 992px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Air_Quality_1244x460_medium_large.7ced1369..png);
  }
}
@media (min-width: 1440px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Air_Quality_1244x460_large.e2eb60e4..png);
  }
}
.t-activist-engineering .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Activist_Engineering_479px_small.5f990271..png);
}
@media (min-width: 480px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Activist_Engineering_767x460_medium_small.a1629e4a..png);
  }
}
@media (min-width: 768px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Activist_Engineering_991x460_medium.17af98d1..png);
  }
}
@media (min-width: 992px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Activist_Engineering_1244x460_medium_large.d865b9b9..png);
  }
}
@media (min-width: 1440px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Activist_Engineering_1244x460_large.ded0ac89..png);
  }
}
.t-forum .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Forum_479px_small.fff7a4c5..png);
}
@media (min-width: 480px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Forum_767x460_medium_small.2dd318cc..png);
  }
}
@media (min-width: 768px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Forum_991x460_medium.e58ca979..png);
  }
}
@media (min-width: 992px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Forum_1244x460_medium_large.18d76778..png);
  }
}
@media (min-width: 1440px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Forum_1244x460_large.b4b206fe..png);
  }
}
.t-home .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Home_50_479px_small.5f6ac0a8..png);
}
@media (min-width: 480px) {
  .t-home .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Home_50_767x460_medium_small.126dacf1..png);
  }
}
@media (min-width: 768px) {
  .t-home .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Home_50_991x460_medium.4175a624..png);
  }
}
@media (min-width: 992px) {
  .t-home .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Home_50_1244x460_medium_large.5b0e4564..png);
  }
}
@media (min-width: 1440px) {
  .t-home .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Home_50_1244x460_large.c22acc69..png);
  }
}
.t-learn .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Learn_479px_small.93f1b8f7..png);
}
@media (min-width: 480px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Learn_767x460_medium_small.7c8ad4ed..png);
  }
}
@media (min-width: 768px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Learn_991x460_medium.d83fc692..png);
  }
}
@media (min-width: 992px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Learn_1244x460_medium_large.2a813a27..png);
  }
}
@media (min-width: 1440px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Learn_1244x460_large.7b58a295..png);
  }
}
.t-resources .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Resources_479px_small.bf9ccff2..png);
}
@media (min-width: 480px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Resources_767x460_medium_small.91d8377c..png);
  }
}
@media (min-width: 768px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Resources_991x460_medium.627278ee..png);
  }
}
@media (min-width: 992px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Resources_1244x460_medium_large.9d71dc2f..png);
  }
}
@media (min-width: 1440px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Resources_1244x460_large.e44622ba..png);
  }
}
.t-services .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Services_479px_small.0b6ece1f..png);
}
@media (min-width: 480px) {
  .t-services .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Services_767x460_medium_small.9d40c0fd..png);
  }
}
@media (min-width: 768px) {
  .t-services .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Services_991x460_medium.05ffe8eb..png);
  }
}
@media (min-width: 992px) {
  .t-services .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Services_1244x460_medium_large.fae2a49e..png);
  }
}
@media (min-width: 1440px) {
  .t-services .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Services_1244x460_large.c0278584..png);
  }
}
.t-software .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Software_479px_small.7239292d..png);
}
@media (min-width: 480px) {
  .t-software .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Software_767x460_medium_small.cc53e4c3..png);
  }
}
@media (min-width: 768px) {
  .t-software .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Software_991x460_medium.87e1b37d..png);
  }
}
@media (min-width: 992px) {
  .t-software .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Software_1244x460_medium_large.9eebe8b2..png);
  }
}
@media (min-width: 1440px) {
  .t-software .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Software_1244x460_large.eb5596b8..png);
  }
}
.t-software-ds-pcb .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_479px_small.7da4f4eb..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_767x460_medium_small.ff214086..png);
  }
}
@media (min-width: 768px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_991x460_medium.6157e6f0..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_1244x460_medium_large.02beb5d3..png);
  }
}
@media (min-width: 1440px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_1244x460_large.6c30cc60..png);
  }
}
.t-software-ds-pcb-pro .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_479px_small.e7d90bff..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_767x460_medium_small.2ac5f8c7..png);
  }
}
@media (min-width: 768px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_991x460_medium.1009f10a..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_1244x460_medium_large.fb5648f0..png);
  }
}
@media (min-width: 1440px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_1244x460_large.225c1cfc..png);
  }
}
.t-software-dse .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/DSE_479px_small.92fd113d..png);
}
@media (min-width: 480px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DSE_767x460_medium_small.e4ab17f8..png);
  }
}
@media (min-width: 768px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DSE_991x460_medium.375b091b..png);
  }
}
@media (min-width: 992px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DSE_1244x460_medium_large.82e73aa7..png);
  }
}
@media (min-width: 1440px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DSE_1244x460_large.820cb016..png);
  }
}
.t-software-dsm .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/DSM_479px_small.f9984d7a..png);
}
@media (min-width: 480px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DSM_767x460_medium_small.8003cf77..png);
  }
}
@media (min-width: 768px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DSM_991x460_medium.3fef4c40..png);
  }
}
@media (min-width: 992px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DSM_1244x460_medium_large.58fa209b..png);
  }
}
@media (min-width: 1440px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DSM_1244x460_large.722fab34..png);
  }
}
.t-software-pcb-compare .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_479px_small.404e7d9e..png);
}
@media (min-width: 480px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_767x460_medium_small.1c79725d..png);
  }
}
@media (min-width: 768px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_991x460_medium.b043caa0..png);
  }
}
@media (min-width: 992px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_1244x460_medium_large.33e6a3a1..png);
  }
}
@media (min-width: 1440px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_1244x460_large.937b5874..png);
  }
}
.t-software-ds-pcb-v10 .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Nano_479px_small.8c7d2c2f..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Nano_767x460_medium_small.a47895eb..png);
  }
}
@media (min-width: 768px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Nano_991x460_medium.faee39f1..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Nano_1244x460_medium_large.9b4b2dd7..png);
  }
}
@media (min-width: 1440px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Nano_1244x460_large.1b141337..png);
  }
}
.t-software-ds-pcb-pro-v10 .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_Nano_479px_small.bc569479..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb-pro-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_Nano_767x460_medium_small.54182b3e..png);
  }
}
@media (min-width: 768px) {
  .t-software-ds-pcb-pro-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_Nano_991x460_medium.2bd9cc7b..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb-pro-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_Nano_1244x460_medium_large.2ad2be9a..png);
  }
}
@media (min-width: 1440px) {
  .t-software-ds-pcb-pro-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/DS_PCB_Pro_Nano_1244x460_large.d8047dbf..png);
  }
}
.t-software-pcb-compare-v10 .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_Nano_479px_small.d900f9aa..png);
}
@media (min-width: 480px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_Nano_767x460_medium_small.3e9cdbc6..png);
  }
}
@media (min-width: 768px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_Nano_991x460_medium.e738dcba..png);
  }
}
@media (min-width: 992px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_Nano_1244x460_medium_large.ad6ef3f9..png);
  }
}
@media (min-width: 1440px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/PCB_Comparison_Nano_1244x460_large.b87b5dc5..png);
  }
}
.t-grass-roots-education .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/GRE_479px_small.7f90d3cc..png);
}
@media (min-width: 480px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/GRE_767x460_medium_small.d3751982..png);
  }
}
@media (min-width: 768px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/GRE_991x460_medium.2264f877..png);
  }
}
@media (min-width: 992px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/GRE_1244x460_medium_large.9621bb48..png);
  }
}
@media (min-width: 1440px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/GRE_1244x460_large.d794cd70..png);
  }
}
.t-student-innovation .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/INNO_479px_small.daea047e..png);
}
@media (min-width: 480px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/INNO_767x460_medium_small.b7fae7ac..png);
  }
}
@media (min-width: 768px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/INNO_991x460_medium.9705ee6e..png);
  }
}
@media (min-width: 992px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/INNO_1244x460_medium_large.9ca1e35f..png);
  }
}
@media (min-width: 1440px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/INNO_1244x460_large.824dd582..png);
  }
}
.t-learning-and-skills .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/LAS_479px_small.7daa71a5..png);
}
@media (min-width: 480px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/LAS_767x460_medium_small.485f1718..png);
  }
}
@media (min-width: 768px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/LAS_991x460_medium.5a516bd5..png);
  }
}
@media (min-width: 992px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/LAS_1244x460_medium_large.6efc9522..png);
  }
}
@media (min-width: 1440px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/LAS_1244x460_large.e4e71113..png);
  }
}
.t-opportunities .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/OPP_479px_small.5e0bfd1d..png);
}
@media (min-width: 480px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/OPP_767x460_medium_small.2d25c425..png);
  }
}
@media (min-width: 768px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/OPP_991x460_medium.c3cd03d7..png);
  }
}
@media (min-width: 992px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/OPP_1244x460_medium_large.e3302438..png);
  }
}
@media (min-width: 1440px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/OPP_1244x460_large.af77043a..png);
  }
}
.t-draftsight .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Draftsight_479px_small.6da9b2b0..png);
}
@media (min-width: 480px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Draftsight_767x460_medium_small.1e22ca0d..png);
  }
}
@media (min-width: 768px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Draftsight_991x460_medium.d1579c7a..png);
  }
}
@media (min-width: 992px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Draftsight_1244x460_medium_large.84c43df0..png);
  }
}
@media (min-width: 1440px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Draftsight_1244x460_large.ce14e668..png);
  }
}
.t-innovation .hero {
  background-image: url(/7d751ad7/5.0.1/images/css/Innovation_479px_small.3863ffaf..png);
}
@media (min-width: 480px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Innovation_767x460_medium_small.4f19a71a..png);
  }
}
@media (min-width: 768px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Innovation_991x460_medium.96b75170..png);
  }
}
@media (min-width: 992px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Innovation_1244x460_medium_large.2b0d0c1e..png);
  }
}
@media (min-width: 1440px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/5.0.1/images/css/Innovation_1244x460_large.5fd73555..png);
  }
}
@media (min-width: 768px) {
  .hero {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

.hero__stats-block {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}
.hero__stats-block .d-hero__stats-block {
  width: calc(33.3333333333% - 10.6666666667px);
}

.hero__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
  max-width: 620px;
  display: inline-block;
  margin-bottom: 24px;
  letter-spacing: -1.5px;
  color: var(--theme-text-colour);
}
@media (min-width: 768px) {
  .hero__title {
    font-size: 48px;
    line-height: 56px;
  }
}
.hero__title > b {
  color: var(--theme-alt-text-colour);
}

.hero__body {
  max-width: 620px;
  display: inline-block;
}
@media (min-width: 992px) {
  .hero__body {
    padding-right: 40px;
  }
}

.hero__subtitle {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  color: var(--theme-text-colour);
  margin-bottom: 24px;
}

.hero__content {
  width: 100%;
}
@media (min-width: 992px) {
  .hero__content {
    width: 50%;
  }
}

.stats-block {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 24px 8px;
  background: #ffffff;
  border-radius: 10px;
  border: 1px solid #edeff1;
}
@media (min-width: 768px) {
  .stats-block {
    align-items: stretch;
    padding: 24px;
  }
}

.stats-block__value {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  color: #d9121f;
}
@media (min-width: 768px) {
  .stats-block__value {
    font-size: 28px;
    line-height: 36px;
  }
}

.stats-block__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
}

.redeem-badge {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.redeem-badge__body {
  width: 100%;
  max-width: 680px;
}

.redeem-badge__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
  color: #4a4e57;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .redeem-badge__title {
    font-size: 32px;
    line-height: 40px;
  }
}

.redeem-badge__text {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  margin-top: 24px;
}

.redeem-form {
  display: flex;
}

.redeem-badge__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  width: 100%;
}

.redeem-badge__input {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  flex: 1;
  padding-right: 8px;
  padding-left: 8px;
  border-top: 2px solid #4a4e57;
  border-bottom: 2px solid #4a4e57;
  border-left: 2px solid #4a4e57;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
.redeem-badge__input:focus {
  border-top: 4px solid #4a4e57;
  border-bottom: 4px solid #4a4e57;
  border-left: 4px solid #4a4e57;
  padding-right: 6px;
  padding-left: 6px;
}
.redeem-badge__input:invalid {
  border: 2px solid #d9121f;
}

.redeem-badge__submit {
  vertical-align: middle;
  border-radius: 0 4px 4px 0;
}

.redeem-badge__image {
  display: none;
}
@media (min-width: 768px) {
  .redeem-badge__image {
    min-width: 30%;
    display: block;
  }
}

.cta {
  text-align: center;
  padding: 40px 16px;
  background-color: #4a4e57;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMjAiIGhlaWdodD0iNjIwIiB2aWV3Qm94PSIwIDAgMzIwIDYyMCI+CiAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTQgLTUwKSI+CiAgICA8cGF0aCBmaWxsPSIjNEE0RTU3IiBkPSJNMTQgNTBoMzQwdjYyMEgxNHoiLz4KICAgIDxjaXJjbGUgY3g9IjMzNCIgY3k9IjEwNiIgcj0iMjAiIGZpbGw9IiMwMDAiIG9wYWNpdHk9Ii4xOTIiLz4KICAgIDxjaXJjbGUgY3g9IjI1IiBjeT0iMjEyIiByPSIyMCIgZmlsbD0iIzAwMCIgb3BhY2l0eT0iLjE5MiIvPgogICAgPGcgc3Ryb2tlPSIjRkZGIiBzdHJva2Utb3BhY2l0eT0iLjIiIHN0cm9rZS13aWR0aD0iOCI+CiAgICAgIDxwYXRoIGQ9Ik0yMDAuODIgMjY2Ljk5MmwyNy42IDMwLjAzNWExMyAxMyAwIDAxMCAxNy41OTNsLTI3LjYgMzAuMDM1Yy00Ljg1OCA1LjI4Ni0xMy4wODIgNS42MzQtMTguMzY4Ljc3NmExMyAxMyAwIDAxLS43NzYtLjc3NmwtMjcuNi0zMC4wMzVhMTMgMTMgMCAwMTAtMTcuNTkzbDI3LjYtMzAuMDM1YzQuODU4LTUuMjg2IDEzLjA4MS01LjYzNCAxOC4zNjgtLjc3NmExMyAxMyAwIDAxLjc3Ni43NzZ6Ii8+CiAgICAgIDxwYXRoIGQ9Ik0xNjYuODIgMjY2Ljk5MmwyNy42IDMwLjAzNWExMyAxMyAwIDAxMCAxNy41OTNsLTI3LjYgMzAuMDM1Yy00Ljg1OCA1LjI4Ni0xMy4wODIgNS42MzQtMTguMzY4Ljc3NmExMyAxMyAwIDAxLS43NzYtLjc3NmwtMjcuNi0zMC4wMzVhMTMgMTMgMCAwMTAtMTcuNTkzbDI3LjYtMzAuMDM1YzQuODU4LTUuMjg2IDEzLjA4MS01LjYzNCAxOC4zNjgtLjc3NmExMyAxMyAwIDAxLjc3Ni43NzZ6Ii8+CiAgICA8L2c+CiAgICA8ZyBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMiIgc3Ryb2tlLXdpZHRoPSI4Ij4KICAgICAgPHBhdGggZD0iTTIwMC44MiAxMC45OTJsMjcuNiAzMC4wMzVhMTMgMTMgMCAwMTAgMTcuNTkzbC0yNy42IDMwLjAzNWMtNC44NTggNS4yODYtMTMuMDgyIDUuNjM0LTE4LjM2OC43NzZhMTMgMTMgMCAwMS0uNzc2LS43NzZsLTI3LjYtMzAuMDM1YTEzIDEzIDAgMDEwLTE3LjU5M2wyNy42LTMwLjAzNWM0Ljg1OC01LjI4NiAxMy4wODEtNS42MzQgMTguMzY4LS43NzZhMTMgMTMgMCAwMS43NzYuNzc2eiIvPgogICAgICA8cGF0aCBkPSJNMTY2LjgyIDEwLjk5MmwyNy42IDMwLjAzNWExMyAxMyAwIDAxMCAxNy41OTNsLTI3LjYgMzAuMDM1Yy00Ljg1OCA1LjI4Ni0xMy4wODIgNS42MzQtMTguMzY4Ljc3NmExMyAxMyAwIDAxLS43NzYtLjc3NmwtMjcuNi0zMC4wMzVhMTMgMTMgMCAwMTAtMTcuNTkzbDI3LjYtMzAuMDM1YzQuODU4LTUuMjg2IDEzLjA4MS01LjYzNCAxOC4zNjgtLjc3NmExMyAxMyAwIDAxLjc3Ni43NzZ6Ii8+CiAgICA8L2c+CiAgICA8ZyBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMiIgc3Ryb2tlLXdpZHRoPSI4Ij4KICAgICAgPHBhdGggZD0iTTIwMC44MiA1NDEuOTkybDI3LjYgMzAuMDM1YTEzIDEzIDAgMDEwIDE3LjU5M2wtMjcuNiAzMC4wMzVjLTQuODU4IDUuMjg2LTEzLjA4MiA1LjYzNC0xOC4zNjguNzc2YTEzIDEzIDAgMDEtLjc3Ni0uNzc2bC0yNy42LTMwLjAzNWExMyAxMyAwIDAxMC0xNy41OTNsMjcuNi0zMC4wMzVjNC44NTgtNS4yODYgMTMuMDgxLTUuNjM0IDE4LjM2OC0uNzc2YTEzIDEzIDAgMDEuNzc2Ljc3NnoiLz4KICAgICAgPHBhdGggZD0iTTE2Ni44MiA1NDEuOTkybDI3LjYgMzAuMDM1YTEzIDEzIDAgMDEwIDE3LjU5M2wtMjcuNiAzMC4wMzVjLTQuODU4IDUuMjg2LTEzLjA4MiA1LjYzNC0xOC4zNjguNzc2YTEzIDEzIDAgMDEtLjc3Ni0uNzc2bC0yNy42LTMwLjAzNWExMyAxMyAwIDAxMC0xNy41OTNsMjcuNi0zMC4wMzVjNC44NTgtNS4yODYgMTMuMDgxLTUuNjM0IDE4LjM2OC0uNzc2YTEzIDEzIDAgMDEuNzc2Ljc3NnoiLz4KICAgIDwvZz4KICAgIDxjaXJjbGUgY3g9IjUwIiBjeT0iMTAwIiByPSIyMCIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjgiIG9wYWNpdHk9Ii4xOTIiLz4KICAgIDxjaXJjbGUgY3g9IjMzNCIgY3k9IjIxOCIgcj0iMjAiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4IiBvcGFjaXR5PSIuMTkyIi8+CiAgICA8ZyBvcGFjaXR5PSIuMTkyIiB0cmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAzNDkgNDA4KSI+CiAgICAgIDxjaXJjbGUgY3g9IjMyOSIgY3k9IjI2IiByPSIyMCIgZmlsbD0iIzAwMCIvPgogICAgICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjEzMiIgcj0iMjAiIGZpbGw9IiMwMDAiLz4KICAgICAgPGNpcmNsZSBjeD0iNDUiIGN5PSIyMCIgcj0iMjAiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4Ii8+CiAgICAgIDxjaXJjbGUgY3g9IjMyOSIgY3k9IjEzOCIgcj0iMjAiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4Ii8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K");
  background-position: center center;
  background-size: cover;
}
@media (min-width: 481px) {
  .cta {
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI0NTYiIHZpZXdCb3g9IjAgMCAxNDQwIDQ1NiI+CiAgPGRlZnM+CiAgICA8cGF0aCBpZD0iYSIgZD0iTTAgMGgxNDU2djQ1NkgweiIvPgogIDwvZGVmcz4KICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgPG1hc2sgaWQ9ImIiIGZpbGw9IiNmZmYiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIi8+CiAgICA8L21hc2s+CiAgICA8dXNlIGZpbGw9IiM0QTRFNTciIHhsaW5rOmhyZWY9IiNhIi8+CiAgICA8Y2lyY2xlIGN4PSIzOTkuNSIgY3k9IjQzNS41IiByPSIyMC41IiBmaWxsPSIjRkZGIiBtYXNrPSJ1cmwoI2IpIiBvcGFjaXR5PSIuMDUyIi8+CiAgICA8ZWxsaXBzZSBjeD0iMTkiIGN5PSI0NTYuNSIgZmlsbD0iI0ZGRiIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjA1MiIgcng9IjE5IiByeT0iMjAuNSIvPgogICAgPGNpcmNsZSBjeD0iMzAyIiBjeT0iMTM2IiByPSIyMCIgZmlsbD0iI0ZGRiIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjA1MiIvPgogICAgPGNpcmNsZSBjeD0iMTM2NSIgY3k9Ijg5LjgxNSIgcj0iMjAiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiIG9wYWNpdHk9Ii4wMzMiLz4KICAgIDxlbGxpcHNlIGN4PSIxMTI4LjUiIGN5PSIzNzkiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4IiBtYXNrPSJ1cmwoI2IpIiBvcGFjaXR5PSIuMTkyIiByeD0iMTguNSIgcnk9IjE5Ii8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xMTY5LjEzNSAxODAuNDA0bDM3LjI1NCAxLjU1YTEzIDEzIDAgMDExMi40NDcgMTIuNDMxbDEuNTU4IDM2LjI5NmMuMzA3IDcuMTczLTUuMjU4IDEzLjIzOC0xMi40MzEgMTMuNTQ2YTEzIDEzIDAgMDEtMS4wOTggMGwtMzcuMjU0LTEuNTVhMTMgMTMgMCAwMS0xMi40NDctMTIuNDMxbC0xLjU1OC0zNi4yOTZjLS4zMDctNy4xNzMgNS4yNTgtMTMuMjM4IDEyLjQzMS0xMy41NDZhMTMgMTMgMCAwMTEuMDk4IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAxMTg4IDIxMi4zMTUpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xMTM4LjEzNCAxODAuNDEzbDM2LjI5NiAxLjUzM2ExMyAxMyAwIDAxMTIuNDQgMTIuNDRsMS41MzMgMzYuMjk1Yy4zMDMgNy4xNzMtNS4yNjcgMTMuMjM0LTEyLjQ0IDEzLjUzN2ExMyAxMyAwIDAxLTEuMDk3IDBsLTM2LjI5Ni0xLjUzM2ExMyAxMyAwIDAxLTEyLjQ0LTEyLjQ0bC0xLjUzMy0zNi4yOTVjLS4zMDMtNy4xNzMgNS4yNjctMTMuMjM0IDEyLjQ0LTEzLjUzN2ExMyAxMyAwIDAxMS4wOTcgMHoiIG1hc2s9InVybCgjYikiIHRyYW5zZm9ybT0icm90YXRlKDQ1IDExNTYuNSAyMTIuMzE1KSIvPgogICAgPHBhdGggc3Ryb2tlPSIjRkZGIiBzdHJva2Utb3BhY2l0eT0iLjE5OSIgc3Ryb2tlLXdpZHRoPSI4IiBkPSJNODUxLjU5OCAzNDcuNzQ5bDM4LjIxMiAxLjU2NmExMyAxMyAwIDAxMTIuNDU2IDEyLjQyM2wxLjU4IDM2LjI5N2MuMzEzIDcuMTczLTUuMjQ5IDEzLjI0LTEyLjQyMiAxMy41NTNhMTMgMTMgMCAwMS0xLjA5OC4wMDJsLTM4LjIxMi0xLjU2N2ExMyAxMyAwIDAxLTEyLjQ1Ni0xMi40MjNsLTEuNTgtMzYuMjk3Yy0uMzEzLTcuMTczIDUuMjQ5LTEzLjI0IDEyLjQyMi0xMy41NTNhMTMgMTMgMCAwMTEuMDk4LS4wMDF6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSA4NzAuOTYyIDM3OS42NjkpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik02MjIuMTM0IDU4LjQxM2wzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NWMuMzAzIDcuMTczLTUuMjY3IDEzLjIzNC0xMi40NCAxMy41MzdhMTMgMTMgMCAwMS0xLjA5NyAwbC0zNi4yOTYtMS41MzNhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY3LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSA2NDAuNSA5MC4zMTUpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0yMjkuNTk2IDI0Ny4wNmwzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NGMuMzAzIDcuMTc0LTUuMjY3IDEzLjIzNS0xMi40NCAxMy41MzhhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNi4yOTUtMS41MzRhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY2LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAyNDcuOTYyIDI3OC45NjIpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik04MjAuNTk2IDM0Ny43NjZsMzYuMjk2IDEuNTM0YTEzIDEzIDAgMDExMi40NCAxMi40NGwxLjUzMyAzNi4yOTVjLjMwMyA3LjE3My01LjI2NyAxMy4yMzQtMTIuNDQgMTMuNTM3YTEzIDEzIDAgMDEtMS4wOTggMGwtMzYuMjk1LTEuNTM0YTEzIDEzIDAgMDEtMTIuNDQtMTIuNDRsLTEuNTMzLTM2LjI5NWMtLjMwMy03LjE3MyA1LjI2Ni0xMy4yMzQgMTIuNDQtMTMuNTM3YTEzIDEzIDAgMDExLjA5NyAweiIgbWFzaz0idXJsKCNiKSIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgODM4Ljk2MiAzNzkuNjY5KSIvPgogICAgPHBhdGggc3Ryb2tlPSIjRkZGIiBzdHJva2Utb3BhY2l0eT0iLjE5OSIgc3Ryb2tlLXdpZHRoPSI4IiBkPSJNNTkwLjEzNSA1OC40MDRsMzcuMjU0IDEuNTVhMTMgMTMgMCAwMTEyLjQ0NyAxMi40MzFsMS41NTggMzYuMjk2Yy4zMDcgNy4xNzMtNS4yNTggMTMuMjM4LTEyLjQzMSAxMy41NDZhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNy4yNTQtMS41NWExMyAxMyAwIDAxLTEyLjQ0Ny0xMi40MzFsLTEuNTU4LTM2LjI5NmMtLjMwNy03LjE3MyA1LjI1OC0xMy4yMzggMTIuNDMxLTEzLjU0NmExMyAxMyAwIDAxMS4wOTggMHoiIG1hc2s9InVybCgjYikiIHRyYW5zZm9ybT0icm90YXRlKDQ1IDYwOSA5MC4zMTUpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xOTcuNTk2IDI0Ny4wNmwzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NGMuMzAzIDcuMTc0LTUuMjY3IDEzLjIzNS0xMi40NCAxMy41MzhhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNi4yOTUtMS41MzRhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY2LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAyMTUuOTYyIDI3OC45NjIpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xNDIzLjU5Ni0zMy45NGwzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NGMuMzAzIDcuMTc0LTUuMjY3IDEzLjIzNS0xMi40NCAxMy41MzhhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNi4yOTUtMS41MzRhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY2LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAxNDQxLjk2MiAtMi4wMzgpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xMzkxLjU5Ni0zMy45NGwzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NGMuMzAzIDcuMTc0LTUuMjY3IDEzLjIzNS0xMi40NCAxMy41MzhhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNi4yOTUtMS41MzRhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY2LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAxNDA5Ljk2MiAtMi4wMzgpIi8+CiAgICA8ZWxsaXBzZSBjeT0iMTcwIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iOCIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjE5MiIgcng9IjE5IiByeT0iMjEiLz4KICAgIDxlbGxpcHNlIGN4PSIzNTYuNSIgY3k9IjYuODE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iOCIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjE5MiIgcng9IjE4LjUiIHJ5PSIyMCIvPgogICAgPGNpcmNsZSBjeD0iNTQ0IiBjeT0iMjkyLjgxNSIgcj0iMTkiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4IiBtYXNrPSJ1cmwoI2IpIiBvcGFjaXR5PSIuMTkyIi8+CiAgICA8Y2lyY2xlIGN4PSIxNDAyLjUiIGN5PSIyNzguNSIgcj0iMjAuNSIgZmlsbD0iI0ZGRiIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjAzMyIvPgogICAgPGNpcmNsZSBjeD0iODcyLjUiIGN5PSIxNDkuNSIgcj0iMjAuNSIgZmlsbD0iI0ZGRiIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjA1MiIvPgogICAgPGVsbGlwc2UgY3g9IjExNDYuNSIgY3k9IjQ0IiBmaWxsPSIjMDAwIiBtYXNrPSJ1cmwoI2IpIiBvcGFjaXR5PSIuMTkyIiByeD0iMTguNSIgcnk9IjIwIi8+CiAgICA8ZWxsaXBzZSBjeD0iMTguNSIgY3k9IjQ0NiIgZmlsbD0iIzAwMCIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjE5MiIgcng9IjE4LjUiIHJ5PSIyMCIvPgogICAgPGVsbGlwc2UgY3g9IjEzOTYuNSIgY3k9IjQ0NiIgZmlsbD0iIzAwMCIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjE5MiIgcng9IjE4LjUiIHJ5PSIyMCIvPgogIDwvZz4KPC9zdmc+Cg==");
    background-repeat: repeat;
  }
}

.cta__label {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
  color: #ffffff;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .cta__label {
    font-size: 40px;
    line-height: 48px;
  }
}

.w-forum-cta {
  width: 100%;
  background-image: url(/7d751ad7/5.0.1/images/css/forum-cta-background-small.7e63ba2c..png);
  background-color: #f7f7f7;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  margin-bottom: 64px;
  padding: 64px 16px;
}
@media (min-width: 768px) {
  .w-forum-cta {
    background-image: url(/7d751ad7/5.0.1/images/css/forum-cta-background-large.bc6593dd..png);
  }
}

.forum-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.forum-cta__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .forum-cta__title {
    font-size: 48px;
    line-height: 56px;
  }
}

.forum-cta__body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 24px;
}

.forum-cta__button {
  width: 100%;
}
@media (min-width: 480px) {
  .forum-cta__button {
    max-width: 300px;
  }
}

.s-breadcrumbs {
  width: 100%;
  padding: 8px 16px;
  background-color: var(--theme-alt-bg-colour);
  display: none;
}
@media (min-width: 768px) {
  .s-breadcrumbs {
    display: block;
  }
}

.breadcrumbs {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
  padding-left: 4px;
  padding-right: 4px;
}

.breadcrumbs__item {
  display: inline;
  color: rgba(29, 29, 27, 0.9);
}
.breadcrumbs__item:hover {
  color: #4a4e57;
}
.breadcrumbs__item:last-child {
  font-weight: 700;
  pointer-events: none;
}
.breadcrumbs__item:not(:last-child)::after {
  padding: 0 8px;
  color: rgba(29, 29, 27, 0.65);
  content: ">";
}

.technology-feed {
  padding-top: 40px;
  padding-bottom: 40px;
}

@media (max-width: 767px) {
  .technology-feed__title {
    margin-bottom: 16px;
  }
}

.technology-feed__follow {
  width: 100%;
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .technology-feed__follow {
    max-width: 200px;
  }
}

@media (max-width: 767px) {
  .technology-feed__sort-by {
    display: none;
  }
}
@media (min-width: 768px) {
  .technology-feed__sort-by {
    width: auto;
    color: #1d1d1b;
    margin-bottom: 0;
  }
  .technology-feed__sort-by .select-field__label {
    color: #ffffff;
  }
}
@media (min-width: 768px) and (max-width: 992px) {
  .technology-feed__sort-by .select-field__label {
    flex-grow: 1;
  }
  .technology-feed__sort-by .select-field__input {
    flex-grow: 5;
  }
}
@media (min-width: 992px) {
  .technology-feed__sort-by {
    margin-left: auto;
  }
}

.technology-feed__contribute-link {
  color: #3244ff;
  font-weight: 700;
}
.technology-feed__contribute-link:hover {
  color: #d9121f;
}

.technology-feed__no-content-message--transient {
  display: none;
}

.forum-listing {
  padding-top: 40px;
  padding-bottom: 40px;
}

.forum-listing__title-bar {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px 24px;
  color: #ffffff;
  background-color: #1d1d1b;
  margin-bottom: 24px;
}
@media (min-width: 480px) {
  .forum-listing__title-bar {
    flex-direction: row;
    align-items: center;
  }
}

.forum-listing__title {
  margin-bottom: 24px;
}
@media (min-width: 480px) {
  .forum-listing__title {
    margin-bottom: 0;
  }
}

.forum-listing__filter {
  margin-bottom: 0;
}
@media (min-width: 480px) {
  .forum-listing__filter {
    max-width: 200px;
  }
}

.forum-listing__loading-indicator {
  display: none;
}
.is-loading-cards .forum-listing__loading-indicator {
  display: block;
}

.forum-listing-group__handle {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  padding: 24px;
  border-left: 5px solid var(--theme-bg-colour);
  position: relative;
}
@media (min-width: 768px) {
  .forum-listing-group__handle {
    font-size: 28px;
    line-height: 36px;
  }
}
@media (min-width: 480px) {
  .forum-listing-group__handle {
    border-left-width: 10px;
  }
}
.forum-listing-group__handle::after {
  content: "add";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 480px) {
  .forum-listing-group__handle::after {
    font-size: 30px;
  }
}
.forum-listing-group__handle:hover {
  cursor: pointer;
}
.forum-listing-group[open] .forum-listing-group__handle::after {
  content: "remove";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}
@media (min-width: 480px) {
  .forum-listing-group[open] .forum-listing-group__handle::after {
    font-size: 30px;
  }
}

.js-details-not-supported .forum-listing-group__drawer {
  display: none;
}
.js-details-not-supported[open] .forum-listing-group__drawer {
  display: block;
}

.filter-drawer {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  background-color: #1d1d1b;
  color: #ffffff;
}

.filter-drawer__drawer {
  align-items: center;
}
.filter-drawer__drawer[open] .filter-drawer__handle::after {
  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path fill='%23ffffff' d='M8.12 14.71L12 10.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 8.71c-.39-.39-1.02-.39-1.41 0L6.7 13.3c-.39.39-.39 1.02 0 1.41.39.38 1.03.39 1.42 0z'/></svg>");
}

.filter-drawer__handle {
  padding: 24px 16px;
  position: relative;
}
.filter-drawer__handle::after {
  content: "";
  position: absolute;
  right: 16px;
  top: 24px;
  min-width: 24px;
  min-height: 24px;
  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path fill='%23ffffff' d='M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z'/></svg>");
  background-repeat: no-repeat;
  background-position: right;
}
.filter-drawer__handle::before {
  content: "filter_list";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.filter-drawer__tray {
  background-color: #edeff1;
  color: #1d1d1b;
  display: flex;
  flex-direction: column;
  border-bottom: 2px solid #1d1d1b;
  padding: 16px;
}

@media (min-width: 768px) {
  .filter-drawer--feed {
    display: none;
  }
}

.w-filter-bar {
  width: 100%;
  padding: 0 16px;
  background: #1d1d1b;
}

.filter-bar {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
  padding-top: 8px;
  padding-bottom: 8px;
  display: flex;
  align-items: center;
}
@media (max-width: 992px) {
  .filter-bar {
    flex-direction: column;
    align-items: unset;
  }
}

@media (max-width: 992px) {
  .filter-bar__filters {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
  }
}

.filter-bar__filter {
  padding: 16px 24px;
  color: #ffffff;
  border-top: 2px solid transparent;
  border-bottom: 2px solid transparent;
}
@media hover {
  .filter-bar__filter:hover {
    border-bottom: 2px solid #ffffff;
  }
}
.filter-bar__filter.is-active {
  border-bottom: 2px solid #ffffff;
}

@media (max-width: 767px) {
  .filter-bar--feed {
    display: none;
  }
}

.software-requirements {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  padding: 24px;
  color: #4a4e57;
}

.software-requirements__heading {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .software-requirements__heading {
    font-size: 28px;
    line-height: 36px;
  }
}

.software-requirements__list {
  display: flex;
  align-items: center;
  margin-bottom: 40px;
}
.software-requirements__list:last-child {
  margin-bottom: 0;
}

.software-requirements__icon {
  margin-right: 24px;
}
@media (min-width: 768px) {
  .software-requirements__icon svg {
    width: 56px;
    height: 56px;
  }
}
.software-requirements__icon svg {
  width: 45px;
  height: 45px;
}

.software-requirements__body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

.media-carousel {
  position: relative;
}

.media-carousel__slide {
  display: flex;
  justify-content: space-between;
}

.media-carousel__controls {
  position: absolute;
  bottom: 0;
  width: 100%;
}
@media (min-width: 768px) {
  .media-carousel__controls {
    right: 0;
    width: 50%;
  }
}

.media-carousel-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.media-carousel-controls__button {
  background-color: #f1f1f1;
  width: 64px;
  height: 56px;
}
@media (min-width: 768px) {
  .media-carousel-controls__button {
    width: 104px;
    height: 88px;
  }
}
.media-carousel-controls__button:hover {
  background-color: #d9121f;
}

.media-carousel-controls__button--back::before {
  content: "keyboard_arrow_left";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 36px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
@media (min-width: 768px) {
  .media-carousel-controls__button--back::before {
    content: "keyboard_arrow_left";
    font-family: "Material Icons Round";
    font-weight: normal;
    font-style: normal;
    font-size: 56px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
  }
}

.media-carousel-controls__button--forward::before {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 36px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
@media (min-width: 768px) {
  .media-carousel-controls__button--forward::before {
    content: "keyboard_arrow_right";
    font-family: "Material Icons Round";
    font-weight: normal;
    font-style: normal;
    font-size: 56px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
  }
}

.media-carousel-controls__counter {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #4a4e57;
  display: inline-flex;
}

.media-slide {
  opacity: 0;
  position: absolute;
  color: #4a4e57;
  pointer-events: none;
  top: 0;
}
.media-slide.is-current {
  opacity: 1;
  position: relative;
  pointer-events: auto;
}

.media-slide__image {
  display: none;
}
@media (min-width: 768px) {
  .media-slide__image {
    width: 50%;
    display: block;
  }
}

.media-slide__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .media-slide__title {
    font-size: 28px;
    line-height: 36px;
  }
}

.media-slide__subtitle {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}

.media-slide__body_text p {
  margin-bottom: 8px;
}
.media-slide__body_text a {
  font-weight: 700;
}
.media-slide__body_text a:hover {
  color: #d9121f;
}

.media-slide__body {
  padding: 16px 16px 104px;
}
@media (min-width: 768px) {
  .media-slide__body {
    width: 50%;
  }
}

.avatar {
  display: flex;
  align-items: center;
}
.avatar:hover .avatar__username {
  color: #d9121f;
}

.avatar__image {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-block;
}
.avatar__image > svg {
  width: 38px;
  height: 38px;
  fill: #4a4e57;
}

.avatar__username {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  margin-left: 16px;
  color: #3244ff;
}

.avatar--large-username .avatar__username {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}

.avatar--large-image .avatar__image {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: inline-block;
}
.avatar--large-image .avatar__image > svg {
  width: 48px;
  height: 48px;
  fill: #4a4e57;
}
@media (min-width: 768px) {
  .avatar--large-image .avatar__image {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    display: inline-block;
  }
  .avatar--large-image .avatar__image > svg {
    width: 68px;
    height: 68px;
    fill: #4a4e57;
  }
}

.user-metadata {
  display: flex;
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .user-metadata {
    justify-content: flex-start;
    margin-bottom: 0;
  }
}

.user-metadata__set {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  display: flex;
  flex-direction: column;
  margin-right: 16px;
  text-align: center;
}
@media (min-width: 480px) {
  .user-metadata__set {
    flex-direction: row;
  }
  .user-metadata__set .user-metadata__value {
    margin-right: 4px;
  }
}

@media (min-width: 768px) {
  .user-metadata__set--reversed {
    flex-direction: row-reverse;
  }
  .user-metadata__set--reversed .user-metadata__value {
    margin-right: 0;
  }
  .user-metadata__set--reversed .user-metadata__term {
    margin-right: 4px;
  }
}

.user-metadata__value {
  color: #d9121f;
}

.user-metadata__term {
  color: #4a4e57;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.forum-votes-tooltip {
  position: absolute;
  left: 0;
  width: 100%;
  background: #ffffff;
  margin-top: 20px;
  display: none;
  box-shadow: 0 10px 10px 0 rgba(74, 78, 87, 0.2);
  z-index: 1;
  border-top: 1px solid rgba(74, 78, 87, 0.1);
}

@media (min-width: 768px) {
  .forum-votes-tooltip {
    width: auto;
    margin-top: 24px;
    border-radius: 4px;
    box-shadow: 2px 2px 1px rgba(225, 225, 225, 0.5);
    left: 50%;
    transform: translateX(-50%);
    border-top: none;
  }

  .forum-votes-tooltip::before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #ffffff;
    left: 50%;
    transform: translateX(-50%);
    top: -5px;
  }

  .forum-votes-tooltip::after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid rgba(225, 225, 225, 0.5);
    left: 50%;
    z-index: -1;
    transform: translateX(-50%);
    top: -6px;
  }
}
.is-dropdown-open .forum-votes-tooltip {
  display: block;
  -webkit-animation: dropDown 0.2s ease-in both;
          animation: dropDown 0.2s ease-in both;
}

@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
.forum-votes-tooltip__link {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
  white-space: nowrap;
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 16px;
}

@media (min-width: 768px) {
  .forum-votes-tooltip__link {
    font-family: "Roboto", Arial, sans-serif;
    font-size: 12px;
    line-height: 20px;
    padding: 8px 24px;
  }
}
.forum-votes-tooltip__link:hover {
  background: #f7f7f7;
}

.forum-content__text h1 {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
}

@media (min-width: 768px) {
  .forum-content__text h1 {
    font-size: 40px;
    line-height: 48px;
  }
}
.forum-content__text h2 {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
}

@media (min-width: 768px) {
  .forum-content__text h2 {
    font-size: 32px;
    line-height: 40px;
  }
}
.forum-content__text h3 {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}

@media (min-width: 768px) {
  .forum-content__text h3 {
    font-size: 28px;
    line-height: 36px;
  }
}
.forum-content__text h4 {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}

@media (min-width: 768px) {
  .forum-content__text h4 {
    font-size: 28px;
    line-height: 36px;
  }
}
.forum-content__text h1,
.forum-content__text h2,
.forum-content__text h3,
.forum-content__text h4,
.forum-content__text p {
  margin-bottom: 24px;
}

.forum-content__text b,
.forum-content__text strong {
  font-weight: 700;
}

.forum-content__text em {
  font-style: italic;
}

.forum-content__text a {
  font-weight: 700;
  color: #3244ff;
}

.forum-content__text a:hover {
  color: #d9121f;
}

.forum-content__text ul {
  list-style: disc;
}

.forum-content__text ol {
  list-style: decimal;
}

.forum-content__text li {
  margin-left: 40px;
}

.forum-content__text sup,
.forum-content__text sub {
  font-size: 75%;
  position: relative;
}

.forum-content__text sup {
  top: -0.5em;
}

.forum-content__text sub {
  bottom: -0.25em;
}

.forum-content__text table[border="1"] th,
.forum-content__text table[border="1"] td {
  border: 1px solid #1d1d1b;
}

.forum-content__text blockquote {
  padding: 8px 0 8px 24px;
  background-color: #f7f7f7;
  border-left: 3px solid rgba(74, 78, 87, 0.2);
}

.forum-content__text blockquote p {
  margin-bottom: 0;
}

.forum-content {
  display: flex;
  flex-direction: column;
  padding: 24px 16px;
}
@media (min-width: 768px) {
  .forum-content {
    border-radius: 4px;
    box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
    padding: 16px 40px;
  }
}

.forum-content--nominated {
  padding-right: 13px;
  padding-left: 13px;
}
@media (min-width: 768px) {
  .forum-content--nominated {
    border-radius: 4px;
    box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
    padding-right: 37px;
    padding-left: 37px;
  }
}

.forum-content--preview .forum-content__reply-button,
.forum-content--preview .forum-content__actions {
  display: none;
}
.forum-content--preview .forum-content__text {
  margin-bottom: 0;
}

.forum-content__header {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .forum-content__header {
    align-items: center;
    flex-direction: row;
  }
}

.forum-content__avatar {
  margin-right: 16px;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .forum-content__avatar {
    margin-bottom: 0;
  }
}

.forum-content__metadata {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex-grow: 1;
}
@media (min-width: 768px) {
  .forum-content__metadata {
    align-items: center;
    flex-direction: row;
  }
}

.forum-content__actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
}
@media (min-width: 768px) {
  .forum-content__actions {
    justify-content: flex-end;
  }
}

@media (min-width: 768px) {
  .forum-content__body {
    margin-left: 64px;
  }
}
.forum-content--post .forum-content__body {
  margin-left: 0;
}
@media (min-width: 768px) {
  .forum-content--post .forum-content__body {
    padding: 40px 64px;
    border-radius: 4px;
    border: 1px solid rgba(188, 188, 188, 0.5);
  }
}

.forum-content__addthis {
  padding-top: 16px;
  padding-bottom: 16px;
}

.forum-content__datetime {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #1d1d1b;
  display: block;
  margin-bottom: 16px;
}

.forum-content__text {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  margin-bottom: 40px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.o-forum-content-header {
  padding: 24px 16px;
  text-align: center;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .o-forum-content-header {
    padding: 16px 40px;
    text-align: left;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.nominated-comment {
  border: 3px solid #1d1d1b;
  border-radius: 4px;
}

.nominated-comment__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #ffffff;
  background-color: #1d1d1b;
  padding: 24px;
}
@media (min-width: 768px) {
  .nominated-comment__label {
    padding: 24px 40px;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.forum-votes {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  background-color: #edeff1;
  line-height: 24px;
  position: relative;
  border-radius: 4px;
}
.forum-votes:last-child {
  margin-right: 0;
}

.forum-votes__vote--like {
  border-bottom-right-radius: 0;
}

.forum-votes__vote--dislike {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.forum-votes__count {
  margin-left: 4px;
  margin-right: 4px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.forum-votes-tooltip {
  top: 54px;
  width: unset;
  box-shadow: 0 10px 10px 0 rgba(74, 78, 87, 0.2);
  border-top: 1px solid rgba(74, 78, 87, 0.1);
}
.forum-votes-tooltip::before, .forum-votes-tooltip::after {
  display: none;
}

.forum-votes-tooltip__link {
  white-space: pre;
  text-align: center;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.software-install .software-install-step:first-child {
  padding-top: 0;
}
.software-install .software-install-step:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.software-install-step {
  padding-top: 24px;
  padding-bottom: 40px;
  border-bottom: 1px solid #4a4e57;
}

.software-install-step__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  color: #4a4e57;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .software-install-step__title {
    font-size: 28px;
    line-height: 36px;
  }
}

.software-install-step__text {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.software-download {
  display: flex;
  flex-direction: column;
}

.software-download__button {
  display: none;
  align-self: flex-start;
  width: 100%;
}
@media (min-width: 768px) {
  .software-download__button {
    width: auto;
  }
}
.software-download__button.is-active {
  display: block;
}

.project-parts-list {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  padding: 16px 16px 0;
}

.project-parts-list__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-left: 8px;
}

.project-parts-list__table {
  width: 100%;
}

.project-parts-list__data,
.project-parts-list__header-item {
  text-align: left;
  vertical-align: middle;
  padding: 16px;
}

.project-parts-list__header {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  border-bottom: 1px solid rgba(188, 188, 188, 0.65);
}

.project-parts-list__header-item--basket {
  display: none;
}
@media (min-width: 480px) {
  .project-parts-list__header-item--basket {
    display: table-cell;
    text-align: right;
    color: #1d1d1b;
  }
  .project-parts-list__header-item--basket::before {
    content: "shopping_basket";
    font-family: "Material Icons Round";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
  }
}

.project-parts-list__row {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}
@media (min-width: 480px) {
  .project-parts-list__row {
    border-bottom: 1px solid rgba(188, 188, 188, 0.25);
  }
}

.is-retracted .project-parts-list__row--transient {
  display: none;
}

.project-parts-list__row--basket {
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}
@media (min-width: 480px) {
  .project-parts-list__row--basket {
    display: none;
  }
}

.project-parts-list__row--add-all {
  border-bottom: none;
}
.project-parts-list__row--add-all .project-parts-list__data {
  padding-bottom: 0;
  text-align: right;
}

.project-parts-list__data--quantity {
  position: relative;
  padding-right: 40px;
}
.project-parts-list__data--quantity::after {
  content: "x";
  position: absolute;
  right: 16px;
}

.project-parts-list__data--basket {
  display: none;
}
@media (min-width: 480px) {
  .project-parts-list__data--basket {
    display: table-cell;
    text-align: right;
  }
}

.project-parts-list__part-link:hover {
  color: #d9121f;
}

.project-parts-list__basket-add-label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  text-decoration: underline;
  color: #4a4e57;
  position: relative;
  padding: 16px 16px 16px 40px;
}
.project-parts-list__basket-add-label::before {
  content: "add_circle";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #1d1d1b;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.project-parts-list__basket-add-button {
  color: #1d1d1b;
}

.project-parts-list__button {
  width: 100%;
}

@media (min-width: 480px) {
  .project-parts-list__button--add-all {
    max-width: 300px;
  }
}

.project-parts-list__button--expand {
  display: none;
}
.is-retracted .project-parts-list__button--expand {
  display: inline-block;
}

.is-retracted .project-parts-list__button--collapse {
  display: none;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.product-page__section-title {
  display: none;
}
@media (min-width: 768px) {
  .product-page__section-title {
    font-family: "Roboto", Arial, sans-serif;
    font-weight: 700;
    font-size: 28px;
    line-height: 36px;
    display: block;
    margin-bottom: 24px;
  }
}
@media (min-width: 768px) and (min-width: 768px) {
  .product-page__section-title {
    font-size: 32px;
    line-height: 40px;
  }
}

.product-page__divider {
  max-width: 1244px;
  color: rgba(247, 247, 247, 0.25);
  background-color: rgba(247, 247, 247, 0.25);
  border-color: rgba(247, 247, 247, 0.25);
}

.product-page__expandable-section {
  display: block;
}
@media (min-width: 768px) {
  .product-page__expandable-section {
    display: none;
  }
}

.product-page__handle {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  padding: 24px 40px 24px 24px;
  border-left: 5px solid #ffdb0f;
  position: relative;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .product-page__handle {
    font-size: 28px;
    line-height: 36px;
  }
}
@media (min-width: 480px) {
  .product-page__handle {
    border-left-width: 10px;
  }
}
.product-page__handle::after {
  content: "add";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 480px) {
  .product-page__handle::after {
    font-size: 30px;
  }
}
.product-page__expandable-section[open] .product-page__handle::after {
  content: "remove";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}
@media (min-width: 480px) {
  .product-page__expandable-section[open] .product-page__handle::after {
    font-size: 30px;
  }
}

.js-details-not-supported .product-page__drawer {
  display: none;
}
.js-details-not-supported[open] .product-page__drawer {
  display: block;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.product-page-heading {
  display: flex;
  flex-direction: column;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .product-page-heading {
    align-items: flex-start;
  }
}

.product-page-heading__title {
  margin-bottom: 24px;
}

.product-page-heading__metadata {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: flex;
  flex-wrap: wrap;
}

.product-page-heading__metadata-set {
  display: flex;
  flex-wrap: wrap;
}
.product-page-heading__metadata-set::before {
  content: "|";
  speak: none;
  margin-right: 4px;
}
.product-page-heading__metadata-set:first-child::before {
  content: none;
}

.product-page-heading__metadata-label {
  margin-right: 4px;
}
.product-page-heading__metadata-label::after {
  content: ":";
  speak: none;
}

.product-page-heading__metadata-value {
  color: #d9121f;
  font-weight: 700;
  margin-right: 4px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.product-specifications {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .product-specifications {
    flex-direction: row;
  }
}

.product-specifications__image-container {
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .product-specifications__image-container {
    flex-shrink: 0;
    max-width: 33%;
    margin-right: 24px;
  }
}

.product-specifications__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .product-specifications__title {
    font-size: 28px;
    line-height: 36px;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
.product-specifications-table {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  table-layout: fixed;
  width: 100%;
}

.product-specifications-table__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-left: 8px;
}

.product-specifications-table__data,
.product-specifications-table__header-item {
  text-align: left;
  vertical-align: middle;
  padding: 16px;
  overflow: hidden;
}
.product-specifications-table__data:not(:last-child),
.product-specifications-table__header-item:not(:last-child) {
  border-right: 2px solid rgba(188, 188, 188, 0.25);
}

.product-specifications-table__data--no-data {
  padding: 16px 16px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.product-specifications-table__header {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  background-color: #f7f7f7;
}

.product-specifications-table__row {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}

.is-retracted .product-specifications-table__row--transient {
  display: none;
}

.product-specifications-table__button {
  width: 100%;
  max-width: 320px;
  position: relative;
}
.product-specifications-table__button::after {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.product-specifications-table__button--expand {
  display: none;
}
.product-specifications-table__button--expand::after {
  content: "keyboard_arrow_down";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-retracted .product-specifications-table__button--expand {
  display: inline-block;
}

.product-specifications-table__button--collapse::after {
  content: "keyboard_arrow_up";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-retracted .product-specifications-table__button--collapse {
  display: none;
}

.product-specifications-table__footer {
  text-align: center;
  background-color: #f7f7f7;
}

.product-specifications-table--skeleton .product-specifications-table__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  -webkit-animation-duration: 3s;
          animation-duration: 3s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-name: moveBackground;
          animation-name: moveBackground;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
          animation-direction: normal;
}

@-webkit-keyframes moveBackground {
  from {
    background-position: top right;
  }
  to {
    background-position: bottom left;
  }
}

@keyframes moveBackground {
  from {
    background-position: top right;
  }
  to {
    background-position: bottom left;
  }
}
.product-specifications-table--skeleton {
  position: relative;
}

.product-specifications-table__loading-indicator {
  display: none;
}
.product-specifications-table--skeleton .product-specifications-table__loading-indicator {
  position: absolute;
  top: 20px;
  display: block;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.technical-references {
  position: relative;
}

.technical-references__table {
  display: none;
}
@media (min-width: 768px) {
  .technical-references__table {
    display: table;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.technical-references-table {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  table-layout: fixed;
  width: 100%;
}

.technical-references-table__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-left: 8px;
}

.technical-references-table__data,
.technical-references-table__header-item {
  text-align: left;
  vertical-align: middle;
  padding: 16px;
  overflow: hidden;
}
.technical-references-table__data:not(:last-child),
.technical-references-table__header-item:not(:last-child) {
  border-right: 2px solid rgba(188, 188, 188, 0.25);
}

.technical-references-table__data--no-data {
  padding: 16px 16px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.technical-references-table__header {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  background-color: #f7f7f7;
}

.technical-references-table__row {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}

.is-retracted .technical-references-table__row--transient {
  display: none;
}

.technical-references-table__button {
  width: 100%;
  max-width: 320px;
  position: relative;
}
.technical-references-table__button::after {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.technical-references-table__button--expand {
  display: none;
}
.technical-references-table__button--expand::after {
  content: "keyboard_arrow_down";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-retracted .technical-references-table__button--expand {
  display: inline-block;
}

.technical-references-table__button--collapse::after {
  content: "keyboard_arrow_up";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-retracted .technical-references-table__button--collapse {
  display: none;
}

.technical-references-table__footer {
  text-align: center;
  background-color: #f7f7f7;
}

.technical-references--skeleton .technical-references-table__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  -webkit-animation-duration: 3s;
          animation-duration: 3s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-name: moveBackground;
          animation-name: moveBackground;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
          animation-direction: normal;
}

.technical-references-table__data--type {
  position: relative;
  padding-left: 56px;
}
.technical-references-table__data--type::before {
  content: "description";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #bcbcbc;
  speak: none;
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.technical-references-table__data--download span {
  display: flex;
  align-items: center;
}

.technical-references-table__download-link {
  margin-left: auto;
}
.technical-references-table__download-link::after {
  content: "save_alt";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  vertical-align: top;
}

.technical-references-table__alternative-download-link {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
}
.technical-references-table__alternative-download-link:hover {
  text-decoration: underline;
}

.technical-references-table__loading-indicator {
  display: none;
}
.technical-references--skeleton .technical-references-table__loading-indicator {
  position: absolute;
  top: 20px;
  display: block;
}

.technical-references-table__button {
  outline-offset: 3px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.technical-reference-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: inline-flex;
  flex-direction: column;
}
.technical-references--skeleton .technical-reference-card {
  width: 100%;
}

.technical-reference-card__header,
.technical-reference-card__body,
.technical-reference-card__footer {
  padding: 24px;
}

.technical-reference-card__header,
.technical-reference-card__body {
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
  display: flex;
}

.technical-reference-card__header::before {
  content: "description";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #1d1d1b;
  speak: none;
  margin-right: 24px;
}

.technical-references--skeleton .technical-reference-card__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  -webkit-animation-duration: 3s;
          animation-duration: 3s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-name: moveBackground;
          animation-name: moveBackground;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
          animation-direction: normal;
  display: block;
}
.technical-references--skeleton .technical-reference-card__body::before {
  display: none;
}
.technical-references--skeleton .technical-reference-card__body .o-loading-indicator {
  margin-top: 20px;
  margin-bottom: 20px;
}

.technical-reference-card__footer-link {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
}
.technical-reference-card__footer-link:hover {
  text-decoration: underline;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.design-references {
  position: relative;
}

.design-references__table {
  display: none;
}
@media (min-width: 768px) {
  .design-references__table {
    display: table;
  }
}

.design-references__status-text {
  font-weight: 700;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.design-references-table {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  table-layout: fixed;
  width: 100%;
}

.design-references-table__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-left: 8px;
}

.design-references-table__data,
.design-references-table__header-item {
  text-align: left;
  vertical-align: middle;
  padding: 16px;
  overflow: hidden;
}
.design-references-table__data:not(:last-child),
.design-references-table__header-item:not(:last-child) {
  border-right: 2px solid rgba(188, 188, 188, 0.25);
}

.design-references-table__data--no-data {
  padding: 16px 16px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.design-references-table__header {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  background-color: #f7f7f7;
}

.design-references-table__row {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}

.is-retracted .design-references-table__row--transient {
  display: none;
}

.design-references-table__button {
  width: 100%;
  max-width: 320px;
  position: relative;
}
.design-references-table__button::after {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.design-references-table__button--expand {
  display: none;
}
.design-references-table__button--expand::after {
  content: "keyboard_arrow_down";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-retracted .design-references-table__button--expand {
  display: inline-block;
}

.design-references-table__button--collapse::after {
  content: "keyboard_arrow_up";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-retracted .design-references-table__button--collapse {
  display: none;
}

.design-references-table__footer {
  text-align: center;
  background-color: #f7f7f7;
}

.design-references--skeleton .design-references-table__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  -webkit-animation-duration: 3s;
          animation-duration: 3s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-name: moveBackground;
          animation-name: moveBackground;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
          animation-direction: normal;
}

.design-references-table__data--type {
  position: relative;
  padding-left: 64px;
}
.design-references-table__data--type::before {
  content: "description";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #bcbcbc;
  speak: none;
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.design-references-table__data--select {
  padding: 0 4px;
}

.design-reference-table__select {
  margin-bottom: 0;
  width: 100%;
}

.design-references-table__download-link {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
}
.design-references-table__download-link:hover {
  text-decoration: underline;
}

.design-reference-table__download-container {
  display: none;
}
.design-reference-table__download-container.is-active {
  display: flex;
}

.design-references-table__loading-indicator {
  display: none;
}
.design-references--skeleton .design-references-table__loading-indicator {
  position: absolute;
  top: 20px;
  display: block;
}

.design-reference-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: inline-flex;
  flex-direction: column;
}
.technical-references--skeleton .design-reference-card {
  width: 100%;
}

.design-reference-card__header,
.design-reference-card__body,
.design-reference-card__footer {
  padding: 24px;
}

.design-reference-card__header,
.design-reference-card__body {
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
  display: flex;
}

.design-reference-card__header::before {
  content: "description";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #1d1d1b;
  speak: none;
  margin-right: 24px;
}

.technical-references--skeleton .design-reference-card__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  -webkit-animation-duration: 3s;
          animation-duration: 3s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-name: moveBackground;
          animation-name: moveBackground;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
          animation-direction: normal;
  display: block;
}
.technical-references--skeleton .design-reference-card__body::before {
  display: none;
}
.technical-references--skeleton .design-reference-card__body .o-loading-indicator {
  margin-top: 20px;
  margin-bottom: 20px;
}

.design-reference-card__footer-link {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
}
.design-reference-card__footer-link:hover {
  text-decoration: underline;
}

.design-reference-card__download-container {
  display: none;
}
.design-reference-card__download-container.is-active {
  display: flex;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.design-library__small {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .design-library__small {
    display: none;
  }
}

.design-library__large {
  display: none;
}
@media (min-width: 768px) {
  .design-library__large {
    display: flex;
    width: 100%;
  }
}

.design-library__alert {
  width: 100%;
}

.design-library__nav {
  margin-right: 16px;
  flex-basis: 25%;
}

.design-library__nav-tabs {
  display: none;
}
@media (min-width: 768px) {
  .design-library__nav-tabs {
    border-radius: 4px;
    box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
    display: block;
    width: 100%;
    max-width: 300px;
  }
}

.design-library__nav-tab {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  padding: 16px;
  width: 100%;
  text-align: left;
  transition: padding-left ease-in-out 300ms;
}
.design-library__nav-tab.is-active {
  border-left: 6px solid #d9121f;
  padding-left: 10px;
}
.design-library__nav-tab:not(:last-child) {
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}
.design-library__nav-tab:hover, .design-library__nav-tab:focus {
  background-color: #f7f7f7;
  padding-left: 24px;
}
.design-library__nav-tab:hover.is-active, .design-library__nav-tab:focus.is-active {
  padding-left: 18px;
}
.design-library__nav-tab.is-disabled {
  background-color: #bcbcbc;
  opacity: 0.5;
  padding-left: 16px;
  pointer-events: none;
}

.design-library__slide-container {
  display: none;
}
.design-library__slide-container.is-active {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  justify-content: space-around;
  display: flex;
  position: relative;
}

.design-library__slide {
  padding-bottom: 56.25%;
  height: 0;
}
.design-library__slide > * {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 100%;
  height: 100%;
  resize: both;
  overflow: auto;
}
.design-library__slide > .design-library__slide-image {
  width: auto;
}

.registration-cta {
  background-color: #4a4e57;
  color: #ffffff;
  padding: 40px 24px;
  display: flex;
  flex-direction: column;
}

.registration-cta__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}

.registration-cta__text {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 24px;
}

.registration-cta__benefits {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 24px;
}

.registration-cta__benefit {
  margin-bottom: 16px;
  display: flex;
}
.registration-cta__benefit::before {
  content: "check";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #bcbcbc;
  margin-right: 4px;
}

.error {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  text-align: center;
  padding: 24px 24px;
}
@media (min-width: 768px) {
  .error {
    padding: 64px 64px;
  }
}

.error__code {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .error__code {
    font-size: 28px;
    line-height: 36px;
  }
}

.error__description {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .error__description {
    font-size: 28px;
    line-height: 36px;
  }
}

.error__message {
  margin-bottom: 24px;
}

.error-list {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .error-list {
    flex-direction: row;
    justify-content: center;
  }
}

@media (min-width: 768px) {
  .error-list--item {
    margin-right: 24px;
  }
}

.error-list--item__link {
  font-weight: bold;
  color: #3244ff;
}

.log-in {
  padding: 24px;
}
@media (min-width: 768px) {
  .log-in {
    padding: 64px;
  }
}

.log-in__form {
  display: flex;
  flex-direction: column;
}

.log-in__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .log-in__title {
    font-size: 28px;
    line-height: 36px;
  }
}

.log-in__recaptcha {
  margin-bottom: 24px;
}

.log-in__submit {
  margin-bottom: 24px;
  width: 100%;
}
@media (min-width: 768px) {
  .log-in__submit {
    width: auto;
    margin-right: 24px;
    margin-bottom: 0;
  }
}

.log-in__options {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (min-width: 768px) {
  .log-in__options {
    flex-direction: row;
  }
}

.paginator {
  display: flex;
  align-items: center;
}

.paginator__link {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  display: flex;
  min-width: 30px;
  justify-content: center;
  margin-right: 4px;
}
.paginator__link:hover {
  color: #d9121f;
}

.paginator__link--active {
  color: #ffffff;
  background-color: #4a4e57;
  border-radius: 50%;
  text-align: center;
  border: 3px solid #4a4e57;
}
.paginator__link--active:hover {
  color: #ffffff;
}

.paginator__link--previous::after {
  content: "keyboard_arrow_left";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

.paginator__link--next::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

.paginator__link--first::after {
  margin-left: 24px;
  content: "...";
}

.paginator__link--last::before {
  margin-right: 24px;
  content: "...";
}

.page-heading__title-container {
  display: flex;
  flex-direction: column;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .page-heading__title-container {
    flex-direction: row;
    justify-content: space-between;
    margin-bottom: 0;
    align-items: flex-start;
  }
}

.page-heading__title {
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .page-heading__title {
    margin-right: 40px;
  }
}

.page-heading__partner-logo {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.partner-logo__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  margin-right: 4px;
}

.product-link {
  display: inline-flex;
  vertical-align: middle;
}

.product-link__product {
  margin-right: 4px;
}
.product-link--unverified .product-link__product {
  color: inherit;
  text-decoration: inherit;
  cursor: auto;
  pointer-events: none;
  margin-right: 0;
}

.product-link__basket {
  color: #3244ff;
}
.product-link__basket:hover {
  color: #d9121f;
}
.product-link__basket::before {
  content: "shopping_basket";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 18px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}
.product-link--unverified .product-link__basket {
  display: none;
}

.form__errors {
  margin-bottom: 24px;
}

.form__error {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #d9121f;
}

.form__field-group {
  margin-bottom: 24px;
}
.form__field-group > .input-field {
  margin-bottom: 0;
}
.form__field-group > .input-field > .input-field__label {
  margin-bottom: 8px;
}
.form__field-group .o-radio {
  margin-bottom: 8px;
}

.form__legend {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .form__legend {
    font-size: 28px;
    line-height: 36px;
  }
}

.form__toggle {
  display: none;
}
.form__toggle.is-visible {
  margin-bottom: 24px;
  display: block;
  padding: 24px 24px 1px;
  background-color: #f7f7f7;
}

/**
 * FormField
 *
 * To be used as follows:
 * @include formField(string fieldName);
 * Applies default styling to basic form field elements such as input, label, errors etc.
 *
 */
/**
 * ToggleField
 *
 * To be used as follows:
 * @include toggleField(string fieldName);
 * Applies default styling to toggle form field elements such as checkboxes & radio buttons.
 *
 */
.search {
  margin-bottom: 24px;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.search__input {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.search__input:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.search__input:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.is-invalid .search__input {
  border-color: #d9121f;
}
.search__input::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.search__input:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.search__input::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

.search__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.is-invalid > .search__label {
  color: #d9121f;
}
.search__label a {
  font-weight: 700;
}
.search__label a:hover {
  color: #d9121f;
}

.o-form_row__label--disabled {
  color: #7f8695;
}

.search__label--regular {
  font-weight: 400;
}

.search__label-required {
  font-weight: normal;
}

.search__error {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.search__error::before {
  content: "error";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.search__help {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
  margin-bottom: 8px;
}
.search__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.search-select {
  margin-bottom: 24px;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.search-select__input {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.search-select__input:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.search-select__input:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.is-invalid .search-select__input {
  border-color: #d9121f;
}
.search-select__input::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.search-select__input:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.search-select__input::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

.search-select__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.is-invalid > .search-select__label {
  color: #d9121f;
}
.search-select__label a {
  font-weight: 700;
}
.search-select__label a:hover {
  color: #d9121f;
}

.o-form_row__label--disabled {
  color: #7f8695;
}

.search-select__label--regular {
  font-weight: 400;
}

.search-select__label-required {
  font-weight: normal;
}

.search-select__error {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.search-select__error::before {
  content: "error";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.search-select__help {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
  margin-bottom: 8px;
}
.search-select__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.search {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  margin-bottom: 0;
}

.search__search-field {
  display: flex;
  flex: 5;
  position: relative;
}
.search__search-field::before {
  display: none;
}
@media (min-width: 768px) {
  .search__search-field::before {
    content: "search";
    font-family: "Material Icons Round";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 8px;
    color: #bcbcbc;
    display: block;
  }
}

.search__input {
  margin-bottom: 0;
  width: 100%;
  border-right: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
@media (min-width: 768px) {
  .search__input {
    padding: 10px 32px;
    margin-right: 16px;
    border-right: 2px solid;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
  }
}

.search__input:focus {
  box-shadow: none;
  padding-left: 30px;
}
@media (min-width: 768px) {
  .search__input:focus {
    box-shadow: 0 2px 4px 0 rgba(127, 134, 149, 0.5);
  }
}

.search__error {
  display: none;
}
.is-invalid > .search__error {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  color: #d9121f;
  position: absolute;
  left: 0;
  margin-top: 50px;
  display: block;
}

.search__text-label {
  opacity: 0;
}

.search__submit {
  display: inline-block;
  text-align: center;
  border-radius: 4px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  text-indent: -9999px;
  position: relative;
  width: 48px;
}
@media (min-width: 768px) {
  .search__submit {
    text-indent: 0;
    width: auto;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    line-height: 16px;
  }
}
.search__submit::before {
  content: "search";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #bcbcbc;
  display: block;
  position: absolute;
  text-indent: 0;
  left: 12px;
  top: 12px;
}
@media (min-width: 768px) {
  .search__submit::before {
    display: none;
  }
}

.search__preposition {
  display: none;
}
@media (min-width: 768px) {
  .search__preposition {
    display: block;
    margin-right: 16px;
  }
}

.search-results {
  padding-bottom: 40px;
}

@media (max-width: 767px) {
  .search-results__filter-bar {
    display: none;
  }
}

@media (min-width: 768px) {
  .search-results__filter-drawer {
    display: none;
  }
}

.search-results__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}
.search-results__label strong {
  color: #d9121f;
}

.search-results__options {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .search-results__options {
    flex-direction: row;
  }
}

.search-results__info {
  margin-bottom: 24px;
}

.search-results__alt-link {
  font-weight: 700;
  color: #3244ff;
}
.search-results__alt-link:hover {
  color: #d9121f;
}

.search-results__sort {
  display: none;
  align-items: center;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .search-results__sort {
    display: flex;
  }
}
.search-results__sort > .select-field {
  width: auto;
  margin-right: 24px;
  margin-bottom: 24px;
}

.search-results__paginator {
  display: flex;
  width: 100%;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .search-results__paginator {
    justify-content: flex-end;
    margin-bottom: 0;
  }
}

.search-select {
  margin-bottom: 0;
  display: flex;
  flex: 2 0;
  max-width: calc(55% - 48px);
}
@media (min-width: 768px) {
  .search-select {
    margin-right: 16px;
    max-width: none;
  }
}

.search-select__input {
  margin-bottom: 0;
  border-right: 0;
  border-radius: 0;
  padding-right: 24px;
  min-width: 104px;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z'/></svg>");
  background-repeat: no-repeat;
  background-position: right;
}
@media (min-width: 768px) {
  .search-select__input {
    border-radius: 4px;
    border-right: 2px solid;
  }
}

.search-select__input:focus {
  box-shadow: none;
}
@media (min-width: 768px) {
  .search-select__input:focus {
    box-shadow: 0 2px 4px 0 rgba(127, 134, 149, 0.5);
  }
}

.no-search-results__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  display: flex;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .no-search-results__title {
    font-size: 28px;
    line-height: 36px;
  }
}
.no-search-results__title::before {
  content: "search";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  align-self: center;
  margin-right: 24px;
}

.forum-post-listing {
  padding-bottom: 40px;
}

.forum-post-listing__title-bar {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px 8px;
  color: #ffffff;
  background-color: #1d1d1b;
  align-items: center;
  margin-bottom: 24px;
}
@media (min-width: 480px) {
  .forum-post-listing__title-bar {
    flex-direction: row;
    padding: 24px 24px;
  }
}

.forum-post-listing__title {
  margin-bottom: 24px;
}
@media (min-width: 480px) {
  .forum-post-listing__title {
    margin-bottom: 0;
  }
}

.forum-post-listing__create-post {
  width: 100%;
}
@media (min-width: 480px) {
  .forum-post-listing__create-post {
    max-width: 250px;
  }
}

.forum-post-listing__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}
.forum-post-listing__label strong {
  color: #d9121f;
}

.forum-post-listing__options {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .forum-post-listing__options {
    flex-direction: row;
  }
}

.forum-post-listing__search,
.forum-post-listing__search-info {
  margin-bottom: 24px;
}

.forum-post-listing__contribute-link {
  color: #3244ff;
  font-weight: 700;
}
.forum-post-listing__contribute-link:hover {
  color: #d9121f;
}

.forum-post-listing__sort {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.forum-post-listing__sort > .select-field {
  width: auto;
  margin-right: 24px;
  margin-bottom: 24px;
}

.forum-post-listing__paginator {
  display: flex;
  width: 100%;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .forum-post-listing__paginator {
    justify-content: flex-end;
    margin-bottom: 0;
  }
}

.forum-post-preview__actions {
  display: flex;
  flex-direction: column;
  margin-bottom: 24px;
}
@media (min-width: 480px) {
  .forum-post-preview__actions {
    flex-direction: row;
    margin-bottom: 40px;
  }
}

.forum-post-preview__action {
  margin-bottom: 24px;
}
@media (min-width: 480px) {
  .forum-post-preview__action {
    margin-bottom: 0;
    margin-right: 24px;
    padding: 16px 64px;
  }
}

.forum-post-preview__cancel-text {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

.forum-listing-item {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
}
.forum-listing-item:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}

.forum-listing-item__link {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-bottom: 1px solid #bcbcbc;
  padding: 24px;
}
@media (min-width: 768px) {
  .forum-listing-item__link {
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
  }
}

.forum-listing-item__metadata {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .forum-listing-item__metadata {
    margin-left: auto;
  }
}

.forum-listing-item__metadata-set {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
}
@media (min-width: 768px) {
  .forum-listing-item__metadata-set {
    justify-content: flex-start;
  }
}

.forum-listing-item__metadata-set--highlighted {
  color: #d9121f;
}

.forum-listing-item__metadata-label {
  margin-left: 8px;
}

.forum-listing-item__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 768px) {
  .forum-listing-item__body {
    flex-basis: 70%;
  }
}

.forum-listing-item__body-title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #1d1d1b;
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .forum-listing-item__body-title {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

.forum-listing-item__body-subtext {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .forum-listing-item__body-subtext {
    display: flex;
    flex-direction: row;
    margin-bottom: 0;
  }
}

.forum-listing-item__icon {
  display: none;
}
@media (min-width: 768px) {
  .forum-listing-item__icon {
    margin-right: 16px;
    display: flex;
    width: 86px;
    height: 86px;
    background: #f7f7f7;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
  }
  .forum-listing-item__icon::before {
    content: "forum";
    font-family: "Material Icons Round";
    font-weight: normal;
    font-style: normal;
    font-size: 32px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
    color: #d9121f;
  }
}

.forum-listing-item__recent {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  padding: 24px 24px;
}

.forum-listing-item__recent-subtext {
  font-weight: bold;
}

.forum-listing-item__recent-post {
  text-decoration: underline;
}

.embedded-video__poster {
  position: relative;
  width: 100%;
}
.embedded-video__poster > img {
  width: 100%;
  pointer-events: none;
}
.embedded-video__poster::after {
  content: "play_circle_outline";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 50px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #d9121f;
  speak: none;
  position: absolute;
  top: calc(50% - 25px);
  left: calc(50% - 25px);
}
@media (min-width: 768px) {
  .embedded-video__poster::after {
    font-size: 70px;
  }
}

.embedded-video__video-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
}
.embedded-video__video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

body.has-open-modal {
  overflow: hidden;
}

.w-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 50;
  background: rgba(0, 0, 0, 0.75);
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.modal {
  background: #ffffff;
  box-shadow: 4px 4px 14px 0 rgba(81, 81, 81, 0.5);
  min-width: 100px;
  min-height: 100px;
  max-width: 821px;
  max-height: calc(100vh - 2 * 16px);
  display: flex;
  flex-direction: column;
  position: relative;
}

.modal--media {
  background: none;
  width: calc((100vh - 2 * 16px) * 1.7777777778 - 90px);
  max-width: 1000px;
}

.modal__header {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  padding: 12px 24px;
  border-bottom: 1px solid #f7f7f7;
  display: flex;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .modal__header {
    font-size: 28px;
    line-height: 36px;
  }
}

.modal__close {
  width: 50px;
  height: 40px;
  color: #1d1d1b;
  font-weight: normal;
  font-size: 32px;
  line-height: 40px;
  position: absolute;
  right: 0;
  top: 0;
}
@media (min-width: 768px) {
  .modal__close {
    right: 5px;
    top: 5px;
  }
}
.modal__close > span {
  pointer-events: none;
}
.modal--media .modal__close {
  color: #ffffff;
  top: -45px;
  right: 0;
}

.modal__body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  padding: 24px;
  flex: 1 1 auto;
  overflow: auto;
}

.modal__footer {
  padding: 12px 24px;
  border-top: 1px solid #f7f7f7;
  display: flex;
  justify-content: flex-start;
}

.software-comparison-card {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: flex;
  flex-direction: column;
  padding-top: 24px;
  text-align: center;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
}

.software-comparison-card__header {
  margin-bottom: 24px;
}

.software-comparison-card__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .software-comparison-card__title {
    font-size: 28px;
    line-height: 36px;
  }
}

.software-comparison-card__description {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 24px;
}

.software-comparison-card__price {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  padding-top: 8px;
  padding-bottom: 8px;
  background-color: #f7f7f7;
  margin-bottom: 24px;
}

.software-comparison-card__features {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  padding-left: 40px;
  margin-bottom: 24px;
  text-align: left;
}

.software-comparison-card__feature {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: flex;
  margin-top: 8px;
}
.software-comparison-card__feature::before {
  content: "check";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #d9121f;
  margin-right: 8px;
}

.software-comparison-card__footer {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  display: flex;
  border-top: 1px solid rgba(188, 188, 188, 0.25);
  padding: 24px 40px;
  text-align: left;
  justify-content: space-between;
}
.software-comparison-card__footer::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

.software-comparison-table {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
}

.software-comparison-table__table {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  width: 100%;
}
.software-comparison-table__table th {
  border-left: 1px solid rgba(188, 188, 188, 0.25);
  border-right: 1px solid rgba(188, 188, 188, 0.25);
}
.software-comparison-table__table th p {
  margin-bottom: 8px;
}
.software-comparison-table__table th strong {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
}
.software-comparison-table__table td,
.software-comparison-table__table th {
  text-align: center;
  padding: 24px 40px;
}
.software-comparison-table__table tfoot td {
  border-left: 1px solid rgba(188, 188, 188, 0.25);
  border-right: 1px solid rgba(188, 188, 188, 0.25);
}

.software-comparison-table__row {
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}
.software-comparison-table__row td {
  border-left: 1px solid rgba(188, 188, 188, 0.25);
  border-right: 1px solid rgba(188, 188, 188, 0.25);
}
.software-comparison-table__row td:first-child {
  text-align: left;
}

.software-comparison-table__row--highlighted {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  background-color: #f7f7f7;
}

.software-comparison-table__row--emphasis {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}

.is-retracted .software-comparison-table__row--transient {
  display: none;
}

.software-comparison-table__check::before {
  content: "check";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 30px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #d9121f;
  vertical-align: middle;
}

.software-comparison-table__controls {
  background-color: #f7f7f7;
  padding: 24px;
}

.software-comparison-table__button {
  position: relative;
  padding-right: 64px;
  padding-left: 64px;
}

.software-comparison-table__button--expand {
  display: none;
}
.is-retracted .software-comparison-table__button--expand {
  display: inline-block;
}

.is-retracted .software-comparison-table__button--collapse {
  display: none;
}

.registration__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .registration__title {
    font-size: 28px;
    line-height: 36px;
  }
}
.registration__title strong {
  color: #d9121f;
}

@media (min-width: 768px) {
  .registration__body {
    display: flex;
  }
}

@media (min-width: 768px) {
  .registration__credentials {
    border-right: 1px solid #bcbcbc;
    padding-right: 40px;
    width: 50%;
  }
}

.registration__additional-info {
  margin-bottom: 32px;
}
@media (min-width: 768px) {
  .registration__additional-info {
    margin-bottom: 0;
    margin-left: 40px;
    width: 50%;
  }
}

.registration__language-selector {
  display: none;
}
.registration__language-selector.is-visible {
  display: block;
}

.registration__recaptcha {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  margin-bottom: 24px;
}

.registration__cta {
  display: flex;
  align-items: center;
  flex-direction: column-reverse;
}
@media (min-width: 768px) {
  .registration__cta {
    justify-content: space-between;
    flex-direction: row;
  }
}

@media (min-width: 768px) {
  .registration__cta-button {
    display: flex;
    width: 50%;
  }
}

@media (min-width: 768px) {
  .registration__cta-button--center {
    justify-content: center;
  }
}

.registration__cancel {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}
.registration__cancel::before {
  content: "< ";
  speak: none;
}
.registration__cancel a {
  color: #4a4e57;
  text-decoration: underline;
}

.registration__submit {
  margin-bottom: 24px;
  width: 100%;
}
@media (min-width: 768px) {
  .registration__submit {
    width: auto;
    margin-bottom: 0;
  }
}

.registration__submit-row {
  width: 100%;
  margin-bottom: 4px;
}
@media (min-width: 768px) {
  .registration__submit-row {
    margin-right: 8px;
    width: auto;
  }
}

.registration__submit-separator {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 4px;
}
@media (min-width: 768px) {
  .registration__submit-separator {
    margin-right: 8px;
  }
}

@media (min-width: 768px) {
  .registration__form-fields {
    max-width: 320px;
  }
}

.registration__options {
  align-items: center;
  flex-direction: column;
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .registration__options {
    flex-direction: row;
  }
}

.has-use-email-selected .registration__referral-username {
  display: none;
}

.registration__referral-email {
  display: none;
}
.has-use-email-selected .registration__referral-email {
  display: flex;
}

.vp-banner {
  min-height: 460px;
  background-color: var(--theme-bg-colour);
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
  padding-top: 64px;
  padding-right: 16px;
  padding-left: 16px;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url(/7d751ad7/5.0.1/images/css/Home_VP50_479px_small.444a5ca9..png);
}
@media (min-width: 480px) {
  .vp-banner {
    background-image: url(/7d751ad7/5.0.1/images/css/Home_VP50_767x460_medium_small.8a72e7d4..png);
  }
}
@media (min-width: 768px) {
  .vp-banner {
    background-image: url(/7d751ad7/5.0.1/images/css/Home_VP50_991x460_medium.0d3959ce..png);
  }
}
@media (min-width: 992px) {
  .vp-banner {
    background-image: url(/7d751ad7/5.0.1/images/css/Home_VP50_1244x460_medium_large.b9a91486..png);
  }
}
@media (min-width: 1440px) {
  .vp-banner {
    background-image: url(/7d751ad7/5.0.1/images/css/Home_VP50_1244x460_large.0d2e565d..png);
  }
}
@media (min-width: 768px) {
  .vp-banner {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
@media (min-width: 992px) {
  .vp-banner {
    align-items: baseline;
  }
}

.vp-banner__body {
  display: flex;
  flex-direction: column;
}
@media (min-width: 992px) {
  .vp-banner__body {
    align-self: flex-start;
  }
}

.vp-banner__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
  max-width: 520px;
  display: inline-block;
  margin-bottom: 24px;
  letter-spacing: -1.5px;
  color: #1d1d1b;
  text-align: center;
}
@media (min-width: 768px) {
  .vp-banner__title {
    font-size: 40px;
    line-height: 48px;
  }
}
@media (min-width: 992px) {
  .vp-banner__title {
    text-align: left;
  }
}
.vp-banner__title > b {
  color: #ffffff;
}

.vp-banner__feature-list {
  list-style: disc inside;
  margin-bottom: 24px;
  text-align: center;
}
@media (min-width: 992px) {
  .vp-banner__feature-list {
    text-align: left;
  }
}

.vp-banner__feature {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
}

.vp-banner__button {
  align-self: center;
  width: 360px;
  max-width: 100%;
}
@media (min-width: 992px) {
  .vp-banner__button {
    align-self: baseline;
  }
}

.forum-content {
  display: flex;
  flex-direction: column;
  padding: 24px 16px;
}
@media (min-width: 768px) {
  .forum-content {
    border-radius: 4px;
    box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
    padding: 16px 40px;
  }
}

.forum-content--nominated {
  padding-right: 13px;
  padding-left: 13px;
}
@media (min-width: 768px) {
  .forum-content--nominated {
    border-radius: 4px;
    box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
    padding-right: 37px;
    padding-left: 37px;
  }
}

.forum-content--preview .forum-content__reply-button,
.forum-content--preview .forum-content__actions {
  display: none;
}
.forum-content--preview .forum-content__text {
  margin-bottom: 0;
}

.forum-content__header {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .forum-content__header {
    align-items: center;
    flex-direction: row;
  }
}

.forum-content__avatar {
  margin-right: 16px;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .forum-content__avatar {
    margin-bottom: 0;
  }
}

.forum-content__metadata {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex-grow: 1;
}
@media (min-width: 768px) {
  .forum-content__metadata {
    align-items: center;
    flex-direction: row;
  }
}

.forum-content__actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
}
@media (min-width: 768px) {
  .forum-content__actions {
    justify-content: flex-end;
  }
}

@media (min-width: 768px) {
  .forum-content__body {
    margin-left: 64px;
  }
}
.forum-content--post .forum-content__body {
  margin-left: 0;
}
@media (min-width: 768px) {
  .forum-content--post .forum-content__body {
    padding: 40px 64px;
    border-radius: 4px;
    border: 1px solid rgba(188, 188, 188, 0.5);
  }
}

.forum-content__addthis {
  padding-top: 16px;
  padding-bottom: 16px;
}

.forum-content__datetime {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #1d1d1b;
  display: block;
  margin-bottom: 16px;
}

.forum-content__text {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  margin-bottom: 40px;
}

.attachments {
  display: flex;
  flex-direction: column;
  margin-bottom: 24px;
  position: relative;
}

.attachments__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  margin-bottom: 16px;
}

.attachments__files {
  display: flex;
  justify-content: flex-start;
}
.attachments__files > .file-download-link {
  margin-right: 24px;
}

.attachments__tooltip {
  top: 54px;
  box-shadow: 0 10px 10px 0 rgba(74, 78, 87, 0.2);
  border-top: 1px solid rgba(74, 78, 87, 0.1);
}
.attachments__tooltip::before, .attachments__tooltip::after {
  display: none;
}

.attachments__tooltip-link {
  white-space: pre-wrap;
  text-align: center;
}

.file-download-link {
  display: flex;
  text-align: center;
  align-items: center;
}
@media (min-width: 768px) {
  .file-download-link {
    flex-direction: column;
  }
}
.file-download-link:hover {
  color: #d9121f;
}
.file-download-link::before {
  content: "description";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 34px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #bcbcbc;
  margin-right: 4px;
}
@media (min-width: 768px) {
  .file-download-link::before {
    font-size: 56px;
    margin-bottom: 4px;
    margin-right: 0;
  }
}

.file-download-link__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.dz-error-message {
  margin-top: 24px;
}

.dz-size {
  display: none;
}

.dz-filename {
  margin-top: 24px;
}

.password-reset__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .password-reset__title {
    font-size: 28px;
    line-height: 36px;
  }
}
.password-reset__title strong {
  color: #d9121f;
}

.password-reset__body {
  margin-bottom: 40px;
}

.password-reset__instruction {
  margin-bottom: 24px;
  max-width: 462px;
}

.password-reset__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (min-width: 768px) {
  .password-reset__cta {
    align-items: flex-start;
    flex-direction: row;
  }
}

.password-reset__cta-button {
  width: 100%;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .password-reset__cta-button {
    width: auto;
    margin-right: 24px;
    margin-bottom: 0;
  }
}

.password-reset__submit,
.password-reset__cancel {
  width: 100%;
}
@media (min-width: 768px) {
  .password-reset__submit,
.password-reset__cancel {
    width: auto;
  }
}

.password-reset__cancel {
  color: #4a4e57;
  text-decoration: underline;
}

.next-article {
  background: #4a4e57;
  min-height: 124px;
}
@media (min-width: 992px) {
  .next-article {
    margin: 16px 0 16px 50%;
    min-height: 130px;
  }
}

.next-article__body {
  display: block;
  margin: 0 auto;
  max-width: 1042px;
  padding: 24px;
  color: #ffffff;
}
@media (min-width: 992px) {
  .next-article__body {
    display: block;
    max-width: 521px;
    margin-left: 0;
  }
}
.next-article__body:focus, .next-article__body:hover {
  color: #ffffff;
}

.next-article__text {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  padding-right: 40px;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .next-article__text {
    font-size: 28px;
    line-height: 36px;
  }
}
.next-article__text::after {
  content: "keyboard_double_arrow_right";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 20px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #ffffff;
  vertical-align: middle;
}

.next-article__details {
  flex: 1 1 auto;
}
@media (min-width: 768px) {
  .next-article__details {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-left: 24px;
  }
}

.next-article__meta {
  margin-top: 16px;
}
@media (min-width: 480px) {
  .next-article__meta {
    display: flex;
    justify-content: space-between;
  }
}
@media (min-width: 992px) {
  .next-article__meta {
    margin-top: auto;
  }
}

.next-article__author {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

.next-article__tags {
  margin-top: 0;
}

.next-article__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.next-article__image {
  display: none;
}
@media (min-width: 768px) {
  .next-article__image {
    display: block;
    height: 64px;
    width: 80px;
  }
}

@media (min-width: 768px) {
  .next-article__content {
    flex: 1 1 70%;
    display: flex;
    align-items: stretch;
  }
}

@media (min-width: 768px) {
  .next-article--fullwidth {
    min-height: 244px;
  }
}
@media (min-width: 992px) {
  .next-article--fullwidth {
    margin-left: 0;
    min-height: 180px;
  }
}
@media (min-width: 768px) {
  .next-article--fullwidth .next-article__image {
    height: 148px;
    width: 190px;
  }
}
@media (min-width: 992px) {
  .next-article--fullwidth .next-article__body {
    display: flex;
    margin-left: auto;
    padding: 24px 24px;
    max-width: 1042px;
  }
}
@media (min-width: 992px) {
  .next-article--fullwidth .next-article__text {
    flex: 1 0 330px;
    padding-right: 40px;
  }
}
@media (min-width: 768px) {
  .next-article--fullwidth .next-article__text::after {
    content: "keyboard_double_arrow_right";
    font-family: "Material Icons Round";
    font-weight: normal;
    font-style: normal;
    font-size: 40px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
  }
}

.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.tags__tag {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  padding-right: 12px;
  border-right: 1px solid #4a4e57;
}
.tags__tag:last-child {
  border: 0;
  padding-right: 0;
}

.tags--light {
  color: #ffffff;
}
.tags--light .tags__tag {
  border-color: #ffffff;
}

.influencer {
  text-align: center;
  padding: 0 24px;
}

.influencer__image {
  height: 240px;
  width: 240px;
  border-radius: 50%;
  margin-bottom: 40px;
}

.influencer__description {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  text-align: center;
}

.influencer__author {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
  text-align: center;
  margin-bottom: 16px;
}
.influencer__author a:hover {
  color: #d9121f;
}

.influencer__link {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
  display: block;
  padding: 16px;
}
.influencer__link:hover {
  color: #d9121f;
}

.join-our-community {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  border: 1px solid rgba(29, 29, 27, 0.17);
  background-color: #ffffff;
}
@media (min-width: 992px) {
  .join-our-community {
    display: flex;
  }
}

@media (min-width: 992px) {
  .join-our-community__image {
    width: 66%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

.join-our-community__body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  padding: 24px;
  color: #4a4e57;
}
@media (min-width: 992px) {
  .join-our-community__body {
    padding: 24px;
    flex: 1 0 34%;
  }
}

.join-our-community__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .join-our-community__title {
    font-size: 32px;
    line-height: 40px;
  }
}

.join-our-community__content {
  margin-bottom: 24px;
}

@media (min-width: 992px) {
  .forum_highlights {
    display: flex;
  }
}

@media (min-width: 992px) {
  .forum_highlights__forum {
    margin-right: 24px;
  }
  .forum_highlights__forum .d-card-deck:last-child {
    margin-bottom: 0;
  }
}

.forum_highlights__body {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  border: 1px solid rgba(29, 29, 27, 0.17);
  padding: 24px;
  background-color: #ffffff;
}
@media (min-width: 992px) {
  .forum_highlights__body {
    padding: 24px;
    flex: 1 0 404px;
  }
}

.forum_highlights__description {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 24px;
}

.forum_highlights__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}

@media (min-width: 992px) {
  .get-involved {
    display: flex;
  }
}

.get-involved__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .get-involved__title {
    font-size: 32px;
    line-height: 40px;
  }
}

.get-involved__body {
  margin-bottom: 24px;
}
@media (min-width: 992px) {
  .get-involved__body {
    flex: 1 0 50%;
    padding: 24px 24px 24px 0;
  }
}

.get-involved__content {
  padding: 24px 0;
}

@media (min-width: 992px) {
  .get-involved__steps {
    flex: 1 0 50%;
  }
}

.get-involved__step {
  margin-bottom: 24px;
}

.get-involved__step-content {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  display: block;
  position: relative;
  background-color: #ffffff;
  padding: 24px 64px 24px 24px;
}
.get-involved__step-content:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
.get-involved__step-content::after {
  content: "chevron_right";
  font-family: "Material Icons Round";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  position: absolute;
  right: 12px;
  top: 50%;
  margin-top: -20px;
  font-size: 40px;
  speak: none;
  color: #00bf9f;
}

.get-involved__subtitle {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}

.sm-aggregator {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 1440px) {
  .sm-aggregator {
    padding: 32px 0;
  }
}

.sm-aggregator__content {
  margin: 0 -8px;
}

.recommended-contents__title {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .recommended-contents__title {
    font-size: 28px;
    line-height: 36px;
  }
}

.recommended-content {
  display: block;
  padding-top: 16px;
  padding-bottom: 16px;
  padding-right: 16px;
  padding-left: 0;
  margin-left: 16px;
  border-bottom: 1px solid #4a4e57;
}

.recommended-content__title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
}

.recommended-content__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  gap: 16px;
}

.recommended-content__author {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

.recommended-content__type {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #d9121f;
}

.recommended-content__body {
  display: flex;
  flex-direction: row;
}

.recommended-content__copy {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 16px;
}

.recommended-content__img {
  flex: 0 0 88px;
  margin-right: 8px;
  width: 88px;
  height: 88px;
  -o-object-fit: cover;
     object-fit: cover;
}

.recommended-content__body .recommended-content__title {
  flex: 0 1 100%;
}

.w-recommended-contents--cards {
  padding-bottom: 24px;
}

.recommended-content--card {
  border: 0;
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
}
.recommended-content--card .recommended-content__copy {
  min-height: 38px;
  padding-top: 8px;
  padding-bottom: 24px;
  padding-left: 24px;
  padding-right: 24px;
}
.recommended-content--card .card__image {
  flex: 0 0 100%;
  width: 100%;
  height: 96px;
  -o-object-fit: cover;
     object-fit: cover;
  margin-bottom: 8px;
}
.recommended-content--card .card__label {
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 24px;
  padding-right: 24px;
  margin-bottom: 24px;
}

@media (min-width: 768px) and (max-width: 991px) {
  .w-recommended-contents--cards {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    padding-top: 24px;
  }

  .recommended-content--card {
    flex: 1 0 48%;
    padding: 0;
  }
}
.code-editor__editor {
  height: 500px;
}

.s-alert {
  padding: 32px 32px;
}
.s-alert .d-alert {
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 12px;
}
.s-alert .d-alert:last-child {
  margin-bottom: 0;
}

.s-alert--floaty {
  position: absolute;
  top: 115px;
  left: 32px;
  right: 32px;
  z-index: 5;
  padding: 0;
}
@media (min-width: 768px) {
  .s-alert--floaty {
    top: 75px;
  }
}

.s-author-summary {
  width: 100%;
  padding: 32px 0;
}
@media (min-width: 992px) {
  .s-author-summary {
    padding-right: 16px;
    padding-left: 16px;
  }
}
.s-author-summary > .d-author-summary {
  width: 100%;
  max-width: 1042px;
  margin-right: auto;
  margin-left: auto;
}

.s-author-summary--no-padding {
  padding-right: 0;
  padding-left: 0;
}

.s-button-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.s-button-group > .d-button-group {
  margin: 4px 8px;
}

.s-button-group--left-align {
  justify-content: left;
}

.s-card-deck {
  margin-bottom: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.s-card-deck > .d-card-deck {
  width: 100%;
  margin-bottom: 16px;
}
@media (min-width: 480px) {
  .s-card-deck[data-cards-per-row="2"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="2"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  .s-card-deck[data-cards-per-row="3"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="3"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) {
  .s-card-deck[data-cards-per-row="3"] > .d-card-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="3"] > .d-card-deck:nth-child(3n) {
    margin-right: 0;
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck:nth-child(3n) {
    margin-right: 0;
  }
}
@media (min-width: 992px) {
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck {
    width: calc(25% - 12px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck:nth-child(4n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .s-card-deck[data-cards-per-row="4"].card-deck--single-row > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="4"].card-deck--single-row > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck:nth-child(3n) {
    margin-right: 0;
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck {
    width: calc(25% - 12px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck:nth-child(4n) {
    margin-right: 0;
  }
}
@media (min-width: 1440px) {
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck {
    width: calc(20% - 12.8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck:nth-child(5n) {
    margin-right: 0;
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck:nth-child(3n) {
    margin-right: 0;
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck {
    width: calc(25% - 12px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck:nth-child(4n) {
    margin-right: 0;
  }
}
@media (min-width: 1440px) {
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck {
    width: calc(16.6666666667% - 13.3333333333px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck:nth-child(6n) {
    margin-right: 0;
  }
}

.s-hierarchy-deck {
  display: grid;
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-columns: 1fr;
  grid-template-areas: "feature-card-1" "feature-card-2" "feature-card-3" "card-4" "card-5";
}
@media (min-width: 480px) {
  .s-hierarchy-deck {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, 1fr);
    grid-template-areas: "feature-card-1 feature-card-1" "feature-card-2 feature-card-2" "feature-card-3 feature-card-3" "card-4 card-5";
  }
}
@media (min-width: 992px) {
  .s-hierarchy-deck {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-template-areas: "feature-card-1 feature-card-1 feature-card-2 feature-card-2" "feature-card-3 feature-card-3 card-4 card-5";
  }
}

.s-hierarchy-deck__feature-card-1 {
  grid-area: feature-card-1;
}

.s-hierarchy-deck__feature-card-2 {
  grid-area: feature-card-2;
}

.s-hierarchy-deck__feature-card-3 {
  grid-area: feature-card-3;
}

.s-hierarchy-deck__card-4 {
  grid-area: card-4;
}

.s-hierarchy-deck__card-5 {
  grid-area: card-5;
}

.s-home-deck {
  display: grid;
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-columns: 1fr;
  grid-template-areas: "feature-card-1" "feature-card-2" "card-3" "card-4" "card-5" "card-6" "card-7" "card-8";
}
@media (min-width: 480px) {
  .s-home-deck {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, 1fr);
    grid-template-areas: "feature-card-1 feature-card-2" "card-3 card-4" "card-5 card-6" "card-7 card-8";
  }
}
@media (min-width: 992px) {
  .s-home-deck {
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: repeat(6, 1fr);
    grid-template-areas: "feature-card-1 card-3 card-4" "feature-card-1 card-3 card-4" "feature-card-1 card-5 card-6" "feature-card-2 card-5 card-6" "feature-card-2 card-7 card-8" "feature-card-2 card-7 card-8";
  }
}

.s-home-deck__feature-card-1 {
  grid-area: feature-card-1;
}

.s-home-deck__feature-card-2 {
  grid-area: feature-card-2;
}

.s-home-deck__card-3 {
  grid-area: card-3;
}

.s-home-deck__card-4 {
  grid-area: card-4;
}

.s-home-deck__card-5 {
  grid-area: card-5;
}

.s-home-deck__card-6 {
  grid-area: card-6;
}

.s-home-deck__card-7 {
  grid-area: card-7;
}

.s-home-deck__card-8 {
  grid-area: card-8;
}

.s-extravaganza-deck {
  display: grid;
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-columns: 1fr;
  grid-template-areas: "feature-card-1" "card-2" "card-3";
}
@media (min-width: 480px) {
  .s-extravaganza-deck {
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas: "feature-card-1 feature-card-1" "card-2 card-3";
  }
}
@media (min-width: 992px) {
  .s-extravaganza-deck {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-template-areas: "feature-card-1 card-2" "feature-card-1 card-3";
  }
}

.s-extravaganza-deck__feature-card-1 {
  grid-area: feature-card-1;
}

.s-extravaganza-deck__card-2 {
  grid-area: card-2;
}

.s-extravaganza-deck__card-3 {
  grid-area: card-3;
}

/**
 * Card decks are a structure that holds multiple cards.
 */
/**
 * Section for a carousel block
 */
.s-carousel {
  --carousel-bg-colour-red: 255;
  --carousel-bg-colour-green: 255;
  --carousel-bg-colour-blue: 255;
  --carousel-bg-colour: rgb(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue));
  background: var(--carousel-bg-colour);
  width: 100%;
  padding: 32px 16px;
}
.s-carousel > .d-carousel {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 1440px) {
  .s-carousel > .d-carousel.d-carousel--peekaboo {
    max-width: calc((2 * 100px) + 1244px);
  }
}

.s-carousel--alternative {
  --carousel-bg-colour-red: 247;
  --carousel-bg-colour-green: 247;
  --carousel-bg-colour-blue: 247;
}

.s-comments {
  width: 100%;
  padding: 32px 0;
}
@media (min-width: 992px) {
  .s-comments {
    padding-right: 16px;
    padding-left: 16px;
  }
}
.s-comments > .d-comments {
  width: 100%;
  max-width: 1042px;
  margin-right: auto;
  margin-left: auto;
}
.s-comments > .d-comments--header {
  background-color: #1d1d1b;
  padding-right: 0;
  padding-left: 0;
}

/**
 * Section is the default block on a page.
 *
 * It'll typically have one or more d-section children
 */
.s-section {
  width: 100%;
  padding: 32px 16px;
}
.s-section > .d-section {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}
.s-section > .d-section.d-section--full-width {
  width: 95%;
  max-width: 95%;
}

.s-section--spaceless-top {
  padding: 0 16px 32px;
}

.s-section--spaceless {
  padding: 0 16px;
}

.s-section--alternative {
  background-color: #f7f7f7;
}

.s-section--themeable {
  --section-bg-colour: #f7f7f7;
  background-color: var(--section-bg-colour, #f7f7f7);
}

.s-section-header {
  width: 100%;
  padding: 32px 16px;
}
.s-section-header > .d-section-header {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
  background-color: #1d1d1b;
  padding: 24px;
  margin-bottom: 16px;
  text-align: center;
}
@media (min-width: 480px) {
  .s-section-header > .d-section-header {
    text-align: left;
  }
}
.s-section-header > .d-section-header--no-background {
  background-color: inherit;
  padding: 0;
  text-align: inherit;
}

.s-listing {
  width: 100%;
  padding: calc(var(--content-gap) / 2) 0;
}
@media (min-width: 992px) {
  .s-listing {
    padding-right: 16px;
    padding-left: 16px;
  }
}
.s-listing > .d-listing {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 992px) {
  .s-listing > .d-listing {
    padding-right: 0;
    padding-left: 0;
  }
}
.s-listing > .d-listing--header {
  background-color: #1d1d1b;
  padding-right: 0;
  padding-left: 0;
}

.s-hero {
  width: 100%;
  background-color: var(--theme-bg-colour);
}
.s-hero > .d-hero {
  padding-left: 16px;
  padding-right: 16px;
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 1272px) {
  .s-hero > .d-hero {
    padding-left: 0;
    padding-right: 0;
  }
}

.s-cta {
  width: 100%;
  background-color: var(--theme-bg-colour);
}
.s-cta > .d-cta {
  padding-left: 16px;
  padding-right: 16px;
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 1272px) {
  .s-cta > .d-cta {
    padding-left: 0;
    padding-right: 0;
  }
}

/**
 * Expandable is a section with some hidden content.
 *
 * It'll typically have one or more d-expandable children
 */
.s-expandable {
  position: relative;
  width: 100%;
  padding: 32px 16px;
  margin-bottom: 128px;
  background-color: #f7f7f7;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.s-expandable > .d-expandable {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 768px) {
  .s-title-group {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}

.d-title-group {
  display: flex;
  align-items: center;
}

/**
 * Section is the default block on a page.
 *
 * It'll typically have one or more d-section children
 */
.s-user-content {
  width: 100%;
  padding: 12px 16px;
}
.s-user-content > .d-user-content {
  width: 100%;
  max-width: 1042px;
  margin-right: auto;
  margin-left: auto;
}

.s-user-content--header {
  padding-top: 32px;
}

.s-user-content--fullwidth {
  max-width: 1276px;
  margin-left: auto;
  margin-right: auto;
}
.s-user-content--fullwidth > .d-user-content {
  max-width: none;
  margin: 0;
}

.s-user-content--no-padding {
  padding-left: 0;
  padding-right: 0;
}

.s-user-content--2cols {
  max-width: 1276px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 992px) {
  .s-user-content--2cols {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .s-user-content--2cols > .d-user-content {
    margin: 0;
    width: 66.66%;
  }
  .s-user-content--2cols > .d-user-content__aside {
    width: 33.33%;
    padding-left: 64px;
  }
}

.d-user-content__aside--sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 70px;
}

@media (min-width: 992px) {
  .s-content-with-aside {
    display: flex;
    align-items: flex-start;
    flex-direction: row;
  }
}

@media (min-width: 992px) {
  .d-content-with-aside {
    flex: 1;
  }
}

.d-content-with-aside--content {
  margin-bottom: 64px;
}
@media (min-width: 992px) {
  .d-content-with-aside--content {
    flex: 3;
    margin-right: 64px;
    margin-bottom: 0;
  }
}

.s-pseudo-modal {
  background: #bcbcbc;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40px 16px;
}
.s-pseudo-modal > .d-pseudo-modal {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  max-width: 872px;
  margin-right: auto;
  margin-left: auto;
  background: #ffffff;
}
.s-pseudo-modal::before {
  height: 100%;
  width: 100%;
  content: "";
  background-color: #bcbcbc;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 0;
}

.s-log-in {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .s-log-in {
    flex-direction: row;
  }
}

.d-log-in--form {
  flex: 1;
}

.d-log-in--supporting {
  border-bottom-right-radius: inherit;
  border-bottom-left-radius: inherit;
}
@media (min-width: 768px) {
  .d-log-in--supporting {
    border-top-right-radius: inherit;
    border-bottom-right-radius: inherit;
    border-bottom-left-radius: 0;
    width: 35%;
  }
}

.s-software-comparison {
  width: 100%;
  padding: 32px 0;
}
@media (min-width: 992px) {
  .s-software-comparison {
    padding-right: 16px;
    padding-left: 16px;
  }
}
.s-software-comparison > .d-software-comparison {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}

.d-software-comparison--title {
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 992px) {
  .d-software-comparison--title {
    padding: 0;
  }
}

.d-software-comparison--card {
  max-width: 100%;
  margin-bottom: 24px;
}
@media (min-width: 992px) {
  .d-software-comparison--card {
    display: none;
  }
}

.d-software-comparison--table {
  display: none;
}
@media (min-width: 992px) {
  .d-software-comparison--table {
    display: block;
  }
}

.s-registration {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .s-registration {
    flex-direction: row;
  }
}

.d-registration {
  padding: 24px 16px 40px;
}
@media (min-width: 768px) {
  .d-registration {
    padding: 40px 64px;
  }
}

.s-password-reset {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .s-password-reset {
    flex-direction: row;
  }
}

.d-password-reset {
  padding: 24px 16px 40px;
}
@media (min-width: 768px) {
  .d-password-reset {
    padding: 40px 64px;
  }
}

.u-mb-large {
  margin-bottom: 64px;
}

.u-mb-medium {
  margin-bottom: 40px;
}

.u-mb-small {
  margin-bottom: 24px;
}

.u-mb-xsmall {
  margin-bottom: 16px;
}

.u-mt-large {
  margin-top: 64px;
}

.u-mt-medium {
  margin-top: 40px;
}

.u-mt-small {
  margin-top: 24px;
}

.u-mt-xsmall {
  margin-top: 16px;
}

.u-ml-large {
  margin-left: 64px;
}

.u-ml-medium {
  margin-left: 40px;
}

.u-ml-small {
  margin-left: 24px;
}

.u-ml-xsmall {
  margin-left: 16px;
}

.u-mr-large {
  margin-right: 64px;
}

.u-mr-medium {
  margin-right: 40px;
}

.u-mr-small {
  margin-right: 24px;
}

.u-mr-xsmall {
  margin-right: 16px;
}

.u-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.u-standalone {
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 24px;
}

.u-skeleton {
  position: relative;
  background: #bcbcbc;
  background: linear-gradient(to right, #bcbcbc 8%, rgba(188, 188, 188, 0.8) 18%, #bcbcbc 33%);
  background-size: 800px 104px;
  -webkit-animation: 1s;
          animation: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-name: shimmer;
          animation-name: shimmer;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
}

@-webkit-keyframes shimmer {
  0% {
    background-position: -400px 0;
  }
  100% {
    background-position: 400px 0;
  }
}

@keyframes shimmer {
  0% {
    background-position: -400px 0;
  }
  100% {
    background-position: 400px 0;
  }
}
/**
 * IE specific styling
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .o-feedback-trigger {
    display: none;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .info-card__body {
    min-height: 1px;
  }
}
@media screen and (-ms-high-contrast: active) and (min-width: 480px), (-ms-high-contrast: none) and (min-width: 480px) {
  .info-card--jumbo .info-card__body ul {
    -moz-column-count: auto;
         column-count: auto;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .glide__slide {
    margin-top: 8px;
    margin-bottom: 8px;
  }
}
@media screen and (-ms-high-contrast: active) and (min-width: 1440px), (-ms-high-contrast: none) and (min-width: 1440px) {
  .carousel--peekaboo::before {
    background: linear-gradient(to right, #ffffff 0%, transparent 75%, transparent 100%);
  }
  .carousel--peekaboo::after {
    background: linear-gradient(to left, #ffffff 0%, transparent 75%, transparent 100%);
  }
  .s-carousel--alternative .carousel--peekaboo::before {
    background: linear-gradient(to right, #f7f7f7 0%, transparent 75%, transparent 100%);
  }
  .s-carousel--alternative .carousel--peekaboo::after {
    background: linear-gradient(to left, #f7f7f7 0%, transparent 75%, transparent 100%);
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
.alert {
  background-color: #f7f7f7;
  color: #4a4e57;
  border-color: #edeff1;
}

.alert--success {
  background-color: #dff0d8;
  color: #3c763d;
  border-color: #d6e9c6;
}

.alert--error {
  background-color: #f8d7da;
  color: #721c24;
  border-color: #f5c6cb;
}

.alert--warning {
  background-color: #fff3cd;
  color: #856404;
  border-color: #ffeeba;
}

.alert--info {
  background-color: #d1ecf1;
  color: #0c5460;
  border-color: #bee5eb;
}

.alert__close {
  color: #4a4e57;
}
.alert--success .alert__close {
  color: #3c763d;
}
.alert--error .alert__close {
  color: #721c24;
}
.alert--warning .alert__close {
  color: #856404;
}
.alert--info .alert__close {
  color: #0c5460;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .footer__social-icons svg {
    width: 16px;
  }

  .footer__ds-logo svg {
    width: 170px;
  }

  .footer__partners > a {
    width: 30px;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-breadcrumbs {
    background-color: #f7f7f7;
  }
  .t-discover .s-breadcrumbs, .t-air-quality .s-breadcrumbs, .t-activist-engineering .s-breadcrumbs {
    background-color: #40ceb7;
  }
  .t-forum .s-breadcrumbs {
    background-color: #40b2cf;
  }
  .t-learn .s-breadcrumbs, .t-grass-roots-education .s-breadcrumbs, .t-student-innovation .s-breadcrumbs, .t-learning-and-skills .s-breadcrumbs, .t-opportunities .s-breadcrumbs {
    background-color: #41d37a;
  }
  .t-resources .s-breadcrumbs {
    background-color: #ffe44b;
  }
  .t-services .s-breadcrumbs {
    background-color: #fea861;
  }
  .t-software .s-breadcrumbs, .t-software-ds-pcb .s-breadcrumbs, .t-software-ds-pcb-pro .s-breadcrumbs, .t-software-dse .s-breadcrumbs, .t-software-dsm .s-breadcrumbs, .t-software-pcb-compare .s-breadcrumbs, .t-software-ds-pcb-v10 .s-breadcrumbs, .t-software-ds-pcb-pro-v10 .s-breadcrumbs, .t-software-pcb-compare-v10 .s-breadcrumbs {
    background-color: #ddbfe5;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .forum-listing-group__handle {
    border-color: #f7f7f7;
  }
  .t-discover .forum-listing-group__handle {
    border-color: #00bf9f;
  }
  .t-air-quality .forum-listing-group__handle {
    border-color: #00bf9f;
  }
  .t-forum .forum-listing-group__handle {
    border-color: #0098bf;
  }
  .t-home .forum-listing-group__handle {
    border-color: #e36666;
  }
  .t-learn .forum-listing-group__handle {
    border-color: #01c44e;
  }
  .t-grass-roots-education .forum-listing-group__handle {
    border-color: #01c44e;
  }
  .t-resources .forum-listing-group__handle {
    border-color: #ffdb0f;
  }
  .t-services .forum-listing-group__handle {
    border-color: #ff8b2d;
  }
  .t-software .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-ds-pcb .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-ds-pcb-pro .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-ds-pcb-v10 .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-ds-pcb-pro-v10 .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-dse .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-dsm .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-pcb-compare .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-pcb-compare-v10 .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-draftsight .forum-listing-group__handle {
    border-color: #d1aadc;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .w-header {
    position: fixed;
    top: 0;
  }
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .vp-banner {
    background-color: #f7f7f7;
  }
  .t-discover .vp-banner {
    background-color: #00bf9f;
  }
  .t-air-quality .vp-banner {
    background-color: #00bf9f;
  }
  .t-forum .vp-banner {
    background-color: #0098bf;
  }
  .t-home .vp-banner {
    background-color: #e36666;
  }
  .t-learn .vp-banner {
    background-color: #01c44e;
  }
  .t-grass-roots-education .vp-banner {
    background-color: #01c44e;
  }
  .t-resources .vp-banner {
    background-color: #ffdb0f;
  }
  .t-services .vp-banner {
    background-color: #ff8b2d;
  }
  .t-software .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-v10 .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro-v10 .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-dse .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-dsm .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare-v10 .vp-banner {
    background-color: #d1aadc;
  }
  .t-draftsight .vp-banner {
    background-color: #d1aadc;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .search-result-metadata {
    flex: 1 1;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .tags__tag {
    padding-left: 12px;
  }
  .tags__tag:first-child {
    padding-left: 0;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active) and (min-width: 480px), (-ms-high-contrast: none) and (min-width: 480px) {
  .add-comment__submit {
    max-width: 240px;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-hierarchy-deck .d-hierarchy-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-top: 8px;
    margin-bottom: 8px;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-home-deck .d-home-deck {
    margin-top: 8px;
    margin-bottom: 8px;
  }

  .s-home-deck__feature-card-1,
.s-home-deck__feature-card-2 {
    width: calc(50% - 8px);
  }

  .s-home-deck__card-3,
.s-home-deck__card-4,
.s-home-deck__card-5,
.s-home-deck__card-6,
.s-home-deck__card-7,
.s-home-deck__card-8 {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-extravaganza-deck::after {
    content: "";
    display: table;
    clear: both;
  }
  .s-extravaganza-deck .d-extravaganza-deck {
    width: calc(50% - 8px);
    margin-top: 8px;
    margin-bottom: 8px;
  }
  .s-extravaganza-deck .s-extravaganza-deck__feature-card-1 {
    float: left;
  }
  .s-extravaganza-deck .s-extravaganza-deck__card-2 {
    float: right;
  }
  .s-extravaganza-deck .s-extravaganza-deck__card-3 {
    float: right;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-carousel {
    background: #ffffff;
  }

  .s-carousel--alternative {
    background: #f7f7f7;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-hero {
    background-color: #f7f7f7;
  }
  .t-discover .s-hero {
    background-color: #00bf9f;
  }
  .t-air-quality .s-hero {
    background-color: #00bf9f;
  }
  .t-forum .s-hero {
    background-color: #0098bf;
  }
  .t-home .s-hero {
    background-color: #e36666;
  }
  .t-learn .s-hero {
    background-color: #01c44e;
  }
  .t-grass-roots-education .s-hero {
    background-color: #01c44e;
  }
  .t-resources .s-hero {
    background-color: #ffdb0f;
  }
  .t-services .s-hero {
    background-color: #ff8b2d;
  }
  .t-software .s-hero {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb .s-hero {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro .s-hero {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-v10 .s-hero {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro-v10 .s-hero {
    background-color: #d1aadc;
  }
  .t-software-dse .s-hero {
    background-color: #d1aadc;
  }
  .t-software-dsm .s-hero {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare .s-hero {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare-v10 .s-hero {
    background-color: #d1aadc;
  }
  .t-draftsight .s-hero {
    background-color: #d1aadc;
  }
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .hero__title,
.hero__content {
    align-self: flex-start;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-cta {
    background-color: #f7f7f7;
  }
  .t-discover .s-cta {
    background-color: #00bf9f;
  }
  .t-air-quality .s-cta {
    background-color: #00bf9f;
  }
  .t-forum .s-cta {
    background-color: #0098bf;
  }
  .t-home .s-cta {
    background-color: #e36666;
  }
  .t-learn .s-cta {
    background-color: #01c44e;
  }
  .t-grass-roots-education .s-cta {
    background-color: #01c44e;
  }
  .t-resources .s-cta {
    background-color: #ffdb0f;
  }
  .t-services .s-cta {
    background-color: #ff8b2d;
  }
  .t-software .s-cta {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb .s-cta {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro .s-cta {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-v10 .s-cta {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro-v10 .s-cta {
    background-color: #d1aadc;
  }
  .t-software-dse .s-cta {
    background-color: #d1aadc;
  }
  .t-software-dsm .s-cta {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare .s-cta {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare-v10 .s-cta {
    background-color: #d1aadc;
  }
  .t-draftsight .s-cta {
    background-color: #d1aadc;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Theme colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  main {
    margin-top: 56px;
  }
}
