/* ==========================================================================
   Ikory Corporate : styles du site (mobile d'abord)
   ========================================================================== */

/* ---------- Polices (Work Sans v24, variable, hébergée dans le thème : même version que le site actuel) ---------- */
@font-face { font-family: "Work Sans"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../fonts/work-sans-v24-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Work Sans"; font-style: italic; font-weight: 100 900; font-display: swap; src: url("../fonts/work-sans-v24-latin-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------- Variables ---------- */
:root {
	--ik-blue: #0c6496;
	--ik-accent: #086496;
	--ik-text: #0e0e0e;
	--ik-white: #fff;
	--ik-grey: #f6f6f6;
	--ik-dark: #343c42;
	--ik-line: #e7e4d9;
	--ik-gold: #d99f40;
	--ik-sand: #e7e4d9;

	--ik-font: "Work Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

	/* tailles qui s'adaptent à l'écran : ~16 px sur téléphone, ~19 px sur grand écran */
	--ik-text-size: clamp(1rem, 0.94rem + 0.3vw, 1.1875rem);
	--ik-small: clamp(0.875rem, 0.84rem + 0.15vw, 0.9375rem);
	--ik-h1: clamp(1.75rem, 1.3rem + 1.9vw, 2.625rem);
	--ik-h2: clamp(1.375rem, 1.1rem + 1.2vw, 2rem);
	--ik-h3: clamp(1.125rem, 1rem + 0.55vw, 1.375rem);

	--ik-space: clamp(2.5rem, 1.6rem + 3.6vw, 5rem);
	--ik-gutter: clamp(1rem, 0.5rem + 2vw, 1.5rem);
	--ik-container: clamp(56rem, 62vw, 74.5rem); /* comme le site actuel : ~62 % de l'écran, de 896 à 1 192 px */
	--ik-wide: 80rem;
	--ik-header-h: 4rem;
}

@media (min-width: 1200px) {
	:root { --ik-header-h: 5.5rem; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--ik-font);
	font-size: var(--ik-text-size);
	line-height: 1.6;
	color: var(--ik-text);
	background: var(--ik-white);
	overflow-x: clip;
}
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--ik-accent); text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; }
a:hover { color: var(--ik-text); }
:focus-visible { outline: 3px solid var(--ik-gold); outline-offset: 2px; }
h1, h2, h3, h4 { font-weight: 600; line-height: 1.2; margin: 0 0 0.6em; color: var(--ik-text); }
h1 { font-size: var(--ik-h1); }
h2 { font-size: var(--ik-h2); }
h3 { font-size: var(--ik-h3); }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.4em; }
figure { margin: 0; }
button { font: inherit; cursor: pointer; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
	clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.skip-link:focus {
	position: fixed !important; z-index: 1000; top: 0.5rem; left: 0.5rem; width: auto; height: auto; margin: 0; padding: 0.75rem 1rem;
	clip: auto; clip-path: none; background: var(--ik-white); color: var(--ik-text); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

.ik-container { width: 100%; max-width: var(--ik-container); margin-inline: auto; padding-inline: var(--ik-gutter); }
.ik-container--narrow { max-width: 48rem; }
.ik-container--wide { max-width: var(--ik-wide); }
.ik-main { position: relative; }
.ik-sec { padding-block: var(--ik-space); position: relative; }
.ik-bg-grey { background: var(--ik-grey); }
.ik-bg-blue { background: var(--ik-blue); color: var(--ik-white); }

.ik-title { font-size: var(--ik-h2); margin-bottom: 0.9em; }
h1.ik-title { font-size: var(--ik-h1); }
.ik-title--accent { color: var(--ik-accent); }
.ik-title--rule { font-size: var(--ik-h2); margin-top: 0; padding-top: 1.75rem; border-top: 1px solid #8b8b8b; }
.ik-eyebrow { font-size: var(--ik-small); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 0.5rem; }

.ik-prose > :last-child { margin-bottom: 0; }
.ik-prose > :first-child { margin-top: 0; }
.ik-prose ul { padding-left: 1.2em; }
.ik-prose li { margin-bottom: 0.35em; }
.ik-prose h2, .ik-prose h3 { margin-top: 1.4em; }
.ik-prose strong { font-weight: 600; }

/* ---------- Boutons et liens ---------- */
.ik-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 2.75rem; padding: 0.6rem 1.25rem;
	font-size: var(--ik-small); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none;
	color: var(--ik-blue); background: transparent; border: 2px solid var(--ik-blue); border-radius: 0; transition: background 0.25s, color 0.25s;
}
.ik-btn:hover { background: var(--ik-blue); color: var(--ik-white); }
.ik-btn--primary { background: var(--ik-blue); color: var(--ik-white); border-color: var(--ik-blue); }
.ik-btn--primary:hover { background: var(--ik-dark); border-color: var(--ik-dark); color: var(--ik-white); }
.ik-btn--light { background: var(--ik-white); color: var(--ik-blue); border-color: var(--ik-white); }
.ik-btn--light:hover { background: transparent; color: var(--ik-white); }
.ik-btn--outline-light { color: var(--ik-white); border-color: var(--ik-white); }
.ik-btn--outline-light:hover { background: var(--ik-white); color: var(--ik-dark); }

.ik-link { position: relative; display: inline-flex; color: var(--ik-accent); font-weight: 600; text-decoration: none; padding-bottom: 2px; background: linear-gradient(currentColor, currentColor) left bottom / 100% 2px no-repeat; transition: background-size 0.4s; }
.ik-link:hover { background-size: 0 2px; background-position: right bottom; color: var(--ik-text); }
.ik-link--back::before { content: "←"; margin-right: 0.5rem; }
.ik-back { margin-top: 2rem; }

/* ---------- En-tête ---------- */
.admin-bar .ik-header { top: 46px; }
@media (min-width: 783px) { .admin-bar .ik-header { top: 32px; } }
.ik-header { position: sticky; top: 0; z-index: 100; height: var(--ik-header-h); background: var(--ik-white); }
.ik-header__bar { display: grid; grid-template-columns: 3rem 1fr 3rem; align-items: center; height: var(--ik-header-h); padding-inline: var(--ik-gutter); }
.ik-logo { grid-column: 2; justify-self: center; display: block; line-height: 0; }
.ik-logo__img { width: auto; height: auto; max-height: calc(var(--ik-header-h) * 0.62); max-width: 12rem; }
.ik-burger { grid-column: 1; grid-row: 1; justify-self: start; width: 2.75rem; height: 2.75rem; padding: 0; background: none; border: 0; display: grid; place-items: center; color: var(--ik-dark); }
.ik-burger__box { position: relative; width: 1.6rem; height: 1.2rem; }
.ik-burger__box span { position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; transition: transform 0.3s, opacity 0.2s, top 0.3s; }
.ik-burger__box span:nth-child(1) { top: 0; }
.ik-burger__box span:nth-child(2) { top: calc(50% - 1px); }
.ik-burger__box span:nth-child(3) { top: calc(100% - 2px); }
.ik-burger[aria-expanded="true"] .ik-burger__box span:nth-child(1) { top: calc(50% - 1px); transform: rotate(45deg); }
.ik-burger[aria-expanded="true"] .ik-burger__box span:nth-child(2) { opacity: 0; }
.ik-burger[aria-expanded="true"] .ik-burger__box span:nth-child(3) { top: calc(50% - 1px); transform: rotate(-45deg); }
.ik-header__left, .ik-header__right { display: none; }

.ik-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; }
.ik-menu a { color: var(--ik-text); text-decoration: none; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
.ik-menu a:hover, .ik-menu .current-menu-item > a, .ik-menu .current_page_item > a { color: var(--ik-blue); }
.ik-menu--small a { font-size: 0.6875rem; }

.ik-socials { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.4rem; }
.ik-social { display: grid; place-items: center; width: 1.375rem; height: 1.375rem; border-radius: 50%; background: var(--ik-blue); color: var(--ik-white); }
.ik-social svg { width: 0.75rem; height: 0.75rem; fill: currentColor; }
.ik-social:hover { background: var(--ik-dark); color: var(--ik-white); }
.ik-socials--light .ik-social { background: var(--ik-white); color: var(--ik-blue); width: 2.25rem; height: 2.25rem; }
.ik-socials--light .ik-social svg { width: 1.1rem; height: 1.1rem; }

.ik-lang { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.25rem; align-items: center; }
.ik-lang a { display: block; padding: 0.25rem 0.4rem; font-size: 0.75rem; font-weight: 600; color: var(--ik-dark); text-decoration: none; }
.ik-lang .is-active a { color: var(--ik-blue); text-decoration: underline; text-underline-offset: 4px; }

/* sélecteur de langue (globe + liste) */
.ik-langsw { position: relative; }
.ik-langsw__toggle { display: flex; align-items: center; gap: 0.3rem; padding: 0.3rem 0.4rem; list-style: none; cursor: pointer; font-size: 0.75rem; font-weight: 500; color: var(--ik-dark); }
.ik-langsw__toggle::-webkit-details-marker { display: none; }
.ik-langsw__globe { width: 1rem; height: 1rem; fill: currentColor; }
.ik-langsw__chevron { width: 0.4rem; height: 0.4rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform 0.2s; }
.ik-langsw[open] .ik-langsw__chevron { transform: rotate(-135deg) translateY(-2px); }
.ik-langsw__list { position: absolute; top: 100%; right: 0; min-width: 100%; margin: 0; padding: 0.25rem 0; list-style: none; background: var(--ik-white); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15); z-index: 10; }
.ik-langsw__list a { display: block; padding: 0.4rem 0.9rem; font-size: 0.75rem; font-weight: 500; color: var(--ik-dark); text-decoration: none; }
.ik-langsw__list a:hover { background: var(--ik-grey); color: var(--ik-blue); }

/* menu mobile */
.ik-mobile { position: fixed; inset: var(--ik-header-h) 0 0 0; z-index: 99; display: flex; flex-direction: column; gap: 1.5rem; padding: 2rem var(--ik-gutter) 2.5rem; overflow-y: auto; background: var(--ik-blue); color: var(--ik-white); text-align: center; align-items: center; }
.ik-mobile[hidden] { display: none; }
.ik-menu--mobile { flex-direction: column; align-items: center; gap: 1.1rem; }
.ik-menu--mobile a { color: var(--ik-white); font-size: 1.35rem; font-weight: 500; text-transform: none; letter-spacing: 0; }
.ik-mobile__foot { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; margin-top: auto; }
.ik-mobile .ik-lang a { color: var(--ik-white); }
.ik-mobile .ik-lang .is-active a { color: var(--ik-white); }
body.ik-menu-open { overflow: hidden; }

@media (min-width: 1200px) {
	.ik-header__bar { grid-template-columns: 1fr auto 1fr; gap: 1.5rem; max-width: clamp(60rem, 72vw, 92rem); margin-inline: auto; padding-inline: 0; }
	.ik-burger, .ik-mobile { display: none !important; }
	.ik-logo { grid-column: 2; }
	.ik-logo__img { max-height: calc(var(--ik-header-h) * 0.6); max-width: 12.5rem; }
	.ik-header__left { display: block; grid-column: 1; }
	.ik-header__right { display: flex; grid-column: 3; justify-content: flex-end; align-items: center; gap: 1rem; }
	.ik-header__links { display: flex; flex-direction: column; align-items: flex-end; gap: 0.35rem; }
	.ik-header__top { display: flex; align-items: center; gap: 0.9rem; }
	.ik-header__cta { min-height: 2.25rem; padding: 0.4rem 0.9rem; font-size: 0.6875rem; white-space: nowrap; }
	.ik-header__left .ik-menu, .ik-header__links .ik-menu { flex-wrap: nowrap; white-space: nowrap; }
	.ik-header__left .ik-menu { gap: 0.25rem 1.5rem; }
}

@media (min-width: 1200px) and (max-width: 1599px) {
	.ik-header__bar { max-width: calc(100% - 2 * var(--ik-gutter)); gap: 1rem; }
	.ik-header .ik-menu a { font-size: 0.6875rem; }
	.ik-header__left .ik-menu { gap: 0.25rem 1.1rem; }
	.ik-header__right { gap: 0.75rem; }
	.ik-logo__img { max-width: 10.5rem; }
}

@media (min-width: 1200px) and (max-width: 1399px) {
	.ik-header__left .ik-menu { gap: 0.25rem 0.85rem; }
	.ik-header__links .ik-menu { gap: 0.25rem 0.9rem; }
	.ik-header__cta { padding: 0.4rem 0.65rem; font-size: 0.625rem; }
	.ik-header .ik-menu a { font-size: 0.625rem; }
	.ik-header__right { gap: 0.5rem; }
	.ik-logo__img { max-width: 9rem; }
}

/* ---------- Accueil : titre et slider ---------- */
.ik-hero { background: var(--ik-blue); color: var(--ik-white); padding-block: clamp(1.5rem, 1rem + 2.5vw, 3rem) clamp(1.5rem, 1rem + 3vw, 3.5rem); overflow: visible; }
.ik-hero__title { color: var(--ik-white); font-size: var(--ik-h1); font-weight: 600; margin: 0 0 clamp(1rem, 0.6rem + 2vw, 2.25rem); }
/* bandes décoratives (formes d'origine du site) : dans la marge de droite, derrière tout le contenu */
.ik-hero::before { content: ""; position: absolute; z-index: 0; top: 0; right: -9.4rem; width: 50.7rem; height: 85.5rem; background: url("../img/shape-stripes.svg") no-repeat right top / contain; pointer-events: none; display: none; }
@media (min-width: 992px) {
	.ik-hero::before { display: block; }
}
.ik-hero .ik-container { position: relative; z-index: 2; }
.ik-main > .ik-sec { z-index: 1; }
.ik-main > .ik-hero { z-index: auto; }

/* slider */
.ik-slider { position: relative; }
.ik-slider__viewport { overflow: hidden; background: var(--ik-white); aspect-ratio: 2 / 1; touch-action: pan-y; }
.ik-slider__track { display: flex; height: 100%; transition: transform 0.6s ease; will-change: transform; }
.ik-slide { flex: 0 0 100%; min-width: 0; height: 100%; }
.ik-slide picture, .ik-slide a { display: block; height: 100%; }
.ik-slide img { width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
@media (max-width: 767px) {
	.ik-slider.has-mobile .ik-slider__viewport { aspect-ratio: 4 / 5; }
}
.ik-slider__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; background: rgba(255, 255, 255, 0.85); border-radius: 50%; display: grid; place-items: center; box-shadow: 0 1px 6px rgba(0, 0, 0, 0.25); }
.ik-slider__arrow span { width: 0.7rem; height: 0.7rem; border-top: 2px solid var(--ik-blue); border-left: 2px solid var(--ik-blue); }
.ik-slider__arrow--prev { left: 0.5rem; }
.ik-slider__arrow--prev span { transform: translateX(2px) rotate(-45deg); }
.ik-slider__arrow--next { right: 0.5rem; }
.ik-slider__arrow--next span { transform: translateX(-2px) rotate(135deg); }
.ik-slider__arrow:hover { background: var(--ik-white); }
@media (max-width: 767px) {
	.ik-slider__arrow { display: none; }
}
@media (min-width: 992px) {
	.ik-slider__arrow--prev { left: -3.5rem; background: transparent; box-shadow: none; }
	.ik-slider__arrow--next { right: -3.5rem; background: transparent; box-shadow: none; }
	.ik-slider__arrow span { border-color: var(--ik-white); width: 1rem; height: 1rem; }
}
.ik-slider__dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.15rem; margin-top: 0.75rem; }
.ik-slider__dot { width: 1.5rem; height: 1.5rem; padding: 0; border: 0; background: none; position: relative; }
.ik-slider__dot::after { content: ""; position: absolute; inset: 0.5rem; border-radius: 50%; background: rgba(255, 255, 255, 0.45); transition: background 0.25s, transform 0.25s; }
.ik-slider__dot.is-active::after { background: var(--ik-white); transform: scale(1.25); }
.ik-slider__pause { position: absolute; top: 0.5rem; right: 0.5rem; z-index: 3; width: 2rem; height: 2rem; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.85); opacity: 0; transition: opacity 0.2s; }
.ik-slider__pause::before { content: ""; position: absolute; inset: 0; margin: auto; width: 0.6rem; height: 0.7rem; border-left: 3px solid var(--ik-blue); border-right: 3px solid var(--ik-blue); }
.ik-slider__pause[aria-pressed="true"]::before { border-right: 0; border-left: 0.7rem solid var(--ik-blue); border-top: 0.4rem solid transparent; border-bottom: 0.4rem solid transparent; width: 0; height: 0; }
.ik-slider:hover .ik-slider__pause, .ik-slider__pause:focus-visible { opacity: 1; }

