@import 'gptw-framework-variables'; $button-y-padding: 14px; $button-x-padding: 35px; $button-border-width: 1px; section { height: auto; } .container-fluid { &.constrained { max-width: map-get($breakpoints, 'xl') + px; } } @mixin heading-margin-bottom($mobile: $headings-margin-bottom-mobile, $desktop: $headings-margin-bottom-desktop) { margin-bottom: $mobile; @include media-breakpoint-up($stacked-breakpoint) { margin-bottom: $desktop; } } //COLOURS .font-grey { color: $font-grey; } .font-lighter-grey { color: $font-lighter-grey; } .font-red { color: $font-red; } .font-red { color: #ff1628; } /* Background colors */ .background-blue { background-color: $color-gptw-bg-blue; &.gradient-to-white { background: linear-gradient($color-gptw-bg-blue, white); } } .background-red { background-color: $color-gptw-bg-red; &.gradient-to-white { background: linear-gradient($color-gptw-bg-red, white); } } .background-dark-blue { background-color: $color-gptw-bg-dark-blue; &.gradient-to-white { background: linear-gradient($color-gptw-bg-dark-blue, white); } } .background-charcoal { background-color: $color-gptw-bg-charcoal; &.gradient-to-white { background: linear-gradient($color-gptw-bg-charcoal, white); } .btn.btn-tertiary { color: $color-gptw-bg-charcoal; &:hover { color: $color-gptw-bg-charcoal; } } } .background-royal-blue { background-color: $color-gptw-bg-royal-blue; &.gradient-to-white { background: linear-gradient($color-gptw-bg-royal-blue, white); } .btn.btn-tertiary { color: $color-gptw-bg-royal-blue; &:hover { color: $color-gptw-bg-royal-blue; } } } .background-green { background-color: $color-gptw-bg-green; &.gradient-to-white { background: linear-gradient($color-gptw-bg-green, white); } } .background-purple { background-color: $color-gptw-bg-purple; &.gradient-to-white { background: linear-gradient($color-gptw-bg-purple, white); } } .background-dark-purple { background-color: $color-gptw-bg-dark-purple; &.gradient-to-white { background: linear-gradient($color-gptw-bg-dark-purple, white); } .btn.btn-tertiary { color: $color-gptw-bg-dark-purple; &:hover { color: $color-gptw-bg-dark-purple; } } } .background-pink { background-color: $color-gptw-bg-pink; &.gradient-to-white { background: linear-gradient($color-gptw-bg-pink, white); } } .background-light-red { background-color: $color-gptw-bg-light-red; &.gradient-to-white { background: linear-gradient($color-gptw-bg-light-red, white); } } .background-yellow { background-color: $color-gptw-bg-yellow; &.gradient-to-white { background: linear-gradient($color-gptw-bg-yellow, white); } } .background-gray { background-color: $color-gptw-bg-gray; &.gradient-to-white { background: linear-gradient($color-gptw-bg-gray, white); } } .background-white { background-color: white; } .text-blue { color: $color-gptw-text-navy-blue; } .text-red { color: $color-gptw-logo-red; &.small { // Target elements with both .text-red and .small color: $color-gptw-logo-red; // Redundant, but clarifies intent // To be even more specific for headings: h1 &, h2 &, h3 &, h4 &, h5 &, h6 & { color: $color-gptw-logo-red; } } } h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { &.font-grey { color: $font-grey; } &.font-red, &.text-red { // Alias for the same style color: $color-gptw-logo-red; } font-kerning: auto; } @mixin font($weight) { font-family: map-get($font-family, $weight); } //-------------------------------------------------------- //DOCUMENTATION //-------------------------------------------------------- #kss-node { #kssref-buttons { .kss-modifier__example { outline: none; } } .kss-modifier__example { outline: 1px dashed rgb(10, 81, 212); background-color: rgb(226, 226, 226); .element { outline: 1px solid rgb(10, 81, 212); } section, .container, .row, [class*='col-'], .element { // background: rgba(10, 81, 212, 0.4); // color: white; } .container { width: 100%; } } } //IMAGES @mixin cover { width: 100%; height: 100%; object-fit: cover; object-position: center; font-family: 'object-fit: cover; object-position: center;'; //polyfill } @mixin contain { object-fit: contain; font-family: 'object-fit: contain;'; } img { max-width: 100%; // display: block; &.cover { @include cover; max-width: 100%; } &.contain { @include contain; } &.zoom { transition: transform 0.2s; &:hover { transform: scale(1.1); } } } .zoom { > img { transition: transform 0.2s; } &:hover { > img { transform: scale(1.1); } } } .background-image { background-size: cover; background-position: center; } /* Alignment Various text alignment classes. Default is set on body. Usually applied to rows. Markup:
A paragraph tag
.text-left - left on large .text-center - center on large .text-right - right on large .text-stacked-left - left when stacked .text-stacked-center - center when stacked .text-stacked-right - right when stacked .text-left.text-stacked-left - left when stacked and above .text-center.text-stacked-center - center when stacked and above .text-right.text-stacked-right - right when stacked and above Styleguide Text - Alignment */ @mixin text-left { text-align: left; @include media-breakpoint-up($stacked-breakpoint) { text-align: left; } } .text-left, .row.heading.text-left { @include text-left; } @mixin text-center { text-align: $mobile-alignment; @include media-breakpoint-up($stacked-breakpoint) { text-align: center; } } .text-center, .row.heading.text-center { @include text-center; } @mixin text-right { text-align: $mobile-alignment; @include media-breakpoint-up($stacked-breakpoint) { text-align: right; } } .text-right, .row.heading.text-right { @include text-right; } @mixin text-stacked-left { @include media-breakpoint-down($stacked-breakpoint) { text-align: left; } } .text-stacked-left, .row.heading.text-stacked-left { @include text-stacked-left; } @mixin text-stacked-center { @include media-breakpoint-down($stacked-breakpoint) { text-align: center; } } .text-stacked-center, .row.heading.text-stacked-center { @include text-stacked-center; } @mixin text-stacked-right { @include media-breakpoint-down($stacked-breakpoint) { text-align: right; } } .text-stacked-right, .row.heading.text-stacked-right { @include text-stacked-right; } .row.heading { text-align: center; } /* Headings Headings can be used via tags or classes. Markup:A heading
.h1 - controls size & colour [48px/56px] .h1.font-grey - heading with grey text override .h2 - controls size & colour [36px/48px] .h3 - controls size & colour [28px/36px] .h4 - controls size & colour [24px/28px] .h5 - controls size & colour [20px/24px] .h6 - controls size & colour [16px/20px] Styleguide Text - Headings */ h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { @include font(semi-bold); padding: 0; margin-top: 0; @include heading-margin-bottom($headings-margin-bottom-mobile, $headings-margin-bottom-desktop); color: $color-gptw-black; &:first-of-type { margin-top: 0; } &.italic { @include font(semi-bold-italic); } } //if special spacing is required for a heading in a dedicated row .row.heading { *[class*='col-'] { h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { @include heading-margin-bottom($headings-row-margin-bottom-mobile, $headings-row-margin-bottom-desktop); } } } @mixin h1 { font-size: 48px; line-height: 60px; letter-spacing: -1.12px; @include media-breakpoint-up(md) { font-size: 56px; line-height: 64px; letter-spacing: -1.4px; } } @mixin h2 { font-size: 36px; line-height: 48px; letter-spacing: -1.14px; @include media-breakpoint-up(md) { font-size: 48px; line-height: 58px; letter-spacing: -1.2px; } } @mixin h3 { font-size: 28px; line-height: 36px; letter-spacing: -0.65px; @include media-breakpoint-up(md) { font-size: 36px; line-height: 43px; letter-spacing: -0.72px; } } @mixin h4 { font-size: 24px; line-height: 32px; letter-spacing: -0.56px; @include media-breakpoint-up(md) { font-size: 28px; line-height: 33px; letter-spacing: -0.56px; } } @mixin h5 { font-size: 20px; line-height: 28px; letter-spacing: -0.47px; @include media-breakpoint-up(md) { font-size: 24px; line-height: 30px; letter-spacing: -0.48px; } } @mixin h6 { font-size: 16px; line-height: 20px; letter-spacing: -0.37px; @include media-breakpoint-up(md) { font-size: 20px; line-height: 24px; letter-spacing: -0.3px; } } h1, .h1 { @include h1; } h2, .h2 { @include h2; } h3, .h3 { @include h3; } h4, .h4 { @include h4; } h5, .h5 { @include h5; } h6, .h6 { @include h6; } //FORMS .label, label { font-size: 16px; padding: 0; color: $font-grey; } //OTHER code { padding: 2px; } /* Sizes Vrious text sizes, some of which are used for legacy purposes Markup:A paragraph tag
.xsmall - extra small .small - small .small-wide - small wide .short - short .regular - regular .medium-large - medium large .large - large .giant - giant Styleguide Text - Sizes */ @mixin xsmall { font-size: 12px; line-height: 20px; letter-spacing: 0px; } .xsmall { @include xsmall; } @mixin xsmall-wide { font-size: 14px; line-height: 20px; // letter-spacing: 1.88px; } .xsmall-wide { @include xsmall; } @mixin small { font-size: 14px; line-height: 22px; letter-spacing: 0px; } .small { @include small; } @mixin small-wide { font-size: 14px; line-height: 22px; letter-spacing: 1px; } .small-wide { @include small-wide; } @mixin short { font-size: 16px; line-height: 32px; } .short { @include short; } @mixin regular { font-size: 16px; line-height: 1.4; letter-spacing: -0.2px; @include media-breakpoint-up('md') { font-size: 16px; line-height: 1.4; letter-spacing: -0.2px; } } .regular { @include regular; } @mixin medium { font-size: 20px; line-height: 32px; letter-spacing: -0.47px; @include media-breakpoint-up('md') { font-size: 20px; line-height: 32px; letter-spacing: -0.47px; } } .medium, .medium-para { @include medium; } @mixin medium-large { @include media-breakpoint-up('md') { font-size: 36px; line-height: 48px; letter-spacing: -0.84px; } } .medium-large { @include medium-large; } @mixin large { font-size: map-get($font-size, 4); line-height: map-get($line-height, 4); @include media-breakpoint-up('md') { font-size: map-get($font-size-desktop, 4); } } .large { @include large; } @mixin giant { font-size: 64px; line-height: 1.1; letter-spacing: -1.55px; @include media-breakpoint-up('md') { font-size: 64px; line-height: 1.1; letter-spacing: -1.55px; } @include media-breakpoint-up('lg') { font-size: 64px; line-height: 1.1; letter-spacing: -1.55px; } } .giant { @include giant; } @mixin weight-regular { font-family: map-get($font-family, regular); font-weight: normal; &.italic { font-family: map-get($font-family, regular-italic); } } /* Weights Various text wieghts Markup:A paragraph tag
.weight-regular - regular .weight-light - light .weight-medium - medium .weight-bold - bold Styleguide Text - Weights */ .weight-regular { @include weight-regular; } @mixin weight-light { font-family: map-get($font-family, light); font-weight: normal; &.italic { font-family: map-get($font-family, light-italic); } } .weight-light { @include weight-light; } @mixin weight-medium { font-weight: normal; font-family: map-get($font-family, medium); &.italic { font-family: map-get($font-family, medium-italic); } } .weight-medium { @include weight-medium; } @mixin weight-bold { font-weight: normal; font-family: map-get($font-family, bold); &.italic { font-family: map-get($font-family, bold-italic); } } .weight-bold { @include weight-bold(); } @mixin weight-semi-bold { font-weight: normal; font-family: map-get($font-family, semi-bold); &.italic { font-family: map-get($font-family, semi-bold-italic); } } .weight-semi-bold { @include weight-semi-bold(); } code { padding: 2px; } //PARAGRAPHS p { @include regular; margin-bottom: $default-element-spacing; margin-top: 0; } //FORMS .label, label { font-size: 14px; line-height: 20px; padding: 0; color: $font-grey; white-space: normal; @include weight-regular; text-align: left; } form { #honeypot { display: none; } } //LISTS ul, ol { margin-top: map-get($spacing, 3); margin-bottom: map-get($spacing, 3); font-size: 16px; line-height: 1.4; } ul, ol { font-size: 16px; line-height: 1.4; letter-spacing: 0px; &.h1, &.h2, &.h3, &.h4, &.h5, &.h6 { padding-left: 20px; } text-align: left; &.icon-red { i { color: $color-gptw-logo-red; } } } .block { display: block; &.align-center { margin-left: auto; margin-right: auto; } } /* Links Standard text links. Markup: A link .h1 - controls size & colour .h2 - controls size & colour .h3 - controls size & colour .h4 - controls size & colour .h5 - controls size & colour .h6 - controls size & colour :hover - hover state :focus - focus state .active - active state .no-decoration - removes decoration if previously set Styleguide Text - Links */ a, .link { text-decoration: none; color: $color-gptw-black; display: inline-block; background: none; cursor: pointer; &:hover { text-decoration: underline; color: $color-gptw-black; span { text-decoration: underline; } } &:focus { outline: none; text-decoration: underline; color: $color-gptw-black; } &.h1, &.h2, &.h3, &.h4, &.h5, &.h6 { text-decoration: none; &:hover, &:focus { text-decoration: underline; outline: none; } } &.img { display: block; } img { &:hover { border-bottom: 0; } } > img, > div { pointer-events: none; } &.link-red { color: $color-gptw-logo-red; &:hover { color: lighen($color-gptw-logo-red, 5%); } &:focus { color: $color-gptw-logo-red; } &.h1, &.h2, &.h3, &.h4, &.h5, &.h6 { color: $color-gptw-logo-red; &:hover { color: lighen($color-gptw-logo-red, 5%); } } } } #gptw-navigation { a:not(.btn) { text-decoration: none; &:focus { outline: none; text-decoration: none; background: none; } &.h1, &.h2, &.h3, &.h4, &.h5, &.h6 { color: $color-gptw-text-navy-blue; &:hover { color: $color-gptw-text-bright-blue; } } } } footer { a { &:hover { color: white !important; } &:focus { background: none; } } .social-link { a { margin-right: 7px; img { width: 30px; } } } } .uppercase { text-transform: uppercase; } hr { width: 100%; } //set the rem font size html, body { @include font(regular); color: $color-gptw-black; } body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; @include regular; text-align: center; overflow-x: hidden; @include media-breakpoint-up($stacked-breakpoint) { text-align: left; } } //LIGHT TEXT @mixin light { color: white; h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, label, p { color: white; } a { color: white; text-decoration: underline; &:hover { color: white; } &.btn { text-decoration: none; color: white !important; } } label { color: white; } } .light { @include light; .btn, button, button[type='submit'], input[type='submit'], input[type='reset'], input[type='button'], a.btn, div.btn { background: white !important; color: $color-gptw-bg-charcoal !important; &:hover { color: white !important; background: transparent !important; border: 1px solid white; } } /* .btn.btn-tertiary { border: none; padding-top: $button-y-padding; padding-bottom: $button-y-padding; padding-left: $button-x-padding; padding-right: $button-x-padding; } */ .slick-arrow { color: white; &:hover { color: white; } } } .full-width { width: 100%; padding-top: $mobile-component-spacing; padding-bottom: $mobile-component-spacing; @include media-breakpoint-up(sm) { padding-top: $desktop-component-spacing; padding-bottom: $desktop-component-spacing; } &.no-y-padding { padding-top: 0; padding-bottom: 0; } } //component vertical spacing @mixin component-spacing { padding-top: $mobile-component-spacing; padding-bottom: $mobile-component-spacing; @include media-breakpoint-up(sm) { padding-top: $desktop-component-spacing; padding-bottom: $desktop-component-spacing; } } //apply component spacing to the top @mixin component-spacing-top { padding-top: $mobile-component-spacing; @include media-breakpoint-up(sm) { padding-top: $desktop-component-spacing; } } //apply component spacing to the bottom @mixin component-spacing-bottom { padding-bottom: $mobile-component-spacing; @include media-breakpoint-up(sm) { padding-bottom: $desktop-component-spacing; } } //apply component spacing to any element .component-spacing { @include component-spacing; } //apply component spacing top to any element .component-spacing-top { @include component-spacing-top; } //apply component spacing bottom to any element .component-spacing-bottom { @include component-spacing-bottom; } .component-spacing-margin { margin-top: $mobile-component-spacing; margin-bottom: $mobile-component-spacing; @include media-breakpoint-up(sm) { margin-top: $desktop-component-spacing; margin-bottom: $desktop-component-spacing; } } //ROW @mixin row-spacing { //for multiple row containers margin-bottom: $mobile-row-spacing; @include media-breakpoint-up(sm) { margin-bottom: $desktop-row-spacing; } } .row-spacing { @include row-spacing; } @mixin row-spacing-padding { //for multiple row containers padding-bottom: $mobile-row-spacing; padding-top: $mobile-row-spacing; @include media-breakpoint-up(sm) { padding-bottom: $desktop-row-spacing; padding-top: $desktop-row-spacing; } } .row-spacing-padding { @include row-spacing-padding; } .container > div, .row { //for multiple row containers margin-bottom: $mobile-row-spacing; @include media-breakpoint-up(sm) { margin-bottom: $desktop-row-spacing; } //bottom row will never have spacing &:last-of-type { margin-bottom: 0; } &.heading { margin-bottom: 0; //let the heading spacing handle the bottom spacing for a heading row } &.padding-y > div { padding-top: $mobile-component-spacing; padding-bottom: $mobile-component-spacing; @include media-breakpoint-up(sm) { padding-top: $desktop-component-spacing; padding-bottom: $desktop-component-spacing; } &.no-padding-bottom { padding-bottom: 0; } &.no-padding-top { padding-top: 0; } } &.row-vertical-center { display: block; @include media-breakpoint-up($stacked-breakpoint) { display: flex; flex-wrap: nowrap; align-items: center; &:before, &:after { display: none; } } } //remove gutter from columns in a row &.no-gutter > [class*='col-'] { @include media-breakpoint-up($stacked-breakpoint) { padding-right: 0; padding-left: 0; } } & > div { /* apply column spacing on rows with stacked columns */ margin-bottom: $stacked-column-spacing; @include media-breakpoint-up($stacked-breakpoint) { margin-bottom: 0; } /* no spacing on the last column */ &:last-of-type { margin-bottom: 0; } /* remove stacked spacing from one column */ &.no-stacked-spacing { margin-bottom: 0; } } /* remove stacked spacing from all columns in a row */ &.no-stacked-spacing { & > div { margin-bottom: 0; } } &.reset-margin-left { margin-left: 0; } &.reset-margin-right { margin-right: 0; } } //COLUMNS [class*='col-'] { min-height: 0; } //remove gutter from a single column [class*='col-'].no-gutter { padding-right: 0; padding-left: 0; } [class*='col-'].no-gutter-left { padding-left: 0; } [class*='col-'].no-gutter-right { padding-right: 0; } //COLUMN *[class*='col-'] { //@toto: should be changed to * but will require site-wide testing > p, ul, ol, img { /* apply the default element spacing */ margin-bottom: $default-element-spacing; /* remove top spacing from all first items in a column */ &:first-child { margin-top: 0; } //last elements within a column &:last-child { margin-bottom: 0; &.bottom-margin { margin-bottom: $default-element-spacing; } } } /* set the heading spacing - must be below the * selectors */ h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { display: block; margin-top: 0; @include heading-margin-bottom($headings-margin-bottom-mobile, $headings-margin-bottom-desktop); &:last-of-type { @include heading-margin-bottom($headings-margin-bottom-mobile, $headings-margin-bottom-desktop); } } } //EQUAL HEIGHT ROWS .row-equal-height { @include media-breakpoint-up($stacked-breakpoint) { display: flex; flex-wrap: nowrap; > div, > a { display: flex; flex-direction: column; * { align-self: flex-start; } } } } //FORM input { color: black; } input[type='text'], input[type='email'], input[type='tel'], input[type='password'] { width: 100%; max-width: 340px; height: $form-input-height; border-radius: $form-input-border-radius; border-width: $form-input-border-width; border-color: $form-input-border-color; border-style: solid; padding: 5px; padding-left: 10px; padding-right: 10px; transition: all 300ms ease; transition-property: border-color, background-color; &:focus { outline: none; box-shadow: 0px 0px 1px 3px #eff5ff; background-color: $form-background; border-color: #003bdb; } &:hover { background: #edf1f7; } &:disabled { background-color: rgb(252, 252, 252); border-color: rgb(240, 242, 245); } &.mktoValid { border-color: #11131C; } &.mktoInvalid { border-color: #11131C; } } textarea { border-radius: $form-input-border-radius; border-width: $form-input-border-width; border-color: $form-input-border-color; background-color: $form-background; border-style: solid; padding: 10px; &.mktoInvalid { border-color: #ffb81a; } } select { border-radius: $form-input-border-radius; border-width: $form-input-border-width; border-color: $form-input-border-color; border-style: solid; display: none; //hidden now due to replacement with select2 } .mktoHtmlText a {text-decoration: underline;} /* Buttons & links Buttons are inline by default to allow them to adjust to the text alignment of the column Markup: component-element-button.hbs .btn.btn-primary - primary button style .btn.btn-primary:active - active .btn.btn-primary:hover - hover .btn.btn-primary:focus - focus .btn.btn-primary:disabled - disabled .btn.btn-primary:disabled:hover - disabled .btn.btn-secondary - secondary button style .btn.btn-secondary:active - active .btn.btn-secondary:hover - hover .btn.btn-secondary:focus - focus .btn.btn-secondary:disabled - disabled .btn.btn-secondary:disabled:hover - disabled .btn.btn-tertiary - tertiary button style .btn.btn-tertiary:active - active .btn.btn-tertiary:hover - hover .btn.btn-tertiary:focus - focus .btn.btn-tertiary:disabled - disabled .btn.btn-tertiary:disabled:hover - disabled .btn.btn-primary.btn-lg - large button style .btn.btn-primary.btn-lg:active - active .btn.btn-primary.btn-lg:hover - hover .btn.btn-primary.btn-lg:focus - focus .btn.btn-primary.btn-lg:disabled - disabled .btn.btn-primary.btn-lg:disabled:hover - disabled .btn.btn-textlink - textlink button style .btn.btn-textlink:active - active .btn.btn-textlink:hover - hover .btn.btn-textlink:focus - focus .btn.btn-textlink:disabled - disabled .btn.btn-textlink:disabled:hover - disabled Styleguide Buttons & links */ @mixin btn { display: inline-block; // to match the text alignment margin: 0; @include font(semi-bold); letter-spacing: 2px; font-size: 14px; line-height: 100%; width: auto; text-transform: uppercase; color: $color-gptw-black; border-radius: 0px; border: $button-border-width solid $color-gptw-black; padding-top: $button-y-padding; padding-bottom: $button-y-padding; padding-left: $button-x-padding; padding-right: $button-x-padding; box-shadow: none !important; outline: none; background-color: transparent; // transition: background-color 300ms ease; cursor: pointer; /* &.btn-lg { padding: map-get($spacing, 4); padding-top: map-get($spacing, 3); padding-bottom: map-get($spacing, 3); height: auto; } */ &.btn-small { padding: map-get($spacing, 1); padding-top: map-get($spacing, 1); padding-bottom: map-get($spacing, 1); height: auto; } &:hover { color: white; background-color: $color-gptw-black; } &:disabled { color: #808080; background: rgba(41, 43, 48, 0.25); &:hover { color: #808080; background: rgba(41, 43, 48, 0.25); } } &:focus, &:active { color: $color-gptw-black; } &.margin-right { margin-right: map-get($spacing, 3); } &.btn-lg { padding-top: 20px; padding-bottom: 20px; height: auto; } &.btn-primary { @include btn-primary; } &.btn-primary-inverse { @include btn-primary-inverse; } &.btn-secondary { @include btn-secondary; } &.btn-tertiary { @include btn-tertiary; } &.btn-textlink { @include btn-textlink; } &.btn-red { @include btn-red; } @at-root { a#{&} { display: inline-block; text-decoration: none; &:hover { text-decoration: none; } } } } @mixin btn-primary { background-color: transparent; // default: transparent color: $color-gptw-black; // black text border: $button-border-width solid $color-gptw-black; &:hover, &:focus, &:active { background: $color-gptw-black; // black background color: white; // white text border-color: $color-gptw-black; outline: none; } &:disabled { color: #808080; background: rgba(41, 43, 48, 0.25); &:hover, &:focus, &:active { color: #808080; background: rgba(41, 43, 48, 0.25); } } } // SECONDARY BUTTON (same as primary) @mixin btn-secondary { @include btn-primary; } // PRIMARY INVERSE BUTTON @mixin btn-primary-inverse { background-color: $color-gptw-black; color: white; border-color: $color-gptw-black; &:hover, &:focus, &:active { background: transparent; color: $color-gptw-black; border-color: $color-gptw-black; outline: none; } &:disabled { color: #808080; background: rgba(41, 43, 48, 0.25); &:hover, &:focus, &:active { color: #808080; background: rgba(41, 43, 48, 0.25); } } } // TERTIARY BUTTON @mixin btn-tertiary { background-color: transparent; color: white; border: 2px solid white; &:hover, &:focus, &:active { background-color: white; color: $color-gptw-black; } &:disabled { color: #808080; background: rgba(41, 43, 48, 0.25); &:hover, &:focus, &:active { color: #808080; background: rgba(41, 43, 48, 0.25); } } } @mixin btn-textlink { background-color: transparent; color: $color-gptw-red; border: 0px; &:hover { color: $color-gptw-black; } &:disabled { color: #808080; &:hover { color: #808080; } } } // RED BUTTON @mixin btn-red { color: white; background: $color-gptw-logo-red; border: $button-border-width solid $color-gptw-logo-red !important; &:hover, &:focus, &:active { background: white !important; color: $color-gptw-logo-red !important; border: $button-border-width solid $color-gptw-logo-red !important; } &:disabled { color: #808080; background: rgba(41, 43, 48, 0.25); &:hover, &:focus, &:active { color: #808080; background: rgba(41, 43, 48, 0.25); } } } .btn { @include btn; } @mixin btn-white { background-color: white; color: black; border: $button-border-width solid black; padding-top: $button-y-padding; padding-bottom: $button-y-padding; padding-left: $button-x-padding; padding-right: $button-x-padding; &:hover { background-color: white; color: black; } } .background-red .btn.btn-red { background: white !important; color: $color-gptw-logo-red !important ; border: 2px solid $color-gptw-logo-red !important; } .background-red .btn.btn-red:hover { background: $color-gptw-logo-red !important; color: white !important; border: 2px solid #ffffff !important; } .background-charcoal .btn-red { background: $color-gptw-logo-red !important; color: white !important ; border: 2px solid $color-gptw-logo-red !important; } background-charcoal .btn-red:hover { background: white !important; color: $color-gptw-logo-red !important; border: 2px solid #ffffff !important; } .contact_us_link { @include btn; @include btn-white; padding-top: 10px; padding-bottom: 10px; i { margin-left: 5px; } } p .btn { margin-bottom: 0; } //VERTICAL CENTERING //apply to elements for IE11 - will usually require a 100% height wrapper .absolute-vertical-center { position: absolute; top: 50%; transform: translateY(-50%); } @mixin flex-row($position) { display: flex; flex: 1 0 auto; //IE 11 fix flex-direction: row; justify-content: $position; align-items: center; } @mixin flex-column($position, $align-items: null) { display: flex; flex: 1 0 auto; // IE 11 fix flex-direction: column; // Handle the $position value as before @if ($position == left) { justify-content: flex-start; align-items: flex-start; } @else { justify-content: $position; align-items: center; } // Override align-items if $align-items is provided @if $align-items { align-items: $align-items; } } //apply to row to vertically center columns when not stacked .row-vertical-center { @include media-breakpoint-up($stacked-breakpoint) { @include flex-row(flex-start); } } .flex-row-center, .flex-vertical-center { @include flex-row(center); } .flex-column-center { @include flex-column(center); } .flex-column-left { @include flex-column(flex-start); } .flex-column-bottom { @include flex-column(flex-end); } /* Wrapping columns Apply to ROW to allow colunns to wrap giving the appearance of natural rows */ @mixin row-wrapping-columns($row-border-width: 0px) { @include media-breakpoint-up($stacked-breakpoint) { //target links and standard elements to all last-of-type > div[class*='col-'], > a[class*='col-'] { //add the correct row spacing to each column @include row-spacing; &:last-child { @include row-spacing; //override the last-child no margin bottom to provide a uniform row effect } } margin-bottom: 0 !important; //remove the margin from the bottom of the row, now catered for by the bottom columns &:last-of-type { //negative margin to pull the bottom of the row to the correct (row border widths will need to be added) margin-bottom: -$mobile-row-spacing - $row-border-width !important; @include media-breakpoint-up($stacked-breakpoint) { margin-bottom: -$desktop-row-spacing - $row-border-width !important; } } } } .row-wrapping-columns, .row-column-spacing-all-bp { @include row-wrapping-columns; } @import 'slider'; /* Vertical spacing Standardized vertical spacing classes Markup: component-element.hbs .component-spacing-margin - standard component spacing using margin (default is padding) .row-spacing - row spacing .margin-bottom-xxlarge - margin bottom xxlarge .margin-bottom-xlarge - margin bottom xlarge .margin-bottom-large - margin bottom large .margin-bottom-medium - margin bottom medium .margin-bottom-small - margin bottom small .margin-bottom-xsmall - margin bottom xsmall .margin-bottom-default - applies default margin (useful for headings) .margin-top-xxlarge - margin top xlarge .margin-top-xlarge - margin top xlarge .margin-top-large - margin top large .margin-top-medium - margin top medium .margin-top-small - margin top small Styleguide Vertical spacing */ @mixin margin-top-xxlarge { margin-top: map-get($spacing, 6) !important; } .margin-top-xxlarge { @include margin-top-xxlarge; } @mixin margin-top-xlarge { margin-top: map-get($spacing, 5) !important; } .margin-top-xlarge { @include margin-top-xlarge; } @mixin margin-top-large { margin-top: map-get($spacing, 4) !important; } .margin-top-large { @include margin-top-large; } @mixin margin-top-medium { margin-top: map-get($spacing, 3) !important; } .margin-top-medium { @include margin-top-medium; } @mixin margin-top-small { margin-top: map-get($spacing, 2) !important; } .margin-top-small { @include margin-top-small; } @mixin padding-top-xlarge { padding-top: map-get($spacing, 5) !important; } .padding-top-xlarge { @include padding-top-xlarge; } @mixin padding-top-large { padding-top: map-get($spacing, 4) !important; } .padding-top-large { @include padding-top-large; } @mixin padding-top-medium { padding-top: map-get($spacing, 3) !important; } .padding-top-medium { @include padding-top-medium; } @mixin padding-top-small { padding-top: map-get($spacing, 2) !important; } .padding-top-small { @include padding-top-small; } @mixin margin-bottom-xxlarge { margin-bottom: map-get($spacing, 6) !important; } .margin-bottom-xxlarge { @include margin-bottom-xxlarge; } @mixin margin-bottom-xlarge { margin-bottom: map-get($spacing, 5) !important; } .margin-bottom-xlarge { @include margin-bottom-xlarge; } @mixin margin-bottom-large { margin-bottom: map-get($spacing, 4) !important; } .margin-bottom-large { @include margin-bottom-large; } @mixin margin-bottom-medium { margin-bottom: map-get($spacing, 3) !important; } .margin-bottom-medium { @include margin-bottom-medium; } @mixin margin-bottom-small { margin-bottom: map-get($spacing, 2) !important; } .margin-bottom-small { @include margin-bottom-small; } @mixin margin-bottom-xsmall { margin-bottom: 5px !important; } .margin-bottom-xsmall { @include margin-bottom-xsmall; } @mixin margin-bottom-default { margin-bottom: $default-element-spacing !important; } .margin-bottom-default { @include margin-bottom-default; } @mixin padding-bottom-xlarge { padding-bottom: map-get($spacing, 5) !important; } .padding-bottom-xlarge { @include padding-bottom-xlarge; } @mixin padding-bottom-large { padding-bottom: map-get($spacing, 4) !important; } .padding-bottom-large { @include padding-bottom-large; } @mixin padding-bottom-medium { padding-bottom: map-get($spacing, 3) !important; } .padding-bottom-medium { @include padding-bottom-medium; } @mixin padding-bottom-small { padding-bottom: map-get($spacing, 2) !important; } .padding-bottom-small { @include padding-bottom-small; } @mixin no-margin-top { margin-top: 0 !important; } .no-margin-top { @include no-margin-top; } @mixin no-margin-bottom { margin-bottom: 0 !important; } .no-margin-bottom { @include no-margin-bottom; } @mixin no-padding-top { padding-top: 0 !important; } .no-padding-top { @include no-padding-top; } @mixin no-padding-bottom { padding-bottom: 0 !important; } .no-padding-bottom { @include no-padding-bottom; } @mixin no-y-margin { margin-top: 0 !important; margin-bottom: 0 !important; } .no-y-margin { @include no-y-margin; } .display-none { display: none !important; } .table, table, .table-responsive { border: 0; text-align: left; > thead > tr > th, > tbody > tr > td, > tfoot > tr > td, > thead > tr > th { border-bottom: 0; border-top: 0; } thead { tr { th { @include xsmall; @include weight-bold; // text-transform: uppercase; vertical-align: top; } } } &.table-striped > tbody { > tr:nth-of-type(odd) { background: white; } > tr:nth-of-type(even) { background: #f8f8f8; } } } video { max-width: 100%; } .wrap-xs, .wrap-sm, .wrap-md, .wrap-lg { display: block; width: 100%; } .wrap-xs { @include media-breakpoint-up('sm') { display: inline-block; width: auto; } } .wrap-sm { @include media-breakpoint-up('md') { display: inline-block; width: auto; } } .wrap-md { @include media-breakpoint-up('lg') { display: inline-block; width: auto; } } .wrap-lg { @include media-breakpoint-up('xl') { display: inline-block; width: auto; } } .wrap-xl { @include media-breakpoint-up('xl') { display: inline-block; width: auto; } } .wrap-xxl { @include media-breakpoint-up('xxl') { display: inline-block; width: auto; } }