├── a2os.ico ├── images ├── sponsor.jpg └── qq_group.jpg ├── assets ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── sass │ ├── layout │ │ ├── _wrapper.scss │ │ ├── _footer.scss │ │ ├── _header.scss │ │ ├── _main.scss │ │ ├── _banner.scss │ │ ├── _menu.scss │ │ └── _sidebar.scss │ ├── components │ │ ├── _icon.scss │ │ ├── _icons.scss │ │ ├── _box.scss │ │ ├── _mini-posts.scss │ │ ├── _row.scss │ │ ├── _section.scss │ │ ├── _contact.scss │ │ ├── _list.scss │ │ ├── _actions.scss │ │ ├── _image.scss │ │ ├── _table.scss │ │ ├── _pagination.scss │ │ ├── _button.scss │ │ ├── _features.scss │ │ ├── _posts.scss │ │ └── _form.scss │ ├── libs │ │ ├── _vars.scss │ │ ├── _mixins.scss │ │ ├── _functions.scss │ │ ├── _html-grid.scss │ │ ├── _breakpoints.scss │ │ └── _vendor.scss │ ├── base │ │ ├── _page.scss │ │ ├── _reset.scss │ │ └── _typography.scss │ └── main.scss ├── js │ ├── browser.min.js │ ├── breakpoints.min.js │ ├── main.js │ └── util.js └── css │ ├── font-awesome.min.css │ └── main.css └── index.html /a2os.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NUAA-Open-Source/a2os_index/raw/a2os.ico -------------------------------------------------------------------------------- /images/sponsor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NUAA-Open-Source/a2os_index/raw/images/sponsor.jpg -------------------------------------------------------------------------------- /images/qq_group.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NUAA-Open-Source/a2os_index/raw/images/qq_group.jpg -------------------------------------------------------------------------------- /assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NUAA-Open-Source/a2os_index/raw/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NUAA-Open-Source/a2os_index/raw/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NUAA-Open-Source/a2os_index/raw/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NUAA-Open-Source/a2os_index/raw/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NUAA-Open-Source/a2os_index/raw/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /assets/sass/layout/_wrapper.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Wrapper */ 8 | 9 | #wrapper { 10 | @include vendor('display', 'flex'); 11 | @include vendor('flex-direction', 'row-reverse'); 12 | min-height: 100vh; 13 | } -------------------------------------------------------------------------------- /assets/sass/components/_icon.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Icon */ 8 | 9 | .icon { 10 | @include icon; 11 | border-bottom: none; 12 | position: relative; 13 | 14 | > .label { 15 | display: none; 16 | } 17 | } -------------------------------------------------------------------------------- /assets/sass/layout/_footer.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Footer */ 8 | 9 | #footer { 10 | .copyright { 11 | color: _palette(fg-light); 12 | font-size: 0.9em; 13 | 14 | a { 15 | color: inherit; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /assets/sass/components/_icons.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Icons */ 8 | 9 | ul.icons { 10 | cursor: default; 11 | list-style: none; 12 | padding-left: 0; 13 | 14 | li { 15 | display: inline-block; 16 | padding: 0 1em 0 0; 17 | 18 | &:last-child { 19 | padding-right: 0; 20 | } 21 | 22 | .icon { 23 | color: inherit; 24 | 25 | &:before { 26 | font-size: 1.25em; 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /assets/sass/components/_box.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Box */ 8 | 9 | .box { 10 | border-radius: _size(border-radius); 11 | border: solid 1px _palette(border); 12 | margin-bottom: _size(element-margin); 13 | padding: 1.5em; 14 | 15 | > :last-child, 16 | > :last-child > :last-child, 17 | > :last-child > :last-child > :last-child { 18 | margin-bottom: 0; 19 | } 20 | 21 | &.alt { 22 | border: 0; 23 | border-radius: 0; 24 | padding: 0; 25 | } 26 | } -------------------------------------------------------------------------------- /assets/sass/components/_mini-posts.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Mini Posts */ 8 | 9 | .mini-posts { 10 | article { 11 | border-top: solid 1px _palette(border); 12 | margin-top: _size(element-margin); 13 | padding-top: _size(element-margin); 14 | 15 | .image { 16 | display: block; 17 | margin: 0 0 (_size(element-margin) * 0.75) 0; 18 | 19 | img { 20 | display: block; 21 | width: 100%; 22 | } 23 | } 24 | 25 | &:first-child { 26 | border-top: 0; 27 | margin-top: 0; 28 | padding-top: 0; 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /assets/sass/components/_row.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Row */ 8 | 9 | .row { 10 | @include html-grid(1.5em); 11 | 12 | @include breakpoint('<=xlarge') { 13 | @include html-grid(1.5em, 'xlarge'); 14 | } 15 | 16 | @include breakpoint('<=large') { 17 | @include html-grid(1.5em, 'large'); 18 | } 19 | 20 | @include breakpoint('<=medium') { 21 | @include html-grid(1.5em, 'medium'); 22 | } 23 | 24 | @include breakpoint('<=small') { 25 | @include html-grid(1.5em, 'small'); 26 | } 27 | 28 | @include breakpoint('<=xsmall') { 29 | @include html-grid(1.5em, 'xsmall'); 30 | } 31 | } -------------------------------------------------------------------------------- /assets/sass/components/_section.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Section/Article */ 8 | 9 | section, article { 10 | &.special { 11 | text-align: center; 12 | } 13 | } 14 | 15 | header { 16 | p { 17 | font-family: _font(family-heading); 18 | font-size: 1em; 19 | font-weight: _font(weight-heading-alt); 20 | letter-spacing: _font(kerning-heading); 21 | margin-top: -0.5em; 22 | text-transform: uppercase; 23 | } 24 | 25 | &.major { 26 | > :last-child { 27 | border-bottom: solid 3px _palette(accent); 28 | display: inline-block; 29 | margin: 0 0 _size(element-margin) 0; 30 | padding: 0 0.75em 0.5em 0; 31 | } 32 | } 33 | 34 | &.main { 35 | > :last-child { 36 | margin: 0 0 (_size(element-margin) * 0.5) 0; 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /assets/sass/components/_contact.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Contact */ 8 | 9 | ul.contact { 10 | list-style: none; 11 | padding: 0; 12 | 13 | li { 14 | @include icon; 15 | border-top: solid 1px _palette(border); 16 | margin: 1.5em 0 0 0; 17 | padding: 1.5em 0 0 3em; 18 | position: relative; 19 | 20 | &:before { 21 | color: _palette(accent); 22 | display: inline-block; 23 | font-size: 1.5em; 24 | height: 1.125em; 25 | left: 0; 26 | line-height: 1.125em; 27 | position: absolute; 28 | text-align: center; 29 | top: (1.5em / 1.5); 30 | width: 1.5em; 31 | } 32 | 33 | &:first-child { 34 | border-top: 0; 35 | margin-top: 0; 36 | padding-top: 0; 37 | 38 | &:before { 39 | top: 0; 40 | } 41 | } 42 | 43 | a { 44 | color: inherit; 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /assets/sass/libs/_vars.scss: -------------------------------------------------------------------------------- 1 | // Misc. 2 | $misc: ( 3 | z-index-base: 10000 4 | ); 5 | 6 | // Duration. 7 | $duration: ( 8 | nav: 0.5s, 9 | transition: 0.2s 10 | ); 11 | 12 | // Size. 13 | $size: ( 14 | border-radius: 0.375em, 15 | element-height: 2.75em, 16 | element-margin: 2em, 17 | sidebar-width: 26em, 18 | sidebar-width-alt: 24em, 19 | gutter: 3em 20 | ); 21 | 22 | // Font. 23 | $font: ( 24 | family: ('Open Sans', sans-serif), 25 | family-heading: ('Roboto Slab', serif), 26 | family-fixed: ('Courier New', monospace), 27 | weight: 400, 28 | weight-bold: 600, 29 | weight-heading: 700, 30 | weight-heading-alt: 400, 31 | kerning-heading: 0.075em 32 | ); 33 | 34 | // Palette. 35 | $palette: ( 36 | bg: #ffffff, 37 | bg-alt: #f5f6f7, 38 | fg: #7f888f, 39 | fg-bold: #3d4449, 40 | fg-light: #9fa3a6, 41 | border: rgba(210,215,217,0.75), 42 | border-bg: transparentize(#e6ebed, 0.75), 43 | accent: #f56a6a 44 | ); -------------------------------------------------------------------------------- /assets/sass/layout/_header.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Header */ 8 | 9 | #header { 10 | @include vendor('display', 'flex'); 11 | border-bottom: solid 5px _palette(accent); 12 | padding: 6em 0 1em 0; 13 | position: relative; 14 | 15 | > * { 16 | @include vendor('flex', '1'); 17 | margin-bottom: 0; 18 | } 19 | 20 | .logo { 21 | border-bottom: 0; 22 | color: inherit; 23 | font-family: _font(family-heading); 24 | font-size: 1.125em; 25 | } 26 | 27 | .icons { 28 | text-align: right; 29 | } 30 | 31 | @include breakpoint('<=xlarge') { 32 | padding-top: 5em; 33 | } 34 | 35 | @include breakpoint('<=small') { 36 | padding-top: 6.5em; 37 | 38 | .logo { 39 | font-size: 1.25em; 40 | margin: 0; 41 | } 42 | 43 | .icons { 44 | height: (6.25em / 1.25); 45 | line-height: (6.25em / 1.25); 46 | position: absolute; 47 | right: (-0.625em / 1.25); 48 | top: 0; 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /assets/sass/components/_list.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* List */ 8 | 9 | ol { 10 | list-style: decimal; 11 | margin: 0 0 _size(element-margin) 0; 12 | padding-left: 1.25em; 13 | 14 | li { 15 | padding-left: 0.25em; 16 | } 17 | } 18 | 19 | ul { 20 | list-style: disc; 21 | margin: 0 0 _size(element-margin) 0; 22 | padding-left: 1em; 23 | 24 | li { 25 | padding-left: 0.5em; 26 | } 27 | 28 | &.alt { 29 | list-style: none; 30 | padding-left: 0; 31 | 32 | li { 33 | border-top: solid 1px _palette(border); 34 | padding: 0.5em 0; 35 | 36 | &:first-child { 37 | border-top: 0; 38 | padding-top: 0; 39 | } 40 | } 41 | } 42 | } 43 | 44 | dl { 45 | margin: 0 0 _size(element-margin) 0; 46 | 47 | dt { 48 | display: block; 49 | font-weight: _font(weight-bold); 50 | margin: 0 0 (_size(element-margin) * 0.5) 0; 51 | } 52 | 53 | dd { 54 | margin-left: _size(element-margin); 55 | } 56 | } -------------------------------------------------------------------------------- /assets/sass/base/_page.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Basic */ 8 | 9 | // MSIE: Required for IEMobile. 10 | @-ms-viewport { 11 | width: device-width; 12 | } 13 | 14 | // MSIE: Prevents scrollbar from overlapping content. 15 | body { 16 | -ms-overflow-style: scrollbar; 17 | } 18 | 19 | // Ensures page width is always >=320px. 20 | @include breakpoint('<=xsmall') { 21 | html, body { 22 | min-width: 320px; 23 | } 24 | } 25 | 26 | // Set box model to border-box. 27 | // Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice 28 | html { 29 | box-sizing: border-box; 30 | } 31 | 32 | *, *:before, *:after { 33 | box-sizing: inherit; 34 | } 35 | 36 | body { 37 | background: _palette(bg); 38 | 39 | // Stops initial animations until page loads or stops resizing. 40 | &.is-preload, 41 | &.is-resizing { 42 | *, *:before, *:after { 43 | @include vendor('animation', 'none !important'); 44 | @include vendor('transition', 'none !important'); 45 | } 46 | } 47 | 48 | } -------------------------------------------------------------------------------- /assets/sass/layout/_main.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Main */ 8 | 9 | #main { 10 | @include vendor('flex-grow', '1'); 11 | @include vendor('flex-shrink', '1'); 12 | width: 100%; 13 | 14 | > .inner { 15 | @include padding(0, 6em); 16 | margin: 0 auto; 17 | max-width: 110em; 18 | 19 | > section { 20 | @include padding(6em, 0); 21 | border-top: solid 2px _palette(border); 22 | 23 | &:first-of-type { 24 | border-top: 0 !important; 25 | } 26 | } 27 | } 28 | 29 | @include breakpoint('<=xlarge') { 30 | > .inner { 31 | @include padding(0, 5em); 32 | 33 | > section { 34 | @include padding(5em, 0); 35 | } 36 | } 37 | } 38 | 39 | @include breakpoint('<=large') { 40 | > .inner { 41 | @include padding(0, 4em); 42 | 43 | > section { 44 | @include padding(4em, 0); 45 | } 46 | } 47 | } 48 | 49 | @include breakpoint('<=small') { 50 | > .inner { 51 | @include padding(0, 2em); 52 | 53 | > section { 54 | @include padding(3em, 0); 55 | } 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /assets/sass/components/_actions.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Actions */ 8 | 9 | ul.actions { 10 | @include vendor('display', 'flex'); 11 | cursor: default; 12 | list-style: none; 13 | margin-left: (_size(element-margin) * -0.5); 14 | padding-left: 0; 15 | 16 | li { 17 | padding: 0 0 0 (_size(element-margin) * 0.5); 18 | vertical-align: middle; 19 | } 20 | 21 | &.special { 22 | @include vendor('justify-content', 'center'); 23 | width: 100%; 24 | margin-left: 0; 25 | 26 | li { 27 | &:first-child { 28 | padding-left: 0; 29 | } 30 | } 31 | } 32 | 33 | &.stacked { 34 | @include vendor('flex-direction', 'column'); 35 | margin-left: 0; 36 | 37 | li { 38 | padding: (_size(element-margin) * 0.65) 0 0 0; 39 | 40 | &:first-child { 41 | padding-top: 0; 42 | } 43 | } 44 | } 45 | 46 | &.fit { 47 | width: calc(100% + #{_size(element-margin) * 0.5}); 48 | 49 | li { 50 | @include vendor('flex-grow', '1'); 51 | @include vendor('flex-shrink', '1'); 52 | width: 100%; 53 | 54 | > * { 55 | width: 100%; 56 | } 57 | } 58 | 59 | &.stacked { 60 | width: 100%; 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /assets/sass/components/_image.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Image */ 8 | 9 | .image { 10 | border-radius: _size(border-radius); 11 | border: 0; 12 | display: inline-block; 13 | position: relative; 14 | 15 | img { 16 | border-radius: _size(border-radius); 17 | display: block; 18 | } 19 | 20 | &.left, 21 | &.right { 22 | max-width: 40%; 23 | 24 | img { 25 | width: 100%; 26 | } 27 | } 28 | 29 | &.left { 30 | float: left; 31 | padding: 0 1.5em 1em 0; 32 | top: 0.25em; 33 | } 34 | 35 | &.right { 36 | float: right; 37 | padding: 0 0 1em 1.5em; 38 | top: 0.25em; 39 | } 40 | 41 | &.fit { 42 | display: block; 43 | margin: 0 0 _size(element-margin) 0; 44 | width: 100%; 45 | 46 | img { 47 | width: 100%; 48 | } 49 | } 50 | 51 | &.main { 52 | display: block; 53 | margin: 0 0 (_size(element-margin) * 1.5) 0; 54 | width: 100%; 55 | 56 | img { 57 | width: 100%; 58 | } 59 | } 60 | } 61 | 62 | a.image { 63 | overflow: hidden; 64 | 65 | img { 66 | @include vendor('transition', 'transform #{_duration(transition)} ease'); 67 | } 68 | 69 | &:hover { 70 | img { 71 | @include vendor('transform', 'scale(1.075)'); 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /assets/sass/components/_table.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Table */ 8 | 9 | .table-wrapper { 10 | -webkit-overflow-scrolling: touch; 11 | overflow-x: auto; 12 | } 13 | 14 | table { 15 | margin: 0 0 _size(element-margin) 0; 16 | width: 100%; 17 | 18 | tbody { 19 | tr { 20 | border: solid 1px _palette(border); 21 | border-left: 0; 22 | border-right: 0; 23 | 24 | &:nth-child(2n + 1) { 25 | background-color: _palette(border-bg); 26 | } 27 | } 28 | } 29 | 30 | td { 31 | padding: 0.75em 0.75em; 32 | } 33 | 34 | th { 35 | color: _palette(fg-bold); 36 | font-size: 0.9em; 37 | font-weight: _font(weight-bold); 38 | padding: 0 0.75em 0.75em 0.75em; 39 | text-align: left; 40 | } 41 | 42 | thead { 43 | border-bottom: solid 2px _palette(border); 44 | } 45 | 46 | tfoot { 47 | border-top: solid 2px _palette(border); 48 | } 49 | 50 | &.alt { 51 | border-collapse: separate; 52 | 53 | tbody { 54 | tr { 55 | td { 56 | border: solid 1px _palette(border); 57 | border-left-width: 0; 58 | border-top-width: 0; 59 | 60 | &:first-child { 61 | border-left-width: 1px; 62 | } 63 | } 64 | 65 | &:first-child { 66 | td { 67 | border-top-width: 1px; 68 | } 69 | } 70 | } 71 | } 72 | 73 | thead { 74 | border-bottom: 0; 75 | } 76 | 77 | tfoot { 78 | border-top: 0; 79 | } 80 | } 81 | } -------------------------------------------------------------------------------- /assets/sass/components/_pagination.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Pagination */ 8 | 9 | ul.pagination { 10 | cursor: default; 11 | list-style: none; 12 | padding-left: 0; 13 | 14 | li { 15 | display: inline-block; 16 | padding-left: 0; 17 | vertical-align: middle; 18 | 19 | > .page { 20 | @include vendor('transition', ( 21 | 'background-color #{_duration(transition)} ease-in-out', 22 | 'color #{_duration(transition)} ease-in-out' 23 | )); 24 | border-bottom: 0; 25 | border-radius: _size(border-radius); 26 | display: inline-block; 27 | font-size: 0.8em; 28 | font-weight: _font(weight-bold); 29 | height: 2em; 30 | line-height: 2em; 31 | margin: 0 0.125em; 32 | min-width: 2em; 33 | padding: 0 0.5em; 34 | text-align: center; 35 | 36 | &.active { 37 | background-color: _palette(accent); 38 | color: _palette(bg) !important; 39 | 40 | &:hover { 41 | background-color: lighten(_palette(accent), 3); 42 | } 43 | 44 | &:active { 45 | background-color: darken(_palette(accent), 3); 46 | } 47 | } 48 | } 49 | 50 | &:first-child { 51 | padding-right: 0.75em; 52 | } 53 | 54 | &:last-child { 55 | padding-left: 0.75em; 56 | } 57 | } 58 | 59 | @include breakpoint('<=xsmall') { 60 | li { 61 | &:nth-child(n+2):nth-last-child(n+2) { 62 | display: none; 63 | } 64 | 65 | &:first-child { 66 | padding-right: 0; 67 | } 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /assets/sass/layout/_banner.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Banner */ 8 | 9 | #banner { 10 | @include padding(6em, 0); 11 | @include vendor('display', 'flex'); 12 | 13 | h1 { 14 | margin-top: -0.125em; 15 | } 16 | 17 | .content { 18 | @include vendor('flex-grow', '1'); 19 | @include vendor('flex-shrink', '1'); 20 | width: 50%; 21 | } 22 | 23 | .image { 24 | @include vendor('flex-grow', '0'); 25 | @include vendor('flex-shrink', '0'); 26 | display: block; 27 | margin: 0 0 _size(element-margin) (_size(element-margin) * 2); 28 | width: 50%; 29 | 30 | img { 31 | height: 100%; 32 | -moz-object-fit: cover; 33 | -webkit-object-fit: cover; 34 | -ms-object-fit: cover; 35 | object-fit: cover; 36 | -moz-object-position: center; 37 | -webkit-object-position: center; 38 | -ms-object-position: center; 39 | object-position: center; 40 | width: 100%; 41 | } 42 | } 43 | 44 | @include orientation(portrait) { 45 | @include vendor('flex-direction', 'column-reverse'); 46 | 47 | h1 { 48 | br { 49 | display: none; 50 | } 51 | } 52 | 53 | .content { 54 | @include vendor('flex-grow', '0'); 55 | @include vendor('flex-shrink', '0'); 56 | width: 100%; 57 | } 58 | 59 | .image { 60 | @include vendor('flex-grow', '0'); 61 | @include vendor('flex-shrink', '0'); 62 | margin: 0 0 (_size(element-margin) * 2) 0; 63 | height: 25em; 64 | max-height: 50vh; 65 | min-height: 18em; 66 | width: 100%; 67 | } 68 | 69 | @include breakpoint('<=xsmall') { 70 | .image { 71 | max-height: 35vh; 72 | } 73 | } 74 | } 75 | } -------------------------------------------------------------------------------- /assets/js/browser.min.js: -------------------------------------------------------------------------------- 1 | /* browser.js v1.0 | @ajlkn | MIT licensed */ 2 | var browser=function(){"use strict";var e={name:null,version:null,os:null,osVersion:null,touch:null,mobile:null,_canUse:null,canUse:function(n){e._canUse||(e._canUse=document.createElement("div"));var o=e._canUse.style,r=n.charAt(0).toUpperCase()+n.slice(1);return n in o||"Moz"+r in o||"Webkit"+r in o||"O"+r in o||"ms"+r in o},init:function(){var n,o,r,i,t=navigator.userAgent;for(n="other",o=0,r=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],i=0;i0:!!("ontouchstart"in window),e.mobile="wp"==e.os||"android"==e.os||"ios"==e.os||"bb"==e.os}};return e.init(),e}();!function(e,n){"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?module.exports=n():e.browser=n()}(this,function(){return browser}); 3 | -------------------------------------------------------------------------------- /assets/sass/main.scss: -------------------------------------------------------------------------------- 1 | @import 'libs/vars'; 2 | @import 'libs/functions'; 3 | @import 'libs/mixins'; 4 | @import 'libs/vendor'; 5 | @import 'libs/breakpoints'; 6 | @import 'libs/html-grid'; 7 | @import 'font-awesome.min.css'; 8 | //@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600,400italic,600italic|Roboto+Slab:400,700'); 9 | 10 | /* 11 | Editorial by HTML5 UP 12 | html5up.net | @ajlkn 13 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 14 | */ 15 | 16 | // Breakpoints. 17 | 18 | @include breakpoints(( 19 | xlarge: ( 1281px, 1680px ), 20 | large: ( 981px, 1280px ), 21 | medium: ( 737px, 980px ), 22 | small: ( 481px, 736px ), 23 | xsmall: ( 361px, 480px ), 24 | xxsmall: ( null, 360px ), 25 | xlarge-to-max: '(min-width: 1681px)', 26 | small-to-xlarge: '(min-width: 481px) and (max-width: 1680px)' 27 | )); 28 | 29 | // Base. 30 | 31 | @import 'base/reset'; 32 | @import 'base/page'; 33 | @import 'base/typography'; 34 | 35 | // Component. 36 | 37 | @import 'components/row'; 38 | @import 'components/section'; 39 | @import 'components/form'; 40 | @import 'components/box'; 41 | @import 'components/icon'; 42 | @import 'components/image'; 43 | @import 'components/list'; 44 | @import 'components/actions'; 45 | @import 'components/icons'; 46 | @import 'components/contact'; 47 | @import 'components/pagination'; 48 | @import 'components/table'; 49 | @import 'components/button'; 50 | @import 'components/mini-posts'; 51 | @import 'components/features'; 52 | @import 'components/posts'; 53 | 54 | // Layout. 55 | 56 | @import 'layout/wrapper'; 57 | @import 'layout/main'; 58 | @import 'layout/sidebar'; 59 | @import 'layout/header'; 60 | @import 'layout/banner'; 61 | @import 'layout/footer'; 62 | @import 'layout/menu'; -------------------------------------------------------------------------------- /assets/sass/base/_reset.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | // Reset. 8 | // Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: public domain) 9 | 10 | html, body, div, span, applet, object, 11 | iframe, h1, h2, h3, h4, h5, h6, p, blockquote, 12 | pre, a, abbr, acronym, address, big, cite, 13 | code, del, dfn, em, img, ins, kbd, q, s, samp, 14 | small, strike, strong, sub, sup, tt, var, b, 15 | u, i, center, dl, dt, dd, ol, ul, li, fieldset, 16 | form, label, legend, table, caption, tbody, 17 | tfoot, thead, tr, th, td, article, aside, 18 | canvas, details, embed, figure, figcaption, 19 | footer, header, hgroup, menu, nav, output, ruby, 20 | section, summary, time, mark, audio, video { 21 | margin: 0; 22 | padding: 0; 23 | border: 0; 24 | font-size: 100%; 25 | font: inherit; 26 | vertical-align: baseline; 27 | } 28 | 29 | article, aside, details, figcaption, figure, 30 | footer, header, hgroup, menu, nav, section { 31 | display: block; 32 | } 33 | 34 | body { 35 | line-height: 1; 36 | } 37 | 38 | ol, ul { 39 | list-style:none; 40 | } 41 | 42 | blockquote, q { 43 | quotes: none; 44 | 45 | &:before, 46 | &:after { 47 | content: ''; 48 | content: none; 49 | } 50 | } 51 | 52 | table { 53 | border-collapse: collapse; 54 | border-spacing: 0; 55 | } 56 | 57 | body { 58 | -webkit-text-size-adjust: none; 59 | } 60 | 61 | mark { 62 | background-color: transparent; 63 | color: inherit; 64 | } 65 | 66 | input::-moz-focus-inner { 67 | border: 0; 68 | padding: 0; 69 | } 70 | 71 | input, select, textarea { 72 | -moz-appearance: none; 73 | -webkit-appearance: none; 74 | -ms-appearance: none; 75 | appearance: none; 76 | } -------------------------------------------------------------------------------- /assets/sass/libs/_mixins.scss: -------------------------------------------------------------------------------- 1 | /// Makes an element's :before pseudoelement a FontAwesome icon. 2 | /// @param {string} $content Optional content value to use. 3 | /// @param {string} $where Optional pseudoelement to target (before or after). 4 | @mixin icon($content: false, $where: before) { 5 | 6 | text-decoration: none; 7 | 8 | &:#{$where} { 9 | 10 | @if $content { 11 | content: $content; 12 | } 13 | 14 | -moz-osx-font-smoothing: grayscale; 15 | -webkit-font-smoothing: antialiased; 16 | font-family: FontAwesome; 17 | font-style: normal; 18 | font-weight: normal; 19 | text-transform: none !important; 20 | 21 | } 22 | 23 | } 24 | 25 | /// Applies padding to an element, taking the current element-margin value into account. 26 | /// @param {mixed} $tb Top/bottom padding. 27 | /// @param {mixed} $lr Left/right padding. 28 | /// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left) 29 | /// @param {bool} $important If true, adds !important. 30 | @mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) { 31 | 32 | @if $important { 33 | $important: '!important'; 34 | } 35 | 36 | $x: 0.1em; 37 | 38 | @if unit(_size(element-margin)) == 'rem' { 39 | $x: 0.1rem; 40 | } 41 | 42 | padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important}; 43 | 44 | } 45 | 46 | /// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp). 47 | /// @param {string} $svg SVG data URL. 48 | /// @return {string} Encoded SVG data URL. 49 | @function svg-url($svg) { 50 | 51 | $svg: str-replace($svg, '"', '\''); 52 | $svg: str-replace($svg, '%', '%25'); 53 | $svg: str-replace($svg, '<', '%3C'); 54 | $svg: str-replace($svg, '>', '%3E'); 55 | $svg: str-replace($svg, '&', '%26'); 56 | $svg: str-replace($svg, '#', '%23'); 57 | $svg: str-replace($svg, '{', '%7B'); 58 | $svg: str-replace($svg, '}', '%7D'); 59 | $svg: str-replace($svg, ';', '%3B'); 60 | 61 | @return url("data:image/svg+xml;charset=utf8,#{$svg}"); 62 | 63 | } -------------------------------------------------------------------------------- /assets/sass/components/_button.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Button */ 8 | 9 | input[type="submit"], 10 | input[type="reset"], 11 | input[type="button"], 12 | button, 13 | .button { 14 | @include vendor('appearance', 'none'); 15 | @include vendor('transition', ( 16 | 'background-color #{_duration(transition)} ease-in-out', 17 | 'color #{_duration(transition)} ease-in-out' 18 | )); 19 | background-color: transparent; 20 | border-radius: _size(border-radius); 21 | border: 0; 22 | box-shadow: inset 0 0 0 2px _palette(accent); 23 | color: _palette(accent) !important; 24 | cursor: pointer; 25 | display: inline-block; 26 | font-family: _font(family-heading); 27 | font-size: 0.8em; 28 | font-weight: _font(weight-heading); 29 | height: 3.5em; 30 | letter-spacing: _font(kerning-heading); 31 | line-height: 3.5em; 32 | padding: 0 2.25em; 33 | text-align: center; 34 | text-decoration: none; 35 | text-transform: uppercase; 36 | white-space: nowrap; 37 | 38 | &:hover { 39 | background-color: transparentize(_palette(accent), 0.95); 40 | } 41 | 42 | &:active { 43 | background-color: transparentize(_palette(accent), 0.85); 44 | } 45 | 46 | &.icon { 47 | &:before { 48 | margin-right: 0.5em; 49 | } 50 | } 51 | 52 | &.fit { 53 | width: 100%; 54 | } 55 | 56 | &.small { 57 | font-size: 0.6em; 58 | } 59 | 60 | &.large { 61 | font-size: 1em; 62 | height: 3.65em; 63 | line-height: 3.65em; 64 | } 65 | 66 | &.primary { 67 | background-color: _palette(accent); 68 | box-shadow: none; 69 | color: _palette(bg) !important; 70 | 71 | &:hover { 72 | background-color: lighten(_palette(accent), 3); 73 | } 74 | 75 | &:active { 76 | background-color: darken(_palette(accent), 3); 77 | } 78 | } 79 | 80 | &.disabled, 81 | &:disabled { 82 | @include vendor('pointer-events', 'none'); 83 | opacity: 0.25; 84 | } 85 | } -------------------------------------------------------------------------------- /assets/sass/libs/_functions.scss: -------------------------------------------------------------------------------- 1 | /// Removes a specific item from a list. 2 | /// @author Hugo Giraudel 3 | /// @param {list} $list List. 4 | /// @param {integer} $index Index. 5 | /// @return {list} Updated list. 6 | @function remove-nth($list, $index) { 7 | 8 | $result: null; 9 | 10 | @if type-of($index) != number { 11 | @warn "$index: #{quote($index)} is not a number for `remove-nth`."; 12 | } 13 | @else if $index == 0 { 14 | @warn "List index 0 must be a non-zero integer for `remove-nth`."; 15 | } 16 | @else if abs($index) > length($list) { 17 | @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`."; 18 | } 19 | @else { 20 | 21 | $result: (); 22 | $index: if($index < 0, length($list) + $index + 1, $index); 23 | 24 | @for $i from 1 through length($list) { 25 | 26 | @if $i != $index { 27 | $result: append($result, nth($list, $i)); 28 | } 29 | 30 | } 31 | 32 | } 33 | 34 | @return $result; 35 | 36 | } 37 | 38 | /// Gets a value from a map. 39 | /// @author Hugo Giraudel 40 | /// @param {map} $map Map. 41 | /// @param {string} $keys Key(s). 42 | /// @return {string} Value. 43 | @function val($map, $keys...) { 44 | 45 | @if nth($keys, 1) == null { 46 | $keys: remove-nth($keys, 1); 47 | } 48 | 49 | @each $key in $keys { 50 | $map: map-get($map, $key); 51 | } 52 | 53 | @return $map; 54 | 55 | } 56 | 57 | /// Gets a duration value. 58 | /// @param {string} $keys Key(s). 59 | /// @return {string} Value. 60 | @function _duration($keys...) { 61 | @return val($duration, $keys...); 62 | } 63 | 64 | /// Gets a font value. 65 | /// @param {string} $keys Key(s). 66 | /// @return {string} Value. 67 | @function _font($keys...) { 68 | @return val($font, $keys...); 69 | } 70 | 71 | /// Gets a misc value. 72 | /// @param {string} $keys Key(s). 73 | /// @return {string} Value. 74 | @function _misc($keys...) { 75 | @return val($misc, $keys...); 76 | } 77 | 78 | /// Gets a palette value. 79 | /// @param {string} $keys Key(s). 80 | /// @return {string} Value. 81 | @function _palette($keys...) { 82 | @return val($palette, $keys...); 83 | } 84 | 85 | /// Gets a size value. 86 | /// @param {string} $keys Key(s). 87 | /// @return {string} Value. 88 | @function _size($keys...) { 89 | @return val($size, $keys...); 90 | } -------------------------------------------------------------------------------- /assets/sass/layout/_menu.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Menu */ 8 | 9 | #menu { 10 | ul { 11 | @include vendor('user-select', 'none'); 12 | color: _palette(fg-bold); 13 | font-family: _font(family-heading); 14 | font-family: _font(weight-heading-alt); 15 | letter-spacing: _font(kerning-heading); 16 | list-style: none; 17 | margin-bottom: 0; 18 | padding: 0; 19 | text-transform: uppercase; 20 | 21 | a, span { 22 | border-bottom: 0; 23 | color: inherit; 24 | cursor: pointer; 25 | display: block; 26 | font-size: 0.9em; 27 | padding: 0.625em 0; 28 | 29 | &:hover { 30 | color: _palette(accent); 31 | } 32 | 33 | &.opener { 34 | @include vendor('transition', 'color #{_duration(transition)} ease-in-out'); 35 | @include icon; 36 | -webkit-tap-highlight-color: rgba(255,255,255,0); 37 | position: relative; 38 | 39 | &:before { 40 | @include vendor('transition', ( 41 | 'color #{_duration(transition)} ease-in-out', 42 | 'transform #{_duration(transition)} ease-in-out' 43 | )); 44 | color: _palette(fg-light); 45 | content: '\f078'; 46 | position: absolute; 47 | right: 0; 48 | } 49 | 50 | &:hover { 51 | &:before { 52 | color: _palette(accent); 53 | } 54 | } 55 | 56 | &.active { 57 | & + ul { 58 | display: block; 59 | } 60 | 61 | &:before { 62 | @include vendor('transform', 'rotate(-180deg)'); 63 | } 64 | } 65 | } 66 | } 67 | } 68 | 69 | > ul { 70 | > li { 71 | border-top: solid 1px _palette(border); 72 | margin: 0.5em 0 0 0; 73 | padding: 0.5em 0 0 0; 74 | 75 | > ul { 76 | color: _palette(fg-light); 77 | display: none; 78 | margin: 0.5em 0 1.5em 0; 79 | padding-left: 1em; 80 | 81 | a, span { 82 | font-size: 0.8em; 83 | } 84 | 85 | > li { 86 | margin: 0.125em 0 0 0; 87 | padding: 0.125em 0 0 0; 88 | } 89 | } 90 | 91 | &:first-child { 92 | border-top: 0; 93 | margin-top: 0; 94 | padding-top: 0; 95 | } 96 | } 97 | } 98 | } -------------------------------------------------------------------------------- /assets/js/breakpoints.min.js: -------------------------------------------------------------------------------- 1 | /* breakpoints.js v1.0 | @ajlkn | MIT licensed */ 2 | var breakpoints=function(){"use strict";function e(e){t.init(e)}var t={list:null,media:{},events:[],init:function(e){t.list=e,window.addEventListener("resize",t.poll),window.addEventListener("orientationchange",t.poll),window.addEventListener("load",t.poll),window.addEventListener("fullscreenchange",t.poll)},active:function(e){var n,a,s,i,r,d,c;if(!(e in t.media)){if(">="==e.substr(0,2)?(a="gte",n=e.substr(2)):"<="==e.substr(0,2)?(a="lte",n=e.substr(2)):">"==e.substr(0,1)?(a="gt",n=e.substr(1)):"<"==e.substr(0,1)?(a="lt",n=e.substr(1)):"!"==e.substr(0,1)?(a="not",n=e.substr(1)):(a="eq",n=e),n&&n in t.list)if(i=t.list[n],Array.isArray(i)){if(r=parseInt(i[0]),d=parseInt(i[1]),isNaN(r)){if(isNaN(d))return;c=i[1].substr(String(d).length)}else c=i[0].substr(String(r).length);if(isNaN(r))switch(a){case"gte":s="screen";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: -1px)";break;case"not":s="screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (max-width: "+d+c+")"}else if(isNaN(d))switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen";break;case"gt":s="screen and (max-width: -1px)";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+")";break;default:s="screen and (min-width: "+r+c+")"}else switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+"), screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (min-width: "+r+c+") and (max-width: "+d+c+")"}}else s="("==i.charAt(0)?"screen and "+i:i;t.media[e]=!!s&&s}return t.media[e]!==!1&&window.matchMedia(t.media[e]).matches},on:function(e,n){t.events.push({query:e,handler:n,state:!1}),t.active(e)&&n()},poll:function(){var e,n;for(e=0;e * { 50 | box-sizing: border-box; 51 | } 52 | 53 | // Gutters. 54 | &.gtr-uniform { 55 | > * { 56 | > :last-child { 57 | margin-bottom: 0; 58 | } 59 | } 60 | } 61 | 62 | // Alignment. 63 | &.aln-left { 64 | justify-content: flex-start; 65 | } 66 | 67 | &.aln-center { 68 | justify-content: center; 69 | } 70 | 71 | &.aln-right { 72 | justify-content: flex-end; 73 | } 74 | 75 | &.aln-top { 76 | align-items: flex-start; 77 | } 78 | 79 | &.aln-middle { 80 | align-items: center; 81 | } 82 | 83 | &.aln-bottom { 84 | align-items: flex-end; 85 | } 86 | 87 | // Step through suffixes. 88 | @each $suffix in $suffixes { 89 | 90 | // Suffix. 91 | @if ($suffix != '') { 92 | $suffix: '-' + $suffix; 93 | } 94 | @else { 95 | $suffix: ''; 96 | } 97 | 98 | // Row. 99 | 100 | // Important. 101 | > .imp#{$suffix} { 102 | order: -1; 103 | } 104 | 105 | // Columns, offsets. 106 | @for $i from 1 through $cols { 107 | > .col-#{$i}#{$suffix} { 108 | width: $unit * $i; 109 | } 110 | 111 | > .off-#{$i}#{$suffix} { 112 | margin-left: $unit * $i; 113 | } 114 | } 115 | 116 | // Step through multipliers. 117 | @each $multiplier in $multipliers { 118 | 119 | // Gutters. 120 | $class: null; 121 | 122 | @if ($multiplier != 1) { 123 | $class: '.gtr-' + ($multiplier * 100); 124 | } 125 | 126 | &#{$class} { 127 | margin-top: ($guttersRows * $multiplier * -1); 128 | margin-left: ($guttersCols * $multiplier * -1); 129 | 130 | > * { 131 | padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier); 132 | } 133 | 134 | // Uniform. 135 | &.gtr-uniform { 136 | margin-top: $guttersCols * $multiplier * -1; 137 | 138 | > * { 139 | padding-top: $guttersCols * $multiplier; 140 | } 141 | } 142 | 143 | } 144 | 145 | } 146 | 147 | } 148 | 149 | } -------------------------------------------------------------------------------- /assets/sass/components/_features.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Features */ 8 | 9 | .features { 10 | $gutter: _size(gutter); 11 | 12 | @include vendor('display', 'flex'); 13 | @include vendor('flex-wrap', 'wrap'); 14 | margin: 0 0 _size(element-margin) ($gutter * -1); 15 | width: calc(100% + #{$gutter}); 16 | 17 | article { 18 | @include vendor('align-items', 'center'); 19 | @include vendor('display', 'flex'); 20 | margin: 0 0 $gutter $gutter; 21 | position: relative; 22 | width: calc(50% - #{$gutter}); 23 | 24 | &:nth-child(2n - 1) { 25 | margin-right: ($gutter * 0.5); 26 | } 27 | 28 | &:nth-child(2n) { 29 | margin-left: ($gutter * 0.5); 30 | } 31 | 32 | &:nth-last-child(1), 33 | &:nth-last-child(2) { 34 | margin-bottom: 0; 35 | } 36 | 37 | .icon { 38 | @include vendor('flex-grow', '0'); 39 | @include vendor('flex-shrink', '0'); 40 | display: block; 41 | height: 10em; 42 | line-height: 10em; 43 | margin: 0 _size(element-margin) 0 0; 44 | text-align: center; 45 | width: 10em; 46 | 47 | &:before { 48 | color: _palette(accent); 49 | font-size: 2.75rem; 50 | position: relative; 51 | top: 0.05em; 52 | } 53 | 54 | &:after { 55 | @include vendor('transform', 'rotate(45deg)'); 56 | border-radius: 0.25rem; 57 | border: solid 2px _palette(border); 58 | content: ''; 59 | display: block; 60 | height: 7em; 61 | left: 50%; 62 | margin: -3.5em 0 0 -3.5em; 63 | position: absolute; 64 | top: 50%; 65 | width: 7em; 66 | } 67 | } 68 | 69 | .content { 70 | @include vendor('flex-grow', '1'); 71 | @include vendor('flex-shrink', '1'); 72 | width: 100%; 73 | 74 | > :last-child { 75 | margin-bottom: 0; 76 | } 77 | } 78 | } 79 | 80 | @include breakpoint('<=medium') { 81 | margin: 0 0 _size(element-margin) 0; 82 | width: 100%; 83 | 84 | article { 85 | margin: 0 0 $gutter 0; 86 | width: 100%; 87 | 88 | &:nth-child(2n - 1) { 89 | margin-right: 0; 90 | } 91 | 92 | &:nth-child(2n) { 93 | margin-left: 0; 94 | } 95 | 96 | &:nth-last-child(1), 97 | &:nth-last-child(2) { 98 | margin-bottom: $gutter; 99 | } 100 | 101 | &:last-child { 102 | margin-bottom: 0; 103 | } 104 | 105 | .icon { 106 | height: 8em; 107 | line-height: 8em; 108 | width: 8em; 109 | 110 | &:before { 111 | font-size: 2.25rem; 112 | } 113 | 114 | &:after { 115 | height: 6em; 116 | margin: -3em 0 0 -3em; 117 | width: 6em; 118 | } 119 | } 120 | } 121 | } 122 | 123 | @include breakpoint('<=xsmall') { 124 | article { 125 | @include vendor('flex-direction', 'column'); 126 | @include vendor('align-items', 'flex-start'); 127 | 128 | .icon { 129 | height: 6em; 130 | line-height: 6em; 131 | margin: 0 0 (_size(element-margin) * 0.75) 0; 132 | width: 6em; 133 | 134 | &:before { 135 | font-size: 1.5rem; 136 | } 137 | 138 | &:after { 139 | height: 4em; 140 | margin: -2em 0 0 -2em; 141 | width: 4em; 142 | } 143 | } 144 | } 145 | } 146 | 147 | @include breakpoint('<=xsmall') { 148 | article { 149 | .icon { 150 | &:before { 151 | font-size: 1.25rem; 152 | } 153 | } 154 | } 155 | } 156 | } -------------------------------------------------------------------------------- /assets/sass/components/_posts.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Posts */ 8 | 9 | .posts { 10 | $gutter: (_size(gutter) * 2); 11 | 12 | @include vendor('display', 'flex'); 13 | @include vendor('flex-wrap', 'wrap'); 14 | margin: 0 0 _size(element-margin) ($gutter * -1); 15 | width: calc(100% + #{$gutter}); 16 | 17 | article { 18 | @include vendor('flex-grow', '0'); 19 | @include vendor('flex-shrink', '1'); 20 | margin: 0 0 $gutter $gutter; 21 | position: relative; 22 | width: calc(#{(100% / 3)} - #{$gutter}); 23 | 24 | &:before { 25 | background: _palette(border); 26 | content: ''; 27 | display: block; 28 | height: calc(100% + #{$gutter}); 29 | left: ($gutter * -0.5); 30 | position: absolute; 31 | top: 0; 32 | width: 1px; 33 | } 34 | 35 | &:after { 36 | background: _palette(border); 37 | bottom: ($gutter * -0.5); 38 | content: ''; 39 | display: block; 40 | height: 1px; 41 | position: absolute; 42 | right: 0; 43 | width: calc(100% + #{$gutter}); 44 | } 45 | 46 | > :last-child { 47 | margin-bottom: 0; 48 | } 49 | 50 | .image { 51 | display: block; 52 | margin: 0 0 _size(element-margin) 0; 53 | 54 | img { 55 | display: block; 56 | width: 100%; 57 | } 58 | } 59 | } 60 | 61 | @include breakpoint('xlarge-to-max') { 62 | article { 63 | &:nth-child(3n + 1) { 64 | &:before { 65 | display: none; 66 | } 67 | 68 | &:after { 69 | width: 100%; 70 | } 71 | } 72 | 73 | &:nth-last-child(1), 74 | &:nth-last-child(2), 75 | &:nth-last-child(3) { 76 | margin-bottom: 0; 77 | 78 | &:before { 79 | height: 100%; 80 | } 81 | 82 | &:after { 83 | display: none; 84 | } 85 | } 86 | } 87 | } 88 | 89 | @include breakpoint('<=xlarge') { 90 | article { 91 | width: calc(50% - #{$gutter}); 92 | 93 | &:nth-last-child(3) { 94 | margin-bottom: $gutter; 95 | } 96 | } 97 | } 98 | 99 | @include breakpoint('small-to-xlarge') { 100 | article { 101 | &:nth-child(2n + 1) { 102 | &:before { 103 | display: none; 104 | } 105 | 106 | &:after { 107 | width: 100%; 108 | } 109 | } 110 | 111 | &:nth-last-child(1), 112 | &:nth-last-child(2) { 113 | margin-bottom: 0; 114 | 115 | &:before { 116 | height: 100%; 117 | } 118 | 119 | &:after { 120 | display: none; 121 | } 122 | } 123 | } 124 | } 125 | 126 | @include breakpoint('<=small') { 127 | $gutter: _size(gutter) * 1.5; 128 | 129 | margin: 0 0 _size(element-margin) ($gutter * -1); 130 | width: calc(100% + #{$gutter}); 131 | 132 | article { 133 | margin: 0 0 $gutter $gutter; 134 | width: calc(50% - #{$gutter}); 135 | 136 | &:before { 137 | height: calc(100% + #{$gutter}); 138 | left: ($gutter * -0.5); 139 | } 140 | 141 | &:after { 142 | bottom: ($gutter * -0.5); 143 | width: calc(100% + #{$gutter}); 144 | } 145 | 146 | &:nth-last-child(3) { 147 | margin-bottom: $gutter; 148 | } 149 | } 150 | } 151 | 152 | @include breakpoint('<=xsmall') { 153 | $gutter: _size(gutter) * 1.5; 154 | 155 | margin: 0 0 _size(element-margin) 0; 156 | width: 100%; 157 | 158 | article { 159 | margin: 0 0 $gutter 0; 160 | width: 100%; 161 | 162 | &:before { 163 | display: none; 164 | } 165 | 166 | &:after { 167 | width: 100%; 168 | } 169 | 170 | &:last-child { 171 | margin-bottom: 0; 172 | 173 | &:after { 174 | display: none; 175 | } 176 | } 177 | } 178 | } 179 | } -------------------------------------------------------------------------------- /assets/sass/base/_typography.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Type */ 8 | 9 | body, input, select, textarea { 10 | color: _palette(fg); 11 | font-family: _font(family); 12 | font-size: 13pt; 13 | font-weight: _font(weight); 14 | line-height: 1.65; 15 | 16 | @include breakpoint('<=xlarge') { 17 | font-size: 11pt; 18 | } 19 | 20 | @include breakpoint('<=large') { 21 | font-size: 10pt; 22 | } 23 | 24 | @include breakpoint('<=xxsmall') { 25 | font-size: 9pt; 26 | } 27 | } 28 | 29 | a { 30 | @include vendor('transition', ( 31 | 'color #{_duration(transition)} ease-in-out', 32 | 'border-bottom-color #{_duration(transition)} ease-in-out' 33 | )); 34 | border-bottom: dotted 1px; 35 | color: _palette(accent); 36 | text-decoration: none; 37 | 38 | &:hover { 39 | border-bottom-color: _palette(accent); 40 | color: _palette(accent) !important; 41 | 42 | strong { 43 | color: inherit; 44 | } 45 | } 46 | } 47 | 48 | strong, b { 49 | color: _palette(fg-bold); 50 | font-weight: _font(weight-bold); 51 | } 52 | 53 | em, i { 54 | font-style: italic; 55 | } 56 | 57 | p { 58 | margin: 0 0 _size(element-margin) 0; 59 | } 60 | 61 | h1, h2, h3, h4, h5, h6 { 62 | color: _palette(fg-bold); 63 | font-family: _font(family-heading); 64 | font-weight: _font(weight-heading); 65 | line-height: 1.5; 66 | margin: 0 0 (_size(element-margin) * 0.5) 0; 67 | 68 | a { 69 | color: inherit; 70 | text-decoration: none; 71 | border-bottom: 0; 72 | } 73 | } 74 | 75 | h1 { 76 | font-size: 4em; 77 | margin: 0 0 (_size(element-margin) * 0.25) 0; 78 | line-height: 1.3; 79 | } 80 | 81 | h2 { 82 | font-size: 1.75em; 83 | } 84 | 85 | h3 { 86 | font-size: 1.25em; 87 | } 88 | 89 | h4 { 90 | font-size: 1.1em; 91 | } 92 | 93 | h5 { 94 | font-size: 0.9em; 95 | } 96 | 97 | h6 { 98 | font-size: 0.7em; 99 | } 100 | 101 | @include breakpoint('<=xlarge') { 102 | h1 { 103 | font-size: 3.5em; 104 | } 105 | } 106 | 107 | @include breakpoint('<=medium') { 108 | h1 { 109 | font-size: 3.25em; 110 | } 111 | } 112 | 113 | @include breakpoint('<=small') { 114 | h1 { 115 | font-size: 2em; 116 | line-height: 1.4; 117 | } 118 | 119 | h2 { 120 | font-size: 1.5em; 121 | } 122 | } 123 | 124 | sub { 125 | font-size: 0.8em; 126 | position: relative; 127 | top: 0.5em; 128 | } 129 | 130 | sup { 131 | font-size: 0.8em; 132 | position: relative; 133 | top: -0.5em; 134 | } 135 | 136 | blockquote { 137 | border-left: solid 3px _palette(border); 138 | font-style: italic; 139 | margin: 0 0 _size(element-margin) 0; 140 | padding: (_size(element-margin) / 4) 0 (_size(element-margin) / 4) _size(element-margin); 141 | } 142 | 143 | code { 144 | background: _palette(border-bg); 145 | border-radius: _size(border-radius); 146 | border: solid 1px _palette(border); 147 | font-family: _font(family-fixed); 148 | font-size: 0.9em; 149 | margin: 0 0.25em; 150 | padding: 0.25em 0.65em; 151 | } 152 | 153 | pre { 154 | -webkit-overflow-scrolling: touch; 155 | font-family: _font(family-fixed); 156 | font-size: 0.9em; 157 | margin: 0 0 _size(element-margin) 0; 158 | 159 | code { 160 | display: block; 161 | line-height: 1.75; 162 | padding: 1em 1.5em; 163 | overflow-x: auto; 164 | } 165 | } 166 | 167 | hr { 168 | border: 0; 169 | border-bottom: solid 1px _palette(border); 170 | margin: _size(element-margin) 0; 171 | 172 | &.major { 173 | margin: (_size(element-margin) * 1.5) 0; 174 | } 175 | } 176 | 177 | .align-left { 178 | text-align: left; 179 | } 180 | 181 | .align-center { 182 | text-align: center; 183 | } 184 | 185 | .align-right { 186 | text-align: right; 187 | } -------------------------------------------------------------------------------- /assets/sass/components/_form.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Form */ 8 | 9 | form { 10 | margin: 0 0 _size(element-margin) 0; 11 | } 12 | 13 | label { 14 | color: _palette(fg-bold); 15 | display: block; 16 | font-size: 0.9em; 17 | font-weight: _font(weight-bold); 18 | margin: 0 0 (_size(element-margin) * 0.5) 0; 19 | } 20 | 21 | input[type="text"], 22 | input[type="password"], 23 | input[type="email"], 24 | input[type="tel"], 25 | input[type="search"], 26 | input[type="url"], 27 | select, 28 | textarea { 29 | @include vendor('appearance', 'none'); 30 | background: _palette(bg); 31 | border-radius: _size(border-radius); 32 | border: none; 33 | border: solid 1px _palette(border); 34 | color: inherit; 35 | display: block; 36 | outline: 0; 37 | padding: 0 1em; 38 | text-decoration: none; 39 | width: 100%; 40 | 41 | &:invalid { 42 | box-shadow: none; 43 | } 44 | 45 | &:focus { 46 | border-color: _palette(accent); 47 | box-shadow: 0 0 0 1px _palette(accent); 48 | } 49 | } 50 | 51 | select { 52 | background-image: svg-url(""); 53 | background-size: 1.25em; 54 | background-repeat: no-repeat; 55 | background-position: calc(100% - 1em) center; 56 | height: _size(element-height); 57 | padding-right: _size(element-height); 58 | text-overflow: ellipsis; 59 | 60 | option { 61 | color: _palette(fg-bold); 62 | background: _palette(bg); 63 | } 64 | 65 | &:focus { 66 | &::-ms-value { 67 | background-color: transparent; 68 | } 69 | } 70 | 71 | &::-ms-expand { 72 | display: none; 73 | } 74 | } 75 | 76 | input[type="text"], 77 | input[type="password"], 78 | input[type="email"], 79 | input[type="tel"], 80 | input[type="search"], 81 | input[type="url"], 82 | select { 83 | height: _size(element-height); 84 | } 85 | 86 | textarea { 87 | padding: 0.75em 1em; 88 | } 89 | 90 | input[type="checkbox"], 91 | input[type="radio"], { 92 | @include vendor('appearance', 'none'); 93 | display: block; 94 | float: left; 95 | margin-right: -2em; 96 | opacity: 0; 97 | width: 1em; 98 | z-index: -1; 99 | 100 | & + label { 101 | @include icon; 102 | color: _palette(fg); 103 | cursor: pointer; 104 | display: inline-block; 105 | font-size: 1em; 106 | font-weight: _font(weight); 107 | padding-left: (_size(element-height) * 0.6) + 0.75em; 108 | padding-right: 0.75em; 109 | position: relative; 110 | 111 | &:before { 112 | background: _palette(bg); 113 | border-radius: _size(border-radius); 114 | border: solid 1px _palette(border); 115 | content: ''; 116 | display: inline-block; 117 | height: (_size(element-height) * 0.6); 118 | left: 0; 119 | line-height: (_size(element-height) * 0.575); 120 | position: absolute; 121 | text-align: center; 122 | top: 0; 123 | width: (_size(element-height) * 0.6); 124 | } 125 | } 126 | 127 | &:checked + label { 128 | &:before { 129 | background: _palette(fg-bold); 130 | border-color: _palette(fg-bold); 131 | color: _palette(bg); 132 | content: '\f00c'; 133 | } 134 | } 135 | 136 | &:focus + label { 137 | &:before { 138 | border-color: _palette(accent); 139 | box-shadow: 0 0 0 1px _palette(accent); 140 | } 141 | } 142 | } 143 | 144 | input[type="checkbox"] { 145 | & + label { 146 | &:before { 147 | border-radius: _size(border-radius); 148 | } 149 | } 150 | } 151 | 152 | input[type="radio"] { 153 | & + label { 154 | &:before { 155 | border-radius: 100%; 156 | } 157 | } 158 | } 159 | 160 | ::-webkit-input-placeholder { 161 | color: _palette(fg-light) !important; 162 | opacity: 1.0; 163 | } 164 | 165 | :-moz-placeholder { 166 | color: _palette(fg-light) !important; 167 | opacity: 1.0; 168 | } 169 | 170 | ::-moz-placeholder { 171 | color: _palette(fg-light) !important; 172 | opacity: 1.0; 173 | } 174 | 175 | :-ms-input-placeholder { 176 | color: _palette(fg-light) !important; 177 | opacity: 1.0; 178 | } -------------------------------------------------------------------------------- /assets/sass/layout/_sidebar.scss: -------------------------------------------------------------------------------- 1 | /// 2 | /// Editorial by HTML5 UP 3 | /// html5up.net | @ajlkn 4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | /// 6 | 7 | /* Sidebar */ 8 | 9 | #search { 10 | form { 11 | @include icon; 12 | position: relative; 13 | 14 | &:before { 15 | @include vendor('transform', 'scaleX(-1)'); 16 | color: _palette(fg); 17 | content: '\f002'; 18 | cursor: default; 19 | display: block; 20 | font-size: 1.5em; 21 | height: _size(element-height) / 1.375; 22 | line-height: _size(element-height) / 1.375; 23 | opacity: 0.325; 24 | position: absolute; 25 | right: 0; 26 | text-align: center; 27 | top: 0; 28 | width: _size(element-height) / 1.375; 29 | } 30 | 31 | input[type="text"] { 32 | padding-right: _size(element-height); 33 | } 34 | } 35 | } 36 | 37 | #sidebar { 38 | $pad: 2em / 0.9; 39 | 40 | @include vendor('flex-grow', '0'); 41 | @include vendor('flex-shrink', '0'); 42 | @include vendor('transition', ( 43 | 'margin-left 0.5s ease', 44 | 'box-shadow 0.5s ease' 45 | )); 46 | background-color: _palette(bg-alt); 47 | font-size: 0.9em; 48 | position: relative; 49 | width: _size(sidebar-width); 50 | 51 | h2 { 52 | font-size: (1.25em / 0.9); 53 | } 54 | 55 | > .inner { 56 | @include padding($pad, $pad, (0, 0, $pad, 0)); 57 | position: relative; 58 | width: _size(sidebar-width); 59 | 60 | > * { 61 | border-bottom: solid 2px _palette(border); 62 | margin: 0 0 (_size(element-margin) * 1.75) 0; 63 | padding: 0 0 (_size(element-margin) * 1.75) 0; 64 | 65 | > :last-child { 66 | margin-bottom: 0; 67 | } 68 | 69 | &:last-child { 70 | border-bottom: 0; 71 | margin-bottom: 0; 72 | padding-bottom: 0; 73 | } 74 | } 75 | 76 | > .alt { 77 | background-color: darken(_palette(bg-alt), 2); 78 | border-bottom: 0; 79 | margin: ($pad * -1) 0 ($pad * 2) ($pad * -1); 80 | padding: $pad; 81 | width: calc(100% + #{$pad * 2}); 82 | } 83 | } 84 | 85 | .toggle { 86 | @include icon; 87 | @include vendor('transition', 'left 0.5s ease'); 88 | -webkit-tap-highlight-color: rgba(255,255,255,0); 89 | border: 0; 90 | display: block; 91 | height: 7.5em; 92 | left: _size(sidebar-width); 93 | line-height: 7.5em; 94 | outline: 0; 95 | overflow: hidden; 96 | position: absolute; 97 | text-align: center; 98 | text-indent: 7.5em; 99 | top: 0; 100 | width: 6em; 101 | z-index: _misc(z-index-base); 102 | 103 | &:before { 104 | content: '\f0c9'; 105 | font-size: 2rem; 106 | height: inherit; 107 | left: 0; 108 | line-height: inherit; 109 | position: absolute; 110 | text-indent: 0; 111 | top: 0; 112 | width: inherit; 113 | } 114 | } 115 | 116 | &.inactive { 117 | margin-left: (_size(sidebar-width) * -1); 118 | } 119 | 120 | @include breakpoint('<=xlarge') { 121 | $pad: 1.5em / 0.9; 122 | 123 | width: _size(sidebar-width-alt); 124 | 125 | > .inner { 126 | @include padding($pad, $pad, (0, 0, $pad, 0)); 127 | width: _size(sidebar-width-alt); 128 | 129 | > .alt { 130 | margin: ($pad * -1) 0 ($pad * 2) ($pad * -1); 131 | padding: $pad; 132 | width: calc(100% + #{$pad * 2}); 133 | } 134 | } 135 | 136 | .toggle { 137 | height: 6.25em; 138 | left: _size(sidebar-width-alt); 139 | line-height: 6.25em; 140 | text-indent: 5em; 141 | width: 5em; 142 | 143 | &:before { 144 | font-size: 1.5rem; 145 | } 146 | } 147 | 148 | &.inactive { 149 | margin-left: (_size(sidebar-width-alt) * -1); 150 | } 151 | } 152 | 153 | @include breakpoint('<=large') { 154 | box-shadow: 0 0 5em 0 rgba(0, 0, 0, 0.175); 155 | height: 100%; 156 | left: 0; 157 | position: fixed; 158 | top: 0; 159 | z-index: _misc(z-index-base); 160 | 161 | &.inactive { 162 | box-shadow: none; 163 | } 164 | 165 | > .inner { 166 | -webkit-overflow-scrolling: touch; 167 | height: 100%; 168 | left: 0; 169 | overflow-x: hidden; 170 | overflow-y: auto; 171 | position: absolute; 172 | top: 0; 173 | 174 | &:after { 175 | content: ''; 176 | display: block; 177 | height: 4em; 178 | width: 100%; 179 | } 180 | } 181 | 182 | .toggle { 183 | text-indent: 6em; 184 | width: 6em; 185 | 186 | &:before { 187 | font-size: 1.5rem; 188 | margin-left: (-0.875em / 2); 189 | } 190 | } 191 | 192 | body.is-preload & { 193 | display: none; 194 | } 195 | } 196 | 197 | @include breakpoint('<=small') { 198 | .toggle { 199 | text-indent: 7.25em; 200 | width: 7.25em; 201 | 202 | &:before { 203 | color: _palette(fg); 204 | margin-left: (-0.125em / 2); 205 | margin-top: (-0.5em / 2); 206 | font-size: 1.1rem; 207 | z-index: 1; 208 | } 209 | 210 | &:after { 211 | background: transparentize(lighten(_palette(fg), 35), 0.25); 212 | border-radius: _size(border-radius); 213 | content: ''; 214 | height: 3.5em; 215 | left: 1em; 216 | position: absolute; 217 | top: 1em; 218 | width: 5em; 219 | } 220 | } 221 | } 222 | } -------------------------------------------------------------------------------- /assets/sass/libs/_breakpoints.scss: -------------------------------------------------------------------------------- 1 | // breakpoints.scss v1.0 | @ajlkn | MIT licensed */ 2 | 3 | // Vars. 4 | 5 | /// Breakpoints. 6 | /// @var {list} 7 | $breakpoints: () !global; 8 | 9 | // Mixins. 10 | 11 | /// Sets breakpoints. 12 | /// @param {map} $x Breakpoints. 13 | @mixin breakpoints($x: ()) { 14 | $breakpoints: $x !global; 15 | } 16 | 17 | /// Wraps @content in a @media block targeting a specific orientation. 18 | /// @param {string} $orientation Orientation. 19 | @mixin orientation($orientation) { 20 | @media screen and (orientation: #{$orientation}) { 21 | @content; 22 | } 23 | } 24 | 25 | /// Wraps @content in a @media block using a given query. 26 | /// @param {string} $query Query. 27 | @mixin breakpoint($query: null) { 28 | 29 | $breakpoint: null; 30 | $op: null; 31 | $media: null; 32 | 33 | // Determine operator, breakpoint. 34 | 35 | // Greater than or equal. 36 | @if (str-slice($query, 0, 2) == '>=') { 37 | 38 | $op: 'gte'; 39 | $breakpoint: str-slice($query, 3); 40 | 41 | } 42 | 43 | // Less than or equal. 44 | @elseif (str-slice($query, 0, 2) == '<=') { 45 | 46 | $op: 'lte'; 47 | $breakpoint: str-slice($query, 3); 48 | 49 | } 50 | 51 | // Greater than. 52 | @elseif (str-slice($query, 0, 1) == '>') { 53 | 54 | $op: 'gt'; 55 | $breakpoint: str-slice($query, 2); 56 | 57 | } 58 | 59 | // Less than. 60 | @elseif (str-slice($query, 0, 1) == '<') { 61 | 62 | $op: 'lt'; 63 | $breakpoint: str-slice($query, 2); 64 | 65 | } 66 | 67 | // Not. 68 | @elseif (str-slice($query, 0, 1) == '!') { 69 | 70 | $op: 'not'; 71 | $breakpoint: str-slice($query, 2); 72 | 73 | } 74 | 75 | // Equal. 76 | @else { 77 | 78 | $op: 'eq'; 79 | $breakpoint: $query; 80 | 81 | } 82 | 83 | // Build media. 84 | @if ($breakpoint and map-has-key($breakpoints, $breakpoint)) { 85 | 86 | $a: map-get($breakpoints, $breakpoint); 87 | 88 | // Range. 89 | @if (type-of($a) == 'list') { 90 | 91 | $x: nth($a, 1); 92 | $y: nth($a, 2); 93 | 94 | // Max only. 95 | @if ($x == null) { 96 | 97 | // Greater than or equal (>= 0 / anything) 98 | @if ($op == 'gte') { 99 | $media: 'screen'; 100 | } 101 | 102 | // Less than or equal (<= y) 103 | @elseif ($op == 'lte') { 104 | $media: 'screen and (max-width: ' + $y + ')'; 105 | } 106 | 107 | // Greater than (> y) 108 | @elseif ($op == 'gt') { 109 | $media: 'screen and (min-width: ' + ($y + 1) + ')'; 110 | } 111 | 112 | // Less than (< 0 / invalid) 113 | @elseif ($op == 'lt') { 114 | $media: 'screen and (max-width: -1px)'; 115 | } 116 | 117 | // Not (> y) 118 | @elseif ($op == 'not') { 119 | $media: 'screen and (min-width: ' + ($y + 1) + ')'; 120 | } 121 | 122 | // Equal (<= y) 123 | @else { 124 | $media: 'screen and (max-width: ' + $y + ')'; 125 | } 126 | 127 | } 128 | 129 | // Min only. 130 | @else if ($y == null) { 131 | 132 | // Greater than or equal (>= x) 133 | @if ($op == 'gte') { 134 | $media: 'screen and (min-width: ' + $x + ')'; 135 | } 136 | 137 | // Less than or equal (<= inf / anything) 138 | @elseif ($op == 'lte') { 139 | $media: 'screen'; 140 | } 141 | 142 | // Greater than (> inf / invalid) 143 | @elseif ($op == 'gt') { 144 | $media: 'screen and (max-width: -1px)'; 145 | } 146 | 147 | // Less than (< x) 148 | @elseif ($op == 'lt') { 149 | $media: 'screen and (max-width: ' + ($x - 1) + ')'; 150 | } 151 | 152 | // Not (< x) 153 | @elseif ($op == 'not') { 154 | $media: 'screen and (max-width: ' + ($x - 1) + ')'; 155 | } 156 | 157 | // Equal (>= x) 158 | @else { 159 | $media: 'screen and (min-width: ' + $x + ')'; 160 | } 161 | 162 | } 163 | 164 | // Min and max. 165 | @else { 166 | 167 | // Greater than or equal (>= x) 168 | @if ($op == 'gte') { 169 | $media: 'screen and (min-width: ' + $x + ')'; 170 | } 171 | 172 | // Less than or equal (<= y) 173 | @elseif ($op == 'lte') { 174 | $media: 'screen and (max-width: ' + $y + ')'; 175 | } 176 | 177 | // Greater than (> y) 178 | @elseif ($op == 'gt') { 179 | $media: 'screen and (min-width: ' + ($y + 1) + ')'; 180 | } 181 | 182 | // Less than (< x) 183 | @elseif ($op == 'lt') { 184 | $media: 'screen and (max-width: ' + ($x - 1) + ')'; 185 | } 186 | 187 | // Not (< x and > y) 188 | @elseif ($op == 'not') { 189 | $media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')'; 190 | } 191 | 192 | // Equal (>= x and <= y) 193 | @else { 194 | $media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')'; 195 | } 196 | 197 | } 198 | 199 | } 200 | 201 | // String. 202 | @else { 203 | 204 | // Missing a media type? Prefix with "screen". 205 | @if (str-slice($a, 0, 1) == '(') { 206 | $media: 'screen and ' + $a; 207 | } 208 | 209 | // Otherwise, use as-is. 210 | @else { 211 | $media: $a; 212 | } 213 | 214 | } 215 | 216 | } 217 | 218 | // Output. 219 | @media #{$media} { 220 | @content; 221 | } 222 | 223 | } -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | Editorial by HTML5 UP 3 | html5up.net | @ajlkn 4 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | */ 6 | 7 | (function($) { 8 | 9 | var $window = $(window), 10 | $head = $('head'), 11 | $body = $('body'); 12 | 13 | // Breakpoints. 14 | breakpoints({ 15 | xlarge: [ '1281px', '1680px' ], 16 | large: [ '981px', '1280px' ], 17 | medium: [ '737px', '980px' ], 18 | small: [ '481px', '736px' ], 19 | xsmall: [ '361px', '480px' ], 20 | xxsmall: [ null, '360px' ], 21 | 'xlarge-to-max': '(min-width: 1681px)', 22 | 'small-to-xlarge': '(min-width: 481px) and (max-width: 1680px)' 23 | }); 24 | 25 | // Stops animations/transitions until the page has ... 26 | 27 | // ... loaded. 28 | $window.on('load', function() { 29 | window.setTimeout(function() { 30 | $body.removeClass('is-preload'); 31 | }, 100); 32 | }); 33 | 34 | // ... stopped resizing. 35 | var resizeTimeout; 36 | 37 | $window.on('resize', function() { 38 | 39 | // Mark as resizing. 40 | $body.addClass('is-resizing'); 41 | 42 | // Unmark after delay. 43 | clearTimeout(resizeTimeout); 44 | 45 | resizeTimeout = setTimeout(function() { 46 | $body.removeClass('is-resizing'); 47 | }, 100); 48 | 49 | }); 50 | 51 | // Fixes. 52 | 53 | // Object fit images. 54 | if (!browser.canUse('object-fit') 55 | || browser.name == 'safari') 56 | $('.image.object').each(function() { 57 | 58 | var $this = $(this), 59 | $img = $this.children('img'); 60 | 61 | // Hide original image. 62 | $img.css('opacity', '0'); 63 | 64 | // Set background. 65 | $this 66 | .css('background-image', 'url("' + $img.attr('src') + '")') 67 | .css('background-size', $img.css('object-fit') ? $img.css('object-fit') : 'cover') 68 | .css('background-position', $img.css('object-position') ? $img.css('object-position') : 'center'); 69 | 70 | }); 71 | 72 | // Sidebar. 73 | var $sidebar = $('#sidebar'), 74 | $sidebar_inner = $sidebar.children('.inner'); 75 | 76 | // Inactive by default on <= large. 77 | breakpoints.on('<=large', function() { 78 | $sidebar.addClass('inactive'); 79 | }); 80 | 81 | breakpoints.on('>large', function() { 82 | $sidebar.removeClass('inactive'); 83 | }); 84 | 85 | // Hack: Workaround for Chrome/Android scrollbar position bug. 86 | if (browser.os == 'android' 87 | && browser.name == 'chrome') 88 | $('') 89 | .appendTo($head); 90 | 91 | // Toggle. 92 | $('Toggle') 93 | .appendTo($sidebar) 94 | .on('click', function(event) { 95 | 96 | // Prevent default. 97 | event.preventDefault(); 98 | event.stopPropagation(); 99 | 100 | // Toggle. 101 | $sidebar.toggleClass('inactive'); 102 | 103 | }); 104 | 105 | // Events. 106 | 107 | // Link clicks. 108 | $sidebar.on('click', 'a', function(event) { 109 | 110 | // >large? Bail. 111 | if (breakpoints.active('>large')) 112 | return; 113 | 114 | // Vars. 115 | var $a = $(this), 116 | href = $a.attr('href'), 117 | target = $a.attr('target'); 118 | 119 | // Prevent default. 120 | event.preventDefault(); 121 | event.stopPropagation(); 122 | 123 | // Check URL. 124 | if (!href || href == '#' || href == '') 125 | return; 126 | 127 | // Hide sidebar. 128 | $sidebar.addClass('inactive'); 129 | 130 | // Redirect to href. 131 | setTimeout(function() { 132 | 133 | if (target == '_blank') 134 | window.open(href); 135 | else 136 | window.location.href = href; 137 | 138 | }, 500); 139 | 140 | }); 141 | 142 | // Prevent certain events inside the panel from bubbling. 143 | $sidebar.on('click touchend touchstart touchmove', function(event) { 144 | 145 | // >large? Bail. 146 | if (breakpoints.active('>large')) 147 | return; 148 | 149 | // Prevent propagation. 150 | event.stopPropagation(); 151 | 152 | }); 153 | 154 | // Hide panel on body click/tap. 155 | $body.on('click touchend', function(event) { 156 | 157 | // >large? Bail. 158 | if (breakpoints.active('>large')) 159 | return; 160 | 161 | // Deactivate. 162 | $sidebar.addClass('inactive'); 163 | 164 | }); 165 | 166 | // Scroll lock. 167 | // Note: If you do anything to change the height of the sidebar's content, be sure to 168 | // trigger 'resize.sidebar-lock' on $window so stuff doesn't get out of sync. 169 | 170 | $window.on('load.sidebar-lock', function() { 171 | 172 | var sh, wh, st; 173 | 174 | // Reset scroll position to 0 if it's 1. 175 | if ($window.scrollTop() == 1) 176 | $window.scrollTop(0); 177 | 178 | $window 179 | .on('scroll.sidebar-lock', function() { 180 | 181 | var x, y; 182 | 183 | // <=large? Bail. 184 | if (breakpoints.active('<=large')) { 185 | 186 | $sidebar_inner 187 | .data('locked', 0) 188 | .css('position', '') 189 | .css('top', ''); 190 | 191 | return; 192 | 193 | } 194 | 195 | // Calculate positions. 196 | x = Math.max(sh - wh, 0); 197 | y = Math.max(0, $window.scrollTop() - x); 198 | 199 | // Lock/unlock. 200 | if ($sidebar_inner.data('locked') == 1) { 201 | 202 | if (y <= 0) 203 | $sidebar_inner 204 | .data('locked', 0) 205 | .css('position', '') 206 | .css('top', ''); 207 | else 208 | $sidebar_inner 209 | .css('top', -1 * x); 210 | 211 | } 212 | else { 213 | 214 | if (y > 0) 215 | $sidebar_inner 216 | .data('locked', 1) 217 | .css('position', 'fixed') 218 | .css('top', -1 * x); 219 | 220 | } 221 | 222 | }) 223 | .on('resize.sidebar-lock', function() { 224 | 225 | // Calculate heights. 226 | wh = $window.height(); 227 | sh = $sidebar_inner.outerHeight() + 30; 228 | 229 | // Trigger scroll. 230 | $window.trigger('scroll.sidebar-lock'); 231 | 232 | }) 233 | .trigger('resize.sidebar-lock'); 234 | 235 | }); 236 | 237 | // Menu. 238 | var $menu = $('#menu'), 239 | $menu_openers = $menu.children('ul').find('.opener'); 240 | 241 | // Openers. 242 | $menu_openers.each(function() { 243 | 244 | var $this = $(this); 245 | 246 | $this.on('click', function(event) { 247 | 248 | // Prevent default. 249 | event.preventDefault(); 250 | 251 | // Toggle. 252 | $menu_openers.not($this).removeClass('active'); 253 | $this.toggleClass('active'); 254 | 255 | // Trigger resize (sidebar lock). 256 | $window.triggerHandler('resize.sidebar-lock'); 257 | 258 | }); 259 | 260 | }); 261 | 262 | })(jQuery); -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | A2OS 6 | 7 | 8 | 9 | 10 | 29 | 30 | 31 | 32 |
33 |
34 |
35 | 43 | 44 | 54 | 55 |
56 |
57 |

