
/* --------------------------------------------------------------------------
 * Accordéon natif (core/details) — remplace le plugin accordion-blocks.
 * Contenu migré via ifs-core/bin/migrate-accordion-to-details.php.
 * ----------------------------------------------------------------------- */
.wp-block-details {
	border: 1px solid var(--wp--preset--color--light_gray, #f0f0f0);
	border-radius: 6px;
	margin-block: 0.75rem;
	background: var(--wp--preset--color--background, #fff);
}

.wp-block-details > summary {
	cursor: pointer;
	list-style: none;
	padding: 1rem 1.25rem;
	font-family: var(--wp--preset--font-family--marianne, inherit);
	font-weight: 700;
	color: var(--wp--preset--color--primary, #3558A2);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.wp-block-details > summary::-webkit-details-marker { display: none; }

/* Chevron à droite, pivote à l'ouverture. */
.wp-block-details > summary::after {
	content: "";
	width: 0.6em;
	height: 0.6em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
	flex: none;
}

.wp-block-details[open] > summary::after { transform: rotate(-135deg); }

.wp-block-details > summary:hover { text-decoration: underline; text-underline-offset: 0.3em; }

/* Contenu (tout sauf le summary). */
.wp-block-details > :not(summary) {
	margin-inline: 1.25rem;
}
.wp-block-details > :not(summary):last-child { margin-bottom: 1.25rem; }

/* Accordéons imbriqués : léger décalage. */
.wp-block-details .wp-block-details { margin-inline: 0; }

/* --------------------------------------------------------------------------
 * Grille de pages (ex acf/sp-grid-pages → blocs core). Cartes liées.
 * ----------------------------------------------------------------------- */
.ifs-grid-pages { padding-block: clamp(2rem, 6vw, 4rem); }

.ifs-card {
	border: 1px solid var(--wp--preset--color--light_gray, #eee);
	border-radius: 8px;
	overflow: hidden;
	background: var(--wp--preset--color--background, #fff);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.ifs-card:hover { box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12); transform: translateY(-2px); }

.ifs-card .wp-block-image { margin: 0; }
.ifs-card .wp-block-image img { width: 100%; height: 200px; object-fit: cover; display: block; }

.ifs-card__area {
	margin: 1rem 1.25rem 0;
	font-size: var(--wp--preset--font-size--14, 0.875rem);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.6;
}
.ifs-card h3 { margin: 0.25rem 1.25rem 1.25rem; font-size: var(--wp--preset--font-size--24, 1.5rem); }
.ifs-card h3 a { text-decoration: none; }
.ifs-card h3 a:hover { text-decoration: underline; }

/* ==========================================================================
 * HEADER (chrome) — inspiré du header Spletnik, adapté au markup FSE.
 * NB : en local les images (logo…) sont cassées car le dossier uploads/
 * n'est pas dans le clone (DB seule).
 * ====================================================================== */
/* Le <header> (template part, pleine largeur) ancre le panneau méga-menu bleu
   pour qu'il s'étende edge-to-edge sous la barre. */
header.wp-block-template-part { position: relative; z-index: 100; }

/* Le CSS Customizer hérité de la prod contient `header{max-width:128rem!important}`
   (pensé pour le <header class="container"> de Spletnik). Ici il clampait le
   template part entier — et donc le panneau méga (ancré dessus, left/right:0),
   qui doit filer bord à bord. On neutralise, .ifs-header garde ses 1320px. */
header.wp-block-template-part { max-width: none !important; }

/* Hero remonté sous le header transparent : le 1er hero de la page chevauche le bas
   du logo (z-index supérieur, reste lisible). Convention valable pour TOUTES les pages :
   tout hero plein-bord en 1er enfant du <main> est tiré sous le header (slider home,
   hero cours, etc.). Ajouter ici les futures classes de hero. */
main.wp-block-group > .ifs-slider:first-child,
main.wp-block-group > .ifs-slider-slot:first-child,
main.wp-block-group > .tecaji-hero:first-child,
main.wp-block-group > .ifs-event-hero:first-child { margin-top: -6rem; }

.ifs-header {
	/* px (pas rem) : main.css impose html{font-size:62.5%} → 1rem = 10px. */
	max-width: 1320px;
	margin-inline: auto;
	padding: 0.5rem clamp(1rem, 3vw, 1.5rem) 0.75rem;
}

/* --- Barre haute : menu secondaire + langues, alignés à droite, discrets --- */
.ifs-header__top {
	gap: clamp(1rem, 2vw, 2rem);
	align-items: center;
	font-size: var(--wp--preset--font-size--14, 0.875rem);
	padding-bottom: 0.5rem;
}
.ifs-header__top .wp-block-navigation { gap: 1.25rem; }
/* Mobile : le menu utilitaire (Aktualno / O inštitutu / Ekipa / Kontakt) passait
   sur 2 lignes et mangeait l'écran — masqué, ces entrées restent dans le burger. */
@media (max-width: 781px) {
	.ifs-header__top .ifs-header__util { display: none; }

	/* Nav mobile e-Slovénie (bloc ifs/mobile-nav) : la tab bar basse remplace
	   le burger du méga-menu ; on réserve la place de la barre sous le contenu. */
	.ifs-mega__burger { display: none !important; }
	body { padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)); }
}
.ifs-header__top a {
	color: var(--wp--preset--color--foreground, #333);
	text-decoration: none;
	font-weight: 500;
}
.ifs-header__top a:hover { color: var(--wp--preset--color--primary, #3558A2); }

/* Sélecteur de langue Polylang : ligne, sans puces */
.wp-block-polylang-language-switcher {
	list-style: none;
	display: flex;
	gap: 0.6rem;
	align-items: center;
	margin: 0;
	padding: 0;
}
.wp-block-polylang-language-switcher li { margin: 0; }
.wp-block-polylang-language-switcher img { width: 20px; height: auto; display: block; }

/* --- Barre principale : logo · méga-menu · recherche --- */
.ifs-header__main {
	gap: clamp(1rem, 2vw, 2rem);
	align-items: center;
}
/* Logo au-dessus du panneau méga (z-index) pour chevaucher le bandeau bleu. */
.ifs-header__main .wp-block-site-logo,
.ifs-header__main .ifs-logo { flex: 0 0 auto; line-height: 0; position: relative; z-index: 95; display: block; }
.ifs-header__main .wp-block-site-logo img,
.ifs-header__main .ifs-logo img {
	width: 220px;
	height: auto;
	max-width: none;
	display: block;
}

/* Méga-menu : MAJUSCULES, aligné à droite, sur une ligne (comme l'original) */
/* .ifs-mega-slot = wrapper du template part mega-menu-{sl,fr} (flex item du header). */
.ifs-header__main .ifs-mega-slot { flex: 1 1 auto; min-width: 0; }
.ifs-header__main .ifs-mega-wrap { flex: 1 1 auto; min-width: 0; }
.ifs-header__main .ifs-mega {
	justify-content: flex-end;
	gap: clamp(0.6rem, 1.4vw, 1.6rem);
	row-gap: 0.25rem;
}
.ifs-header__main .ifs-mega__label {
	padding: 0.4rem 0;
	font-size: var(--wp--preset--font-size--14, 0.9rem);
	text-transform: uppercase;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* Recherche : icône bleue simple dans la barre haute (pas de bouton plein) */
.ifs-header__top .wp-block-search { flex: 0 0 auto; }
.ifs-header__top .wp-block-search .wp-block-search__button {
	background: transparent;
	border: 0;
	padding: 0.25rem;
	color: var(--wp--preset--color--primary, #3558A2);
}
.ifs-header__top .wp-block-search .wp-block-search__button svg { fill: currentColor; width: 22px; height: 22px; }

/* Barre haute : utilitaires + langue, en MAJUSCULES légères bleues comme l'original */
.ifs-header__util.wp-block-navigation { gap: 1.5rem; font-weight: 600; }
.ifs-header__util .wp-block-navigation-item__content { color: var(--wp--preset--color--primary, #3558A2); }
.ifs-header__top .wp-block-polylang-language-switcher a { color: var(--wp--preset--color--primary, #3558A2); text-decoration: none; font-weight: 600; }

/* Footer : sombre marine, texte blanc (réf. site). */
.ifs-footer {
	background-color: #0e1d33;
	background-image: linear-gradient(180deg, #14233d 0%, #0a1526 100%);
	color: #fff;
}
.ifs-footer > * {
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
}
.ifs-footer a { color: #fff; text-decoration: none; }
.ifs-footer a:hover { color: var(--wp--preset--color--orange, #FF9575); }
.ifs-footer__contact { margin: 0 0 0.6rem; line-height: 1.5; opacity: 0.92; }
.ifs-footer__logo { margin-bottom: 1.25rem; }
.ifs-footer__logo img { background: #fff; padding: 0.5rem 0.75rem; border-radius: 2px; }
.ifs-footer__social .wp-block-social-link { color: #fff; }
.ifs-footer__nav .wp-block-navigation-item__content { color: #fff; }
.ifs-footer__bottom-menu { opacity: 0.85; margin: 0 0 0.5rem; }
.ifs-footer__bottom-menu a { font-weight: 600; }
.ifs-footer__copyright { opacity: 0.55; margin: 0; }


/* ----------------------------------------------------------------------------
   Home — sections promo (media-text) : panneau coloré + bouton orange (réf. site)
---------------------------------------------------------------------------- */
.ifs-promo {
	align-items: stretch;
	grid-template-columns: 1fr 1fr;
}

/* Le style core pose align-self:center sur les enfants → les deux moitiés
   doivent s'étirer pour rester de la même hauteur. */
.ifs-promo .wp-block-media-text__media,
.ifs-promo .wp-block-media-text__content {
	align-self: stretch;
}

.ifs-promo .wp-block-media-text__media {
	height: 100%;
}
.ifs-promo .wp-block-media-text__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ifs-promo .wp-block-media-text__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1.25rem;
	padding: clamp(2rem, 5vw, 4.5rem);
}

.ifs-promo .wp-block-media-text__content > * { margin-block: 0; }

.ifs-promo .wp-block-button__link {
	align-self: flex-start;
	background: var(--wp--preset--color--orange, #FF9575);
	color: #fff;
	border-radius: 2px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.85rem 1.75rem;
}
.ifs-promo .wp-block-button__link:hover,
.ifs-promo .wp-block-button__link:focus-visible {
	background: #ef7e5c;
}

/* Quiz : fond bleu, texte blanc (le visuel lunettes occupe la moitié image). */
.ifs-promo--quiz { color: #fff; }
.ifs-promo--quiz .wp-block-media-text__content {
	background: var(--wp--preset--color--primary, #3558A2);
}
.ifs-promo--quiz .wp-block-media-text__media {
	background: var(--wp--preset--color--dark_blue, #869ECE);
}
.ifs-promo--quiz :where(h1, h2, h3, p, a:not(.wp-block-button__link)) { color: #fff; }

/* Bibliothèque : fond blanc, titre bleu, texte courant (pas de bouton). */
.ifs-promo--library .wp-block-media-text__content { background: transparent; }
.ifs-promo--library :where(h1, h2, h3) { color: var(--wp--preset--color--primary, #3558A2); }
.ifs-promo--library p { color: var(--wp--preset--color--foreground, #0e1d33); line-height: 1.7; }

@media (max-width: 781px) {
	.ifs-promo .wp-block-media-text__media img { max-height: 320px; }
}

/* ----------------------------------------------------------------------------
   Pages intérieures — composants issus de la conversion des blocs ACF Spletnik
   (convert-acf-blocks.php). Design repris des templates sp_*.php de la prod.
   px partout : main.css impose 1rem = 10px.
---------------------------------------------------------------------------- */

/* --- acf/hero-slider → cover .ifs-page-hero (bandeau 50vh, H1 + chapo) --- */
.ifs-page-hero {
	min-height: 50vh;
}
/* Hero flush : le header inclut 60px de débord du logo, on tire le hero dessous. */
.wp-block-post-content > .ifs-page-hero:first-child {
	margin-top: -60px;
}
.ifs-page-hero .wp-block-cover__inner-container {
	max-width: var(--wp--style--global--content-size, 1320px);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.ifs-page-hero h1 {
	font-family: 'Marianne', sans-serif;
	font-weight: 700;
	color: #fff;
	margin: 0 0 16px;
	max-width: 58%;
}
.ifs-page-hero p {
	color: #fff;
	max-width: 58%;
	line-height: 1.5;
}
.ifs-page-hero .ifs-breadcrumbs,
.ifs-page-hero .ifs-breadcrumbs a { color: rgba(255, 255, 255, 0.7); }
.ifs-page-hero .ifs-breadcrumbs .breadcrumb_last { color: #fff; }
@media (max-width: 767.98px) {
	/* Comme la prod : hero sous le logo (pas de pull), hauteur auto, pas de fil d'Ariane. */
	.wp-block-post-content > .ifs-page-hero:first-child { margin-top: 0; }
	.ifs-page-hero { min-height: 0; }
	.ifs-page-hero .wp-block-cover__inner-container { padding: 24px 16px 32px; }
	.ifs-page-hero .wp-block-shortcode,
	.ifs-page-hero .ifs-breadcrumbs { display: none; }
	.ifs-page-hero h1,
	.ifs-page-hero p { max-width: 100%; }
}

/* --- acf/sp-content → .ifs-plain-text (fond coloré + contenu libre) --- */
.ifs-plain-text {
	overflow: hidden;
	padding: 40px 0;
}
.ifs-plain-text > * {
	max-width: var(--wp--style--global--content-size, 1320px);
	margin-inline: auto;
}
.ifs-plain-text a:link { color: #0000EE; }
.ifs-plain-text a:visited { color: #551A8B; }
.ifs-plain-text .ifs-plain-text__img {
	position: relative;
	left: 40%;
	margin-top: -60px;
	z-index: 0;
}
@media (max-width: 768px) {
	.ifs-plain-text { padding: 30px 16px; }
	.ifs-plain-text .ifs-plain-text__img { opacity: 0.2; }
}

/* --- acf/sp-accordion-new → groupe .ifs-accordion de core/details --- */
.ifs-accordion {
	max-width: var(--wp--style--global--content-size, 1320px);
	margin-inline: auto;
	margin-bottom: 130px;
}
.ifs-accordion details {
	background: #fff;
	box-shadow: 0px 1px 7px rgba(85, 85, 85, 0.25);
	margin-bottom: 19px;
	padding: 21px 42px 21px 49px;
}
.ifs-accordion summary {
	list-style: none;
	cursor: pointer;
	position: relative;
	padding-right: 40px;
	font-family: 'Marianne', sans-serif;
	font-weight: 700;
	font-size: var(--body-font-size, 16px);
	line-height: 140%;
	color: #000;
}
.ifs-accordion summary::-webkit-details-marker { display: none; }
.ifs-accordion summary::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid #3558A2;
	border-bottom: 2px solid #3558A2;
	transform: translateY(-75%) rotate(45deg);
	transition: transform 0.2s ease;
}
.ifs-accordion details[open] > summary {
	border-bottom: 2px solid #3558A2;
	padding-bottom: 12px;
}
.ifs-accordion details[open] > summary::after {
	transform: translateY(-25%) rotate(225deg);
}
.ifs-accordion details > *:not(summary) {
	padding-top: 16px;
	font-weight: 400;
	font-size: var(--body-font-size, 16px);
	color: rgba(0, 0, 0, 0.5);
}
.ifs-accordion details a { text-decoration: none; color: #000; }
.ifs-accordion details a:hover { color: #3658A2; }
.ifs-accordion details table { width: 100%; }
@media (max-width: 1024px) {
	.ifs-accordion { margin-bottom: 60px; }
	.ifs-accordion details { padding-left: 20px; padding-right: 20px; }
}

/* --- acf/sp-grid-pages → .ifs-grid-pages (cartes de sous-pages) --- */
.ifs-grid-pages {
	padding: 20px 0 40px;
}
.ifs-grid-pages .ifs-grid-pages__grid {
	max-width: var(--wp--style--global--content-size, 1320px);
	margin-inline: auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}
.ifs-card {
	background: #fff;
	border-radius: 5px;
	overflow: hidden;
	box-shadow: var(--shadow--dark, 0 1px 7px rgba(85, 85, 85, 0.25));
	transition: all 0.3s ease;
	display: flex;
	flex-direction: column;
}
.ifs-card:hover {
	transform: translateY(-7px);
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
}
.ifs-card .ifs-card__img { margin: 0; }
.ifs-card .ifs-card__img img {
	width: 100%;
	height: 237px;
	object-fit: cover;
	display: block;
}
.ifs-card .ifs-card__content {
	padding: 24px 32px;
	border-bottom: 5px solid #FF9575;
	background: #fff;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
}
.ifs-card .ifs-card__area {
	margin: 0;
	font-size: var(--body-font-size, 16px);
	text-transform: none;
	color: #FF9575;
	display: flex;
	align-items: center;
	gap: 10px;
}
.ifs-card .ifs-card__divider {
	margin: 8px 0;
	width: 100%;
	border: 0;
	border-top: 2px solid #FF9575;
	background: none;
}
.ifs-card h4 { margin: 0; }
.ifs-card h4 a {
	display: block;
	padding: 12px 0;
	font-family: 'Marianne', sans-serif;
	font-weight: 700;
	font-size: var(--body-font-size, 16px);
	line-height: 1.4;
	color: #000;
	text-decoration: none;
}
.ifs-card:hover h4 a { color: #FF9575; }
.ifs-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
}
.ifs-badge--open { background: #28a745; }
.ifs-badge--closed { background: #dd2427; }
@media (max-width: 1399px) {
	.ifs-card .ifs-card__img img { height: 203px; }
}
@media (max-width: 991px) {
	.ifs-grid-pages .ifs-grid-pages__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.ifs-grid-pages { padding-inline: 16px; }
	.ifs-grid-pages .ifs-grid-pages__grid { grid-template-columns: 1fr; }
}

/* --- acf/sp-catalogue → .ifs-catalogue (mediateka : COBISS / Culturethèque) --- */
.ifs-catalogue {
	background-image: url('/wp-content/uploads/2023/02/pattern-spreglejte.svg');
	background-repeat: repeat;
	padding: 48px 16px 64px;
}
.ifs-catalogue__cards {
	max-width: 1100px;
	margin: 32px auto 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.ifs-cat-card {
	background: #fff;
	box-shadow: 0 0 6px 4px rgba(0, 0, 0, 0.05);
	padding: 24px 32px 32px;
}
.ifs-cat-card__sub {
	margin: 0;
	color: #FF9575;
	font-size: var(--body-font-size, 16px);
}
.ifs-cat-card h4 { margin: 12px 0 0; }
.ifs-catalogue__mcobiss { margin: 48px auto 0; max-width: 900px; font-weight: 700; }
.ifs-catalogue__badges {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	margin-top: 24px;
}
.ifs-catalogue__badges img { height: 48px; width: auto; }
.ifs-catalogue__videos {
	max-width: 1100px;
	margin: 48px auto 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.ifs-catalogue__videos .wp-block-embed { margin: 0; }
.ifs-catalogue__videos iframe { width: 100%; aspect-ratio: 16/9; height: auto; }
@media (max-width: 767px) {
	.ifs-catalogue__cards,
	.ifs-catalogue__videos { grid-template-columns: 1fr; }
}

/* --- acf/izobrazevanje → .ifs-izobrazevanje (titre + chapo + image/texte) --- */
.ifs-izobrazevanje { margin: 100px auto; max-width: var(--wp--style--global--content-size, 1320px); }
.ifs-izobrazevanje h2 { margin-bottom: 40px; }
.ifs-izobrazevanje .ifs-izo__content { gap: 43px; align-items: center; }
@media (max-width: 1024px) {
	.ifs-izobrazevanje { margin: 50px auto; padding-inline: 16px; }
}

/* --- acf/sp-kids-workshop → .ifs-kids (ateliers enfants) --- */
.ifs-kids { padding: 48px 16px 64px; }
.ifs-kids > h2,
.ifs-kids > .ifs-kids__cols { max-width: var(--wp--style--global--content-size, 1320px); margin-inline: auto; }
.ifs-kids > h2 { margin-bottom: 40px; }
.ifs-kids .ifs-kids__img { margin: 0; box-shadow: var(--shadow--dark, 0 1px 7px rgba(85, 85, 85, 0.25)); }
.ifs-kids .ifs-kids__img img { width: 100%; display: block; }
.ifs-kids .wp-block-details {
	background: #fff;
	box-shadow: 0px 1px 7px rgba(85, 85, 85, 0.25);
	margin-bottom: 12px;
	padding: 16px 20px;
}
.ifs-kids .wp-block-details summary {
	list-style: none;
	cursor: pointer;
	font-weight: 700;
	position: relative;
	padding-right: 32px;
}
.ifs-kids .wp-block-details summary::-webkit-details-marker { display: none; }
.ifs-kids .wp-block-details summary::after {
	content: "";
	position: absolute;
	right: 6px;
	top: 50%;
	width: 9px;
	height: 9px;
	border-right: 2px solid #3558A2;
	border-bottom: 2px solid #3558A2;
	transform: translateY(-70%) rotate(45deg);
}
.ifs-kids .wp-block-details[open] > summary::after { transform: translateY(-30%) rotate(225deg); }
.ifs-kids .wp-block-details > *:not(summary) { padding-top: 10px; color: rgba(0, 0, 0, 0.65); }

/* --- acf/sp-contact-time → .ifs-contact-time (horaires + contact) --- */
.ifs-contact-time {
	background-image: url('/wp-content/uploads/2023/02/pattern-spreglejte.svg');
	background-repeat: repeat;
	padding: 48px 16px;
}
.ifs-contact-time .ifs-ct__cols { max-width: var(--wp--style--global--content-size, 1320px); margin-inline: auto; gap: 24px; }
.ifs-ct__header {
	height: 71px;
	display: flex;
	align-items: center;
	gap: 16px;
	padding-left: 48px;
}
.ifs-ct__header--hours { background: rgba(134, 158, 206, 0.6); }
.ifs-ct__header--contact { background: rgba(33, 171, 136, 0.6); }
.ifs-ct__header p {
	margin: 0;
	color: #fff;
	font-weight: 700;
	text-transform: uppercase;
	font-size: var(--body-font-size, 16px);
}
.ifs-contact-time .ifs-ct__body {
	background: #fff;
	padding: 32px 48px;
	min-height: 260px;
}
.ifs-contact-time .ifs-ct__role { color: rgba(0, 0, 0, 0.6); }
.ifs-contact-time .ifs-ct__body a { color: var(--wp--preset--color--primary, #3558A2); text-decoration: none; }

/* --- acf/sp-notice-bar → .ifs-notice (bandeau info) --- */
.ifs-notice {
	max-width: 1280px;
	margin: 0 auto 125px;
	background: #fff;
	box-shadow: 0px 0px 6px 4px rgba(0, 0, 0, 0.05);
	display: flex;
	align-items: stretch;
}
.ifs-notice__icon {
	background-color: #FFB7AE;
	flex: 0 0 108px;
	display: flex;
	justify-content: center;
	padding-top: 32px;
}
.ifs-notice__icon img { width: 39px; height: 39px; }
.ifs-notice .ifs-notice__text { padding: 48px; flex: 1 1 auto; }
.ifs-notice .ifs-notice__text h4 { margin: 0 0 16px; }
@media (max-width: 767px) {
	.ifs-notice { margin-bottom: 60px; }
	.ifs-notice__icon { flex-basis: 60px; padding-top: 24px; }
	.ifs-notice .ifs-notice__text { padding: 24px; }
}

/* --- acf/testemonial → .ifs-testimonials (témoignages, fond gris) --- */
.ifs-testimonials {
	background: var(--clr-gray, #f5f5f5);
	padding: 90px 16px;
}
.ifs-testimonials > h2 { max-width: var(--wp--style--global--content-size, 1320px); margin: 0 auto 60px; }
.ifs-testimonials__grid {
	max-width: var(--wp--style--global--content-size, 1320px);
	margin-inline: auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	align-items: flex-start;
	gap: 16px;
}
.ifs-testimonial {
	position: relative;
	background: #fff;
	box-shadow: var(--shadow, 0 1px 7px rgba(85, 85, 85, 0.25));
	padding: 40px 20px;
}
.ifs-testimonial::before {
	content: "";
	position: absolute;
	top: -18px;
	left: 20px;
	width: 36px;
	height: 36px;
	background: url('/wp-content/uploads/2023/02/testemonial.svg') no-repeat center / contain;
}
.ifs-testimonial .ifs-testimonial__who { margin-top: 16px; font-weight: 700; color: var(--wp--preset--color--primary, #3558A2); }
@media (max-width: 991px) { .ifs-testimonials__grid { grid-template-columns: 1fr; } }

/* --- acf/sp-book-carousel → .ifs-books (grille de couvertures) --- */
.ifs-books {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	max-width: var(--wp--style--global--content-size, 1320px);
	margin: 40px auto;
}
.ifs-book {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	border: 1px solid #e2e2e2;
	padding: 16px;
	text-decoration: none;
	color: #000;
	background: #fff;
}
.ifs-book img { width: 100%; height: 260px; object-fit: contain; }
.ifs-book .ifs-book__title { font-weight: 700; margin-top: 12px; font-size: var(--body-font-size, 16px); }
.ifs-book .ifs-book__author { color: rgba(0, 0, 0, 0.6); font-size: 14px; }
@media (max-width: 991px) { .ifs-books { grid-template-columns: repeat(2, 1fr); } }

/* --- acf/sp-grid → .ifs-grid-cards (cartes génériques) --- */
.ifs-grid-cards {
	display: grid;
	gap: 24px;
	max-width: var(--wp--style--global--content-size, 1320px);
	margin: 40px auto;
}
.ifs-grid-cards--2 { grid-template-columns: repeat(2, 1fr); }
.ifs-grid-cards--3 { grid-template-columns: repeat(3, 1fr); }
.ifs-grid-cards--4 { grid-template-columns: repeat(4, 1fr); }
.ifs-grid-card {
	background: #fff;
	box-shadow: var(--shadow--dark, 0 1px 7px rgba(85, 85, 85, 0.25));
	text-decoration: none;
	color: #000;
	display: flex;
	flex-direction: column;
	transition: transform 0.3s ease;
}
.ifs-grid-card:hover { transform: translateY(-5px); }
.ifs-grid-card img { width: 100%; height: 200px; object-fit: cover; display: block; }
.ifs-grid-card .ifs-grid-card__body { display: block; padding: 20px 24px; }
.ifs-grid-card .ifs-grid-card__title { display: block; font-weight: 700; margin-bottom: 8px; }
.ifs-grid-card .ifs-grid-card__content { display: block; color: rgba(0, 0, 0, 0.65); }
@media (max-width: 991px) {
	.ifs-grid-cards--3, .ifs-grid-cards--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.ifs-grid-cards--2, .ifs-grid-cards--3, .ifs-grid-cards--4 { grid-template-columns: 1fr; }
}

/* --- acf/tecaj-upis → .ifs-upis (bandeaux chiffres clés) --- */
.ifs-upis {
	background-image: url('/wp-content/uploads/2023/02/pattern-spreglejte.svg');
	background-repeat: repeat;
	padding: 48px 16px;
}
.ifs-upis__row {
	max-width: var(--wp--style--global--content-size, 1320px);
	margin-inline: auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 24px;
}
.ifs-upis__box {
	background: #fff;
	box-shadow: var(--shadow, 0 1px 7px rgba(85, 85, 85, 0.15));
	padding: 24px;
	display: flex;
	align-items: center;
	gap: 16px;
}
.ifs-upis__box img { width: 48px; height: 48px; object-fit: contain; }
.ifs-upis__info { display: flex; flex-direction: column; }
.ifs-upis__info strong { font-size: var(--body-font-size, 16px); }
.ifs-upis__info span { color: rgba(0, 0, 0, 0.6); }

/* --- acf/spletni → .ifs-spletni (cartes cours en ligne) --- */
.ifs-spletni {
	max-width: var(--wp--style--global--content-size, 1320px);
	margin: 40px auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 24px;
}
.ifs-spletni__box {
	background: #fff;
	box-shadow: var(--shadow--dark, 0 1px 7px rgba(85, 85, 85, 0.25));
	display: flex;
	flex-direction: column;
}
.ifs-spletni__box > img { width: 100%; height: 220px; object-fit: cover; display: block; }
.ifs-spletni__info { padding: 24px; display: flex; flex-direction: column; gap: 8px; flex: 1 1 auto; }
.ifs-spletni__before { color: #FF9575; }
.ifs-spletni__buttons { margin-top: auto; display: flex; flex-wrap: wrap; gap: 8px; padding-top: 16px; }
.ifs-spletni__btn {
	display: inline-block;
	padding: 8px 18px;
	border: 2px solid var(--wp--preset--color--primary, #3558A2);
	color: var(--wp--preset--color--primary, #3558A2);
	font-weight: 700;
	text-decoration: none;
	border-radius: 3px;
}
.ifs-spletni__btn:hover { background: var(--wp--preset--color--primary, #3558A2); color: #fff; }

/* --- acf/sp-content-video / welcome / icon-list --- */
.ifs-content-video { max-width: var(--wp--style--global--content-size, 1320px); margin: 40px auto; }
.ifs-content-video iframe { width: 100%; aspect-ratio: 16/9; height: auto; }
.ifs-welcome { max-width: var(--wp--style--global--content-size, 1320px); margin: 48px auto; padding-inline: 16px; }
.ifs-welcome__row { display: flex; gap: 32px; align-items: flex-start; margin-top: 24px; }
.ifs-welcome__row img { width: 33%; height: auto; }
.ifs-welcome .wp-block-buttons { justify-content: flex-end; display: flex; }
@media (max-width: 767px) { .ifs-welcome__row { flex-direction: column; } .ifs-welcome__row img { width: 100%; } }
.ifs-icon-list { display: flex; flex-direction: column; gap: 24px; max-width: var(--wp--style--global--content-size, 1320px); margin: 40px auto; }
.ifs-icon-list__item { display: flex; gap: 20px; align-items: flex-start; }
.ifs-icon-list__item img { flex: 0 0 50px; }

/* --- .ifs-card--team (annuaire équipe, réutilise la grille de cartes) --- */
.ifs-card--team .ifs-team__role { color: rgba(0, 0, 0, 0.6); margin: 8px 0 0; }
.ifs-card--team .ifs-team__mail { margin: 8px 0 0; }
.ifs-card--team .ifs-team__mail a { color: var(--wp--preset--color--primary, #3558A2); text-decoration: none; }
.ifs-card--team .ifs-card__content { border-bottom-color: var(--wp--preset--color--primary, #3558A2); }
.ifs-card--team h4 { margin: 8px 0 0; }
.ifs-contact-time--single .ifs-ct__body { min-height: 0; }

/* --- acf/sp-sitemap → .ifs-sitemap (plan du site figé depuis le menu) --- */
.ifs-sitemap { max-width: var(--wp--style--global--content-size, 1320px); margin: 40px auto; padding-inline: 16px; }
.ifs-sitemap ul { list-style: none; padding-left: 0; margin: 0; }
.ifs-sitemap ul ul { padding-left: 24px; margin-top: 8px; }
.ifs-sitemap li { margin-bottom: 8px; }
.ifs-sitemap > ul > li > a { font-size: 20px; font-weight: 700; color: var(--wp--preset--color--primary, #3558A2); }
.ifs-sitemap a { text-decoration: none; color: #000; }
.ifs-sitemap a:hover { color: var(--wp--preset--color--primary, #3558A2); }

/* --- Badges des cartes WP Grid Builder (événements passés) ---
   Les couleurs par catégorie sont des règles manuelles du CSS Customizer
   (span[data-id="…"] !important, spécificité 0,1,1). Ce défaut (0,1,0) habille
   pareil les termes SANS couleur dédiée, en bleu primaire, et perd toujours
   face aux règles par terme. */
.wpgb-block-term {
	background-color: var(--wp--preset--color--primary, #3558A2) !important;
	color: #fff !important;
	padding: 5px !important;
	margin-right: 20px !important;
	font-weight: 600 !important;
	font-size: 18px !important;
	margin-top: 10px !important;
}

/* --- Tables dynamiques (diplômes, roki za vpis, test de niveau) --- */
.ifs-table-wrap { max-width: var(--wp--style--global--content-size, 1320px); margin: 48px auto; padding-inline: 16px; overflow-x: auto; }
.ifs-table { width: 100%; border-collapse: collapse; background: #fff; }
.ifs-table th, .ifs-table td { text-align: left; padding: 12px 8px; border: 1px solid #ddd; vertical-align: middle; }
.ifs-table th { background: var(--wp--preset--color--primary, #3558A2); color: #fff; font-weight: 700; }
.ifs-table__btn {
	display: inline-block;
	margin-left: 8px;
	padding: 6px 14px;
	background: var(--wp--preset--color--orange, #FF9575);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	border-radius: 3px;
	white-space: nowrap;
}
.ifs-table__btn:hover { filter: brightness(0.95); color: #fff; }
.ifs-gf-placeholder {
	max-width: var(--wp--style--global--content-size, 1320px);
	margin: 48px auto;
	padding: 32px;
	border: 1px dashed var(--wp--preset--color--primary, #3558A2);
	color: var(--wp--preset--color--primary, #3558A2);
	text-align: center;
}

/* ----------------------------------------------------------------------------
   Home — grilles de logos (Sponzorji / Partnerji), Query Loop natif
---------------------------------------------------------------------------- */
.ifs-logos .wp-block-post-template {
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(2rem, 6vw, 5rem);
}

.ifs-logos li { margin: 0; flex: 0 0 auto; }
.ifs-logos .wp-block-post-featured-image {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ifs-logos .wp-block-post-featured-image img {
	width: auto;
	max-width: 220px;
	max-height: 90px;
	object-fit: contain;
	transition: opacity 0.25s ease;
}
.ifs-logos .wp-block-post-featured-image:hover img { opacity: 0.75; }

/* Section actualités : motif diagonal léger (réf. site) */
.ifs-home-actu {
	background-color: #f3f5f8;
	background-image: repeating-linear-gradient(135deg, rgba(53, 88, 162, 0.05) 0 2px, transparent 2px 14px);
}

/* ----------------------------------------------------------------------------
   Avant-footer — newsletter (bandeau bleu pleine largeur, réf. site)
---------------------------------------------------------------------------- */
.ifs-newsletter {
	background: var(--wp--preset--color--primary, #3558A2);
	color: #fff;
	padding-block: clamp(2rem, 4vw, 3rem);
}
.ifs-newsletter__inner {
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
	gap: clamp(1.5rem, 4vw, 3rem);
}
.ifs-newsletter h3 { margin: 0 0 0.5rem; font-size: clamp(1.3rem, 2.5vw, 1.7rem); }
.ifs-newsletter p { margin: 0; opacity: 0.95; line-height: 1.5; }

.ifs-newsletter__form { display: flex; width: 100%; box-shadow: 0 6px 18px rgba(0,0,0,0.12); }
.ifs-newsletter__email {
	flex: 1 1 auto;
	border: 0;
	padding: 0.95rem 1.1rem;
	font-size: 1rem;
	background: #fff;
	color: #0e1d33;
}
.ifs-newsletter__email::placeholder { color: #8a97a8; }
.ifs-newsletter__submit {
	flex: 0 0 auto;
	border: 0;
	cursor: pointer;
	padding: 0.95rem 2rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	color: #fff;
	background: var(--wp--preset--color--orange, #FF9575);
	transition: background 0.2s ease;
}
.ifs-newsletter__submit:hover { background: #ef7e5c; }

@media (max-width: 600px) {
	.ifs-newsletter__form { flex-direction: column; }
}

/* --------------------------------------------------------------------------
 * single-tecaji (page cours) — porté des modules BB course-* .
 * ----------------------------------------------------------------------- */

/* Hero plein écran 50/50 : panneau bleu (motif diagonal) à gauche, image featured à droite. */
.tecaji-hero { gap: 0 !important; }
.tecaji-hero .wp-block-column { margin: 0; min-width: 0; }
.tecaji-hero__panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.07) 0 2px, transparent 2px 16px);
	background-color: var(--wp--preset--color--primary, #3558A2);
}
.tecaji-hero__content { width: 100%; }
.tecaji-hero .wp-block-post-title { padding-block: 1rem; font-weight: 700; line-height: 1.05; font-size: clamp(2.5rem, 4.5vw, 3.5rem); }
.tecaji-hero__content #breadcrumbs,
.tecaji-hero__content .breadcrumbs,
.tecaji-hero__content .seopress-breadcrumbs { color: rgba(255, 255, 255, 0.6); font-size: 0.9rem; }
.tecaji-hero__content #breadcrumbs a,
.tecaji-hero__content .breadcrumbs a { color: rgba(255, 255, 255, 0.6); }
.tecaji-hero__content .breadcrumb_last { color: #fff; }
/* Image featured plein-bord (cover) — touche le bord droit, pas d'arrondi. */
.tecaji-hero__featured { padding: 0; }
.tecaji-hero__featured .wp-block-cover { height: 100%; }
/* Intro du hero : plus grande que le corps de texte, interligne aéré. */
.tecaji-hero__intro { line-height: 1.6; }
/* CTA du hero : coins carrés (le défaut WP est une pilule 9999px). */
.tecaji-buttons .wp-block-button__link { border-radius: 0; }
/* CTA déplacés dans le hero : bouton « outline » lisible (blanc) sur le fond bleu. */
.tecaji-hero .tecaji-buttons .is-style-outline .wp-block-button__link {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.7);
}
.tecaji-hero .tecaji-buttons .is-style-outline .wp-block-button__link:hover {
	background: #fff;
	color: var(--wp--preset--color--primary, #3558A2);
	border-color: #fff;
}

/* Section « O tečaju » calée sur le hero : 50/50 pleine largeur, image flush à gauche
   (sous le panneau bleu), contenu à droite (sous la photo). */
.tecaji-about { gap: 0 !important; align-items: stretch; margin-top: 0; }
.tecaji-about > .wp-block-column { margin: 0; min-width: 0; }

/* VRAI 50/50 sur le hero ET la section, calés l'un sur l'autre.
   !important : bat la règle WP `.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column`
   (flex-basis:0; flex-grow:1) qui, combinée au padding du panneau, casse le 50/50.
   flex-basis:50% inclut le padding (border-box) → les deux colonnes font pile 50%.
   Scopé desktop pour préserver l'empilement mobile (<782px). */
@media (min-width: 782px) {
	.tecaji-hero > .wp-block-column,
	.tecaji-about > .wp-block-column {
		box-sizing: border-box;
		flex: 1 1 50% !important;
		max-width: 50%;
		min-width: 0;
	}
}
/* Image détachée du flux : remplit toute sa moitié, hauteur pilotée par la colonne texte. */
.tecaji-about__media { position: relative; padding: 0; }
.tecaji-about__media .wp-block-image { position: absolute; inset: 0; margin: 0; height: 100%; }
.tecaji-about__media .wp-block-image,
.tecaji-about__media img { width: 100%; height: 100%; object-fit: cover; }
.tecaji-about .wp-block-heading { font-weight: 700; }
/* Colonne texte : centrée verticalement, contenu à largeur lisible aligné sous la photo. */
.tecaji-about__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	/* Marges verticales cohérentes avec le padding latéral : le titre ne colle
	   plus au bord haut de la section quand le texte est plus haut que l'image. */
	padding-block: clamp(2.5rem, 4vw, 4rem);
	padding-inline: clamp(1.5rem, 4vw, 4rem);
}
.tecaji-about__content > * { width: 100%; max-width: 620px; }

@media (max-width: 781px) {
	.tecaji-about > .wp-block-column { flex-basis: 100% !important; max-width: 100%; }
	.tecaji-about__media { position: relative; min-height: 280px; }
	.tecaji-about__media .wp-block-image { position: relative; height: 280px; }
}

@media (max-width: 781px) {
	.tecaji-hero__featured .wp-block-cover { min-height: 320px; }
	/* Hero tiré sous le header (flush -6rem) : sur mobile le logo déborde dans
	   le panneau → on pousse le contenu (breadcrumb) sous le logo. */
	.tecaji-hero__panel { padding-top: 9rem !important; }
}

/* Carte « date » (semestre / dates / durée / lieu). */
.tecaji-date {
	padding: 1.6rem 2.5rem;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1);
	max-width: 32rem;
	/* La respiration bas de section vient du padding-block de .tecaji-about__content. */
	margin-bottom: 0;
}

/* main.css (Spletnik) pose background:transparent sur .wp-block-button__link →
   on rétablit les couleurs de palette posées par les blocs (spécificité 0,2,0). */
.wp-block-button__link.has-orange-background-color { background-color: var(--wp--preset--color--orange, #FF9575); }
.wp-block-button__link.has-primary-background-color { background-color: var(--wp--preset--color--primary, #3558A2); }

/* Titre et CTA du hero cours : blindés contre le CSS Customizer Spletnik
   (h1 bleu) et le reset boutons de main.css (outline à 0). */
.tecaji-hero__panel h1 { color: #fff; }
.tecaji-buttons .is-style-outline > .wp-block-button__link {
	border: 2px solid rgba(255, 255, 255, 0.9);
	color: #fff;
	background: transparent;
}
.tecaji-buttons .is-style-outline > .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.12);
}

/* Fil d'Ariane du hero cours : lisible sur fond bleu, quelle que soit la source
   (fallback ifs-breadcrumbs en local, SEOPress Pro en prod). */
.tecaji-hero__content [class*="breadcrumb"],
.tecaji-hero__content [class*="breadcrumb"] a { color: rgba(255, 255, 255, 0.75); }
.tecaji-hero__content [class*="breadcrumb"] span,
.tecaji-hero__content [class*="breadcrumb"] .breadcrumb_last { color: #fff; }
.tecaji-date__semester { color: var(--wp--preset--color--foreground, #000); }
.tecaji-date__date { font-weight: 700; }
.tecaji-date__row { align-items: center; gap: 0.75rem; color: rgba(0, 0, 0, 0.6); }
.tecaji-date__row .wp-block-paragraph,
.tecaji-date__row p { margin: 0; }
.tecaji-date__icon { margin: 0; flex: none; }

.tecaji-buttons { gap: 1.25rem; flex-wrap: wrap; }

/* « Kaj se bom naučil » — bande grise pleine largeur à motif diagonal + 2 colonnes
   (carte contact à gauche, titre + texte à droite). */
.tecaji-naucil {
	background-color: #f3f5f8;
	background-image: repeating-linear-gradient(135deg, rgba(53, 88, 162, 0.05) 0 2px, transparent 2px 14px);
}
.tecaji-naucil .wp-block-heading { font-weight: 700; }
.tecaji-naucil__info { color: rgba(0, 0, 0, 0.65); }

/* Carte contact en version empilée (bandeau vert en haut, corps blanc dessous). */
.tecaji-kontakt.ifs-kontakt { grid-template-columns: 1fr; margin: 0; }
.tecaji-kontakt .ifs-kontakt__left {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 1rem;
	padding: 1rem 2rem;
}
.tecaji-kontakt .ifs-kontakt__icon { margin: 0; }
.tecaji-kontakt .ifs-kontakt__label { margin: 0; }

/* Carte info (icône ronde rose). */
.tecaji-info-card {
	gap: 0;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1);
	border-radius: 8px;
	overflow: hidden;
	background: var(--wp--preset--color--background, #fff);
	align-items: stretch;
}
.tecaji-info-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	background: var(--wp--preset--color--pink, #FFB7AE);
	margin: 0;
	flex: none;
}
.tecaji-info-card > .wp-block-paragraph,
.tecaji-info-card > p { margin: 0; padding: 1.5rem 2rem; align-self: center; }

/* Réductions (popust) : 2 cartes. (La respiration avant la newsletter vient du
   padding-bottom du wrapper dans single-tecaji.html — un margin ici serait
   annulé par les règles de layout WP `> * { margin-block-end: 0 }`.) */
.tecaji-popust__cards { gap: 2rem; margin-top: 1.5rem; }
.tecaji-popust__card {
	background: var(--wp--preset--color--light_gray, #f6f6f6);
	border-radius: 8px;
	padding: 1.5rem 1.75rem;
}
.tecaji-popust__card .wp-block-image { margin: 0 0 0.75rem; }

@media (max-width: 781px) {
	.tecaji-date { max-width: none; }
	.tecaji-info-card { flex-direction: row; }
}
