/*
Theme Name:   Brightline One Page (Divi Child)
Theme URI:    https://example.com/
Description:  One-page child theme for Divi, built for web development studios. On activation it creates the home page (with a full-width hero slider), the anchor-link menu and a starter logo.
Author:       Your Name
Template:     Divi
Version:      1.0.0
License:      GNU General Public License v2 or later
Text Domain:  brightline-onepage
*/

:root {
	--bl-dark: #23272e;
	--bl-dark2: #1b1e23;
	--bl-orange: #ff6a13;
	--bl-orange-ink: #c2410c;
	--bl-light: #f1f2f4;
	--bl-gray: #d5d8dd;
	--bl-text: #343941;
	--bl-muted: #5b626d;
}

/* ---------- Base type ---------- */
#page-container {
	font-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	color: var(--bl-text);
	font-size: 17px;
}
#page-container h1,
#page-container h2,
#page-container h3,
#page-container h4,
#page-container .et_pb_module_header,
#page-container .et_pb_pricing_title,
#page-container .et_pb_contact_main_title,
#page-container .et_pb_slide_title {
	font-family: 'Bricolage Grotesque', 'Public Sans', sans-serif;
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.1;
	color: var(--bl-dark);
	padding-bottom: 0;
}
#page-container a:focus-visible,
#page-container button:focus-visible {
	outline: 3px solid var(--bl-orange);
	outline-offset: 3px;
}

/* ---------- Header ---------- */
body #main-header,
body #main-header.et-fixed-header {
	background: #fff !important;
	box-shadow: none !important;
	border-bottom: 2px solid var(--bl-dark);
}
body #main-header #top-menu > li > a {
	color: var(--bl-dark) !important;
	font-weight: 600;
	font-size: 15px;
}
body #main-header #top-menu > li > a:hover,
body #main-header #top-menu > li.current-menu-item > a {
	color: var(--bl-orange-ink) !important;
	opacity: 1;
}
body #main-header #top-menu > li.bl-menu-cta > a {
	color: var(--bl-orange-ink) !important;
	font-weight: 700;
}
body .et_mobile_menu {
	border-top: 3px solid var(--bl-orange);
}
body .et_mobile_menu li a {
	color: var(--bl-dark);
	font-weight: 600;
}
body .mobile_menu_bar:before {
	color: var(--bl-dark);
}

/* ---------- Hero slider ---------- */
body .bl-hero.et_pb_section {
	padding: 0;
	background: var(--bl-dark);
}
body .bl-slider .et_pb_slide {
	background-color: var(--bl-dark);
	background-size: cover;
	background-position: 70% center;
}
body .bl-slider .et_pb_slide .et_pb_container {
	min-height: 0;
	position: relative;
	z-index: 2;
}
body .bl-slider .et_pb_slide_description {
	text-align: left;
	max-width: 1140px;
	margin: 0 auto;
	padding: 130px 24px 140px;
}
body .bl-slider .et_pb_slide_title {
	color: #fff;
	font-size: clamp(2.5rem, 5.2vw, 4.4rem);
	line-height: 1.02;
	letter-spacing: -0.035em;
	max-width: 14ch;
	padding-bottom: 0;
}
body .bl-slider .et_pb_slide_content {
	color: #d5d8dd;
	font-size: 1.2rem;
	line-height: 1.6;
	max-width: 32rem;
	margin: 22px 0 32px;
}
body .bl-slider .et_pb_slide_content p {
	color: inherit;
	padding-bottom: 0;
}
body .bl-slider .et_pb_more_button.et_pb_button {
	background: var(--bl-orange);
	color: var(--bl-dark2);
	border: 2px solid var(--bl-orange);
	border-radius: 8px;
	padding: 15px 26px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
	box-shadow: 4px 4px 0 var(--bl-light);
	transition: transform 0.15s, box-shadow 0.15s;
}
body .bl-slider .et_pb_more_button.et_pb_button:hover {
	background: var(--bl-orange);
	padding: 15px 26px;
	transform: translate(2px, 2px);
	box-shadow: 2px 2px 0 var(--bl-light);
}
body .bl-slider .et_pb_more_button.et_pb_button:after {
	display: none;
}
body .bl-slider .et-pb-slider-arrows a {
	color: #fff;
}
body .bl-slider .et-pb-controllers a {
	background: #fff;
	opacity: 0.45;
}
body .bl-slider .et-pb-controllers a.et-pb-active-control {
	background: var(--bl-orange);
	opacity: 1;
}

