@pattern-lab/starterkit-handlebars-demo
Version:
Pattern Lab's Demo StarterKit for Handlebars.
2,261 lines (2,085 loc) • 44.3 kB
CSS
@charset "UTF-8";
/*------------------------------------*\
#TABLE OF CONTENTS
\*------------------------------------*/
/**
* ABSTRACTS..............................Declarations of Sass variables & mixins
* BASE...................................Default element styles
* LAYOUT.................................Layout-specific styles
* COMPONENTS.............................Component styles
* UTILITIES..............................Utility classes
*/
/*------------------------------------*\
#ABSTRACTS
\*------------------------------------*/
/*------------------------------------*\
#VARIABLES
\*------------------------------------*/
/**
* CONTENTS
*
* COLORS
* Brand Colors...............Globally-available variables and config
* Neutral Colors.............Grayscale colors, including white and black
* Utility Colors.............Info, Warning, Error, Success
*
* TYPOGRAPHY
* Font Families..............The fonts used in the design system
* Sizing.....................Font sizing
*
* LAYOUT
* Max-widths.................Maximum layout container width
*
* SPACING
* Spacing defaults...........Spacing between elements
*
* BORDERS
* Border Width...............Border thicknesses
* Border Radius..............Border radius definitions
*
* ANIMATION
* Animation Speed............Transition/animation speed variables
* Animation easing...........Easing variables
*
* BREAKPOINTS
* Breakpoints................Global breakpoint definitions
*/
/*------------------------------------*\
#COLORS
\*------------------------------------*/
/**
* Brand Colors
* 1) Brand=specific colors
*/
/**
* Neutral Colors
* 1) Neutral colors are grayscale values used throughout the UI
*/
/**
* Utility Colors
* 1) Utility colors are colors used to provide feedback, such as alert messages,
* form validation, etc.
*/
/*------------------------------------*\
#TYPOGRAPHY
\*------------------------------------*/
/**
* Font Family
*/
/**
* Font Sizing
*/
/**
* Line Height
*/
/*------------------------------------*\
#LAYOUT
\*------------------------------------*/
/**
* Max Width
*/
/*------------------------------------*\
#SPACING
\*------------------------------------*/
/**
* Spacing and offsets
* 1) Used to space grids and body padding
*/
/*------------------------------------*\
#BORDERS
\*------------------------------------*/
/**
* Border
*/
/**
* Border radius
*/
/*------------------------------------*\
#ANIMATION
\*------------------------------------*/
/**
* Transition Speed
*/
/**
* Transition Ease
*/
/*------------------------------------*\
#BREAKPOINTS
\*------------------------------------*/
/**
* Breakpoints used in media queries
* 1) These are not the only breakpoints used, but they provide a few defaults
*/
/*------------------------------------*\
#MIXINS
\*------------------------------------*/
/**
* Body Styles
* 1) Prevent Mobile Safari from scaling up text: https://blog.55minutes.com/2012/04/iphone-text-resizing/
*/
/**
* XL Type Styles
*/
/**
* XL Heading Styles
*/
/**
* XL Heading Styles
*/
/**
* Large Heading Styles
*/
/**
* Medium 2 Heading Styles
*/
/**
* Medium Heading Styles
*/
/*------------------------------------*\
#COLORS
\*------------------------------------*/
/**
* In this file, we take the literal colors from our palette (defined in variables.scss)
* and define them against variables that we can utilise anywhere throughout the project.
*/
/*------------------------------------*\
#GLOBAL TEXT COLOR
\*------------------------------------*/
/**
* Body text and background colors
*/
/**
* Highlight colors
*/
/*------------------------------------*\
#LINKS
\*------------------------------------*/
/*------------------------------------*\
#BUTTONS
\*------------------------------------*/
/*------------------------------------*\
#FORMS
\*------------------------------------*/
/*------------------------------------*\
#TYPOGRAPHY
\*------------------------------------*/
/**
* In this file, we take the literal font sizes from our scale and define them
* against variables that we can utilise anywhere throughout the project.
*/
/*------------------------------------*\
#BASE
\*------------------------------------*/
/*------------------------------------*\
#RESET
\*------------------------------------*/
/**
* Border-Box http:/paulirish.com/2012/box-sizing-border-box-ftw/
*/
* {
box-sizing: border-box;
}
/**
* 1) Zero out margins and padding for elements
*/
html, body, div, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, ol, ul, li, form, legend, label, table, header, footer, nav, section, figure {
margin: 0;
padding: 0;
}
/**
* 1) Set HTML5 elements to display: block
*/
header, footer, nav, section, article, figure {
display: block;
}
/*------------------------------------*\
#FONT REFERENCES
\*------------------------------------*/
/**
* Referencing SCSS mixins by @fontsource library
* Hardening references by – redundant, but specifically – declaring the variables previous to @include
*/
@font-face {
font-family: "Abel";
font-style: normal;
font-display: swap;
font-weight: 400;
src: url("../fonts/abel-latin-400-normal.woff2") format("woff2"), url("../fonts/abel-all-400-normal.woff") format("woff");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-cyrillic-ext-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff");
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-cyrillic-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff");
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-vietnamese-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff");
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-latin-ext-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-latin-400-normal.woff2") format("woff2"), url("../fonts/raleway-all-400-normal.woff") format("woff");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Raleway";
font-style: italic;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-cyrillic-ext-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff");
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: "Raleway";
font-style: italic;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-cyrillic-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff");
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: "Raleway";
font-style: italic;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-vietnamese-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff");
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: "Raleway";
font-style: italic;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-latin-ext-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: "Raleway";
font-style: italic;
font-display: swap;
font-weight: 400;
src: url("../fonts/raleway-latin-400-italic.woff2") format("woff2"), url("../fonts/raleway-all-400-italic.woff") format("woff");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 700;
src: url("../fonts/raleway-cyrillic-ext-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff");
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 700;
src: url("../fonts/raleway-cyrillic-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff");
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 700;
src: url("../fonts/raleway-vietnamese-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff");
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 700;
src: url("../fonts/raleway-latin-ext-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: "Raleway";
font-style: normal;
font-display: swap;
font-weight: 700;
src: url("../fonts/raleway-latin-700-normal.woff2") format("woff2"), url("../fonts/raleway-all-700-normal.woff") format("woff");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/*------------------------------------*\
#BODY
\*------------------------------------*/
/**
* HTML base styles
* 1) Set the html element's height to at least 100% of the viewport.
* This is used to achieve a sticky footer
*/
html {
min-height: 100vh;
/* 1 */
}
/**
* Body base styles
* 1) Set the body element's height to at least 100% of the viewport.
* This is used to achieve a sticky footer
*/
body {
min-height: 100vh;
/* 1 */
font-family: "Raleway", "HelveticaNeue", "Helvetica", "Arial", sans-serif;
font-size: 1rem;
line-height: 1.6;
-webkit-text-size-adjust: 100%;
/* 1 */
background-color: #fff;
color: #131313;
}
/*------------------------------------*\
#LINKS
\*------------------------------------*/
/**
* Link base styles
*/
a {
color: #444;
text-decoration: none;
outline: 0;
transition: color 0.15s ease-out;
}
a:hover, a:focus {
color: #ba6333;
}
a:active {
color: #131313;
}
/*------------------------------------*\
#LISTS
\*------------------------------------*/
/**
* 1) List base styles
*/
/**
* Remove list styles from unordered and ordered lists
*/
ol, ul {
list-style: none;
}
/*------------------------------------*\
#HEADINGS
\*------------------------------------*/
h1, h2, h3, h4 {
font-family: "Abel", serif;
text-transform: uppercase;
}
/**
* Heading 1 base styles
*/
h1 {
font-size: 3rem;
font-weight: normal;
line-height: 1.2;
}
@media all and (min-width: 47em) {
h1 {
font-size: 4rem;
}
}
/**
* Heading 2 base styles
*/
h2 {
font-size: 1.2rem;
font-weight: normal;
line-height: 1.2;
}
/**
* Heading 3 base styles
*/
h3 {
font-size: 1.2rem;
font-weight: normal;
line-height: 1.2;
}
/**
* Heading 4 base styles
*/
h4 {
font-size: 1rem;
font-weight: normal;
line-height: 1.2;
}
/*------------------------------------*\
#FORMS
\*------------------------------------*/
/**
* 1) Form element base styles
*/
/**
* Input placeholder text base styles
*/
::-webkit-input-placeholder {
color: #808080;
}
::-moz-placeholder {
color: #808080;
}
:-ms-input-placeholder {
color: #808080;
}
/**
* Fieldset base styles
*/
fieldset {
border: 0;
padding: 0;
margin: 0;
}
/**
* Legend base styles
*/
legend {
margin-bottom: 0.25rem;
}
/**
* Label base styles
*/
label {
display: block;
padding-bottom: 0.25rem;
color: #131313;
}
/**
* Add font size 100% of form element and margin 0 to these elements
*/
button, input, select, textarea {
font-family: inherit;
font-size: 1rem;
margin: 0;
}
/**
* Text area base styles
*/
textarea {
resize: none;
}
/**
* Input and text area base styles
*/
input, textarea {
width: 100%;
padding: 0.5rem;
border: 1px solid #444;
background: #fff;
}
input:focus, textarea:focus {
border-color: #131313;
}
input:disabled, textarea:disabled {
border-color: #eee;
background: #eee;
color: #808080;
}
/**
* Remove webkit appearance styles from these elements
*/
input[type=text], input[type=search], input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration, input[type=url], input[type=number], textarea {
-webkit-appearance: none;
}
/**
* Checkbox and radio button base styles
*/
input[type=checkbox],
input[type=radio] {
width: auto;
margin-right: 0.3rem;
border-color: #444;
}
/**
* Search input base styles
*/
input[type=search] {
-webkit-appearance: none;
border-radius: 0;
}
/**
* Select
* 1) Remove default styling
*/
select {
display: block;
font-size: 1rem;
width: 100%;
border: 1px solid #444;
border-radius: 0;
padding: 0.5rem;
height: 2rem;
background: #fff;
color: #131313;
}
select:focus {
border-color: #131313;
}
/*------------------------------------*\
#BUTTONS
\*------------------------------------*/
/**
* Button and submit inputs reset
* 1) These should be styled using c-btn
*/
button {
cursor: pointer;
}
/*------------------------------------*\
#MAIN ELEMENT
\*------------------------------------*/
/**
* Main element
*/
[role=main] {
display: block;
flex: 1 0 auto;
}
/*------------------------------------*\
#MEDIA
\*------------------------------------*/
/**
* Responsive image styling
* 1) Allows for images to flex with varying screen size
*/
img {
max-width: 100%;
height: auto;
}
/*------------------------------------*\
#TEXT
\*------------------------------------*/
/**
* Paragraph base styles
*/
p {
margin-bottom: 1rem;
}
/**
* Blockquote base styles
*/
blockquote {
font-style: italic;
border-left: 1px solid #808080;
color: #808080;
padding-left: 1rem;
margin-bottom: 1rem;
}
/**
* Horizontal rule base styles
*/
hr {
border: 0;
height: 1px;
background: #ddd;
margin: 1rem 0;
}
/**
* Selection styles
*/
::-moz-selection {
color: #131313;
background: #ddd;
/* Gecko Browsers */
}
::selection {
color: #131313;
background: #ddd;
/* WebKit/Blink Browsers */
}
/**
* Code base styles
*/
code {
display: inline-block;
background: #f9f9f9;
border: 1px solid #ddd;
padding: 0.2rem 0.5rem;
line-height: 1.2;
font-size: 0.85rem;
}
/**
* Preformatted text base styles
*/
pre {
background: #f9f9f9;
border: 1px solid #ddd;
font-size: 1rem;
padding: 1rem;
overflow-x: auto;
/**
* Remove border from code within preformatted text block
*/
}
pre code {
border: 0;
}
/**
* Code with languages associated with them
* 1) Override Prism sysles for code blocks with language
*/
code[class*=language-],
pre[class*=language-] {
font-family: monospace ;
}
/*------------------------------------*\
#TABLES
\*------------------------------------*/
/**
* Table
*/
table {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
}
/**
* Table header cell
*/
th {
text-align: left;
}
/**
* Table row
*/
tr {
vertical-align: top;
}
/*------------------------------------*\
#LAYOUT
\*------------------------------------*/
/*------------------------------------*\
#LAYOUT
\*------------------------------------*/
/**
* Layout Container
* 1) Caps the width of the content to the maximum width
* and centers the container
*/
.l-container {
max-width: 80rem;
padding: 0 1rem;
margin: 0 auto;
}
@media all and (min-width: 60em) {
.l-container {
padding: 0 2rem;
}
}
.l-container--narrow {
max-width: 45rem;
}
/**
*
* 1) This caps the width of text passages
* to achieve a comfortable line length
*/
.l-linelength-container {
max-width: 36rem;
}
.l-band {
background: #f9f9f9;
padding: 2rem 1rem;
}
/**
* 2 column layout
*/
.l-page-layout--two-column {
display: flex;
flex-direction: column;
}
@media all and (min-width: 60em) {
.l-page-layout--two-column {
flex-direction: row;
}
}
@media all and (min-width: 60em) {
.l-page-layout--two-column .l-page-layout__main {
width: 70%;
padding-right: 1rem;
}
}
/**
* Sidebar
*/
@media all and (min-width: 60em) {
.l-page-layout--two-column .l-page-layout__secondary {
width: 30%;
margin-left: 2rem;
}
}
.l-page-layout--reversed .l-page-layout__secondary {
margin-bottom: 2rem;
}
@media all and (min-width: 60em) {
.l-page-layout--reversed .l-page-layout__secondary {
order: 1;
margin-bottom: 0;
}
}
/*------------------------------------*\
#GRID
\*------------------------------------*/
/**
* Grid Container
*/
.l-grid {
display: flex;
flex-wrap: wrap;
}
@supports (display: grid) {
.l-grid {
display: grid;
grid-gap: 2rem;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
margin: 0;
}
}
/**
* Grid Item
*/
.l-grid__item {
display: flex;
}
/*------------------------------------*\
#COMPONENTS
\*------------------------------------*/
/*------------------------------------*\
#BUTTONS
\*------------------------------------*/
/**
*
* 1) Button or link that has functionality to it
*/
.c-btn {
display: inline-block;
border: 1px solid #131313;
background: #114689;
color: #fff;
line-height: 1;
padding: 1rem 2rem;
border: 0;
text-transform: uppercase;
text-align: center;
transition: all 0.15s ease-out;
}
.c-btn:hover, .c-btn:focus {
color: #fff;
background: #041544;
}
.c-btn--bare {
background: none;
color: #114689;
border: 1px solid transparent;
}
.c-btn--bare:hover, .c-btn--bare:focus {
background: none;
color: #114689;
border-color: #114689;
}
/*
* Inner container wrapper
* 1) Container is direct decendant of <button>, since there's
* a bug with applying flexbox directly to a <button>
* 2) Only needs to be used for buttons containing both icons and text
*/
.c-btn__inner {
display: flex;
align-items: center;
justify-content: center;
}
/*
* Button icon
*/
.c-btn__icon {
width: 1rem;
height: 1rem;
fill: #fff;
transition: fill 0.15s ease-out;
}
/*------------------------------------*\
#DEFINITION LIST
\*------------------------------------*/
/**
* 1) Definition list (`dl`) that contains a definition term (`dt`) and a definition description (`dd`)
*/
.c-definition-list {
margin: 0 0 1rem;
}
/**
* Definition list item
*/
.c-definition-list__item {
display: flex;
}
@media all and (min-width: 60em) {
.c-definition-list__item {
justify-content: space-between;
}
}
/**
* Definition list term
*/
.c-definition-list__term {
font-weight: bold;
margin-bottom: 0.25rem;
width: 5rem;
}
@media all and (min-width: 60em) {
.c-definition-list__term {
width: auto;
}
}
/**
* Definition list description
*/
/*------------------------------------*\
#DEFINITION LIST LIST
\*------------------------------------*/
/**
* 1) List of definition lists
*/
/**
* Definition list list item
*/
.c-definition-list-list--lined .c-definition-list-list__item {
margin-bottom: 1rem;
border-bottom: 1px solid #ddd;
}
/*------------------------------------*\
#HERO BLOCK
\*------------------------------------*/
/**
* 1) Sit hero flush with header. Normally we wouldn't
* do this and handle margin using utility classes,
* but we're taking a shortcut for a demo.
*/
.c-hero {
display: block;
position: relative;
margin: -2rem 0 2rem;
/* 1 */
}
/**
* Hero Image
* 1) This is the primary hero image that runs full-bleed across the layout
*/
.c-hero__img {
display: block;
width: 100%;
object-fit: cover;
max-height: 70vh;
overflow: hidden;
}
.c-hero__body {
background: #ba6333;
padding: 1rem;
}
@media all and (min-width: 35em) {
.c-hero__body {
padding: 0;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
height: 100%;
width: 100%;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 20%, #000 100%);
}
}
/**
* Hero Headline
* 1) This sits overtop of the hero image when space permits
*/
.c-hero__headline {
text-transform: uppercase;
font-size: 3rem;
background-color: #ba6333;
color: #fff;
transition: all 0.15s ease-out;
}
@media all and (min-width: 35em) {
.c-hero__headline {
padding: 0 0.4rem;
font-size: 4rem;
}
}
/*------------------------------------*\
#TOUT BLOCK
\*------------------------------------*/
/**
* 1) The tout block contains an image and headline overlayed over the image.
*/
.c-tout {
display: block;
position: relative;
overflow: hidden;
max-width: 1024px;
}
/**
* Tout image
*/
.c-tout__img {
display: block;
}
/**
* Tout headline
*/
.c-tout__headline {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
text-transform: uppercase;
letter-spacing: 1px;
color: #fff;
padding: 0.5rem;
font-size: 1.4rem;
transition: all 0.15s ease-out;
}
.c-tout:hover .c-tout__headline, .c-tout:focus .c-tout__headline {
padding-bottom: 2rem;
background: #114689;
}
/*------------------------------------*\
#SECTION HEADER
\*------------------------------------*/
/**
* 1) A group of text with a title that headlines a section
*/
.c-section__header {
display: flex;
align-items: center;
position: relative;
margin-bottom: 1rem;
}
.c-section__header::after {
content: "";
display: block;
flex: 1;
height: 2px;
margin-left: 1rem;
background: #ba6333;
}
.c-section__title {
font-size: 2rem;
}
/*------------------------------------*\
#STACKED BLOCK
\*------------------------------------*/
/**
* 1) A link block consisting of media, headline, and description all stacked on top
* of each other
* 2) Capped for demo purposes
*/
.c-stacked-block {
display: flex;
flex-direction: column;
position: relative;
max-width: 600px;
/* 2 */
transition: transform 0.15s ease-out;
}
.c-stacked-block:hover, .c-stacked-block:focus {
transform: scale(1.03);
}
.c-stacked-block__body {
flex: 1;
}
.c-stacked-block__title {
text-transform: uppercase;
letter-spacing: 1px;
color: #114689;
transition: color 0.15s ease-out;
}
.c-stacked-block:hover .c-stacked-block__title, .c-stacked-block:focus .c-stacked-block__title {
color: #ba6333;
}
.c-stacked-block__excerpt {
margin-bottom: 0;
color: #444;
}
.c-stacked-block__meta {
color: #114689;
font-size: 1.2rem;
font-family: "Abel", serif;
margin-bottom: 0;
transition: color 0.15s ease-out;
}
.c-stacked-block:hover .c-stacked-block__meta, .c-stacked-block:focus .c-stacked-block__meta {
color: #ba6333;
}
.c-stacked-block__badge {
display: block;
position: absolute;
top: 0;
right: 0;
padding: 0.5rem;
font-family: "Abel", serif;
text-transform: uppercase;
color: #fff;
background: #ba6333;
}
.c-stacked-block__optional {
margin-left: 0.5rem;
color: #808080;
font-family: "Abel", serif;
font-size: 0.85rem;
text-decoration: line-through;
}
/*------------------------------------*\
#STRIPE
\*------------------------------------*/
/**
* 1) Block that contains a right and left column of text and other possible components
*/
.c-stripe {
padding: 2rem 0;
}
@media all and (min-width: 35em) {
.c-stripe {
display: flex;
}
}
.c-stripe-list--condensed .c-stripe {
padding: 1rem 0;
}
/**
* Stripe lef container
* 1) Contains elements that display on the left side of the stripe
*/
.c-stripe__left-container {
margin-right: 2rem;
}
@media all and (min-width: 35em) {
.c-stripe__left-container {
width: 20%;
}
}
.c-stripe-list--condensed .c-stripe__left-container {
display: none;
}
.c-stripe__link {
display: block;
}
@media all and (min-width: 35em) {
.c-stripe__link {
max-width: 10rem;
}
}
/**
* Stripe right container
* 1) Contains elements that display on the right side of the stripe
*/
.c-stripe__right-container {
flex: 1;
}
@media all and (min-width: 35em) {
.c-stripe__right-container {
display: flex;
align-items: center;
}
}
.c-stripe__title {
margin-bottom: 2rem;
}
@media all and (min-width: 35em) {
.c-stripe__title {
margin-bottom: 0;
margin-right: 2rem;
width: 40%;
}
}
@media all and (min-width: 35em) {
.c-stripe__meta {
margin-left: 2rem;
margin-bottom: 2.25rem;
width: 20%;
text-align: right;
flex: 1;
}
}
.c-stripe__meta-label {
font-weight: bold;
margin-bottom: 0.75rem;
}
.c-stripe__meta-span {
font-family: "Abel", serif;
color: #114689;
font-size: 1.2rem;
}
/*------------------------------------*\
#STRIPE LIST
\*------------------------------------*/
/**
* 1) Block that contains a right and left column of text and other possible components
*/
.c-stripe-list__item {
border-bottom: 1px solid #ddd;
}
/*------------------------------------*\
$FOOTER
\*------------------------------------*/
/**
* 1) Global block at the bottom of each page that contains a navigation and other information
*/
.c-footer {
padding: 2rem 0;
margin-top: 2rem;
background: #041544;
}
@media all and (min-width: 47em) {
.c-footer__inner {
display: flex;
}
}
@media all and (min-width: 47em) {
.c-footer__bottom {
margin-left: auto;
}
}
.c-footer__credit, .c-footer__copyright {
color: #fff;
text-transform: uppercase;
font-family: "Abel", serif;
font-size: 0.85rem;
}
.c-footer__credit a, .c-footer__copyright a {
color: #ba6333;
}
.c-footer__credit a:hover, .c-footer__credit a:focus, .c-footer__copyright a:hover, .c-footer__copyright a:focus {
color: #808080;
}
/*------------------------------------*\
#FOOTER NAV
\*------------------------------------*/
/**
* 1) Global block at the bottom of each page that contains a navigation and other information
*/
.c-footer-nav {
margin-bottom: 2rem;
}
@media all and (min-width: 47em) {
.c-footer-nav {
display: flex;
margin-bottom: 0;
}
}
@media all and (min-width: 47em) {
.c-footer-nav__item {
margin-right: 2rem;
}
.c-footer-nav__item:last-child {
margin-right: 0;
}
}
.c-footer-nav__link {
color: #fff;
font-family: "Abel", serif;
text-transform: uppercase;
font-size: 1.2rem;
}
/*------------------------------------*\
#HEADER
\*------------------------------------*/
/**
* Global block at the top of each page containing the navigation, logo, and other potential contents
*/
.c-header {
position: relative;
margin-bottom: 2rem;
border-bottom: 1px solid #ddd;
}
/**
* Header inner
*/
.c-header__inner {
padding-top: 1rem;
padding-bottom: 1rem;
}
@media all and (min-width: 35em) {
.c-header__inner {
display: flex;
align-items: center;
}
}
/**
* Header navigation button
* 1) Button used to toggle the navigation on/off on small screens
*/
.c-header__nav-btn {
margin-left: auto;
}
@media all and (min-width: 70em) {
.c-header__nav-btn {
display: none;
}
}
/**
* Header navigation conntainer
* 1) Contains the primary navigation and other possible patterns
*/
.c-header__nav-container {
display: none;
/**
* Header navigation conntainer within vertical header
*/
}
@media all and (min-width: 70em) {
.c-header__nav-container {
display: block;
margin-left: auto;
}
}
@media all and (min-width: 70em) {
.c-header--vertical .c-header__nav-container {
margin-left: 0;
}
}
/**
* Active header nav container
*/
.c-header__nav-container.is-active {
display: block;
position: absolute;
background: #eee;
top: 100%;
left: 0;
width: 100%;
z-index: 5;
padding: 1rem;
/**
* Active header nav container within vertical header
*/
}
@media all and (min-width: 70em) {
.c-header__nav-container.is-active {
display: block;
position: static;
padding: 0;
margin-left: auto;
width: inherit;
}
}
@media all and (min-width: 70em) {
.c-header--vertical .c-header__nav-container.is-active {
margin-left: 0;
width: 100%;
}
}
/*------------------------------------*\
#LOGO
\*------------------------------------*/
/**
* Branding image or text of the site
*/
.c-logo {
font-size: 2rem;
}
.c-footer .c-logo {
margin-bottom: 2rem;
}
@media all and (min-width: 47em) {
.c-footer .c-logo {
margin-bottom: 0;
}
}
/**
* Logo link
*/
.c-logo__link {
display: block;
}
/**
* Logo image
*/
.c-logo__img {
display: block;
}
.c-logo__left {
color: #114689;
}
.c-logo--light .c-logo__left {
color: #fff;
}
.c-logo__right {
color: #ba6333;
}
/*------------------------------------*\
#ICON
\*------------------------------------*/
/**
* 1) Small image that represents functionality
*/
.c-icon {
height: 16px;
width: 16px;
}
/*------------------------------------*\
#INPUT
\*------------------------------------*/
/**
* 1) Actual input of a field
*/
.c-stripe .c-input {
max-width: 3rem;
}
/*------------------------------------*\
#PAGE HEADER
\*------------------------------------*/
/**
* 1) Container that consists of of a page header title and description
*/
/**
* Page header title
*/
.c-page-header {
margin-top: 4rem;
margin-bottom: 2rem;
}
/**
* Page description
*/
.c-page-header__desc {
margin-top: 1rem;
}
/*------------------------------------*\
#PAGINATION
\*------------------------------------*/
/**
* Pagination
*/
.c-pagination {
display: flex;
flex-wrap: wrap;
justify-content: center;
overflow: hidden;
margin-bottom: 1rem;
font-family: "Abel", serif;
text-transform: uppercase;
}
.c-pagination__item {
border-right: 1px solid #ddd;
}
.c-pagination__item:last-child {
border: 0;
}
.c-pagination__link {
padding: 1rem;
text-decoration: underline;
}
.c-pagination__item:first-child .c-pagination__link {
padding-left: 0;
}
.c-pagination__item.is-active .c-pagination__link {
font-weight: bold;
text-decoration: none;
pointer-events: none;
}
.c-pagination__item.is-disabled .c-pagination__link {
color: #ddd;
pointer-events: none;
text-decoration: none;
}
/*------------------------------------*\
#PRIMARY NAVIGATION
\*------------------------------------*/
/**
* Primary navigation existing in the header and maybe the footer
*/
@media all and (min-width: 32em) {
.c-primary-nav {
margin-left: auto;
}
}
/**
* Primary navigation list
*/
.c-primary-nav__list {
display: flex;
align-items: center;
}
/**
* Primary navigation item
*/
.c-primary-nav__item {
margin-right: 2rem;
}
.c-primary-nav__item:last-child {
margin-right: 0;
}
/**
* Primary navigation link
*/
.c-primary-nav__link {
display: block;
cursor: pointer;
font-family: "Abel", serif;
font-size: 1.2rem;
line-height: 1;
text-transform: uppercase;
transition: background 0.15s ease-out;
}
.c-primary-nav__link:hover, .c-primary-nav__link:focus {
color: #ba6333;
}
.c-primary-nav__icon.c-icon {
fill: #041544;
height: 24px;
width: 24px;
}
/*------------------------------------*\
#PROMO BLOCK
\*------------------------------------*/
/**
* Large block containing an image and copy
* 1) Move promo block up to sit flush with hero
* Normally we wouldn't do this, but we're taking
* a shortcut for demo purposes.
*/
.c-promo-block {
color: #fff;
position: relative;
margin-top: -2rem;
/* 1 */
}
.c-promo-block__media {
position: relative;
z-index: 0;
}
.c-promo-block__media::before {
content: "";
background: linear-gradient(to left, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 40%, #000 100%);
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.c-promo-block--right .c-promo-block__media::before {
background: linear-gradient(to right, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 20%, #000 100%);
}
.c-promo-block__body {
position: absolute;
top: 40%;
left: 4rem;
z-index: 1;
max-width: 400px;
transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.c-promo-block--right .c-promo-block__body {
left: auto;
right: 4rem;
}
.c-promo-block__body.c-promo-block__body--initial {
opacity: 0;
transform: translateY(70px);
}
.c-promo-block__img {
display: block;
width: 100%;
}
.c-promo-block__link {
color: #fff;
}
.c-promo-block__link:hover, .c-promo-block__link:focus {
color: #ba6333;
}
.c-promo-block__heading {
display: inline;
color: inherit;
border-bottom: 2px solid #ba6333;
font-size: 2rem;
}
@media all and (min-width: 60em) {
.c-promo-block__heading {
font-size: 3rem;
}
}
.c-promo-block__description {
margin-top: 1rem;
}
@media all and (min-width: 60em) {
.c-promo-block__description {
font-size: 1.2rem;
}
}
/*------------------------------------*\
#PROGRESS TRACKER
\*------------------------------------*/
/**
* 1) Ordered list showing progress (i.e. step by step)
* 2) Display flex used to put items in row. Flex wrap wraps items underneat when space is
* unavailable.
*/
.c-progress-tracker {
display: flex;
/* 2 */
justify-content: center;
flex-wrap: wrap;
/* 2 */
}
/* Progress tracker iterm */
.c-progress-tracker__item {
margin-right: 2rem;
text-align: center;
font-size: 0.85rem;
width: 5rem;
/* Don't display the horizontal line on the last item number */
}
.c-progress-tracker__item:last-child .c-progress-tracker__number::before {
display: none;
}
.c-progress-tracker__number {
padding: 0.125rem;
margin-bottom: 0.5rem;
color: #114689;
border: 1px solid #114689;
background-color: #fff;
position: relative;
}
@media all and (min-width: 28em) {
.c-progress-tracker__number {
padding: 0.5rem;
}
}
.is-complete .c-progress-tracker__number {
background-color: #ddd;
border-color: #ddd;
}
.is-current .c-progress-tracker__number {
color: #fff;
background-color: #114689;
font-weight: bold;
}
.is-disabled .c-progress-tracker__number {
color: #041544;
border-color: #114689;
}
.c-progress-tracker__number::before {
content: " ";
display: block;
width: 4rem;
height: 1px;
background-color: #ddd;
position: absolute;
top: 50%;
right: -4rem;
z-index: -1;
}
.c-progress-tracker__label {
display: none;
/* Do show it on larger screens */
}
@media all and (min-width: 35em) {
.c-progress-tracker__label {
display: inline;
}
}
.is-current .c-progress-tracker__label {
font-weight: bold;
}
/*------------------------------------*\
#TEXT PASSAGE
\*------------------------------------*/
/**
* 1) A passage of text, including various components (i.e. article, blog post)
*/
.c-text-passage {
/**
* Link within the text passage
*/
/**
* Blockquote within text passage
*/
/**
* First-level heading within text passage
*/
/**
* Second-level heading within text passage
*/
/**
* Third-level heading within text passage
*/
/**
* Fourth-level heading within text passage
*/
/**
* Fifth-level heading within text passage
*/
/**
* Sixth-level heading within text passage
*/
/**
* Unordered list within text passage
*/
/**
* Ordered list within text passage
*/
}
.c-text-passage p {
margin-bottom: 1rem;
}
.c-text-passage a {
text-decoration: underline;
}
.c-text-passage blockquote {
padding-left: 0.8rem;
border-left: 3px solid #444;
color: #808080;
font-size: 1rem;
}
.c-text-passage h1 {
margin-bottom: 1rem;
}
.c-text-passage h2 {
margin: 1rem 0 1rem;
color: #444;
font-weight: bold;
}
.c-text-passage h3 {
margin: 1rem 0 1rem;
}
.c-text-passage h4 {
margin: 1rem 0 1rem;
}
.c-text-passage h5 {
margin: 1rem 0 1rem;
}
.c-text-passage h6 {
margin: 1rem 0 1rem;
}
.c-text-passage ul {
list-style: disc;
margin-left: 1rem;
margin-bottom: 1rem;
}
.c-text-passage ul li:last-child {
margin-bottom: 0;
}
.c-text-passage ol {
list-style: decimal;
margin-left: 1rem;
margin-bottom: 1rem;
}
.c-text-passage ol li:last-child {
margin-bottom: 0;
}
.c-text-passage li {
margin-bottom: 0.5rem;
line-height: 1.6;
}
/*------------------------------------*\
#FIELDS
\*------------------------------------*/
/**
* 1) Consists of a label, form control, and an optional note about the field.
*/
.c-field {
margin-bottom: 2rem;
}
/**
* Field label
*/
.c-field__label {
margin-bottom: 0.5rem;
font-size: 1rem;
font-weight: bold;
}
/**
* Field body
*/
.c-field__body {
position: relative;
}
/**
* Field note
*/
.c-field__note {
display: inline-block;
font-size: 0.75rem;
color: #808080;
}
/*------------------------------------*\
#SEARCH FORM
\*------------------------------------*/
/**
* 1) Search form that contains a text input and button
*/
/**
* Page header title
*/
.c-search-form__body {
display: flex;
}
.c-stacked-block-list {
max-width: 80rem;
margin-bottom: 2rem;
}
/*------------------------------------*\
#TOTAL CONTAINER
\*------------------------------------*/
/**
* 1)
*/
.c-total-container {
margin-top: 1rem;
}
@media all and (min-width: 35em) {
.c-total-container {
text-align: right;
}
}
.c-total {
display: flex;
align-items: center;
}
@media all and (min-width: 35em) {
.c-total {
justify-content: flex-end;
}
}
.c-total--no-break {
justify-content: flex-start;
}
@media all and (min-width: 60em) {
.c-total--no-break {
justify-content: flex-end;
}
}
.c-total__label {
font-weight: bold;
margin-right: 0.5rem;
padding-bottom: 0;
}
.c-total--no-break .c-total__label {
width: 5rem;
}
@media all and (min-width: 60em) {
.c-total--no-break .c-total__label {
width: auto;
}
}
.c-total__span {
font-family: "Abel", serif;
font-size: 1.2rem;
color: #114689;
}
.c-total--no-break .c-total__span {
margin-left: 2rem;
}
@media all and (min-width: 60em) {
.c-total--no-break .c-total__span {
margin-left: 0;
}
}
/*------------------------------------*\
#UTILITIES
\*------------------------------------*/
/*------------------------------------*\
#VISIBILITY CLASSES
\*------------------------------------*/
/**
* Is Hidden
* 1) Completely remove from the flow and screen readers.
*/
.u-is-hidden {
display: none ;
visibility: hidden ;
}
/**
* Is Visibly Hidden
* 1) Completely remove from the flow but leave available to screen readers.
*/
.u-is-vishidden {
position: absolute ;
overflow: hidden;
width: 1px;
height: 1px;
padding: 0;
border: 0;
clip: rect(1px, 1px, 1px, 1px);
}
/*------------------------------------*\
#SPACING
\*------------------------------------*/
/**
* Margin bottom none
* 1) Force margin bottom of 0
*/
.u-margin-bottom-none {
margin-bottom: 0 ;
}
/**
* Margin bottom small
* 1) Force margin bottom of $spacing-small variable
*/
.u-margin-bottom-small {
margin-bottom: 1rem ;
}
/**
* Margin bottom
* 1) Force margin bottom of $spacing variable
*/
.u-margin-bottom {
margin-bottom: 1rem ;
}
/**
* Margin bottom large
* 1) Force margin bottom of $spacing-large variable
*/
.u-margin-bottom-large {
margin-bottom: 2rem ;
}
.u-margin-bottom-large-to-xxl {
margin-bottom: 2rem ;
}
@media all and (min-width: 60em) {
.u-margin-bottom-large-to-xxl {
margin-bottom: 8rem ;
}
}
/**
* Margin top none
* 1) Force margin top of 0
*/
.u-margin-top-none {
margin-top: 0 ;
}
/**
* Margin top small
* 1) Force margin top of $spacing-small variable
*/
.u-margin-top-small {
margin-top: 1rem ;
}
/**
* Margin top
* 1) Force margin top of $spacing variable
*/
.u-margin-top {
margin-top: 1rem ;
}
/**
* Margin top large
* 1) Force margin top of $spacing-large variable
*/
.u-margin-top-large {
margin-top: 2rem ;
}
.u-margin-top-booking {
margin-top: 28rem ;
}
/**
* Margin right none
* 1) Force margin right of 0
*/
.u-margin-right-none {
margin-right: 0 ;
}
/**
* Margin right small
* 1) Force margin right of $spacing-small variable
*/
.u-margin-right-small {
margin-right: 1rem ;
}
/**
* Margin right
* 1) Force margin right of $spacing variable
*/
.u-margin-right {
margin-right: 1rem ;
}
/**
* Margin right large
* 1) Force margin right of $spacing-large variable
*/
.u-margin-right-large {
margin-right: 2rem ;
}
/**
* Margin left none
* 1) Force margin left of 0
*/
.u-margin-left-none {
margin-left: 0 ;
}
/**
* Margin left small
* 1) Force margin left of $spacing-small variable
*/
.u-margin-left-small {
margin-left: 1rem ;
}
/**
* Margin left
* 1) Force margin left of $spacing variable
*/
.u-margin-left {
margin-left: 1rem ;
}
/**
* Margin left large
* 1) Force margin left of $spacing-large variable
*/
.u-margin-left-large {
margin-left: 2rem ;
}
/**
* Center display block contents
*/
.u-margin-center {
margin: 0 auto ;
}
/**
* Padding none
*/
.u-padding-none {
padding: 0 ;
}
/**
* Padding small
*/
.u-padding-small {
padding: 1rem ;
}
/**
* Padding
*/
.u-padding {
padding: 1rem ;
}
/**
* Padding large
*/
.u-padding-large {
padding: 2rem ;
}
/**
* Padding top none
*/
.u-padding-top-none {
padding-top: 0 ;
}
/**
* Padding top small
*/
.u-padding-top-small {
padding-top: 1rem ;
}
/**
* Padding top
*/
.u-padding-top {
padding-top: 1rem ;
}
/**
* Padding top large
*/
.u-padding-top-large {
padding-top: 2rem ;
}
/**
* Padding bottom none
*/
.u-padding-bottom-none {
padding-bottom: 0 ;
}
/**
* Padding bottom small
*/
.u-padding-bottom-small {
padding-bottom: 1rem ;
}
/**
* Padding bottom
*/
.u-padding-bottom {
padding-bottom: 1rem ;
}
/**
* Padding bottom large
*/
.u-padding-bottom-large {
padding-bottom: 2rem ;
}
/**
* Padding right none
*/
.u-padding-right-none {
padding-right: 0 ;
}
/**
* Padding right small
*/
.u-padding-right-small {
padding-right: 1rem ;
}
/**
* Padding right
*/
.u-padding-right {
padding-right: 1rem ;
}
/**
* Padding right large
*/
.u-padding-right-large {
padding-right: 2rem ;
}
/**
* Padding left none
*/
.u-padding-left-none {
padding-left: 0 ;
}
/**
* Padding left small
*/
.u-padding-left-small {
padding-left: 1rem ;
}
/**
* Padding left
*/
.u-padding-left {
padding-left: 1rem ;
}
/**
* Padding left large
*/
.u-padding-left-large {
padding-left: 2rem ;
}
/*# sourceMappingURL=style.css.map */