Default CSS
Our default CSS files should have all of the necessary styles to give you a running start. The _globals.css
file contains default CSS custom properties (variables) that control the site's colors, fonts, and others. Feel free to add to this list as needed.
Box Sizing
Our template css resets box-sizing
to border-box
for every element. This allows us to more easily assign widths to elements that also have padding
and border
s.
Flexbox
Our layouts include /css/_grid.css
which provides some helper classes for laying out flexbox elements:
.flex
setsdisplay: flex;
on the element.centered
tries to center the contents of the flex container both horizontally and vertically.stacked
sets the contents to be vertically stacked.middle
centers the contents vertically.grid-[number]
sets the width of its element to the specified percentage. Check the file for the included widths
In addition, when the viewport's width is 768px or less, it sets all of the .grid-[number]
columns to width: 100%;
and all of the flex containers to flex-direction: column;
Normalize
For improved cross-browser rendering, it's a good idea to include default styles at the beginning of the globals.css
to correct small inconsistencies across browsers and devices. The following is based on Normalize.css but modified to work with our typical site build-outs and Perpetua styling.
/* Default Styles
========================================================================== */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section {
display: block
}
audio,
canvas,
progress,
video {
display: inline-block
}
a {
background-color: transparent;
-webkit-text-decoration-skip: objects
}
a:active,
a:hover,
a:visited:hover,
a:active:hover {
text-decoration: none;
outline-width: 0
}
b,
strong {
font-weight: inherit
}
b,
strong {
font-weight: bolder
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline
}
sub {
bottom: -0.25em
}
sup {
top: -0.5em
}
a img {
border-style: none;
}
svg:not(:root) {
overflow: hidden;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible
}
button,
input,
select,
textarea {
font: inherit;
margin: 0
}
optgroup {
font-weight: bold
}
button,
input {
overflow: visible
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0
}
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText
}
textarea {
overflow: auto
}
[type="checkbox"],
[type="radio"] {
box-sizing: border-box;
padding: 0
}
[type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none
}
::-webkit-input-placeholder {
color: inherit;
opacity: 0.54
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit
}
html {
width: 100%;
min-height: 100%;
padding: 0;
margin: 0;
box-sizing: border-box;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%
}
*, *:before, *:after {
box-sizing: inherit;
}
Basic Layout CSS
/* Page Layout & Utility
========================================================================== */
body {
width: 100%;
min-height: 100%;
padding: 0;
margin: 0;
background: #353535;
-ms-font-feature-settings: 'liga' 1, 'kern';
-o-font-feature-settings: 'liga' 1, 'kern'; /* FF old */
font-feature-settings: 'liga' 1, 'kern';
}
.main-container {
position: relative;
width: 100%;
min-width: 1024px;
height: 100%;
min-height: 400px;
padding: 0;
margin: 0 auto;
font-family: 'Lato', Helvetica, Arial, sans-serif;
font-size: 10px;
font-weight: 400;
color: #65615c;
}
.wide {
position: relative;
width: 100%;
min-width: 1024px;
padding: 0;
margin: 0 auto;
}
.container {
position: relative;
width: 1000px;
max-width: 100%;
margin: 0 auto;
padding: 0;
}
.mobile {
display: none !important;
}
@media (max-width: 768px) {
.wide, .main-container {
width: 100%;
min-width: 0;
}
.container {
width: 540px;
}
}
@media (max-width: 576px) {
.container {
width: 100%;
padding-left: 30px;
padding-right: 30px;
}
}
/* Header
========================================================================== */
.primary {
position: relative;
padding-top: 16px;
padding-bottom: 16px;
display: block;
background-color: #fff;
z-index: 3000;
}
.primary > .container {
width: 90%;
overflow: hidden;
display: table;
vertical-align: middle;
}
#logo {
display: table-cell;
width: 30%;
transition:. 25s ease-out;
line-height: 1;
vertical-align: middle;
}
#logo a {
display: block;
}
#logo img {
max-width: 400px;
max-height: 100px;
height: auto;
}
@media (max-width: 768px) {
.primary {
padding: 0;
display: block;
}
.primary > .container {
display: block;
width: 100%;
padding: 0;
}
#logo {
float: left;
display: block;
margin-left: 2%;
padding: 8px 0;
width: 70%;
max-width: 300px;
}
}
/* Navigation
========================================================================== */
#menu {
display: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.navigation {
position: relative;
width: 70%;
display: table-cell;
vertical-align: middle;
z-index: 100;
text-align: right;
}
.navigation ul {
position: relative;
margin: 0 auto;
padding: 0;
list-style: none;
overflow: hidden;
font-size: 0;
}
.navigation ul li {
position: relative;
display: inline-block;
text-align: center;
font-size: 16px;
margin-left: 8px;
}
.navigation ul li a {
position: relative;
display: block;
padding: 8px 14px;
margin: 0;
color: #413d3a;
font-size: 16px;
font-weight: normal;
line-height: 1;
text-decoration: none;
text-align: center;
transition:.12s cubic-bezier(.4,0,.2,1);
}
.navigation ul li a:hover,
.navigation ul li a:focus,
.navigation ul li a.active,
.navigation ul li a.active:hover {
color: #005a9c;
}
@media (max-width: 768px) {
/*
* Menu Button
*/
#menu {
position: relative;
float: right;
z-index: 201;
font: inherit;
display: block;
overflow: visible;
margin: 0;
padding: 29px 20px;
cursor: pointer;
transition-timing-function: linear;
transition-duration: .15s;
transition-property: opacity,-webkit-filter;
transition-property: opacity,filter;
transition-property: opacity,filter,-webkit-filter;
text-transform: none;
color: inherit;
border: 0;
background-color: #fff;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
#menu:focus,
#menu:active {
outline: 0;
}
.menu-bars {
position: relative;
display: block;
width: 30px;
height: 20px;
}
.menu-bar {
display: block;
top: 50%;
margin-top: -1px;
}
.menu-bar,
.menu-bar::before,
.menu-bar::after {
width: 30px;
height: 2px;
background-color: #005a9c;
border-radius: 4px;
position: absolute;
transition-property: transform;
transition-duration: 0.15s;
transition-timing-function: ease;
}
.menu-bar::before,
.menu-bar::after {
content: "";
display: block;
}
.menu-bar::before {
top: -8px;
}
.menu-bar::after {
bottom: -8px;
}
/*
* Menu Animation
*/
#menu.active {
background-color: #005a9c;
}
.active .menu-bar,
.active .menu-bar::before,
.active .menu-bar::after {
background-color: #fff;
}
.menu-bar {
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
.menu-bar::before {
transition: top 0.1s 0.14s ease, opacity 0.1s ease;
}
.menu-bar::after {
transition: bottom 0.1s 0.14s ease, transform 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
.active .menu-bar {
transform: rotate(45deg);
transition-delay: 0.14s;
transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}
.active .menu-bar::before {
top: 0;
opacity: 0;
transition: top 0.1s ease, opacity 0.1s 0.14s ease;
}
.active .menu-bar::after {
bottom: 0;
transform: rotate(-90deg);
transition: bottom 0.1s ease, transform 0.1s 0.14s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.navigation {
position: relative;
display: block;
margin: 0;
width: 100%;
max-width: 100%;
max-height: 100%;
height: 0px;
float: none;
background-color: #005a9c;
transition: 0.4s ease-out;
overflow: hidden;
}
.navigation ul {
height: auto;
width: 100%;
}
.navigation ul .left,
.navigation ul .right {
float: none;
width: 100%;
display: block;
}
.navigation ul li {
width: 100%;
display: block;
float: none;
margin: 0;
}
.navigation ul li a {
width: 100%;
display: block;
float: none;
margin: 0;
padding: 12px 3%;
color: #fff;
font-size: 18px;
line-height: 24px;
text-align: center;
}
.navigation ul li a:hover,
.navigation ul li a:focus,
.navigation ul li a.active,
.navigation ul li a.active:hover {
color: #fff;
}
}
/* General Content Styles
========================================================================== */
.hero {
position: relative;
width: 100%;
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
overflow: hidden;
}
#content .cb-body img {
max-width: 100%;
height: auto;
}
.text-center {
text-align: center !important;
}
.text-right {
text-align: right !important;
}
.text-justify {
text-align: justify !important;
}
/* Footer
========================================================================== */
.site-footer {
background: #2e2e2e;
color: #fff;
overflow: hidden;
padding: 0;
}
.footer-row {
margin: 5em auto;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-flow: row nowrap;
-webkit-flex-flow: row nowrap;
flex-flow: row;
-ms-flex-pack: justify;
-webkit-justify-content: space-between;
justify-content: space-between;
}
.footer-column {
font-size: 1.4em;
line-height: 1.6;
}
.footer-column p {
margin: .2em 0;
}
.footer-column a:not(.button) {
color: #fff;
}
.footer-column strong {
font-size: 1.14em;
}
.footer-column strong,
.footer-column strong a {
color: #dea92c !important;
font-weight: 600;
}
.footer-column a:not(.button):not(.social-link):hover {
text-decoration: underline;
}
.footer-column a.button {
font-size: 14px;
margin: 1em 0;
}
#search {
position: relative;
width: 260px;
margin: 0;
}
.search-input {
position: relative;
width: 100%;
padding: 8px 48px 8px 8px;
font-size: 16px;
line-height: 16px;
background: #404140;
color: #fff;
outline: 0;
box-sizing: border-box;
}
.search-btn,
.search-input {
margin: 0;
border: 0;
border-radius: 0;
-webkit-appearance: none;
}
.search-btn {
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 40px;
background: #212224;
color: #dea92c;
font-size: 13px;
}
.footer-info {
background: #212224;
padding: 2em 0;
}
.footer-copyright {
text-align: right;
}
.footer-copyright p {
display: inline-block;
margin: 10px 0 0 50px;
font-family: Arial,Helvetica,sans-serif;
font-size: 10px;
color: #acacac;
vertical-align: middle;
text-transform: uppercase;
}
.footer-copyright a,.footer-copyright a:visited{
color: #acacac;
text-decoration: underline;
}
@media (max-width: 640px) {
.footer-row {
-ms-flex-flow: column;
-webkit-flex-flow: column;
flex-flow: column;
text-align: center;
}
.footer-column {
margin: 1em 0;
font-size: 1.4em;
line-height: 2;
}
#search {
width: 100%;
}
.footer-copyright {
text-align: center;
}
.footer-copyright p {
display: block;
margin: 20px auto;
}
}