/**
 * Page d'accueil — direction artistique principale.
 * Les compositions évitent volontairement la répétition de cartes identiques.
 */

/* ---------- Hero ---------- */
.ey-home-hero { padding: 74px 0 86px; }
.ey-home-hero__grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(420px,.78fr); gap: 78px; align-items: center; }
.ey-home-hero h1 { max-width: 820px; font-size: clamp(3.3rem, 6vw, 5.7rem); }
.ey-title-accent { display: block; color: var(--ey-potential); }
.ey-home-hero__lead { max-width: 700px; margin-top: 26px; color: var(--ey-paper-700); font-size: 1.08rem; line-height: 1.8; }
.ey-home-hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; margin-top: 30px; }
.ey-home-hero__markers { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 38px; padding-top: 22px; border-top: 1px solid var(--ey-paper-100); color: var(--ey-paper-500); font-size: .76rem; font-weight: 600; }
.ey-home-hero__markers span::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: var(--ey-curiosity); vertical-align: 1px; }
.ey-home-hero__visual { position: relative; }
.ey-home-hero__note { position: absolute; right: -20px; bottom: 42px; display: grid; grid-template-columns: 36px 1fr; gap: 13px; width: min(350px,82%); padding: 18px 20px; border-left: 4px solid var(--ey-elan); background: rgba(255,255,255,.97); box-shadow: var(--ey-shadow-float); }
.ey-home-hero__note img { width: 32px; }
.ey-home-hero__note p { color: var(--ey-paper-700); font-size: .78rem; line-height: 1.5; }
.ey-home-hero__note strong { color: var(--ey-confidence); }
.ey-home-hero__capsules { position: absolute; top: -28px; right: 22px; display: flex; gap: 7px; transform: rotate(-4deg); }
.ey-home-hero__capsules span { width: 18px; height: 18px; border-radius: 99px; background: var(--ey-elan); }
.ey-home-hero__capsules span:nth-child(2) { width: 54px; background: var(--ey-potential); }
.ey-home-hero__capsules span:nth-child(3) { background: var(--ey-declic); }
.ey-home-hero__capsules span:nth-child(4) { width: 36px; background: var(--ey-curiosity); }

/* ---------- Besoins ---------- */
.ey-needs__grid { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(0,1.3fr); gap: 88px; align-items: start; }
.ey-section-heading--sticky { position: sticky; top: 130px; }
.ey-hand-note { display: inline-block; margin-top: 25px; color: var(--ey-elan); font-family: var(--ey-font-hand); font-size: 1.05rem; transform: rotate(-2deg); }
.ey-needs__list { border-top: 1px solid var(--ey-paper-100); }
.ey-need-row { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 18px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--ey-paper-100); text-decoration: none; }
.ey-need-row__number { color: var(--ey-elan); font-size: .68rem; font-weight: 700; }
.ey-need-row__title { color: var(--ey-confidence); font-family: var(--ey-font-display); font-size: 1.05rem; font-weight: 600; line-height: 1.4; }
.ey-need-row__action { color: var(--ey-paper-500); font-size: .74rem; font-weight: 700; white-space: nowrap; }
.ey-need-row:hover .ey-need-row__action { color: var(--ey-potential); }

