/*   
Theme Name: Purely Boston
Theme URI: purelyboston.com
Description: Custom WordPress theme for Purely Boston
Author: Torro Media
Author URI: https://torro.io/
Version: 1.0
*/

@CHARSET "UTF-8";

/* =WordPress Core from http://codex.wordpress.org/CSS#WordPress_Generated_Classes
-------------------------------------------------------------- */

/*Required Styles*/

.alignnone {
    margin: 5px 20px 20px 0;
}
.aligncenter,
div.aligncenter {
    display: block;
    margin: 5px auto 5px auto;
}
.alignright {
    float:right;
    margin: 5px 0 20px 20px;
}
.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}
.aligncenter {
    display: block;
    margin: 5px auto 5px auto;
}
a img.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}
a img.alignnone {
    margin: 5px 20px 20px 0;
}
a img.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}
a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto
}
.wp-caption {
    background: #fff;
    border: 1px solid #f0f0f0;
    max-width: 96%; /* Image does not overflow the content area */
    padding: 5px 3px 10px;
    text-align: center;
}
.wp-caption.alignnone {
    margin: 5px 20px 20px 0;
}
.wp-caption.alignleft {
    margin: 5px 20px 20px 0;
}
.wp-caption.alignright {
    margin: 5px 0 20px 20px;
}
.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto;
}
.wp-caption p.wp-caption-text {
    font-size: 13px;
    line-height: 17px;
    margin: 0;
    padding: 0.5rem 0;
}

/*CUSTOM SCSS
-------------------------------------------------------------- */

