/*
Theme Name: Lähettirengas
Theme URI: https://lahettirengas.fi/
Author: Generaxion
Description: GX-Easy Nova -pohjainen, muokattava Gutenberg-lohkoteema Lähettirenkaalle.
Version: 1.1.0
Text Domain: lahettirengas
*/

:root {
	--lahettirengas-header-shadow: 0 12px 36px rgba(18, 27, 42, 0.08);
	--lahettirengas-card-shadow: 0 24px 70px rgba(24, 42, 75, 0.12);
	--lahettirengas-radius: 24px;
	--lahettirengas-transition: 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	overflow-x: hidden;
	background: linear-gradient(180deg, #fff 0%, #fbfcff 100%);
}

a {
	text-underline-offset: 0.18em;
}

p:not([class*="-font-size"]) {
	font-size: 1.125rem;
	line-height: 1.65;
}

a:focus-visible,
button:focus-visible,
.wp-element-button:focus-visible {
	outline: 3px solid var(--wp--preset--color--focus);
	outline-offset: 3px;
}

.wp-site-blocks {
	padding: 0;
	padding-top: 144px;
}

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

.wp-site-blocks > header.wp-block-template-part {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	width: 100%;
	z-index: 1000;
	box-shadow: var(--lahettirengas-header-shadow);
}

.site-header {
	position: static;
}

.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: 32px;
}

.site-contact-bar {
	height: 38px;
	min-height: 38px;
	box-sizing: border-box;
	padding-block: 0 !important;
	background-image: linear-gradient(90deg, #171d26 0%, #202b3d 100%);
}

.site-contact-bar .wp-block-group {
	height: 38px;
	min-height: 38px;
	box-sizing: border-box;
	padding-block: 0 !important;
}

.site-contact-bar p {
	margin: 0;
}

.site-contact-bar a {
	color: inherit;
	text-decoration: none;
}

.site-contact-bar a:hover {
	text-decoration: underline;
}

.site-contact-link::before {
	display: inline-block;
	margin-inline-end: 0.45rem;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

.site-contact-link--phone::before {
	content: "☎";
}

.site-contact-link--email::before {
	content: "✉";
}

.site-main-header {
	height: 106px;
	min-height: 106px;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(18px);
}

.site-main-header > .wp-block-group {
	height: 106px;
}

.site-main-header .wp-block-site-logo img {
	width: 218px;
	height: auto;
}

.site-main-header .wp-block-navigation-item__content {
	padding-block: 0.75rem;
	text-decoration: none;
	transition: color var(--lahettirengas-transition), transform var(--lahettirengas-transition);
}

.site-main-header .wp-block-navigation-item__content:hover,
.site-main-header .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary);
	transform: translateY(-2px);
}

.home-hero {
	min-height: clamp(600px, 62vw, 780px) !important;
	isolation: isolate;
	overflow: hidden;
}

.home-hero .wp-block-cover__image-background,
.page-hero .wp-block-cover__image-background {
	object-position: 62% center;
	transform: scale(1.015);
}

.home-hero .wp-block-cover__background,
.page-hero .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(12, 23, 42, 0.94) 0%, rgba(17, 36, 69, 0.8) 42%, rgba(17, 36, 69, 0.18) 78%, rgba(17, 36, 69, 0.08) 100%) !important;
	opacity: 1 !important;
}

.home-hero__inner,
.page-hero__inner {
	width: 100%;
	box-sizing: border-box;
	padding: clamp(2rem, 5vw, 5rem);
}

.home-hero__card,
.page-hero__card {
	width: min(58%, 720px);
	margin-inline: 0 auto !important;
	padding: clamp(2rem, 4vw, 4rem);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--lahettirengas-radius);
	background: linear-gradient(135deg, rgba(15, 31, 58, 0.72), rgba(15, 31, 58, 0.38));
	box-shadow: 0 30px 90px rgba(4, 14, 31, 0.3);
	backdrop-filter: blur(14px);
}

.home-hero__card .wp-block-heading,
.page-hero__card .wp-block-post-title {
	max-width: 13ch;
	margin-block: 0.25em;
	text-wrap: balance;
}

.page-template-page-legal .page-hero__card {
	width: min(72%, 900px);
}

.page-template-page-legal .page-hero__card .wp-block-post-title {
	max-width: none;
	hyphens: auto;
	overflow-wrap: normal;
	word-break: normal;
}

.home-hero__card > p:not(.home-hero__eyebrow) {
	max-width: 31ch;
}

.home-hero__eyebrow {
	margin: 0;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.wp-element-button {
	border-radius: 999px;
	box-shadow: 0 10px 24px rgba(36, 79, 174, 0.2);
	transition: transform var(--lahettirengas-transition), box-shadow var(--lahettirengas-transition), background-color var(--lahettirengas-transition);
}

.wp-element-button:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 34px rgba(36, 79, 174, 0.28);
}

.home-intro {
	padding-block: clamp(3.5rem, 7vw, 7rem);
	text-align: center;
}

.home-intro p {
	position: relative;
	margin: 0;
	text-wrap: balance;
}