/* ---------- Métier : bandeau ---------- */
.ik-banner { position: relative; padding: 0; color: var(--ik-white); background: var(--ik-dark); overflow: hidden; }
.ik-banner__bg { position: absolute; inset: 0; }
.ik-banner__bg picture, .ik-banner__img { display: block; width: 100%; height: 100%; }
.ik-banner__img { object-fit: cover; }
/* the colour of the activity is blended on the photo: "multiply" (Capital Markets, Properties, Project Services) or "soft light" (Consulting), as on the former site */
.ik-banner__bg::before { content: ""; position: absolute; inset: 0; z-index: 1; background: var(--ik-tint, transparent); mix-blend-mode: multiply; }
.ik-banner--soft .ik-banner__bg::before { mix-blend-mode: soft-light; }
.ik-banner__inner { position: relative; z-index: 1; padding-block: 1.75rem 2.25rem; display: flex; flex-direction: column; gap: 1.75rem; }
.ik-banner__logo svg, .ik-banner__logo img { display: block; width: auto; max-width: 15rem; max-height: 3.5rem; }
.ik-banner__items { list-style: none; margin: 0.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.25rem 1rem; text-align: center; align-items: start; }
.ik-banner__item { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 0.85rem; }
@media (max-width: 767px) { .ik-banner__item:last-child:nth-child(odd) { grid-column: 1 / -1; } }
.ik-banner__icon { display: flex; align-items: center; justify-content: center; height: 4.25rem; width: 100%; }
.ik-banner__icon svg, .ik-banner__icon img { width: auto; height: 100%; max-height: 100%; max-width: 5.5rem; }
.ik-banner__label { font-size: 0.9375rem; font-weight: 500; line-height: 1.35; max-width: 11rem; }
.ik-banner__title { color: var(--ik-white); font-size: 1.1875rem; font-weight: 500; line-height: 1.4; text-align: center; margin: 0.5rem 0 0; }
@media (min-width: 768px) and (max-width: 991px) {
	.ik-banner__items { grid-template-columns: repeat(var(--ik-cols, 4), 1fr); }
	.ik-banner__icon { height: 6rem; }
	.ik-banner__icon img, .ik-banner__icon svg { max-width: 7rem; }
	.ik-banner__item { padding-inline: 0.5rem; min-height: 10rem; }
	.ik-banner__item + .ik-banner__item { border-left: 1px solid rgba(255, 255, 255, 0.55); }
}
/* desktop: same proportions as the former site (everything follows the width of the screen) */
@media (min-width: 992px) {
	.ik-banner__inner { max-width: calc(var(--ik-container) + 2 * var(--ik-gutter)); padding-block: 0 6rem; gap: 0; min-height: 0; }
	.ik-banner__logo { width: 100%; max-width: 75.333rem; margin: 4.333rem auto 0; padding-inline: var(--ik-gutter); box-sizing: border-box; }
	.ik-banner__logo img, .ik-banner__logo svg { width: 100%; max-width: 22.333rem; max-height: none; }
	.ik-banner__items { width: 100%; margin: 6rem 0 2rem; grid-template-columns: repeat(var(--ik-cols, 4), 1fr); gap: 0; align-items: stretch; }
	.ik-banner__item { position: relative; padding-inline: 1.7rem; gap: 0; justify-content: flex-start; }
	/* 5 pictos: wider area and tighter columns, as on the former site */
	.ik-banner--wide .ik-banner__inner { max-width: 91rem; }
	/* side margins of the columns (they decide the line breaks of the labels), as on the former site */
	.ik-banner--tint-capital-markets .ik-banner__item, .ik-banner--tint-project-services .ik-banner__item { padding-inline: 1.5rem; }
	.ik-banner--tint-capital-markets .ik-banner__item:nth-child(1), .ik-banner--tint-project-services .ik-banner__item:nth-child(1) { padding-inline: .667rem; }
	.ik-banner--tint-capital-markets .ik-banner__item:nth-child(2), .ik-banner--tint-project-services .ik-banner__item:nth-child(2) { padding-inline: 1.3rem; }
	.ik-banner--tint-properties .ik-banner__item { padding-inline: .667rem; }
	.ik-banner__item:not(:last-child)::after { content: ""; position: absolute; top: 1rem; right: 0; width: 1px; height: 15.8rem; background: var(--ik-white); z-index: 2; }
	.ik-banner__icon { height: 11.667rem; flex-shrink: 0; }
	.ik-banner__icon svg, .ik-banner__icon img { width: auto; height: auto; max-height: 100%; }
	/* the picture is replaced by an inline SVG a few seconds after the load (SVG Support plugin): same size before and after, no jump */
	.ik-banner__icon img, .ik-banner__icon svg { max-width: 10rem; }
	.ik-banner--icons-top .ik-banner__icon { align-items: flex-start; }
	.ik-banner__label { max-width: none; font-size: 1.667rem; font-weight: 400; line-height: 1.4; margin-bottom: 2.333rem; }
	.ik-banner__title { font-size: 1.667rem; font-weight: 400; line-height: 1.4; }
}

