/* ==================================================
LOCAL FONTS
Files inside: assets/fonts/

CormorantGaramond-Regular.woff2
CormorantGaramond-Bold.woff2
Manrope-Regular.woff2
Manrope-Bold.woff2
================================================== */

@font-face {
	font-family: 'Cormorant Garamond';
	src: url('../fonts/CormorantGaramond-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Cormorant Garamond';
	src: url('../fonts/CormorantGaramond-Bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Manrope';
	src: url('../fonts/Manrope-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Manrope';
	src: url('../fonts/Manrope-Bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}


/* ==================================================
ROOT VARIABLES
================================================== */

:root {

	/* Colors */
	--primary: #000000;
	--dark: #000000;
	--text: #000000;
	--white: #ffffff;

	--light: #F6F8FE;
	--section-light: #F6F8FE;

	--border: #C5CFE8;
	--muted: #666666;

	/* Typography */
	--heading-font: 'Cormorant Garamond', serif;
	--body-font: 'Manrope', sans-serif;

	/* Layout */
	--container: 1320px;
	--gutter: 15px;

	/* Misc */
	--radius: 16px;
}


/* ==================================================
RESET
================================================== */

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

html {
	margin: 0;
	padding: 0;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	padding: 0;

	font-family: var(--body-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1;

	color: var(--text);
	background: var(--white);

	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img,
picture,
svg,
video {
	display: block;
	max-width: 100%;
	height: auto;
}

figure {
	margin: 0;
}

a {
	color: inherit;
	text-decoration: none;
	outline: none;
}

ul,
ol {
	margin: 0;
	padding: 0;
}

button,
input,
textarea,
select {
	font: inherit;
}

button {
	padding: 0;
}

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


/* ==================================================
TYPOGRAPHY
================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;

	font-family: var(--heading-font);
	font-style: normal;
	font-weight: 400;
	line-height: 1;

	color: var(--dark);
}

h1 {
	font-size: 65px;
}

h2 {
	font-size: 50px;
}

h3 {
	font-size: 40px;
}

h4 {
	font-size: 32px;
}

h5 {
	font-size: 26px;
}

h6 {
	font-size: 22px;
}


/* Bold elements inside headings */

h1 strong,
h1 b,
h2 strong,
h2 b,
h3 strong,
h3 b,
h4 strong,
h4 b,
h5 strong,
h5 b,
h6 strong,
h6 b {
	font-weight: 700;
}


/* Optional heading spans */

h1 span,
h2 span,
h3 span,
h4 span,
h5 span,
h6 span {
	font-family: inherit;
}


/* Body copy */

p {
	margin: 0 0 18px;

	font-family: var(--body-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1;

	color: var(--text);
}

p:last-child {
	margin-bottom: 0;
}

strong,
b {
	font-weight: 700;
}


/* ==================================================
CONTAINER & GRID
================================================== */

.container {
	width: 100%;
	max-width: var(--container);

	margin-inline: auto;
	padding-inline: var(--gutter);
}

.container-fluid {
	width: 100%;
	padding-inline: var(--gutter);
}

.container-narrow {
	max-width: 900px;
}

.row {
	display: flex;
	flex-wrap: wrap;

	margin-inline: calc(var(--gutter) * -1);
}

[class*="col-"] {
	position: relative;

	width: 100%;

	padding-inline: var(--gutter);
}


/* Desktop Columns */

.col-1 {
	width: 8.333333%;
}

.col-2 {
	width: 16.666667%;
}

.col-3 {
	width: 25%;
}

.col-4 {
	width: 33.333333%;
}

.col-5 {
	width: 41.666667%;
}

.col-6 {
	width: 50%;
}

.col-7 {
	width: 58.333333%;
}

.col-8 {
	width: 66.666667%;
}

.col-9 {
	width: 75%;
}

.col-10 {
	width: 83.333333%;
}

.col-11 {
	width: 91.666667%;
}

.col-12 {
	width: 100%;
}


/* ==================================================
GRID BREAKPOINTS
================================================== */

@media (max-width: 1399px) {

	.container {
		max-width: 1140px;
	}

}


@media (max-width: 1199px) {

	.container {
		max-width: 960px;
	}

}


@media (max-width: 991px) {

	.container {
		max-width: 720px;
	}

	.col-lg-1 {
		width: 8.333333%;
	}

	.col-lg-2 {
		width: 16.666667%;
	}

	.col-lg-3 {
		width: 25%;
	}

	.col-lg-4 {
		width: 33.333333%;
	}

	.col-lg-5 {
		width: 41.666667%;
	}

	.col-lg-6 {
		width: 50%;
	}

	.col-lg-7 {
		width: 58.333333%;
	}

	.col-lg-8 {
		width: 66.666667%;
	}

	.col-lg-9 {
		width: 75%;
	}

	.col-lg-10 {
		width: 83.333333%;
	}

	.col-lg-11 {
		width: 91.666667%;
	}

	.col-lg-12 {
		width: 100%;
	}

}


@media (max-width: 767px) {

	.container {
		max-width: 540px;
	}

	.col-md-1 {
		width: 8.333333%;
	}

	.col-md-2 {
		width: 16.666667%;
	}

	.col-md-3 {
		width: 25%;
	}

	.col-md-4 {
		width: 33.333333%;
	}

	.col-md-5 {
		width: 41.666667%;
	}

	.col-md-6 {
		width: 50%;
	}

	.col-md-7 {
		width: 58.333333%;
	}

	.col-md-8 {
		width: 66.666667%;
	}

	.col-md-9 {
		width: 75%;
	}

	.col-md-10 {
		width: 83.333333%;
	}

	.col-md-11 {
		width: 91.666667%;
	}

	.col-md-12 {
		width: 100%;
	}

}


@media (max-width: 575px) {

	.container {
		max-width: 100%;
	}

	[class*="col-"] {
		width: 100%;
	}

}


/* ==================================================
GLOBAL UTILITIES
================================================== */

.d-flex {
	display: flex;
}

.d-inline-flex {
	display: inline-flex;
}

.d-block {
	display: block;
}

.d-inline-block {
	display: inline-block;
}

.d-none {
	display: none;
}

.flex-column {
	flex-direction: column;
}

.flex-row {
	flex-direction: row;
}

.flex-wrap {
	flex-wrap: wrap;
}

.flex-nowrap {
	flex-wrap: nowrap;
}

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

.align-start {
	align-items: flex-start;
}

.align-end {
	align-items: flex-end;
}

.justify-start {
	justify-content: flex-start;
}

.justify-center {
	justify-content: center;
}

.justify-between {
	justify-content: space-between;
}

.justify-end {
	justify-content: flex-end;
}

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

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

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

.w-100 {
	width: 100%;
}

.h-100 {
	height: 100%;
}

.position-relative {
	position: relative;
}

.overflow-hidden {
	overflow: hidden;
}

.img-fluid {
	display: block;

	max-width: 100%;
	height: auto;
}


/* ==================================================
GLOBAL SECTIONS
================================================== */

.section-padding {
	padding: 100px 0;
}

.section-padding-sm {
	padding: 70px 0;
}

.section-light {
	background: var(--section-light);
}


/* ==================================================
GLOBAL SECTION HEADING
================================================== */

.section-heading {
	margin-bottom: 70px;
}

.section-heading h2 {
	font-family: var(--heading-font);
	font-size: 50px;
	font-weight: 400;
	line-height: 1;

	color: var(--dark);
}

.section-heading h2 strong,
.section-heading h2 b {
	font-weight: 700;
}

.section-heading p {
	max-width: 650px;

	margin: 20px auto 0;
}


/* ==================================================
BUTTONS
================================================== */

.btn,
input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 180px;
	min-height: 52px;

	padding: 14px 28px;

	border: 0;
	border-radius: 999px;

	background: var(--light);
	color: var(--dark);

	font-family: var(--body-font);
	font-size: 18px;
	font-weight: 700;
	line-height: 1;

	cursor: pointer;

	box-shadow:
		0 5px 0 rgba(130, 151, 205, 0.75);

	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease,
		background-color 0.2s ease;
}

.btn:hover,
input[type="submit"]:hover {
	background: #eef1fa;

	transform: translateY(-2px);

	box-shadow:
		0 7px 0 rgba(130, 151, 205, 0.75);
}

.btn:active,
input[type="submit"]:active {
	transform: translateY(2px);

	box-shadow:
		0 2px 0 rgba(130, 151, 205, 0.75);
}


/* ==================================================
HEADER
================================================== */

.site-header {
	position: relative;
	z-index: 100;

	width: 100%;

	background: var(--white);
}

.header-inner {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: space-between;

	min-height: 205px;

	gap: 40px;
}


/* ==================================================
SITE BRANDING
================================================== */

.site-branding {
	display: flex;
	align-items: center;

	flex-shrink: 0;
}

.site-branding .custom-logo-link {
	display: inline-flex;
	align-items: center;
}

.site-branding .custom-logo {
	display: block;

	width: auto;
	height: auto;

	max-width: 285px;
	max-height: 105px;

	object-fit: contain;
}

.site-logo {
	display: inline-flex;
	align-items: center;

	font-family: var(--heading-font);
	font-size: 34px;
	font-weight: 700;
	line-height: 1;

	color: var(--dark);
}


/* ==================================================
DESKTOP NAVIGATION
================================================== */

.main-navigation {
	display: flex;
	align-items: center;

	margin-left: auto;
}

.primary-menu {
	display: flex;
	align-items: center;

	gap: 48px;

	margin: 0;
	padding: 0;

	list-style: none;
}

.primary-menu li {
	position: relative;

	margin: 0;
	padding: 0;
}

.primary-menu a {
	display: inline-flex;
	align-items: center;

	padding: 8px 0;

	font-family: var(--body-font);
	font-size: 18px;
	font-weight: 400;
	line-height: 1;

	color: var(--dark);

	transition: opacity 0.2s ease;
}

.primary-menu a:hover,
.primary-menu a:focus-visible {
	opacity: 0.55;
}

.primary-menu .current-menu-item > a,
.primary-menu .current_page_item > a,
.primary-menu .current-menu-ancestor > a {
	font-weight: 400;
}


/* ==================================================
MOBILE MENU TOGGLE
================================================== */

.mobile-menu-toggle {
	position: relative;

	display: none;

	width: 44px;
	height: 44px;

	min-width: 0;
	min-height: 0;

	margin: 0;
	padding: 0;

	border: 0;
	border-radius: 0;

	background: transparent;
	color: var(--dark);

	box-shadow: none;

	cursor: pointer;
}

.mobile-menu-toggle:hover,
.mobile-menu-toggle:focus {
	background: transparent;

	transform: none;
	box-shadow: none;
}

.mobile-menu-toggle span {
	position: absolute;
	left: 8px;

	display: block;

	width: 28px;
	height: 2px;

	background: var(--dark);

	transition:
		top 0.25s ease,
		transform 0.25s ease,
		opacity 0.25s ease;
}

.mobile-menu-toggle span:nth-child(1) {
	top: 13px;
}

.mobile-menu-toggle span:nth-child(2) {
	top: 21px;
}

.mobile-menu-toggle span:nth-child(3) {
	top: 29px;
}

.mobile-menu-toggle.is-active span:nth-child(1) {
	top: 21px;

	transform: rotate(45deg);
}

.mobile-menu-toggle.is-active span:nth-child(2) {
	opacity: 0;
}

.mobile-menu-toggle.is-active span:nth-child(3) {
	top: 21px;

	transform: rotate(-45deg);
}


/* ==================================================
MODEL STATS GLOBAL TYPOGRAPHY
================================================== */

.model-stats-section {
	background: var(--section-light);
}

.model-stats-heading {
	font-family: var(--heading-font);
	font-size: 50px;
	font-weight: 400;
	line-height: 1;

	color: var(--dark);
}

.model-stats-heading strong,
.model-stats-heading b {
	font-weight: 700;
}

.model-stat-title {
	margin: 0 0 8px;

	font-family: var(--body-font);
	font-size: 22px;
	font-weight: 700;
	line-height: 1;

	color: var(--dark);
}

.model-stat-value {
	margin: 0;

	font-family: var(--body-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1;

	color: var(--dark);
}



/* ==================================================
MODEL STATS DESKTOP ALIGNMENT
================================================== */

@media (min-width: 768px) {

	.model-stats-row > .col-3 {
		display: flex;
	}

	/* First column stays on far left */
	.model-stats-row > .col-3:nth-child(1) {
		justify-content: flex-start;
	}

	/* Middle columns */
	.model-stats-row > .col-3:nth-child(2),
	.model-stats-row > .col-3:nth-child(3) {
		justify-content: center;
	}

	/* Last group reaches far right */
	.model-stats-row > .col-3:nth-child(4) {
		justify-content: flex-end;
	}

	/* Text inside every group remains left aligned */
	.model-stat-group {
		width: max-content;
		text-align: left;
	}

}


/* ==================================================
GALLERY GLOBAL TYPOGRAPHY
================================================== */

.gallery-heading {
	font-family: var(--heading-font);
	font-size: 50px;
	font-weight: 400;
	line-height: 1;

	color: var(--dark);
}

.gallery-heading strong,
.gallery-heading b {
	font-weight: 700;
}

.gallery-filter {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;

	gap: 36px;

	margin: 0;
	padding: 0;

	list-style: none;
}

.gallery-filter button,
.gallery-filter a {
	position: relative;

	display: inline-flex;
	align-items: center;

	min-width: 0;
	min-height: 0;

	padding: 4px 0 8px;

	border: 0;
	border-radius: 0;

	background: transparent;
	color: var(--dark);

	box-shadow: none;

	font-family: var(--body-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1;

	cursor: pointer;

	transition:
		opacity 0.2s ease,
		color 0.2s ease;
}

.gallery-filter button:hover,
.gallery-filter button:focus-visible,
.gallery-filter a:hover,
.gallery-filter a:focus-visible {
	background: transparent;

	box-shadow: none;

	transform: none;
	opacity: 0.55;
}

.gallery-filter .active,
.gallery-filter .is-active {
	font-weight: 700;
}


/* ==================================================
GALLERY FILTER ACTIVE UNDERLINE
================================================== */

.gallery-filter button::after,
.gallery-filter a::after {
	content: "";

	position: absolute;
	left: 50%;
	bottom: 0;

	width: 0;
	height: 1px;

	background: var(--dark);

	transform: translateX(-50%);

	transition: width 0.25s ease;
}

.gallery-filter button.is-active::after,
.gallery-filter a.is-active::after,
.gallery-filter .active::after {
	width: 100%;
}


/* ==================================================
FORMS
================================================== */

label {
	display: block;

	margin-bottom: 12px;

	font-family: var(--body-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1;

	color: var(--dark);
}

input,
textarea,
select {
	display: block;

	width: 100%;

	padding: 16px 22px;

	border: 1px solid var(--border);
	border-radius: 40px;
	outline: none;

	background: var(--light);
	color: var(--dark);

	font-family: var(--body-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1;

	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

input {
	min-height: 60px;
}

textarea {
	min-height: 285px;

	border-radius: 50px;

	resize: vertical;
}

select {
	min-height: 60px;
}

input:focus,
textarea:focus,
select:focus {
	border-color: #8EA3D5;

	box-shadow:
		0 0 0 2px rgba(142, 163, 213, 0.10);
}

input::placeholder,
textarea::placeholder {
	color: #B5B5B5;
	opacity: 1;
}


/* ==================================================
FOOTER
================================================== */

.site-footer {
	width: 100%;

	padding: 22px 0;

	background: var(--section-light);
	color: var(--dark);
}

.footer-inner {
	display: flex;
	align-items: center;
	justify-content: center;

	text-align: center;
}

.footer-inner p {
	margin: 0;

	font-family: var(--body-font);
	font-size: 13px;
	font-weight: 400;
	line-height: 1;

	color: var(--dark);
}


/* ==================================================
ACCESSIBILITY
================================================== */

.screen-reader-text {
	position: absolute !important;

	width: 1px;
	height: 1px;

	padding: 0;
	margin: -1px;

	overflow: hidden;

	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);

	white-space: nowrap;

	border: 0;
}

.screen-reader-text:focus {
	position: fixed !important;
	top: 15px;
	left: 15px;
	z-index: 100000;

	width: auto;
	height: auto;

	padding: 12px 18px;
	margin: 0;

	clip: auto;
	clip-path: none;

	overflow: visible;

	background: var(--white);
	color: var(--dark);

	box-shadow: 0 0 0 2px var(--dark);
}


/* ==================================================
TABLET
================================================== */

@media (max-width: 991px) {

	h1 {
		font-size: 54px;
	}

	h2,
	.section-heading h2,
	.gallery-heading,
	.model-stats-heading {
		font-size: 44px;
	}

	h3 {
		font-size: 34px;
	}

	.section-padding {
		padding: 80px 0;
	}

	.section-padding-sm {
		padding: 60px 0;
	}

	.header-inner {
		min-height: 135px;
	}

	.site-branding .custom-logo {
		max-width: 225px;
		max-height: 85px;
	}

	.primary-menu {
		gap: 28px;
	}

	.primary-menu a {
		font-size: 16px;
	}

	.gallery-filter {
		gap: 26px;
	}

}


/* ==================================================
MOBILE
================================================== */

@media (max-width: 767px) {

	body {
		font-size: 14px;
	}

	h1 {
		font-size: 46px;
	}

	h2,
	.section-heading h2,
	.gallery-heading,
	.model-stats-heading {
		font-size: 38px;
	}

	h3 {
		font-size: 30px;
	}

	h4 {
		font-size: 26px;
	}

	h5 {
		font-size: 22px;
	}

	h6 {
		font-size: 20px;
	}

	p {
		font-size: 14px;
		line-height: 1.25;
	}

	.section-padding {
		padding: 65px 0;
	}

	.section-padding-sm {
		padding: 50px 0;
	}

	.section-heading {
		margin-bottom: 45px;
	}


	/* Header */

	.header-inner {
		min-height: 100px;
	}

	.site-branding .custom-logo {
		max-width: 175px;
		max-height: 68px;
	}

	.mobile-menu-toggle {
		display: block;

		flex-shrink: 0;
	}


	/* Mobile Navigation */

	.main-navigation {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 110;

		display: block;

		width: 100%;

		margin: 0;
		padding: 0;

		background: var(--white);

		opacity: 0;
		visibility: hidden;

		transform: translateY(-8px);

		pointer-events: none;

		box-shadow:
			0 12px 24px rgba(0, 0, 0, 0.06);

		transition:
			opacity 0.2s ease,
			visibility 0.2s ease,
			transform 0.2s ease;
	}

	.main-navigation.is-open {
		opacity: 1;
		visibility: visible;

		transform: translateY(0);

		pointer-events: auto;
	}

	.primary-menu {
		flex-direction: column;
		align-items: stretch;

		width: 100%;

		gap: 0;

		padding: 16px 18px 22px;
	}

	.primary-menu li {
		width: 100%;
	}

	.primary-menu a {
		display: flex;

		width: 100%;

		padding: 14px 4px;

		font-size: 16px;
	}


	/* Model Stats */

	.model-stat-title {
		font-size: 18px;
	}

	.model-stat-value {
		font-size: 14px;
	}


	/* Gallery */

	.gallery-filter {
		gap: 18px;
	}

	.gallery-filter button,
	.gallery-filter a {
		font-size: 13px;
	}


	/* Buttons */

	.btn,
	input[type="submit"] {
		min-width: 160px;
		min-height: 48px;

		padding: 13px 24px;

		font-size: 16px;
	}


	/* Forms */

	input,
	select {
		min-height: 54px;
	}

	textarea {
		min-height: 220px;
	}

}


/* ==================================================
SMALL MOBILE
================================================== */

@media (max-width: 575px) {

	:root {
		--gutter: 18px;
	}

	h1 {
		font-size: 40px;
	}

	h2,
	.section-heading h2,
	.gallery-heading,
	.model-stats-heading {
		font-size: 32px;
		line-height: 36px;
	}

	.header-inner {
		min-height: 92px;
	}

	.site-branding .custom-logo {
		max-width: 155px;
	}

	.gallery-filter {
		gap: 14px;
	}

	.footer-inner p {
		font-size: 11px;
	}

}

/* ==================================================
HOMEPAGE
================================================== */


/* ==================================================
HERO
================================================== */

.hero-section {
	position: relative;
	background: var(--white);
	overflow: hidden;
	padding-bottom: 180px;
}

.hero-wrapper {
	position: relative;

	display: grid;

	grid-template-columns:
		minmax(0, 1.08fr)
		minmax(430px, 0.92fr);

	grid-template-rows:
		auto
		1fr;

	column-gap: 24px;

	min-height: 830px;

	padding: 72px 0 70px;
}


/* ==================================================
HERO HEADING
================================================== */

.hero-heading {
	position: relative;
	z-index: 3;

	grid-column: 1 / 3;
	grid-row: 1;

	max-width: 900px;

	margin-top: 22px;
}

.hero-heading h1 {
	margin: 0;

	font-family: var(--heading-font);
	font-size: 65px;
	font-weight: 400;
	line-height: 86px;

	color: var(--dark);
}

.hero-heading h1 strong {
	display: block;

	font-weight: 700;
}


/* ==================================================
HERO CONTENT
================================================== */

.hero-content {
	position: relative;
	z-index: 3;

	grid-column: 1;
	grid-row: 2;

	align-self: start;

	max-width: 510px;

	margin-top: 125px;
	margin-left: 55px;
}

.hero-content p {
	margin: 0 0 20px;

	font-family: var(--body-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 24px;

	color: var(--dark);
}

.hero-content p:last-child {
	margin-bottom: 0;
}


/* ==================================================
HERO VISUAL
================================================== */

.hero-visual {
	position: absolute;
	top: 35px;
	right: 0;
	z-index: 2;

	width: 590px;
	height: 760px;
}

.hero-image-bg {
	position: absolute;
	top: 55px;
	left: 5px;
	z-index: 1;
	width: 420px;
	height: 810px;
	border-radius: 160px;
	background: var(--section-light);
	box-shadow:
		inset -6px 0 0 #93A8D6;
}

.hero-model-image {
	position: absolute;
	top: -30px;
	right: 0;
	z-index: 2;
	width: 580px;
	height: auto;
	max-width: none;
	object-fit: contain;
}


/* ==================================================
MODEL STATS
================================================== */

.model-stats-section {
	padding: 58px 0 62px;

	background: var(--section-light);
}

.model-stats-wrapper {
	max-width: 1040px;

	margin-inline: auto;
}

.model-stats-heading {
	margin-bottom: 58px;

	text-align: center;
}

.model-stats-row {
	row-gap: 34px;
}

.model-stat-group {
	display: flex;
	flex-direction: column;

	gap: 34px;
}

.model-stat-item {
	min-height: 54px;
}


/* ==================================================
HOME GALLERY
================================================== */

.home-gallery-section {
	padding: 100px 0 100px;

	background: var(--white);
}

.home-gallery-header {
	margin-bottom: 90px;
}

.home-gallery-header .gallery-heading {
	margin-bottom: 28px;
}


/* ==================================================
HOME GALLERY GRID
FIGMA ALL LAYOUT
================================================== */

.home-gallery-grid {
	display: grid;

	/*
	12 columns gives us:
	3 equal       = 4 + 4 + 4
	2 equal       = 6 + 6
	1/3 + 2/3     = 4 + 8
	full width    = 12
	*/
	grid-template-columns: repeat(12, minmax(0, 1fr));

	width: 100%;
	max-width: 1040px;

	margin-inline: auto;

	/*
	Figma has a very small consistent white gutter.
	*/
	gap: 5px;
}

.home-gallery-item {
	position: relative;

	margin: 0;

	overflow: hidden;

	background: var(--section-light);
}

.home-gallery-item img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center;
}


/* ==================================================
ROW 1
WHITE PORTRAITS
3 EQUAL COLUMNS
================================================== */

.home-gallery-item-1,
.home-gallery-item-2,
.home-gallery-item-3 {
	grid-column: span 4;

	aspect-ratio: 0.67;
}


/* Individual crop control */

.home-gallery-item-1 img {
	object-position: center center;
}

.home-gallery-item-2 img {
	object-position: center center;
}

.home-gallery-item-3 img {
	object-position: center center;
}


/* ==================================================
ROW 2
WHITE PORTRAITS
2 EQUAL WIDE IMAGES
================================================== */

.home-gallery-item-4,
.home-gallery-item-5 {
	grid-column: span 6;

	aspect-ratio: 1.5;
}

.home-gallery-item-4 img,
.home-gallery-item-5 img {
	object-position: center center;
}


/* ==================================================
ROW 3
BLUE STUDIO
3 EQUAL PORTRAIT COLUMNS
================================================== */

.home-gallery-item-6,
.home-gallery-item-7,
.home-gallery-item-8 {
	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-item-6 img,
.home-gallery-item-7 img,
.home-gallery-item-8 img {
	object-position: center center;
}


/* ==================================================
ROW 4
BLUE STUDIO
FULL WIDTH
================================================== */

.home-gallery-item-9 {
	grid-column: 1 / -1;

	aspect-ratio: 1.68;
}

.home-gallery-item-9 img {
	object-position: center center;
}


/* ==================================================
ROW 5
BLUE STUDIO
1/3 + 2/3
================================================== */

.home-gallery-item-10 {
	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-item-11 {
	grid-column: span 8;

	aspect-ratio: 1.35;
}

.home-gallery-item-10 img,
.home-gallery-item-11 img {
	object-position: center center;
}


/* ==================================================
ROW 6
LIFESTYLE
3 EQUAL COLUMNS
================================================== */

.home-gallery-item-12,
.home-gallery-item-13,
.home-gallery-item-14 {
	grid-column: span 4;

	aspect-ratio: 0.68;
}

.home-gallery-item-12 img,
.home-gallery-item-13 img,
.home-gallery-item-14 img {
	object-position: center center;
}


/* ==================================================
ROW 7
EDITORIAL
2 EQUAL COLUMNS
================================================== */

.home-gallery-item-15,
.home-gallery-item-16 {
	grid-column: span 6;

	aspect-ratio: 0.66;
}

.home-gallery-item-15 img,
.home-gallery-item-16 img {
	object-position: center center;
}


/* ==================================================
ROW 8
EDITORIAL
2 EQUAL COLUMNS
================================================== */

.home-gallery-item-17,
.home-gallery-item-18 {
	grid-column: span 6;

	aspect-ratio: 0.68;
}

.home-gallery-item-17 img,
.home-gallery-item-18 img {
	object-position: center center;
}

/* ==================================================
GALLERY FILTERING
================================================== */

.home-gallery-item.is-hidden {
	display: none;
}


/* Reset order */

.home-gallery-item {
	order: 0;
}


/* ==================================================
PORTRAITS CATEGORY
Figma:
3 equal portrait images
1 full width image
================================================== */

.home-gallery-grid.is-filter-portraits {
	grid-template-columns: repeat(12, minmax(0, 1fr));
}


/* Order:
02
14
16
04
*/

.home-gallery-grid.is-filter-portraits .home-gallery-item-2 {
	order: 1;

	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-portraits .home-gallery-item-14 {
	order: 2;

	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-portraits .home-gallery-item-16 {
	order: 3;

	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-portraits .home-gallery-item-4 {
	order: 4;

	grid-column: 1 / -1;

	aspect-ratio: 1.5;
}


/* ==================================================
EDITORIAL CATEGORY
Figma:
3 equal portrait images
================================================== */

.home-gallery-grid.is-filter-editorial {
	grid-template-columns: repeat(12, minmax(0, 1fr));
}


/* Order:
15
17
18
*/

.home-gallery-grid.is-filter-editorial .home-gallery-item-15 {
	order: 1;

	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-editorial .home-gallery-item-17 {
	order: 2;

	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-editorial .home-gallery-item-18 {
	order: 3;

	grid-column: span 4;

	aspect-ratio: 0.67;
}


/* ==================================================
LIFESTYLE CATEGORY
Figma:
2 equal
1 full
2 equal
================================================== */

.home-gallery-grid.is-filter-lifestyle {
	grid-template-columns: repeat(12, minmax(0, 1fr));
}


/* Top Row */

.home-gallery-grid.is-filter-lifestyle .home-gallery-item-12 {
	order: 1;

	grid-column: span 6;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-lifestyle .home-gallery-item-13 {
	order: 2;

	grid-column: span 6;

	aspect-ratio: 0.67;
}


/* Middle Full Width */

.home-gallery-grid.is-filter-lifestyle .home-gallery-item-5 {
	order: 3;

	grid-column: 1 / -1;

	aspect-ratio: 1.48;
}


/* Bottom Row */

.home-gallery-grid.is-filter-lifestyle .home-gallery-item-3 {
	order: 4;

	grid-column: span 6;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-lifestyle .home-gallery-item-1 {
	order: 5;

	grid-column: span 6;

	aspect-ratio: 0.67;
}


/* ==================================================
STUDIO CATEGORY
Figma:
3 equal
1 full
1/3 + 2/3
================================================== */

.home-gallery-grid.is-filter-studio {
	grid-template-columns: repeat(12, minmax(0, 1fr));
}


/* Top Row */

.home-gallery-grid.is-filter-studio .home-gallery-item-6 {
	order: 1;

	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-studio .home-gallery-item-7 {
	order: 2;

	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-studio .home-gallery-item-8 {
	order: 3;

	grid-column: span 4;

	aspect-ratio: 0.67;
}


/* Large Image */

.home-gallery-grid.is-filter-studio .home-gallery-item-9 {
	order: 4;

	grid-column: 1 / -1;

	aspect-ratio: 1.68;
}


/* Bottom Row */

.home-gallery-grid.is-filter-studio .home-gallery-item-10 {
	order: 5;

	grid-column: span 4;

	aspect-ratio: 0.67;
}

.home-gallery-grid.is-filter-studio .home-gallery-item-11 {
	order: 6;

	grid-column: span 8;

	aspect-ratio: 1.34;
}


/* ==================================================
GALLERY FILTER ANIMATIONS
================================================== */

.home-gallery-item {
	will-change: opacity, transform;

	transition:
	opacity 1.35s cubic-bezier(0.22, 1, 0.36, 1),
	transform 1.35s cubic-bezier(0.22, 1, 0.36, 1);
}


/* Initial animation state */

.home-gallery-item.gallery-animate {
	opacity: 0;
}


/* Fade Up */

.home-gallery-item.gallery-animate.animation-fade-up {
	transform: translate3d(0, 16px, 0);
}


/* Zoom In */

.home-gallery-item.gallery-animate.animation-zoom-in {
	transform: scale3d(0.975, 0.975, 1);
}


/* Simple Fade */

.home-gallery-item.gallery-animate.animation-fade {
	transform: none;
}


/* Fade Left */

.home-gallery-item.gallery-animate.animation-fade-left {
	transform: translate3d(-14px, 0, 0);
}


/* Fade Right */

.home-gallery-item.gallery-animate.animation-fade-right {
	transform: translate3d(14px, 0, 0);
}


/* Final visible state */

.home-gallery-item.gallery-animate.is-animated {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
}


/* ==================================================
REDUCED MOTION
================================================== */

@media (prefers-reduced-motion: reduce) {

	.home-gallery-item,
	.home-gallery-item.gallery-animate,
	.home-gallery-item.gallery-animate.is-animated {
		opacity: 1;
		transform: none;
		transition: none;
	}

}

/* ==================================================
CTA SECTION
================================================== */

.home-cta-section {
	padding: 0 0 100px;

	background: var(--white);
}

.home-cta-row {
	max-width: 1040px;

	margin-inline: auto;
}

.home-cta-content {
	max-width: 540px;
}

.home-cta-content h2 {
	margin-bottom: 26px;

	font-family: var(--heading-font);
	font-size: 50px;
	font-weight: 400;
	line-height: 54px;

	color: var(--dark);
}

.home-cta-content h2 strong {
	font-weight: 700;
}

.home-cta-content p {
	max-width: 470px;

	margin-bottom: 36px;

	font-size: 15px;
	line-height: 24px;

	color: var(--dark);
}


/* ==================================================
CTA IMAGE
================================================== */

.home-cta-image {
	position: relative;

	width: 100%;
	max-width: 390px;

	margin-left: auto;

	overflow: hidden;

	border-radius: 110px;

	background: var(--section-light);

	box-shadow:
		inset -6px 0 0 #91A5D3;
}

.home-cta-image img {
	display: block;

	width: 100%;
	height: auto;

	object-fit: contain;
	object-position: center bottom;
}


/* ==================================================
LARGE DESKTOP
================================================== */

@media (min-width: 1400px) {

	.hero-wrapper {
		min-height: 840px;
	}

	.hero-heading {
		max-width: 940px;
	}

	.hero-content {
		max-width: 500px;
	}

	.hero-visual {
		width: 610px;
	}

	.model-stats-wrapper,
	.home-gallery-grid,
	.home-cta-row {
		max-width: 1080px;
	}

}


/* ==================================================
DESKTOP / SMALL LAPTOP
================================================== */

@media (max-width: 1199px) {

	.hero-wrapper {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(390px, 0.9fr);

		min-height: 740px;
	}

	.hero-heading {
		max-width: 760px;
	}

	.hero-heading h1 {
		font-size: 56px;
	}

	.hero-content {
		max-width: 430px;

		margin-top: 100px;
		margin-left: 20px;
	}

	.hero-visual {
		width: 500px;
		height: 690px;
	}

	.hero-image-bg {
		top: 105px;
		left: 15px;

		width: 340px;
		height: 560px;
	}

	.hero-model-image {
		width: 500px;
	}

}


/* ==================================================
TABLET
================================================== */

@media (max-width: 991px) {

	/* Hero */

	.hero-wrapper {
		display: grid;

		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto auto;

		min-height: 650px;

		padding: 50px 0 60px;
	}

	.hero-heading {
		grid-column: 1 / 3;

		max-width: 640px;

		margin-top: 0;
	}

	.hero-heading h1 {
		font-size: 50px;
	}

	.hero-content {
		grid-column: 1;
		grid-row: 2;

		max-width: 330px;

		margin-top: 80px;
		margin-left: 0;
	}

	.hero-content p {
		font-size: 13px;
		line-height: 1.25;
	}

	.hero-visual {
		top: 90px;
		right: -20px;

		width: 430px;
		height: 570px;
	}

	.hero-image-bg {
		top: 80px;

		width: 285px;
		height: 470px;

		border-radius: 80px;
	}

	.hero-model-image {
		width: 430px;
	}


	/* Model Stats */

	.model-stats-section {
		padding: 52px 0 58px;
	}

	.model-stats-heading {
		margin-bottom: 45px;
	}


	/* Gallery */

	.home-gallery-header {
		margin-bottom: 65px;
	}

	.home-gallery-grid {
		gap: 4px;
	}


	/* CTA */

	.home-cta-content h2 {
		font-size: 44px;
	}

	.home-cta-image {
		max-width: 340px;
	}

}


/* ==================================================
MOBILE
================================================== */

@media (max-width: 767px) {

	/* ==================================================
	HERO
	================================================== */

	.hero-section {
		overflow: hidden;
	}

	.hero-wrapper {
		display: flex;
		flex-direction: column;

		min-height: 0;

		padding: 35px 0 60px;
	}

	.hero-heading {
		order: 1;

		max-width: 100%;

		margin: 0 0 32px;
	}

	.hero-heading h1 {
		font-size: 46px;
		line-height: 0.98;
	}

	.hero-visual {
		position: relative;

		top: auto;
		right: auto;

		order: 2;

		width: 100%;
		max-width: 430px;
		height: auto;

		margin: 0 auto 42px;
	}

	.hero-image-bg {
		top: 65px;
		left: 50%;

		width: 68%;
		height: 76%;

		border-radius: 70px;

		transform: translateX(-50%);
	}

	.hero-model-image {
		position: relative;

		top: auto;
		right: auto;
		z-index: 2;

		width: 100%;
		height: auto;

		max-width: 100%;

		margin-inline: auto;
	}

	.hero-content {
		order: 3;

		max-width: 100%;

		margin: 0;
	}

	.hero-content p {
		font-size: 14px;
		line-height: 1.4;
	}


	/* ==================================================
	MODEL STATS
	================================================== */

	.model-stats-section {
		padding: 46px 0 50px;
	}

	.model-stats-heading {
		margin-bottom: 38px;
	}

	.model-stats-row {
		row-gap: 32px;
	}

	.model-stat-group {
		gap: 26px;
	}


	/* ==================================================
	GALLERY
	================================================== */

	.home-gallery-header {
		margin-bottom: 50px;
	}

	.home-gallery-header .gallery-heading {
		margin-bottom: 22px;
	}

	/*
	Keep the original Figma composition rather than
	converting everything into a generic two-column grid.
	*/

	.home-gallery-grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));

		gap: 3px;
	}


	/* Row 1 */

	.home-gallery-item-1,
	.home-gallery-item-2,
	.home-gallery-item-3 {
		grid-column: span 4;
	}


	/* Row 2 */

	.home-gallery-item-4,
	.home-gallery-item-5 {
		grid-column: span 6;
	}


	/* Row 3 */

	.home-gallery-item-6,
	.home-gallery-item-7,
	.home-gallery-item-8 {
		grid-column: span 4;
	}


	/* Row 4 */

	.home-gallery-item-9 {
		grid-column: 1 / -1;
	}


	/* Row 5 */

	.home-gallery-item-10 {
		grid-column: span 4;
	}

	.home-gallery-item-11 {
		grid-column: span 8;
	}


	/* Row 6 */

	.home-gallery-item-12,
	.home-gallery-item-13,
	.home-gallery-item-14 {
		grid-column: span 4;
	}


	/* Row 7 + Row 8 */

	.home-gallery-item-15,
	.home-gallery-item-16,
	.home-gallery-item-17,
	.home-gallery-item-18 {
		grid-column: span 6;
	}
	
	
	/* ==================================================
FILTERED GALLERY — MOBILE
Keep Figma composition
================================================== */


/* Portraits */

.home-gallery-grid.is-filter-portraits .home-gallery-item-2,
.home-gallery-grid.is-filter-portraits .home-gallery-item-14,
.home-gallery-grid.is-filter-portraits .home-gallery-item-16 {
	grid-column: span 4;
}

.home-gallery-grid.is-filter-portraits .home-gallery-item-4 {
	grid-column: 1 / -1;
}


/* Editorial */

.home-gallery-grid.is-filter-editorial .home-gallery-item-15,
.home-gallery-grid.is-filter-editorial .home-gallery-item-17,
.home-gallery-grid.is-filter-editorial .home-gallery-item-18 {
	grid-column: span 4;
}


/* Lifestyle */

.home-gallery-grid.is-filter-lifestyle .home-gallery-item-12,
.home-gallery-grid.is-filter-lifestyle .home-gallery-item-13 {
	grid-column: span 6;
}

.home-gallery-grid.is-filter-lifestyle .home-gallery-item-5 {
	grid-column: 1 / -1;
}

.home-gallery-grid.is-filter-lifestyle .home-gallery-item-3,
.home-gallery-grid.is-filter-lifestyle .home-gallery-item-1 {
	grid-column: span 6;
}


/* Studio */

.home-gallery-grid.is-filter-studio .home-gallery-item-6,
.home-gallery-grid.is-filter-studio .home-gallery-item-7,
.home-gallery-grid.is-filter-studio .home-gallery-item-8 {
	grid-column: span 4;
}

.home-gallery-grid.is-filter-studio .home-gallery-item-9 {
	grid-column: 1 / -1;
}

.home-gallery-grid.is-filter-studio .home-gallery-item-10 {
	grid-column: span 4;
}

.home-gallery-grid.is-filter-studio .home-gallery-item-11 {
	grid-column: span 8;
}


	/* ==================================================
	CTA
	================================================== */

	.home-cta-row {
		row-gap: 55px;
	}

	.home-cta-content {
		max-width: 100%;

		text-align: center;
	}

	.home-cta-content h2 {
		font-size: 38px;
	}

	.home-cta-content p {
		margin-inline: auto;

		line-height: 24px;
	}

	.home-cta-image {
		max-width: 300px;

		margin-inline: auto;
	}

}


/* ==================================================
SMALL MOBILE
================================================== */

@media (max-width: 575px) {

	/* Hero */

	.hero-wrapper {
		padding-top: 25px;
	}

	.hero-heading h1 {
		font-size: 40px;
	}

	.hero-visual {
		max-width: 360px;

		margin-bottom: 35px;
	}

	.hero-image-bg {
		top: 55px;

		width: 70%;

		border-radius: 58px;
	}


	/* Model Stats */

	.model-stats-row {
		row-gap: 28px;
	}


	/* Gallery */

	.home-gallery-section {
		padding: 60px 0 60px;
	}

	.home-gallery-header {
		margin-bottom: 42px;
	}

	.home-gallery-grid {
		gap: 3px;
	}


	/* CTA */

	.home-cta-section {
		padding: 0 0 60px;
	}

	.home-cta-content h2 {
		font-size: 32px;
		line-height: 36px;
	}

	.home-cta-image {
		max-width: 270px;
	}

}

/* ==================================================
CONTACT PAGE
================================================== */

.contact-page-section {
	padding: 50px 0 120px;
	background: var(--white);
}

.contact-page-wrapper {
	width: 100%;
	max-width: 620px;
	margin-inline: auto;
}


/* ==================================================
CONTACT PAGE HEADER
================================================== */

.contact-page-header {
	margin-bottom: 42px;
}

.contact-page-header h1 {
	margin-bottom: 28px;

	font-family: var(--heading-font);
	font-size: 50px;
	font-weight: 700;
	line-height: 1;

	color: var(--dark);
}

.contact-page-header p {
	max-width: 520px;
	margin-inline: auto;

	font-family: var(--body-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 24px;

	color: var(--dark);
}


/* ==================================================
FORMIDABLE FORM
================================================== */

.contact-form-wrapper {
	width: 100%;
	max-width: 540px;
	margin-inline: auto;
}


/* Remove Formidable default outer spacing */

.contact-form-wrapper .frm_forms,
.contact-form-wrapper .frm_form_fields,
.contact-form-wrapper fieldset {
	width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;

	border: 0 !important;
	background: transparent !important;
}


/* ==================================================
FORM GRID
================================================== */

.contact-form-wrapper .frm_fields_container {
	column-gap: 24px !important;
	row-gap: 24px !important;
}

.contact-form-wrapper .frm_form_field {
	margin: 0 !important;
}


/* ==================================================
LABELS
================================================== */

.contact-form-wrapper .frm_primary_label {
	display: block !important;

	margin: 0 0 12px !important;
	padding: 0 !important;

	font-family: var(--body-font) !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1 !important;

	color: var(--dark) !important;
}


/* ==================================================
NAME FIELD
================================================== */

.contact-form-wrapper .frm_form_field.frm_first,
.contact-form-wrapper .frm_form_field.frm_last {
	margin: 0 !important;
}

.contact-form-wrapper .frm_combo_inputs {
	display: grid !important;

	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

	gap: 24px !important;
}


/* First / Last sub labels */

.contact-form-wrapper .frm_description,
.contact-form-wrapper .frm_description span,
.contact-form-wrapper .frm_form_field .frm_sub_label {
	margin-top: 10px !important;

	font-family: var(--body-font) !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1 !important;

	color: #b5b5b5 !important;
}


/* ==================================================
INPUTS
================================================== */

.contact-form-wrapper input[type="text"],
.contact-form-wrapper input[type="email"],
.contact-form-wrapper input[type="tel"],
.contact-form-wrapper input[type="number"],
.contact-form-wrapper input[type="url"],
.contact-form-wrapper select {
	width: 100% !important;

	min-height: 56px !important;

	margin: 0 !important;
	padding: 13px 22px !important;

	border: 1px solid var(--border) !important;
	border-radius: 999px !important;

	outline: none !important;

	background: var(--section-light) !important;
	color: var(--dark) !important;

	font-family: var(--body-font) !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1 !important;

	box-shadow: none !important;

	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease !important;
}


/* ==================================================
TEXTAREA
================================================== */

.contact-form-wrapper textarea {
	display: block !important;

	width: 100% !important;
	min-height: 260px !important;

	margin: 0 !important;
	padding: 22px !important;

	border: 1px solid var(--border) !important;
	border-radius: 45px !important;

	outline: none !important;

	background: var(--section-light) !important;
	color: var(--dark) !important;

	font-family: var(--body-font) !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;

	box-shadow: none !important;

	resize: vertical !important;

	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease !important;
}


/* ==================================================
INPUT FOCUS
================================================== */

.contact-form-wrapper input:focus,
.contact-form-wrapper textarea:focus,
.contact-form-wrapper select:focus {
	border-color: #91a5d3 !important;

	box-shadow:
		0 0 0 2px rgba(145, 165, 211, 0.08) !important;
}


/* ==================================================
SUBMIT AREA
================================================== */

.contact-form-wrapper .frm_submit {
	grid-column: 1 / -1 !important;

	margin-top: 6px !important;

	text-align: left !important;
}


/* ==================================================
SUBMIT BUTTON
================================================== */

.contact-form-wrapper .frm_button_submit {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	min-width: 180px !important;
	min-height: 52px !important;

	margin: 0 !important;
	padding: 14px 28px !important;

	border: 0 !important;
	border-radius: 999px !important;

	background: var(--section-light) !important;
	color: var(--dark) !important;

	font-family: var(--body-font) !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1 !important;

	cursor: pointer !important;

	box-shadow:
		0 5px 0 rgba(130, 151, 205, 0.75) !important;

	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease,
		background-color 0.2s ease !important;
}

.contact-form-wrapper .frm_button_submit:hover,
.contact-form-wrapper .frm_button_submit:focus {
	border: 0 !important;

	background: #eef1fa !important;
	color: var(--dark) !important;

	transform: translateY(-2px) !important;

	box-shadow:
		0 7px 0 rgba(130, 151, 205, 0.75) !important;
}

.contact-form-wrapper .frm_button_submit:active {
	transform: translateY(2px) !important;

	box-shadow:
		0 2px 0 rgba(130, 151, 205, 0.75) !important;
}


/* ==================================================
FORMIDABLE MESSAGES / ERRORS
================================================== */

.contact-form-wrapper .frm_error {
	margin-top: 7px !important;

	font-family: var(--body-font) !important;
	font-size: 12px !important;
	line-height: 1.3 !important;
}

.contact-form-wrapper .frm_error_style,
.contact-form-wrapper .frm_message {
	margin-bottom: 25px !important;

	font-family: var(--body-font) !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
}


/* ==================================================
CONTACT TABLET
================================================== */

@media (max-width: 991px) {

	.contact-page-header h1 {
		font-size: 44px;
	}

}


/* ==================================================
CONTACT MOBILE
================================================== */

@media (max-width: 767px) {

	.contact-page-section {
		padding: 35px 0 60px;
	}

	.contact-page-wrapper {
		max-width: 560px;
	}

	.contact-page-header {
		margin-bottom: 36px;
	}

	.contact-page-header h1 {
		margin-bottom: 22px;

		font-size: 38px;
	}

	.contact-page-header p {
		max-width: 430px;

		font-size: 14px;
	}

	.contact-form-wrapper {
		max-width: 100%;
	}

	.contact-form-wrapper .frm_combo_inputs {
		grid-template-columns: 1fr !important;

		gap: 18px !important;
	}

	.contact-form-wrapper .frm_fields_container {
		grid-template-columns: 1fr !important;

		row-gap: 22px !important;
	}

	.contact-form-wrapper input[type="text"],
	.contact-form-wrapper input[type="email"],
	.contact-form-wrapper input[type="tel"],
	.contact-form-wrapper input[type="number"],
	.contact-form-wrapper input[type="url"],
	.contact-form-wrapper select {
		min-height: 54px !important;
	}

	.contact-form-wrapper textarea {
		min-height: 220px !important;

		border-radius: 38px !important;
	}

}


/* ==================================================
CONTACT SMALL MOBILE
================================================== */

@media (max-width: 575px) {

	.contact-page-section {
		padding: 30px 0 75px;
	}

	.contact-page-header h1 {
		font-size: 34px;
	}

	.contact-page-header p {
		max-width: 330px;
	}

	.contact-form-wrapper .frm_button_submit {
		min-width: 160px !important;
		min-height: 48px !important;

		padding: 13px 24px !important;

		font-size: 16px !important;
	}
	
	.row.model-stats-row .col-3.col-md-6 {
    	width: 50%;
	}
	
	.model-stat-group {
    	text-align: center;
	}
	
	.hero-section {
		padding-bottom: 0;
	}

}

/* ==================================================
GALLERY LIGHTBOX
================================================== */

.home-gallery-item[data-lightbox-item] {
	cursor: zoom-in;
}

.home-gallery-item[data-lightbox-item]:focus-visible {
	outline: 2px solid var(--dark);
	outline-offset: 3px;
}


/* ==================================================
LIGHTBOX WRAPPER
================================================== */

.gallery-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 28px;

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transition:
		opacity 0.22s ease,
		visibility 0.22s ease;
}

.gallery-lightbox.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}


/* ==================================================
BACKDROP
================================================== */

.gallery-lightbox-backdrop {
	position: absolute;
	inset: 0;

	background: rgba(20, 20, 20, 0.88);
}


/* ==================================================
LIGHTBOX DIALOG
================================================== */

.gallery-lightbox-dialog {
	position: relative;
	z-index: 2;

	display: grid;

	grid-template-columns:
		56px
		minmax(0, 1fr)
		56px
		130px;

	align-items: center;

	width: 100%;
	max-width: 1380px;
	height: min(90vh, 920px);

	gap: 18px;
}


/* ==================================================
MAIN IMAGE
================================================== */

.gallery-lightbox-main {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	height: 100%;

	min-width: 0;
	min-height: 0;
}

.gallery-lightbox-image {
	display: block;

	width: auto;
	height: auto;

	max-width: 100%;
	max-height: 88vh;

	object-fit: contain;

	background: transparent;
}


/* ==================================================
CLOSE BUTTON
================================================== */

.gallery-lightbox-close {
	position: absolute;

	top: 0;
	right: 0;
	z-index: 5;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 44px;
	height: 44px;

	min-width: 0;
	min-height: 0;

	padding: 0;

	border: 0;
	border-radius: 50%;

	background: rgba(255, 255, 255, 0.12);
	color: var(--white);

	font-size: 30px;
	font-weight: 400;
	line-height: 1;

	box-shadow: none;

	cursor: pointer;

	transition:
		background-color 0.2s ease,
		transform 0.2s ease;
}

.gallery-lightbox-close:hover,
.gallery-lightbox-close:focus {
	background: rgba(255, 255, 255, 0.22);

	transform: none;
	box-shadow: none;
}


/* ==================================================
PREVIOUS / NEXT BUTTONS
================================================== */

.gallery-lightbox-arrow {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 48px;
	height: 48px;

	min-width: 0;
	min-height: 0;

	padding: 0;

	border: 0;
	border-radius: 50%;

	background: rgba(255, 255, 255, 0.12);
	color: var(--white);

	font-size: 30px;
	font-weight: 400;
	line-height: 1;

	box-shadow: none;

	cursor: pointer;

	transition:
		background-color 0.2s ease,
		opacity 0.2s ease;
}

.gallery-lightbox-arrow:hover,
.gallery-lightbox-arrow:focus {
	background: rgba(255, 255, 255, 0.22);

	transform: none;
	box-shadow: none;
}

.gallery-lightbox-prev {
	grid-column: 1;
}

.gallery-lightbox-main {
	grid-column: 2;
}

.gallery-lightbox-next {
	grid-column: 3;
}


/* ==================================================
THUMBNAILS
================================================== */

.gallery-lightbox-thumbnails {
	grid-column: 4;

	align-self: stretch;

	display: flex;
	flex-direction: column;

	gap: 7px;

	padding: 52px 4px 8px;

	overflow-y: auto;
	overflow-x: hidden;

	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
}

.gallery-lightbox-thumbnails::-webkit-scrollbar {
	width: 6px;
}

.gallery-lightbox-thumbnails::-webkit-scrollbar-track {
	background: transparent;
}

.gallery-lightbox-thumbnails::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.35);
	border-radius: 999px;
}

.gallery-lightbox-thumb {
	flex: 0 0 auto;

	width: 100%;
	height: 78px;

	min-height: 0;

	padding: 0;

	border: 2px solid transparent;
	border-radius: 0;

	background: #2e2e2e;

	box-shadow: none;

	overflow: hidden;

	cursor: pointer;

	opacity: 0.68;

	transition:
		opacity 0.18s ease,
		border-color 0.18s ease;
}

.gallery-lightbox-thumb:hover,
.gallery-lightbox-thumb:focus {
	opacity: 1;

	transform: none;
	box-shadow: none;
}

.gallery-lightbox-thumb.is-active {
	opacity: 1;
	border-color: var(--white);
}

.gallery-lightbox-thumb img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
}


/* ==================================================
BODY SCROLL LOCK
================================================== */

body.gallery-lightbox-open {
	overflow: hidden;
}


/* ==================================================
LIGHTBOX TABLET
================================================== */

@media (max-width: 991px) {

	.gallery-lightbox {
		padding: 20px;
	}

	.gallery-lightbox-dialog {
		grid-template-columns:
			46px
			minmax(0, 1fr)
			46px
			100px;

		gap: 12px;

		height: 88vh;
	}

	.gallery-lightbox-thumb {
		height: 66px;
	}

}


/* ==================================================
LIGHTBOX MOBILE
================================================== */

@media (max-width: 767px) {

	.gallery-lightbox {
		padding: 14px;
	}

	.gallery-lightbox-dialog {
		display: grid;

		grid-template-columns: 44px 1fr 44px;
		grid-template-rows:
			minmax(0, 1fr)
			auto;

		width: 100%;
		height: 94vh;

		gap: 10px;
	}

	.gallery-lightbox-main {
		grid-column: 1 / -1;
		grid-row: 1;

		padding-top: 42px;
	}

	.gallery-lightbox-image {
		max-height: calc(94vh - 135px);
	}

	.gallery-lightbox-prev,
	.gallery-lightbox-next {
		position: absolute;

		top: 50%;
		z-index: 4;

		transform: translateY(-50%);
	}

	.gallery-lightbox-prev {
		left: 0;
	}

	.gallery-lightbox-next {
		right: 0;
	}

	.gallery-lightbox-prev:hover,
	.gallery-lightbox-prev:focus,
	.gallery-lightbox-next:hover,
	.gallery-lightbox-next:focus {
		transform: translateY(-50%);
	}

	.gallery-lightbox-thumbnails {
		grid-column: 1 / -1;
		grid-row: 2;

		display: flex;
		flex-direction: row;

		width: 100%;

		padding: 0;

		overflow-x: auto;
		overflow-y: hidden;
	}

	.gallery-lightbox-thumb {
		width: 68px;
		height: 68px;
	}

	.gallery-lightbox-close {
		top: 0;
		right: 0;

		width: 40px;
		height: 40px;

		font-size: 27px;
	}

}


/* ==================================================
LIGHTBOX SMALL MOBILE
================================================== */

@media (max-width: 575px) {

	.gallery-lightbox {
		padding: 10px;
	}

	.gallery-lightbox-arrow {
		width: 42px;
		height: 42px;

		font-size: 27px;
	}

	.gallery-lightbox-thumb {
		width: 62px;
		height: 62px;
	}

}