/* Adaptation CSS du principe Hover Border Gradient d’Aceternity UI.
   Un contour masqué préserve les fonds, les libellés et les zones de clic natives. */
@property --sc-border-angle { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
:root{--button-glint:var(--sc-cuivre-hi);--button-edge:var(--sc-cuivre-lo)}
body:has(.site-header),#panel-immo,#tab-immo{--button-glint:var(--sc-lagon-hi);--button-edge:var(--sc-lagon)}
#panel-pro,#tab-pro{--button-glint:var(--sc-craie);--button-edge:var(--sc-basalte)}
:where(button,a.button,a.home-return,.header #navigation>a){position:relative;isolation:isolate}
:is(button,a.button,a.home-return,.header #navigation>a)::after{
 content:"";display:block;position:absolute;inset:0;box-sizing:border-box;
 width:auto;height:auto;padding:2px;border-radius:inherit;pointer-events:none;z-index:2;
 background:conic-gradient(from var(--sc-border-angle),transparent 0deg,var(--button-edge) 70deg,var(--button-glint) 105deg,transparent 145deg,transparent 360deg);
 -webkit-mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);
 -webkit-mask-composite:xor;mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:exclude;
 opacity:.8;transform:none;transition:opacity .25s;animation:sc-border-orbit 6s linear infinite;
}
/* La bordure complète apparaît au survol et au clavier, sans déplacer le bouton. */
:is(button,a.button,a.home-return,.header #navigation>a):is(:hover,:focus-visible)::after{
 background:conic-gradient(from var(--sc-border-angle),var(--button-edge),var(--button-glint),var(--button-edge),var(--button-glint),var(--button-edge));opacity:1;transform:none;
}
:is(button,a.button,a.home-return):focus-visible{outline:2px solid var(--sc-cuivre-lo);outline-offset:4px}
:is(button:disabled,button[aria-disabled="true"],a[aria-disabled="true"])::after{animation:none;opacity:0}
@keyframes sc-border-orbit{to{--sc-border-angle:360deg}}
@media(prefers-reduced-motion:reduce){:is(button,a.button,a.home-return,.header #navigation>a)::after{animation:none;transition:none;--sc-border-angle:105deg}}
@media(forced-colors:active){:is(button,a.button,a.home-return,.header #navigation>a)::after{display:none}}
@supports not (mask-composite:exclude){:is(button,a.button,a.home-return,.header #navigation>a)::after{display:none}}

/* Une géométrie commune pour les actions ; les cartes de choix gardent leur format. */
:root{--action-radius:.9rem;--action-height:3.15rem;--action-padding:.85rem 1.5rem}
.button-arrow{display:none!important}
:is(.header,.site-header,.hero-copy,.platform-panel,.cabinet-intro,.mobile-action,.mobile-cta,.form-actions,.next-project,.invitation,dialog,form) .button,
a.button,button.button,
.header #navigation>a,.site-header .home-return,
#diagnostic .nav button,.nav button,.contact-actions button,#contact>button{
 min-height:var(--action-height);padding:var(--action-padding);border-radius:var(--action-radius);
 justify-content:center;align-items:center;text-align:center;gap:0;font-size:.9rem;font-weight:600;line-height:1.35;letter-spacing:-.015em;
}
button.menu{border-radius:var(--action-radius);min-height:var(--action-height);padding:.75rem 1.25rem}
button.text-button,button.link{min-height:2.75rem;padding:.65rem 1rem;border-radius:var(--action-radius);line-height:1.4;text-underline-offset:.25em}
.platform-tabs button>span:first-child{padding-right:0}
.platform-tabs button small{padding-right:0}
@media(max-width:580px){
 .platform-tabs #tab-perso,.platform-tabs #tab-pro,.platform-tabs #tab-immo{padding:1.25rem;min-height:7.5rem}
 :root{--action-padding:.85rem 1.15rem}
 .welcome-deck-controls button{min-height:2.75rem;padding:.5rem .65rem}
}
