/* Inner Evolution: warm-black "dawn" look. Hero horizon, glass cards, pills, buttons. */

/* ---------- Headings: italic words become the peach serif accent ---------- */
/* Roma can highlight a word with Cmd+I in the editor. */
:is(h1, h2, h3) em {
	font-family: var(--wp--preset--font-family--accent);
	font-style: italic;
	font-weight: 400;
	letter-spacing: 0;
	padding-right: 0.06em;
	background: var(--wp--preset--gradient--peach-text);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--wp--preset--color--peach);
}

/* ---------- Page width ---------- */
/* Decorative glows reach past the screen edge on purpose; never let them make the page
   scroll sideways on phones. clip (not hidden) keeps the sticky header working. */
html,
body {
	overflow-x: hidden;
}

@supports (overflow: clip) {
	html,
	body {
		overflow-x: clip;
	}
}

/* ---------- Buttons ---------- */
/* Default: dark pill with an ember circle and » mark. */
.wp-block-button:not(.is-style-light):not(.is-style-ghost) .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	transition: border-color 0.25s ease, background-color 0.25s ease;
}

/* Hover: the border warms to peach, like the outline buttons */
.wp-block-button:not(.is-style-light):not(.is-style-ghost) .wp-block-button__link:hover {
	border-color: rgba(237, 184, 146, 0.55);
}

.wp-block-button:not(.is-style-light):not(.is-style-ghost) .wp-block-button__link::before {
	content: "»";
	display: grid;
	place-items: center;
	width: 2.1rem;
	height: 2.1rem;
	flex: none;
	border-radius: 50%;
	background: var(--wp--preset--color--ember);
	color: var(--wp--preset--color--base);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 0 18px rgba(226, 112, 58, 0.45);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Hover: the ember circle's halo opens up */
.wp-block-button .wp-block-button__link:hover::before,
.wp-block-button .wp-block-button__link:focus-visible::before {
	box-shadow: 0 0 0 5px rgba(226, 112, 58, 0.24), 0 0 34px 4px rgba(226, 112, 58, 0.75);
}

@media (prefers-reduced-motion: no-preference) {
	.wp-block-button .wp-block-button__link:hover::before {
		transform: translateX(3px);
	}
}

/* Light: white pill, used in the header. */
.wp-block-button.is-style-light .wp-block-button__link {
	background: var(--wp--preset--color--text);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--text);
	padding: 0.7rem 1.3rem;
	font-weight: 600;
}

.wp-block-button.is-style-light .wp-block-button__link {
	transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

/* Hover: the white pill warms towards peach, with a soft glow beneath */
.wp-block-button.is-style-light .wp-block-button__link:hover {
	background: #F8E7D9;
	border-color: #F8E7D9;
	color: var(--wp--preset--color--base);
	box-shadow: 0 8px 26px -8px rgba(237, 184, 146, 0.65);
}

/* Ghost: plain outline, no circle. */
.wp-block-button.is-style-ghost .wp-block-button__link {
	padding: 0.75rem 1.3rem;
	transition: border-color 0.25s ease, background-color 0.25s ease;
}

/* Hover: outline buttons only warm their border */
.wp-block-button.is-style-ghost .wp-block-button__link:hover {
	border-color: rgba(237, 184, 146, 0.55);
}

/* Outline buttons (default and ghost) sit on a dark, softly blurred fill with a faint dark halo,
   so they stay readable over the light glow at the bottom of the heroes */
.wp-block-button:not(.is-style-light) .wp-block-button__link {
	background-color: rgba(14, 13, 12, 0.31);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 0 0 1px rgba(14, 13, 12, 0.08), 0 10px 36px rgba(8, 7, 6, 0.22);
}

.wp-block-button:not(.is-style-light) .wp-block-button__link:hover {
	background-color: rgba(24, 22, 21, 0.36);
}

/* ---------- Hero ---------- */
.ie-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--wp--preset--gradient--horizon), var(--wp--preset--color--base);
}

/* Film grain over the hero */
.ie-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	opacity: 0.09;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Thin frame with small ember squares on the corners */
.ie-frame {
	position: relative;
	border: 1px solid rgba(226, 112, 58, 0.4);
	background:
		linear-gradient(var(--wp--preset--color--ember), var(--wp--preset--color--ember)) 0 0 / 7px 7px no-repeat,
		linear-gradient(var(--wp--preset--color--ember), var(--wp--preset--color--ember)) 100% 0 / 7px 7px no-repeat,
		linear-gradient(var(--wp--preset--color--ember), var(--wp--preset--color--ember)) 0 100% / 7px 7px no-repeat,
		linear-gradient(var(--wp--preset--color--ember), var(--wp--preset--color--ember)) 100% 100% / 7px 7px no-repeat;
	background-origin: border-box;
}

.ie-frame h1 {
	line-height: 1.02;
	font-size: clamp(2.75rem, 1.6rem + 5vw, 5.5rem);
}

/* Floating tags around the frame, each with a small icon for what it says */
p.ie-tag {
	position: absolute;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0.35rem 0.9rem 0.35rem 0.7rem;
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	line-height: 1.3;
	white-space: nowrap;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--text);
}

p.ie-tag::before {
	content: "";
	flex: none;
	width: 15px;
	height: 15px;
	background: currentColor;
	-webkit-mask: var(--ie-tag-icon) center / contain no-repeat;
	mask: var(--ie-tag-icon) center / contain no-repeat;
}

p.ie-tag--a {
	--ie-tag-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7.5' r='4'/%3E%3Cpath d='M4.5 21c.6-4.8 3.6-7.5 7.5-7.5s6.9 2.7 7.5 7.5'/%3E%3C/svg%3E");
	left: -4%;
	top: 60%;
	background: var(--wp--preset--color--ember);
}

p.ie-tag--b {
	--ie-tag-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='10.5' width='15' height='10.5' rx='2.5'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%3E%3C/svg%3E");
	right: -3%;
	top: 10%;
}

p.ie-tag--c {
	--ie-tag-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='1.3' fill='black' stroke='none'/%3E%3Cellipse cx='12' cy='12' rx='10' ry='4.2'/%3E%3Cellipse cx='12' cy='12' rx='10' ry='4.2' transform='rotate(60 12 12)'/%3E%3Cellipse cx='12' cy='12' rx='10' ry='4.2' transform='rotate(120 12 12)'/%3E%3C/svg%3E");
	right: 22%;
	bottom: -14px;
	background: var(--wp--preset--color--cream);
}

@media (prefers-reduced-motion: no-preference) {
	p.ie-tag {
		animation: ie-float 6s ease-in-out infinite;
	}

	p.ie-tag--b {
		animation-delay: -2s;
	}

	p.ie-tag--c {
		animation-delay: -4s;
	}
}

@keyframes ie-float {
	50% {
		translate: 0 -6px;
	}
}

/* Phones: no floating. All three sit in a centred row inside the frame, where they can't be missed */
@media (max-width: 700px) {
	.ie-frame {
		text-align: center;
	}

	p.ie-tag,
	p.ie-tag--a,
	p.ie-tag--b,
	p.ie-tag--c {
		position: static;
		margin: 0.5rem 0.15rem 0 !important;
		animation: none;
		vertical-align: top;
	}

	.ie-frame h1 + p {
		margin-bottom: 0.9rem;
	}
}

/* Narrow phones: smaller pills keep them on two lines and the button on screen */
@media (max-width: 400px) {
	.ie-frame {
		padding-block: 1.5rem !important;
		padding-inline: 1rem !important;
	}

	p.ie-tag,
	p.ie-tag--a,
	p.ie-tag--b,
	p.ie-tag--c {
		margin: 0.4rem 0.1rem 0 !important;
		padding: 0.3rem 0.65rem 0.3rem 0.5rem;
		font-size: 0.7rem;
	}
}

/* ---------- Small label above a statement ---------- */
p.ie-label {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

/* ---------- Warm glows behind sections ---------- */
.ie-dawn {
	position: relative;
	isolation: isolate;
}

.ie-dawn::before,
.ie-dawn::after {
	content: "";
	position: absolute;
	z-index: -1;
	pointer-events: none;
	border-radius: 50%;
}

.ie-dawn::before {
	width: min(70vw, 720px);
	aspect-ratio: 1;
	top: -10%;
	left: -12%;
	background: var(--wp--preset--gradient--peach-glow);
}

.ie-dawn::after {
	width: min(60vw, 620px);
	aspect-ratio: 1;
	right: -10%;
	bottom: -15%;
	background: var(--wp--preset--gradient--ember-glow);
}

.ie-glow-sand {
	position: relative;
	isolation: isolate;
}

.ie-glow-sand::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: -20% -10%;
	pointer-events: none;
	background: var(--wp--preset--gradient--ember-glow);
}

/* ---------- Glass card ---------- */
.is-style-glass-card {
	position: relative;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 20px;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
	transition: transform 0.25s ease, border-color 0.25s ease;
}

.is-style-glass-card:hover {
	border-color: rgba(255, 255, 255, 0.16);
}

@media (prefers-reduced-motion: no-preference) {
	.is-style-glass-card:hover {
		transform: translateY(-3px);
	}
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.is-style-glass-card {
		background: var(--wp--preset--color--base-raised);
	}
}

@media (prefers-reduced-transparency: reduce) {
	.is-style-glass-card {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		background: var(--wp--preset--color--base-raised);
	}
}

/* ---------- Service cards ---------- */
.ie-service {
	min-height: 22rem;
	overflow: hidden;
	isolation: isolate;
}

.ie-service::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0;
	background: linear-gradient(180deg, rgba(226, 112, 58, 0) 35%, rgba(226, 140, 90, 0.22) 100%);
	transition: opacity 0.35s ease;
}

.ie-service:hover::before,
.ie-service:focus-within::before {
	opacity: 1;
}

/* Ember + circle at the bottom of each service card */
.ie-service::after {
	content: "+";
	display: grid;
	place-items: center;
	width: 1.75rem;
	height: 1.75rem;
	margin-top: auto;
	border-radius: 50%;
	background: var(--wp--preset--color--ember);
	color: var(--wp--preset--color--base);
	font-weight: 700;
	line-height: 1;
}

@media (max-width: 700px) {
	.ie-service {
		min-height: 0;
		gap: var(--wp--preset--spacing--40);
	}
}

.ie-service h3 {
	line-height: 1.15;
}

p.ie-num {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--x-small);
	opacity: 0.7;
}

/* ---------- Pill tag ---------- */
p.is-style-pill {
	display: inline-block;
	width: fit-content;
	margin: 0;
	padding: 0.35rem 0.8rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.03);
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.4;
}

.wp-block-post-terms.is-style-pill {
	display: inline-block;
	width: fit-content;
	padding: 0.35rem 0.8rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--x-small);
}

.wp-block-post-terms.is-style-pill a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
}

/* ---------- Header: floating glass navbar ---------- */
/* The template-part wrapper sticks to the top; the inner pill floats. */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	/* Logged in: stop below WordPress's admin bar instead of sliding under it */
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}

/* On the home page the hero slides up under the floating bar. */
.home .wp-site-blocks > header.wp-block-template-part,
.page-template-page-landing .wp-site-blocks > header.wp-block-template-part {
	margin-bottom: calc(-1 * var(--ie-header-h, 5.25rem));
}

