/*
Theme Name: Lilouthem
Description: Thème Gutenberg (block theme) sur mesure pour lilianrobert.fr.
Author: Lilian Robert
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 8.0
Version: 0.8.7
License: GPL-2.0-or-later
Text Domain: lilouthem
*/

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; overflow-x: clip; }
[hidden] { display: none !important; }
a:focus-visible, button:focus-visible, .wp-element-button:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
	border-radius: 8px;
}
:where(h1, h2, h3) strong { color: var(--wp--preset--color--primary); font-weight: inherit; }
:where(h1, h2, h3) em {
	font-style: normal;
	background: linear-gradient(var(--wp--preset--color--accent), var(--wp--preset--color--accent)) no-repeat 0 88% / 100% 36%;
	padding: 0 .06em;
}
.lr-section[id] { scroll-margin-top: 80px; }

/* ---------- Boutons ---------- */
.wp-block-button__link {
	display: inline-flex; align-items: center; gap: 10px; min-height: 52px; box-sizing: border-box;
	transition: transform .25s cubic-bezier(.2,.7,.2,1), background-color .2s;
	box-shadow: 0 8px 20px rgba(196, 43, 48, .22);
}
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button.is-style-jaune .wp-block-button__link { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); box-shadow: none; }
.wp-block-button.is-style-jaune .wp-block-button__link:hover { background: #FFC130; color: var(--wp--preset--color--contrast); }
.wp-block-button.is-style-contour .wp-block-button__link { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); border: 2px solid var(--wp--preset--color--contrast); box-shadow: none; }
.wp-block-button.is-style-contour .wp-block-button__link:hover { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--contrast); }
.lr-actions { gap: 12px; margin-top: 32px; }

/* ---------- En-tête ---------- */
.lr-site-header {
	position: sticky; top: var(--wp-admin--admin-bar--height, 0); z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--border);
	transition: box-shadow .3s ease;
}
/* Le flou est porté par un calque : un backdrop-filter sur l'en-tête lui-même
   enfermerait le menu mobile (position: fixed) dans la hauteur de l'en-tête. */
.lr-site-header::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.lr-site-header.is-scrolled { box-shadow: 0 10px 30px rgba(51, 51, 51, .08); }

/* Menu mobile (bouton et panneau plein écran). */
@media (max-width: 599px) {
	.lr-nav .wp-block-navigation__responsive-container-open { display: inline-flex; align-items: center; line-height: 1; }
}
.lr-nav .wp-block-navigation__responsive-container-open {
	gap: 8px; padding: 0 16px; border: 2px solid var(--wp--preset--color--contrast); border-radius: 999px;
	background: var(--wp--preset--color--surface); font-weight: 700; font-size: 15px;
}
.lr-nav .wp-block-navigation__responsive-container-open::after { content: "Menu"; line-height: 1; }
.lr-nav .wp-block-navigation__responsive-container-open svg { display: block; flex: none; }
.lr-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px; background: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--contrast) !important;
}
.lr-nav .is-menu-open .wp-block-navigation__container { gap: 4px !important; width: 100%; align-items: stretch !important; }
.lr-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
.lr-nav .is-menu-open .wp-block-navigation-item__content {
	width: 100%; padding: 0 12px; font-size: 20px; border-bottom: 1px solid var(--wp--preset--color--border); box-sizing: border-box;
}
.lr-nav .is-menu-open .wp-block-navigation-item__content::after { display: none; }
.lr-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"] {
	background: var(--wp--preset--color--accent-soft); border-radius: 12px; border-bottom: 0;
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--accent);
}
.lr-nav .is-menu-open .lr-nav__cta > .wp-block-navigation-item__content { justify-content: center; margin-top: 8px; border-bottom: 0; }
.lr-header { padding: 10px 24px; }
.lr-header__inner { gap: 8px 24px; }
.lr-logo { margin: 0; font-weight: 800; font-size: 22px; letter-spacing: -0.03em; }
.lr-logo a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--wp--preset--color--contrast); text-decoration: none; }
.lr-logo__mark {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; margin-right: 6px; border-radius: 10px;
	background: var(--wp--preset--color--accent); font-size: 14px; letter-spacing: -0.02em;
}
.lr-logo__mark::after { content: ""; position: absolute; right: -3px; bottom: -3px; width: 10px; height: 10px; border-radius: 3px; background: var(--wp--preset--color--primary); }
.lr-logo__first { color: var(--wp--preset--color--primary); }
.lr-nav { font-size: 16px; font-weight: 600; }
.lr-nav .wp-block-navigation__container { gap: 0 26px; }
.lr-nav .wp-block-navigation-item__content { position: relative; display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--contrast); text-decoration: none; }
.lr-nav .wp-block-navigation-item:not(.lr-nav__cta) > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 3px; border-radius: 3px;
	background: var(--wp--preset--color--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s ease;
}
.lr-nav .wp-block-navigation-item__content:hover::after,
.lr-nav .wp-block-navigation-item__content[aria-current="page"]::after { transform: scaleX(1); }
.lr-nav .lr-nav__cta > .wp-block-navigation-item__content {
	padding: 0 20px; border-radius: 999px; background: var(--wp--preset--color--accent); font-weight: 700;
}
.lr-nav .lr-nav__cta > .wp-block-navigation-item__content:hover { background: #FFC130; }
.lr-nav .wp-block-navigation__responsive-container-open,
.lr-nav .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; }

