/* Codigo Proposals - go.codigo.works */
:root {
    --blue: #40a5f0;
    --blue-dark: #3180bc;
    --font-sans: 'Source Sans 3', sans-serif;
    --font-serif: 'Lora', serif;
    --font-condensed: 'Barlow Condensed', sans-serif;
}
@media (min-width: 0px) {
    html {
        font-size: 65.2%;
    }
    html,
    body,
    #all,
    .p-header,
    main,
    #footer {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    html,
    body {
        height: 100%;
    }
    /* hide from page */
    .goaway {
        position: absolute;
        left: -90000px;
    }
    .container {
        margin: 0;
        max-width: unset;
        padding: 0;
        width: 100%;
    }
    .p-header {
        display: flex;
        flex-direction: column;
        justify-content: center;
        margin: 0;
        padding: 0;
        position: relative;
        z-index: 1;
    }
        .h {
            height: 480px;
            position: absolute; 
            top: 0; 
            left: 0; 
            width: 100%;
        }
        .h-bg {
            background-color: #000;
            background-position: center; 
            background-size: cover;
            background-repeat: no-repeat;   
            z-index: 1;
        }
        .h-img {
            background-image: linear-gradient(to top, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.0));
            opacity: 1.0;
            z-index: 2;
        }
        .h-text {
            display: flex;
            flex-direction: row;
            z-index: 3;
        }
    /* apparently height: 100% is needed for Chrome/Opera/FF to allow scrollspy to work */
    body,
    .position-relative {
        position: relative;
    }
    div,
    article,
    header,
    section,
    main,
    footer,
    a,
    img {
        transition: all 0.5s;
        -moz-transition: all 0.5s;
        /* Firefox 4 */
        -webkit-transition: all 0.5s;
        /* Safari and Chrome */
        -o-transition: all 0.5s;
        /* Opera */
    }
    h2,
    h3,
    h4,
    h5,
    h6 {
        display: block;
        float: left;
        min-height: 12px;
        width: 100%;
    }
    pre.go {
        font-size: 1.75rem;
    }
    .well {
        display: block;
        float: left;
        margin: 16px 0;
        padding: 12px 16px;
        width: 100%;
    }
    .error {
        background: var(--red);
        color: #fff;
        display: inline-block;
        font-size: 1.75rem;
        padding: 12px 20px;
    }
    .form-msg {
        background: #eee;
        border: 1px solid #ccc;
        color: #999;
        display: inline-block;
        font-size: 1.75rem;
        padding: 12px 20px;
    }
    #all,
    .p-header,
    main,
    #footer {
        display: block;
        float: left;
    }
    #all {
        min-height: 24px;
        overflow-x: hidden;
    }
    .p-header {
        height: 480px;
        overflow: hidden;
        position: relative;
    }
    .p-header-content {
        color: #fff;
        display: flex;
        flex-direction: column;
        font-family: var(--font-sans);
        justify-content: center;
        min-height: 24px;
        padding: 0 8px;
        text-align: center;
        text-shadow: 2px 2px 4px #000, 0 0 8px #000;
        width: 100%;
        z-index: 3;
    }
    .p-header h1,
    .p-header .p-desc,
    .p-header h2 {
        align-self: center;
    }

    .p-header h1 {
        font-family: var(--font-serif);
        font-size: 4.25rem;
        font-weight: 700;
        line-height: 1.1;
        margin: 0;
        padding: 0 16px 8px 16px;
    }
    .p-header .p-desc {
        font-family: var(--font-serif);
        font-size: 2.4rem;
        line-height: 1.2;
        padding: 0 0 24px 0;
    }
    .p-header h2 {
        font-size: 2.5rem;
        line-height: 1.2;
        margin: 0;
        padding: 12px 0 24px 0;
    }
    .p-details {
        display: block;
        float: left;
        font-size: 1.75rem;
        font-weight: 400;
        line-height: 2.5rem;
        list-style-type: none;
        margin: 0;
        padding: 0 8px;
        width: 100%;
    }
    main {
        background: #eee;
        padding-bottom: 80px;
    }
    .p-menu {
        position: relative;
    }
    #menu {
        border: 0;
        color: #555;
        display: none;
        position: absolute;
        top: 24px;
        left: 16px;
        margin-top: 0;
        padding: 16px 24px;
        width: 280px;
        z-index: 3;
    }
    #menu.scrolling {
        position: fixed;
        top: 24px;
        left: 24px;
        margin-top: 0;
        padding: 16px 24px;
    }
    #menu li {
        border: 1px solid #eee;
        border-radius: 0;
        margin: 0;
        padding: 0;
        width: 100%;
    }
    .menu-item {
        color: #555;
        display: block;
        float: left;
        font-family: var(--font-serif);
        font-size: 1.5rem;
        font-weight: 400;
        line-height: 1.15;
        min-height: 24px;
        padding: 8px 16px;
        width: 100%;
    }
    #menu li.active,
    #menu li.active:hover {
        border-color: #333;
    }
    #menu li:hover .menu-item {
        background: #fff;
        color: #555;
    }
    #menu li.active .menu-item,
    #menu li.active .menu-item:hover,
    #menu li.active .menu-item:focus {
        background: none;
        color: #000;
    }
    .sect {
        background: #fff;
        float: left;
        margin: 0;
        min-height: 240px;
        padding: 24px 0;
        width: 100%;
    }
    .sect-header {
        display: block;
        float: left;
        min-height: 24px;
        padding: 0 0 16px 0;
        width: 100%;
    }
    .sect-header h2.sect-header-title,
    .sect h2.sect-header-title,
    .p-terms .sect .sect-content h2.sect-header-title,
    .agreement-terms .sect .sect-content h2.sect-header-title {
        color: #222;
        font-family: var(--font-serif);
        font-size: 4.5rem;
        font-weight: 400;
        line-height: 1.1;
    }
    .sect .sect-content h2 {
        color: var(--blue-dark);
        font-family: var(--font-sans);
        font-size: 3.25rem;
        font-weight: 400;
    }
    .sect .sect-desc {
        display: block;
        float: left;
        font-family: var(--font-sans);
        font-size: 2rem;
        font-weight: 300;
        line-height: 1.2;
        min-height: 24px;
        padding: 8px 0;
        width: 100%;
    }
    .sect h3 {
        color: var(--blue);
        font-size: 2.65rem;
        font-weight: 700;
        line-height: 1.2;
        padding-top: 16px;
    }
    .sect h4 {
        color: #555;
        font-size: 2.25rem;
        line-height: 1.25;
        margin-top: 16px;
    }
    .sect .pricing-list h4 {
        font-size: 2.25rem;
        margin-top: 10px;
    }
    .sect p {
        color: #222;
        font-family: var(--font-serif);
        font-size: 2rem;
        font-weight: 400;
        line-height: 1.6;
        padding: 4px 0;
    }
    .sect-content figure {
        float: left;
        width: 100%;
    }
    .sect-btn-wrap {
        display: block;
        float: left;
        width: 100%;
    }
    .sect-btn {
        background: #1abc9c;
        color: #fff;
        border: 0;
        display: block;
        float: left;
        font-size: 1.75rem;
        min-width: 220px;
        max-width: 280px;
        margin: 4px 8px 4px 0;
        padding: 12px 16px;
    }
    .sect-content {
        display: block;
        float: left;
        width: 100%;
    }
        .sect-content figure {
            display: flex;
            flex-direction: row;
            justify-content: center;
            padding: 16px 0;
            width: 100%;
        }
        .sect-content figure img {
            margin: 0;
            max-width: 100%;
        }
        .sect-content figure figcaption {
            color: #999;
            font-family: var(--font-sans);
            font-size: 1.75rem;
            font-style: italic;
            line-height: 1.2;
            padding: 12px 0;
            text-align: center;
        }
    
    .p-agreement .signature,
    #pricing .sect-content,
    .p-terms .sect-content,
    .sect-content figure,
    .sect h2, .sect h3, .sect h4, .sect ol, .sect ul, .sect p, .sect blockquote,
    .sect .sect-desc,
    .container {
        padding-left: 24px;
        padding-right: 24px;
    }
    .sect blockquote {
        border: none;
    }
    .sect blockquote p {
        font-size: 2.25rem;
        padding-left: 32px;
        padding-right: 0;
    }
    .sect blockquote p.review-author {
        font-size: 2rem;
    }
    .sect .sect-content h2 {
        padding-top: 32px;
        padding-bottom: 8px;
    }
    .sect ul,
    .sect ol {
        display: block;
        float: left;
        margin: 0;
        min-height: 24px;
        padding: 16px 24px 16px 48px;
        width: 100%;
    }
    .sect ul li,
    .sect ol li {
        font-family: var(--font-serif);
        font-size: 2rem;
        line-height: 3.25rem;
        margin-left: 12px;
        padding: 0 0 12px 0;
    }
    .sect p .btn,
    .sect nav .btn {
        background: #40a5f0;
        border-color: #348acc;
        font-family: var(--font-sans);
    }
    .sect p .btn:hover,
    .sect nav .btn:hover {
        background: #348acc;
        border-color: #348acc;
    }
    .sect nav a {
        margin: 0 0 4px 0;
    }
    .sect ul.agreement-parties {
        float: left;
        list-style-type: none;
        margin: 0;
        padding: 0;
        width: 100%;
    }
        .sect ul.agreement-parties li h2,
        .sect ul.agreement-parties li h3,
        .sect ul.agreement-parties li h4,
        .sect ul.agreement-parties li p,
        .sect ul.agreement-parties .signature {
            padding-left: 0;
            padding-right: 0;
        }
        .sect ul.agreement-parties .signature {
            height: 140px;
            width: 100%;
        }
            .sect ul.agreement-parties .signature img {
                max-height: 140px;
                max-width: 100%;
            }
        .sect ul.agreement-parties p.signature-name {
            display: block;
            float: left;
            padding-top: 8px;
            width: 100%;
        }
    /* totals calcuation within the page */
    #calc {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        float: left;
        justify-content: flex-end;
        width: 100%;
    }
        #price {
            flex-grow: 0;
            flex-shrink: 0;
            text-align: right;
            width: 100%;
        }
        #calc form {
            flex-grow: 0;
            flex-shrink: 0;
            margin: 16px 8px 0 0;
            width: 160px;
        }
            #calc form .btn {
                border-radius: 0;
                display: block;
                text-transform: uppercase;
                width: 100%;
            }
            #calc form .btn-danger {
                background: none;
                border: 2px solid #fff;
                color: #d9534f;
            }
            #calc form .btn-danger:hover {
                border-color: #d9534f;
            }
    .sect.reviews {
        background: #40a5f0;
        padding: 80px 0;
    }
        .sect.reviews blockquote .review-content {
            border-left: 4px solid #2c3e50;
            padding: 16px 0 16px 40px;
        }
        .sect.reviews blockquote .review-comment p {
            color: #fff;
            font-size: 3.2rem;
            font-style: italic;
            line-height: 1.2;
            max-width: 600px;
            padding-left: 0;
        }
        .sect.reviews blockquote p.review-author {
            color: #fff;
            padding-top: 24px;
            padding-left: 0;
        }
    /* example websites within a frame */
    .framed {
        width: 1400px;
        height: 1400px;
        -ms-zoom: 0.35;
        -moz-transform: scale(0.35);
        -moz-transform-origin: 0 0;
        -o-transform: scale(0.35);
        -o-transform-origin: 0 0;
        -webkit-transform: scale(0.35);
        -webkit-transform-origin: 0 0;
    }

    #thankyou {
        background: #40a5f0;
        padding: 80px 0;
    }
        #thankyou h1,
        #thankyou h2,
        #thankyou p {
            color: #fff;
        }
        #thankyou p {
            font-size: 2.5rem;
        }

    /* timeline - table */
    .timeline {
        border: 0;
        float: left;
        margin: 0;
        padding: 0;
        width: 100%;
    }
        .timeline tr {
            border-left: 16px solid var(--blue);
            display: block;
            float: left;
            margin: 0;
            padding: 24px 0;
            width: 100%;
        }
            .timeline tr td {
                vertical-align: top;
            }
            .timeline .timeline-marker {
                width: 40px;
            }
                .timeline .timeline-marker .marker {
                    background: var(--blue);
                    color: #fff;
                    display: block;
                    float: left;
                    font-family: var(--font-sans);
                    font-size: 2rem;
                    font-weight: 600;
                    min-height: 24px;
                    padding: 3px 0;
                    text-align: center;
                    width: 100%;
                }
            .timeline .timeline-content {
                font-family: var(--font-serif);
                font-size: 2rem;
                font-weight: 400;
                padding-left: 12px;
            }
                .sect .timeline-content ul {
                    margin: 8px 0 8px 20px;
                    padding: 0;
                }
                    .sect .timeline-content p {
                        font-size: inherit;
                        line-height: 1.6;
                    }
                    .sect .timeline-content ul li {
                        font-size: inherit;
                        line-height: 1.2;
                        padding: 3px 0;
                    }
    
    .sect .estimate {
        background: #f9f9f9;
        border: 1px solid #ccc;
        float: left;
        margin: 12px 0;
        padding: 8px 20px;
        width: 100%;
    }
        .sect .estimate-amount {
            background: var(--blue);
            color: #fff;
            float: left;
            font-family: var(--font-sans);
            font-size: 2.6rem;
            font-weight: 700;
            margin: 16px 0;
            padding: 20px 32px;
        }
        .sect ul.estimate-list {
            float: left;
            margin: 8px 0;
            width: 100%;
        }
            .sect ul.estimate-list li {
                font-family: var(--font-sans);
                font-size: 2rem;
                font-weight: 400;
                line-height: 1.5;
            }
    /* using ol
    .sect ol.timeline {
        border-left: 16px solid var(--blue);
        counter-reset: timeline-counter;
        list-style: none;
        list-style-type: none;
        margin: 0;
        padding: 40px 0;
    }
        .sect ol.timeline li {
            counter-increment: timeline-counter;
            font-family: var(--font-serif);
            font-weight: 400;
            margin: 0;
        }
        .sect ol.timeline li:before {
            content: counter(timeline-counter);
            background-color: var(--blue);
            color: #fff;
            display: inline-block;
            font-family: var(--font-sans);
            font-size: 1.75rem;
            font-weight: 600;
            margin-right: 8px;
            padding: 3px 24px 3px 12px;
            text-align: left;
            width: 24px;
        }
            .sect ol.timeline li strong {
                font-family: var(--font-sans);
                font-weight: 600;
            }
    */

    /* pricing table */
    .pricing,
    .pricing-list,
    .pricing-item,
    .pricing-total {
        display: block;
        float: left;
        min-height: 24px;
        width: 100%;
    }
    .pricing {
        margin-bottom: 16px;
    }
    .pricing p {
        line-height: 1.4;
        padding: 3px 0;
    }
    .pricing .pricing-item .pricing-item-description ul,
    .pricing .pricing-item .pricing-item-description ol {
        line-height: 1.2;
    	padding: 0 0 16px 24px;
    }
    .pricing .pricing-item .pricing-item-description ul li,
    .pricing .pricing-item .pricing-item-description ol li {
    	padding: 4px 0;
    }
    .pricing label {
        font-weight: 400;
    }
    .pricing-item,
    .pricing-total {
        padding: 6px 8px;
    }
    .pricing-item:nth-child(odd) {
        background: #f3f3f3;
    }
    .pricing-item:nth-child(even) {
        background: #fff;
    }
    .pricing-item.pricing-headings {
        background: none;
    }
    .pricing-item-amount,
    .pricing-total-amount,
    .pricing-total-label {
        font-family: var(--font-sans);
        font-size: 1.75rem;
        line-height: 2.25rem;
        padding-right: 12px;
    }
    .pricing-item-amount,
    .pricing-total-amount {
        text-align: right;
    }
    .pricing-item-amount small {
        opacity: 0.6;
    }
    .pricing-item-selection,
    .pricing-item-description,
    .pricing-item-amount,
    .pricing-total-label,
    .pricing-total-amount {
        display: block;
        float: left;
        min-height: 24px;
    }
    .sect .pricing-list h3.pricing-item-heading,
    .sect .pricing-list .pricing-item-amount h3.pricing-item-heading {
        color: #777;
        font-size: 1.5rem;
        font-weight: 400;
        padding-top: 0;
        padding-left: 16px;
        text-transform: uppercase;
    }
    .sect .pricing-list .pricing-item-amount h3.pricing-item-heading {
        font-family: var(--font-sans);
        padding-left: 0;
        padding-right: 0;
        text-align: right;
    }
    .pricing-item-description dl dt input {
        height: 16px;
        margin-right: 8px; 
        width: 16px;
    }
    .pricing-item-description {
        padding-top: 8px;
        width: 70%;
    }
        .pricing-item-description dl {
            float: left;
            padding-left: 16px;
            width: 100%;
        }
        .pricing-item-description dl dt {
            color: #000;
            font-family: var(--font-serif);
            font-size: 2.25rem;
            font-weight: 400;
            line-height: 1.15;
            padding-bottom: 4px;
        }
        .pricing-item-description dl dd {
            color: #333;
            font-family: var(--font-serif);
            font-size: 1.75rem;
            line-height: 1.4;
        }
            .pricing-item-description dl dd ul li,
            .pricing-item-description dl dd ol li {
                font-family: var(--font-serif);
                font-size: 1.75rem;
                line-height: 1.4;
                padding: 4px 0;
            }
    .pricing-item-amount {
        color: #000;
        font-family: var(--font-sans);
        font-size: 2rem;
        padding-top: 8px;
        width: 30%;
    }
    .pricing-item-amount.adjustable {
        display: flex;
        flex-direction: column-reverse;
    }
        .price-adjust {
            padding-right: 12px;
        }
            .price-adjust-controls .btn {
                font-size: 16px;
            }
    .pricing-item-amount .price-subtotal {
        min-width: 80px;
    }
    /* addons */
    .pricing-item.is-addon.is-addon-selected .pricing-item-description dl dt,
    .pricing-item.is-addon.is-addon-selected .pricing-item-amount {
        color: #000;
    }
    .pricing-item.is-addon.is-addon-selected .pricing-item-description dl dd {
        color: #333;
    }
    .pricing-item.inactive {
        opacity: 0.6;
    }

    /* pricing choice indicator */
    .pricing-choice {
        border: 2px dashed #999;
        font-family: var(--font-serif);
        font-size: 2rem;
        margin-left: 16px;
        padding: 12px 20px;
    }
    .pricing-choice.pricing-choice-chosen {
        border: 2px solid var(--green);
        background: var(--green);
        color: #fff;
    }
        .pricing-choice input {
            height: 16px;
            width: 16px;
        }
        button.js-clear-pricing-choice {
            background: none;
            border: 1px solid #999;
            color: #999;
            margin-left: 4px;
            margin-top: -4px;
        }
        .pricing-choice.pricing-choice-chosen button.js-clear-pricing-choice {
            border-color: #fff;
            color: #fff;
        }
    .pricing-addons {
        padding-top: 24px;
    }
    .pricing-addons .pricing-item-selection {
        display: block;
        width: 15%;
    }
    .pricing-item-selection input {
        background: #fff;
        border: 2px solid #40a5f0;
        display: block;
        float: right;
        margin: 18px 12px 0 0;
        padding: 8px;
        box-shadow: none;
        /* Double-sized Checkboxes */
        -ms-transform: scale(1.5); /* IE */
        -moz-transform: scale(1.5); /* FF */
        -webkit-transform: scale(1.5); /* Safari and Chrome */
        -o-transform: scale(1.5); /* Opera */
        transform: scale(1.5);
    }
    .pricing-addons .pricing-item-description {
        padding-top: 8px;
        width: 60%;
    }
    .pricing-addons .pricing-item-amount {
        padding-top: 8px;
        width: 25%;
    }
    .pricing-total {
        font-weight: 400;
        margin-top: -5px;
    }
    .pricing-total.pricing-total-base,
    .pricing-total.pricing-total-tax {
        background-color: #eee;
    }
    .pricing-total.pricing-total-grand {
        background-color: none;
        padding: 24px 12px 24px 0;
    }
    .pricing-total-label {
        text-align: right;
        width: 70%;
    }
    .pricing-total-amount {
        color: #333;
        font-family: var(--font-sans);
        font-size: 2rem;
        width: 30%;
    }
    .pricing-total-label {
        font-weight: 400;
    }
    .pricing-total-grand .pricing-total-label,
    .pricing-total-grand .pricing-total-amount {
        font-weight: 700;
    }
    /* payment schedule table */
    #schedule {
        margin: 16px 0;
        padding: 0;
    }
    #schedule,
    #schedule tbody,
    #schedule tr {
        border: 0;
        display: block;
        float: left;
        min-height: 24px;
        width: 100%;
    }
    #schedule th,
    #schedule td {
        display: block;
        float: left;
        font-family: var(--font-sans);
        font-size: 1.75rem;
        line-height: 2.8rem;
        padding: 4px 8px;
        width: 100%;
    }
    #schedule th {
        font-weight: 600;
    }
    #schedule td {
        font-weight: 400;
    }
    #schedule tr:nth-child(even) {
        background: #eee;
    }
    #schedule tr:nth-child(1) {
        background: #ccc;
        color: #000;
    }
	details {
		display: flex;
		flex-direction: column;
		float: left;
		margin: 0 0 8px 0;
		padding: 0;
		width: 100%;
	}
		details summary {
            border: 1px solid #ccc;
            border-radius: 8px;
            display: block;
            float: left;
            font-family: var(--font-serif);
            font-size: 2rem;
            line-height: 1.2;
			padding: 16px 24px;
        }
        details summary::-webkit-details-marker {
            display: none;
        }
		details summary:hover {
			cursor: pointer;
		}
            details summary .details-icon {
                font-size: 16px;
                width: 16px;
            }
            /* when collapsed */
            details summary .details-icon-is-closed {
                display: inline-block;
            }
            details summary .details-icon-is-open {
                display: none;
            }
            /* when open */
            details[open] summary .details-icon-is-closed {
                display: none;
            }
            details[open] summary .details-icon-is-open {
                display: inline-block;
            }
            .details-contents {
                float: left;
                padding: 16px 24px 24px 24px;;
            }
                .details-contents h1 {
                    font-family: var(--font-serif);
                    font-weight: 400;
                    font-size: 4.5rem;
                }
                .details-contents h2 {
                    color: #555;
                    font-family: var(--font-sans);
                    font-size: 3.5rem;
                    font-weight: 400;
                    line-height: 1.2;
                }
                .details-contents .terms-header h2 {
                    color: #000;
                    font-size: 2.4rem;
                    line-height: 1.4;
                }
        #pricing details {
            display: flex;
            flex-direction: column;
            float: left;
            width: 100%;
        }
        #pricing details summary {
            background: #333;
            color: #fff;
            font-size: 2.25rem;
            width: 100%;
        }
        #pricing details[open] summary {
            background: #fff;
            color: #333;
        }
            .sect .sect-content h2.sect-pricing-desc {
                float: left;
                font-size: 3rem;
                padding: 16px 0 0 24px;
                width: 100%;
            }
        #pricing details summary .choice {
            background: var(--green);
            color: #fff;
            display: none; /* hidden for now since only 1 pricing table is in use */
            float: right;
            font-family: var(--font-sans);
            font-size: 1.5rem;
            font-weight: 400;
            padding: 4px 10px;
        }
        #pricing details .details-contents {
            padding: 16px 0;
        }
        .p-terms details summary {
            display: inline-block;
            text-align: center;
            width: 300px;
        }
        .p-terms details .details-contents {
            padding: 24px 0;
            max-width: 800px;
        }
            .p-terms details .details-contents .terms-items h2 {
                padding-top: 32px;
            }

    #pricing {
        background: #eee;
        padding-bottom: 72px;
    }
    .p-agreement .sect {
        background: #34495e;
        border-top: 1px solid #ccc;
        color: #fff;
        padding-top: 40px;
    }
        .p-agreement .sect h2,
        .p-agreement .sect p,
        .p-agreement .sect ul li,
        .p-agreement .sect ol li {
            color: #fff;
        }
        .p-agreement canvas {
            background: #fff;
        }
        #priceChoice p span {
            border: 3px dashed var(--green);
            display: block;
            float: left;
            padding: 8px 12px;
            width: auto;
        }
    /* signature tabs */
    .p-agreement .ui-tablist button {
        background: none;
        border: 1px solid #333;
        color: #ccc;
        font-size: 1.5rem;
        padding: 6px 10px;
    }
    .p-agreement .ui-tablist button.active {
        background: #eee;
        border: 1px solid #fff;
        color: #000;
    }
    .p-agreement .tab-pane {
        display: none;
    }
    .p-agreement .tab-pane.active {
        display: block;
        padding: 8px 0;
    }
    
    .p-agreement canvas {
        border: 4px dashed #c0392b;
        display: block;
    }
    .p-agreement canvas.taphold {
        border-color: #27ae60;
    }
    .p-agreement .contact-fields {
        padding: 16px 0 4px 0;
        width: 100%;
    }
    .p-agreement label {
        display: flex;
        flex-direction: column;
        padding: 4px 0;
    }
        .p-agreement label .label-text {
            font-size: 1.25rem;
            font-weight: 700;
            text-transform: uppercase;
        }
        .p-agreement label .label-note {
            font-size: 1.75rem;
        }
    .p-agreement .contact-input {
        border: 1px solid #333;
        font-size: 2rem;
        margin: 0 0 4px 0;
        padding: 12px 20px;
        width: 100%;
    }
    .p-agreement .signature-input {
        border: 4px dashed #c0392b;
        padding: 6px 10px;
        width: 100%;
    }
    .p-agreement .signature-typed {
        font-family: 'Brush Script MT', cursive;
        font-size: 3.2rem;
    }
    .p-agreement .signature-upload {
        font-size: 1.75rem;
        padding: 8px 10px;
    }
    .p-agreement label.checkbox {
        display: flex;
        flex-direction: row;
        padding: 16px 0;
    }
        .p-agreement .checkbox input {
            flex-grow: 0;
            flex-shrink: 0;
            height: 20px;
            margin-top: 4px;
            width: 20px;
        }
        .p-agreement .checkbox .checkbox-label {
            flex-grow: 1;
            flex-shrink: 1;
            font-size: 2rem;
            padding-left: 8px;
        }
    .p-agreement .accept-btn {
        font-size: 3.5rem;
        font-weight: 300;
        margin: 12px 0;
        padding: 20px 72px;
    }
    .p-agreement .disabled {
        background: #ccc;
        color: #fff;
        cursor: not-allowed;
    }

    .sect figure.img-xs,
    .sect figure.img-sm {
        display: flex;
        flex-direction: row;
        justify-content: center;
        width: 100%;
    }
    .sect figure.img-xs img {
        flex-grow: 0;
        flex-shrink: 0;
        max-width: 200px;
    }
    .sect figure.img-sm img {
        flex-grow: 0;
        flex-shrink: 0;
        max-width: 300px;
    }
            
    #footer {
        background: #40a5f0;
        box-shadow: 0px 0px 2px #000;
        color: #fff;
        position: fixed;
        bottom: 0;
        left: 0;
        height: 54px;
        width: 54px;
        z-index: 4;
    }
    #footer.scrolling {
        display: block;
    }
    #mobile-menu-trigger {
        border: 0;
        background: none;
        color: #fff;
        display: block;
        float: left;
        font-size: 24px;
        height: 24px;
        position: relative;
        top: 4px;
        left: 4px;
        padding: 12px;
        text-align: center;
        width: auto;
    }
    .mobile-menu-trigger-mask {
        display: block;
        height: 24px;
        margin: 0;
        padding: 12px;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 5;
    }
    #mobile-menu-trigger .fa {
        color: #fff;
        display: block;
        float: left;
        height: 24px;
        margin: 0;
        padding: 0;
        position: relative;
        text-align: center;
        width: 24px;
        z-index: 6;
    }
    .footer-wrap {
        display: block;
        float: right;
        min-height: 24px;
        padding: 14px 16px 0 16px;
        width: auto;
    }
    .footer-wrap form {
        display: inline;
        float: left;
        margin: 0;
        padding: 0;
        width: auto;
    }
    .footer-wrap .btn {
        background: none;
        border: 0;
        color: #fff;
        font-family: var(--font-sans);
        font-weight: 700;
        margin-right: 8px;
        text-transform: uppercase;
    }
    .footer-wrap .btn:focus {
        background: #fff;
        color: #333;
    }
    #price {
        display: block;
        float: left;
        font-family: var(--font-sans);
        font-size: 2.75rem;
        font-weight: 700;
        line-height: 2.75rem;
        padding: 4px 24px 0 0;
        text-transform: uppercase;
    }

    /* show footer no matter what for mobile */
    #mobile-menu-trigger .fa,
    .footer-wrap .btn {
        color: #fff;
    }
    .footer-wrap .btn {
        background: none;
        border: 0;
        font-size: 2rem;
        line-height: 1.0;
        padding: 2px 8px;
    }
    .footer-wrap .btn .btn-label {
        display: none;
    }
    .footer-wrap .btn .fa {
        font-size: 32px;
        line-height: 32px;
    }
    .row-offcanvas {
        position: relative;
    }
    .row-offcanvas .sidebar-offcanvas {
        display: none;
        z-index: -999;
        /* 12 columns */
    }
    .row-offcanvas .p-header,
    .row-offcanvas main {
        opacity: 1.0;
    }
    .row-offcanvas.active .sidebar-offcanvas {
        display: block;
        z-index: 999;
        /* 12 columns */
    }
    #all > .row-offcanvas.active {
        background: #000;
    }
    .row-offcanvas.active .p-header,
    .row-offcanvas.active main {
        opacity: 0.5;
        filter: blur(5px);
        -webkit-filter: blur(5px);
    }
    /* menu icon */
    .row-offcanvas #mobile-menu-trigger .fa.trigger-default {
        display: block;
    }
    .row-offcanvas #mobile-menu-trigger .fa.trigger-active {
        display: none;
    }
    .row-offcanvas.active #mobile-menu-trigger .fa.trigger-default {
        display: none;
    }
    .row-offcanvas.active #mobile-menu-trigger .fa.trigger-active {
        display: block;
    }
    .sidebar-offcanvas {
        background: #fff;
        position: fixed;
        bottom: 60px;
        left: 0;
        min-height: 200px;
        max-height: 80vh;
        opacity: 0.85;
        overflow: scroll;
        padding: 12px;
        max-width: 360px;
        /* 12 columns */
    }
    .offcanvas-nav-wrap ul {
        border: 0;
    }
    .offcanvas-nav-wrap ul li,
    .offcanvas-nav-wrap ul li a {
        border: 0;
        display: block;
        float: left;
        min-height: 12px;
        width: 100%;
    }
    .offcanvas-nav-wrap .nav-tabs>li.active>a {
        background: #40a5f0;
        color: #fff;
    }
}

