/*-----------------------------------------------------
Table of Contents

1. General Styles
2. Blocks & Pages
	# About
	# Blog
	# Blog Post
	# Case Study
	# Contact
	# Footer
	# Header
	# Hero
	# Works
------------------------------------------------------*/

/*-----------------------------------------------------
1. General Styles
------------------------------------------------------*/

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:root {
	color-scheme: light dark;
	--bg: #f5f7f9;
	--bg-elevated: #ffffff;
	--bg-subtle: #eef2f5;
	--text: #16202a;
	--text-strong: #0d1720;
	--text-muted: #40505f;
	--text-soft: #5d6c79;
	--border: #d4dde5;
	--accent: #d9473d;
	--accent-hover: #c33d34;
	--accent-soft: rgba(217, 71, 61, 0.1);
	--shadow: 0 18px 40px rgba(22, 32, 42, 0.08);
}

@media (prefers-color-scheme: dark) {
	:root {
		--bg: #0b0d10;
		--bg-elevated: #12161b;
		--bg-subtle: #171c22;
		--text: #f5f7fa;
		--text-strong: #ffffff;
		--text-muted: #cad1da;
		--text-soft: #9ba6b2;
		--border: #29313a;
		--accent: #ff5a4f;
		--accent-hover: #e54c42;
		--accent-soft: rgba(255, 90, 79, 0.14);
		--shadow: 0 18px 45px rgba(0, 0, 0, 0.18);
	}
}

html {
	overflow-x: hidden;
	overflow-y: scroll;
}

body {
	font-family: 'Atkinson Hyperlegible', sans-serif;
	font-size: 100%;
	line-height: 1.5;
	background: var(--bg);
	color: var(--text);
}

h1, h2, h3, h4, h5, h6, .hero h1, .contact-us h1 {
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
}

a {
	text-decoration: none;
	transition: all .2s ease-in-out;
	color: var(--text-strong);
}

body {
	background: var(--bg);
	color: var(--text);
}

main, .container {
	color: var(--text);
}

.cta-primary {
	display: inline-block;
	background: var(--accent);
	color: #fff;
	height: 56px;
	line-height: 56px;
	text-align: center;
	transition: all .2s linear;
	width: 232px;
	font-weight: 600;
	border-radius: 36px;
	border: 1px solid transparent;
}

.cta-primary:hover {
	background: var(--accent-hover);
}

.cta-secondary {
	border-bottom: 1px solid currentColor;
	padding-bottom: 8px;
	color: var(--text-strong);
}

.cta-secondary:hover {
	color: var(--accent);
	border-bottom-color: var(--accent);
}

.container {
	max-width: 1170px;
	margin: auto;
}

.landing-page .container {
	max-width: 1320px;
}

.container-large {
	max-width: 1720px;
	margin: auto;
}

.contact-form input,
.contact-form textarea {
	background: none;
	border: none;
	border-bottom: 1px solid var(--border);
	outline: none;
	color: var(--text);
}

.contact-form input[name=name]:focus,
.contact-form input[name=email]:focus,
.contact-form textarea:focus {
	border-bottom: 2px solid var(--accent);
}

.contact-form input {
	margin-bottom: 36px;
}

.contact-form input::placeholder,
.contact-form input,
.contact-form textarea,
.contact-form textarea::placeholder {
	font-family: 'Atkinson Hyperlegible', sans-serif;
	font-size: 1.25rem;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
	color: var(--text-soft);
}

.contact-form input[name=name],
.contact-form input[name=email] {
	padding-bottom: 19px;
	width: 100%;
}

.contact-form textarea {
	height: 163px;
	line-height: 1.5;
	resize: none;
	width: 100%;
}

.contact-form input[type=submit] {
	border: none;
	cursor: pointer;
	float: right;
	height: 80px;
	line-height: 80px;
	margin: 42px 0 0 0;
	text-transform: capitalize;
	transition: all .2s linear;
	width: 272px;
}

.clearfix {
	clear: both;
}

