:root {
--primary-color: #102694;
--secondary-color: #FFCC00;
--body-color: #444444;
}

h1, .callout-inner-box-2 h1 {
    font-size: clamp(1.5625rem, 1.0505rem + 2.9787vw, 4.625rem);
    letter-spacing: -3.708px;
}

h2 {
    color: var(--primary-color);
    font-family: "Bricolage Grotesque", "Open Sans", sans-serif;
    font-weight:bold;
    font-size: clamp(1.5625rem, 1.0923rem + 2.7356vw, 4.375rem);
    line-height: 91.429%;
    margin-bottom: 40px;
    color: #102694;
    letter-spacing: -2.8px;
}
h2.type2 {
    font-size: clamp(1.5625rem, 1.2595rem + 1.7629vw, 3.375rem);
    font-weight: normal;
    margin-bottom: clamp(1.25rem, 0.7276rem + 3.0395vw, 4.375rem);
    letter-spacing: -1.62px;
}
h2.type3 {
    font-size: clamp(1.5625rem, 1.2595rem + 1.7629vw, 3.375rem);
    font-weight: 800;
    margin-bottom: clamp(1.25rem, 0.7276rem + 3.0395vw, 4.375rem);
    letter-spacing: -1.62px;
}
h2.type4 {
    color: var(--primary-color);
    font-family: "Bricolage Grotesque", "Open Sans", sans-serif;
    font-size: clamp(1.5625rem, 1.1433rem + 2.439vw, 3.125rem);
    font-style: normal;
    font-weight: 700;
    line-height: 53.076px; /* 106.153% */
    letter-spacing: -1.5px;
}


.np {
    padding:0;
}
.np-top {
    padding-top:0;
}
.np-left {
    padding-left:0;
}
.np-right {
    padding-right:0;
}
.np-bottom {
    padding-bottom:0;
}


/* Single class each, e.g. class="border-bottom". Override: style="--bd-w: 3px; --bd-color: #1779ba;" */
:is(.border-top, .border-right, .border-bottom, .border-left, .border-all) {
	--bd-w: 1px;
	--bd-color: #ccc;
}

.border-top {
	border-top: var(--bd-w) solid var(--bd-color);
}

.border-right {
	border-right: var(--bd-w) solid var(--bd-color);
}

.border-bottom {
	border-bottom: var(--bd-w) solid var(--bd-color);
}

.border-left {
	border-left: var(--bd-w) solid var(--bd-color);
}

.border-all {
	border: var(--bd-w) solid var(--bd-color);
}


.bg-primary {
    background-color: var(--primary-color);
}
.bg-white {
    background-color: #FFF;
}
.bg-secondary {
    background-color: var(--secondary-color);
}



.txt-primary {
    color: var(--primary-color);
}
.txt-white {
    color: #FFF;
}



.bd-20 {
    border-radius: 20px;
}



/* Section content wrap */
section .content_wrap {
    background-color:transparent;
    font-family: "Bricolage Grotesque", "Open Sans", sans-serif;
    margin: 0 auto;
    max-width: 1450px;
    padding-top: clamp(1.875rem, 1.1436rem + 4.2553vw, 6.25rem);
    padding-bottom: clamp(1.875rem, 1.1436rem + 4.2553vw, 6.25rem);
    padding-left: 15px;
    padding-right: 15px;
}


.banner .content_wrap {
    padding-top: 40px;
    padding-bottom: 65px;
}
@media print, screen and (max-width: 1023px) {
    .banner .content_wrap {
        padding: 0px;
    }
}



/* GRID-X */

.grid-margin-x {
    --margin-x: 20px;
    margin-left: 0;
    margin-right:  0;
    row-gap: 20px;
}
.grid-margin-x > .cell{
    /* width:100%; */
    margin-left: 0;
    margin-right:  0;
}
@media print, screen and (min-width: 40em) {
.grid-margin-x {
    margin-left: calc( calc( var(--margin-x) / 2) * -1 );
    margin-right: calc( calc( var(--margin-x) / 2) * -1 );
}
.grid-margin-x > .cell{
    margin-left: calc(var(--margin-x) / 2);
    margin-right: calc(var(--margin-x) / 2);
}
.grid-margin-x > .medium-6 {
    width: calc(50% - var(--margin-x));
}
}
@media print, screen and (min-width: 64em) {
    .grid-margin-x > .large-4 {
        width: calc(33.33333% - var(--margin-x));
    }
}



