/*
 * eFlight theme styles.
 * Tokens live in theme.json; this file styles the theme's own components.
 */

:root {
	--ef-ink: var(--wp--preset--color--ink);
	--ef-brand: var(--wp--preset--color--brand);
	--ef-brand-text: var(--wp--preset--color--brand-text);
	--ef-haze: var(--wp--preset--color--haze);
	--ef-slate: var(--wp--preset--color--slate);
	--ef-line: var(--wp--preset--color--line);
	--ef-r-s: var(--wp--custom--radius--small);
	--ef-r-m: var(--wp--custom--radius--medium);
	--ef-gap: var(--wp--preset--spacing--60);
}

html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { -webkit-font-smoothing: antialiased; font-feature-settings: "tnum" 0; }

:focus-visible { outline: 2px solid var(--ef-brand); outline-offset: 3px; border-radius: 2px; }

h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }

/* Main wrapper controls section rhythm itself. */
.wp-site-blocks > * { margin-block-start: 0; }
.ef-main > * { margin-block-start: 0; }
.ef-main { padding-bottom: var(--ef-gap); }
.ef-main--front { padding-bottom: 0; }

.ef-section { padding-block: var(--ef-gap) 0; }
.ef-section--flush { padding-top: var(--wp--preset--spacing--40); }
.ef-section--top-line { border-top: 1px solid var(--ef-line); margin-top: var(--ef-gap) !important; }
.ef-split { gap: var(--wp--preset--spacing--60) !important; }

.ef-empty { color: var(--ef-slate); }
.ef-notice { padding: 1rem 1.25rem; background: var(--ef-haze); border-radius: var(--ef-r-s); }

/* ---------- Buttons ---------- */

.wp-block-button__link,
.ef-button { transition: background-color .15s ease, color .15s ease, border-color .15s ease; }

.ef-button {
	display: inline-flex; align-items: center; justify-content: center;
	padding: .8rem 1.4rem; border-radius: var(--ef-r-s);
	background: var(--ef-brand); color: var(--ef-ink); font-weight: 600; text-decoration: none;
	border: 1.5px solid var(--ef-brand);
}
.ef-button:hover { background: var(--ef-ink); border-color: var(--ef-ink); color: #fff; }
.ef-button--ghost { background: transparent; color: var(--ef-ink); border-color: var(--ef-ink); }
.ef-button--ghost:hover { background: var(--ef-ink); color: #fff; }

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; border: 1.5px solid currentColor; color: var(--ef-ink);
	padding: calc(.8rem - 1.5px) calc(1.4rem - 1.5px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--ef-ink); border-color: var(--ef-ink); color: #fff; }

/* ---------- Header ---------- */

.ef-header { position: relative; z-index: 50; background: #fff; border-bottom: 1px solid var(--ef-line); }
.ef-header__bar { padding-block: .25rem; gap: 1.5rem; }

/*
 * Logo. The SVG files include air around the mark that covers the clear zone
 * (x = height of TRAINING). 280 px file width = about 246 px visible logo,
 * above the manual's 240 px minimum. On smaller screens the symbol is used.
 */
.ef-brand { --w: 280px; display: block; line-height: 0; flex-shrink: 0; margin-left: calc(var(--w) * -.068); transition: margin .3s var(--ef-ease); }
.ef-brand img { display: block; height: auto; }
.ef-brand__logo { width: var(--w); transition: width .3s var(--ef-ease); }
.ef-brand-wrap { margin: 0; }
/* The full logo always shows in the header; it shrinks a little on scroll and on small screens. */
.ef-header.is-compact .ef-brand { --w: 210px; }
@media (max-width: 1200px) {
	.ef-header .ef-brand { --w: 230px; }
	.ef-header.is-compact .ef-brand { --w: 190px; }
}
@media (max-width: 781px) {
	.ef-header .ef-brand { --w: 190px; }
	.ef-header.is-compact .ef-brand { --w: 150px; }
}
.ef-header__nav { gap: 1.25rem; }

.ef-nav .wp-block-navigation-item__content { color: var(--ef-ink); padding-block: .35rem; }
.ef-nav .wp-block-navigation-item__content:hover { color: var(--ef-brand-text); }
.ef-nav .current-menu-item > .wp-block-navigation-item__content,
.ef-nav [aria-current="page"] { color: var(--ef-brand-text); box-shadow: inset 0 -2px 0 var(--ef-brand); }
.ef-nav .wp-block-navigation__container { gap: 1.4rem; }

.ef-lang { display: flex; align-items: center; gap: .35rem; font-size: var(--wp--preset--font-size--small); font-weight: 600; letter-spacing: .04em; white-space: nowrap; }
.ef-lang__item { color: var(--ef-slate); text-decoration: none; padding: .35rem .1rem; }
.ef-lang a.ef-lang__item:hover { color: var(--ef-brand-text); }
.ef-lang__item.is-current { color: var(--ef-ink); }
.ef-lang abbr { text-decoration: none; }
.ef-lang__sep { color: var(--ef-line); }
.ef-header__cta { margin: 0; }
.ef-header__cta .wp-block-button__link { padding: .6rem 1.05rem; font-size: var(--wp--preset--font-size--small); white-space: nowrap; }

@media (max-width: 781px) {
	.ef-header .ef-header__cta { display: none; }
	.ef-header__nav { gap: .75rem; }
}

/* ---------- Hero ---------- */

.ef-hero.wp-block-cover { min-height: min(82vh, 52rem) !important; padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60); }
.ef-hero.wp-block-cover { padding-inline: 0; }
.ef-hero.wp-block-cover .wp-block-cover__inner-container {
	box-sizing: border-box; width: 100% !important; margin-inline: auto !important;
	max-width: calc(var(--wp--style--global--wide-size) + var(--wp--style--root--padding-left) + var(--wp--style--root--padding-right));
	padding-inline: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right);
}
.ef-hero .wp-block-cover__inner-container > * { margin-left: 0 !important; margin-right: 0 !important; }
.ef-hero__title {
	color: #fff;
	font-size: var(--wp--preset--font-size--display); font-weight: 600; line-height: .95; letter-spacing: -0.025em;
	max-width: 15ch !important;
	hyphens: manual;
}
.ef-hero__lead { font-size: var(--wp--preset--font-size--medium); max-width: 36rem !important; color: rgba(255, 255, 255, .88); margin-top: 1.5rem; }
.ef-hero__actions { margin-top: 2rem; }
.ef-hero .is-style-outline > .wp-block-button__link { color: #fff; }
.ef-hero .is-style-outline > .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--ef-ink); }
.ef-hero :focus-visible { outline-color: #fff; }

@media (prefers-reduced-motion: no-preference) {
	.ef-hero__title, .ef-hero__lead, .ef-hero__actions { animation: ef-rise .8s cubic-bezier(.2, .7, .2, 1) both; }
	.ef-hero__lead { animation-delay: .12s; }
	.ef-hero__actions { animation-delay: .22s; }
}
@keyframes ef-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ---------- Section heads ---------- */

.ef-section-head {
	display: flex; justify-content: space-between; align-items: end; gap: 1.5rem;
	margin-bottom: var(--wp--preset--spacing--40);
}
.ef-section-head__title,
.ef-highlights > .ef-section-head__title {
	margin: 0; font-size: var(--wp--preset--font-size--x-large); font-weight: 600; letter-spacing: -0.02em;
}
.ef-section-head__intro { margin: .6rem 0 0; color: var(--ef-slate); max-width: 40rem; }
.ef-section-head__link { white-space: nowrap; font-weight: 500; text-decoration: none; }
.ef-section-head__link:hover { text-decoration: underline; }

/* ---------- Tags, badges, flags ---------- */

.ef-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.ef-tag {
	display: inline-flex; gap: .35rem; align-items: baseline;
	padding: .15rem .5rem; border-radius: 99px; background: var(--ef-haze);
	font-size: .8125rem; color: var(--ef-ink); text-decoration: none; white-space: nowrap;
}
a.ef-tag:hover { background: var(--ef-line); }
.ef-tag__code { font-weight: 700; color: var(--ef-brand-text); }
.ef-badge {
	display: inline-block; margin-left: .5rem; padding: .05rem .45rem; border-radius: var(--ef-r-s);
	border: 1px solid var(--ef-brand); color: var(--ef-brand-text);
	font-size: .75rem; font-weight: 600; vertical-align: middle; white-space: nowrap;
}
.ef-flag {
	display: inline-block; padding: .1rem .45rem; border: 1px solid var(--ef-line); border-radius: var(--ef-r-s);
	font-size: .75rem; font-weight: 600; color: var(--ef-slate);
}

/* ---------- Course list ---------- */

.ef-courses__group + .ef-courses__group { margin-top: var(--wp--preset--spacing--50); }
.ef-courses__type {
	margin: 0; padding-bottom: .6rem; border-bottom: 1px solid var(--ef-ink);
	font-size: var(--wp--preset--font-size--base); font-weight: 600; color: var(--ef-slate);
}
.ef-courses__list { list-style: none; margin: 0; padding: 0; }
.ef-courses > .ef-courses__list { border-top: 1px solid var(--ef-ink); }
.ef-course { position: relative; border-bottom: 1px solid var(--ef-line); }
.ef-course__link {
	display: grid; grid-template-columns: minmax(6rem, 9rem) 1fr auto; gap: .25rem 2rem; align-items: baseline;
	padding: 1.15rem .75rem 1.15rem 0; color: var(--ef-ink); text-decoration: none;
	transition: background-color .15s ease;
}
.ef-course__link:hover { background: linear-gradient(90deg, var(--ef-haze), transparent); }
.ef-course__short {
	padding-left: .75rem;
	font-size: var(--wp--preset--font-size--large); font-weight: 700;
	color: var(--ef-brand); line-height: 1; letter-spacing: -0.01em;
}
.ef-course__title { display: block; font-weight: 600; font-size: var(--wp--preset--font-size--medium); line-height: 1.3; }
.ef-course__lead { display: block; margin-top: .25rem; color: var(--ef-slate); max-width: 46rem; }
.ef-course__price { font-variant-numeric: tabular-nums; font-weight: 500; white-space: nowrap; }
.ef-course .ef-tags { margin-top: .6rem; }

@media (max-width: 781px) {
	.ef-course__link { grid-template-columns: 4.5rem 1fr; padding-right: 0; }
	.ef-course__short { padding-left: 0; font-size: var(--wp--preset--font-size--medium); }
	.ef-course__price { grid-column: 2; color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }
}

/* Filter */
.ef-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: var(--wp--preset--spacing--50); }
.ef-filter a {
	padding: .45rem .9rem; border: 1px solid var(--ef-line); border-radius: 99px;
	color: var(--ef-ink); text-decoration: none; font-weight: 500;
}
.ef-filter a:hover { border-color: var(--ef-brand); color: var(--ef-brand-text); }
.ef-filter a[aria-current] { background: var(--ef-ink); border-color: var(--ef-ink); color: #fff; }
.ef-filter a.is-chosen:not([aria-current])::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: .45rem; border-radius: 50%; background: var(--ef-brand); vertical-align: middle; }

/* ---------- Events ---------- */

.ef-events__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ef-ink); }
.ef-event { border-bottom: 1px solid var(--ef-line); }
.ef-event__link {
	display: grid; grid-template-columns: 4.5rem 1fr; gap: 1.25rem; align-items: start;
	padding: 1.1rem 0; color: var(--ef-ink); text-decoration: none;
}
.ef-event__link:hover .ef-event__title { color: var(--ef-brand-text); }
.ef-event__date { display: flex; flex-direction: column; line-height: 1; }
.ef-event__day { font-size: 2.6rem; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.ef-event__month { margin-top: .3rem; font-size: .8125rem; color: var(--ef-slate); }
.ef-event__title { display: block; font-weight: 600; font-size: var(--wp--preset--font-size--medium); line-height: 1.3; transition: color .15s ease; }
.ef-event__when { display: block; margin-top: .2rem; color: var(--ef-ink); }
.ef-event__meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-top: .3rem; color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }
.ef-event__meta > span { display: inline-flex; gap: .3rem; align-items: center; }
.ef-event__meta .ef-icon { width: 15px; height: 15px; }
.ef-event .ef-tags { grid-column: 2; margin-top: -.4rem; }
.ef-events__past-title { margin-top: var(--wp--preset--spacing--50); font-size: var(--wp--preset--font-size--base); color: var(--ef-slate); }
.ef-events__list--past { opacity: .7; }

/* ---------- News ---------- */

.ef-newslist__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ef-ink); }
.ef-news { border-bottom: 1px solid var(--ef-line); }
.ef-news__title { display: block; margin-top: .2rem; font-weight: 600; font-size: var(--wp--preset--font-size--medium); line-height: 1.3; transition: color .15s ease; }
.ef-news__excerpt { display: block; margin-top: .35rem; color: var(--ef-slate); }

/* News archive built with core Query blocks */
.ef-newsarchive .ef-news { padding: 1.4rem 0; }
.ef-newsarchive .ef-news > * { margin: 0; }
.ef-newsarchive .ef-news__title { margin-top: .25rem; font-size: var(--wp--preset--font-size--large); }
.ef-newsarchive .ef-news__title a { color: var(--ef-ink); text-decoration: none; }
.ef-newsarchive .ef-news__title a:hover { color: var(--ef-brand-text); }
.ef-newsarchive .ef-news__excerpt { margin-top: .5rem; max-width: 46rem; }
.ef-newsarchive .wp-block-post-excerpt__more-text { display: none; }
.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--50); }

/* ---------- Fleet ---------- */

.ef-fleet__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: var(--wp--preset--spacing--50) clamp(1rem, 2.5vw, 2rem); }
.ef-aircraft { display: flex; flex-direction: column; }
.ef-aircraft__link { display: flex; flex-direction: column; color: var(--ef-ink); text-decoration: none; }
.ef-aircraft__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--ef-r-s); background: var(--ef-haze); }
.ef-aircraft__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ef-aircraft__link:hover img { transform: scale(1.03); }
.ef-aircraft__reg { margin-top: 1rem; font-size: var(--wp--preset--font-size--large); font-weight: 700; letter-spacing: -0.01em; line-height: 1; }
.ef-aircraft__link:hover .ef-aircraft__reg { color: var(--ef-brand); }
.ef-aircraft__model { margin-top: .3rem; color: var(--ef-slate); }
.ef-aircraft__specs { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: .9rem 0 0; padding-top: .8rem; border-top: 1px solid var(--ef-line); }
.ef-aircraft__specs dt { font-size: .75rem; color: var(--ef-slate); }
.ef-aircraft__specs dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.ef-aircraft__foot { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .8rem; }

/* ---------- People ---------- */

.ef-people__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 0 clamp(1rem, 2.5vw, 2rem); }
.ef-people__group + .ef-people__group { margin-top: var(--wp--preset--spacing--50); }
.ef-people__base { margin: 0 0 .5rem; font-size: var(--wp--preset--font-size--medium); }
.ef-people__base a { color: var(--ef-ink); text-decoration: none; }
.ef-people__base a:hover { color: var(--ef-brand-text); }
.ef-people__code { font-weight: 700; color: var(--ef-brand); margin-right: .35rem; }

