:root {
	--color-ink: #17212b;
	--color-muted: #5d6875;
	--color-bg: #fffdf8;
	--color-paper: #ffffff;
	--color-warm: #f3eee4;
	--color-deep: #162638;
	--color-deep-2: #0f1a27;
	--color-accent: #d7a83f;
	--color-accent-2: #557da5;
	--color-border: rgba(23, 33, 43, 0.14);
	--shadow-soft: 0 18px 50px rgba(18, 27, 38, 0.11);
	--radius: 8px;
	--container: 1180px;
	--site-hero-height: 480px;
	--site-hero-height-mobile: 340px;
	--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-ink);
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.55;
}

img,
video,
iframe {
	max-width: 100%;
}

a {
	color: inherit;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--color-accent);
	outline-offset: 3px;
}

.screen-reader-text,
.skip-link {
	position: absolute;
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	width: 1px;
}

.skip-link:focus {
	clip: auto;
	height: auto;
	left: 1rem;
	padding: 0.75rem 1rem;
	top: 1rem;
	width: auto;
	z-index: 999;
	background: var(--color-paper);
}

.container {
	width: min(calc(100% - 40px), var(--container));
	margin-inline: auto;
}

.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	color: #fff;
	background: linear-gradient(to bottom, rgba(15, 26, 39, 0.82), rgba(15, 26, 39, 0));
	transition: background 180ms ease, box-shadow 180ms ease;
}

.site-header.is-scrolled {
	background: rgba(255, 253, 248, 0.97);
	color: var(--color-ink);
	box-shadow: 0 8px 26px rgba(15, 26, 39, 0.1);
	backdrop-filter: blur(14px);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 76px;
	gap: 24px;
}

.brand {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	gap: 10px;
	font-weight: 800;
	text-decoration: none;
}

.brand-mark {
	display: grid;
	flex: 0 0 46px;
	place-items: center;
	width: 46px;
	height: 46px;
	aspect-ratio: 1;
	border: 2px solid currentColor;
	border-radius: 50%;
	letter-spacing: 0;
	font-size: 0.85rem;
}

.brand-text {
	font-size: 1.05rem;
	white-space: nowrap;
}

.primary-nav,
.menu {
	display: flex;
	align-items: center;
	gap: 14px;
}

.menu {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.93rem;
}

.menu li {
	position: relative;
}

.menu a {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	white-space: nowrap;
	text-decoration: none;
}

.menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	border-radius: 999px;
	background: currentColor;
	opacity: 0;
	transform: scaleX(0.72);
	transform-origin: left center;
	transition: opacity 150ms ease, transform 150ms ease;
}

.menu > li:hover > a::after,
.menu > li:focus-within > a::after {
	opacity: 1;
	transform: scaleX(1);
}

.menu li:has(.sub-menu)::after {
	content: "";
	position: absolute;
	left: -18px;
	right: -18px;
	top: 100%;
	height: 18px;
}

.menu .sub-menu {
	position: absolute;
	top: calc(100% + 16px);
	left: 50%;
	z-index: 20;
	display: grid;
	min-width: 0;
	width: max-content;
	max-width: min(320px, calc(100vw - 32px));
	gap: 0;
	margin: 0;
	padding: 12px 14px;
	list-style: none;
	border: 0;
	border-radius: 10px;
	background: #fff;
	color: #05070b;
	box-shadow: 0 24px 70px rgba(5, 9, 16, 0.22);
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -6px);
	transition: opacity 150ms ease, transform 150ms ease;
}

.menu .sub-menu--tall {
	max-width: min(360px, calc(100vw - 32px));
}

.menu li:hover > .sub-menu,
.menu li:focus-within > .sub-menu {
	opacity: 1;
	pointer-events: auto;
	transform: translate(-50%, 0);
}

.site-header.is-scrolled .menu .sub-menu {
	background: #fff;
	color: var(--color-ink);
}

.menu .sub-menu a {
	display: flex;
	width: 100%;
	min-height: 40px;
	padding: 7px 12px;
	border-radius: 8px;
	color: inherit;
	font-size: clamp(1rem, 1.12vw, 1.18rem);
	font-weight: 900;
	line-height: 1.16;
	white-space: nowrap;
	transition: background 140ms ease, color 140ms ease, transform 140ms ease;
}

.menu .sub-menu a:hover,
.menu .sub-menu a:focus-visible {
	background: rgba(215, 168, 63, 0.14);
	color: var(--color-deep);
	transform: translateX(4px);
}

.social-links {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.social-link {
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 0.72rem;
	font-weight: 850;
	text-decoration: none;
	letter-spacing: 0;
	opacity: 0.92;
}

.social-link svg {
	display: block;
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.social-link:hover {
	background: currentColor;
	color: var(--color-deep);
	opacity: 1;
}

.social-link--youtube:hover,
.site-header.is-scrolled .social-link--youtube:hover {
	border-color: #ff0033;
	background: #ff0033;
	color: #fff;
}

.social-link--instagram:hover,
.site-header.is-scrolled .social-link--instagram:hover {
	border-color: #c13584;
	background: #c13584;
	color: #fff;
}

.social-link--facebook:hover,
.site-header.is-scrolled .social-link--facebook:hover {
	border-color: #1877f2;
	background: #1877f2;
	color: #fff;
}

.language-switch {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	border: 1px solid currentColor;
	border-radius: 999px;
	padding: 4px 9px;
	font-size: 0.82rem;
}

.language-switch span:last-child {
	opacity: 0.62;
}

.menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	border: 0;
	background: transparent;
	color: inherit;
	padding: 8px;
}

.menu-toggle span:not(.screen-reader-text) {
	display: block;
	width: 24px;
	height: 2px;
	margin: 5px auto;
	background: currentColor;
}

.button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 11px 18px;
	border: 1px solid transparent;
	border-radius: var(--radius);
	background: var(--color-deep);
	color: #fff;
	font-weight: 750;
	text-decoration: none;
	line-height: 1.2;
}

.button--small {
	min-height: 40px;
	padding: 9px 14px;
	font-size: 0.9rem;
}

.button--light {
	background: #fff;
	color: var(--color-deep);
}

.button--ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.72);
	color: #fff;
}

.button-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 22px;
}

.hero {
	position: relative;
	min-height: var(--site-hero-height);
	display: grid;
	align-items: center;
	overflow: hidden;
	background: var(--color-deep);
	color: #fff;
}

.hero__slider,
.hero__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.hero__slider {
	overflow: hidden;
}