/* SPLIT BLOCK */
.split-block {
    --column-gap: 20px;
    column-gap: var(--column-gap);
}
.split-block__media img {
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
}
.split-block__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
/* Split block: flex order without foundation-flex order utilities */
.split-block .split-block__media {
    order: 1;
}
.split-block .split-block__content {
    order: 2;
}
.split-block.split-block--reversed .split-block__media {
    order: 2;
}
.split-block.split-block--reversed .split-block__content {
    order: 1;
}
/** 767px */
@media print, screen and (max-width: 47.9375em) { 
    .split-block {
        --row-gap: 20px;
        row-gap: var(--row-gap);
    }
    section .split-block {
        flex-direction: column;
    }
    section .split-block > .cell {
        width: 100%;
    }
}
/* 768px - 1023px */
@media print, screen and (min-width: 48em) and (max-width: 63.9375em) {
    .split-block {
        --column-gap: 50px;
    }
}
/* 768px */
@media print, screen and (min-width: 48em) {
    .split-block > .cell {
        width: calc(50% - var(--column-gap) / 2);
    }
    .split-block__content {
        padding-top: 50px;
        padding-bottom: 50px;
    }
}



/* BUTTONS */

.btn-group {
    margin-top:60px;
}

.button.btn-primary {
    display: inline-block;
    font-family: "Poppins", "Open Sans", sans-serif;
    font-size: 24px;
    background-color: var(--primary-color);
    color: var(--secondary-color);
    padding: 15px 42px;
    border-radius: 100px;
    font-weight: 700;
}
.button.btn-secondary{
    background-color: var(--secondary-color);
    color: var(--primary-color);
}


.button.btn-list {
    color: var(--primary-color);
    background-color: #fff;
    border-radius: 100px;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    padding: 6px 14px;
    margin: 0 9px;
    line-height: 24px; /* 150% */
    letter-spacing: -0.32px;
    cursor: auto;
}
.button.btn-list:hover {
    color: var(--primary-color);
    background-color: #fff;
}


.spl-btn {
    display: flex;
    row-gap: 20px;
    flex-wrap: wrap;
}
span.spl-btn-label, span.spl-btn-txt {
    border-radius: 8px;
    text-align: center;
    font-family: "articulat-cf", "Open Sans", sans-serif;
    font-size: 20px;
}
span.spl-btn-label {
    background-color: var(--primary-color);
    padding: 5px 36px;
    color: #FFF;
    font-size: 20px;
    font-weight: 700;
    line-height: 48px;
    letter-spacing: -0.4px;
    margin-right: 7px;
    white-space: nowrap;
    display: inline-flex;
}
span.spl-btn-label .icon-wrapper {
    margin-left: 8px;
}
span.spl-btn-txt {
    padding: 4px 25px;
    border: 0.5px solid #D7D7D7;
    background: #FFF;
    color: #383838;
    font-weight: 500;
    line-height: 48px;
    letter-spacing: -0.4px;
    white-space: nowrap;
    display: inline-flex;
}
/* 429px */
@media print, screen and (max-width: 28.8125em) { 
.spl-btn {
    justify-content: center;
}
}






.cards .grid-margin-x {
    --margin-x: 27px;
}
.cards .card {
    border:none;
    border-radius: 14px;
}
.cards .card img,
.cards .card .ac-cards-content {
    border-radius: 14px;
}
.cards .card-info {
    padding: 40px 32px 50px;
    font-family: "Bricolage Grotesque", "Open Sans", sans-serif;
}
.cards .card-info h3{
    font-family: "Bricolage Grotesque", "Open Sans", sans-serif;
    font-size: clamp(1.5625rem, 1.4451rem + 0.6829vw, 2rem);
    font-weight: 900;
    color: var(--primary-color);
    line-height: 1;
    letter-spacing: -0.352px;
}
.cards .card-info .blurb{
    margin-top:16px;
}



