/* EmberAI theme — main stylesheet.
   Brand: navy #0A1A2F, cyan #00E0FF, purple #AC61D5, blue #2F80ED; Sora headings, Inter body.
   Text-on-white uses darker purple/blue tones so contrast meets WCAG AA. */

@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../fonts/inter-latin-ext-wght-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Sora"; font-style: normal; font-weight: 100 800; font-display: swap; src: url("../fonts/sora-latin-wght-normal.woff2") format("woff2"); }

:root {
	--navy: #0A1A2F;
	--navy-2: #0F2440;
	--navy-3: #13294A;
	--cyan: #00E0FF;
	--purple: #AC61D5;
	--blue: #2F80ED;
	--purple-ink: #8A3FB5;
	--blue-ink: #1B66C9;
	--ink: #1C2738;
	--muted: #4E5B6E;
	--line: #DCE3EC;
	--mist: #F3F6FA;
	--white: #FFFFFF;
	--success: #0F7B4F;
	--warn: #8A5A00;
	--error: #B42318;
	--radius: 14px;
	--radius-sm: 8px;
	--shadow: 0 1px 2px rgba(10, 26, 47, .06), 0 8px 24px rgba(10, 26, 47, .08);
	--shadow-lg: 0 20px 50px rgba(10, 26, 47, .18);
	--gutter: clamp(16px, 4vw, 32px);
	--container: 1200px;
	--font-head: "Sora", "Segoe UI", system-ui, sans-serif;
	--font-body: "Inter", "Segoe UI", Roboto, system-ui, Arial, sans-serif;
	--focus: 0 0 0 3px var(--white), 0 0 0 6px var(--blue-ink);
	--focus-dark: 0 0 0 3px var(--navy), 0 0 0 6px var(--cyan);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.65; color: var(--ink); background: var(--white); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; overflow-wrap: break-word; }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
h1, h2, h3, h4 { font-family: var(--font-head); color: var(--navy); line-height: 1.2; letter-spacing: -0.015em; margin: 0 0 .6em; font-weight: 650; }
h1 { font-size: clamp(2rem, 4.2vw + .6rem, 3.25rem); }
h2 { font-size: clamp(1.6rem, 2.2vw + .7rem, 2.35rem); }
h3 { font-size: 1.2rem; }
p { margin: 0 0 1em; }
a { color: var(--blue-ink); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--purple-ink); text-decoration-thickness: 2px; }
:focus-visible { outline: none; box-shadow: var(--focus); border-radius: 4px; }
.ember-header :focus-visible, .ember-hero :focus-visible, .ember-academy-band :focus-visible, .ember-enquiry-band__copy :focus-visible, .ember-footer :focus-visible, .ember-page-hero :focus-visible { box-shadow: var(--focus-dark); }
ul, ol { padding-left: 1.25em; }
table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: .55em .7em; border-bottom: 1px solid var(--line); }
hr { border: 0; border-top: 1px solid var(--line); margin: 2.5rem 0; }

.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; left: 12px; top: 12px; z-index: 1000; padding: 12px 18px; background: var(--white); color: var(--navy); font-weight: 600; border-radius: var(--radius-sm); box-shadow: var(--focus); }
.ember-main:focus { outline: none; }