.hero__track {
	display: flex;
	width: 100%;
	height: 100%;
	transform: translateX(0);
	transition: transform 760ms cubic-bezier(0.22, 0.61, 0.36, 1);
	will-change: transform;
}

.hero__media {
	display: block;
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.hero > .hero__media {
	position: absolute;
	inset: 0;
}

.hero__overlay {
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(15, 26, 39, 0.62), rgba(15, 26, 39, 0.76)), radial-gradient(circle at center, rgba(15, 26, 39, 0.4), rgba(15, 26, 39, 0.72));
}

.hero__content {
	position: relative;
	z-index: 2;
	max-width: 880px;
	padding: 96px 0 46px;
	text-align: center;
}

.hero__arrow {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 50%;
	background: rgba(15, 26, 39, 0.28);
	color: #fff;
	cursor: pointer;
	opacity: 0.7;
	transform: translateY(-50%);
	transition: background 160ms ease, opacity 160ms ease, transform 160ms ease;
}

.hero__arrow:hover,
.hero__arrow:focus-visible {
	background: rgba(255, 255, 255, 0.18);
	opacity: 1;
	transform: translateY(-50%) scale(1.05);
}

.hero__arrow::before {
	content: "";
	display: block;
	width: 11px;
	height: 11px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
}

.hero__arrow--prev {
	left: clamp(14px, 3vw, 38px);
}

.hero__arrow--prev::before {
	transform: rotate(225deg);
	margin-left: 4px;
}

.hero__arrow--next {
	right: clamp(14px, 3vw, 38px);
}

.hero__arrow--next::before {
	transform: rotate(45deg);
	margin-right: 4px;
}

.hero__dots {
	position: absolute;
	left: 50%;
	bottom: 14px;
	z-index: 3;
	display: flex;
	gap: 9px;
	transform: translateX(-50%);
}

.hero__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
	opacity: 0.75;
	transition: background 160ms ease, opacity 160ms ease, transform 160ms ease;
}

.hero__dot:hover,
.hero__dot:focus-visible,
.hero__dot.is-active {
	background: #fff;
	opacity: 1;
	transform: scale(1.2);
}

.eyebrow {
	margin: 0 0 14px;
	color: var(--color-accent);
	font-size: 0.96rem;
	font-weight: 850;
	letter-spacing: 0.06em;
	line-height: 1.35;
	text-transform: uppercase;
}

.hero .eyebrow {
	font-size: 0.9rem;
}

.hero h1 {
	max-width: 900px;
	margin: 0 auto;
	color: var(--color-accent);
	font-size: clamp(2.35rem, 5.2vw, 4.85rem);
	font-weight: 880;
	line-height: 1.02;
	letter-spacing: 0;
	text-transform: uppercase;
}

.hero__lead {
	margin: 18px auto 0;
	font-size: 1.45rem;
	font-weight: 750;
	text-transform: uppercase;
}

.hero__content > p:not(.eyebrow):not(.hero__lead) {
	max-width: 620px;
	margin: 10px auto 0;
	font-size: 1.05rem;
	text-transform: uppercase;
}

.section {
	padding: 36px 0;
	background: var(--color-bg);
}

.section--warm {
	background: var(--color-warm);
}

.section--dark {
	background: var(--color-deep);
	color: #fff;
}

.section--dark .card {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.14);
}

.split {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 30px;
	align-items: start;
}

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

.photo-panel {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius);
	min-height: 280px;
	box-shadow: var(--shadow-soft);
	background: var(--color-deep);
}

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

.photo-panel img {
	position: absolute;
	inset: 0;
}

.photo-panel--tall {
	min-height: 340px;
}

.visual-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 20px;
	align-items: stretch;
}

.visual-grid .photo-panel:first-child {
	grid-row: span 2;
	min-height: 420px;
}

.visual-grid .photo-panel:not(:first-child) {
	min-height: 200px;
}

.visual-grid + .card-grid {
	margin-top: 20px;
}

h1,
h2,
h3 {
	line-height: 1.08;
	letter-spacing: 0;
}

h2 {
	max-width: none;
	margin: 0 0 12px;
	color: var(--color-ink);
	font-size: 1.58rem;
	font-weight: 820;
	line-height: 1.32;
}

h3 {
	font-size: 1.28rem;
}

.section .eyebrow {
	margin-bottom: 8px;
	color: var(--color-accent);
	font-size: 1.78rem;
	line-height: 1.06;
}

.section--dark h2 {
	color: #fff;
}

.prose p,
.prose li {
	color: var(--color-muted);
}

.prose p {
	margin: 0 0 12px;
}

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

.section-heading > p:not(.eyebrow),
.split > div > p,
.contact-grid p {
	margin: 0 0 10px;
}

.section--dark .prose p,
.section--dark .prose li {
	color: rgba(255, 255, 255, 0.78);
}

.section--dark .eyebrow,
.section--dark .prose .eyebrow {
	color: var(--color-accent);
}

.prose--page {
	max-width: 860px;
}

.prose--page:has(.new-here-page) {
	max-width: var(--container);
}

.prose--page h2 {
	margin-top: 2.2em;
	font-size: 2.1rem;
}

.new-here-page {
	display: grid;
	gap: 34px;
}

.new-here-page h2,
.new-here-page h3,
.new-here-page p {
	margin-top: 0;
}

.new-here-intro,
.new-here-flow {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	gap: 30px;
	align-items: center;
}

.new-here-intro h2,
.new-here-block h2,
.new-here-flow h2 {
	margin-bottom: 12px;
	font-size: clamp(2rem, 4vw, 3.45rem);
	line-height: 1.04;
}

.new-here-intro .photo-panel {
	min-height: 390px;
}

.button-row--left {
	justify-content: flex-start;
}

.button--outline {
	background: transparent;
	border-color: var(--color-border);
	color: var(--color-deep);
}

.expect-grid,
.link-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.expect-card,
.link-card {
	padding: 20px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	background: var(--color-paper);
	box-shadow: 0 8px 30px rgba(18, 27, 38, 0.06);
}

.expect-card h3 {
	margin-bottom: 8px;
	color: var(--color-ink);
	font-size: 1.18rem;
}

.expect-card p {
	margin-bottom: 0;
	color: var(--color-muted);
}

.new-here-flow {
	align-items: start;
	padding: 28px;
	border-radius: var(--radius);
	background: var(--color-deep);
	color: #fff;
}

.new-here-flow .eyebrow {
	color: var(--color-accent);
}

.new-here-flow p {
	color: rgba(255, 255, 255, 0.78);
}

