@import url(fontawesome-all.min.css);
@import url("https://fonts.googleapis.com/css?family=Raleway:200,700|Source+Sans+Pro:300,600,300italic,600italic");

@font-face {
  font-family: "Text3";
  src: url("../fonts/NeueMontreal-Medium.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "Text2";
  src: url("../fonts/NeueMontreal-Regular.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "Text1";
  src: url("../fonts/StackSansHeadline-Light.ttf") format("opentype");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "Title";
  src: url("../fonts/StackSansHeadline-Medium.ttf") format("opentype");
  font-weight: 700;
  font-style: normal;
}

html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;}

body {
	line-height: 1;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

	blockquote:before, blockquote:after, q:before, q:after {
		content: '';
		content: none;
	}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

body {
	-webkit-text-size-adjust: none;
}

mark {
	background-color: transparent;
	color: inherit;
}

input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input, select, textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
}

/* Basic */

	@-ms-viewport {
		width: device-width;
	}

	body {
		-ms-overflow-style: scrollbar;
	}

	@media screen and (max-width: 480px) {

		html, body {
			min-width: 320px;
		}

	}

	html {
		box-sizing: border-box;
	}

	*, *:before, *:after {
		box-sizing: inherit;
	}

	body {
		background-color: var(--color-primary-green);
		background-image: linear-gradient(to top, rgba(46, 49, 65, 0.8), rgba(46, 49, 65, 0.8)), url("../../images/solar_panel_hero.png");
		background-size: auto,
 cover;
		background-attachment: fixed,
 fixed;
		background-position: center,
 center;
	}

		body.is-preload *, body.is-preload *:before, body.is-preload *:after {
			-moz-animation: none !important;
			-webkit-animation: none !important;
			-ms-animation: none !important;
			animation: none !important;
			-moz-transition: none !important;
			-webkit-transition: none !important;
			-ms-transition: none !important;
			transition: none !important;
		}

/* Type */

	body, input, select, textarea {
		color: #ffffff;
		font-family: "Title";
		font-size: 14.5pt;
		font-weight: 300;
		line-height: 1.65;
	}

		@media screen and (max-width: 1680px) {

			body, input, select, textarea {
				font-size: 13pt;
			}

		}

		@media screen and (max-width: 1280px) {

			body, input, select, textarea {
				font-size: 12pt;
			}

		}

		@media screen and (max-width: 980px) {

			body, input, select, textarea {
				font-size: 12pt;
			}

		}

		@media screen and (max-width: 736px) {

			body, input, select, textarea {
				font-size: 12pt;
			}

		}

		@media screen and (max-width: 480px) {

			body, input, select, textarea {
				font-size: 12pt;
			}

		}

	a {
		-moz-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
		-webkit-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
		-ms-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
		transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
		border-bottom: dotted 1px rgba(255, 255, 255, 0.35);
		color: #ffffff;
		text-decoration: none;
	}

		a:hover {
			border-bottom-color: transparent;
			color: #ffffff /*!important*/;
		}


    	.special.ver-todo:hover { 
			color: black !important; 
		}


		a.special:not(.button) {
			text-decoration: none;
			border-bottom: 0;
			display: block;
			font-family: "Title";
			font-size: 0.8em;
			font-weight: 700;
			letter-spacing: 0.1em;
			margin: 0 0 2em 0;
			text-transform: uppercase;
		}

			a.special:not(.button):before {
				-moz-osx-font-smoothing: grayscale;
				-webkit-font-smoothing: antialiased;
				display: inline-block;
				font-style: normal;
				font-variant: normal;
				text-rendering: auto;
				line-height: 1;
				text-transform: none !important;
				font-family: 'Font Awesome 5 Free';
				font-weight: 900;
			}

			a.special:not(.button):before {
				-moz-transition: background-color 0.2s ease-in-out;
				-webkit-transition: background-color 0.2s ease-in-out;
				-ms-transition: background-color 0.2s ease-in-out;
				transition: background-color 0.2s ease-in-out;
				border-radius: 100%;
				border: solid 2px rgba(255, 255, 255, 0.125);
				content: '\f105';
				display: inline-block;
				font-size: 1.25em;
				height: 2em;
				line-height: 1.75em;
				margin-right: 0.85em;
				text-align: center;
				text-indent: 0.15em;
				vertical-align: middle;
				width: 2em;
			}

			a.special:not(.button):hover:before {
				background-color: rgba(255, 255, 255, 0.025);
			}

			a.special:not(.button):active:before {
				background-color: rgba(255, 255, 255, 0.075);
			}

	strong, b {
		color: #ffffff;
		font-weight: 600;
	}

	em, i {
		font-style: italic;
	}

	.hero-subtitle {
		margin: 0 0 2em 0;
		font-family: "Title";
	}

	p {
		margin: 0 0 2em 0;
		font-family: "Text1";
	}

	h1, h2, h3, h4, h5, h6 {
		color: #ffffff;
		font-family: "Title";
		font-weight: 700;
		letter-spacing: 0.05em;
		margin: 0 0 1em 0;
		text-transform: uppercase;
	}

		h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
			color: inherit;
			text-decoration: none;
			border-bottom: 0;
		}

		h1 span, h2 span, h3 span, h4 span, h5 span, h6 span {
			font-weight: 200;
		}

		h1.major, h2.major, h3.major, h4.major, h5.major, h6.major {
			padding-bottom: 1em;
			border-bottom: solid 2px rgba(255, 255, 255, 0.125);
		}

		h2.major.black {
			color: black;
			font-size: 1.5em;
		}

		.content p {
			color: black;
		}

	h2 {
		font-size: 1.2em;
	}

	h3 {
		font-size: 0.9em;
	}

	h4 {
		font-size: 0.7em;
	}

	h5 {
		font-size: 0.7em;
	}

	h6 {
		font-size: 0.7em;
	}

	@media screen and (max-width: 736px) {

		h2 {
			font-size: 1em;
		}

		h3 {
			font-size: 0.8em;
		}

	}

	sub {
		font-size: 0.8em;
		position: relative;
		top: 0.5em;
	}

	sup {
		font-size: 0.8em;
		position: relative;
		top: -0.5em;
	}

	blockquote {
		border-left: solid 4px rgba(255, 255, 255, 0.125);
		font-style: italic;
		margin: 0 0 2em 0;
		padding: 0.5em 0 0.5em 2em;
	}

	/*code {
		background: rgba(255, 255, 255, 0.025);
		border-radius: 5px;
		border: solid 2px rgba(255, 255, 255, 0.125);
		font-family: "Courier New", monospace;
		font-size: 0.9em;
		margin: 0 0.25em;
		padding: 0.25em 0.65em;
	}*/

	/*pre {
		-webkit-overflow-scrolling: touch;
		font-family: "Courier New", monospace;
		font-size: 0.9em;
		margin: 0 0 2em 0;
	}*/

		pre code {
			display: block;
			line-height: 1.75em;
			padding: 1em 1.5em;
			overflow-x: auto;
		}

	hr {
		border: 0;
		border-bottom: solid 2px rgba(255, 255, 255, 0.125);
		margin: 2.5em 0;
	}

		hr.major {
			margin: 4em 0;
		}

	.align-left {
		text-align: left;
	}

	.align-center {
		text-align: center;
	}

	.align-right {
		text-align: right;
	}
	
