﻿@import url("fontawesome-all.min.css");
@import url("https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&display=swap");

/*
    PreschoolInMountPleasant.com
    Production CSS — Final Version
    Based on Arcana grid structure (Pixelarity license)
    Visual identity: Muted Coastal / Lowcountry Parent Guide
    
    COLOR SYSTEM
    ─────────────────────────────────────────────────────────
    BACKGROUNDS (warm, calm — off-white deepened for section contrast)
    --color-bg:             #F0F1EE   Soft Oyster (page backgrounds, deepened for contrast pass)
    --color-bg-white:       #FFFFFF   Clean White (content sections)
    
    TEXT (tightened for contrast — Round 2+)
    --color-text:           #222222   Near-Black (body text)
    --color-text-secondary: #555555   Dark Gray (subheadings, captions, meta)
    
    STRUCTURAL COLORS
    --color-marsh:          #6F7F78   Marsh Gray-Green (icons, buttons, bg accents)
    --color-marsh-text:     #566660   Marsh Deep (headings/labels in text role)
    --color-blue-gray:      #4A6070   Lowcountry Blue-Gray (links, navigation text)
    --color-driftwood:      #B7B1A9   Driftwood Taupe (borders, UI chrome)
    --color-border:         #D8D5D0   Light Taupe (hairlines, table borders)
    --color-nav-bg:         #3B4247   Slate (nav bar background)
    
    ACCENT (Shem Creek Coral — 5% usage rule)
    --color-accent:         #AD6259   Shem Creek Coral (callout borders, 
                                      callout headings, hover states, 
                                      sparse CTAs, nav accent line)
    
    Accent sourced from Charleston sunset photography:
    Shem Creek golden hour, marsh creek dusk tones.
    Warm coral that reads as "sunset" not "pink."
    
    ACCENT USAGE RULES:
    - Callout box left-border
    - Callout heading text color
    - Link hover state (transition from blue-gray)
    - One featured CTA per page (not all CTAs)
    - Nav accent line (3px)
    - Nav active indicator dot
    - Badges / update indicators
    - NEVER on: body text, section backgrounds, table headers, 
      all buttons, all links, or more than 2 elements per viewport
    
    TYPOGRAPHY
    ─────────────────────────────────────────────────────────
    Font:        Source Sans Pro (300, 400, 600)
    Base weight: 400 (regular — improved readability on mobile/low-res)
    Display:     300 (light — reserved for banner taglines, hero text)
    Headings:    600 (semibold)
    Base size:   17px desktop / 15px tablet / 14px mobile
    Line-height: 1.7 (generous for readability)
    
    TEMPLATE BASE
    ─────────────────────────────────────────────────────────
    Pixelarity Arcana — structure retained, personality replaced.
    All texture overlays (bg01.png, bg02.png, bg03.png) removed.
    All franchise colors (#911925) replaced.
*/

/* ================================================================
   CSS CUSTOM PROPERTIES
   ================================================================ */

:root {
    /* Backgrounds */
    --color-bg: #F0F1EE;
    --color-bg-white: #FFFFFF;
    /* Text */
    --color-text: #222222;
    --color-text-secondary: #555555;
    /* Structural */
    --color-marsh: #6F7F78;
    --color-marsh-text: #566660;
    --color-blue-gray: #4A6070;
    --color-driftwood: #B7B1A9;
    --color-border: #D8D5D0;
    --color-nav-bg: #3B4247;
    /* Accent */
    --color-accent: #AD6259;
    /* Nav */
    --color-nav-text: #d0d4d6;
    /* Typography */
    --font-body: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-semibold: 600;
    /* UI */
    --radius: 4px;
    --shadow-soft: 0 1px 3px rgba(0,0,0,0.06);
    --shadow-card: 0 2px 8px rgba(0,0,0,0.08);
    --transition: 0.2s ease-in-out;
}

/* ================================================================
   RESET
   ================================================================ */

html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}

body {
    line-height: 1;
}

ol, ul {
    list-style: none;
}

blockquote, q {
    quotes: none;
}

    blockquote:before, blockquote:after, q:before, q:after {
        content: '';
        content: none;
    }

table {
    border-collapse: collapse;
    border-spacing: 0;
}

body {
    -webkit-text-size-adjust: none;
}

mark {
    background-color: transparent;
    color: inherit;
}

input::-moz-focus-inner {
    border: 0;
    padding: 0;
}

input, select, textarea {
    appearance: none;
}

/* ================================================================
   BASIC / GLOBAL
   ================================================================ */

html {
    box-sizing: border-box;
}

*, *:before, *:after {
    box-sizing: inherit;
}