.flow-list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	counter-reset: flow;
	list-style: none;
}

.flow-list li {
	position: relative;
	padding: 16px 16px 16px 56px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--radius);
	background: rgba(255, 255, 255, 0.07);
	color: #fff;
}

.flow-list li::before {
	content: counter(flow);
	position: absolute;
	top: 16px;
	left: 16px;
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--color-accent);
	color: var(--color-deep);
	font-weight: 850;
	counter-increment: flow;
}

.flow-list strong,
.flow-list span {
	display: block;
}

.flow-list span {
	margin-top: 4px;
	color: rgba(255, 255, 255, 0.76);
}

.link-card {
	display: grid;
	gap: 8px;
	color: inherit;
	text-decoration: none;
}

.link-card span {
	color: var(--color-ink);
	font-size: 1.16rem;
	font-weight: 850;
}

.link-card small {
	color: var(--color-muted);
	font-size: 0.95rem;
	line-height: 1.45;
}

.link-card:hover {
	border-color: rgba(215, 168, 63, 0.62);
}

.about-calvary-page {
	background: var(--color-bg);
	color: var(--color-ink);
}

.about-calvary-page h1,
.about-calvary-page h2,
.about-calvary-page h3,
.about-calvary-page p,
.about-calvary-page figure {
	margin-top: 0;
}

.about-calvary-hero {
	position: relative;
	display: grid;
	min-height: var(--site-hero-height);
	align-content: center;
	align-items: center;
	overflow: hidden;
	background:
		linear-gradient(rgba(15, 26, 39, 0.34), rgba(15, 26, 39, 0.48)),
		url("/wp-content/themes/crc-helsinki/assets/images/site/hero-community.webp") center / cover;
	color: #fff;
}

.about-calvary-hero__content {
	position: relative;
	z-index: 1;
	padding: 76px 0;
	text-align: left;
}

.about-kicker {
	margin-bottom: 8px;
	font-size: 0.95rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.about-calvary-hero h1 {
	max-width: 720px;
	margin: 0;
	color: #fff;
	font-size: clamp(4.2rem, 7.5vw, 6rem);
	font-weight: 820;
	line-height: 0.95;
	letter-spacing: 0;
	text-transform: uppercase;
}

.about-belong {
	padding: 44px 0;
	background:
		linear-gradient(90deg, #1e66d2 0%, #0c4fb4 48%, #052a5f 100%);
	color: #fff;
	text-align: center;
}

.about-belong__inner {
	max-width: 820px;
}

.about-belong h2 {
	max-width: 780px;
	margin-inline: auto;
	margin-bottom: 12px;
	color: #fff;
	font-size: clamp(1.95rem, 3.4vw, 3rem);
	line-height: 1.03;
}

.about-belong p {
	margin-bottom: 0;
	color: rgba(255, 255, 255, 0.86);
}

.about-mission {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 0.86fr);
	gap: 54px;
	align-items: center;
	padding-block: 58px;
}

.about-mission .eyebrow,
.about-expect .eyebrow {
	margin-bottom: 10px;
	color: var(--color-muted);
	font-size: 0.76rem;
	letter-spacing: 0.32em;
}

.about-mission .eyebrow--titlecase {
	margin-bottom: 10px;
	color: var(--color-accent);
	font-size: clamp(1.08rem, 1.25vw, 1.32rem);
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.about-mission__title {
	margin-bottom: 28px;
	color: var(--color-accent);
	font-size: clamp(2.6rem, 3.55vw, 4.35rem);
	letter-spacing: 0.02em;
	line-height: 0.94;
	text-transform: uppercase;
	white-space: nowrap;
}

.about-mission p.about-mission__label {
	max-width: 760px;
	margin: 24px 0 8px;
	color: var(--color-accent);
	font-size: clamp(1.28rem, 1.65vw, 1.65rem);
	font-weight: 900;
	letter-spacing: 0.04em;
	line-height: 1.18;
	text-transform: uppercase;
}

.about-mission__title + p.about-mission__label {
	margin-top: 0;
}

.about-mission h3 {
	max-width: 760px;
	margin-bottom: 14px;
	color: var(--color-ink);
	font-size: clamp(1.28rem, 1.65vw, 1.65rem);
	letter-spacing: 0.02em;
	line-height: 1.25;
	text-transform: uppercase;
}

.about-mission p {
	max-width: 720px;
	color: var(--color-muted);
	font-size: 1.03rem;
	line-height: 1.65;
}

.about-mission__photo {
	overflow: hidden;
	border-radius: 0;
	background: var(--color-deep);
	height: clamp(390px, 36vw, 460px);
}

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

.about-mission__photo img {
	object-position: center 38%;
}

.about-mission__photo {
	min-height: 460px;
}

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

.about-feature {
	position: relative;
	display: grid;
	min-height: 390px;
	align-items: center;
	padding: clamp(28px, 5vw, 52px);
	overflow: hidden;
	color: #fff;
	background: var(--color-deep);
}

.about-feature > div {
	position: relative;
	z-index: 1;
	max-width: 650px;
}

.about-feature h2 {
	margin-bottom: 12px;
	color: inherit;
	font-size: clamp(2.1rem, 4.3vw, 4rem);
	line-height: 0.98;
}

.about-feature p {
	margin-bottom: 22px;
	color: rgba(255, 255, 255, 0.82);
}

.about-feature--image {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.about-feature--what {
	background-image: url("/wp-content/themes/crc-helsinki/assets/images/site/feature-what-we-do.jpg");
}

.about-feature--place {
	background-image: url("/wp-content/themes/crc-helsinki/assets/images/site/feature-find-place.jpg");
}

.about-feature--image::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(15, 26, 39, 0.62);
}

.about-feature--blue {
	background: #0649b9;
}

.about-feature--light {
	background: #fff;
	color: var(--color-ink);
}

.about-feature--light p {
	color: var(--color-muted);
}

.about-feature__button,
.about-feature__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 18px;
	border-radius: 0;
	background: #fff;
	color: #0649b9;
	font-weight: 850;
	text-decoration: none;
}

.about-feature__button--dark {
	background: #0649b9;
	color: #fff;
}

.about-feature__button--gold {
	background: var(--color-accent);
	color: #111827;
}

.about-feature__link {
	background: transparent;
	border-bottom: 2px solid currentColor;
	color: #fff;
	padding-inline: 0;
}

.about-expect {
	padding: 76px 0;
	background: #f2f2f2;
}

.about-expect__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
	gap: 64px;
	align-items: center;
}

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

