/* ==========================================================================
   Accueil « L'eau comme signature » — chargé uniquement sur l'accueil (config home_variant = 'eau').
   Complète site.css (variables, boutons, en-tête, pied de page). Préfixe ae- : aucun effet sur les autres pages.
   Sans JavaScript, sans WebGL ou en mouvement réduit : tout est visible, la photo tient lieu d'eau.
   ========================================================================== */

.accueil--eau {
    --ae-wave-h: clamp(64px, 10vw, 160px);
    --ae-deep: #0c3b3d;
    --ae-ink-on-water: #ffffff;
    --ae-shadow-text: 0 1px 2px rgba(4, 30, 32, 0.28), 0 6px 30px rgba(4, 30, 32, 0.32);
}

/* Lignes de titre révélées par un masque (le texte reste dans le flux, lisible sans script). */
.ae-line { display: block; overflow: hidden; padding-bottom: 0.08em; margin-bottom: -0.08em; }
.ae-line__in { display: block; will-change: transform; }

/* ---------- Acte 1 : premier écran ---------- */
.ae-intro { position: relative; }
.ae-hero {
    position: sticky;
    top: var(--header-h);
    z-index: 0;
    min-height: max(560px, calc(100svh - var(--header-h)));
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    color: var(--ae-ink-on-water);
    isolation: isolate;
    background: #3aa3a4;
}
.ae-hero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.ae-hero__photo, .ae-hero__photo img { width: 100%; height: 100%; display: block; }
.ae-hero__photo img {
    object-fit: cover;
    object-position: 40% 60%;
    transform-origin: 36% 0%;   /* rapprochement ancré en haut (accueil-eau.js), l'eau remonte dans le cadre */
}
.ae-hero__water {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    opacity: 0;
    transition: opacity 0.9s ease;
    pointer-events: none;
}
.ae-hero__media.is-live .ae-hero__water { opacity: 1; }
.ae-hero__shade {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(5, 40, 42, 0.66) 0%, rgba(5, 40, 42, 0.5) 30%, rgba(5, 40, 42, 0.16) 56%, rgba(5, 40, 42, 0) 72%),
        linear-gradient(180deg, rgba(5, 40, 42, 0.28) 0%, rgba(5, 40, 42, 0) 24%, rgba(5, 40, 42, 0) 66%, rgba(5, 40, 42, 0.3) 100%);
}
.ae-hero__inner { position: relative; padding-block: 48px calc(var(--ae-wave-h) * 0.6 + 40px); }
.ae-hero__eyebrow {
    font-size: 0.8rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0 0 1.3rem;
    display: flex;
    align-items: center;
    gap: 14px;
    text-shadow: var(--ae-shadow-text);
}
.ae-hero__eyebrow::after { content: ''; width: 56px; height: 1px; background: rgba(255, 255, 255, 0.6); }
.ae-hero__title {
    color: #fff;
    font-size: clamp(3.1rem, 7.4vw, 6.9rem);
    line-height: 0.94;
    letter-spacing: -0.02em;
    margin: 0 0 0.32em;
    max-width: 10.5em;
    text-shadow: var(--ae-shadow-text);
}
.ae-hero__title em { font-style: italic; }
.ae-hero__lead {
    font-size: clamp(1.05rem, 1.35vw, 1.28rem);
    line-height: 1.5;
    max-width: 34ch;
    margin: 0 0 1.6rem;
    color: rgba(255, 255, 255, 0.95);
    text-shadow: var(--ae-shadow-text);
}
.ae-hero__actions { margin-top: 0; gap: 14px 22px; }
.ae-hero__actions .btn--primary { box-shadow: 0 10px 30px rgba(4, 30, 32, 0.25); }
.ae-btn-light { color: #fff; border-color: rgba(255, 255, 255, 0.7); background: rgba(5, 40, 42, 0.18); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.ae-btn-light:hover { border-color: #fff; background: rgba(5, 40, 42, 0.32); }
.ae-hero__link {
    color: #fff;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1.5px solid rgba(255, 255, 255, 0.75);
    padding-bottom: 2px;
    text-shadow: var(--ae-shadow-text);
}
.ae-hero__link:hover { border-bottom-color: #fff; }
.ae-hero :focus-visible { outline-color: #fff; }
.ae-hero__place {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 2rem 0 0;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.92);
    text-shadow: var(--ae-shadow-text);
}
.ae-hero__scroll {
    position: absolute;
    left: max(var(--gutter), calc((100vw - var(--container)) / 2));
    bottom: calc(var(--ae-wave-h) * 0.55 + 18px);
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.9);
    text-shadow: var(--ae-shadow-text);
}
.ae-hero__mouse { width: 20px; height: 32px; border: 1.5px solid rgba(255, 255, 255, 0.85); border-radius: 12px; position: relative; }
.ae-hero__mouse::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 6px;
    width: 3px;
    height: 8px;
    margin-left: -1.5px;
    border-radius: 2px;
    background: #fff;
    animation: ae-scroll 1.8s ease-in-out infinite;
}
@keyframes ae-scroll { 0%, 100% { transform: translateY(0); opacity: 1; } 60% { transform: translateY(8px); opacity: 0.2; } }
.ae-hero__credit {
    position: absolute;
    right: max(14px, calc((100vw - var(--container)) / 2));
    bottom: calc(var(--ae-wave-h) * 0.62 + 12px);
    margin: 0;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    letter-spacing: 0.02em;
    color: #fff;
    background: rgba(5, 40, 42, 0.64);   /* contraste du texte de 11 px au moins 4,5:1 quel que soit l'endroit de la photo */
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

/* Entrée du premier écran (accueil-eau.js) : masqué juste le temps que le script prenne la main ;
   sécurité : réapparition automatique après 2,5 s si le script ne s'exécute pas. */
@media (prefers-reduced-motion: no-preference) {
    .js .ae-hero [data-ae-intro-item], .js .ae-hero [data-ae-intro-line] { animation: ae-safety 0.01s 2.5s both; }
}
@keyframes ae-safety { from { opacity: 0; } to { opacity: 1; } }
.ae-ready .ae-hero [data-ae-intro-item], .ae-ready .ae-hero [data-ae-intro-line] { animation: none; }

/* ---------- Acte 2 : la ligne d'eau monte (« Entretenir. Profiter. ») ---------- */
.ae-mission {
    position: relative;
    z-index: 1;
    margin-top: calc(-1 * var(--ae-wave-h));
    padding: var(--ae-wave-h) 0 var(--section);
    background: linear-gradient(to bottom, transparent calc(var(--ae-wave-h) - 1px), var(--bg) calc(var(--ae-wave-h) - 1px));
    overflow-x: clip;
}
.ae-mission__wave {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--ae-wave-h);
    display: block;
    fill: var(--bg);
    pointer-events: none;
}
.ae-mission__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: center; }
.ae-mission__title {
    font-size: clamp(3.4rem, 10vw, 9.2rem);
    line-height: 0.9;
    letter-spacing: -0.03em;
    margin: 0 0 0.35em;
}
.ae-mission__shift { padding-left: 0.9em; }
.ae-mission__lead { font-size: clamp(1.08rem, 1.3vw, 1.25rem); line-height: 1.55; color: var(--ink-2); max-width: 44ch; margin: 0; }
.ae-mission__visual { position: relative; }
.ae-blob {
    position: relative;
    aspect-ratio: 1.1 / 1;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M30 6C47 -1 74 0 90 8c9 5 10 15 10 28v64H38C22 100 8 92 3 78-2 62 2 44 9 31 14 20 20 10 30 6z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M30 6C47 -1 74 0 90 8c9 5 10 15 10 28v64H38C22 100 8 92 3 78-2 62 2 44 9 31 14 20 20 10 30 6z'/%3E%3C/svg%3E");
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    transform-origin: 70% 55%;
    background: #7cc8c9;
}
.ae-blob__img, .ae-blob__img picture, .ae-blob__img img { width: 100%; height: 100%; display: block; }
.ae-blob__img img { object-fit: cover; object-position: 60% 50%; }
.ae-blob__img { transform-origin: 55% 50%; }
.ae-credit { margin: 8px 6px 0 0; text-align: right; font-size: 0.72rem; color: var(--muted); letter-spacing: 0.02em; }
.ae-credit--light { position: absolute; right: max(14px, calc((100vw - var(--container)) / 2)); bottom: 12px; margin: 0; color: rgba(255, 255, 255, 0.82); }

