/* =====================================
   GCL DESIGN WEBSITE
   Main Stylesheet
===================================== */

 
/* =====================================
   BRAND COLORS
===================================== */

:root {

    --gcl-green: #6FAE3F;
    --gcl-dark: #252525;
    --gcl-gray: #666666;
    --gcl-light: #F8F8F6;
    --gcl-border: #E5E5E5;

}


/* =====================================
   RESET
===================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}


/* =====================================
   GLOBAL
===================================== */

body{

    background:#FFFFFF;
    color:var(--gcl-dark);

    font-family:'Source Sans 3', sans-serif;
    font-size:18px;
    line-height:1.6;

}

.container{

    width:1200px;
    margin:0 auto;

}


/* =====================================
   HEADER
===================================== */

header{

    background:var(--gcl-light);
    border-bottom:1px solid var(--gcl-border);

    padding:18px 0;

}

header .container{

    display:flex;
    justify-content:space-between;
    align-items:center;

}

.logo-desktop{
    height:78px;
    width:auto;
    display:block;
}

.logo-mobile{
    display:none;
    height:auto;
}


/* =====================================
   NAVIGATION
===================================== */

nav ul{

    list-style:none;
    display:flex;
    gap:32px;

}

nav a{

    text-decoration:none;

    color:var(--gcl-dark);

    font-family:'Montserrat', sans-serif;
    
	font-size:17px;
    
	font-weight:600;

    transition:color .30s ease;

}

nav a:hover{

    color:var(--gcl-green);

}


/* =====================================
   HERO
===================================== */

.hero{

    position:relative;
    overflow:hidden;
    padding:30px 0 30px;

}

.hero .container{

    position:relative;

    display:flex;
    
	justify-content:space-between;
   
	align-items:center;

}

.hero-content{

    width:55%;
    max-width:620px;
    position:relative;
    z-index:2;

}

.hero-image{

    position:absolute;
    
	top:10px;
    
	right:-950px;
    
	width:1700px;
    
	z-index:0;

}

.hero-image img{

    width:100%;
    height:auto;
    opacity:.08;

}


/* =====================================
   HERO TYPOGRAPHY
===================================== */

.hero h1{

    font-family:'Montserrat', sans-serif;
    
	font-size:72px;
    
	font-weight:600;
    
	line-height:1.05;

    color:var(--gcl-dark);

    margin-bottom:25px;

}

.hero-tagline{

    font-family:'Source Sans 3', sans-serif;

    font-size:28px;
    font-weight:400;
    line-height:1.4;

    color:var(--gcl-gray);

    margin-bottom:18px;

}

.hero-intro{

    font-family:'Source Sans 3', sans-serif;

    font-size:20px;
    line-height:1.7;

    color:var(--gcl-gray);

    max-width:620px;

    margin-bottom:40px;

}


/* =====================================
   HERO BUTTONS
===================================== */

.hero-buttons{

    display:flex;
    gap:20px;

}

.hero-buttons a{

    display:inline-block;

    padding:14px 28px;

    border-radius:6px;

    text-decoration:none;

    font-family:'Montserrat', sans-serif;
  
	font-size:16px;
    
	font-weight:600;

    transition:all .30s ease;

}


/* Primary Button */

.btn-primary{

    background:var(--gcl-green);
    color:#FFFFFF;

    border:2px solid var(--gcl-green);

}

.btn-primary:hover{

    background:#FFFFFF;
    color:var(--gcl-green);

}


/* Secondary Button */

.btn-secondary{

    background:#FFFFFF;
    color:var(--gcl-green);

    border:2px solid var(--gcl-green);

}

.btn-secondary:hover{

    background:var(--gcl-green);
    color:#FFFFFF;

}


/* Shared Button Hover */

.hero-buttons a:hover{

    transform:translateY(-2px);

}
/*=====================================
    HOW WE HELP
=====================================*/

.services{

  	padding-top:50px;
	
	padding-right:0;
	
	padding-bottom:30px;
	
	padding-left:0;

    background:#ffffff;

}
.section-tag {

    display:inline-block;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

    color:var(--gcl-green);

    margin-bottom:30px;

}

.section-heading{

    text-align:center;

    max-width:760px;

    margin:0 auto 40px;

}

.section-heading h2{

    font-size:36px;

    font-weight:700;

    line-height:1.2;

    color:var(--gcl-black);

    margin-bottom:15px;

}

.section-heading p{

    font-size:20px;

    color:var(--gcl-gray);

    line-height:1.8;

}