body {
    background: var(--color-bg);
}

    body.is-preload *, body.is-preload *:before, body.is-preload *:after {
        animation: none !important;
        transition: none !important;
    }

body, input, select, textarea {
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 17px;
    font-weight: var(--font-weight-normal);
    line-height: 1.7;
}

a {
    transition: color var(--transition), border-color var(--transition), opacity var(--transition);
    color: var(--color-blue-gray);
    text-decoration: none;
    border-bottom: dotted 1px var(--color-driftwood);
}

    a:hover {
        color: var(--color-accent);
        border-bottom-color: transparent;
    }

strong, b {
    font-weight: var(--font-weight-semibold);
}

em, i {
    font-style: italic;
}

p, ul, ol, dl, table, blockquote {
    margin: 0 0 1.75em 0;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
    line-height: 1.4;
    margin-bottom: 0.75em;
}

    h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
        color: inherit;
        text-decoration: none;
        border-bottom: none;
    }

    h1 em, h2 em, h3 em, h4 em, h5 em, h6 em {
        font-style: normal;
        font-weight: var(--font-weight-light);
    }

h2 {
    font-size: 1.75em;
    letter-spacing: -0.02em;
}

h3 {
    font-size: 1.15em;
    letter-spacing: -0.015em;
}

sub {
    font-size: 0.8em;
    position: relative;
    top: 0.5em;
}

sup {
    font-size: 0.8em;
    position: relative;
    top: -0.5em;
}

hr {
    border: 0;
    border-top: solid 1px var(--color-border);
    margin-bottom: 1.5em;
}

blockquote {
    border-left: solid 3px var(--color-marsh);
    font-style: italic;
    padding: 1em 0 1em 1.5em;
    color: var(--color-text-secondary);
}

/* ================================================================
   CONTAINER
   ================================================================ */

.container {
    margin: 0 auto;
    max-width: 100%;
    width: 1400px;
}

@media screen and (max-width: 1680px) {
    .container {
        width: 1200px;
    }
}

@media screen and (max-width: 1280px) {
    .container {
        width: 960px;
    }
}

@media screen and (max-width: 980px) {
    .container {
        width: 95%;
    }
}

@media screen and (max-width: 840px) {
    .container {
        width: 95%;
    }
}

@media screen and (max-width: 736px) {
    .container {
        width: 90%;
    }
}

@media screen and (max-width: 480px) {
    .container {
        width: 100%;
        padding: 0 20px;
    }
}

/* ================================================================
   ROW / GRID (Arcana structure retained)
   ================================================================ */

.row {
    display: flex;
    flex-wrap: wrap;
    box-sizing: border-box;
    align-items: stretch;
}

    .row > * {
        box-sizing: border-box;
    }

    .row.gtr-uniform > * > :last-child {
        margin-bottom: 0;
    }

    .row.aln-left {
        justify-content: flex-start;
    }

    .row.aln-center {
        justify-content: center;
    }

    .row.aln-right {
        justify-content: flex-end;
    }

    .row.aln-top {
        align-items: flex-start;
    }

    .row.aln-middle {
        align-items: center;
    }

    .row.aln-bottom {
        align-items: flex-end;
    }

    .row > .imp {
        order: -1;
    }

    .row > .col-1 {
        width: 8.33333%;
    }

    .row > .col-2 {
        width: 16.66667%;
    }

    .row > .col-3 {
        width: 25%;
    }

    .row > .col-4 {
        width: 33.33333%;
    }

    .row > .col-5 {
        width: 41.66667%;
    }

    .row > .col-6 {
        width: 50%;
    }

    .row > .col-7 {
        width: 58.33333%;
    }

    .row > .col-8 {
        width: 66.66667%;
    }

    .row > .col-9 {
        width: 75%;
    }

    .row > .col-10 {
        width: 83.33333%;
    }

    .row > .col-11 {
        width: 91.66667%;
    }

    .row > .col-12 {
        width: 100%;
    }

    .row > .off-1 {
        margin-left: 8.33333%;
    }

    .row > .off-2 {
        margin-left: 16.66667%;
    }

    .row > .off-3 {
        margin-left: 25%;
    }

    .row > .off-4 {
        margin-left: 33.33333%;
    }

    .row > .off-5 {
        margin-left: 41.66667%;
    }

    .row > .off-6 {
        margin-left: 50%;
    }

    .row > .off-7 {
        margin-left: 58.33333%;
    }

    .row > .off-8 {
        margin-left: 66.66667%;
    }

    .row > .off-9 {
        margin-left: 75%;
    }

    .row > .off-10 {
        margin-left: 83.33333%;
    }

    .row > .off-11 {
        margin-left: 91.66667%;
    }

    .row > .off-12 {
        margin-left: 100%;
    }