@media (min-width: 1024px) {
    /* au moins un écran de haut : la ligne d'eau recouvre entièrement le premier écran avant qu'il ne défile */
    .ae-mission { min-height: calc(100svh - var(--header-h)); padding-top: calc(var(--ae-wave-h) + clamp(16px, 3vw, 48px)); }
    .ae-mission__grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(32px, 4vw, 64px); }
    .ae-mission__visual { margin-right: calc((min(100vw - 2 * var(--gutter), var(--container)) - 100vw) / 2); }
    .ae-blob { aspect-ratio: 1.5 / 1; }
    .ae-mission .ae-credit { margin-right: max(14px, calc((100vw - var(--container)) / 2)); }
}

/* ---------- Acte 3 : les services émergent ---------- */
.ae-services { position: relative; padding: var(--section) 0; background: var(--bg); }
.ae-services__head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px 40px; align-items: end; margin-bottom: clamp(28px, 4vw, 48px); }
.ae-services__title { font-size: clamp(2.3rem, 5.2vw, 4.5rem); line-height: 0.98; letter-spacing: -0.02em; margin: 0; }
.ae-services__intro { color: var(--ink-2); max-width: 30ch; margin: 0; }
@media (min-width: 900px) {
    .ae-services__head { grid-template-columns: minmax(0, 1fr) auto; }
}
.ae-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px; }
@media (min-width: 700px) { .ae-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 28px; } }
@media (min-width: 1024px) {
    .ae-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
    .ae-card + .ae-card { border-left: 1px solid var(--line); }
    .ae-card { padding: 0 clamp(18px, 2vw, 28px); }
    .ae-card:first-child { padding-left: 0; }
    .ae-card:last-child { padding-right: 0; }
}
.ae-card { position: relative; display: flex; flex-direction: column; gap: 10px; margin: 0; }
.ae-card__media {
    --level: 1;
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 200' preserveAspectRatio='none'%3E%3Cpath d='M0 93C14 84 27 85 41 92s29 8 42 0c7-4 12-6 17-6V200H0z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 200' preserveAspectRatio='none'%3E%3Cpath d='M0 93C14 84 27 85 41 92s29 8 42 0c7-4 12-6 17-6V200H0z'/%3E%3C/svg%3E");
    -webkit-mask-size: 100% 200%;
    mask-size: 100% 200%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 calc(var(--level) * 100%);
    mask-position: 0 calc(var(--level) * 100%);
}
.ae-card__media .media { margin: 0; }
.ae-card__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1); }
.ae-card:hover .ae-card__media img, .ae-card:focus-within .ae-card__media img { transform: scale(1.04); }
.ae-card__media .media__caption { position: absolute; right: 10px; bottom: 8px; margin: 0; color: #fff; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); }
.ae-card__icon { display: none; }
.ae-card__title { font-size: clamp(1.45rem, 2vw, 1.8rem); margin: 10px 0 0; }
.ae-card__text { color: var(--ink-2); margin: 0; }
.ae-card__links { display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 6px 0 0; }

/* Lien fléché : soulignement qui se remplit, flèche qui avance (survol et focus clavier) */
.ae-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
    text-decoration: none;
    color: var(--ink);
    background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1.5px no-repeat;
    padding-bottom: 3px;
    transition: background-size 0.3s ease;
}
.ae-link__arrow { transition: transform 0.25s ease; flex: none; }
.ae-link:hover .ae-link__arrow, .ae-link:focus-visible .ae-link__arrow { transform: translateX(4px); }
.ae-link:hover { background-size: 100% 2px; }
.ae-link--small { font-size: 0.95rem; }