/* ---------- Base page ---------- */

.ef-base-hero { padding-top: var(--wp--preset--spacing--50); }
.ef-base-hero__crumb, .ef-crumb { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--small); color: var(--ef-slate); }
.ef-base-hero__crumb a, .ef-crumb a { color: var(--ef-slate); text-decoration: none; }
.ef-base-hero__crumb a:hover, .ef-crumb a:hover { color: var(--ef-brand-text); }
.ef-base-hero__title { margin: 0; display: flex; flex-direction: column; }
.ef-base-hero__code {
	font-size: clamp(5rem, 16vw, 13rem); font-weight: 700;
	line-height: .82; letter-spacing: -0.04em; color: var(--ef-ink);
}
.ef-base-hero__name { margin-top: 1rem; font-size: var(--wp--preset--font-size--large); font-weight: 600; }
.ef-base-hero__summary { max-width: 40rem; margin: .75rem 0 0; color: var(--ef-slate); font-size: var(--wp--preset--font-size--medium); }
.ef-base-hero__media { margin: var(--wp--preset--spacing--50) 0 0; aspect-ratio: 21 / 8; overflow: hidden; border-radius: var(--ef-r-s); }
.ef-base-hero__media img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 781px) { .ef-base-hero__media { aspect-ratio: 4 / 3; } }

/* A short flygblå line, echoing the logo's wing segments, ends the base intro. */
.ef-base-hero__text { position: relative; }
.ef-base-hero__text::after {
	content: ""; display: block; width: 4.5rem; height: 3px; margin-top: 1.5rem; background: var(--ef-brand);
}

.ef-base-content > *:first-child { margin-top: 0; }
.ef-base-content { margin-bottom: var(--wp--preset--spacing--50); }

.ef-contact { padding: clamp(1.25rem, 3vw, 2rem); background: var(--ef-haze); border-radius: var(--ef-r-m); }
.ef-contact .ef-section-head__title { font-size: var(--wp--preset--font-size--large); }
.ef-contact__list { margin: 0; }
.ef-contact__row { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; padding: .75rem 0; border-top: 1px solid var(--ef-line); }
.ef-contact__row dt { color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); padding-top: .15rem; }
.ef-contact__row dd { margin: 0; }
.ef-contact__row dd span { display: block; color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }
.ef-contact__note { margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--ef-line); font-size: var(--wp--preset--font-size--small); color: var(--ef-slate); }
@media (max-width: 480px) { .ef-contact__row { grid-template-columns: 1fr; gap: .1rem; } }

/* ---------- Page heads & singles ---------- */

.ef-page-head { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--30); }
.ef-page-head > * { margin-block: 0; }
.ef-page-head__title {
	font-size: var(--wp--preset--font-size--display); font-weight: 600;
	line-height: .95; letter-spacing: -0.025em; max-width: 18ch;
}
.ef-page-head__lead, .ef-page-head .wp-block-post-excerpt__excerpt { margin-top: 1.25rem !important; font-size: var(--wp--preset--font-size--medium); color: var(--ef-slate); max-width: 40rem; }
.ef-page-head .wp-block-post-excerpt { margin-top: 0; }
.ef-page-head .wp-block-post-excerpt__more-text { display: none; }
.ef-page-head--narrow { max-width: var(--wp--style--global--content-size); }
.ef-page-head--narrow .ef-page-head__title { font-size: var(--wp--preset--font-size--x-large); max-width: none; }
.ef-date { color: var(--ef-slate); margin-bottom: .6rem !important; }

.ef-feature { margin-top: var(--wp--preset--spacing--40) !important; }
.ef-feature img { border-radius: var(--ef-r-s); }

.ef-single { margin-top: var(--wp--preset--spacing--50) !important; gap: var(--wp--preset--spacing--60) !important; }
.ef-single__aside > * { position: sticky; top: 6rem; }

.ef-content--article > *:first-child { margin-top: 0; }
.ef-content h2 { margin-top: 2.5rem; font-size: var(--wp--preset--font-size--large); }
.ef-content h3 { margin-top: 2rem; }
.ef-content ul { padding-left: 1.2rem; }
.ef-content li + li { margin-top: .3rem; }
.ef-content li::marker { color: var(--ef-brand); }
.ef-content .wp-block-table table { border-collapse: collapse; width: 100%; }
.ef-content .wp-block-table th, .ef-content .wp-block-table td { padding: .55rem .75rem .55rem 0; border: 0; border-bottom: 1px solid var(--ef-line); text-align: left; vertical-align: top; }
.ef-content .wp-block-table thead th { border-bottom: 1px solid var(--ef-ink); font-weight: 600; }
.ef-content .wp-block-table figcaption { color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }

.ef-facts { padding: clamp(1.25rem, 3vw, 1.75rem); background: var(--ef-haze); border-radius: var(--ef-r-m); }
.ef-facts__list { margin: 0; }
.ef-facts__row { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--ef-line); }
.ef-facts__row:first-child { padding-top: 0; }
.ef-facts__row dt { color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); padding-top: .1rem; }
.ef-facts__row dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.ef-facts__row dd .ef-tag { background: #fff; font-weight: 400; }
.ef-facts__next { margin-top: 1.25rem; }
.ef-facts__next h3 { margin: 0 0 .4rem; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--ef-slate); }
.ef-facts__next ul { list-style: none; margin: 0; padding: 0; }
.ef-facts__next li a { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; color: var(--ef-ink); text-decoration: none; }
.ef-facts__next li a:hover strong { color: var(--ef-brand-text); }
.ef-facts__next li span { color: var(--ef-slate); }
.ef-facts__plain li { padding: .3rem 0; border-bottom: 1px solid var(--ef-line); font-size: var(--wp--preset--font-size--small); }
.ef-facts__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.5rem; }
.ef-facts__note { margin: 1rem 0 0; font-size: .8125rem; color: var(--ef-slate); }

@media (max-width: 1000px) {
	.ef-single { flex-wrap: wrap !important; }
	.ef-single > .wp-block-column { flex-basis: 100% !important; }
	.ef-single__aside > * { position: static; }
}

/* ---------- Bands, highlights, CTA ---------- */

.ef-band { padding-block: var(--ef-gap); margin-top: var(--ef-gap) !important; }
.ef-band--haze { background: var(--ef-haze); }
.ef-about { gap: var(--wp--preset--spacing--60) !important; }
.ef-about h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 0; }

.ef-figures { list-style: none; margin: 0; padding: 0; }
.ef-figures li { display: grid; grid-template-columns: 8rem 1fr; gap: 1.5rem; align-items: baseline; padding: 1.1rem 0; border-top: 1px solid var(--ef-line); }
.ef-figures li:first-child { border-top-color: var(--ef-ink); }
.ef-figures strong { font-size: var(--wp--preset--font-size--x-large); font-weight: 700; color: var(--ef-brand); line-height: 1; font-variant-numeric: tabular-nums; }
@media (max-width: 480px) { .ef-figures li { grid-template-columns: 5.5rem 1fr; gap: 1rem; } }

.ef-highlights__grid { margin-top: var(--wp--preset--spacing--40); gap: clamp(1rem, 2.5vw, 2rem) !important; }
.ef-highlights__grid h3 { font-size: var(--wp--preset--font-size--base); margin: 0 0 .4rem; }
.ef-highlights__grid p { margin: 0; color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }
@media (min-width: 782px) and (max-width: 1100px) { .ef-highlights__grid { flex-wrap: wrap !important; } .ef-highlights__grid > .wp-block-column { flex-basis: calc(50% - 1rem) !important; } }

/* ---------- Footer ---------- */

.ef-footer {
	margin-top: 0; padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	background: var(--ef-ink); color: rgba(233, 238, 246, .78); font-size: var(--wp--preset--font-size--small);
}
.ef-footer a { color: #fff; text-decoration: none; }
.ef-footer a:hover { text-decoration: underline; }
.ef-footer :focus-visible { outline-color: #fff; }
.ef-footer__about { max-width: 22rem; margin-top: .5rem; }
.ef-footer__title { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: rgba(233, 238, 246, .55); margin: 0 0 .8rem; }
.ef-footer__links { list-style: none; margin: 0; padding: 0; }
.ef-footer__links li { padding: .2rem 0; }
.ef-footer__bottom { margin-top: var(--wp--preset--spacing--60) !important; padding-top: 1.25rem; border-top: 1px solid rgba(233, 238, 246, .14); }
.ef-footer__bottom p { margin: 0; }

/* Collapse the menu earlier than core's 600 px so the header never overflows. */
@media (max-width: 1000px) {
	.ef-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ef-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* Mobile navigation overlay */
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: var(--wp--preset--font-size--large); font-weight: 600; }

/* Theme lists placed inside page content keep their own layout. */
.ef-content :is(.ef-people__list, .ef-courses__list, .ef-events__list, .ef-newslist__list, .ef-fleet__grid) { padding-left: 0; }
.ef-content :is(.ef-people__list, .ef-courses__list, .ef-events__list, .ef-newslist__list, .ef-fleet__grid) > li { margin-top: 0; }
.ef-content :is(.ef-people, .ef-courses, .ef-events, .ef-fleet) { margin-top: var(--wp--preset--spacing--50); }

/* =========================================================================
 * Modern layer (v0.2): surfaces, motion, base cards, course runs.
 * ====================================================================== */

:root {
	--ef-r-l: var(--wp--custom--radius--large);
	--ef-pill: var(--wp--custom--radius--pill);
	/* Dark green is used only for the shimmer around the base cards and the "ongoing" status. */
	--ef-green-deep: #0b3b2c;
	--ef-green: #1c7a55;
	--ef-green-light: #3fbf88;
	--ef-ease: cubic-bezier(.2, .7, .2, 1);
	--ef-header-h: 0px;
}

.ef-button, .ef-filter a, .ef-tag, .ef-chip { border-radius: var(--ef-pill); }
.ef-button { padding: .8rem 1.5rem; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s var(--ef-ease); }
.ef-button:active, .wp-block-button__link:active { transform: scale(.98); }

/* Links: underline grows in from the left on hover. */
.ef-section-head__link, .ef-crumb a, .ef-footer__links a {
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size .3s var(--ef-ease), color .2s ease;
}
.ef-section-head__link:hover, .ef-crumb a:hover, .ef-footer__links a:hover { background-size: 100% 1px; text-decoration: none; }

/* ---------- Header: fixed, compacts on scroll ---------- */

html.ef-fixed-header .wp-site-blocks > header.wp-block-template-part { height: var(--ef-header-h); }
html.ef-fixed-header .ef-header { position: fixed; top: 0; left: 0; right: 0; }
html.ef-fixed-header.admin-bar .ef-header, html.ef-fixed-header .admin-bar .ef-header { top: var(--wp-admin--admin-bar--height, 0px); }
.ef-header { transition: background-color .3s ease, box-shadow .3s ease, border-color .3s ease; }
.ef-header.is-compact {
	background: rgba(255, 255, 255, .86);
	backdrop-filter: saturate(1.6) blur(14px);
	-webkit-backdrop-filter: saturate(1.6) blur(14px);
	box-shadow: 0 10px 30px -18px rgba(8, 34, 56, .35);
	border-color: transparent;
}
/* The blur would trap the full-screen menu inside the header, so drop it while the menu is open. */
.ef-header:has(.wp-block-navigation__responsive-container.is-menu-open) { backdrop-filter: none; -webkit-backdrop-filter: none; }
@keyframes ef-fade-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* ---------- Hero blends into the navy base band ---------- */

.ef-hero.wp-block-cover { padding-bottom: clamp(8rem, 14vw, 11rem); overflow: hidden; }
.ef-hero::after {
	content: ""; position: absolute; inset: auto 0 0 0; height: 45%; z-index: 1; pointer-events: none;
	background: linear-gradient(to bottom, rgba(8, 34, 56, 0), var(--ef-ink));
}
.ef-hero .wp-block-cover__inner-container { z-index: 2; }
@media (prefers-reduced-motion: no-preference) {
	.ef-hero .wp-block-cover__image-background { animation: ef-zoom 2.8s var(--ef-ease) both; }
}
@keyframes ef-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }

.ef-band--ink { background: var(--ef-ink); color: #fff; }
.ef-band--bases { margin-top: 0 !important; padding-top: 0; padding-bottom: var(--ef-gap); }
.ef-basecards { position: relative; z-index: 3; margin-top: clamp(-7rem, -9vw, -4.5rem); }
.ef-basecards__heading { margin: 0 0 1.25rem; color: #fff; font-size: var(--wp--preset--font-size--large); }

/* ---------- Base cards with dark green shimmer ---------- */

@property --ef-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }

.ef-basecards__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
.ef-basecard {
	position: relative; isolation: isolate; overflow: hidden;
	display: flex; flex-direction: column; gap: .6rem;
	padding: clamp(1.4rem, 2.5vw, 2rem);
	border-radius: var(--ef-r-l);
	background: linear-gradient(165deg, #0f2f4b 0%, #0a263e 55%, #0a2a35 100%);
	color: #fff; text-decoration: none;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 24px 48px -32px rgba(0, 0, 0, .6);
	transition: transform .5s var(--ef-ease), box-shadow .5s var(--ef-ease);
}
/* Rotating conic ring: a slow dark green glint travels around the edge. */
.ef-basecard::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px;
	background: conic-gradient(from var(--ef-angle),
		rgba(255, 255, 255, .07) 0deg, rgba(255, 255, 255, .07) 210deg,
		var(--ef-green-deep) 255deg, var(--ef-green-light) 295deg, var(--ef-green-deep) 330deg,
		rgba(255, 255, 255, .07) 360deg);
	-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);
	opacity: .55; transition: opacity .5s ease;
	animation: ef-spin 9s linear infinite;
	animation-delay: calc(var(--i, 0) * -3s);
}
.ef-basecard:hover, .ef-basecard:focus-visible {
	transform: translateY(-4px);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 30px 60px -28px rgba(0, 0, 0, .6);
}
.ef-basecard:hover::before, .ef-basecard:focus-visible::before { opacity: 1; }
.ef-basecard:focus-visible { outline: 2px solid var(--ef-green-light); outline-offset: 3px; }
@keyframes ef-spin { to { --ef-angle: 360deg; } }

.ef-basecard__top { display: flex; justify-content: space-between; align-items: flex-start; }
.ef-basecard__code { font-size: clamp(3rem, 5.5vw, 4.5rem); font-weight: 700; line-height: .9; letter-spacing: -0.03em; }
.ef-basecard__chosen {
	padding: .25rem .65rem; border-radius: var(--ef-pill);
	background: rgba(63, 191, 136, .14); color: #8fe3bd; font-size: .8125rem; font-weight: 600;
	visibility: hidden;
}
.ef-basecard.is-chosen .ef-basecard__chosen { visibility: visible; }
/* Nearest base (from the visitor's location). "Din bas" wins when both apply. */
.ef-basecard__badges { display: flex; gap: .35rem; }
.ef-basecard__near { display: none; padding: .25rem .65rem; border-radius: var(--ef-pill); background: rgba(0, 143, 240, .18); color: #9fd3ff; font-size: .8125rem; font-weight: 600; }
.ef-basecard.is-nearest:not(.is-chosen) .ef-basecard__near { display: inline-flex; align-items: center; gap: .35rem; }
.ef-basecard.is-nearest:not(.is-chosen) .ef-basecard__chosen { display: none; }
.ef-basecard.is-nearest::before { opacity: .9; }
.ef-basecard__dist:not(:empty)::before { content: " · "; }
.ef-basecards__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem 1.5rem; margin-bottom: 1.25rem; }
.ef-basecards__head .ef-basecards__heading { margin: 0; }
.ef-basecards__near { display: flex; align-items: center; gap: .75rem; }
.ef-basecards__near[hidden] { display: none; }
.ef-basecards__locate {
	display: inline-flex; align-items: center; gap: .45rem; padding: .5rem 1rem;
	border: 1px solid rgba(233, 238, 246, .28); border-radius: var(--ef-pill);
	background: rgba(8, 34, 56, .5); color: #fff; font: inherit; font-size: var(--wp--preset--font-size--small); font-weight: 600;
	cursor: pointer; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
	transition: background-color .2s ease, border-color .2s ease;
}
.ef-basecards__locate:hover { background: #fff; border-color: #fff; color: var(--ef-ink); }
.ef-basecards__locate .ef-icon { width: 18px; height: 18px; }
.ef-basecards__locate[hidden] { display: none; }
.ef-basecards__locate[aria-busy="true"] { opacity: .7; cursor: progress; }
.ef-basecards__status { margin: 0; font-size: .8125rem; color: rgba(233, 238, 246, .75); }
.ef-basecards__status:empty { display: none; }
@media (max-width: 781px) {
	.ef-basecard.is-nearest { order: -1; }
}
.ef-basecard.is-chosen::before { opacity: .9; }
.ef-basecard__name { margin-top: .4rem; font-size: var(--wp--preset--font-size--medium); font-weight: 600; }
.ef-basecard__summary { color: rgba(233, 238, 246, .72); max-width: 32ch; }
.ef-basecard__chips { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .25rem; }
.ef-chip { padding: .2rem .6rem; background: rgba(255, 255, 255, .08); color: #fff; font-size: .8125rem; font-weight: 600; }
.ef-basecard__next { display: block; margin-top: .5rem; padding-top: .9rem; border-top: 1px solid rgba(255, 255, 255, .1); font-size: var(--wp--preset--font-size--small); color: rgba(233, 238, 246, .75); }
.ef-basecard__next > span { display: block; font-size: .75rem; color: rgba(233, 238, 246, .55); }
.ef-basecard__next strong { color: #fff; font-weight: 600; }
.ef-basecard__foot { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 1rem; font-size: var(--wp--preset--font-size--small); color: rgba(233, 238, 246, .6); }
.ef-basecard__go {
	display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%;
	background: rgba(255, 255, 255, .08); color: #fff; transition: background-color .3s ease, transform .4s var(--ef-ease);
}
.ef-basecard__go .ef-icon { width: 18px; height: 18px; }
.ef-basecard:hover .ef-basecard__go { background: var(--ef-brand); color: var(--ef-ink); transform: translateX(3px); }

@media (max-width: 900px) { .ef-basecards__grid { grid-template-columns: 1fr; } }

/* ---------- Course rows ---------- */

.ef-course { border-bottom: 1px solid var(--ef-line); }
.ef-course__link {
	grid-template-columns: minmax(5rem, 7.5rem) 1fr auto 2.5rem; gap: .25rem 1.75rem; align-items: center;
	margin-inline: -1rem; padding: 1.25rem 1rem; border-radius: var(--ef-r-m);
	transition: background-color .25s ease;
}
.ef-course__link:hover { background: var(--ef-haze); }
.ef-course__short { padding-left: 0; }
.ef-course__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; margin-top: .55rem; }
.ef-course__meta:empty { display: none; }
.ef-course .ef-tags { margin-top: 0; }
.ef-course__next { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--ef-ink); }
.ef-course__next::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: .45rem; border-radius: 50%; background: var(--ef-brand); vertical-align: 1px; }
.ef-course__price { text-align: right; font-weight: 600; }
.ef-course__price > span { display: block; font-size: .75rem; font-weight: 400; color: var(--ef-slate); }
.ef-course__go { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; color: var(--ef-ink); transition: background-color .25s ease, transform .35s var(--ef-ease); }
.ef-course__link:hover .ef-course__go { background: var(--ef-brand); transform: translateX(3px); }
@media (max-width: 781px) {
	.ef-course__link { grid-template-columns: 4rem 1fr; margin-inline: 0; padding-inline: 0; }
	.ef-course__price { grid-column: 2; text-align: left; }
	.ef-course__price > span { display: inline; margin-right: .35rem; }
	.ef-course__go { display: none; }
}

/* ---------- Course runs ---------- */

.ef-runs__group + .ef-runs__group { margin-top: var(--wp--preset--spacing--50); }
.ef-runs__label { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--base); font-weight: 600; color: var(--ef-slate); }
.ef-runs__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1rem; }
.ef-run__link {
	display: flex; flex-direction: column; gap: .35rem; height: 100%;
	padding: 1.25rem 1.35rem 1.35rem; border: 1px solid var(--ef-line); border-radius: var(--ef-r-m);
	background: #fff; color: var(--ef-ink); text-decoration: none;
	transition: transform .4s var(--ef-ease), border-color .3s ease, box-shadow .4s var(--ef-ease);
}
.ef-run__link:hover { transform: translateY(-3px); border-color: rgba(0, 143, 240, .45); box-shadow: 0 18px 40px -26px rgba(8, 34, 56, .45); }
.ef-run__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; align-items: center; margin-bottom: .35rem; }
.ef-run__title { font-size: var(--wp--preset--font-size--medium); font-weight: 600; line-height: 1.25; }
.ef-run__dates { font-weight: 500; }
.ef-run__format { color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }
.ef-run__next { margin-top: auto; padding-top: .6rem; font-size: var(--wp--preset--font-size--small); color: var(--ef-slate); }
.ef-run__next strong { color: var(--ef-ink); font-weight: 600; }
.ef-run--avslutad .ef-run__link { background: var(--ef-haze); border-color: transparent; }
.ef-run--avslutad .ef-run__title, .ef-run--avslutad .ef-run__dates { color: var(--ef-slate); }

