/*
Theme Name: OxyMed Normobaria
Theme URI: https://oxymed.pl/
Author: OxyMed
Description: Jednostronicowy, edytowalny motyw WordPress dla komory normobarycznej OxyMed w Poznaniu.
Version: 1.6.8
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: oxymed
*/

:root {
	--teal: #438a86;
	--mint: #91c7ad;
	--mint-light: #a4d0bb;
	--forest: #2b4d4c;
	--ink: #0c262b;
	--gold: #f3c560;
	--header: #fbfaf5;
	--panel: #fbfaf5;
	--cream: #f8f5ee;
	--trust: #f7f4eb;
	--white: #fefffa;
	--footer: #0d262b;
	--muted: #5d6c6b;
	--line: #dddcd7;
	--shell: 1360px;
	--font-body: Inter, "Helvetica Neue", Arial, sans-serif;
	--font-heading: Lato, Inter, "Helvetica Neue", Arial, sans-serif;
	--font-display: "Myriad Pro", Myriad, Lato, Inter, "Helvetica Neue", Arial, sans-serif;
	--font-accent: Montserrat, Inter, "Helvetica Neue", Arial, sans-serif;
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--header);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.48;
	-webkit-font-smoothing: antialiased;
}

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

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

p {
	margin: 0 0 1rem;
}

h1,
h2,
h3 {
	margin: 0 0 0.7rem;
	color: var(--ink);
	font-family: var(--font-heading);
	font-weight: 700;
	letter-spacing: -0.04em;
	line-height: 1.08;
}

h2 {
	font-size: clamp(33px, 2.55vw, 48px);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.site-shell {
	width: min(70.4%, var(--shell));
	margin: 0 auto;
}

.section {
	padding: clamp(48px, 4.4vw, 88px) 0;
}

.section-small {
	padding: clamp(42px, 3.4vw, 68px) 0;
}

.centered {
	text-align: center;
}

.eyebrow {
	margin: 0 0 9px;
	color: var(--teal);
	font-size: clamp(10px, 0.7vw, 13px);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.section-intro {
	max-width: 980px;
	margin: 0 auto clamp(31px, 2.8vw, 48px);
	color: var(--muted);
	font-size: clamp(13px, 0.88vw, 17px);
	letter-spacing: 0.04em;
	text-align: center;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 24px;
	border-radius: 9px;
	background: var(--gold);
	color: var(--forest);
	font-size: 14px;
	font-weight: 700;
	transition: opacity 150ms ease;
}

.button::before {
	content: "";
	width: 18px;
	height: 18px;
	margin-right: 9px;
	background: url("assets/images/icons/phone.svg") center / contain no-repeat;
}

.button:hover,
.button:focus-visible,
.button:active {
	background: var(--mint-light);
	color: var(--forest);
	opacity: 1;
}

.button-small {
	min-height: clamp(44px, 2.75vw, 51px);
	padding: 0 clamp(25px, 1.62vw, 31px);
	border-radius: 25px;
	font-size: clamp(12px, 0.76vw, 14px);
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.button-small::before {
	display: none;
}

.sticky-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	box-shadow: 0 10px 24px rgba(12, 38, 43, 0.07);
}

body.admin-bar .sticky-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .sticky-header {
		top: 46px;
	}
}

.announcement {
	min-height: clamp(42px, 2.55vw, 48px);
	padding: clamp(12px, 0.72vw, 14px) 0 clamp(10px, 0.63vw, 12px);
	background: var(--teal);
	color: #fff;
	font-size: clamp(12px, 0.83vw, 15px);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-align: center;
}

.site-header {
	position: relative;
	background: var(--header);
}

.header-row {
	display: flex;
	align-items: center;
	gap: clamp(16px, 1.6vw, 29px);
	min-height: clamp(66px, 5vw, 94px);
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: clamp(11px, 0.72vw, 14px);
	margin-right: auto;
}

.brand-mark {
	width: auto;
	height: clamp(43px, 3.38vw, 64px);
	object-fit: contain;
}

.brand strong {
	display: block;
	font-family: Lato, Inter, "Helvetica Neue", Arial, sans-serif;
	font-weight: 700;
	font-size: clamp(16px, 1.03vw, 20px);
	letter-spacing: -0.03em;
}

.brand small {
	display: block;
	color: #77827e;
	font-size: clamp(8px, 0.59vw, 11px);
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.custom-logo-link img {
	width: auto;
	max-height: 62px;
}

.primary-nav ul {
	display: flex;
	align-items: center;
	gap: clamp(15px, 1.26vw, 24px);
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--forest);
	font-size: clamp(12px, 0.75vw, 14px);
	font-weight: 500;
}

.primary-nav a:hover,
.primary-nav a:focus-visible {
	color: var(--teal);
}

.header-call {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1.15;
	white-space: nowrap;
}

.header-call small {
	color: #7c8986;
	font-size: clamp(9px, 0.59vw, 11px);
}

.header-call a {
	color: var(--forest);
	font-size: clamp(17px, 1.1vw, 21px);
	font-weight: 700;
}

.header-phone::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-right: 5px;
	vertical-align: -4px;
	background: url("assets/images/icons/phone.svg") center / contain no-repeat;
}