/* ---------- Colonnes, cartes, chiffres ---------- */
.ik-grid { display: grid; gap: 2rem; }
.ik-col__image { margin-top: 1.5rem; }
@media (min-width: 768px) {
	.ik-grid--2 { grid-template-columns: repeat(2, 1fr); gap: 2.5rem 3rem; }
	.ik-grid--3 { grid-template-columns: repeat(3, 1fr); gap: 2.5rem 2rem; }
}

.ik-cards { padding-block: 0 var(--ik-space); }
.ik-cards__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.ik-card { display: flex; flex-direction: column; gap: 0.5rem; height: 100%; min-height: 9rem; padding: 1.5rem; background: var(--card-bg, var(--ik-blue)); color: var(--ik-white); text-decoration: none; position: relative; transition: transform 0.25s, box-shadow 0.25s; }
a.ik-card:hover { color: var(--ik-white); transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18); }
.ik-card__title { color: var(--ik-white); font-size: var(--ik-h3); margin: 0; text-transform: uppercase; text-decoration: underline; text-underline-offset: 0.25em; }
.ik-card__text { margin: 0; font-size: var(--ik-small); max-width: 36ch; }
.ik-card__arrow { margin-top: auto; align-self: flex-end; width: 1.5rem; height: 1.5rem; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg) scale(0.6); opacity: 0.85; }
@media (min-width: 640px) {
	.ik-cards__list { grid-template-columns: repeat(2, 1fr); }
}

/* key figures: large light numbers, hairline + short accent bar, small spaced labels */
.ik-stats { background: var(--ik-grey); }
.ik-stats__list { display: flex; flex-direction: column; gap: 2rem; margin: 1.5rem 0 0; padding: 0; }
.ik-stats__col { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1.5rem; }
.ik-stats__item { position: relative; display: flex; flex-direction: column; gap: 0.5rem; padding-top: 1rem; border-top: 1px solid #cfd8df; break-inside: avoid; }
.ik-stats__item::before { content: ""; position: absolute; left: 0; top: -1px; width: 2.25rem; height: 3px; background: var(--ik-accent); }
.ik-stats__value { display: block; color: var(--ik-accent); font-size: clamp(1.75rem, 1.2rem + 2.6vw, 2.5rem); font-weight: 300; line-height: 1.05; letter-spacing: -0.02em; font-variant-numeric: tabular-nums lining-nums; }
.ik-stats__label { display: block; color: #4a5560; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.09em; line-height: 1.45; text-transform: uppercase; }
@media (min-width: 640px) {
	.ik-stats__col { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 2rem; }
}

/* ---------- Équipe ---------- */
.ik-team::before { content: ""; position: absolute; z-index: 0; top: 40rem; right: -12rem; width: 66.7rem; height: 58.8rem; background: url("../img/watermark-logo.svg") no-repeat center / contain; pointer-events: none; display: none; }
@media (min-width: 992px) {
	.ik-team::before { display: block; }
}
.ik-team .ik-container { position: relative; z-index: 1; }
.ik-team__grid { display: grid; gap: 2.5rem 1.5rem; }
.ik-member__photo img { width: 100%; height: auto; aspect-ratio: 1 / 1.25; object-fit: cover; object-position: top; filter: grayscale(1); }
.ik-member__name { font-size: var(--ik-h3); margin: 1rem 0 0.1rem; }
.ik-member__position { font-style: italic; margin: 0 0 0.75rem; font-size: var(--ik-small); }
.ik-member__bio { font-size: var(--ik-small); line-height: 1.55; }
.ik-member--single .ik-member__photo { max-width: 22rem; }
@media (max-width: 639px) {
	.ik-member__photo { max-width: 14rem; }
}
@media (min-width: 640px) { .ik-team__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .ik-team__grid { grid-template-columns: repeat(3, 1fr); } }

/* ---------- Logos ---------- */
.ik-logos { padding-block: calc(var(--ik-space) * 0.6); overflow: hidden; }
.ik-logos__viewport { margin-top: 1rem; overflow: hidden; }
.ik-logos__track { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: clamp(2rem, 5vw, 4rem); width: max-content; }
.ik-logos__item img { width: auto; height: clamp(2.75rem, 2rem + 3vw, 4.5rem); max-width: 10rem; object-fit: contain; }
.ik-logos--carousel .ik-logos__track { animation: ik-marquee 45s linear infinite; }
.ik-logos--carousel .ik-logos__viewport:hover .ik-logos__track { animation-play-state: paused; }
.ik-logos--grid .ik-logos__viewport { overflow: visible; }
.ik-logos--grid .ik-logos__track { width: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem 1rem; align-items: center; justify-items: center; max-width: 90rem; margin-inline: auto; padding-inline: var(--ik-gutter); }
.ik-logos--grid .ik-logos__item { width: 100%; display: flex; justify-content: center; align-items: center; min-height: 5rem; }
.ik-logos--grid .ik-logos__item img { width: auto; height: auto; max-width: 100%; max-height: 5.5rem; object-fit: contain; }
@media (min-width: 640px) { .ik-logos--grid .ik-logos__track { grid-template-columns: repeat(5, 1fr); gap: 1.5rem 1.5rem; } }
@media (min-width: 900px) { .ik-logos--grid .ik-logos__track { grid-template-columns: repeat(6, 1fr); gap: 2rem 2rem; } }
@media (min-width: 1200px) { .ik-logos--grid .ik-logos__track { grid-template-columns: repeat(8, 1fr); gap: 2.5rem 2.5rem; } }
@keyframes ik-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- Image et texte ---------- */
.ik-feature { display: grid; gap: 1.25rem; align-items: start; }
.ik-feature__image { max-width: 14rem; }
.ik-feature__image img { width: 100%; height: auto; }
.ik-feature__title { font-size: var(--ik-h2); margin-bottom: 0.4em; }
.ik-feature__body .ik-prose { font-size: var(--ik-text-size); }
@media (min-width: 640px) {
	.ik-feature { grid-template-columns: minmax(8rem, 20%) 1fr; gap: 1.75rem; }
	.ik-feature__image { max-width: none; }
	.ik-feature--right { grid-template-columns: 1fr minmax(8rem, 20%); }
	.ik-feature--right .ik-feature__image { order: 2; }
}

/* ---------- Mots-clés ---------- */
.ik-tags { padding-block: calc(var(--ik-space) * 0.5); }
.ik-tags .ik-container { border-top: 1px solid var(--ik-line); padding-top: 1.5rem; }

/* ---------- Articles ---------- */
.ik-title--bar { position: relative; padding-top: 1.1rem; margin-bottom: 1.75rem; }
.ik-title--bar::before { content: ""; position: absolute; left: 0; top: 0; width: 2.75rem; height: 3px; background: var(--ik-accent); }
.ik-split__grid { display: grid; gap: 3.5rem; }
.ik-split__aside { background: var(--ik-grey); padding: 1.75rem 1.5rem; align-self: start; }
.ik-split__aside .ik-title { font-size: var(--ik-small); text-transform: uppercase; letter-spacing: 0.1em; color: var(--ik-accent); }
.ik-news__list { display: grid; gap: 2.25rem 1.75rem; }
.ik-post-card { display: grid; gap: 1rem; align-content: start; }
.ik-post-card__image { display: block; overflow: hidden; background: var(--ik-grey); }
.ik-post-card__image img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 0.6s ease; }
.ik-post-card:hover .ik-post-card__image img { transform: scale(1.03); }
.ik-post-card__date { display: block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: #5c666d; }
.ik-post-card__title { font-size: var(--ik-h3); line-height: 1.3; margin: 0.35rem 0 0.9rem; }
.ik-post-card__title a { color: var(--ik-text); text-decoration: none; }
.ik-post-card__title a:hover { color: var(--ik-accent); }
@media (min-width: 640px) {
	.ik-news__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ik-post-card--feature { grid-column: 1 / -1; }
	.ik-post-card--feature .ik-post-card__image img { aspect-ratio: 16 / 8; }
	.ik-post-card--feature .ik-post-card__title { font-size: calc(var(--ik-h3) * 1.35); }
}
@media (min-width: 992px) {
	.ik-split__grid { grid-template-columns: minmax(0, 2.15fr) minmax(0, 1fr); gap: 5rem; align-items: start; }
	.ik-split__aside { position: sticky; top: calc(var(--ik-header-h) + 2rem); padding: 2.333rem 2rem; }
	.ik-news__list { gap: 3.333rem 2.333rem; }
	.ik-post-card__date { font-size: .867rem; }
}
/* picto + text columns (activity pages) */
.ik-col--image-first { text-align: center; }
.ik-col--image-first .ik-col__image { margin: 0 auto 1.25rem; height: 4.5rem; display: flex; justify-content: center; align-items: center; }
.ik-col--image-first .ik-col__image img { width: auto; height: 100%; max-width: 6rem; object-fit: contain; }
@media (min-width: 992px) { .ik-col--image-first .ik-col__image { height: 5.333rem; margin-bottom: 1.667rem; } .ik-col--image-first .ik-col__image img { max-width: 7rem; } }
.ik-pagination { margin-top: 2.5rem; }
.ik-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 2.5rem; height: 2.5rem; margin: 0 0.15rem; padding: 0 0.5rem; color: var(--ik-text); text-decoration: none; border: 1px solid var(--ik-line); }
.ik-pagination .page-numbers.current, .ik-pagination .page-numbers:hover { background: var(--ik-blue); border-color: var(--ik-blue); color: var(--ik-white); }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 2rem; }