/* ---------- Année scolaire ---------- */
.ey-school-year__track { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 10px; }
.ey-school-year__item { position: relative; padding: 42px 30px 0 0; border-top: 1px solid rgba(255,255,255,.28); }
.ey-school-year__item:not(:first-child) { padding-left: 30px; }
.ey-school-year__marker { position: absolute; top: -7px; left: 0; display: grid; place-items: center; width: 13px; height: 13px; border-radius: 50%; background: var(--ey-confidence); border: 2px solid var(--ey-curiosity); }
.ey-school-year__item:nth-child(2) .ey-school-year__marker { border-color: var(--ey-elan); }
.ey-school-year__item:nth-child(3) .ey-school-year__marker { border-color: var(--ey-declic); }
.ey-school-year__item:nth-child(4) .ey-school-year__marker { border-color: var(--ey-curiosity); }
.ey-school-year__period { color: var(--ey-curiosity); font-size: .68rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.ey-school-year__item h3 { margin: 10px 0 9px; color: var(--ey-white); font-size: 1rem; }
.ey-school-year__item > p:last-child { color: rgba(255,255,255,.62); font-size: .8rem; }

/* ---------- Solutions ---------- */
.ey-services__editorial { display: grid; grid-template-columns: minmax(420px,1.1fr) minmax(280px,.72fr); grid-template-rows: 1fr 1fr; gap: 24px 50px; align-items: stretch; }
.ey-services__photo { grid-row: 1 / 3; min-height: 610px; border-radius: var(--ey-radius-md); }
.ey-services__photo figcaption { position: absolute; left: 22px; right: 22px; bottom: 22px; padding: 16px 18px; background: rgba(255,255,255,.95); color: var(--ey-paper-700); font-size: .76rem; }
.ey-service-feature { align-self: center; padding: 8px 0 30px 30px; border-left: 4px solid var(--ey-potential); }
.ey-service-feature--pink { border-left-color: var(--ey-elan); }
.ey-service-feature h3 { margin-bottom: 12px; font-size: 1.55rem; }
.ey-service-feature > p:not(.ey-overline) { color: var(--ey-paper-500); font-size: .88rem; }
.ey-service-feature .ey-text-link { margin-top: 8px; }
.ey-services__links { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 52px; border-top: 1px solid var(--ey-paper-100); border-bottom: 1px solid var(--ey-paper-100); }
.ey-services__links a { padding: 22px 20px; border-right: 1px solid var(--ey-paper-100); text-decoration: none; }
.ey-services__links a:first-child { padding-left: 0; }
.ey-services__links a:last-child { border-right: 0; }
.ey-services__links strong, .ey-services__links span { display: block; }
.ey-services__links strong { color: var(--ey-confidence); font-size: .85rem; }
.ey-services__links span { margin-top: 5px; color: var(--ey-paper-500); font-size: .72rem; }

/* ---------- Méthode ---------- */
.ey-method__grid { display: grid; grid-template-columns: minmax(380px,.8fr) minmax(0,1.2fr); gap: 82px; align-items: center; }
.ey-method__visual { position: relative; }
.ey-method__motif { position: absolute; right: -26px; bottom: -22px; padding: 18px; background: var(--ey-white); box-shadow: var(--ey-shadow-soft); }
.ey-method__content h2 { font-size: clamp(2.2rem,3.7vw,3.5rem); }
.ey-method__intro { max-width: 650px; margin-top: 20px; color: var(--ey-paper-500); }
.ey-method__steps { margin: 30px 0 34px; padding: 0; list-style: none; border-top: 1px solid var(--ey-paper-100); }
.ey-method__steps li { display: grid; grid-template-columns: 46px 1fr; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--ey-paper-100); }
.ey-method__steps li > span { color: var(--ey-elan); font-size: .7rem; font-weight: 700; }
.ey-method__steps strong { display: block; margin-bottom: 4px; color: var(--ey-confidence); font-size: .88rem; }
.ey-method__steps p { color: var(--ey-paper-500); font-size: .79rem; }