.row {
    margin-top: -50px;
    margin-left: -50px;
}

    .row > * {
        padding: 50px 0 0 50px;
    }

    .row.gtr-uniform {
        margin-top: -50px;
    }

        .row.gtr-uniform > * {
            padding-top: 50px;
        }

    .row.gtr-0 {
        margin-top: 0;
        margin-left: 0;
    }

        .row.gtr-0 > * {
            padding: 0;
        }

    .row.gtr-25 {
        margin-top: -12.5px;
        margin-left: -12.5px;
    }

        .row.gtr-25 > * {
            padding: 12.5px 0 0 12.5px;
        }

    .row.gtr-50 {
        margin-top: -25px;
        margin-left: -25px;
    }

        .row.gtr-50 > * {
            padding: 25px 0 0 25px;
        }

    .row.gtr-150 {
        margin-top: -75px;
        margin-left: -75px;
    }

        .row.gtr-150 > * {
            padding: 75px 0 0 75px;
        }

    .row.gtr-200 {
        margin-top: -100px;
        margin-left: -100px;
    }

        .row.gtr-200 > * {
            padding: 100px 0 0 100px;
        }

/* ================================================================
   SECTION / ARTICLE
   ================================================================ */

section.special, article.special {
    text-align: center;
}

header p {
    color: var(--color-text-secondary);
    font-size: 1.15em;
    font-weight: var(--font-weight-normal);
    position: relative;
    margin-top: -0.75em;
    margin-bottom: 2em;
}

header.major {
    text-align: center;
    margin: 0 0 2em 0;
}

    header.major h2 {
        font-size: 2em;
    }

    header.major p {
        position: relative;
        border-top: solid 1px var(--color-border);
        padding: 1em 0 0 0;
        margin: 0;
        top: -1em;
        font-size: 1.25em;
        letter-spacing: -0.02em;
        color: var(--color-text-secondary);
    }

footer {
    margin: 0 0 3em 0;
}

    footer > :last-child {
        margin-bottom: 0;
    }

    footer.major {
        padding-top: 3em;
    }

/* ================================================================
   FORM
   ================================================================ */

input[type="text"],
input[type="password"],
input[type="email"],
textarea {
    appearance: none;
    transition: border-color var(--transition);
    background: var(--color-bg-white);
    border: solid 1px var(--color-border);
    border-radius: var(--radius);
    color: inherit;
    display: block;
    outline: 0;
    padding: 0.75em 1em;
    text-decoration: none;
    width: 100%;
}

    input[type="text"]:focus,
    input[type="password"]:focus,
    input[type="email"]:focus,
    textarea:focus {
        border-color: var(--color-accent);
    }

input[type="text"],
input[type="password"],
input[type="email"] {
    line-height: 1em;
}

label {
    display: block;
    color: inherit;
    font-weight: var(--font-weight-semibold);
    line-height: 1.75em;
    margin-bottom: 0.5em;
}

::placeholder {
    color: var(--color-driftwood);
}

/* ================================================================
   IMAGE
   ================================================================ */

.image {
    border: 0;
    display: inline-block;
    position: relative;
    border-radius: var(--radius);
}

    .image img {
        display: block;
        border-radius: var(--radius);
    }

    .image.left, .image.right {
        max-width: 40%;
    }

        .image.left img, .image.right img {
            width: 100%;
        }

    .image.left {
        float: left;
        margin: 0 1.5em 1em 0;
        top: 0.25em;
    }

    .image.right {
        float: right;
        margin: 0 0 1em 1.5em;
        top: 0.25em;
    }

    .image.fit {
        display: block;
    }

        .image.fit img {
            display: block;
            width: 100%;
        }

    .image.featured {
        display: block;
        margin: 0 0 2em 0;
    }

        .image.featured img {
            display: block;
            width: 100%;
        }

/* ================================================================
   ICON
   ================================================================ */

.icon {
    text-decoration: none;
    position: relative;
}

    .icon:before {
        -moz-osx-font-smoothing: grayscale;
        -webkit-font-smoothing: antialiased;
        display: inline-block;
        font-style: normal;
        font-variant: normal;
        text-rendering: auto;
        line-height: 1;
        text-transform: none !important;
        font-family: 'Font Awesome 5 Free';
        font-weight: 400;
    }

    .icon > .label {
        display: none;
    }

    .icon:before {
        line-height: inherit;
    }

    .icon.solid:before {
        font-weight: 900;
    }

    .icon.brands:before {
        font-family: 'Font Awesome 5 Brands';
    }

    .icon.major {
        text-align: center;
        cursor: default;
        background-color: var(--color-marsh);
        color: #fff;
        border-radius: 100%;
        display: inline-block;
        width: 5em;
        height: 5em;
        line-height: 5em;
        box-shadow: 0 0 0 7px var(--color-bg-white), 0 0 0 8px var(--color-border);
        margin: 0 0 2em 0;
    }

        .icon.major:before {
            font-size: 36px;
        }

