/* Effets de l'accueil, sans modification de sa grille ou de ses contenus. */
@property --homefx-angle { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
.homefx-atmosphere { position: fixed; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; contain: strict; }
.homefx-atmosphere::before, .homefx-atmosphere::after {
    content: ''; position: absolute; width: 65vw; height: 65vh;
    border-radius: 50%; opacity: .65; will-change: transform;
}
.homefx-atmosphere::before {
    left: -20vw; top: -10vh;
    background: radial-gradient(ellipse, rgba(29, 119, 255, .46), rgba(74, 38, 194, .17) 38%, transparent 70%);
    animation: homefx-aurora 16s ease-in-out infinite alternate;
}
.homefx-atmosphere::after {
    right: -20vw; top: 15vh;
    background: radial-gradient(ellipse, rgba(230, 37, 75, .32), rgba(111, 44, 230, .24) 35%, transparent 70%);
    animation: homefx-aurora 19s ease-in-out -7s infinite alternate-reverse;
}
.homefx-atmosphere canvas { display: block; width: 100%; height: 100%; }
body[data-rental-guide-page="home"] .homefx-panel { position: relative; }
.homefx-light { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0;
    background: radial-gradient(360px circle at var(--homefx-x, 50%) var(--homefx-y, 30%), rgba(73, 155, 255, .16), transparent 75%);
    transition: opacity .4s ease; }
.homefx-panel:hover > .homefx-light { opacity: 1; }
.homefx-border { position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
    background: conic-gradient(from var(--homefx-angle), transparent 12%, #44baff 23%, transparent 36%, transparent 60%, #d354ff 73%, #f64765 78%, transparent 92%);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude; opacity: .9; animation: homefx-border-orbit 9s linear infinite; }
body[data-rental-guide-page="home"] .brand-hero {
    animation: homefx-hero-glow 7s ease-in-out infinite alternate;
}
body[data-rental-guide-page="home"] .brand-hero .logo {
    animation: homefx-logo 6s ease-in-out infinite;
    filter: drop-shadow(0 0 20px rgba(83, 153, 255, .2));
}
.homefx-scan { position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
    background: linear-gradient(110deg, transparent 35%, rgba(135, 203, 255, .10) 48%, rgba(255,255,255,.13) 50%, transparent 63%);
    animation: homefx-scan 8s ease-in-out infinite; }
@keyframes homefx-border-orbit { to { --homefx-angle: 360deg; } }
@keyframes homefx-aurora { to { transform: translate(24vw, 22vh) scale(1.2); } }
@keyframes homefx-logo { 0%, 100% { translate: 0 0; } 50% { translate: 0 -18px; } }
@keyframes homefx-hero-glow {
    from { box-shadow: 0 0 32px rgba(35, 116, 248, .16), 0 19px 48px rgba(0,0,0,.28); }
    to { box-shadow: 0 0 55px rgba(124, 72, 249, .27), 0 0 22px rgba(239, 35, 60, .12), 0 19px 48px rgba(0,0,0,.28); }
}
@keyframes homefx-scan { 0%, 18% { transform: translateX(-110%); } 55%, 100% { transform: translateX(110%); } }
@media (hover: hover) and (pointer: fine) {
    body[data-rental-guide-page="home"] :is(.manage-btn, .button, .registration-promotion__action):hover {
        box-shadow: 0 0 24px rgba(66, 145, 255, .4), 0 8px 22px rgba(0,0,0,.25);
    }
}
@media (max-width: 700px) {
    .homefx-atmosphere::before, .homefx-atmosphere::after { width: 110vw; opacity: .45; }
    body[data-rental-guide-page="home"] .brand-hero .logo { animation-duration: 8s; }
}
@media (prefers-reduced-motion: reduce) {
    .homefx-atmosphere, .homefx-light, .homefx-border, .homefx-scan { display: none !important; }
    body[data-rental-guide-page="home"] .brand-hero,
    body[data-rental-guide-page="home"] .brand-hero .logo { animation: none !important; filter: none; }
}

/* Onde lumineuse de la séquence d’ouverture, au sein du panneau du logo. */
.homefx-opening-ring {
    position: absolute; left: 50%; top: 26%; width: 170px; height: 170px;
    margin: -85px; border: 1px solid rgba(125, 195, 255, .8); border-radius: 50%;
    box-shadow: 0 0 35px rgba(88, 159, 255, .5), inset 0 0 22px rgba(135, 72, 255, .3);
    pointer-events: none; animation: homefx-opening-wave 1500ms cubic-bezier(.16,1,.3,1) both;
}
@keyframes homefx-opening-wave {
    0% { opacity: 0; transform: scale(.3); }
    20% { opacity: .65; }
    100% { opacity: 0; transform: scale(6); }
}
@media (prefers-reduced-motion: reduce) { .homefx-opening-ring { display: none; } }

/* Traînées d’étoiles, relief du logo et ondes au clic. */
.homefx-meteor {
    position: absolute; left: -220px; width: 210px; height: 2px;
    background: linear-gradient(90deg, transparent, rgba(103, 171, 255, .4), #d9f3ff);
    box-shadow: 0 0 12px rgba(90, 168, 255, .65);
    opacity: 0; animation: homefx-meteor-flight 8s linear infinite;
}
.homefx-meteor::after { content: ''; position: absolute; right: 0; top: -2px; width: 5px; height: 5px; border-radius: 50%; background: #ecf9ff; }
@keyframes homefx-meteor-flight {
    0%, 8% { opacity: 0; transform: translate(-10vw, -10vh) rotate(24deg); }
    10% { opacity: .85; }
    32% { opacity: .6; }
    38%, 100% { opacity: 0; transform: translate(135vw, 65vh) rotate(24deg); }
}
body[data-rental-guide-page="home"] .homefx-reactive .logo {
    transform: perspective(900px) rotateX(var(--homefx-tilt-x, 0deg)) rotateY(var(--homefx-tilt-y, 0deg));
    transition: transform 240ms ease-out;
}
@supports (background-clip: text) {
    body[data-rental-guide-page="home"] :is(.brand-kicker, .section-kicker) {
        background: linear-gradient(110deg, #60a5fa 20%, #dcf4ff 42%, #c4a4ff 50%, #60a5fa 65%);
        background-size: 250% 100%; background-clip: text; color: transparent;
        animation: homefx-text-shimmer 7s ease-in-out infinite;
    }
}
@keyframes homefx-text-shimmer { 0%, 15% { background-position: 100% 50%; } 80%, 100% { background-position: 0% 50%; } }
.homefx-click-wave {
    position: fixed; z-index: 9998; width: 36px; height: 36px; margin: -18px;
    border: 1px solid rgba(119, 198, 255, .75); border-radius: 50%; pointer-events: none;
    box-shadow: 0 0 15px rgba(73, 148, 255, .28); animation: homefx-click-wave 750ms ease-out both;
}
@keyframes homefx-click-wave { from { opacity: .75; transform: scale(.3); } to { opacity: 0; transform: scale(4); } }
body.homefx-paused .homefx-atmosphere *, body.homefx-paused .homefx-atmosphere::before,
body.homefx-paused .homefx-atmosphere::after,
body.homefx-paused :is(.homefx-border, .homefx-scan, .brand-hero, .brand-hero .logo, .brand-kicker, .section-kicker) { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
    .homefx-meteor, .homefx-click-wave { display: none !important; }
    body[data-rental-guide-page="home"] .homefx-reactive .logo { transform: none; }
    body[data-rental-guide-page="home"] :is(.brand-kicker, .section-kicker) { animation: none; background: none; color: #60a5fa; }
}

/* Anneaux d’énergie derrière le logo : animation décorative sans capture des clics. */
.homefx-energy-orbit {
    position: absolute; left: 12%; top: -90px; width: 76%; height: 280px;
    border: 2px solid transparent; border-top-color: rgba(75, 185, 255, .65);
    border-bottom-color: rgba(177, 94, 255, .4); border-radius: 50%; pointer-events: none;
    box-shadow: 0 -5px 25px rgba(70, 136, 255, .22), inset 0 5px 20px rgba(87, 153, 255, .10);
    animation: homefx-energy-orbit 10s linear infinite;
}
.homefx-energy-orbit-secondary {
    left: 19%; top: -70px; width: 62%; height: 240px;
    border-top-color: rgba(247, 77, 134, .5); border-bottom-color: rgba(90, 219, 255, .5);
    animation-duration: 14s; animation-direction: reverse;
}
@keyframes homefx-energy-orbit { from { transform: rotateX(58deg) rotateZ(0deg); } to { transform: rotateX(58deg) rotateZ(360deg); } }
body[data-rental-guide-page="home"] .homefx-border { padding: 2px; animation-duration: 5s; }
body[data-rental-guide-page="home"] .homefx-light { background: radial-gradient(400px circle at var(--homefx-x, 50%) var(--homefx-y, 30%), rgba(73, 155, 255, .24), transparent 75%); }
body.homefx-paused .homefx-energy-orbit { animation-play-state: paused; }
@media (max-width: 700px) { .homefx-energy-orbit { opacity: .6; } }
@media (prefers-reduced-motion: reduce) { .homefx-energy-orbit { display: none; } }

/* Signature de la communauté plus lisible, sans agrandir les autres titres. */
body[data-rental-guide-page="home"] .brand-kicker { font-size: clamp(14px, 1.2vw, 17px); line-height: 1.5; }

/* Même bordure orbitale que le cadre du logo, y compris après le chargement AJAX. */
body[data-rental-guide-page="home"] .amp-account-actions a.manage-btn:is([href="/dashboard.php"], [href="/login.php"], .manage-btn-amp) { position: relative; }
body[data-rental-guide-page="home"] .amp-account-actions a.manage-btn:is([href="/dashboard.php"], [href="/login.php"], .manage-btn-amp)::after {
    content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 2px; pointer-events: none;
    background: conic-gradient(from var(--homefx-angle), transparent 12%, #44baff 23%, transparent 36%, transparent 60%, #d354ff 73%, #f64765 78%, transparent 92%);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude; opacity: .9; animation: homefx-border-orbit 5s linear infinite;
}
body.homefx-paused .amp-account-actions a.manage-btn::after { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
    body[data-rental-guide-page="home"] .amp-account-actions a.manage-btn::after { display: none; }
}

/* Boutons de compte plus lumineux, avec un texte blanc contrasté. */
body[data-rental-guide-page="home"] .amp-account-actions a.manage-btn[href="/login.php"] {
    background: linear-gradient(180deg, rgba(255,255,255,.15), transparent 52%), linear-gradient(115deg, #075ddc, #0442ad 55%, #08718d);
    border-color: #58c7ff; box-shadow: 0 0 20px rgba(40,145,255,.32), 0 7px 18px rgba(0,47,148,.3), inset 0 1px 0 rgba(255,255,255,.3);
}
body[data-rental-guide-page="home"] .amp-account-actions a.manage-btn-member {
    background: linear-gradient(180deg, rgba(255,255,255,.15), transparent 52%), linear-gradient(115deg, #087e52, #075f44 55%, #076f67);
    border-color: #61f5b4; box-shadow: 0 0 20px rgba(21,225,143,.28), 0 7px 18px rgba(0,93,63,.3), inset 0 1px 0 rgba(255,255,255,.3);
}
body[data-rental-guide-page="home"] .amp-account-actions a.manage-btn-amp {
    background: linear-gradient(180deg, rgba(130,230,255,.18), transparent 52%), linear-gradient(115deg, #005be6, #0646bc 52%, #00728b);
    border-color: #68e7ff; box-shadow: 0 0 24px rgba(0,163,255,.42), 0 7px 18px rgba(0,64,182,.3), inset 0 1px 0 rgba(184,245,255,.4);
}
body[data-rental-guide-page="home"] .amp-account-actions a.manage-btn:is([href="/login.php"], .manage-btn-member, .manage-btn-amp) {
    color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.3);
}

/* Icônes vectorielles locales : aucun symbole typographique ni bibliothèque distante. */
body[data-rental-guide-page="home"] .amp-account-actions .manage-btn::before {
    content: ''; display: block; width: 18px; height: 18px; flex: 0 0 18px;
    background-color: currentColor;
}
body[data-rental-guide-page="home"] .amp-account-actions a[href="/dashboard.php"]::before { content: ""; mask: url("/assets/icons/member.svg") center / contain no-repeat; }
body[data-rental-guide-page="home"] .amp-account-actions a[href="/login.php"]::before { content: ""; mask: url("/assets/icons/login.svg") center / contain no-repeat; }
body[data-rental-guide-page="home"] .amp-account-actions .manage-btn-secondary::before { content: ""; mask: url("/assets/icons/logout.svg") center / contain no-repeat; }
body[data-rental-guide-page="home"] .amp-account-actions a[href="/register.php"]::before { content: ""; mask: url("/assets/icons/register.svg") center / contain no-repeat; }
body[data-rental-guide-page="home"] .amp-account-actions .manage-btn-amp::before { content: ""; mask: url("/assets/icons/amp.svg") center / contain no-repeat; }