/* ---------- Sections ---------- */
body .bl-section.et_pb_section {
	padding: 88px 0;
}
body .bl-section .et_pb_row {
	padding: 0 0 32px;
}
body .bl-section .et_pb_row:last-child {
	padding-bottom: 0;
}
body .bl-light.et_pb_section {
	background: var(--bl-light);
}
body .bl-dark.et_pb_section {
	background: var(--bl-dark);
}
body .bl-dark h2,
body .bl-dark h3,
body .bl-dark h4,
body .bl-dark .et_pb_module_header {
	color: #fff;
}
body .bl-dark p,
body .bl-dark li {
	color: #cdd1d8;
}
body .bl-section p {
	line-height: 1.65;
	padding-bottom: 0;
}
body .bl-heading.et_pb_text {
	max-width: 640px;
	padding-bottom: 32px;
}
body .bl-heading h2 {
	font-size: clamp(1.9rem, 3.6vw, 2.7rem);
}
body .bl-heading p {
	margin-top: 14px;
	color: var(--bl-muted);
	font-size: 1.08rem;
}
body .bl-dark .bl-heading p {
	color: #cdd1d8;
}

/* ---------- Services ---------- */
body .bl-service.et_pb_blurb {
	border-top: 2px solid var(--bl-dark);
	padding-top: 22px;
	margin-bottom: 36px;
}
body .bl-service .et_pb_module_header {
	font-size: 1.4rem;
	margin-bottom: 8px;
}
body .bl-service .et_pb_blurb_description {
	color: var(--bl-muted);
	line-height: 1.65;
}

/* ---------- Process (a real sequence, so numbered) ---------- */
.bl-process {
	counter-reset: bl-step;
}
body .bl-step.et_pb_blurb {
	counter-increment: bl-step;
	border-top: 2px solid rgba(255, 255, 255, 0.25);
	padding-top: 22px;
}
body .bl-step .et_pb_blurb_container:before {
	content: counter(bl-step);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--bl-orange);
	color: var(--bl-dark2);
	font: 800 1.15rem 'Bricolage Grotesque', sans-serif;
	margin-bottom: 18px;
}
body .bl-step .et_pb_module_header {
	font-size: 1.35rem;
	margin-bottom: 8px;
}
body .bl-step .et_pb_blurb_description {
	color: #cdd1d8;
}