/* ================================================================
   LISTS
   ================================================================ */

ol {
    list-style: decimal;
    padding-left: 1.25em;
}

    ol li {
        padding-left: 0.25em;
    }

ul {
    list-style: disc;
    padding-left: 1em;
}

    ul li {
        padding-left: 0.5em;
    }

    ul.links {
        list-style: none;
        padding-left: 0;
    }

        ul.links li {
            line-height: 2.5em;
            padding-left: 0;
        }

    ul.icons {
        cursor: default;
        list-style: none;
        padding-left: 0;
    }

        ul.icons li {
            display: inline-block;
            line-height: 1em;
            padding-left: 1.5em;
        }

            ul.icons li:first-child {
                padding-left: 0;
            }

            ul.icons li a, ul.icons li span {
                font-size: 1.75em;
                border: 0;
                color: var(--color-driftwood);
            }

                ul.icons li a:hover {
                    color: var(--color-accent);
                }

    ul.menu {
        list-style: none;
        padding-left: 0;
    }

        ul.menu li {
            border-left: solid 1px var(--color-border);
            display: inline-block;
            padding: 0 0 0 1em;
            margin: 0 0 0 1em;
        }

            ul.menu li:first-child {
                border-left: 0;
                margin-left: 0;
                padding-left: 0;
            }

    ul.actions {
        display: flex;
        cursor: default;
        list-style: none;
        margin-left: -1em;
        padding-left: 0;
    }

        ul.actions li {
            padding: 0 0 0 1em;
            vertical-align: middle;
        }

        ul.actions.special {
            justify-content: center;
            width: 100%;
            margin-left: 0;
        }

            ul.actions.special li:first-child {
                padding-left: 0;
            }

        ul.actions.stacked {
            flex-direction: column;
            margin-left: 0;
        }

            ul.actions.stacked li {
                padding: 1.25em 0 0 0;
            }

                ul.actions.stacked li:first-child {
                    padding-top: 0;
                }

        ul.actions.fit {
            width: calc(100% + 1em);
        }

            ul.actions.fit li {
                flex-grow: 1;
                flex-shrink: 1;
                width: 100%;
            }

                ul.actions.fit li > * {
                    width: 100%;
                }

            ul.actions.fit.stacked {
                width: 100%;
            }

@media screen and (max-width: 736px) {
    ul.actions:not(.fixed) {
        flex-direction: column;
        margin-left: 0;
        width: 100% !important;
    }

        ul.actions:not(.fixed) li {
            flex-grow: 1;
            flex-shrink: 1;
            padding: 1em 0 0 0;
            text-align: center;
            width: 100%;
        }

            ul.actions:not(.fixed) li > * {
                width: 100%;
            }

            ul.actions:not(.fixed) li:first-child {
                padding-top: 0;
            }
}

/* ================================================================
   TABLES
   ================================================================ */

table {
    width: 100%;
}

    table.default {
        width: 100%;
    }

        table.default tbody tr {
            border-bottom: solid 1px var(--color-border);
        }

        table.default td {
            padding: 0.5em 1em;
        }

        table.default th {
            font-weight: var(--font-weight-semibold);
            padding: 0.5em 1em;
            text-align: left;
        }

        table.default thead {
            background-color: var(--color-marsh-text);
            color: #fff;
        }

/* ================================================================
   BUTTON
   ================================================================ */