.about-expect h2 {
	margin-bottom: 18px;
	font-size: clamp(2rem, 4vw, 3.2rem);
}

.about-expect__copy > p:not(.eyebrow) {
	max-width: 680px;
	margin-inline: auto;
	color: var(--color-muted);
}

.about-expect__items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 26px 0;
	text-align: left;
}

.about-expect__items div {
	padding: 18px;
	background: #fff;
	border: 1px solid var(--color-border);
}

.about-expect__items h3 {
	margin-bottom: 6px;
	font-size: 1.05rem;
}

.about-expect__items p {
	margin-bottom: 0;
	color: var(--color-muted);
	font-size: 0.96rem;
}

.about-social-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.about-social-row a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 118px;
	min-height: 42px;
	padding: 9px 15px;
	background: #0649b9;
	color: #fff;
	font-weight: 850;
	text-decoration: none;
}

.about-expect__photo {
	min-height: 520px;
	overflow: hidden;
	background: var(--color-deep);
}

.about-next {
	padding-block: 64px 78px;
}

.about-next h2 {
	margin-bottom: 22px;
	font-size: clamp(2rem, 4vw, 3.2rem);
	text-align: center;
}

.about-next__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}

.about-next__grid a {
	display: grid;
	gap: 8px;
	min-height: 150px;
	padding: 22px;
	border: 1px solid var(--color-border);
	background: #fff;
	color: inherit;
	text-decoration: none;
}

.about-next__grid span {
	font-size: 1.14rem;
	font-weight: 850;
}

.about-next__grid small {
	color: var(--color-muted);
	font-size: 0.95rem;
}

.about-visit {
	padding: 30px 0;
	background: #f2f2f2;
}

.about-visit__grid.container {
	width: 100%;
	max-width: none;
}

.about-visit__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	align-items: center;
	min-height: 0;
}

.about-visit__copy {
	display: grid;
	align-content: center;
	justify-items: start;
	padding: clamp(32px, 4.5vw, 54px);
	text-align: left;
}

.about-visit__copy h2,
.about-details h2,
.about-see-you h2,
.about-more h2 {
	margin-bottom: 20px;
	font-size: clamp(2.3rem, 4vw, 4.1rem);
	line-height: 0.98;
}

.about-visit__copy p {
	max-width: 620px;
	margin-inline: 0;
	color: var(--color-muted);
	font-size: 1.02rem;
}

.about-visit__copy p strong {
	color: var(--color-ink);
	font-size: 1.15rem;
}

.about-visit__photo {
	min-height: 360px;
	height: 100%;
	max-height: none;
	overflow: hidden;
}

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

.about-details {
	position: relative;
	scroll-margin-top: 76px;
	padding: clamp(64px, 6vw, 92px) 0 clamp(70px, 7vw, 106px);
	background:
		linear-gradient(rgba(3, 8, 15, 0.78), rgba(3, 8, 15, 0.9)),
		url("/wp-content/themes/crc-helsinki/assets/images/site/about-expect-dark.jpg") center / cover;
	color: #fff;
	text-align: center;
}

.about-details h2 {
	margin-bottom: clamp(38px, 4.8vw, 58px);
	color: #fff;
	font-size: clamp(2.1rem, 3.8vw, 3.2rem);
	line-height: 1.05;
}

.about-details__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: clamp(28px, 6vw, 72px);
	row-gap: clamp(34px, 4.6vw, 56px);
	align-items: start;
}

.about-details__grid article {
	display: grid;
	justify-items: center;
	min-height: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	text-align: center;
}

.about-detail-icon {
	display: block;
	width: 34px;
	height: 34px;
	margin-bottom: 20px;
	background: #fff;
	-webkit-mask: var(--detail-icon) center / contain no-repeat;
	mask: var(--detail-icon) center / contain no-repeat;
}

.about-detail-icon--shirt {
	--detail-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M8 3l4 2 4-2 5 4-3 5-2-1v10H8V11l-2 1-3-5 5-4z'/%3E%3C/svg%3E");
}

.about-detail-icon--car {
	--detail-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M6.2 6h11.6l2.1 5.2c1 .5 1.6 1.4 1.6 2.5V19h-3v-2h-13v2h-3v-5.3c0-1.1.6-2 1.6-2.5L6.2 6zm1.7 2-1.2 3h10.6l-1.2-3H7.9zM6.2 15a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm11.6 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z'/%3E%3C/svg%3E");
}

.about-detail-icon--coffee {
	--detail-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 7h12v7a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5V7zm14 2h1a3 3 0 0 1 0 6h-1v-2h1a1 1 0 0 0 0-2h-1V9zM3 20h16v2H3v-2zM8 2h2v4H8V2zm4 0h2v4h-2V2z'/%3E%3C/svg%3E");
}

.about-detail-icon--kids {
	--detail-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 2a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm-5 8h10v4h-3v8h-4v-8H7v-4z'/%3E%3C/svg%3E");
}

.about-detail-icon--book {
	--detail-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 4h7a4 4 0 0 1 4 4v12a4 4 0 0 0-4-3H4V4zm16 0h-4a6 6 0 0 1 1 3.3V20a4 4 0 0 1 3-1h0V4z'/%3E%3C/svg%3E");
}

.about-detail-icon--clock {
	--detail-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.about-detail-icon--home {
	--detail-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M3 11.2 12 4l9 7.2-1.9 2.3-1.1-.9V21h-5v-5h-2v5H6v-8.4l-1.1.9L3 11.2z'/%3E%3C/svg%3E");
}

.about-details__grid h3 {
	max-width: 360px;
	margin-bottom: 14px;
	color: #fff;
	font-size: clamp(1.85rem, 2.85vw, 2.58rem);
	line-height: 1.04;
}

.about-details__grid p {
	max-width: 430px;
	margin-bottom: 0;
	color: rgba(255, 255, 255, 0.88);
	font-size: clamp(1rem, 1.22vw, 1.14rem);
	line-height: 1.48;
}

.about-details__grid a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 190px;
	min-height: 58px;
	margin-top: 24px;
	padding: 12px 24px;
	border: 3px solid rgba(255, 255, 255, 0.92);
	color: #fff;
	font-weight: 850;
	text-decoration: none;
}

.about-details__grid a:hover {
	background: #fff;
	color: #06111c;
}

.about-details__grid article:nth-child(7) {
	grid-column: 1 / 2;
	margin-top: 14px;
}

.about-see-you {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	min-height: 560px;
	background: #0649b9;
	color: #fff;
}