/* ---------- Work ---------- */
body .bl-work.et_pb_text {
	border: 2px solid var(--bl-dark);
	border-radius: 6px;
	min-height: 320px;
	padding: 32px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
body .bl-work .et_pb_text_inner {
	width: 100%;
}
body .bl-work--1 { background: var(--bl-orange); }
body .bl-work--2 { background: var(--bl-gray); }
body .bl-work--3 { background: var(--bl-dark); }
body .bl-work h3 {
	font-size: 1.7rem;
	margin-bottom: 8px;
	color: var(--bl-dark2);
}
body .bl-work p {
	color: var(--bl-dark2);
}
body .bl-work--3 h3,
body .bl-work--3 p,
body .bl-work--3 .bl-tag {
	color: #fff;
}
body .bl-tag {
	display: inline-block;
	border: 2px solid currentColor;
	border-radius: 999px;
	padding: 4px 12px;
	font-size: 0.85rem;
	font-weight: 600;
	margin-bottom: 16px;
	color: var(--bl-dark2);
}

/* ---------- Pricing ---------- */
body .bl-pricing .et_pb_pricing_table {
	background: #fff;
	border: 2px solid var(--bl-dark);
	border-radius: 8px;
	box-shadow: none;
	overflow: hidden;
}
body .bl-pricing .et_pb_pricing_heading {
	background: transparent !important;
	padding: 28px 28px 0;
	text-align: left;
}
body .bl-pricing .et_pb_pricing_title {
	font-size: 1.6rem;
	color: var(--bl-dark);
}
body .bl-pricing .et_pb_best_value {
	color: var(--bl-muted);
	font-size: 0.95rem;
	font-weight: 500;
}
body .bl-pricing .et_pb_pricing_content_top {
	background: transparent !important;
	border: 0;
	text-align: left;
	padding: 10px 28px 0;
}
body .bl-pricing .et_pb_et_price {
	color: var(--bl-dark);
}
body .bl-pricing .et_pb_sum {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 800;
	font-size: 3rem;
	letter-spacing: -0.03em;
}
body .bl-pricing .et_pb_pricing_content {
	padding: 12px 28px 28px;
}
body .bl-pricing ul.et_pb_pricing li {
	text-align: left;
	border-color: var(--bl-gray);
	font-size: 0.98rem;
	color: var(--bl-text);
}
body .bl-pricing .et_pb_pricing_table_button {
	display: block;
	background: transparent;
	color: var(--bl-dark);
	border: 2px solid var(--bl-dark);
	border-radius: 8px;
	margin: 0 28px 28px;
	padding: 15px 26px;
	text-align: center;
	font-weight: 600;
	line-height: 1;
}
body .bl-pricing .et_pb_pricing_table_button:hover {
	background: var(--bl-dark);
	color: #fff;
	padding: 15px 26px;
}
body .bl-pricing .et_pb_pricing_table_button:after {
	display: none;
}
body .bl-pricing .et_pb_featured_table {
	background: var(--bl-orange);
}
body .bl-pricing .et_pb_featured_table .et_pb_pricing_title,
body .bl-pricing .et_pb_featured_table .et_pb_et_price,
body .bl-pricing .et_pb_featured_table .et_pb_best_value,
body .bl-pricing .et_pb_featured_table ul.et_pb_pricing li {
	color: var(--bl-dark2);
}
body .bl-pricing .et_pb_featured_table ul.et_pb_pricing li {
	border-color: rgba(27, 30, 35, 0.3);
}
body .bl-pricing .et_pb_featured_table .et_pb_pricing_table_button {
	background: var(--bl-dark);
	border-color: var(--bl-dark);
	color: #fff;
}
body .bl-pricing .et_pb_featured_table .et_pb_pricing_table_button:hover {
	background: var(--bl-dark2);
}

/* ---------- About, checks and stats ---------- */
body .bl-about-copy h2 {
	font-size: clamp(1.9rem, 3.6vw, 2.7rem);
	margin-bottom: 16px;
}
body .bl-about-copy p {
	color: var(--bl-muted);
}
.bl-checks {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bl-checks li {
	position: relative;
	padding: 14px 0 14px 34px;
	border-top: 2px solid var(--bl-dark);
	font-weight: 500;
	color: var(--bl-dark);
}
.bl-checks li:before {
	content: "";
	position: absolute;
	left: 4px;
	top: 24px;
	width: 12px;
	height: 7px;
	border-left: 3px solid var(--bl-orange-ink);
	border-bottom: 3px solid var(--bl-orange-ink);
	transform: rotate(-45deg);
}
body .bl-stat.et_pb_number_counter {
	text-align: left;
	border-top: 2px solid var(--bl-dark);
	padding-top: 18px;
}
body .bl-stat .percent {
	text-align: left;
}
body .bl-stat .percent p {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 800;
	font-size: 3.6rem;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--bl-orange-ink);
	text-align: left;
}
body .bl-stat h3.title {
	font-family: 'Public Sans', sans-serif;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--bl-muted);
	text-align: left;
}
.bl-plus .percent-value:after {
	content: "+";
}