input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
    appearance: none;
    transition: background-color var(--transition), color var(--transition);
    background-color: var(--color-marsh);
    border-radius: var(--radius);
    border: 0;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    padding: 0 1.5em;
    line-height: 2.75em;
    min-width: 9em;
    text-align: center;
    text-decoration: none;
    font-weight: var(--font-weight-semibold);
    letter-spacing: -0.02em;
}

    input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover,
    button:hover, .button:hover {
        background-color: var(--color-blue-gray);
        color: #fff !important;
    }

    input[type="submit"]:active, input[type="reset"]:active, input[type="button"]:active,
    button:active, .button:active {
        background-color: #3D5260;
        color: #fff;
    }

    input[type="submit"].alt, input[type="reset"].alt, input[type="button"].alt,
    button.alt, .button.alt {
        background-color: var(--color-nav-bg);
        color: #fff;
    }

        input[type="submit"].alt:hover, input[type="reset"].alt:hover, input[type="button"].alt:hover,
        button.alt:hover, .button.alt:hover {
            background-color: #4A5459;
        }

        input[type="submit"].alt:active, input[type="reset"].alt:active, input[type="button"].alt:active,
        button.alt:active, .button.alt:active {
            background-color: #2E353A;
        }

    /* Accent button — use sparingly, one per page max */
    input[type="submit"].accent, input[type="reset"].accent, input[type="button"].accent,
    button.accent, .button.accent {
        background-color: var(--color-accent);
        color: #fff;
    }

        input[type="submit"].accent:hover, input[type="reset"].accent:hover, input[type="button"].accent:hover,
        button.accent:hover, .button.accent:hover {
            background-color: #9A5750;
        }

    input[type="submit"].icon:before, input[type="reset"].icon:before, input[type="button"].icon:before,
    button.icon:before, .button.icon:before {
        margin-right: 0.5em;
    }

    input[type="submit"].fit, input[type="reset"].fit, input[type="button"].fit,
    button.fit, .button.fit {
        width: 100%;
    }

    input[type="submit"].small, input[type="reset"].small, input[type="button"].small,
    button.small, .button.small {
        font-size: 0.8em;
    }

/* ================================================================
   BOX COMPONENTS
   ================================================================ */

.box.highlight {
    text-align: center;
}

.box.post {
    position: relative;
    margin: 0 0 2em 0;
}

    .box.post:after {
        content: '';
        display: block;
        clear: both;
    }

    .box.post .inner {
        margin-left: calc(30% + 2em);
    }

        .box.post .inner > :last-child {
            margin-bottom: 0;
        }

    .box.post .image {
        width: 30%;
        margin: 0;
    }

/* ================================================================
   CUSTOM COMPONENTS
   ================================================================ */

/* Callout Box — 4px accent left border, clean shadow */
.callout {
    background: var(--color-bg-white);
    border: none;
    border-left: 4px solid var(--color-accent);
    border-radius: 0 var(--radius) var(--radius) 0;
    padding: 1.5em 1.75em;
    margin: 0 0 2em 0;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

    .callout h3, .callout h4 {
        color: var(--color-accent);
        font-weight: var(--font-weight-semibold);
        margin-bottom: 0.5em;
    }

    .callout p:last-child {
        margin-bottom: 0;
    }

    .callout a {
        color: var(--color-accent);
        border-bottom-color: var(--color-accent);
    }

        .callout a:hover {
            color: var(--color-accent);
            border-bottom-color: transparent;
        }

/* Simple Card */
.card {
    background: var(--color-bg-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1.5em;
    margin: 0 0 1.5em 0;
    box-shadow: var(--shadow-soft);
}

    .card h3 {
        margin-bottom: 0.5em;
    }

    .card p:last-child {
        margin-bottom: 0;
    }

/* Comparison Table */
table.comparison {
    width: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
}

    table.comparison thead {
        background-color: var(--color-marsh-text);
        color: #fff;
    }

    table.comparison th, table.comparison td {
        padding: 0.75em 1em;
        text-align: left;
    }

    table.comparison tbody tr {
        border-bottom: 1px solid var(--color-border);
    }

        table.comparison tbody tr:last-child {
            border-bottom: none;
        }

        table.comparison tbody tr:nth-child(even) {
            background-color: rgba(86, 102, 96, 0.04);
        }

/* Inline CTA — default uses blue-gray links */
.cta-inline {
    color: var(--color-blue-gray);
    border-bottom: 1px dotted var(--color-driftwood);
    font-weight: var(--font-weight-normal);
    text-decoration: none;
}

    .cta-inline:hover {
        color: var(--color-accent);
        border-bottom-color: transparent;
    }

/* Featured CTA — accent color, use once per page */
.cta-featured {
    color: var(--color-accent);
    border-bottom: 1px dotted var(--color-accent);
    font-weight: var(--font-weight-normal);
    text-decoration: none;
}

    .cta-featured:hover {
        color: var(--color-accent);
        border-bottom-color: transparent;
    }

/* Badge / Update indicator */
.badge {
    display: inline-block;
    font-size: 0.75em;
    font-weight: var(--font-weight-semibold);
    padding: 0.2em 0.65em;
    border-radius: 3px;
    background: var(--color-accent);
    color: #fff;
}

/* ================================================================
   HEADER
   ================================================================ */

#header {
    text-align: center;
    padding: 3em 0 0 0;
    background-color: var(--color-bg-white);
    border-bottom: 1px solid var(--color-border);
}

    #header h1 {
        padding: 0 0 2.75em 0;
        margin: 0;
    }

        #header h1 a {
            font-size: 1.5em;
            letter-spacing: -0.025em;
            border: 0;
            color: var(--color-text);
        }

