/* LTS Academy — pages Espace Entreprises, À propos, Contact (chargé uniquement sur ces modèles) */

/* En-têtes de page */
.hero-page__title--narrow { max-width: 17ch; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; }
.hero-page--text::before { background: radial-gradient(900px 500px at 20% 0%, rgba(244, 184, 21, .15), transparent 62%); }
.hero-page__solo { padding-block: 36px 64px; }
.hero-page__title--xl { font-size: clamp(2.1rem, 4.3vw, 3.6rem); line-height: 1.05; max-width: 19ch; margin-top: 22px; }
.hero-page__text--wide { max-width: 58ch; margin-top: 20px; font-size: clamp(16px, 1.3vw, 18.5px); line-height: 1.64; }

/* Tuiles numérotées (services, valeurs) */
.grid-cards--wide { grid-template-columns: repeat(auto-fill, minmax(min(270px, 100%), 1fr)); gap: 16px; }
.grid-cards--values { grid-template-columns: repeat(auto-fill, minmax(min(258px, 100%), 1fr)); }
.tile { border-radius: 20px; padding: 28px; display: flex; flex-direction: column; gap: 11px; }
.grid-cards--values .tile { border-radius: 18px; padding: 26px; gap: 10px; }
.tile:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(14, 35, 80, .08); }
.tile__num { font-size: 11.5px; color: var(--gold-dark); letter-spacing: .12em; }
.tile__title { font-weight: 700; font-size: 18.5px; line-height: 1.25; letter-spacing: -.015em; }
.tile__desc { font-size: 14.5px; line-height: 1.62; color: var(--muted); }
.tile__link { margin-top: auto; padding-top: 18px; font-size: 13.5px; font-weight: 800; }

/* Catalogue intra-entreprise */
.modules-filters { margin-top: 30px; }
.modules-pick { border: 0; margin: 0; padding: 0; min-width: 0; }
.modules-pick .grid-cards { margin-top: 22px; grid-template-columns: repeat(auto-fill, minmax(min(285px, 100%), 1fr)); }
.pick { position: relative; height: 100%; display: flex; flex-direction: column; gap: 9px; padding: 22px; border-radius: 18px; border: 1px solid var(--line); background: var(--white); cursor: pointer; transition: all .2s; }
.pick:hover { border-color: var(--navy); }
.pick__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pick:has(.pick__input:checked) { border-color: var(--navy); background: var(--sand); }
.pick:has(.pick__input:focus-visible) { outline: 3px solid var(--gold); outline-offset: 2px; }
.pick__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.pick__title { font-family: var(--font-display); font-weight: 700; font-size: 16px; line-height: 1.3; }
.pick__check { flex-shrink: 0; width: 24px; height: 24px; border-radius: 8px; display: grid; place-items: center; font-size: 12px; font-weight: 800; border: 1px solid var(--line-input); color: transparent; }
.pick__input:checked ~ .pick__head .pick__check { border-color: var(--navy); background: var(--navy); color: var(--gold); }
.pick__desc { font-size: 13.5px; line-height: 1.55; color: var(--muted); }
.pick__meta { font-size: 11px; color: var(--gold-dark); }
.selection-bar { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; border: 1px dashed var(--line-dashed); border-radius: 18px; background: var(--sand); padding: 20px 24px; }
.selection-bar__text { font-size: 14.5px; font-weight: 700; color: var(--brown-2); flex: 1 1 320px; }

/* Processus */
.panel-navy--top::before { background: radial-gradient(700px 400px at 95% 0%, rgba(244, 184, 21, .14), transparent 62%); }
.process__title { max-width: 24ch; font-size: clamp(1.7rem, 2.8vw, 2.3rem); }
.process { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 16px; margin-top: 34px; }
.process li { border-top: 2px solid rgba(244, 184, 21, .5); padding-top: 18px; min-width: 0; }
.process__num { font-size: 12px; color: var(--gold); letter-spacing: .14em; }
.process__step { font-weight: 700; font-size: 17.5px; line-height: 1.25; margin-top: 10px; letter-spacing: 0; }
.process__desc { font-size: 14px; line-height: 1.6; color: rgba(251, 250, 246, .72); margin-top: 8px; }