.home .ie-hero,
.page-template-page-landing .ie-hero:first-child {
	padding-top: calc(var(--ie-header-h, 5.25rem) + var(--wp--preset--spacing--70)) !important;
}

.ie-navbar {
	position: relative;
	isolation: isolate;
	min-height: 3.75rem;
	padding: 0.45rem 0.45rem 0.45rem 1.4rem;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 999px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 30px rgba(0, 0, 0, 0.25);
}

/* The blur sits on a pseudo-element: backdrop-filter on the bar itself would
   trap the full-screen mobile menu (position: fixed) inside the pill. */
.ie-navbar::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background: rgba(20, 19, 18, 0.55);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	backdrop-filter: blur(16px) saturate(140%);
}

@media (prefers-reduced-transparency: reduce) {
	.ie-navbar::before {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		background: var(--wp--preset--color--base-raised);
	}
}

.ie-navbar .wp-block-site-title {
	white-space: nowrap;
}

/* Main links: muted, current page gets an ember dot */
.ie-nav-main .wp-block-navigation-item__content {
	position: relative;
	color: var(--wp--preset--color--text-muted);
	transition: color 0.2s ease;
}

.ie-nav-main .wp-block-navigation-item__content:hover,
.ie-nav-main .current-menu-item > .wp-block-navigation-item__content,
.ie-nav-main .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--wp--preset--color--text);
}

.ie-nav-main .wp-block-navigation-item__content[aria-current="page"]::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -0.55rem;
	width: 5px;
	height: 5px;
	margin-left: -2.5px;
	border-radius: 50%;
	background: var(--wp--preset--color--ember);
}

.ie-only-mobile {
	display: none !important;
}

.ie-nav-main .wp-block-navigation__responsive-container.is-menu-open .ie-only-mobile {
	display: flex !important;
}

/* Utilities: low-contrast log in, language switcher */
.ie-nav-utility {
	font-size: var(--wp--preset--font-size--small);
}

.ie-nav-utility .ie-login > .wp-block-navigation-item__content,
.ie-lang > .wp-block-navigation-submenu__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

.ie-nav-utility .ie-login > .wp-block-navigation-item__content:hover,
.ie-lang > .wp-block-navigation-submenu__toggle:hover,
.ie-lang > .wp-block-navigation-submenu__toggle[aria-expanded="true"] {
	color: var(--wp--preset--color--text);
}

.ie-login > .wp-block-navigation-item__content::before,
.ie-lang > .wp-block-navigation-submenu__toggle::before {
	content: "";
	width: 1rem;
	height: 1rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ie-login > .wp-block-navigation-item__content::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E");
}

.ie-lang > .wp-block-navigation-submenu__toggle::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.7 3.7 5.7 3.7 9s-1.2 6.3-3.7 9c-2.5-2.7-3.7-5.7-3.7-9S9.5 5.7 12 3z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.7 3.7 5.7 3.7 9s-1.2 6.3-3.7 9c-2.5-2.7-3.7-5.7-3.7-9S9.5 5.7 12 3z'/%3E%3C/svg%3E");
}

/* Language dropdown: a small frosted-glass card */
.ie-nav-utility .ie-lang .wp-block-navigation__submenu-container {
	top: calc(100% + 1rem) !important;
	right: 0 !important;
	left: auto !important;
	min-width: 11.5rem !important;
	padding: 0.4rem !important;
	gap: 0.15rem;
	border: 1px solid var(--wp--preset--color--glass-border) !important;
	border-radius: 16px;
	background: rgba(22, 21, 20, 0.82) !important;
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4);
}

.ie-nav-utility .ie-lang .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	width: 100%;
	padding: 0.55rem 0.8rem !important;
	border-radius: 10px;
	color: var(--wp--preset--color--text-muted);
}

.ie-nav-utility .ie-lang .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: rgba(255, 255, 255, 0.06);
	color: var(--wp--preset--color--text);
}

.ie-nav-utility .ie-lang .is-current-lang > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--text);
}

.ie-nav-utility .ie-lang .is-current-lang > .wp-block-navigation-item__content::after {
	content: "";
	width: 6px;
	height: 6px;
	margin-left: auto;
	border-radius: 50%;
	background: var(--wp--preset--color--ember);
}

.ie-navbar .wp-block-button.is-style-light .wp-block-button__link {
	padding: 0.65rem 1.2rem;
	white-space: nowrap;
}

/* Phones: logo | EN | Book | menu */
@media (max-width: 599px) {
	.ie-navbar {
		padding-left: 1.1rem;
	}

	.ie-nav-main {
		order: 3;
	}

	.ie-nav-utility .ie-login {
		display: none !important;
	}

	.ie-navbar .wp-block-button.is-style-light .wp-block-button__link {
		padding: 0.55rem 0.9rem;
		font-size: var(--wp--preset--font-size--x-small);
	}

	.ie-nav-main .wp-block-navigation__responsive-container.is-menu-open {
		padding: 1.5rem max(16px, env(safe-area-inset-left, 0px));
	}

	.ie-nav-main .is-menu-open .wp-block-navigation-item__content {
		font-size: var(--wp--preset--font-size--x-large);
		color: var(--wp--preset--color--text);
	}
}

/* ---------- Misc ---------- */
.is-style-glass-card p:not(.is-style-pill) {
	max-width: 62ch;
}

.ie-link a {
	color: var(--wp--preset--color--text-muted);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
}

.ie-link a:hover {
	color: var(--wp--preset--color--text);
}

.wp-block-post-template > li > .is-style-glass-card {
	height: 100%;
}

.wp-block-search__input {
	background: var(--wp--preset--color--glass);
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 999px;
	color: var(--wp--preset--color--text);
	padding: 0.7rem 1.1rem;
}

/* Keyboard focus in the navbar uses the ember ring instead of the browser blue */
.ie-navbar :focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 3px;
	border-radius: 8px;
}

.ie-navbar :focus:not(:focus-visible) {
	outline: none;
}

/* ---------- Inner pages ---------- */
.ie-hero--page .ie-page-title {
	line-height: 1.02;
	font-size: clamp(2.75rem, 1.6rem + 5vw, 5.5rem);
}

/* Remove the gap between the page content and the full-width hero */
.page-template-page-landing .wp-block-post-content > .ie-hero:first-child {
	margin-block-start: 0;
}

/* "Who it's for" cards: small ember dot */
.ie-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--ember);
	box-shadow: 0 0 14px rgba(226, 112, 58, 0.7);
}

/* Honest "not the right fit" card: dashed, quieter */
.ie-fit.is-style-glass-card {
	border-style: dashed;
	background: transparent;
}

.ie-fit.is-style-glass-card:hover {
	transform: none;
}

/* Journey phases: number + thin line */
.ie-line {
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, rgba(226, 112, 58, 0.6), rgba(226, 112, 58, 0));
}

.ie-phase p.ie-num {
	color: var(--wp--preset--color--ember);
	opacity: 1;
}

/* About: portrait placeholder */
.ie-portrait {
	position: relative;
	aspect-ratio: 4 / 5;
	max-width: 100%;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 24px;
	overflow: hidden;
	padding: var(--wp--preset--spacing--40);
	background:
		radial-gradient(90% 60% at 50% 100%, rgba(217, 195, 160, 0.45), rgba(14, 13, 12, 0) 70%),
		radial-gradient(60% 50% at 30% 20%, rgba(226, 112, 58, 0.18), rgba(14, 13, 12, 0) 70%),
		var(--wp--preset--color--base-raised);
}

.ie-portrait .wp-block-image,
.ie-portrait img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

p.ie-portrait-note {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--x-small);
}

/* Credentials list with ember ticks */
.ie-checks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.6rem;
	font-size: var(--wp--preset--font-size--small);
}

.ie-checks li {
	position: relative;
	padding-left: 1.6rem;
}

.ie-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 0.95rem;
	height: 0.95rem;
	border-radius: 50%;
	background: rgba(226, 112, 58, 0.18);
	box-shadow: inset 0 0 0 1px rgba(226, 112, 58, 0.6);
}

.ie-checks li::after {
	content: "";
	position: absolute;
	left: 0.33rem;
	top: calc(0.3em + 0.22rem);
	width: 0.25rem;
	height: 0.45rem;
	border: solid var(--wp--preset--color--ember);
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
}

/* Key numbers */
p.ie-stat-num {
	font-family: var(--wp--preset--font-family--accent);
	font-style: italic;
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1;
	background: var(--wp--preset--gradient--peach-text);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* FAQ rows */
.ie-faq {
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.03);
	padding: 0 var(--wp--preset--spacing--40);
	transition: border-color 0.2s ease;
}

.ie-faq[open] {
	border-color: rgba(255, 255, 255, 0.16);
}

.ie-faq summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: var(--wp--preset--spacing--40) 0;
	cursor: pointer;
	list-style: none;
	font-weight: 500;
}

.ie-faq summary::-webkit-details-marker {
	display: none;
}

.ie-faq summary::after {
	content: "+";
	display: grid;
	place-items: center;
	flex: none;
	width: 1.6rem;
	height: 1.6rem;
	border-radius: 50%;
	background: var(--wp--preset--color--ember);
	color: var(--wp--preset--color--base);
	font-weight: 700;
	transition: transform 0.25s ease;
}

.ie-faq[open] summary::after {
	transform: rotate(45deg);
}

.ie-faq > p {
	margin-top: 0;
	padding-bottom: var(--wp--preset--spacing--40);
}

/* CTA card centered */
.ie-cta-card {
	text-align: center;
	align-items: center;
}

/* Grids inside vertical flex stacks should use the full width */
.ie-stats {
	align-self: stretch;
	width: 100%;
}

/* Section intros stay at a readable width even when the heading row is wide */
.ie-section-head > p.has-large-font-size {
	max-width: 46rem;
}