/* ================================================================
   NAVIGATION
   ================================================================ */

#nav {
    cursor: default;
    background-color: var(--color-nav-bg);
    padding: 0;
}

    #nav:after {
        content: '';
        display: block;
        width: 100%;
        height: 3px;
        background-color: var(--color-accent);
    }

    #nav > ul {
        margin: 0;
    }

        #nav > ul > li {
            position: relative;
            display: inline-block;
            margin-left: 1em;
        }

            #nav > ul > li a {
                color: var(--color-nav-text);
                text-decoration: none;
                border: 0;
                display: block;
                padding: 1.5em 0.5em 1.35em 0.5em;
            }

            #nav > ul > li:first-child {
                margin-left: 0;
            }

            #nav > ul > li:hover a {
                color: #fff;
            }

            #nav > ul > li.current {
                font-weight: var(--font-weight-semibold);
            }

                #nav > ul > li.current:before {
                    transform: rotateZ(45deg);
                    width: 0.75em;
                    height: 0.75em;
                    content: '';
                    display: block;
                    position: absolute;
                    bottom: -0.5em;
                    left: 50%;
                    margin-left: -0.375em;
                    background-color: var(--color-accent);
                }

                #nav > ul > li.current a {
                    color: #fff;
                }

            #nav > ul > li.active a {
                color: #fff;
            }

            #nav > ul > li.active.current:before {
                opacity: 0;
            }

            #nav > ul > li > ul {
                display: none;
            }

/* Dropdown */
.dropotron {
    background-color: var(--color-nav-bg);
    border-radius: var(--radius);
    color: #fff;
    min-width: 10em;
    padding: 1em 0;
    text-align: center;
    box-shadow: 0 0.5em 1em rgba(0, 0, 0, 0.2);
    list-style: none;
}

    .dropotron > li {
        line-height: 2em;
        padding: 0 1.1em 0 1em;
    }

        .dropotron > li > a {
            color: var(--color-nav-text);
            text-decoration: none;
            border: 0;
        }

        .dropotron > li.active > a, .dropotron > li:hover > a {
            color: #fff;
        }

    .dropotron.level-0 {
        border-radius: 0 0 var(--radius) var(--radius);
        font-size: 0.9em;
        padding-top: 0;
        margin-top: -1px;
    }

/* ================================================================
   BANNER
   ================================================================ */

#banner {
    background-image: url("../../images/banner.jpg");
    background-position: center center;
    background-size: cover;
    height: 28em;
    text-align: center;
    position: relative;
}

    #banner header {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        background: rgba(59, 66, 71, 0.82);
        color: #fff;
        padding: 1.5em 0;
    }

        #banner header h2 {
            display: inline-block;
            margin: 0;
            font-size: 1.25em;
            vertical-align: middle;
        }

            #banner header h2 em {
                opacity: 0.75;
                font-weight: var(--font-weight-light);
            }

            #banner header h2 a {
                border-bottom-color: rgba(255, 255, 255, 0.5);
            }

                #banner header h2 a:hover {
                    border-bottom-color: transparent;
                }

        #banner header .button {
            vertical-align: middle;
            margin-left: 1em;
        }

/* ================================================================
   WRAPPER SECTIONS
   ================================================================ */

.wrapper {
    padding: 5em 0 3em 0;
}

    .wrapper.style1 {
        background: var(--color-bg-white);
    }

    .wrapper.style2 {
        background-color: var(--color-bg);
        border-top: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
    }

    .wrapper.style3 {
        background-color: var(--color-marsh);
        color: #fff;
    }

        .wrapper.style3 .button {
            background: var(--color-bg-white);
            color: var(--color-text);
        }

            .wrapper.style3 .button:hover {
                color: var(--color-accent) !important;
            }

/* ================================================================
   CTA SECTION
   ================================================================ */

#cta {
    text-align: center;
    padding: 3.5em 0;
}

    #cta header h2 {
        display: inline-block;
        vertical-align: middle;
        margin: 0;
    }

    #cta header .button {
        vertical-align: middle;
        margin-left: 1em;
    }

/* ================================================================
   FOOTER
   ================================================================ */