/* Pricing Plans */
#one .plans-inner {
	width: 100%;
	padding-top: 2em;
}

#one .plans-grid {
	display: flex;
	gap: 2em;
	width: 100%;
}

#one .plan-card {
	flex: 1;
	background: white;
	border: 2px solid var(--color-primary-green);
	border-radius: 0.6em;
	padding: 2em 2.25em;
}

#one .plan-card-title {
	font-family: "Title";
	font-size: 1.5em;
	color: #111;
	margin-bottom: 0.75em;
	text-align: left;
}

#one .plan-card-list {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: left;
}

#one .plan-card-list li {
	display: flex;
	align-items: baseline;
	gap: 0.6em;
	padding: 0.4em 0;
	color: #1f2a44;
	line-height: 1.4;
}

#one .plan-card-list li i {
	color: var(--color-primary-green);
	font-size: 0.8em;
}

@media screen and (max-width: 736px) {
	#one .plans-grid {
		flex-direction: column;
	}
}
/* Workflow / Process line */
.workflow-line {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    align-items: start;
    position: relative;
    margin: 3em 0em;
    column-gap: 1em;
    row-gap: 3em;
}
 
.workflow-line::before {
    content: '';
    position: absolute;
    top: 28px;
    left: calc(100% / 12);
    right: calc(100% / 12);
    height: 3px;
    background: var(--color-primary-green);
    opacity: 0.3;
    z-index: 0;
}
 
