/* ==========================================================================
   Design Tokens
   ========================================================================== */
:root {
	--color-text: #333333;
	--color-text-muted: #666666;
	--color-text-subtle: #a8a8a8;
	--color-bg: #ffffff;
	--color-bg-navbar: #ffffff;
	--color-bg-footer: #f7f7f7;
	--color-bg-section: #ffffff;
	--color-divider: #ededed;
	--color-divider-alt: #d9d9d9;
	--color-divider-sm: #e8e8e8;
	--color-active-bar: #0055A4;

	--font-body: 'Inter', system-ui, sans-serif;
	--font-mono: 'Geist Mono', 'Courier New', monospace;
	--font-logo: 'Roboto', sans-serif;

	--text-xs: 12px;
	--text-sm: 14px;
	--text-base: 16px;
	--text-lg: 18px;
	--text-xl: 20px;
	--text-2xl: 32px;

	--weight-regular: 400;
	--weight-medium: 500;
	--weight-semibold: 600;
	--weight-extrabold: 800;

	--container-width: 1480px;
	--nav-width: 1400px;
	--container-padding: 60px;

	--navbar-height: 64px;
	--hmenu-height: 40px;
	/* Actual rendered header height */
	--header-height: 126px;

	--radius-card: 0px;
	--shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06);

	--gap-cards: 60px;
}

/* ==========================================================================
   Reset & Base
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: 16px;
	scroll-behavior: smooth;
	/* Offset for fixed header + 16px content gap + sticky breadcrumb (~40px) */
	scroll-padding-top: calc(var(--header-height) + 16px + 72px);
}

body {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: var(--weight-regular);
	line-height: 1.6;
	color: var(--color-text);
	background: var(--color-bg);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

ul {
	list-style: none;
}

button {
	font-family: inherit;
	cursor: pointer;
	border: none;
	background: none;
}

/* ==========================================================================
   Site Layout
   ========================================================================== */
.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	/* Match actual header height. */
	padding-top: var(--header-height);
}


.site-main {
	flex: 1;
	margin-top: 16px;
}

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

/* ==========================================================================
   Navbar (Top Bar)
   ========================================================================== */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
	background: var(--color-bg-navbar);
	height: var(--header-height);
	box-shadow: 0 16px 0 var(--color-bg);
}

.admin-bar .site-header {
	top: 32px;
}

/* Adjust sticky sidebars and scroll offset when admin bar is visible */
.admin-bar html {
	scroll-padding-top: calc(var(--header-height) + 32px + 16px + 72px);
}

.admin-bar .interior-sidebar,
.admin-bar .interior-toc {
	top: calc(var(--header-height) + 32px + 16px);
	max-height: calc(100vh - var(--header-height) - 32px - 48px);
}

.admin-bar .session-publication {
	scroll-margin-top: calc(var(--header-height) + 32px + 16px + 72px);
}


@media screen and (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}

	.admin-bar .site {
		padding-top: calc(var(--header-height) + 46px);
	}
}

.navbar {
	background: var(--color-bg-navbar);
	padding-top: 16px;
	padding-bottom: 10px;
}

.navbar__inner {
	max-width: calc(var(--nav-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 0 var(--container-padding);
	height: var(--navbar-height);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

/* Logo */
.navbar__logo-link {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}

.navbar__logo-img {
	display: block;
	height: auto;
	width: 360px;
	object-fit: contain;
}


/* Search — centered middle element */
.navbar__search-form {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}

.navbar__search-wrap {
	position: relative;
	width: 100%;
	max-width: 500px;
	min-width: 150px;
}

.navbar__search-input {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-divider);
	border-radius: 10px;
	padding: 6px 32px 6px 16px;
	width: 100%;
	outline: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.navbar__search-input:focus {
	border-color: var(--color-divider-alt);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.navbar__search-input::placeholder {
	color: var(--color-text-subtle);
}

.navbar__search-icon {
	position: absolute;
	right: 10px;
	left: auto;
	top: 50%;
	transform: translateY(-50%);
	width: 14px;
	height: 14px;
	color: var(--color-text-subtle);
	pointer-events: none;
}

/* Actions */
.navbar__actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}

.navbar__lang {
	position: relative;
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text-muted);
}

.navbar__lang-current {
	display: flex;
	align-items: center;
	gap: 4px;
	cursor: pointer;
	padding: 4px 8px;
}

.navbar__lang-globe {
	width: 18px;
	height: 18px;
	color: var(--color-text-muted);
	flex-shrink: 0;
}

.navbar__lang-chevron {
	display: none;
}

.navbar__auth {
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: #ffffff;
	background: #000000;
	padding: 7px 18px;
	border: none;
	border-radius: 24px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: background 0.15s, box-shadow 0.15s;
}

.navbar__auth:hover {
	background: #222222;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.1);
	text-decoration: none;
}

/* ==========================================================================
   Horizontal Menu (Primary Navigation)
   ========================================================================== */
.horizontal-menu {
	background: var(--color-bg-navbar);
	padding-top: 10px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--color-divider);
}

.horizontal-menu__inner {
	max-width: calc(var(--nav-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 0 var(--container-padding);
}

.horizontal-menu__list {
	display: flex;
	align-items: stretch;
	gap: 32px;
	height: var(--hmenu-height);
}

.horizontal-menu__list li {
	position: relative;
}

.horizontal-menu__list > li:first-child > a {
	padding-left: 0;
}

.horizontal-menu__list li a {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 22px;
	font-size: var(--text-sm);
	font-weight: var(--weight-regular);
	color: var(--color-text-muted);
	white-space: nowrap;
	transition: color 0.15s;
}

.horizontal-menu__list li a:hover,
.horizontal-menu__list li.current-menu-item>a,
.horizontal-menu__list li.current-menu-ancestor>a {
	color: var(--color-text);
}

.horizontal-menu__list > li.current-menu-item::after,
.horizontal-menu__list > li.current-menu-ancestor::after {
	content: '';
	position: absolute;
	bottom: -10px;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--color-active-bar);
}

/* Dropdown */
.horizontal-menu__list li:hover>ul {
	display: block;
}

.horizontal-menu__list ul {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 200px;
	background: var(--color-bg);
	border: 1px solid var(--color-divider);
	border-radius: 8px;
	padding: 4px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
	z-index: 200;
}

.horizontal-menu__list ul li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	height: auto;
	padding: 10px 16px;
	font-size: var(--text-sm);
	border-radius: 6px;
	transition: background 0.15s, color 0.15s;
}

.menu-ext-icon {
	width: 13px;
	height: 13px;
	flex-shrink: 0;
	opacity: 0.45;
}

.horizontal-menu__list ul li a:hover {
	background: #f4f6f8;
	color: #0055A4;
}

.horizontal-menu__list ul .current-menu-item > a,
.horizontal-menu__list ul .current-menu-item > a:hover {
	background: #f4f6f8;
	color: #004990;
}

/* Mobile toggle (hidden on desktop, shown in navbar on mobile) */
.menu-toggle {
	display: none;
	align-items: center;
	gap: 8px;
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text-muted);
	padding: 8px 12px;
	border-radius: 8px;
	flex-shrink: 0;
	transition: background 0.15s;
}

@media (hover: hover) {
	.menu-toggle:hover {
		background: #f4f6f8;
	}
}

/* Mobile nav drawer */
.mobile-nav {
	display: none;
	background: var(--color-bg-navbar);
	overflow-y: auto;
	max-height: calc(100vh - 90px);
	border-top: 1px solid var(--color-divider);
}

.mobile-nav.is-open {
	display: block;
}

.mobile-nav__list {
	padding: 0;
}

.mobile-nav__list li {
	position: relative;
	border-bottom: 1px solid var(--color-divider);
}

.mobile-nav__list li a {
	display: flex;
	align-items: center;
	height: 48px;
	padding: 0 20px;
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text);
	transition: background 0.15s;
}

@media (hover: hover) {
	.mobile-nav__list li a:hover {
		background: #f4f6f8;
	}
}

.mobile-nav__list li.current-menu-item > a,
.mobile-nav__list li.current-menu-ancestor > a {
	color: #004b8b;
}

/* Parent items: link + expand button side by side */
.mobile-nav__list .menu-item-has-children {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

.mobile-nav__list .menu-item-has-children > a {
	flex: 1;
	min-width: 0;
	padding-right: 20px; /* cancel desktop padding-right override */
}

/* Suppress the global ::after CSS arrow — the JS button handles expand indication */
.mobile-nav__list .menu-item-has-children > a::after {
	display: none;
}

.mobile-nav__expand {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex-shrink: 0;
	border-left: 1px solid var(--color-divider);
	color: var(--color-text-muted);
	background: none;
	cursor: pointer;
	transition: color 0.15s;
}

.mobile-nav__expand svg {
	transition: transform 0.2s;
}

.mobile-nav__list .menu-item-has-children.is-open > .mobile-nav__expand svg {
	transform: rotate(180deg);
}

/* Sub-menus: collapsed by default, expanded on .is-open */
.mobile-nav__list .sub-menu {
	display: none;
	flex: 0 0 100%;
	background: #f9f9f9;
}

.mobile-nav__list .menu-item-has-children.is-open > .sub-menu {
	display: block;
}

.mobile-nav__list .sub-menu li {
	border-bottom: none;
}

.mobile-nav__list .sub-menu li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	height: 44px;
	padding-left: 36px;
	padding-right: 16px;
	font-size: var(--text-xs);
}