.ik-article__meta { font-size: var(--ik-small); color: #5c666d; margin-bottom: 0.5rem; }
.ik-article__meta a { color: inherit; }
.ik-article__content img { height: auto; }
.ik-share { margin-top: 2.5rem; }
.ik-share__title { font-size: var(--ik-small); text-transform: uppercase; letter-spacing: 0.06em; }
.ik-postnav { display: grid; gap: 1rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--ik-line); font-size: var(--ik-small); }
.ik-postnav a { text-decoration: none; }
.ik-postnav__all { font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
@media (min-width: 768px) {
	.ik-postnav { grid-template-columns: 1fr auto 1fr; align-items: center; }
	.ik-postnav__next { text-align: right; }
	.ik-postnav__all { text-align: center; }
}

/* ---------- Publications (téléchargements) ---------- */
.ik-downloads .dlm-downloads { list-style: none; padding-left: 0; margin: 0; }
.ik-downloads .dlm-downloads li { border-bottom: 1px solid var(--ik-line); padding: 0.9rem 0; }
.ik-downloads .download-link, .ik-downloads .download-link:hover { display: block; color: var(--ik-dark) !important; font-size: var(--ik-text-size); line-height: 1.35; text-decoration: none !important; }
/* long file names (no spaces) must not overflow the sidebar */
.ik-split__aside { min-width: 0; overflow-wrap: anywhere; }
.ik-downloads a, .ik-downloads a:hover { text-decoration: none !important; overflow-wrap: anywhere; word-break: break-word; }
.ik-split__aside .ik-downloads .download-link { font-size: var(--ik-small); font-weight: 500; }
.ik-downloads .dlm-downloads a.download-link::after { content: "télécharger la publication pdf"; display: block; margin-top: 0.4rem; font-size: var(--ik-small); color: var(--ik-accent); }
[lang^="en"] .ik-downloads .dlm-downloads a.download-link::after { content: "download the pdf publication"; }

/* ---------- Offres de carrières ---------- */
.ik-jobs__intro { margin-bottom: 2.5rem; }
.ik-jobs__list { display: grid; gap: 1.5rem; }
.ik-job { padding: 1.5rem; border: 1px solid var(--ik-line); background: var(--ik-white); }
.ik-job__head, .ik-job-single__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.ik-job__title { font-size: var(--ik-h3); margin: 0; }
.ik-job__title a { color: var(--ik-text); text-decoration: none; }
.ik-job__title a:hover { color: var(--ik-accent); }
.ik-job__logo img { width: auto; max-height: 2.5rem; max-width: 9rem; }
.ik-job__meta { list-style: none; margin: 1rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem; font-size: var(--ik-small); color: #4a545b; }
.ik-job__meta-item { position: relative; padding-left: 1.3rem; }
.ik-job__meta-item::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--ik-gold); }
.ik-job__summary { font-size: var(--ik-small); }
.ik-jobs__spontaneous { margin-top: 2.5rem; }
.ik-job-single__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-block: 1rem 2rem; }
.ik-job-single__block { margin-top: 2rem; }
.ik-job-single__title { font-size: var(--ik-h3); text-transform: uppercase; letter-spacing: 0.03em; }

/* fenêtre « Postuler » */
.ik-apply[hidden] { display: none; }
.ik-apply { position: fixed; inset: 0; z-index: 200; display: flex; justify-content: flex-end; }
.ik-apply__backdrop { position: absolute; inset: 0; background: rgba(14, 14, 14, 0.55); }
.ik-apply__panel { position: relative; width: min(100%, 34rem); height: 100%; overflow-y: auto; padding: 3.5rem var(--ik-gutter) 2rem; background: var(--ik-white); }
.ik-apply__close { position: absolute; top: 0.75rem; right: 0.75rem; width: 2.75rem; height: 2.75rem; border: 0; background: none; font-size: 2rem; line-height: 1; color: var(--ik-dark); }
body.ik-apply-open { overflow: hidden; }

/* ---------- Formulaires (Contact Form 7) ---------- */
.ik-form-sec__image { margin-top: 2.5rem; }
.ik-form-sec__image img { width: 100%; height: auto; max-height: 28rem; object-fit: cover; }
.ik-form .wpcf7 { margin-top: 1.5rem; }
.wpcf7 label { display: block; font-weight: 600; margin-bottom: 0.35rem; color: var(--ik-dark); }
.wpcf7 .field-wrapper { margin-bottom: 1.1rem; }
.wpcf7 .field-wrapper > label { color: #5c7a8e; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="url"], .wpcf7 input[type="number"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; max-width: 100%; padding: 0.7rem 0.85rem; font: inherit; color: var(--ik-dark); background: var(--ik-white); border: 1px solid #707070; border-radius: 0;
}
.wpcf7 textarea { min-height: 9rem; }
.wpcf7 input[type="submit"], .wpcf7 button[type="submit"], .ik-form .btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 2.9rem; padding: 0.6rem 1.8rem; font: inherit; font-size: var(--ik-small); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
	color: var(--ik-white); background: var(--ik-blue); border: 2px solid var(--ik-blue); border-radius: 0; cursor: pointer; transition: background 0.25s;
}
.wpcf7 input[type="submit"]:hover, .wpcf7 button[type="submit"]:hover { background: var(--ik-dark); border-color: var(--ik-dark); }
.wpcf7-not-valid-tip { color: #b3261e; font-size: var(--ik-small); margin-top: 0.3rem; }
.wpcf7 .wpcf7-response-output { margin: 1.25rem 0 0; padding: 0.75rem 1rem; font-size: var(--ik-small); }

/* formulaire de candidature */
#postular-form .form-field { margin-bottom: 1rem; }
#postular-form label { font-weight: 400; }
#postular-form input[type="file"] { border: 0; padding: 0.4rem 0; width: auto; }
#postular-form .file-repeater { margin: 1.5rem 0 2rem; }
#postular-form .file-repeater > label, #postular-form .append-file { font-weight: 700; }
#postular-form .file-repeater .wpcf7-field-group:first-child { display: none; }
#postular-form .append-file { display: inline-block; cursor: pointer; margin-bottom: 1rem; color: var(--ik-accent); }
#postular-form .append-file::before { content: "+ "; font-weight: 700; }
#postular-form .file-field + p { display: none; }
#postular-form .file-field { margin-bottom: 0.75rem; }
#postular-form .remove-file { cursor: pointer; margin-left: 1rem; font-size: var(--ik-small); text-decoration: underline; }
#postular-form .wpcf7-form-control-wrap:not(.active) + .remove-file { visibility: hidden; pointer-events: none; }
#postular-form .form-footer p { display: flex; flex-wrap: wrap; gap: 0.75rem; }
#postular-form .btn.grey { background: #e6e6e6; color: var(--ik-dark); border-color: currentColor; }

/* ---------- Pied de page ---------- */
.ik-footer { background: var(--ik-dark); color: var(--ik-white); padding-block: clamp(2.5rem, 2rem + 3vw, 4.5rem) 1.5rem; font-size: var(--ik-small); }
.ik-footer a { color: var(--ik-white); }
.ik-footer__grid { display: grid; gap: 2rem; }
.ik-footer__logo { width: auto; height: auto; max-height: 3.5rem; max-width: 12rem; }
.ik-footer .ik-menu { flex-direction: column; gap: 0.5rem; }
.ik-footer .ik-menu a { color: var(--ik-white); font-size: var(--ik-small); text-transform: uppercase; letter-spacing: 0; font-weight: 400; }
.ik-footer .ik-menu a:hover { text-decoration: underline; }
.ik-footer .ik-menu li:first-child > a[href="#"] { pointer-events: none; }
.ik-footer__nav2 { margin-top: 1.25rem; }
.ik-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.35); font-size: 0.8125rem; }
.ik-footer__bottom .ik-prose p { margin: 0; display: inline; }
.ik-footer__bottom a { text-decoration: none; }
.ik-footer__reviews iframe { display: block; border: 0; max-width: 100%; }
@media (min-width: 768px) {
	.ik-footer__grid { grid-template-columns: 1.2fr 1fr 1.2fr; gap: 3rem; }
}