/* ---------- Services page ---------- */
/* Highlighted card: ember edge and a soft warm glow */
.is-style-glass-card.ie-featured {
	border-color: rgba(226, 112, 58, 0.55);
	background:
		radial-gradient(120% 70% at 50% 0%, rgba(226, 112, 58, 0.16), rgba(226, 112, 58, 0) 60%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 20px 60px rgba(226, 112, 58, 0.12);
}

.is-style-glass-card.ie-featured:hover {
	border-color: rgba(226, 112, 58, 0.8);
}

p.is-style-pill.ie-pill-ember {
	border-color: transparent;
	background: var(--wp--preset--color--ember);
	color: var(--wp--preset--color--base);
	font-weight: 600;
}

/* Price */
p.ie-price {
	margin: 0;
	font-family: var(--wp--preset--font-family--accent);
	font-style: italic;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 0.9;
	background: var(--wp--preset--gradient--peach-text);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* Tier cards: button sits at the bottom so the three line up */
.ie-tier > .wp-block-buttons {
	margin-top: auto;
}

.ie-tier .wp-block-button,
.ie-tier .wp-block-button__link {
	width: 100%;
	justify-content: center;
}

/* Process steps: ember number */
.ie-step p.ie-num {
	color: var(--wp--preset--color--ember);
	opacity: 1;
}

/* Caution list: hollow ember ring instead of a tick */
.ie-cautions li::before {
	background: transparent;
	box-shadow: inset 0 0 0 1.5px rgba(226, 112, 58, 0.8);
	width: 0.7rem;
	height: 0.7rem;
	top: 0.4em;
}

.ie-cautions li::after {
	display: none;
}

/* ---------- Insights ---------- */
/* Breadcrumbs */
.ie-crumbs,
.ie-crumbs p,
.ie-crumbs .wp-block-post-terms {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

.ie-crumbs a {
	color: var(--wp--preset--color--text-muted);
	text-decoration: none;
}

.ie-crumbs a:hover {
	color: var(--wp--preset--color--text);
}

.ie-crumbs span {
	margin: 0 0.35rem;
	opacity: 0.6;
}

.ie-page-title,
.ie-post-heading {
	max-width: 22ch;
}

.ie-post-heading {
	font-size: clamp(2.25rem, 1.5rem + 3vw, 3.75rem);
	line-height: 1.08;
}

/* Filter pills: All / Video / Podcast / Article */
.ie-filter p {
	margin: 0;
}

.ie-filter a {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding: 0 1.1rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.ie-filter a:hover {
	color: var(--wp--preset--color--text);
	border-color: rgba(255, 255, 255, 0.24);
}

.blog .ie-filter-all a,
.category-video .ie-filter-video a,
.category-podcast .ie-filter-podcast a,
.category-article .ie-filter-article a {
	background: var(--wp--preset--color--text);
	border-color: var(--wp--preset--color--text);
	color: var(--wp--preset--color--base);
}

/* Card image with chips on top */
.ie-post-media {
	position: relative;
	width: 100%;
	border-radius: 18px;
	transition: box-shadow 0.35s ease, transform 0.35s ease;
}

.ie-post-media .wp-block-post-featured-image,
.ie-post-media .wp-block-post-featured-image img {
	margin: 0;
	border-radius: inherit;
	overflow: hidden;
}

.ie-post-media .wp-block-post-featured-image img {
	transition: transform 0.6s ease;
}

@media (prefers-reduced-motion: no-preference) {
	.ie-post-card:hover .ie-post-media .wp-block-post-featured-image img {
		transform: scale(1.04);
	}
}

.ie-post-chips {
	position: absolute;
	left: 0.75rem;
	bottom: 0.75rem;
	z-index: 2;
	pointer-events: none;
}

.ie-chip,
.wp-block-post-terms.ie-chip,
.wp-block-post-date.ie-chip,
.wp-block-post-time-to-read.ie-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	background: rgba(14, 13, 12, 0.72);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	line-height: 1.3;
}

.ie-chip a {
	color: inherit;
	text-decoration: none;
	pointer-events: auto;
}

.ie-post-meta .ie-chip {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Type icon in front of the category chip */
.ie-chip-type::before {
	content: "";
	width: 0.8rem;
	height: 0.8rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 3h9l4 4v14H6z'/%3E%3Cpath d='M9 12h7M9 16h5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 3h9l4 4v14H6z'/%3E%3Cpath d='M9 12h7M9 16h5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.category-video .ie-chip-type,
.ie-type-video .ie-chip-type {
	background: var(--wp--preset--color--ember);
	color: var(--wp--preset--color--base);
	border-color: transparent;
}

.category-video .ie-chip-type::before,
.ie-type-video .ie-chip-type::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5.5v13l11-6.5z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5.5v13l11-6.5z'/%3E%3C/svg%3E");
}

.category-podcast .ie-chip-type,
.ie-type-podcast .ie-chip-type {
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--base);
	border-color: transparent;
}

.category-podcast .ie-chip-type::before,
.ie-type-podcast .ie-chip-type::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 10v4M8 7v10M12 4v16M16 8v8M20 11v2'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 10v4M8 7v10M12 4v16M16 8v8M20 11v2'/%3E%3C/svg%3E");
}

/* Glows: video = ember, podcast = cream. Articles stay plain. */
.category-video .ie-post-media,
.ie-type-video .ie-post-media--cover {
	box-shadow: 0 0 0 1px rgba(226, 112, 58, 0.45), 0 18px 50px -12px rgba(226, 112, 58, 0.45);
}

.category-podcast .ie-post-media,
.ie-type-podcast .ie-post-media--cover {
	box-shadow: 0 0 0 1px rgba(242, 238, 180, 0.35), 0 18px 50px -12px rgba(242, 238, 180, 0.3);
}

.category-video .ie-post-card:hover .ie-post-media {
	box-shadow: 0 0 0 1px rgba(226, 112, 58, 0.7), 0 22px 60px -10px rgba(226, 112, 58, 0.6);
}

.category-podcast .ie-post-card:hover .ie-post-media {
	box-shadow: 0 0 0 1px rgba(242, 238, 180, 0.55), 0 22px 60px -10px rgba(242, 238, 180, 0.45);
}

/* Center badge on media cards: play button or sound wave */
.category-video .ie-post-media:not(.ie-post-media--thumb)::after,
.category-podcast .ie-post-media:not(.ie-post-media--thumb)::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	width: 3.5rem;
	height: 3.5rem;
	margin: -1.75rem 0 0 -1.75rem;
	border-radius: 50%;
	pointer-events: none;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.4rem;
	transition: transform 0.3s ease;
}

.category-video .ie-post-media:not(.ie-post-media--thumb)::after {
	background-color: var(--wp--preset--color--ember);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230E0D0C' d='M8 5.5v13l11-6.5z'/%3E%3C/svg%3E");
	background-position: 55% 50%;
	box-shadow: 0 0 30px rgba(226, 112, 58, 0.7);
}

.category-podcast .ie-post-media:not(.ie-post-media--thumb)::after {
	background-color: var(--wp--preset--color--cream);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E0D0C' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 10v4M8 7v10M12 4v16M16 8v8M20 11v2'/%3E%3C/svg%3E");
	box-shadow: 0 0 30px rgba(242, 238, 180, 0.45);
}

@media (prefers-reduced-motion: no-preference) {
	.ie-post-card:hover .ie-post-media::after {
		transform: scale(1.08);
	}
}

.ie-post-card .wp-block-post-title a {
	text-decoration: none;
}

.ie-post-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--peach);
}

.ie-post-card .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* ---------- Single insight ---------- */
.ie-post-media--cover {
	border-radius: 24px;
}

.ie-article {
	flex: 1 1 32rem;
	max-width: 650px;
	min-width: 0;
}

.ie-article .wp-block-post-content > * + * {
	margin-block-start: var(--wp--preset--spacing--40);
}

.ie-article .wp-block-post-content h2 {
	font-size: var(--wp--preset--font-size--x-large);
	margin-block-start: var(--wp--preset--spacing--60);
}

.ie-aside {
	flex: 0 1 358px;
	min-width: 0;
	position: sticky;
	top: 6.5rem;
}

.ie-aside > * {
	width: 100%;
}

.ie-avatar-photo {
	flex: none;
	width: 3.5rem;
	height: 3.5rem;
	margin: 0;
}

.ie-avatar-photo img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
}

p.ie-avatar {
	display: grid;
	place-items: center;
	flex: none;
	width: 3.5rem;
	height: 3.5rem;
	margin: 0;
	border-radius: 50%;
	background: radial-gradient(circle at 30% 30%, var(--wp--preset--color--peach), var(--wp--preset--color--ember));
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--accent);
	font-style: italic;
	font-size: 1.6rem;
}

.ie-related .wp-block-post-title {
	margin: 0;
	line-height: 1.35;
}

.ie-related .wp-block-post-title a {
	text-decoration: none;
}

.ie-related .ie-post-media--thumb {
	flex: none;
	width: 6.5rem;
	border-radius: 10px;
}

/* Placeholder spot for a video or podcast embed inside a post */
.ie-media-placeholder {
	aspect-ratio: 16 / 9;
	max-width: 100%;
	border-radius: 18px;
	border: 1px dashed rgba(255, 255, 255, 0.2);
	background: var(--wp--preset--color--base-raised);
	color: var(--wp--preset--color--text-muted);
	text-align: center;
	padding: var(--wp--preset--spacing--40);
}

.ie-media-podcast {
	aspect-ratio: auto;
	min-height: 9rem;
}

@media (max-width: 781px) {
	.ie-aside {
		position: static;
		flex-basis: 100%;
	}
}

/* Video posts: the video itself is the hero, so the cover image steps aside */
.ie-type-video .ie-post-media--cover {
	display: none;
}

.ie-type-video .ie-media-video {
	box-shadow: 0 0 0 1px rgba(226, 112, 58, 0.45), 0 18px 50px -12px rgba(226, 112, 58, 0.45);
	border-style: solid;
	border-color: transparent;
}

/* Comment form fields in the dark style */
.wp-block-post-comments-form :is(input[type="text"], input[type="email"], input[type="url"], textarea) {
	width: 100%;
	padding: 0.8rem 1rem;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.04);
	color: var(--wp--preset--color--text);
	font: inherit;
}

.wp-block-post-comments-form :is(input, textarea):focus {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 2px;
}

.wp-block-post-comments-form .comment-notes,
.wp-block-post-comments-form .comment-form-cookies-consent label {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

/* ---------- Contact ---------- */
.ie-contact-grid {
	align-items: start;
}

/* Channel cards: icon, name, value; the whole card is the link */
.ie-channel {
	position: relative;
}

.ie-channel::before {
	content: "";
	width: 2.4rem;
	height: 2.4rem;
	margin-bottom: 0.6rem;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.06);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.1rem;
}

.ie-channel :is(h3) {
	margin: 0;
	font-weight: 600;
}

.ie-ch-value {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
}

.ie-ch-value a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.ie-ch-value a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.ie-channel:hover .ie-ch-value a {
	color: var(--wp--preset--color--peach);
}

/* Icon: ember glyph drawn on ::after over the round ::before badge */
.ie-channel::before {
	background: rgba(226, 112, 58, 0.12);
}

.ie-channel::after {
	content: "";
	position: absolute;
	top: calc(var(--wp--preset--spacing--40) + 0.65rem);
	left: calc(var(--wp--preset--spacing--40) + 0.65rem);
	width: 1.1rem;
	height: 1.1rem;
	background: var(--wp--preset--color--ember);
	-webkit-mask: var(--ie-icon) center / contain no-repeat;
	mask: var(--ie-icon) center / contain no-repeat;
}

.ie-ch-telegram {
	--ie-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.5 3.6 2.9 10.8c-1.1.4-1 1.9.1 2.2l4.6 1.4 1.8 5.6c.3.9 1.4 1.1 2 .4l2.6-2.7 4.6 3.4c.8.6 1.9.1 2.1-.8l3-14.6c.2-1.2-.9-2.1-2.2-1.6zM9.6 14.2l8.2-6.6-6.6 7.6-.4 3.1z'/%3E%3C/svg%3E");
}

.ie-ch-whatsapp {
	--ie-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M4 20l1.3-4A8 8 0 1 1 8.2 19z'/%3E%3Cpath d='M9 9.5c0 3 2.5 5.5 5.5 5.5l1-1.5-2-1-1 1c-1-.5-2-1.5-2.5-2.5l1-1-1-2z' fill='black' stroke='none'/%3E%3C/svg%3E");
}