.card-logo-rule {
    position: relative;
    text-align: center;
    margin-top: clamp(3.125rem, 2.2866rem + 4.878vw, 6.25rem);
}
.card-logo-rule img{
    position: relative;
    z-index: 10;
}
.card-logo-rule  hr {
    --bd-w: 14px;
    --bd-color: var(--secondary-color);
    width: 300%;
    max-width: 300%;
    position: absolute;
    left: -100%;
    top: 50%;
    margin: 0;
    transform: translateY(-50%);
}





/*  FAQs */
/* Module: FAQs — <details>/<summary>, chevron rotates when open */
.faqs-container {
    background-color: #E8F4FF;
    padding: 42px 30px 66px;
}
.faqs-items .faq-item {
    border-radius: 76px;
    background: #FFF;
    padding: 8px 40px;
}
.faqs-items .faq-item:last-child {
	border-bottom: none;
}
.faqs-items .faq-item + .faq-item {
    margin-top: 11px;
}
.faqs-items .faq-question {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	cursor: pointer;
	list-style: none;
	padding: 0.75rem 0;
}
.faqs-items .faq-question::-webkit-details-marker {
	display: none;
}
.faqs-items .faq-question__title {
	color: var(--primary-color);
    font-family: "Bricolage Grotesque", "Open Sans", sans-serif;
    font-size: 15px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.25;
    text-transform: capitalize;
}
.faqs-items .faq-question__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: currentColor;
	transition: transform 0.2s ease;
}
.faqs-items .faq-question__icon svg {
	display: block;
}
.faqs-items .faq-item[open] .faq-question__icon {
	transform: rotate(180deg);
}
.faqs-items .faq-answer {
	padding: 0 0 1rem;
}
.faqs-items .faq-answer p:last-child {
	margin-bottom: 0;
}
.faqs-container .btn-group{
    display:flex;
    justify-content: center;
}




/* SECTIONS */

/* SECTION: Text Media */
section.text-media .content_wrap {
    padding-top: 60px;
}


/* SECTIONS: TARGETED*/

/* SECTION: Text Media - Intro */
section.text-media.intro .split-block {
    --column-gap: 115px;
}



/* SECTION: Claim Offer */
/* Equal-height claim cards per row */
section.claim-offer .grid-x {
    align-items: stretch;
    justify-content: center;
}
section.claim-offer .grid-margin-x {
    row-gap: 30px;
}
section.claim-offer .grid-x > .cell.claim-item {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
}
section.claim-offer .content_wrap {
    padding-top: 0;
}
.claim-item .ac-cards-content {
    background-color: var(--primary-color);
    border-radius: 10px;
    border: 2px solid #588CFF;
    box-shadow: 0 4px 14.9px 0 rgba(0, 0, 0, 0.10);
    padding:15px 20px;
    color: #fff;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: center;
    min-height:0;
    justify-content: center;
}
.claim-item h3 {
    font-family: "Bricolage Grotesque", "Open Sans", sans-serif;
    font-size: clamp(1.5625rem, 1.2774rem + 1.6585vw, 2.625rem);
    font-weight: 900;
    line-height: 1;
    text-align: center;
}
.claim-item-2 h3 {
    font-size: clamp(1.875rem, 1.2881rem + 3.4146vw, 4.0625rem);
}
.claim-item .description {
    font-weight: 400;
    font-size: 10px;
    max-width: 266px;
    text-align: center;
}
.claim-item .blurb {
    font-family: "Poppins", "Open Sans", sans-serif;
    font-weight: 600;
    font-size: 16px;
    margin-bottom: 10px;
    display: inline-block;
    text-align: center;
}
.claim-item p:last-child, 
.claim-item p > .strong:last-child{
    margin-bottom:0;
}

.claim-item.claim-type-2 .ac-cards-content {
    background-color: var(--secondary-color);
    color: var(--primary-color);
}