A2OS 资源概览

58 |
59 |
60 |
61 | Blogroll 62 |

南航大 Blog 收集计划

63 |
64 |
65 |
66 |
67 |
68 | BBS 69 |

A2OS 技术论坛

70 |
71 |
72 |
73 |
74 |
75 | Anyknew 76 |

南航校园信息聚合平台

77 |
78 |
79 |
80 |
81 |
82 | FTP 83 |

A2OS FTP 站点

84 |
85 |
86 |
87 |
88 |
89 | SafeU 90 |

安全、快速的文件分享渠道

91 |
92 |
93 |
94 |
95 |
96 | Weekly 97 |

周常培训

98 |
99 |
100 |
101 | 102 |
103 |
104 |

A2OS Weekly

105 |
106 |
107 |
108 |

109 | 各位同学:
110 | 经历了一个暑假,A2OS 的 Weekly 又开始了,本周由我给大家带来的主题是《我是如何从0到1参与 Swift 的开发》。
111 | 我第一次冒出参与 Swift 编译器的开发是从 Swift Forum 上的一个帖子开始的,如果我想给 Swift 编译器贡献代码我该学习什么?在这个帖子里面,很多人给出了如何学习编译器。
112 | 在我前往美国圣何塞参加了 WWDC 听 What‘s new in Swift 的时候,发现有一个新特性是一个高中生提出并完成开发的,那是我坚定了尝试参与 Swift Compiler 开发。
113 | 于是利用周末的时间选择了 Swift 的一个 Starter bug 并修复了它,整个过程还是相当有趣的。
114 |
115 | 时间:2019.11.9 晚上 7:30 - 8:30
116 | 地点:将军路校区一号楼6楼学生IT创新创业区会议室
117 | 讲者:赵子渊 118 |