/* ---------- Sections ---------- */
/* Les pages en sections : pas de marge entre deux sections, chaque section gère son espacement. */
.lr-sections > * { margin-block: 0; }
.lr-section { padding: 88px 24px; }
.lr-section--stats { padding-top: 80px; padding-bottom: 16px; }
.lr-section--contact { padding-top: 0; padding-bottom: 72px; }
/* WordPress ajoute une marge entre en-tête, contenu et pied de page : la maquette n'en a pas. */
.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }
.lr-section.lr-section--liste { padding-top: 16px; padding-bottom: 120px; }
.lr-section.lr-section--last { padding-bottom: 72px; }
.lr-section.lr-section--cta80 { padding-bottom: 80px; }
.lr-section.lr-section--clients { padding-bottom: 72px; }
/* Espacements de la maquette (ordinateur et tablette large). */
@media (min-width: 782px) {
	#profil.lr-section { padding-top: 72px; padding-bottom: 96px; }
	#competences.lr-section, #parcours.lr-section { padding-bottom: 96px; }
	#projets.lr-section { padding-top: 96px; padding-bottom: 96px; }
}
.lr-title--small { margin-bottom: 28px; font-size: clamp(26px, 2.6vw, 34px); }
.lr-section--top { padding-top: 56px; padding-bottom: 72px; }
.lr-section.lr-section--snug { padding-top: 0; padding-bottom: 0; }
/* Marges basses des sections de fin de page : doivent l'emporter sur « snug » (0). */
.lr-section.lr-section--snug.lr-section--last { padding-bottom: 72px; }
.lr-section.lr-section--snug.lr-section--cta80 { padding-bottom: 80px; }
.lr-section.lr-section--top:has(.lr-breadcrumb) { padding-bottom: 40px; }
.lr-section.lr-section--top.lr-projet-hero { padding-top: 40px; padding-bottom: 48px; }
.lr-section--rose { background: var(--wp--preset--color--pink-soft); border-radius: 48px 48px 0 0; }
.lr-section--jaune { background: var(--wp--preset--color--accent-soft); border-radius: 48px; }
.lr-section-head { justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 40px; }
.lr-section-head h2 { margin: 0; }
.lr-title { margin: 0 0 40px; }
.lr-lead { font-size: 20px; line-height: 1.6; max-width: 38ch; }
.lr-section--top .lr-lead:has(em) { max-width: 46ch; }
.lr-lead em {
	font-style: normal;
	background: linear-gradient(var(--wp--preset--color--accent), var(--wp--preset--color--accent)) no-repeat 0 88% / 100% 38%;
	padding: 0 .06em;
}
/* La mise en page « contrainte » centre les éléments plus étroits que la colonne :
   on les recale à gauche de la colonne de 1240 px, comme dans la maquette. */
.lr-section.is-layout-constrained > .lr-lead,
.lr-section.is-layout-constrained > .lr-filtres {
	margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size, 1240px)) / 2)) !important;
	margin-right: auto !important;
}
.lr-breadcrumb { margin: 0; font-size: 15px; color: var(--wp--preset--color--muted); }

/* ---------- Héros ---------- */
.lr-hero__grid { gap: 48px 56px; }
.lr-badge {
	display: inline-flex; align-items: center; gap: 10px; margin: 0; padding: 8px 15px;
	background: var(--wp--preset--color--surface); border: 2px solid var(--wp--preset--color--accent);
	border-radius: 999px; font-size: 15px; font-weight: 700;
}
.lr-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--primary); }
.lr-hero__title { margin: 24px 0 22px; overflow-wrap: break-word; }
.lr-hero__title strong { white-space: nowrap; }
/* Titres des pages Projets et fiches : plus petits que le titre de l'accueil, comme la maquette. */
.lr-page-title, .lr-projet-hero .wp-block-post-title {
	font-size: clamp(40px, 5vw, 66px); font-weight: 800; letter-spacing: -0.045em; line-height: 1.02;
}
.lr-page-title { margin: 24px 0 16px; }
.lr-hero__visual { position: relative; width: 100%; max-width: 440px; margin-inline: auto; }
.lr-hero__photo {
	position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden;
	border-radius: 50% 50% 36px 36px / 40% 40% 36px 36px; background: var(--wp--preset--color--accent);
}
.lr-hero__photo::before, .lr-hero__photo::after { content: ""; position: absolute; border-radius: 50%; }
.lr-hero__photo::before { width: 62%; aspect-ratio: 1; right: -14%; top: 16%; background: var(--wp--preset--color--accent-red); }
.lr-hero__photo::after { width: 30%; aspect-ratio: 1; left: -8%; top: 42%; background: var(--wp--preset--color--accent-light); }
.lr-hero__photo img { position: absolute; z-index: 1; left: -5%; bottom: 0; width: 110%; max-width: none; height: auto; }
.lr-pill {
	position: absolute; z-index: 2; margin: 0; padding: 10px 16px; white-space: nowrap;
	background: var(--wp--preset--color--surface); border-radius: 999px; font-size: 15px; font-weight: 700;
	box-shadow: 0 10px 24px rgba(51, 51, 51, .12);
}
.lr-pill--1 { left: -6%; top: 30%; }
.lr-pill--2 { right: -6%; top: 58%; color: var(--wp--preset--color--primary); }
.lr-pill--3 { left: -4%; bottom: 6%; border-radius: 18px; padding: 12px 16px; }
/* Flottement des cartouches : une valeur animée (--fy) ajoutée au déplacement suivi par la souris ou le doigt. */
@property --fy { syntax: '<length>'; inherits: false; initial-value: 0px; }
@keyframes lr-fy { from { --fy: 0px; } to { --fy: -12px; } }
@media (prefers-reduced-motion: no-preference) {
	.lr-pill--1 { animation: lr-fy 5.2s ease-in-out infinite alternate; }
	.lr-pill--2 { animation: lr-fy 6s ease-in-out -2s infinite alternate; }
	.lr-pill--3 { animation: lr-fy 5.6s ease-in-out -1s infinite alternate; }
}
.lr-pill--3 strong { font-size: 24px; letter-spacing: -0.03em; color: var(--wp--preset--color--primary); }

/* ---------- Bandeau des plateformes ---------- */
.lr-marquee {
	margin: 0; padding: 14px 24px; list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px;
	background: var(--wp--preset--color--accent-soft); border-block: 1px solid var(--wp--preset--color--line);
	font-size: 18px; font-weight: 700;
}
.lr-marquee li { display: inline-flex; align-items: center; gap: 28px; }
.lr-marquee li + li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--wp--preset--color--primary); }