.ef-run__progress { display: block; height: 6px; margin-top: .75rem; border-radius: var(--ef-pill); background: var(--ef-haze); overflow: hidden; }
.ef-run__progress > span { display: block; height: 100%; width: var(--p); border-radius: inherit; background: linear-gradient(90deg, var(--ef-green), var(--ef-green-light)); transform-origin: left; }
@media (prefers-reduced-motion: no-preference) {
	html.ef-js .ef-run__progress > span { transform: scaleX(0); transition: transform 1.2s var(--ef-ease) .3s; }
	html.ef-js .is-in .ef-run__progress > span, html.ef-js .ef-facts .ef-run__progress > span { transform: scaleX(1); }
}

.ef-status {
	display: inline-flex; align-items: center; gap: .4rem;
	padding: .2rem .65rem; border-radius: var(--ef-pill); font-size: .8125rem; font-weight: 600; white-space: nowrap;
}
.ef-status__dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.ef-status--kommande { background: #e5f3fe; color: var(--ef-brand-text); }
.ef-status--pagaende { background: #e2f3ea; color: #13623f; }
.ef-status--avslutad { background: #e9edf2; color: var(--ef-slate); }
@media (prefers-reduced-motion: no-preference) {
	.ef-status--pagaende .ef-status__dot { animation: ef-pulse 2.2s ease-out infinite; }
}
@keyframes ef-pulse { 0% { box-shadow: 0 0 0 0 rgba(28, 122, 85, .5); } 70%, 100% { box-shadow: 0 0 0 7px rgba(28, 122, 85, 0); } }

/* Tabs (current / archive) */
.ef-tabs { display: inline-flex; gap: .25rem; padding: .3rem; margin-bottom: 1.25rem; border-radius: var(--ef-pill); background: var(--ef-haze); }
.ef-tabs a { padding: .5rem 1.15rem; border-radius: var(--ef-pill); color: var(--ef-slate); font-weight: 600; text-decoration: none; transition: background-color .25s ease, color .25s ease, box-shadow .25s ease; }
.ef-tabs a:hover { color: var(--ef-ink); }
.ef-tabs a[aria-current] { background: #fff; color: var(--ef-ink); box-shadow: 0 4px 14px -8px rgba(8, 34, 56, .4); }

/* Schedule timeline on a course run */
.ef-schedule__list { list-style: none; margin: 0; padding: 0; position: relative; }
.ef-schedule__list::before { content: ""; position: absolute; left: 5px; top: .9rem; bottom: .9rem; width: 2px; background: var(--ef-line); }
.ef-schedule__row { position: relative; display: grid; grid-template-columns: 7.5rem 1fr auto; gap: .25rem 1.25rem; padding: .85rem 0 .85rem 1.75rem; border-bottom: 1px solid var(--ef-line); }
.ef-schedule__row::before { content: ""; position: absolute; left: 0; top: 1.15rem; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--ef-line); }
.ef-schedule__date { font-weight: 600; }
.ef-schedule__time { color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); white-space: nowrap; }
.ef-schedule__row.is-past { color: var(--ef-slate); }
.ef-schedule__row.is-past::before { background: var(--ef-line); }
.ef-schedule__row.is-next::before { border-color: var(--ef-green); background: var(--ef-green-light); }
@media (prefers-reduced-motion: no-preference) { .ef-schedule__row.is-next::before { animation: ef-pulse 2.2s ease-out infinite; } }
.ef-schedule__row.is-next .ef-schedule__date { color: #13623f; }
@media (max-width: 600px) { .ef-schedule__row { grid-template-columns: 1fr; } }

/* ---------- Course page: summary, steps, cost ---------- */

.ef-summary { margin-top: var(--wp--preset--spacing--50) !important; }
.ef-summary__grid { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; border-radius: var(--ef-r-m); background: var(--ef-haze); }
.ef-summary__cell { padding: 1.1rem 1.35rem; }
.ef-summary__cell + .ef-summary__cell { border-left: 1px solid var(--ef-line); }
.ef-summary__cell dt { font-size: .8125rem; color: var(--ef-slate); }
.ef-summary__cell dd { margin: .25rem 0 0; font-size: var(--wp--preset--font-size--medium); font-weight: 600; line-height: 1.3; }
.ef-summary__cell dd .ef-tags { margin-top: .2rem; }
.ef-summary__cell dd .ef-tag { background: #fff; font-size: .8125rem; font-weight: 400; }
.ef-summary__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin-top: 1.25rem; }
.ef-summary__next { margin-left: auto; color: var(--ef-ink); text-decoration: none; font-size: var(--wp--preset--font-size--small); text-align: right; }
.ef-summary__next span { display: block; color: var(--ef-slate); font-size: .75rem; }
.ef-summary__next em { font-style: normal; color: var(--ef-slate); }
.ef-summary__next:hover strong { color: var(--ef-brand-text); }
@media (max-width: 900px) {
	.ef-summary__grid { grid-template-columns: repeat(2, 1fr); }
	.ef-summary__cell:nth-child(3) { border-left: 0; }
	.ef-summary__cell:nth-child(n+3) { border-top: 1px solid var(--ef-line); }
	.ef-summary__next { margin-left: 0; text-align: left; width: 100%; }
}

.ef-steps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 1.5rem; position: relative; counter-reset: step; }
.ef-steps__item { position: relative; display: flex; flex-direction: column; gap: .35rem; padding-top: 3.25rem; }
.ef-steps__item::before { content: ""; position: absolute; top: 1.1rem; left: 2.5rem; right: -1.5rem; height: 2px; background: linear-gradient(90deg, var(--ef-brand), var(--ef-line)); }
.ef-steps__item:last-child::before { display: none; }
.ef-steps__num {
	position: absolute; top: 0; left: 0; display: grid; place-items: center;
	width: 2.25rem; height: 2.25rem; border-radius: 50%;
	background: var(--ef-ink); color: #fff; font-weight: 700; font-size: .9375rem;
}
.ef-steps__title { font-weight: 600; font-size: var(--wp--preset--font-size--base); }
.ef-steps__text { color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }
@media (max-width: 700px) {
	.ef-steps__item { padding: 0 0 0 3.25rem; min-height: 2.5rem; }
	.ef-steps__item::before { top: 2.5rem; bottom: -1.5rem; left: 1.06rem; right: auto; width: 2px; height: auto; background: var(--ef-line); }
}

.ef-cost { padding: clamp(1.25rem, 3vw, 1.75rem); border-radius: var(--ef-r-m); background: var(--ef-haze); }
.ef-cost .ef-section-head__title { font-size: var(--wp--preset--font-size--large); }
.ef-cost__list { margin: 0; }
.ef-cost__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--ef-line); }
.ef-cost__row dt span { display: block; font-size: .8125rem; color: var(--ef-slate); }
.ef-cost__row dd { margin: 0; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ef-cost__row--total { border-bottom: 0; border-top: 2px solid var(--ef-ink); margin-top: .5rem; }
.ef-cost__row--total dt, .ef-cost__row--total dd { font-size: var(--wp--preset--font-size--medium); font-weight: 700; }
.ef-cost__note { margin: .75rem 0 0; font-size: .8125rem; color: var(--ef-slate); }

.ef-details .ef-content--article { max-width: 46rem; margin-top: var(--wp--preset--spacing--40); }
.ef-details .ef-content h2:first-child { margin-top: 0; }

.ef-feature img, .ef-base-hero__media, .ef-aircraft__media { border-radius: var(--ef-r-m); }
.ef-contact, .ef-facts { border-radius: var(--ef-r-m); }

/* ---------- News ---------- */

.ef-newscards__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.ef-newscard__link {
	display: flex; flex-direction: column; gap: .5rem; height: 100%;
	padding: 1.5rem; border: 1px solid var(--ef-line); border-radius: var(--ef-r-m);
	color: var(--ef-ink); text-decoration: none;
	transition: transform .4s var(--ef-ease), border-color .3s ease, box-shadow .4s var(--ef-ease);
}
.ef-newscard__link:hover { transform: translateY(-3px); border-color: rgba(0, 143, 240, .45); box-shadow: 0 18px 40px -26px rgba(8, 34, 56, .45); }
.ef-newscard__date { font-size: .8125rem; color: var(--ef-slate); }
.ef-newscard__title { font-size: var(--wp--preset--font-size--medium); font-weight: 600; line-height: 1.3; }
.ef-newscard__excerpt { color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }
@media (max-width: 900px) { .ef-newscards__grid { grid-template-columns: 1fr; } }

.ef-newsyears__year { display: grid; grid-template-columns: 9rem 1fr; gap: 1.5rem; }
.ef-newsyears__year + .ef-newsyears__year { margin-top: var(--wp--preset--spacing--50); }
.ef-newsyears__label { position: sticky; top: calc(var(--ef-header-h) + 1rem); align-self: start; margin: 0; font-size: var(--wp--preset--font-size--x-large); font-weight: 700; color: var(--ef-line); letter-spacing: -0.02em; }
.ef-newsyears__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ef-ink); }
.ef-newsrow { border-bottom: 1px solid var(--ef-line); }
.ef-newsrow__link {
	display: grid; grid-template-columns: 5rem 1fr 2rem; gap: 1.25rem; align-items: start;
	margin-inline: -1rem; padding: 1.15rem 1rem; border-radius: var(--ef-r-m);
	color: var(--ef-ink); text-decoration: none; transition: background-color .25s ease;
}
.ef-newsrow__link:hover { background: var(--ef-haze); }
.ef-newsrow__date { padding-top: .2rem; font-size: var(--wp--preset--font-size--small); color: var(--ef-slate); }
.ef-newsrow__title { display: block; font-size: var(--wp--preset--font-size--medium); font-weight: 600; line-height: 1.3; }
.ef-newsrow__excerpt { display: block; margin-top: .3rem; color: var(--ef-slate); max-width: 46rem; }
.ef-newsrow__link .ef-icon { margin-top: .3rem; transition: transform .35s var(--ef-ease); }
.ef-newsrow__link:hover .ef-icon { transform: translateX(4px); color: var(--ef-brand-text); }
@media (max-width: 781px) {
	.ef-newsyears__year { grid-template-columns: 1fr; gap: .5rem; }
	.ef-newsyears__label { position: static; }
	.ef-newsrow__link { grid-template-columns: 1fr; gap: .2rem; margin-inline: 0; padding-inline: 0; }
	.ef-newsrow__link .ef-icon { display: none; }
}

