patternlab-starterkit-shopify
Version:
Pattern-lab starterkit for building Shopify sites
2,304 lines (2,044 loc) • 196 kB
CSS
/*------------------------------------*\
#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
\*------------------------------------*/
/*------------------------------------*\
#BREAKPOINTS
\*------------------------------------*/
/**
* In this file, we take the literal colors from our palette 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;
}
/*------------------------------------*\
#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 {
-webkit-font-smoothing: antialiased;
background-color: #fff;
color: #43494f;
font-family: "Montserrat", "HelveticaNeue", "Helvetica", "Arial", sans-serif;
min-height: 100vh;
/* 1 */
-webkit-text-size-adjust: 100%;
/* 1 */
font-size: 1rem;
line-height: 1.6;
line-height: 1.6;
-webkit-text-size-adjust: 100%;
/* 1 */
font-family: "Montserrat", "HelveticaNeue", "Helvetica", "Arial", sans-serif;
-webkit-text-size-adjust: 100%;
/* 1 */
font-size: 1rem;
line-height: 1.6;
line-height: 1.6;
-webkit-text-size-adjust: 100%;
/* 1 */
background-color: #fff;
color: #43494f;
-webkit-font-smoothing: antialiased;
}
/*------------------------------------*\
#LINKS
\*------------------------------------*/
/**
* Link base styles
*/
a {
color: #666;
text-decoration: none;
outline: 0;
-webkit-transition: color 0.15s ease-out;
transition: color 0.15s ease-out;
}
a:hover, a:focus {
color: #2AA1AF;
}
a:active {
color: #43494f;
}
/*------------------------------------*\
#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: "Crimson Text", serif;
}
/**
* 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: #cfd2d6;
}
::-moz-placeholder {
color: #cfd2d6;
}
:-ms-input-placeholder {
color: #cfd2d6;
}
/**
* 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: #43494f;
}
/**
* 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 #666;
background: #fff;
}
input:focus, textarea:focus {
border-color: #43494f;
}
input:disabled, textarea:disabled {
border-color: #eee;
background: #eee;
color: #cfd2d6;
}
/**
* 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: #666;
}
/**
* 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 #666;
border-radius: 0;
padding: 0.5rem;
height: 2rem;
background: #fff;
color: #43494f;
}
select:focus {
border-color: #43494f;
}
/*------------------------------------*\
#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;
-webkit-box-flex: 1;
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: 2px solid #2AA1AF;
color: #666;
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: #43494f;
background: #ddd;
/* Gecko Browsers */
}
::selection {
color: #43494f;
background: #ddd;
/* WebKit/Blink Browsers */
}
/**
* Code base styles
*/
code {
display: inline-block;
background: #f9f9f9;
border: 1px solid #ddd;
padding: .2rem .5rem;
line-height: 1.2;
font-size: .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 !important;
}
/*------------------------------------*\
#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: -webkit-box;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
flex-direction: column;
}
@media all and (min-width: 60em) {
.l-page-layout--two-column {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
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 {
-webkit-box-ordinal-group: 2;
order: 1;
margin-bottom: 0;
}
}
/*------------------------------------*\
#GRID
\*------------------------------------*/
/**
* Grid Container
*/
.l-grid {
display: -webkit-box;
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: -webkit-box;
display: flex;
}
/*------------------------------------*\
#COMPONENTS
\*------------------------------------*/
/*------------------------------------*\
#BUTTONS
\*------------------------------------*/
/**
*
* 1) Button or link that has functionality to it
*/
.c-btn {
display: inline-block;
border: 1px solid #43494f;
background: #10455B;
color: #fff;
line-height: 1;
padding: 1rem 2rem;
border: 0;
text-transform: uppercase;
text-align: center;
-webkit-transition: all 0.15s ease-out;
transition: all 0.15s ease-out;
}
.c-btn:hover, .c-btn:focus {
color: #fff;
background: #082430;
}
.c-btn--bare {
background: none;
color: #10455B;
border: 1px solid transparent;
}
.c-btn--bare:hover, .c-btn--bare:focus {
background: none;
color: #10455B;
border-color: #10455B;
}
/*
* 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: -webkit-box;
display: flex;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
}
/*
* Button icon
*/
.c-btn__icon {
width: 1rem;
height: 1rem;
fill: #fff;
-webkit-transition: fill 0.15s ease-out;
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: -webkit-box;
display: flex;
}
@media all and (min-width: 60em) {
.c-definition-list__item {
-webkit-box-pack: justify;
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%;
-o-object-fit: cover;
object-fit: cover;
max-height: 70vh;
overflow: hidden;
}
.c-hero__body {
background: #2AA1AF;
padding: 1rem;
}
@media all and (min-width: 35em) {
.c-hero__body {
padding: 0;
display: -webkit-box;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
flex-direction: column;
-webkit-box-pack: center;
justify-content: center;
-webkit-box-align: center;
align-items: center;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
height: 100%;
width: 100%;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0, 0, 0, 0)), color-stop(20%, rgba(0, 0, 0, 0)), to(#000));
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: #2AA1AF;
color: #fff;
-webkit-transition: all 0.15s ease-out;
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;
-webkit-transition: all 0.15s ease-out;
transition: all 0.15s ease-out;
}
.c-tout:hover .c-tout__headline, .c-tout:focus .c-tout__headline {
padding-bottom: 2rem;
background: #10455B;
}
/*------------------------------------*\
#SECTION HEADER
\*------------------------------------*/
/**
* 1) A group of text with a title that headlines a section
*/
.c-section__header {
display: -webkit-box;
display: flex;
-webkit-box-align: center;
align-items: center;
position: relative;
margin-bottom: 1rem;
}
.c-section__header:after {
content: '';
display: block;
-webkit-box-flex: 1;
flex: 1;
height: 2px;
margin-left: 1rem;
background: #2AA1AF;
}
.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: -webkit-box;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
flex-direction: column;
position: relative;
max-width: 600px;
/* 2 */
-webkit-transition: -webkit-transform 0.15s ease-out;
transition: -webkit-transform 0.15s ease-out;
transition: transform 0.15s ease-out;
transition: transform 0.15s ease-out, -webkit-transform 0.15s ease-out;
}
.c-stacked-block:hover, .c-stacked-block:focus {
-webkit-transform: scale(1.03);
transform: scale(1.03);
}
.c-stacked-block__body {
-webkit-box-flex: 1;
flex: 1;
}
.c-stacked-block__title {
text-transform: uppercase;
letter-spacing: 1px;
color: #10455B;
-webkit-transition: color 0.15s ease-out;
transition: color 0.15s ease-out;
}
.c-stacked-block:hover .c-stacked-block__title, .c-stacked-block:focus .c-stacked-block__title {
color: #2AA1AF;
}
.c-stacked-block__excerpt {
margin-bottom: 0;
color: #666;
}
.c-stacked-block__meta {
color: #10455B;
font-size: 1.2rem;
font-family: "Crimson Text", serif;
margin-bottom: 0;
-webkit-transition: color 0.15s ease-out;
transition: color 0.15s ease-out;
}
.c-stacked-block:hover .c-stacked-block__meta, .c-stacked-block:focus .c-stacked-block__meta {
color: #2AA1AF;
}
.c-stacked-block__badge {
display: block;
position: absolute;
top: 0;
right: 0;
padding: 0.5rem;
font-family: "Crimson Text", serif;
text-transform: uppercase;
color: #fff;
background: #2AA1AF;
}
.c-stacked-block__optional {
margin-left: 0.5rem;
color: #cfd2d6;
font-family: "Crimson Text", 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: -webkit-box;
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 {
-webkit-box-flex: 1;
flex: 1;
}
@media all and (min-width: 35em) {
.c-stripe__right-container {
display: -webkit-box;
display: flex;
-webkit-box-align: center;
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;
-webkit-box-flex: 1;
flex: 1;
}
}
.c-stripe__meta-label {
font-weight: bold;
margin-bottom: 0.75rem;
}
.c-stripe__meta-span {
font-family: "Crimson Text", serif;
color: #10455B;
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: #082430;
}
@media all and (min-width: 47em) {
.c-footer__inner {
display: -webkit-box;
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: "Crimson Text", serif;
font-size: 0.85rem;
}
.c-footer__credit a, .c-footer__copyright a {
color: #2AA1AF;
}
.c-footer__credit a:hover, .c-footer__credit a:focus, .c-footer__copyright a:hover, .c-footer__copyright a:focus {
color: #cfd2d6;
}
/*------------------------------------*\
#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: -webkit-box;
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: "Crimson Text", 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: -webkit-box;
display: flex;
-webkit-box-align: center;
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: #10455B;
}
.c-logo--light .c-logo__left {
color: #fff;
}
.c-logo__right {
color: #2AA1AF;
}
/*------------------------------------*\
#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: -webkit-box;
display: flex;
flex-wrap: wrap;
-webkit-box-pack: center;
justify-content: center;
overflow: hidden;
margin-bottom: 1rem;
font-family: "Crimson Text", 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: -webkit-box;
display: flex;
-webkit-box-align: center;
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: "Crimson Text", serif;
font-size: 1.2rem;
line-height: 1;
text-transform: uppercase;
-webkit-transition: background 0.15s ease-out;
transition: background 0.15s ease-out;
}
.c-primary-nav__link:hover, .c-primary-nav__link:focus {
color: #2AA1AF;
}
.c-primary-nav__icon.c-icon {
fill: #082430;
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: -webkit-gradient(linear, right top, left top, color-stop(0, rgba(0, 0, 0, 0)), color-stop(40%, rgba(0, 0, 0, 0)), to(#000));
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: -webkit-gradient(linear, left top, right top, color-stop(0, rgba(0, 0, 0, 0)), color-stop(20%, rgba(0, 0, 0, 0)), to(#000));
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;
-webkit-transition: opacity 0.5s ease-out, -webkit-transform 0.5s ease-out;
transition: opacity 0.5s ease-out, -webkit-transform 0.5s ease-out;
transition: opacity 0.5s ease-out, transform 0.5s ease-out;
transition: opacity 0.5s ease-out, transform 0.5s ease-out, -webkit-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;
-webkit-transform: translateY(70px);
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: #2AA1AF;
}
.c-promo-block__heading {
display: inline;
color: inherit;
border-bottom: 2px solid #2AA1AF;
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: -webkit-box;
display: flex;
flex-wrap: wrap;
-webkit-box-pack: center;
justify-content: center;
flex-wrap: wrap;
font-size: 0.85rem;
margin-right: 2rem;
text-align: center;
}
.c-progress-tracker__item {
margin-right: 2rem;
text-align: center;
font-size: 0.85rem;
width: 5rem;
}
.c-progress-tracker__item:last-child .c-progress-tracker__number:before {
display: none;
background-color: #fff;
border: 1px solid #10455B;
border-radius: 50%;
color: #10455B;
margin-bottom: .5rem;
padding: .125rem;
position: relative;
}
.c-progress-tracker__number {
padding: .125rem;
margin-bottom: .5rem;
color: #10455B;
border: 1px solid #10455B;
background-color: #fff;
position: relative;
background-color: #10455B;
color: #fff;
}
@media all and (min-width: 28em) {
.c-progress-tracker__number {
padding: .5rem;
border-color: #10455B;
color: #082430;
}
}
.is-complete .c-progress-tracker__number {
background-color: #ddd;
content: " ";
display: block;
position: absolute;
right: -4rem;
width: 4rem;
}
.is-current .is-complete .c-progress-tracker__number {
color: #fff;
background-color: #10455B;
font-weight: bold;
}
.is-disabled .is-complete .c-progress-tracker__number {
color: #082430;
border-color: #10455B;
}
.is-complete .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;
}
@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 #666;
color: #cfd2d6;
font-size: 1rem;
}
.c-text-passage h1 {
margin-bottom: 1rem;
}
.c-text-passage h2 {
margin: 1rem 0 1rem;
color: #666;
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: #cfd2d6;
}
/*------------------------------------*\
#SEARCH FORM
\*------------------------------------*/
/**
* 1) Search form that contains a text input and button
*/
/**
* Page header title
*/
.c-search-form__body {
display: -webkit-box;
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: -webkit-box;
display: flex;
-webkit-box-align: center;
align-items: center;
}
@media all and (min-width: 35em) {
.c-total {
-webkit-box-pack: end;
justify-content: flex-end;
}
}
.c-total--no-break {
-webkit-box-pack: start;
justify-content: flex-start;
}
@media all and (min-width: 60em) {
.c-total--no-break {
-webkit-box-pack: end;
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: "Crimson Text", serif;
font-size: 1.2rem;
color: #10455B;
}
.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 !important;
visibility: hidden !important;
}
/**
* Is Visibly Hidden
* 1) Completely remove from the flow but leave available to screen readers.
*/
.u-is-vishidden {
position: absolute !important;
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 !important;
}
/**
* Margin bottom small
* 1) Force margin bottom of $spacing-small variable
*/
.u-margin-bottom-small {
margin-bottom: 1rem !important;
}
/**
* Margin bottom
* 1) Force margin bottom of $spacing variable
*/
.u-margin-bottom {
margin-bottom: 1rem !important;
}
/**
* Margin bottom large
* 1) Force margin bottom of $spacing-large variable
*/
.u-margin-bottom-large {
margin-bottom: 2rem !important;
}
.u-margin-bottom-large-to-xxl {
margin-bottom: 2rem !important;
}
@media all and (min-width: 60em) {
.u-margin-bottom-large-to-xxl {
margin-bottom: 8rem !important;
}
}
/**
* Margin top none
* 1) Force margin top of 0
*/
.u-margin-top-none {
margin-top: 0 !important;
}
/**
* Margin top small
* 1) Force margin top of $spacing-small variable
*/
.u-margin-top-small {
margin-top: 1rem !important;
}
/**
* Margin top
* 1) Force margin top of $spacing variable
*/
.u-margin-top {
margin-top: 1rem !important;
}
/**
* Margin top large
* 1) Force margin top of $spacing-large variable
*/
.u-margin-top-large {
margin-top: 2rem !important;
}
.u-margin-top-booking {
margin-top: 28rem !important;
}
/**
* Margin right none
* 1) Force margin right of 0
*/
.u-margin-right-none {
margin-right: 0 !important;
}
/**
* Margin right small
* 1) Force margin right of $spacing-small variable
*/
.u-margin-right-small {
margin-right: 1rem !important;
}
/**
* Margin right
* 1) Force margin right of $spacing variable
*/
.u-margin-right {
margin-right: 1rem !important;
}
/**
* Margin right large
* 1) Force margin right of $spacing-large variable
*/
.u-margin-right-large {
margin-right: 2rem !important;
}
/**
* Margin left none
* 1) Force margin left of 0
*/
.u-margin-left-none {
margin-left: 0 !important;
}
/**
* Margin left small
* 1) Force margin left of $spacing-small variable
*/
.u-margin-left-small {
margin-left: 1rem !important;
}
/**
* Margin left
* 1) Force margin left of $spacing variable
*/
.u-margin-left {
margin-left: 1rem !important;
}
/**
* Margin left large
* 1) Force margin left of $spacing-large variable
*/
.u-margin-left-large {
margin-left: 2rem !important;
}
/**
* Center display block contents
*/
.u-margin-center {
margin: 0 auto !important;
}
/**
* Padding none
*/
.u-padding-none {
padding: 0 !important;
}
/**
* Padding small
*/
.u-padding-small {
padding: 1rem !important;
}
/**
* Padding
*/
.u-padding {
padding: 1rem !important;
}
/**
* Padding large
*/
.u-padding-large {
padding: 2rem !important;
}
/**
* Padding top none
*/
.u-padding-top-none {
padding-top: 0 !important;
}
/**
* Padding top small
*/
.u-padding-top-small {
padding-top: 1rem !important;
}
/**
* Padding top
*/
.u-padding-top {
padding-top: 1rem !important;
}
/**
* Padding top large
*/
.u-padding-top-large {
padding-top: 2rem !important;
}
/**
* Padding bottom none
*/
.u-padding-bottom-none {
padding-bottom: 0 !important;
}
/**
* Padding bottom small
*/
.u-padding-bottom-small {
padding-bottom: 1rem !important;
}
/**
* Padding bottom
*/
.u-padding-bottom {
padding-bottom: 1rem !important;
}
/**
* Padding bottom large
*/
.u-padding-bottom-large {
padding-bottom: 2rem !important;
}
/**
* Padding right none
*/
.u-padding-right-none {
padding-right: 0 !important;
}
/**
* Padding right small
*/
.u-padding-right-small {
padding-right: 1rem !important;
}
/**
* Padding right
*/
.u-padding-right {
padding-right: 1rem !important;
}
/**
* Padding right large
*/
.u-padding-right-large {
padding-right: 2rem !important;
}
/**
* Padding left none
*/
.u-padding-left-none {
padding-left: 0 !important;
}
/**
* Padding left small
*/
.u-padding-left-small {
padding-left: 1rem !important;
}
/**
* Padding left
*/
.u-padding-left {
padding-left: 1rem !important;
}
/**
* Padding left large
*/
.u-padding-left-large {
padding-left: 2rem !important;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJzdHlsZS5jc3MiLCJzY3NzL2Fic3RyYWN0cy9fdmFyaWFibGVzLnNjc3MiLCJzY3NzL2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJzY3NzL2Fic3RyYWN0cy9fY29sb3JzLnNjc3MiLCJzY3NzL2Fic3RyYWN0cy9fdHlwb2dyYXBoeS5zY3NzIiwic2Nzcy9iYXNlL19yZXNldC5zY3NzIiwic2Nzcy9iYXNlL19ib2R5LnNjc3MiLCJzY3NzL2Jhc2UvX2xpbmtzLnNjc3MiLCJzY3NzL2Jhc2UvX2xpc3RzLnNjc3MiLCJzY3NzL2Jhc2UvX2hlYWRpbmdzLnNjc3MiLCJzY3NzL2Jhc2UvX2Zvcm1zLnNjc3MiLCJzY3NzL2Jhc2UvX2J1dHRvbnMuc2NzcyIsInNjc3MvYmFzZS9fbWFpbi5zY3NzIiwic2Nzcy9iYXNlL19tZWRpYS5zY3NzIiwic2Nzcy9iYXNlL190ZXh0LnNjc3MiLCJzY3NzL2Jhc2UvX3RhYmxlLnNjc3MiLCJzY3NzL2xheW91dC9fbGF5b3V0LnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX2J1dHRvbnMuc2NzcyIsInNjc3MvY29tcG9uZW50cy9fZGVmaW5pdGlvbi1saXN0LnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX2RlZmluaXRpb24tbGlzdC1saXN0LnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX2hlcm8uc2NzcyIsInNjc3MvY29tcG9uZW50cy9fdG91dC5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19zZWN0aW9uLnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX3N0YWNrZWQtYmxvY2suc2NzcyIsInNjc3MvY29tcG9uZW50cy9fc3RyaXBlLnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19mb290ZXItbmF2LnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19sb2dvLnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX2ljb24uc2NzcyIsInNjc3MvY29tcG9uZW50cy9faW5wdXQuc2NzcyIsInNjc3MvY29tcG9uZW50cy9fcGFnZS1oZWFkZXIuc2NzcyIsInNjc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19wcmltYXJ5LW5hdi5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19wcm9tby1ibG9jay5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy10cmFja2VyLnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX3RleHQtcGFzc2FnZS5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19maWVsZC5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19zZWFyY2gtZm9ybS5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19zdGFja2VkLWJsb2NrLWxpc3Quc2NzcyIsInNjc3MvY29tcG9uZW50cy9fdG90YWwuc2NzcyIsInNjc3MvdXRpbGl0aWVzL192aXNpYmlsaXR5LnNjc3MiLCJzY3NzL3V0aWxpdGllcy9fc3BhY2luZy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFDOzt1Q0NFc0M7QURDdkM7Ozs7OztFQ01FO0FERUY7O3VDQ0N1QztBQ1p2Qzs7dUNEZXVDO0FDWHZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFRHlDRTtBQ1ZEOzt3Q0RhdUM7QUNUeEM7OztFRGFFO0FDSkY7OztFRFFFO0FDT0Y7Ozs7RURGRTtBQ29CRjs7dUNEakJ1QztBQ3FCdkM7O0VEbEJFO0FDeUJGOztFRHRCRTtBQ2lDRjs7RUQ5QkU7QUM0Q0Y7O3VDRHpDdUM7QUM2Q3ZDOztFRDFDRTtBQ3FERjs7dUNEbER1QztBQ3NEdkM7OztFRGxERTtBQytERjs7dUNENUR1QztBQ2dFdkM7O0VEN0RFO0FDa0VGOztFRC9ERTtBQ3dFRjs7dUNEckV1QztBQ3lFdkM7O0VEdEVFO0FDNEVGOztFRHpFRTtBQ2tGRjs7dUNEL0V1QztBQ21GdkM7OztFRC9FRTtBRS9HRjs7dUNGa0h1QztBRTlHdkM7OztFRmtIRTtBRXJHRjs7RUZ3R0U7QUVoR0Y7O0VGbUdFO0FFdEZGOztFRnlGRTtBRWhGRjs7RUZtRkU7QUUxRUY7O0VGNkVFO0FFcEVGOztFRnVFRTtBR3hJRjs7dUNIMkl1QztBR3ZJdkM7OztFSDJJRTtBR2xJRjs7dUNIcUl1QztBR2pJdkM7O0VIb0lFO0FHOUhGOztFSGlJRTtBR3ZIRjs7dUNIMEh1QztBRzdHdkM7O3VDSGdIdUM7QUczRnZDOzt1Q0g4RnVDO0FJakt2Qzs7dUNKb0t1QztBSWhLdkM7OztFSm9LRTtBRGpKRjs7dUNDb0p1QztBSzNLdkM7O3VDTDhLdUM7QUsxS3ZDOztFTDZLRTtBSzFLRjtFQUNDLHNCQUFzQjtBTDRLdkI7O0FLektBOztFTDZLRTtBSzFLRjtFQUNDLFNBQVM7RUFDVCxVQUFVO0FMNEtYOztBS3pLQTs7RUw2S0U7QUsxS0Y7RUFDQyxjQUFjO0FMNEtmOztBTW5NQTs7dUNOdU11QztBTW5NdkM7Ozs7RU53TUU7QU1uTUY7RUFDQyxpQkFBaUI7RUFBRSxNQUFBO0FOc01wQjs7QU1uTUE7Ozs7RU55TUU7QU1wTUY7RUFDQyxtQ0FBbUM7RUFDbkMsc0JMZ0NtQztFSy9CbkMsY0x1Q3NDO0VLdEN0Qyw0RUxrRThGO0VLakU5RixpQkFBaUI7RUFBRSxNQUFBO0VKZGhCLDhCQUE4QjtFQUFFLE1BQUE7RUFDaEMsZUR1RmdDO0VDdEZoQyxnQkFBZ0I7RUFFaEIsZ0JBQWdCO0VBQ2hCLDhCQUE4QjtFQUFFLE1BQUE7RUlZbkMsNEVMOEQ4RjtFQy9FM0YsOEJBQThCO0VBQUUsTUFBQTtFQUNoQyxlRHVGZ0M7RUN0RmhDLGdCQUFnQjtFQUVoQixnQkFBZ0I7RUFDaEIsOEJBQThCO0VBQUUsTUFBQTtFSWNuQyxzQkx3Qm1DO0VLdkJuQyxjTCtCc0M7RUs5QnRDLG1DQUFtQztBTmtOcEM7O0FPaFBBOzt1Q1BvUHVDO0FPaFB2Qzs7RVBtUEU7QU9oUEY7RUFDQyxXTm1EbUM7RU1sRG5DLHFCQUFxQjtFQUNyQixVQUFVO0VBQ1Ysd0NOeUt1QztFTXpLdkMsZ0NOeUt1QztBRHlFeEM7O0FPdFBBO0VBT0UsY04rQnFDO0FEb052Qzs7QU8xUEE7RUFXRSxjTjBDcUM7QUR5TXZDOztBUXJRQTs7dUNSeVF1QztBUXJRdkM7O0VSd1FFO0FRcFFEOztHUnVRRTtBUXBRSDtFQUNDLGdCQUFnQjtBUnNRakI7O0FTbFJBOzt1Q1RzUnVDO0FTbFJ2QztFQUNDLGtDUm9Gb0Q7QURnTXJEOztBU2pSQTs7RVRxUkU7QVNsUkY7RVBrQkksZUR1RWdDO0VDdEVoQyxtQkFBbUI7RUFDbkIsZ0JBQWdCO0FGbVFwQjs7QUVqUUk7RU90Qko7SVB1QlEsZURtRTRCO0VEa01sQztBQUNGOztBU3pSQTs7RVQ2UkU7QVMxUkY7RVAwQ0ksaUJEc0NrQztFQ3JDbEMsbUJBQW1CO0VBQ3RCLGdCQUFnQjtBRm1QakI7O0FTM1JBOztFVCtSRTtBUzVSRjtFUG1DSSxpQkRzQ2tDO0VDckNsQyxtQkFBbUI7RUFDdEIsZ0JBQWdCO0FGNFBqQjs7QVM3UkE7O0VUaVNFO0FTOVJGO0VQcUNJLGVENEJnQztFQzNCaEMsbUJBQW1CO0VBQ3RCLGdCQUFnQjtBRjRQakI7O0FVblVBOzt1Q1Z1VXVDO0FVblV2Qzs7RVZzVUU7QVVsVUY7O0VWcVVFO0FVbFVGO0VBQ0csY1Q2Q29DO0FEdVJ2Qzs7QVVqVUE7RUFDRyxjVHlDb0M7QUQyUnZDOztBVWpVQTtFQUNHLGNUcUNvQztBRCtSdkM7O0FValVBOztFVnFVRTtBVWxVRjtFQUNDLFNBQVM7RUFDVCxVQUFVO0VBQ1YsU0FBUztBVm9VVjs7QVVqVUE7O0VWcVVFO0FVbFVGO0VBQ0ksc0JBQXNCO0FWb1UxQjs7QVVqVUE7O0VWcVVFO0FVbFVGO0VBQ0MsY0FBYztFQUNYLHVCQUF1QjtFQUN2QixjVGVtQztBRHFUdkM7O0FValVBOztFVnFVRTtBVWxVRjtFQUNJLG9CQUFvQjtFQUNwQixlVDRDZ0M7RVMzQ2hDLFNBQVM7QVZvVWI7O0FValVBOztFVnFVRTtBVWxVRjtFQUNDLFlBQVk7QVZvVWI7O0FValVBOztFVnFVRTtBVWxVRjtFQUNJLFdBQVc7RUFDWCxlQUFlO0VBQ2Ysc0JUWGdDO0VTWWhDLGdCVG5CZ0M7QUR1VnBDOztBVXhVQTtFQU9FLHFCVGRxQztBRG1WdkM7O0FVNVVBO0VBV1Esa0JUeEI0QjtFU3lCNUIsZ0JUekI0QjtFUzBCNUIsY1R2QitCO0FENFZ2Qzs7QVVqVUE7O0VWcVVFO0FVbFVGO0VBQ0Msd0JBQXdCO0FWb1V6Qjs7QVVqVUE7O0VWcVVFO0FVbFVGOztFQUVJLFdBQVc7RUFDWCxvQkFBb0I7RUFDcEIsa0JUdkNnQztBRDJXcEM7O0FValVBOztFVnFVRTtBVWxVRjtFQUNJLHdCQUF3QjtFQUN4QixnQkFBZ0I7QVZvVXBCOztBVWpVQTs7O0VWc1VFO0FVbFVGO0VBQ0ksY0FBYztFQUNqQixlVGxCbUM7RVNtQm5DLFdBQVc7RUFDUixzQlQxRGdDO0VTMkRoQyxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLFlBQVk7RUFDWixnQlRyRWdDO0VTc0VoQyxjVDlEbUM7QURrWXZDOztBVTdVQTtFQVlFLHFCVGpFcUM7QURzWXZDOztBV2xjQTs7dUNYc2N1QztBV2xjdkM7OztFWHNjRTtBV2xjRjtFQUNDLGVBQWU7QVhvY2hCOztBWTdjQTs7dUNaaWR1QztBWTdjdkM7O0VaZ2RFO0FBQ0Y7RVk3Y0MsY0FBYztFQUNkLG1CQUFjO0VBQWQsY0FBYztBWitjZjs7QWF4ZEE7O3VDYjRkdUM7QWF4ZHZDOzs7RWI0ZEU7QWF4ZEY7RUFDQyxlQUFlO0VBQ2YsWUFBWTtBYjBkYjs7QWNwZUE7O3VDZHdldUM7QWNwZXZDOztFZHVlRTtBY3BlRjtFQUNDLG1CYnFJbUM7QURpV3BDOztBY25lQTs7RWR1ZUU7QWNwZUY7RUFDSSxrQkFBaUI7RUFDakIsOEJiNkJtQztFYTVCbkMsV2IwQ2dDO0VhekNuQyxrQkFBa0I7RUFDbEIsbUJiMEhtQztBRDRXcEM7O0FjbmVBOztFZHVlRTtBY3BlRjtFQUNDLFNBQVM7RUFDTixXQUFXO0VBQ1gsZ0JiMkJrQztFYTFCbEMsY0FBYztBZHNlbEI7O0FjbmVBOztFZHVlRTtBY3BlRjtFQUNDLGNid0JzQztFYXZCdEMsZ0Jia0JxQztFYWxCQyxtQkFBQTtBZHVldkM7O0FjcGVBO0VBQ0MsY2JtQnNDO0VhbEJ0QyxnQmJhcUM7RWFiQywwQkFBQTtBZHdldkM7O0FjcmVBOztFZHllRTtBY3RlRjtFQUNDLHFCQUFxQjtFQUNyQixtQmJHc0M7RWFGdEMsc0JiSXFDO0VhSHJDLG9CQUFvQjtFQUNqQixnQkFBZ0I7RUFDaEIsaUJBQWlCO0Fkd2VyQjs7QWNyZUE7O0VkeWVFO0FjdGVGO0VBQ0MsbUJiUnNDO0VhU3RDLHNCYlBxQztFYVFyQyxlYmtDbUM7RWFqQ25DLGFBQWE7RUFDVixnQkFBZ0I7RUFFbkI7O0dkd2VFO0FBQ0g7O0FjaGZBO0VBV0UsU0FBUztBZHllWDs7QWNyZUE7OztFZDBlRTtBY3RlRjs7RUFFSSxpQ0FBZ0M7QWR3ZXBDOztBZXpqQkE7O3VDZjZqQnVDO0FlempCdkM7O0VmNGpCRTtBZXpqQkY7RUFDSSx5QkFBeUI7RUFDekIsaUJBQWlCO0VBQ2pCLFdBQVc7QWYyakJmOztBZXhqQkE7O0VmNGpCRTtBZXpqQkY7RUFDSSxnQkFBZ0I7QWYyakJwQjs7QWV4akJBOztFZjRqQkU7QWV6akJGO0VBQ0ksbUJBQW1CO0FmMmpCdkI7O0FEemlCQTs7dUNDNmlCdUM7QWdCdmxCdkM7O3VDaEIwbEJ1QztBZ0J0bEJ2Qzs7OztFaEIybEJFO0FnQnRsQkY7RUFDQyxnQmZrSG9DO0VlakhwQyxlZmtJbUM7RWVqSW5DLGNBQWM7QWhCd2xCZjs7QWdCdGxCQztFQUxEO0lBTUUsZWZnSWlEO0VEMGRqRDtBQUNGOztBZ0J2bEJBO0VBQ0MsZ0JmeUdvQztBRGlmckM7O0FnQnZsQkE7Ozs7RWhCNmxCRTtBZ0J4bEJGO0VBQ0ksZ0JmaUdpQztBRHlmckM7O0FnQnZsQkE7RUFDQyxtQmZvQnNDO0VlbkJ0QyxrQkFBa0I7QWhCMGxCbkI7O0FnQnZsQkE7O0VoQjJsQkU7QWdCeGxCRjtFQUNDLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7RUFBdEIsc0JBQXNCO0FoQjBsQnZCOztBZ0J4bEJDO0VBSkQ7SUFLRSw4QkFBbUI7SUFBbkIsNkJBQW1CO0lBQW5CLG1CQUFtQjtFaEI0bEJuQjtBQUNGOztBZ0J2bEJFO0VBREQ7SUFFRSxVQUFVO0lBQ1YsbUJmd0ZpQztFRG1nQmxDO0FBQ0Y7O0FnQnZsQkE7O0VoQjJsQkU7QWdCcmxCQTtFQUREO0lBRUUsVUFBVTtJQUNWLGlCQUFpQjtFaEJ3bEJsQjtBQUNGOztBZ0JybEJDO0VBQ0MsbUJBQW1CO0FoQndsQnJCOztBZ0J0bEJFO0VBSEQ7SUFJRSw0QkFBUTtJQUFSLFFBQVE7SUFDUixnQkFBZ0I7RWhCMGxCakI7QUFDRjs7QWdCcGxCQTs7dUNoQndsQnVDO0FnQnBsQnZDOztFaEJ1bEJFO0FnQnBsQkY7RUFDQyxvQkFBYTtFQUFiLGFBQWE7RUFDYixlQUFlO0FoQnNsQmhCOztBZ0JwbEIwQjtFQUoxQjtJQUtFLGFBQWE7SUFDYixjZmdEaUQ7SWUvQ2pELDREQUE2RDtJQUM3RCxTQUFTO0VoQndsQlQ7QUFDRjs7QWdCcmxCQTs7RWh