.claim-item.claim-item-2 .blurb,
.claim-item.claim-item-3 .blurb {
    font-size: 20px;
}
.claim-item.claim-item-2 {
    color: var(--primary-color);
}
.claim-item .btn-group {
    margin-top:12.75px;
    text-align: center;
}
.claim-item .btn-group .btn-claim {
    display: inline-block;
    font-family: "Poppins", "Open Sans", sans-serif;
    font-size:24px;
    background-color: var(--primary-color);
    color: var(--secondary-color);
    padding: 15px 42px;
    border-radius: 100px;
    font-weight: 700;
}
@media print, screen and (min-width: 40em){
    .claim-item .ac-cards-content {
        padding: 35px 25px;
    }
}
@media print, screen and (min-width: 40em) and (max-width: 63.9375em) {
    .claim-item h3 {
        font-size: 32px !important;
    }
}
@media print, screen and (min-width: 64em) {
    .claim-item .ac-cards-content {
        text-align:center;
    }
    .claim-item .ac-cards-content {
        justify-content: center;
    } 
}



/* SECTION: Text Media - content-roofing-service */
.content-roofing-service .content_wrap {
    padding-top: 100px;
}
.content-roofing-service .split-block {
    --column-gap: 63px;
    column-gap: var(--column-gap);
}
.content-roofing-service .split-block__media img {
    object-position: 70%;
}
@media print, screen and (max-width: 47.9375em){
.commercial-roofing-info .split-block {
    row-gap: 0;
}
}




/* SECTION: CTA */
.cta h3 {
    font-family: "Bricolage Grotesque", "Open Sans", sans-serif;
    font-size: clamp(1rem, 0.7701rem + 1.3374vw, 2.375rem);
    font-weight: 700;
}
.cta .heading_content_two {
    font-family: "Open Sans", sans-serif;
    font-size: clamp(1rem, 0.9582rem + 0.2432vw, 1.25rem);
    font-style: italic;
}
.cta .cta-button {
    font-family: "Open Sans", sans-serif;
    font-size: clamp(0.875rem, 0.8332rem + 0.2432vw, 1.125rem);
    font-weight: bold;
    border-radius: 5px;
    padding: 0.85em 1.5em;
    margin-bottom: 0;
    text-transform: uppercase;
}
.cta .callout {
    padding: clamp(0.9375rem, 0.5927rem + 2.0061vw, 3rem) 0;
    padding-right: clamp(0.9375rem, 0.5614rem + 2.1884vw, 3.1875rem);
    padding-left: clamp(0.9375rem, 0.4464rem + 2.8571vw, 3.875rem);
}



/* SECTION: Two Columns */
.two-cols-content .split-block {
    --column-gap: clamp(1.875rem, -1.0417rem + 6.0764vw, 6.25rem);
}



/* SECTIONS: WHY CHOOSE - THREE CARDS */
.has-logo-rule .content_wrap{
    padding-bottom:33px;
}
.why-choose-three-cards .ac-cards-content > img:first-child {
    max-height: 257px;
    object-fit: cover;
}


/* SECTION: Comprehensive Roofing Services */
.comprehensive-roofing-services .split-block {
    --column-gap: 115px;
}
/* 768px - 1023px */
@media print, screen and (min-width:48em) and (max-width:63.9375em) {
.comprehensive-roofing-services .split-block__media img {
    object-position: 35%;
}
}



/* SECTION: Roofing Services List */
.roofing-services-list {
    position: relative;
}
.roofing-services-list .content_wrap {
    padding-bottom: 96px;
}
.roofing-services-list h2 {
    color: inherit;
    margin-bottom: 16px;
}
.roofing-services-list h2 > p:last-child {
    margin-bottom: 27px;
    line-height: 1;
}
.roofing-services-list .tag-title {
    color: #FFF;
    font-family: "Bricolage Grotesque", "Open Sans", sans-serif;
    font-size: 30px;
    font-style: normal;
    font-weight: 700;
    line-height: 53.076px; /* 176.921% */
    letter-spacing: -0.9px;
}
.roofing-services-list .text-bold {
    color: #FFF;
    font-family: "Bricolage Grotesque";
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px; /* 120% */
    letter-spacing: -0.4px;
    margin-top:25px;
}