.workflow-step {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 0 0.5em;
}
 
.workflow-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 0.75em;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    border: 3px solid var(--color-primary-green);
    border-radius: 50%;
    color: var(--color-primary-green);
    font-size: 1.3em;
}
 
.workflow-number {
    position: absolute;
    top: -6px;
    left: calc(50% + 16px);
    background: var(--color-primary-green);
    color: #ffffff;
    font-size: 0.75em;
    font-weight: bold;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
 
.workflow-step h3 {
    font-size: 1em;
    margin-bottom: 0.4em;
    color: #000;
}
 
.workflow-step p {
    font-size: 0.85em;
    color: #6a6a6a;
    line-height: 1.4;
}
 
@media (max-width: 1000px) {
    /* Tablet: 3 columns × 2 rows. The single connector line can no
       longer honestly represent two rows, so it's dropped here
       rather than overlapping the second row. */
    .workflow-line {
        grid-template-columns: repeat(3, 1fr);
        row-gap: 3em;
    }
    .workflow-line::before {
        display: none;
    }
}
 
@media (max-width: 600px) {
    /* Mobile: single column, vertical timeline. */
    .workflow-line {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2em;
        padding: 0 1.25em;
    }
    .workflow-line::before {
        /* Replaced by per-step connector segments below, since a single
           line stretched to a % of the container overruns when step
           text wraps to different heights. */
        display: none;
    }
    .workflow-step {
        max-width: 100%;
        display: flex;
        align-items: flex-start;
        text-align: left;
        gap: 1em;
        padding: 0;
    }
    .workflow-step:not(:last-child)::after {
        content: '';
        position: absolute;
        left: 28px;
        top: 56px;
        bottom: -2em;
        width: 3px;
        background: var(--color-primary-green);
        opacity: 0.3;
        z-index: 0;
    }
    .workflow-icon {
        margin: 0;
        flex-shrink: 0;
    }
    .workflow-number {
        left: auto;
        right: -22px;
        top: -22px;
    }
}


/* ── Testimonials carousel ── */
.testimonials-wrapper {
    max-width: 60em;
    margin: 3em auto 1em auto;
	padding: 5em 0em;
}

.testimonials-title {
    text-align: center;
    margin-bottom: 1em;
}

.testimonials-carousel {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5em;
}

.testimonials-viewport {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.testimonials-viewport::-webkit-scrollbar {
    display: none;
}

.testimonials-track {
    display: flex;
    gap: 1.5em;
}

.testimonial-card {
    flex: 0 0 calc(50% - 0.75em);
    scroll-snap-align: start;
    background: #e7e7e728;
    border-radius: 8px;
    overflow: hidden;
}

.testimonial-card-header {
    background: var(--color-primary-green);
    color: #ffffff;
    font-family: "Title";
    font-size: 1.3em;
    font-weight: 700;
    padding: 0.7em 1em;
}

.testimonial-card-body {
    padding: 1em 1.25em 1.5em 1.25em;
}

.testimonial-card-body p {
    margin: 0;
    color: #ffffffb0;
    font-size: 0.95em;
    line-height: 1.6;
}

.testimonial-arrow {
    flex: 0 0 auto;
    background: none;
    border: 0;
    box-shadow: none;
    font-size: 1.3em;
    line-height: 1;
    cursor: pointer;
    padding: 0.5em;
    height: auto;
	color: var(--color-primary-green) !important;
}

.testimonials-dots {
    display: flex;
    justify-content: center;
    gap: 0.5em;
    margin-top: 1em;
}

#testimonials .testimonial-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.25);
    border: 0;
    box-shadow: none;
    padding: 0;
    cursor: pointer;
}

#testimonials .testimonial-dot.active {
    background: var(--color-primary-green);
}

