/*
Theme Name: Hypnoseakademiet
Theme URI: https://hypnoseakademiet.no
Author: Mint Media
Author URI: https://mintmedias.no
Description: Custom block theme for Hypnoseakademiet / EFT Akademiet, based on Figma redesign.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
Version: 0.1.0
License: Proprietary
Text Domain: hypnoseakademiet
*/

:root {
	--ha-navy: #002c5d;
	--ha-cream: #ffecd4;
	--ha-ink: #17212b;
	--ha-muted: #5c6670;
	--ha-line: #dfe4e8;
	--ha-off-white: #f8f7f4;
	--ha-radius: 4px;
}

html {
	scroll-behavior: smooth;
}

body {
	overflow-x: hidden;
}

body,
button,
input,
select,
textarea {
	font-family: var(--wp--preset--font-family--body);
}

a {
	transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.wp-site-blocks {
	padding: 0;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

.wp-block-button__link {
	display: inline-flex;
	gap: 14px;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .01em;
	line-height: 1;
	min-height: 45px;
}

.wp-block-button__link:hover {
	transform: translateY(-1px);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	border-width: 1px;
}

header.wp-block-group {
	position: relative;
	z-index: 20;
	min-height: 72px;
	border-bottom: 1px solid rgba(0, 44, 93, .08);
}

header .wp-block-navigation {
	font-size: 12px;
	font-weight: 500;
}

header .wp-block-navigation-item__content {
	color: var(--ha-ink);
}

header .wp-block-navigation-item__content:hover {
	color: var(--ha-navy);
}

header .wp-block-image img {
	display: block;
	width: auto;
	max-height: 42px;
}

.ha-home {
	color: var(--ha-ink);
}

.ha-home h1,
.ha-home h2,
.ha-home h3 {
	color: var(--ha-navy);
	margin-top: 0;
}

.ha-home h2 {
	font-size: clamp(38px, 4.2vw, 62px);
	font-weight: 500;
	letter-spacing: -.025em;
	line-height: .98;
}

.ha-home h3 {
	font-size: clamp(25px, 2.3vw, 34px);
	font-weight: 600;
	line-height: 1.05;
}

.ha-home em {
	color: #b56a3a;
	font-weight: 500;
}

.ha-section {
	box-sizing: border-box;
	padding: clamp(80px, 9vw, 138px) max(28px, calc((100vw - 1200px) / 2));
}

.ha-eyebrow,
.ha-kicker,
.ha-card-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	margin-bottom: 22px;
	text-transform: uppercase;
}

.ha-kicker,
.ha-card-label {
	color: var(--ha-navy);
}

.ha-hero {
	background: #293947;
}

.ha-hero::after {
	background: linear-gradient(90deg, rgba(7, 20, 31, .78) 0%, rgba(7, 20, 31, .45) 50%, rgba(7, 20, 31, .06) 100%);
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.ha-hero .wp-block-cover__background {
	opacity: .18;
}

.ha-hero .wp-block-cover__image-background {
	object-position: center 44%;
}

.ha-hero .wp-block-cover__inner-container {
	box-sizing: border-box;
	margin: 0 auto;
	max-width: 1200px;
	padding: 70px 0;
	position: relative;
	width: calc(100% - 56px);
	z-index: 2;
}

.ha-hero__content {
	margin: 0;
	max-width: 610px;
}

.ha-hero h1 {
	color: #fff;
	font-size: clamp(52px, 6vw, 82px);
	font-weight: 500;
	letter-spacing: -.035em;
	line-height: .92;
	margin-bottom: 30px;
}

.ha-hero h1 em {
	color: var(--ha-cream);
}

.ha-hero__lead {
	font-size: 16px;
	line-height: 1.65;
	margin-bottom: 34px;
	max-width: 520px;
	opacity: .88;
}

.ha-hero .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: #fff;
}

.ha-intro {
	padding-bottom: clamp(88px, 11vw, 165px);
	padding-top: clamp(88px, 11vw, 165px);
}

.ha-intro .wp-block-columns {
	gap: clamp(50px, 8vw, 140px);
}

.ha-intro h2 {
	margin-bottom: 28px;
	max-width: 770px;
}

.ha-intro p:not(.ha-kicker) {
	color: var(--ha-muted);
	font-size: 16px;
	line-height: 1.8;
	max-width: 680px;
}

.ha-upcoming {
	background: var(--ha-off-white);
}

.ha-upcoming > .wp-block-columns {
	gap: clamp(40px, 7vw, 90px);
}

.ha-upcoming h2 {
	margin-bottom: 26px;
}

.ha-upcoming p:not(.ha-kicker, .ha-card-label, .ha-text-link) {
	color: var(--ha-muted);
	line-height: 1.7;
	margin-bottom: 30px;
}

.ha-card-grid {
	gap: 20px;
}

.ha-course-card {
	background: #fff;
	border: 1px solid var(--ha-line);
	overflow: hidden;
}

.ha-course-card .wp-block-image {
	height: 190px;
	margin: 0;
	overflow: hidden;
}

.ha-course-card .wp-block-image img {
	height: 100%;
	object-fit: cover;
	transition: transform 350ms ease;
	width: 100%;
}

.ha-course-card:hover .wp-block-image img,
.ha-feature-card:hover .wp-block-image img {
	transform: scale(1.025);
}

.ha-course-card__body {
	padding: 28px;
}

.ha-course-card__body h3 {
	font-size: 27px;
	margin-bottom: 13px;
}

.ha-course-card__body .ha-card-label {
	margin-bottom: 15px;
}

.ha-course-card__body p:not(.ha-card-label, .ha-text-link) {
	font-size: 13px;
	margin-bottom: 22px;
}

.ha-text-link {
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 0;
}

.ha-text-link a {
	color: var(--ha-navy);
	text-decoration: none;
}

.ha-text-link a:hover {
	color: #b56a3a;
}

.ha-section-heading {
	border-bottom: 1px solid var(--ha-line);
	margin-bottom: 46px;
	padding-bottom: 30px;
}

.ha-section-heading h2 {
	margin-bottom: 0;
}

.ha-section-heading .ha-kicker {
	margin-bottom: 15px;
}

.ha-team-grid {
	gap: 24px;
}

.ha-person .wp-block-image {
	aspect-ratio: 4 / 4.7;
	background: var(--ha-off-white);
	margin: 0 0 23px;
	overflow: hidden;
}

.ha-person .wp-block-image img {
	height: 100%;
	object-fit: cover;
	object-position: center top;
	width: 100%;
}

.ha-person:nth-child(2) .wp-block-image img {
	object-fit: contain;
	padding: 12%;
}

.ha-person h3 {
	font-size: 27px;
	margin-bottom: 7px;
}

.ha-person p {
	color: var(--ha-muted);
	font-size: 13px;
	margin-top: 0;
}

.ha-featured {
	padding-top: 40px;
}

.ha-feature-grid {
	gap: 24px;
}

.ha-feature-card {
	background: var(--ha-off-white);
	border: 1px solid var(--ha-line);
	overflow: hidden;
}

.ha-feature-card--primary {
	background: var(--ha-navy);
	border-color: var(--ha-navy);
}

.ha-feature-card .wp-block-image {
	height: 330px;
	margin: 0;
	overflow: hidden;
}

.ha-feature-card .wp-block-image img {
	height: 100%;
	object-fit: cover;
	transition: transform 350ms ease;
	width: 100%;
}

.ha-feature-card__body {
	padding: clamp(30px, 4vw, 52px);
}

.ha-feature-card__body h3 {
	font-size: clamp(32px, 3.5vw, 46px);
	margin-bottom: 22px;
}

.ha-feature-card__body > p:not(.ha-card-label, .ha-text-link) {
	color: var(--ha-muted);
	line-height: 1.7;
}

.ha-feature-card--primary h3,
.ha-feature-card--primary p,
.ha-feature-card--primary a {
	color: #fff;
}

.ha-feature-card--primary .ha-card-label {
	color: var(--ha-cream);
}

.ha-feature-card--primary .ha-text-link {
	margin-top: 30px;
}

.ha-quote .wp-block-cover__image-background {
	object-position: center 42%;
}

.ha-quote .wp-block-cover__background {
	background: var(--ha-navy) !important;
}

.ha-quote .wp-block-cover__inner-container {
	margin: 0 auto;
	max-width: 940px;
	padding: 60px 28px;
}

.ha-quote blockquote {
	border: 0;
	margin: 0;
}

.ha-quote blockquote p {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(38px, 4.5vw, 62px);
	font-weight: 500;
	letter-spacing: -.025em;
	line-height: 1.05;
}

.ha-quote cite {
	display: block;
	font-size: 12px;
	font-style: normal;
	letter-spacing: .08em;
	margin-top: 28px;
	text-transform: uppercase;
}

.ha-cta {
	box-sizing: border-box;
	padding: clamp(80px, 9vw, 130px) 28px;
}

.ha-cta h2 {
	margin-bottom: 25px;
}

.ha-cta p {
	margin: 0 auto 32px;
	max-width: 560px;
}

footer.wp-block-group {
	margin-block-start: 0;
}

footer h3,
footer h4 {
	color: #fff;
}

footer p,
footer a {
	color: rgba(255, 255, 255, .78);
	font-size: 13px;
	line-height: 1.75;
}

@media (max-width: 1080px) {
	header.wp-block-group {
		padding-left: 24px !important;
		padding-right: 24px !important;
	}

	header .wp-block-navigation {
		order: 3;
	}

	.ha-section {
		padding-left: 32px;
		padding-right: 32px;
	}
}

@media (max-width: 781px) {
	header .wp-block-buttons {
		display: none;
	}

	.ha-hero {
		min-height: 620px !important;
	}

	.ha-hero::after {
		background: rgba(7, 20, 31, .68);
	}

	.ha-hero .wp-block-cover__image-background {
		object-position: 63% center;
	}

	.ha-hero .wp-block-cover__inner-container {
		width: calc(100% - 40px);
	}

	.ha-hero h1 {
		font-size: clamp(46px, 14vw, 64px);
	}

	.ha-intro .wp-block-columns,
	.ha-upcoming > .wp-block-columns {
		gap: 38px;
	}

	.ha-card-grid,
	.ha-team-grid,
	.ha-feature-grid {
		gap: 28px;
	}

	.ha-section-heading {
		align-items: flex-start !important;
		gap: 20px;
	}

	.ha-featured {
		padding-top: 20px;
	}

	.ha-feature-card .wp-block-image {
		height: 260px;
	}
}

@media (max-width: 480px) {
	.ha-section {
		padding-left: 20px;
		padding-right: 20px;
	}

	.ha-hero .wp-block-cover__inner-container {
		width: calc(100% - 32px);
	}

	.ha-hero .wp-block-buttons {
		align-items: stretch;
		flex-direction: column;
	}

	.ha-hero .wp-block-button,
	.ha-hero .wp-block-button__link {
		width: 100%;
	}
}