/* ---------- Repères chiffrés ---------- */
.lr-grid { gap: 18px; }
/* Repères : 4 colonnes, puis 2, puis 1 (évite une carte orpheline). */
.lr-section--stats .lr-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
@media (max-width: 1100px) { .lr-section--stats .lr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 560px) { .lr-section--stats .lr-grid { grid-template-columns: minmax(0, 1fr) !important; } }
.lr-stat { padding: 26px 28px; border-radius: 24px; background: var(--wp--preset--color--accent-soft); gap: 6px; }
.lr-stat:nth-child(even) { background: var(--wp--preset--color--pink-soft); }
.lr-stat__value { margin: 0; font-size: 34px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.15; color: var(--wp--preset--color--primary); }
.lr-stat p:not(.lr-stat__value) { margin: 0; font-size: 16px; line-height: 1.45; }

/* ---------- Profil ---------- */
.lr-profil { gap: 28px 72px; }
.lr-profil p { font-size: 18px; line-height: 1.7; margin: 0 0 18px; }

/* ---------- Compétences ---------- */
.lr-skills { gap: 20px; }
.lr-skill {
	display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 20px; row-gap: 6px; align-items: start;
	padding: 28px; border-radius: 24px; background: var(--wp--preset--color--surface);
}
.lr-skill::before {
	content: ""; grid-row: span 2; width: 52px; height: 52px; border-radius: 16px;
	background-color: var(--wp--preset--color--accent);
	background-repeat: no-repeat; background-position: center; background-size: 26px;
}
.lr-skill:nth-child(even)::before { background-color: var(--wp--preset--color--pink); }
.lr-skill > * { margin: 0; }
.lr-skill p { font-size: 16px; line-height: 1.6; }
.lr-skill--projet::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1.5'/%3E%3C/svg%3E"); }
.lr-skill--equipe::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C42B30' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20c.8-3.6 3.4-5.5 6.5-5.5s5.7 1.9 6.5 5.5'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M17 14.5c2.4 0 4 1.5 4.5 4'/%3E%3C/svg%3E"); }
.lr-skill--devis::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2.5'/%3E%3Cpath d='M8.5 7h7M8.5 11h1.5M12 11h1.5M8.5 14.5h1.5M12 14.5h1.5M8.5 18h7'/%3E%3C/svg%3E"); }
.lr-skill--integration::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C42B30' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M9 3v4M15 3v4M7 7h10v4a5 5 0 0 1-10 0z'/%3E%3Cpath d='M12 16v5'/%3E%3C/svg%3E"); }
.lr-skill--ecommerce::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 4h2.5l2.2 11h10.6l2-8H6.6'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.5'/%3E%3Ccircle cx='17' cy='19.5' r='1.5'/%3E%3C/svg%3E"); }
.lr-skill--seo::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C42B30' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l5 5'/%3E%3Cpath d='M8.5 12.5l2-2 1.5 1.5 2.5-2.5'/%3E%3C/svg%3E"); }

/* ---------- Cartes projet (boucles de requête) ---------- */
.lr-cards { gap: 44px 24px; }
/* Page Projets : grille adaptative de la maquette. */
.lr-projets-grille .lr-cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)) !important; gap: 48px 28px; }
.lr-projets-grille .wp-block-post-featured-image img { aspect-ratio: 1699 / 1299 !important; height: auto !important; width: 100%; object-fit: cover; object-position: center; }
/* Accueil : damier 7/5 puis 5/7 sur grand écran, 2 colonnes puis 1, images recadrées en haut. */
.lr-projets-selection .lr-cards { grid-template-columns: minmax(0, 1fr) !important; }
@media (min-width: 700px) { .lr-projets-selection .lr-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (min-width: 1020px) {
	.lr-projets-selection .lr-cards { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; }
	.lr-projets-selection .lr-cards > .wp-block-post:nth-child(4n+1) { grid-column: span 7; }
	.lr-projets-selection .lr-cards > .wp-block-post:nth-child(4n+2) { grid-column: span 5; }
	.lr-projets-selection .lr-cards > .wp-block-post:nth-child(4n+3) { grid-column: span 5; }
	.lr-projets-selection .lr-cards > .wp-block-post:nth-child(4n+4) { grid-column: span 7; }
}
.lr-projets-selection .wp-block-post-featured-image img {
	width: 100%; height: clamp(220px, 24vw, 330px) !important; aspect-ratio: auto !important; object-fit: cover; object-position: top center;
}
.lr-card { position: relative; gap: 14px; height: 100%; }
.lr-card .wp-block-post-featured-image {
	margin: 0; padding: 12px; overflow: hidden; border-radius: 24px; background: var(--wp--preset--color--pink-soft);
	transition: transform .4s cubic-bezier(.2,.7,.2,1);
}
.wp-block-post:nth-child(even) .lr-card .wp-block-post-featured-image { background: var(--wp--preset--color--accent-soft); }
.lr-card .wp-block-post-featured-image img { border-radius: 14px; object-position: top center; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.lr-card:hover .wp-block-post-featured-image { transform: translateY(-4px); }
.lr-card:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.lr-card > .lr-card__body { margin-top: 16px; }
.lr-card__body { gap: 6px; padding: 0 4px; }
.lr-card__body > * { margin: 0; }
.lr-card__body > .lr-card__titre { margin-top: 2px; }
.lr-card__tag:empty, .lr-card__stack:empty, .lr-tag:empty, .lr-fact__value:empty { display: none; }
.lr-card__meta { gap: 8px 10px; align-items: center; }
.lr-card__meta > * { margin: 0; }
.lr-card__tag { display: inline-block; margin: 0; padding: 3px 10px; border-radius: 999px; background: var(--wp--preset--color--accent-soft); font-size: 13px; font-weight: 700; }
.lr-card .wp-block-post-title { margin: 0; font-size: 15px; font-weight: 800; letter-spacing: 0; color: var(--wp--preset--color--primary); }
.lr-card .wp-block-post-title a { color: inherit; text-decoration: none; }
/* Toute la carte est cliquable via le lien du titre. */
.lr-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.lr-card .lr-card__titre { margin: 2px 0 0; font-size: 21px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.25; transition: color .2s; }
.lr-card:hover .lr-card__titre { color: var(--wp--preset--color--primary); }
.lr-card__stack { margin: 0; font-size: 15px; color: var(--wp--preset--color--muted); }

/* ---------- Filtres de la page Projets ---------- */
.lr-filtres { gap: 10px; padding: 10px; width: fit-content; max-width: 100%; box-sizing: border-box; background: var(--wp--preset--color--accent-soft); border-radius: 999px; }
.lr-filtres .wp-block-button__link { min-height: 44px; padding: 0 18px; font-size: 16px; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); box-shadow: none; }
.lr-filtres .wp-block-button__link[aria-pressed="true"] { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--surface); box-shadow: 0 6px 16px rgba(196, 43, 48, .25); }
.lr-filtres__nb { margin-left: 4px; font-variant-numeric: tabular-nums; opacity: .8; }
.lr-filtres-statut { margin: 20px 0 40px 8px; font-size: 16px; color: var(--wp--preset--color--muted); }