@media screen and (max-width: 736px) {
    .testimonial-card {
        flex: 0 0 100%;
    }
}

/* Section/Article */

	section.special, article.special {
		text-align: center;
	}

/* Box */

	.box {
		border-radius: 5px;
		border: solid 2px rgba(255, 255, 255, 0.125);
		margin-bottom: 2em;
		padding: 1.5em;
	}

		.box > :last-child,
		.box > :last-child > :last-child,
		.box > :last-child > :last-child > :last-child {
			margin-bottom: 0;
		}

		.box.alt {
			border: 0;
			border-radius: 0;
			padding: 0;
		}

/* Icon */

	.icon {
		text-decoration: none;
		border-bottom: none;
		position: relative;
	}

		.icon:before {
			-moz-osx-font-smoothing: grayscale;
			-webkit-font-smoothing: antialiased;
			display: inline-block;
			font-style: normal;
			font-variant: normal;
			text-rendering: auto;
			line-height: 1;
			text-transform: none !important;
			font-family: 'Font Awesome 5 Free';
			font-weight: 400;
		}

		.icon > .label {
			display: none;
		}

		.icon:before {
			line-height: inherit;
		}

		.icon.solid:before {
			font-weight: 900;
		}

		.icon.brands:before {
			font-family: 'Font Awesome 5 Brands';
		}

/* Image */

	.image {
		border-radius: 5px;
		border: 0;
		display: inline-block;
		position: relative;
	}

		.image img {
			border-radius: 5px;
			display: block;
		}

		.image.left, .image.right {
			max-width: 40%;
		}

			.image.left img, .image.right img {
				width: 100%;
			}

		.image.left {
			float: left;
			padding: 0 1.5em 1em 0;
			top: 0.25em;
		}

		.image.right {
			float: right;
			padding: 0 0 1em 1.5em;
			top: 0.25em;
		}

		.image.fit {
			display: block;
			margin: 0 0 2em 0;
			width: 100%;
		}

			.image.fit img {
				width: 100%;
			}

		.image.main {
			display: block;
			margin: 0 0 3em 0;
			width: 100%;
		}

			.image.main img {
				width: 100%;
			}

/* Four Services - equal height images */

	#four-services .features .image {
		display: block;
		height: 450px;
		overflow: hidden;
	}

		#four-services .features .image img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}

	@media screen and (max-width: 736px) {

		#four-services .features .image {
			height: 250px;
		}

	}

/* List */

	ol {
		list-style: decimal;
		margin: 0 0 2em 0;
		padding-left: 1.25em;
	}

		ol li {
			padding-left: 0.25em;
		}

	ul {
		list-style: disc;
		margin: 0 0 2em 0;
		padding-left: 1em;
	}

		ul li {
			padding-left: 0.5em;
		}

		ul.alt {
			list-style: none;
			padding-left: 0;
		}

			ul.alt li {
				border-top: solid 1px rgba(255, 255, 255, 0.125);
				padding: 0.5em 0;
			}

				ul.alt li:first-child {
					border-top: 0;
					padding-top: 0;
				}

	dl {
		margin: 0 0 2em 0;
	}

		dl dt {
			display: block;
			font-weight: 600;
			margin: 0 0 1em 0;
		}

		dl dd {
			margin-left: 2em;
		}



/* Icons */

	ul.icons {
		cursor: default;
		list-style: none;
		padding-left: 0;
	}

		ul.icons li {
			display: inline-block;
			padding: 0 1em 0 0;
		}

			ul.icons li:last-child {
				padding-right: 0;
			}

			ul.icons li .icon:before {
				font-size: 1.25em;
			}