.ae-services__more {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: clamp(30px, 4vw, 48px) 0 0;
    color: var(--ink-2);
}
.ae-services__more::before, .ae-services__more::after { content: ''; flex: 1; min-width: 40px; height: 1px; background: var(--line); }
.ae-services__more a { font-weight: 500; }
.ae-services__more span { color: var(--muted); }
@media (max-width: 699px) {
    .ae-services__more { flex-direction: column; align-items: flex-start; gap: 12px; padding-top: 20px; border-top: 1px solid var(--line); }
    .ae-services__more::before, .ae-services__more::after, .ae-services__more span { display: none; }
}

.ae-urgence {
    display: flex;
    align-items: center;
    gap: 16px 20px;
    flex-wrap: wrap;
    margin: clamp(28px, 4vw, 44px) auto 0;
    padding: 18px 22px;
    max-width: 920px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}
.ae-urgence__icon { width: 46px; height: 46px; border-radius: 50%; background: var(--deep); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.ae-urgence__text { flex: 1 1 280px; margin: 0; color: var(--ink-2); }
.ae-urgence__text strong { font-family: var(--font-display); font-weight: 400; font-size: 1.3rem; color: var(--ink); margin-right: 4px; }

/* ---------- Démarche ---------- */
.ae-steps { padding: var(--section) 0; background: var(--bg-alt); }
.ae-steps__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.ae-steps__title { font-size: clamp(2rem, 3.6vw, 3rem); margin: 0; }
.ae-steps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.ae-step { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 16px; margin: 0; align-items: start; }
.ae-step__num {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 1.5px solid var(--line-strong);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 1.35rem;
}
.ae-step h3 { font-family: var(--font-body); font-weight: 500; font-size: 1.05rem; margin: 0.55em 0 0.25em; }
.ae-step p { margin: 0; color: var(--ink-2); font-size: 0.98rem; }
@media (min-width: 1024px) {
    .ae-steps__grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 2.2fr); gap: 48px; align-items: center; }
    .ae-steps__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
    .ae-step { padding: 0 22px; }
    .ae-step + .ae-step { border-left: 1px solid var(--line); }
}