@media (max-width: 480px) {
    .price-label {
        display: none;
    }
    #show_total_price {
        font-family: var(--font-condensed);
        font-weight: 700;
    }
    .footer-wrap .btn {
        margin-right: 0;
    }
}

@media (max-width: 767px) {
    #schedule tr > th {
        display: none;
    }
    #schedule tr td:nth-child(1) {
        font-weight: 700;
    }
}

@media (max-width: 539px) {
    .sect figure img {
        max-width: 100%;
    }
    #footer {
        opacity: 1.0;
    }
    .footer-wrap .btn {
        font-size: 2.5rem;
        line-height: 2.5rem;
        padding: 8px 12px;
    }
}

@media (max-height: 540px) {
    .p-header .p-desc {
        width: 400px;
    }
}

@media (min-width: 540px) AND (max-width: 991px) {
    .p-header-img {
        width: 1200px;
        max-width: 1200px;
        margin: -100px 0 0 -200px;
    }
}

@media (min-width: 768px) {
    .p-header h1 {
        font-size: 5.5rem;
    }
    .p-header .p-desc {
        width: 480px;
    }
    .p-header h1 {
        font-size: 6rem;
    }
    .p-header h2 {
        font-size: 3.6rem;
        padding-top: 24px;
    }
    .sect {
        padding: 54px 0;
    }
    .sect-header h2.sect-header-title {
        font-size: 5rem;
    }
    .sect .sect-content h2 {
        font-size: 4rem;
    }
    .sect h3 {
        font-size: 3rem;
    }
    .sect p,
    .sect ol li,
    .sect ul li {
        font-size: 2.25rem;
    }
    #pricing details summary {
        font-size: 2.4rem;
        padding: 20px 24px;
    }
    .p-agreement .signature,
    #pricing .sect-content,
    .p-terms .sect-content,
    .sect-content figure,
    .sect h2, .sect h3, .sect h4, .sect ol, .sect ul, .sect p, .sect blockquote,
    .sect .sect-desc,
    .container {
        padding-left: 12%;
        padding-right: 12%;
    }
    .sect-content figure img.illustration {
        max-width: 480px;
    }
    .sect ol, .sect ul {
        padding-left: calc(12% + 24px);
    }
    .sect ul.agreement-parties {
        display: flex;
        flex-direction: row;
    }
        .sect ul.agreement-parties li {
            flex-grow: 0;
            flex-shrink: 0;
            padding-right: 24px;
            width: 50%;
        }
    .pricing-item-amount.adjustable {
        flex-direction: row;
        justify-content: flex-end;
    }
        .price-adjust-controls {
            min-width: 80px;
        }
    .p-agreement .contact-input {
        width: 628px;
    }
    #schedule th,
    #schedule td {
        width: 33.3%;
    }

    .sect figure.img-xs img {
        flex-grow: 0;
        flex-shrink: 0;
        max-width: 320px;
    }
    .sect figure.img-sm img {
        flex-grow: 0;
        flex-shrink: 0;
        max-width: 540px;
    }
}