/* ---------- Carte Calvados ---------- */
.ey-map-section { overflow: hidden; background: var(--ey-confidence); color: rgba(255,255,255,.72); }
.ey-map-section::before { content: ""; position: absolute; top: 0; right: 0; width: 130px; height: 4px; background: var(--ey-declic); }
.ey-map-section__grid { display: grid; grid-template-columns: minmax(300px,.68fr) minmax(520px,1.32fr); gap: 60px; align-items: center; }
.ey-map-section h2 { color: var(--ey-white); font-size: clamp(2.3rem,4vw,3.8rem); }
.ey-map-section__copy > p:not(.ey-overline) { max-width: 520px; margin-top: 20px; }
.ey-map-section .ey-overline { color: var(--ey-curiosity); }
.ey-map-section__agency { display: flex; gap: 14px; align-items: center; margin: 30px 0 24px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.18); }
.ey-map-section__agency img { width: 32px; }
.ey-map-section__agency strong, .ey-map-section__agency span { display: block; }
.ey-map-section__agency strong { color: var(--ey-white); font-size: .86rem; }
.ey-map-section__agency span { color: rgba(255,255,255,.62); font-size: .72rem; }
.ey-calvados-map { position: relative; min-height: 590px; padding: 30px; border: 1px solid rgba(255,255,255,.14); background: #202A7F; overflow: hidden; }
.ey-calvados-map__pattern { position: absolute; top: 22px; right: 20px; opacity: .7; }
.ey-calvados-map svg { position: relative; z-index: 1; width: 100%; height: auto; margin-top: 25px; }
.ey-map__land { fill: #F3F7F8; stroke: rgba(128,222,234,.55); stroke-width: 2; }
.ey-map__coast { fill: none; stroke: var(--ey-curiosity); stroke-width: 4; stroke-linecap: round; }
.ey-map__contour { fill: none; stroke: #CFD8DC; stroke-width: 1.2; opacity: .85; }
.ey-map__river { fill: none; stroke: #80DEEA; stroke-width: 2; opacity: .55; }
.ey-map__route { fill: none; stroke: var(--ey-elan); stroke-width: 2; stroke-dasharray: 4 6; opacity: .75; }
.ey-map__route--cyan { stroke: #26C6DA; }
.ey-map__route--yellow { stroke: #FFB900; }
.ey-map__city circle { fill: var(--ey-confidence); stroke: var(--ey-white); stroke-width: 2; }
.ey-map__city text { fill: #37474F; font-family: var(--ey-font-body); font-size: 12px; font-weight: 700; }
.ey-map__caen-dot { fill: var(--ey-elan); stroke: var(--ey-white); stroke-width: 3; }
.ey-map__caen-core { fill: var(--ey-white); }
.ey-map__caen-label { fill: var(--ey-confidence); font-family: var(--ey-font-display); font-size: 18px; font-weight: 700; }
.ey-map__caen-sub { fill: #607D8B; font-family: var(--ey-font-body); font-size: 11px; }
.ey-map__pulse { fill: none; stroke: var(--ey-elan); stroke-width: 2; transform-origin: 337px 204px; animation: ey-map-pulse 2.8s infinite; }
.ey-map__pulse--b { animation-delay: 1.4s; }
.ey-map__traveller--pink { fill: var(--ey-elan); }
.ey-map__traveller--cyan { fill: #00BCD4; }
.ey-map__traveller--yellow { fill: #FFB900; }
@keyframes ey-map-pulse { 0% { opacity: .85; transform: scale(.65); } 100% { opacity: 0; transform: scale(2.1); } }
.ey-calvados-map__legend { position: absolute; z-index: 2; right: 20px; bottom: 18px; display: flex; gap: 18px; padding: 10px 12px; background: rgba(30,26,77,.86); color: rgba(255,255,255,.76); font-size: .65rem; }
.ey-calvados-map__legend span { display: flex; align-items: center; gap: 7px; }
.ey-calvados-map__legend i { width: 8px; height: 8px; border-radius: 50%; }
.ey-calvados-map__legend .is-pink { background: var(--ey-elan); }
.ey-calvados-map__legend .is-cyan { background: var(--ey-curiosity); }

/* ---------- Preuves ---------- */
.ey-proof__top { display: grid; grid-template-columns: .85fr 1.15fr; gap: 70px; align-items: end; }
.ey-proof__markers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--ey-paper-100); border-bottom: 1px solid var(--ey-paper-100); }
.ey-proof__markers div { padding: 24px 20px; border-right: 1px solid var(--ey-paper-100); }
.ey-proof__markers div:last-child { border-right: 0; }
.ey-proof__markers strong, .ey-proof__markers span { display: block; }
.ey-proof__markers strong { color: var(--ey-potential); font-family: var(--ey-font-display); font-size: 1rem; }
.ey-proof__markers span { margin-top: 5px; color: var(--ey-paper-500); font-size: .72rem; }
.ey-proof__reviews { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px; margin-top: 50px; }
.ey-proof__reviews blockquote { margin: 0; padding-top: 22px; border-top: 4px solid var(--ey-potential); }
.ey-proof__reviews blockquote:nth-child(2) { border-top-color: var(--ey-elan); }
.ey-proof__reviews blockquote:nth-child(3) { border-top-color: var(--ey-curiosity); }
.ey-proof__reviews blockquote p { color: var(--ey-paper-700); font-size: .86rem; }
.ey-proof__reviews footer { margin-top: 18px; }
.ey-proof__reviews footer strong, .ey-proof__reviews footer span { display: block; }
.ey-proof__reviews footer strong { color: var(--ey-confidence); font-size: .78rem; }
.ey-proof__reviews footer span { color: var(--ey-paper-500); font-size: .68rem; }

/* ---------- Professionnels ---------- */
.ey-professionals__rows { border-top: 1px solid var(--ey-paper-100); }
.ey-professionals__rows a { display: grid; grid-template-columns: 250px minmax(0,1fr) 30px; gap: 30px; align-items: center; padding: 26px 0; border-bottom: 1px solid var(--ey-paper-100); text-decoration: none; }
.ey-professionals__audience { color: var(--ey-elan); font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.ey-professionals__rows strong { color: var(--ey-confidence); font-family: var(--ey-font-display); font-size: 1.05rem; }
.ey-professionals__rows i { color: var(--ey-potential); font-style: normal; font-size: 1.25rem; transition: transform 180ms ease; }
.ey-professionals__rows a:hover i { transform: translateX(5px); }

/* ---------- CTA final ---------- */
.ey-final-cta { padding-top: 40px; }
.ey-final-cta__panel { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 60px; align-items: center; padding: 52px 54px; background: var(--ey-confidence); color: rgba(255,255,255,.72); }
.ey-final-cta__panel::before { content: ""; position: absolute; top: 0; left: 0; width: 120px; height: 4px; background: var(--ey-elan); }
.ey-final-cta .ey-overline { color: var(--ey-curiosity); }
.ey-final-cta h2 { max-width: 800px; color: var(--ey-white); font-size: clamp(2rem,3.4vw,3.3rem); }
.ey-final-cta p:not(.ey-overline) { max-width: 740px; margin-top: 14px; }
.ey-final-cta__actions { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.ey-final-cta__motif { position: absolute; right: -20px; bottom: -35px; }