/* ---------- Scroll reveal (added by site.js; content stays visible without JS) ---------- */

@media (prefers-reduced-motion: no-preference) {
	html.ef-js .ef-reveal {
		opacity: 0; transform: translateY(18px);
		transition: opacity .8s var(--ef-ease), transform .8s var(--ef-ease);
		transition-delay: calc(var(--i, 0) * 80ms);
	}
	html.ef-js .ef-reveal.is-visible { opacity: 1; transform: none; }
	html.ef-js .ef-basecard.ef-reveal.is-visible { transition: opacity .8s var(--ef-ease) calc(var(--i, 0) * 110ms), transform .5s var(--ef-ease), box-shadow .5s var(--ef-ease); }
}
@media (prefers-reduced-motion: reduce) {
	.ef-basecard::before { animation: none; }
	.ef-basecard, .ef-run__link, .ef-newscard__link { transition: none; }
}

/* Cards fill their grid cell without percentage heights. */
.ef-run, .ef-newscard { display: flex; }
.ef-run__link, .ef-newscard__link { height: auto; flex: 1; }

/* =========================================================================
 * v0.3: compact course grid, journey timeline, catalog, profile cards.
 * ====================================================================== */

/* ---------- Compact course grid (front page) ---------- */

.ef-cfilter { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.25rem; }
.ef-cfilter__btn {
	padding: .45rem .95rem; border: 1px solid var(--ef-line); border-radius: var(--ef-pill);
	background: #fff; color: var(--ef-ink); font: inherit; font-size: var(--wp--preset--font-size--small); font-weight: 600;
	cursor: pointer; transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
.ef-cfilter__btn:hover { border-color: var(--ef-ink); }
.ef-cfilter__btn[aria-pressed="true"] { background: var(--ef-ink); border-color: var(--ef-ink); color: #fff; }

.ef-cgrid__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: .75rem; }
.ef-ctile { display: flex; transition: opacity .35s ease, transform .35s var(--ef-ease); }
.ef-ctile.is-hidden { display: none; }
.ef-ctile.is-entering { opacity: 0; transform: translateY(8px); }
.ef-ctile__link {
	flex: 1; display: flex; flex-direction: column; gap: .2rem;
	padding: 1.1rem 1.15rem 1rem; border: 1px solid var(--ef-line); border-radius: var(--ef-r-m);
	background: #fff; color: var(--ef-ink); text-decoration: none;
	transition: transform .35s var(--ef-ease), border-color .3s ease, box-shadow .35s var(--ef-ease), background-color .3s ease;
}
.ef-ctile__link:hover { transform: translateY(-3px); border-color: rgba(0, 143, 240, .5); box-shadow: 0 16px 34px -24px rgba(8, 34, 56, .5); }
.ef-ctile__type { font-size: .75rem; color: var(--ef-slate); }
.ef-ctile__code { margin-top: .15rem; font-size: 1.75rem; font-weight: 700; line-height: 1; letter-spacing: -0.02em; color: var(--ef-ink); transition: color .25s ease; }
.ef-ctile__link:hover .ef-ctile__code { color: var(--ef-brand); }
.ef-ctile__name { font-size: var(--wp--preset--font-size--small); line-height: 1.35; color: var(--ef-ink); }
.ef-ctile__foot { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; margin-top: auto; padding-top: .75rem; }
.ef-ctile__price { font-size: .8125rem; font-weight: 600; }
.ef-ctile__bases { font-size: .6875rem; font-weight: 700; color: var(--ef-brand-text); letter-spacing: .02em; text-align: right; }
@media (max-width: 1100px) { .ef-cgrid__list { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .ef-cgrid__list { grid-template-columns: repeat(2, 1fr); } .ef-ctile__foot { flex-direction: column; align-items: flex-start; gap: .1rem; } .ef-ctile__bases { text-align: left; } }

/* ---------- Journey timeline ---------- */

.ef-journey > .ef-section-head__title { margin-bottom: 0; }
.ef-journey > .ef-section-head__intro { margin-top: .6rem; margin-bottom: var(--wp--preset--spacing--40); }
.ef-journey__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.25rem; counter-reset: journey; }
.ef-journey__list li {
	position: relative; counter-increment: journey;
	padding-top: 3.4rem; color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); line-height: 1.5;
}
.ef-journey__list li strong { display: block; margin-bottom: .25rem; color: var(--ef-ink); font-size: var(--wp--preset--font-size--base); font-weight: 600; }
/* Numbered marker */
.ef-journey__list li::before {
	content: counter(journey); position: absolute; top: 0; left: 0; z-index: 1;
	display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%;
	background: #fff; border: 2px solid var(--ef-ink); color: var(--ef-ink); font-weight: 700; font-size: .9375rem;
}
/* The final step is the goal: filled flygblå. */
.ef-journey__list li:last-child::before { content: "✓"; background: var(--ef-brand); border-color: var(--ef-brand); color: var(--ef-ink); }
/* Connecting line to the next step; draws in when the list scrolls into view. */
.ef-journey__list li::after {
	content: ""; position: absolute; top: 1.15rem; left: 2.6rem; right: -1.1rem; height: 2px;
	background: linear-gradient(90deg, var(--ef-ink), var(--ef-brand)); transform-origin: left;
}
.ef-journey__list li:last-child::after { display: none; }
@media (prefers-reduced-motion: no-preference) {
	html.ef-js .ef-journey__list li::after { transform: scaleX(0); transition: transform .6s var(--ef-ease); transition-delay: calc(var(--i, 0) * 140ms + .25s); }
	html.ef-js .ef-journey__list li.is-in::after { transform: scaleX(1); }
}
@media (max-width: 900px) {
	.ef-journey__list { grid-template-columns: 1fr; gap: 0; }
	.ef-journey__list li { padding: 0 0 1.5rem 3.4rem; min-height: 3.5rem; }
	.ef-journey__list li::after { top: 2.6rem; bottom: .2rem; left: 1.15rem; right: auto; width: 2px; height: auto; transform-origin: top; background: linear-gradient(180deg, var(--ef-ink), var(--ef-brand)); }
	html.ef-js .ef-journey__list li::after { transform: scaleY(0); }
	html.ef-js .ef-journey__list li.is-in::after { transform: scaleY(1); }
}
.ef-section--journey { padding-top: var(--wp--preset--spacing--30); padding-bottom: var(--wp--preset--spacing--50); border-bottom: 1px solid var(--ef-line); margin-bottom: var(--wp--preset--spacing--40); }
.ef-section--journey .ef-section-head__title { font-size: var(--wp--preset--font-size--large); }

/* ---------- Course catalog (Utbildningar) ---------- */

.ef-catalog { display: grid; grid-template-columns: 16.5rem 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: start; }
.ef-catalog__aside { position: sticky; top: calc(var(--ef-header-h) - 2.5rem); }
.ef-catalog__nav { max-height: calc(100vh - 7rem); overflow: auto; padding-right: .5rem; }
.ef-catalog__bases { margin-bottom: 1.5rem; }
.ef-catalog__label { display: block; margin-bottom: .5rem; font-size: .8125rem; color: var(--ef-slate); }
.ef-filter--small { gap: .35rem; margin-bottom: 0; }
.ef-filter--small a { padding: .3rem .75rem; font-size: var(--wp--preset--font-size--small); }
.ef-catalog__toc { list-style: none; margin: 0; padding: 0; }
.ef-catalog__toc > li + li { margin-top: 1.1rem; }
.ef-catalog__type { display: block; margin-bottom: .35rem; font-weight: 600; color: var(--ef-ink); text-decoration: none; font-size: var(--wp--preset--font-size--small); }
.ef-catalog__toc ul { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--ef-line); }
.ef-catalog__toc ul a {
	display: block; margin-left: -2px; padding: .3rem 0 .3rem .85rem; border-left: 2px solid transparent;
	color: var(--ef-slate); text-decoration: none; font-size: var(--wp--preset--font-size--small); line-height: 1.35;
	transition: color .2s ease, border-color .2s ease;
}
.ef-catalog__toc ul a strong { color: var(--ef-ink); font-weight: 600; margin-right: .2rem; }
.ef-catalog__toc ul a:hover { color: var(--ef-ink); border-color: var(--ef-slate); }
.ef-catalog__toc ul a.is-active { color: var(--ef-ink); border-color: var(--ef-brand); }

.ef-catalog__group { scroll-margin-top: calc(var(--ef-header-h) + 1rem); }
.ef-catalog__group + .ef-catalog__group { margin-top: var(--wp--preset--spacing--60); }
.ef-catalog__heading { margin: 0; font-size: var(--wp--preset--font-size--large); }
.ef-catalog__desc { margin: .35rem 0 0; color: var(--ef-slate); }
.ef-catalog__group > .ef-ccard:first-of-type { margin-top: 1.25rem; }

.ef-ccard {
	scroll-margin-top: calc(var(--ef-header-h) + 1rem);
	padding: clamp(1.25rem, 2.5vw, 1.75rem); border: 1px solid var(--ef-line); border-radius: var(--ef-r-l);
	background: #fff; transition: border-color .3s ease, box-shadow .4s var(--ef-ease);
}
.ef-ccard + .ef-ccard { margin-top: 1rem; }
.ef-ccard:hover { border-color: rgba(0, 143, 240, .4); box-shadow: 0 20px 44px -30px rgba(8, 34, 56, .45); }
.ef-ccard:target { border-color: var(--ef-brand); box-shadow: 0 0 0 4px rgba(0, 143, 240, .12); }
.ef-ccard__head { display: grid; grid-template-columns: 6rem 1fr; gap: 1.25rem; align-items: start; }
.ef-ccard__code { font-size: 2rem; font-weight: 700; line-height: 1; letter-spacing: -0.02em; color: var(--ef-brand); }
.ef-ccard__title { margin: 0; font-size: var(--wp--preset--font-size--medium); }
.ef-ccard__title a { color: var(--ef-ink); text-decoration: none; }
.ef-ccard__title a:hover { color: var(--ef-brand-text); }
.ef-ccard__lead { margin: .35rem 0 0; color: var(--ef-slate); max-width: 44rem; }
.ef-ccard__facts { display: grid; grid-template-columns: repeat(4, 1fr); margin: 1.25rem 0 0 7.25rem; border-radius: var(--ef-r-m); background: var(--ef-haze); }
.ef-ccard__facts > div { padding: .8rem 1rem; }
.ef-ccard__facts > div + div { border-left: 1px solid var(--ef-line); }
.ef-ccard__facts dt { font-size: .75rem; color: var(--ef-slate); }
.ef-ccard__facts dd { margin: .15rem 0 0; font-weight: 600; font-size: var(--wp--preset--font-size--small); }
.ef-ccard__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin: 1rem 0 0 7.25rem; }
.ef-ccard__actions { display: flex; gap: .5rem; }
.ef-ccard__actions .ef-button { padding: .6rem 1.15rem; font-size: var(--wp--preset--font-size--small); }

