/**
 * Glacial Blocks — shared front-end + editor-canvas styles for Atlantic Eye.
 * Design tokens come from css/webflow.css (Atlantic export): --color-3 #4f2973 purple, --color-4 #69468a,
 * --color-5 #9e92b0 lavender, --color-6 #b1babf; josefin-sans body/headings, futura-pt h5, 15px radii,
 * lavender letter-spaced eyebrows, lavender pill buttons with a purple arrow circle.
 * Collapse point for two-column layouts = 767px.
 *
 * Markup class names (button c-12, card, h4-orange, icon-div, img-div/txt-div _48) are shared with
 * the block library's save() output — they are styled here, not renamed.
 */

:root {
	--gl-purple: var(--color-3, #4f2973);
	--gl-purple-2: var(--color-4, #69468a);
	--gl-lavender: var(--color-5, #9e92b0);
	--gl-wash: #9e92b040;
	--gl-tint: #e7e4ec;
	--gl-sky: #f5f3f8;
	--gl-line: rgb(79 41 115 / 14%);
	--gl-radius: 15px;
	--gl-shadow: 0 10px 30px rgb(79 41 115 / 10%);
}

/* ---------- Device visibility ---------- */
@media (min-width: 992px) { .gl-hide-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 991px) { .gl-hide-tablet { display: none !important; } }
@media (max-width: 767px) { .gl-hide-mobile { display: none !important; } }

/* ---------- Page wrapper: pages built from sections carry their own rhythm ---------- */
.ip-section.entry:has(> .wrap > .gl-section) { padding-top: 0; padding-bottom: 0; }
.ip-section.entry:has(> .wrap > .gl-section) > .wrap { display: block; width: 100%; max-width: none; }

/* ---------- Section ---------- */
.gl-section {
	position: relative;
	padding-top: clamp(56px, 7vw, 110px);
	padding-bottom: clamp(56px, 7vw, 110px);
}

.gl-section > .wrap.gl-section__inner {
	display: block;
	width: auto;
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 5%;
	padding-right: 5%;
}

.gl-section.gl-space-none { padding-top: 0; padding-bottom: 0; }
.gl-section.gl-space-small { padding-top: clamp(32px, 4vw, 56px); padding-bottom: clamp(32px, 4vw, 56px); }
.gl-section.gl-space-large { padding-top: clamp(72px, 10vw, 150px); padding-bottom: clamp(72px, 10vw, 150px); }

.gl-section--white { background-color: #fff; }
.gl-section--tint { background-color: #fff; background-image: linear-gradient(var(--gl-wash), var(--gl-wash)); }
.gl-section--sky { background-color: var(--gl-sky); }
.gl-section--navy {
	background-color: var(--gl-purple);
	background-image: radial-gradient(circle at 0 0, #000000b5, #fff0 81%);
	color: #fff;
}

.gl-section--navy h2,
.gl-section--navy h3,
.gl-section--navy h4,
.gl-section--navy h5,
.gl-section--navy strong { color: #fff; }
.gl-section--navy .eyebrow { color: #d9d2e4; }
.entry .gl-section--navy a:not(.button) { color: #fff; text-decoration: underline; text-decoration-color: rgb(255 255 255 / 45%); text-underline-offset: 3px; }
.entry .gl-section--navy a:not(.button):hover { color: #d9d2e4; }

.gl-section__inner > :last-child,
.gl-split__text > :last-child,
.gl-col > :last-child,
.gl-card__body > :last-child,
.gl-faq-item__a > :last-child { margin-bottom: 0; }

.entry .gl-section p, .entry .gl-section li { line-height: 1.75em; }
.gl-section h3 { font-size: clamp(1.45rem, 2.2vw, 1.85rem); line-height: 1.25; margin-bottom: 16px; }
.gl-section p + h3, .gl-section ul + h3, .gl-section ol + h3, .gl-section figure + h3, .gl-section .wp-block-table + h3 { margin-top: 36px; }
.gl-section h4 { margin-top: 0; }
.gl-section p + h4, .gl-section ul + h4 { margin-top: 28px; }

/* ---------- Section heading ---------- */
.gl-sec-head { margin-bottom: 30px; }

.gl-sec-head .eyebrow { margin-bottom: 10px; }

.entry .gl-sec-head > h2, .entry .gl-sec-head > h3, .entry .gl-sec-head > h4,
.gl-sec-head > h2, .gl-sec-head > h3, .gl-sec-head > h4 { margin-top: 0; margin-bottom: 0; }

.gl-sec-head > h2 { font-size: clamp(2rem, 3.4vw, 3em); line-height: 1.2; }
.gl-sec-head > h3 { font-size: clamp(1.5rem, 2.4vw, 2em); line-height: 1.25; }
.gl-sec-head .gl-h-small { font-size: 1.6em; }
.gl-sec-head .h2-lg { font-size: clamp(2.4rem, 4.2vw, 3.6em); }

.gl-sec-head--center { text-align: center; max-width: 900px; margin-left: auto; margin-right: auto; }
.gl-sec-head--center + .gl-buttons, .gl-sec-head--center ~ .gl-buttons:last-child { justify-content: center; }
.gl-card + .gl-sec-head, .gl-grid + .gl-sec-head, .gl-faq + .gl-sec-head, p + .gl-sec-head, .wp-block-list + .gl-sec-head, .wp-block-image + .gl-sec-head, .wp-block-table + .gl-sec-head, .gl-split + .gl-sec-head { margin-top: 56px; }

/* Centered section intros: the copy that follows sits centred too */
.gl-section__inner > .gl-sec-head--center ~ p { max-width: 860px; margin-left: auto; margin-right: auto; text-align: center; }
.gl-section__inner > .gl-sec-head--center ~ .gl-buttons { justify-content: center; }

/* ---------- Split (photo + text) ---------- */
.gl-split {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 6%;
	margin-bottom: 56px;
}

.gl-split:last-child { margin-bottom: 0; }
.gl-split > .img-div._48 { width: 46%; }
.gl-split > .txt-div._48 { width: 48%; padding-top: 0; padding-bottom: 0; }

.gl-split > .img-div {
	position: relative;
	align-self: stretch;
	min-height: 380px;
	border-radius: var(--gl-radius);
	box-shadow: 2px 3px 8px #0000002e;
}

.gl-split > .img-div .img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gl-split > .img-div.gl-portrait .img { object-position: 50% 15%; }
@media (min-width: 768px) {
	.gl-split > .img-div.gl-portrait { align-self: center; aspect-ratio: 4 / 5; min-height: 0; }
}
.gl-split > .txt-div { display: flex; flex-direction: column; justify-content: center; align-items: stretch; }

@media (min-width: 768px) {
	.gl-split.gl-swap-desktop > :first-child { order: 2; }
	.gl-split.gl-swap-desktop > :last-child { order: 1; }
}

@media (max-width: 767px) {
	.gl-split { flex-direction: column; gap: 32px; }
	.gl-split > .img-div._48, .gl-split > .txt-div._48 { width: 100%; }
	.gl-split > .img-div { min-height: 0; aspect-ratio: 4 / 3; }
	.gl-split.gl-swap-mobile > :first-child { order: 2; }
	.gl-split.gl-swap-mobile > :last-child { order: 1; }
	.gl-split > .img-div.gl-portrait { aspect-ratio: 4 / 5; max-height: 520px; }
}

/* ---------- Grid / column / card ---------- */
.gl-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-bottom: 32px;
}

.gl-grid--3 { grid-template-columns: repeat(3, 1fr); }
.gl-grid--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 991px) {
	.gl-grid--3, .gl-grid--4 { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767px) {
	.gl-grid, .gl-grid--3, .gl-grid--4 { grid-template-columns: 1fr; }
}

.gl-card.card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 30px 28px;
	border-radius: var(--gl-radius);
	background: #fff;
	box-shadow: var(--gl-shadow);
	transition: transform .25s ease, box-shadow .25s ease;
}

.gl-card.card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgb(79 41 115 / 16%); }

.gl-section--white .gl-card.card, .gl-section--sky .gl-card.card { background: var(--gl-tint); box-shadow: none; }
.gl-section--white .gl-card.card:hover, .gl-section--sky .gl-card.card:hover { box-shadow: var(--gl-shadow); }

.gl-section--navy .gl-card.card {
	background: rgb(255 255 255 / 7%);
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 12%);
}

.entry .gl-card .h4-orange, .gl-card .h4-orange {
	margin: 0 0 12px;
	color: var(--gl-purple);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.3;
}

.gl-section--navy .gl-card .h4-orange { color: #fff; }

.gl-card .icon-div {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 18px;
	border-radius: 50%;
	background: var(--gl-purple);
	color: #fff;
	font-weight: 600;
}

.gl-section--navy .gl-card .icon-div { background: var(--gl-lavender); }
.gl-card__body { width: 100%; }
.gl-card .gl-card__body > .gl-buttons { margin-top: 10px; margin-bottom: 0; }

/* Numbered cards placed straight in a section (not in a grid) stack as a vertical timeline */
.gl-section__inner > .gl-card.card:has(> .icon-div) {
	display: grid;
	grid-template-columns: 56px 1fr;
	column-gap: 28px;
	max-width: 900px;
	height: auto;
	margin: 0 auto;
	padding: 30px 36px;
}
.gl-section__inner > .gl-card.card:has(> .icon-div) + .gl-card.card { margin-top: 40px; }
.gl-section__inner > .gl-card.card:has(> .icon-div) > .icon-div { grid-row: 1 / span 2; width: 56px; height: 56px; margin: 0; font-size: 1.2rem; }
.gl-section__inner > .gl-card.card:has(> .icon-div) > .h4-orange { grid-column: 2; align-self: center; }
.gl-section__inner > .gl-card.card:has(> .icon-div) > .gl-card__body { grid-column: 2; }
.gl-section__inner > .gl-card.card:has(> .icon-div):has(+ .gl-card.card)::after {
	content: "";
	position: absolute;
	left: 63px;
	top: 96px;
	bottom: -64px;
	width: 2px;
	background: var(--gl-lavender);
	opacity: .5;
}
@media (max-width: 767px) {
	.gl-section__inner > .gl-card.card:has(> .icon-div) { grid-template-columns: 44px 1fr; column-gap: 16px; padding: 26px 22px; }
	.gl-section__inner > .gl-card.card:has(> .icon-div) + .gl-card.card { margin-top: 24px; }
	.gl-section__inner > .gl-card.card:has(> .icon-div) > .icon-div { grid-row: 1; width: 44px; height: 44px; font-size: 1rem; }
	.gl-section__inner > .gl-card.card:has(> .icon-div) > .h4-orange { margin: 0; }
	.gl-section__inner > .gl-card.card:has(> .icon-div) > .gl-card__body { grid-column: 1 / -1; margin-top: 16px; }
	.gl-section__inner > .gl-card.card:has(> .icon-div):has(+ .gl-card.card)::after { display: none; }
}
.gl-section__inner > p + .gl-card.card:has(> .icon-div) { margin-top: 40px; }
.gl-section__inner > .gl-card.card:has(> .icon-div) + .gl-buttons { justify-content: center; margin-top: 40px; margin-bottom: 0; }

.gl-col > .gl-card + .gl-card { margin-top: 24px; height: auto; }
.gl-col > .gl-card { height: auto; }

/* Phones: cards under a centred section heading centre too */
@media (max-width: 767px) {
	.gl-sec-head--center ~ .gl-grid .gl-card { align-items: center; text-align: center; }
	.gl-sec-head--center ~ .gl-grid .gl-card .icon-div { margin-left: auto; margin-right: auto; }
	.gl-sec-head--center ~ .gl-grid .gl-card .gl-buttons { justify-content: center; }
	.gl-sec-head--center ~ .gl-grid .gl-card .wp-block-list { display: inline-block; text-align: left; }
}

/* ---------- Buttons: the export's lavender pill + purple arrow circle ---------- */
.gl-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.gl-sec-head + .gl-buttons { margin-top: 0; }

.button.gl-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 10px 10px 10px 30px;
	border-radius: 50px;
	background-color: var(--gl-lavender);
	color: #fff;
	font-weight: 600;
	line-height: 1.2em;
	text-decoration: none;
	transition: background-color .2s ease;
}

.entry a.button.gl-btn, .entry a.button.gl-btn:hover { color: #fff; text-decoration: none; }
.button.gl-btn:hover { background-color: var(--gl-purple-2); }
.gl-btn .btn-bg { display: none; }

.gl-btn .btn-icon-wrapper {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-left: 15px;
	border-radius: 50%;
	background-color: var(--gl-purple);
}

.gl-btn .btn-icon-wrapper svg { width: 20px; height: 20px; transform: rotate(-45deg); transition: transform .25s ease; }
.gl-btn:hover .btn-icon-wrapper svg { transform: rotate(0deg); }
.gl-btn:focus-visible { outline: 2px solid var(--gl-purple); outline-offset: 3px; }

.gl-section--navy .button.gl-btn { background-color: #fff; }
.entry .gl-section--navy a.button.gl-btn, .entry .gl-section--navy a.button.gl-btn:hover { color: var(--gl-purple); }
.gl-section--navy .button.gl-btn:hover { background-color: #e7e4ec; }
.gl-section--navy .gl-btn:focus-visible { outline-color: #fff; }

/* ---------- Lists inside designed sections: purple check bullets ---------- */
.gl-section ul.wp-block-list, .gl-section .gl-checklist { list-style: none; padding-left: 0; }
.gl-section ul.wp-block-list > li { position: relative; padding-left: 34px; margin-bottom: 10px; }

.gl-section ul.wp-block-list > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--gl-wash) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f2973' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat;
}

.gl-section--tint ul.wp-block-list > li::before { background-color: #fff; }
.gl-section--navy ul.wp-block-list > li::before {
	background-color: rgb(255 255 255 / 14%);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}

/* Long lists read better in two columns on wide screens */
@media (min-width: 768px) {
	.gl-section .gl-col ul.wp-block-list:has(> li:nth-child(7)),
	.gl-section__inner > ul.wp-block-list:has(> li:nth-child(7)) { columns: 2; column-gap: 40px; }
	.gl-section ul.wp-block-list:has(> li:nth-child(7)) > li { break-inside: avoid; }
}

/* Numbered steps (core ordered list) */
.gl-section ol.wp-block-list { counter-reset: gl-step; list-style: none; padding-left: 0; }
.gl-section ol.wp-block-list > li { counter-increment: gl-step; position: relative; padding-left: 50px; margin-bottom: 16px; min-height: 34px; }
.gl-section ol.wp-block-list > li::before {
	content: counter(gl-step);
	position: absolute;
	left: 0;
	top: 0;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--gl-purple);
	color: #fff;
	font-weight: 600;
	line-height: 36px;
	text-align: center;
}
.gl-section--navy ol.wp-block-list > li::before { background: var(--gl-lavender); }

/* ---------- Images inside sections ---------- */
.gl-section .wp-block-image { margin: 0 0 28px; }
.gl-section .wp-block-image img { border-radius: var(--gl-radius); height: auto; max-width: 100%; }
.gl-section .wp-block-image figcaption { margin-top: 10px; color: #6b6275; font-size: .85em; text-align: center; }
.gl-section .wp-block-gallery { margin-bottom: 32px; }
.gl-section .wp-block-embed { margin: 0 0 32px; }
.gl-section .wp-block-embed iframe { border-radius: var(--gl-radius); }

/* ---------- Tables ---------- */
.gl-section .wp-block-table { margin: 0 0 32px; overflow-x: auto; }
.gl-section .wp-block-table table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	border-radius: var(--gl-radius);
	background: #fff;
	box-shadow: var(--gl-shadow);
	font-size: .95rem;
	line-height: 1.5;
}
.gl-section .wp-block-table th,
.gl-section .wp-block-table td { padding: 14px 18px; border: 0; border-bottom: 1px solid #ebe7f0; text-align: left; vertical-align: top; }
.gl-section .wp-block-table thead th, .gl-section .wp-block-table tr:first-child th { background: var(--gl-purple); color: #fff; font-weight: 700; }
.gl-section .wp-block-table tbody tr:nth-child(even) td { background: #f7f5fa; }
.gl-section .wp-block-table tbody tr:last-child td { border-bottom: 0; }

/* ---------- FAQ ---------- */
.gl-faq { margin-bottom: 32px; border-top: 1px solid var(--gl-line); }

.gl-faq-item { border-bottom: 1px solid var(--gl-line); }

.gl-faq-item__q {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	padding: 22px 0;
	cursor: pointer;
	list-style: none;
}

.gl-faq-item__q::-webkit-details-marker { display: none; }

.gl-faq-item__q::after {
	content: "+";
	flex: 0 0 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--gl-lavender);
	color: #fff;
	font-size: 22px;
	line-height: 38px;
	text-align: center;
	transition: transform .2s ease, background-color .2s ease;
}

.gl-faq-item[open] > .gl-faq-item__q::after { transform: rotate(45deg); background: var(--gl-purple); }
.gl-faq-item__q:focus-visible { outline: 2px solid var(--gl-purple); outline-offset: 2px; }

.entry .gl-faq-item__title, .gl-faq-item__title {
	margin: 0;
	color: var(--gl-purple);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.4;
}

.gl-faq-item__a { padding: 0 58px 22px 0; }
.gl-section--navy .gl-faq, .gl-section--navy .gl-faq-item { border-color: rgb(255 255 255 / 18%); }
.gl-section--navy .gl-faq-item__title { color: #fff; }
.gl-section--navy .gl-faq-item__q::after { background: rgb(255 255 255 / 18%); }

/* ---------- Testimonials (core/quote inside designed sections) ---------- */
.gl-section .wp-block-quote {
	position: relative;
	height: 100%;
	margin: 0;
	padding: 56px 30px 30px;
	border: 0;
	border-radius: var(--gl-radius);
	background: #fff;
	box-shadow: var(--gl-shadow);
	color: #333;
	font-style: normal;
}

.gl-section .wp-block-quote::before {
	content: "\201C";
	position: absolute;
	top: 8px;
	left: 26px;
	color: var(--gl-lavender);
	font-size: 4.5rem;
	line-height: 1;
}

.gl-section .wp-block-quote cite {
	display: block;
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--gl-line);
	color: var(--gl-purple);
	font-weight: 700;
	font-style: normal;
}

@media (prefers-reduced-motion: reduce) {
	.gl-btn, .gl-btn .btn-icon-wrapper svg, .gl-faq-item__q::after, .gl-card.card { transition: none; }
	.gl-card.card:hover { transform: none; }
}

/* ---------- Editor only ---------- */
.editor-styles-wrapper .gl-hide-desktop,
.editor-styles-wrapper .gl-hide-tablet,
.editor-styles-wrapper .gl-hide-mobile { display: revert !important; opacity: .55; }

.editor-styles-wrapper .gl-faq-item__a { display: block; }
.editor-styles-wrapper .gl-split > .img-div .img { cursor: pointer; }
.editor-styles-wrapper .gl-img-placeholder { margin: auto; }

/* Arrow stays white on the purple circle in every section variant */
.gl-btn .btn-icon-wrapper { color: #fff; }

/* Loose photos in a section column: keep them a readable size instead of spanning the full width */
.gl-section__inner > .wp-block-image, .gl-split__text > .wp-block-image { max-width: 640px; }
.gl-split__text > .wp-block-image img { max-height: 160px; width: auto; }

/* Plain grid columns read as boxes (office cards, map + directions) */
.gl-grid > .gl-col { padding: 28px; border-radius: var(--gl-radius); background: #fff; box-shadow: var(--gl-shadow); }
.gl-section--white .gl-grid > .gl-col { background: var(--gl-sky); box-shadow: none; }
.gl-grid > .gl-col > p:first-child strong:first-child { color: var(--gl-purple); font-size: 1.1em; }
.gl-col iframe { display: block; width: 100%; min-height: 380px; height: 100%; border-radius: 10px; }
.gl-grid > .gl-col:has(> iframe:only-child) { padding: 0; overflow: hidden; }
.gl-section__inner > .wp-block-image img { max-height: 420px; width: auto; }

/* Long text beside a photo (news articles, long intros): show the whole photo and keep it in view */
@media (min-width: 768px) {
	.gl-split:has(> .gl-split__text > :nth-child(7)) { align-items: flex-start; }
	.gl-split:has(> .gl-split__text > :nth-child(7)) > .img-div { align-self: flex-start; position: sticky; top: 140px; min-height: 0; }
	.gl-split:has(> .gl-split__text > :nth-child(7)) > .img-div .img { position: static; height: auto; }
}

/* Cards in a grid: body fills the card so a closing button row lines up along the bottom */
.gl-grid .gl-card.card > .gl-card__body { display: flex; flex-direction: column; flex: 1; }
.gl-grid .gl-card.card > .gl-card__body > .gl-buttons:last-child { margin-top: auto; padding-top: 16px; }
.gl-grid .gl-card.card > .gl-card__body > .gl-buttons:only-child { padding-top: 4px; }

/* ==========================================================================
   Services hub (/services/ — sections anchored #svc-intro and #svc-<group>)
   Editorial layout: numbered chapters, sticky photo column, numbered cards,
   "also explore" chips. Everything is scoped to the #svc-* anchors.
   ========================================================================== */
.gl-section[id^="svc-"] { scroll-margin-top: 110px; }
.ip-section .wrap:has(> #svc-intro) { counter-reset: svcgroup; }
@media (prefers-reduced-motion: no-preference) { html:has(#svc-intro) { scroll-behavior: smooth; } }

/* ---- Intro: iris rings + starburst watermark ---- */
#svc-intro { overflow: hidden; isolation: isolate; background: radial-gradient(ellipse at 50% 115%, #fff 0, var(--gl-sky) 60%); }
#svc-intro::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: 50%;
	top: 50%;
	width: min(1100px, 140vw);
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: repeating-radial-gradient(circle, transparent 0 54px, rgb(158 146 176 / 22%) 55px 56px);
	-webkit-mask: radial-gradient(circle, #000 0 38%, transparent 70%);
	mask: radial-gradient(circle, #000 0 38%, transparent 70%);
}
#svc-intro::after {
	content: "";
	position: absolute;
	z-index: -1;
	right: -160px;
	bottom: -260px;
	width: 640px;
	aspect-ratio: 1;
	background: url("../../images/dark-icon.png") center / contain no-repeat;
	opacity: .08;
}
#svc-intro .gl-sec-head .h2-lg {
	padding-bottom: .14em;
	font-size: clamp(2.8rem, 6.4vw, 5.4rem);
	line-height: 1.02;
	letter-spacing: -.01em;
	background: linear-gradient(100deg, var(--gl-purple) 0%, var(--gl-purple-2) 45%, var(--gl-purple) 70%);
	background-size: 220% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
#svc-intro .gl-sec-head .eyebrow { letter-spacing: 6px; }
#svc-intro .gl-section__inner > p { font-size: 1.12em; }

/* jump chips: frosted pills, arrow points down */
#svc-intro .gl-buttons { justify-content: center; gap: 12px; margin: 34px auto 0; max-width: 980px; }
.entry #svc-intro a.button.gl-btn,
#svc-intro .button.gl-btn {
	padding: 8px 8px 8px 22px;
	border: 1px solid rgb(79 41 115 / 16%);
	background: rgb(255 255 255 / 72%);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	box-shadow: 0 6px 18px rgb(79 41 115 / 8%);
	color: var(--gl-purple);
	font-size: .95rem;
	transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.entry #svc-intro a.button.gl-btn:hover,
#svc-intro .button.gl-btn:hover { background: var(--gl-purple); color: #fff; transform: translateY(-2px); box-shadow: 0 12px 26px rgb(79 41 115 / 22%); }
#svc-intro .gl-btn .btn-icon-wrapper { width: 32px; height: 32px; margin-left: 12px; background: var(--gl-lavender); }
#svc-intro .gl-btn .btn-icon-wrapper svg,
#svc-intro .gl-btn:hover .btn-icon-wrapper svg { width: 16px; height: 16px; transform: rotate(90deg); }

/* ---- Chapters: numeral + heading + photo (sticky) | cards ---- */
.gl-section[id^="svc-"]:not(#svc-intro) { counter-increment: svcgroup; }
.gl-section[id^="svc-"]:not(#svc-intro) > .gl-section__inner > .gl-grid--2 {
	grid-template-columns: minmax(250px, .82fr) 2fr;
	gap: clamp(32px, 5vw, 80px);
	align-items: start;
	margin-bottom: 0;
}
.gl-section[id^="svc-"] .gl-grid > .gl-col { padding: 0; background: none; box-shadow: none; border-radius: 0; }
.gl-section[id^="svc-"]:not(#svc-intro) > .gl-section__inner > .gl-grid--2 > .gl-col:first-child { position: sticky; top: 130px; isolation: isolate; }

.gl-section[id^="svc-"]:not(#svc-intro) > .gl-section__inner > .gl-grid--2 > .gl-col:first-child::before {
	content: counter(svcgroup, decimal-leading-zero);
	display: block;
	margin-bottom: 6px;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--gl-lavender);
	font: 600 clamp(4.2rem, 7.5vw, 7rem) / .9 futura-pt, sans-serif;
	letter-spacing: -.02em;
}
.gl-section[id^="svc-"] .gl-col:first-child > .gl-sec-head { margin-bottom: 26px; }
.gl-section[id^="svc-"] .gl-col:first-child > .gl-sec-head > h2 { font-size: clamp(1.9rem, 2.6vw, 2.6rem); line-height: 1.12; }
.gl-section[id^="svc-"] .gl-col:first-child > .gl-sec-head::after {
	content: "";
	display: block;
	width: 72px;
	height: 4px;
	margin-top: 18px;
	border-radius: 4px;
	background: linear-gradient(90deg, var(--gl-purple), var(--gl-lavender));
}

/* photo: rounded portrait with a tilted gradient halo */
.gl-section[id^="svc-"] .gl-col:first-child > .wp-block-image { position: relative; max-width: none; margin: 0; }
.gl-section[id^="svc-"] .gl-col:first-child > .wp-block-image::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 14px -14px -14px 14px;
	border-radius: 26px;
	background: conic-gradient(from 210deg, var(--gl-purple), var(--gl-lavender), #e7e4ec, var(--gl-purple));
	opacity: .55;
	transform: rotate(2.5deg);
	transition: transform .6s ease;
}
.gl-section[id^="svc-"] .gl-col:first-child > .wp-block-image img {
	display: block;
	width: 100%;
	max-height: none;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 22px;
	box-shadow: 0 18px 40px rgb(79 41 115 / 18%);
}
.gl-section[id^="svc-"]:hover .gl-col:first-child > .wp-block-image::before { transform: rotate(-2deg); }

/* ---- Service cards ---- */
.gl-section[id^="svc-"] .gl-col > .gl-grid { gap: 22px; margin-bottom: 0; counter-reset: svccard; }
.gl-section[id^="svc-"] .gl-col .gl-card.card {
	counter-increment: svccard;
	overflow: hidden;
	padding: 36px 30px 26px;
	border: 1px solid rgb(79 41 115 / 8%);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 1px 0 rgb(79 41 115 / 5%), 0 14px 34px rgb(79 41 115 / 8%);
	transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s ease, border-color .35s ease;
}
.gl-section--white[id^="svc-"] .gl-col .gl-card.card { background: linear-gradient(180deg, #fff, #faf9fc); }
.gl-section[id^="svc-"] .gl-col .gl-card.card::before {
	content: counter(svccard, decimal-leading-zero);
	position: absolute;
	top: 20px;
	right: 24px;
	color: rgb(158 146 176 / 30%);
	font: 600 2.6rem / 1 futura-pt, sans-serif;
	transition: color .35s ease, transform .35s ease;
}
.gl-section[id^="svc-"] .gl-col .gl-card.card::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 64px;
	height: 5px;
	border-radius: 0 0 5px 0;
	background: linear-gradient(90deg, var(--gl-purple), var(--gl-lavender));
	transition: width .5s cubic-bezier(.2, .7, .2, 1);
}
.gl-section[id^="svc-"] .gl-col .gl-card.card:hover { transform: translateY(-6px); border-color: rgb(79 41 115 / 18%); box-shadow: 0 26px 52px rgb(79 41 115 / 18%); }
.gl-section[id^="svc-"] .gl-col .gl-card.card:hover::after { width: 100%; }
.gl-section[id^="svc-"] .gl-col .gl-card.card:hover::before { color: rgb(79 41 115 / 22%); transform: scale(1.08); }
.entry .gl-section[id^="svc-"] .gl-card .h4-orange,
.gl-section[id^="svc-"] .gl-card .h4-orange { margin-bottom: 14px; padding-right: 3.4rem; font-size: 1.4rem; line-height: 1.2; }
.gl-section[id^="svc-"] .gl-card .gl-card__body p { color: #4a4452; font-size: .95em; line-height: 1.7em; }

/* Learn more: quiet text link + arrow circle; the whole card is the click target */
.entry .gl-section[id^="svc-"] .gl-card a.button.gl-btn,
.gl-section[id^="svc-"] .gl-card .button.gl-btn { position: static; padding: 0; background: none; color: var(--gl-purple); font-size: .95rem; }
.gl-section[id^="svc-"] .gl-card .button.gl-btn::after { content: ""; position: absolute; z-index: 1; inset: 0; border-radius: 20px; }
.gl-section[id^="svc-"] .gl-card .gl-btn .btn-icon-wrapper { width: 36px; height: 36px; margin-left: 12px; background: var(--gl-wash); color: var(--gl-purple); transition: background-color .3s ease, color .3s ease; }
.gl-section[id^="svc-"] .gl-card.card:hover .gl-btn .btn-icon-wrapper { background: var(--gl-purple); color: #fff; }
.gl-section[id^="svc-"] .gl-card.card:hover .gl-btn .btn-icon-wrapper svg { transform: rotate(0deg); }
.gl-section[id^="svc-"] .gl-card .gl-btn:focus-visible { outline: none; }
.gl-section[id^="svc-"] .gl-card.card:has(.gl-btn:focus-visible) { outline: 3px solid var(--gl-purple); outline-offset: 3px; }

/* ---- "Also explore" chips (services without their own copy yet) ---- */
.gl-section[id^="svc-"] .gl-col > .gl-buttons {
	align-items: center;
	gap: 10px;
	margin: 24px 0 0;
	padding: 20px 22px 22px;
	border: 1.5px dashed rgb(158 146 176 / 60%);
	border-radius: 20px;
}
.gl-section[id^="svc-"] .gl-col > .gl-buttons::before {
	content: "Also explore";
	width: 100%;
	margin-bottom: 4px;
	color: var(--gl-purple-2);
	font: 400 .8rem / 1.2 futura-pt, sans-serif;
	letter-spacing: 3px;
	text-transform: uppercase;
}
.entry .gl-section[id^="svc-"] .gl-col > .gl-buttons a.button.gl-btn,
.gl-section[id^="svc-"] .gl-col > .gl-buttons .button.gl-btn {
	padding: 7px 7px 7px 18px;
	border: 1px solid rgb(79 41 115 / 15%);
	background: #fff;
	color: var(--gl-purple);
	font-size: .92rem;
	transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.entry .gl-section[id^="svc-"] .gl-col > .gl-buttons a.button.gl-btn:hover,
.gl-section[id^="svc-"] .gl-col > .gl-buttons .button.gl-btn:hover { background: var(--gl-purple); color: #fff; transform: translateY(-2px); }
.gl-section[id^="svc-"] .gl-col > .gl-buttons .gl-btn .btn-icon-wrapper { width: 28px; height: 28px; margin-left: 10px; background: var(--gl-lavender); }
.gl-section[id^="svc-"] .gl-col > .gl-buttons .gl-btn .btn-icon-wrapper svg { width: 14px; height: 14px; }

/* ---- Motion: cards and photos rise into view (scroll-driven, progressive) ---- */
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.gl-section[id^="svc-"] .gl-col .gl-card.card,
		.gl-section[id^="svc-"] .gl-col:first-child > .wp-block-image {
			animation: svc-rise linear both;
			animation-timeline: view();
			animation-range: entry 0% cover 28%;
		}
	}
	#svc-intro::after { animation: svc-spin 160s linear infinite; }
	#svc-intro .gl-sec-head .h2-lg { animation: svc-sheen 9s ease-in-out infinite; }
}
@keyframes svc-rise { from { opacity: 0; translate: 0 44px; } to { opacity: 1; translate: 0 0; } }
@keyframes svc-spin { to { rotate: 360deg; } }
@keyframes svc-sheen { 0%, 100% { background-position: 0% 0; } 50% { background-position: 100% 0; } }

/* ---- Tablet / phone ---- */
@media (max-width: 991px) {
	.gl-section[id^="svc-"]:not(#svc-intro) > .gl-section__inner > .gl-grid--2 { grid-template-columns: 1fr; gap: 36px; }
	.gl-section[id^="svc-"]:not(#svc-intro) > .gl-section__inner > .gl-grid--2 > .gl-col:first-child {
		position: static;
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		column-gap: 22px;
	}
	.gl-section[id^="svc-"]:not(#svc-intro) > .gl-section__inner > .gl-grid--2 > .gl-col:first-child::before { grid-row: 1; margin: 0; font-size: 4.2rem; }
	.gl-section[id^="svc-"] .gl-col:first-child > .gl-sec-head { grid-row: 1; margin: 0; }
	.gl-section[id^="svc-"] .gl-col:first-child > .wp-block-image { grid-column: 1 / -1; margin-top: 26px; }
	.gl-section[id^="svc-"] .gl-col:first-child > .wp-block-image img { aspect-ratio: 16 / 8; }
}
@media (max-width: 479px) {
	#svc-intro .gl-buttons { gap: 8px; }
	#svc-intro .button.gl-btn { font-size: .85rem; padding-left: 16px; }
	.gl-section[id^="svc-"] .gl-col .gl-card.card { padding: 30px 24px 22px; }
	.gl-section[id^="svc-"] .gl-col:first-child > .wp-block-image img { aspect-ratio: 4 / 3; }
}
@media (max-width: 767px) {
	.gl-section[id^="svc-"] .gl-grid .gl-card.card > .gl-card__body > .gl-buttons:last-child { margin-top: 6px; padding-top: 10px; }
}

/* Category hubs reuse one Services chapter; a lone chapter needs no "01" */
#svc-hub > .gl-section__inner > .gl-grid--2 > .gl-col:first-child::before { display: none; }
#svc-hub .gl-col:first-child > p { margin-bottom: 28px; color: #4a4452; }

/* ---------- Self-tests ([ae_self_test]) ---------- */
#self-test > .gl-section__inner { max-width: 940px; }
.ae-self-test { margin-top: 36px; counter-reset: none; }
.ae-self-test__list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.gl-section .ae-self-test__list > li { margin: 0; padding: 0; }
.gl-section .ae-self-test__list > li::before { display: none; }
.ae-self-test__item fieldset {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	margin: 0;
	padding: 20px 22px 20px 26px;
	border: 1px solid rgb(79 41 115 / 10%);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 8px 22px rgb(79 41 115 / 7%);
	transition: border-color .25s ease, box-shadow .25s ease;
}
.ae-self-test__item.is-answered fieldset { border-color: rgb(79 41 115 / 28%); }
.ae-self-test__item.is-missing fieldset { border-color: #b4235a; box-shadow: 0 0 0 3px rgb(180 35 90 / 14%); }
.ae-self-test__item legend { float: left; display: flex; align-items: baseline; gap: 14px; padding: 0; color: #333; font-size: 1.05rem; line-height: 1.45; }
.ae-self-test__num { flex: 0 0 auto; color: var(--gl-lavender); font: 600 1.35rem / 1 futura-pt, sans-serif; }
.ae-self-test__choices { display: flex; flex: 0 0 auto; gap: 8px; }
.ae-self-test__choices label { position: relative; cursor: pointer; }
.ae-self-test__choices input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ae-self-test__choices span {
	display: inline-block;
	min-width: 74px;
	padding: 10px 18px;
	border: 1.5px solid rgb(79 41 115 / 22%);
	border-radius: 50px;
	color: var(--gl-purple);
	font-weight: 700;
	text-align: center;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.ae-self-test__choices label:hover span { border-color: var(--gl-purple); }
.ae-self-test__choices input:checked + span { border-color: var(--gl-purple); background: var(--gl-purple); color: #fff; }
.ae-self-test__choices input:focus-visible + span { outline: 3px solid var(--gl-lavender); outline-offset: 2px; }

.ae-self-test__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin-top: 28px; }
.ae-self-test__progress { flex: 1 1 100%; height: 6px; overflow: hidden; border-radius: 6px; background: rgb(79 41 115 / 12%); }
.ae-self-test__progress span { display: block; width: 0; height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--gl-purple), var(--gl-lavender)); transition: width .35s ease; }
.gl-section .ae-self-test__count { flex: 1; margin: 0; color: #5c5466; font-size: .95rem; }
.ae-self-test__submit, .ae-self-test__reset, .ae-self-test__cta {
	padding: 14px 30px;
	border: 0;
	border-radius: 50px;
	background: var(--gl-purple);
	color: #fff;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color .2s ease, transform .2s ease;
}
.ae-self-test__submit:hover, .ae-self-test__cta:hover { background: var(--gl-purple-2); transform: translateY(-2px); }
.ae-self-test__submit:focus-visible, .ae-self-test__reset:focus-visible, .ae-self-test__cta:focus-visible { outline: 3px solid var(--gl-lavender); outline-offset: 3px; }

.ae-self-test__result {
	position: relative;
	margin-top: 30px;
	padding: 40px 40px 34px;
	overflow: hidden;
	border-radius: 22px;
	background: var(--gl-purple) radial-gradient(circle at 0 0, #000000a0, #fff0 75%);
	color: #fff;
	text-align: center;
}
.ae-self-test__result::after {
	content: "";
	position: absolute;
	right: -90px;
	bottom: -110px;
	width: 320px;
	aspect-ratio: 1;
	background: url("../../images/dark-icon.png") center / contain no-repeat;
	opacity: .12;
	pointer-events: none;
}
.ae-self-test__result:focus { outline: none; }
.gl-section .ae-self-test__score { margin: 0 0 8px; color: #d9d2e4; font: 400 .82rem / 1.4 futura-pt, sans-serif; letter-spacing: 3px; text-transform: uppercase; }
.gl-section .ae-self-test__title { margin: 0 0 12px; color: #fff; font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.gl-section .ae-self-test__text { max-width: 640px; margin: 0 auto 24px; color: #efeaf5; }
.entry .gl-section a.ae-self-test__cta, .ae-self-test__cta { display: inline-block; margin: 0 6px 8px; background: #fff; color: var(--gl-purple); text-decoration: none; }
.entry .gl-section a.ae-self-test__cta:hover { background: #e7e4ec; color: var(--gl-purple); }
.ae-self-test__reset { margin: 0 6px 8px; border: 1.5px solid rgb(255 255 255 / 55%); background: transparent; }
.ae-self-test__reset:hover { background: rgb(255 255 255 / 12%); }
.gl-section .ae-self-test__note { margin: 22px 0 0; color: #6b6275; font-size: .85rem; text-align: center; }

@media (max-width: 767px) {
	.ae-self-test__item fieldset { flex-direction: column; align-items: stretch; gap: 14px; padding: 18px; }
	.ae-self-test__choices { justify-content: flex-start; }
	.ae-self-test__choices label { flex: 1; }
	.ae-self-test__choices span { width: 100%; }
	.ae-self-test__result { padding: 32px 22px 26px; }
}
