/*
 * eIFU base styles + component primitives (mobile-first).
 * Built on the tokens in tokens.css.
 */

/* ---------- Reset-ish ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--eifu-font-sans);
	font-size: var(--eifu-fs-base);
	line-height: var(--eifu-lh-base);
	color: var(--eifu-color-text);
	background: var(--eifu-color-bg);
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--eifu-color-primary); text-decoration: none; }
a:hover { color: var(--eifu-color-primary-700); text-decoration: underline; }
h1, h2, h3 { color: var(--eifu-color-heading); line-height: var(--eifu-lh-tight); margin: 0 0 var(--eifu-space-4); letter-spacing: -0.01em; }
h1 { font-size: var(--eifu-fs-2xl); font-weight: var(--eifu-fw-semibold); letter-spacing: -0.02em; }
h2 { font-size: 1.375rem; font-weight: var(--eifu-fw-semibold); }
p { margin: 0 0 var(--eifu-space-4); }
:focus-visible { outline: none; box-shadow: var(--eifu-focus); border-radius: var(--eifu-radius-sm); }

/* ---------- Layout ---------- */
.eifu-container {
	width: 100%;
	max-width: var(--eifu-container);
	margin-inline: auto;
	padding-inline: var(--eifu-container-pad);
}
.eifu-site { display: flex; flex-direction: column; min-height: 100vh; }
.eifu-main { flex: 1 0 auto; padding-block: var(--eifu-space-6); }

/* ---------- Eyebrow / labels ---------- */
.eifu-eyebrow {
	display: inline-block;
	font-size: 0.6875rem; /* 11 */
	font-weight: var(--eifu-fw-semibold);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--eifu-color-primary);
	margin-bottom: var(--eifu-space-2);
}

/* ---------- Header ---------- */
.eifu-header {
	position: relative;
	background: var(--eifu-color-surface);
	border-bottom: 1px solid var(--eifu-color-border);
}
.eifu-header__inner {
	display: flex;
	align-items: center;
	gap: var(--eifu-space-3);
	min-height: 64px;
	flex-wrap: nowrap;
}
.eifu-brand { display: flex; align-items: center; gap: var(--eifu-space-3); font-weight: var(--eifu-fw-bold); text-decoration: none; flex: none; }
.eifu-brand:hover { text-decoration: none; }
.eifu-brand__logo { height: 28px; width: auto; display: block; }
.eifu-brand__sub { color: var(--eifu-color-primary); font-weight: var(--eifu-fw-bold); font-size: var(--eifu-fs-lg); }
.eifu-header__actions { margin-left: auto; display: flex; align-items: center; gap: var(--eifu-space-3); }
.eifu-icon { display: block; }

/* Print button shows text on desktop, icon only on mobile. */
.eifu-header__print { gap: var(--eifu-space-2); }
.eifu-header__print .eifu-icon { display: none; }

/* Hamburger toggle — mobile only. */
.eifu-header__toggle {
	display: none; background: none; border: 0; padding: var(--eifu-space-2);
	color: var(--eifu-neutral-700); cursor: pointer; line-height: 0;
}

.eifu-header__nav { display: flex; align-items: center; gap: var(--eifu-space-4); }
.eifu-header__nav a { color: var(--eifu-color-primary); font-weight: var(--eifu-fw-medium); }
.eifu-header__nav-legal { display: none; }

@media (max-width: 767px) {
	/* Tighter side padding on mobile so the header fits in one row. */
	:root { --eifu-container-pad: var(--eifu-space-4); }
	.eifu-header__actions { gap: var(--eifu-space-2); }
	.eifu-header__print-label { display: none; }
	.eifu-header__print .eifu-icon { display: block; }
	.eifu-header__print { padding: var(--eifu-space-3); border-radius: 14px; }
	.eifu-header__toggle { display: block; padding: var(--eifu-space-1); }
	.eifu-header__nav {
		display: none; position: absolute; right: var(--eifu-container-pad); top: 60px;
		flex-direction: column; align-items: flex-start; gap: var(--eifu-space-3);
		background: var(--eifu-color-surface); border: 1px solid var(--eifu-color-border);
		border-radius: var(--eifu-radius); box-shadow: var(--eifu-shadow); padding: var(--eifu-space-4);
		min-width: 180px; z-index: 40;
	}
	.eifu-header__nav.is-open { display: flex; }
	.eifu-header__nav-legal { display: block; }
}