/* ---------- Équipe et zone : lumière d'eau en fond ---------- */
.ae-team { position: relative; overflow: hidden; padding: clamp(48px, 6vw, 80px) 0; background: var(--bg-alt); isolation: isolate; }
.ae-team__light { position: absolute; inset: -6% -4%; z-index: -1; opacity: 0.95; }
.ae-team__light picture, .ae-team__light img { width: 100%; height: 100%; display: block; object-fit: cover; }
@media (prefers-reduced-motion: no-preference) {
    .ae-team__light { animation: ae-drift 38s ease-in-out infinite alternate; }
}
@keyframes ae-drift { from { transform: translate3d(-1.5%, -1%, 0) scale(1.02); } to { transform: translate3d(1.5%, 1.2%, 0) scale(1.05); } }
.ae-team__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; align-items: center; }
.ae-team__eyebrow { grid-column: 1 / -1; margin: 0; font-family: var(--font-body); }
.ae-team__item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px; align-items: center; }
.ae-team__num { font-family: var(--font-display); font-size: clamp(4.6rem, 10vw, 8rem); line-height: 0.85; letter-spacing: -0.03em; margin: 0; color: var(--ink); }
.ae-team__num em { font-style: italic; font-size: 0.62em; }
.ae-team__label { font-family: var(--font-display); font-size: clamp(1.45rem, 2.2vw, 2rem); line-height: 1.12; margin: 0 0 10px; }
.ae-team__cta p { margin: 0 0 14px; color: var(--ink-2); max-width: 22ch; }
@media (min-width: 1024px) {
    .ae-team__grid { grid-template-columns: auto auto minmax(0, 1fr); gap: 24px 48px; }
    .ae-team__item + .ae-team__item { border-left: 1px solid var(--line-strong); padding-left: 48px; }
    .ae-team__cta { justify-self: end; }
}

/* ---------- Conseils ---------- */
.ae-tips { padding: var(--section) 0; background: var(--bg); }
.ae-tips__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.ae-tips__title { font-size: clamp(2rem, 3.4vw, 2.9rem); margin: 0 0 0.4em; }
.ae-tips__all { margin: 0; }
.ae-tip { display: grid; grid-template-columns: minmax(120px, 0.48fr) minmax(0, 1fr); gap: 20px; align-items: start; margin: 0; }
.ae-tip__media .media { margin: 0; }
.ae-tip__media picture { overflow: hidden; border-radius: var(--radius); }
.ae-tip__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); }
.ae-tip:hover .ae-tip__media img, .ae-tip:focus-within .ae-tip__media img { transform: scale(1.05); }
.ae-tip__media .media__caption { margin: 5px 0 0; text-align: left; font-size: 0.66rem; }
.ae-tip__title { font-size: 1.45rem; margin: 0 0 0.3em; }
.ae-tip__text { margin: 0 0 0.6em; color: var(--ink-2); font-size: 0.98rem; }
@media (min-width: 1024px) {
    .ae-tips__grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; }
    .ae-tip + .ae-tip { border-left: 1px solid var(--line); padding-left: 40px; }
}