/* ---------- Testimonials ---------- */
body .bl-quote.et_pb_testimonial {
	background: #fff;
	border: 2px solid var(--bl-dark);
	border-radius: 6px;
	padding: 28px;
}
body .bl-quote.et_pb_testimonial:before {
	color: var(--bl-orange);
}
body .bl-quote .et_pb_testimonial_description_inner p {
	font-size: 1.08rem;
	color: var(--bl-text);
}
body .bl-quote .et_pb_testimonial_author {
	color: var(--bl-dark);
	font-weight: 700;
}
body .bl-quote .et_pb_testimonial_meta {
	color: var(--bl-muted);
}

/* ---------- Contact ---------- */
body .bl-contact-copy h2 {
	font-size: clamp(1.9rem, 3.6vw, 2.7rem);
	margin-bottom: 16px;
}
.bl-contact-list {
	list-style: none;
	padding: 0;
	margin: 32px 0 0;
}
.bl-contact-list li {
	padding: 14px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.25);
	color: #cdd1d8;
}
.bl-contact-list strong {
	display: block;
	font-size: 0.9rem;
	font-weight: 600;
	color: #fff;
}
body .bl-contact-list a {
	color: var(--bl-orange);
}
body .bl-form {
	background: #fff;
	padding: 32px;
	border-radius: 8px;
}
body .bl-form .et_pb_contact_main_title {
	font-size: 1.6rem;
	padding-bottom: 16px;
}
body .bl-form input[type="text"],
body .bl-form input[type="email"],
body .bl-form textarea {
	background: var(--bl-light);
	border: 2px solid transparent;
	border-radius: 6px;
	padding: 14px 16px;
	color: var(--bl-dark);
	font-size: 1rem;
}
body .bl-form input[type="text"]:focus,
body .bl-form input[type="email"]:focus,
body .bl-form textarea:focus {
	background: #fff;
	border-color: var(--bl-orange);
	box-shadow: 0 0 0 3px rgba(255, 106, 19, 0.3);
	outline: none;
	color: var(--bl-dark);
}
body .bl-form .et_pb_contact_submit.et_pb_button {
	background: var(--bl-orange);
	color: var(--bl-dark2);
	border: 2px solid var(--bl-dark);
	border-radius: 8px;
	padding: 15px 26px;
	font-weight: 700;
	line-height: 1;
	box-shadow: 4px 4px 0 var(--bl-dark);
	transition: transform 0.15s, box-shadow 0.15s;
}
body .bl-form .et_pb_contact_submit.et_pb_button:hover {
	background: var(--bl-orange);
	padding: 15px 26px;
	transform: translate(2px, 2px);
	box-shadow: 2px 2px 0 var(--bl-dark);
}
body .bl-form .et_pb_contact_submit.et_pb_button:after {
	display: none;
}

/* ---------- Footer ---------- */
body #main-footer,
body #footer-bottom {
	background: var(--bl-dark2);
}
body #footer-info,
body #footer-info a {
	color: #a4aab5;
}

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
	body .bl-section.et_pb_section {
		padding: 64px 0;
	}
	body .bl-slider .et_pb_slide_description {
		padding: 90px 24px 100px;
	}
}
@media (max-width: 767px) {
	/* keep slide text readable over the illustration */
	body .bl-slider .et_pb_slide:before {
		content: "";
		position: absolute;
		inset: 0;
		background: rgba(35, 39, 46, 0.72);
		z-index: 1;
	}
	body .bl-slider .et_pb_slide_description {
		padding: 72px 20px 84px;
	}
	body .bl-stat .percent p {
		font-size: 3rem;
	}
}