/* ---------- Footer ---------- */
.eifu-footer {
	background: var(--eifu-footer);
	color: #fff;
	margin-top: var(--eifu-space-7);
}
.eifu-footer a { color: #fff; }
.eifu-footer__inner { padding-block: var(--eifu-space-6); display: grid; gap: var(--eifu-space-5); }
.eifu-footer__cols { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--eifu-space-5); }
.eifu-footer__links { display: flex; flex-wrap: wrap; gap: var(--eifu-space-4); list-style: none; margin: 0; padding: 0; }
.eifu-footer__bottom {
	border-top: 1px solid rgba(255,255,255,0.2);
	padding-top: var(--eifu-space-4);
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--eifu-space-3);
	font-size: var(--eifu-fs-sm); color: rgba(255,255,255,0.85);
}

/* ---------- Buttons ---------- */
.eifu-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--eifu-space-2);
	font: inherit; font-weight: var(--eifu-fw-semibold);
	padding: 14px 22px;
	border-radius: var(--eifu-radius-md);
	border: 1px solid transparent;
	cursor: pointer; text-decoration: none; line-height: 1.25; white-space: nowrap;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.eifu-btn:hover { text-decoration: none; }
.eifu-btn--primary { background: var(--eifu-color-btn); color: var(--eifu-color-on-primary); }
.eifu-btn--primary:hover { background: var(--eifu-color-btn-hover); color: #fff; }
.eifu-btn--secondary { background: transparent; color: var(--eifu-neutral-700); border-color: var(--eifu-color-border-input); }
.eifu-btn--secondary:hover { border-color: var(--eifu-neutral-400); color: var(--eifu-neutral-700); }
.eifu-btn--ghost { background: transparent; color: var(--eifu-color-primary); padding-inline: var(--eifu-space-2); }
/* Compact size for the header CTA (≈30px tall). */
.eifu-btn--sm { padding: 7px 16px; font-size: var(--eifu-fs-sm); }
.eifu-btn:disabled { opacity: .5; cursor: not-allowed; }

/* ---------- Form controls ---------- */
.eifu-input, .eifu-select {
	width: 100%;
	font: inherit;
	padding: 14px 16px;
	border: 1px solid var(--eifu-color-border-input);
	border-radius: var(--eifu-radius-md);
	background: var(--eifu-color-surface);
	color: var(--eifu-color-text);
}
.eifu-input::placeholder { color: var(--eifu-neutral-400); }
.eifu-field { margin-bottom: var(--eifu-space-4); }
.eifu-field__label { display: block; font-size: var(--eifu-fs-sm); font-weight: var(--eifu-fw-medium); margin-bottom: var(--eifu-space-2); }
.eifu-field__hint { font-size: var(--eifu-fs-sm); color: var(--eifu-color-text-muted); margin-top: var(--eifu-space-2); }
.eifu-field--error .eifu-input { border-color: var(--eifu-brand-700); }
.eifu-field__error { color: var(--eifu-brand-700); font-size: var(--eifu-fs-sm); margin-top: var(--eifu-space-2); }

/* Language switcher (pill dropdown) */
.eifu-langswitch { position: relative; }
.eifu-langswitch__select {
	appearance: none;
	border: 1px solid var(--eifu-color-border-input);
	border-radius: var(--eifu-radius-sm);
	/* Match the height of the compact header button (.eifu-btn--sm). */
	padding: 7px var(--eifu-space-6) 7px var(--eifu-space-3);
	font-size: var(--eifu-fs-sm);
	line-height: 1.25;
	background-color: var(--eifu-color-surface);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right var(--eifu-space-3) center;
	background-size: 12px;
	font-family: inherit; color: var(--eifu-neutral-700); cursor: pointer;
}

/* ---------- Badge / REF pill ---------- */
.eifu-badge {
	display: inline-flex; align-items: center; gap: var(--eifu-space-2);
	background: var(--eifu-brand-100); color: var(--eifu-brand-800);
	border-radius: var(--eifu-radius-sm);
	padding: var(--eifu-space-2) var(--eifu-space-3);
	font-weight: var(--eifu-fw-semibold); font-size: var(--eifu-fs-lg);
}
.eifu-badge__key { font-size: 0.6875rem; font-weight: var(--eifu-fw-bold); color: var(--eifu-brand-700); letter-spacing: 0.04em; }

/* ---------- Tabs ---------- */
.eifu-tabs { display: flex; gap: var(--eifu-space-5); border-bottom: 1px solid var(--eifu-color-border); margin-bottom: var(--eifu-space-5); }
.eifu-tab {
	display: inline-flex; align-items: center; gap: var(--eifu-space-2);
	padding: var(--eifu-space-3) 0; margin-bottom: -1px;
	border-bottom: 2px solid transparent;
	color: var(--eifu-color-text-muted); font-weight: var(--eifu-fw-medium);
	background: none; border-top: 0; border-left: 0; border-right: 0; cursor: pointer; font-size: inherit;
}
.eifu-tab[aria-selected="true"], .eifu-tab.is-active { color: var(--eifu-color-primary); border-bottom-color: var(--eifu-color-primary); }
.eifu-tab__count { color: var(--eifu-color-text-muted); font-weight: var(--eifu-fw-normal); }

/* ---------- Banner ---------- */
.eifu-banner {
	display: flex; gap: var(--eifu-space-3); align-items: flex-start;
	background: var(--eifu-color-info-bg); color: var(--eifu-color-info-text);
	border-radius: var(--eifu-radius); padding: var(--eifu-space-4);
	font-size: var(--eifu-fs-sm);
}
.eifu-banner__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--eifu-neutral-700); margin-top: 6px; flex: none; }