/* ==========================================================================
   ORDINATEUR (>= 992 px) : mêmes proportions que le site actuel.
   Le site actuel fixe html { font-size: .7813vw } (15 px à 1 920 px, 15 px fixes au-delà) : toutes ses mesures en rem suivent donc
   la largeur de l'écran. Les valeurs ci-dessous sont celles de l'ancien site.
   ========================================================================== */
@media (min-width: 992px) {

	html { font-size: .7813vw; }

	:root {
		--ik-text-size: 1.333rem;
		--ik-small: 1rem;
		--ik-h1: 3.2rem;
		--ik-h2: 2rem;
		--ik-h3: 1.333rem;
		--ik-gutter: 1.667rem;
		--ik-container: 79.333rem;
		--ik-wide: 128rem;
		--ik-header-h: 5.267rem;
	}

	body { line-height: 1.7; }
	h1, h2, h3, h4 { line-height: 1.4; }
	h2 { margin-bottom: 2.333rem; }
	.ik-container--narrow { max-width: 60rem; }

	/* en-tête */
	.ik-header__bar { max-width: var(--ik-wide); padding: 1rem var(--ik-gutter); height: auto; min-height: var(--ik-header-h); grid-template-columns: 5fr 2fr 5fr; gap: 0; }
	.ik-logo { justify-self: start; width: 100%; max-width: 16.4rem; min-width: 8rem; }
	.ik-logo__img { width: 100%; height: auto; max-width: none; max-height: none; }
	.ik-header .ik-menu { gap: 0; }
	.ik-header .ik-menu li { font-size: .8rem; line-height: 1.7; margin-left: 2rem; }
	.ik-header .ik-menu a { font-size: .8rem; line-height: 1.7; letter-spacing: 0; }
	.ik-header__links { gap: .25rem; }
	.ik-header__right { gap: 2.333rem; }
	.ik-header__top { gap: 1.333rem; margin-bottom: .2rem; align-items: center; }
	.ik-header__cta { font-size: .8rem; line-height: 1.7; padding: .5rem .95rem; min-height: 0; letter-spacing: 0; font-weight: 500; border-width: 1px; }
	.ik-socials { gap: .65rem; }
	.ik-social { width: 1.6rem; height: 1.6rem; }
	.ik-social svg { width: .8rem; height: .8rem; }

	/* accueil : titre, slider */
	.ik-hero { padding-block: 0 3.333rem; display: flow-root; }
	.ik-hero__title { margin: 4rem 0; max-width: none; }
	.ik-slider__viewport { aspect-ratio: 1488 / 714; }
	/* flèches dans l'image, bleues et sans fond ; pas de points sur ordinateur (comme le site actuel) */
	.ik-slider__arrow, .ik-slider__arrow--prev, .ik-slider__arrow--next { background: transparent; box-shadow: none; width: 3rem; height: 4rem; border-radius: 0; }
	.ik-slider__arrow--prev { left: 1.4rem; }
	.ik-slider__arrow--next { right: 1.4rem; }
	.ik-slider__arrow span { width: 1.3rem; height: 1.3rem; border-color: var(--ik-accent); border-width: 2.5px 0 0 2.5px; }
	.ik-slider__arrow--prev span { transform: translateX(.25rem) rotate(-45deg); }
	.ik-slider__arrow--next span { transform: translateX(-.25rem) rotate(135deg); }
	.ik-slider__dots { display: none; }
	.ik-slider__pause { top: .75rem; right: .75rem; }

	/* textes de l'accueil : pas de marges de section, ce sont les titres qui espacent */
	.ik-text { padding-block: 3rem 0; }
	.ik-hero + .ik-text { padding-top: 5.333rem; }
	.ik-text .ik-title { margin-bottom: 2.333rem; }
	.ik-text + .ik-text { padding-top: 3rem; }
	/* activity pages (after a banner): wider content and tighter blocks, like the former site */
	.ik-banner ~ .ik-sec .ik-container { max-width: calc(var(--ik-container) + 2 * var(--ik-gutter)); }
	.ik-banner ~ .ik-text .ik-prose p { margin: 0; }
	.ik-banner ~ .ik-text .ik-prose h3 { margin-bottom: 2rem; }
	.ik-banner ~ .ik-text + .ik-text { padding-top: 2.333rem; }
	.ik-banner + .ik-text:not(:has(.ik-title)) { padding-top: 2.333rem; }
	.ik-banner ~ .ik-columns { padding-block: 3rem 0; }
	.ik-banner ~ .ik-columns + .ik-columns { padding-top: 4.667rem; }
	.ik-banner ~ .ik-columns .ik-grid--2 { column-gap: 4.667rem; }
	.ik-banner ~ .ik-sec .ik-prose li { margin-bottom: 0; }
	.ik-tags { padding-block: 0; display: flow-root; }
	.ik-tags .ik-container { border-top: 0; padding-top: 0; }
	.ik-tags .ik-container::before { content: ""; display: block; margin: 3rem 0 2rem; border-top: 1px solid #707070; }

	/* cartes */
	.ik-cards { padding-block: 1.667rem 3rem; }
	.ik-cards__list { gap: .667rem; }
	.ik-card { padding: 3rem; min-height: 0; gap: 0; }
	.ik-card__title { font-size: var(--ik-h2); margin-bottom: 1.333rem; }
	.ik-card__text { font-size: var(--ik-text-size); max-width: none; }
	.ik-card__arrow { display: none; }

	/* chiffres clés */
	.ik-stats { padding-block: 4rem 4.667rem; }
	.ik-stats .ik-title { margin-bottom: 0; }
	.ik-stats__list { gap: 2.667rem; margin-top: 2.333rem; margin-bottom: 0; }
	.ik-stats__col { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.667rem 3.333rem; }
	.ik-stats__item { gap: .667rem; padding-top: 1.333rem; }
	.ik-stats__item::before { width: 3rem; height: 3px; }
	.ik-stats__value { font-size: 3.2rem; }
	.ik-stats__label { font-size: .867rem; letter-spacing: .1em; }

	/* équipe */
	.ik-team { padding-block: 5rem 4rem; }
	.ik-team .ik-container { max-width: 87.4rem; transform: translateX(4.5rem); }
	.ik-team .ik-title { margin-bottom: 2rem; }
	.ik-team__grid { grid-template-columns: repeat(3, 1fr); gap: 5rem; }
	.ik-member__photo { margin-bottom: 2rem; }
	.ik-member__photo img { width: 100%; max-width: 16rem; aspect-ratio: 237 / 300; }
	.ik-member__name { font-size: 1.333rem; margin: 0; }
	.ik-member__position { margin: 0; font-size: var(--ik-text-size); }
	.ik-member__bio { margin-top: 2rem; font-size: 1rem; line-height: 1.7; }
	.ik-member__bio p { margin-bottom: 0; }

	/* logos : grille de 8 colonnes, cases carrées */
	.ik-logos { padding-block: 0; }
	.ik-logos .ik-title { margin-top: 3rem; margin-bottom: 0; padding-top: 3rem; }
	.ik-logos--grid .ik-logos__track { max-width: 123.667rem; grid-template-columns: repeat(8, 1fr); gap: 0 5rem; padding-inline: var(--ik-gutter); }
	.ik-logos--grid .ik-logos__item { aspect-ratio: 1; min-height: 0; }
	.ik-logos--grid .ik-logos__item img { width: 100%; height: 100%; max-height: none; object-fit: contain; }

	/* image et texte (actions publiques) */
	.ik-feature-sec { padding-block: 0; }
	.ik-main { padding-bottom: 6.333rem; }
	.ik-feature-sec .ik-title--rule { margin-top: 0; padding-top: 2.333rem; }
	.ik-feature { display: flex; column-gap: 2rem; align-items: flex-start; }
	.ik-feature__image { max-width: 15rem; flex: 0 0 15rem; }
	.ik-feature__title { font-size: var(--ik-h2); }

	/* pied de page : fixe, révélé sous le contenu (comme l'ancien site) */
	body { padding-bottom: 30.4rem; }
	.ik-main { position: relative; z-index: 1; background: var(--ik-white); }
	.ik-footer { position: fixed; left: 0; right: 0; bottom: 0; z-index: 0; padding-block: 4.667rem 2.333rem; }
	.ik-footer .ik-container { max-width: 79.333rem; }
	.ik-footer__grid { grid-template-columns: 1fr 1fr 1fr; gap: 0; }
	.ik-footer__logo { max-width: 9.467rem; max-height: none; width: 100%; }
	.ik-footer .ik-menu { gap: 0; }
	.ik-footer .ik-menu a { font-size: 14px; text-transform: uppercase; letter-spacing: 0; font-weight: 400; line-height: 1.7; }
	.ik-footer .ik-menu li { font-size: 14px; line-height: 1.7; }
	.ik-footer__contact .ik-prose { font-size: 1.067rem; }
	.ik-footer__contact .ik-prose p { margin: 0; }
	.ik-footer__contact .ik-prose a { color: var(--ik-white); text-decoration: none; }
	.ik-footer__contact::after { content: ""; display: block; height: .8rem; }
	.ik-footer__contact .ik-btn { border-radius: 1.667rem; padding: 1rem 1.5rem; font-size: 1.067rem; font-weight: 700; text-transform: none; letter-spacing: 0; margin: .667rem 0 1.333rem; border-color: rgba(255, 255, 255, .65); }
	.ik-footer__contact { display: flex; flex-direction: column; align-items: flex-start; text-align: left; }
	.ik-footer__bottom { margin-top: 2.333rem; padding-top: 2.333rem; font-size: .933rem; }
	.ik-footer__bottom .ik-prose a { font-size: 1.067rem; }
}

@media (min-width: 1921px) {
	html { font-size: 15px; }
}

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
	.ik-logos--carousel .ik-logos__track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
	.ik-logos__item[aria-hidden="true"] { display: none; }
}