@media (max-width: 1000px) {
	.ef-catalog { grid-template-columns: 1fr; gap: 1.5rem; }
	/* On small screens the menu becomes a sticky, swipeable bar of course codes. */
	.ef-catalog__aside { position: sticky; top: var(--ef-header-h); z-index: 20; margin-inline: calc(-1 * var(--wp--style--root--padding-left)); padding: .6rem var(--wp--style--root--padding-left); background: rgba(255, 255, 255, .92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--ef-line); }
	.ef-catalog__nav { max-height: none; overflow: visible; padding: 0; }
	.ef-catalog__bases { display: none; }
	.ef-catalog__toc { display: flex; gap: .4rem; overflow-x: auto; scrollbar-width: none; }
	.ef-catalog__toc::-webkit-scrollbar { display: none; }
	.ef-catalog__toc > li { display: contents; }
	.ef-catalog__type { display: none; }
	.ef-catalog__toc ul { display: contents; }
	.ef-catalog__toc ul a { margin: 0; padding: .35rem .8rem; border: 1px solid var(--ef-line); border-radius: var(--ef-pill); white-space: nowrap; font-size: .8125rem; }
	.ef-catalog__toc ul a strong { margin: 0; }
	.ef-catalog__toc ul a { font-size: 0; }
	.ef-catalog__toc ul a strong { font-size: .8125rem; }
	.ef-catalog__toc ul a.is-active { background: var(--ef-ink); border-color: var(--ef-ink); }
	.ef-catalog__toc ul a.is-active strong { color: #fff; }
	.ef-ccard__facts, .ef-ccard__foot { margin-left: 0; }
}
@media (max-width: 700px) {
	.ef-ccard__head { grid-template-columns: 1fr; gap: .5rem; }
	.ef-ccard__facts { grid-template-columns: repeat(2, 1fr); }
	.ef-ccard__facts > div:nth-child(3) { border-left: 0; }
	.ef-ccard__facts > div:nth-child(n+3) { border-top: 1px solid var(--ef-line); }
}

/* ---------- Profile cards ---------- */

.ef-people__list { grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1rem; }
.ef-pcard {
	display: flex; gap: 1rem; align-items: flex-start;
	padding: 1.25rem; border: 1px solid var(--ef-line); border-radius: var(--ef-r-m); background: #fff;
	transition: transform .4s var(--ef-ease), border-color .3s ease, box-shadow .4s var(--ef-ease);
}
.ef-pcard:hover { transform: translateY(-2px); border-color: rgba(0, 143, 240, .35); box-shadow: 0 16px 36px -28px rgba(8, 34, 56, .5); }
.ef-pcard__avatar {
	flex: none; position: relative; width: 4.5rem; height: 4.5rem; border-radius: 50%; overflow: hidden;
	background: linear-gradient(145deg, #0f2f4b, var(--ef-ink));
	box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--ef-line);
	transition: box-shadow .35s ease;
}
.ef-pcard:hover .ef-pcard__avatar { box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--ef-brand); }
.ef-pcard__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--ef-ease); }
.ef-pcard:hover .ef-pcard__img { transform: scale(1.05); }
.ef-pcard__initials { display: grid; place-items: center; width: 100%; height: 100%; color: #fff; font-weight: 600; font-size: 1.25rem; letter-spacing: .02em; }
.ef-pcard__body { display: flex; flex-direction: column; gap: .2rem; min-width: 0; padding-top: .2rem; }
.ef-pcard__name { font-weight: 600; font-size: var(--wp--preset--font-size--base); line-height: 1.3; }
.ef-pcard .ef-badge { align-self: flex-start; margin: .15rem 0 0; }
.ef-pcard__role { font-size: var(--wp--preset--font-size--small); color: var(--ef-ink); }
.ef-pcard__ratings { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .25rem; }
.ef-pcard__ratings span { padding: .1rem .5rem; border-radius: var(--ef-pill); background: var(--ef-haze); font-size: .75rem; font-weight: 600; color: var(--ef-ink); }
.ef-pcard__note { margin-top: .25rem; font-size: var(--wp--preset--font-size--small); color: var(--ef-slate); }
.ef-pcard__bio { margin-top: .4rem; font-size: var(--wp--preset--font-size--small); color: var(--ef-slate); line-height: 1.5; }
.ef-people__group + .ef-people__group { margin-top: var(--wp--preset--spacing--50); }
.ef-people__base { margin-bottom: 1rem; }

/* Grid children may shrink; keeps the mobile catalog inside the viewport. */
.ef-catalog > * { min-width: 0; }

/* On small screens the timeline on the catalog page shows only the step names, two per row. */
@media (max-width: 900px) {
	.ef-section--journey .ef-section-head__intro { display: none; }
	.ef-section--journey .ef-journey__list { grid-template-columns: 1fr 1fr; gap: .6rem 1rem; }
	.ef-section--journey .ef-journey__list li { min-height: 0; padding: .35rem 0 .35rem 2.6rem; font-size: 0; }
	.ef-section--journey .ef-journey__list li strong { margin: 0; font-size: var(--wp--preset--font-size--small); line-height: 1.9rem; }
	.ef-section--journey .ef-journey__list li::before { width: 1.9rem; height: 1.9rem; font-size: .8125rem; top: .35rem; }
	.ef-section--journey .ef-journey__list li::after { display: none; }
}

@media (max-width: 781px) {
	.ef-section-head { flex-wrap: wrap; align-items: flex-start; gap: .75rem; }
	/* Filter buttons scroll sideways in one row instead of wrapping. */
	.ef-cfilter { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--wp--style--root--padding-left)); padding-inline: var(--wp--style--root--padding-left); }
	.ef-cfilter::-webkit-scrollbar { display: none; }
	.ef-cfilter__btn { flex: none; }
}

/* =========================================================================
 * v0.4: dark news band, Forminator forms.
 * ====================================================================== */

/* ---------- News on navy, same card language as the base cards ---------- */