.about-see-you__image {
	min-height: 520px;
	background:
		linear-gradient(rgba(15, 26, 39, 0.18), rgba(15, 26, 39, 0.28)),
		url("/wp-content/themes/crc-helsinki/assets/images/site/service-worship.webp") center / cover;
}

.about-see-you__copy {
	display: grid;
	align-content: center;
	justify-items: start;
	max-width: 680px;
	padding: clamp(44px, 6vw, 76px);
}

.about-see-you h2 {
	color: #fff;
}

.about-see-you p {
	max-width: 560px;
	margin-bottom: 24px;
	color: rgba(255, 255, 255, 0.86);
}

.about-see-you .about-feature__button--dark {
	background: #fff;
	color: #0649b9;
}

.about-see-you__more {
	width: min(100%, 520px);
	margin-top: 36px;
}

.about-see-you__more h3 {
	margin-bottom: 14px;
	color: #fff;
	font-size: 1.15rem;
}

.about-see-you__more > div {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid rgba(255, 255, 255, 0.64);
	border-left: 1px solid rgba(255, 255, 255, 0.64);
}

.about-see-you__more a {
	display: grid;
	min-height: 62px;
	align-items: center;
	padding: 13px 16px;
	border-right: 1px solid rgba(255, 255, 255, 0.64);
	border-bottom: 1px solid rgba(255, 255, 255, 0.64);
	color: #fff;
	font-size: 0.95rem;
	font-weight: 850;
	text-decoration: none;
}

.about-see-you__more a:hover {
	background: #fff;
	color: #0649b9;
}

.about-more {
	padding: 56px 0 72px;
	background: #fff;
	text-align: center;
}

.about-more h2 {
	margin-bottom: 28px;
}

.about-more__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(13, 31, 48, 0.14);
	border-left: 1px solid rgba(13, 31, 48, 0.14);
}

.about-more__grid a {
	display: grid;
	min-height: 130px;
	align-items: center;
	padding: 22px;
	border-right: 1px solid rgba(13, 31, 48, 0.14);
	border-bottom: 1px solid rgba(13, 31, 48, 0.14);
	color: var(--color-ink);
	font-size: 1.04rem;
	font-weight: 850;
	text-decoration: none;
}

.about-more__grid a:hover {
	background: #0649b9;
	color: #fff;
}

.info-card,
.card {
	background: var(--color-paper);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	padding: 20px;
	box-shadow: 0 8px 30px rgba(18, 27, 38, 0.06);
}

.info-card span {
	display: block;
	margin-top: 10px;
	color: var(--color-muted);
}

.section-heading {
	max-width: none;
	margin-bottom: 16px;
}

.section-stack,
.cards-section {
	display: grid;
	gap: 16px;
}

.section-stack > .section-heading,
.cards-section > .section-heading {
	margin-bottom: 0;
}

.split .section-heading,
.contact-grid .section-heading {
	margin-bottom: 10px;
}

.split .section-heading h2,
.contact-grid .section-heading h2 {
	margin-bottom: 0;
}

.section-heading > p:not(.eyebrow) {
	max-width: none;
	width: 100%;
}

.card-grid {
	display: grid;
	gap: 14px;
}

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

.card-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card h3 {
	margin-top: 0;
	margin-bottom: 8px;
}

.card p {
	margin: 0;
}

.card a {
	text-decoration: none;
}

.card p {
	color: var(--color-muted);
}

.card--dark p,
.section--dark .card p {
	color: rgba(255, 255, 255, 0.74);
}

.text-link {
	color: var(--color-accent-2);
	font-weight: 800;
}

.section--dark .text-link {
	color: var(--color-accent);
}

.contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 30px;
	align-items: stretch;
}

.map-frame,
.map-placeholder,
.image-placeholder {
	display: grid;
	place-items: center;
	min-height: 330px;
	padding: 30px;
	border: 1px dashed rgba(23, 33, 43, 0.35);
	border-radius: var(--radius);
	background: rgba(255, 255, 255, 0.62);
	color: var(--color-muted);
	text-align: center;
	font-weight: 700;
}

.map-frame {
	position: relative;
	overflow: hidden;
	padding: 0;
	border-style: solid;
	background: var(--color-paper);
	box-shadow: var(--shadow-soft);
}

.map-frame::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(38deg, transparent 0 22%, rgba(85, 125, 165, 0.16) 22% 24%, transparent 24% 58%, rgba(215, 168, 63, 0.16) 58% 60%, transparent 60%),
		linear-gradient(122deg, transparent 0 34%, rgba(23, 33, 43, 0.12) 34% 35%, transparent 35% 72%, rgba(85, 125, 165, 0.16) 72% 74%, transparent 74%),
		linear-gradient(90deg, rgba(23, 33, 43, 0.06) 1px, transparent 1px),
		linear-gradient(0deg, rgba(23, 33, 43, 0.06) 1px, transparent 1px),
		#f7f4ed;
	background-size: auto, auto, 44px 44px, 44px 44px, auto;
}

.map-frame iframe {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	opacity: 0.9;
}

.map-caption {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 14px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	background: rgba(255, 253, 248, 0.94);
	color: var(--color-ink);
	box-shadow: 0 10px 26px rgba(18, 27, 38, 0.12);
}

.map-caption a {
	color: var(--color-accent-2);
	font-weight: 800;
	text-decoration: none;
}

.location-page {
	background: #fff;
	color: var(--color-ink);
}

.location-hero {
	position: relative;
	display: grid;
	align-items: center;
	overflow: hidden;
	min-height: var(--site-hero-height);
	padding: 96px 0 0;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.62), rgba(0, 0, 0, 0.1)),
		url("../images/site/location-building.png") center 42% / cover no-repeat;
	color: #fff;
}

.location-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.18);
	pointer-events: none;
}

.location-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	min-height: 384px;
}

.location-kicker {
	margin: 0 0 18px;
	color: var(--color-accent);
	font-size: clamp(1.45rem, 2.6vw, 2rem);
	font-weight: 920;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.location-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(4.2rem, 7.5vw, 6rem);
	font-weight: 820;
	line-height: 1;
	text-transform: uppercase;
}

.location-invited {
	padding: 54px 0 52px;
	background: #fff;
	text-align: center;
}

.location-invited__intro {
	max-width: 760px;
	margin-inline: auto;
}

.location-invited h2,
.location-map-section h2 {
	margin: 0;
	color: #000;
	font-size: clamp(2.3rem, 3.75vw, 3rem);
	font-weight: 820;
	line-height: 1.08;
	text-align: center;
}