.nav-toggle {
	display: none;
}

.mobile-hours {
	display: none;
	color: var(--forest);
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	text-align: right;
}

.hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(400px, 43.1vw, 820px);
	overflow: hidden;
}

.hero-image,
.hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(251, 250, 245, 0.18) 0%, rgba(251, 250, 245, 0.06) 38%, rgba(251, 250, 245, 0) 64%);
}

.hero-content {
	position: relative;
	z-index: 1;
	padding-left: min(4.1vw, 78px);
	color: #fff;
}

.hero-eyebrow {
	margin: 0 0 10px;
	color: #fff;
	font-size: clamp(12px, 0.98vw, 18px);
	font-weight: 500;
}

.hero h1 {
	max-width: min(46vw, 780px);
	margin-bottom: clamp(18px, 1.6vw, 29px);
	color: #fff;
	font-size: clamp(37px, 4.02vw, 76px);
	line-height: 1.08;
	text-shadow: 0 1px 4px rgba(19, 31, 30, 0.2);
}

.hero .button {
	min-height: clamp(56px, 3.8vw, 70px);
	padding: 0 clamp(24px, 2vw, 38px);
	font-size: clamp(18px, 1.25vw, 24px);
}

.trust-bar {
	background: var(--trust);
	border-bottom: 1px solid #ece9e0;
}

.trust-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 18px;
	padding: clamp(14px, 1.45vw, 28px) 0 clamp(19px, 1.85vw, 36px);
	text-align: center;
}

.trust-grid div {
	display: flex;
	flex-direction: column;
	align-items: center;
	color: var(--forest);
}

.trust-icon {
	order: 3;
	width: auto;
	height: clamp(35px, 3.15vw, 60px);
	margin-top: 9px;
	object-fit: contain;
}

.trust-grid strong {
	order: 1;
	font-size: clamp(12px, 0.78vw, 15px);
	font-weight: 400;
	line-height: 1.22;
}

.trust-grid span {
	order: 2;
	color: var(--muted);
	font-size: clamp(12px, 0.78vw, 15px);
	font-weight: 400;
	line-height: 1.22;
}

.about {
	background: var(--header);
}

.about-grid {
	display: grid;
	grid-template-columns: minmax(300px, 0.88fr) minmax(470px, 1.32fr);
	gap: clamp(22px, 2.5vw, 48px);
	align-items: center;
}

.about-photo {
	width: 100%;
	max-height: 585px;
	border-radius: 8px;
	object-fit: cover;
}

.about-content > p:not(.eyebrow) {
	max-width: 680px;
	color: var(--muted);
	font-size: clamp(15px, 0.96vw, 18px);
	line-height: 1.56;
}

.about-content h2 {
	font-size: clamp(35px, 2.75vw, 52px);
}

.conditions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 24px;
}

.conditions div {
	min-height: clamp(92px, 8.5vw, 132px);
	padding: 13px 13px 10px;
	border: 1px solid #ddddd8;
	background: #fff;
	text-align: center;
}

.conditions small {
	display: block;
	color: var(--forest);
	font-size: clamp(11px, 0.72vw, 14px);
	font-weight: 600;
	text-transform: uppercase;
}

.conditions strong {
	display: block;
	margin: 7px 0 3px;
	color: var(--mint);
	font-family: Lato, Inter, "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(25px, 1.85vw, 36px);
	font-style: italic;
	font-weight: 900;
}

.conditions span {
	display: block;
	color: var(--muted);
	font-size: clamp(10px, 0.68vw, 13px);
	line-height: 1.26;
}

.audiences {
	padding-top: clamp(30px, 2.25vw, 45px);
	padding-bottom: clamp(40px, 3vw, 60px);
	background: var(--cream);
	border-top: 1px solid #efede6;
}

.audience-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: clamp(16px, 2vw, 38px);
	margin-top: clamp(17px, 1.5vw, 29px);
	text-align: center;
}

.audience-grid > div {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.audience-icon {
	order: 2;
	width: auto;
	height: clamp(52px, 4.45vw, 78px);
	margin: 10px auto 15px;
	object-fit: contain;
}

.audience-grid strong {
	order: 1;
	display: block;
	min-height: 48px;
	color: var(--forest);
	font-size: clamp(12px, 0.77vw, 15px);
	font-weight: 600;
	line-height: 1.26;
	text-transform: uppercase;
}

.audience-grid p {
	order: 3;
	margin: 0;
	color: var(--muted);
	font-size: clamp(12px, 0.75vw, 14px);
	line-height: 1.38;
}

.benefits {
	padding-top: clamp(34px, 2.65vw, 52px);
	background: var(--white);
}

.benefits .section-intro {
	max-width: 1140px;
	margin-bottom: clamp(32px, 2.55vw, 48px);
}

.benefits .site-shell,
.pricing .site-shell {
	width: min(70.4%, 1110px);
}

.benefit-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(13px, 1.2vw, 19px);
}