/* ---------- Card ---------- */
.eifu-card {
	background: var(--eifu-color-surface);
	border: 1px solid var(--eifu-color-border);
	border-radius: var(--eifu-radius);
	box-shadow: var(--eifu-shadow-sm);
	padding: var(--eifu-space-6);
}

/* ---------- Table (results) ---------- */
.eifu-table-wrap { overflow-x: auto; border: 1px solid var(--eifu-color-border); border-radius: var(--eifu-radius); background: var(--eifu-color-surface); }
.eifu-table { width: 100%; border-collapse: collapse; min-width: 880px; }
.eifu-table thead th {
	text-align: left; font-size: var(--eifu-fs-xs); letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--eifu-color-text-muted); font-weight: var(--eifu-fw-bold); white-space: nowrap;
	padding: var(--eifu-space-4) var(--eifu-space-4); border-bottom: 1px solid var(--eifu-color-border);
}
.eifu-table tbody td { padding: var(--eifu-space-4); border-bottom: 1px solid var(--eifu-color-border); vertical-align: middle; white-space: nowrap; }
.eifu-table tbody tr:last-child td { border-bottom: 0; }
.eifu-table__lang-name { font-weight: var(--eifu-fw-bold); color: var(--eifu-neutral-700); }
.eifu-table__lang-en { font-size: var(--eifu-fs-sm); color: var(--eifu-color-text-muted); }
.eifu-table__actions { display: flex; gap: var(--eifu-space-2); flex-wrap: nowrap; }

/* ---------- Utilities ---------- */
.eifu-stack > * + * { margin-top: var(--eifu-space-4); }
.eifu-muted { color: var(--eifu-color-text-muted); }
.eifu-text-sm { font-size: var(--eifu-fs-sm); }
.eifu-back { display: inline-flex; align-items: center; gap: var(--eifu-space-2); color: var(--eifu-color-primary); font-weight: var(--eifu-fw-medium); }

/* ---------- Search Hub ---------- */
.eifu-hero h1 { font-size: var(--eifu-fs-hero); font-weight: var(--eifu-fw-bold); text-transform: uppercase; letter-spacing: -0.03em; line-height: 1.05; }
.eifu-hero__intro { font-size: var(--eifu-fs-lg); color: var(--eifu-neutral-600); line-height: 1.55; max-width: 70ch; }
.eifu-search { display: flex; flex-direction: column; gap: var(--eifu-space-3); margin-top: var(--eifu-space-5); }
.eifu-search__field { position: relative; flex: 1; }
.eifu-search__input { font-size: var(--eifu-fs-lg); padding-right: 72px; }
.eifu-search__enter { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: var(--eifu-fs-xs); color: var(--eifu-color-text-muted); pointer-events: none; }
.eifu-search__help { margin-top: var(--eifu-space-3); font-size: var(--eifu-fs-sm); }
.eifu-label-example { display: block; width: 100%; max-width: 640px; height: auto; margin-top: var(--eifu-space-4); border: 1px solid var(--eifu-color-border); border-radius: var(--eifu-radius); }

/* Autocomplete dropdown */
.eifu-suggest {
	position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 30;
	margin: 0; padding: var(--eifu-space-2); list-style: none;
	background: var(--eifu-color-surface);
	border: 1px solid var(--eifu-color-border); border-radius: var(--eifu-radius);
	box-shadow: var(--eifu-shadow); max-height: 320px; overflow-y: auto;
}
.eifu-suggest[hidden] { display: none; }
.eifu-suggest__item {
	display: flex; align-items: baseline; gap: var(--eifu-space-3);
	padding: var(--eifu-space-3); border-radius: var(--eifu-radius-sm); cursor: pointer;
}
.eifu-suggest__item:hover, .eifu-suggest__item.is-active { background: var(--eifu-neutral-100); }
.eifu-suggest__ref { font-weight: var(--eifu-fw-bold); color: var(--eifu-neutral-700); }
.eifu-suggest__group { font-size: var(--eifu-fs-sm); color: var(--eifu-color-text-muted); }