.service-list .card {
    flex-grow: 0;
}
.service-list .ac-cards-content > img:first-child {
    height: 399px;
    object-fit: cover;
}
/** 767px */
@media print, screen and (max-width: 47.9375em) { 
    .service-list .ac-cards-content > img:first-child {
        height: 299px;
    }
}
/** 40px */
@media print, screen and (max-width: 40em) { 
.service-list .ac-cards-content > img:first-child {
    height: 199px;
}
}

.roofing-services-list .card-logo-rule {
    position: absolute;
    bottom: -70px;
    width: 100%;
}




/* SECTION: Info FAQ */
.info-faq .content_wrap {
    padding-top: 140px;
}
.info-faq .benefits-stamp{
    margin-top: 48px;
}
/* 1024px */
@media print, screen and (min-width: 64em) {
    .info-faq > div > div > .split-block__left {
        width: 55.49%;
    }
    .info-faq > div > div > .split-block__right {
        width: 42.39%;
    }
}


.benefits-stamp-container{
    display: flex;
    justify-content: center;
}
.grid-x.benefits-stamp {
    font-family: "Open Sans", sans-serif;
    --column-gap: 12px;
    max-width:600px;
}
.grid-x.benefits-stamp > div > div {
    width:270px;
}

.grid-x.benefits-stamp .benefits-block{
    background-color: var(--secondary-color);
    background-repeat: no-repeat;
    background-position: bottom;
    padding: 50px 11px 115px 20px;
    border-radius: 14px;
}
.grid-x.benefits-stamp .benefits-block ul {
    list-style: none;
    margin: 0;
    padding-left: 0;
    text-align: left;
}
.grid-x.benefits-stamp .benefits-block ul li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 14.755px;
    font-style: normal;
    font-weight: 700;
    line-height: 23.608px; /* 160% */
    text-transform: uppercase;   
}
.grid-x.benefits-stamp .benefits-block ul li + li {
    margin-top: 14px;
}
.grid-x.benefits-stamp .benefits-block .benefits-block__li-icon {
    flex-shrink: 0;
    max-width: 1.25em;
}
.grid-x.benefits-stamp .stamp-tile {
    background-color: var(--primary-color);
    border-radius: 14px;
    padding:10px;
}
.grid-x.benefits-stamp .stamp-tile-content{
    border: 3px dashed var(--secondary-color);
    padding:10px;
}

.grid-x.benefits-stamp .stamp-tile-text-1{
    color: var(--secondary-color);
    font-size: 32px;
    font-style: normal;
    font-weight: 700;
    line-height: 32px; /* 100% */
    letter-spacing: -1.28px;
    text-transform: uppercase;
}
.grid-x.benefits-stamp .stamp-tile-text-2{
    color: #FFF;
    font-size: 32px;
    font-style: normal;
    font-weight: 700;
    line-height: 48px; /* 150% */
    letter-spacing: -1.28px;
    text-transform: uppercase;
}
.grid-x.benefits-stamp .stamp-tile-text-3{
    color: #FFF;
    font-size: 52px;
    font-style: italic;
    font-weight: 700;
    line-height: 78px; /* 150% */
    text-transform: uppercase;
}

@media print, screen and (min-width: 64em) {
    .benefits-stamp-container{
        justify-content: flex-start;
    }
}

@media print, screen and (max-width: 63.9375em) {
.info-faq > div > div {
    flex-flow: column;
}
}
/* < 639px */
@media print, screen and (max-width: 39.9375em) {
    .grid-x.benefits-stamp {
        flex-flow: column;
    }
}
@media print, screen and (min-width: 64em) and (max-width: 1200px) {
    .grid-x.benefits-stamp {
        flex-flow: column;
    }
}





/* GLOBAL MEDIA QUERIES*/
/* 1023px */
@media print, screen and (max-width:63.9375em) {
    h1, .callout-inner-box-2 h1 {
        font-size: clamp(1.875rem, 1.2083rem + 1.3889vw, 2.875rem);
        line-height: 1.4;
    }
    h2 {
        line-height: 1.4;
        font-size: 1.6rem;
    }   
}