#footer {
    padding: 4em 0 8em 0;
}

    #footer a {
        color: inherit;
        border-bottom-color: var(--color-border);
    }

        #footer a:hover {
            color: var(--color-accent);
            border-bottom-color: transparent;
        }

    #footer .container {
        margin-bottom: 4em;
    }

    #footer .icons {
        text-align: center;
        margin: 0;
    }

        #footer .icons a {
            color: var(--color-driftwood);
        }

            #footer .icons a:hover {
                color: var(--color-text);
            }

    #footer .copyright {
        color: var(--color-text-secondary);
        margin-top: 1.5em;
        text-align: center;
        font-size: 0.9em;
    }

/* ================================================================
   RESPONSIVE: WIDE (max-width: 1680px)
   ================================================================ */

@media screen and (max-width: 1680px) {
    body, input, select, textarea {
        font-size: 16px;
        line-height: 1.65;
    }

    #banner {
        height: 24em;
    }

    .row {
        margin-top: -40px;
        margin-left: -40px;
    }

        .row > * {
            padding: 40px 0 0 40px;
        }

        .row.gtr-uniform {
            margin-top: -40px;
        }

            .row.gtr-uniform > * {
                padding-top: 40px;
            }
}

/* ================================================================
   RESPONSIVE: NORMAL (max-width: 1280px)
   ================================================================ */

@media screen and (max-width: 1280px) {
    body, input, select, textarea {
        font-size: 15px;
        line-height: 1.6;
    }

    ol {
        padding-left: 1.25em;
    }

        ol li {
            padding-left: 0.25em;
        }

    ul.icons li a, ul.icons li span {
        font-size: 1.5em;
    }

    #header {
        padding: 2em 0 0 0;
    }

        #header h1 {
            padding: 0 0 1.75em 0;
        }

    #banner {
        height: 20em;
    }

    .wrapper {
        padding: 3em 0 1em 0;
    }

    #cta {
        padding: 2em 0;
    }

    #footer {
        padding: 3em 0;
    }

        #footer .container {
            margin-bottom: 1em;
        }

    .row {
        margin-top: -30px;
        margin-left: -30px;
    }

        .row > * {
            padding: 30px 0 0 30px;
        }

        .row.gtr-uniform {
            margin-top: -30px;
        }

            .row.gtr-uniform > * {
                padding-top: 30px;
            }
}

/* ================================================================
   RESPONSIVE: NARROW (max-width: 980px)
   ================================================================ */

@media screen and (max-width: 980px) {
    body, input, select, textarea {
        font-size: 14px;
        line-height: 1.6;
    }
}

/* ================================================================
   RESPONSIVE: TABLET (max-width: 840px)
   ================================================================ */

#navPanel, #titleBar {
    display: none;
}