/* ---------- Parcours (frise) ---------- */
.lr-timeline { position: relative; padding-left: 44px; gap: 18px; }
.lr-timeline::before { content: ""; position: absolute; left: 11px; top: 8px; bottom: 8px; width: 4px; border-radius: 4px; background: var(--wp--preset--color--accent-red); }
.lr-job { position: relative; gap: 8px; padding: 24px 28px; border-radius: 22px; background: var(--wp--preset--color--surface); }
.lr-job::before { content: ""; position: absolute; left: -44px; top: 22px; width: 26px; height: 26px; border-radius: 50%; background: var(--wp--preset--color--surface); box-shadow: inset 0 0 0 6px var(--wp--preset--color--accent-red); }
.lr-job > * { margin: 0; }
.lr-job__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 14px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--primary); }
.lr-job__meta strong { padding: 4px 11px; border-radius: 999px; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); letter-spacing: 0; text-transform: none; font-variant-numeric: tabular-nums; }
.lr-job p:not(.lr-job__meta) { font-size: 16px; line-height: 1.7; }

/* ---------- Pastilles (clients, technologies) ---------- */
.lr-pills { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 12px; font-size: 18px; font-weight: 700; }
.lr-pills li { padding: 10px 20px; border-radius: 999px; background: var(--wp--preset--color--accent-soft); transition: background .2s; }
.lr-pills li:nth-child(3n+1) { background: var(--wp--preset--color--pink-soft); color: var(--wp--preset--color--primary); }
.lr-pills li:nth-child(3n) { background: transparent; border: 2px solid var(--wp--preset--color--line); }
.lr-pills li:hover { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }

/* ---------- Contact et appels à l'action ---------- */
/* Les grilles « auto-fit » étirent les éléments sur toute la largeur (WordPress génère « auto-fill »). */
.lr-contact { gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)) !important; }
.lr-skills { grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)) !important; }
.lr-pn { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)) !important; }

/* Boutons ronds à icônes (contact et pied de page), comme la maquette. */
.lr-icos { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 18px 22px; }
.lr-icos li { display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; }
.lr-ico {
	display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%;
	color: var(--wp--preset--color--contrast); text-decoration: none;
	transition: transform .25s cubic-bezier(.2,.7,.2,1), background .2s, box-shadow .25s, color .2s;
}
.lr-ico:hover { transform: translateY(-3px) scale(1.05); }
.lr-ico--w { background: var(--wp--preset--color--surface); box-shadow: 0 6px 16px rgba(51, 51, 51, .1); }
.lr-ico--w:hover { color: var(--wp--preset--color--primary); }
.lr-ico--r { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--surface); box-shadow: 0 8px 20px rgba(196, 43, 48, .25); }
.lr-ico--r:hover { background: var(--wp--preset--color--primary-dark); color: var(--wp--preset--color--surface); }
.lr-ico--s { width: 44px; height: 44px; background: var(--wp--preset--color--accent-soft); box-shadow: none; }
.lr-ico--s:hover { color: var(--wp--preset--color--primary); background: var(--wp--preset--color--accent); }

/* Icônes dans les boutons : téléchargement (CV) et flèche vers le bas (héros). */
.lr-btn--download .wp-block-button__link::before,
.lr-btn--down .wp-block-button__link::after {
	content: ""; width: 18px; height: 18px; flex: none; background: currentColor;
	-webkit-mask: var(--lr-icone) center / contain no-repeat; mask: var(--lr-icone) center / contain no-repeat;
}
.lr-btn--download { --lr-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E"); }
.lr-btn--down { --lr-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E"); }
.lr-btn--down .wp-block-button__link::after { transition: transform .3s cubic-bezier(.2,.7,.2,1); }
.lr-btn--down .wp-block-button__link:hover::after { transform: translateY(3px); }
.lr-panel {
	position: relative; overflow: hidden; justify-content: space-between; gap: 28px;
	padding: clamp(32px, 4vw, 56px); border-radius: 36px; background: var(--wp--preset--color--pink-soft);
}
.lr-panel--jaune { background: var(--wp--preset--color--accent); }
.lr-panel--jaune::after { content: ""; position: absolute; right: -70px; top: -90px; width: 220px; height: 220px; border-radius: 50%; background: var(--wp--preset--color--accent-light); }
.lr-panel > * { position: relative; z-index: 1; margin: 0; }
.lr-panel h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.08; letter-spacing: -0.04em; }
.lr-panel p { font-size: 18px; line-height: 1.6; max-width: 40ch; }
.lr-panel .lr-actions { margin-top: 0; }
.lr-steps { margin: 0; padding: 0; list-style: none; counter-reset: lr-step; display: flex; flex-direction: column; gap: 14px; font-size: 17px; line-height: 1.5; }
/* Le texte et le gras restent sur la même ligne : le numéro est positionné à part. */
.lr-steps li { counter-increment: lr-step; position: relative; display: block; padding-left: 38px; }
.lr-steps li::before {
	content: counter(lr-step); position: absolute; left: 0; top: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--wp--preset--color--surface);
	display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; color: var(--wp--preset--color--primary);
}
.lr-panel--xl .wp-block-columns { gap: 36px 56px; }