.location-invited__intro p:not(.location-kicker),
.location-map-section__intro p {
	max-width: 790px;
	margin: 24px auto 0;
	color: #303030;
	font-size: 1.06rem;
	line-height: 1.6;
}

.location-info-grid,
.location-contact-strip__grid {
	display: grid;
	gap: 16px;
	margin-top: 54px;
}

.location-info-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.location-contact-strip__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.location-info-grid article,
.location-contact-strip article {
	display: grid;
	justify-items: center;
	align-content: start;
	text-align: center;
}

.location-icon {
	display: block;
	width: 34px;
	height: 34px;
	margin-bottom: 22px;
	color: #005eb8;
	background: currentColor;
	-webkit-mask: var(--location-icon) center / contain no-repeat;
	mask: var(--location-icon) center / contain no-repeat;
}

.location-icon--clock {
	--location-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M256 48a208 208 0 1 1 0 416 208 208 0 0 1 0-416Zm0 464A256 256 0 1 0 256 0a256 256 0 0 0 0 512Zm24-384c0-13.3-10.7-24-24-24s-24 10.7-24 24v128c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V128Z'/%3E%3C/svg%3E");
}

.location-icon--church {
	--location-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath fill='%23000' d='M320 0c13.3 0 24 10.7 24 24v40h40c13.3 0 24 10.7 24 24s-10.7 24-24 24h-40v54.1l186.6 102.6c20.6 11.3 33.4 32.9 33.4 56.4V464h40c19.9 0 36 16.1 36 36 0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12 0-19.9 16.1-36 36-36h40V325.1c0-23.5 12.8-45.1 33.4-56.4L296 166.1V112h-40c-13.3 0-24-10.7-24-24s10.7-24 24-24h40V24c0-13.3 10.7-24 24-24ZM140 464h104V360c0-42 34-76 76-76s76 34 76 76v104h104V325.1L320 226.1 140 325.1V464Zm180-132c-15.5 0-28 12.5-28 28v104h56V360c0-15.5-12.5-28-28-28Z'/%3E%3C/svg%3E");
}

.location-icon--pin {
	--location-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='%23000' d='M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2a30.6 30.6 0 0 0 47.4 0ZM192 128a64 64 0 1 1 0 128 64 64 0 0 1 0-128Z'/%3E%3C/svg%3E");
}

.location-icon--car {
	--location-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M135.2 117.4 109.1 192h293.8l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4ZM39.6 196.8 74.8 96.3C88.3 57.8 124.6 32 165.4 32h181.2c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5A64 64 0 0 1 512 256v144c0 17.7-14.3 32-32 32h-16v32c0 26.5-21.5 48-48 48s-48-21.5-48-48v-32H144v32c0 26.5-21.5 48-48 48s-48-21.5-48-48v-32H32c-17.7 0-32-14.3-32-32V256a64 64 0 0 1 39.6-59.2ZM128 288a32 32 0 1 0-64 0 32 32 0 0 0 64 0Zm288 32a32 32 0 1 0 0-64 32 32 0 0 0 0 64Z'/%3E%3C/svg%3E");
}

.location-icon--train {
	--location-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23000' d='M96 0C60.7 0 32 28.7 32 64v256c0 35.3 28.7 64 64 64l-48 64v32h48l72-96h112l72 96h48v-32l-48-64c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96Zm0 64h256v96H96V64Zm0 144h256v96H96v-96Zm48 144a32 32 0 1 1 0-64 32 32 0 0 1 0 64Zm192 0a32 32 0 1 1 0-64 32 32 0 0 1 0 64Z'/%3E%3C/svg%3E");
}

.location-icon--mail {
	--location-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M48 64h416c26.5 0 48 21.5 48 48 0 15.1-7.1 29.3-19.2 38.4L275.2 313.6a32 32 0 0 1-38.4 0L19.2 150.4A48 48 0 0 1 48 64Zm-48 112 217.6 163.2a64 64 0 0 0 76.8 0L512 176v224c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176Z'/%3E%3C/svg%3E");
}

.location-icon--phone {
	--location-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2L29.9 25.3C12.1 30.2 0 46.4 0 64c0 247.4 200.6 448 448 448 17.6 0 33.8-12.1 38.7-29.9l23.9-87.6c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6l-40.7 49.7c-70.4-33.3-127.5-90.4-160.8-160.8l49.7-40.7c13.7-11.2 18.4-30 11.6-46.3l-40-96Z'/%3E%3C/svg%3E");
}

.location-info-grid h3,
.location-contact-strip h3 {
	margin: 0 0 10px;
	color: #000;
	font-size: 2rem;
	font-weight: 560;
	line-height: 1.1;
}

.location-info-grid p,
.location-contact-strip p {
	max-width: 330px;
	margin: 0;
	color: #333;
	font-size: 1rem;
	line-height: 1.52;
}