.mobile-nav__extras {
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.mobile-nav__search .navbar__search-wrap {
	max-width: 100%;
}

.mobile-nav__bottom {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
}

/* Lang dropdown opens upward inside the mobile drawer to avoid overflow clipping */
.mobile-nav .lang-dropdown {
	top: auto;
	bottom: calc(100% + 4px);
	margin-top: 0;
}

/* Header rule */
.site-header-rule {
	border: none;
	border-top: 1px solid var(--color-divider);
	max-width: var(--nav-width);
	width: calc(100% - var(--container-padding) * 2);
	margin: 0 auto;
	display: block;
}

/* ==========================================================================
   Hero Section
   ========================================================================== */
.hero {
	position: relative;
	background-color: var(--color-bg);
	background-image: url('../images/pattern.png');
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: 100% auto;
	overflow: hidden;
}

.hero__bg-pattern {
	display: none;
}

.hero__inner {
	max-width: calc(var(--nav-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 60px var(--container-padding);
	display: flex;
	align-items: flex-start;
	gap: var(--gap-cards);
}

.hero__content {
	flex: 1;
	padding-top: 8px;
}

.hero__breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 20px;
}

.hero__breadcrumb-sep {
	opacity: 0.5;
}

.hero__title {
	font-size: var(--text-2xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.25;
	margin-bottom: 20px;
	max-width: 800px;
}

.hero__body {
	font-size: var(--text-base);
	font-weight: var(--weight-regular);
	color: var(--color-text);
	line-height: 1.7;
	max-width: 800px;
}

/* Vanity / Stats box */
.hero__vanity {
	flex-shrink: 0;
	width: 340px;
	background: var(--color-bg);
	border: 1px solid var(--color-divider-sm);
	border-radius: 20px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
	padding: 24px;
}

.hero__vanity-label {
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 16px;
}

.hero__stats {
	display: flex;
	flex-direction: column;
}

.hero__stat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 0;
	border-bottom: 1px solid var(--color-divider-sm);
}

/* Ensures horizontal line renders after Centre Universitare as requested */
.hero__stat:last-child {
	border-bottom: 1px solid var(--color-divider-sm);
}

.hero__stat-value {
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
}

.hero__stat-label {
	font-size: var(--text-sm);
	font-weight: var(--weight-regular);
	color: var(--color-text-muted);
	text-align: right;
}

.hero__vanity-footer {
	margin-top: 16px;
	font-size: var(--text-sm);
	font-weight: var(--weight-regular);
	color: var(--color-text-subtle);
}

/* ==========================================================================
   Sections (shared)
   ========================================================================== */

.section__inner {
	max-width: calc(var(--nav-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 60px var(--container-padding);
	border-bottom: 1px solid var(--color-divider-alt);
}

#primary>.section:last-child .section__inner {
	border-bottom: none;
}

.section--alt {
	background: var(--color-bg-section);
}

.section__title {
	font-size: var(--text-2xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	margin-bottom: 40px;
}

.section__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap-cards);
}

/* ==========================================================================
   Service Cards
   ========================================================================== */
.service-card {
	background: var(--color-bg);
	border: 1px solid var(--color-divider);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	/* Shadow on all sides */
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.service-card__image {
	aspect-ratio: 453 / 278;
	background: #e0e0e0;
	overflow: hidden;
}

.service-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.service-card__body {
	flex: 1;
	padding: 24px;
	display: flex;
	flex-direction: column;
}

.service-card__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.service-card__title {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.3;
}

.service-card__desc {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: 1.6;
}

.service-card__pre-title {
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-subtle);
	text-transform: lowercase;
	letter-spacing: 0.05em;
	margin-bottom: -8px;
}

.service-card__btn {
	margin-top: 24px;
	width: 100%;
	justify-content: center;
	text-align: center;
	display: flex;
	border-radius: 8px;
}

/* ==========================================================================
   Partners Section
   ========================================================================== */
.partners__logos {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 48px;
}

.partners__logo img {
	max-height: 64px;
	width: auto;
	filter: grayscale(1);
	opacity: 0.7;
	transition: opacity 0.2s, filter 0.2s;
}

@media (hover: hover) {
	.partners__logo:hover img {
		filter: grayscale(0);
		opacity: 1;
	}
}

/* ==========================================================================
   Publication Cards
   ========================================================================== */
.pub-card {
	background: transparent;
	padding: 24px 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pub-card__type {
	display: inline-block;
	align-self: flex-start;
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-muted);
	background: #f0f0f0;
	border-radius: 8px;
	padding: 4px 12px;
	text-transform: capitalize;
	letter-spacing: 0.02em;
}

.pub-card__title {
	font-size: var(--text-base);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.4;
	margin: 0;
}

.pub-card__desc {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: 1.6;
	margin: 0;
}

.pub-card__date {
	font-size: var(--text-xs);
	color: var(--color-text-subtle);
	margin-top: 2px;
}

.pub-card__btn {
	display: block;
	width: 100%;
	margin-top: auto;
	padding: 10px 20px;
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text);
	background: #ffffff;
	border: 1px solid var(--color-text);
	border-radius: 10px;
	text-decoration: none;
	text-align: center;
	box-sizing: border-box;
	transition: background 0.15s, color 0.15s;
}

@media (hover: hover) {
	.pub-card__btn:hover {
		background: var(--color-text);
		color: #ffffff;
	}
}

/* ==========================================================================
   Single Publication — Attachments
   ========================================================================== */
.pub-attachments {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--color-divider-alt);
}

.pub-attachments__title {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	margin-bottom: 20px;
}

.pub-attachments__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.pub-attachments__item {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 16px;
	border: 1px solid var(--color-divider);
	border-radius: 8px;
	background: var(--color-bg);
}

.pub-att__icon {
	width: 48px;
	height: 48px;
	flex-shrink: 0;
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

.pub-att__icon--image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pub-att__icon--file {
	background: #f3f4f6;
	color: var(--color-text-muted);
}

.pub-att__icon--file svg {
	width: 24px;
	height: 24px;
}

.pub-att__ext {
	position: absolute;
	bottom: 3px;
	left: 0;
	right: 0;
	text-align: center;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--color-text-subtle);
	line-height: 1;
}

.pub-att__name {
	flex: 1;
	font-size: var(--text-sm);
	color: var(--color-text);
	word-break: break-word;
}

.pub-att__open {
	flex-shrink: 0;
	font-size: var(--text-sm);
	padding: 8px 16px;
}

/* ==========================================================================
   FAQ / Accordion
   ========================================================================== */
.faq__item {
	position: relative;
	border-bottom: 1px solid var(--color-divider-alt);
	border-left: 3px solid transparent;
}

.faq__item:last-child {
	border-bottom: none;
}

.faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 12px;
	font-size: var(--text-sm);
	font-weight: var(--weight-regular);
	color: var(--color-text);
	cursor: pointer;
	width: 100%;
	text-align: left;
	gap: 16px;
	background: transparent;
	border: none;
}

.faq__item.is-open {
	background: transparent;
}

.faq__item.is-open::before {
	content: "";
	position: absolute;
	left: -3px;
	top: 10px;
	bottom: 10px;
	width: 3px;
	background-color: #0055A4;
}

.faq__item.is-open .faq__question {
	color: #0055A4;
	font-weight: var(--weight-medium);
}

@media (hover: hover) {
	.faq__question:hover {
		color: var(--color-text-muted);
	}
}

.faq__icon {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	line-height: 18px;
	text-align: center;
	font-size: 20px;
	font-weight: bold;
}

.faq__icon::after {
	content: '+';
}

.faq__item.is-open .faq__icon::after {
	content: '-';
}

.faq__answer {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	padding: 0 12px;
	transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease;
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: 1.7;
}

.faq__item.is-open .faq__answer {
	max-height: 600px;
	opacity: 1;
	padding: 0 12px 16px;
}

/* ==========================================================================
   Footer
   ========================================================================== */
hr.section-rule {
	display: block;
	border: none;
	border-top: 1px solid var(--color-divider-alt);
	max-width: calc(var(--nav-width) + var(--container-padding) * 2);
	margin: 48px auto 0;
}

.site-footer {
	background: var(--color-bg-footer);
}

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

.footer__main {
	padding: 40px 0;
	display: grid;
	grid-template-columns: auto auto auto auto;
	align-items: start;
	justify-content: center;
	gap: 48px;
}

/* Logo */
.footer__logo-link {
	display: flex;
	align-items: center;
	gap: 12px;
}

.footer__logo-img {
	display: block;
	height: 36px;
	width: auto;
	object-fit: contain;
}

/* Nav in columns */
.footer__nav-list {
	columns: 2;
	column-gap: 16px;
}

.footer__nav-list li {
	break-inside: avoid;
	padding: 0px 0;
}

.footer__nav-list a {
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text-muted);
}

@media (hover: hover) {
	.footer__nav-list a:hover {
		color: var(--color-text);
	}
}

/* Mandatory sub-logos */
.footer__sublogos {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 40px;
}

.footer__sublogo-img {
	display: block;
	max-height: 48px;
	max-width: 100%;
	width: auto;
	object-fit: contain;
}

/* Language button */
.footer__lang {
	position: relative;
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-muted);
	align-self: start;
	width: fit-content;
}

.footer__lang-current {
	display: flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	padding: 6px 12px;
	background: #ffffff;
	border: 1px solid var(--color-divider);
	border-radius: 12px;
	font-size: var(--text-sm);
}

.footer__lang-globe {
	width: 16px;
	height: 16px;
	color: var(--color-text-muted);
	flex-shrink: 0;
}

.footer__lang-chevron {
	display: none;
}

.footer__lang-arrows {
	width: 10px;
	height: 16px;
	flex-shrink: 0;
	color: var(--color-text-muted);
	margin-left: 2px;
}

.footer__bottom {
	padding: 16px 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
}

.footer__copyright {
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text-muted);
}

/* ==========================================================================
   Breadcrumb
   ========================================================================== */
.breadcrumb {
	padding: 0 0 8px;
	margin-bottom: 12px;
	background: transparent;
}

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

.breadcrumb__list {
	display: flex;
	align-items: center;
	gap: 0;
	flex-wrap: wrap;
}

.breadcrumb__item {
	display: flex;
	align-items: center;
	gap: 0;
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-subtle);
}

.breadcrumb__item a {
	color: var(--color-text-subtle);
}

@media (hover: hover) {
	.breadcrumb__item a:hover {
		color: #004b8b;
	}
}

.breadcrumb__item.is-current {
	color: #006FD6;
}

.breadcrumb__sep {
	color: var(--color-divider-alt);
	font-size: 10px;
	padding: 0 8px;
}

/* Sticky breadcrumb inside the interior-content center column.
   top = header + site-main margin + sidebar ::before offset (32px).
   This places the breadcrumb text at 174px — the same level as the
   sidebar and TOC labels — and guarantees the element is already
   below its sticky threshold at page load, so it never scrolls. */
.interior-content .breadcrumb {
	position: sticky;
	top: calc(var(--header-height) + 16px + 32px);
	z-index: 10;
	background: var(--color-bg);
}

/* Fill the 32px gap between the header shadow and the breadcrumb so
   content scrolling upward is masked before it reaches the breadcrumb. */
.interior-content .breadcrumb::before {
	content: "";
	position: absolute;
	top: -32px;
	left: 0;
	right: 0;
	height: 32px;
	background: var(--color-bg);
}

.admin-bar .interior-content .breadcrumb {
	top: calc(var(--header-height) + 32px + 16px + 32px);
}

/* Gap between sticky breadcrumb and the first content element.
   margin-top replaces the removed breadcrumb::before (32px) so the
   content starts at the same document position as before. */