.img-cover  {
    display: block;
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.img-responsive {
    display: block;
    max-width: 100%;
    height: auto;
}

.form-label {
	color: var(--text-strong);
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: .88rem;
	font-weight: 600;
	letter-spacing: .02em;
	margin-bottom: 10px;
}

/*-----------------------------------------------------
2. Blocks & Pages
------------------------------------------------------*/

/* =============== # About =============== */

.about {
	margin-top: 119px;
}

.about h1 {
	font-family: Fahkwang, sans-serif;
	font-size: 4rem;
	font-weight: 400;
	line-height: 1.1;
	margin-left: 88px;
}

.about .info {
	float: right;
	margin: -24px 80px 0 0;
	width: 43%;
}

.about .info p {
	font-size: 1.125rem;
	line-height: 1.8;
}

.about .info p:first-child {
	margin-bottom: 12px;
}

.about .img-one {
	float: right;
	height: 472px;
	margin: 142px 0 122px 0;
	width: 50%;
}

.about .img-two {
	height: 600px;
	margin: 142px 0 122px 0;
	width: 100%;
}

.awards {
	margin-bottom: 112px;
}

.awards h2,
.services h2,
.clients h2 {
	float: left;
	font-family: Fahkwang, sans-serif;
	font-size: 3rem;
	font-weight: 400;
	width: 50%;
}

.awards ul,
.services ul,
.clients ul {
	float: left;
	font-size: 1.125rem;
	list-style: none;
	line-height: 1.9;
	margin-top: 30px;
	width: 50%;
}

/* =============== # Blog =============== */

.blog {
	margin: 137px 0 127px 0;
}

.blog-intro {
	margin-bottom: 78px;
}

.blog-intro p {
	color: var(--text-muted);
	font-size: 1.125rem;
	line-height: 1.75;
	margin-bottom: 28px;
	max-width: 700px;
}

.blog-intro-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.blog-intro-card {
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: 22px;
	box-shadow: var(--shadow);
	overflow: hidden;
}

.blog-intro-card img {
	display: block;
	height: 240px;
	width: 100%;
}

.blog-intro-card figcaption {
	color: var(--text-muted);
	font-size: .9rem;
	line-height: 1.6;
	padding: 18px 20px 20px 20px;
}

.blog-item {
	margin-bottom: 60px;
}

.blog-item:last-child {
	margin-bottom: 0;
}

.blog-item .title {
	font-family: Fahkwang, sans-serif;
	font-size: 4rem;
	font-weight: 400;
	line-height: 1.1;
	margin-top: 16px;
}

.blog-item .category,
.blog-post .category {
	font-family: Fahkwang, sans-serif;
	font-size: .875rem;
	letter-spacing: 1.7px;
	text-transform: uppercase;
}

/* =============== # Blog Post =============== */

/* --- Entry Header & Thumbnail --- */

.blog-post main {
	margin-bottom: 132px;
}

.blog-post .header {
	left: 0;
	position: absolute;
	top: 0;
}

.blog-post .header .logo-white {
	display: none;
}

.blog-post .header-wrapper {
	align-items: center;
	display: flex;
	float: left;
	height: 50vw;
	padding: 0 32px;
	width: 50%;
}

.blog-post .thumbnail-wrapper {
	align-items: center;
	display: flex;
	float: right;
	height: 50vw;
	justify-content: center;
	width: 50%;
}

.blog-post .thumbnail-wrapper .entry-thumbnail {
	height: 70%;
	width: 70%;
}

.blog-post .title {
	font-family: Fahkwang, sans-serif;
	font-size: 3.5rem;
	font-weight: 400;
	line-height: 1.1;
	margin: 36px 0 36px -3px;
}

.blog-post .author {
	font-family: Fahkwang, sans-serif;
	font-size: .875rem;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

/* --- Entry Content --- */

.blog-post .entry-content {
	margin: 110px 0;
}

.blog-post .entry-content p {
	font-size: 1.125rem;
	line-height: 1.7;
	margin-bottom: 20px;
	width: 47%;
}

.blog-post .post-img {
	margin: 56px 0 48px 0;
	width: 100%;
}

.blog-post .post-img img {
	height: 600px;
	width: 100%;
}

.blog-post .post-img figcaption {
	font-size: .875rem;
	margin-top: 16px;
}

.blog-post .quote {
	height: 568px;
	margin: 56px 0 52px 0;
	width: 100%;
}

.blog-post .quote blockquote {
	align-items: center;
	display: flex;
	float: left;
	height: 568px;
	justify-content: center;
	text-align: center;
	width: 50%;
}

.blog-post .quote blockquote img {
	margin: auto;
}

.blog-post .quote blockquote p {
	font-family: Fahkwang, sans-serif;
	font-weight: 300;
	font-size: 2.25rem;
	line-height: 1.3;
	margin: 31px 0 31px 0;
	width: auto;
}

.blog-post .quote blockquote span {
	font-family: Fahkwang, sans-serif;
	font-weight: 300;
	font-size: 1.125rem;
	letter-spacing: .7px;
}

.blog-post .quote .illustration {
	float: left;
	height: 568px;
	width: 50%;
} 

/* --- Related Posts --- */

.blog-post .blog-section-header {
	border-left: 10px solid #FF4B23;
	font-family: Fahkwang, sans-serif;
	font-size: 1.75rem;
	font-weight: 500;
	height: 64px;
	margin-bottom: 40px;
	padding: 10px 0 0 32px;
	text-transform: capitalize;
}

.blog-post .related-posts .item {
	align-items: center;
	box-shadow: 0px 5px 5px 5px rgba(170, 170, 170, 0.05);
	display: flex;
	float: left;
	height: 568px;
	padding-left: 40px;
	width: 48.5%;
}

.blog-post .related-posts .item:nth-of-type(1) {
	margin-right: 3%;
}

.blog-post .related-posts .title {
	font-size: 3rem;
	margin: 31px 0 0 0;
}

/* --- Leave Comment --- */

.blog-post .leave-comment {
	margin-top: 120px;
}

.blog-post .leave-comment .contact-form {
	width: 66%;
}

/* --- Comments --- */

.blog-post .comments {
	margin-top: 120px;
}

.blog-post .comments .comment {
	border-bottom: 1px solid #ddd;
	padding-bottom: 42px;
	margin-bottom: 48px;
	width: 45%;
}

.blog-post .comments .comment:last-child {
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: 0;
}

.blog-post .comment .avatar {
	height: 144px;
	width: 144px;
}

.blog-post .comment .username {
	font-family: Fahkwang, sans-serif;
	font-size: 1.25rem;
	font-weight: 500;
	margin-top: 20px;
	text-transform: capitalize;
}

.blog-post .comment .publication-date {
	display: block;
	font-size: .75rem;
	letter-spacing: .2px;
}

.blog-post .comment p {
	line-height: 1.6;
	margin: 18px 0 16px 0;
}

.blog-post .comment .reply {
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}


/* =============== # Case Study =============== */

.case-study .intro {
	align-items: center;
	display: flex;
	height: 100vh;
	justify-content: center;
	position: relative;
}

.case-study .header {
	position: absolute;	
	top: 0;
	left: 0;
}

.case-study .content {
	font-family: Fahkwang, sans-serif;
}

.case-study .content .title {
	font-size: 4.5rem;
	font-weight: 400;
	line-height: 1;
	margin: 28px 0 38px 0;
	text-align: center;
	text-transform: capitalize;
}

.case-study .content .year {
	font-size: 1.375rem;
	font-weight: 400;
	letter-spacing: 1.5px;
	margin-left: -48px;
}

.case-study .content .services {
	float: right;
	font-size: .875rem;
	letter-spacing: 1.5px;
	line-height: 1.8;
	list-style: none;
	margin-right: -80px;
	text-transform: uppercase;
}

.case-study .intro-img {
	height: 100vh;
	width: 100%;
}

.case-study .about-project {
	margin: 109px 0 110px 0;
}

.case-study .about-project p {
	font-size: 1.125rem;
	line-height: 1.7;
	margin-bottom: 21px;
	width: 47%;
}

.case-study .img-one,
.case-study .img-two {
	height: 600px;
	width: 100%;
}

.case-study .img-group {
	margin: auto;
	width: 88.5%;
}

.case-study .img-group .img {
	float: left;
	height: 568px;
	width: 46%;
}

.case-study .img-group .img:nth-of-type(2) {
	margin: 160px 0 0 8%;
}

.next-project {
	display: flex;
	justify-content: center;
	padding: 156px 0;
	text-align: center;
	width: 100%;
}

.next-project h3 {
	font-family: Fahkwang, sans-serif;
	font-size: 4.5rem;
	font-weight: 400;
}

/* =============== # Contact =============== */

.contact {
	margin: 140px 0 137px 0;
}

.contact h2,
.contact-us h2 {
	font-family: Fahkwang, sans-serif;
	font-size: .875rem;
	font-weight: 500;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.contact h1 {
	font-family: Fahkwang, sans-serif;
	font-size: 4rem;
	font-weight: 400;
	line-height: 1.1;
	margin-top: 24px;
}

.contact .contact-form {
	float: left;
	margin: 44px 128px 0 0;
	width: 66%;
}

.contact-info {
	float: left;
	margin-top: 72px;
}

.contact-info div:first-child {
	margin-bottom: 22px;
}

.contact-info h3 {
	font-family: Fahkwang, sans-serif;
	font-size: .875rem;
	font-weight: 600;
	letter-spacing: 1px;
	margin-bottom: 9px;
	text-transform: uppercase;
}

.contact-info p {
	line-height: 1.6;
}

.contact-us {
	align-items: center;
	display: flex;
	padding: 137px 0 137px 0;
	justify-content: center;
	text-align: center;
	width: 100%;
}

.contact-us h1 {
	font-family: Fahkwang, sans-serif;
	font-size: 4.5rem;
	font-weight: 400;
	line-height: 1.1;
	margin: 29px 0 50px 0;
	color: var(--text-strong);
}

.contact-us .cta-primary {
	margin: auto;
}

/* =============== # Footer =============== */

.footer .section-one {
	padding-bottom: 68px;
	background: var(--bg-elevated);
	color: var(--text);
}

.footer .section-one .container {
	align-items: start;
	display: grid;
	gap: 32px;
	grid-template-columns: minmax(220px, 1.1fr) minmax(300px, 1.4fr) minmax(200px, .9fr);
}

.footer-brand {
	background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 90%, #ffffff 10%), var(--accent-hover));
	border-radius: 28px;
	box-shadow: var(--shadow);
	color: #fff;
	padding: 30px 28px;
	width: 100%;
}

.footer-brand h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 1.8rem;
	font-weight: 800;
	line-height: 1.1;
	margin-bottom: 10px;
}

.footer-brand p {
	color: rgba(255, 255, 255, 0.88);
	font-size: .98rem;
	line-height: 1.7;
}

.footer .section-one .info {
	width: 100%;
}

.footer .section-one .info,
.footer .section-one .get-in-touch {
	padding-top: 6px;
}

.footer .section-one .info ul li {
	color: var(--text);
}

.footer .section-two {
	border-top: 1px solid var(--border);
	height: auto;
	line-height: 1.8;
	text-transform: capitalize;
	color: var(--text-soft);
	padding: 20px 0;
}

.copyright {
	float: left;
	color: var(--text-soft);
}

.social-media li a {
	color: var(--text-soft);
}

.social-media li a:hover {
	color: var(--text-strong);
}

.footer .section-one .info ul {
	float: left;
	list-style: none;
}

.footer .section-one .info ul:nth-of-type(1) {
	padding-right: 64px;
}

.footer .section-one .info ul:nth-of-type(2) {
	padding-right: 0;
}

.footer .section-one .get-in-touch {
	width: 100%;
}

.footer .section-one .get-in-touch ul {
	list-style: none;
}

.footer .section-one .info ul li {
	margin-bottom: 6px;
	text-transform: capitalize;
}

.footer .section-one .info ul li:first-child,
.footer .section-one .get-in-touch ul li:first-child {
	font-family: Fahkwang, sans-serif;
	font-size: 1.3rem;
	font-weight: 400;
	margin-bottom: 12px;
}

.mailaddress {
	text-transform: lowercase;
}

.footer .section-two {
	border-top: 1px solid var(--border);
	height: 104px;
	line-height: 104px;
	text-transform: capitalize;
}

.copyright {
	float: left;
}

.social-media {
	float: right;
}

.social-media li {
	display: inline-block;
	list-style: none;
	margin-left: 40px;
}

.social-media li:first-child {
	margin-left: 0;
} 

/* =============== # Header =============== */

.header {
	padding-top: 30px;
	width: 100%;
	color: var(--text);
	position: relative;
	z-index: 1150;
}

.header .container,
.header .container-large {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.site-brand {
	align-items: center;
	display: inline-flex;
	gap: 12px;
	position: relative;
	z-index: 1151;
}

.logo {
	background: transparent;
	display: inline-block;
	height: 42px;
	width: auto;
}

.logo-white {
	display: none;
}

@media (prefers-color-scheme: dark) {
	.logo-black {
		display: none;
	}

	.logo-white {
		display: inline-block;
	}
}

.header .clearfix {
	display: none;
}

.header nav {
	float: right;
}

.header nav li {
	float: left;
	letter-spacing: .3px;
	list-style: none;
	margin-left: 45px;
}

.header nav li a {
	font-size: 1rem;
	text-transform: uppercase;
	color: var(--text-strong);
	font-weight: 500;
}

.header nav li a:hover {
	color: var(--accent);
}

.header nav,
.open-nav,
.mobile-nav {
	display: none !important;
}

.tube-nav {
	align-items: center;
	backdrop-filter: blur(18px);
	background: color-mix(in srgb, var(--bg-elevated) 72%, transparent);
	border: 1px solid color-mix(in srgb, var(--border) 78%, transparent);
	border-radius: 999px;
	box-shadow: 0 18px 44px rgba(10, 16, 24, 0.14);
	display: inline-flex;
	gap: 10px;
	isolation: isolate;
	left: 50%;
	padding: 6px;
	position: fixed;
	top: 24px;
	transform: translateX(-50%);
	z-index: 1100;
}

.tube-link {
	align-items: center;
	border-radius: 999px;
	color: var(--text-soft);
	cursor: pointer;
	display: inline-flex;
	font-family: 'Montserrat', sans-serif;
	font-size: .88rem;
	font-weight: 700;
	gap: 10px;
	padding: 12px 17px;
	pointer-events: auto;
	position: relative;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
	user-select: none;
	text-transform: none;
	z-index: 1;
}

.tube-link i {
	display: none;
	font-size: 1rem;
}

.tube-link span {
	display: inline-block;
}

.tube-link:hover {
	color: var(--text-strong);
}

.tube-link.is-active {
	background: color-mix(in srgb, var(--bg-subtle) 88%, transparent);
	color: var(--accent);
}

.tube-link.is-active::before {
	background: var(--accent);
	border-radius: 999px 999px 0 0;
	content: "";
	height: 4px;
	left: 50%;
	pointer-events: none;
	position: absolute;
	top: -7px;
	transform: translateX(-50%);
	width: 36px;
	z-index: -1;
}

.tube-link.is-active::after {
	background: radial-gradient(circle, color-mix(in srgb, var(--accent) 28%, transparent) 0%, transparent 72%);
	content: "";
	height: 28px;
	left: 50%;
	pointer-events: none;
	position: absolute;
	top: -18px;
	transform: translateX(-50%);
	width: 70px;
	z-index: -1;
}

.open-nav {
	display: none;
	float: right;
	height: 17px;
	position: relative;
	margin-top: 3px;
	width: 28px;
}

.open-nav i {
	height: 1px;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	background: var(--text-strong);
}

.open-nav i:before {
	content: " ";
	height: 1px;
	position: absolute;
	top: -8px;
	width: 100%;
	background: var(--text-strong);
}

.open-nav i:after {
	content: " ";
	height: 1px;
	position: absolute;
	top: 8px;
	width: 100%;
	background: var(--text-strong);
}

.mobile-nav {
	background: color-mix(in srgb, var(--bg) 92%, transparent);
	position: fixed;
	top: 0;
	left: -100%;
	bottom: 0;
	right: 0;
	height: 100vh;
	width: 100vw;
	opacity: 0;
	transition: opacity .3s, left 0s .4s;
	z-index: 2;
}

.mobile-nav.active {
	left: 0;
	opacity: 1;
	transition: opacity .3s, left 0s;
}

.mobile-nav nav {
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}

.mobile-nav nav ul li {
	list-style: none;
	text-align: center;
	margin-bottom: 8px;
}

.mobile-nav nav ul li a {
	font-family: Fahkwang, sans-serif;
	font-size: 2rem;
	font-weight: 300;
	text-transform: capitalize;
	color: var(--text-strong);
}

.close-nav {
	float: right;
	font-size: 1.3rem;
	margin: 30px 4px 0 0;
	color: var(--text-strong);
}

/* =============== # Hero =============== */

.hero {
	margin: 116px 0 152px 0;
	text-align: center;
}

.hero h1 {
	font-family: 'Montserrat', sans-serif;
	font-size: 3.9rem;
	font-weight: 800;
	line-height: 1.1;
	text-align: center;
	color: var(--text-strong);
}

.hero .cta-primary {
	margin: 45px auto 0 auto;
}

/* =============== # Works =============== */

.our-works h1 {
	font-family: Fahkwang, sans-serif;
	font-size: 5.5rem;
	font-weight: 300;
	line-height: 1.1;
	margin: 110px 0 55px 0;
	text-align: center;
	text-transform: capitalize;
}

.our-works .works {
	margin: 0 auto 127px auto;
}

.works {
	margin: 0 auto;
	width: 88.5%;
}

.works-item {
	float: left;
	width: 46%;
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	padding: 12px;
	color: var(--text);
}

.works-item .title,
.works-item .category {
	color: var(--text-strong);
}

.works a:nth-of-type(1) .works-item,
.works a:nth-of-type(3) .works-item,
.works a:nth-of-type(5) .works-item {
	margin-right: 8%;
}

.works-item .thumbnail {
	height: 568px;
}

.works a:nth-of-type(2) .works-item .thumbnail,
.works a:nth-of-type(4) .works-item .thumbnail {
	height: 664px;
}

.works a:nth-of-type(2) .works-item {
	margin: 160px 0 62px 0;
}

.works a:nth-of-type(3) .works-item {
	margin-top: -256px;
}

.works a:nth-of-type(5) .works-item {
	margin-top: -290px;
}

.works-item .category {
	font-family: Fahkwang, sans-serif;
	font-size: .75rem;
	font-weight: 400;
	letter-spacing: 1.2px;
	margin: 27px 0 2px 0;
	text-transform: uppercase;
}

.works-item .title {
	font-family: Fahkwang, sans-serif;
	font-size: 1.5rem;
	font-weight: 400;
	text-transform: capitalize;
}

/* =============== # SignLens Landing =============== */

html {
	scroll-behavior: smooth;
}

main {
	padding-bottom: 48px;
}

.hero-signlens {
	background:
		radial-gradient(circle at top right, var(--accent-soft), transparent 34%),
		linear-gradient(135deg, var(--bg-elevated) 0%, var(--bg-subtle) 45%, var(--bg-elevated) 100%);
	border: 1px solid var(--border);
	border-radius: 36px;
	box-shadow: var(--shadow);
	margin: 56px 0 40px 0;
	min-height: calc(92vh - 132px);
	padding: 64px;
	text-align: left;
}

.eyebrow,
.section-heading span,
.signal-label,
.story-kicker,
.process-steps span {
	color: var(--accent);
	font-family: 'Montserrat', sans-serif;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: 1.8px;
	text-transform: uppercase;
}

.hero-layout {
	display: grid;
	gap: 56px;
	grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
	align-items: center;
}

.hero-copy h1 {
	font-size: 4.2rem;
	line-height: .98;
	margin: 16px 0 20px 0;
	max-width: 8.5ch;
	text-align: left;
	color: var(--text-strong);
}

.hero-intro,
.contact-panel p,
.service-card p,
.story-card p,
.process-steps p,
.signal-card p {
	color: var(--text-muted);
	font-size: 1.05rem;
	line-height: 1.8;
}

.hero-intro {
	font-size: 1.02rem;
	max-width: 520px;
}

.hero-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 32px;
}

.hero-actions .cta-secondary {
	padding-bottom: 6px;
}

.hero-panel {
	display: block;
	position: relative;
	border: 1px solid var(--border);
	border-radius: 28px;
	overflow: hidden;
	background:
		linear-gradient(180deg, rgba(13, 23, 32, 0.04), rgba(13, 23, 32, 0.26)),
		url("../img/design-hero.jpg") center center / cover no-repeat;
	min-height: 460px;
	box-shadow: var(--shadow);
}

.hero-panel::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(13, 23, 32, 0.18));
	pointer-events: none;
}