119 |
120 |
121 |
122 |
123 |

124 | 您可以 125 | 关注邮件列表及时获取 A2OS Weekly 的消息 126 | 或者 127 | 查看历届 A2OS Weekly 128 |

129 |
130 |
131 |
132 | 133 |
134 |
135 |

Members

136 |
137 |
138 |
139 |
140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 |
152 |
153 |
154 |
155 |
156 |
157 |

加入我们的 GitHub 组织并设置 Public 权限,你将会出现在这里。

158 |
159 |
160 |
161 | 162 |
163 |
164 |

Sponsors

165 |
166 |
167 |
168 |
169 | 170 | 171 | 172 | 173 | 174 |
175 |
176 |
177 |
178 | 186 |
187 |
188 |
189 | 190 | 217 |
218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | -------------------------------------------------------------------------------- /assets/sass/libs/_vendor.scss: -------------------------------------------------------------------------------- 1 | // vendor.scss v1.0 | @ajlkn | MIT licensed */ 2 | 3 | // Vars. 4 | 5 | /// Vendor prefixes. 6 | /// @var {list} 7 | $vendor-prefixes: ( 8 | '-moz-', 9 | '-webkit-', 10 | '-ms-', 11 | '' 12 | ); 13 | 14 | /// Properties that should be vendorized. 15 | /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org 16 | /// @var {list} 17 | $vendor-properties: ( 18 | 19 | // Animation. 20 | 'animation', 21 | 'animation-delay', 22 | 'animation-direction', 23 | 'animation-duration', 24 | 'animation-fill-mode', 25 | 'animation-iteration-count', 26 | 'animation-name', 27 | 'animation-play-state', 28 | 'animation-timing-function', 29 | 30 | // Appearance. 31 | 'appearance', 32 | 33 | // Backdrop filter. 34 | 'backdrop-filter', 35 | 36 | // Background image options. 37 | 'background-clip', 38 | 'background-origin', 39 | 'background-size', 40 | 41 | // Box sizing. 42 | 'box-sizing', 43 | 44 | // Clip path. 45 | 'clip-path', 46 | 47 | // Filter effects. 48 | 'filter', 49 | 50 | // Flexbox. 51 | 'align-content', 52 | 'align-items', 53 | 'align-self', 54 | 'flex', 55 | 'flex-basis', 56 | 'flex-direction', 57 | 'flex-flow', 58 | 'flex-grow', 59 | 'flex-shrink', 60 | 'flex-wrap', 61 | 'justify-content', 62 | 'order', 63 | 64 | // Font feature. 65 | 'font-feature-settings', 66 | 'font-language-override', 67 | 'font-variant-ligatures', 68 | 69 | // Font kerning. 70 | 'font-kerning', 71 | 72 | // Fragmented borders and backgrounds. 73 | 'box-decoration-break', 74 | 75 | // Grid layout. 76 | 'grid-column', 77 | 'grid-column-align', 78 | 'grid-column-end', 79 | 'grid-column-start', 80 | 'grid-row', 81 | 'grid-row-align', 82 | 'grid-row-end', 83 | 'grid-row-start', 84 | 'grid-template-columns', 85 | 'grid-template-rows', 86 | 87 | // Hyphens. 88 | 'hyphens', 89 | 'word-break', 90 | 91 | // Masks. 92 | 'mask', 93 | 'mask-border', 94 | 'mask-border-outset', 95 | 'mask-border-repeat', 96 | 'mask-border-slice', 97 | 'mask-border-source', 98 | 'mask-border-width', 99 | 'mask-clip', 100 | 'mask-composite', 101 | 'mask-image', 102 | 'mask-origin', 103 | 'mask-position', 104 | 'mask-repeat', 105 | 'mask-size', 106 | 107 | // Multicolumn. 108 | 'break-after', 109 | 'break-before', 110 | 'break-inside', 111 | 'column-count', 112 | 'column-fill', 113 | 'column-gap', 114 | 'column-rule', 115 | 'column-rule-color', 116 | 'column-rule-style', 117 | 'column-rule-width', 118 | 'column-span', 119 | 'column-width', 120 | 'columns', 121 | 122 | // Object fit. 123 | 'object-fit', 124 | 'object-position', 125 | 126 | // Regions. 127 | 'flow-from', 128 | 'flow-into', 129 | 'region-fragment', 130 | 131 | // Scroll snap points. 132 | 'scroll-snap-coordinate', 133 | 'scroll-snap-destination', 134 | 'scroll-snap-points-x', 135 | 'scroll-snap-points-y', 136 | 'scroll-snap-type', 137 | 138 | // Shapes. 139 | 'shape-image-threshold', 140 | 'shape-margin', 141 | 'shape-outside', 142 | 143 | // Tab size. 144 | 'tab-size', 145 | 146 | // Text align last. 147 | 'text-align-last', 148 | 149 | // Text decoration. 150 | 'text-decoration-color', 151 | 'text-decoration-line', 152 | 'text-decoration-skip', 153 | 'text-decoration-style', 154 | 155 | // Text emphasis. 156 | 'text-emphasis', 157 | 'text-emphasis-color', 158 | 'text-emphasis-position', 159 | 'text-emphasis-style', 160 | 161 | // Text size adjust. 162 | 'text-size-adjust', 163 | 164 | // Text spacing. 165 | 'text-spacing', 166 | 167 | // Transform. 168 | 'transform', 169 | 'transform-origin', 170 | 171 | // Transform 3D. 172 | 'backface-visibility', 173 | 'perspective', 174 | 'perspective-origin', 175 | 'transform-style', 176 | 177 | // Transition. 178 | 'transition', 179 | 'transition-delay', 180 | 'transition-duration', 181 | 'transition-property', 182 | 'transition-timing-function', 183 | 184 | // Unicode bidi. 185 | 'unicode-bidi', 186 | 187 | // User select. 188 | 'user-select', 189 | 190 | // Writing mode. 191 | 'writing-mode', 192 | 193 | ); 194 | 195 | /// Values that should be vendorized. 196 | /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org 197 | /// @var {list} 198 | $vendor-values: ( 199 | 200 | // Cross fade. 201 | 'cross-fade', 202 | 203 | // Element function. 204 | 'element', 205 | 206 | // Filter function. 207 | 'filter', 208 | 209 | // Flexbox. 210 | 'flex', 211 | 'inline-flex', 212 | 213 | // Grab cursors. 214 | 'grab', 215 | 'grabbing', 216 | 217 | // Gradients. 218 | 'linear-gradient', 219 | 'repeating-linear-gradient', 220 | 'radial-gradient', 221 | 'repeating-radial-gradient', 222 | 223 | // Grid layout. 224 | 'grid', 225 | 'inline-grid', 226 | 227 | // Image set. 228 | 'image-set', 229 | 230 | // Intrinsic width. 231 | 'max-content', 232 | 'min-content', 233 | 'fit-content', 234 | 'fill', 235 | 'fill-available', 236 | 'stretch', 237 | 238 | // Sticky position. 239 | 'sticky', 240 | 241 | // Transform. 242 | 'transform', 243 | 244 | // Zoom cursors. 245 | 'zoom-in', 246 | 'zoom-out', 247 | 248 | ); 249 | 250 | // Functions. 251 | 252 | /// Removes a specific item from a list. 253 | /// @author Hugo Giraudel 254 | /// @param {list} $list List. 255 | /// @param {integer} $index Index. 256 | /// @return {list} Updated list. 257 | @function remove-nth($list, $index) { 258 | 259 | $result: null; 260 | 261 | @if type-of($index) != number { 262 | @warn "$index: #{quote($index)} is not a number for `remove-nth`."; 263 | } 264 | @else if $index == 0 { 265 | @warn "List index 0 must be a non-zero integer for `remove-nth`."; 266 | } 267 | @else if abs($index) > length($list) { 268 | @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`."; 269 | } 270 | @else { 271 | 272 | $result: (); 273 | $index: if($index < 0, length($list) + $index + 1, $index); 274 | 275 | @for $i from 1 through length($list) { 276 | 277 | @if $i != $index { 278 | $result: append($result, nth($list, $i)); 279 | } 280 | 281 | } 282 | 283 | } 284 | 285 | @return $result; 286 | 287 | } 288 | 289 | /// Replaces a substring within another string. 290 | /// @author Hugo Giraudel 291 | /// @param {string} $string String. 292 | /// @param {string} $search Substring. 293 | /// @param {string} $replace Replacement. 294 | /// @return {string} Updated string. 295 | @function str-replace($string, $search, $replace: '') { 296 | 297 | $index: str-index($string, $search); 298 | 299 | @if $index { 300 | @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); 301 | } 302 | 303 | @return $string; 304 | 305 | } 306 | 307 | /// Replaces a substring within each string in a list. 308 | /// @param {list} $strings List of strings. 309 | /// @param {string} $search Substring. 310 | /// @param {string} $replace Replacement. 311 | /// @return {list} Updated list of strings. 312 | @function str-replace-all($strings, $search, $replace: '') { 313 | 314 | @each $string in $strings { 315 | $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace)); 316 | } 317 | 318 | @return $strings; 319 | 320 | } 321 | 322 | // Mixins. 323 | 324 | /// Wraps @content in vendorized keyframe blocks. 325 | /// @param {string} $name Name. 326 | @mixin keyframes($name) { 327 | 328 | @-moz-keyframes #{$name} { @content; } 329 | @-webkit-keyframes #{$name} { @content; } 330 | @-ms-keyframes #{$name} { @content; } 331 | @keyframes #{$name} { @content; } 332 | 333 | } 334 | 335 | /// Vendorizes a declaration's property and/or value(s). 336 | /// @param {string} $property Property. 337 | /// @param {mixed} $value String/list of value(s). 338 | @mixin vendor($property, $value) { 339 | 340 | // Determine if property should expand. 341 | $expandProperty: index($vendor-properties, $property); 342 | 343 | // Determine if value should expand (and if so, add '-prefix-' placeholder). 344 | $expandValue: false; 345 | 346 | @each $x in $value { 347 | @each $y in $vendor-values { 348 | @if $y == str-slice($x, 1, str-length($y)) { 349 | 350 | $value: set-nth($value, index($value, $x), '-prefix-' + $x); 351 | $expandValue: true; 352 | 353 | } 354 | } 355 | } 356 | 357 | // Expand property? 358 | @if $expandProperty { 359 | @each $vendor in $vendor-prefixes { 360 | #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; 361 | } 362 | } 363 | 364 | // Expand just the value? 365 | @elseif $expandValue { 366 | @each $vendor in $vendor-prefixes { 367 | #{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; 368 | } 369 | } 370 | 371 | // Neither? Treat them as a normal declaration. 372 | @else { 373 | #{$property}: #{$value}; 374 | } 375 | 376 | } -------------------------------------------------------------------------------- /assets/js/util.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 3 | /** 4 | * Generate an indented list of links from a nav. Meant for use with panel(). 5 | * @return {jQuery} jQuery object. 6 | */ 7 | $.fn.navList = function() { 8 | 9 | var $this = $(this); 10 | $a = $this.find('a'), 11 | b = []; 12 | 13 | $a.each(function() { 14 | 15 | var $this = $(this), 16 | indent = Math.max(0, $this.parents('li').length - 1), 17 | href = $this.attr('href'), 18 | target = $this.attr('target'); 19 | 20 | b.push( 21 | '' + 26 | '' + 27 | $this.text() + 28 | '' 29 | ); 30 | 31 | }); 32 | 33 | return b.join(''); 34 | 35 | }; 36 | 37 | /** 38 | * Panel-ify an element. 39 | * @param {object} userConfig User config. 40 | * @return {jQuery} jQuery object. 41 | */ 42 | $.fn.panel = function(userConfig) { 43 | 44 | // No elements? 45 | if (this.length == 0) 46 | return $this; 47 | 48 | // Multiple elements? 49 | if (this.length > 1) { 50 | 51 | for (var i=0; i < this.length; i++) 52 | $(this[i]).panel(userConfig); 53 | 54 | return $this; 55 | 56 | } 57 | 58 | // Vars. 59 | var $this = $(this), 60 | $body = $('body'), 61 | $window = $(window), 62 | id = $this.attr('id'), 63 | config; 64 | 65 | // Config. 66 | config = $.extend({ 67 | 68 | // Delay. 69 | delay: 0, 70 | 71 | // Hide panel on link click. 72 | hideOnClick: false, 73 | 74 | // Hide panel on escape keypress. 75 | hideOnEscape: false, 76 | 77 | // Hide panel on swipe. 78 | hideOnSwipe: false, 79 | 80 | // Reset scroll position on hide. 81 | resetScroll: false, 82 | 83 | // Reset forms on hide. 84 | resetForms: false, 85 | 86 | // Side of viewport the panel will appear. 87 | side: null, 88 | 89 | // Target element for "class". 90 | target: $this, 91 | 92 | // Class to toggle. 93 | visibleClass: 'visible' 94 | 95 | }, userConfig); 96 | 97 | // Expand "target" if it's not a jQuery object already. 98 | if (typeof config.target != 'jQuery') 99 | config.target = $(config.target); 100 | 101 | // Panel. 102 | 103 | // Methods. 104 | $this._hide = function(event) { 105 | 106 | // Already hidden? Bail. 107 | if (!config.target.hasClass(config.visibleClass)) 108 | return; 109 | 110 | // If an event was provided, cancel it. 111 | if (event) { 112 | 113 | event.preventDefault(); 114 | event.stopPropagation(); 115 | 116 | } 117 | 118 | // Hide. 119 | config.target.removeClass(config.visibleClass); 120 | 121 | // Post-hide stuff. 122 | window.setTimeout(function() { 123 | 124 | // Reset scroll position. 125 | if (config.resetScroll) 126 | $this.scrollTop(0); 127 | 128 | // Reset forms. 129 | if (config.resetForms) 130 | $this.find('form').each(function() { 131 | this.reset(); 132 | }); 133 | 134 | }, config.delay); 135 | 136 | }; 137 | 138 | // Vendor fixes. 139 | $this 140 | .css('-ms-overflow-style', '-ms-autohiding-scrollbar') 141 | .css('-webkit-overflow-scrolling', 'touch'); 142 | 143 | // Hide on click. 144 | if (config.hideOnClick) { 145 | 146 | $this.find('a') 147 | .css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)'); 148 | 149 | $this 150 | .on('click', 'a', function(event) { 151 | 152 | var $a = $(this), 153 | href = $a.attr('href'), 154 | target = $a.attr('target'); 155 | 156 | if (!href || href == '#' || href == '' || href == '#' + id) 157 | return; 158 | 159 | // Cancel original event. 160 | event.preventDefault(); 161 | event.stopPropagation(); 162 | 163 | // Hide panel. 164 | $this._hide(); 165 | 166 | // Redirect to href. 167 | window.setTimeout(function() { 168 | 169 | if (target == '_blank') 170 | window.open(href); 171 | else 172 | window.location.href = href; 173 | 174 | }, config.delay + 10); 175 | 176 | }); 177 | 178 | } 179 | 180 | // Event: Touch stuff. 181 | $this.on('touchstart', function(event) { 182 | 183 | $this.touchPosX = event.originalEvent.touches[0].pageX; 184 | $this.touchPosY = event.originalEvent.touches[0].pageY; 185 | 186 | }) 187 | 188 | $this.on('touchmove', function(event) { 189 | 190 | if ($this.touchPosX === null 191 | || $this.touchPosY === null) 192 | return; 193 | 194 | var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX, 195 | diffY = $this.touchPosY - event.originalEvent.touches[0].pageY, 196 | th = $this.outerHeight(), 197 | ts = ($this.get(0).scrollHeight - $this.scrollTop()); 198 | 199 | // Hide on swipe? 200 | if (config.hideOnSwipe) { 201 | 202 | var result = false, 203 | boundary = 20, 204 | delta = 50; 205 | 206 | switch (config.side) { 207 | 208 | case 'left': 209 | result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta); 210 | break; 211 | 212 | case 'right': 213 | result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta)); 214 | break; 215 | 216 | case 'top': 217 | result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta); 218 | break; 219 | 220 | case 'bottom': 221 | result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta)); 222 | break; 223 | 224 | default: 225 | break; 226 | 227 | } 228 | 229 | if (result) { 230 | 231 | $this.touchPosX = null; 232 | $this.touchPosY = null; 233 | $this._hide(); 234 | 235 | return false; 236 | 237 | } 238 | 239 | } 240 | 241 | // Prevent vertical scrolling past the top or bottom. 242 | if (($this.scrollTop() < 0 && diffY < 0) 243 | || (ts > (th - 2) && ts < (th + 2) && diffY > 0)) { 244 | 245 | event.preventDefault(); 246 | event.stopPropagation(); 247 | 248 | } 249 | 250 | }); 251 | 252 | // Event: Prevent certain events inside the panel from bubbling. 253 | $this.on('click touchend touchstart touchmove', function(event) { 254 | event.stopPropagation(); 255 | }); 256 | 257 | // Event: Hide panel if a child anchor tag pointing to its ID is clicked. 258 | $this.on('click', 'a[href="#' + id + '"]', function(event) { 259 | 260 | event.preventDefault(); 261 | event.stopPropagation(); 262 | 263 | config.target.removeClass(config.visibleClass); 264 | 265 | }); 266 | 267 | // Body. 268 | 269 | // Event: Hide panel on body click/tap. 270 | $body.on('click touchend', function(event) { 271 | $this._hide(event); 272 | }); 273 | 274 | // Event: Toggle. 275 | $body.on('click', 'a[href="#' + id + '"]', function(event) { 276 | 277 | event.preventDefault(); 278 | event.stopPropagation(); 279 | 280 | config.target.toggleClass(config.visibleClass); 281 | 282 | }); 283 | 284 | // Window. 285 | 286 | // Event: Hide on ESC. 287 | if (config.hideOnEscape) 288 | $window.on('keydown', function(event) { 289 | 290 | if (event.keyCode == 27) 291 | $this._hide(event); 292 | 293 | }); 294 | 295 | return $this; 296 | 297 | }; 298 | 299 | /** 300 | * Apply "placeholder" attribute polyfill to one or more forms. 301 | * @return {jQuery} jQuery object. 302 | */ 303 | $.fn.placeholder = function() { 304 | 305 | // Browser natively supports placeholders? Bail. 306 | if (typeof (document.createElement('input')).placeholder != 'undefined') 307 | return $(this); 308 | 309 | // No elements? 310 | if (this.length == 0) 311 | return $this; 312 | 313 | // Multiple elements? 314 | if (this.length > 1) { 315 | 316 | for (var i=0; i < this.length; i++) 317 | $(this[i]).placeholder(); 318 | 319 | return $this; 320 | 321 | } 322 | 323 | // Vars. 324 | var $this = $(this); 325 | 326 | // Text, TextArea. 327 | $this.find('input[type=text],textarea') 328 | .each(function() { 329 | 330 | var i = $(this); 331 | 332 | if (i.val() == '' 333 | || i.val() == i.attr('placeholder')) 334 | i 335 | .addClass('polyfill-placeholder') 336 | .val(i.attr('placeholder')); 337 | 338 | }) 339 | .on('blur', function() { 340 | 341 | var i = $(this); 342 | 343 | if (i.attr('name').match(/-polyfill-field$/)) 344 | return; 345 | 346 | if (i.val() == '') 347 | i 348 | .addClass('polyfill-placeholder') 349 | .val(i.attr('placeholder')); 350 | 351 | }) 352 | .on('focus', function() { 353 | 354 | var i = $(this); 355 | 356 | if (i.attr('name').match(/-polyfill-field$/)) 357 | return; 358 | 359 | if (i.val() == i.attr('placeholder')) 360 | i 361 | .removeClass('polyfill-placeholder') 362 | .val(''); 363 | 364 | }); 365 | 366 | // Password. 367 | $this.find('input[type=password]') 368 | .each(function() { 369 | 370 | var i = $(this); 371 | var x = $( 372 | $('
') 373 | .append(i.clone()) 374 | .remove() 375 | .html() 376 | .replace(/type="password"/i, 'type="text"') 377 | .replace(/type=password/i, 'type=text') 378 | ); 379 | 380 | if (i.attr('id') != '') 381 | x.attr('id', i.attr('id') + '-polyfill-field'); 382 | 383 | if (i.attr('name') != '') 384 | x.attr('name', i.attr('name') + '-polyfill-field'); 385 | 386 | x.addClass('polyfill-placeholder') 387 | .val(x.attr('placeholder')).insertAfter(i); 388 | 389 | if (i.val() == '') 390 | i.hide(); 391 | else 392 | x.hide(); 393 | 394 | i 395 | .on('blur', function(event) { 396 | 397 | event.preventDefault(); 398 | 399 | var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); 400 | 401 | if (i.val() == '') { 402 | 403 | i.hide(); 404 | x.show(); 405 | 406 | } 407 | 408 | }); 409 | 410 | x 411 | .on('focus', function(event) { 412 | 413 | event.preventDefault(); 414 | 415 | var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']'); 416 | 417 | x.hide(); 418 | 419 | i 420 | .show() 421 | .focus(); 422 | 423 | }) 424 | .on('keypress', function(event) { 425 | 426 | event.preventDefault(); 427 | x.val(''); 428 | 429 | }); 430 | 431 | }); 432 | 433 | // Events. 434 | $this 435 | .on('submit', function() { 436 | 437 | $this.find('input[type=text],input[type=password],textarea') 438 | .each(function(event) { 439 | 440 | var i = $(this); 441 | 442 | if (i.attr('name').match(/-polyfill-field$/)) 443 | i.attr('name', ''); 444 | 445 | if (i.val() == i.attr('placeholder')) { 446 | 447 | i.removeClass('polyfill-placeholder'); 448 | i.val(''); 449 | 450 | } 451 | 452 | }); 453 | 454 | }) 455 | .on('reset', function(event) { 456 | 457 | event.preventDefault(); 458 | 459 | $this.find('select') 460 | .val($('option:first').val()); 461 | 462 | $this.find('input,textarea') 463 | .each(function() { 464 | 465 | var i = $(this), 466 | x; 467 | 468 | i.removeClass('polyfill-placeholder'); 469 | 470 | switch (this.type) { 471 | 472 | case 'submit': 473 | case 'reset': 474 | break; 475 | 476 | case 'password': 477 | i.val(i.attr('defaultValue')); 478 | 479 | x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); 480 | 481 | if (i.val() == '') { 482 | i.hide(); 483 | x.show(); 484 | } 485 | else { 486 | i.show(); 487 | x.hide(); 488 | } 489 | 490 | break; 491 | 492 | case 'checkbox': 493 | case 'radio': 494 | i.attr('checked', i.attr('defaultValue')); 495 | break; 496 | 497 | case 'text': 498 | case 'textarea': 499 | i.val(i.attr('defaultValue')); 500 | 501 | if (i.val() == '') { 502 | i.addClass('polyfill-placeholder'); 503 | i.val(i.attr('placeholder')); 504 | } 505 | 506 | break; 507 | 508 | default: 509 | i.val(i.attr('defaultValue')); 510 | break; 511 | 512 | } 513 | }); 514 | 515 | }); 516 | 517 | return $this; 518 | 519 | }; 520 | 521 | /** 522 | * Moves elements to/from the first positions of their respective parents. 523 | * @param {jQuery} $elements Elements (or selector) to move. 524 | * @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations. 525 | */ 526 | $.prioritize = function($elements, condition) { 527 | 528 | var key = '__prioritize'; 529 | 530 | // Expand $elements if it's not already a jQuery object. 531 | if (typeof $elements != 'jQuery') 532 | $elements = $($elements); 533 | 534 | // Step through elements. 535 | $elements.each(function() { 536 | 537 | var $e = $(this), $p, 538 | $parent = $e.parent(); 539 | 540 | // No parent? Bail. 541 | if ($parent.length == 0) 542 | return; 543 | 544 | // Not moved? Move it. 545 | if (!$e.data(key)) { 546 | 547 | // Condition is false? Bail. 548 | if (!condition) 549 | return; 550 | 551 | // Get placeholder (which will serve as our point of reference for when this element needs to move back). 552 | $p = $e.prev(); 553 | 554 | // Couldn't find anything? Means this element's already at the top, so bail. 555 | if ($p.length == 0) 556 | return; 557 | 558 | // Move element to top of parent. 559 | $e.prependTo($parent); 560 | 561 | // Mark element as moved. 562 | $e.data(key, $p); 563 | 564 | } 565 | 566 | // Moved already? 567 | else { 568 | 569 | // Condition is true? Bail. 570 | if (condition) 571 | return; 572 | 573 | $p = $e.data(key); 574 | 575 | // Move element back to its original location (using our placeholder). 576 | $e.insertAfter($p); 577 | 578 | // Unmark element as moved. 579 | $e.removeData(key); 580 | 581 | } 582 | 583 | }); 584 | 585 | }; 586 | 587 | })(jQuery); -------------------------------------------------------------------------------- /assets/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} 5 | -------------------------------------------------------------------------------- /assets/css/main.css: -------------------------------------------------------------------------------- 1 | @import url(font-awesome.min.css); 2 | /*@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,400italic,600italic|Roboto+Slab:400,700");*/ 3 | 4 | /* 5 | Editorial by HTML5 UP 6 | html5up.net | @ajlkn 7 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 8 | */ 9 | 10 | html, body, div, span, applet, object, 11 | iframe, h1, h2, h3, h4, h5, h6, p, blockquote, 12 | pre, a, abbr, acronym, address, big, cite, 13 | code, del, dfn, em, img, ins, kbd, q, s, samp, 14 | small, strike, strong, sub, sup, tt, var, b, 15 | u, i, center, dl, dt, dd, ol, ul, li, fieldset, 16 | form, label, legend, table, caption, tbody, 17 | tfoot, thead, tr, th, td, article, aside, 18 | canvas, details, embed, figure, figcaption, 19 | footer, header, hgroup, menu, nav, output, ruby, 20 | section, summary, time, mark, audio, video { 21 | margin: 0; 22 | padding: 0; 23 | border: 0; 24 | font-size: 100%; 25 | font: inherit; 26 | vertical-align: baseline;} 27 | 28 | article, aside, details, figcaption, figure, 29 | footer, header, hgroup, menu, nav, section { 30 | display: block;} 31 | 32 | body { 33 | line-height: 1; 34 | } 35 | 36 | ol, ul { 37 | list-style: none; 38 | } 39 | 40 | blockquote, q { 41 | quotes: none; 42 | } 43 | 44 | blockquote:before, blockquote:after, q:before, q:after { 45 | content: ''; 46 | content: none; 47 | } 48 | 49 | table { 50 | border-collapse: collapse; 51 | border-spacing: 0; 52 | } 53 | 54 | body { 55 | -webkit-text-size-adjust: none; 56 | } 57 | 58 | mark { 59 | background-color: transparent; 60 | color: inherit; 61 | } 62 | 63 | input::-moz-focus-inner { 64 | border: 0; 65 | padding: 0; 66 | } 67 | 68 | input, select, textarea { 69 | -moz-appearance: none; 70 | -webkit-appearance: none; 71 | -ms-appearance: none; 72 | appearance: none; 73 | } 74 | 75 | /* Basic */ 76 | 77 | @-ms-viewport { 78 | width: device-width; 79 | } 80 | 81 | body { 82 | -ms-overflow-style: scrollbar; 83 | } 84 | 85 | @media screen and (max-width: 480px) { 86 | 87 | html, body { 88 | min-width: 320px; 89 | } 90 | 91 | } 92 | 93 | html { 94 | box-sizing: border-box; 95 | } 96 | 97 | *, *:before, *:after { 98 | box-sizing: inherit; 99 | } 100 | 101 | body { 102 | background: #ffffff; 103 | } 104 | 105 | body.is-preload *, body.is-preload *:before, body.is-preload *:after, body.is-resizing *, body.is-resizing *:before, body.is-resizing *:after { 106 | -moz-animation: none !important; 107 | -webkit-animation: none !important; 108 | -ms-animation: none !important; 109 | animation: none !important; 110 | -moz-transition: none !important; 111 | -webkit-transition: none !important; 112 | -ms-transition: none !important; 113 | transition: none !important; 114 | } 115 | 116 | /* Type */ 117 | 118 | body, input, select, textarea { 119 | color: #7f888f; 120 | font-family: "Open Sans", sans-serif; 121 | font-size: 13pt; 122 | font-weight: 400; 123 | line-height: 1.65; 124 | } 125 | 126 | @media screen and (max-width: 1680px) { 127 | 128 | body, input, select, textarea { 129 | font-size: 11pt; 130 | } 131 | 132 | } 133 | 134 | @media screen and (max-width: 1280px) { 135 | 136 | body, input, select, textarea { 137 | font-size: 10pt; 138 | } 139 | 140 | } 141 | 142 | @media screen and (max-width: 360px) { 143 | 144 | body, input, select, textarea { 145 | font-size: 9pt; 146 | } 147 | 148 | } 149 | 150 | a { 151 | -moz-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out; 152 | -webkit-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out; 153 | -ms-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out; 154 | transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out; 155 | border-bottom: dotted 1px; 156 | color: #f56a6a; 157 | text-decoration: none; 158 | } 159 | 160 | a:hover { 161 | border-bottom-color: #f56a6a; 162 | color: #f56a6a !important; 163 | } 164 | 165 | a:hover strong { 166 | color: inherit; 167 | } 168 | 169 | strong, b { 170 | color: #3d4449; 171 | font-weight: 600; 172 | } 173 | 174 | em, i { 175 | font-style: italic; 176 | } 177 | 178 | p { 179 | margin: 0 0 2em 0; 180 | } 181 | 182 | h1, h2, h3, h4, h5, h6 { 183 | color: #3d4449; 184 | font-family: "Roboto Slab", serif; 185 | font-weight: 700; 186 | line-height: 1.5; 187 | margin: 0 0 1em 0; 188 | } 189 | 190 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { 191 | color: inherit; 192 | text-decoration: none; 193 | border-bottom: 0; 194 | } 195 | 196 | h1 { 197 | font-size: 4em; 198 | margin: 0 0 0.5em 0; 199 | line-height: 1.3; 200 | } 201 | 202 | h2 { 203 | font-size: 1.75em; 204 | } 205 | 206 | h3 { 207 | font-size: 1.25em; 208 | } 209 | 210 | h4 { 211 | font-size: 1.1em; 212 | } 213 | 214 | h5 { 215 | font-size: 0.9em; 216 | } 217 | 218 | h6 { 219 | font-size: 0.7em; 220 | } 221 | 222 | @media screen and (max-width: 1680px) { 223 | 224 | h1 { 225 | font-size: 3.5em; 226 | } 227 | 228 | } 229 | 230 | @media screen and (max-width: 980px) { 231 | 232 | h1 { 233 | font-size: 3.25em; 234 | } 235 | 236 | } 237 | 238 | @media screen and (max-width: 736px) { 239 | 240 | h1 { 241 | font-size: 2em; 242 | line-height: 1.4; 243 | } 244 | 245 | h2 { 246 | font-size: 1.5em; 247 | } 248 | 249 | } 250 | 251 | sub { 252 | font-size: 0.8em; 253 | position: relative; 254 | top: 0.5em; 255 | } 256 | 257 | sup { 258 | font-size: 0.8em; 259 | position: relative; 260 | top: -0.5em; 261 | } 262 | 263 | blockquote { 264 | border-left: solid 3px rgba(210, 215, 217, 0.75); 265 | font-style: italic; 266 | margin: 0 0 2em 0; 267 | padding: 0.5em 0 0.5em 2em; 268 | } 269 | 270 | code { 271 | background: rgba(230, 235, 237, 0.25); 272 | border-radius: 0.375em; 273 | border: solid 1px rgba(210, 215, 217, 0.75); 274 | font-family: "Courier New", monospace; 275 | font-size: 0.9em; 276 | margin: 0 0.25em; 277 | padding: 0.25em 0.65em; 278 | } 279 | 280 | pre { 281 | -webkit-overflow-scrolling: touch; 282 | font-family: "Courier New", monospace; 283 | font-size: 0.9em; 284 | margin: 0 0 2em 0; 285 | } 286 | 287 | pre code { 288 | display: block; 289 | line-height: 1.75; 290 | padding: 1em 1.5em; 291 | overflow-x: auto; 292 | } 293 | 294 | hr { 295 | border: 0; 296 | border-bottom: solid 1px rgba(210, 215, 217, 0.75); 297 | margin: 2em 0; 298 | } 299 | 300 | hr.major { 301 | margin: 3em 0; 302 | } 303 | 304 | .align-left { 305 | text-align: left; 306 | } 307 | 308 | .align-center { 309 | text-align: center; 310 | } 311 | 312 | .align-right { 313 | text-align: right; 314 | } 315 | 316 | /* Row */ 317 | 318 | .row { 319 | display: flex; 320 | flex-wrap: wrap; 321 | box-sizing: border-box; 322 | align-items: stretch; 323 | } 324 | 325 | .row > * { 326 | box-sizing: border-box; 327 | } 328 | 329 | .row.gtr-uniform > * > :last-child { 330 | margin-bottom: 0; 331 | } 332 | 333 | .row.aln-left { 334 | justify-content: flex-start; 335 | } 336 | 337 | .row.aln-center { 338 | justify-content: center; 339 | } 340 | 341 | .row.aln-right { 342 | justify-content: flex-end; 343 | } 344 | 345 | .row.aln-top { 346 | align-items: flex-start; 347 | } 348 | 349 | .row.aln-middle { 350 | align-items: center; 351 | } 352 | 353 | .row.aln-bottom { 354 | align-items: flex-end; 355 | } 356 | 357 | .row > .imp { 358 | order: -1; 359 | } 360 | 361 | .row > .col-1 { 362 | width: 8.3333333333%; 363 | } 364 | 365 | .row > .off-1 { 366 | margin-left: 8.3333333333%; 367 | } 368 | 369 | .row > .col-2 { 370 | width: 16.6666666667%; 371 | } 372 | 373 | .row > .off-2 { 374 | margin-left: 16.6666666667%; 375 | } 376 | 377 | .row > .col-3 { 378 | width: 25%; 379 | } 380 | 381 | .row > .off-3 { 382 | margin-left: 25%; 383 | } 384 | 385 | .row > .col-4 { 386 | width: 33.3333333333%; 387 | } 388 | 389 | .row > .off-4 { 390 | margin-left: 33.3333333333%; 391 | } 392 | 393 | .row > .col-5 { 394 | width: 41.6666666667%; 395 | } 396 | 397 | .row > .off-5 { 398 | margin-left: 41.6666666667%; 399 | } 400 | 401 | .row > .col-6 { 402 | width: 50%; 403 | } 404 | 405 | .row > .off-6 { 406 | margin-left: 50%; 407 | } 408 | 409 | .row > .col-7 { 410 | width: 58.3333333333%; 411 | } 412 | 413 | .row > .off-7 { 414 | margin-left: 58.3333333333%; 415 | } 416 | 417 | .row > .col-8 { 418 | width: 66.6666666667%; 419 | } 420 | 421 | .row > .off-8 { 422 | margin-left: 66.6666666667%; 423 | } 424 | 425 | .row > .col-9 { 426 | width: 75%; 427 | } 428 | 429 | .row > .off-9 { 430 | margin-left: 75%; 431 | } 432 | 433 | .row > .col-10 { 434 | width: 83.3333333333%; 435 | } 436 | 437 | .row > .off-10 { 438 | margin-left: 83.3333333333%; 439 | } 440 | 441 | .row > .col-11 { 442 | width: 91.6666666667%; 443 | } 444 | 445 | .row > .off-11 { 446 | margin-left: 91.6666666667%; 447 | } 448 | 449 | .row > .col-12 { 450 | width: 100%; 451 | } 452 | 453 | .row > .off-12 { 454 | margin-left: 100%; 455 | } 456 | 457 | .row.gtr-0 { 458 | margin-top: 0; 459 | margin-left: 0em; 460 | } 461 | 462 | .row.gtr-0 > * { 463 | padding: 0 0 0 0em; 464 | } 465 | 466 | .row.gtr-0.gtr-uniform { 467 | margin-top: 0em; 468 | } 469 | 470 | .row.gtr-0.gtr-uniform > * { 471 | padding-top: 0em; 472 | } 473 | 474 | .row.gtr-25 { 475 | margin-top: 0; 476 | margin-left: -0.375em; 477 | } 478 | 479 | .row.gtr-25 > * { 480 | padding: 0 0 0 0.375em; 481 | } 482 | 483 | .row.gtr-25.gtr-uniform { 484 | margin-top: -0.375em; 485 | } 486 | 487 | .row.gtr-25.gtr-uniform > * { 488 | padding-top: 0.375em; 489 | } 490 | 491 | .row.gtr-50 { 492 | margin-top: 0; 493 | margin-left: -0.75em; 494 | } 495 | 496 | .row.gtr-50 > * { 497 | padding: 0 0 0 0.75em; 498 | } 499 | 500 | .row.gtr-50.gtr-uniform { 501 | margin-top: -0.75em; 502 | } 503 | 504 | .row.gtr-50.gtr-uniform > * { 505 | padding-top: 0.75em; 506 | } 507 | 508 | .row { 509 | margin-top: 0; 510 | margin-left: -1.5em; 511 | } 512 | 513 | .row > * { 514 | padding: 0 0 0 1.5em; 515 | } 516 | 517 | .row.gtr-uniform { 518 | margin-top: -1.5em; 519 | } 520 | 521 | .row.gtr-uniform > * { 522 | padding-top: 1.5em; 523 | } 524 | 525 | .row.gtr-150 { 526 | margin-top: 0; 527 | margin-left: -2.25em; 528 | } 529 | 530 | .row.gtr-150 > * { 531 | padding: 0 0 0 2.25em; 532 | } 533 | 534 | .row.gtr-150.gtr-uniform { 535 | margin-top: -2.25em; 536 | } 537 | 538 | .row.gtr-150.gtr-uniform > * { 539 | padding-top: 2.25em; 540 | } 541 | 542 | .row.gtr-200 { 543 | margin-top: 0; 544 | margin-left: -3em; 545 | } 546 | 547 | .row.gtr-200 > * { 548 | padding: 0 0 0 3em; 549 | } 550 | 551 | .row.gtr-200.gtr-uniform { 552 | margin-top: -3em; 553 | } 554 | 555 | .row.gtr-200.gtr-uniform > * { 556 | padding-top: 3em; 557 | } 558 | 559 | @media screen and (max-width: 1680px) { 560 | 561 | .row { 562 | display: flex; 563 | flex-wrap: wrap; 564 | box-sizing: border-box; 565 | align-items: stretch; 566 | } 567 | 568 | .row > * { 569 | box-sizing: border-box; 570 | } 571 | 572 | .row.gtr-uniform > * > :last-child { 573 | margin-bottom: 0; 574 | } 575 | 576 | .row.aln-left { 577 | justify-content: flex-start; 578 | } 579 | 580 | .row.aln-center { 581 | justify-content: center; 582 | } 583 | 584 | .row.aln-right { 585 | justify-content: flex-end; 586 | } 587 | 588 | .row.aln-top { 589 | align-items: flex-start; 590 | } 591 | 592 | .row.aln-middle { 593 | align-items: center; 594 | } 595 | 596 | .row.aln-bottom { 597 | align-items: flex-end; 598 | } 599 | 600 | .row > .imp-xlarge { 601 | order: -1; 602 | } 603 | 604 | .row > .col-1-xlarge { 605 | width: 8.3333333333%; 606 | } 607 | 608 | .row > .off-1-xlarge { 609 | margin-left: 8.3333333333%; 610 | } 611 | 612 | .row > .col-2-xlarge { 613 | width: 16.6666666667%; 614 | } 615 | 616 | .row > .off-2-xlarge { 617 | margin-left: 16.6666666667%; 618 | } 619 | 620 | .row > .col-3-xlarge { 621 | width: 25%; 622 | } 623 | 624 | .row > .off-3-xlarge { 625 | margin-left: 25%; 626 | } 627 | 628 | .row > .col-4-xlarge { 629 | width: 33.3333333333%; 630 | } 631 | 632 | .row > .off-4-xlarge { 633 | margin-left: 33.3333333333%; 634 | } 635 | 636 | .row > .col-5-xlarge { 637 | width: 41.6666666667%; 638 | } 639 | 640 | .row > .off-5-xlarge { 641 | margin-left: 41.6666666667%; 642 | } 643 | 644 | .row > .col-6-xlarge { 645 | width: 50%; 646 | } 647 | 648 | .row > .off-6-xlarge { 649 | margin-left: 50%; 650 | } 651 | 652 | .row > .col-7-xlarge { 653 | width: 58.3333333333%; 654 | } 655 | 656 | .row > .off-7-xlarge { 657 | margin-left: 58.3333333333%; 658 | } 659 | 660 | .row > .col-8-xlarge { 661 | width: 66.6666666667%; 662 | } 663 | 664 | .row > .off-8-xlarge { 665 | margin-left: 66.6666666667%; 666 | } 667 | 668 | .row > .col-9-xlarge { 669 | width: 75%; 670 | } 671 | 672 | .row > .off-9-xlarge { 673 | margin-left: 75%; 674 | } 675 | 676 | .row > .col-10-xlarge { 677 | width: 83.3333333333%; 678 | } 679 | 680 | .row > .off-10-xlarge { 681 | margin-left: 83.3333333333%; 682 | } 683 | 684 | .row > .col-11-xlarge { 685 | width: 91.6666666667%; 686 | } 687 | 688 | .row > .off-11-xlarge { 689 | margin-left: 91.6666666667%; 690 | } 691 | 692 | .row > .col-12-xlarge { 693 | width: 100%; 694 | } 695 | 696 | .row > .off-12-xlarge { 697 | margin-left: 100%; 698 | } 699 | 700 | .row.gtr-0 { 701 | margin-top: 0; 702 | margin-left: 0em; 703 | } 704 | 705 | .row.gtr-0 > * { 706 | padding: 0 0 0 0em; 707 | } 708 | 709 | .row.gtr-0.gtr-uniform { 710 | margin-top: 0em; 711 | } 712 | 713 | .row.gtr-0.gtr-uniform > * { 714 | padding-top: 0em; 715 | } 716 | 717 | .row.gtr-25 { 718 | margin-top: 0; 719 | margin-left: -0.375em; 720 | } 721 | 722 | .row.gtr-25 > * { 723 | padding: 0 0 0 0.375em; 724 | } 725 | 726 | .row.gtr-25.gtr-uniform { 727 | margin-top: -0.375em; 728 | } 729 | 730 | .row.gtr-25.gtr-uniform > * { 731 | padding-top: 0.375em; 732 | } 733 | 734 | .row.gtr-50 { 735 | margin-top: 0; 736 | margin-left: -0.75em; 737 | } 738 | 739 | .row.gtr-50 > * { 740 | padding: 0 0 0 0.75em; 741 | } 742 | 743 | .row.gtr-50.gtr-uniform { 744 | margin-top: -0.75em; 745 | } 746 | 747 | .row.gtr-50.gtr-uniform > * { 748 | padding-top: 0.75em; 749 | } 750 | 751 | .row { 752 | margin-top: 0; 753 | margin-left: -1.5em; 754 | } 755 | 756 | .row > * { 757 | padding: 0 0 0 1.5em; 758 | } 759 | 760 | .row.gtr-uniform { 761 | margin-top: -1.5em; 762 | } 763 | 764 | .row.gtr-uniform > * { 765 | padding-top: 1.5em; 766 | } 767 | 768 | .row.gtr-150 { 769 | margin-top: 0; 770 | margin-left: -2.25em; 771 | } 772 | 773 | .row.gtr-150 > * { 774 | padding: 0 0 0 2.25em; 775 | } 776 | 777 | .row.gtr-150.gtr-uniform { 778 | margin-top: -2.25em; 779 | } 780 | 781 | .row.gtr-150.gtr-uniform > * { 782 | padding-top: 2.25em; 783 | } 784 | 785 | .row.gtr-200 { 786 | margin-top: 0; 787 | margin-left: -3em; 788 | } 789 | 790 | .row.gtr-200 > * { 791 | padding: 0 0 0 3em; 792 | } 793 | 794 | .row.gtr-200.gtr-uniform { 795 | margin-top: -3em; 796 | } 797 | 798 | .row.gtr-200.gtr-uniform > * { 799 | padding-top: 3em; 800 | } 801 | 802 | } 803 | 804 | @media screen and (max-width: 1280px) { 805 | 806 | .row { 807 | display: flex; 808 | flex-wrap: wrap; 809 | box-sizing: border-box; 810 | align-items: stretch; 811 | } 812 | 813 | .row > * { 814 | box-sizing: border-box; 815 | } 816 | 817 | .row.gtr-uniform > * > :last-child { 818 | margin-bottom: 0; 819 | } 820 | 821 | .row.aln-left { 822 | justify-content: flex-start; 823 | } 824 | 825 | .row.aln-center { 826 | justify-content: center; 827 | } 828 | 829 | .row.aln-right { 830 | justify-content: flex-end; 831 | } 832 | 833 | .row.aln-top { 834 | align-items: flex-start; 835 | } 836 | 837 | .row.aln-middle { 838 | align-items: center; 839 | } 840 | 841 | .row.aln-bottom { 842 | align-items: flex-end; 843 | } 844 | 845 | .row > .imp-large { 846 | order: -1; 847 | } 848 | 849 | .row > .col-1-large { 850 | width: 8.3333333333%; 851 | } 852 | 853 | .row > .off-1-large { 854 | margin-left: 8.3333333333%; 855 | } 856 | 857 | .row > .col-2-large { 858 | width: 16.6666666667%; 859 | } 860 | 861 | .row > .off-2-large { 862 | margin-left: 16.6666666667%; 863 | } 864 | 865 | .row > .col-3-large { 866 | width: 25%; 867 | } 868 | 869 | .row > .off-3-large { 870 | margin-left: 25%; 871 | } 872 | 873 | .row > .col-4-large { 874 | width: 33.3333333333%; 875 | } 876 | 877 | .row > .off-4-large { 878 | margin-left: 33.3333333333%; 879 | } 880 | 881 | .row > .col-5-large { 882 | width: 41.6666666667%; 883 | } 884 | 885 | .row > .off-5-large { 886 | margin-left: 41.6666666667%; 887 | } 888 | 889 | .row > .col-6-large { 890 | width: 50%; 891 | } 892 | 893 | .row > .off-6-large { 894 | margin-left: 50%; 895 | } 896 | 897 | .row > .col-7-large { 898 | width: 58.3333333333%; 899 | } 900 | 901 | .row > .off-7-large { 902 | margin-left: 58.3333333333%; 903 | } 904 | 905 | .row > .col-8-large { 906 | width: 66.6666666667%; 907 | } 908 | 909 | .row > .off-8-large { 910 | margin-left: 66.6666666667%; 911 | } 912 | 913 | .row > .col-9-large { 914 | width: 75%; 915 | } 916 | 917 | .row > .off-9-large { 918 | margin-left: 75%; 919 | } 920 | 921 | .row > .col-10-large { 922 | width: 83.3333333333%; 923 | } 924 | 925 | .row > .off-10-large { 926 | margin-left: 83.3333333333%; 927 | } 928 | 929 | .row > .col-11-large { 930 | width: 91.6666666667%; 931 | } 932 | 933 | .row > .off-11-large { 934 | margin-left: 91.6666666667%; 935 | } 936 | 937 | .row > .col-12-large { 938 | width: 100%; 939 | } 940 | 941 | .row > .off-12-large { 942 | margin-left: 100%; 943 | } 944 | 945 | .row.gtr-0 { 946 | margin-top: 0; 947 | margin-left: 0em; 948 | } 949 | 950 | .row.gtr-0 > * { 951 | padding: 0 0 0 0em; 952 | } 953 | 954 | .row.gtr-0.gtr-uniform { 955 | margin-top: 0em; 956 | } 957 | 958 | .row.gtr-0.gtr-uniform > * { 959 | padding-top: 0em; 960 | } 961 | 962 | .row.gtr-25 { 963 | margin-top: 0; 964 | margin-left: -0.375em; 965 | } 966 | 967 | .row.gtr-25 > * { 968 | padding: 0 0 0 0.375em; 969 | } 970 | 971 | .row.gtr-25.gtr-uniform { 972 | margin-top: -0.375em; 973 | } 974 | 975 | .row.gtr-25.gtr-uniform > * { 976 | padding-top: 0.375em; 977 | } 978 | 979 | .row.gtr-50 { 980 | margin-top: 0; 981 | margin-left: -0.75em; 982 | } 983 | 984 | .row.gtr-50 > * { 985 | padding: 0 0 0 0.75em; 986 | } 987 | 988 | .row.gtr-50.gtr-uniform { 989 | margin-top: -0.75em; 990 | } 991 | 992 | .row.gtr-50.gtr-uniform > * { 993 | padding-top: 0.75em; 994 | } 995 | 996 | .row { 997 | margin-top: 0; 998 | margin-left: -1.5em; 999 | } 1000 | 1001 | .row > * { 1002 | padding: 0 0 0 1.5em; 1003 | } 1004 | 1005 | .row.gtr-uniform { 1006 | margin-top: -1.5em; 1007 | } 1008 | 1009 | .row.gtr-uniform > * { 1010 | padding-top: 1.5em; 1011 | } 1012 | 1013 | .row.gtr-150 { 1014 | margin-top: 0; 1015 | margin-left: -2.25em; 1016 | } 1017 | 1018 | .row.gtr-150 > * { 1019 | padding: 0 0 0 2.25em; 1020 | } 1021 | 1022 | .row.gtr-150.gtr-uniform { 1023 | margin-top: -2.25em; 1024 | } 1025 | 1026 | .row.gtr-150.gtr-uniform > * { 1027 | padding-top: 2.25em; 1028 | } 1029 | 1030 | .row.gtr-200 { 1031 | margin-top: 0; 1032 | margin-left: -3em; 1033 | } 1034 | 1035 | .row.gtr-200 > * { 1036 | padding: 0 0 0 3em; 1037 | } 1038 | 1039 | .row.gtr-200.gtr-uniform { 1040 | margin-top: -3em; 1041 | } 1042 | 1043 | .row.gtr-200.gtr-uniform > * { 1044 | padding-top: 3em; 1045 | } 1046 | 1047 | } 1048 | 1049 | @media screen and (max-width: 980px) { 1050 | 1051 | .row { 1052 | display: flex; 1053 | flex-wrap: wrap; 1054 | box-sizing: border-box; 1055 | align-items: stretch; 1056 | } 1057 | 1058 | .row > * { 1059 | box-sizing: border-box; 1060 | } 1061 | 1062 | .row.gtr-uniform > * > :last-child { 1063 | margin-bottom: 0; 1064 | } 1065 | 1066 | .row.aln-left { 1067 | justify-content: flex-start; 1068 | } 1069 | 1070 | .row.aln-center { 1071 | justify-content: center; 1072 | } 1073 | 1074 | .row.aln-right { 1075 | justify-content: flex-end; 1076 | } 1077 | 1078 | .row.aln-top { 1079 | align-items: flex-start; 1080 | } 1081 | 1082 | .row.aln-middle { 1083 | align-items: center; 1084 | } 1085 | 1086 | .row.aln-bottom { 1087 | align-items: flex-end; 1088 | } 1089 | 1090 | .row > .imp-medium { 1091 | order: -1; 1092 | } 1093 | 1094 | .row > .col-1-medium { 1095 | width: 8.3333333333%; 1096 | } 1097 | 1098 | .row > .off-1-medium { 1099 | margin-left: 8.3333333333%; 1100 | } 1101 | 1102 | .row > .col-2-medium { 1103 | width: 16.6666666667%; 1104 | } 1105 | 1106 | .row > .off-2-medium { 1107 | margin-left: 16.6666666667%; 1108 | } 1109 | 1110 | .row > .col-3-medium { 1111 | width: 25%; 1112 | } 1113 | 1114 | .row > .off-3-medium { 1115 | margin-left: 25%; 1116 | } 1117 | 1118 | .row > .col-4-medium { 1119 | width: 33.3333333333%; 1120 | } 1121 | 1122 | .row > .off-4-medium { 1123 | margin-left: 33.3333333333%; 1124 | } 1125 | 1126 | .row > .col-5-medium { 1127 | width: 41.6666666667%; 1128 | } 1129 | 1130 | .row > .off-5-medium { 1131 | margin-left: 41.6666666667%; 1132 | } 1133 | 1134 | .row > .col-6-medium { 1135 | width: 50%; 1136 | } 1137 | 1138 | .row > .off-6-medium { 1139 | margin-left: 50%; 1140 | } 1141 | 1142 | .row > .col-7-medium { 1143 | width: 58.3333333333%; 1144 | } 1145 | 1146 | .row > .off-7-medium { 1147 | margin-left: 58.3333333333%; 1148 | } 1149 | 1150 | .row > .col-8-medium { 1151 | width: 66.6666666667%; 1152 | } 1153 | 1154 | .row > .off-8-medium { 1155 | margin-left: 66.6666666667%; 1156 | } 1157 | 1158 | .row > .col-9-medium { 1159 | width: 75%; 1160 | } 1161 | 1162 | .row > .off-9-medium { 1163 | margin-left: 75%; 1164 | } 1165 | 1166 | .row > .col-10-medium { 1167 | width: 83.3333333333%; 1168 | } 1169 | 1170 | .row > .off-10-medium { 1171 | margin-left: 83.3333333333%; 1172 | } 1173 | 1174 | .row > .col-11-medium { 1175 | width: 91.6666666667%; 1176 | } 1177 | 1178 | .row > .off-11-medium { 1179 | margin-left: 91.6666666667%; 1180 | } 1181 | 1182 | .row > .col-12-medium { 1183 | width: 100%; 1184 | } 1185 | 1186 | .row > .off-12-medium { 1187 | margin-left: 100%; 1188 | } 1189 | 1190 | .row.gtr-0 { 1191 | margin-top: 0; 1192 | margin-left: 0em; 1193 | } 1194 | 1195 | .row.gtr-0 > * { 1196 | padding: 0 0 0 0em; 1197 | } 1198 | 1199 | .row.gtr-0.gtr-uniform { 1200 | margin-top: 0em; 1201 | } 1202 | 1203 | .row.gtr-0.gtr-uniform > * { 1204 | padding-top: 0em; 1205 | } 1206 | 1207 | .row.gtr-25 { 1208 | margin-top: 0; 1209 | margin-left: -0.375em; 1210 | } 1211 | 1212 | .row.gtr-25 > * { 1213 | padding: 0 0 0 0.375em; 1214 | } 1215 | 1216 | .row.gtr-25.gtr-uniform { 1217 | margin-top: -0.375em; 1218 | } 1219 | 1220 | .row.gtr-25.gtr-uniform > * { 1221 | padding-top: 0.375em; 1222 | } 1223 | 1224 | .row.gtr-50 { 1225 | margin-top: 0; 1226 | margin-left: -0.75em; 1227 | } 1228 | 1229 | .row.gtr-50 > * { 1230 | padding: 0 0 0 0.75em; 1231 | } 1232 | 1233 | .row.gtr-50.gtr-uniform { 1234 | margin-top: -0.75em; 1235 | } 1236 | 1237 | .row.gtr-50.gtr-uniform > * { 1238 | padding-top: 0.75em; 1239 | } 1240 | 1241 | .row { 1242 | margin-top: 0; 1243 | margin-left: -1.5em; 1244 | } 1245 | 1246 | .row > * { 1247 | padding: 0 0 0 1.5em; 1248 | } 1249 | 1250 | .row.gtr-uniform { 1251 | margin-top: -1.5em; 1252 | } 1253 | 1254 | .row.gtr-uniform > * { 1255 | padding-top: 1.5em; 1256 | } 1257 | 1258 | .row.gtr-150 { 1259 | margin-top: 0; 1260 | margin-left: -2.25em; 1261 | } 1262 | 1263 | .row.gtr-150 > * { 1264 | padding: 0 0 0 2.25em; 1265 | } 1266 | 1267 | .row.gtr-150.gtr-uniform { 1268 | margin-top: -2.25em; 1269 | } 1270 | 1271 | .row.gtr-150.gtr-uniform > * { 1272 | padding-top: 2.25em; 1273 | } 1274 | 1275 | .row.gtr-200 { 1276 | margin-top: 0; 1277 | margin-left: -3em; 1278 | } 1279 | 1280 | .row.gtr-200 > * { 1281 | padding: 0 0 0 3em; 1282 | } 1283 | 1284 | .row.gtr-200.gtr-uniform { 1285 | margin-top: -3em; 1286 | } 1287 | 1288 | .row.gtr-200.gtr-uniform > * { 1289 | padding-top: 3em; 1290 | } 1291 | 1292 | } 1293 | 1294 | @media screen and (max-width: 736px) { 1295 | 1296 | .row { 1297 | display: flex; 1298 | flex-wrap: wrap; 1299 | box-sizing: border-box; 1300 | align-items: stretch; 1301 | } 1302 | 1303 | .row > * { 1304 | box-sizing: border-box; 1305 | } 1306 | 1307 | .row.gtr-uniform > * > :last-child { 1308 | margin-bottom: 0; 1309 | } 1310 | 1311 | .row.aln-left { 1312 | justify-content: flex-start; 1313 | } 1314 | 1315 | .row.aln-center { 1316 | justify-content: center; 1317 | } 1318 | 1319 | .row.aln-right { 1320 | justify-content: flex-end; 1321 | } 1322 | 1323 | .row.aln-top { 1324 | align-items: flex-start; 1325 | } 1326 | 1327 | .row.aln-middle { 1328 | align-items: center; 1329 | } 1330 | 1331 | .row.aln-bottom { 1332 | align-items: flex-end; 1333 | } 1334 | 1335 | .row > .imp-small { 1336 | order: -1; 1337 | } 1338 | 1339 | .row > .col-1-small { 1340 | width: 8.3333333333%; 1341 | } 1342 | 1343 | .row > .off-1-small { 1344 | margin-left: 8.3333333333%; 1345 | } 1346 | 1347 | .row > .col-2-small { 1348 | width: 16.6666666667%; 1349 | } 1350 | 1351 | .row > .off-2-small { 1352 | margin-left: 16.6666666667%; 1353 | } 1354 | 1355 | .row > .col-3-small { 1356 | width: 25%; 1357 | } 1358 | 1359 | .row > .off-3-small { 1360 | margin-left: 25%; 1361 | } 1362 | 1363 | .row > .col-4-small { 1364 | width: 33.3333333333%; 1365 | } 1366 | 1367 | .row > .off-4-small { 1368 | margin-left: 33.3333333333%; 1369 | } 1370 | 1371 | .row > .col-5-small { 1372 | width: 41.6666666667%; 1373 | } 1374 | 1375 | .row > .off-5-small { 1376 | margin-left: 41.6666666667%; 1377 | } 1378 | 1379 | .row > .col-6-small { 1380 | width: 50%; 1381 | } 1382 | 1383 | .row > .off-6-small { 1384 | margin-left: 50%; 1385 | } 1386 | 1387 | .row > .col-7-small { 1388 | width: 58.3333333333%; 1389 | } 1390 | 1391 | .row > .off-7-small { 1392 | margin-left: 58.3333333333%; 1393 | } 1394 | 1395 | .row > .col-8-small { 1396 | width: 66.6666666667%; 1397 | } 1398 | 1399 | .row > .off-8-small { 1400 | margin-left: 66.6666666667%; 1401 | } 1402 | 1403 | .row > .col-9-small { 1404 | width: 75%; 1405 | } 1406 | 1407 | .row > .off-9-small { 1408 | margin-left: 75%; 1409 | } 1410 | 1411 | .row > .col-10-small { 1412 | width: 83.3333333333%; 1413 | } 1414 | 1415 | .row > .off-10-small { 1416 | margin-left: 83.3333333333%; 1417 | } 1418 | 1419 | .row > .col-11-small { 1420 | width: 91.6666666667%; 1421 | } 1422 | 1423 | .row > .off-11-small { 1424 | margin-left: 91.6666666667%; 1425 | } 1426 | 1427 | .row > .col-12-small { 1428 | width: 100%; 1429 | } 1430 | 1431 | .row > .off-12-small { 1432 | margin-left: 100%; 1433 | } 1434 | 1435 | .row.gtr-0 { 1436 | margin-top: 0; 1437 | margin-left: 0em; 1438 | } 1439 | 1440 | .row.gtr-0 > * { 1441 | padding: 0 0 0 0em; 1442 | } 1443 | 1444 | .row.gtr-0.gtr-uniform { 1445 | margin-top: 0em; 1446 | } 1447 | 1448 | .row.gtr-0.gtr-uniform > * { 1449 | padding-top: 0em; 1450 | } 1451 | 1452 | .row.gtr-25 { 1453 | margin-top: 0; 1454 | margin-left: -0.375em; 1455 | } 1456 | 1457 | .row.gtr-25 > * { 1458 | padding: 0 0 0 0.375em; 1459 | } 1460 | 1461 | .row.gtr-25.gtr-uniform { 1462 | margin-top: -0.375em; 1463 | } 1464 | 1465 | .row.gtr-25.gtr-uniform > * { 1466 | padding-top: 0.375em; 1467 | } 1468 | 1469 | .row.gtr-50 { 1470 | margin-top: 0; 1471 | margin-left: -0.75em; 1472 | } 1473 | 1474 | .row.gtr-50 > * { 1475 | padding: 0 0 0 0.75em; 1476 | } 1477 | 1478 | .row.gtr-50.gtr-uniform { 1479 | margin-top: -0.75em; 1480 | } 1481 | 1482 | .row.gtr-50.gtr-uniform > * { 1483 | padding-top: 0.75em; 1484 | } 1485 | 1486 | .row { 1487 | margin-top: 0; 1488 | margin-left: -1.5em; 1489 | } 1490 | 1491 | .row > * { 1492 | padding: 0 0 0 1.5em; 1493 | } 1494 | 1495 | .row.gtr-uniform { 1496 | margin-top: -1.5em; 1497 | } 1498 | 1499 | .row.gtr-uniform > * { 1500 | padding-top: 1.5em; 1501 | } 1502 | 1503 | .row.gtr-150 { 1504 | margin-top: 0; 1505 | margin-left: -2.25em; 1506 | } 1507 | 1508 | .row.gtr-150 > * { 1509 | padding: 0 0 0 2.25em; 1510 | } 1511 | 1512 | .row.gtr-150.gtr-uniform { 1513 | margin-top: -2.25em; 1514 | } 1515 | 1516 | .row.gtr-150.gtr-uniform > * { 1517 | padding-top: 2.25em; 1518 | } 1519 | 1520 | .row.gtr-200 { 1521 | margin-top: 0; 1522 | margin-left: -3em; 1523 | } 1524 | 1525 | .row.gtr-200 > * { 1526 | padding: 0 0 0 3em; 1527 | } 1528 | 1529 | .row.gtr-200.gtr-uniform { 1530 | margin-top: -3em; 1531 | } 1532 | 1533 | .row.gtr-200.gtr-uniform > * { 1534 | padding-top: 3em; 1535 | } 1536 | 1537 | } 1538 | 1539 | @media screen and (max-width: 480px) { 1540 | 1541 | .row { 1542 | display: flex; 1543 | flex-wrap: wrap; 1544 | box-sizing: border-box; 1545 | align-items: stretch; 1546 | } 1547 | 1548 | .row > * { 1549 | box-sizing: border-box; 1550 | } 1551 | 1552 | .row.gtr-uniform > * > :last-child { 1553 | margin-bottom: 0; 1554 | } 1555 | 1556 | .row.aln-left { 1557 | justify-content: flex-start; 1558 | } 1559 | 1560 | .row.aln-center { 1561 | justify-content: center; 1562 | } 1563 | 1564 | .row.aln-right { 1565 | justify-content: flex-end; 1566 | } 1567 | 1568 | .row.aln-top { 1569 | align-items: flex-start; 1570 | } 1571 | 1572 | .row.aln-middle { 1573 | align-items: center; 1574 | } 1575 | 1576 | .row.aln-bottom { 1577 | align-items: flex-end; 1578 | } 1579 | 1580 | .row > .imp-xsmall { 1581 | order: -1; 1582 | } 1583 | 1584 | .row > .col-1-xsmall { 1585 | width: 8.3333333333%; 1586 | } 1587 | 1588 | .row > .off-1-xsmall { 1589 | margin-left: 8.3333333333%; 1590 | } 1591 | 1592 | .row > .col-2-xsmall { 1593 | width: 16.6666666667%; 1594 | } 1595 | 1596 | .row > .off-2-xsmall { 1597 | margin-left: 16.6666666667%; 1598 | } 1599 | 1600 | .row > .col-3-xsmall { 1601 | width: 25%; 1602 | } 1603 | 1604 | .row > .off-3-xsmall { 1605 | margin-left: 25%; 1606 | } 1607 | 1608 | .row > .col-4-xsmall { 1609 | width: 33.3333333333%; 1610 | } 1611 | 1612 | .row > .off-4-xsmall { 1613 | margin-left: 33.3333333333%; 1614 | } 1615 | 1616 | .row > .col-5-xsmall { 1617 | width: 41.6666666667%; 1618 | } 1619 | 1620 | .row > .off-5-xsmall { 1621 | margin-left: 41.6666666667%; 1622 | } 1623 | 1624 | .row > .col-6-xsmall { 1625 | width: 50%; 1626 | } 1627 | 1628 | .row > .off-6-xsmall { 1629 | margin-left: 50%; 1630 | } 1631 | 1632 | .row > .col-7-xsmall { 1633 | width: 58.3333333333%; 1634 | } 1635 | 1636 | .row > .off-7-xsmall { 1637 | margin-left: 58.3333333333%; 1638 | } 1639 | 1640 | .row > .col-8-xsmall { 1641 | width: 66.6666666667%; 1642 | } 1643 | 1644 | .row > .off-8-xsmall { 1645 | margin-left: 66.6666666667%; 1646 | } 1647 | 1648 | .row > .col-9-xsmall { 1649 | width: 75%; 1650 | } 1651 | 1652 | .row > .off-9-xsmall { 1653 | margin-left: 75%; 1654 | } 1655 | 1656 | .row > .col-10-xsmall { 1657 | width: 83.3333333333%; 1658 | } 1659 | 1660 | .row > .off-10-xsmall { 1661 | margin-left: 83.3333333333%; 1662 | } 1663 | 1664 | .row > .col-11-xsmall { 1665 | width: 91.6666666667%; 1666 | } 1667 | 1668 | .row > .off-11-xsmall { 1669 | margin-left: 91.6666666667%; 1670 | } 1671 | 1672 | .row > .col-12-xsmall { 1673 | width: 100%; 1674 | } 1675 | 1676 | .row > .off-12-xsmall { 1677 | margin-left: 100%; 1678 | } 1679 | 1680 | .row.gtr-0 { 1681 | margin-top: 0; 1682 | margin-left: 0em; 1683 | } 1684 | 1685 | .row.gtr-0 > * { 1686 | padding: 0 0 0 0em; 1687 | } 1688 | 1689 | .row.gtr-0.gtr-uniform { 1690 | margin-top: 0em; 1691 | } 1692 | 1693 | .row.gtr-0.gtr-uniform > * { 1694 | padding-top: 0em; 1695 | } 1696 | 1697 | .row.gtr-25 { 1698 | margin-top: 0; 1699 | margin-left: -0.375em; 1700 | } 1701 | 1702 | .row.gtr-25 > * { 1703 | padding: 0 0 0 0.375em; 1704 | } 1705 | 1706 | .row.gtr-25.gtr-uniform { 1707 | margin-top: -0.375em; 1708 | } 1709 | 1710 | .row.gtr-25.gtr-uniform > * { 1711 | padding-top: 0.375em; 1712 | } 1713 | 1714 | .row.gtr-50 { 1715 | margin-top: 0; 1716 | margin-left: -0.75em; 1717 | } 1718 | 1719 | .row.gtr-50 > * { 1720 | padding: 0 0 0 0.75em; 1721 | } 1722 | 1723 | .row.gtr-50.gtr-uniform { 1724 | margin-top: -0.75em; 1725 | } 1726 | 1727 | .row.gtr-50.gtr-uniform > * { 1728 | padding-top: 0.75em; 1729 | } 1730 | 1731 | .row { 1732 | margin-top: 0; 1733 | margin-left: -1.5em; 1734 | } 1735 | 1736 | .row > * { 1737 | padding: 0 0 0 1.5em; 1738 | } 1739 | 1740 | .row.gtr-uniform { 1741 | margin-top: -1.5em; 1742 | } 1743 | 1744 | .row.gtr-uniform > * { 1745 | padding-top: 1.5em; 1746 | } 1747 | 1748 | .row.gtr-150 { 1749 | margin-top: 0; 1750 | margin-left: -2.25em; 1751 | } 1752 | 1753 | .row.gtr-150 > * { 1754 | padding: 0 0 0 2.25em; 1755 | } 1756 | 1757 | .row.gtr-150.gtr-uniform { 1758 | margin-top: -2.25em; 1759 | } 1760 | 1761 | .row.gtr-150.gtr-uniform > * { 1762 | padding-top: 2.25em; 1763 | } 1764 | 1765 | .row.gtr-200 { 1766 | margin-top: 0; 1767 | margin-left: -3em; 1768 | } 1769 | 1770 | .row.gtr-200 > * { 1771 | padding: 0 0 0 3em; 1772 | } 1773 | 1774 | .row.gtr-200.gtr-uniform { 1775 | margin-top: -3em; 1776 | } 1777 | 1778 | .row.gtr-200.gtr-uniform > * { 1779 | padding-top: 3em; 1780 | } 1781 | 1782 | } 1783 | 1784 | /* Section/Article */ 1785 | 1786 | section.special, article.special { 1787 | text-align: center; 1788 | } 1789 | 1790 | header p { 1791 | font-family: "Roboto Slab", serif; 1792 | font-size: 1em; 1793 | font-weight: 400; 1794 | letter-spacing: 0.075em; 1795 | margin-top: -0.5em; 1796 | text-transform: uppercase; 1797 | } 1798 | 1799 | header.major > :last-child { 1800 | border-bottom: solid 3px #f56a6a; 1801 | display: inline-block; 1802 | margin: 0 0 2em 0; 1803 | padding: 0 0.75em 0.5em 0; 1804 | } 1805 | 1806 | header.main > :last-child { 1807 | margin: 0 0 1em 0; 1808 | } 1809 | 1810 | /* Form */ 1811 | 1812 | form { 1813 | margin: 0 0 2em 0; 1814 | } 1815 | 1816 | label { 1817 | color: #3d4449; 1818 | display: block; 1819 | font-size: 0.9em; 1820 | font-weight: 600; 1821 | margin: 0 0 1em 0; 1822 | } 1823 | 1824 | input[type="text"], 1825 | input[type="password"], 1826 | input[type="email"], 1827 | input[type="tel"], 1828 | input[type="search"], 1829 | input[type="url"], 1830 | select, 1831 | textarea { 1832 | -moz-appearance: none; 1833 | -webkit-appearance: none; 1834 | -ms-appearance: none; 1835 | appearance: none; 1836 | background: #ffffff; 1837 | border-radius: 0.375em; 1838 | border: none; 1839 | border: solid 1px rgba(210, 215, 217, 0.75); 1840 | color: inherit; 1841 | display: block; 1842 | outline: 0; 1843 | padding: 0 1em; 1844 | text-decoration: none; 1845 | width: 100%; 1846 | } 1847 | 1848 | input[type="text"]:invalid, 1849 | input[type="password"]:invalid, 1850 | input[type="email"]:invalid, 1851 | input[type="tel"]:invalid, 1852 | input[type="search"]:invalid, 1853 | input[type="url"]:invalid, 1854 | select:invalid, 1855 | textarea:invalid { 1856 | box-shadow: none; 1857 | } 1858 | 1859 | input[type="text"]:focus, 1860 | input[type="password"]:focus, 1861 | input[type="email"]:focus, 1862 | input[type="tel"]:focus, 1863 | input[type="search"]:focus, 1864 | input[type="url"]:focus, 1865 | select:focus, 1866 | textarea:focus { 1867 | border-color: #f56a6a; 1868 | box-shadow: 0 0 0 1px #f56a6a; 1869 | } 1870 | 1871 | select { 1872 | background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(210, 215, 217, 0.75)' /%3E%3C/svg%3E"); 1873 | background-size: 1.25em; 1874 | background-repeat: no-repeat; 1875 | background-position: calc(100% - 1em) center; 1876 | height: 2.75em; 1877 | padding-right: 2.75em; 1878 | text-overflow: ellipsis; 1879 | } 1880 | 1881 | select option { 1882 | color: #3d4449; 1883 | background: #ffffff; 1884 | } 1885 | 1886 | select:focus::-ms-value { 1887 | background-color: transparent; 1888 | } 1889 | 1890 | select::-ms-expand { 1891 | display: none; 1892 | } 1893 | 1894 | input[type="text"], 1895 | input[type="password"], 1896 | input[type="email"], 1897 | input[type="tel"], 1898 | input[type="search"], 1899 | input[type="url"], 1900 | select { 1901 | height: 2.75em; 1902 | } 1903 | 1904 | textarea { 1905 | padding: 0.75em 1em; 1906 | } 1907 | 1908 | input[type="checkbox"], 1909 | input[type="radio"] { 1910 | -moz-appearance: none; 1911 | -webkit-appearance: none; 1912 | -ms-appearance: none; 1913 | appearance: none; 1914 | display: block; 1915 | float: left; 1916 | margin-right: -2em; 1917 | opacity: 0; 1918 | width: 1em; 1919 | z-index: -1; 1920 | } 1921 | 1922 | input[type="checkbox"] + label, 1923 | input[type="radio"] + label { 1924 | text-decoration: none; 1925 | color: #7f888f; 1926 | cursor: pointer; 1927 | display: inline-block; 1928 | font-size: 1em; 1929 | font-weight: 400; 1930 | padding-left: 2.4em; 1931 | padding-right: 0.75em; 1932 | position: relative; 1933 | } 1934 | 1935 | input[type="checkbox"] + label:before, 1936 | input[type="radio"] + label:before { 1937 | -moz-osx-font-smoothing: grayscale; 1938 | -webkit-font-smoothing: antialiased; 1939 | font-family: FontAwesome; 1940 | font-style: normal; 1941 | font-weight: normal; 1942 | text-transform: none !important; 1943 | } 1944 | 1945 | input[type="checkbox"] + label:before, 1946 | input[type="radio"] + label:before { 1947 | background: #ffffff; 1948 | border-radius: 0.375em; 1949 | border: solid 1px rgba(210, 215, 217, 0.75); 1950 | content: ''; 1951 | display: inline-block; 1952 | height: 1.65em; 1953 | left: 0; 1954 | line-height: 1.58125em; 1955 | position: absolute; 1956 | text-align: center; 1957 | top: 0; 1958 | width: 1.65em; 1959 | } 1960 | 1961 | input[type="checkbox"]:checked + label:before, 1962 | input[type="radio"]:checked + label:before { 1963 | background: #3d4449; 1964 | border-color: #3d4449; 1965 | color: #ffffff; 1966 | content: '\f00c'; 1967 | } 1968 | 1969 | input[type="checkbox"]:focus + label:before, 1970 | input[type="radio"]:focus + label:before { 1971 | border-color: #f56a6a; 1972 | box-shadow: 0 0 0 1px #f56a6a; 1973 | } 1974 | 1975 | input[type="checkbox"] + label:before { 1976 | border-radius: 0.375em; 1977 | } 1978 | 1979 | input[type="radio"] + label:before { 1980 | border-radius: 100%; 1981 | } 1982 | 1983 | ::-webkit-input-placeholder { 1984 | color: #9fa3a6 !important; 1985 | opacity: 1.0; 1986 | } 1987 | 1988 | :-moz-placeholder { 1989 | color: #9fa3a6 !important; 1990 | opacity: 1.0; 1991 | } 1992 | 1993 | ::-moz-placeholder { 1994 | color: #9fa3a6 !important; 1995 | opacity: 1.0; 1996 | } 1997 | 1998 | :-ms-input-placeholder { 1999 | color: #9fa3a6 !important; 2000 | opacity: 1.0; 2001 | } 2002 | 2003 | /* Box */ 2004 | 2005 | .box { 2006 | border-radius: 0.375em; 2007 | border: solid 1px rgba(210, 215, 217, 0.75); 2008 | margin-bottom: 2em; 2009 | padding: 1.5em; 2010 | } 2011 | 2012 | .box > :last-child, 2013 | .box > :last-child > :last-child, 2014 | .box > :last-child > :last-child > :last-child { 2015 | margin-bottom: 0; 2016 | } 2017 | 2018 | .box.alt { 2019 | border: 0; 2020 | border-radius: 0; 2021 | padding: 0; 2022 | } 2023 | 2024 | /* Icon */ 2025 | 2026 | .icon { 2027 | text-decoration: none; 2028 | border-bottom: none; 2029 | position: relative; 2030 | } 2031 | 2032 | .icon:before { 2033 | -moz-osx-font-smoothing: grayscale; 2034 | -webkit-font-smoothing: antialiased; 2035 | font-family: FontAwesome; 2036 | font-style: normal; 2037 | font-weight: normal; 2038 | text-transform: none !important; 2039 | } 2040 | 2041 | .icon > .label { 2042 | display: none; 2043 | } 2044 | 2045 | /* Image */ 2046 | 2047 | .image { 2048 | border-radius: 0.375em; 2049 | border: 0; 2050 | display: inline-block; 2051 | position: relative; 2052 | } 2053 | 2054 | .image img { 2055 | border-radius: 0.375em; 2056 | display: block; 2057 | } 2058 | 2059 | .image.left, .image.right { 2060 | max-width: 40%; 2061 | } 2062 | 2063 | .image.left img, .image.right img { 2064 | width: 100%; 2065 | } 2066 | 2067 | .image.left { 2068 | float: left; 2069 | padding: 0 1.5em 1em 0; 2070 | top: 0.25em; 2071 | } 2072 | 2073 | .image.right { 2074 | float: right; 2075 | padding: 0 0 1em 1.5em; 2076 | top: 0.25em; 2077 | } 2078 | 2079 | .image.fit { 2080 | display: block; 2081 | margin: 0 0 2em 0; 2082 | width: 100%; 2083 | } 2084 | 2085 | .image.fit img { 2086 | width: 100%; 2087 | } 2088 | 2089 | .image.main { 2090 | display: block; 2091 | margin: 0 0 3em 0; 2092 | width: 100%; 2093 | } 2094 | 2095 | .image.main img { 2096 | width: 100%; 2097 | } 2098 | 2099 | a.image { 2100 | overflow: hidden; 2101 | } 2102 | 2103 | a.image img { 2104 | -moz-transition: -moz-transform 0.2s ease; 2105 | -webkit-transition: -webkit-transform 0.2s ease; 2106 | -ms-transition: -ms-transform 0.2s ease; 2107 | transition: transform 0.2s ease; 2108 | } 2109 | 2110 | a.image:hover img { 2111 | -moz-transform: scale(1.075); 2112 | -webkit-transform: scale(1.075); 2113 | -ms-transform: scale(1.075); 2114 | transform: scale(1.075); 2115 | } 2116 | 2117 | /* List */ 2118 | 2119 | ol { 2120 | list-style: decimal; 2121 | margin: 0 0 2em 0; 2122 | padding-left: 1.25em; 2123 | } 2124 | 2125 | ol li { 2126 | padding-left: 0.25em; 2127 | } 2128 | 2129 | ul { 2130 | list-style: disc; 2131 | margin: 0 0 2em 0; 2132 | padding-left: 1em; 2133 | } 2134 | 2135 | ul li { 2136 | padding-left: 0.5em; 2137 | } 2138 | 2139 | ul.alt { 2140 | list-style: none; 2141 | padding-left: 0; 2142 | } 2143 | 2144 | ul.alt li { 2145 | border-top: solid 1px rgba(210, 215, 217, 0.75); 2146 | padding: 0.5em 0; 2147 | } 2148 | 2149 | ul.alt li:first-child { 2150 | border-top: 0; 2151 | padding-top: 0; 2152 | } 2153 | 2154 | dl { 2155 | margin: 0 0 2em 0; 2156 | } 2157 | 2158 | dl dt { 2159 | display: block; 2160 | font-weight: 600; 2161 | margin: 0 0 1em 0; 2162 | } 2163 | 2164 | dl dd { 2165 | margin-left: 2em; 2166 | } 2167 | 2168 | /* Actions */ 2169 | 2170 | ul.actions { 2171 | display: -moz-flex; 2172 | display: -webkit-flex; 2173 | display: -ms-flex; 2174 | display: flex; 2175 | cursor: default; 2176 | list-style: none; 2177 | margin-left: -1em; 2178 | padding-left: 0; 2179 | } 2180 | 2181 | ul.actions li { 2182 | padding: 0 0 0 1em; 2183 | vertical-align: middle; 2184 | } 2185 | 2186 | ul.actions.special { 2187 | -moz-justify-content: center; 2188 | -webkit-justify-content: center; 2189 | -ms-justify-content: center; 2190 | justify-content: center; 2191 | width: 100%; 2192 | margin-left: 0; 2193 | } 2194 | 2195 | ul.actions.special li:first-child { 2196 | padding-left: 0; 2197 | } 2198 | 2199 | ul.actions.stacked { 2200 | -moz-flex-direction: column; 2201 | -webkit-flex-direction: column; 2202 | -ms-flex-direction: column; 2203 | flex-direction: column; 2204 | margin-left: 0; 2205 | } 2206 | 2207 | ul.actions.stacked li { 2208 | padding: 1.3em 0 0 0; 2209 | } 2210 | 2211 | ul.actions.stacked li:first-child { 2212 | padding-top: 0; 2213 | } 2214 | 2215 | ul.actions.fit { 2216 | width: calc(100% + 1em); 2217 | } 2218 | 2219 | ul.actions.fit li { 2220 | -moz-flex-grow: 1; 2221 | -webkit-flex-grow: 1; 2222 | -ms-flex-grow: 1; 2223 | flex-grow: 1; 2224 | -moz-flex-shrink: 1; 2225 | -webkit-flex-shrink: 1; 2226 | -ms-flex-shrink: 1; 2227 | flex-shrink: 1; 2228 | width: 100%; 2229 | } 2230 | 2231 | ul.actions.fit li > * { 2232 | width: 100%; 2233 | } 2234 | 2235 | ul.actions.fit.stacked { 2236 | width: 100%; 2237 | } 2238 | 2239 | /* Icons */ 2240 | 2241 | ul.icons { 2242 | cursor: default; 2243 | list-style: none; 2244 | padding-left: 0; 2245 | } 2246 | 2247 | ul.icons li { 2248 | display: inline-block; 2249 | padding: 0 1em 0 0; 2250 | } 2251 | 2252 | ul.icons li:last-child { 2253 | padding-right: 0; 2254 | } 2255 | 2256 | ul.icons li .icon { 2257 | color: inherit; 2258 | } 2259 | 2260 | ul.icons li .icon:before { 2261 | font-size: 1.25em; 2262 | } 2263 | 2264 | /* Contact */ 2265 | 2266 | ul.contact { 2267 | list-style: none; 2268 | padding: 0; 2269 | } 2270 | 2271 | ul.contact li { 2272 | text-decoration: none; 2273 | border-top: solid 1px rgba(210, 215, 217, 0.75); 2274 | margin: 1.5em 0 0 0; 2275 | padding: 1.5em 0 0 3em; 2276 | position: relative; 2277 | } 2278 | 2279 | ul.contact li:before { 2280 | -moz-osx-font-smoothing: grayscale; 2281 | -webkit-font-smoothing: antialiased; 2282 | font-family: FontAwesome; 2283 | font-style: normal; 2284 | font-weight: normal; 2285 | text-transform: none !important; 2286 | } 2287 | 2288 | ul.contact li:before { 2289 | color: #f56a6a; 2290 | display: inline-block; 2291 | font-size: 1.5em; 2292 | height: 1.125em; 2293 | left: 0; 2294 | line-height: 1.125em; 2295 | position: absolute; 2296 | text-align: center; 2297 | top: 1em; 2298 | width: 1.5em; 2299 | } 2300 | 2301 | ul.contact li:first-child { 2302 | border-top: 0; 2303 | margin-top: 0; 2304 | padding-top: 0; 2305 | } 2306 | 2307 | ul.contact li:first-child:before { 2308 | top: 0; 2309 | } 2310 | 2311 | ul.contact li a { 2312 | color: inherit; 2313 | } 2314 | 2315 | /* Pagination */ 2316 | 2317 | ul.pagination { 2318 | cursor: default; 2319 | list-style: none; 2320 | padding-left: 0; 2321 | } 2322 | 2323 | ul.pagination li { 2324 | display: inline-block; 2325 | padding-left: 0; 2326 | vertical-align: middle; 2327 | } 2328 | 2329 | ul.pagination li > .page { 2330 | -moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; 2331 | -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; 2332 | -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; 2333 | transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; 2334 | border-bottom: 0; 2335 | border-radius: 0.375em; 2336 | display: inline-block; 2337 | font-size: 0.8em; 2338 | font-weight: 600; 2339 | height: 2em; 2340 | line-height: 2em; 2341 | margin: 0 0.125em; 2342 | min-width: 2em; 2343 | padding: 0 0.5em; 2344 | text-align: center; 2345 | } 2346 | 2347 | ul.pagination li > .page.active { 2348 | background-color: #f56a6a; 2349 | color: #ffffff !important; 2350 | } 2351 | 2352 | ul.pagination li > .page.active:hover { 2353 | background-color: #f67878; 2354 | } 2355 | 2356 | ul.pagination li > .page.active:active { 2357 | background-color: #f45c5c; 2358 | } 2359 | 2360 | ul.pagination li:first-child { 2361 | padding-right: 0.75em; 2362 | } 2363 | 2364 | ul.pagination li:last-child { 2365 | padding-left: 0.75em; 2366 | } 2367 | 2368 | @media screen and (max-width: 480px) { 2369 | 2370 | ul.pagination li:nth-child(n+2):nth-last-child(n+2) { 2371 | display: none; 2372 | } 2373 | 2374 | ul.pagination li:first-child { 2375 | padding-right: 0; 2376 | } 2377 | 2378 | } 2379 | 2380 | /* Table */ 2381 | 2382 | .table-wrapper { 2383 | -webkit-overflow-scrolling: touch; 2384 | overflow-x: auto; 2385 | } 2386 | 2387 | table { 2388 | margin: 0 0 2em 0; 2389 | width: 100%; 2390 | } 2391 | 2392 | table tbody tr { 2393 | border: solid 1px rgba(210, 215, 217, 0.75); 2394 | border-left: 0; 2395 | border-right: 0; 2396 | } 2397 | 2398 | table tbody tr:nth-child(2n + 1) { 2399 | background-color: rgba(230, 235, 237, 0.25); 2400 | } 2401 | 2402 | table td { 2403 | padding: 0.75em 0.75em; 2404 | } 2405 | 2406 | table th { 2407 | color: #3d4449; 2408 | font-size: 0.9em; 2409 | font-weight: 600; 2410 | padding: 0 0.75em 0.75em 0.75em; 2411 | text-align: left; 2412 | } 2413 | 2414 | table thead { 2415 | border-bottom: solid 2px rgba(210, 215, 217, 0.75); 2416 | } 2417 | 2418 | table tfoot { 2419 | border-top: solid 2px rgba(210, 215, 217, 0.75); 2420 | } 2421 | 2422 | table.alt { 2423 | border-collapse: separate; 2424 | } 2425 | 2426 | table.alt tbody tr td { 2427 | border: solid 1px rgba(210, 215, 217, 0.75); 2428 | border-left-width: 0; 2429 | border-top-width: 0; 2430 | } 2431 | 2432 | table.alt tbody tr td:first-child { 2433 | border-left-width: 1px; 2434 | } 2435 | 2436 | table.alt tbody tr:first-child td { 2437 | border-top-width: 1px; 2438 | } 2439 | 2440 | table.alt thead { 2441 | border-bottom: 0; 2442 | } 2443 | 2444 | table.alt tfoot { 2445 | border-top: 0; 2446 | } 2447 | 2448 | /* Button */ 2449 | 2450 | input[type="submit"], 2451 | input[type="reset"], 2452 | input[type="button"], 2453 | button, 2454 | .button { 2455 | -moz-appearance: none; 2456 | -webkit-appearance: none; 2457 | -ms-appearance: none; 2458 | appearance: none; 2459 | -moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; 2460 | -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; 2461 | -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; 2462 | transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; 2463 | background-color: transparent; 2464 | border-radius: 0.375em; 2465 | border: 0; 2466 | box-shadow: inset 0 0 0 2px #f56a6a; 2467 | color: #f56a6a !important; 2468 | cursor: pointer; 2469 | display: inline-block; 2470 | font-family: "Roboto Slab", serif; 2471 | font-size: 0.8em; 2472 | font-weight: 700; 2473 | height: 3.5em; 2474 | letter-spacing: 0.075em; 2475 | line-height: 3.5em; 2476 | padding: 0 2.25em; 2477 | text-align: center; 2478 | text-decoration: none; 2479 | text-transform: uppercase; 2480 | white-space: nowrap; 2481 | } 2482 | 2483 | input[type="submit"]:hover, 2484 | input[type="reset"]:hover, 2485 | input[type="button"]:hover, 2486 | button:hover, 2487 | .button:hover { 2488 | background-color: rgba(245, 106, 106, 0.05); 2489 | } 2490 | 2491 | input[type="submit"]:active, 2492 | input[type="reset"]:active, 2493 | input[type="button"]:active, 2494 | button:active, 2495 | .button:active { 2496 | background-color: rgba(245, 106, 106, 0.15); 2497 | } 2498 | 2499 | input[type="submit"].icon:before, 2500 | input[type="reset"].icon:before, 2501 | input[type="button"].icon:before, 2502 | button.icon:before, 2503 | .button.icon:before { 2504 | margin-right: 0.5em; 2505 | } 2506 | 2507 | input[type="submit"].fit, 2508 | input[type="reset"].fit, 2509 | input[type="button"].fit, 2510 | button.fit, 2511 | .button.fit { 2512 | width: 100%; 2513 | } 2514 | 2515 | input[type="submit"].small, 2516 | input[type="reset"].small, 2517 | input[type="button"].small, 2518 | button.small, 2519 | .button.small { 2520 | font-size: 0.6em; 2521 | } 2522 | 2523 | input[type="submit"].large, 2524 | input[type="reset"].large, 2525 | input[type="button"].large, 2526 | button.large, 2527 | .button.large { 2528 | font-size: 1em; 2529 | height: 3.65em; 2530 | line-height: 3.65em; 2531 | } 2532 | 2533 | input[type="submit"].primary, 2534 | input[type="reset"].primary, 2535 | input[type="button"].primary, 2536 | button.primary, 2537 | .button.primary { 2538 | background-color: #f56a6a; 2539 | box-shadow: none; 2540 | color: #ffffff !important; 2541 | } 2542 | 2543 | input[type="submit"].primary:hover, 2544 | input[type="reset"].primary:hover, 2545 | input[type="button"].primary:hover, 2546 | button.primary:hover, 2547 | .button.primary:hover { 2548 | background-color: #f67878; 2549 | } 2550 | 2551 | input[type="submit"].primary:active, 2552 | input[type="reset"].primary:active, 2553 | input[type="button"].primary:active, 2554 | button.primary:active, 2555 | .button.primary:active { 2556 | background-color: #f45c5c; 2557 | } 2558 | 2559 | input[type="submit"].disabled, input[type="submit"]:disabled, 2560 | input[type="reset"].disabled, 2561 | input[type="reset"]:disabled, 2562 | input[type="button"].disabled, 2563 | input[type="button"]:disabled, 2564 | button.disabled, 2565 | button:disabled, 2566 | .button.disabled, 2567 | .button:disabled { 2568 | pointer-events: none; 2569 | opacity: 0.25; 2570 | } 2571 | 2572 | /* Mini Posts */ 2573 | 2574 | .mini-posts article { 2575 | border-top: solid 1px rgba(210, 215, 217, 0.75); 2576 | margin-top: 2em; 2577 | padding-top: 2em; 2578 | } 2579 | 2580 | .mini-posts article .image { 2581 | display: block; 2582 | margin: 0 0 1.5em 0; 2583 | } 2584 | 2585 | .mini-posts article .image img { 2586 | display: block; 2587 | width: 100%; 2588 | } 2589 | 2590 | .mini-posts article:first-child { 2591 | border-top: 0; 2592 | margin-top: 0; 2593 | padding-top: 0; 2594 | } 2595 | 2596 | /* Features */ 2597 | 2598 | .features { 2599 | display: -moz-flex; 2600 | display: -webkit-flex; 2601 | display: -ms-flex; 2602 | display: flex; 2603 | -moz-flex-wrap: wrap; 2604 | -webkit-flex-wrap: wrap; 2605 | -ms-flex-wrap: wrap; 2606 | flex-wrap: wrap; 2607 | margin: 0 0 2em -3em; 2608 | width: calc(100% + 3em); 2609 | } 2610 | 2611 | .features article { 2612 | -moz-align-items: center; 2613 | -webkit-align-items: center; 2614 | -ms-align-items: center; 2615 | align-items: center; 2616 | display: -moz-flex; 2617 | display: -webkit-flex; 2618 | display: -ms-flex; 2619 | display: flex; 2620 | margin: 0 0 3em 3em; 2621 | position: relative; 2622 | width: calc(50% - 3em); 2623 | } 2624 | 2625 | .features article:nth-child(2n - 1) { 2626 | margin-right: 1.5em; 2627 | } 2628 | 2629 | .features article:nth-child(2n) { 2630 | margin-left: 1.5em; 2631 | } 2632 | 2633 | .features article:nth-last-child(1), .features article:nth-last-child(2) { 2634 | margin-bottom: 0; 2635 | } 2636 | 2637 | .features article .icon { 2638 | -moz-flex-grow: 0; 2639 | -webkit-flex-grow: 0; 2640 | -ms-flex-grow: 0; 2641 | flex-grow: 0; 2642 | -moz-flex-shrink: 0; 2643 | -webkit-flex-shrink: 0; 2644 | -ms-flex-shrink: 0; 2645 | flex-shrink: 0; 2646 | display: block; 2647 | height: 10em; 2648 | line-height: 10em; 2649 | margin: 0 2em 0 0; 2650 | text-align: center; 2651 | width: 10em; 2652 | } 2653 | 2654 | .features article .icon:before { 2655 | color: #f56a6a; 2656 | font-size: 2.75rem; 2657 | position: relative; 2658 | top: 0.05em; 2659 | } 2660 | 2661 | .features article .icon:after { 2662 | -moz-transform: rotate(45deg); 2663 | -webkit-transform: rotate(45deg); 2664 | -ms-transform: rotate(45deg); 2665 | transform: rotate(45deg); 2666 | border-radius: 0.25rem; 2667 | border: solid 2px rgba(210, 215, 217, 0.75); 2668 | content: ''; 2669 | display: block; 2670 | height: 7em; 2671 | left: 50%; 2672 | margin: -3.5em 0 0 -3.5em; 2673 | position: absolute; 2674 | top: 50%; 2675 | width: 7em; 2676 | } 2677 | 2678 | .features article .content { 2679 | -moz-flex-grow: 1; 2680 | -webkit-flex-grow: 1; 2681 | -ms-flex-grow: 1; 2682 | flex-grow: 1; 2683 | -moz-flex-shrink: 1; 2684 | -webkit-flex-shrink: 1; 2685 | -ms-flex-shrink: 1; 2686 | flex-shrink: 1; 2687 | width: 100%; 2688 | } 2689 | 2690 | .features article .content > :last-child { 2691 | margin-bottom: 0; 2692 | } 2693 | 2694 | @media screen and (max-width: 980px) { 2695 | 2696 | .features { 2697 | margin: 0 0 2em 0; 2698 | width: 100%; 2699 | } 2700 | 2701 | .features article { 2702 | margin: 0 0 3em 0; 2703 | width: 100%; 2704 | } 2705 | 2706 | .features article:nth-child(2n - 1) { 2707 | margin-right: 0; 2708 | } 2709 | 2710 | .features article:nth-child(2n) { 2711 | margin-left: 0; 2712 | } 2713 | 2714 | .features article:nth-last-child(1), .features article:nth-last-child(2) { 2715 | margin-bottom: 3em; 2716 | } 2717 | 2718 | .features article:last-child { 2719 | margin-bottom: 0; 2720 | } 2721 | 2722 | .features article .icon { 2723 | height: 8em; 2724 | line-height: 8em; 2725 | width: 8em; 2726 | } 2727 | 2728 | .features article .icon:before { 2729 | font-size: 2.25rem; 2730 | } 2731 | 2732 | .features article .icon:after { 2733 | height: 6em; 2734 | margin: -3em 0 0 -3em; 2735 | width: 6em; 2736 | } 2737 | 2738 | } 2739 | 2740 | @media screen and (max-width: 480px) { 2741 | 2742 | .features article { 2743 | -moz-flex-direction: column; 2744 | -webkit-flex-direction: column; 2745 | -ms-flex-direction: column; 2746 | flex-direction: column; 2747 | -moz-align-items: -moz-flex-start; 2748 | -webkit-align-items: -webkit-flex-start; 2749 | -ms-align-items: -ms-flex-start; 2750 | align-items: flex-start; 2751 | } 2752 | 2753 | .features article .icon { 2754 | height: 6em; 2755 | line-height: 6em; 2756 | margin: 0 0 1.5em 0; 2757 | width: 6em; 2758 | } 2759 | 2760 | .features article .icon:before { 2761 | font-size: 1.5rem; 2762 | } 2763 | 2764 | .features article .icon:after { 2765 | height: 4em; 2766 | margin: -2em 0 0 -2em; 2767 | width: 4em; 2768 | } 2769 | 2770 | } 2771 | 2772 | @media screen and (max-width: 480px) { 2773 | 2774 | .features article .icon:before { 2775 | font-size: 1.25rem; 2776 | } 2777 | 2778 | } 2779 | 2780 | /* Posts */ 2781 | 2782 | .posts { 2783 | display: -moz-flex; 2784 | display: -webkit-flex; 2785 | display: -ms-flex; 2786 | display: flex; 2787 | -moz-flex-wrap: wrap; 2788 | -webkit-flex-wrap: wrap; 2789 | -ms-flex-wrap: wrap; 2790 | flex-wrap: wrap; 2791 | margin: 0 0 2em -6em; 2792 | width: calc(100% + 6em); 2793 | } 2794 | 2795 | .posts article { 2796 | -moz-flex-grow: 0; 2797 | -webkit-flex-grow: 0; 2798 | -ms-flex-grow: 0; 2799 | flex-grow: 0; 2800 | -moz-flex-shrink: 1; 2801 | -webkit-flex-shrink: 1; 2802 | -ms-flex-shrink: 1; 2803 | flex-shrink: 1; 2804 | margin: 0 0 6em 6em; 2805 | position: relative; 2806 | width: calc(33.3333333333% - 6em); 2807 | } 2808 | 2809 | .posts article:before { 2810 | background: rgba(210, 215, 217, 0.75); 2811 | content: ''; 2812 | display: block; 2813 | height: calc(100% + 6em); 2814 | left: -3em; 2815 | position: absolute; 2816 | top: 0; 2817 | width: 1px; 2818 | } 2819 | 2820 | .posts article:after { 2821 | background: rgba(210, 215, 217, 0.75); 2822 | bottom: -3em; 2823 | content: ''; 2824 | display: block; 2825 | height: 1px; 2826 | position: absolute; 2827 | right: 0; 2828 | width: calc(100% + 6em); 2829 | } 2830 | 2831 | .posts article > :last-child { 2832 | margin-bottom: 0; 2833 | } 2834 | 2835 | .posts article .image { 2836 | display: block; 2837 | margin: 0 0 2em 0; 2838 | } 2839 | 2840 | .posts article .image img { 2841 | display: block; 2842 | width: 100%; 2843 | } 2844 | 2845 | @media screen and (min-width: 1681px) { 2846 | 2847 | .posts article:nth-child(3n + 1):before { 2848 | display: none; 2849 | } 2850 | 2851 | .posts article:nth-child(3n + 1):after { 2852 | width: 100%; 2853 | } 2854 | 2855 | .posts article:nth-last-child(1), .posts article:nth-last-child(2), .posts article:nth-last-child(3) { 2856 | margin-bottom: 0; 2857 | } 2858 | 2859 | .posts article:nth-last-child(1):before, .posts article:nth-last-child(2):before, .posts article:nth-last-child(3):before { 2860 | height: 100%; 2861 | } 2862 | 2863 | .posts article:nth-last-child(1):after, .posts article:nth-last-child(2):after, .posts article:nth-last-child(3):after { 2864 | display: none; 2865 | } 2866 | 2867 | } 2868 | 2869 | @media screen and (max-width: 1680px) { 2870 | 2871 | .posts article { 2872 | width: calc(50% - 6em); 2873 | } 2874 | 2875 | .posts article:nth-last-child(3) { 2876 | margin-bottom: 6em; 2877 | } 2878 | 2879 | } 2880 | 2881 | @media screen and (min-width: 481px) and (max-width: 1680px) { 2882 | 2883 | .posts article:nth-child(2n + 1):before { 2884 | display: none; 2885 | } 2886 | 2887 | .posts article:nth-child(2n + 1):after { 2888 | width: 100%; 2889 | } 2890 | 2891 | .posts article:nth-last-child(1), .posts article:nth-last-child(2) { 2892 | margin-bottom: 0; 2893 | } 2894 | 2895 | .posts article:nth-last-child(1):before, .posts article:nth-last-child(2):before { 2896 | height: 100%; 2897 | } 2898 | 2899 | .posts article:nth-last-child(1):after, .posts article:nth-last-child(2):after { 2900 | display: none; 2901 | } 2902 | 2903 | } 2904 | 2905 | @media screen and (max-width: 736px) { 2906 | 2907 | .posts { 2908 | margin: 0 0 2em -4.5em; 2909 | width: calc(100% + 4.5em); 2910 | } 2911 | 2912 | .posts article { 2913 | margin: 0 0 4.5em 4.5em; 2914 | width: calc(50% - 4.5em); 2915 | } 2916 | 2917 | .posts article:before { 2918 | height: calc(100% + 4.5em); 2919 | left: -2.25em; 2920 | } 2921 | 2922 | .posts article:after { 2923 | bottom: -2.25em; 2924 | width: calc(100% + 4.5em); 2925 | } 2926 | 2927 | .posts article:nth-last-child(3) { 2928 | margin-bottom: 4.5em; 2929 | } 2930 | 2931 | } 2932 | 2933 | @media screen and (max-width: 480px) { 2934 | 2935 | .posts { 2936 | margin: 0 0 2em 0; 2937 | width: 100%; 2938 | } 2939 | 2940 | .posts article { 2941 | margin: 0 0 4.5em 0; 2942 | width: 100%; 2943 | } 2944 | 2945 | .posts article:before { 2946 | display: none; 2947 | } 2948 | 2949 | .posts article:after { 2950 | width: 100%; 2951 | } 2952 | 2953 | .posts article:last-child { 2954 | margin-bottom: 0; 2955 | } 2956 | 2957 | .posts article:last-child:after { 2958 | display: none; 2959 | } 2960 | 2961 | } 2962 | 2963 | /* Wrapper */ 2964 | 2965 | #wrapper { 2966 | display: -moz-flex; 2967 | display: -webkit-flex; 2968 | display: -ms-flex; 2969 | display: flex; 2970 | -moz-flex-direction: row-reverse; 2971 | -webkit-flex-direction: row-reverse; 2972 | -ms-flex-direction: row-reverse; 2973 | flex-direction: row-reverse; 2974 | min-height: 100vh; 2975 | } 2976 | 2977 | /* Main */ 2978 | 2979 | #main { 2980 | -moz-flex-grow: 1; 2981 | -webkit-flex-grow: 1; 2982 | -ms-flex-grow: 1; 2983 | flex-grow: 1; 2984 | -moz-flex-shrink: 1; 2985 | -webkit-flex-shrink: 1; 2986 | -ms-flex-shrink: 1; 2987 | flex-shrink: 1; 2988 | width: 100%; 2989 | } 2990 | 2991 | #main > .inner { 2992 | padding: 0 6em 0.1em 6em ; 2993 | margin: 0 auto; 2994 | max-width: 110em; 2995 | } 2996 | 2997 | #main > .inner > section { 2998 | padding: 6em 0 4em 0 ; 2999 | border-top: solid 2px rgba(210, 215, 217, 0.75); 3000 | } 3001 | 3002 | #main > .inner > section:first-of-type { 3003 | border-top: 0 !important; 3004 | } 3005 | 3006 | @media screen and (max-width: 1680px) { 3007 | 3008 | #main > .inner { 3009 | padding: 0 5em 0.1em 5em ; 3010 | } 3011 | 3012 | #main > .inner > section { 3013 | padding: 5em 0 3em 0 ; 3014 | } 3015 | 3016 | } 3017 | 3018 | @media screen and (max-width: 1280px) { 3019 | 3020 | #main > .inner { 3021 | padding: 0 4em 0.1em 4em ; 3022 | } 3023 | 3024 | #main > .inner > section { 3025 | padding: 4em 0 2em 0 ; 3026 | } 3027 | 3028 | } 3029 | 3030 | @media screen and (max-width: 736px) { 3031 | 3032 | #main > .inner { 3033 | padding: 0 2em 0.1em 2em ; 3034 | } 3035 | 3036 | #main > .inner > section { 3037 | padding: 3em 0 1em 0 ; 3038 | } 3039 | 3040 | } 3041 | 3042 | /* Sidebar */ 3043 | 3044 | #search form { 3045 | text-decoration: none; 3046 | position: relative; 3047 | } 3048 | 3049 | #search form:before { 3050 | -moz-osx-font-smoothing: grayscale; 3051 | -webkit-font-smoothing: antialiased; 3052 | font-family: FontAwesome; 3053 | font-style: normal; 3054 | font-weight: normal; 3055 | text-transform: none !important; 3056 | } 3057 | 3058 | #search form:before { 3059 | -moz-transform: scaleX(-1); 3060 | -webkit-transform: scaleX(-1); 3061 | -ms-transform: scaleX(-1); 3062 | transform: scaleX(-1); 3063 | color: #7f888f; 3064 | content: '\f002'; 3065 | cursor: default; 3066 | display: block; 3067 | font-size: 1.5em; 3068 | height: 2em; 3069 | line-height: 2em; 3070 | opacity: 0.325; 3071 | position: absolute; 3072 | right: 0; 3073 | text-align: center; 3074 | top: 0; 3075 | width: 2em; 3076 | } 3077 | 3078 | #search form input[type="text"] { 3079 | padding-right: 2.75em; 3080 | } 3081 | 3082 | #sidebar { 3083 | -moz-flex-grow: 0; 3084 | -webkit-flex-grow: 0; 3085 | -ms-flex-grow: 0; 3086 | flex-grow: 0; 3087 | -moz-flex-shrink: 0; 3088 | -webkit-flex-shrink: 0; 3089 | -ms-flex-shrink: 0; 3090 | flex-shrink: 0; 3091 | -moz-transition: margin-left 0.5s ease, box-shadow 0.5s ease; 3092 | -webkit-transition: margin-left 0.5s ease, box-shadow 0.5s ease; 3093 | -ms-transition: margin-left 0.5s ease, box-shadow 0.5s ease; 3094 | transition: margin-left 0.5s ease, box-shadow 0.5s ease; 3095 | background-color: #f5f6f7; 3096 | font-size: 0.9em; 3097 | position: relative; 3098 | width: 26em; 3099 | } 3100 | 3101 | #sidebar h2 { 3102 | font-size: 1.3888888889em; 3103 | } 3104 | 3105 | #sidebar > .inner { 3106 | padding: 2.2222222222em 2.2222222222em 2.4444444444em 2.2222222222em ; 3107 | position: relative; 3108 | width: 26em; 3109 | } 3110 | 3111 | #sidebar > .inner > * { 3112 | border-bottom: solid 2px rgba(210, 215, 217, 0.75); 3113 | margin: 0 0 3.5em 0; 3114 | padding: 0 0 3.5em 0; 3115 | } 3116 | 3117 | #sidebar > .inner > * > :last-child { 3118 | margin-bottom: 0; 3119 | } 3120 | 3121 | #sidebar > .inner > *:last-child { 3122 | border-bottom: 0; 3123 | margin-bottom: 0; 3124 | padding-bottom: 0; 3125 | } 3126 | 3127 | #sidebar > .inner > .alt { 3128 | background-color: #eff1f2; 3129 | border-bottom: 0; 3130 | margin: -2.2222222222em 0 4.4444444444em -2.2222222222em; 3131 | padding: 2.2222222222em; 3132 | width: calc(100% + 4.4444444444em); 3133 | } 3134 | 3135 | #sidebar .toggle { 3136 | text-decoration: none; 3137 | -moz-transition: left 0.5s ease; 3138 | -webkit-transition: left 0.5s ease; 3139 | -ms-transition: left 0.5s ease; 3140 | transition: left 0.5s ease; 3141 | -webkit-tap-highlight-color: rgba(255, 255, 255, 0); 3142 | border: 0; 3143 | display: block; 3144 | height: 7.5em; 3145 | left: 26em; 3146 | line-height: 7.5em; 3147 | outline: 0; 3148 | overflow: hidden; 3149 | position: absolute; 3150 | text-align: center; 3151 | text-indent: 7.5em; 3152 | top: 0; 3153 | width: 6em; 3154 | z-index: 10000; 3155 | } 3156 | 3157 | #sidebar .toggle:before { 3158 | -moz-osx-font-smoothing: grayscale; 3159 | -webkit-font-smoothing: antialiased; 3160 | font-family: FontAwesome; 3161 | font-style: normal; 3162 | font-weight: normal; 3163 | text-transform: none !important; 3164 | } 3165 | 3166 | #sidebar .toggle:before { 3167 | content: '\f0c9'; 3168 | font-size: 2rem; 3169 | height: inherit; 3170 | left: 0; 3171 | line-height: inherit; 3172 | position: absolute; 3173 | text-indent: 0; 3174 | top: 0; 3175 | width: inherit; 3176 | } 3177 | 3178 | #sidebar.inactive { 3179 | margin-left: -26em; 3180 | } 3181 | 3182 | @media screen and (max-width: 1680px) { 3183 | 3184 | #sidebar { 3185 | width: 24em; 3186 | } 3187 | 3188 | #sidebar > .inner { 3189 | padding: 1.6666666667em 1.6666666667em 1.3333333333em 1.6666666667em ; 3190 | width: 24em; 3191 | } 3192 | 3193 | #sidebar > .inner > .alt { 3194 | margin: -1.6666666667em 0 3.3333333333em -1.6666666667em; 3195 | padding: 1.6666666667em; 3196 | width: calc(100% + 3.3333333333em); 3197 | } 3198 | 3199 | #sidebar .toggle { 3200 | height: 6.25em; 3201 | left: 24em; 3202 | line-height: 6.25em; 3203 | text-indent: 5em; 3204 | width: 5em; 3205 | } 3206 | 3207 | #sidebar .toggle:before { 3208 | font-size: 1.5rem; 3209 | } 3210 | 3211 | #sidebar.inactive { 3212 | margin-left: -24em; 3213 | } 3214 | 3215 | } 3216 | 3217 | @media screen and (max-width: 1280px) { 3218 | 3219 | #sidebar { 3220 | box-shadow: 0 0 5em 0 rgba(0, 0, 0, 0.175); 3221 | height: 100%; 3222 | left: 0; 3223 | position: fixed; 3224 | top: 0; 3225 | z-index: 10000; 3226 | } 3227 | 3228 | #sidebar.inactive { 3229 | box-shadow: none; 3230 | } 3231 | 3232 | #sidebar > .inner { 3233 | -webkit-overflow-scrolling: touch; 3234 | height: 100%; 3235 | left: 0; 3236 | overflow-x: hidden; 3237 | overflow-y: auto; 3238 | position: absolute; 3239 | top: 0; 3240 | } 3241 | 3242 | #sidebar > .inner:after { 3243 | content: ''; 3244 | display: block; 3245 | height: 4em; 3246 | width: 100%; 3247 | } 3248 | 3249 | #sidebar .toggle { 3250 | text-indent: 6em; 3251 | width: 6em; 3252 | } 3253 | 3254 | #sidebar .toggle:before { 3255 | font-size: 1.5rem; 3256 | margin-left: -0.4375em; 3257 | } 3258 | 3259 | body.is-preload #sidebar { 3260 | display: none; 3261 | } 3262 | 3263 | } 3264 | 3265 | @media screen and (max-width: 736px) { 3266 | 3267 | #sidebar .toggle { 3268 | text-indent: 7.25em; 3269 | width: 7.25em; 3270 | } 3271 | 3272 | #sidebar .toggle:before { 3273 | color: #7f888f; 3274 | margin-left: -0.0625em; 3275 | margin-top: -0.25em; 3276 | font-size: 1.1rem; 3277 | z-index: 1; 3278 | } 3279 | 3280 | #sidebar .toggle:after { 3281 | background: rgba(222, 225, 226, 0.75); 3282 | border-radius: 0.375em; 3283 | content: ''; 3284 | height: 3.5em; 3285 | left: 1em; 3286 | position: absolute; 3287 | top: 1em; 3288 | width: 5em; 3289 | } 3290 | 3291 | } 3292 | 3293 | /* Header */ 3294 | 3295 | #header { 3296 | display: -moz-flex; 3297 | display: -webkit-flex; 3298 | display: -ms-flex; 3299 | display: flex; 3300 | border-bottom: solid 5px #f56a6a; 3301 | padding: 6em 0 1em 0; 3302 | position: relative; 3303 | } 3304 | 3305 | #header > * { 3306 | -moz-flex: 1; 3307 | -webkit-flex: 1; 3308 | -ms-flex: 1; 3309 | flex: 1; 3310 | margin-bottom: 0; 3311 | } 3312 | 3313 | #header .logo { 3314 | border-bottom: 0; 3315 | color: inherit; 3316 | font-family: "Roboto Slab", serif; 3317 | font-size: 1.125em; 3318 | } 3319 | 3320 | #header .icons { 3321 | text-align: right; 3322 | } 3323 | 3324 | @media screen and (max-width: 1680px) { 3325 | 3326 | #header { 3327 | padding-top: 5em; 3328 | } 3329 | 3330 | } 3331 | 3332 | @media screen and (max-width: 736px) { 3333 | 3334 | #header { 3335 | padding-top: 6.5em; 3336 | } 3337 | 3338 | #header .logo { 3339 | font-size: 1.25em; 3340 | margin: 0; 3341 | } 3342 | 3343 | #header .icons { 3344 | height: 5em; 3345 | line-height: 5em; 3346 | position: absolute; 3347 | right: -0.5em; 3348 | top: 0; 3349 | } 3350 | 3351 | } 3352 | 3353 | /* Banner */ 3354 | 3355 | #banner { 3356 | padding: 2em 0 0em 0 ; 3357 | display: -moz-flex; 3358 | display: -webkit-flex; 3359 | display: -ms-flex; 3360 | display: flex; 3361 | } 3362 | 3363 | #banner h1 { 3364 | margin-top: -0.125em; 3365 | } 3366 | 3367 | #banner .content { 3368 | -moz-flex-grow: 1; 3369 | -webkit-flex-grow: 1; 3370 | -ms-flex-grow: 1; 3371 | flex-grow: 1; 3372 | -moz-flex-shrink: 1; 3373 | -webkit-flex-shrink: 1; 3374 | -ms-flex-shrink: 1; 3375 | flex-shrink: 1; 3376 | width: 50%; 3377 | } 3378 | 3379 | #banner .image { 3380 | -moz-flex-grow: 0; 3381 | -webkit-flex-grow: 0; 3382 | -ms-flex-grow: 0; 3383 | flex-grow: 0; 3384 | -moz-flex-shrink: 0; 3385 | -webkit-flex-shrink: 0; 3386 | -ms-flex-shrink: 0; 3387 | flex-shrink: 0; 3388 | display: block; 3389 | margin: 0 0 2em 4em; 3390 | width: 50%; 3391 | } 3392 | 3393 | #banner .image img { 3394 | height: 100%; 3395 | -moz-object-fit: cover; 3396 | -webkit-object-fit: cover; 3397 | -ms-object-fit: cover; 3398 | object-fit: cover; 3399 | -moz-object-position: center; 3400 | -webkit-object-position: center; 3401 | -ms-object-position: center; 3402 | object-position: center; 3403 | width: 100%; 3404 | } 3405 | 3406 | @media screen and (orientation: portrait) { 3407 | 3408 | #banner { 3409 | -moz-flex-direction: column-reverse; 3410 | -webkit-flex-direction: column-reverse; 3411 | -ms-flex-direction: column-reverse; 3412 | flex-direction: column-reverse; 3413 | } 3414 | 3415 | #banner h1 br { 3416 | display: none; 3417 | } 3418 | 3419 | #banner .content { 3420 | -moz-flex-grow: 0; 3421 | -webkit-flex-grow: 0; 3422 | -ms-flex-grow: 0; 3423 | flex-grow: 0; 3424 | -moz-flex-shrink: 0; 3425 | -webkit-flex-shrink: 0; 3426 | -ms-flex-shrink: 0; 3427 | flex-shrink: 0; 3428 | width: 100%; 3429 | } 3430 | 3431 | #banner .image { 3432 | -moz-flex-grow: 0; 3433 | -webkit-flex-grow: 0; 3434 | -ms-flex-grow: 0; 3435 | flex-grow: 0; 3436 | -moz-flex-shrink: 0; 3437 | -webkit-flex-shrink: 0; 3438 | -ms-flex-shrink: 0; 3439 | flex-shrink: 0; 3440 | margin: 0 0 4em 0; 3441 | height: 25em; 3442 | max-height: 50vh; 3443 | min-height: 18em; 3444 | width: 100%; 3445 | } 3446 | 3447 | } 3448 | 3449 | @media screen and (orientation: portrait) and (max-width: 480px) { 3450 | 3451 | #banner .image { 3452 | max-height: 35vh; 3453 | } 3454 | 3455 | } 3456 | 3457 | /* Footer */ 3458 | 3459 | #footer .copyright { 3460 | color: #9fa3a6; 3461 | font-size: 0.9em; 3462 | } 3463 | 3464 | #footer .copyright a { 3465 | color: inherit; 3466 | } 3467 | 3468 | /* Menu */ 3469 | 3470 | #menu ul { 3471 | -moz-user-select: none; 3472 | -webkit-user-select: none; 3473 | -ms-user-select: none; 3474 | user-select: none; 3475 | color: #3d4449; 3476 | font-family: "Roboto Slab", serif; 3477 | font-family: 400; 3478 | letter-spacing: 0.075em; 3479 | list-style: none; 3480 | margin-bottom: 0; 3481 | padding: 0; 3482 | text-transform: uppercase; 3483 | } 3484 | 3485 | #menu ul a, #menu ul span { 3486 | border-bottom: 0; 3487 | color: inherit; 3488 | cursor: pointer; 3489 | display: block; 3490 | font-size: 0.9em; 3491 | padding: 0.625em 0; 3492 | } 3493 | 3494 | #menu ul a:hover, #menu ul span:hover { 3495 | color: #f56a6a; 3496 | } 3497 | 3498 | #menu ul a.opener, #menu ul span.opener { 3499 | -moz-transition: color 0.2s ease-in-out; 3500 | -webkit-transition: color 0.2s ease-in-out; 3501 | -ms-transition: color 0.2s ease-in-out; 3502 | transition: color 0.2s ease-in-out; 3503 | text-decoration: none; 3504 | -webkit-tap-highlight-color: rgba(255, 255, 255, 0); 3505 | position: relative; 3506 | } 3507 | 3508 | #menu ul a.opener:before, #menu ul span.opener:before { 3509 | -moz-osx-font-smoothing: grayscale; 3510 | -webkit-font-smoothing: antialiased; 3511 | font-family: FontAwesome; 3512 | font-style: normal; 3513 | font-weight: normal; 3514 | text-transform: none !important; 3515 | } 3516 | 3517 | #menu ul a.opener:before, #menu ul span.opener:before { 3518 | -moz-transition: color 0.2s ease-in-out, -moz-transform 0.2s ease-in-out; 3519 | -webkit-transition: color 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out; 3520 | -ms-transition: color 0.2s ease-in-out, -ms-transform 0.2s ease-in-out; 3521 | transition: color 0.2s ease-in-out, transform 0.2s ease-in-out; 3522 | color: #9fa3a6; 3523 | content: '\f078'; 3524 | position: absolute; 3525 | right: 0; 3526 | } 3527 | 3528 | #menu ul a.opener:hover:before, #menu ul span.opener:hover:before { 3529 | color: #f56a6a; 3530 | } 3531 | 3532 | #menu ul a.opener.active + ul, #menu ul span.opener.active + ul { 3533 | display: block; 3534 | } 3535 | 3536 | #menu ul a.opener.active:before, #menu ul span.opener.active:before { 3537 | -moz-transform: rotate(-180deg); 3538 | -webkit-transform: rotate(-180deg); 3539 | -ms-transform: rotate(-180deg); 3540 | transform: rotate(-180deg); 3541 | } 3542 | 3543 | #menu > ul > li { 3544 | border-top: solid 1px rgba(210, 215, 217, 0.75); 3545 | margin: 0.5em 0 0 0; 3546 | padding: 0.5em 0 0 0; 3547 | } 3548 | 3549 | #menu > ul > li > ul { 3550 | color: #9fa3a6; 3551 | display: none; 3552 | margin: 0.5em 0 1.5em 0; 3553 | padding-left: 1em; 3554 | } 3555 | 3556 | #menu > ul > li > ul a, #menu > ul > li > ul span { 3557 | font-size: 0.8em; 3558 | } 3559 | 3560 | #menu > ul > li > ul > li { 3561 | margin: 0.125em 0 0 0; 3562 | padding: 0.125em 0 0 0; 3563 | } 3564 | 3565 | #menu > ul > li:first-child { 3566 | border-top: 0; 3567 | margin-top: 0; 3568 | padding-top: 0; 3569 | } 3570 | 3571 | 3572 | /* for a2os only */ 3573 | .beianhao { 3574 | color:rgb(165, 165, 165); 3575 | font-size: 10px 3576 | } --------------------------------------------------------------------------------