.home-intro p::before {
	display: block;
	width: 72px;
	height: 5px;
	margin: 0 auto 2rem;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--wp--preset--color--primary), #7ea4ff);
	content: "";
}

.service-list {
	padding-bottom: clamp(4rem, 8vw, 8rem);
}

.service-list .wp-block-media-text {
	width: min(100%, 1000px);
	gap: clamp(2rem, 5vw, 5rem);
	margin-block: clamp(3.5rem, 7vw, 7rem);
	margin-inline: auto;
	padding: clamp(0.75rem, 2vw, 1.25rem);
	border: 1px solid rgba(63, 111, 229, 0.1);
	border-radius: calc(var(--lahettirengas-radius) + 6px);
	background: linear-gradient(135deg, rgba(237, 247, 241, 0.7), rgba(255, 255, 255, 0.96));
	box-shadow: var(--lahettirengas-card-shadow);
}

.service-list .wp-block-media-text__media {
	overflow: hidden;
	border-radius: var(--lahettirengas-radius);
}

.service-list .wp-block-media-text__media img {
	object-fit: cover;
	width: 100%;
	min-height: 440px;
	max-height: 560px;
	transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.service-list .wp-block-media-text:hover .wp-block-media-text__media img {
	transform: scale(1.035);
}

.service-list .wp-block-media-text__content {
	padding: 0;
}

.service-list .wp-block-heading {
	margin-top: 0;
}

.nova-cta {
	margin-block: 0 clamp(4rem, 8vw, 8rem);
	overflow: hidden;
	border-radius: calc(var(--lahettirengas-radius) + 8px);
	background: linear-gradient(135deg, var(--wp--preset--color--primary-dark), var(--wp--preset--color--primary)) !important;
	box-shadow: 0 28px 70px rgba(36, 79, 174, 0.25);
}

.nova-cta .wp-block-buttons {
	justify-content: flex-end;
}

.page-hero {
	min-height: clamp(440px, 42vw, 560px) !important;
	isolation: isolate;
	overflow: hidden;
}

.page-content {
	padding-block: clamp(3rem, 6vw, 6rem);
}

.page-content > :first-child {
	margin-top: 0;
}

.contact-card {
	height: 100%;
	box-sizing: border-box;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--lahettirengas-radius);
	box-shadow: var(--lahettirengas-card-shadow);
}

.contact-form-section {
	margin-block-start: clamp(3rem, 6vw, 5rem);
	color: var(--wp--preset--color--primary-dark);
}

.contact-form-section > p {
	margin-bottom: 2.75rem;
}

.contact-form-section .gform_wrapper.gform-theme {
	--gf-color-primary: var(--wp--preset--color--primary);
	--gf-color-primary-contrast: var(--wp--preset--color--base);
	--gf-color-in-ctrl: #e9f2ff;
	--gf-color-in-ctrl-contrast: var(--wp--preset--color--primary-dark);
	--gf-color-in-ctrl-border: #cce0ff;
	--gf-color-in-ctrl-accent: var(--wp--preset--color--primary);
	--gf-color-in-ctrl-accent-contrast: var(--wp--preset--color--base);
	--gf-color-in-ctrl-contrast-lighter: var(--wp--preset--color--primary-dark);
	--gf-color-out-ctrl: var(--wp--preset--color--primary-dark);
	--gf-font-family-base: var(--wp--preset--font-family--sans);
	--gf-font-size-base: 1rem;
	--gf-ctrl-size: 56px;
	--gf-ctrl-border-radius: 4px;
	--gf-form-gap-y: 2rem;
	--gf-form-gap-x: 2.5rem;
}

.contact-form-section .gform_wrapper.gform-theme input:is([type="text"], [type="email"], [type="tel"]),
.contact-form-section .gform_wrapper.gform-theme textarea {
	background: #e9f2ff;
	border: 1px solid #cce0ff;
	border-radius: 4px;
	color: var(--wp--preset--color--primary-dark);
	font: inherit;
	font-size: 1rem;
	box-shadow: none;
}

.contact-form-section .gform_wrapper.gform-theme input:is([type="text"], [type="email"], [type="tel"]) {
	min-height: 56px;
	padding: 0.85rem;
}

.contact-form-section .gform_wrapper.gform-theme .gfield_label,
.contact-form-section .gform_wrapper.gform-theme .gform-field-label {
	color: var(--wp--preset--color--primary-dark);
	font-size: 1rem;
	font-weight: 400;
}

.contact-form-section .gform_wrapper.gform-theme input[type="radio"] {
	width: 26px;
	height: 26px;
	background-color: #e9f2ff;
	border-color: #cce0ff;
}

.contact-form-section .gform_wrapper.gform-theme input:focus-visible,
.contact-form-section .gform_wrapper.gform-theme textarea:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

.contact-form-section .gform_wrapper.gform-theme .contact-form-consent a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.contact-form-section .gform_wrapper.gform-theme textarea {
	min-height: 230px;
}

.contact-form-section .gform_wrapper input::placeholder {
	opacity: 1;
}