.about-preview,
.process-band,
.testimonial-band,
.contact-panel,
.services-grid,
.featured-work {
	margin-top: 44px;
}

.section-heading {
	align-items: end;
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	justify-content: space-between;
	margin-bottom: 24px;
}

.section-heading h2 {
	font-family: 'Montserrat', sans-serif;
	font-size: 2.5rem;
	line-height: 1.05;
	max-width: 720px;
	color: var(--text-strong);
}

.service-cards,
.story-grid,
.process-steps {
	display: grid;
	gap: 24px;
}

.service-cards {
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.service-card,
.story-card,
.process-steps article,
.testimonial-band blockquote,
.contact-panel {
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: 28px;
	box-shadow: var(--shadow);
}

.service-card,
.story-card,
.process-steps article {
	padding: 28px;
}

.service-card {
	cursor: pointer;
	min-height: 100%;
	outline: none;
	position: relative;
	transition:
		background-color .25s ease,
		border-color .25s ease,
		box-shadow .25s ease;
}

.service-card::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 0 1px transparent;
	pointer-events: none;
	transition: box-shadow .25s ease;
}

.service-card:hover,
.service-card:focus-visible,
.service-card.is-active {
	background: linear-gradient(180deg, var(--accent-soft), var(--bg-elevated));
	border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
}