@media (max-width: 991px) {
    #footer {
        background: #40a5f0;
        color: #fff;
    }
    #footer.hidden {
        display: block;
    }
}

@media (min-width: 992px) {
    .well {
        padding: 20px 24px;
    }
    .p-menu {
        display: none;
        margin-left: 0;
        padding-right: 24px;
    }
    #menu {
        display: none;
        width: 24%;
    }
    .menu-item {
        padding-left: 24px;
    }
    .p-header,
    .h {
        height: 600px;
    }
    .p-header h1 {
        font-size: 6.5rem;
        width: 800px;
    }
    .p-header .p-desc {
        font-size: 2.75rem;
        width: 500px;
    }
    .p-header h2 {
        font-size: 3.6rem;
        padding-bottom: 40px;
    }
    .p-details {
        font-size: 2.5rem;
        font-weight: 400;
        line-height: 4rem;
        list-style-type: none;
        margin: 0;
        padding: 0;
    }
    .sect h2,
    .sect h3,
    .sect h4,
    .sect .sect-desc {
        text-align: left;
    }
    .sect .sect-desc {
        font-size: 2.8rem;
        line-height: 3.6rem;
    }
    .p-agreement .signature,
    #pricing .sect-content,
    .p-terms .sect-content,
    .sect-content figure,
    .sect h2, .sect h3, .sect h4, .sect ol, .sect ul, .sect p, .sect blockquote,
    .sect .sect-desc,
    .container {
        padding-left: 20%;
        padding-right: 20%;
    }
    .sect ol, .sect ul {
        padding-left: calc(20% + 24px);
    }
    .pricing-addons .pricing-item-selection {
        width: 5%;
    }
    .pricing-addons .pricing-item-description {
        width: 65%;
    }
    #price {
        padding-top: 12px;
    }
    /*
    #footer,
    #footer.scrolling {
        display: none;
    }
    #footer .btn {
        font-size: 2.5rem;
        line-height: 2.5rem;
        margin-top: 2px;
    }
    */
    .sidebar-offcanvas {
        display: none;
    }
}
@media (min-width: 1200px) {
    .p-menu {
        margin-left: 0;
    }
    .p-agreement .signature,
    #pricing .sect-content,
    .p-terms .sect-content,
    .sect-content figure,
    .sect h2, .sect h3, .sect h4, .sect ol, .sect ul, .sect p, .sect blockquote,
    .sect .sect-desc,
    .container {
        padding-left: 18%;
        padding-right: 18%;
    }
    .sect ol, .sect ul {
        padding-left: calc(18% + 24px);
    }
    #pricing details summary {
        font-size: 2.6rem;
        padding: 24px;
    }
}
@media (min-width: 1600px) {
    .sect {
        padding: 64px 0;
    }
    .p-agreement .signature,
    #pricing .sect-content,
    .p-terms .sect-content,
    .sect-content figure,
    .sect h2, .sect h3, .sect h4, .sect ol, .sect ul, .sect p, .sect blockquote,
    .sect .sect-desc,
    .container {
        padding-left: 28%;
        padding-right: 28%;
    }
    .sect ol, .sect ul {
        padding-left: calc(28% + 24px);
    }
    .sect .signature p {
        font-family: var(--font-sans);
        padding: 24px 0 0 0;
    }
        .sect .signature p.note {
            font-size: 1.75rem;
            line-height: 1.25;
        }
}