.interior-content__scroll {
	margin-top: 16px;
	padding-top: 16px;
}

/* ==========================================================================
   Page Header (interior pages)
   ========================================================================== */
.page-hero {
	background: var(--color-bg);
	border-bottom: 1px solid var(--color-divider);
	padding: 40px 0;
}

.page-hero__inner {
	max-width: calc(var(--container-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 0 var(--container-padding);
}

.page-hero__title {
	font-size: var(--text-2xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.25;
	margin-bottom: 12px;
}

.page-hero__desc {
	font-size: var(--text-base);
	color: var(--color-text-muted);
	max-width: 680px;
	line-height: 1.7;
}

/* ==========================================================================
   Interior Page Layout
   ========================================================================== */
.page-layout {
	max-width: calc(var(--container-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 48px var(--container-padding);
}

.page-layout--with-sidebar {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 60px;
	align-items: start;
}

/* Entry content (page.php / single.php) */
.entry-header {
	margin-bottom: 32px;
}

.entry-title {
	font-size: var(--text-2xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.25;
}

.entry-meta {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 10px;
	font-size: var(--text-sm);
	color: var(--color-text-subtle);
}

.entry-meta a {
	color: var(--color-text-muted);
}

@media (hover: hover) {
	.entry-meta a:hover {
		color: var(--color-text);
	}
}

.entry-category {
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 16px;
}

.post-thumbnail {
	margin-bottom: 32px;
	aspect-ratio: 16/7;
	overflow: hidden;
	background: var(--color-bg-section);
}

.post-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.entry-content {
	font-size: var(--text-base);
	line-height: 1.75;
	color: var(--color-text);
}

.entry-content>*+* {
	margin-top: 1.25em;
}

.entry-content h2 {
	font-size: 22px;
	font-weight: var(--weight-semibold);
	margin-top: 2em;
	scroll-margin-top: calc(var(--header-height) + 16px + 72px);
}

.entry-content h3 {
	font-size: 18px;
	font-weight: var(--weight-semibold);
	margin-top: 1.75em;
	scroll-margin-top: calc(var(--header-height) + 16px + 72px);
}

.entry-content ul {
	padding-left: 1.5em;
	list-style: disc;
}

.entry-content ol {
	padding-left: 1.5em;
	list-style: decimal;
}

.entry-content li {
	margin-top: 0.4em;
}

.entry-content a {
	color: #004b8b;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: rgba(0, 75, 139, 0.4);
	transition: text-decoration-color 0.15s;
}

@media (hover: hover) {
	.entry-content a:hover {
		text-decoration-color: #004b8b;
	}
}

.entry-content blockquote {
	border-left: 3px solid var(--color-divider-alt);
	padding-left: 20px;
	color: var(--color-text-muted);
	font-style: italic;
}

.entry-footer {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid var(--color-divider);
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	font-size: var(--text-sm);
	color: var(--color-text-subtle);
}

.entry-tag {
	display: inline-block;
	padding: 2px 10px;
	background: var(--color-bg-section);
	border: 1px solid var(--color-divider);
	font-size: var(--text-xs);
	color: var(--color-text-muted);
}

/* Post navigation */
.post-navigation {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--color-divider);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.nav-previous,
.nav-next {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.nav-next {
	text-align: right;
}

.nav-label {
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.nav-title {
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text);
}

/* ==========================================================================
   Archive / Listing Pages
   ========================================================================== */
.archive-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap-cards);
}

.archive-pagination {
	margin-top: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text-muted);
	border: 1px solid var(--color-divider);
}

.page-numbers.current {
	background: var(--color-text);
	color: var(--color-bg);
	border-color: var(--color-text);
}
@media (hover: hover) {
	.page-numbers:hover {
		background: var(--color-text);
		color: var(--color-bg);
		border-color: var(--color-text);
	}
}

.page-numbers.dots {
	border: none;
	background: none;
}

/* ==========================================================================
   Sidebar
   ========================================================================== */
.sidebar {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.widget {
	border: 1px solid var(--color-divider);
	padding: 20px;
}

.widget-title {
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--color-divider);
}

.widget ul li {
	padding: 8px 0;
	border-bottom: 1px solid var(--color-divider);
	font-size: var(--text-sm);
	color: var(--color-text-muted);
}

.widget ul li:last-child {
	border-bottom: none;
}

.widget ul li a {
	color: var(--color-text-muted);
}

@media (hover: hover) {
	.widget ul li a:hover {
		color: var(--color-text);
	}
}

/* ==========================================================================
   Search Results
   ========================================================================== */
.search-header {
	background: var(--color-bg-navbar);
	border-bottom: 1px solid var(--color-divider);
	padding: 32px 0;
}

.search-header__inner {
	max-width: calc(var(--container-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 0 var(--container-padding);
}

.search-header__title {
	font-size: var(--text-2xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	margin-bottom: 20px;
}

.search-form {
	display: flex;
	gap: 0;
	max-width: 560px;
}

.search-form .search-field {
	flex: 1;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text);
	border: 1px solid var(--color-divider-alt);
	border-right: none;
	padding: 10px 16px;
	outline: none;
}

.search-form .search-submit {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-bg);
	background: var(--color-text);
	border: 1px solid var(--color-text);
	padding: 10px 20px;
	cursor: pointer;
}

.search-result-count {
	font-size: var(--text-sm);
	color: var(--color-text-subtle);
	margin-top: 8px;
}

/* ==========================================================================
   404
   ========================================================================== */
.error-404 {
	padding: 80px var(--container-padding);
	max-width: calc(var(--container-width) + var(--container-padding) * 2);
	margin: 0 auto;
	text-align: center;
}

.error-404__code {
	font-size: 120px;
	font-weight: var(--weight-semibold);
	color: var(--color-divider-alt);
	line-height: 1;
	margin-bottom: 16px;
}

.error-404__title {
	font-size: var(--text-2xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	margin-bottom: 12px;
}

.error-404__desc {
	font-size: var(--text-base);
	color: var(--color-text-muted);
	margin-bottom: 32px;
}

.btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-bg);
	background: var(--color-text);
	padding: 10px 24px;
	border: 1px solid var(--color-text);
	transition: background 0.15s;
}

@media (hover: hover) {
	.btn:hover {
		background: var(--color-text-muted);
		border-color: var(--color-text-muted);
	}
}

.btn--outline {
	color: var(--color-text);
	background: transparent;
}

@media (hover: hover) {
	.btn--outline:hover {
		background: var(--color-text);
		color: var(--color-bg);
	}
}

/* ==========================================================================
   Utilities
   ========================================================================== */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute;
	height: 1px;
	width: 1px;
	overflow: hidden;
	white-space: nowrap;
}

.skip-link:focus {
	clip: auto;
	height: auto;
	width: auto;
	background: #f1f1f1;
	padding: 0.5rem 1rem;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 999;
}

/* ==========================================================================
   Session publications list (single-candidati_session.php)
   ========================================================================== */
.session-publication {
	padding-bottom: 40px;
	margin-bottom: 40px;
	border-bottom: 1px solid var(--color-divider);
	/* Offset for fixed header + 32px content gap + sticky breadcrumb (~40px) */
	scroll-margin-top: calc(var(--header-height) + 16px + 72px);
}

.session-publication:last-child {
	padding-bottom: 0;
	margin-bottom: 0;
	border-bottom: none;
}

.session-pub__title {
	position: relative;
	padding-left: 14px;
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.3;
	margin: 0;
}

.session-pub__title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	bottom: 1px;
	width: 4px;
	background-color: #0055A4;
	border-radius: 2px;
}

.session-pub__body {
	font-size: var(--text-base);
	line-height: 1.75;
	color: var(--color-text);
}

/* ---- Attached Documents Box ---- */
.session-pub__documents {
	display: flex;
	border-radius: 12px;
	padding: 20px 24px;
	margin-top: 32px;
	gap: 14px;
	align-items: flex-start;
}

.session-pub__doc-icon {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	padding-top: 1px;
}

.session-pub__doc-icon img {
	display: block;
	width: 26px;
	height: 26px;
	object-fit: contain;
}

.session-pub__doc-icon::before {
	display: none;
}

.session-pub__doc-content {
	flex: 1;
}

.session-pub__doc-title {
	margin: 0 0 10px 0;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	color: #0055A4;
	letter-spacing: 0.08em;
}

.session-pub__doc-list {
	margin: 0;
	padding: 0 0 0 20px;
	list-style: disc;
}

.session-pub__doc-list li {
	margin-bottom: 8px;
}

.session-pub__doc-list li:last-child {
	margin-bottom: 0;
}

.session-pub__doc-list--alte {
	list-style: none;
	padding-left: 0;
}

.session-pub__doc-list--alte li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

.session-pub__doc-date {
	font-size: var(--text-xs);
	color: #999;
	white-space: nowrap;
	flex-shrink: 0;
}

.session-pub__doc-list a {
	color: #1e1e1e;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: rgba(0, 75, 139, 0.4);
	transition: text-decoration-color 0.15s;
}

@media (hover: hover) {
	.session-pub__doc-list a:hover {
		text-decoration-color: #1e1e1e;
	}
}

/* ==========================================================================
   Important Note (used in publication / page content)
   ========================================================================== */
.important-note {
	position: relative;
	border-radius: 12px;
	padding: 62px 20px 20px;
	margin: 24px 0;
}

/* Header row: badge-info icon (left) + title text + lightbulb icon (right) */
.important-note::before {
	content: 'IMPORTANT';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 48px;
	box-sizing: border-box;
	padding: 0 46px 0 44px;
	border-radius: 12px 12px 0 0;
	line-height: 48px;
	text-align: left;
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #0055A4;
	background-image: url('../images/badge-info.png'), url('../images/lightbulb.png');
	background-repeat: no-repeat, no-repeat;
	background-position: 14px 50%, calc(100% - 12px) 50%;
	background-size: 20px 20px, 30px 30px;
}

.important-note::after {
	display: none;
}

.important-note p,
.important-note p:last-child {
	margin: 0;
	font-size: var(--text-sm);
	line-height: 1.7;
	color: var(--color-text);
}

/* ==========================================================================
   Interior Page (Template: Interior Page)
   ========================================================================== */

/* 3-column grid — sidebar 1fr : content 3fr : toc 1fr */
.interior-wrap {
	display: grid;
	grid-template-columns: 1fr 3fr 1fr;
	gap: 48px;
	align-items: start;
	width: 100%;
	max-width: calc(var(--nav-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 0 var(--container-padding) 80px;
}

/* Visual top spacing for sticky columns without triggering box-model sticky bugs */
.interior-sidebar::before,
.interior-toc::before {
	content: "";
	display: block;
	height: 32px;
	flex-shrink: 0;
	width: 100%;
}

/* ---- Left: sessions sidebar ---- */
.interior-sidebar {
	display: flex;
	flex-direction: column;
	position: sticky;
	top: calc(var(--header-height) + 16px);
	max-height: calc(100vh - var(--header-height) - 48px);
	overflow-y: auto;
}

.interior-sidebar__label {
	flex-shrink: 0;
	display: block;
	font-size: var(--text-xs);
	font-weight: var(--weight-semibold);
	color: #a0a0a0;
	text-transform: none;
	letter-spacing: 0.06em;
	padding-bottom: 12px;
	margin-bottom: 12px;
	border-bottom: 1px solid var(--color-divider);
}

.interior-sidebar__scroll {
	overflow-y: auto;
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.sessions {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.session-btn {
	display: block;
	padding: 9px 12px;
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: #777;
	background: transparent;
	border: none;
	border-radius: 8px;
	text-align: left;
	line-height: 1.4;
	transition: background 0.15s, color 0.15s;
}

@media (hover: hover) {
	.session-btn:hover {
		color: #0055A4;
		background: #f0f5fb;
		text-decoration: none;
	}
}

.session-btn--active {
	background: #EBF1FE;
	color: #0055A4;
}

@media (hover: hover) {
	.session-btn--active:hover {
		background: #cfe0f5;
	}
}

.session-btn--hidden {
	display: none;
}

.sessions-more {
	display: block;
	width: 100%;
	margin-top: 8px;
	padding: 8px 12px;
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: #006FD6;
	text-align: left;
	background: transparent;
	border: none;
	cursor: pointer;
	transition: color 0.15s;
}

@media (hover: hover) {
	.sessions-more:hover {
		color: #003870;
		text-decoration: underline;
	}
}

.interior-sidebar__empty {
	font-size: var(--text-sm);
	color: var(--color-text-subtle);
	margin-top: 8px;
}

/* ---- Center: content ---- */
.interior-content__title {
	font-size: var(--text-2xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.25;
	margin-bottom: 32px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--color-divider);
}

.interior-content__body {
	font-size: var(--text-base);
	line-height: 1.75;
	color: var(--color-text);
}

/* ---- Right: table of contents ---- */
.interior-toc {
	display: flex;
	flex-direction: column;
	position: sticky;
	top: calc(var(--header-height) + 16px);
	max-height: calc(100vh - var(--header-height) - 48px);
	overflow-y: auto;
}

.interior-toc__label {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: var(--text-xs);
	font-weight: var(--weight-semibold);
	color: #a0a0a0;
	text-transform: none;
	letter-spacing: 0.06em;
	padding-bottom: 12px;
	margin-bottom: 4px;
}

.interior-toc__label::before {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	background: url('../images/toc.png') center / contain no-repeat;
	flex-shrink: 0;
}

.interior-toc__scroll {
	overflow-y: auto;
	flex: 1;
	min-height: 0;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
	padding-right: 8px;
}

.interior-toc__scroll::-webkit-scrollbar {
	width: 4px;
}

.interior-toc__scroll::-webkit-scrollbar-track {
	background: transparent;
}

.interior-toc__scroll::-webkit-scrollbar-thumb {
	background: rgba(0, 0, 0, 0.15);
	border-radius: 2px;
}

.interior-toc__scroll::-webkit-scrollbar-button {
	display: none;
}

.toc-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.toc-list__item {
	margin: 0;
}

.toc-list__item--h3 {
	padding-left: 12px;
}

.toc-list__link {
	display: block;
	position: relative;
	padding: 6px 0 6px 14px;
	font-size: var(--text-sm);
	font-weight: var(--weight-regular);
	color: #777;
	line-height: 1.4;
	transition: color 0.15s, padding-left 0.15s;
}

.toc-list__link::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
	border-left: 6px solid transparent;
	transition: border-left-color 0.15s;
}

@media (hover: hover) {
	.toc-list__link:hover {
		color: #004b8b;
		text-decoration: none;
		padding-left: 18px;
	}

	.toc-list__link:hover::before {
		border-left-color: #004b8b;
	}
}

.toc-list__link.is-active {
	color: var(--color-text);
	font-weight: var(--weight-semibold);
	padding-left: 18px;
}

.toc-list__link.is-active::before {
	border-left-color: #006FD6;
}

/* ---- Session Publications flex header ---- */
.session-pub__header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 32px;
	padding-bottom: 0;
	border-bottom: none;
}

.session-pub__header .session-pub__title {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.session-pub__date {
	font-size: var(--text-sm);
	color: #999;
	white-space: nowrap;
	margin-left: 16px;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

/* --- Tablet landscape --- */
@media (max-width: 1100px) {
	:root {
		--container-padding: 32px;
	}

	.hero__vanity {
		width: 280px;
	}

	.interior-wrap {
		grid-template-columns: 180px 1fr 160px;
		gap: 32px;
	}

	.interior-wrap--no-toc {
		grid-template-columns: 180px 1fr;
	}

	.interior-wrap--wide {
		grid-template-columns: 120px 1fr 120px;
	}

	.interior-wrap--policy {
		grid-template-columns: 3fr 1fr;
		column-gap: 48px;
	}
}

/* --- Footer: each item on its own row, centered --- */
@media (max-width: 1024px) {
	.footer__main {
		grid-template-columns: 1fr;
		justify-content: normal;
		justify-items: center;
		gap: 24px;
	}

	.footer__nav-list {
		text-align: center;
	}

	.footer__bottom {
		justify-content: center;
	}
}

/* --- Tablet portrait --- */
@media (max-width: 900px) {

	/* Content */
	.section__grid {
		grid-template-columns: 1fr 1fr;
	}

	.archive-grid {
		grid-template-columns: 1fr 1fr;
	}

	.hero__inner {
		flex-direction: column;
	}

	.hero__vanity {
		width: 100%;
	}

	.page-layout--with-sidebar {
		grid-template-columns: 1fr;
	}

	.post-navigation {
		grid-template-columns: 1fr;
	}

	.nav-next {
		text-align: left;
	}

	/* Interior page: stack columns, content first */
	.interior-wrap {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-top: 32px;
	}

	.interior-content {
		order: 1;
	}

	.interior-sidebar {
		order: 2;
	}

	.interior-toc {
		order: 3;
	}


	/* Reset sticky-column padding when stacked */
	.interior-sidebar,
	.interior-toc {
		padding-top: 0;
		position: static;
	}

	.interior-content .breadcrumb {
		position: static;
		padding-top: 0;
	}

	/* Mobile header: show hamburger, hide desktop nav elements */
	.site-header {
		height: auto;
	}

	.navbar__search-form,
	.navbar__actions {
		display: none;
	}

	.horizontal-menu,
	.site-header-rule {
		display: none;
	}

	.navbar__inner {
		height: var(--navbar-height);
		flex-wrap: nowrap;
	}

	.menu-toggle {
		display: flex;
		margin-left: auto;
	}

	/* navbar: padding-top(16) + inner(64) + padding-bottom(10) = 90px */
	.site {
		padding-top: 90px;
	}

	.admin-bar .site {
		padding-top: calc(90px + 32px);
	}

}

/* --- Mobile --- */
@media (max-width: 768px) {
	:root {
		--container-padding: 20px;
	}

	/* Admin bar on small screens is 46px tall */
	.admin-bar .site {
		padding-top: calc(90px + 46px);
	}

	/* Content grids */
	.section__grid {
		grid-template-columns: 1fr;
	}

	.archive-grid {
		grid-template-columns: 1fr;
	}

	.footer__sublogos {
		gap: 16px;
	}

	.footer__bottom {
		flex-direction: column;
		align-items: center;
	}
}

/* ==========================================================================
   FAQ block (reusable — homepage + interior)
   ========================================================================== */
.faq-block {
	margin-top: 48px;
}

.session-publication + .faq-block {
	margin-top: 24px;
}

.session-publication:has(+ .faq-block),
.session-publication:has(+ .curriculum-faq-divider + .faq-block),
.session-publication:has(+ .curriculum-faq-divider) {
	padding-bottom: 0;
	margin-bottom: 0;
	border-bottom: none;
}

.interior-content__scroll > .faq-block:first-child {
	margin-top: 0;
}

.curriculum-faq-divider + .faq-block,
.curriculum-faq-divider + .page-feedback {
	margin-top: 0;
}

.faq-block + .curriculum-faq-divider {
	margin-top: 32px;
}

.faq-block__title {
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	position: relative;
	padding-bottom: 16px;
	margin-bottom: 24px;
	color: var(--color-text);
}

/* Full-width grey underline */
.faq-block__title::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--color-divider);
}

/* Blue accent line — half the title text width, via the inner span */
.faq-block__title-text {
	display: inline-block;
	position: relative;
}

.faq-block__title-text::after {
	content: "";
	position: absolute;
	bottom: -16px;
	left: 0;
	width: 50%;
	height: 3px;
	background: #0055A4;
	border-radius: 2px;
}

/* On the homepage section__title is used as heading — hide the template-part's duplicate */
.section__inner .faq-block__title {
	display: none;
}

/* ==========================================================================
   Page Feedback widget
   ========================================================================== */
.page-feedback {
	margin-top: 48px;
	padding: 16px 24px;
	border: 1px solid var(--color-divider-alt);
	background: var(--color-bg-footer);
	border-radius: 12px;
}

.page-feedback__heading {
	font-size: var(--text-xs);
	font-weight: var(--weight-regular);
	color: var(--color-text-subtle);
	letter-spacing: 0.07em;
	margin-bottom: 10px;
}

.page-feedback__buttons {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.page-feedback__question {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
}

.page-feedback__buttons[hidden],
.page-feedback__form[hidden],
.page-feedback__thanks[hidden] {
	display: none;
}

.page-feedback__btn-group {
	display: flex;
	gap: 12px;
	flex-shrink: 0;
}

.page-feedback__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 72px;
	height: 32px;
	padding: 0 10px;
	background: var(--color-bg);
	border: 1px solid var(--color-divider-alt);
	border-radius: 6px;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text);
	cursor: pointer;
	transition: border-color 0.08s, border-width 0.08s, padding 0.08s;
}

.page-feedback__thumb-icon {
	width: 14px;
	height: 14px;
	object-fit: contain;
	flex-shrink: 0;
}

.page-feedback__thumb-icon--down {
	transform: rotate(0.5turn);
}

.page-feedback__btn:active {
	border: 2px solid #006FD6;
	padding: 0 9px;
}
@media (hover: hover) {
	.page-feedback__btn:hover {
		border: 2px solid #006FD6;
		padding: 0 9px;
	}
}

.page-feedback__form {
	text-align: left;
}

.page-feedback__divider {
	border: none;
	border-top: 1px solid var(--color-divider-alt);
	margin: 14px 0;
}

.page-feedback__form-label {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	margin-bottom: 14px;
	line-height: 1.5;
}

.page-feedback__improve {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	font-weight: var(--weight-semibold);
	margin-bottom: 14px;
}

.page-feedback__textarea {
	display: block;
	width: 50%;
	padding: 10px 12px;
	border: 1px solid var(--color-divider-alt);
	border-radius: 8px;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text);
	background: var(--color-bg);
	resize: vertical;
	margin-bottom: 14px;
}

.page-feedback__textarea:focus {
	outline: none;
	border-color: var(--color-text-muted);
}

.page-feedback__form-actions {
	display: flex;
}

.page-feedback__submit {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 7px 18px;
	border-radius: 24px;
	background: #000000;
	color: #ffffff;
	border: none;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	cursor: pointer;
	transition: background 0.15s, box-shadow 0.15s;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.08);
}

@media (hover: hover) {
	.page-feedback__submit:hover {
		background: #222222;
		box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.1);
	}
}