:root{
    --color-navy:#001844;
    --color-blue:#003DAC;
    --color-red:#D40516;
    --color-darkred:#A3000D;
    --color-grey:#595959;
    --color-text:#2A2A2A;

    --gradient-blue:linear-gradient(90deg, #001844 0%, #003DAC 100%);
    --gradient-red:linear-gradient(90deg, #A3000D 0%, #E4051F 100%);

    --font-heading:"Lexend", sans-serif;
    --font-body:"Instrument Sans", sans-serif;
}

html, body{
    font-family:var(--font-body);
    overflow-x: hidden;
    scroll-behavior: smooth;
    scroll-padding:200px 0 0;
}
a:hover, a:focus{
    text-decoration: none;
}
main{
    margin-top:80px;
}
h1, h2, h3, h4, h5, h6{
    font-family:var(--font-heading);
}
h1{
    font-size:75px;
}
h2{
    font-size:56px;
}
h5{
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: 1.12px;
}
p{
    font-size:18px;
    color:var(--color-text);
    font-family:var(--font-body);
    line-height:1.5;
}
.centered{
    text-align: center;
}

/*BUTTONS & LINKS*/

.nhc_button{
    display:inline-block;
    padding:0.75rem 1.5rem;
    font-size:16px;
    font-weight:700;
    font-family:var(--font-heading);
    border-radius: 5px;
    transition-duration: 0.5s;
    text-align: center;
    box-shadow: 0 0 12px 0 rgba(0,0,0,0.5);
}
.nhc_button_blue:hover,
.nhc_button_red{
    background: linear-gradient(90deg, #A3000D 0%, #E4051F 100%);
    color:white;
}
.nhc_button_red:hover,
.nhc_button_blue{
    background: linear-gradient(90deg, #001844 0%, #003DAC 100%);
    color:white;
}
.nhc_button_block{
    display:block;
    width:100%;
}
.container{
    max-width:1300px;
}
.centered .nhc_button{
    margin:2rem 0 0;
}
.nhc_title_button{
    display:flex;
    height:100%;
    justify-content: right;
    align-items: flex-end;
    padding-bottom:3rem;
}
.nhc_flex{
    display:flex;
    height:100%;
    align-items: center;
}

/*HEADER*/

.nhc_header{
    background:var(--color-navy);
    height:80px;
    width:100%;
    position: fixed;
    z-index:9999;
}
.nhc_header .row,
.nhc_header .nhc_col{
    height:80px;
}
.nhc_header_logo{
    width:100%;
    z-index:100;
    position: relative;
}
.nhc_header_logo a{
    display:block;
    width:100%;
    height:100%;
}
.nhc_header_logo img{
    padding:0.75rem 0;
    height:100%;
    width:auto;
}
.nhc_header_right{
    display:flex;
    justify-content: right;
    align-items:center;
    width:100%;
}
.nhc_header_mobile{
    display:none;
    color:white;
    font-size:24px;
    padding:1.375rem 1rem;
}
.nhc_header_nav{
    list-style:none;
    margin:0;
    padding:0;
    text-transform: uppercase;
    font-size: 13px;
    font-style: normal;
    font-weight: 500;
    letter-spacing: 1.04px;
    font-family:var(--font-heading);
}
.nhc_header_nav li{
    display:inline-block;
}
.nhc_header_nav li a{
    padding:1.891rem 1rem;
    color:white;
    display:block;
}
.nhc_header_nav li a:hover,
.nhc_header_nav li:hover > a{
    color:var(--color-red);
}
.nhc_header_nav li .sub-menu{
    display:none;
    position: absolute;
    width:200px;
    background:white;
    box-shadow: 0 0 12px 0 rgba(0,0,0,0.5);
    list-style: none;
    margin:0;
    padding:0;
}
.nhc_header_nav li:hover .sub-menu{
    display:block;
}
.nhc_header_nav li .sub-menu li{
    display:block;
}
.nhc_header_nav li .sub-menu li a{
    padding:0.75rem 1rem;
    color:black;
    text-transform: none;
}
.nhc_header_nav li .sub-menu li a:hover{
    background:linear-gradient(90deg, #001844 0%, #003DAC 100%);
    color:white;
}
.nhc_header_button{
    margin-left:1rem;
}

/*FOOTER*/

.nhc_prefooter{
    padding:3rem 0;
    background-size:cover;
    background-position: center center;
    background-repeat: no-repeat;
}
.nhc_prefooter .nhc_form .gform_wrapper.gravity-theme #field_submit .gform-button--width-full{
    background:linear-gradient(90deg, #001844 0%, #003DAC 100%);
}
.nhc_prefooter .nhc_form .gform_wrapper.gravity-theme #field_submit .gform-button--width-full:hover{
    background: linear-gradient(90deg, #A3000D 0%, #E4051F 100%);
    color:white;
}
.nhc_prefooter .nhc_text{
    padding-right:5rem;
}
.nhc_prefooter .nhc_text *{
    color:white;
}

.nhc_footer{
    padding:5rem 0 2rem;
}
.nhc_footer hr{
    margin:4rem 0 1rem;
}
.nhc_footer_logo{
    width:92px;
    height:92px;
    margin:0 0 1rem;
}
.nhc_footer_logo img{
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
}
.nhc_footer_nav{
    list-style:none;
    margin:0;
    padding:0;
    font-size: 18px;
    font-weight:400;
}
.nhc_footer_nav li{
    display: block;
    margin:0 0 1rem;
}
.nhc_footer_nav li a{
    color:black;
}
.nhc_footer_nav li a:hover{
    font-family:var(--font-heading);
    font-weight:600;
    color:var(--color-blue);
}
.nhc_footer .nhc_text h2{
    font-size:48px;
    color:var(--color-navy);
}
.nhc_footer .nhc_text .nhc_button{
    margin-top:1rem;
}
.nhc_footer_contact{
    margin:2rem 0;
}
.nhc_footer_contact p{
    font-size:16px;
}
.nhc_footer_bottom p,
.nhc_footer_bottom ul{
    font-size:12px;
    color:var(--color-text);
}
.nhc_footer_social{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    gap:0.5rem;
    flex-wrap:wrap;
}
.nhc_footer_social li{
    width:44px;
    height:44px;
    border-radius: 50%;
    border: 1px solid #E7E7E7;
    background:transparent;
}
.nhc_footer_social li a{
    display:block;
    width:100%;
    height:100%;
    color:var(--color-navy);
    font-size:18px;
    display:flex;
    align-items: center;
    justify-content: center;
}
.nhc_footer_social li:hover{
    border-color:var(--color-red);
}
.nhc_footer_social li:hover a{
    color:var(--color-red);
}
.nhc_footer_legal{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    gap:1rem;
    justify-content: right;
}
.nhc_footer_legal a,
.nhc_footer p a{
    color:var(--color-text);
    text-decoration: underline;
}
.nhc_footer_legal a:hover,
.nhc_footer p a:hover{
    color:var(--color-blue);
}

/*CONTENT*/

.nhc_content{
    position:relative;
    padding:5rem 0;
}
.nhc_content_top_large{
    padding-top:10rem;
}
.nhc_content_top_small{
    padding-top:2.5rem;
}
.nhc_content_top_none{
    padding-top:0;
}
.nhc_content_bottom_large{
    padding-bottom:10rem;
}
.nhc_content_bottom_small{
    padding-bottom:2.5rem;
}
.nhc_content_bottom_none{
    padding-bottom:0;
}
.nhc_content_default{
    background:white;
}
.nhc_content_grey{
    background:#D9D9D9;
}
.nhc_content_gradient{
    background: linear-gradient(180deg, #001844 0%, #002974 100%);
}
.nhc_content_greygradient{
    background: linear-gradient(180deg, #FFF 0%, #D9D9D9 100%);
}
.nhc_content_bluegradient{
    background:var(--gradient-blue);
}
.nhc_content_greyblock::before{
    content:'';
    width:100%;
    height:50%;
    max-height:310px;
    position: absolute;
    top:0;
    left:0;
    background:#D9D9D9;
    z-index:0;
}
.nhc_content_whiteblock::before{
    content:'';
    width:100%;
    height:50%;
    max-height:310px;
    position: absolute;
    bottom:0;
    left:0;
    background:#D9D9D9;
    z-index:-1;
}


/*TEXT STYLES*/

.nhc_text_padded{
    padding:0 5rem;
}
.nhc_text h1{
    font-size:52px;
    font-weight:600;
}
.nhc_text h1 strong{
    color:var(--color-red);
    display:block;
    font-weight:600;
}
.nhc_content_gradient .nhc_text h1,
.nhc_content_gradient .nhc_text h2,
.nhc_content_bluegradient .nhc_text *{
    color:white;
}
.nhc_title{
    margin:0 0 3rem;
}
.nhc_text h2{
    color:var(--color-navy);
    font-size: 56px;
    font-weight:600;
}
.nhc_text h5{
    color:var(--color-red);
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: 1.12px;
}
.nhc_text p{
    color:var(--color-text);
    font-size: 18px;
    font-weight: 400;
}
.nhc_text .nhc_button{
    margin:2rem 0 0;
}

/*BLOG POSTS*/

.nhc_post_image{
    width:100%;
    padding-bottom:70%;
    position: relative;
    background-size:cover;
    background-position: center center;
    background-repeat: no-repeat;
    margin:0 0 1rem;
}
.nhc_post_cat{
    position: absolute;
    right:0;
    top:2rem;
    background:var(--color-red);
    color:white;
    border-radius:20px 0 0 20px;
    padding:0.5rem 2rem;
    font-family: var(--font-heading);
    font-size: 12px;
    ont-style: normal;
    letter-spacing: 0.96px;
    text-transform: uppercase;
}
.nhc_post_date{
    font-family: var(--font-heading);
    color:var(--color-navy);
    font-weight:700;
    font-size:12px;
    letter-spacing: 0.96px;
    margin:0 0 0.25rem;
    text-transform: uppercase;
}
.nhc_post_content h3{
    color:var(--color-navy);
    font-size:20px;
    font-weight:600;
    margin:0 0 0.25rem;
}
.nhc_post_content p{
    color:var(--color-text);
    font-size:16px;
    font-weight: 400;
    line-height: 150%;
    margin:0;
}
.nhc_content_gradient .nhc_post_content *{
    color:white;
}
.nhc_post a:hover h3{
    color:var(--color-red);
}
.nhc_post_featured .nhc_post_content h3{
    font-size:30px;
    margin:0 0 1rem;
}
.nhc_post_horizontal{
    margin:0 0 1rem;
}
.nhc_post_horizontal .row{
    margin:0 -0.5rem;
}
.nhc_post_horizontal .nhc_col{
    padding:0 0.5rem;
}
.nhc_post_horizontal .nhc_post_image{
    margin:0;
    padding-bottom:80%;
    min-height: 100%;
}
.nhc_post_horizontal .nhc_post_date{
    font-size:9px;
    margin:0 0 0.25rem;
}
.nhc_post_horizontal .nhc_post_cat{
    top:1rem;
    font-size:9px;
    padding:0.25rem 1rem;
}
.nhc_post_horizontal .nhc_post_content{
    display:flex;
    align-items: center;
    height:100%;
}

/*GRAPHICS*/

.nhc_title_graphic img{
    max-width:100%;
    width:auto;
    animation: tilt-shaking 2s infinite;
}
.nhc_title_graphic_right img{
    animation-delay: 1s;
}

@keyframes tilt-shaking {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}

/*SHOWS*/

.nhc_show_slide{
    margin:0 0.5rem;
}
.nhc_show_slider .slick-list{
    padding:0 12%;
}
.nhc_show{
    width:100%;
    padding-bottom:175%;
    background-size:cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
}
.nhc_show a{
    display:block;
    width:100%;
    height:100%;
    position: absolute;
    top:0;
    left:0;
}
.nhc_show_caption{
    position: absolute;
    width:100%;
    bottom:0;
    left:0;
    padding:1rem;
    background:var(--color-blue);
    border-radius:15px 15px 0 0;
    transform:translateY(100%);
    transition-duration: 0.75s;
}
.nhc_show_caption p{
    font-size:14px;
    color:white;
    margin:0 0 0.5rem;
}
.nhc_show_logo{
    background:white;
    width:100%;
    height:100%;
    position: absolute;
    top:0;
    left:0;
    display:flex;
    align-items: center;
    justify-content: center;
    transition-duration: 0.75s;
}
.nhc_show_logo img{
    max-width:100%;
    width:auto;
    padding:1rem;
}
.nhc_show:hover .nhc_show_logo{
    opacity:0;
}
.nhc_show:hover .nhc_show_caption{
    transform:translateY(0);
}

/*CTA BLOCKS*/

.nhc_cta_blocks .row{
    margin:0 -0.5rem;
}
.nhc_cta_blocks .nhc_col{
    padding:0 0.5rem;
    margin:0.5rem 0;
}
.nhc_cta_block{
    height:100%; 
    position: relative;
    background-size:cover;
    background-position: center center;
    background-repeat: no-repeat;
}
.nhc_cta_block_overlay{
    background: linear-gradient(270deg, rgba(0, 61, 172, 0.91) 0%, rgba(0, 24, 68, 0.91) 100%);
    display:flex;
    height:100%;
    width:100%;
    padding:3rem;
    gap:2rem;
}
.nhc_cta_block .nhc_text h5,
.nhc_cta_block .nhc_text h2,
.nhc_cta_block .nhc_text p{
    color:white;
}
.col-lg-6 .nhc_cta_block_overlay{
    flex-wrap:wrap;
}
.col-lg-6 .nhc_cta_block .nhc_text,
.col-lg-6 .nhc_cta_block .nhc_form{
    flex:0 0 100%;
}
.col-lg-6 .nhc_cta_block .nhc_text h2{
    font-size:42px;
}
.nhc_cta_blocks .col-lg-6:nth-of-type(3n+2) .nhc_cta_block .nhc_cta_block_overlay{
    background:linear-gradient(270deg, rgba(228, 5, 31, 0.91) 0%, rgba(163, 0, 13, 0.91) 100%);
}
.nhc_cta_blocks .col-lg-6:nth-of-type(3n+3) .nhc_cta_block .nhc_cta_block_overlay{
    background: linear-gradient(270deg, rgba(0, 0, 0, 0.91) 0%, rgba(0, 24, 68, 0.91) 100%);
}
.col-lg-12 .nhc_cta_block_overlay{
    padding:5rem 3rem;
}
.nhc_cta_block .nhc_form .gform_wrapper.gravity-theme{
    margin:0 0 1rem;
}
.nhc_cta_blocks .col-lg-6:nth-of-type(3n+2) .nhc_cta_block .nhc_form .gform_wrapper.gravity-theme #field_submit .gform-button--width-full{
    background: linear-gradient(90deg, #001844 0%, #003DAC 100%);
}
.nhc_cta_block .nhc_form .gform_wrapper.gravity-theme #field_submit .gform-button--width-full:hover{
    background: linear-gradient(90deg, #001844 0%, #003DAC 100%);
    color:white;
}
.nhc_cta_blocks .col-lg-6:nth-of-type(3n+2) .nhc_cta_block .nhc_form .gform_wrapper.gravity-theme #field_submit .gform-button--width-full:hover{
    background: linear-gradient(90deg, #A3000D 0%, #E4051F 100%);
    color:white;
}

/*FORMS*/

.nhc_form .gform_wrapper.gravity-theme .gfield_required{
    display:none;
}
.nhc_form .gform_wrapper.gravity-theme label{
    color:white;
}
.nhc_form .gform_wrapper.gravity-theme .gform_footer{
    padding:0;
    margin:0;
}
.nhc_form .gform_wrapper.gravity-theme #field_submit .gform-button--width-full{
    font-size:16px;
    font-weight:700;
    font-family:var(--font-heading);
    border-radius: 5px;
    transition-duration: 0.5s;
    text-align: center;
    box-shadow: 0 0 12px 0 rgba(0,0,0,0.5);
    background: linear-gradient(90deg, #A3000D 0%, #E4051F 100%);
    border:none;
    color:white;
    padding:0.75rem;
    height:48.5px;
}
.nhc_form .gform_wrapper.gravity-theme input[type=email]{
    border:1px solid white;
    background:white;
    color:var(--color-text);
    padding:0.75rem !important;
    border-radius:5px;
}
.nhc_form p{
    font-size:14px;
    color:white;
    margin:1rem 0 0;
}
.nhc_form p a{
    color:white;
    text-decoration: underline;
}

/*LOGOS*/

.nhc_logo_slide{
    margin:0 1rem;
}
.nhc_logo{
    width:100%;
    height:100px;
    display:flex;
    align-items: center;
    justify-content: center;
}
.nhc_logo img{
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
}

/*STATS*/

.nhc_stat_block{
    background:var(--gradient-blue);
    padding:5rem 3rem;
}
.nhc_stat_block .nhc_text *{
    color:white;
}
.nhc_stat{
    text-align:center;
}
.nhc_stat_num{
    color:white;
    font-size:125px;
    font-family: var(--font-heading);
    font-weight:700;
    line-height:1;
}
.nhc_stat h5{
    color:white;
}

/*PRODUCTS*/

.nhc_products{
    margin:-2rem 0 0;
}
.nhc_products .nhc_col{
    margin:2rem 0 0;
}
.nhc_product{
    background:white;
    padding:1rem;
    height:100%;
}
.nhc_product_image{
    width:100%;
    padding-bottom:50%;
    background-color:white;
    background-size:contain;
    background-position: center center;
    background-repeat: no-repeat;
    margin:1rem 0;
    position: relative;
}
.nhc_product_image span{
    background:var(--color-red);
    padding:0.25rem 0.5rem;
    border-radius:5px;
    position: absolute;
    right:1rem;
    top:1rem;
    color:white !important;
    text-align:center;
    font-size:16px;
    line-height: 1.2;
}
.nhc_product_image span strong{
    display:block;
    font-size:18px;
}
.nhc_product h4{
    font-size:24px;
    font-weight:400;
    color:var(--color-text);
    height:60px;
}
.nhc_product h4:last-of-type{
    height:auto;
}
.nhc_product p{
    font-size:14px;
    color:#595959;
}
.nhc_product:hover{
    box-shadow:0 0 10px rgba(0,0,0,0.25);
}

/*IMAGE CAROUSEL*/

.nhc_image_slider .slick-arrow{
    background:white;
    width:30px;
    height:30px;
    border-radius:3px;
    z-index:100;
    margin:0 1rem;
}
.nhc_image_slider .slick-arrow::before{
    font-size:20px;
    color:var(--color-grey);
}
.nhc_image_slide_image{
    width:100%;
    padding-bottom:110%;
    position: relative;
    background-size:cover;
    background-position: center center;
    background-repeat: no-repeat;
}
.nhc_image_slide_caption{
    position: absolute;
    width:calc(100% - 2rem);
    padding:2rem;
    background:white;
    bottom:1rem;
    left:1rem;
}
.nhc_image_slide_caption p{
    font-size:16px;
    color:var(--color-text);
}
.nhc_image_slide_caption p:last-of-type{
    margin:0;
}
.nhc_image_slide_caption h2{
    font-size:26px;
    color:var(--color-blue);
}
.nhc_image_slide_caption h3{
    font-size:22px;
    color:var(--color-text);
}
.nhc_image_slide_caption h4{
    font-size:18px;
    color:var(--color-text);
}
.nhc_image_slide_caption h5{
    font-size:14px;
    color:var(--color-grey);
}

/*SPLIT CONTENT*/

.nhc_split_content{
    position: relative;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}
.nhc_split_content .order-lg-1 .nhc_text{
    padding:5rem 0 5rem 5rem;
}
.nhc_split_content .order-lg-2 .nhc_text{
    padding:5rem 5rem 5rem 0;
}
.nhc_split_content .nhc_content_image{
    background-size: contain;
    background-position: bottom;
    background-repeat: no-repeat;
    width:100%;
    height:100%;
}

/*SOCIAL*/

.nhc_social{
    justify-content: center;
    gap:1rem;
}
.nhc_content_bluegradient .nhc_social li a{
    color:white;
}
.nhc_content_default .nhc_social li a{
    color:var(--color-blue);
    border-color:var(--color-blue);
}
.nhc_social li a:hover{
    border-color:var(--color-red);
    color:var(--color-red);
}