/* ---------- Fiche projet ---------- */
.lr-projet-hero .wp-block-post-title { margin: 16px 0 12px; }
.lr-projet-hero .wp-block-post-excerpt__excerpt { margin: 0; font-size: clamp(20px, 2vw, 26px); line-height: 1.35; letter-spacing: -0.015em; max-width: 36ch; }
.lr-projet-hero.lr-section--top { padding-top: 40px; padding-bottom: 48px; }
.lr-tags { gap: 8px; margin-top: 28px; }
.lr-tags > * { margin: 0; }
.lr-num, .lr-tag { width: fit-content; padding: 6px 13px; border-radius: 999px; font-size: 14px; font-weight: 800; }
.lr-num { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); font-variant-numeric: tabular-nums; }
.lr-tag { background: var(--wp--preset--color--pink); color: var(--wp--preset--color--primary); }
.lr-facts { gap: 12px; margin-top: 32px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important; }
.lr-fact { padding: 18px 22px; border-radius: 20px; background: var(--wp--preset--color--accent-soft); gap: 6px; }
.lr-fact:nth-child(2) { background: var(--wp--preset--color--pink-soft); }
.lr-fact > * { margin: 0; }
.lr-fact__label { font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.lr-fact:nth-child(2) .lr-fact__label { color: var(--wp--preset--color--primary); }
.lr-fact__value { font-size: 17px; line-height: 1.45; font-weight: 600; }
.lr-frame { padding: clamp(12px, 2vw, 24px); border-radius: 36px; background: var(--wp--preset--color--pink-soft); }
.lr-frame .wp-block-post-featured-image { margin: 0; }
.lr-frame img { border-radius: 20px; background: var(--wp--preset--color--surface); }
.lr-projet-content { padding: 80px 24px 40px; }
.lr-projet-content h2 { margin: 64px 0 20px; font-size: clamp(26px, 2.6vw, 34px); }
.lr-projet-content > .wp-block-post-content > h2:first-child { margin-top: 0; }
.lr-projet-content p { font-size: 18px; line-height: 1.75; }
.lr-projet-content ul:not(.lr-pills) { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.lr-projet-content ul:not(.lr-pills) li { position: relative; padding-left: 38px; font-size: 17px; line-height: 1.6; }
.lr-projet-content ul:not(.lr-pills) li::before {
	content: ""; position: absolute; left: 0; top: 2px; width: 24px; height: 24px; border-radius: 50%;
	background: var(--wp--preset--color--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center / 13px;
}
.lr-subcard { margin-top: 28px; padding: 24px 28px; border-radius: 24px; background: var(--wp--preset--color--accent-soft); }
.lr-subcard > * { margin-top: 0; }
.lr-subcard h3 { margin: 0 0 10px; font-size: 20px; color: var(--wp--preset--color--primary); }
.lr-subcard p { font-size: 17px; line-height: 1.7; margin: 0 0 10px; }
.lr-subcard .lr-pills { font-size: 15px; gap: 8px; }
.lr-subcard .lr-pills li { padding: 8px 14px; background: var(--wp--preset--color--surface); color: inherit; border: 0; }
.lr-shot { margin: 44px 0 0; }
.lr-shot img { border-radius: 20px; box-shadow: 0 18px 40px rgba(51, 51, 51, .10); }
.lr-shot img, .lr-gallery img { width: 100%; aspect-ratio: 1699 / 1299; object-fit: cover; height: auto; }
/* « En images » : section pleine largeur sous l'article, comme la maquette. */
.lr-projet-content h2.alignwide { margin-top: 24px; margin-bottom: 24px; }
.lr-gallery.wp-block-gallery.has-nested-images {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); gap: 20px; margin-bottom: 40px;
}
.lr-gallery.wp-block-gallery.has-nested-images figure.wp-block-image { width: auto; margin: 0; }
.lr-gallery img { border-radius: 18px; box-shadow: 0 12px 28px rgba(51, 51, 51, .08); }
/* Bouton d'agrandissement des images (WordPress) : zone tactile de 44 px. */
.wp-lightbox-overlay.zoom button.wp-lightbox-close-button { width: 44px; height: 44px; min-width: 44px; min-height: 44px; }
.wp-lightbox-container button.lightbox-trigger {
	display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; top: 12px; right: 12px; border-radius: 12px;
}
.lr-shot figcaption { margin-top: 12px; font-size: 15px; color: var(--wp--preset--color--muted); text-align: left; }
.lr-gallery.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	position: static; margin-top: 10px; padding: 0; max-height: none; overflow: visible;
	background: none; color: var(--wp--preset--color--muted); font-size: 15px; text-align: left; text-shadow: none;
}
.lr-gallery.wp-block-gallery.has-nested-images figure.wp-block-image { flex-direction: column; }
/* WordPress recadre les images de galerie (is-cropped) avec une hauteur de 100 % : dans la grille,
   le parent n'a pas de hauteur et l'image s'effondre à 0 px. On garde le ratio de la maquette. */
.lr-gallery.is-cropped .wp-block-image img, .lr-gallery.is-cropped figure img { height: auto !important; aspect-ratio: 1699 / 1299 !important; width: 100% !important; }
.lr-gallery.is-cropped figure.wp-block-image, .lr-gallery.has-nested-images figure.wp-block-image { height: auto !important; flex: 0 0 auto !important; }
.lr-gallery figure.wp-block-image img { height: auto !important; min-height: 0 !important; aspect-ratio: 1699 / 1299 !important; }
/* La figure de galerie est un bloc simple (et non un flex) : l image garde sa hauteur. */
.lr-gallery figure.wp-block-image.wp-lightbox-container { display: block !important; }
.lr-gallery figure.wp-block-image img { flex: none !important; display: block; width: 100% !important; }
/* Galerie : toutes les images ont la même taille, qu'il y en ait une ou plusieurs (plus de réduction en flex). */
.lr-gallery.wp-block-gallery.has-nested-images { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)) !important; gap: 20px !important; }
.lr-gallery figure.wp-block-image { width: 100% !important; max-width: none !important; flex: none !important; margin: 0 !important; }
.lr-pn { gap: 20px; }
.lr-pn > * { margin: 0; }
.lr-pn .post-navigation-link-previous, .lr-pn .post-navigation-link-next {
	display: flex; flex-direction: column; gap: 6px; padding: 26px 30px; border-radius: 28px;
	font-size: clamp(22px, 2.2vw, 28px); font-weight: 800; letter-spacing: -0.03em;
}
.lr-pn .post-navigation-link-previous { background: var(--wp--preset--color--pink-soft); }
.lr-pn .post-navigation-link-next { background: var(--wp--preset--color--accent-soft); text-align: right; }
.lr-pn a { display: flex; flex-direction: column; gap: 6px; color: var(--wp--preset--color--contrast); text-decoration: none; }
.lr-pn .post-navigation-link__label { font-size: 15px; letter-spacing: 0; color: var(--wp--preset--color--primary); }
.lr-panel.lr-panel--xl { border-radius: 40px; padding: clamp(32px, 5vw, 64px); }
.lr-skill h3 { font-size: 22px; }
.lr-job h3 { font-size: 21px; }
body:has(.lr-projets-grille) .lr-footer { padding-top: 32px; padding-bottom: 32px; }
.lr-panel--row { flex-direction: row; align-items: center; }
.lr-panel--row h2 { max-width: 18ch; }
.lr-pn a:hover { color: var(--wp--preset--color--primary); }