.contact-form-section .gform_wrapper.gform-theme .gform_button {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-radius: 999px;
	padding-inline: 1.75rem;
}

.pricing-map img {
	width: 100%;
	height: auto;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--lahettirengas-radius);
	box-shadow: var(--lahettirengas-card-shadow);
}

.site-footer {
	margin-block-start: 0;
}

.site-footer .wp-block-site-logo img {
	width: 218px;
	height: auto;
}

.site-footer a {
	color: inherit;
}

.site-footer__links .wp-block-navigation-item__content {
	padding-block: 0.35rem;
}

@media (max-width: 782px) {
	.wp-site-blocks {
		padding-top: 124px;
	}

	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 46px;
	}

	.site-contact-bar {
		height: 42px;
		min-height: 42px;
	}

	.site-contact-bar .wp-block-group {
		height: 42px;
		min-height: 42px;
	}

	.site-contact-link {
		font-size: 0;
	}

	.site-contact-link::before {
		margin-inline-end: 0;
		font-size: 1.15rem;
	}

	.site-contact-bar__cta {
		font-size: 0.75rem;
	}

	.site-main-header {
		height: 82px;
		min-height: 82px;
		/* A blur contains fixed descendants and clips the native menu overlay. */
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.site-main-header > .wp-block-group {
		height: 82px;
	}

	.site-main-header .wp-block-site-logo img {
		width: 170px;
	}

	.site-main-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open {
		padding: 1.5rem;
		box-sizing: border-box;
	}

	.home-hero {
		min-height: clamp(560px, calc(100svh - 124px), 720px) !important;
	}

	.home-hero .wp-block-cover__image-background,
	.page-hero .wp-block-cover__image-background {
		object-position: 68% center;
	}

	.home-hero .wp-block-cover__background,
	.page-hero .wp-block-cover__background {
		background: linear-gradient(90deg, rgba(10, 22, 42, 0.93) 0%, rgba(14, 34, 68, 0.76) 64%, rgba(14, 34, 68, 0.4) 100%) !important;
	}

	.home-hero__inner,
	.page-hero__inner {
		padding: 1.5rem;
	}

	.home-hero__card,
	.page-hero__card {
		width: 100%;
		box-sizing: border-box;
		padding: clamp(1.75rem, 7vw, 3rem);
	}

	.page-template-page-legal .page-hero__card {
		width: 100%;
	}

	.home-hero__card .wp-block-heading {
		font-size: clamp(2.25rem, 9vw, 3.6rem) !important;
	}

	.page-hero {
		min-height: clamp(420px, 62svh, 560px) !important;
	}

	.page-hero__card .wp-block-post-title {
		font-size: clamp(2.25rem, 9vw, 3.6rem) !important;
	}

	.service-list .wp-block-media-text {
		gap: 1.75rem;
	}

	.service-list .wp-block-media-text__media img {
		min-height: 300px;
	}

	.service-list .wp-block-media-text__content {
		padding-top: 1.5rem;
	}

	.nova-cta .wp-block-buttons {
		justify-content: flex-start;
	}
}

@media (max-width: 600px) {
	.page-template-page-legal .page-hero__card {
		padding-inline: 1rem;
	}

	.page-template-page-legal .page-hero__card .wp-block-post-title {
		font-size: clamp(1.5rem, 7.2vw, 2.7rem) !important;
	}
}

@media (max-width: 480px) {
	.site-contact-bar > .wp-block-group,
	.site-main-header > .wp-block-group {
		padding-inline: 1rem !important;
	}

	.site-contact-bar > .wp-block-group {
		gap: 0.85rem;
		justify-content: center;
	}

	.site-contact-link.has-small-font-size {
		flex: 0 0 32px;
		font-size: 0 !important;
	}

	.site-contact-link::before {
		display: none;
	}

	.site-contact-link a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		font-size: 0 !important;
	}

	.site-contact-link a::before {
		color: var(--wp--preset--color--primary);
		font-size: 1.05rem;
		line-height: 1;
	}

	.site-contact-link--phone a::before {
		content: "☎";
	}

	.site-contact-link--email a::before {
		content: "✉";
	}

	.site-contact-bar__cta.has-small-font-size,
	.site-contact-bar__cta a {
		font-size: 0.72rem !important;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}

	.home-hero__inner,
	.page-hero__inner,
	.page-content,
	.page-hero + .page-content {
		padding-inline: 1.25rem !important;
	}

	.home-hero__card,
	.page-hero__card {
		padding: 1.5rem;
		border-radius: 20px;
	}

	.home-hero__eyebrow {
		font-size: 0.72rem !important;
		letter-spacing: 0.1em;
	}

	.site-footer .wp-block-columns {
		gap: 2rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.wp-element-button,
	.service-list .wp-block-media-text__media img,
	.site-main-header .wp-block-navigation-item__content {
		transition: none;
	}

	.wp-element-button:hover,
	.service-list .wp-block-media-text:hover .wp-block-media-text__media img,
	.site-main-header .wp-block-navigation-item__content:hover {
		transform: none;
	}
}