@media print {
	.ik-header, .ik-footer, .ik-slider__arrow, .ik-slider__dots { display: none !important; }
}

/* ---------- Activity pages: refined body (the banner is unchanged) ---------- */
.ik-banner ~ .ik-sec { --ik-accent: var(--ik-tint, #086496); }
.ik-banner ~ .ik-sec .ik-prose h2, .ik-banner ~ .ik-text .ik-title { padding-left: 1rem; border-left: 3px solid var(--ik-tint, var(--ik-accent)); }
.ik-banner ~ .ik-sec .ik-prose h3 { letter-spacing: 0.01em; }
.ik-banner ~ .ik-sec .ik-prose ul { list-style: none; padding: 0; margin: 0 0 1.5rem; border-top: 1px solid #e3e8ec; }
.ik-banner ~ .ik-sec .ik-prose ul li { position: relative; margin: 0; padding: 0.7rem 0 0.7rem 1.75rem; border-bottom: 1px solid #e3e8ec; }
.ik-banner ~ .ik-sec .ik-prose ul li::before { content: ""; position: absolute; left: 0; top: 1.3em; width: 0.8rem; height: 2px; background: var(--ik-tint, var(--ik-accent)); }
.ik-banner + .ik-text:not(:has(.ik-title)) .ik-prose { font-size: 1.12em; line-height: 1.75; color: #1b2830; }
.ik-banner ~ .ik-sec .ik-col__image img { box-shadow: 0 14px 40px rgba(14, 14, 14, 0.08); }
/* keywords as chips */
.ik-tags__list { list-style: none; display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0; padding: 0; }
.ik-tags__chip { padding: 0.4rem 1rem; border: 1px solid var(--ik-tint, var(--ik-accent)); border-radius: 999px; color: var(--ik-tint, var(--ik-accent)); font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.02em; line-height: 1.4; transition: background 0.25s, color 0.25s; }
.ik-tags__chip:hover { background: var(--ik-tint, var(--ik-accent)); color: var(--ik-white); }
@media (min-width: 992px) {
	.ik-tags__list { gap: 0.8rem; }
	.ik-tags__chip { padding: 0.5rem 1.2rem; font-size: 1rem; }
	.ik-banner ~ .ik-sec .ik-prose ul li { padding: 0.8rem 0 0.8rem 2rem; }
	.ik-banner ~ .ik-sec .ik-prose ul li::before { width: 1rem; top: 1.45em; }
}

/* text + two small maps + one large map (Clientèle diversifiée) */
.ik-columns--maps { position: relative; overflow: hidden; }
.ik-columns--maps .ik-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.ik-columns--maps .ik-col:nth-child(1) { grid-column: 1 / -1; }
.ik-columns--maps .ik-col:nth-child(4) { grid-column: 1 / -1; order: 1; }
.ik-columns--maps .ik-col:nth-child(2), .ik-columns--maps .ik-col:nth-child(3) { order: 2; }
.ik-columns--maps .ik-col__image { margin: 0; }
@media (min-width: 992px) {
	.ik-columns--maps .ik-grid { grid-template-columns: 21rem 15.3rem 1fr; column-gap: 0; row-gap: 1.667rem; align-items: start; }
	.ik-columns--maps .ik-col:nth-child(1) { grid-column: 1 / 3; grid-row: 1; padding-right: 2rem; }
	.ik-columns--maps .ik-col:nth-child(2) { grid-column: 1; grid-row: 2; padding-right: 0.5rem; }
	.ik-columns--maps .ik-col:nth-child(3) { grid-column: 2; grid-row: 2; }
	.ik-columns--maps .ik-col:nth-child(4) { grid-column: 3; grid-row: 1 / 3; order: 0; margin-left: 1rem; margin-top: -3rem; position: relative; z-index: 0; }
	.ik-columns--maps .ik-col:nth-child(1) { position: relative; z-index: 1; }
	.ik-columns--maps::before { content: ""; position: absolute; z-index: 0; top: 4rem; right: -14rem; width: 56rem; height: 49rem; background: url("../img/watermark-logo.svg") no-repeat center / contain; opacity: .9; pointer-events: none; }
	.ik-columns--maps .ik-container { position: relative; z-index: 1; }
	.ik-columns--maps .ik-col:nth-child(n+2) .ik-col__image img { box-shadow: none; }
}

/* two stacked texts + one large picture on the right (Properties: Techniques / Équipe + map) */
@media (min-width: 992px) {
	.ik-columns--side .ik-grid { grid-template-columns: 31rem 1fr; column-gap: 0; row-gap: 3rem; align-items: start; }
	.ik-columns--side .ik-col:nth-child(1) { grid-column: 1; grid-row: 1; position: relative; z-index: 1; }
	.ik-columns--side .ik-col:nth-child(2) { grid-column: 1; grid-row: 2; position: relative; z-index: 1; }
	.ik-columns--side .ik-col:nth-child(3) { grid-column: 2; grid-row: 1 / 3; order: 0; margin-left: 2rem; margin-top: 5.333rem; width: 100%; max-width: 48.2rem; }
}

.ik-columns--maps .ik-col__image img, .ik-columns--side .ik-col__image img { box-shadow: none !important; }

/* legend with a coloured picto (Properties map) */
.ik-legend { display: flex; align-items: center; gap: 1rem; margin: 0.75rem 0; }
.ik-legend__icon { flex: none; width: 3rem; height: auto; }
.ik-legend h3 { margin: 0 !important; }
@media (min-width: 992px) { .ik-legend { gap: 1.333rem; margin: 1rem 0; } .ik-legend__icon { width: 4.15rem; } }
.ik-legend > h3, .ik-legend > :not(img) { margin: 0 !important; padding: 0 !important; }
@media (min-width: 992px) { .ik-banner ~ .ik-columns--side { padding-bottom: 3rem; } }
/* picto columns: consecutive paragraphs read as one text (no gap between title lines and sentence) */
.ik-col--image-first .ik-prose p { margin: 0; }

/* article detail: head, large picture, readable text */
.ik-article__head { margin-bottom: 1.75rem; }
.ik-article__title { font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.4rem); line-height: 1.25; margin-bottom: 1rem; }
.ik-article__meta { margin: 0; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; }
.ik-article__hero { margin-top: 0; margin-bottom: 2.25rem; max-width: 62rem; }
.ik-article__hero img { display: block; width: 100%; height: auto; max-height: 34rem; object-fit: cover; }
.ik-article__content { font-size: var(--ik-text-size); line-height: 1.75; }
.ik-article__content p { margin-bottom: 1.25em; }
@media (min-width: 992px) {
	.ik-article__head { margin-bottom: 2.333rem; }
	.ik-article__title { font-size: 2.667rem; }
	.ik-article__meta { font-size: .867rem; }
	.ik-article__hero { max-width: 79.333rem; margin-bottom: 3.333rem; }
	.ik-article__hero img { max-height: 38rem; }
}

/* careers: offers on the left, cards on the right */
.ik-jobs { padding-block: 2.5rem; }
.ik-jobs__count { margin: 0 0 1.5rem; padding: 1.25rem 1.5rem; background: var(--ik-white); font-size: var(--ik-h3); letter-spacing: 0.02em; }
.ik-jobs__empty { padding: 0 0.25rem; }
.ik-jobs__aside { display: grid; gap: 1.5rem; align-content: start; }
.ik-jobs__card { padding: 1.75rem 1.5rem; background: var(--ik-white); }
.ik-jobs__card .ik-title { font-size: var(--ik-small); text-transform: uppercase; letter-spacing: 0.1em; color: var(--ik-accent); }
.ik-jobs__card p { margin: 0 0 1.25rem; }
.ik-jobs__card p:last-child { margin-bottom: 0; }
.ik-jobs__logo { width: auto; max-width: 11rem; height: auto; margin-bottom: 1.25rem; }
@media (min-width: 992px) {
	.ik-jobs { padding-block: 3.333rem; }
	.ik-jobs__grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 2.667rem; align-items: start; }
	.ik-jobs__count { padding: 1.4rem 2rem; font-size: 1.333rem; }
	.ik-jobs__card { padding: 2.333rem 2.333rem; }
	.ik-jobs__logo { max-width: 14rem; }
}
@media (min-width: 992px) { .ik-jobs__aside { position: sticky; top: calc(var(--ik-header-h) + 2rem); } }

/* public actions block: more air between the picture and the text, and around */
.ik-feature__body .ik-prose { line-height: 1.8; }
.ik-feature__title { margin-bottom: 1rem; }
@media (min-width: 992px) {
	.ik-feature-sec { padding-block: 0 4.667rem; }
	.ik-feature-sec .ik-title--rule { margin-bottom: 3.333rem; }
	.ik-feature { column-gap: 5rem; }
	.ik-feature__body { padding-top: .5rem; }
	.ik-feature__title { margin-bottom: 1.667rem; }
	.ik-feature__body .ik-prose p { margin-bottom: 1.333rem; }
}

/* ---------- Home: more air and finer details ---------- */
.home .ik-text .ik-title { position: relative; padding-top: 1.1rem; }
.home .ik-text .ik-title::before { content: ""; position: absolute; top: 0; left: 0; width: 2.75rem; height: 3px; background: var(--ik-accent); }
.home .ik-hero + .ik-text .ik-prose { line-height: 1.85; }
.home .ik-card__text { line-height: 1.7; }
@media (min-width: 992px) {
	.home .ik-hero + .ik-text { padding-top: 7rem; }
	.home .ik-text { padding-top: 5.333rem; }
	.home .ik-hero + .ik-text .ik-prose { font-size: 1.467rem; max-width: 70rem; }
	.home .ik-text .ik-title { margin-bottom: 2.667rem; }
	.home .ik-cards { padding-block: 2rem 6rem; }
	.home .ik-cards__list { gap: 1.333rem; }
	.home .ik-card { padding: 3.333rem 3.333rem 3.667rem; min-height: 14rem; }
	.home .ik-card__title { margin-bottom: 1.667rem; }
	.home .ik-stats { padding-block: 5.333rem 6rem; }
	.home .ik-team { padding-top: 2rem; }
	.home .ik-team__grid { row-gap: 6.333rem; }
	.home .ik-logos { padding-top: 2rem; }
}

/* public actions: picture and text centred as one group (the title stays on the left) */
.ik-feature__image { margin-inline: auto; }
@media (min-width: 992px) {
	.ik-feature { justify-content: center; align-items: center; max-width: 62rem; margin-inline: auto; column-gap: 4.667rem; }
	.ik-feature__image { margin: 0; }
	.ik-feature__body { flex: 1 1 0; padding-top: 0; }
	.ik-feature__title { margin-top: 0; }
}
.ik-banner__label, .ik-banner__title { text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35); }
@media (min-width: 992px) { .ik-banner__label, .ik-banner__title { text-shadow: none; } }

/* activity pages: readable text colour (a darker shade of the activity colour), the bars keep the pure colour */
.ik-banner ~ .ik-sec { --ik-accent: color-mix(in srgb, var(--ik-tint, #086496) 70%, #000); }
.ik-tags__chip { color: color-mix(in srgb, var(--ik-tint, #086496) 70%, #000); }
.ik-tags__chip:hover { color: var(--ik-white); }
@media (min-width: 992px) { .ik-columns--maps .ik-col:nth-child(2), .ik-columns--maps .ik-col:nth-child(3) { order: 0; } }

/* application form (plugin markup): same fields and buttons as the rest of the site */
.ik-form .form-field { margin-bottom: 1.1rem; }
.ik-form .form-field label { display: block; font-size: 0.9375rem; font-weight: 500; color: #2b3640; margin: 0; }
.ik-form .form-field input[type="text"], .ik-form .form-field input[type="email"], .ik-form .form-field input[type="tel"], .ik-form .form-field textarea {
	width: 100%; min-height: 3rem; margin-top: 0.35rem; padding: 0.7rem 1rem; font: inherit; font-size: 1rem; color: var(--ik-text);
	background: #fff; border: 1px solid #cfd8df !important; border-radius: 0 !important; box-shadow: none !important;
}
.ik-form .form-field input:focus, .ik-form .form-field textarea:focus { outline: 2px solid var(--ik-blue); outline-offset: 0; border-color: var(--ik-blue) !important; }
.ik-form .form-footer { margin-top: 1.75rem; }
.ik-form .form-footer p { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0; }
.ik-form .form-footer .btn, .ik-form .form-footer button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 2.9rem; padding: 0.6rem 1.8rem; margin: 0 !important;
	font: inherit; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
	border: 2px solid var(--ik-blue) !important; border-radius: 0 !important; box-shadow: none !important; cursor: pointer; width: auto; height: auto;
}
.ik-form .form-footer .btn.blue { color: var(--ik-white) !important; background: var(--ik-blue) !important; }
.ik-form .form-footer .btn.grey { color: var(--ik-blue) !important; background: transparent !important; }
.ik-form .file-repeater .bold { font-weight: 600; }
.ik-form .file-repeater .append-file { color: var(--ik-accent); cursor: pointer; }
#postular-form .form-field label { font-size: 0.9375rem; font-weight: 500; color: #2b3640; }
#postular-form .form-field input[type="text"], #postular-form .form-field input[type="email"], #postular-form .form-field input[type="tel"] { font-size: 1rem; }

/* mobile menu: same case for every entry, and the language switch only once (it is shown at the bottom) */
.ik-mobile .ik-menu a, .ik-mobile .menu a { text-transform: uppercase; letter-spacing: 0.04em; }
.ik-mobile .wpml-ls-menu-item { display: none; }

/* same fields and buttons inside the "Apply" panel of a job offer */
.ik-apply .form-field { margin-bottom: 1.1rem; }
.ik-apply .form-field label { display: block; font-size: 0.9375rem; font-weight: 500; color: #2b3640; margin: 0; }
.ik-apply .form-field input[type="text"], .ik-apply .form-field input[type="email"], .ik-apply .form-field input[type="tel"], .ik-apply .form-field textarea {
	width: 100%; min-height: 3rem; margin-top: 0.35rem; padding: 0.7rem 1rem; font: inherit; font-size: 1rem; color: var(--ik-text);
	background: #fff; border: 1px solid #cfd8df !important; border-radius: 0 !important; box-shadow: none !important;
}
.ik-apply .form-field input:focus, .ik-apply .form-field textarea:focus { outline: 2px solid var(--ik-blue); outline-offset: 0; border-color: var(--ik-blue) !important; }
.ik-apply .form-footer { margin-top: 1.75rem; }
.ik-apply .form-footer p { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0; }
.ik-apply .form-footer .btn, .ik-apply .form-footer button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 2.9rem; padding: 0.6rem 1.8rem; margin: 0 !important;
	font: inherit; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
	border: 2px solid var(--ik-blue) !important; border-radius: 0 !important; box-shadow: none !important; cursor: pointer; width: auto; height: auto;
}
.ik-apply .form-footer .btn.blue { color: var(--ik-white) !important; background: var(--ik-blue) !important; }
.ik-apply .form-footer .btn.grey { color: var(--ik-blue) !important; background: transparent !important; }
.ik-apply .file-repeater .bold { font-weight: 600; }
.ik-apply .file-repeater .append-file { color: var(--ik-accent); cursor: pointer; }

.ik-apply { z-index: 300; }
.ik-apply__panel { padding-top: 4rem; }

/* ---------- Job offer: premium detail page ---------- */
.ik-job-single__hero { padding: 2rem 0 1.75rem; }
.ik-job-single__headrow { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem; }
.ik-job-single__h1 { margin: 0; font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.4rem); line-height: 1.2; max-width: 40rem; }
.ik-job-single__hero .ik-job__logo img { max-height: 3rem; max-width: 12rem; }
.ik-job-single__body { padding-block: 2rem 3rem; }
.ik-job-single__grid { display: grid; gap: 2rem; }
.ik-job-single__aside { order: -1; }
.ik-job-single__card { padding: 1.5rem; background: var(--ik-white); border: 1px solid #e3e8ec; border-top: 3px solid var(--ik-accent); }
.ik-job-single__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; margin: 0 0 1.5rem; }
.ik-job-single__fact dt { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: #5c666d; margin: 0 0 0.2rem; }
.ik-job-single__fact dd { margin: 0; font-weight: 500; }
.ik-job-single__apply { width: 100%; justify-content: center; }
.ik-job-single__card .ik-share { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid #e3e8ec; }
.ik-job-single__block { margin-bottom: 2.5rem; }
.ik-job-single__title { position: relative; margin: 0 0 1.1rem; padding-top: 1rem; font-size: var(--ik-h3); text-transform: none; letter-spacing: 0; }
.ik-job-single__title::before { content: ""; position: absolute; top: 0; left: 0; width: 2.5rem; height: 3px; background: var(--ik-accent); }
.ik-job-single__main .ik-prose { line-height: 1.75; }
.ik-job-single__main .ik-prose ul { list-style: none; padding: 0; }
.ik-job-single__main .ik-prose ul li { position: relative; padding-left: 1.5rem; margin-bottom: 0.55rem; }
.ik-job-single__main .ik-prose ul li::before { content: ""; position: absolute; left: 0; top: 0.8em; width: 0.8rem; height: 2px; background: var(--ik-accent); }
.ik-job-single__cta { margin: 2rem 0; }
@media (min-width: 992px) {
	.ik-job-single__hero { padding: 3.333rem 0 3rem; }
	.ik-job-single__h1 { font-size: 2.667rem; max-width: 52rem; }
	.ik-job-single__hero .ik-job__logo img { max-height: 4rem; max-width: 16rem; }
	.ik-job-single__body { padding-block: 4rem 6rem; }
	.ik-job-single__grid { grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr); gap: 5rem; align-items: start; }
	.ik-job-single__aside { order: 2; position: sticky; top: calc(var(--ik-header-h) + 2rem); }
	.ik-job-single__card { padding: 2rem 2rem 2.333rem; }
	.ik-job-single__facts { grid-template-columns: 1fr; }
	.ik-job-single__cta { display: none; }
	.ik-job-single__block { margin-bottom: 3.333rem; }
}
@media (max-width: 991px) { .ik-job-single__aside .ik-share { display: none; } }
/* application panel */
.ik-apply__title { font-size: var(--ik-h3); margin: 0 0 1.25rem; padding-right: 3rem; }
/* share icons: neutral, smaller */
.ik-job-single__card .ik-share .heateor_sss_sharing_container { margin: 0; }
.ik-job-single__card .ik-share i, .ik-job-single__card .ik-share svg { filter: grayscale(1) opacity(0.75); }
.ik-job-single__card .ik-share ul { margin: 0; padding: 0; }

/* "Apply" panel: same type scale and fields as the rest of the site */
.admin-bar .ik-apply { top: 32px; }
@media (max-width: 782px) { .admin-bar .ik-apply { top: 46px; } }
.ik-apply__panel { padding: 3.5rem 1.5rem 2.5rem; }
.ik-apply__panel p { font-size: 0.9375rem; line-height: 1.6; margin: 0 0 0.6rem; }
.ik-apply .file-repeater > p:first-child, .ik-apply .file-repeater .bold { font-size: 0.9375rem; font-weight: 600; color: #2b3640; }
.ik-apply .file-repeater .append-file { font-size: 0.9375rem; font-weight: 600; }
.ik-apply .file-repeater .append-file::before { display: none; }
.ik-apply .wpcf7-field-group { margin: 0; padding: 0; min-height: 0; }
.ik-apply .file-field { margin: 0 0 0.75rem; min-height: 0; }
.ik-apply .file-field p { margin: 0; }
.ik-apply input[type="file"] { width: 100%; padding: 0.6rem; font: inherit; font-size: 0.875rem; color: #4a5560; background: #fff; border: 1px dashed #b8c4cd; border-radius: 0; }
.ik-apply input[type="file"]::file-selector-button { margin-right: 0.75rem; padding: 0.45rem 1rem; font: inherit; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ik-blue); background: #fff; border: 1px solid var(--ik-blue); border-radius: 0; cursor: pointer; }
.ik-apply .remove-file { font-size: 0.8125rem; color: #5c666d; cursor: pointer; text-decoration: underline; }
.ik-apply .wpcf7-field-group-add, .ik-apply .wpcf7-field-group-remove { min-width: 2rem; height: 2rem; padding: 0; font: inherit; font-weight: 600; color: var(--ik-blue); background: #fff; border: 1px solid var(--ik-blue); border-radius: 0; cursor: pointer; }
.ik-apply .form-footer { margin-top: 1.5rem; }
@media (min-width: 992px) { .ik-apply__panel { padding: 4rem 2.5rem 3rem; } }

/* application forms: small motion on the buttons (hover, focus, press) */
.ik-form .form-footer .btn, .ik-apply .form-footer .btn, .ik-form .form-footer button, .ik-apply .form-footer button,
.ik-apply input[type="file"]::file-selector-button, .ik-form input[type="file"]::file-selector-button {
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, transform 0.2s ease;
}
.ik-form .form-footer .btn.blue:hover, .ik-apply .form-footer .btn.blue:hover { background: var(--ik-dark) !important; border-color: var(--ik-dark) !important; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(14, 14, 14, 0.2) !important; }
.ik-form .form-footer .btn.grey:hover, .ik-apply .form-footer .btn.grey:hover { background: var(--ik-blue) !important; color: var(--ik-white) !important; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(12, 100, 150, 0.25) !important; }
.ik-form .form-footer .btn:active, .ik-apply .form-footer .btn:active { transform: translateY(0); box-shadow: none !important; }
.ik-form .form-footer .btn:focus-visible, .ik-apply .form-footer .btn:focus-visible, .ik-apply input[type="file"]:focus-visible { outline: 2px solid var(--ik-blue); outline-offset: 3px; }
.ik-apply input[type="file"]:hover::file-selector-button, .ik-form input[type="file"]:hover::file-selector-button { background: var(--ik-blue); color: var(--ik-white); }
.ik-apply input[type="file"]:hover { border-color: var(--ik-blue); }
.ik-apply .file-repeater .append-file { transition: color 0.2s ease, transform 0.2s ease; display: inline-block; }
.ik-apply .file-repeater .append-file:hover { color: var(--ik-dark); transform: translateX(3px); }
.ik-apply .wpcf7-field-group-add:hover, .ik-apply .wpcf7-field-group-remove:hover { background: var(--ik-blue); color: var(--ik-white); }
/* tighter space between two file fields */
.ik-apply .file-field + p, .ik-apply .wpcf7-field-group > p { margin: 0 0 0.5rem; min-height: 0; }
.ik-apply .wpcf7-field-groups { display: grid; gap: 0.5rem; }
@media (prefers-reduced-motion: reduce) {
	.ik-form .form-footer .btn, .ik-apply .form-footer .btn, .ik-apply .file-repeater .append-file { transition: none; transform: none !important; }
}

/* slider: "curtain" transition (the slides are stacked, the new one opens from an edge) */
.ik-slider--reveal .ik-slider__track { display: block; position: relative; transform: none !important; transition: none; }
.ik-slider--reveal .ik-slide { position: absolute; inset: 0; width: 100%; height: 100%; flex: none; visibility: hidden; }
.ik-slider--reveal .ik-slide.is-active, .ik-slider--reveal .ik-slide.is-entering { visibility: visible; }
.ik-slider--reveal .ik-slide.is-entering { z-index: 2; }
.ik-slider--reveal .ik-slide > * { display: block; width: 100%; height: 100%; will-change: transform; }

/* ---------- Application form page: hero band + form card ---------- */
.ik-form-sec--apply { padding: 0; }
.ik-form-sec__hero { padding: 2rem 0 1.75rem; }
.ik-form-sec__h1 { margin: 0 0 0.75rem; font-size: clamp(1.7rem, 1.2rem + 2vw, 2.667rem); line-height: 1.2; }
.ik-form-sec__lead { max-width: 40rem; color: #33414a; }
.ik-form-sec__lead p:last-child { margin-bottom: 0; }
.ik-form-sec__body { max-width: 52rem; padding-block: 2rem 3.5rem; }
.ik-form-card { padding: 1.5rem; background: var(--ik-white); border: 1px solid #e3e8ec; border-top: 3px solid var(--ik-accent); box-shadow: 0 18px 44px rgba(14, 14, 14, 0.07); }
.ik-form-card .ik-form .wpcf7 { margin-top: 0; }
.ik-form-sec--apply .ik-back { margin-top: 1.75rem; }
.ik-form-sec--apply #postular-form { display: grid; grid-template-columns: 1fr; gap: 0 1.5rem; }
.ik-form-sec--apply #postular-form .form-field:has(.file-repeater) { grid-column: 1 / -1; }
.ik-form-sec--apply .file-repeater { margin-top: 0.5rem; padding: 1.25rem; background: #f7f9fb; border: 1px dashed #b8c4cd; }
.ik-form-sec--apply .file-repeater > p:first-child { margin-top: 0; }
.ik-form-sec--apply .form-footer { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #e3e8ec; }
@media (min-width: 992px) {
	.ik-form-sec__hero { padding: 3.333rem 0 3rem; }
	.ik-form-sec__lead { font-size: var(--ik-text-size); }
	.ik-form-sec__body { max-width: 62rem; padding-block: 3rem 5rem; margin-top: -1.5rem; position: relative; z-index: 1; }
	.ik-form-card { padding: 2.667rem 3rem 3rem; }
	.ik-form-sec--apply #postular-form { grid-template-columns: 1fr 1fr; gap: 0.5rem 2rem; }
}
.ik-form-sec--apply #postular-form .form-footer, .ik-form-sec--apply #postular-form > :not(.form-field) { grid-column: 1 / -1; }
.ik-form-sec--apply .ik-form p { font-size: 0.9375rem; line-height: 1.6; margin: 0 0 0.6rem; }
.ik-form-sec--apply .file-repeater .append-file { font-size: 0.9375rem; font-weight: 600; color: var(--ik-accent); cursor: pointer; }
.ik-form-sec--apply .file-repeater .append-file::before { display: none; }
.ik-form-sec--apply input[type="file"] { width: 100%; padding: 0.6rem; font: inherit; font-size: 0.875rem; background: #fff; border: 1px dashed #b8c4cd; }
.ik-form-sec--apply input[type="file"]::file-selector-button { margin-right: 0.75rem; padding: 0.45rem 1rem; font: inherit; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ik-blue); background: #fff; border: 1px solid var(--ik-blue); cursor: pointer; transition: background 0.25s, color 0.25s; }
.ik-form-sec--apply input[type="file"]:hover::file-selector-button { background: var(--ik-blue); color: var(--ik-white); }
@media (min-width: 992px) { .ik-form-sec__body { max-width: none; } .ik-form-sec__body.ik-container { max-width: var(--ik-container); } }

/* activity pages: more air between the sections (and before the grey key figures band) */
.ik-banner ~ .ik-columns, .ik-banner ~ .ik-text { padding-bottom: 2rem; }
.ik-banner ~ .ik-columns + .ik-stats, .ik-banner ~ .ik-text + .ik-stats { margin-top: 1rem; }
.ik-banner ~ .ik-stats { padding-block: 3.5rem 3.75rem; }
.ik-banner ~ .ik-tags { padding-block: 0.5rem 3rem; }
@media (min-width: 992px) {
	.ik-banner ~ .ik-columns, .ik-banner ~ .ik-text { padding-bottom: 3.333rem; }
	.ik-banner ~ .ik-columns + .ik-columns, .ik-banner ~ .ik-text + .ik-columns { padding-top: 5.333rem; }
	.ik-banner ~ .ik-columns + .ik-stats, .ik-banner ~ .ik-text + .ik-stats { margin-top: 3.333rem; }
	.ik-banner ~ .ik-stats { padding-block: 5.333rem 6rem; }
	.ik-banner ~ .ik-tags .ik-container::before { margin-top: 5rem; }
	.ik-banner ~ .ik-tags { padding-bottom: 6rem; }
}