.location-map-section {
	padding: 58px 0 64px;
	background: linear-gradient(to right, #003da5, #000);
	color: #fff;
}

.location-map-section h2 {
	color: #fff;
}

.location-map-section__intro {
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
}

.location-map-section__intro p {
	color: rgba(255, 255, 255, 0.86);
}

.location-map-frame {
	margin-top: 44px;
	overflow: hidden;
	background: #fff;
}

.location-map-frame iframe {
	display: block;
	width: 100%;
	height: 450px;
	border: 0;
}

.location-building-photo {
	min-height: 512px;
	background: url("../images/site/location-building.png") center / cover no-repeat;
}

.location-contact-strip {
	padding: 56px 0;
	background: #111;
	color: rgba(255, 255, 255, 0.82);
}

.location-contact-strip__grid {
	margin-top: 0;
	align-items: start;
}

.location-contact-strip h3 {
	color: #fff;
	font-size: 1.25rem;
	font-weight: 760;
}

.location-contact-strip p,
.location-contact-strip a {
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
}

/* Calvary-inspired team page */
.team-calvary-page { background: #fff; color: #0a0a0a; }

.team-calvary-hero {
	display: flex;
	align-items: center;
	height: var(--site-hero-height);
	min-height: var(--site-hero-height);
	background: linear-gradient(rgba(3, 9, 18, 0.44), rgba(3, 9, 18, 0.44)), url("../images/site/hero-community.webp") center 46% / cover no-repeat;
	color: #fff;
}

.team-calvary-hero h1 {
	max-width: 900px;
	margin: 44px 0 0;
	color: #fff;
	font-size: clamp(3.8rem, 7vw, 6.7rem);
	font-weight: 900;
	line-height: 0.95;
	letter-spacing: 0;
}

.team-lead {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(420px, 0.96fr);
	gap: clamp(40px, 7vw, 100px);
	align-items: start;
	padding-top: clamp(64px, 8vw, 108px);
	padding-bottom: clamp(64px, 8vw, 108px);
}

.team-eyebrow {
	margin: 0 0 18px;
	font-size: 0.94rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.team-lead h2 {
	margin: 0 0 30px;
	color: #050505;
	font-size: clamp(2.3rem, 4vw, 4rem);
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0;
}

.team-lead__copy > p:not(.team-eyebrow) { margin: 0 0 20px; font-size: 1.02rem; line-height: 1.55; }

.team-lead__photo { position: sticky; top: 100px; margin: 0; overflow: hidden; min-height: 660px; }
.team-lead__photo img { width: 100%; height: 100%; min-height: 660px; object-fit: cover; object-position: center 70%; }

.team-roster { padding: clamp(64px, 7vw, 96px) 0 clamp(76px, 9vw, 128px); background: #2147aa; color: #fff; }
.team-roster__intro { max-width: 820px; margin: 0 auto 48px; text-align: center; }
.team-roster__intro h2 { margin: 0 0 20px; color: #fff; font-size: clamp(2.6rem, 5vw, 4.6rem); font-weight: 900; line-height: 1; letter-spacing: 0; }
.team-roster__intro p { margin: 0; font-size: 1.08rem; line-height: 1.5; }
.team-roster__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 46px 18px; }
.team-person { text-align: center; }
.team-person__photo { width: 100%; aspect-ratio: 1 / 1.05; margin-bottom: 18px; background-position: center; background-size: cover; }
.team-person__photo--1 { background-image: url("../images/site/about-fellowship.webp"); }
.team-person__photo--2 { background-image: url("../images/site/online-sermon.webp"); }
.team-person__photo--3 { background-image: url("../images/site/service-worship.webp"); }
.team-person__photo--4 { background-image: url("../images/site/fellowship-table.webp"); }
.team-person__photo--5 { background-image: url("../images/site/ministries-children.webp"); }
.team-person__photo--6 { background-image: url("../images/site/about-visit-photo.jpg"); }
.team-person__photo--7 { background-image: url("../images/site/hero-community.webp"); }
.team-person h3 { margin: 0 0 10px; color: #fff; font-size: clamp(1.55rem, 2.5vw, 2.2rem); font-weight: 800; line-height: 1.08; letter-spacing: 0; }
.team-person p { margin: 0 auto; max-width: 340px; font-size: 1rem; line-height: 1.4; }

.section-anchor {
	scroll-margin-top: 92px;
}

.page-hero {
	display: grid;
	align-items: center;
	min-height: var(--site-hero-height);
	padding: 96px 0 56px;
	background: var(--color-deep);
	color: #fff;
}

.page-hero h1 {
	margin: 16px 0 0;
	color: #fff;
	font-size: clamp(4.2rem, 7.5vw, 6rem);
	font-weight: 820;
	line-height: 1;
	text-transform: uppercase;
}

.breadcrumbs {
	display: flex;
	gap: 10px;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.92rem;
}

.site-footer {
	padding: 56px 0;
	background: var(--color-deep-2);
	color: rgba(255, 255, 255, 0.78);
}

.footer-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 36px;
}

.footer-logo {
	margin: 0 0 12px;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 850;
}

.site-footer h2 {
	color: #fff;
	font-size: 1rem;
}

.footer-links {
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (max-width: 1120px) {
	.team-lead { grid-template-columns: 1fr 0.82fr; gap: 36px; }
	.team-lead__photo,
	.team-lead__photo img { min-height: 560px; }

	.menu-toggle {
		display: block;
	}

	.primary-nav {
		position: absolute;
		top: 76px;
		left: 20px;
		right: 20px;
		display: none;
		max-height: calc(100vh - 96px);
		overflow-y: auto;
		flex-direction: column;
		align-items: stretch;
		padding: 20px;
		border-radius: var(--radius);
		background: var(--color-paper);
		color: var(--color-ink);
		box-shadow: var(--shadow-soft);
	}

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

	.menu {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.menu > li > a::after,
	.menu li:has(.sub-menu)::after {
		display: none;
	}

	.menu .sub-menu {
		position: static;
		display: grid;
		min-width: 0;
		padding: 4px 0 0 14px;
		border: 0;
		background: transparent;
		color: inherit;
		box-shadow: none;
		opacity: 1;
		pointer-events: auto;
		transform: none;
	}

	.menu .sub-menu a {
		min-height: 32px;
		padding: 4px 0;
		font-size: 0.98rem;
		font-weight: 750;
		white-space: normal;
		color: var(--color-muted);
		transform: none;
	}

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

	h2 {
		font-size: 1.48rem;
	}

	.page-hero h1 {
		font-size: 3rem;
	}

	.split,
	.visual-grid,
	.contact-grid,
	.new-here-intro,
	.new-here-flow,
	.about-mission,
	.about-expect__grid,
	.about-visit__grid,
	.about-see-you,
	.footer-grid {
		grid-template-columns: 1fr;
	}

	.visual-grid .photo-panel:first-child {
		grid-row: auto;
		min-height: 360px;
	}

	.card-grid--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.expect-grid,
	.link-card-grid,
	.about-next__grid,
	.about-details__grid,
	.about-more__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.about-details__grid article:nth-child(7) {
		grid-column: auto;
		margin-top: 0;
	}

	.about-mission,
	.about-expect,
	.about-details,
	.about-more {
		padding-block: 54px;
	}

	.about-mission__photo,
	.about-expect__photo,
	.about-visit__photo,
	.about-see-you,
	.about-see-you__image {
		min-height: 360px;
	}

	.about-mission__photo {
		height: 360px;
	}

	.about-visit__grid {
		min-height: 0;
	}

	.about-see-you__copy {
		max-width: none;
	}

	.location-hero {
		min-height: var(--site-hero-height);
	}

	.location-hero__inner {
		min-height: 324px;
	}

	.location-info-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.location-contact-strip__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 34px 22px;
	}

	.location-contact-strip article:nth-child(3) {
		grid-column: 1 / -1;
	}

	.location-building-photo {
		min-height: 380px;
	}
}

@media (max-width: 640px) {
	body {
		font-size: 16px;
	}

	.team-calvary-hero { height: var(--site-hero-height-mobile); min-height: var(--site-hero-height-mobile); }
	.team-calvary-hero h1 { margin-top: 54px; font-size: clamp(3.2rem, 15vw, 4.8rem); }
	.team-lead { grid-template-columns: 1fr; padding-top: 54px; padding-bottom: 54px; }
	.team-lead__photo { position: static; order: -1; }
	.team-lead__photo,
	.team-lead__photo img { min-height: 440px; }
	.team-roster__grid { grid-template-columns: 1fr; gap: 42px; }

	.container {
		width: min(calc(100% - 28px), var(--container));
	}

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

	.primary-nav {
		top: 68px;
		left: 14px;
		right: 14px;
	}

	.hero {
		min-height: var(--site-hero-height-mobile);
	}

	.hero__overlay {
		background: linear-gradient(180deg, rgba(15, 26, 39, 0.54), rgba(15, 26, 39, 0.82));
	}

	.hero__content {
		padding: 68px 0 20px;
	}

	.hero__arrow {
		top: 44%;
		width: 34px;
		height: 34px;
		opacity: 0.58;
	}

	.hero__arrow::before {
		width: 9px;
		height: 9px;
	}

	.hero__dots {
		bottom: 12px;
	}

	.hero h1 {
		font-size: clamp(1.65rem, 8vw, 2.85rem);
		line-height: 1.04;
	}

	.hero__lead {
		margin-top: 14px;
		font-size: 1.08rem;
	}

	.hero .button-row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		margin-top: 16px;
	}

	.hero .button {
		min-height: 38px;
		padding: 8px 6px;
		font-size: 0.82rem;
		white-space: nowrap;
	}

	.eyebrow {
		font-size: 0.93rem;
	}

	.hero .eyebrow {
		font-size: 0.76rem;
	}

	.section .eyebrow {
		font-size: 1.5rem;
	}

	.section {
		padding: 24px 0;
	}

	h2 {
		font-size: 1.38rem;
	}

	h3 {
		font-size: 1.2rem;
	}

	.page-hero {
		min-height: var(--site-hero-height-mobile);
	}

	.page-hero h1 {
		font-size: clamp(3.1rem, 15vw, 4.4rem);
		line-height: 1;
	}

	.card-grid--2,
	.card-grid--3,
	.expect-grid,
	.link-card-grid,
	.about-feature-grid,
	.about-expect__items,
	.about-next__grid,
	.about-details__grid,
	.about-more__grid {
		grid-template-columns: 1fr;
	}

	.about-calvary-hero {
		min-height: var(--site-hero-height-mobile);
	}

	.about-calvary-hero__content {
		padding: 74px 0;
	}

	.about-calvary-hero h1 {
		font-size: clamp(3.1rem, 15vw, 4.4rem);
		line-height: 1;
	}

	.about-calvary-hero p:not(.about-kicker) {
		font-size: 1.02rem;
	}

	.about-belong h2 {
		font-size: 2rem;
	}

	.about-belong {
		padding: 34px 0;
	}

	.about-mission,
	.about-expect,
	.about-details,
	.about-more {
		padding-block: 38px;
	}

	.about-feature h2,
	.about-visit__copy h2,
	.about-details h2,
	.about-see-you h2,
	.about-more h2 {
		font-size: 2.35rem;
	}

	.about-mission__title {
		font-size: clamp(2.25rem, 12vw, 3.35rem);
		white-space: normal;
	}

	.about-mission h3 {
		font-size: 1.08rem;
	}

	.about-feature {
		min-height: 320px;
		padding: 28px;
	}

	.photo-panel,
	.new-here-intro .photo-panel,
	.about-mission__photo,
	.about-expect__photo,
	.about-visit__photo,
	.about-see-you,
	.about-see-you__image,
	.photo-panel--tall,
	.visual-grid .photo-panel:first-child,
	.visual-grid .photo-panel:not(:first-child) {
		min-height: 210px;
	}

	.about-visit__grid {
		min-height: 0;
	}

	.about-visit__copy,
	.about-see-you__copy {
		padding: 32px 20px;
	}

	.about-details__grid article,
	.about-more__grid a {
		min-height: 0;
	}

	.about-detail-icon {
		width: 28px;
		height: 28px;
		margin-bottom: 16px;
	}

	.about-mission__photo {
		height: 260px;
	}

	.about-details__grid h3 {
		font-size: 1.8rem;
	}

	.about-details__grid p {
		font-size: 1rem;
	}

	.about-details__grid a {
		min-width: 170px;
		min-height: 50px;
		margin-top: 20px;
		border-width: 2px;
	}

	.new-here-page {
		gap: 26px;
	}

	.new-here-intro h2,
	.new-here-block h2,
	.new-here-flow h2 {
		font-size: 2rem;
	}

	.new-here-flow {
		padding: 20px;
	}

	.map-frame,
	.map-frame iframe {
		min-height: 260px;
	}

	.location-hero {
		min-height: var(--site-hero-height-mobile);
		padding-top: 68px;
		background:
			linear-gradient(90deg, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.28)),
			url("../images/site/location-building.png") 47% 50% / cover no-repeat;
	}

	.location-hero__inner {
		min-height: 272px;
	}

	.location-hero h1 {
		font-size: clamp(3.1rem, 15vw, 4.4rem);
	}

	.location-invited {
		padding: 38px 0 36px;
	}

	.location-invited h2,
	.location-map-section h2 {
		font-size: 2.25rem;
	}

	.location-info-grid,
	.location-contact-strip__grid {
		grid-template-columns: 1fr;
		gap: 28px;
		margin-top: 34px;
	}

	.location-info-grid article:nth-child(3),
	.location-contact-strip article:nth-child(3) {
		grid-column: auto;
	}

	.location-icon {
		width: 28px;
		height: 28px;
		margin-bottom: 14px;
	}

	.location-info-grid h3 {
		margin-bottom: 10px;
		font-size: 1.7rem;
	}

	.location-info-grid p,
	.location-contact-strip p {
		font-size: 1rem;
	}

	.location-map-section {
		padding: 36px 0 46px;
	}

	.location-map-section h2 {
		font-size: 2.25rem;
	}

	.location-map-section__intro p,
	.location-invited__intro p:not(.location-kicker) {
		margin: 14px 0 22px;
		font-size: 1rem;
	}

	.location-map-frame {
		margin-top: 28px;
	}

	.location-map-frame iframe {
		height: 320px;
	}

	.location-building-photo {
		min-height: 280px;
	}

	.location-contact-strip {
		padding: 40px 0;
	}

	.button,
	.wp-block-button__link {
		min-height: 42px;
		padding: 10px 15px;
	}

	.button-row {
		margin-top: 18px;
	}
}