.ie-ch-email {
	--ie-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
}

.ie-ch-phone {
	--ie-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 3.5 9 6.4c.4.5.4 1.2 0 1.7L7.7 9.6a11 11 0 0 0 6.7 6.7l1.5-1.3c.5-.4 1.2-.4 1.7 0l2.9 2.4c.5.4.6 1.2.1 1.7l-1.4 1.6c-.6.7-1.6 1-2.5.7A17 17 0 0 1 3.6 8.3c-.3-.9 0-1.9.7-2.5L5 5.1c.5-.5 1.2-.4 1.6.1z'/%3E%3C/svg%3E");
}

/* ---------- Contact Form 7 in the dark style ---------- */
.ie-form {
	display: grid;
	gap: var(--wp--preset--spacing--30);
}

.ie-field {
	display: grid;
	gap: 0.45rem;
}

.ie-field-label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.ie-field-label small {
	margin-left: 0.3rem;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 400;
}

.ie-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="url"], select, textarea) {
	width: 100%;
	padding: 0.8rem 1rem;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.04);
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	box-sizing: border-box;
}

.ie-form select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A39C94' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	background-size: 1rem;
	padding-right: 2.5rem;
}

.ie-form select option {
	background: var(--wp--preset--color--base-raised);
	color: var(--wp--preset--color--text);
}

.ie-form ::placeholder {
	color: var(--wp--preset--color--text-muted);
	opacity: 0.7;
}

.ie-form :is(input, select, textarea):focus {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 2px;
	border-color: transparent;
}

/* Radio groups as pills */
.ie-form :is(.wpcf7-radio, .ie-radios) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.ie-form .wpcf7-list-item {
	margin: 0;
}

.ie-form :is(.wpcf7-radio, .ie-radios) label {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding: 0 1rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--text-muted);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ie-form :is(.wpcf7-radio, .ie-radios) input {
	position: absolute;
	opacity: 0;
	inset: 0;
	margin: 0;
	cursor: pointer;
}

.ie-form :is(.wpcf7-radio, .ie-radios) label:hover {
	color: var(--wp--preset--color--text);
	border-color: rgba(255, 255, 255, 0.24);
}

.ie-form :is(.wpcf7-radio, .ie-radios) label:has(input:checked) {
	background: var(--wp--preset--color--text);
	border-color: var(--wp--preset--color--text);
	color: var(--wp--preset--color--base);
}

.ie-form :is(.wpcf7-radio, .ie-radios) label:has(input:focus-visible) {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 2px;
}

/* Consent */
.ie-consent {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--text-muted);
}

.ie-consent label {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
}

.ie-consent input[type="checkbox"] {
	flex: none;
	width: 1.1rem;
	height: 1.1rem;
	margin: 0.1rem 0 0;
	accent-color: var(--wp--preset--color--ember);
}

/* Submit in the house button style */
.ie-form .ie-submit {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	padding: 0.45rem 1.25rem 0.45rem 0.45rem;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.04) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Ccircle cx='17' cy='17' r='17' fill='%23E2703A'/%3E%3Ctext x='17' y='22' font-family='Arial' font-size='15' font-weight='700' text-anchor='middle' fill='%230E0D0C'%3E%C2%BB%3C/text%3E%3C/svg%3E") 0.45rem center / 2.1rem no-repeat;
	padding-left: 3.2rem;
	min-height: 3rem;
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	cursor: pointer;
}

.ie-form .ie-submit:hover {
	background-color: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.24);
}

.ie-form .ie-submit:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.ie-form .wpcf7-spinner {
	margin: 0 0 0 0.5rem;
}

/* Validation and response messages */
.ie-form-card .wpcf7-not-valid-tip {
	margin-top: 0.3rem;
	color: var(--wp--preset--color--peach);
	font-size: var(--wp--preset--font-size--x-small);
}

.ie-form-card .wpcf7 form .wpcf7-response-output {
	margin: var(--wp--preset--spacing--30) 0 0;
	padding: 0.8rem 1rem;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 14px;
	font-size: var(--wp--preset--font-size--small);
}

.ie-form-card .wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--cream);
}

.ie-form-card .wpcf7 form.invalid .wpcf7-response-output,
.ie-form-card .wpcf7 form.unaccepted .wpcf7-response-output {
	border-color: var(--wp--preset--color--peach);
	color: var(--wp--preset--color--peach);
}

/* Grids and the form inside vertical stacks take the full width */
.ie-channels,
.ie-form-card .wpcf7 {
	align-self: stretch;
	width: 100%;
}

/* ---------- Footer: rounded glass card ---------- */
.ie-footer {
	position: relative;
	isolation: isolate;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 28px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015));
}

/* A low warm glow rising from the bottom edge, echoing the hero horizon.
   Drawn inside the card rather than clipped by it, because clipping the card (overflow: hidden)
   would also cut off the 1px glowing rim from glow.js. */
.ie-footer::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(40% 45% at 50% 115%, rgba(217, 195, 160, 0.16), rgba(217, 195, 160, 0));
	pointer-events: none;
}

.ie-footer-cols,
.ie-footer-bottom {
	align-self: stretch;
	width: 100%;
}

p.ie-footer-label {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ie-footer-links,
.ie-footer-contacts {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
}

.ie-footer a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
	transition: color 0.2s ease;
}

.ie-footer a:hover {
	color: var(--wp--preset--color--peach);
}

/* Contact rows with small ember icons */
.ie-footer-contacts li {
	position: relative;
	padding-left: 1.6rem;
}

.ie-footer-contacts li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1rem;
	height: 1rem;
	background: var(--wp--preset--color--ember);
	-webkit-mask: var(--ie-icon) center / contain no-repeat;
	mask: var(--ie-icon) center / contain no-repeat;
}

.ie-fc-place { --ie-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.ie-fc-telegram { --ie-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.5 3.6 2.9 10.8c-1.1.4-1 1.9.1 2.2l4.6 1.4 1.8 5.6c.3.9 1.4 1.1 2 .4l2.6-2.7 4.6 3.4c.8.6 1.9.1 2.1-.8l3-14.6c.2-1.2-.9-2.1-2.2-1.6zM9.6 14.2l8.2-6.6-6.6 7.6-.4 3.1z'/%3E%3C/svg%3E"); }
.ie-fc-whatsapp { --ie-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M4 20l1.3-4A8 8 0 1 1 8.2 19z'/%3E%3C/svg%3E"); }
.ie-fc-email { --ie-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E"); }

/* Social icons in small glass circles */
.ie-social.wp-block-social-links {
	margin: 0;
	gap: 0.5rem;
}

.ie-social .wp-social-link {
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.04);
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.ie-social .wp-social-link:hover {
	border-color: rgba(226, 112, 58, 0.6);
	background: rgba(226, 112, 58, 0.12);
	transform: none;
}

.ie-social .wp-social-link a {
	padding: 0.55rem;
}

.ie-social .wp-social-link svg {
	width: 1.05rem;
	height: 1.05rem;
}

/* Bottom row */
.ie-footer-bottom {
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--glass-border);
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--x-small);
}

.ie-footer-bottom p {
	margin: 0;
}

.ie-footer-legal {
	display: flex;
	gap: 1.25rem;
}

.ie-footer-legal a,
.ie-footer-crisis a {
	color: var(--wp--preset--color--text-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ie-footer-crisis a {
	color: var(--wp--preset--color--text);
}

/* Phones: Services and Explore side by side, brand and contact full width */
@media (max-width: 600px) {
	.ie-footer-cols.wp-block-group {
		grid-template-columns: 1fr 1fr !important;
	}

	.ie-footer-cols > :first-child,
	.ie-footer-cols > :last-child {
		grid-column: 1 / -1;
	}
}

/* ---------- Booking pop-up ---------- */
.ie-modal {
	width: min(560px, calc(100vw - 2rem));
	max-height: calc(100dvh - 2rem);
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--text);
	overflow: auto;
	overscroll-behavior: contain;
}

.ie-modal::backdrop {
	background: rgba(8, 7, 6, 0.65);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

html:has(.ie-modal[open]) {
	overflow: hidden;
}

.ie-modal-card {
	position: relative;
	display: grid;
	gap: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 24px;
	background:
		radial-gradient(120% 60% at 50% 0%, rgba(226, 112, 58, 0.14), rgba(226, 112, 58, 0) 60%),
		var(--wp--preset--color--base-raised);
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
}

.ie-modal-card h2 {
	margin: 0;
	padding-right: 2.5rem;
}

.ie-modal-sub {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

/* The × stays pinned to the top of the pop-up while the form scrolls under it */
.ie-modal-close {
	position: sticky;
	z-index: 2;
	top: 0;
	justify-self: end;
	margin: calc(var(--wp--preset--spacing--50) * -1 + 1rem) calc(var(--wp--preset--spacing--50) * -1 + 1rem) calc(-2.5rem - var(--wp--preset--spacing--30)) 0;
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.04);
	color: var(--wp--preset--color--text);
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}

@media (max-width: 599px) {
	.ie-modal {
		width: calc(100vw - 1.5rem);
		max-height: calc(100dvh - 1.5rem);
	}

	.ie-modal-card {
		padding: 1.5rem 1.25rem;
	}

	.ie-modal-close {
		top: 0.25rem;
		margin: -0.75rem -0.5rem calc(-2.5rem - var(--wp--preset--spacing--30)) 0;
		background: var(--wp--preset--color--base-raised);
	}
}

.ie-modal-close:hover {
	border-color: rgba(255, 255, 255, 0.3);
}

.ie-modal-close:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: no-preference) {
	.ie-modal[open] .ie-modal-card {
		animation: ie-pop 0.3s ease;
	}

	.ie-modal[open]::backdrop {
		animation: ie-fade 0.3s ease;
	}
}

@keyframes ie-pop {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.98);
	}
}

@keyframes ie-fade {
	from {
		opacity: 0;
	}
}

/* ---------- Legal pages (Privacy Policy, Impressum) ---------- */
.ie-legal {
	padding-bottom: var(--wp--preset--spacing--70);
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.75;
}

.ie-legal > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.ie-legal h2 {
	margin-block-start: var(--wp--preset--spacing--60);
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--large);
}

.ie-legal strong,
.ie-legal a {
	color: var(--wp--preset--color--text);
}

.ie-legal ul {
	padding-left: 1.2rem;
}

.ie-legal li + li {
	margin-top: 0.4rem;
}