/* ---------- Pied de page ---------- */
.lr-footer { padding: 24px; border-top: 1px solid var(--wp--preset--color--border); }
.lr-footer__inner { justify-content: space-between; gap: 12px 24px; font-size: 15px; }
.lr-footer p { margin: 0; }
.lr-footer__copy { color: var(--wp--preset--color--muted); }
.lr-footer__nav { display: flex; flex-wrap: wrap; align-items: center; font-weight: 600; }
.lr-footer__nav--icons { gap: 10px; }
.lr-footer__nav--icons .lr-footer__link { margin-right: 12px; }
.lr-footer__nav--text { gap: 0 24px; display: none; }
.lr-footer__link { position: relative; display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--contrast); text-decoration: none; }
.lr-footer__link:hover { color: var(--wp--preset--color--contrast); }
.lr-footer__link::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 3px; border-radius: 3px;
	background: var(--wp--preset--color--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s ease;
}
.lr-footer__link:hover::after { transform: scaleX(1); }
/* Variantes de la maquette : flèche « haut de page » seulement sur l'accueil ; liens texte sur la page Projets. */
.lr-footer__top { display: none; }
body.home .lr-footer__top { display: inline-flex; }
body:has(.lr-projets-grille) .lr-footer__nav--icons { display: none; }
body:has(.lr-projets-grille) .lr-footer__nav--text { display: flex; }