.service-card:hover::after,
.service-card:focus-visible::after,
.service-card.is-active::after {
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent);
}

.service-card h3,
.story-card h3,
.process-steps h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 1.45rem;
	line-height: 1.15;
	margin-bottom: 14px;
	color: var(--text-strong);
}

.story-grid {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.story-card {
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--bg-subtle) 72%, transparent), color-mix(in srgb, var(--bg-elevated) 92%, transparent)),
		var(--bg-elevated);
	min-height: 290px;
}

.story-card-large {
	grid-column: span 2;
	background:
		radial-gradient(circle at top right, var(--accent-soft), transparent 40%),
		linear-gradient(180deg, color-mix(in srgb, var(--bg-subtle) 72%, transparent), color-mix(in srgb, var(--bg-elevated) 92%, transparent)),
		var(--bg-elevated);
}

.story-kicker {
	display: block;
	margin-bottom: 54px;
}

.about-preview {
	display: grid;
	gap: 24px;
	grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
}

.about-preview-copy,
.about-preview-points {
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: 28px;
	box-shadow: var(--shadow);
}

.about-preview-copy {
	padding: 40px;
}

.about-preview-copy p {
	color: var(--text-muted);
	font-size: 1.03rem;
	line-height: 1.85;
	margin-top: 18px;
	max-width: 700px;
}