p.ie-legal-date {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ie-legal-summary {
	color: var(--wp--preset--color--text);
}

.ie-legal-summary h3 {
	margin: 0 0 0.75rem;
	font-size: var(--wp--preset--font-size--medium);
}

.ie-legal-summary:hover {
	transform: none;
}

/* Fill-in blanks: impossible to miss until they are replaced */
mark.ie-fill {
	padding: 0.05em 0.4em;
	border-radius: 6px;
	background: rgba(226, 112, 58, 0.18);
	box-shadow: inset 0 0 0 1px rgba(226, 112, 58, 0.55);
	color: var(--wp--preset--color--peach);
}

/* Dark, slim scrollbars to match the theme (pop-up, and the page itself) */
:root {
	color-scheme: dark;
	scrollbar-color: rgba(243, 239, 234, 0.22) transparent;
}

.ie-modal {
	scrollbar-width: thin;
	scrollbar-color: rgba(226, 112, 58, 0.55) transparent;
}

.ie-modal::-webkit-scrollbar {
	width: 8px;
}

.ie-modal::-webkit-scrollbar-track {
	background: transparent;
	margin: 24px 0;
}

.ie-modal::-webkit-scrollbar-thumb {
	border-radius: 999px;
	background: rgba(226, 112, 58, 0.55);
}

.ie-modal::-webkit-scrollbar-thumb:hover {
	background: var(--wp--preset--color--ember);
}

/* ---------- Courses ---------- */
.ie-course {
	overflow: hidden;
}

.ie-course > :not(.ie-course-art):not(.ie-glow) {
	margin-left: calc(var(--wp--preset--spacing--40) - 0.6rem) !important;
	margin-right: calc(var(--wp--preset--spacing--40) - 0.6rem) !important;
}

.ie-course-foot {
	align-self: stretch;
	margin-top: auto !important;
}

/* Abstract dawn artwork instead of a photo (replaceable by an image later) */
.ie-course-art {
	position: relative;
	align-self: stretch;
	aspect-ratio: 16 / 9;
	max-width: 100%;
	padding: 0.85rem;
	border-radius: 14px;
	overflow: hidden;
	background-color: #151312;
}

.ie-course-art::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0.12;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.ie-art-1 {
	background-image:
		radial-gradient(18% 32% at 50% 48%, rgba(226, 112, 58, 0.9), rgba(226, 112, 58, 0) 100%),
		radial-gradient(90% 70% at 50% 110%, rgba(217, 195, 160, 0.75), rgba(14, 13, 12, 0) 70%);
}

.ie-art-2 {
	background-image:
		radial-gradient(45% 60% at 15% 20%, rgba(226, 112, 58, 0.55), rgba(14, 13, 12, 0) 70%),
		radial-gradient(50% 60% at 90% 90%, rgba(237, 184, 146, 0.45), rgba(14, 13, 12, 0) 70%),
		repeating-linear-gradient(0deg, rgba(226, 112, 58, 0) 0 22px, rgba(226, 112, 58, 0.18) 22px 23px);
}

.ie-art-3 {
	background-image:
		radial-gradient(30% 45% at 30% 50%, rgba(237, 184, 146, 0.5), rgba(14, 13, 12, 0) 70%),
		radial-gradient(30% 45% at 72% 50%, rgba(226, 112, 58, 0.5), rgba(14, 13, 12, 0) 70%),
		radial-gradient(100% 60% at 50% 120%, rgba(242, 238, 180, 0.4), rgba(14, 13, 12, 0) 70%);
}

.ie-chip-format {
	position: relative;
	z-index: 1;
}

p.ie-price.ie-price--sm {
	font-size: var(--wp--preset--font-size--x-large);
}

/* Coming soon and student cards span the row and sit quieter */
.ie-soon-card,
.ie-student-card {
	align-self: stretch;
}

.ie-soon-card:hover,
.ie-student-card:hover {
	transform: none;
}

/* Keep the artwork at 16:9: never let the card squeeze it */
.ie-course-art {
	flex-shrink: 0;
	width: 100%;
}

/* ---------- Account: log in, sign up, personal area ---------- */
.ie-account-hero {
	padding-left: var(--wp--style--root--padding-left, 1.5rem);
	padding-right: var(--wp--style--root--padding-right, 1.5rem);
	padding-top: var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
}

.ie-account-hero > * + * {
	margin-top: var(--wp--preset--spacing--40);
}

.ie-account {
	margin-top: var(--wp--preset--spacing--60) !important;
	padding-bottom: var(--wp--preset--spacing--80);
}

/* Logged in: the dashboard sits on the hero's glow, with a compact greeting on top */
.ie-account-hero--dash {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--70);
}

.ie-account-hero--dash > * {
	max-width: var(--wp--style--global--wide-size, 1280px);
	margin-left: auto !important;
	margin-right: auto !important;
}

.ie-account-hero--dash > * + * {
	margin-top: var(--wp--preset--spacing--40);
}

.ie-account-hero--dash .ie-account {
	padding-bottom: 0;
}

.ie-dash-top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
}

.ie-dash-hello {
	display: grid;
	gap: 0.35rem;
	min-width: 0;
}

.ie-dash-hello .ie-label,
.ie-dash-hello h1,
.ie-dash-hello p {
	margin: 0;
}

.ie-dash-hello h1 {
	font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem);
	line-height: 1.1;
}

.ie-dash-top .wp-block-buttons {
	gap: 0.6rem;
}

/* Computers: just enough room for the floating top bar above the greeting */
@media (min-width: 600px) {
	.page-template-page-landing .ie-hero.ie-account-hero--dash:first-child,
	.ie-account-hero--dash {
		padding-top: calc(var(--ie-header-h, 5.25rem) + var(--wp--preset--spacing--40)) !important;
	}
}

/* Phones already have the Book pill at the bottom; Log out stays */
@media (max-width: 599px) {
	.ie-account-hero--dash .ie-dash-top .wp-block-button:not(.is-style-ghost) {
		display: none;
	}
}

.ie-account h2,
.ie-account h3,
.ie-account p {
	margin: 0;
}

.ie-account-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--40);
	align-items: start;
}

.ie-auth-card,
.ie-account-perks,
.ie-dash-card {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	align-content: start;
	padding: var(--wp--preset--spacing--50);
	min-width: 0;
}

.ie-auth-card:hover,
.ie-account-perks:hover,
.ie-dash-card:hover {
	transform: none;
}

/* Tabs: a small segmented pill */
.ie-tabs {
	justify-self: start;
	display: inline-flex;
	gap: 0.25rem;
	padding: 0.25rem;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.03);
}

.ie-tab {
	padding: 0.55rem 1.1rem;
	border-radius: 999px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.ie-tab:hover {
	color: var(--wp--preset--color--text);
}

.ie-tab.is-active {
	background: var(--wp--preset--color--text);
	color: var(--wp--preset--color--base);
}

.ie-field-label {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.5rem;
}

.ie-field-label small {
	margin-right: auto;
}

.ie-field-link {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 400;
}

.ie-form input:disabled {
	opacity: 0.55;
}

.ie-form fieldset {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.ie-form legend {
	padding: 0;
	margin-bottom: 0.45rem;
}

.ie-radios {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

/* Spam trap, out of sight */
.ie-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ie-auth-switch,
.ie-muted,
.ie-perks-note {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

.ie-perks-note {
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--glass-border);
}

.ie-notice {
	padding: 0.8rem 1rem;
	border: 1px solid var(--wp--preset--color--cream);
	border-radius: 14px;
	color: var(--wp--preset--color--cream);
	font-size: var(--wp--preset--font-size--small);
}

.ie-notice--error {
	border-color: var(--wp--preset--color--peach);
	color: var(--wp--preset--color--peach);
}

/* Dashboard grid: session | courses, then profile beside password and data */
.ie-dash {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
	grid-template-areas:
		"session courses"
		"settings settings";
	gap: var(--wp--preset--spacing--40);
	align-items: start;
}

/* Settings: profile, password and data folded into one panel under the dashboard */
.ie-settings {
	grid-area: settings;
}

.ie-settings-toggle {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.1rem 1.4rem;
	border-radius: 20px;
	cursor: pointer;
	list-style: none;
}

.ie-settings-toggle::-webkit-details-marker {
	display: none;
}

.ie-settings-toggle > svg {
	flex: none;
	width: 1.5rem;
	height: 1.5rem;
	color: var(--wp--preset--color--peach);
}

.ie-settings-text {
	display: grid;
	gap: 0.15rem;
	min-width: 0;
}

.ie-settings-title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
}

.ie-settings-text .ie-muted {
	font-size: var(--wp--preset--font-size--small);
}

/* Chevron on the right, turning when open */
.ie-settings-toggle::after {
	content: "";
	flex: none;
	width: 0.6rem;
	height: 0.6rem;
	margin: 0 0.3rem 0.25rem auto;
	border-right: 1.6px solid currentColor;
	border-bottom: 1.6px solid currentColor;
	color: var(--wp--preset--color--text-muted);
	transform: rotate(45deg);
	transition: transform 0.25s ease;
}

.ie-settings[open] .ie-settings-toggle::after {
	margin-bottom: -0.25rem;
	transform: rotate(-135deg);
}

.ie-settings-toggle:hover {
	border-color: rgba(237, 184, 146, 0.55);
}

.ie-settings-toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 3px;
}

.ie-settings-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
	grid-template-areas:
		"security profile"
		"data profile";
	gap: var(--wp--preset--spacing--40);
	align-items: start;
	margin-top: var(--wp--preset--spacing--40);
}

@media (prefers-reduced-motion: no-preference) {
	.ie-settings[open] .ie-settings-body {
		animation: ie-fade 0.3s ease;
	}
}

.ie-dash-session { grid-area: session; align-self: stretch; }
.ie-dash-courses { grid-area: courses; align-self: stretch; }
.ie-dash-profile { grid-area: profile; align-self: stretch; }
.ie-dash-security { grid-area: security; }
.ie-dash-data { grid-area: data; }

.ie-dash-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
}

.ie-dash-link {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

/* Next session: the date as the hero of the card */
.ie-dash-session .is-style-pill {
	justify-self: start;
}

.ie-account .ie-session-day {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: -0.75rem;
}

.ie-account .ie-session-date {
	font-family: var(--wp--preset--font-family--accent);
	font-style: italic;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1;
	background: var(--wp--preset--gradient--peach-text);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.ie-account .ie-session-time {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	margin-top: -0.5rem;
}

.ie-session-time span {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
}

.ie-note {
	margin: 0;
	padding: 0.9rem 1rem;
	border: 0;
	border-left: 2px solid var(--wp--preset--color--ember);
	border-radius: 0 12px 12px 0;
	background: rgba(255, 255, 255, 0.03);
	font-family: inherit;
	font-style: normal;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
}

.ie-note span {
	display: block;
	margin-bottom: 0.25rem;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

/* My courses */
.ie-my-courses {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ie-my-course {
	display: grid;
	grid-template-columns: 7.5rem minmax(0, 1fr) auto;
	gap: var(--wp--preset--spacing--40);
	align-items: center;
	padding: 0.6rem;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.02);
}

.ie-my-course .ie-course-art {
	width: 100%;
	padding: 0;
	border-radius: 10px;
}

.ie-my-course-body {
	display: grid;
	gap: 0.35rem;
}

.ie-my-course h3 {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
}

.ie-my-course .ie-muted {
	font-size: var(--wp--preset--font-size--x-small);
}

.ie-progress {
	height: 4px;
	margin-top: 0.3rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	overflow: hidden;
}

.ie-progress span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--wp--preset--color--ember), var(--wp--preset--color--peach));
}

.ie-account .ie-progress-label {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--x-small);
}

.ie-my-course-go {
	margin-right: 0.6rem;
	padding: 0.55rem 1.1rem;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.ie-my-course-go:hover {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.24);
	color: var(--wp--preset--color--text);
}