/* ---------- Bandeau final : eau profonde ---------- */
.ae-deep { position: relative; overflow: hidden; color: #fff; isolation: isolate; background: var(--ae-deep); padding: clamp(64px, 9vw, 120px) 0; }
.ae-deep__media { position: absolute; inset: 0; z-index: -1; }
.ae-deep__media picture, .ae-deep__media img { width: 100%; height: 100%; display: block; }
.ae-deep__media img { object-fit: cover; object-position: 50% 60%; }
.ae-deep__water { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity 0.9s ease; pointer-events: none; }
.ae-deep__media.is-live .ae-deep__water { opacity: 1; }
.ae-deep__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(4, 34, 36, 0.78) 0%, rgba(4, 34, 36, 0.5) 45%, rgba(4, 34, 36, 0.25) 100%),
        linear-gradient(180deg, rgba(4, 34, 36, 0.35), rgba(4, 34, 36, 0) 30%, rgba(4, 34, 36, 0) 70%, rgba(4, 34, 36, 0.4));
}
.ae-deep__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px 48px; align-items: center; }
.ae-deep__title { color: #fff; font-size: clamp(2.6rem, 6.4vw, 5.6rem); line-height: 0.98; letter-spacing: -0.02em; margin: 0; text-shadow: 0 4px 30px rgba(0, 20, 20, 0.35); }
.ae-deep__text { margin: 0; max-width: 46ch; color: rgba(255, 255, 255, 0.9); }
.ae-deep .actions { margin-top: 6px; }
.ae-deep .btn--outline { color: #fff; border-color: rgba(255, 255, 255, 0.6); }
.ae-deep .btn--outline:hover { border-color: #fff; background: rgba(255, 255, 255, 0.08); }
.ae-deep :focus-visible { outline-color: #fff; }
@media (min-width: 1024px) {
    .ae-deep__inner { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
    .ae-deep__title { grid-row: span 2; }
}

/* ---------- Téléphones et tablettes ---------- */
@media (max-width: 1023px) {
    .ae-hero { min-height: max(480px, calc(100svh - var(--header-h) - var(--mobile-bar-h))); justify-content: flex-end; }
    .ae-hero__inner { padding-block: 32px calc(var(--ae-wave-h) + 26px); }
    .ae-hero__shade {
        background:
            linear-gradient(180deg, rgba(5, 40, 42, 0.22) 0%, rgba(5, 40, 42, 0.12) 18%, rgba(5, 40, 42, 0.42) 40%, rgba(5, 40, 42, 0.7) 66%, rgba(5, 40, 42, 0.76) 100%);
    }
    .ae-hero__title { font-size: clamp(2.7rem, 11.5vw, 4.6rem); }
    .ae-hero__lead { max-width: 40ch; }
    .ae-hero__place { margin-top: 1.2rem; }
    .ae-hero__scroll { display: none; }
    .ae-hero__credit { bottom: calc(var(--ae-wave-h) + 6px); }
    .ae-mission__visual { order: 2; }
    .ae-blob { width: 100%; }
}
@media (orientation: portrait) and (max-width: 1023px) {
    .ae-hero__photo img { object-position: 50% 62%; transform-origin: 45% 0%; }
}
@media (max-width: 480px) {
    .ae-hero__actions .btn { width: 100%; }
    .ae-hero__actions { gap: 12px; }
    .ae-hero__link { align-self: flex-start; }
    .ae-mission__shift { padding-left: 0.6em; }
}
@media (max-height: 640px) and (min-width: 1024px) {
    .ae-hero__inner { padding-block: 24px calc(var(--ae-wave-h) * 0.5 + 24px); }
    .ae-hero__place { margin-top: 1rem; }
}
/* écran bas (téléphone à l'horizontale, petite fenêtre) : le premier écran ne tiendrait pas — il défile normalement */
@media (max-height: 620px) {
    .ae-hero { position: relative; top: auto; min-height: 0; }
}

/* ---------- Navigation au clavier (accueil-eau.js, première touche Tab) : rien n'est épinglé ni masqué ----------
   Le premier écran défile normalement : un élément qui reçoit le focus n'est jamais caché sous la section suivante. */
.ae-kbd .ae-hero { position: relative; top: auto; }

/* ---------- Mouvement réduit : rien ne bouge, rien n'est épinglé ---------- */
@media (prefers-reduced-motion: reduce) {
    .ae-hero { position: relative; top: auto; }
    .ae-hero__water { display: none; }
    .ae-deep__water { display: none; }
    .ae-hero__mouse::after { animation: none; }
    .ae-link, .ae-link__arrow, .ae-card__media img, .ae-tip__media img { transition: none; }
}

/* ---------- Impression ---------- */
@media print {
    .ae-hero { position: static; height: auto; min-height: 0; color: var(--ink); }
    .ae-hero__media, .ae-mission__wave, .ae-team__light, .ae-deep__media { display: none; }
    .ae-hero__title, .ae-deep__title { color: var(--ink); text-shadow: none; }
    .ae-mission { margin-top: 0; padding-top: 0; }
}