.page-feedback__plane-icon {
	width: 16px;
	height: 16px;
	object-fit: contain;
	filter: brightness(0) invert(1);
}

.page-feedback__thanks {
	font-size: var(--text-large);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	margin: 0;
}

/* ==========================================================================
   Legislation page header
   ========================================================================== */
.leg-page-header {
	margin-bottom: 24px;
}

.leg-page-title {
	position: relative;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding-left: 14px;
	margin: 0 0 16px;
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.25;
}

.leg-page-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	bottom: 1px;
	width: 4px;
	background-color: #0055A4;
	border-radius: 2px;
}

.leg-page-updated {
	font-size: var(--text-sm);
	font-weight: var(--weight-regular);
	color: var(--color-text-muted);
	white-space: nowrap;
	flex-shrink: 0;
}

.leg-page-desc {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: 1.6;
	padding-bottom: 10px;
	padding-top: 10px;
}

/* ==========================================================================
   Legislation table
   ========================================================================== */
.interior-wrap--no-toc {
	grid-template-columns: 1fr 3fr;
}

.interior-wrap--wide {
	grid-template-columns: 1fr 4fr 1fr;
}

/* Policy / curriculum pages: 2-column (content + toc), container centering handles left margin */
.interior-wrap--policy {
	grid-template-columns: 4fr 1fr;
	column-gap: 80px;
}