.ie-empty {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	justify-items: start;
	padding: var(--wp--preset--spacing--50);
	border: 1px dashed rgba(255, 255, 255, 0.14);
	border-radius: 16px;
	color: var(--wp--preset--color--text-muted);
}

/* Profile form in two columns */
.ie-form--cols {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--wp--preset--spacing--30);
}

.ie-form--cols .ie-field--full,
.ie-form--cols .ie-submit {
	grid-column: 1 / -1;
}

/* Data requests: quiet text buttons */
.ie-data-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.ie-btn-quiet {
	min-height: 2.75rem;
	padding: 0 1.1rem;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
}

.ie-btn-quiet:hover {
	background: rgba(255, 255, 255, 0.06);
}

.ie-btn-danger {
	color: var(--wp--preset--color--peach);
}

.ie-btn-quiet:focus-visible,
.ie-tab:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 2px;
}

@media (max-width: 860px) {
	.ie-account-grid,
	.ie-dash {
		grid-template-columns: minmax(0, 1fr);
	}

	.ie-dash {
		grid-template-areas: "session" "courses" "settings";
	}

	.ie-settings-body {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "profile" "security" "data";
	}
}

@media (max-width: 520px) {
	.ie-form--cols {
		grid-template-columns: minmax(0, 1fr);
	}

	.ie-my-course {
		grid-template-columns: 5rem minmax(0, 1fr);
	}

	.ie-my-course-go {
		grid-column: 1 / -1;
		justify-self: stretch;
		margin: 0;
		text-align: center;
	}
}

/* ---------- Glass cards: light that follows the cursor (assets/js/glow.js) ---------- */
.ie-glow {
	position: absolute;
	inset: -1px;
	z-index: 0;
	border-radius: inherit;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.4s ease;
	mix-blend-mode: screen;
	background: radial-gradient(140px circle at var(--mx, 50%) var(--my, 50%), rgba(237, 184, 146, 0.14), rgba(226, 112, 58, 0.06) 45%, rgba(14, 13, 12, 0) 72%);
}

/* The rim: the same light, only on the 1px border */
.ie-glow::after {
	content: "";
	position: absolute;
	inset: 0;
	padding: 1px;
	border-radius: inherit;
	background: radial-gradient(100px circle at var(--mx, 50%) var(--my, 50%), rgba(237, 184, 146, 0.6), rgba(237, 184, 146, 0) 70%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}

.is-glowing > .ie-glow,
.is-glowing > summary > .ie-glow {
	/* --glow-k: scroll glare strength on touch screens, weaker away from the middle */
	opacity: var(--glow-k, 1);
}

/* Touch screens (html.ie-glare, set by glow.js): the scroll light is one slanted streak
   across the middle of the screen, shared by every card it crosses and faded at both ends */
.ie-glare .ie-glow {
	background: linear-gradient(var(--ga, 135deg),
		rgba(237, 184, 146, 0) calc(var(--gp, 50%) - 46px),
		rgba(237, 184, 146, 0.07) calc(var(--gp, 50%) - 18px),
		rgba(237, 184, 146, 0.17) var(--gp, 50%),
		rgba(226, 112, 58, 0.06) calc(var(--gp, 50%) + 18px),
		rgba(226, 112, 58, 0) calc(var(--gp, 50%) + 46px));
	-webkit-mask: radial-gradient(var(--mr, 170px) circle at var(--mx, 50%) var(--my, 50%), #000 35%, transparent 100%);
	mask: radial-gradient(var(--mr, 170px) circle at var(--mx, 50%) var(--my, 50%), #000 35%, transparent 100%);
}

.ie-glare .ie-glow::after {
	background: linear-gradient(var(--ga, 135deg),
		rgba(237, 184, 146, 0) calc(var(--gp, 50%) - 30px),
		rgba(237, 184, 146, 0.6) var(--gp, 50%),
		rgba(237, 184, 146, 0) calc(var(--gp, 50%) + 30px));
}

/* FAQ rows hold the light inside their summary; the row itself is the frame */
.ie-faq {
	position: relative;
}

.ie-faq summary > .ie-glow {
	inset: -1px;
	/* inherit would take the square summary's corners, so match the row */
	border-radius: 16px;
}

/* ---------- Button hovers for the theme's own buttons (forms, account) ---------- */
.ie-form .ie-submit,
.ie-btn-quiet,
.ie-my-course-go {
	transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}

.ie-btn-quiet:hover,
.ie-my-course-go:hover {
	border-color: rgba(237, 184, 146, 0.55);
}

/* Form submit: its ember circle is a background image, so the halo is a shadow on the left */
.ie-form .ie-submit:hover:not(:disabled) {
	border-color: rgba(237, 184, 146, 0.55);
	box-shadow: -6px 0 22px -8px rgba(226, 112, 58, 0.7);
}

/* ---------- Card illustrations (line drawings in place of the ember dot) ---------- */
.wp-block-image.ie-card-art {
	align-self: stretch;
	margin: 0 0 calc(var(--wp--preset--spacing--20) * -1);
}

.wp-block-image.ie-card-art img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}

/* No double-tap zoom on touch screens (taps also respond faster); pinch to zoom still works */
html {
	touch-action: manipulation;
}

/* ---------- Phones: Menu + Book pills and the full menu (inc/mobile-nav.php) ---------- */
.ie-fab,
.ie-menu {
	display: none;
}

@media (max-width: 599px) {
	/* The top bar is gone on phones; the pills and the menu take over */
	.wp-site-blocks > header.wp-block-template-part {
		display: none;
	}

	.wp-site-blocks > header.wp-block-template-part + * {
		margin-block-start: 0;
	}

	/* Heroes were spaced to sit under the top bar; without it they move up by about its height */
	.ie-hero,
	.home .ie-hero,
	.page-template-page-landing .ie-hero:first-child {
		padding-top: 4.85rem !important;
	}

	/* Room under the footer so the pills never cover its last line */
	body {
		padding-bottom: calc(6rem + env(safe-area-inset-bottom, 0px));
	}

	/* One dark glass dock across the bottom: Menu on the left, the ember Book pill inside it
	   on the right. It keeps its size; the menu card opens out of it. */
	.ie-fab {
		position: fixed;
		z-index: 95;
		right: max(12px, env(safe-area-inset-right, 0px));
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		left: max(12px, env(safe-area-inset-left, 0px));
		display: flex;
		align-items: stretch;
		justify-content: space-between;
		gap: 0.5rem;
		box-sizing: border-box;
		height: 3.5rem;
		padding: 0.4rem;
		border: 1px solid var(--wp--preset--color--glass-border);
		border-radius: 999px;
		background: rgba(20, 19, 18, 0.62);
		-webkit-backdrop-filter: blur(18px) saturate(140%);
		backdrop-filter: blur(18px) saturate(140%);
		box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 10px 28px rgba(0, 0, 0, 0.45);
		transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, padding 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
	}

	/* With the menu open the dock melts into the card around it, and its buttons line up
	   with the menu text (card 8px + 1px border + 1.25rem padding = dock 12px + 1px + 1rem) */
	html.ie-menu-open .ie-fab {
		padding: 0.4rem 1rem;
		border-color: transparent;
		background: transparent;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		box-shadow: none;
	}

	.ie-fab-menu,
	.ie-fab-book {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		box-sizing: border-box;
		padding: 0 1.2rem;
		border-radius: 999px;
		font: inherit;
		font-size: 0.9rem;
		font-weight: 600;
		line-height: 1;
		text-decoration: none;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
		transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
	}

	.ie-fab-label {
		display: inline-block;
		white-space: nowrap;
	}

	.ie-fab svg {
		flex: none;
		width: 1.3em;
		height: 1.3em;
	}

	.ie-fab-menu {
		padding: 0 0.9rem;
		border: 1px solid transparent;
		background: transparent;
		color: var(--wp--preset--color--text);
	}

	.ie-fab-menu > span {
		display: flex;
		align-items: center;
		gap: 0.5rem;
	}

	.ie-fab-menu .ie-fab-when-open,
	.ie-fab-menu[aria-expanded="true"] .ie-fab-when-closed {
		display: none;
	}

	.ie-fab-menu[aria-expanded="true"] .ie-fab-when-open {
		display: flex;
	}

	.ie-fab-menu[aria-expanded="true"] {
		border-color: rgba(237, 184, 146, 0.55);
	}

	.ie-fab-book {
		border: 1px solid rgba(226, 112, 58, 0.6);
		background: var(--wp--preset--color--ember);
		color: var(--wp--preset--color--base);
		box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 6px 18px rgba(226, 112, 58, 0.4);
	}

	.ie-fab-menu:focus-visible,
	.ie-fab-book:focus-visible {
		outline: 2px solid var(--wp--preset--color--peach);
		outline-offset: 3px;
	}

	/* The menu grows out of the Menu pill into a card in the bottom-right corner;
	   the pills stay on top of it, and the page behind is dimmed */
	html.ie-menu-open {
		overflow: hidden;
	}

	.ie-menu:not([hidden]) {
		position: fixed;
		z-index: 94;
		inset: 0;
		display: block;
		background: rgba(8, 7, 6, 0.5);
		-webkit-backdrop-filter: blur(4px);
		backdrop-filter: blur(4px);
		animation: ie-menu-in 0.25s ease;
	}

	.ie-menu-inner {
		position: absolute;
		right: max(8px, calc(env(safe-area-inset-right, 0px) - 6px));
		bottom: calc(8px + env(safe-area-inset-bottom, 0px));
		left: max(8px, env(safe-area-inset-left, 0px));
		display: flex;
		flex-direction: column;
		gap: 1.25rem;
		box-sizing: border-box;
		max-height: calc(100dvh - 16px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
		overflow-y: auto;
		overscroll-behavior: contain;
		/* bottom: room for the pills, which sit inside the card's lower edge */
		/* bottom: room for the dock, which sits 4px inside the card's lower edge */
		padding: 1.25rem 1.25rem calc(4px + 3.5rem + 1.25rem);
		border: 1px solid var(--wp--preset--color--glass-border);
		border-radius: 28px;
		background:
			radial-gradient(90% 50% at 100% 100%, rgba(226, 112, 58, 0.12), rgba(226, 112, 58, 0) 70%),
			rgba(24, 22, 21, 0.92);
		-webkit-backdrop-filter: blur(22px) saturate(140%);
		backdrop-filter: blur(22px) saturate(140%);
		box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 24px 60px rgba(0, 0, 0, 0.55);
		animation: ie-menu-grow 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
	}

	.ie-menu:focus {
		outline: none;
	}

	.ie-menu-top {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
	}

	.ie-menu-home {
		color: var(--wp--preset--color--text);
		font-size: 1.05rem;
		font-weight: 600;
		text-decoration: none;
	}

	.ie-menu-links {
		display: flex;
		flex-direction: column;
	}

	.ie-menu-links a {
		display: flex;
		align-items: center;
		gap: 0.75rem;
		padding: 0.5rem 0;
		border-bottom: 1px solid var(--wp--preset--color--glass-border);
		color: var(--wp--preset--color--text);
		font-size: 1.6rem;
		font-weight: 500;
		letter-spacing: -0.02em;
		line-height: 1.15;
		text-decoration: none;
	}

	.ie-menu-links a.is-current {
		color: var(--wp--preset--color--peach);
		font-family: var(--wp--preset--font-family--accent);
		font-style: italic;
	}

	.ie-menu-links a.is-current::after {
		content: "";
		width: 0.4rem;
		height: 0.4rem;
		border-radius: 50%;
		background: var(--wp--preset--color--ember);
	}

	.ie-menu-account {
		display: inline-flex;
		align-items: center;
		align-self: flex-start;
		height: 2.75rem;
		box-sizing: border-box;
		gap: 0.6rem;
		padding: 0.7rem 1.1rem;
		border: 1px solid var(--wp--preset--color--glass-border);
		border-radius: 999px;
		color: var(--wp--preset--color--text);
		font-weight: 500;
		text-decoration: none;
	}

	.ie-menu-account svg {
		width: 1.15rem;
		height: 1.15rem;
	}

	.ie-menu-langs {
		display: flex;
		flex-wrap: wrap;
		gap: 0.4rem;
	}

	.ie-menu-langs a {
		padding: 0.45rem 0.7rem;
		border: 1px solid var(--wp--preset--color--glass-border);
		border-radius: 999px;
		color: var(--wp--preset--color--text-muted);
		font-size: 0.85rem;
		font-weight: 600;
		text-decoration: none;
	}

	.ie-menu-langs a.is-current {
		border-color: rgba(237, 184, 146, 0.55);
		color: var(--wp--preset--color--peach);
	}

	.ie-menu a:focus-visible {
		outline: 2px solid var(--wp--preset--color--peach);
		outline-offset: 3px;
		border-radius: 6px;
	}
}

@keyframes ie-menu-in {
	from {
		opacity: 0;
	}
}

/* Starts as the dock's own shape, 4px inside the card's bottom edge, and grows upwards */
@keyframes ie-menu-grow {
	from {
		clip-path: inset(calc(100% - 4px - 3.5rem) 4px 4px 4px round 1.75rem);
	}

	to {
		clip-path: inset(0 round 28px);
	}
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.ie-fab-menu,
	.ie-menu:not([hidden]) {
		background: var(--wp--preset--color--base-raised);
	}
}

@media (max-width: 599px) and (prefers-reduced-motion: reduce) {
	.ie-fab,
	.ie-fab-menu,
	.ie-fab-book,
	.ie-fab-menu > span,
	.ie-fab-label {
		transition: none;
	}

	.ie-menu:not([hidden]),
	.ie-menu-inner {
		animation: none;
	}
}

/* ---------- 404: one column, everything on the same left edge ---------- */
.ie-404.is-style-glass-card {
	max-width: 44rem;
	margin-left: auto;
	margin-right: auto;
}

.ie-404 > * {
	max-width: none;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.ie-404 > .is-style-pill {
	display: table;
}

.wp-block-search .wp-block-search__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding-left: 1.3rem;
	padding-right: 1.3rem;
	white-space: nowrap;
}

/* Results without a picture (pages in search): keep the empty picture area, so the date label
   stays on the card instead of climbing over the search box */
.ie-post-media:empty,
.ie-post-media:not(:has(.wp-block-post-featured-image img)) {
	aspect-ratio: 16 / 10;
}

.search .wp-block-search {
	margin-bottom: var(--wp--preset--spacing--50);
}


/* Booking pop-up: tighter than the form on the Contact page, so it fits one screen */
.ie-modal-card {
	gap: 0.7rem;
	padding: 1.5rem 1.75rem;
}

.ie-modal-card h2 {
	font-size: clamp(1.55rem, 5vw, 2rem);
	line-height: 1.1;
}

.ie-modal-close {
	margin: -0.5rem -0.75rem -2.5rem 0;
}

.ie-modal .ie-form {
	gap: 0.65rem;
}

.ie-modal .ie-field {
	gap: 0.25rem;
}

.ie-modal .ie-form :is(input[type="text"], select) {
	min-height: 2.6rem;
	padding-block: 0.4rem;
}

.ie-modal .ie-form :is(.wpcf7-radio, .ie-radios) label {
	min-height: 2.1rem;
	padding: 0 0.8rem;
}

.ie-modal .ie-form .ie-submit {
	justify-self: stretch;
	min-height: 2.9rem;
}

@media (max-width: 599px) {
	.ie-modal-card {
		gap: 0.55rem;
		padding: 1.1rem 1.1rem 1.15rem;
	}

	.ie-modal-close {
		top: 0;
		margin: -0.35rem -0.35rem -2.5rem 0;
	}

	.ie-modal .ie-form {
		gap: 0.5rem;
	}

	.ie-modal .ie-form :is(.wpcf7-radio, .ie-radios) {
		gap: 0.3rem;
	}

	.ie-modal .ie-form :is(.wpcf7-radio, .ie-radios) label {
		padding: 0 0.6rem;
		font-size: 0.8rem;
	}
}

/* Short screens: drop what the form can live without, so it still fits */
@media (max-height: 700px) {
	.ie-modal-sub {
		display: none;
	}

	.ie-modal-card {
		gap: 0.45rem;
		padding-block: 1rem;
	}

	.ie-modal .ie-form {
		gap: 0.4rem;
	}

	.ie-modal .ie-form :is(input[type="text"], select) {
		min-height: 2.35rem;
		padding-block: 0.25rem;
	}

	.ie-modal .ie-form .ie-submit {
		min-height: 2.6rem;
	}
}

@media (max-height: 600px) {
	.ie-modal-card .is-style-pill {
		display: none;
	}

	.ie-modal-card h2 {
		font-size: 1.35rem;
	}

	.ie-modal .ie-consent {
		line-height: 1.3;
	}
}

@media (max-width: 340px) {
	.ie-modal .ie-form :is(.wpcf7-radio, .ie-radios) label {
		padding: 0 0.45rem;
		font-size: 0.72rem;
	}
}

/* Time wheel, folded under the booking form */
.ie-tw-fold {
	margin-top: 0.75rem;
	border-top: 1px solid var(--wp--preset--color--glass-border);
}

.ie-tw-fold summary {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding-top: 0.75rem;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
	list-style: none;
	transition: color 0.25s ease;
}

.ie-tw-fold summary::-webkit-details-marker {
	display: none;
}

.ie-tw-fold summary svg {
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	color: var(--wp--preset--color--ember);
}

.ie-tw-fold summary::after {
	content: "";
	flex: none;
	width: 0.45rem;
	height: 0.45rem;
	margin: -0.15rem 0.15rem 0 auto;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.25s ease;
}

.ie-tw-fold[open] summary::after {
	margin-top: 0.2rem;
	transform: rotate(225deg);
}

.ie-tw-fold summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 3px;
	border-radius: 6px;
}

@media (hover: hover) {
	.ie-tw-fold summary:hover {
		color: var(--wp--preset--color--peach);
	}
}

.ie-tw:not(.is-ready) {
	display: none;
}

.ie-tw {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.75rem;
	padding-top: 0.85rem;
}

.ie-tw-clocks {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.6rem;
}

.ie-tw-clock {
	display: grid;
	align-content: start;
	gap: 0.35rem;
	min-width: 0;
	padding: 0.75rem 0.85rem;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.03);
}

.ie-tw-clock p {
	margin: 0;
}

.ie-tw-place {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

.ie-tw-time {
	font-size: clamp(1.7rem, 4vw, 2.2rem);
	font-weight: 300;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.02em;
	line-height: 1.05;
}

.ie-tw-date {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

.ie-tw-diff {
	color: #EDB892;
}

.ie-tw-diff::before {
	content: "· ";
}

.ie-tw-diff:empty::before {
	content: "";
}

/* 16px on the input keeps iPhones from zooming in when it is tapped */
.ie-tw-city {
	width: 100%;
	box-sizing: border-box;
	padding: 0.35rem 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.04);
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: 16px;
}

.ie-tw-city:focus {
	outline: none;
	border-color: rgba(237, 184, 146, 0.6);
}

.ie-tw-city.is-unknown {
	border-color: var(--wp--preset--color--ember);
}

.ie-tw-dial {
	position: relative;
}

.ie-tw-wheel {
	overflow-x: auto;
	overflow-y: hidden;
	cursor: grab;
	touch-action: pan-x;
	scrollbar-width: none;
	border-radius: 14px;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
	-webkit-user-select: none;
	user-select: none;
}

.ie-tw-wheel::-webkit-scrollbar {
	display: none;
}

.ie-tw-wheel.is-dragging {
	cursor: grabbing;
}

.ie-tw-wheel:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 3px;
}

/* Spacers of half the wheel's width let the first and last ticks reach the needle */
.ie-tw-wheel::before,
.ie-tw-wheel::after {
	content: "";
	flex: none;
	width: var(--ie-tw-half, 50%);
}

.ie-tw-wheel {
	display: flex;
}

.ie-tw-rail {
	position: relative;
	flex: none;
	height: 4.5rem;
	background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.28) 0 1px, transparent 1px 12px) 0 100% / 100% 0.65rem no-repeat;
}

