UNPKG

patternlab-starterkit-shopify

Version:
2,304 lines (2,044 loc) 196 kB
/*------------------------------------*\ #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