/* ==========================================================================
   Curriculum page
   ========================================================================== */

.curriculum-sections {
	display: flex;
	flex-direction: column;
}

.curriculum-section {
	padding-bottom: 40px;
	margin-bottom: 40px;
	border-bottom: 1px solid var(--color-divider);
}

.curriculum-section:last-child {
	padding-bottom: 0;
	margin-bottom: 0;
	border-bottom: none;
}

.curriculum-section__header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 8px;
}

.curriculum-section__title {
	position: relative;
	padding-left: 14px;
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.3;
	margin: 0 0 12px;
}

.curriculum-section__title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	bottom: 1px;
	width: 4px;
	background-color: #0055A4;
	border-radius: 2px;
}

.curriculum-section__date {
	font-size: var(--text-sm);
	color: #999;
	white-space: nowrap;
	margin-left: 12px;
	flex-shrink: 0;
}

.curriculum-section__description {
	padding-left: 14px;
	font-size: var(--text-base);
	color: var(--color-text);
	margin: 0 0 28px;
	line-height: 1.65;
}
.curriculum-section__description p {
	margin: 0 0 0.85em;
}
.curriculum-section__description p:last-child {
	margin-bottom: 0;
}
.curriculum-section__description h2 {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	margin: 1.1em 0 0.4em;
	line-height: 1.3;
}
.curriculum-section__description h3 {
	font-size: var(--text-base);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	margin: 1em 0 0.3em;
	line-height: 1.3;
}
.curriculum-section__description h2:first-child,
.curriculum-section__description h3:first-child {
	margin-top: 0;
}
.curriculum-section__description strong { font-weight: var(--weight-semibold); }
.curriculum-section__description u { text-decoration: underline; text-underline-offset: 2px; }