.service-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;
	
	align-items:stretch;

}

.service-card{

    background:#ffffff;

    border:1px solid rgba(111,174,63,.35);;

    border-radius:14px;

    padding:45px;

    transition:.30s;
	
	display:flex;
   
	flex-direction:column;
	
	height:100%;

}

.service-card:hover{

    transform:translateY(-8px);

    border-color:var(--gcl-green);

    box-shadow:0 18px 40px rgba(0,0,0,.08);

}

.service-card h3{

    min-height: 90px;
	
	font-size:28px;

    font-weight:600;

    line-height:1.3;

    color:var(--gcl-black);

    margin-bottom:12px;

}

.service-card p{

    font-size:20px;
	
	color:var(--gcl-gray);

    margin-bottom:0;

}

/* ==========================================
   SERVICE CARD LINKS
========================================== */

.service-link{
    text-decoration: none;
    color: inherit;
    display: block;
}
/*=====================================
    WHY GCL DESIGN
=====================================*/

.why-gcl{

    padding: 60px 0;

    background:#fff;

}

.why-grid{

    display:grid;

    grid-template-columns:55% 45%;

    gap:70px;

    align-items:center;

}

.why-image{

    height:620px;

    overflow:hidden;

}

.why-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

}

.section-tag{

    display:inline-block;

    font-size:14px;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:.12em;

    color:var(--gcl-green);

    margin-bottom:18px;

    position:relative;

}

.section-tag::after{

    content:"";

    display:block;

    width:45px;

    height:2px;

    background:var(--gcl-green);

    margin-top:10px;

}

.why-content h2{

    font-size:36px;

    font-weight:700;

    line-height:1.2;

    color:var(--gcl-black);
	
	margin-bottom:28px;

}

.why-content p{

    font-size:20px;
	
	margin-bottom:35px;

    max-width:560px;

}
.why-list{

    list-style:none;

    padding:0;

    margin:0;

}

.why-list li{

    position:relative;

    padding-left:42px;

    margin-bottom:24px;

    font-size:18px;

}

.why-list li::before{

    content:"✓";

	position:absolute;
   
	left:0;
   
	top:-1px;
    
	width:24px;
    
	height:24px;
    
	border:2px solid var(--gcl-green);
    
	border-radius:50%;
    
	color:var(--gcl-green);
    
	font-size:14px;
    
	font-weight:700;
    
	display:flex;
    
	align-items:center;
    
	justify-content:center;

}
/* ==========================================
   CALL TO ACTION
========================================== */

.cta{

    position:relative;

    overflow:hidden;

    background:#F5F6F2;

    padding:30px 0;

}

.cta-container{

    display:grid;

    grid-template-columns:minmax(0, 1fr) auto;

    align-items:center;

    column-gap:60px;

    position:relative;

    z-index:2;

}

.cta-watermark{

    position:absolute;

    left:px;
    
	top:40%;

    width:360px;

    transform:translateY(-35%);

    z-index:0;

}

.cta-watermark img{

    width:65%;

    height:auto;

    opacity:.06;


}

.cta-content h2{
	
	margin-left:60px;
	
	font-size:28px;
   
	margin-bottom:12px;
	
	max-width:520px;

}

.cta-content p{

    margin-left:60px;
	
	font-size:18px;
   
    line-height:1.7;

}

.cta-action{

    justify-self:start;

    transform:translateX(-60px);
	

}

.cta-action .btn{

    display:inline-block;
   
	padding:14px 28px;
    
	border-radius:6px;
    
	text-decoration:none;
    
	font-family:'Montserrat', sans-serif;
    
	font-size:16px;
    
	font-weight:600;
    
	transition:all .30s ease;
    
	min-width:180px;
	
	text-align:center;
}
	
.cta-action .btn:hover{

    transform:translateY(-2px);

}

/* ==========================================
   FOOTER
========================================== */

.site-footer{

    background:#2E3135;

    color:#FFFFFF;

    padding:30px 0 20px;

}

.footer-top{

    display:grid;

    grid-template-columns:240px 1fr 260px;

    align-items:center;

    column-gap:40px;

}

.footer-logo-desktop{
    width:220px;
    display:block;
}

.footer-logo-mobile{
    display:none;
    width:220px;

}

.footer-nav ul{

    display:flex;

    justify-content:center;

    list-style:none;

    margin:0;

    padding:0;

    gap:20px;

}

.footer-nav li:not(:last-child)::after{

    content:"|";

    margin-left:30px;

    color:rgba(255,255,255,.35);

}