.ef-band--news { margin-top: var(--ef-gap) !important; }
.ef-band--haze + .ef-band--news { margin-top: 0 !important; }
.ef-band--news .ef-section-head__title { color: #fff; }
.ef-band--news .ef-section-head__link { color: #8fd0ff; }
.ef-band--news .ef-newscard__link {
	position: relative; isolation: isolate; overflow: hidden;
	border: 0; border-radius: var(--ef-r-l);
	background: linear-gradient(165deg, #0f2f4b 0%, #0a263e 55%, #0a2a35 100%);
	color: #fff;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 24px 48px -32px rgba(0, 0, 0, .6);
}
/* Same rotating ring as the base cards; the green glint shows on hover. */
.ef-band--news .ef-newscard__link::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px;
	background: conic-gradient(from var(--ef-angle),
		rgba(255, 255, 255, .08) 0deg, rgba(255, 255, 255, .08) 210deg,
		var(--ef-green-deep) 255deg, var(--ef-green-light) 295deg, var(--ef-green-deep) 330deg,
		rgba(255, 255, 255, .08) 360deg);
	-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);
	opacity: .35; transition: opacity .5s ease;
	animation: ef-spin 9s linear infinite;
	animation-delay: calc(var(--i, 0) * -3s);
}
.ef-band--news .ef-newscard__link:hover { transform: translateY(-4px); box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 30px 60px -28px rgba(0, 0, 0, .6); }
.ef-band--news .ef-newscard__link:hover::before { opacity: 1; }
.ef-band--news .ef-newscard__date { color: rgba(233, 238, 246, .6); }
.ef-band--news .ef-newscard__excerpt { color: rgba(233, 238, 246, .72); }
.ef-band--news .ef-newscard__title { color: #fff; }
.ef-band--news :focus-visible { outline-color: #fff; }
@media (prefers-reduced-motion: reduce) { .ef-band--news .ef-newscard__link::before { animation: none; } }

/* ---------- Forminator forms in the theme's style ---------- */

.ef-form { max-width: 46rem; }
.ef-form--kontakt, .ef-form--ansokan { padding: clamp(1.25rem, 3vw, 2.25rem); border: 1px solid var(--ef-line); border-radius: var(--ef-r-l); background: #fff; box-shadow: 0 24px 60px -48px rgba(8, 34, 56, .5); }
.ef-content > .ef-form { margin-block: var(--wp--preset--spacing--50); }
.ef-form .forminator-ui.forminator-custom-form { margin: 0 !important; font-family: inherit; }
.ef-form .forminator-row { display: flex; flex-wrap: wrap; gap: 0 1.25rem; margin: 0 0 1.15rem; }
.ef-form .forminator-col { flex: 1 1 14rem; min-width: 0; padding: 0; }
.ef-form .forminator-field { margin: 0; }
.ef-form .forminator-label { display: block; margin: 0 0 .4rem; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--ef-ink); }
.ef-form .forminator-required { color: var(--ef-brand-text); margin-left: .15rem; }
.ef-form input.forminator-input,
.ef-form textarea.forminator-textarea,
.ef-form select.forminator-select2,
.ef-form select {
	width: 100%; box-sizing: border-box; padding: .8rem 1rem;
	border: 1px solid var(--ef-line); border-radius: .75rem; background: var(--ef-haze);
	font: inherit; font-size: var(--wp--preset--font-size--base); color: var(--ef-ink);
	transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
	appearance: none; -webkit-appearance: none;
}
.ef-form select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23082238' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.75rem; }
.ef-form textarea.forminator-textarea { min-height: 9rem; resize: vertical; }
.ef-form input.forminator-input:hover, .ef-form textarea.forminator-textarea:hover, .ef-form select:hover { border-color: #b9c6d6; }
.ef-form input.forminator-input:focus, .ef-form textarea.forminator-textarea:focus, .ef-form select:focus {
	outline: none; border-color: var(--ef-brand); background-color: #fff; box-shadow: 0 0 0 4px rgba(0, 143, 240, .15);
}
.ef-form .forminator-has_error input, .ef-form .forminator-has_error textarea, .ef-form .forminator-has_error select { border-color: #c2412d; }
.ef-form .forminator-error-message { display: block; margin-top: .35rem; font-size: .8125rem; color: #b3261e; }
.ef-form .forminator-description { margin-top: .35rem; font-size: .8125rem; color: var(--ef-slate); }

/* Section titles split the application into steps. */
.ef-form .forminator-title { margin: 1rem 0 .25rem; font-size: var(--wp--preset--font-size--medium); font-weight: 600; color: var(--ef-ink); }
.ef-form .forminator-row:first-child .forminator-title { margin-top: 0; }
.ef-form .forminator-border { display: block; height: 1px; margin-top: .6rem; background: var(--ef-line); border: 0; }

/* Radio and consent checkbox */
.ef-form .forminator-radio, .ef-form .forminator-checkbox { display: flex; align-items: flex-start; gap: .65rem; margin: 0 0 .55rem; cursor: pointer; font-size: var(--wp--preset--font-size--base); }
.ef-form .forminator-radio input, .ef-form .forminator-checkbox input { width: 1.15rem; height: 1.15rem; margin: .2rem 0 0; accent-color: var(--ef-brand); flex: none; }
.ef-form .forminator-radio-bullet, .ef-form .forminator-checkbox-box { display: none; }
.ef-form .forminator-checkbox-label, .ef-form .forminator-radio-label { line-height: 1.5; }
.ef-form .forminator-field-gdprcheckbox .forminator-checkbox { font-size: var(--wp--preset--font-size--small); color: var(--ef-slate); }

/* Submit and messages */
.ef-form .forminator-button-submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	padding: .9rem 1.75rem; border: 0; border-radius: var(--ef-pill);
	background: var(--ef-brand); color: var(--ef-ink); font: inherit; font-weight: 600; cursor: pointer;
	transition: background-color .2s ease, color .2s ease, transform .2s var(--ef-ease);
}
.ef-form .forminator-button-submit:hover { background: var(--ef-ink); color: #fff; }
.ef-form .forminator-button-submit:active { transform: scale(.98); }
.ef-form .forminator-response-message { margin: 0 0 1.25rem; padding: 1rem 1.25rem; border-radius: .75rem; font-size: var(--wp--preset--font-size--small); }
.ef-form .forminator-response-message:empty, .ef-form .forminator-response-message[aria-hidden="true"] { display: none; }
.ef-form .forminator-success { background: #e2f3ea; color: #13623f; }
.ef-form .forminator-error { background: #fdecea; color: #8c1d18; }
.ef-form .forminator-response-message p { margin: 0; }
.ef-content > .ef-form.alignwide { max-width: var(--wp--style--global--content-size); }

/* ---------- Test lesson on navy, same card language as bases and news ---------- */

.ef-band--cta { margin-top: var(--ef-gap) !important; padding-block: var(--ef-gap); }
.ef-ctacard {
	position: relative; isolation: isolate; overflow: hidden;
	padding: clamp(1.25rem, 3vw, 2.5rem);
	border-radius: var(--ef-r-l);
	background: linear-gradient(165deg, #0f2f4b 0%, #0a263e 55%, #0a2a35 100%);
	color: #fff;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 24px 48px -32px rgba(0, 0, 0, .6);
}
.ef-ctacard::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px;
	background: conic-gradient(from var(--ef-angle),
		rgba(255, 255, 255, .08) 0deg, rgba(255, 255, 255, .08) 210deg,
		var(--ef-green-deep) 255deg, var(--ef-green-light) 295deg, var(--ef-green-deep) 330deg,
		rgba(255, 255, 255, .08) 360deg);
	-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);
	opacity: .45; transition: opacity .5s ease;
	animation: ef-spin 12s linear infinite;
}
.ef-ctacard:hover::before { opacity: 1; }
.ef-ctacard__cols { gap: clamp(1.5rem, 4vw, 3.5rem) !important; margin: 0; }
.ef-ctacard h2 { margin-top: 0; color: #fff; font-size: var(--wp--preset--font-size--x-large); }
.ef-ctacard p { color: rgba(233, 238, 246, .75); max-width: 34rem; }
.ef-ctacard__facts { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0; padding: 0; list-style: none; }
.ef-ctacard__facts li { padding: .45rem .85rem; border-radius: var(--ef-pill); background: rgba(255, 255, 255, .07); font-size: var(--wp--preset--font-size--small); color: rgba(233, 238, 246, .75); }
.ef-ctacard__facts li + li { margin-top: 0; }
.ef-ctacard__facts strong { color: #fff; font-weight: 600; margin-right: .25rem; }
.ef-ctacard .is-style-outline > .wp-block-button__link { color: #fff; }
.ef-ctacard .is-style-outline > .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--ef-ink); }
.ef-ctacard :focus-visible { outline-color: #fff; }
.ef-ctacard__img { margin: 0; overflow: hidden; border-radius: var(--ef-r-m); }
.ef-ctacard__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .8s var(--ef-ease); }
.ef-ctacard:hover .ef-ctacard__img img { transform: scale(1.03); }
@media (prefers-reduced-motion: reduce) { .ef-ctacard::before { animation: none; } }

/* Dark band directly above the dark footer: a hairline keeps them apart. */
.ef-band--cta + * , .ef-main--front + footer .ef-footer, .wp-site-blocks > footer .ef-footer { border-top: 1px solid rgba(233, 238, 246, .08); }
.ef-main--front { padding-bottom: 0; }

/* ---------- Dark pages (Flygplan) ---------- */

.ef-main--dark {
	background:
		radial-gradient(60rem 30rem at 85% -10%, rgba(28, 122, 85, .16), transparent 60%),
		radial-gradient(50rem 30rem at -10% 30%, rgba(0, 143, 240, .08), transparent 60%),
		var(--ef-ink);
	color: #fff;
}
.ef-main--dark .ef-page-head__title, .ef-main--dark h2, .ef-main--dark h3 { color: #fff; }
.ef-main--dark .ef-page-head__lead { color: rgba(233, 238, 246, .72); }
.ef-main--dark :focus-visible { outline-color: #fff; }

.ef-main--dark .ef-fleet__grid { gap: clamp(1rem, 2vw, 1.5rem); }
.ef-main--dark .ef-aircraft {
	position: relative; isolation: isolate; overflow: hidden;
	padding: .75rem .75rem 1.25rem;
	border-radius: var(--ef-r-l);
	background: linear-gradient(165deg, #0f2f4b 0%, #0a263e 55%, #0a2a35 100%);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 24px 48px -32px rgba(0, 0, 0, .6);
	transition: transform .5s var(--ef-ease), box-shadow .5s var(--ef-ease);
}
/* Rotating ring with a dark green glint, as on the base cards. */
.ef-main--dark .ef-aircraft::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px;
	background: conic-gradient(from var(--ef-angle),
		rgba(255, 255, 255, .07) 0deg, rgba(255, 255, 255, .07) 210deg,
		var(--ef-green-deep) 255deg, var(--ef-green-light) 295deg, var(--ef-green-deep) 330deg,
		rgba(255, 255, 255, .07) 360deg);
	-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);
	opacity: .5; transition: opacity .5s ease;
	animation: ef-spin 10s linear infinite;
	animation-delay: calc(var(--i, 0) * -1.7s);
}
.ef-main--dark .ef-aircraft:hover { transform: translateY(-4px); box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 30px 60px -28px rgba(0, 0, 0, .7); }
.ef-main--dark .ef-aircraft:hover::before { opacity: 1; }
.ef-main--dark .ef-aircraft__media { border-radius: calc(var(--ef-r-l) - .5rem); background: #0b2238; }
.ef-main--dark .ef-aircraft__link, .ef-main--dark .ef-aircraft__specs, .ef-main--dark .ef-aircraft__foot { padding-inline: .5rem; }
.ef-main--dark .ef-aircraft__link { color: #fff; }
.ef-main--dark .ef-aircraft__reg { color: #fff; }
.ef-main--dark .ef-aircraft__link:hover .ef-aircraft__reg { color: var(--ef-brand); }
.ef-main--dark .ef-aircraft__model { color: rgba(233, 238, 246, .65); }
.ef-main--dark .ef-aircraft__specs { margin-inline: 0; border-top-color: rgba(255, 255, 255, .1); }
.ef-main--dark .ef-aircraft__specs dt { color: rgba(233, 238, 246, .55); }
.ef-main--dark .ef-aircraft__specs dd { color: #fff; }
.ef-main--dark .ef-flag { border-color: rgba(63, 191, 136, .35); color: #8fe3bd; }
.ef-main--dark .ef-tag { background: rgba(255, 255, 255, .08); color: rgba(233, 238, 246, .85); }
.ef-main--dark .ef-tag__code { color: #8fd0ff; }
@media (prefers-reduced-motion: reduce) { .ef-main--dark .ef-aircraft::before { animation: none; } }

/* ---------- Aircraft fact sheet dialog ---------- */

[data-ef-plane] { cursor: pointer; }
.ef-aircraft__media { position: relative; }
.ef-aircraft__expand {
	position: absolute; top: .65rem; right: .65rem; display: grid; place-items: center;
	width: 2.25rem; height: 2.25rem; border-radius: 50%;
	background: rgba(8, 34, 56, .55); color: #fff; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	opacity: 0; transform: scale(.85); transition: opacity .3s ease, transform .35s var(--ef-ease);
}
.ef-aircraft:hover .ef-aircraft__expand, .ef-aircraft__link:focus-visible .ef-aircraft__expand { opacity: 1; transform: none; }
@media (hover: none) { .ef-aircraft__expand { opacity: 1; transform: none; } }

html.ef-dialog-open { overflow: hidden; }
.ef-dialog {
	width: min(64rem, calc(100vw - 2rem)); max-height: calc(100vh - 3rem); max-height: calc(100dvh - 3rem);
	padding: 0; border: 0; border-radius: var(--ef-r-l); overflow: auto; overscroll-behavior: contain;
	background: linear-gradient(165deg, #0f2f4b 0%, #0a263e 55%, #0a2a35 100%); color: #fff;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 40px 120px -40px rgba(0, 0, 0, .8), 0 0 0 1px rgba(63, 191, 136, .18);
	transform-origin: center;
}
.ef-dialog::backdrop { background: rgba(4, 18, 31, .72); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
@media (prefers-reduced-motion: no-preference) {
	.ef-dialog[open]::backdrop { animation: ef-backdrop .4s ease both; }
	.ef-dialog.is-closing::backdrop { animation: ef-backdrop .3s ease reverse both; }
}
@keyframes ef-backdrop { from { opacity: 0; } to { opacity: 1; } }
.ef-dialog__close {
	position: absolute; top: .75rem; right: .75rem; z-index: 2;
	display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%;
	background: rgba(8, 34, 56, .7); color: #fff; cursor: pointer; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	transition: background-color .2s ease, transform .3s var(--ef-ease);
}
.ef-dialog__close:hover { background: var(--ef-brand); color: var(--ef-ink); transform: rotate(90deg); }
.ef-dialog :focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

.ef-plane { display: grid; grid-template-columns: 1.1fr 1fr; }
.ef-plane__media { margin: 0; min-height: 100%; }
.ef-plane__media img { display: block; width: 100%; height: 100%; min-height: 22rem; object-fit: cover; }
.ef-plane__body { padding: clamp(1.5rem, 3vw, 2.5rem); }
.ef-plane__body .ef-tags { margin-bottom: 1rem; }
.ef-plane__body .ef-tag { background: rgba(255, 255, 255, .08); color: rgba(233, 238, 246, .85); }
.ef-plane__body .ef-tag__code { color: #8fd0ff; }
.ef-plane__reg { margin: 0; font-size: var(--wp--preset--font-size--x-large); font-weight: 700; letter-spacing: -0.02em; color: #fff; }
.ef-plane__model { margin: .25rem 0 0; color: rgba(233, 238, 246, .7); font-size: var(--wp--preset--font-size--medium); }
.ef-plane__text { margin-top: 1.25rem; color: rgba(233, 238, 246, .8); font-size: var(--wp--preset--font-size--small); }
.ef-plane__text p { margin: 0 0 .75rem; }
.ef-plane__facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin: 1.5rem 0 0; border-radius: var(--ef-r-m); overflow: hidden; background: rgba(255, 255, 255, .08); }
.ef-plane__facts > div { padding: .75rem 1rem; background: #0c2a44; }
.ef-plane__facts dt { font-size: .75rem; color: rgba(233, 238, 246, .55); }
.ef-plane__facts dd { margin: .15rem 0 0; font-weight: 600; }
.ef-plane__subtitle { margin: 1.75rem 0 .5rem; font-size: var(--wp--preset--font-size--base); color: #fff; }
.ef-plane__avionics { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.ef-plane__avionics li { padding: .3rem .7rem; border-radius: var(--ef-pill); background: rgba(63, 191, 136, .12); color: #bdeed6; font-size: .8125rem; }
@media (max-width: 800px) {
	.ef-plane { grid-template-columns: 1fr; }
	.ef-plane__media img { min-height: 0; aspect-ratio: 3 / 2; }
	.ef-dialog__close { position: absolute; top: .75rem; right: .75rem; margin: 0; }
}

/* =========================================================================
 * v0.5: one look for every page.
 * Subpages open with the same navy band as the front page hero, key cards
 * share the dark card style, and the green shimmer marks interactive cards.
 * ====================================================================== */

html { overflow-x: clip; }

/* ---------- Shared: dark surface and green shimmer ring ---------- */

.ef-dark {
	background: linear-gradient(165deg, #0f2f4b 0%, #0a263e 55%, #0a2a35 100%) !important;
	color: #fff;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 24px 48px -32px rgba(0, 0, 0, .6);
}
.ef-glow { position: relative; isolation: isolate; }
.ef-glow::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px; pointer-events: none;
	background: conic-gradient(from var(--ef-angle),
		rgba(255, 255, 255, .08) 0deg, rgba(255, 255, 255, .08) 210deg,
		var(--ef-green-deep) 255deg, var(--ef-green-light) 295deg, var(--ef-green-deep) 330deg,
		rgba(255, 255, 255, .08) 360deg);
	-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);
	opacity: .5; transition: opacity .5s ease;
	animation: ef-spin 11s linear infinite;
}
.ef-glow:hover::before, .ef-glow:focus-within::before { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .ef-glow::before { animation: none; } }

/* ---------- Navy page heads, matching the front page hero ---------- */

.ef-page-head, .ef-base-hero { position: relative; isolation: isolate; color: #fff; }
.ef-page-head::after, .ef-base-hero::after {
	content: ""; position: absolute; z-index: -2; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%);
	background:
		radial-gradient(55rem 26rem at 88% -20%, rgba(28, 122, 85, .22), transparent 62%),
		radial-gradient(40rem 24rem at 0% 110%, rgba(0, 143, 240, .10), transparent 60%),
		var(--ef-ink);
	pointer-events: none;
}
.ef-page-head { padding-bottom: var(--wp--preset--spacing--60); }
.ef-page-head__title, .ef-page-head .wp-block-post-title, .ef-page-head h1 { color: #fff; }
.ef-page-head__lead, .ef-page-head .wp-block-post-excerpt__excerpt { color: rgba(233, 238, 246, .75) !important; }
.ef-page-head .ef-crumb, .ef-page-head .ef-crumb a, .ef-base-hero__crumb, .ef-base-hero__crumb a { color: rgba(233, 238, 246, .6); }
.ef-page-head .ef-crumb a:hover, .ef-base-hero__crumb a:hover { color: #fff; }
.ef-page-head .ef-date { color: rgba(233, 238, 246, .6); }
.ef-page-head :focus-visible, .ef-base-hero :focus-visible { outline-color: #fff; }

/* The band continues behind the top half of a featured image, like the base cards on the front page. */
.ef-page-head:has(+ .ef-feature) { padding-bottom: clamp(6rem, 12vw, 9rem); }
.ef-page-head + .ef-feature { position: relative; z-index: 1; margin-top: clamp(-7.5rem, -10vw, -4.5rem) !important; }
.ef-feature img { box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .45); }

/* Base page hero: the band stops partway down the photo. */
.ef-base-hero { padding-top: var(--wp--preset--spacing--60); }
.ef-base-hero::after { bottom: 38%; }
.ef-base-hero__code { color: #fff; }
.ef-base-hero__name { color: #fff; }
.ef-base-hero__summary { color: rgba(233, 238, 246, .75); }
.ef-base-hero__media { position: relative; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .45); }

/* Narrow heads (news posts) keep the band full width. */
.ef-page-head--narrow { max-width: none; }
.ef-page-head--narrow > * { max-width: var(--wp--style--global--content-size); }

/* Section right after a dark head needs breathing room. */
.ef-page-head + .ef-section, .ef-page-head + .ef-section--flush { padding-top: var(--wp--preset--spacing--50); }

/* ---------- Course summary on navy ---------- */

.ef-page-head .ef-summary__grid { background: rgba(255, 255, 255, .05); border-radius: var(--ef-r-m); backdrop-filter: blur(4px); }
.ef-page-head .ef-summary__cell + .ef-summary__cell { border-left-color: rgba(255, 255, 255, .1); }
.ef-page-head .ef-summary__cell dt { color: rgba(233, 238, 246, .6); }
.ef-page-head .ef-summary__cell dd { color: #fff; }
.ef-page-head .ef-summary__cell dd .ef-tag { background: rgba(255, 255, 255, .08); color: rgba(233, 238, 246, .9); }
.ef-page-head .ef-tag__code { color: #8fd0ff; }
.ef-page-head .ef-button--ghost { color: #fff; border-color: rgba(255, 255, 255, .6); }
.ef-page-head .ef-button--ghost:hover { background: #fff; border-color: #fff; color: var(--ef-ink); }
.ef-page-head .ef-summary__next { color: #fff; }
.ef-page-head .ef-summary__next span, .ef-page-head .ef-summary__next em { color: rgba(233, 238, 246, .6); }
.ef-page-head .ef-summary__next:hover strong { color: #8fd0ff; }
.ef-page-head .ef-badge { border-color: #8fd0ff; color: #8fd0ff; }
@media (max-width: 900px) { .ef-page-head .ef-summary__cell:nth-child(n+3) { border-top-color: rgba(255, 255, 255, .1); } }

/* ---------- Dark key cards (base contact, course run facts) ---------- */

.ef-dark.ef-contact, .ef-dark.ef-facts { border-radius: var(--ef-r-l); }
.ef-dark .ef-section-head__title { color: #fff; }
.ef-dark .ef-contact__row, .ef-dark .ef-facts__row { border-color: rgba(255, 255, 255, .1); }
.ef-dark .ef-contact__row dt, .ef-dark .ef-facts__row dt { color: rgba(233, 238, 246, .6); }
.ef-dark .ef-contact__row dd, .ef-dark .ef-facts__row dd { color: #fff; }
.ef-dark .ef-contact__row dd span { color: rgba(233, 238, 246, .6); }
.ef-dark a:not(.ef-button) { color: #8fd0ff; }
.ef-dark a:not(.ef-button):hover { color: #fff; }
.ef-dark .ef-contact__note, .ef-dark .ef-facts__note { color: rgba(233, 238, 246, .65); border-color: rgba(255, 255, 255, .1); }
.ef-dark .ef-tag { background: rgba(255, 255, 255, .08); color: rgba(233, 238, 246, .9); }
.ef-dark .ef-tag__code { color: #8fd0ff; }
.ef-dark .ef-run__progress { background: rgba(255, 255, 255, .1); }
.ef-dark :focus-visible { outline-color: #fff; }

/* ---------- Apply call to action at the end of subpages ---------- */

.ef-main:has(> .ef-band--cta:last-child) { padding-bottom: 0; }
.ef-ctacard--apply .ef-ctacard__facts { margin-bottom: 0; }
.ef-ctacard__actions .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 781px) { .ef-ctacard__actions .wp-block-buttons { justify-content: flex-start; } }

/* ---------- Tables (regulations, minima) ---------- */

.ef-table { overflow-x: auto; margin-block: 1.25rem; border: 1px solid var(--ef-line); border-radius: var(--ef-r-m); }
.ef-content .ef-table table { min-width: 36rem; margin: 0; }
.ef-content .ef-table th, .ef-content .ef-table td { padding: .7rem .9rem; }
.ef-content .ef-table thead th { background: var(--ef-haze); border-bottom: 1px solid var(--ef-line); font-size: .8125rem; color: var(--ef-ink); }
.ef-content .ef-table tbody tr:last-child td { border-bottom: 0; }
.ef-content .ef-table td:first-child { font-weight: 600; }

/* Regulation and partner lists read better with some air. */
.ef-content ul li a { text-underline-offset: .15em; }

/* Content directly after a navy head. */
.ef-page-head ~ .ef-content, .ef-page-head + .wp-block-post-content { padding-top: var(--wp--preset--spacing--50); }
.ef-page-head + .ef-feature { margin-top: clamp(-6rem, -8vw, -4rem) !important; }
/* News posts: title column lines up with the text column below. */
.ef-page-head--narrow > * { max-width: var(--wp--style--global--content-size) !important; margin-left: auto !important; margin-right: auto !important; }

/* ---------- Catalog course cards on navy; featured courses shimmer ---------- */

.ef-ccard {
	border: 1px solid rgba(255, 255, 255, .08);
	background: linear-gradient(165deg, #0f2f4b 0%, #0a263e 55%, #0a2a35 100%);
	color: #fff;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 24px 48px -32px rgba(0, 0, 0, .55);
	transition: transform .5s var(--ef-ease), box-shadow .5s var(--ef-ease), border-color .3s ease;
}
.ef-ccard:hover { transform: translateY(-3px); border-color: rgba(255, 255, 255, .16); box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 30px 60px -30px rgba(0, 0, 0, .65); }
.ef-ccard:target { border-color: var(--ef-brand); box-shadow: 0 0 0 4px rgba(0, 143, 240, .2); }
.ef-ccard__title a { color: #fff; }
.ef-ccard__title a:hover { color: #8fd0ff; }
.ef-ccard__lead { color: rgba(233, 238, 246, .72); }
.ef-ccard__facts { background: rgba(255, 255, 255, .05); }
.ef-ccard__facts > div + div { border-left-color: rgba(255, 255, 255, .1); }
.ef-ccard__facts dt { color: rgba(233, 238, 246, .55); }
.ef-ccard__facts dd { color: #fff; }
.ef-ccard .ef-tag { background: rgba(255, 255, 255, .08); color: rgba(233, 238, 246, .9); }
.ef-ccard .ef-tag__code { color: #8fd0ff; }
.ef-ccard .ef-badge { border-color: #8fd0ff; color: #8fd0ff; }
.ef-ccard .ef-button--ghost { color: #fff; border-color: rgba(255, 255, 255, .55); }
.ef-ccard .ef-button--ghost:hover { background: #fff; border-color: #fff; color: var(--ef-ink); }
.ef-ccard :focus-visible { outline-color: #fff; }
@media (max-width: 700px) { .ef-ccard__facts > div:nth-child(n+3) { border-top-color: rgba(255, 255, 255, .1); } }

/* Featured courses: the green glint is always visible and the card has a soft green halo. */
.ef-ccard--featured { border-color: transparent; }
.ef-ccard--featured::before {
	opacity: 1; padding: 1.5px;
	background: conic-gradient(from var(--ef-angle),
		rgba(63, 191, 136, .18) 0deg, rgba(63, 191, 136, .18) 150deg,
		var(--ef-green-deep) 200deg, var(--ef-green-light) 260deg, #9af0c6 285deg, var(--ef-green-light) 310deg, var(--ef-green-deep) 340deg,
		rgba(63, 191, 136, .18) 360deg);
	animation-duration: 7s;
}
.ef-ccard--featured { box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 24px 60px -30px rgba(11, 59, 44, .85), 0 0 40px -12px rgba(63, 191, 136, .28); }
.ef-ccard--featured:hover { box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 30px 70px -28px rgba(11, 59, 44, .95), 0 0 56px -10px rgba(63, 191, 136, .4); }
.ef-ccard--featured .ef-ccard__code { color: #6fe0ad; }
.ef-catalog__toc ul a[data-ef-featured] strong { color: var(--ef-green); }

/* News archive: year labels in navy so they read clearly. */
.ef-newsyears__label { color: var(--ef-ink); }

/* ---------- News page: rolling six months + expandable archive ---------- */

.ef-newsrecent__label { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--large); }
.ef-newsarchive { margin-top: var(--wp--preset--spacing--60); border-radius: var(--ef-r-l); background: var(--ef-haze); }
.ef-newsarchive__toggle {
	display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem;
	list-style: none; cursor: pointer; border-radius: var(--ef-r-l);
	transition: background-color .25s ease;
}
.ef-newsarchive__toggle::-webkit-details-marker { display: none; }
.ef-newsarchive__toggle:hover { background: #e6edf6; }
.ef-newsarchive__title { font-size: var(--wp--preset--font-size--medium); font-weight: 600; color: var(--ef-ink); }
.ef-newsarchive__count { color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }
.ef-newsarchive__icon {
	display: grid; place-items: center; width: 2.25rem; height: 2.25rem; margin-left: auto; border-radius: 50%;
	background: #fff; color: var(--ef-ink); transition: transform .35s var(--ef-ease), background-color .25s ease;
}
.ef-newsarchive[open] .ef-newsarchive__icon { transform: rotate(180deg); background: var(--ef-ink); color: #fff; }
.ef-newsarchive__body { padding: .5rem 1.5rem 1.75rem; }
.ef-newsarchive .ef-newsyears__year + .ef-newsyears__year { margin-top: var(--wp--preset--spacing--40); }
.ef-newsarchive .ef-newsyears__label { margin: 0; font-size: var(--wp--preset--font-size--large); top: calc(var(--ef-header-h) + 1rem); }
.ef-newsarchive .ef-newsrow__link:hover { background: #fff; }
@media (prefers-reduced-motion: no-preference) {
	.ef-newsarchive[open] .ef-newsarchive__body { animation: ef-unfold .45s var(--ef-ease); }
}
@keyframes ef-unfold { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@media (max-width: 600px) {
	.ef-newsarchive__toggle { flex-wrap: wrap; gap: .25rem .75rem; padding: 1rem 1.15rem; }
	.ef-newsarchive__body { padding: .25rem 1.15rem 1.25rem; }
}

/* ---------- Profile card dialog (Om oss) ---------- */

[data-ef-person] { cursor: pointer; }
[data-ef-person]:focus-visible { outline: 2px solid var(--ef-brand); outline-offset: 3px; }
.ef-pcard { position: relative; }
.ef-pcard::after {
	content: ""; position: absolute; top: 1rem; right: 1rem; width: 1.75rem; height: 1.75rem; border-radius: 50%;
	background: var(--ef-haze) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23082238' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 14px no-repeat;
	opacity: 0; transform: scale(.8); transition: opacity .3s ease, transform .35s var(--ef-ease);
}
.ef-pcard:hover::after, .ef-pcard:focus-visible::after { opacity: 1; transform: none; }
@media (hover: none) { .ef-pcard::after { opacity: 1; transform: none; } }

.ef-dialog--person { width: min(40rem, calc(100vw - 2rem)); }
.ef-person-card { padding: clamp(1.5rem, 4vw, 2.5rem); }
.ef-person__head { display: flex; gap: 1.5rem; align-items: center; padding-right: 3rem; }
.ef-person__avatar {
	flex: none; width: 7.5rem; height: 7.5rem; border-radius: 50%; overflow: hidden;
	background: linear-gradient(145deg, #12395a, #082238);
	box-shadow: 0 0 0 4px rgba(255, 255, 255, .06), 0 0 0 5px rgba(63, 191, 136, .5), 0 20px 40px -20px rgba(0, 0, 0, .6);
}
.ef-person__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ef-person__initials { display: grid; place-items: center; width: 100%; height: 100%; color: #fff; font-size: 2.25rem; font-weight: 600; }
.ef-person__badges { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0 0 .5rem; }
.ef-chip--green { background: rgba(63, 191, 136, .16); color: #8fe3bd; }
.ef-person__name { margin: 0; color: #fff; font-size: var(--wp--preset--font-size--large); }
.ef-person__role { margin: .25rem 0 0; color: rgba(233, 238, 246, .72); }
.ef-person__ratings { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1.5rem 0 0; }
.ef-person__ratings span { padding: .3rem .75rem; border-radius: var(--ef-pill); background: rgba(0, 143, 240, .15); color: #8fd0ff; font-size: .8125rem; font-weight: 600; }
.ef-person__extra { margin: 1rem 0 0; color: rgba(233, 238, 246, .8); }
.ef-person__bio { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .1); color: rgba(233, 238, 246, .82); }
.ef-person__bio p { margin: 0 0 .75rem; }
.ef-person__contact { display: grid; gap: 1px; margin: 1.5rem 0 0; border-radius: var(--ef-r-m); overflow: hidden; background: rgba(255, 255, 255, .08); }
.ef-person__contact > div { display: grid; grid-template-columns: 6rem 1fr; gap: 1rem; padding: .8rem 1rem; background: #0c2a44; }
.ef-person__contact dt { font-size: .8125rem; color: rgba(233, 238, 246, .55); padding-top: .1rem; }
.ef-person__contact dd { margin: 0; font-weight: 600; }
.ef-person__contact a { color: #8fd0ff; }
.ef-person__contact a:hover { color: #fff; }
.ef-person__contact .ef-tag { background: rgba(255, 255, 255, .08); color: rgba(233, 238, 246, .9); }
.ef-person__contact .ef-tag__code { color: #8fd0ff; }
.ef-person__note { margin: 1.5rem 0 0; color: rgba(233, 238, 246, .7); font-size: var(--wp--preset--font-size--small); }
.ef-person__note a { color: #8fd0ff; }
@media (max-width: 520px) {
	.ef-person__head { flex-direction: column; align-items: flex-start; gap: 1rem; padding-right: 0; }
	.ef-person__avatar { width: 6rem; height: 6rem; }
}

/* ---------- Partners (Om oss) ---------- */

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ef-content .ef-partners { margin-top: var(--wp--preset--spacing--60); }
.ef-partners__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14.5rem), 1fr)); gap: 1rem; }
.ef-content .ef-partners__grid { padding-left: 0; }
.ef-content .ef-partners__grid > li { margin-top: 0; }
.ef-partner { display: flex; }
.ef-partner__card {
	flex: 1; display: flex; flex-direction: column; gap: .4rem;
	padding: 1.25rem 1.25rem 1.1rem; border: 1px solid var(--ef-line); border-radius: var(--ef-r-m);
	background: #fff; color: var(--ef-ink); text-decoration: none;
	transition: transform .4s var(--ef-ease), border-color .3s ease, box-shadow .4s var(--ef-ease);
}
a.ef-partner__card:hover { transform: translateY(-3px); border-color: rgba(0, 143, 240, .45); box-shadow: 0 18px 40px -26px rgba(8, 34, 56, .45); }
.ef-partner__logo {
	display: flex; align-items: center; justify-content: flex-start; height: 4.5rem; margin-bottom: .5rem;
	padding: .75rem 1rem; border-radius: .75rem; background: var(--ef-haze);
}
.ef-partner__img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; transition: transform .4s var(--ef-ease); }
a.ef-partner__card:hover .ef-partner__img { transform: scale(1.04); }
.ef-partner__wordmark { font-size: var(--wp--preset--font-size--medium); font-weight: 700; letter-spacing: -0.01em; line-height: 1.15; color: var(--ef-ink); }
.ef-partner__name { font-weight: 600; }
.ef-partner__lead { color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); line-height: 1.5; }
.ef-partner__link { display: inline-flex; align-items: center; gap: .35rem; margin-top: auto; padding-top: .6rem; font-size: .8125rem; font-weight: 600; color: var(--ef-brand-text); }
.ef-partner__link .ef-icon { width: 15px; height: 15px; transform: rotate(-45deg); transition: transform .35s var(--ef-ease); }
a.ef-partner__card:hover .ef-partner__link .ef-icon { transform: rotate(-45deg) translateX(3px); }
.ef-partner__wordmark { font-size: 1.0625rem; }
.ef-partner__logo:has(.ef-partner__wordmark) { background: linear-gradient(135deg, var(--ef-haze), #e3ebf5); }

/* =========================================================================
 * Mobile layer (v0.6): tab bar, jump menu, quick contact, denser lists.
 * ====================================================================== */

/* ---------- Action buttons: call, e-mail, directions ---------- */

.ef-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; }
.ef-action {
	display: inline-flex; align-items: center; gap: .45rem;
	padding: .6rem 1rem; border-radius: var(--ef-pill);
	background: var(--ef-brand); color: var(--ef-ink) !important; text-decoration: none !important;
	font-weight: 600; font-size: var(--wp--preset--font-size--small); line-height: 1.2;
	transition: background-color .2s ease, color .2s ease;
}
.ef-action:hover { background: #fff; }
.ef-action + .ef-action { background: rgba(255, 255, 255, .1); color: #fff !important; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22); }
.ef-action + .ef-action:hover { background: rgba(255, 255, 255, .2); }
.ef-action .ef-icon { width: 18px; height: 18px; flex: none; }

/* ---------- Quick contact card ---------- */

.ef-quick { padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--ef-r-l); margin-block: var(--wp--preset--spacing--50) !important; }
.ef-quick__head { margin-bottom: 1rem; }
.ef-quick__title { margin: 0 0 .35rem; font-size: var(--wp--preset--font-size--large); color: #fff; }
.ef-quick__who { margin: 0; color: rgba(233, 238, 246, .72); font-size: var(--wp--preset--font-size--small); }
.ef-quick__who strong { color: #fff; font-weight: 600; margin-right: .3rem; }
.ef-quick__lines { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; gap: .55rem; }
.ef-quick__lines li { display: flex; align-items: flex-start; gap: .65rem; margin: 0; color: rgba(233, 238, 246, .85); }
.ef-quick__lines .ef-icon { flex: none; margin-top: .15rem; color: var(--ef-green-light); }
.ef-quick__lines a { color: #fff; }
.ef-quick .ef-actions { margin-bottom: 0; }

/* ---------- Jump menu (on this page) ---------- */

.ef-jump { margin-block: var(--wp--preset--spacing--40) 0 !important; }
.ef-jump__list { display: flex; gap: .4rem; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.ef-jump__list::-webkit-scrollbar { display: none; }
.ef-jump__list li { flex: none; margin: 0; }
.ef-jump__list a {
	display: block; padding: .45rem .95rem; border: 1px solid var(--ef-line); border-radius: var(--ef-pill);
	background: #fff; color: var(--ef-ink); text-decoration: none; white-space: nowrap;
	font-size: var(--wp--preset--font-size--small); font-weight: 600;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.ef-jump__list a:hover { border-color: var(--ef-brand); color: var(--ef-brand-text); }
.ef-jump__list a[aria-current] { background: var(--ef-ink); border-color: var(--ef-ink); color: #fff; }

/* ---------- Bottom tab bar (phones only) ---------- */

.ef-tabbar { display: none; }

@media (max-width: 781px) {
	html { scroll-padding-top: calc(var(--ef-header-h, 4rem) + 4rem); }
	body { padding-bottom: calc(4.25rem + env(safe-area-inset-bottom)); }

	.ef-tabbar {
		display: block; position: fixed; inset: auto 0 0 0; z-index: 90;
		padding-bottom: env(safe-area-inset-bottom);
		background: rgba(255, 255, 255, .94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
		border-top: 1px solid var(--ef-line);
		transition: transform .25s var(--ef-ease);
	}
	html.ef-typing .ef-tabbar, body:has(.wp-block-navigation__responsive-container.is-menu-open) .ef-tabbar { transform: translateY(110%); }
	.ef-tabbar ul { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; list-style: none; }
	.ef-tabbar li { margin: 0; }
	.ef-tabbar a {
		position: relative; display: flex; flex-direction: column; align-items: center; gap: .2rem;
		min-height: 3.6rem; padding: .55rem .25rem .45rem;
		color: var(--ef-slate); text-decoration: none; font-size: .6875rem; font-weight: 600; line-height: 1.1;
		-webkit-tap-highlight-color: transparent;
	}
	.ef-tabbar a[aria-current] { color: var(--ef-brand-text); }
	.ef-tabbar a[aria-current]::before {
		content: ""; position: absolute; top: -1px; left: 30%; right: 30%; height: 2px; border-radius: 0 0 2px 2px; background: var(--ef-brand);
	}
	.ef-tabbar a:active { background: var(--ef-haze); }

	/* Jump menu sticks under the header as a swipeable bar. */
	.ef-jump {
		position: sticky; top: var(--ef-header-h); z-index: 20;
		margin-inline: calc(-1 * var(--wp--style--root--padding-left)) calc(-1 * var(--wp--style--root--padding-right)) !important;
		padding: .55rem var(--wp--style--root--padding-left);
		background: rgba(255, 255, 255, .94); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
		border-bottom: 1px solid var(--ef-line);
	}
	.ef-content > .ef-jump { margin-top: 0 !important; }
	.ef-jump__list a { padding: .4rem .85rem; font-size: .8125rem; }

	/* Base page: contact first, then course starts. */
	.ef-split--contact-first > .wp-block-column:last-child { order: -1; }

	/* Action buttons share the row evenly. */
	.ef-actions { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
	.ef-action { justify-content: center; padding: .75rem .4rem; gap: .35rem; white-space: nowrap; }

	/* Profile cards: denser so the whole team fits in fewer screens. */
	.ef-people__list { gap: .6rem; }
	.ef-pcard { padding: .85rem 1rem; gap: .85rem; align-items: center; }
	.ef-pcard__avatar { width: 3.5rem; height: 3.5rem; }
	.ef-pcard__initials { font-size: 1rem; }
	.ef-pcard__body { padding-top: 0; }
	.ef-pcard__note { margin-top: .1rem; }
	.ef-people__base { margin-bottom: .75rem; }

	/* Base cards on the front page: drop the long summary. */
	.ef-basecard__summary { display: none; }

	/* Footer: compact. Logo and short intro, then bases and courses side by side.
	   The address and the external links are left out (Kontakt is in the tab bar). */
	.ef-footer { padding-block: 2rem 1.25rem; font-size: .8125rem; }
	.ef-footer .ef-brand { --w: 150px; }
	.ef-footer__about { margin: .6rem 0 0; line-height: 1.5; }
	.ef-footer__address, .ef-footer__cols > .wp-block-column:last-child { display: none; }
	.ef-footer__cols { display: grid !important; grid-template-columns: 1fr 1fr; gap: 1.5rem 1.25rem !important; }
	.ef-footer__cols > .wp-block-column:first-child { grid-column: 1 / -1; }
	.ef-footer__links li { padding: .15rem 0; }
	.ef-footer__title { margin-bottom: .35rem; }
	.ef-footer__bottom { margin-top: 1.5rem !important; padding-top: .9rem; gap: .5rem 1rem; font-size: .75rem; }
}

/* Page content styles must not reach into these components. */
.ef-quick .ef-quick__title { margin-top: 0 !important; }
.ef-jump .ef-jump__list { margin: 0 !important; padding: 0 !important; }
.ef-jump .ef-jump__list > li { margin: 0 !important; padding: 0; }
.ef-jump .ef-jump__list > li::before, .ef-quick .ef-quick__lines > li::before { content: none; display: none; }
.ef-quick .ef-quick__lines { padding: 0 !important; }
.ef-quick .ef-quick__lines > li { margin: 0 !important; }
.ef-content > .ef-quick { max-width: 46rem; margin-inline: auto !important; }

/* ---------- Base map: dotted southern Sweden with a pin per base ---------- */

.ef-map { margin: 0; }
.ef-map__chart { position: relative; max-width: 15.5rem; margin-inline: auto; aspect-ratio: 58 / 78; }
/* Centre the map between the about text (max 22rem in a 34% column) and the next column. */
@media (min-width: 782px) {
	.ef-footer__cols { container-type: inline-size; }
	.ef-map__chart { translate: calc(max(0px, 34cqw - 22rem) / -2) 0; }
}
.ef-map__list { display: none; }
.ef-map__dots {
	display: block; width: 100%; height: 100%; opacity: .45;
	-webkit-mask-image: radial-gradient(ellipse 72% 64% at 48% 55%, #000 55%, transparent 100%);
	mask-image: radial-gradient(ellipse 72% 64% at 48% 55%, #000 55%, transparent 100%);
}
.ef-map__pins { list-style: none; margin: 0; padding: 0; }
.ef-map__pin { position: absolute; left: var(--x); top: var(--y); width: 0; height: 0; }
.ef-map__pin a {
	position: absolute; left: 0; top: 0; transform: translate(-.4rem, -50%);
	display: flex; align-items: center; gap: .45rem; white-space: nowrap; text-decoration: none !important;
}
.ef-map__pin--left a { left: auto; right: 0; flex-direction: row-reverse; transform: translate(.4rem, -50%); }
.ef-map__dot {
	position: relative; flex: none; width: .8rem; height: .8rem; border-radius: 50%;
	background: var(--ef-brand); box-shadow: 0 0 0 3px rgba(0, 143, 240, .25);
}
.ef-map__label {
	padding: .2rem .6rem; border-radius: var(--ef-pill, 999px);
	background: rgba(8, 34, 56, .72); border: 1px solid rgba(233, 238, 246, .16);
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	color: #fff; font-size: .8125rem; line-height: 1.3;
	transition: background-color .2s ease, border-color .2s ease;
}
.ef-map__code { font-weight: 700; color: rgba(233, 238, 246, .55); margin-right: .15rem; font-size: .6875rem; letter-spacing: .02em; }
.ef-map__pin a:hover .ef-map__label, .ef-map__pin a:focus-visible .ef-map__label { background: var(--ef-brand); border-color: var(--ef-brand); color: var(--ef-ink); }
.ef-map__pin a:hover .ef-map__code, .ef-map__pin a:focus-visible .ef-map__code { color: var(--ef-ink); }
.ef-map__pin a:focus-visible { outline: none; }
@media (prefers-reduced-motion: no-preference) {
	.ef-map__dot::after {
		content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--ef-brand);
		animation: ef-map-ping 3.2s ease-out infinite;
	}
	.ef-map__pin:nth-child(2) .ef-map__dot::after { animation-delay: 1.1s; }
	.ef-map__pin:nth-child(3) .ef-map__dot::after { animation-delay: 2.2s; }
}
@keyframes ef-map-ping {
	0%   { transform: scale(1); opacity: .9; }
	70%, 100% { transform: scale(3); opacity: 0; }
}
@media (max-width: 781px) {
	.ef-map__chart { display: none; }
	.ef-map__list { display: block; }
}

/* ---------- Flyby: a PA-28 slowly crossing the header and footer ---------- */

.ef-flyby {
	position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
	max-width: none !important; margin: 0 !important; container-type: size;
}
.ef-header__bar, .ef-footer > :not(.ef-flyby) { position: relative; z-index: 1; }
.ef-footer { position: relative; }
.ef-flyby__plane {
	position: absolute; left: 0; top: 0; display: block; height: auto; opacity: 0;
	will-change: transform;
}
.ef-flyby--header .ef-flyby__plane { width: 50px; color: var(--ef-brand); }
.ef-flyby--footer .ef-flyby__plane { width: 84px; color: #fff; }

@media (prefers-reduced-motion: no-preference) {
	.ef-flyby--header .ef-flyby__plane { animation: ef-flyby-header 46s linear 4s infinite; }
	.ef-flyby--footer .ef-flyby__plane { animation: ef-flyby-footer 64s linear 10s infinite; }
}
/* A gentle climb from left to right, then a pause before the next pass. */
@keyframes ef-flyby-header {
	0%   { opacity: 0;   transform: translate(-60px, 72cqh) rotate(-3deg); }
	6%   { opacity: .2; }
	64%  { opacity: .2; }
	70%  { opacity: 0;   transform: translate(calc(100cqw + 10px), 22cqh) rotate(-3deg); }
	100% { opacity: 0;   transform: translate(calc(100cqw + 10px), 22cqh) rotate(-3deg); }
}
@keyframes ef-flyby-footer {
	0%   { opacity: 0;   transform: translate(-100px, 88cqh) rotate(-4deg); }
	6%   { opacity: .12; }
	64%  { opacity: .12; }
	70%  { opacity: 0;   transform: translate(calc(100cqw + 20px), 66cqh) rotate(-4deg); }
	100% { opacity: 0;   transform: translate(calc(100cqw + 20px), 66cqh) rotate(-4deg); }
}
/*
 * Cumulus clouds drift right to left, far slower than the plane, so it
 * seems to fly past them. Each cloud sets its size, height, speed and start
 * offset; with reduced motion they simply stay put.
 */
.ef-flyby__cloud {
	position: absolute; left: 0; top: var(--y); width: var(--w); height: auto; display: block;
	opacity: var(--o); transform: translateX(var(--x));
}
.ef-flyby--header .ef-flyby__cloud { color: var(--ef-brand); --o: .07; }
.ef-flyby--footer .ef-flyby__cloud { color: #fff; --o: .035; }
.ef-flyby--header .ef-flyby__cloud--1 { --w: 120px; --y: 18%; --x: 58cqw; --d: 240s; }
.ef-flyby--header .ef-flyby__cloud--2 { --w: 70px;  --y: 46%; --x: 22cqw; --d: 320s; }
.ef-flyby--footer .ef-flyby__cloud--1 { --w: 240px; --y: 6%;  --x: 40cqw; --d: 300s; }
.ef-flyby--footer .ef-flyby__cloud--2 { --w: 120px; --y: 70%; --x: 70cqw; --d: 380s; }
.ef-flyby--footer .ef-flyby__cloud--3 { --w: 170px; --y: 48%; --x: 8cqw;  --d: 340s; }
@media (prefers-reduced-motion: no-preference) {
	.ef-flyby__cloud { animation: ef-cloud-drift var(--d) linear infinite; }
	/* Negative delays put the clouds mid-sky on page load. */
	.ef-flyby__cloud--1 { animation-delay: calc(var(--d) * -.35); }
	.ef-flyby__cloud--2 { animation-delay: calc(var(--d) * -.75); }
	.ef-flyby__cloud--3 { animation-delay: calc(var(--d) * -.92); }
}
/* Paused with the footer button: everything stays still. */
.ef-still .ef-flyby__plane, .ef-still .ef-flyby__cloud { animation: none !important; }
.ef-motion-toggle {
	margin-left: 1.25rem; padding: 0; border: 0; background: none; color: inherit; font: inherit;
	text-decoration: underline; text-underline-offset: .2em; cursor: pointer; opacity: .8;
}
.ef-motion-toggle:hover { opacity: 1; }
.ef-motion-toggle[aria-pressed="true"] .ef-motion-toggle__pause,
.ef-motion-toggle[aria-pressed="false"] .ef-motion-toggle__play { display: none; }
@media (prefers-reduced-motion: reduce) { .ef-motion-toggle { display: none; } }

@keyframes ef-cloud-drift {
	from { transform: translateX(100cqw); }
	to   { transform: translateX(-100%); }
}

@media (max-width: 781px) {
	.ef-flyby--header .ef-flyby__plane { width: 36px; }
	.ef-flyby--header .ef-flyby__cloud--1 { --w: 90px; }
	.ef-flyby--footer .ef-flyby__cloud { --w: 130px; }
	.ef-flyby--footer .ef-flyby__plane { width: 64px; }
}

/* ---------- Regelverk och blanketter ---------- */

.ef-rules { min-width: 0; }
.ef-rules > .ef-rules__section, .ef-rules .ef-table { max-width: 100%; }
.ef-rules > * { margin-block: 0; }
.ef-content .ef-rules__lead { max-width: 44rem; font-size: var(--wp--preset--font-size--medium); color: var(--ef-ink); }

.ef-jumplinks { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem !important; }
.ef-jumplinks a {
	padding: .45rem 1rem; border: 1px solid var(--ef-line); border-radius: var(--ef-pill);
	color: var(--ef-ink); font-size: var(--wp--preset--font-size--small); font-weight: 600; text-decoration: none;
	transition: border-color .2s ease, background-color .2s ease;
}
.ef-jumplinks a:hover { border-color: var(--ef-brand); background: var(--ef-haze); }

.ef-rules__section { margin-top: var(--wp--preset--spacing--60) !important; scroll-margin-top: 6rem; }
.ef-content .ef-rules__section > h2 { margin: 0 0 1.25rem; font-size: var(--wp--preset--font-size--large); }
.ef-rules__intro { margin: -.5rem 0 1.25rem; color: var(--ef-slate); max-width: 44rem; }
.ef-rules__note { margin-top: .75rem; color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); }

/* Two source panels: EASA and Transportstyrelsen */
.ef-sources { gap: var(--wp--preset--spacing--40) !important; margin: 0; }
.ef-sources > .wp-block-column {
	padding: clamp(1.25rem, 3vw, 1.75rem); background: var(--ef-haze); border-radius: var(--ef-r-m);
}
.ef-sources > .wp-block-column > * { margin-block: 0; }
.ef-content .ef-sources h3 { margin: .35rem 0 1rem; font-size: var(--wp--preset--font-size--medium); }
.ef-sources__tag {
	display: inline-block; padding: .15rem .6rem; border-radius: var(--ef-pill);
	background: #fff; color: var(--ef-brand-text); font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}

/* Link lists: title on top, description below, arrow on the right */
.ef-content ul.ef-linklist { list-style: none; margin: 0; padding: 0; }
.ef-content .ef-linklist li {
	position: relative; margin: 0; padding: .8rem 2rem .8rem 0;
	border-top: 1px solid var(--ef-line); color: var(--ef-slate); font-size: var(--wp--preset--font-size--small); line-height: 1.45;
}
.ef-content .ef-linklist li:first-child { border-top: 0; padding-top: 0; }
.ef-content .ef-linklist li:first-child::after { top: 0; }
.ef-content .ef-linklist a {
	display: block; margin-bottom: .1rem; color: var(--ef-ink); font-size: 1rem; font-weight: 600; text-decoration: none;
}
.ef-content .ef-linklist a::before { content: ""; position: absolute; inset: 0; }
.ef-content .ef-linklist li::after {
	content: "↗"; position: absolute; right: .25rem; top: .8rem; color: var(--ef-brand-text); font-weight: 600;
	transition: transform .2s var(--ef-ease);
}
.ef-content .ef-linklist li:hover a { color: var(--ef-brand-text); }
.ef-content .ef-linklist li:hover::after { transform: translate(2px, -2px); }
.ef-content .ef-linklist a:focus-visible { outline: none; }
.ef-content .ef-linklist a:focus-visible::before { outline: 2px solid var(--ef-brand); outline-offset: 2px; border-radius: var(--ef-r-s); }

/* Form cards: name of the form and its number as buttons */
.ef-content ul.ef-formlist {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: .75rem;
}
.ef-content .ef-formlist li {
	display: flex; flex-wrap: wrap; align-content: space-between; gap: .75rem .4rem; margin: 0;
	padding: 1rem 1.1rem; border: 1px solid var(--ef-line); border-radius: var(--ef-r-m); background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.ef-content .ef-formlist li:hover { border-color: #b8c7d9; box-shadow: 0 10px 24px -18px rgba(8, 34, 56, .45); }
.ef-content .ef-formlist strong { flex: 1 0 100%; font-weight: 600; line-height: 1.35; }
.ef-content .ef-formlist a {
	display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .75rem;
	border-radius: var(--ef-pill); background: var(--ef-haze); color: var(--ef-brand-text);
	font-size: var(--wp--preset--font-size--small); font-weight: 600; text-decoration: none; font-variant-numeric: tabular-nums;
	transition: background-color .2s ease, color .2s ease;
}
.ef-content .ef-formlist a::after { content: "↗"; font-size: .8em; }
.ef-content .ef-formlist a:hover { background: var(--ef-ink); color: #fff; }

/* Fee table */
.ef-rules .ef-table { margin: 0; background: #fff; }
.ef-rules .ef-table td:not(:first-child) { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ef-rules .ef-table td:last-child { white-space: normal; color: var(--ef-slate); min-width: 14rem; }
.ef-rules .ef-table tbody tr:nth-child(even) td { background: #fafcfe; }

@media (max-width: 781px) {
	.ef-content .ef-formlist { grid-template-columns: 1fr; }
}

.ef-about { align-items: center !important; }
.ef-about__image { margin: 0; }
.ef-about__image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--ef-r-l); }