.ie-tw-hour {
	position: absolute;
	bottom: 0;
	padding-bottom: 1.45rem;
	transform: translateX(-50%);
	color: var(--wp--preset--color--text-muted);
	font-size: 0.78rem;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.ie-tw-hour::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 1px;
	height: 1.2rem;
	background: rgba(255, 255, 255, 0.55);
}

.ie-tw-hour.is-day {
	color: #EDB892;
}

.ie-tw-hour b {
	position: absolute;
	bottom: 2.7rem;
	left: 50%;
	transform: translateX(-50%);
	font-weight: 600;
}

/* Roma's usual hours */
.ie-tw-band {
	position: absolute;
	bottom: 0;
	height: 0.65rem;
	border-radius: 4px;
	background: rgba(226, 112, 58, 0.5);
}

.ie-tw-needle {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 2px;
	margin-left: -1px;
	border-radius: 2px;
	background: var(--wp--preset--color--ember);
	box-shadow: 0 0 12px rgba(226, 112, 58, 0.8);
	pointer-events: none;
}

.ie-tw-foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	min-height: 2.4rem;
}

.ie-tw-status {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
}

.ie-tw-status::before {
	content: "";
	flex: none;
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.25);
}

.ie-tw-status.is-free {
	color: var(--wp--preset--color--text);
}

.ie-tw-status.is-free::before {
	background: var(--wp--preset--color--ember);
	box-shadow: 0 0 8px rgba(226, 112, 58, 0.8);
}

.ie-tw-now {
	padding: 0.5rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.04);
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
}

.ie-tw-now:hover {
	border-color: rgba(237, 184, 146, 0.55);
}

.ie-tw-now[hidden] {
	display: none;
}


/* Single insights: light leaks down the whole page, left and right in turn, so something keeps
   drifting past while reading. Each glow fades out inside its 2000px tile, so the tiles don't
   show a seam, and the layer fades at the end of the page so the footer doesn't cut it off. */
.ie-leaks {
	position: relative;
	isolation: isolate;
}