.curriculum-doc-list {
	list-style: disc;
	padding-left: 28px;
	margin: 12px 0 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.curriculum-doc-item {
	color: var(--color-text);
}

.curriculum-doc-link {
	color: var(--color-text);
	text-decoration: underline;
	text-underline-offset: 2px;
	font-size: var(--text-base);
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.curriculum-doc-icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

.curriculum-faq-divider {
	border: none;
	border-top: 1px solid var(--color-divider);
	margin: 48px 0;
}

.curriculum-no-docs {
	color: var(--color-text-muted);
	font-size: var(--text-sm);
	padding-left: 14px;
}

.legislation-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 8px;
}

.legislation-row {
	border-bottom: 1px solid var(--color-divider);
}

.legislation-row:first-child {
	border-top: 1px solid var(--color-divider);
}

.legislation-thead-title {
	padding: 0 0 10px 16px;
	font-size: var(--text-xs);
	font-weight: var(--weight-semibold);
	color: var(--color-text-body);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	text-align: left;
	width: 25%;
}

.legislation-title-cell {
	padding: 16px 24px 16px 16px;
	width: 25%;
	vertical-align: top;
}

.legislation-desc-cell {
	padding: 16px 0 16px 16px;
	vertical-align: top;
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: 1.6;
}

.legislation-link {
	color: #006FD6;
	font-weight: var(--weight-semibold);
	font-size: var(--text-sm);
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: #006FD6;
	line-height: 1.4;
}

@media (hover: hover) {
	.legislation-link:hover {
		color: #005bb5;
		text-decoration-color: #005bb5;
	}
}

/* ==========================================================================
   Homepage — shared inner container
   ========================================================================== */
.hp-hero__inner,
.hp-services__inner,
.hp-banner__inner,
.hp-pubs__inner,
.hp-specialist__inner,
.hp-faq__inner,
.hp-partners__inner,
.hp-auth-banner__inner,
.hp-candidati-banner__inner {
	max-width: calc(var(--nav-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding-left: var(--container-padding);
	padding-right: var(--container-padding);
}

/* ==========================================================================
   Homepage — Hero
   ========================================================================== */
.hp-hero {
	background: var(--color-bg);
	overflow: hidden;
}

.hp-hero__inner {
	display: flex;
	position: relative;
	isolation: isolate;
	align-items: flex-start;
	gap: 60px;
	padding-top: 60px;
	padding-bottom: 60px;
}

.hp-hero__content {
	flex: 1;
	min-width: 0;
	padding-top: 8px;
}

.hp-hero__breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 24px;
}

.hp-hero__bc-sep {
	opacity: 1;
}

.hp-hero__title {
	font-size: 44px;
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.18;
	margin-bottom: 20px;
	max-width: 640px;
}

.hp-hero__body {
	font-size: var(--text-base);
	color: var(--color-text-muted);
	line-height: 1.7;
	max-width: 560px;
	margin-bottom: 32px;
}

.hp-hero__cta-logos {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.hp-hero__cta-logo {
	width: auto;
	height: 45px;
}

.hp-hero__bkg {
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	max-width: none;
	z-index: -1;
}

/* Decorative R.N.P.S. graphic */
.hp-hero__graphic {
	flex-shrink: 0;
	width: 380px;
	align-self: stretch;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hp-hero__graphic-img {
	width: 100%;
	height: auto;
	object-fit: contain;
}

/* ==========================================================================
   Homepage — Services grid
   ========================================================================== */

.hp-services__inner {
	padding-top: 60px;
	padding-bottom: 60px;
}

.hp-services__eyebrow {
	display: block;
	font-size: var(--text-xs);
	font-weight: var(--weight-regular);
	color: var(--color-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 20px;
}

.hp-services__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	align-items: start;
}

.svc-card {
	position: relative;
	background: #f7f7f7;
	border: 1px solid #f7f7f7;
	border-radius: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	min-height: 280px;
	transition: background 0.25s ease, border-color 0.25s ease;
}

.svc-card__link {
	display: block;
	padding: 24px 24px 0;
	text-decoration: none;
	color: var(--color-text);
}

.svc-card__title {
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	line-height: 1.3;
}

/* Submenu label + list (shown on hover) */
.svc-card__menu-label {
	display: block;
	padding: 0 24px;
	font-size: var(--text-xs);
	font-weight: var(--weight-semibold);
	color: #0055A4;
	letter-spacing: 0.1em;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease;
}

@media (hover: hover) {
	.svc-card--has-menu:hover .svc-card__menu-label {
		max-height: 40px;
		opacity: 1;
		padding: 12px 24px 4px 24px;
	}
}

/* Touch/click open state */
.svc-card--has-menu.is-open .svc-card__menu-label {
	max-height: 40px;
	opacity: 1;
	padding: 12px 24px 4px 24px;
}

.svc-card__menu {
	list-style: none;
	margin: 0;
	padding: 0 24px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease;
}

@media (hover: hover) {
	.svc-card--has-menu:hover .svc-card__menu {
		max-height: 300px;
		opacity: 1;
		padding: 0px 24px 0;
	}
}

.svc-card--has-menu.is-open .svc-card__menu {
	max-height: 300px;
	opacity: 1;
	padding: 0 24px 0;
}

.svc-card__menu a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 6px 0;
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	text-decoration: none;
	border-bottom: 1px solid var(--color-divider);
	transition: color 0.12s;
}

.svc-card__ext-icon {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	opacity: 0.5;
}

.svc-card__menu a:last-child {
	border-bottom: none;
}

@media (hover: hover) {
	.svc-card__menu a:hover {
		color: var(--color-text);
	}
}

.svc-card__bottom {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	padding: 16px 24px 16px;
	margin-top: auto;
}

.svc-card__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.25s ease;
	margin-bottom: 10px;
}

.svc-card__arrow svg {
	width: 48px;
	height: 48px;
}

@media (hover: hover) {
	.svc-card:hover {
		background: #ffffff;
		border-color: var(--color-divider);
	}

	.svc-card:hover .svc-card__arrow {
		transform: rotate(-90deg);
	}
}

.svc-card__icon {
	margin-bottom: -10px;
}

.svc-card__icon img {
	display: block;
	width: 200px;
	height: 200px;
	object-fit: contain;
	transition: transform 0.25s ease;
}

@media (hover: hover) {
	.svc-card:hover .svc-card__icon img {
		transform: scale(0.9);
	}
}

/* ==========================================================================
   Homepage — Announcement banner
   ========================================================================== */
.hp-banner {
	padding-top: 60px;
	padding-bottom: 60px;
}

.hp-banner__label {
	display: block;
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 16px;
}

.hp-banner__box {
	position: relative;
	background: linear-gradient(90deg, #0067C7 0%, #0055A4 15%, #0055A4 100%);
	border-radius: 0;
	padding: 40px 50px 40px 30px;
	overflow: hidden;
}

.hp-banner__slider {
	width: 100%;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, black 20px);
	mask-image: linear-gradient(90deg, transparent 0%, black 20px);
}

.hp-banner__slides {
	display: flex;
	transition: transform 0.4s ease;
}

.hp-banner__slide {
	flex: 0 0 100%;
	width: 100%;
	min-width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.hp-banner__body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-left: 20px;
	padding-right: 320px;
	padding-bottom: 4px;
}

.hp-banner__img-bg {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 500px;
	background: linear-gradient(90deg, transparent 0%, #0055A4 45%);
	z-index: 1;
}

.hp-banner__img {
	position: absolute;
	top: 0;
	bottom: 32px;
	right: 70px;
	line-height: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	z-index: 2;
}


.hp-banner__img img {
	height: 180px;
	width: auto;
}

/* Slider Controls */
.hp-banner__controls {
	display: flex;
	gap: 16px;
}

.hp-banner__prev,
.hp-banner__next {
	background: transparent;
	border: none;
	color: #fff;
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: opacity 0.15s;
	padding: 0;
	opacity: 0.7;
}

@media (hover: hover) {
	.hp-banner__prev:hover,
	.hp-banner__next:hover {
		background: transparent;
		border: none;
		opacity: 1;
	}
}

.hp-banner__date {
	font-size: var(--text-sm);
	color: rgba(255, 255, 255, 0.6);
}

.hp-banner__attention {
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: rgba(255, 255, 255, 0.6);
}

.hp-banner__heading {
	font-size: var(--text-xl);
	color: #ffffff;
}

.hp-banner__btn {
	display: inline-block;
	align-self: flex-start;
	margin-top: 8px;
	padding: 5px 10px;
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	color: #ffffff;
	background: transparent;
	border: 1.5px solid #ffffff;
	border-radius: 100px;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s, color 0.15s;
}

@media (hover: hover) {
	.hp-banner__btn:hover {
		background: #ffffff;
		color: #1d5038;
	}
}

/* ==========================================================================
   Homepage — Publications with tab sidebar
   ========================================================================== */
.hp-pubs__inner {
	display: flex;
	gap: 0;
	align-items: flex-start;
	padding-top: 60px;
	padding-bottom: 60px;
}

.hp-pub-tabs {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 24px;
	border-bottom: none;
	margin-bottom: 0;
	background: #f4f4f4;
	border-radius: 0;
}

.hp-pub-tabs__btn {
	position: relative;
	display: block;
	width: 100%;
	padding: 10px 12px;
	text-align: left;
	background: none;
	border: none;
	font-family: var(--font-body);
	font-size: 1.125rem;
	font-weight: var(--weight-medium);
	color: #666;
	cursor: pointer;
	transition: color 0.12s;
	white-space: nowrap;
	padding-bottom: 12px;
	margin-bottom: 4px;
}

.hp-pub-tabs__btn::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 12px;
	width: 40px;
	height: 2px;
	background-color: transparent;
	transition: background-color 0.12s;
}

@media (hover: hover) {
	.hp-pub-tabs__btn:hover {
		color: #000;
	}
}

.hp-pub-tabs__text {
	display: inline-block;
	position: relative;
}

.hp-pub-tabs__btn--active {
	color: #000;
	font-weight: var(--weight-semibold);
}

.hp-pub-tabs__btn--active .hp-pub-tabs__text::after {
	content: "";
	position: absolute;
	bottom: -12px;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: var(--color-divider-alt);
}

.hp-pub-tabs__btn--active::after {
	background-color: #004b8b;
}

.hp-pub-panels {
	flex: 2;
	min-width: 0;
	padding-left: 48px;
}

.hp-pub-panel {
	display: none;
	flex-direction: column;
	gap: 0;
}

.hp-pub-panel--active {
	display: flex;
}

.hp-pub-card {
	padding: 20px 0;
	border-bottom: 1px solid var(--color-divider);
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 16px;
}

.hp-pub-card:first-child {
	border-top: 1px solid var(--color-divider);
}

.hp-pub-card__arrow {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	margin-top: 4px;
	opacity: 0.3;
	transition: opacity 0.25s ease;
}

.hp-pub-card__arrow svg {
	width: 100%;
	height: 100%;
}

@media (hover: hover) {
	.hp-pub-card:hover .hp-pub-card__arrow {
		opacity: 1;
	}
}

.hp-pub-card__content {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.hp-pub-card__date {
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: var(--color-text-subtle);
	letter-spacing: 0.04em;
	margin: 0 0 4px 0;
}

.hp-pub-card__title {
	font-size: var(--text-base);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.4;
	margin: 0 0 8px 0;
}

.hp-pub-card__desc {
	display: none; /* Hide excerpt as requested */
}

.hp-pub-card__link {
	display: inline-block;
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	color: #004b8b; /* blue text */
	text-decoration: none;
	border: none; /* no border */
	text-transform: none;
}

@media (hover: hover) {
	.hp-pub-card__link:hover {
		text-decoration: underline;
	}
}

.hp-pub-empty {
	font-size: var(--text-sm);
	color: var(--color-text-subtle);
	padding: 20px 0;
}

/* ==========================================================================
   Homepage — Specialist / Map
   ========================================================================== */
.hp-specialist {
	background: #ffffff;
}

.hp-specialist__inner {
	display: flex;
	align-items: center;
	gap: 60px;
	padding-top: 60px;
	padding-bottom: 60px;
}

.hp-specialist__map {
	flex-shrink: 0;
	width: 500px;
	display: block;
	text-decoration: none;
}

.hp-specialist__map-img {
	width: 100%;
	height: auto;
	display: block;
	background-color: #f3f4f6;
	border-radius: 64px 0 0 0;
	padding: 32px;
}

.hp-specialist__content {
	flex: 1;
	min-width: 0;
}

.hp-specialist__title {
	font-size: var(--text-2xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.25;
	margin-bottom: 16px;
}

.hp-specialist__desc {
	font-size: var(--text-base);
	color: #193662;
	line-height: 1.7;
	margin-bottom: 28px;
	width: 100%; /* span the container */
	max-width: none;
}

.hp-specialist__search {
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 480px;
	border: 1px solid var(--color-divider);
	border-radius: 10px;
	background: #fff;
	padding: 0 12px;
	margin-bottom: 16px;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.hp-specialist__search:focus-within {
	border-color: var(--color-divider-alt);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.hp-specialist__search-icon {
	color: var(--color-text-muted);
	flex-shrink: 0;
}

.hp-specialist__search-input {
	flex: 1;
	border: none;
	background: transparent;
	padding: 16px 10px;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text);
	outline: none;
}

.hp-specialist__search-input::placeholder {
	color: var(--color-text-muted);
	width: 100%;
}

.hp-specialist__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 480px;
}

.hp-specialist__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	padding: 8px 20px;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	border-radius: 50px;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.hp-specialist__btn--primary {
	background: #000000;
	color: #fff;
	border: none;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.08);
}

@media (hover: hover) {
	.hp-specialist__btn--primary:hover {
		background: #222222;
		box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.1);
	}
}

.hp-specialist__btn--secondary {
	background: transparent;
	color: #000;
	border: 1.5px solid rgba(0, 0, 0, 0.75);
	box-shadow: none;
}

@media (hover: hover) {
	.hp-specialist__btn--secondary:hover {
		background: #000;
		color: #fff;
		border-color: #000;
		box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.1);
	}
}

/* Ensure no max height constraint here anymore, replacing old select */

/* ==========================================================================
   Homepage — Auth Banner
   ========================================================================== */
.hp-auth-banner {
	padding: 60px 0;
}

.hp-auth-banner__box {
	background: linear-gradient(90deg, #3476B3 0%, #0055A4 15%, #043B6E 100%);
	border-radius: 0;
	padding: 40px 50px;
}

.hp-auth-banner__text {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.hp-auth-banner__title {
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.3;
}

.hp-auth-banner__desc {
	font-size: var(--text-xl);
	color: #ffffff;
	line-height: 1.5;
}

.hp-auth-banner__btn {
	display: inline-block;
	align-self: flex-start;
	padding: 5px 10px;
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	color: #ffffff;
	background: transparent;
	border: 1.5px solid #ffffff;
	border-radius: 100px;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s, color 0.15s;
}

@media (hover: hover) {
	.hp-auth-banner__btn:hover {
		background: #ffffff;
		color: #004b8b;
	}
}

/* ==========================================================================
   Homepage — Candidati Banner
   ========================================================================== */
.hp-candidati-banner {
	padding: 60px 0;
}

.hp-candidati-banner__box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px;
	background: #51738f;
	border-radius: 0;
	padding: 40px 50px;
	overflow: hidden;
}

.hp-candidati-banner__text {
	display: flex;
	flex-direction: column;
	gap: 18px;
	flex: 1;
	min-width: 0;
}

.hp-candidati-banner__eyebrow {
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: rgba(255, 255, 255, 0.6);
	letter-spacing: 0.08em;
}

.hp-candidati-banner__title {
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.3;
}

.hp-candidati-banner__desc {
	font-size: var(--text-base);
	font-weight: var(--weight-regular);
	color: #ffffff;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.7);
}

.hp-candidati-banner__btn {
	display: inline-block;
	align-self: flex-start;
	padding: 5px 10px;
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	color: #ffffff;
	background: transparent;
	border: 1.5px solid #ffffff;
	border-radius: 100px;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s, color 0.15s;
}

@media (hover: hover) {
	.hp-candidati-banner__btn:hover {
		background: #ffffff;
		color: #51738f;
	}
}

.hp-candidati-banner__img {
	flex-shrink: 0;
	width: 280px;
	height: auto;
	object-fit: contain;
}

/* ==========================================================================
   Homepage — FAQ (2-column)
   ========================================================================== */
.hp-faq__inner {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 80px;
	align-items: start;
	padding-top: 60px;
	padding-bottom: 60px;
}

.hp-faq__title {
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.3;
	margin-bottom: 16px;
}

.hp-faq__desc {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: 1.7;
}

/* Suppress the faq.php internal title inside the hp-faq section */
.hp-faq__accordion .faq-block {
	margin-top: 0;
	background: transparent;
	padding: 0;
	border-radius: 0;
}

.hp-faq__accordion .faq-block__title {
	display: none;
}

/* ==========================================================================
   Homepage — Partners
   ========================================================================== */
.hp-partners {
	background: var(--color-bg);
}

.hp-partners__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 48px;
	padding-top: 60px;
	padding-bottom: 60px;
}

.hp-partners__logo img {
	max-height: 56px;
	padding: 0 12px;
	width: auto;
}

/* HP section dividers */
.hp-section-rule {
	border: none;
	border-top: 1px solid var(--color-divider);
	max-width: var(--nav-width);
	width: calc(100% - var(--container-padding) * 2);
	margin: 0 auto;
	display: block;
}

.hp-section-rule--full {
	max-width: 100%;
	width: 100%;
	margin: 0;
}

/* ==========================================================================
   Homepage — Responsive
   ========================================================================== */
@media (max-width: 1100px) {
	.hp-services__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.hp-services__grid .svc-card:nth-child(2) {
		border-right: none;
	}

	.hp-hero__letter {
		width: 110px;
		height: 110px;
		font-size: 50px;
	}
}

@media (max-width: 900px) {
	.hp-banner__img,
	.hp-banner__img-bg {
		display: none;
	}

	.hp-hero__inner {
		flex-direction: column;
		padding-top: 0;
		padding-bottom: 32px;
	}

	.hp-hero__body {
		max-width: none;
	}

	.hp-hero__graphic {
		width: 100%;
		justify-content: center;
	}

	.hp-banner__body {
		padding-right: 0;
	}

	/* No image on mobile — mirror the left mask on the right side too */
	.hp-banner__slider {
		-webkit-mask-image: linear-gradient(90deg, transparent 0%, black 20px, black calc(100% - 20px), transparent 100%);
		mask-image: linear-gradient(90deg, transparent 0%, black 20px, black calc(100% - 20px), transparent 100%);
	}

	.hp-pubs__inner {
		flex-direction: column;
		gap: 32px;
		align-items: center;
		padding-top: 40px;
		padding-bottom: 40px;
	}

	.hp-pub-panels {
		padding-left: 0;
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.hp-pub-tabs {
		width: auto;
		flex: none;
		align-self: center;
		flex-direction: column;
		gap: 4px;
		border-bottom: none;
		margin-bottom: 0;
	}

	.hp-pub-tabs__btn {
		width: auto;
		padding: 10px 12px 12px;
		border-left: none;
	}

	.hp-pub-tabs__btn::after {
		left: 12px;
		width: 40px;
	}

	.hp-pub-tabs__btn--active::after {
		background-color: #004b8b;
	}

	.hp-specialist__inner {
		flex-direction: column;
		align-items: center;
	}

	.hp-specialist__map {
		width: 100%;
		max-width: 400px;
	}

	.hp-specialist__form-wrap {
		margin: 0 auto;
		max-width: 340px;
		width: 100%;
	}

	.hp-specialist__actions {
		margin: 0 auto;
		align-items: center;
	}

	.hp-faq__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

@media (max-width: 768px) {
	.hp-hero__title {
		font-size: 30px;
	}

	.hp-candidati-banner__img {
		display: none;
	}

	.hp-services__grid {
		grid-template-columns: 1fr;
	}

	.hp-services__grid .svc-card {
		border-right: none;
	}

	.hp-banner__attention {
		font-size: var(--text-lg);
	}
}

/* ==========================================================================
   Third-party overrides
   ========================================================================== */

/* Ally accessibility widget — keep it below the chatbot */
html body #pojo-a11y-toolbar,
html body .pojo-a11y-toolbar {
	z-index: 90 !important;
}

/* Chatbot widget — exact injection tag guess */
html body div#chatbot-widget,
html body div#chat-widget,
html body div.chat-widget,
html body asigno-chatbot,
html body chat-widget,
html body chatbot-widget,
html body [id^="chatbot-ms"] {
	z-index: 2147483647 !important;
}
/* Language dropdown common */
.lang-dropdown { position: absolute; top: 100%; left: 0; min-width: 100%; background: #fff; border: 1px solid var(--color-divider); border-radius: 8px; padding: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); opacity: 0; visibility: hidden; pointer-events: none; transition: 0.15s; margin-top: 4px; z-index: 100; list-style: none; }
.navbar__lang.is-open .lang-dropdown, .footer__lang.is-open .lang-dropdown { opacity: 1; visibility: visible; pointer-events: auto; }
.lang-dropdown li a { display: block; padding: 4px 8px; color: var(--color-text-body); text-decoration: none; border-radius: 4px; text-align: center; }
@media (hover: hover) { .lang-dropdown li a:hover { background: #f4f6f8; color: var(--color-primary); } }

/* Menu Items with submenus */
.menu-item-has-children > a { position: relative; padding-right: 16px; }
.menu-item-has-children > a::after { content: ''; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid currentColor; transition: transform 0.2s ease; opacity: 0.7; }
.menu-item-has-children:hover > a::after { transform: translateY(-50%) rotate(180deg); opacity: 1; }

/* ==========================================================================
   Contact Page
   ========================================================================== */

/* --- Page title above the boxes --- */
.contact-page-header {
	width: 100%;
	max-width: calc(var(--nav-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 48px var(--container-padding) 4px;
}

.contact-page-title {
	font-size: var(--text-2xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
}

/* --- Boxes: flat, no border, no radius --- */
.contact-left-col {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.interior-wrap--contact .interior-sidebar {
	background: #FCFCFE;
	border: none;
	border-radius: 0;
	padding: 20px 32px 32px;
	position: static;
	max-height: none;
	overflow-y: visible;
}

/* Suppress the ::before spacer — wrapper padding handles spacing */
.interior-wrap--contact .interior-sidebar::before {
	display: none;
}

.contact-sidebar-info {
	padding: 32px;
	background: #FCFCFE;
	font-size: var(--text-sm);
	line-height: 1.65;
	color: var(--color-text);
}

.contact-sidebar-info p {
	margin: 0 0 0.75em;
}

.contact-sidebar-info p:last-child {
	margin-bottom: 0;
}

.interior-wrap--contact {
	column-gap: 20px;
}

.interior-wrap--contact .interior-content {
	background: #FCFCFE;
	border: none;
	border-radius: 0;
	padding: 20px 32px 32px;
}

.interior-wrap--contact .interior-content__scroll {
	padding: 0;
	margin-top: 0;
}

/* --- Sidebar: underline-only nav --- */
.interior-wrap--contact .sessions {
	gap: 0;
}

.interior-wrap--contact .session-btn {
	border-radius: 0;
	background: none;
	padding: 12px 0;
	color: var(--color-text-muted);
	font-weight: var(--weight-regular);
}

.interior-wrap--contact .session-btn--active {
	background: none;
	color: var(--color-text);
	font-weight: var(--weight-semibold);
	padding: 12px 0;
}

@media (hover: hover) {
	.interior-wrap--contact .session-btn:hover,
	.interior-wrap--contact .session-btn--active:hover {
		background: none;
		color: var(--color-text);
		text-decoration: none;
	}
}

/* Text span handles the underlines — width matches text, not full button */
.interior-wrap--contact .session-btn__text {
	display: inline-block;
	position: relative;
	padding-bottom: 8px;
}

/* Grey thin line: full text width, active only */
.interior-wrap--contact .session-btn--active .session-btn__text::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: var(--color-divider-alt);
}

/* Blue thicker line: half text width, starts at left, centered vertically on grey */
.interior-wrap--contact .session-btn--active .session-btn__text::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 50%;
	height: 3px;
	background: #0055A4;
}

/* --- Contact items --- */
.contact-items {
	display: flex;
	flex-direction: column;
}

.contact-item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 24px 12px 24px;
	border-bottom: 1px solid var(--color-divider);
}

.contact-item:first-child {
	padding-top: 12px;
}

.contact-item:last-child {
	border-bottom: none;
	padding-bottom: 12px;
}

.contact-item__icon {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	margin-top: 2px;
	opacity: 0.75;
}

.contact-item__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.contact-item__label {
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	color: #0055A4;
}

.contact-item__value {
	font-size: var(--text-base);
	color: var(--color-text);
	line-height: 1.6;
}

.contact-item__link {
	font-size: var(--text-base);
	color: var(--color-text);
	text-decoration: none;
}

@media (hover: hover) {
	.contact-item__link:hover {
		text-decoration: underline;
	}
}

/* --- Schedule --- */
.contact-schedule {
	display: flex;
	flex-direction: column;
	margin-top: 4px;
}

.contact-schedule__row {
	display: flex;
	align-items: baseline;
	gap: 24px;
	padding: 3px 0;
}

.contact-schedule__day {
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text);
	width: 90px;
	flex-shrink: 0;
}

.contact-schedule__hours {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
}

/* ==========================================================================
   Institutions Page
   ========================================================================== */

.institutii-wrap {
	max-width: calc(var(--nav-width) + var(--container-padding) * 2);
	margin: 0 auto;
	padding: 0 var(--container-padding) 80px;
}

/* Breadcrumb: sticky, left-aligned — same threshold as interior pages */
.institutii-wrap .breadcrumb {
	position: sticky;
	top: calc(var(--header-height) + 16px + 32px);
	z-index: 10;
	background: var(--color-bg);
	padding-bottom: 8px;
	border-bottom: none;
}

.institutii-wrap .breadcrumb::before {
	content: "";
	position: absolute;
	top: -32px;
	left: 0;
	right: 0;
	height: 32px;
	background: var(--color-bg);
}

.admin-bar .institutii-wrap .breadcrumb {
	top: calc(var(--header-height) + 32px + 16px + 32px);
}

.institutii-grid {
	display: grid;
	grid-template-columns: 1fr 4fr;
	gap: 64px;
	align-items: start;
	margin-top: 24px;
}

/* --- Filter sidebar --- */
.institutii-sidebar {
	position: sticky;
	top: calc(var(--header-height) + 16px + 16px); /* overridden by JS once breadcrumb height is known */
	max-height: calc(100vh - var(--header-height) - 16px - 48px);
	display: flex;
	flex-direction: column;
	padding: 0 8px;
	margin: 0 -8px;
}

.inst-sidebar-scroll {
	flex: 1;
	min-height: 0;
	overflow-y: scroll;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
	padding-right: 8px;
}

.inst-sidebar-scroll::-webkit-scrollbar {
	width: 4px;
}

.inst-sidebar-scroll::-webkit-scrollbar-track {
	background: transparent;
}

.inst-sidebar-scroll::-webkit-scrollbar-thumb {
	background: rgba(0, 0, 0, 0.15);
	border-radius: 2px;
}

.inst-sidebar-scroll::-webkit-scrollbar-button {
	display: none;
}

.inst-sidebar-actions {
	flex-shrink: 0;
	padding-top: 12px;
}


.inst-form {
	display: flex;
	flex-direction: column;
}

.inst-sidebar-header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
}

.inst-sidebar-icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.inst-sidebar-title {
	font-size: var(--text-sm);
	font-weight: var(--weight-medium);
	color: var(--color-text-subtle);
}

.inst-divider {
	border: none;
	border-top: 1px solid var(--color-divider);
	margin: 8px 0;
}

.inst-search-wrap {
	position: relative;
	margin-bottom: 24px;
	margin-top: 10px;
}

.inst-search {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 4px 28px 4px 12px;
	border: 1px solid var(--color-divider);
	border-radius: 10px;
	font-size: var(--text-xs);
	font-family: var(--font-body);
	color: var(--color-text);
	background: var(--color-bg);
	outline: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.inst-search-icon {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--color-text-subtle);
	pointer-events: none;
}

.inst-search::placeholder {
	color: var(--color-text-subtle);
}

.inst-search:focus {
	border-color: var(--color-divider-alt);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.inst-filter-section {
	padding: 0 0 16px;
}

.inst-filter-label {
	display: block;
	font-size: var(--text-xs);
	font-weight: var(--weight-semibold);
	color: #a0a0a0;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin-bottom: 2px;
}

.inst-filter-hint {
	display: block;
	font-size: var(--text-xs);
	color: var(--color-text-subtle);
	margin-bottom: 0;
	padding-top: 10px;
}

.inst-select {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 8px 32px 8px 10px;
	border: 1px solid var(--color-divider-alt);
	border-radius: 6px;
	font-size: var(--text-sm);
	font-family: var(--font-body);
	color: var(--color-text);
	background-color: var(--color-bg);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 10px 6px;
	appearance: none;
	cursor: pointer;
}

.inst-select:focus {
	outline: none;
	border-color: #0055A4;
}

.inst-checkboxes {
	display: flex;
	flex-direction: column;
}

.inst-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	padding: 4px 0;
	margin-bottom: 2px;
	cursor: pointer;
	user-select: none;
	overflow: hidden;
	max-height: 200px;
	opacity: 1;
	transition: max-height 0.25s ease, opacity 0.2s ease, padding 0.25s ease, margin 0.25s ease;
}

.inst-checkbox--hidden {
	max-height: 0;
	opacity: 0;
	padding-top: 0;
	padding-bottom: 0;
	margin-bottom: 0;
	pointer-events: none;
}

.inst-checkbox input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	margin-top: 1px;
	border: 1.5px solid rgba(0, 0, 0, 0.25);
	border-radius: 3px;
	background: #fff;
	cursor: pointer;
	position: relative;
	transition: border-color 0.15s, background 0.15s;
}

.inst-checkbox input[type="checkbox"]:checked {
	background: #0055A4;
	border-color: #0055A4;
}

.inst-checkbox input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 2px;
	width: 4px;
	height: 8px;
	border: 2px solid #fff;
	border-top: none;
	border-left: none;
	transform: rotate(45deg);
}

.inst-checkbox__label {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	line-height: 1.4;
}

.inst-checkbox__count {
	font-size: var(--text-xs);
	color: #2E74B5;
	background: rgba(0, 111, 214, 0.07);
	padding: 1px 7px;
	border-radius: 999px;
	white-space: nowrap;
	flex-shrink: 0;
}

.inst-checkbox__count--loading {
	display: none;
}

.inst-apply-btn {
	display: block;
	width: 100%;
	margin-top: 16px;
	padding: 8px 0;
	font-size: var(--text-sm);
	font-family: var(--font-body);
	font-weight: var(--weight-medium);
	color: #fff;
	background: #006FD6;
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.15s;
}

@media (hover: hover) {
	.inst-apply-btn:hover {
		background: #00408A;
	}
}

.inst-reset {
	display: block;
	text-align: center;
	margin-top: 8px;
	font-size: var(--text-xs);
	color: var(--color-text-subtle);
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media (hover: hover) {
	.inst-reset:hover {
		color: var(--color-text-muted);
	}
}

.inst-expand-btn {
	display: inline-block;
	margin-top: 6px;
	padding: 0;
	font-size: var(--text-xs);
	font-family: var(--font-body);
	font-weight: var(--weight-medium);
	color: #006FD6;
	background: none;
	border: none;
	cursor: pointer;
}

/* ── Institutions results ── */
.inst-loading,
.inst-error,
.inst-empty {
	font-size: var(--text-sm);
	color: var(--color-text-subtle);
	padding: 24px 0;
}

.inst-list {
	display: flex;
	flex-direction: column;
}

.inst-item {
	padding: 20px 0;
}

.inst-item:first-child {
	padding-top: 4px;
}

.inst-item__name {
	position: relative;
	padding-left: 14px;
	margin: 0 0 16px;
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	line-height: 1.3;
}

.inst-item__name::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	bottom: 1px;
	width: 4px;
	background-color: #0055A4;
	border-radius: 2px;
}

.inst-item__type {
	display: inline-block;
	margin-left: 10px;
	padding: 2px 8px;
	font-size: var(--text-xs);
	font-weight: var(--weight-medium);
	color: #0055A4;
	background: #e8f0fb;
	border-radius: 4px;
	vertical-align: middle;
}

.inst-item__fields {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding-left: 14px;
}

.inst-item__field {
	display: flex;
	gap: 8px;
	font-size: var(--text-sm);
	line-height: 1.4;
}

.inst-item__label {
	font-weight: var(--weight-extrabold);
	color: var(--color-text-muted);
	min-width: 90px;
	flex-shrink: 0;
}

.inst-item__value {
	color: var(--color-text);
}

.inst-item-divider {
	border: none;
	border-top: 1px solid var(--color-divider);
	margin: 12px 0;
}

.inst-footer-divider {
	border: none;
	border-top: 1px solid var(--color-divider);
	margin: 16px 0 0;
}

.inst-footer {
	display: flex;
	justify-content: flex-end;
	padding-top: 12px;
}

.inst-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--color-divider);
}

.inst-header__left {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.inst-total {
	font-size: var(--text-sm);
	font-weight: var(--weight-regular);
	color: var(--color-text);
}

.inst-total strong {
	font-weight: var(--weight-semibold);
}

.inst-reset-inline {
	font-size: var(--text-sm);
	color: #006FD6;
	text-decoration: none;
	cursor: pointer;
	white-space: nowrap;
	margin-left: 8px;
}

.inst-reset-inline:hover {
	color: #003d7a;
}

.inst-header__nav {
	display: flex;
	align-items: center;
	gap: 8px;
}

.inst-page-label {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
	white-space: nowrap;
	margin-right: 32px;
}

.inst-page-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 8px;
	font-size: var(--text-sm);
	font-weight: var(--weight-regular);
	color: var(--color-text);
	background: none;
	border: none;
	cursor: pointer;
	white-space: nowrap;
}

.inst-page-btn:disabled {
	color: var(--color-text-muted);
	cursor: default;
}

.inst-page-btn:disabled .inst-page-arrow {
	color: var(--color-text-muted);
}

.inst-page-arrow {
	display: inline-flex;
	align-items: center;
	color: #0055A4;
}

.inst-page-arrow svg {
	width: 22px;
	height: 16px;
}

/* ==========================================================================
   Pagini Politici
   ========================================================================== */

.policy-content {
	font-size: var(--text-base);
	line-height: 1.75;
	color: var(--color-text);
}

.policy-content p {
	margin: 0 0 1em;
}

.policy-content p:last-child {
	margin-bottom: 0;
}

.policy-content h2 {
	font-size: var(--text-xl);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	margin: 2em 0 0.5em;
}

.policy-content h2:first-child {
	margin-top: 0;
}

.policy-content h3 {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	color: var(--color-text);
	margin: 1.5em 0 0.4em;
}

.policy-content ul,
.policy-content ol {
	list-style: disc;
	padding-left: 1.5em;
	margin: 0 0 1em;
}

.policy-content ol {
	list-style: decimal;
}

.policy-content li {
	margin-bottom: 0.4em;
	line-height: 1.7;
}

.policy-content a {
	color: #004b8b;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: rgba(0,75,139,0.4);
	transition: text-decoration-color 0.15s;
}

.policy-content a:hover {
	text-decoration-color: #004b8b;
}

.cookies-meta {
	margin-top: 2.5em;
	padding-top: 1em;
	border-top: 1px solid var(--color-divider);
	font-size: var(--text-sm);
	color: var(--color-text-muted);
}

/* ==========================================================================
   Bot Messages Fixed Styles
   ========================================================================== */

.bot-message a {
	color: #004b8b;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: rgba(0,75,139,0.4);
	transition: text-decoration-color 0.15s;
}

/* ==========================================================================
   Coordonatori – Report Generator
   ========================================================================== */

.inst-report-btn {
	display: inline-block;
	margin-top: 0;
	padding: 8px 20px;
	font-size: var(--text-sm);
	font-family: var(--font-body);
	font-weight: var(--weight-medium);
	color: #fff;
	background: #006FD6;
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.15s;
	white-space: nowrap;
}

@media (hover: hover) {
	.inst-report-btn:hover {
		background: #00408A;
	}
}

.inst-report-panel {
	position: fixed;
	top: 0;
	left: 0;
	min-width: 260px;
	background: #fff;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.14);
	z-index: 200;
}

.inst-report-list {
	padding: 10px 12px;
	max-height: 240px;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.inst-report-radio {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: var(--text-sm);
	color: var(--color-text);
	cursor: pointer;
	line-height: 1.4;
}

.inst-report-radio input[type="radio"] {
	margin-top: 2px;
	flex-shrink: 0;
	accent-color: #006FD6;
	cursor: pointer;
}

.inst-report-panel-footer {
	padding: 10px 12px 12px;
	border-top: 1px solid #e5e7eb;
}

.inst-report-panel-footer .inst-apply-btn {
	margin-top: 0;
}

/* ── PDF Modal ── */