.ember-container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- Buttons, links, badges ---------- */
.ember-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 46px; padding: .7em 1.3em; border-radius: 999px; font-family: var(--font-head); font-weight: 600; font-size: .98rem; line-height: 1.2; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; text-align: center; }
.ember-btn:hover { transform: translateY(-1px); text-decoration: none; }
.ember-btn--lg { min-height: 54px; padding: .85em 1.6em; font-size: 1.03rem; }
.ember-btn--primary { background: linear-gradient(135deg, var(--purple-ink), var(--blue-ink)); color: var(--white); box-shadow: 0 6px 18px rgba(27, 102, 201, .25); }
.ember-btn--primary:hover { color: var(--white); box-shadow: 0 10px 24px rgba(27, 102, 201, .32); }
.ember-btn--secondary { background: var(--white); color: var(--navy); border-color: var(--navy); }
.ember-btn--secondary:hover { color: var(--navy); background: var(--mist); }
.ember-btn--accent { background: var(--cyan); color: var(--navy); }
.ember-btn--accent:hover { color: var(--navy); background: #5BEBFF; box-shadow: 0 8px 22px rgba(0, 224, 255, .28); }
.ember-btn--ghost { background: transparent; color: var(--white); border-color: rgba(255, 255, 255, .55); }
.ember-btn--ghost:hover { color: var(--white); border-color: var(--white); background: rgba(255, 255, 255, .08); }
.ember-link { font-weight: 600; font-family: var(--font-head); text-decoration: none; display: inline-flex; align-items: center; gap: .35em; }
.ember-link::after { content: "→"; transition: transform .15s ease; }
.ember-link:hover::after { transform: translateX(3px); }
.ember-eyebrow { font-family: var(--font-head); text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 700; color: var(--purple-ink); margin-bottom: .9rem; }
.ember-eyebrow--on-dark { color: var(--cyan); }
.ember-small { font-size: .92rem; color: var(--muted); }
.ember-small--on-dark { color: #C5D2E3; }
.ember-lead { font-size: 1.15rem; color: var(--muted); }
.ember-tag { display: inline-block; font-size: .8rem; font-weight: 600; padding: .25em .7em; border-radius: 999px; background: var(--mist); color: var(--navy); border: 1px solid var(--line); }
.ember-status { display: inline-flex; align-items: center; gap: .45em; font-size: .82rem; font-weight: 600; padding: .28em .75em; border-radius: 999px; background: #EEF2F7; color: var(--navy); line-height: 1.3; }
.ember-status__dot { width: .55em; height: .55em; border-radius: 50%; background: currentColor; flex: none; }
.ember-status__note { font-weight: 500; }
.ember-status--live { background: #E3F5EC; color: var(--success); }
.ember-status--soon { background: #FFF4DC; color: var(--warn); }
.ember-status--private { background: #EFE6F7; color: #6E2F95; }
.ember-status--development { background: #E8EEF7; color: #34506F; }
.ember-pill { display: inline-block; font-size: .75rem; font-weight: 700; padding: .15em .6em; border-radius: 999px; text-transform: uppercase; letter-spacing: .04em; }
.ember-pill--fact { background: #E3F0FF; color: #144E9C; }
.ember-pill--explain { background: #FFF4DC; color: var(--warn); }
.ember-pill--rec { background: #E3F5EC; color: var(--success); }
.ember-icon { width: 24px; height: 24px; flex: none; }

/* Tick lists */
.ember-ticks { list-style: none; padding: 0; margin: 0 0 1.2em; }
.ember-ticks li { position: relative; padding-left: 1.9em; margin-bottom: .55em; }
.ember-ticks li::before { content: ""; position: absolute; left: 0; top: .28em; width: 1.2em; height: 1.2em; border-radius: 50%; background: #E6F0FC url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B66C9' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat; }
.ember-ticks--deliv li::before { background-color: #F1E8F8; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A3FB5' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 00-2 2v14a2 2 0 002 2h10a2 2 0 002-2V8z'/%3E%3Cpath d='M14 3v5h5'/%3E%3C/svg%3E"); }
.ember-ticks--cols { columns: 2 280px; column-gap: 2.5rem; }
.ember-ticks--cols li { break-inside: avoid; }

/* ---------- Header ---------- */
.ember-header { position: sticky; top: 0; z-index: 100; background: var(--navy); border-bottom: 1px solid rgba(255, 255, 255, .08); }
.admin-bar .ember-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ember-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .ember-header { top: 0; } }
.ember-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 74px; }
/* Logo: Academy-style lettering (academy/static/css/app.css: .brand, .brand-word) beside the transparent E-and-spark mark. */
.ember-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: #fff; flex-shrink: 0; }
.ember-logo:hover { color: #fff; text-decoration: none; }
/* Transparent mark: no tile, border, radius or shadow. 23.375px keeps the E and spark at the same size as in the Academy icon (44/64 of 34px). */
.ember-logo__mark { display: block; width: 23.375px; height: 23.375px; background: none; border: 0; border-radius: 0; box-shadow: none; }
.ember-logo__word { font-family: "Sora", "Inter", system-ui, sans-serif; font-weight: 700; font-size: 1.2rem; letter-spacing: -.01em; line-height: 1; }
.ember-logo__e { color: #C98BEA; }
.ember-logo__ai { color: #00E0FF; }
.ember-logo__word small { display: block; font-size: .58rem; letter-spacing: .38em; color: #B7C1D1; font-weight: 500; margin-top: 4px; }
/* Light backgrounds (print, login screen): the logo kit's light-background colours. */
.ember-logo--light .ember-logo__e, .ember-logo--light .ember-logo__word small { color: #0A1A2F; }
.ember-logo--light .ember-logo__ai { color: #2F80ED; }
.ember-logo-print { display: none; }
.custom-logo-link img { max-height: 48px; width: auto; }
.ember-nav { display: flex; align-items: center; gap: 1.4rem; }
.ember-nav__list { display: flex; list-style: none; margin: 0; padding: 0; gap: .25rem; }
.ember-nav__list a { display: block; padding: .55rem .75rem; color: #DCE6F2; text-decoration: none; font-weight: 500; font-size: .97rem; border-radius: 8px; }
.ember-nav__list a:hover { color: var(--white); background: rgba(255, 255, 255, .07); }
.ember-nav__list .current-menu-item > a, .ember-nav__list .current_page_item > a, .ember-nav__list a[aria-current="page"] { color: var(--white); box-shadow: inset 0 -2px 0 var(--cyan); border-radius: 0; }
.ember-nav__cta { min-height: 42px; padding: .55em 1.1em; font-size: .92rem; }
.ember-nav-toggle { display: none; align-items: center; gap: .55rem; background: transparent; color: var(--white); border: 1px solid rgba(255, 255, 255, .3); border-radius: 10px; min-height: 44px; padding: .4rem .8rem; font: 600 .95rem var(--font-head); cursor: pointer; }
.ember-nav-toggle__bars { display: grid; gap: 4px; width: 18px; }
.ember-nav-toggle__bars span { height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s ease, opacity .2s ease; }
.ember-nav-toggle[aria-expanded="true"] .ember-nav-toggle__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.ember-nav-toggle[aria-expanded="true"] .ember-nav-toggle__bars span:nth-child(2) { opacity: 0; }
.ember-nav-toggle[aria-expanded="true"] .ember-nav-toggle__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1080px) {
	.js .ember-nav-toggle { display: inline-flex; }
	.js .ember-nav { display: none; }
	.ember-header__inner { flex-wrap: wrap; }
	.ember-nav { width: 100%; position: static; }
	.js .ember-nav { width: auto; position: absolute; left: 0; right: 0; top: 100%; }
	.ember-nav { flex-direction: column; align-items: stretch; gap: 1rem; padding: 1rem var(--gutter) 1.5rem; background: var(--navy); border-bottom: 1px solid rgba(255, 255, 255, .1); box-shadow: var(--shadow-lg); max-height: calc(100vh - 74px); overflow-y: auto; }
	.js .ember-nav.is-open { display: flex; }
	.ember-header { position: relative; }
	.js .ember-header { position: sticky; }
	.ember-nav__list { flex-direction: column; }
	.ember-nav__list a { padding: .85rem .75rem; font-size: 1.05rem; border-bottom: 1px solid rgba(255, 255, 255, .07); border-radius: 0; }
	.ember-nav__list .current-menu-item > a, .ember-nav__list a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--cyan); }
	.ember-nav__cta { align-self: flex-start; }
}

/* ---------- Hero ---------- */
.ember-hero { position: relative; background: radial-gradient(900px 500px at 85% 10%, rgba(172, 97, 213, .28), transparent 60%), radial-gradient(700px 500px at 0% 100%, rgba(0, 224, 255, .14), transparent 60%), var(--navy); color: #D6E1EE; padding: clamp(3rem, 7vw, 6rem) 0 clamp(3.5rem, 7vw, 6rem); overflow: hidden; }
.ember-hero__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.ember-hero__title { color: var(--white); font-size: clamp(2.05rem, 3.6vw + .7rem, 3.4rem); font-weight: 650; margin-bottom: 1.2rem; }
.ember-hero__text { font-size: 1.15rem; max-width: 40em; color: #C9D6E6; }
.ember-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin: 2rem 0 1.8rem; }
.ember-hero__points { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; font-size: .97rem; color: #C9D6E6; }
.ember-hero__points li { display: flex; gap: .6rem; align-items: center; }
.ember-hero__points .ember-icon { color: var(--cyan); width: 20px; height: 20px; }
.ember-hero__media { position: relative; }
.ember-hero__media::before { content: ""; position: absolute; inset: -14px 14px 14px -14px; border: 1px solid rgba(0, 224, 255, .35); border-radius: 22px; }
.ember-hero__img { position: relative; width: 100%; aspect-ratio: 4 / 4.2; object-fit: cover; object-position: 50% 30%; border-radius: 20px; box-shadow: var(--shadow-lg); }
@media (max-width: 960px) {
	.ember-hero__grid { grid-template-columns: 1fr; }
	.ember-hero__img { aspect-ratio: 16 / 10; }
	.ember-hero__media { margin: 0; }
	.ember-hero__media::before { display: none; }
}

/* ---------- Page hero ---------- */
.ember-page-hero { background: radial-gradient(800px 400px at 90% 0%, rgba(172, 97, 213, .25), transparent 60%), var(--navy); color: #C9D6E6; padding: clamp(2.6rem, 6vw, 4.5rem) 0 clamp(2.4rem, 5vw, 3.8rem); }
.ember-page-hero .ember-eyebrow { color: var(--cyan); }
.ember-page-hero__title { color: var(--white); max-width: 22em; margin-bottom: .5em; }
.ember-page-hero__lead { font-size: 1.18rem; max-width: 42em; margin: 0; }
.ember-page-hero__badges { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.3rem 0 0; }

/* ---------- Sections ---------- */
.ember-section { padding: clamp(3.5rem, 7vw, 6rem) 0; }
.ember-section--mist { background: var(--mist); }
.ember-section__head { max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.ember-section__lead { font-size: 1.12rem; color: var(--muted); margin: 0; }
.ember-section__more { margin: 2rem 0 0; }

/* Cards */
.ember-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.ember-cards--services { grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); }
.ember-card { position: relative; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.6rem; display: flex; flex-direction: column; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ember-card:hover, .ember-card:focus-within { transform: translateY(-3px); box-shadow: var(--shadow); border-color: #C3CFDE; }
.ember-card__title { font-size: 1.18rem; margin: 0 0 .5rem; }
.ember-card__title a { color: var(--navy); text-decoration: none; }
.ember-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); }
.ember-card__title a:focus-visible { box-shadow: none; }
.ember-card__title a:focus-visible::after { box-shadow: var(--focus); }
.ember-card p { color: var(--muted); margin-bottom: 1rem; }
.ember-card__icon { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: linear-gradient(135deg, rgba(172, 97, 213, .14), rgba(47, 128, 237, .14)); color: var(--purple-ink); margin-bottom: 1.1rem; }
.ember-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: .4rem; font: 600 .93rem var(--font-head); color: var(--blue-ink); }
.ember-card__more .ember-icon { width: 18px; height: 18px; transition: transform .15s ease; }
.ember-card:hover .ember-card__more .ember-icon { transform: translateX(3px); }
@media (max-width: 600px) { .ember-cards--services .ember-mini-list { display: none; } }
.ember-mini-list { list-style: none; padding: 0; margin: 0 0 1.2rem; font-size: .92rem; color: var(--ink); border-top: 1px solid var(--line); }
.ember-mini-list li { padding: .45rem 0 .45rem 1.2rem; border-bottom: 1px dashed var(--line); position: relative; }
.ember-mini-list li::before { content: ""; position: absolute; left: 0; top: .95em; width: 6px; height: 6px; border-radius: 50%; background: var(--purple); }
.ember-card--project { padding: 0; overflow: hidden; }
.ember-card--cta { background: radial-gradient(400px 260px at 100% 0%, rgba(172, 97, 213, .35), transparent 70%), var(--navy); border-color: var(--navy); color: #C9D6E6; justify-content: center; }
.ember-card--cta .ember-card__title { color: var(--white); font-size: 1.3rem; }
.ember-card--cta p { color: #C9D6E6; }
.ember-card--cta .ember-btn { align-self: flex-start; }
.ember-card__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--navy); border-bottom: 1px solid var(--line); }
.ember-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .4s ease; }
.ember-card--project:hover .ember-card__media img { transform: scale(1.03); }
.ember-card__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; flex: 1; }
.ember-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .85rem; color: var(--muted); margin-bottom: .7rem; }
.ember-card__meta > span:first-child:not(.ember-status) { font-weight: 600; }

/* Academy band */
.ember-academy-band { background: radial-gradient(700px 420px at 100% 100%, rgba(0, 224, 255, .14), transparent 60%), radial-gradient(700px 420px at 0% 0%, rgba(172, 97, 213, .22), transparent 60%), var(--navy-2); color: #C9D6E6; }
.ember-academy-band h2 { color: var(--white); }
.ember-academy-band__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.ember-academy-band__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 20px; box-shadow: var(--shadow-lg); }
.ember-academy-band__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin: 1.6rem 0 1.2rem; }
.ember-academy-band .ember-status { background: rgba(255, 255, 255, .1); color: #FFD98A; }
.ember-stats { list-style: none; padding: 0; margin: 1.6rem 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.ember-stats li { border: 1px solid rgba(255, 255, 255, .14); border-radius: 12px; padding: .9rem 1rem; background: rgba(255, 255, 255, .04); }
.ember-stats__num { display: block; font: 700 1.7rem/1.1 var(--font-head); color: var(--white); }
.ember-stats__label { font-size: .88rem; color: #B9C7D9; }
/* Stats on light backgrounds (page content) */
.ember-stats--light { margin: 0 0 1rem; }
.ember-stats--light li { background: var(--mist); border-color: var(--line); }
.ember-stats--light .ember-stats__num { color: var(--navy); }
.ember-stats--light .ember-stats__label { color: var(--muted); }
@media (max-width: 900px) {
	.ember-academy-band__grid { grid-template-columns: 1fr; }
	.ember-academy-band__media img { aspect-ratio: 16 / 10; object-position: 50% 25%; }
	.ember-stats { grid-template-columns: repeat(2, 1fr); }
}

/* Split */
.ember-split { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
@media (max-width: 900px) { .ember-split { grid-template-columns: 1fr; } }

/* Browser frame for screenshots */
.ember-browser { margin: 0; border-radius: 12px; overflow: hidden; box-shadow: var(--shadow-lg); border: 1px solid #C9D3E0; background: var(--white); }
.ember-browser__bar { display: flex; gap: 6px; padding: 10px 12px; background: #E9EEF4; border-bottom: 1px solid #D5DDE7; }
.ember-browser__bar span { width: 10px; height: 10px; border-radius: 50%; background: #C3CCD8; }
.ember-browser img { width: 100%; }
.ember-browser figcaption { font-size: .86rem; color: var(--muted); padding: .7rem 1rem; border-top: 1px solid var(--line); background: var(--white); }
.ember-browser--hero { margin: clamp(-2.5rem, -3vw, -1.5rem) 0 2rem; position: relative; }

/* Process */
.ember-process { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; counter-reset: step; }
.ember-process__step { position: relative; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.6rem 1.4rem 1.4rem; }
.ember-process__num { position: absolute; top: 1.2rem; right: 1.3rem; font: 700 2.2rem/1 var(--font-head); color: #E3E9F1; }
.ember-process__icon { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--navy); color: var(--cyan); margin-bottom: 1rem; }
.ember-process__step h3 { font-size: 1.08rem; }
.ember-process__step p { color: var(--muted); font-size: .97rem; margin: 0; }
@media (max-width: 960px) { .ember-process { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ember-process { grid-template-columns: 1fr; } }

/* Enquiry band */
.ember-enquiry-band { background: linear-gradient(180deg, var(--navy) 0, var(--navy) 100%); color: #C9D6E6; }
.ember-enquiry-band h2 { color: var(--white); }
.ember-enquiry-band__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.ember-enquiry-band__form { background: var(--white); color: var(--ink); border-radius: 18px; padding: clamp(1.3rem, 3vw, 2.2rem); box-shadow: var(--shadow-lg); }
@media (max-width: 900px) { .ember-enquiry-band__grid { grid-template-columns: 1fr; } }

/* ---------- Content (block editor output) ---------- */
.ember-entry { padding-bottom: clamp(3rem, 6vw, 5rem); }
.ember-content { max-width: calc(760px + var(--gutter) * 2); margin: 0 auto; padding: clamp(2.4rem, 5vw, 3.5rem) var(--gutter) 0; }
.ember-content > * { margin-top: 0; }
.ember-content > h2 { margin-top: 2.6rem; }
.ember-content > h3 { margin-top: 2rem; }
/* Wide and full-width blocks break out of the 760px text column and stay centred on the viewport.
   Centring uses position/left (not margin-left), so block rules that set margins cannot shift them off-screen.
   --ember-scrollbar is set by main.js so full-width blocks never run under a desktop scrollbar. */
.ember-content { --ember-wide: min(1200px, calc(100vw - var(--ember-scrollbar, 0px) - var(--gutter) * 2)); }
.ember-content .alignwide, .ember-content .alignfull,
.ember-content .ember-service-list, .ember-content .ember-process, .ember-content .ember-jump, .ember-content .ember-cards, .ember-content .ember-apps, .ember-content .ember-sample {
	position: relative; left: 50%; transform: translateX(-50%); width: var(--ember-wide); max-width: none; margin-left: 0; margin-right: 0;
}
.ember-content .alignfull { width: calc(100vw - var(--ember-scrollbar, 0px)); }
.ember-content figure { margin-block: 2rem; }
.ember-content figcaption, .wp-element-caption { font-size: .88rem; color: var(--muted); margin-top: .6rem; }
.ember-content .wp-block-image img { border-radius: 12px; }
.ember-content .is-style-screenshot img, .ember-content .wp-block-image.is-style-screenshot img { border: 1px solid #C9D3E0; box-shadow: var(--shadow); border-radius: 10px; }
.ember-content .wp-block-columns { gap: 1.5rem 2rem; margin-block: 2rem; }
.ember-content .wp-block-group.is-style-panel, .ember-panel { background: var(--mist); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem; }
.ember-content .wp-block-group.has-background { border-radius: var(--radius); padding: clamp(1.4rem, 3vw, 2.2rem); }
.ember-content .wp-block-group.has-navy-background-color { color: #C9D6E6; }
.ember-content .wp-block-group.has-navy-background-color h2, .ember-content .wp-block-group.has-navy-background-color h3 { color: var(--white); }
.ember-content .wp-block-group.has-navy-background-color a:not(.ember-btn) { color: var(--cyan); }
.ember-content .wp-block-buttons { gap: .8rem; margin-block: 1.6rem; }
.ember-content .wp-block-button__link { border-radius: 999px; font-family: var(--font-head); font-weight: 600; padding: .75em 1.4em; background: linear-gradient(135deg, var(--purple-ink), var(--blue-ink)); color: var(--white); text-decoration: none; }
.ember-content .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--navy); border: 2px solid var(--navy); }
.ember-content .wp-block-separator { border: 0; border-top: 1px solid var(--line); margin-block: 3rem; }
.ember-content blockquote { border-left: 4px solid var(--purple); margin-block: 2rem; margin-inline: 0; padding: .3rem 0 .3rem 1.3rem; font-size: 1.12rem; }
.ember-content .has-small-font-size { font-size: .9rem; }
.ember-content .has-large-font-size { font-size: 1.25rem; }
.ember-content .has-muted-color { color: var(--muted); }
.ember-content .wp-block-table td, .ember-content .wp-block-table th { border: 0; border-bottom: 1px solid var(--line); }
.ember-content .wp-block-table thead { border-bottom: 2px solid var(--navy); }
.ember-prose > *:first-child { margin-top: 0; }

/* Steps diagram (Analytics page) */
.ember-flow { list-style: none; padding: 0; margin: 2rem 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; counter-reset: flow; }
.ember-flow li { counter-increment: flow; position: relative; background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 1rem .9rem; font-size: .93rem; }
.ember-flow li strong { display: block; font-family: var(--font-head); color: var(--navy); margin-bottom: .2rem; }
.ember-flow li::before { content: counter(flow); display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--navy); color: var(--cyan); font: 700 .85rem var(--font-head); margin-bottom: .6rem; }
.ember-flow li:not(:last-child)::after { content: ""; position: absolute; right: -.45rem; top: 50%; width: .4rem; height: 2px; background: var(--purple); }
@media (max-width: 860px) { .ember-flow { grid-template-columns: 1fr; } .ember-flow li:not(:last-child)::after { right: auto; left: 1.7rem; top: auto; bottom: -.5rem; width: 2px; height: .5rem; } }

/* Comparison (completion vs job readiness) */
.ember-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin: 2rem 0; }
.ember-compare > div { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem; background: var(--white); }
.ember-compare > div:last-child { border-color: #CDB3E3; background: #FBF7FE; }
.ember-compare h3 { margin-bottom: .4rem; }
@media (max-width: 700px) { .ember-compare { grid-template-columns: 1fr; } }

/* ---------- Services page ---------- */
.ember-jump { margin: 0 0 2.5rem; }
.ember-jump ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.ember-jump a { display: inline-block; padding: .45rem .95rem; border-radius: 999px; border: 1px solid var(--line); background: var(--white); text-decoration: none; font-size: .92rem; font-weight: 600; color: var(--navy); }
.ember-jump a:hover { border-color: var(--blue-ink); color: var(--blue-ink); }
.ember-service-list { display: grid; gap: 1.5rem; }
.ember-service-full { border: 1px solid var(--line); border-radius: 18px; padding: clamp(1.4rem, 3.5vw, 2.4rem); background: var(--white); scroll-margin-top: 100px; }
.ember-service-full__head { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.4rem; }
.ember-service-full__head h2 { font-size: clamp(1.35rem, 1.6vw + .8rem, 1.85rem); margin-bottom: .45rem; }
.ember-service-full__icon { display: inline-grid; place-items: center; width: 54px; height: 54px; border-radius: 14px; background: var(--navy); color: var(--cyan); flex: none; }
.ember-service-full__body { display: grid; grid-template-columns: .9fr 1.1fr; gap: 2rem; }
.ember-service-full__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 12px; margin-bottom: 1.1rem; }
.ember-service-full__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.ember-service-full__cols h3 { font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.ember-service-full__actions { margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: center; }
@media (max-width: 900px) { .ember-service-full__body, .ember-service-full__cols { grid-template-columns: 1fr; } }

/* Detail pages (service) */
.ember-detail { display: grid; grid-template-columns: 1.4fr .9fr; gap: clamp(2rem, 4vw, 3.5rem); padding-top: clamp(2.4rem, 5vw, 3.5rem); }
.ember-detail__img { margin: 0 0 2rem; }
.ember-detail__img img { border-radius: 14px; width: 100%; }
.ember-detail__side { display: grid; gap: 1.2rem; align-content: start; }
.ember-panel h2 { font-size: 1.08rem; }
.ember-panel--cta { background: var(--navy); color: #C9D6E6; border-color: var(--navy); }
.ember-panel--cta h2 { color: var(--white); }
.ember-panel--cta .ember-btn--primary { background: var(--cyan); color: var(--navy); box-shadow: none; }
@media (max-width: 900px) { .ember-detail { grid-template-columns: 1fr; } }

/* Project case */
.ember-status-note { background: var(--mist); border-left: 4px solid var(--blue-ink); padding: .9rem 1.1rem; border-radius: 0 10px 10px 0; margin: 0 0 2rem; }
.ember-case { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.ember-case__item { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem; background: var(--white); }
.ember-case__item--wide { grid-column: 1 / -1; background: var(--mist); }
.ember-case__item h2 { font-size: 1.2rem; }
.ember-case__item p:last-child { margin: 0; }
@media (max-width: 760px) { .ember-case { grid-template-columns: 1fr; } }
.ember-techs { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.5rem 0 0; }
.ember-project__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 2.5rem; }

/* Application status */
.ember-app-status { border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.1rem; background: var(--white); margin: 1rem 0; }
.ember-app-status__head { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 0 0 .4rem; }
.ember-app-status__host { font-size: .85rem; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.ember-app-status__msg { margin: 0; font-size: .95rem; color: var(--muted); }
.ember-app-status__links { display: flex; flex-wrap: wrap; gap: .6rem; margin: .7rem 0 0; }
.ember-apps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1.2rem; }
.ember-apps__item { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem; background: var(--mist); }
.ember-apps__item h3 { margin-bottom: .3rem; }

/* Sample dashboard */
.ember-sample { margin: 2.5rem 0; border: 1px solid #C9D3E0; border-radius: 16px; background: var(--white); box-shadow: var(--shadow); overflow: hidden; }
.ember-sample__bar { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; padding: .9rem 1.2rem; background: var(--navy); color: var(--white); font: 600 .95rem var(--font-head); }
.ember-sample__tag { background: #FFD98A; color: #3D2A00; font-size: .75rem; padding: .25em .7em; border-radius: 999px; text-transform: uppercase; letter-spacing: .05em; }
.ember-sample__kpis { list-style: none; padding: 1.2rem; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
.ember-sample__kpis li { border: 1px solid var(--line); border-radius: 12px; padding: .9rem 1rem; }
.ember-sample__kpi-label { display: block; font-size: .82rem; color: var(--muted); }
.ember-sample__kpi-value { display: block; font: 700 1.55rem/1.2 var(--font-head); color: var(--navy); margin: .2rem 0; }
.ember-sample__kpi-note { display: block; font-size: .8rem; color: var(--muted); }
.ember-sample__chart { padding: 0 1.2rem; }
.ember-sample__chart svg { width: 100%; height: auto; font: 11px var(--font-body); }
.ember-sample__chart .grid line { stroke: #E3E9F1; }
.ember-sample__chart .grid text, .ember-sample__chart .labels text { fill: #5B6878; }
.ember-sample__chart rect.s, .ember-sample__legend .s { fill: #2F80ED; background: #2F80ED; }
.ember-sample__chart rect.e, .ember-sample__legend .e { fill: #AC61D5; background: #AC61D5; }
.ember-sample__legend { font-size: .85rem; color: var(--muted); display: flex; gap: .5rem; align-items: center; margin: 0 0 .3rem; }
.ember-sample__legend span { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-left: .6rem; }
.ember-sample__legend span:first-child { margin-left: 0; }
.ember-sample__table { padding: .4rem 1.2rem 0; overflow-x: auto; }
.ember-sample__table summary { cursor: pointer; font-weight: 600; color: var(--blue-ink); padding: .4rem 0; }
.ember-sample__table table { font-size: .92rem; margin: .5rem 0 1rem; }
.ember-sample__table caption { text-align: left; font-size: .85rem; color: var(--muted); padding-bottom: .4rem; }
.ember-sample__insights { padding: .8rem 1.2rem; display: grid; gap: .5rem; border-top: 1px solid var(--line); }
.ember-sample__insight { margin: 0; font-size: .95rem; }
.ember-sample figcaption { padding: .9rem 1.2rem; font-size: .86rem; color: var(--muted); background: var(--mist); border-top: 1px solid var(--line); margin: 0; }
@media (max-width: 760px) { .ember-sample__kpis { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) {
	.ember-sample__table { padding-inline: .8rem; }
	.ember-sample__table table { font-size: .84rem; }
	.ember-sample__table th, .ember-sample__table td { padding: .45em .4em; }
}

/* ---------- Forms ---------- */
.ember-enquiry { position: relative; }
.ember-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.2rem; }
.ember-field--wide { grid-column: 1 / -1; }
@media (max-width: 640px) { .ember-form__grid { grid-template-columns: 1fr; } }
.ember-field label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: .35rem; color: var(--navy); }
.ember-req { font-weight: 500; color: var(--muted); font-size: .85rem; }
.ember-hint { font-size: .86rem; color: var(--muted); margin: -.1rem 0 .4rem; }
.ember-field input[type="text"], .ember-field input[type="email"], .ember-field input[type="tel"], .ember-field select, .ember-field textarea { width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--white); border: 1.5px solid #9AA8BA; border-radius: 10px; padding: .72rem .85rem; min-height: 48px; }
.ember-field textarea { resize: vertical; min-height: 150px; }
.ember-field 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='%230A1A2F' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .8rem center; background-size: 18px; padding-right: 2.5rem; }
.ember-field input:focus, .ember-field select:focus, .ember-field textarea:focus { border-color: var(--blue-ink); box-shadow: 0 0 0 3px rgba(27, 102, 201, .25); outline: none; }
.ember-field.has-error input, .ember-field.has-error select, .ember-field.has-error textarea { border-color: var(--error); }
.ember-error { color: var(--error); font-size: .9rem; font-weight: 600; margin: .35rem 0 0; }
.ember-check { display: flex; gap: .7rem; align-items: flex-start; }
.ember-check input { width: 22px; height: 22px; margin: .1rem 0 0; flex: none; accent-color: var(--blue-ink); }
.ember-check label { font-weight: 500; color: var(--ink); margin: 0; }
.ember-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.4rem; }
.ember-form__actions .ember-hint { margin: 0; }
.ember-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ember-notice { border-radius: 12px; padding: 1rem 1.2rem; margin: 0 0 1.4rem; border: 1px solid; }
.ember-notice p:last-child, .ember-notice ul:last-child { margin-bottom: 0; }
.ember-notice:focus { outline: none; box-shadow: var(--focus); }
.ember-notice--success { background: #E9F7F0; border-color: #9BD5B9; color: #0B4F33; }
.ember-notice--error { background: #FDECEA; border-color: #F2B8B2; color: #7A1A12; }
.ember-notice--error a { color: #7A1A12; }
.ember-notice--warning { background: #FFF6E0; border-color: #EDCB7A; color: #5A3B00; }
.ember-notice--info { background: #EAF2FD; border-color: #A9C7F0; color: #123F7A; font-size: .92rem; }
.ember-channels { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .55rem; }
.ember-channels__label { display: inline-block; min-width: 6.5em; font-weight: 600; color: var(--muted); font-size: .9rem; }
.ember-social { list-style: none; padding: 0; margin: .8rem 0 0; display: flex; flex-wrap: wrap; gap: .8rem; }
.ember-enquiry--direct p { margin-bottom: .5rem; }

/* Image credits */
.ember-credits { list-style: none; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.ember-credits__item { display: flex; gap: 1rem; align-items: flex-start; border: 1px solid var(--line); border-radius: 12px; padding: .8rem; font-size: .92rem; }
.ember-credits__item img { width: 80px; height: 80px; object-fit: cover; border-radius: 8px; flex: none; }
.ember-credits__item p { margin: 0; }

/* ---------- Footer ---------- */
.ember-footer { background: var(--navy); color: #B9C7D9; padding: clamp(3rem, 6vw, 4.5rem) 0 0; font-size: .95rem; }
.ember-footer a { color: #E1EAF5; text-decoration: none; }
.ember-footer a:hover { color: var(--cyan); text-decoration: underline; }
.ember-footer .ember-logo:hover { text-decoration: none; }
.ember-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 2rem; padding-bottom: 2.5rem; }
.ember-footer__brand p { margin-top: 1rem; max-width: 26em; }
.ember-footer__title { color: var(--white); font-size: .82rem; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 1rem; }
.ember-footer__list { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.ember-footer__list .current-menu-item > a { color: var(--cyan); }
.ember-footer__state { display: block; font-size: .8rem; color: #8FA2BA; }
.ember-footer .ember-channels { margin-top: 0; }
.ember-footer .ember-channels__label { color: #8FA2BA; min-width: 0; margin-right: .4rem; }
.ember-footer__cta { font-weight: 600; color: var(--cyan) !important; }
.ember-footer__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(255, 255, 255, .1); padding-top: 1.3rem; padding-bottom: 1.5rem; font-size: .88rem; }
.ember-footer__base p { margin: 0; }
.ember-footer__legal { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.2rem; }
@media (max-width: 900px) { .ember-footer__grid { grid-template-columns: 1fr 1fr; } .ember-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .ember-footer__grid { grid-template-columns: 1fr; } }

/* Misc */
.ember-list-item { border-bottom: 1px solid var(--line); padding: 1.2rem 0; }
.search-form { display: flex; gap: .5rem; margin-top: 1.5rem; }
.search-form label { flex: 1; min-width: 0; }
.search-form input[type="search"] { width: 100%; }
.search-form input[type="search"] { flex: 1; min-height: 46px; border: 1.5px solid #9AA8BA; border-radius: 10px; padding: .5rem .8rem; font: inherit; }
.search-form input[type="submit"] { min-height: 46px; border-radius: 999px; border: 0; padding: 0 1.2rem; background: var(--navy); color: var(--white); font: 600 .95rem var(--font-head); cursor: pointer; }

/* Restrained reveal motion (only when JS is on and motion is allowed) */
@media (prefers-reduced-motion: no-preference) {
	.js .ember-reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
	.js .ember-reveal.is-visible { opacity: 1; transform: none; }
}

@media print {
	.ember-footer, .ember-enquiry-band, .ember-nav-toggle, .ember-nav, .ember-header .ember-logo--dark { display: none !important; }
	.ember-header { position: static; background: none; border: 0; }
	.ember-logo-print { display: block; padding: 0 0 12pt; }

	body { font-size: 11pt; }
	.ember-hero, .ember-page-hero, .ember-academy-band { background: none !important; color: #000; }
	.ember-hero__title, .ember-page-hero__title, .ember-academy-band h2 { color: #000; }
}

/* ---------- Phones: compact homepage (desktop layout above is unchanged) ---------- */
.ember-text-short { display: none; }
@media (max-width: 600px) {
	.ember-text-full { display: none; }
	.ember-text-short { display: block; }

	/* Hero: headline, short intro and enquiry button come before the photo. */
	.ember-hero { padding: 1.9rem 0 2.25rem; }
	.ember-hero__grid { gap: 1.6rem; }
	.ember-eyebrow { margin-bottom: .6rem; font-size: .72rem; }
	.ember-hero__title { font-size: clamp(1.75rem, 7.4vw, 2.1rem); margin-bottom: .8rem; }
	.ember-hero__text { font-size: 1.05rem; margin-bottom: 0; }
	.ember-hero__actions { margin: 1.3rem 0 1.1rem; gap: .6rem; }
	.ember-hero__actions .ember-btn { flex: 1 1 100%; }
	.ember-hero__points { gap: .3rem; font-size: .92rem; }
	.ember-hero__img { aspect-ratio: 3 / 2; border-radius: 16px; }

	/* Sections: less vertical padding. */
	.ember-section { padding: 2.6rem 0; }
	.ember-section__head { margin-bottom: 1.3rem; }
	.ember-section__head h2 { margin-bottom: .45em; }
	.ember-section__lead { font-size: 1rem; }
	.ember-section__more { margin-top: 1.2rem; }

	/* Service cards: icon beside the title and one short sentence; details are on each service page. */
	.ember-cards { gap: .75rem; }
	.ember-card--service { display: grid; grid-template-columns: 44px 1fr; column-gap: .9rem; align-items: start; padding: 1rem 1.1rem; }
	.ember-card--service > * { grid-column: 2; }
	.ember-card--service .ember-card__icon { grid-column: 1; grid-row: 1 / span 3; width: 44px; height: 44px; margin: 0; }
	.ember-card--service .ember-card__title { font-size: 1.05rem; margin-bottom: .25rem; }
	.ember-card--service p { font-size: .95rem; margin-bottom: .4rem; }
	.ember-card--service .ember-card__more { font-size: .88rem; }
	.ember-card--cta { padding: 1.2rem 1.1rem; }
	.ember-card--cta .ember-card__title { font-size: 1.15rem; }

	/* Academy band, projects, process and enquiry: tighter. */
	.ember-academy-band__grid, .ember-enquiry-band__grid, .ember-split { gap: 1.4rem; }
	.ember-academy-band__media img { aspect-ratio: 16 / 9; }
	.ember-stats { margin-top: 1.1rem; gap: .5rem; }
	.ember-stats li { padding: .65rem .8rem; }
	.ember-stats__num { font-size: 1.4rem; }
	.ember-academy-band__actions { margin: 1.2rem 0 .9rem; }
	.ember-card__body { padding: 1.1rem 1.2rem 1.2rem; }
	.ember-card--project .ember-card__body > p:not(.ember-card__meta) { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
	.ember-process { gap: .75rem; }
	.ember-process__step { padding: 1.1rem 1.1rem 1rem; display: grid; grid-template-columns: 40px 1fr; column-gap: .85rem; }
	.ember-process__step > * { grid-column: 2; }
	.ember-process__icon { grid-column: 1; grid-row: 1 / span 2; width: 40px; height: 40px; margin: 0; }
	.ember-process__num { top: 1rem; right: 1rem; font-size: 1.6rem; }
	.ember-process__step h3 { margin-bottom: .25rem; }
	.ember-enquiry-band__form { padding: 1.2rem; }
}