/* overrides for all sizes */
.pricing h2, .pricing h3, .pricing h4, .pricing p, .pricing ol, .pricing ul,
.sect .sect-content details summary h2,
details .details-contents h1,
details .details-contents h2,
details .details-contents h3,
details .details-contents h4,
details .details-contents p,
main.agreement .sect .sect-pricing-body h2,
main.agreement .sect .sect-pricing-body h3,
main.agreement .sect .sect-pricing-body h4,
main.agreement .sect .sect-pricing-body h5 {
    padding-left: 24px;
    padding-right: 24px;
}
.sect .sect-pricing-body p,
.sect .sect-pricing-body ul,
.sect .sect-pricing-body ol {
    float: left;
    padding: 12px 0 16px 24px;
    width: 100%;
}

.sect .sect-pricing-body ul,
.sect .sect-pricing-body ol {
    padding-left: 40px;
}

/* print styles */
@media print {
    .p-header {
        display: none;
    }
    .container {
        margin: 0;
        padding: 0;
    }
    .sect.top {
        margin-top: 80px;
    }
    .page-break {
        page-break-after: always;
        height: 10px;
        width: 100%;
    }
    .p-agreement .signature, 
    #pricing .sect-content, 
    .p-terms .sect-content, 
    .sect-content figure, 
    .sect h2, 
    .sect h3, 
    .sect h4, 
    .sect ol, 
    .sect ul, 
    .sect p, 
    .sect blockquote, 
    .sect .sect-desc,
    .container {
        padding-left: 0;
        padding-right: 0;
    }
    .sect-content p,
    .sect ol li,
    .sect ul li {
        font-size: 12pt;
    }
    .sect ol li,
    .sect ul li {
        padding-left: 24px;
    }
    .sect ul.agreement-parties {
        display: block;
    }
        .sect ul.agreement-parties li {
            float: left;
            padding: 0;
            width: 45%;
        }
    .pricing-total,
    .pricing-total.pricing-total-grand,
    .pricing-list {
        padding: 12px 10% 12px 0;
        width: 95%;
    }
    .agreement-terms h2,
    .agreement-terms p,
    .agreement-terms ul,
    .agreement-terms ol {
        display: block;
        float: left;
        width: 100%;
    }
}
/* enliven */
body.enlivenfit .s-pricing .sect-header,
body.enlivenfit #pricing details[open] summary .details-icon-is-open,
body.enlivenfit #pricing details[open] summary .details-icon-is-closed {
    display: none;
}
body.enlivenfit #pricing details summary {
    background: none;
    border: 0;
    color: #222;
    cursor: default;
    font-family: var(--font-serif);
    font-size: 4.5rem;
    font-weight: 400;
    line-height: 1.1;
    padding: 0;
}
body.enlivenfit #pricing details summary:hover {
    cursor: default;
}
body.enlivenfit #pricing details .details-contents h4 {
    padding: 0;
}
body.enlivenfit #pricing .sect-pricing-body p {
    padding-left: 0;
}