.about-preview-points {
	display: grid;
	gap: 0;
	overflow: hidden;
}

.about-preview-points .story-card {
	border: none;
	border-radius: 0;
	box-shadow: none;
	min-height: 100%;
}

.about-preview-points .story-card + .story-card {
	border-top: 1px solid var(--border);
}

.process-band {
	padding: 8px 0;
}

.process-steps {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.process-steps span {
	display: inline-block;
	margin-bottom: 26px;
}

.testimonial-band blockquote {
	padding: 48px;
	text-align: center;
}

.testimonial-band p {
	font-family: 'Montserrat', sans-serif;
	font-size: 2rem;
	line-height: 1.3;
	margin: 0 auto 18px auto;
	max-width: 820px;
	color: var(--text-strong);
}

.testimonial-band cite {
	color: var(--text-soft);
	font-size: .98rem;
	font-style: normal;
}

.contact-panel {
	padding: 56px;
	text-align: left;
}

.contact-panel h1 {
	font-family: 'Montserrat', sans-serif;
	font-size: 3.1rem;
	line-height: 1.08;
	margin: 20px 0 18px 0;
}

.contact-panel .hero-actions {
	margin-top: 30px;
}

.contact-panel .contact-form {
	float: none;
	margin: 36px 0 0 0;
	max-width: 760px;
	width: 100%;
}

.contact-panel .contact-form input,
.contact-panel .contact-form textarea {
	border-bottom: 1px solid var(--border);
	color: var(--text);
}

.contact-panel .contact-form input[name=company] {
	padding-bottom: 19px;
	width: 100%;
}

.contact-panel .contact-form input[name=name]:focus,
.contact-panel .contact-form input[name=email]:focus,
.contact-panel .contact-form textarea:focus {
	border-bottom: 2px solid var(--accent);
}

.contact-panel .contact-form input::placeholder,
.contact-panel .contact-form textarea::placeholder {
	color: var(--text-soft);
	font-family: 'Atkinson Hyperlegible', sans-serif;
}

.contact-panel .contact-form input[type=submit] {
	float: none;
	margin: 32px 0 0 0;
	width: 272px;
}

.contact-direct {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	margin-top: 26px;
}

.about-page {
	margin: 56px 0 48px 0;
}

.about-page .container {
	max-width: 1320px;
}

.about-page .section-heading {
	margin-bottom: 28px;
}

.about-page .section-heading h2 {
	max-width: 760px;
}

.about-hero,
.about-section {
	margin-bottom: 44px;
}

.about-hero {
	align-items: center;
	display: grid;
	gap: 34px;
	grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
}

.about-hero-copy,
.about-hero-visual,
.about-split,
.about-contact-panel {
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: 28px;
	box-shadow: var(--shadow);
}

.about-hero-copy {
	padding: 56px;
}

.about-hero-copy h1 {
	color: var(--text-strong);
	font-family: 'Montserrat', sans-serif;
	font-size: 4rem;
	font-weight: 700;
	line-height: 1.04;
	margin: 18px 0 22px 0;
}

.about-hero-copy p,
.about-copy-grid p,
.about-contact-panel p {
	color: var(--text-muted);
	font-size: 1.04rem;
	line-height: 1.85;
}

.about-hero-visual {
	min-height: 100%;
	overflow: hidden;
}

.about-hero-visual img {
	height: 100%;
	min-height: 420px;
}

.about-split {
	padding: 36px;
}

.about-copy-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.about-card-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.about-contact-panel {
	padding: 56px;
}

.about-contact-details {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 26px;
	margin-top: 22px;
}

.about-contact-details a {
	color: var(--text-strong);
	font-size: 1rem;
}

.whatsapp-float {
	align-items: center;
	background: #25d366;
	border-radius: 999px;
	bottom: 24px;
	box-shadow: 0 16px 32px rgba(37, 211, 102, 0.28);
	color: #ffffff;
	display: inline-flex;
	font-family: 'Montserrat', sans-serif;
	font-size: .95rem;
	font-weight: 700;
	gap: 10px;
	padding: 14px 18px;
	position: fixed;
	right: 24px;
	z-index: 1200;
}

.whatsapp-float:hover {
	background: #1ebe5b;
	color: #ffffff;
	transform: translateY(-2px);
}

.whatsapp-float i {
	font-size: 1.25rem;
}