/* Recrutement */
.recrut__title { max-width: 18ch; }
.recrut__cta { margin-top: 24px; }
.offers { display: flex; flex-direction: column; gap: 12px; }
.offer { border: 1px solid var(--line); border-radius: 18px; background: var(--white); padding: 24px; min-width: 0; }
.offer__head { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.offer__title { font-weight: 700; font-size: 17px; line-height: 1.3; letter-spacing: 0; }
.offer__tag { font-size: 11px; color: var(--gold-dark); background: var(--sand); border-radius: var(--radius-pill); padding: 5px 11px; }
.offer__desc { font-size: 14.5px; line-height: 1.62; color: var(--muted); margin-top: 9px; }

/* Financement */
.funding { border: 1px solid var(--line); border-radius: 24px; background: var(--white); padding: clamp(28px, 3.4vw, 48px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 40px; align-items: center; }
.funding > * { min-width: 0; }
.funding__title { max-width: 20ch; }
.funding__text { font-size: 15.5px; line-height: 1.66; color: var(--muted); margin-top: 16px; max-width: 46ch; }
.funding__docs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 12px; margin: 0; }
.funding__docs > div { background: var(--sand); border-radius: 14px; padding: 18px; min-width: 0; }
.funding__docs dt { font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-dark); }
.funding__docs dd { margin: 7px 0 0; font-size: 14.5px; line-height: 1.5; font-weight: 600; color: var(--brown-2); }

/* Devis */
.split-card__aside--navy { background: var(--navy); color: var(--cream); }
.split-card__aside--navy .h2 { max-width: 18ch; }
.split-card__aside--navy p.split-card__text { color: var(--on-navy); }
.split-card__aside--navy .diamond-list li { color: var(--cream); }
.split-card__aside--navy .diamond-list li::before { color: var(--gold); }
.contact-direct { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--on-navy-line); font-size: 14.5px; line-height: 1.7; color: var(--on-navy); }
.contact-direct a { color: var(--gold); font-weight: 700; }
.contact-direct a:hover { color: var(--cream); }
.choice { border: 0; padding: 0; margin: 0; }
.choice legend { padding: 0; margin-bottom: 10px; }
.choice__list { display: flex; flex-wrap: wrap; gap: 9px; }
.choice__item { position: relative; }
.choice__item input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.choice__item span { display: inline-flex; align-items: center; min-height: 44px; border-radius: var(--radius-pill); padding: 11px 20px; font-size: 14px; font-weight: 700; letter-spacing: 0; text-transform: none; border: 1px solid var(--line-input); background: var(--cream); color: var(--muted); transition: all .2s; }
.choice__item input:checked + span { border-color: var(--navy); background: var(--navy); color: var(--cream); }
.choice__item input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 2px; }
.field__label { display: block; margin-bottom: 3px; }
.chips { display: flex; flex-wrap: wrap; gap: 9px; text-transform: none; letter-spacing: 0; }