.benefit-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: clamp(292px, 20vw, 345px);
	padding: clamp(19px, 1.55vw, 29px);
	background: var(--cream);
	text-align: center;
}

.benefit-icon {
	width: auto;
	height: clamp(54px, 4.9vw, 82px);
	margin-bottom: 15px;
	object-fit: contain;
}

.benefit-card h3 {
	color: var(--teal);
	font-size: clamp(15px, 0.96vw, 18px);
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.benefit-card p {
	flex: 1;
	margin-bottom: 12px;
	color: var(--ink);
	font-size: clamp(14px, 0.89vw, 17px);
	line-height: 1.35;
}

.read-more {
	padding: 10px 18px;
	border-radius: 7px;
	background: var(--forest);
	color: #fff;
	font-size: clamp(10px, 0.63vw, 12px);
	font-weight: 700;
	text-transform: uppercase;
}

.read-more:hover,
.read-more:focus-visible,
.read-more:active,
.sidebar-button--mint:hover,
.sidebar-button--mint:focus-visible,
.sidebar-button--mint:active,
.sidebar-shortcut:hover,
.sidebar-shortcut:focus-visible,
.sidebar-shortcut:active {
	background: var(--mint-light);
	color: var(--forest);
}

.package-arrow:hover,
.package-arrow:focus-visible,
.package-arrow:active {
	background: var(--mint-light);
	color: var(--forest);
}

.reviews {
	min-height: clamp(155px, 15vw, 265px);
	background: var(--header);
}

.reviews-plugin {
	margin-top: 22px;
}

.google-reviews-widget {
	margin: 0 auto;
}

.pricing {
	background: var(--cream);
}

.pricing .eyebrow {
	font-family: var(--font-body);
	font-weight: 500;
	letter-spacing: 0.2em;
}

.pricing h2 {
	font-family: var(--font-display);
	font-size: clamp(39px, 2.95vw, 54px);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 0.98;
}

.pricing .section-intro {
	font-family: var(--font-body);
	font-weight: 500;
	letter-spacing: 0.095em;
}

.package-slider {
	position: relative;
	margin-top: clamp(4px, 0.5vw, 10px);
	padding: 0;
}

.package-slider-controls {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-bottom: 14px;
}

.package-grid {
	display: flex;
	gap: clamp(13px, 1.2vw, 20px);
	overflow-x: auto;
	overflow-y: hidden;
	padding: 3px 2px 8px;
	scroll-behavior: smooth;
	scroll-padding: 2px;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.package-grid::-webkit-scrollbar {
	display: none;
}

.package-card {
	display: flex;
	flex-direction: column;
	flex: 0 0 calc((100% - (clamp(13px, 1.2vw, 20px) * 2)) / 3);
	padding: clamp(15px, 1.15vw, 21px);
	border: 1px solid #dddcd8;
	border-radius: 9px;
	background: #fff;
	scroll-snap-align: start;
}

.package-card.featured {
	border: 3px solid var(--forest);
}

.package-tag {
	margin: 0 0 10px;
	padding: 9px 14px;
	border-radius: 17px;
	background: var(--teal);
	color: #fff;
	font-family: var(--font-body);
	font-size: clamp(10px, 0.66vw, 12px);
	font-weight: 600;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.featured .package-tag {
	background: var(--forest);
	color: var(--gold);
}

.package-card--neutral .package-tag {
	background: #ece6d6;
	color: var(--forest);
}

.package-illustration {
	width: 100%;
	height: clamp(86px, 6.1vw, 116px);
	margin-bottom: 14px;
	border-radius: 7px;
	background: #e5efea;
	object-fit: contain;
	padding: clamp(12px, 1vw, 18px);
}

.package-label {
	margin: 0 0 2px;
	color: var(--gold);
	font-family: var(--font-display);
	font-size: clamp(10px, 0.68vw, 12px);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.package-card h3 {
	margin-bottom: 7px;
	font-family: var(--font-display);
	font-size: clamp(24px, 1.78vw, 32px);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.02;
}

.package-card > p:not(.package-tag):not(.package-label):not(.package-note) {
	min-height: 38px;
	margin-bottom: 12px;
	color: var(--muted);
	font-family: var(--font-body);
	font-size: clamp(13px, 0.86vw, 16px);
	line-height: 1.3;
}

.price {
	margin: 0 0 14px;
	padding: 14px 15px 12px;
	border-radius: 10px;
	background: #e5efea;
}

.price strong {
	color: var(--ink);
	font-family: var(--font-body);
	font-weight: 700;
	font-size: clamp(34px, 2.23vw, 42px);
	letter-spacing: -0.055em;
	line-height: 1;
}

.price del {
	margin-left: 8px;
	color: #90938e;
	font-family: var(--font-body);
	font-size: clamp(12px, 0.78vw, 14px);
}

.price span {
	display: block;
	color: var(--muted);
	font-family: var(--font-body);
	font-size: clamp(11px, 0.73vw, 13px);
}

.package-card ul {
	flex: 1;
	margin: 0 0 13px;
	padding: 0;
	list-style: none;
	color: var(--ink);
	font-family: var(--font-display);
	font-size: clamp(13px, 0.86vw, 16px);
	font-weight: 700;
	line-height: 1.28;
}

.package-card li {
	position: relative;
	padding: 3px 0 4px 20px;
}

.package-card li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	color: var(--forest);
	font-weight: 700;
}

.package-note {
	margin-bottom: 13px;
	padding: 10px 12px;
	border: 1px solid #e5e4de;
	border-radius: 9px;
	color: var(--muted);
	font-family: var(--font-body);
	font-size: clamp(10px, 0.67vw, 12px);
}

.package-card .button {
	width: 100%;
	min-height: 54px;
	border-radius: 8px;
	font-family: var(--font-display);
	font-size: clamp(21px, 1.42vw, 26px);
	font-weight: 600;
	letter-spacing: -0.015em;
}

.package-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: clamp(35px, 2.55vw, 46px);
	height: clamp(35px, 2.55vw, 46px);
	border: 0;
	border-radius: 50%;
	background: rgba(43, 77, 76, 0.92);
	color: #fff;
	box-shadow: 0 7px 16px rgba(43, 77, 76, 0.16);
	cursor: pointer;
	font-family: var(--font-body);
	font-size: clamp(18px, 1.25vw, 24px);
	font-weight: 600;
	line-height: 1;
	transition: opacity 150ms ease, transform 150ms ease;
}

.package-arrow:hover,
.package-arrow:focus-visible {
	transform: scale(1.04);
}

.package-arrow:disabled {
	cursor: default;
	opacity: 0.35;
}

.package-cta-note {
	min-height: 0 !important;
	margin: 9px 0 0 !important;
	color: var(--muted) !important;
	font-family: var(--font-body);
	font-size: clamp(11px, 0.72vw, 13px) !important;
	text-align: center;
}

.pricing-help {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 26px;
	margin-top: 24px;
	padding: 20px 27px;
	border-radius: 9px;
	background: var(--forest);
	color: #fff;
}

.pricing-help strong,
.pricing-help span {
	display: block;
}

.pricing-help strong {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: clamp(20px, 1.18vw, 23px);
}

.pricing-help span {
	color: #e0e8e3;
	font-family: var(--font-body);
	font-size: clamp(12px, 0.76vw, 15px);
}

.pricing-help .button {
	font-family: var(--font-display);
	font-size: clamp(18px, 1.05vw, 22px);
	font-weight: 600;
}

.steps {
	background: var(--white);
}

.steps-grid {
	--step-gap: clamp(22px, 2.2vw, 43px);
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: var(--step-gap);
	margin-top: clamp(24px, 2.2vw, 41px);
	text-align: center;
}

.step {
	position: relative;
}

.step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: calc(clamp(17px, 1.02vw, 20px) + 6px + clamp(53px, 4.45vw, 71px) - 2px);
	right: calc(-50% - var(--step-gap) + clamp(65px, 5vw, 83px));
	left: calc(50% + clamp(65px, 5vw, 83px));
	height: 4px;
	background-image:
		radial-gradient(circle, #b5bab7 0 2px, transparent 2.4px),
		radial-gradient(circle, #b5bab7 0 2px, transparent 2.4px),
		radial-gradient(circle, #b5bab7 0 2px, transparent 2.4px),
		radial-gradient(circle, #b5bab7 0 2px, transparent 2.4px),
		radial-gradient(circle, #b5bab7 0 2px, transparent 2.4px),
		radial-gradient(circle, #b5bab7 0 2px, transparent 2.4px);
	background-position: 0 50%, 20% 50%, 40% 50%, 60% 50%, 80% 50%, 100% 50%;
	background-repeat: no-repeat;
	background-size: 4px 4px;
}

.number {
	display: block;
	margin-bottom: 6px;
	color: var(--forest);
	font-size: clamp(17px, 1.02vw, 20px);
	font-weight: 700;
	line-height: 1;
}

.step-icon {
	position: relative;
	z-index: 1;
	width: clamp(106px, 8.9vw, 142px);
	height: clamp(106px, 8.9vw, 142px);
	margin: 0 auto 17px;
	border-radius: 50%;
	object-fit: cover;
}

.step p {
	margin: 0;
	color: var(--forest);
	max-width: 178px;
	margin: 0 auto;
	font-size: clamp(12px, 0.78vw, 15px);
	font-weight: 600;
	line-height: 1.32;
	text-transform: uppercase;
}

.contact {
	background: var(--header);
}

.contact-panel {
	display: grid;
	grid-template-columns: 0.94fr 0.75fr 1.34fr;
	gap: clamp(18px, 1.55vw, 30px);
	align-items: stretch;
	padding: clamp(24px, 2vw, 37px);
	border: 1px solid #e4e3de;
	border-radius: 9px;
	background: #fff;
	box-shadow: 0 8px 18px rgba(25, 40, 40, 0.05);
}

.contact-lead h2 {
	max-width: 295px;
	font-size: clamp(32px, 2.25vw, 44px);
}

.contact-lead > p:not(.eyebrow) {
	color: var(--muted);
	max-width: 302px;
	font-size: clamp(13px, 0.84vw, 16px);
}

.contact-button {
	margin-top: clamp(34px, 4.2vw, 76px);
	min-height: 60px;
	padding-left: 15px;
	font-size: clamp(18px, 1.2vw, 23px);
	background: var(--teal);
	color: #fff;
}

.contact-button::before {
	width: 38px;
	height: 38px;
	margin-right: 10px;
	border-radius: 50%;
	background-image: url("assets/images/icons/phone.svg");
	background-color: #fff;
	background-size: 22px;
}

.contact-details dl {
	display: grid;
	gap: 10px;
	margin: 20px 0 0;
}

.contact-details dl div {
	display: grid;
	grid-template-columns: 38px 1fr;
	column-gap: 10px;
	align-items: center;
	padding: 15px 14px;
	border: 1px solid #deddd7;
	border-radius: 5px;
	background: var(--cream);
}

.contact-details img {
	grid-row: span 2;
	width: 36px;
	height: 36px;
	padding: 8px;
	border-radius: 4px;
	background: #deeee7;
}

.contact-details dt {
	grid-column: 2;
	color: var(--teal);
	font-size: clamp(10px, 0.61vw, 12px);
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.contact-details dd {
	grid-column: 2;
	margin: 4px 0 0;
	color: var(--ink);
	font-size: clamp(13px, 0.82vw, 16px);
	font-weight: 700;
	line-height: 1.25;
}

.contact-map {
	overflow: hidden;
	border-radius: 5px;
}

.contact-map img {
	width: 100%;
	height: 100%;
	min-height: clamp(220px, 18vw, 340px);
	object-fit: cover;
}

.site-footer {
	padding-top: clamp(38px, 4vw, 72px);
	background: var(--footer);
	color: #c7d1cd;
}

.footer-grid {
	display: grid;
	grid-template-columns: minmax(260px, 1.25fr) 0.58fr 0.78fr minmax(260px, 1.18fr);
	gap: clamp(32px, 3.8vw, 72px);
	padding-bottom: clamp(42px, 4.8vw, 86px);
}

.footer-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 4px;
}

.footer-logo img {
	width: auto;
	height: 32px;
}

.footer-grid h2 {
	margin-bottom: 18px;
	color: #fff;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.25em;
	text-transform: uppercase;
}

.footer-grid a {
	display: block;
	margin-bottom: 7px;
	font-size: clamp(10px, 0.65vw, 12px);
}

.footer-grid p {
	color: #aeb9b5;
	font-size: clamp(10px, 0.65vw, 12px);
}

.footer-brand strong {
	color: #fff;
	font-family: Lato, Inter, "Helvetica Neue", Arial, sans-serif;
	font-weight: 700;
	font-size: 15px;
}

.footer-brand small {
	display: block;
	color: #a8b9b5;
	font-size: 9px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.footer-brand p {
	max-width: 390px;
	margin-top: 20px;
}

.footer-detail {
	display: flex !important;
	align-items: center;
	gap: 8px;
}

.footer-detail img {
	width: 14px;
	height: 14px;
	filter: brightness(0) invert(1);
	opacity: 0.72;
}

.footer-detail--address span {
	max-width: 100%;
}

.footer-socials {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.footer-socials a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
}

.footer-socials a:hover,
.footer-socials a:focus-visible {
	background: var(--gold);
	color: var(--forest);
}

.footer-socials svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.footer-documents a {
	position: relative;
	padding-left: 24px;
	color: #c7d1cd;
	font-size: clamp(11px, 0.76vw, 14px);
	line-height: 1.35;
}

.footer-documents a::before {
	content: "\1F4CC";
	position: absolute;
	left: 0;
	top: 0;
	filter: grayscale(1);
	opacity: 0.72;
}

.footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.09);
	color: #8b9e9a;
	font-size: 9px;
}

.footer-bottom-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: flex-end;
}

.footer-consent-button {
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.footer-consent-button:hover,
.footer-consent-button:focus-visible {
	color: #fff;
}

.cookie-floating-button {
	position: fixed;
	left: 18px;
	bottom: 18px;
	z-index: 1190;
	min-height: 42px;
	padding: 0 16px;
	border: 0;
	border-radius: 22px;
	background: var(--forest);
	color: #fff;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	box-shadow: 0 12px 28px rgba(12, 38, 43, 0.22);
	cursor: pointer;
}

.cookie-floating-button:hover,
.cookie-floating-button:focus-visible {
	background: var(--mint-light);
	color: var(--forest);
}

.cookie-consent {
	position: fixed;
	right: 18px;
	bottom: 18px;
	left: 18px;
	z-index: 1200;
	display: none;
	pointer-events: none;
}

.cookie-consent.is-visible {
	display: block;
}

.cookie-consent__panel {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 18px 24px;
	align-items: end;
	max-width: 1040px;
	margin: 0 auto;
	padding: clamp(18px, 1.65vw, 28px);
	border: 1px solid rgba(43, 77, 76, 0.16);
	border-radius: 18px;
	background: rgba(251, 250, 245, 0.98);
	box-shadow: 0 18px 50px rgba(12, 38, 43, 0.18);
	pointer-events: auto;
}

.cookie-consent__eyebrow {
	margin-bottom: 6px;
	color: var(--teal);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.cookie-consent h2 {
	margin-bottom: 8px;
	font-size: clamp(24px, 1.75vw, 34px);
	letter-spacing: -0.035em;
}

.cookie-consent p {
	max-width: 720px;
	margin-bottom: 8px;
	color: var(--muted);
	font-size: 14px;
	line-height: 1.5;
}

.cookie-consent a {
	color: var(--forest);
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cookie-consent__settings {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.cookie-consent__settings[hidden] {
	display: none;
}

.cookie-consent__settings label {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 10px;
	align-items: flex-start;
	padding: 13px;
	border-radius: 12px;
	background: #fff;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.35;
}

.cookie-consent__settings input {
	margin-top: 3px;
	accent-color: var(--teal);
}

.cookie-consent__settings strong {
	display: block;
	margin-bottom: 3px;
	color: var(--forest);
	font-size: 12px;
	text-transform: uppercase;
}

.cookie-consent__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	justify-content: flex-end;
	min-width: 340px;
}

.cookie-button {
	min-height: 43px;
	padding: 0 18px;
	border: 0;
	border-radius: 10px;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	cursor: pointer;
}

.cookie-button--ghost {
	background: #fff;
	color: var(--forest);
	box-shadow: inset 0 0 0 1px #dddcd8;
}

.cookie-button--mint {
	background: var(--mint-light);
	color: var(--forest);
}

.cookie-button--gold {
	background: var(--gold);
	color: var(--forest);
}

.cookie-button:hover,
.cookie-button:focus-visible {
	background: var(--mint-light);
	color: var(--forest);
}

.content-page {
	min-height: 50vh;
	padding: 64px 0;
}

.content-page article {
	max-width: 980px;
	margin: 0 auto;
}

.content-page .pricing--shortcode {
	width: 100vw;
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
}

.content-page .pricing--shortcode .site-shell {
	width: min(70.4%, 1110px);
}

.pdf-embed {
	margin-top: 28px;
}

.pdf-embed iframe {
	display: block;
	width: 100%;
	height: min(78vh, 860px);
	min-height: 620px;
	border: 1px solid #e1dfd8;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(12, 38, 43, 0.05);
}

.pdf-embed p {
	margin-top: 16px;
}

.blog-page,
.blog-single {
	background: var(--header);
}

.blog-hero {
	background: var(--cream);
	border-bottom: 1px solid #ece9e0;
}

.blog-hero h1,
.single-post-header h1 {
	font-family: var(--font-display);
	font-size: clamp(42px, 3.2vw, 62px);
	font-weight: 600;
	letter-spacing: -0.035em;
}

.blog-list {
	background: var(--header);
}

.blog-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(16px, 1.45vw, 26px);
}

.blog-card,
.single-post-card,
.blog-empty {
	border: 1px solid #e1dfd8;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(12, 38, 43, 0.05);
}

.blog-card {
	overflow: hidden;
}

.blog-card-media,
.single-post-media {
	display: block;
	background: #e5efea;
}

.blog-card-media img,
.single-post-media img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

.blog-card-media img {
	aspect-ratio: 16 / 10;
}

.blog-card-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 10;
	color: var(--forest);
	font-family: var(--font-display);
	font-size: clamp(28px, 2vw, 42px);
	font-weight: 700;
}

.blog-card-body {
	padding: clamp(18px, 1.5vw, 28px);
}

.blog-meta {
	margin: 0 0 10px;
	color: var(--teal);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.blog-card h2 {
	margin-bottom: 10px;
	font-family: var(--font-display);
	font-size: clamp(24px, 1.7vw, 32px);
	font-weight: 700;
}

.blog-excerpt {
	color: var(--muted);
	font-size: clamp(14px, 0.9vw, 16px);
	line-height: 1.55;
}

.single-post-card {
	margin-top: clamp(42px, 4vw, 76px);
	margin-bottom: clamp(42px, 4vw, 76px);
	overflow: hidden;
}

.single-post-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
	gap: clamp(22px, 2.4vw, 42px);
	align-items: start;
}

.single-post-header,
.single-post-content,
.single-post-footer {
	padding: clamp(24px, 2.4vw, 45px);
}

.single-post-header {
	padding-bottom: 18px;
	background: var(--cream);
}

.single-post-media img {
	width: 100%;
	max-height: 560px;
	object-fit: cover;
	aspect-ratio: 16 / 8.5;
}

.single-post-content {
	color: var(--ink);
	font-size: clamp(17px, 1.05vw, 20px);
	line-height: 1.68;
}

.single-post-content h2,
.single-post-content h3 {
	margin-top: 1.6em;
	font-family: var(--font-display);
}

.single-post-content a {
	color: var(--teal);
	font-weight: 700;
}

.single-post-content img,
.single-post-content video,
.single-post-content iframe {
	max-width: 100%;
	border-radius: 10px;
}

.single-post-content video,
.single-post-content iframe {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--forest);
}

.wp-block-video,
.wp-block-embed {
	margin: 1.8em 0;
}

.single-post-sidebar {
	position: sticky;
	top: 128px;
	margin-top: clamp(42px, 4vw, 76px);
}

.sidebar-box {
	margin-bottom: 16px;
	padding: 22px;
	border: 1px solid #e1dfd8;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(12, 38, 43, 0.04);
}

.sidebar-box--accent {
	background: var(--forest);
	color: #fff;
}

.sidebar-box h2 {
	margin-bottom: 14px;
	font-size: 21px;
	letter-spacing: -0.03em;
}

.sidebar-box--accent h2,
.sidebar-box--accent p {
	color: #fff;
}

.sidebar-list {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sidebar-shortcut {
	display: block;
	color: var(--forest);
	font-weight: 700;
	line-height: 1.35;
}

.sidebar-shortcut {
	margin-top: 10px;
	padding: 12px 14px;
	border-radius: 8px;
	background: var(--cream);
}

.sidebar-list li {
	padding: 14px 0;
	border-top: 1px solid #e5e4de;
}

.sidebar-list li:first-child {
	padding-top: 0;
	border-top: 0;
}

.sidebar-post {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 13px;
	align-items: center;
	color: var(--forest);
}

.sidebar-post-thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	width: 72px;
	height: 58px;
	border-radius: 6px;
	background: #e5efea;
	color: var(--forest);
	font-size: 11px;
	font-weight: 700;
	text-align: center;
}

.sidebar-post-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sidebar-post-text strong {
	display: block;
	font-size: 13px;
	line-height: 1.25;
}

.sidebar-post-text small {
	display: block;
	margin-top: 6px;
	color: #9ba4a0;
	font-size: 11px;
	font-weight: 500;
}

.sidebar-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	margin-top: 12px;
	padding: 0 18px;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.sidebar-button--mint {
	background: #dceee7;
	color: var(--forest);
}

.sidebar-button--gold {
	width: 100%;
	background: var(--gold);
	color: var(--forest);
	font-size: 15px;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
}

.sidebar-button--gold:hover,
.sidebar-button--gold:focus-visible,
.sidebar-button--gold:active,
.package-card .button:hover,
.package-card .button:focus-visible,
.package-card .button:active,
.pricing-help .button:hover,
.pricing-help .button:focus-visible,
.pricing-help .button:active {
	background: var(--mint-light);
	color: var(--forest);
}

.blog-empty {
	padding: clamp(28px, 2.5vw, 48px);
	text-align: center;
}

.navigation.pagination {
	margin-top: 32px;
	text-align: center;
}

.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	margin: 0 3px;
	border-radius: 18px;
	color: var(--forest);
	font-weight: 700;
}

.navigation.pagination .current {
	background: var(--forest);
	color: #fff;
}

@media (max-width: 1050px) {
	.site-shell,
	.benefits .site-shell,
	.pricing .site-shell {
		width: min(calc(100% - 38px), 760px);
	}

	.header-call,
	.header-row > .button {
		display: none;
	}

	.nav-toggle {
		display: block;
		order: 4;
		width: 42px;
		height: 42px;
		padding: 9px;
		border: 0;
		background: transparent;
	}

	.nav-toggle span:not(.screen-reader-text) {
		display: block;
		height: 2px;
		margin: 6px 0;
		background: var(--forest);
	}

	.primary-nav {
		position: absolute;
		top: 100%;
		right: 19px;
		left: 19px;
		display: none;
		padding: 9px 18px;
		background: #fff;
		box-shadow: 0 8px 20px rgba(0, 0, 0, 0.09);
	}

	.primary-nav.is-open {
		display: block;
	}

	.primary-nav ul {
		display: block;
		font-size: 14px;
	}

	.primary-nav a {
		display: block;
		padding: 13px 4px;
		border-bottom: 1px solid #ebeae5;
	}

	.hero-content {
		padding-left: 0;
	}

	.about-grid {
		grid-template-columns: minmax(230px, 0.75fr) 1fr;
	}

	.benefit-grid,
	.package-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.package-card {
		flex-basis: calc((100% - clamp(13px, 1.2vw, 20px)) / 2);
	}

	.contact-panel {
		grid-template-columns: 1fr 1fr;
	}

	.contact-map {
		grid-column: span 2;
	}
}

@media (max-width: 680px) {
	body {
		font-size: 14px;
	}

	.announcement {
		font-size: 9px;
		letter-spacing: 0.06em;
	}

	.header-row {
		gap: 8px;
		min-height: 56px;
	}

	.brand {
		gap: 7px;
		min-width: 0;
	}

	.brand-mark {
		height: 39px;
	}

	.brand strong {
		font-size: 17px;
	}

	.brand small {
		font-size: 7px;
		letter-spacing: 0.16em;
	}

	.mobile-hours {
		display: block;
		max-width: none;
		margin-left: auto;
		white-space: nowrap;
	}

	.nav-toggle {
		width: 34px;
		height: 38px;
		padding: 7px;
	}

	.hero {
		align-items: end;
		min-height: 470px;
	}

	.hero::after {
		background: linear-gradient(0deg, rgba(19, 32, 30, 0.5), transparent 65%);
	}

	.hero-content {
		padding-bottom: 34px;
	}

	.hero h1 {
		max-width: none;
		font-size: 35px;
	}

	.trust-grid,
	.audience-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.trust-grid {
		grid-template-columns: repeat(6, 1fr);
		gap: 16px 10px;
	}

	.trust-grid div {
		grid-column: span 2;
	}

	.trust-grid div:nth-child(4) {
		grid-column: 2 / span 2;
	}

	.trust-grid div:nth-child(5) {
		grid-column: 4 / span 2;
	}

	.trust-icon {
		height: 52px;
	}

	.trust-grid strong,
	.trust-grid span {
		font-size: 13px;
	}

	.about-grid,
	.package-grid,
	.blog-grid,
	.contact-panel {
		grid-template-columns: 1fr;
	}

	.about-content h2 {
		font-size: 31px;
	}

	.about-content > p:not(.eyebrow) {
		font-size: 15px;
	}

	.conditions small {
		font-size: 10px;
	}

	.conditions strong {
		font-size: 24px;
	}

	.audiences .eyebrow,
	.about .eyebrow {
		font-size: 12px;
	}

	.audience-grid strong {
		min-height: 38px;
		font-size: 12px;
	}

	.audience-grid p {
		font-size: 12px;
	}

	.benefit-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.benefit-card {
		min-height: 0;
		padding: 18px 10px;
	}

	.benefit-icon {
		height: 48px;
		margin-bottom: 10px;
	}

	.benefit-card h3 {
		font-size: 12px;
		line-height: 1.2;
	}

	.benefit-card p {
		font-size: 12px;
		line-height: 1.25;
	}

	.benefit-card .read-more {
		padding: 8px 11px;
		font-size: 9px;
	}

	.benefit-card:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		justify-self: center;
		width: calc((100% - 10px) / 2);
	}

	.blog-hero h1,
	.single-post-header h1 {
		font-size: 36px;
	}

	.pdf-embed iframe {
		height: 72vh;
		min-height: 520px;
	}

	.package-slider {
		padding: 0;
	}

	.package-slider-controls {
		justify-content: center;
		margin: -4px 0 12px;
	}

	.package-card {
		flex-basis: 100%;
	}

	.package-arrow:hover,
	.package-arrow:focus-visible {
		transform: scale(1.04);
	}

	.package-illustration {
		height: 94px;
	}

	.about-photo {
		max-width: 350px;
		margin: auto;
	}

	.conditions {
		gap: 8px;
	}

	.audience-grid > div:last-child {
		grid-column: span 2;
	}

	.step:not(:last-child)::after {
		display: none;
	}

	.steps-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.step:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		justify-self: center;
		width: calc((100% - var(--step-gap)) / 2);
	}

	.pricing-help .button {
		min-width: 126px;
		white-space: nowrap;
	}

	.contact-button {
		margin-top: 12px;
	}

	.contact-map {
		grid-column: auto;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 28px 20px;
	}

	.footer-brand,
	.footer-documents {
		grid-column: 1 / -1;
	}

	.footer-grid h2 {
		margin-bottom: 12px;
	}

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

	.footer-bottom {
		display: grid;
		gap: 8px;
	}

	.footer-bottom-links {
		justify-content: flex-start;
	}

	.cookie-consent {
		right: 10px;
		bottom: 10px;
		left: 10px;
	}

	.cookie-floating-button {
		left: 10px;
		bottom: 10px;
		min-height: 38px;
		padding: 0 13px;
		font-size: 10px;
	}

	.cookie-consent__panel {
		display: block;
		max-height: calc(100vh - 20px);
		overflow: auto;
		padding: 16px;
		border-radius: 14px;
	}

	.cookie-consent p {
		font-size: 12px;
	}

	.cookie-consent__settings {
		grid-template-columns: 1fr;
		margin-top: 12px;
	}

	.cookie-consent__actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
		min-width: 0;
		margin-top: 14px;
	}

	.cookie-button {
		min-height: 40px;
		padding: 0 12px;
		font-size: 10px;
	}

	.single-post-layout {
		grid-template-columns: 1fr;
	}

	.single-post-sidebar {
		position: static;
		margin-top: 0;
	}
}
