/* H3 — styles theme.json can't express. */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Full-bleed sections butt up against header and footer. */
.wp-site-blocks > main,
.wp-site-blocks > footer { margin-block-start: 0; }

/* Anchored sections clear the sticky header. */
:where(.wp-site-blocks) [id] { scroll-margin-top: 96px; }

/* ---------- Header ---------- */
.h3-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgb(255 255 255 / 0.86);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid rgb(27 31 75 / 0.07);
}
.admin-bar .h3-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .h3-header { top: 46px; } }
.h3-header .wp-block-site-logo img { width: auto; height: 60px; }
@media (max-width: 600px) { .h3-header .wp-block-site-logo img { height: 42px; } }
.h3-header .wp-block-navigation a { color: var(--wp--preset--color--ink); text-decoration: none; }
.h3-header .wp-block-navigation a:hover { color: var(--wp--preset--color--indigo); }
.h3-header .wp-block-navigation .wp-block-navigation-item:not(.h3-nav-cta) a {
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat;
	transition: background-size .25s ease;
	padding-bottom: 2px;
}
.h3-header .wp-block-navigation .wp-block-navigation-item:not(.h3-nav-cta) a:hover { background-size: 100% 2px; }
.h3-header .h3-nav-cta a {
	background: var(--wp--preset--color--indigo);
	color: #fff !important;
	padding: .55rem 1.15rem;
	border-radius: 999px;
}
.h3-header .h3-nav-cta a:hover { background: var(--wp--preset--color--violet); }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { font-size: 1.25rem; gap: 1.25rem; }