/* À propos */
.mission__text { margin-top: 18px; max-width: 54ch; line-height: 1.68; }
.mission__text + .mission__text { margin-top: 16px; }
.poles-about__title { margin-bottom: 34px; max-width: 24ch; }
.poles-about { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr)); gap: 16px; }
.pole-card { border: 1px solid var(--line); border-radius: 20px; background: var(--white); overflow: hidden; min-width: 0; display: flex; flex-direction: column; }
.pole-card__head { background: var(--navy); color: var(--cream); padding: 24px; }
.pole-card__num { font-size: 11.5px; color: var(--gold); letter-spacing: .14em; }
.pole-card__title { font-size: 21px; line-height: 1.15; letter-spacing: -.02em; margin-top: 8px; }
.pole-card__title a { color: inherit; }
.pole-card__title a:hover { color: var(--gold); }
.pole-card__desc { font-size: 14px; line-height: 1.55; color: rgba(251, 250, 246, .72); margin-top: 8px; }
.pole-card__body { padding: 18px 22px 22px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.pole-card__list { display: flex; flex-direction: column; gap: 9px; }
.pole-card__list li { font-size: 14px; line-height: 1.5; color: var(--muted); display: grid; grid-template-columns: 14px 1fr; gap: 9px; }
.pole-card__list span { color: var(--gold-dark); }
.pole-card__list a { color: var(--muted); }
.pole-card__list a:hover { color: var(--gold-dark); }
.pole-card__cta { margin-top: auto; padding-top: 18px; font-size: 14px; }

/* Page d'un pôle */
/* Hero plein cadre : photo du pôle en fond, voile navy dégradé (opaque à gauche), arc doré à droite. */
.hero-pole { display: flex; flex-direction: column; min-height: clamp(440px, 36vw, 500px); isolation: isolate; }
.hero-pole__bg { position: absolute; inset: 0; z-index: -2; }
.hero-pole__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.hero-pole--photo::before {
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(14, 35, 80, .98) 0%, rgba(14, 35, 80, .96) 36%, rgba(14, 35, 80, .6) 52%, rgba(14, 35, 80, .18) 76%, rgba(14, 35, 80, .06) 100%),
		linear-gradient(0deg, rgba(9, 26, 61, .45) 0%, transparent 36%);
}
/* Photo cadrée à droite : le sujet reste visible, le voile se fond dans son bord gauche. */
@media (min-width: 768px) { .hero-pole__bg { left: 36%; } }
.hero-pole__arc {
	position: absolute; z-index: -1; pointer-events: none;
	width: clamp(440px, 44vw, 660px); aspect-ratio: 1; right: clamp(-260px, -15vw, -150px); top: 50%; transform: translateY(-50%);
	border-radius: 50%; border: 2px solid rgba(244, 184, 21, .6);
}
.hero-pole__arc::after { content: ""; position: absolute; inset: 42px; border-radius: 50%; border: 1px solid rgba(244, 184, 21, .28); }
.hero-pole__inner { flex: 1; display: flex; align-items: center; padding-block: 30px 68px; }
.hero-pole__content { max-width: 660px; min-width: 0; }
.hero-pole .pole__num { font-size: 12.5px; text-transform: uppercase; }
.hero-pole__title { margin-top: 18px; font-size: clamp(2.7rem, 6vw, 5.2rem); line-height: .98; letter-spacing: -.035em; color: var(--white); text-wrap: balance; }
.hero-pole__text { max-width: 54ch; margin-top: 22px; font-size: clamp(16px, 1.3vw, 18.5px); line-height: 1.64; color: rgba(255, 255, 255, .84); }
.hero-pole--photo .hero-pole__title, .hero-pole--photo .hero-pole__text { text-shadow: 0 2px 22px rgba(9, 26, 61, .45); }
@media (max-width: 767px) {
	/* Mobile : photo visible en haut, texte calé en bas sur un voile vertical. */
	.hero-pole { min-height: 540px; }
	.hero-pole__bg img { object-position: center; }
	.hero-pole--photo::before { background: linear-gradient(180deg, rgba(14, 35, 80, .5) 0%, rgba(14, 35, 80, .3) 26%, rgba(14, 35, 80, .88) 60%, rgba(14, 35, 80, .97) 100%); }
	.hero-pole__arc { width: 300px; right: -150px; top: -70px; transform: none; }
	.hero-pole__arc::after { inset: 28px; }
	.hero-pole__inner { align-items: flex-end; padding-block: 24px 44px; }
}
.direction { background: var(--sand); border-radius: 26px; padding: clamp(30px, 3.6vw, 54px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr)); gap: 44px; align-items: center; }
.direction > * { min-width: 0; }
.direction__quote { margin: 18px 0 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(1.25rem, 2.1vw, 1.75rem); line-height: 1.35; letter-spacing: -.02em; color: #3E3826; }
.direction__author { margin-top: 20px; font-size: 14px; font-weight: 700; color: var(--navy); }
.direction__img { border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; }
.direction__img img { width: 100%; height: 100%; object-fit: cover; }
.campus__title { max-width: 18ch; }
.campus__points { margin-top: 26px; display: flex; flex-direction: column; gap: 12px; }
.campus__points li { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; line-height: 1.55; font-weight: 600; }
.gallery--compact { margin-top: 0; grid-template-columns: repeat(auto-fill, minmax(min(160px, 100%), 1fr)); gap: 12px; }
.gallery--compact figure { border-radius: 15px; }
.gallery--compact figcaption { padding: 24px 12px 10px; font-size: 12px; line-height: 1.3; }
.cta-band { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 40px; align-items: center; padding: clamp(32px, 4vw, 58px); }
.cta-band > * { min-width: 0; }
.cta-band__title { max-width: 20ch; font-size: clamp(1.7rem, 2.9vw, 2.4rem); margin-top: 0; }
.cta-band__text { font-size: 16px; line-height: 1.66; color: var(--on-navy); margin-top: 16px; max-width: 46ch; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
@media (max-width: 719px) { .cta-band__actions { justify-content: flex-start; } }

/* Contact */
.contact-list { margin: 28px 0 0; display: flex; flex-direction: column; gap: 16px; }
.contact-list dt { font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--gold-dark); }
.contact-list dd { margin: 4px 0 0; font-family: var(--font-display); font-weight: 700; font-size: 16px; }