/* ---------- Bannière de consentement (tarteaucitron) aux couleurs du site ---------- */
#tarteaucitronRoot, #tarteaucitronRoot * { font-family: var(--wp--preset--font-family--display, system-ui, sans-serif) !important; }
#tarteaucitronRoot #tarteaucitronAlertBig {
	background: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--contrast) !important;
	border-top: 1px solid var(--wp--preset--color--border); border-radius: 24px 24px 0 0;
	box-shadow: 0 -10px 40px rgba(51, 51, 51, .12);
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert, #tarteaucitronRoot #tarteaucitronAlertBig span { color: var(--wp--preset--color--contrast) !important; font-size: 16px; line-height: 1.5; }
#tarteaucitronRoot #tarteaucitronAlertBig button {
	min-height: 44px; padding: 0 22px; border-radius: 999px !important; font-size: 16px !important; font-weight: 700; cursor: pointer;
	transition: background-color .2s, transform .25s cubic-bezier(.2,.7,.2,1);
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2, #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 { min-width: 140px; }
#tarteaucitronRoot #tarteaucitronAlertBig button:hover { transform: translateY(-2px); }
#tarteaucitronRoot #tarteaucitronAlertBig button:focus-visible { outline: 3px solid var(--wp--preset--color--primary); outline-offset: 3px; }
/* Tout accepter : rouge. Tout refuser : contour, de même taille (obligation CNIL). */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 { background: var(--wp--preset--color--primary) !important; color: var(--wp--preset--color--surface) !important; border: 2px solid var(--wp--preset--color--primary) !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover { background: var(--wp--preset--color--primary-dark) !important; border-color: var(--wp--preset--color--primary-dark) !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 { background: var(--wp--preset--color--surface) !important; color: var(--wp--preset--color--contrast) !important; border: 2px solid var(--wp--preset--color--contrast) !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:hover { background: var(--wp--preset--color--accent-soft) !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert { background: transparent !important; color: var(--wp--preset--color--contrast) !important; border: 2px solid transparent !important; text-decoration: underline; }
/* Mobile : « Tout accepter » et « Tout refuser » côte à côte, de même largeur. */
@media (max-width: 480px) {
	#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2, #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 { min-width: 0; width: calc(50% - 10px); padding: 0 8px; margin: 6px 4px; box-sizing: border-box; }
}
/* Icône permanente pour retirer son consentement : zone tactile de 44 px, aux couleurs du site. */
#tarteaucitronRoot #tarteaucitronManager, #tarteaucitronIcon #tarteaucitronManager { background: var(--wp--preset--color--accent) !important; border-radius: 999px; min-width: 44px; min-height: 44px; }
#tarteaucitronIcon { bottom: 12px !important; left: 12px !important; }
/* ---------- Appels à l'action masquables (réglage du Personnaliseur) ---------- */
.lr-no-cta #contact { display: none !important; }

/* ---------- Cartes flottantes de l'accueil (ordinateur) ---------- */
@media (min-width: 782px) and (prefers-reduced-motion: no-preference) {
	.lr-projets-selection .lr-card { animation: lr-flotte 6s ease-in-out infinite; }
	.lr-projets-selection .wp-block-post:nth-child(2n) .lr-card { animation-delay: -3s; }
	.lr-projets-selection .wp-block-post:nth-child(3n) .lr-card { animation-delay: -1.5s; }
}
@keyframes lr-flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
/* ---------- Utilitaires ---------- */
.lr-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- Mot défilant du titre ---------- */
.lr-hero__title strong.lr-rot { white-space: nowrap; }
.lr-rot__win { display: inline-block; height: 1.1em; overflow: hidden; vertical-align: bottom; }
.lr-rot__list { display: flex; flex-direction: column; }
.lr-rot__list > span { height: 1.1em; line-height: 1.1em; }

/* ---------- Barre de progression de lecture ---------- */
.lr-progress { display: none; }
@supports (animation-timeline: scroll()) {
	.lr-progress {
		display: block; position: fixed; top: 0; left: 0; right: 0; z-index: 60; height: 4px;
		background: var(--wp--preset--color--accent-red); transform: scaleX(0); transform-origin: 0 50%;
		animation: lr-prog linear both; animation-timeline: scroll(root);
	}
}

/* ---------- Frise : ligne de fond + remplissage au défilement ---------- */
.lr-timeline.is-anim::before { background: var(--wp--preset--color--line); }
.lr-timeline__fill {
	position: absolute; left: 11px; top: 8px; bottom: 8px; width: 4px; border-radius: 4px;
	background: var(--wp--preset--color--accent-red); transform: scaleY(var(--tlp, 1)); transform-origin: top;
	transition: transform .25s linear;
}

/* ---------- Décors (formes flottantes) ---------- */
.lr-section--top:has(.lr-breadcrumb) { position: relative; overflow: clip; }
.lr-section--top:has(.lr-breadcrumb)::before,
.lr-section--top:has(.lr-breadcrumb)::after { content: ""; position: absolute; z-index: 0; pointer-events: none; }
.lr-section--top:has(.lr-breadcrumb)::before { top: -40px; right: 6%; width: 260px; height: 260px; border-radius: 50%; background: #FFF1C9; }
.lr-section--top:has(.lr-breadcrumb)::after { --r: 14deg; top: 150px; right: 22%; width: 90px; height: 90px; border-radius: 28px; background: var(--wp--preset--color--pink); transform: rotate(var(--r)); }
.lr-section--top:has(.lr-breadcrumb) > * { position: relative; z-index: 1; }
/* Fiche projet : un seul rond, comme la maquette. */
.lr-projet-hero::before { top: -80px; right: 4%; width: 280px; height: 280px; background: var(--wp--preset--color--accent-soft); }
.lr-projet-hero::after { display: none; }

/* ---------- Carte projet : étiquette au survol ---------- */
.lr-card .wp-block-post-featured-image { position: relative; }
.lr-card .wp-block-post-featured-image::after {
	content: "Voir le projet →"; position: absolute; right: 24px; bottom: 24px; z-index: 2;
	padding: 9px 15px; border-radius: 999px; background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast); font-size: 15px; font-weight: 700;
	box-shadow: 0 8px 20px rgba(51, 51, 51, .14); opacity: 0; transform: translateY(8px);
	transition: opacity .3s ease, transform .35s cubic-bezier(.2,.7,.2,1); pointer-events: none;
}
.lr-card:hover .wp-block-post-featured-image::after,
.lr-card:focus-within .wp-block-post-featured-image::after { opacity: 1; transform: none; }

/* ---------- Animations ---------- */
@keyframes lr-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes lr-pin { from { opacity: 0; transform: translateY(16px) scale(.85) rotate(var(--r, 0deg)); } to { opacity: 1; transform: rotate(var(--r, 0deg)); } }
@keyframes lr-blob { from { transform: scale(0); } to { transform: none; } }
@keyframes lr-ping { 0% { box-shadow: 0 0 0 0 rgba(196, 43, 48, .55); } 100% { box-shadow: 0 0 0 10px rgba(196, 43, 48, 0); } }
@keyframes lr-mq { to { transform: translateX(calc(-1 * var(--mq-w, 0px))); } }
@keyframes lr-float { from { transform: translateY(0) rotate(var(--r, 0deg)); } to { transform: translateY(-12px) rotate(var(--r, 0deg)); } }
@keyframes lr-prog { to { transform: scaleX(1); } }

.lr-pill { transform: rotate(var(--r, 0deg)); }
.lr-pill--1 { --r: -4deg; }
.lr-pill--2 { --r: 3deg; }

@media (prefers-reduced-motion: no-preference) {
	/* Bandeau défilant (activé par site.js). */
	.lr-marquee.is-mq { flex-wrap: nowrap; justify-content: flex-start; overflow: hidden; }
	.lr-marquee.is-mq li { flex: none; animation: lr-mq 70s linear infinite; }
	.lr-marquee.is-mq:hover li { animation-play-state: paused; }

	/* Héros. */
	.lr-badge::before { animation: lr-ping 2.4s cubic-bezier(.2,.7,.2,1) 1.2s 4; }
	.lr-anim [data-hin] { animation: lr-in .9s cubic-bezier(.2,.7,.2,1) both; animation-delay: var(--d, 0s); }
	.lr-anim .lr-pill--1 { animation: lr-pin .7s cubic-bezier(.2,.7,.2,1) .75s both, lr-fy 5.2s ease-in-out 1.45s infinite alternate; }
	.lr-anim .lr-pill--2 { animation: lr-pin .7s cubic-bezier(.2,.7,.2,1) .9s both, lr-fy 6s ease-in-out -2s infinite alternate; }
	.lr-anim .lr-pill--3 { animation: lr-pin .7s cubic-bezier(.2,.7,.2,1) 1.05s both, lr-fy 5.6s ease-in-out -1s infinite alternate; }
	.lr-anim .lr-hero__photo::before { animation: lr-blob 1s cubic-bezier(.2,.7,.2,1) .35s both; }
	.lr-anim .lr-hero__photo::after { animation: lr-blob 1s cubic-bezier(.2,.7,.2,1) .55s both; }
	.lr-hero__photo { transform: perspective(900px) rotateY(calc(var(--mx, 0) * var(--amp, 7) * 1deg)) rotateX(calc(var(--my, 0) * var(--amp, 7) * -0.85deg)); transition: transform .6s cubic-bezier(.2,.7,.2,1); }
	.lr-pill { translate: calc(var(--mx, 0) * 16px) calc(var(--my, 0) * 12px + var(--fy, 0px)); }

	/* Formes flottantes. */
	.lr-panel--jaune::after,
	.lr-section--top:has(.lr-breadcrumb)::before,
	.lr-section--top:has(.lr-breadcrumb)::after { animation: lr-float 6s ease-in-out infinite alternate; }
	.lr-section--top:has(.lr-breadcrumb)::after { animation-delay: -2s; }

	/* Apparition au défilement (attributs posés par site.js). */
	.lr-anim [data-rv] { opacity: 0; transform: translateY(14px); transition: opacity .6s ease-out, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: var(--d, 0s); }
	.lr-anim [data-rv="pop"] { transform: scale(.985); }
	.lr-anim [data-rv="left"] { transform: translateX(-14px); }
	.lr-anim [data-rv].is-in { opacity: 1; transform: none; }
	.lr-anim h2[data-rv] em { background-size: 0% 36%; transition: background-size .9s cubic-bezier(.2,.7,.2,1) .4s; }
	.lr-anim h2[data-rv].is-in em { background-size: 100% 36%; }
	.lr-anim [data-rv="wipe"] { opacity: 1; transform: none; }
	.lr-anim [data-rv="wipe"] .wp-block-post-featured-image { clip-path: inset(0 0 100% 0 round 24px); transition: clip-path 1s cubic-bezier(.65,0,.35,1) var(--d, 0s), transform .4s cubic-bezier(.2,.7,.2,1); }
	.lr-anim [data-rv="wipe"].is-in .wp-block-post-featured-image { clip-path: inset(0 0 0 0 round 24px); }
	.lr-anim .lr-skill[data-rv]::before { transform: scale(.75) rotate(-8deg); opacity: 0; transition: transform .7s cubic-bezier(.2,.7,.2,1) calc(var(--d, 0s) + .25s), opacity .4s ease calc(var(--d, 0s) + .25s); }
	.lr-anim .lr-skill[data-rv].is-in::before { transform: none; opacity: 1; }
	.lr-anim .lr-pills[data-rv] { opacity: 1; transform: none; }
	.lr-anim .lr-pills[data-rv] li { opacity: 0; transform: translateY(8px) rotate(-1.5deg) scale(.97); transition: opacity .6s ease, transform .8s cubic-bezier(.2,.7,.2,1), background .2s; }
	.lr-anim .lr-pills[data-rv].is-in li { opacity: 1; transform: none; }
	.lr-anim .lr-pills[data-rv] li:nth-child(2) { transition-delay: 55ms; } .lr-anim .lr-pills[data-rv] li:nth-child(3) { transition-delay: 110ms; }
	.lr-anim .lr-pills[data-rv] li:nth-child(4) { transition-delay: 165ms; } .lr-anim .lr-pills[data-rv] li:nth-child(5) { transition-delay: 220ms; }
	.lr-anim .lr-pills[data-rv] li:nth-child(6) { transition-delay: 275ms; } .lr-anim .lr-pills[data-rv] li:nth-child(7) { transition-delay: 330ms; }
	.lr-anim .lr-pills[data-rv] li:nth-child(8) { transition-delay: 385ms; } .lr-anim .lr-pills[data-rv] li:nth-child(9) { transition-delay: 440ms; }
	.lr-anim .lr-pills[data-rv] li:nth-child(10) { transition-delay: 495ms; } .lr-anim .lr-pills[data-rv] li:nth-child(11) { transition-delay: 550ms; }
	.lr-anim .lr-pills[data-rv] li:nth-child(n+12) { transition-delay: 605ms; }
	.lr-anim .lr-pills[data-rv].is-in li:hover { transform: translateY(-2px) rotate(-1deg); transition-delay: 0s; }

	/* Frise : pastilles qui s'allument au passage. */
	.lr-anim .lr-timeline.is-anim .lr-job::before { opacity: 0; transition: opacity .7s ease; }
	.lr-anim .lr-timeline.is-anim .lr-job.is-on::before { opacity: 1; }
}

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.lr-section { padding-top: 64px; padding-bottom: 64px; }
	/* Haut de page : pas de grand vide sous l'en-tête. */
	.lr-section.lr-section--top { padding-top: 24px; padding-bottom: 40px; }
	.lr-section.lr-section--stats { padding-top: 48px; padding-bottom: 8px; }
	.lr-section--top:has(.lr-breadcrumb)::before { width: 170px; height: 170px; top: -50px; right: -40px; }
	.lr-section--top:has(.lr-breadcrumb)::after { display: none; }
	.lr-pill--1 { top: -14px; left: 2%; }
	.lr-pill--3 { left: 0; }
	.lr-pill--2 { right: 0; }
	.lr-filtres { border-radius: 24px; }
	.lr-section--rose, .lr-section--jaune { border-radius: 32px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}