/* ---------- Eyebrow ---------- */
.is-style-eyebrow {
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--violet);
	margin-bottom: .25rem !important;
}
.has-ink-background-color .is-style-eyebrow,
.has-night-gradient-background .is-style-eyebrow { color: #B9B2FF; }

/* Gradient-filled accent word in headings. */
.h3-accent {
	font-style: italic;
	background: var(--wp--preset--gradient--brand);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	padding-right: .05em;
}

/* ---------- Hero ---------- */
.h3-hero { position: relative; overflow: hidden; isolation: isolate; }
.h3-hero::before,
.h3-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	filter: blur(70px);
	opacity: .55;
}
.h3-hero::before { width: 520px; height: 520px; background: #C9B8FF; top: -160px; right: -120px; }
.h3-hero::after { width: 420px; height: 420px; background: #B5E6F2; bottom: -180px; left: -140px; }

.h3-portrait { position: relative; }
.h3-portrait img {
	border-radius: 28px 28px 28px 120px;
	box-shadow: 0 30px 60px -25px rgb(27 31 75 / .45);
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
}
.h3-portrait::before {
	content: "";
	position: absolute;
	inset: 18px -18px -18px 18px;
	border-radius: 28px 28px 28px 120px;
	background: var(--wp--preset--gradient--brand);
	opacity: .9;
	z-index: -1;
}
.h3-badge-float {
	position: absolute;
	left: -14px;
	bottom: 34px;
	background: #fff;
	border-radius: 18px;
	padding: .8rem 1.1rem !important;
	box-shadow: 0 18px 40px -18px rgb(27 31 75 / .5);
	font-size: .9rem;
	line-height: 1.35;
	max-width: 230px;
}
@media (max-width: 781px) {
	.h3-badge-float { left: 12px; bottom: 16px; }
	.h3-portrait { margin-right: 18px; }
}

.h3-trust { gap: .5rem 1.5rem !important; }
.h3-trust p { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: .925rem; font-weight: 600; color: var(--wp--preset--color--muted); }
.h3-trust p::before {
	content: "";
	width: 18px; height: 18px; flex: none;
	border-radius: 50%;
	background: var(--wp--preset--color--leaf) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.wp-block-button:not(.is-style-ghost) .wp-block-button__link { box-shadow: 0 10px 24px -12px rgb(46 59 199 / .7); }
.wp-block-button__link:hover { transform: translateY(-1px); }
.is-style-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--haze);
}
.is-style-ghost .wp-block-button__link:hover {
	background: transparent;
	color: var(--wp--preset--color--indigo);
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--indigo);
}
.has-night-gradient-background .is-style-ghost .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 2px rgb(255 255 255 / .35); }
.has-night-gradient-background .is-style-ghost .wp-block-button__link:hover { color: #fff; box-shadow: inset 0 0 0 2px #fff; }
.has-night-gradient-background .wp-block-button:not(.is-style-ghost) .wp-block-button__link { background: #fff; color: var(--wp--preset--color--indigo); }
.has-night-gradient-background .wp-block-button:not(.is-style-ghost) .wp-block-button__link:hover { background: #EEE9FE; }

/* ---------- Cards ---------- */
.is-style-card {
	background: #fff;
	border: 1px solid rgb(27 31 75 / .07);
	border-radius: 24px;
	box-shadow: 0 1px 2px rgb(27 31 75 / .04), 0 20px 40px -30px rgb(27 31 75 / .35);
	transition: transform .25s ease, box-shadow .25s ease;
	height: 100%;
}
.is-style-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 1px 2px rgb(27 31 75 / .04), 0 30px 50px -28px rgb(46 59 199 / .4);
}
.wp-block-column > .is-style-card { height: 100%; }

.h3-service { position: relative; overflow: hidden; }
.h3-service::after {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 5px;
	background: var(--wp--preset--gradient--brand);
}
.h3-service.h3-service--leaf::after { background: linear-gradient(90deg, #3FA7D6, #2BA79A); }
.h3-service ul { padding-left: 0; list-style: none; margin: 0; }
.h3-service li { position: relative; padding-left: 1.75rem; margin-bottom: .5rem; }
.h3-service li::before {
	content: "";
	position: absolute; left: 0; top: .45em;
	width: 1rem; height: 1rem;
	border-radius: 50%;
	background: var(--wp--preset--color--haze) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E3BC7' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 10px no-repeat;
}

/* Icon chips */
.h3-icon {
	display: inline-grid;
	place-items: center;
	width: 56px; height: 56px;
	border-radius: 16px;
	background: var(--wp--preset--gradient--brand);
	color: #fff;
	box-shadow: 0 12px 24px -12px rgb(46 59 199 / .7);
}
.h3-icon--leaf { background: linear-gradient(135deg, #3FA7D6, #2BA79A); box-shadow: 0 12px 24px -12px rgb(43 167 154 / .7); }
.h3-icon--soft { background: var(--wp--preset--color--haze); color: var(--wp--preset--color--indigo); box-shadow: none; }
.h3-icon svg { width: 28px; height: 28px; }

/* ---------- About ---------- */
.h3-about-img img,
.h3-class-img img {
	border-radius: 24px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
	box-shadow: 0 30px 60px -30px rgb(27 31 75 / .45);
}
.h3-class-img { position: relative; }
.h3-class-img::after {
	content: "";
	position: absolute;
	right: -14px; bottom: -14px;
	width: 45%; height: 45%;
	border-radius: 0 0 28px 0;
	border: 3px solid var(--wp--preset--color--leaf);
	border-top: 0; border-left: 0;
	z-index: -1;
}
@media (max-width: 781px) { .h3-class-img { margin-right: 14px; } }
.h3-mark { opacity: .9; }

/* ---------- Why ---------- */
.h3-why .wp-block-column { position: relative; }
.h3-num {
	font-family: var(--wp--preset--font-family--display);
	font-size: 3.5rem;
	line-height: 1;
	font-style: italic;
	background: var(--wp--preset--gradient--brand);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	margin: 0 !important;
}

/* ---------- Contact ---------- */
.h3-contact { position: relative; overflow: hidden; isolation: isolate; }
.h3-contact::before {
	content: "";
	position: absolute;
	z-index: -1;
	width: 600px; height: 600px;
	right: -200px; top: -250px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(163 106 248 / .45), transparent 65%);
}
.h3-contact a:not(.wp-block-button__link) { color: #fff; }
.h3-email {
	font-family: var(--wp--preset--font-family--display);
	word-break: break-word;
}

/* ---------- Footer ---------- */
.h3-footer a { color: inherit; text-decoration: none; }
.h3-footer a:hover { color: #fff; text-decoration: underline; }
.h3-footer .wp-block-navigation a:hover { color: #fff; }

.h3-class-img--wide img { aspect-ratio: 4 / 3; }
.h3-class-img--wide::after {
	right: auto; left: -14px;
	border-radius: 0 0 0 28px;
	border-right: 0;
	border-left: 3px solid var(--wp--preset--color--leaf);
}
@media (max-width: 781px) { .h3-class-img--wide { margin-right: 0; margin-left: 14px; } }