.footer-nav a{

    color:#FFFFFF;

    text-decoration:none;

    font-family:'Montserrat', sans-serif;

    font-size:16px;

    transition:.3s;

}

.footer-nav a:hover{

    color:var(--gcl-green);

}

.footer-contact{

    text-align:right;
	
    font-size:14px;

    line-height:1.7;

}

.footer-contact p{

    margin:0;

}

.footer-bottom{

    margin-top:20px;

    padding-top:10px;

    border-top:1px solid rgba(255,255,255,.15);

    text-align:center;

    color:rgba(255,255,255,.70);

    font-size:14px;
	

}
.footer-contact a{

    color:#FFFFFF;

    text-decoration:none;

    transition:.30s ease;

}

.footer-contact a:hover{

    color:var(--gcl-green);

}

/* ==========================================
   INTERIOR PAGE COMPONENTS SERVICES
========================================== */

/* ==========================================
   PAGE INTRODUCTION
========================================== */

.page-intro{

    padding-top:35px;
    padding-bottom:20px;

}

.page-intro .section-heading{

    max-width:900px;
    margin:0 auto;
    text-align:center;

}

.page-intro h1{

    margin:20px 0 25px;

}

.page-intro p{

    max-width:780px;
    margin:0 auto;
}

/* ==========================================
   SERVICE DETAIL SECTIONS
========================================== */

.service-detail{
    padding-top:0;
    padding-bottom:40px;
}
.service-layout{

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:100px;
    align-items:center;

}

.service-content{

    display:flex;
    flex-direction:column;
    justify-content:center;

    max-width:520px;
    padding-left:30px;

}
.service-content h2{

    margin-bottom:10px;

}

.service-content p{

    margin-bottom:5px;

}

.service-content ul{

    margin-top:20px;
    padding-left:20px;

}

.service-content li{

    margin-bottom:5px;

}
.service-highlight{

    font-size:1.25rem;
    font-weight:600;
    line-height:1.45;
    color:var(--primary-dark);
    margin-bottom:20px;

}

.service-image{

    width:100%;
    max-width:540px;
    height:420px;
    overflow:hidden;
    border-radius:8px;

}

.service-image img{

    width:100%;
    height:100%;
    object-fit:cover;
    display:block;

}
.reverse .service-image{

    order:2;
    margin-left:auto;
	
}
.reverse .service-content{

    order:1;

}
/*==================================================
CONNECT HERO
==================================================*/

.connect-hero{

	padding:35px 0 20px;


}

.connect-hero .page-hero-content{

    position: relative;
    z-index: 2;

    max-width:900px;
    margin:0 auto;
    text-align:center;

}
.connect-hero .page-hero-content h1{

    color:var(--gcl-dark);

}

.connect-hero .page-hero-content p{

    color:var(--gcl-gray);

    max-width:700px;
    margin:0 auto;

}

.connect-hero .page-hero-content p{

    max-width:700px;
    margin:0 auto;


}

.connect-hero-content p{

    max-width:620px;

}

.connect-page .cta-content{
    max-width: 900px;
}

/*==================================================
CONTACT
==================================================*/

.contact-section{

    padding:100px 0;

}

.contact-grid{

    display:grid;

    grid-template-columns:1fr 1.3fr;

    gap:80px;

    align-items:start;

}

.contact-info p{

    max-width:420px;

}

.contact-details{

    margin-top:50px;

}

.contact-details h4{

    margin-top:25px;
    margin-bottom:8px;

}

.response-time{

    margin-top:45px;

}

/*==================================================
FORM
==================================================*/

/* Form Card */

.contact-form-wrapper {
    background: #F6F8F5;
    padding: 42px;
    border: 1px solid #D9E2DA;
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(33,48,41,.08);
}


/* Form Layout */

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.form-group {
    display: flex;
    flex-direction: column;
}


/* Labels */

.contact-form label {
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--text-color);
}


/* Inputs */

.contact-form input,
.contact-form textarea {
    width: 100%;
    padding: 14px 16px;
    background: #F8F8F6;
    border: 1px solid #D5DDD7;
    border-radius: 8px;
    color: #2D3A33;
    font-size: 1rem;
    font-family: inherit;
    box-sizing: border-box;
    transition: all .25s ease;
}

.contact-form textarea {
    resize: vertical;
    min-height: 160px;
}

.contact-form input:hover,
.contact-form textarea:hover {
    border-color: #AEBBB2;
}