/* ---------- Results header ---------- */
.eifu-result-head { display: flex; align-items: center; gap: var(--eifu-space-4); flex-wrap: wrap; }
.eifu-result-head h1 { margin: 0; font-size: 1.375rem; line-height: 1.3; }
.eifu-results { margin-top: var(--eifu-space-2); }
.eifu-results .eifu-banner { margin-bottom: var(--eifu-space-5); }
.eifu-tabpanel { margin-top: var(--eifu-space-2); }

/* ---------- No results ---------- */
.eifu-noresult__ref { color: var(--eifu-color-primary); }
.eifu-noresult__actions { display: flex; gap: var(--eifu-space-3); flex-wrap: wrap; margin-top: var(--eifu-space-5); }

/* ---------- HCP gate ---------- */
.eifu-gate { max-width: 640px; margin-inline: auto; text-align: center; }
.eifu-gate h1 { text-transform: uppercase; }
.eifu-gate__form { display: flex; gap: var(--eifu-space-3); justify-content: center; flex-wrap: wrap; margin: var(--eifu-space-5) 0; }

/* ---------- Print request form ---------- */
.eifu-form__section { border: 0; border-top: 1px solid var(--eifu-color-border); margin: 0 0 var(--eifu-space-5); padding: var(--eifu-space-5) 0 0; }
.eifu-form__section legend { font-weight: var(--eifu-fw-bold); color: var(--eifu-color-heading); padding: 0; }
.eifu-form__grid { display: grid; grid-template-columns: 1fr; gap: var(--eifu-space-4); margin-top: var(--eifu-space-4); }
.eifu-form__field { margin: 0; }
.eifu-req { color: var(--eifu-brand-700); }
.eifu-form__consent { display: block; margin-bottom: var(--eifu-space-4); font-size: var(--eifu-fs-sm); }
.eifu-form__consent label { display: flex; gap: var(--eifu-space-2); align-items: flex-start; }
.eifu-form__required-note { font-size: var(--eifu-fs-sm); color: var(--eifu-color-text-muted); }
.eifu-form__actions { display: flex; gap: var(--eifu-space-3); flex-wrap: wrap; }
.eifu-formnotice { border-radius: var(--eifu-radius); padding: var(--eifu-space-4); margin-bottom: var(--eifu-space-5); }
.eifu-formnotice--error { background: #fde3ec; color: var(--eifu-brand-700); }

/* ---------- Confirmation summary ---------- */
.eifu-confirm__heading { font-size: var(--eifu-fs-lg); margin-top: var(--eifu-space-6); }
.eifu-summary { margin: 0; }
.eifu-summary__row { display: grid; grid-template-columns: 1fr; gap: 0; padding: var(--eifu-space-3) 0; border-bottom: 1px solid var(--eifu-color-border); }
.eifu-summary__row dt { font-size: var(--eifu-fs-sm); color: var(--eifu-color-text-muted); margin: 0; }
.eifu-summary__row dd { margin: 0; font-weight: var(--eifu-fw-medium); }

@media (min-width: 768px) {
	.eifu-form__grid { grid-template-columns: 1fr 1fr; }
	.eifu-form__field { grid-column: 1 / -1; }
	.eifu-form__field--half { grid-column: auto; }
	.eifu-summary__row { grid-template-columns: 220px 1fr; }
}

/* ---------- Error / maintenance ---------- */
.eifu-error { max-width: 640px; margin-inline: auto; text-align: center; }
.eifu-error__code { font-size: 4rem; font-weight: var(--eifu-fw-bold); color: var(--eifu-color-primary); line-height: 1; margin: 0 0 var(--eifu-space-3); }

/* ---------- Cookie banner ---------- */
.eifu-cookie {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
	background: var(--eifu-neutral-700); color: #fff;
	box-shadow: 0 -4px 16px rgba(15,23,42,0.15);
}
.eifu-cookie__inner {
	max-width: var(--eifu-container); margin-inline: auto;
	padding: var(--eifu-space-4) var(--eifu-container-pad);
	display: flex; gap: var(--eifu-space-4); align-items: center; flex-wrap: wrap; justify-content: space-between;
}
.eifu-cookie__text { margin: 0; font-size: var(--eifu-fs-sm); max-width: 70ch; }
.eifu-cookie__text a { color: #fff; text-decoration: underline; }
.eifu-cookie__actions { display: flex; gap: var(--eifu-space-3); flex-wrap: wrap; }
.eifu-cookie .eifu-btn--secondary { background: transparent; color: #fff; border-color: rgba(255,255,255,0.4); }

/* ---------- Responsive ---------- */
@media (min-width: 768px) {
	.eifu-main { padding-block: var(--eifu-space-7); }
	.eifu-card { padding: var(--eifu-space-7); }
	.eifu-search { flex-direction: row; align-items: stretch; }
	.eifu-search__submit { white-space: nowrap; }
	.eifu-error__code { font-size: 6rem; }
}