@media screen and (max-width: 840px) {
    html, body {
        overflow-x: hidden;
    }

    body, input, select, textarea {
        font-size: 15px;
    }

    h1, h2, h3, h4, h5, h6 {
        margin-bottom: 0.5em;
    }

    header p {
        margin-top: -0.75em;
    }

    header.major {
        text-align: center;
        margin: 0 0 2em 0;
    }

        header.major h2 {
            font-size: 1.75em;
        }

        header.major p {
            top: -0.25em;
            font-size: 1.25em;
        }

    .box.highlight {
        text-align: left;
        position: relative;
        padding-left: 7em;
    }

        .box.highlight i {
            position: absolute;
            margin: 0;
            left: 0;
            top: 0.25em;
        }

    .box.post .inner {
        margin-left: calc(20% + 2em);
    }

    .box.post .image {
        width: 20%;
    }

    #header {
        display: none;
    }

    #banner {
        height: 20em;
    }

        #banner header h2 {
            display: block;
        }

        #banner header .button {
            margin: 1em 0 0 0;
        }

    #cta {
        padding: 1.5em 0;
    }

        #cta header h2 {
            display: block;
        }

        #cta header .button {
            margin: 1em 0 0 0;
        }

    #footer {
        text-align: center;
    }

        #footer .container {
            margin-bottom: 4em;
        }

        #footer form .actions {
            justify-content: center;
            width: 100%;
            margin-left: 0;
        }

            #footer form .actions li:first-child {
                padding-left: 0;
            }

    #page-wrapper {
        backface-visibility: hidden;
        transition: transform 0.5s ease;
        padding-bottom: 1px;
        padding-top: 44px;
    }

    #titleBar {
        backface-visibility: hidden;
        transition: transform 0.5s ease;
        display: block;
        height: 44px;
        left: 0;
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 10001;
        background-color: var(--color-nav-bg);
        line-height: 44px;
        box-shadow: 0 3px 0 0 var(--color-accent);
    }

        #titleBar .title {
            display: block;
            position: relative;
            font-weight: var(--font-weight-semibold);
            text-align: center;
            color: #fff;
            z-index: 1;
        }

            #titleBar .title em {
                font-style: normal;
                font-weight: var(--font-weight-light);
            }

        #titleBar .toggle {
            text-decoration: none;
            border: 0;
            height: 60px;
            left: 0;
            position: absolute;
            top: 0;
            width: 80px;
            z-index: 2;
        }

            #titleBar .toggle:before {
                font-family: 'Font Awesome 5 Free';
                font-weight: 900;
                content: '\f0c9';
                display: block;
                height: 44px;
                line-height: inherit;
                text-align: center;
                width: 44px;
                color: #fff;
                opacity: 0.5;
            }

            #titleBar .toggle:active:before {
                opacity: 0.75;
            }

    #navPanel {
        background-color: #2A3035;
        box-shadow: inset -1px 0 3px 0 rgba(0, 0, 0, 0.5);
        backface-visibility: hidden;
        transform: translateX(-275px);
        transition: transform 0.5s ease;
        display: block;
        height: 100%;
        left: 0;
        overflow-y: auto;
        position: fixed;
        top: 0;
        width: 275px;
        z-index: 10002;
    }

        #navPanel .link {
            border-bottom: 0;
            border-top: solid 1px rgba(255, 255, 255, 0.05);
            color: #aaa;
            display: block;
            height: 48px;
            line-height: 48px;
            padding: 0 1em;
            text-decoration: none;
        }

            #navPanel .link:first-child {
                border-top: 0;
            }

            #navPanel .link.depth-0 {
                color: #fff;
            }

            #navPanel .link .indent-1 {
                display: inline-block;
                width: 1em;
            }

            #navPanel .link .indent-2 {
                display: inline-block;
                width: 2em;
            }

            #navPanel .link .indent-3 {
                display: inline-block;
                width: 3em;
            }

            #navPanel .link .indent-4 {
                display: inline-block;
                width: 4em;
            }

            #navPanel .link .indent-5 {
                display: inline-block;
                width: 5em;
            }

    body.navPanel-visible #page-wrapper {
        transform: translateX(275px);
    }

    body.navPanel-visible #titleBar {
        transform: translateX(275px);
    }

    body.navPanel-visible #navPanel {
        transform: translateX(0);
    }

    .row {
        margin-top: -20px;
        margin-left: -20px;
    }

        .row > * {
            padding: 20px 0 0 20px;
        }

        .row.gtr-uniform {
            margin-top: -20px;
        }

            .row.gtr-uniform > * {
                padding-top: 20px;
            }
}

/* ================================================================
   RESPONSIVE: MOBILE (max-width: 736px)
   ================================================================ */

@media screen and (max-width: 736px) {
    body, input, select, textarea {
        font-size: 14px;
        line-height: 1.5;
    }

    h2 {
        font-size: 1.25em;
        letter-spacing: 0;
        line-height: 1.35em;
    }

    h3 {
        font-size: 1em;
        letter-spacing: 0;
        line-height: 1.35em;
    }

    header p {
        margin-top: -0.5em;
        font-size: 1em;
    }

    header.major {
        padding: 0 20px;
    }

        header.major h2 {
            font-size: 1.25em;
        }

        header.major p {
            top: 0;
            margin-top: 1.25em;
            font-size: 1em;
        }

    ul.menu li {
        border: 0;
        padding: 0;
        margin: 0;
        display: block;
        line-height: 2em;
    }

    #banner {
        height: 18em;
    }

    .wrapper {
        padding: 2em 0 1px 0;
    }
}

/* ================================================================
   RESPONSIVE: MOBILE PORTRAIT (max-width: 480px)
   ================================================================ */

@media screen and (max-width: 480px) {
    .icon.major {
        width: 4em;
        height: 4em;
        line-height: 4em;
        box-shadow: 0 0 0 7px white, 0 0 0 8px var(--color-border);
    }

        .icon.major:before {
            font-size: 24px;
        }

    input[type="submit"], input[type="reset"], input[type="button"], button, .button {
        width: 100%;
        display: block;
    }

    .box.highlight {
        padding-left: calc(4em + 30px);
    }

    .box.post .inner {
        margin-left: calc(30% + 20px);
    }

    .box.post .image {
        width: 30%;
    }

    #banner {
        height: 20em;
    }

        #banner header {
            padding: 20px;
        }

    .wrapper {
        padding: 2em 20px 1px 20px;
    }

    #cta {
        padding: 20px;
    }

    #footer {
        padding: 2em 20px;
        text-align: left;
    }
}