.contact-form input:focus,
.contact-form textarea:focus {
    outline: none;
    border-color: #2E5E4E;
    box-shadow: 0 0 0 3px rgba(46,94,78,.12);
}


/* Checkbox & Radio Sections */

.checkbox-group,
.radio-group {
    padding: 34px;
    background: #FCFCFA;
    border: 1px solid #D9E2DA;
    border-radius: 14px;
}


/* Section Heading */

.checkbox-group h3,
.radio-group h3 {
    margin: 0 0 8px;
    font-size: 2rem;
}

.checkbox-group p,
.radio-group p {
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid #E5EBE6;
    color: #666;
}


/* Category Headings */

.checkbox-group h4 {
    margin-top: 36px;
    margin-bottom: 16px;
    color: #2E5E4E;
    font-size: 1.15rem;
    font-weight: 700;
}

.checkbox-group h4:first-of-type {
    margin-top: 0;
}


/* Checkbox & Radio Options */

.checkbox-group label,
.radio-group label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    font-weight: 400;
    cursor: pointer;
}

.checkbox-group input,
.radio-group input {
    width: auto;
    margin: 0;
    accent-color: #2E5E4E;
}


/* Submit Button */

.contact-form button {
    margin-top: 16px;
	
	font-family:'Montserrat', sans-serif;
    
	font-size:20px;
    
}

/* ==========================================
   THANK YOU PAGE
========================================== */

.thank-you-intro p{
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}


/* ==========================================
   TABLET & MOBILE RESPONSIVE
========================================== */

@media (max-width: 1200px) {

    .container{
        width:100%;
        max-width:1200px;
        padding:0 30px;
    }

}
/* ==========================================
   PHONE LAYOUT
========================================== */

@media (max-width:768px){
   /* Home page rules */
    .container{
        padding:0 20px;
	  }
/* Mobile Logos */

    .logo-desktop{
        display:none;
    }

    .logo-mobile{
        display:block;
        width:180px;
        height:auto;
        margin:0 auto;
    }

    .footer-logo-desktop{
        display:none;
    }

	.footer-logo-mobile{
    	display:block;
    	width:220px;
    	max-width:none;
    	height:auto;
    	flex-shrink:0;
   	 	margin:0 auto;
    }
	.footer-logo{
    	width:100%;
    	display:flex;
    	justify-content:center;
    	align-items:center;
	}

    header .container{
        flex-direction:column;
        gap:20px;
    }

	.logo-desktop{
   		 height:56px;
   		 width:auto;
	}

    nav ul{
        gap:20px;
        justify-content:center;
        flex-wrap:wrap;
    }

    .hero .container{
        display:block;
    }

    .hero-content{
        width:100%;
        max-width:none;
    }
	
	.hero-image{
    	right:-720px;
    	top:20px;
    	width:1100px;
}

    .hero h1{
        font-size:42px;
        line-height:1.1;
    }

    .hero p{
        font-size:22px;
        max-width:none;
    }

    .hero-buttons{
        flex-direction:column;
    }

    .hero-buttons a{
        text-align:center;
    }
/* Services Page */
    .service-grid{
        grid-template-columns:1fr;
    }
	

.service-layout{
    grid-template-columns:1fr;
    gap:40px;
}

.service-content{
    max-width:none;
    padding-left:0;
}

.service-image{
    max-width:none;
    width:100%;
    height:auto;
}

.service-image img{
    height:auto;
}

.reverse .service-image,
.reverse .service-content{
    order:unset;
}

.page-intro .section-heading{
    max-width:none;
}

    .why-grid{
        grid-template-columns:1fr;
        gap:40px;
    }
	/* CTA */

    .cta-container{
        grid-template-columns:1fr;
        text-align:center;
    }
	.cta-watermark{
    width:330px;
    left:50%;
    transform:translateX(-50%);
    top:-25px;
	pointer-events:none;
}

.cta-watermark img{
    width:100%;
}

    .cta-content h2,
    .cta-content p{
        margin-left:0;
    }

    .cta-action{
        transform:none;
        justify-self:center;
        margin-top:25px;
    }
/* Footer */
	.footer-top{
    	display:grid;
    	grid-template-columns:minmax(0, 1fr);
    	width:100%;
    	text-align:center;
    	gap:30px;
	}

	.footer-logo{
    	width:100%;
    	min-width:0;
    	display:flex;
    	justify-content:center;
	}

    .footer-contact{
        text-align:center;
    }

    .contact-grid{
        grid-template-columns:1fr;
        gap:40px;
    }

}