.ie-leaks::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	pointer-events: none;
	background-image:
		radial-gradient(circle 620px at 4% 420px, rgba(237, 184, 146, 0.15), rgba(237, 184, 146, 0) 70%),
		radial-gradient(circle 560px at 98% 1000px, rgba(226, 112, 58, 0.17), rgba(226, 112, 58, 0) 70%),
		radial-gradient(ellipse 640px 380px at 22% 1640px, rgba(226, 112, 58, 0.11), rgba(226, 112, 58, 0) 70%);
	background-size: 100% 2000px;
	-webkit-mask-image: linear-gradient(#000 calc(100% - 320px), transparent);
	mask-image: linear-gradient(#000 calc(100% - 320px), transparent);
}

/* Insight cards: a big light behind each card in the main colour of its picture (card-glow.js).
   The list is the stacking context, so every light sits behind every card and none tints a
   neighbour's picture. */
.wp-block-post-template:has(.ie-post-card) {
	position: relative;
	isolation: isolate;
}

.ie-post-card {
	position: relative;
}

.ie-post-card::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -14%;
	left: -14%;
	width: 128%;
	aspect-ratio: 1.3;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(var(--ie-glow, 237, 184, 146), 0.26), rgba(var(--ie-glow, 237, 184, 146), 0.1) 60%, rgba(var(--ie-glow, 237, 184, 146), 0));
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.8s ease;
}

.ie-post-card.has-glow::before {
	opacity: 1;
}

.ie-post-media--cover.has-glow {
	box-shadow: 0 0 120px 10px rgba(var(--ie-glow), 0.18);
	transition: box-shadow 1.4s ease;
}

/* One small light behind a line of text, now and then (card-glow.js) */
.ie-glint {
	position: absolute;
	z-index: -1;
	width: 15rem;
	height: 8rem;
	margin: 0 !important; /* The constrained layout's auto margins would push it off its line */
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(var(--ie-glint), 0.17), rgba(var(--ie-glint), 0.07) 40%, rgba(var(--ie-glint), 0.02) 75%, rgba(var(--ie-glint), 0));
	opacity: 0;
	pointer-events: none;
	animation: ie-glint 3.4s ease-in-out forwards;
}

@keyframes ie-glint {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0.75);
	}

	45% {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
	}

	100% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(1.1);
	}
}

/* Contents card: folded with a fade, opens on click, the section being read stands out */
.ie-toc {
	box-sizing: border-box;
	padding: 1.1rem var(--wp--preset--spacing--40) 0.9rem;
}

.ie-toc[hidden] {
	display: none;
}

.ie-toc-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	cursor: pointer;
}

.ie-toc-head svg {
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	transition: transform 0.25s ease;
}

.ie-toc.is-open .ie-toc-head svg {
	transform: rotate(180deg);
}

.ie-toc-head:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 4px;
	border-radius: 6px;
}

.ie-toc-list {
	position: relative;
	display: flex;
	flex-direction: column;
	max-height: 3.9rem;
	margin: 0.6rem -0.65rem 0;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(#000 30%, transparent);
	mask-image: linear-gradient(#000 30%, transparent);
	transition: max-height 0.35s ease;
}

.ie-toc.is-open .ie-toc-list {
	max-height: min(55vh, 30rem);
	overflow-y: auto;
	-webkit-mask-image: none;
	mask-image: none;
	scrollbar-width: thin;
	scrollbar-color: rgba(226, 112, 58, 0.55) transparent;
}

.ie-toc-list a {
	flex: none;
	padding: 0.5rem 0.65rem;
	border-radius: 8px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.35;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.ie-toc-list a:hover {
	background-color: rgba(255, 255, 255, 0.05);
	color: var(--wp--preset--color--text);
}

.ie-toc-list a.is-current {
	color: #EDB892;
}

.ie-toc-list a:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: -2px;
}

/* Headings stop below the sticky header when jumped to; on phones there is no top header */
.ie-article h2,
.ie-article h3 {
	scroll-margin-top: 6.5rem;
}

.ie-article > .ie-toc {
	margin-bottom: var(--wp--preset--spacing--40);
}

@media (max-width: 599px) {
	.ie-article h2,
	.ie-article h3 {
		scroll-margin-top: 1.5rem;
	}
}

/* Hover: links and outline buttons warm to peach, the same as the footer. Only for real mouse
   hover, so a tapped link doesn't stay orange on phones. */
.ie-nav-utility .ie-login > .wp-block-navigation-item__content,
.ie-lang > .wp-block-navigation-submenu__toggle,
.ie-nav-utility .ie-lang .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.ie-navbar .wp-block-site-title a,
.wp-block-button:not(.is-style-light) .wp-block-button__link,
.ie-form .ie-submit,
.ie-btn-quiet,
.ie-my-course-go,
.ie-tw-now {
	transition-property: color, border-color, background-color, box-shadow;
	transition-duration: 0.25s;
	transition-timing-function: ease;
}

@media (hover: hover) {
	.ie-nav-main .wp-block-navigation-item__content:hover,
	.ie-nav-utility .ie-login > .wp-block-navigation-item__content:hover,
	.ie-lang > .wp-block-navigation-submenu__toggle:hover,
	.ie-nav-utility .ie-lang .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
	.ie-navbar .wp-block-site-title a:hover,
	.wp-block-button:not(.is-style-light) .wp-block-button__link:hover,
	.ie-form .ie-submit:hover:not(:disabled),
	.ie-btn-quiet:hover,
	.ie-my-course-go:hover,
	.ie-tw-now:hover {
		color: var(--wp--preset--color--peach);
	}
}

/* Older posts built with Elementor bring their own fonts and text colours (white, grey, even
   black, which disappears on this background). Inside the article they use the theme's. */
.ie-article .elementor,
.ie-article .elementor :is(p, li, span, b, strong, em, i, h1, h2, h3, h4, h5, h6, div, blockquote, figcaption) {
	color: var(--wp--preset--color--text) !important;
	font-family: var(--wp--preset--font-family--body) !important;
}

/* Dropdown in the site's colours (book.js); the real select stays hidden in the form */
.ie-select {
	position: relative;
}

.ie-select-btn {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 0.8rem 2.5rem 0.8rem 1rem;
	border: 1px solid var(--wp--preset--color--glass-border);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.04) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A39C94' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 0.9rem center / 1rem no-repeat;
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	text-align: left;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.ie-select-btn:focus-visible,
.ie-select.is-open .ie-select-btn {
	outline: none;
	border-color: rgba(237, 184, 146, 0.6);
}

.ie-modal .ie-select-btn {
	min-height: 2.6rem;
	padding-block: 0.4rem;
}

.ie-select-list {
	position: absolute;
	z-index: 5;
	top: calc(100% + 0.35rem);
	left: 0;
	right: 0;
	max-height: 15rem;
	margin: 0;
	padding: 0.35rem;
	overflow-y: auto;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 14px;
	background: var(--wp--preset--color--base-raised);
	box-shadow: 0 18px 44px rgba(0, 0, 0, 0.55);
	list-style: none;
	outline: none;
}

.ie-select.is-up .ie-select-list {
	top: auto;
	bottom: calc(100% + 0.35rem);
}

.ie-select-list li {
	position: relative;
	padding: 0.55rem 2rem 0.55rem 0.7rem;
	border-radius: 9px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
}

.ie-select-list li.is-active {
	background: rgba(237, 184, 146, 0.1);
	color: var(--wp--preset--color--peach);
}

.ie-select-list li[aria-selected="true"] {
	color: var(--wp--preset--color--text);
}

.ie-select-list li[aria-selected="true"]::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0.8rem;
	width: 0.45rem;
	height: 0.45rem;
	margin-top: -0.225rem;
	border-radius: 50%;
	background: var(--wp--preset--color--ember);
}

@media (max-height: 700px) {
	.ie-modal .ie-select-btn {
		min-height: 2.35rem;
		padding-block: 0.25rem;
	}

	.ie-modal .ie-tw-fold {
		margin-top: 0.15rem;
	}

	.ie-modal .ie-tw-fold summary {
		padding-top: 0.4rem;
	}
}

/* The form's spinner takes no room of its own, so the wheel sits right below the button.
   Absolute: it shows beside the button while sending. */
.ie-form {
	position: relative;
}

.ie-form .wpcf7-spinner {
	position: absolute;
	bottom: 0.75rem;
	right: 0;
	margin: 0;
}

/* WordPress wraps the shortcodes in the Contact card in empty paragraphs and line breaks */
.ie-form-card > p:not([class]),
.ie-form-card > br {
	display: none;
}

/* Computers and tablets: floating hero pills large enough to read beside the big headline */
@media (min-width: 701px) {
	p.ie-tag {
		gap: 0.5rem;
		padding: 0.55rem 1.2rem 0.55rem 0.95rem;
		font-size: 0.95rem;
	}

	p.ie-tag::before {
		width: 1.15em;
		height: 1.15em;
	}

	p.ie-tag--b {
		top: 2%;
	}
}

/* The small booking pop-up: name, contact and consent. The rest of the form stays on the Contact
   page; these fields are hidden here and send their defaults. */
.ie-modal {
	width: min(430px, calc(100vw - 1.5rem));
}

.ie-modal .ie-field:has(.wpcf7-radio),
.ie-modal .ie-field:has([data-name="interest"]),
.ie-modal .ie-field:has([data-name="best-time"]),
.ie-modal .ie-field:has([data-name="your-message"]) {
	display: none;
}

.ie-modal-card h2 {
	font-size: 1.75rem;
}

.ie-modal-sub {
	margin-bottom: 0.35rem;
}

.ie-modal .ie-form {
	gap: 0.8rem;
}

/* Page numbers on Insights: the same pills as the type filter above the list */
.ie-pager.wp-block-query-pagination {
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--60);
}

.ie-pager .wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	margin: 0;
}

.ie-pager .page-numbers,
.ie-pager .wp-block-query-pagination-previous,
.ie-pager .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 2.75rem;
	height: 2.75rem;
	margin: 0;
	padding: 0 0.6rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--small);
	font-variant-numeric: tabular-nums;
	text-decoration: none;
	transition: color 0.25s ease, border-color 0.25s ease, background-color 0.25s ease;
}

.ie-pager .page-numbers.current {
	border-color: var(--wp--preset--color--text);
	background: var(--wp--preset--color--text);
	color: var(--wp--preset--color--base);
	font-weight: 600;
}

.ie-pager .page-numbers.dots {
	min-width: 1.5rem;
	padding: 0;
	border: 0;
}

/* Previous and Next: plain outline pills with a simple arrow, no orange */
.ie-pager .wp-block-query-pagination-previous,
.ie-pager .wp-block-query-pagination-next {
	gap: 0.5rem;
	padding: 0 1.1rem;
	color: var(--wp--preset--color--text);
	font-weight: 500;
}

.ie-pager .wp-block-query-pagination-next::after {
	content: "\2192";
}

.ie-pager .wp-block-query-pagination-previous::before {
	content: "\2190";
}

@media (hover: hover) {
	.ie-pager a:hover {
		border-color: rgba(255, 255, 255, 0.45);
		color: var(--wp--preset--color--text);
	}
}

.ie-pager a:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 2px;
}

/* Phones: the numbers on their own line, Previous and Next side by side below them */
@media (max-width: 599px) {
	.ie-pager .wp-block-query-pagination-numbers {
		order: -1;
		flex-basis: 100%;
	}
}