/* Contact */

	ul.contact {
		list-style: none;
		padding: 0;
	}

		ul.contact li {
			text-decoration: none;
			margin: 2.5em 0 0 0;
			padding: 0 0 0 3.25em;
			position: relative;
		}

			ul.contact li:before {
				-moz-osx-font-smoothing: grayscale;
				-webkit-font-smoothing: antialiased;
				display: inline-block;
				font-style: normal;
				font-variant: normal;
				text-rendering: auto;
				line-height: 1;
				text-transform: none !important;
				font-family: 'Font Awesome 5 Free';
				font-weight: 400;
			}

			ul.contact li:before {
				border-radius: 100%;
				border: solid 2px rgba(255, 255, 255, 0.125);
				display: inline-block;
				font-size: 0.8em;
				height: 2.5em;
				left: 0;
				line-height: 2.35em;
				position: absolute;
				text-align: center;
				top: 0;
				width: 2.5em;
			}

			ul.contact li:first-child {
				margin-top: 0;
			}

		@media screen and (max-width: 736px) {

			ul.contact li {
				margin: 1.5em 0 0 0;
			}

		}

















/* ==========================================================================
   Why Green Solar (hero intro + feature grid)
   ========================================================================== */

#why-solar .inner {
	width: 100%;
	max-width: 1200px;
	padding: 3em 3em 1em 3em;
	box-sizing: border-box;
}

	.why-solar-grid {
		display: grid;
		grid-template-columns: 1fr 1.15fr;
		gap: 4em;
		align-items: center;
	}

	.why-solar-intro {
		max-width: 26em;
	}

		.why-solar-title {
			color: #14161f;
			font-family: "Title";
			font-weight: 800;
			text-transform: none;
			letter-spacing: normal;
			border-bottom: none;
			padding-bottom: 0;
			font-size: 2.6em;
			line-height: 1.15;
			margin: 0 0 0.5em 0;
		}

			.why-solar-title-green {
				color: var(--color-primary-green);
			}

		.why-solar-intro p {
			font-family: "Text1";
			color: #7a7d87;
			font-size: 1.05em;
			line-height: 1.6;
			margin: 0 0 1.5em 0;
		}

		.why-solar-btn {
			display: inline-block;
			background-color: #14161f;
			color: #ffffff;
			font-family: "Title";
			font-weight: 700;
			font-size: 0.85em;
			text-transform: none;
			letter-spacing: normal;
			padding: 1em 2em;
			border-radius: 0.6em;
			text-decoration: none;
			transition: background-color 0.2s ease;
		}

			.why-solar-btn:hover {
				background-color: var(--color-primary-green);
			}

	.why-solar-features {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2.5em 2em;
	}

		.why-solar-item .why-solar-icon {
			width: 64px;
			height: 64px;
			display: flex;
			align-items: center;
			justify-content: center;
			background-color: #e4f7ea;
			border-radius: 50%;
			color: var(--color-primary-green);
			font-size: 1.6em;
			margin-bottom: 1em;
		}

		.why-solar-item h3 {
			color: #14161f;
			font-family: "Title";
			font-weight: 700;
			text-transform: none;
			letter-spacing: normal;
			font-size: 1.05em;
			margin: 0 0 0.5em 0;
		}

		.why-solar-item p {
			font-family: "Text1";
			color: #9295a0;
			font-size: 0.9em;
			line-height: 1.6;
			margin: 0;
		}

	@media screen and (max-width: 980px) {

		.why-solar-grid {
			grid-template-columns: 1fr;
			gap: 3em;
		}

		.why-solar-intro {
			max-width: none;
		}

	}

	@media screen and (max-width: 736px) {

		#why-solar .inner {
			padding: 2em 2em 0.1em 2em;
		}

		.why-solar-title {
			font-size: 2em;
		}

		.why-solar-features {
			grid-template-columns: 1fr 1fr;
			gap: 2em 1.25em;
		}

	}

	@media screen and (max-width: 360px) {

		#why-solar .inner {
			padding: 2em 1.5em 0.1em 1.5em;
		}

	}