:root { --gold:#765329; --gold-light:#cfb27d; }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(1px,1px,1px,1px); white-space:nowrap!important; }
.contact-form button:disabled { cursor:wait; opacity:.72; }
.footer-meta { display:grid; justify-self:end; gap:.4rem; text-align:right; }
.footer-meta a { text-decoration:underline; text-underline-offset:.2rem; }
@media (max-width:760px) { .footer-meta { justify-self:start; text-align:left; } }
.section-dark .section-label, .section-dark .section-label span, .section-dark h2 em, .section-dark .practice-card > span, .section-dark .practice-card a { color:var(--gold-light); }
.contact-form label span { color:#4b5d65; }
.contact-form textarea { width:100%; min-height:6.5rem; padding:.8rem 0; border:0; border-bottom:1px solid var(--line); outline:0; resize:vertical; color:var(--ink); background:transparent; font:400 1rem var(--sans); }
.contact-form textarea:focus { border-color:var(--gold); }
.site-header { position:sticky; top:0; z-index:20; background:rgba(244,240,232,.94); transition:min-height 220ms ease,box-shadow 220ms ease,background-color 220ms ease; }
.site-header.is-scrolled { min-height:94px; padding:1.2rem clamp(1.5rem,5vw,5rem); background:rgba(244,240,232,.88); box-shadow:0 7px 24px rgba(16,40,52,.09); backdrop-filter:blur(12px); }
.site-header.is-scrolled .brand-logo { width:clamp(135px,16vw,172px); }
.site-header.is-scrolled .main-nav { gap:1.3rem; font-size:.72rem; letter-spacing:.06em; }
main > section { scroll-margin-top:94px; }
.main-nav a:not(.nav-cta) { position:relative; }
.main-nav .nav-cta { border-bottom:0; }
.main-nav .nav-cta:hover,.main-nav .nav-cta:focus-visible,.main-nav .nav-cta[aria-current="true"] { color:var(--gold); }
.main-nav a:not(.nav-cta)::after { content:""; position:absolute; right:0; bottom:.1rem; left:0; height:1px; transform:scaleX(0); transform-origin:left; background:var(--gold); transition:transform 180ms ease; }
.main-nav a:hover::after,.main-nav a:focus-visible::after,.main-nav a[aria-current="true"]::after { transform:scaleX(1); }
.button,.text-link,.practice-card,.practice-card b,.directions-link { transition:transform 180ms ease,background-color 180ms ease,color 180ms ease,border-color 180ms ease,box-shadow 180ms ease; }
.button:hover,.button:focus-visible { transform:translateY(-2px); box-shadow:0 8px 18px rgba(16,40,52,.16); }
.button:hover span,.button:focus-visible span { transform:translateX(4px); }
.button span { transition:transform 180ms ease; }
.text-link:hover,.text-link:focus-visible { color:var(--gold); }
.text-link:hover span,.text-link:focus-visible span { transform:translateX(4px); }
.text-link span { transition:transform 180ms ease; }
.practice-card:hover { background:rgba(244,240,232,.045); box-shadow:inset 0 -2px 0 var(--gold-light); }
.practice-card:hover b,.practice-card a:focus-visible b { display:inline-block; transform:translateX(4px); }
.directions-link { display:inline-flex!important; width:max-content; gap:.45rem; margin-top:1.25rem; padding-bottom:.2rem; border-bottom:1px solid var(--gold); color:var(--ink)!important; font:600 .64rem var(--sans)!important; letter-spacing:.1em; text-transform:uppercase; }
.directions-link:hover,.directions-link:focus-visible { color:var(--gold)!important; }
.directions-link span { font-size:.95rem; }
.contact-details { display:grid; gap:1.25rem; }
.contact-details > a:first-child,.contact-details address { position:relative; margin:0; padding:1.15rem 0 0; border-top:1px solid rgba(23,50,66,.18); }
.contact-details > a:first-child { width:max-content; color:var(--ink); font-size:1.45rem; line-height:1.1; text-decoration:none; }
.contact-details > a:first-child::before,.contact-details address::before { display:block; margin-bottom:.55rem; color:var(--gold); font:600 .59rem var(--sans); letter-spacing:.14em; }
.contact-details > a:first-child::before { content:"APPELER LE CABINET"; }
.contact-details address { color:var(--ink); font-size:.89rem; line-height:1.65; }
.contact-details address::before { content:"CABINET · SUR RENDEZ-VOUS"; }
.contact-details .directions-link { margin-top:-.25rem; }
.field-hint { margin:-.65rem 0 0; color:#52636b; font-size:.68rem; text-align:right; }
.contact-form .was-validated:invalid { border-color:#9d3f35; }
.contact-form .was-validated:valid { border-color:#4d735c; }
.form-notice a { text-decoration:underline; text-underline-offset:.16rem; }
.form-success { padding:.8rem 1rem; border-left:2px solid #4d735c; background:rgba(77,115,92,.09); color:#254936!important; font-size:.82rem; line-height:1.5; }
.form-success.is-error { border-color:#9d3f35; background:rgba(157,63,53,.09); color:#7c3029!important; }
.form-success:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.mobile-consultation { display:none; }
.back-to-top { position:fixed; right:1.25rem; bottom:1.25rem; z-index:15; display:grid; width:2.8rem; height:2.8rem; place-items:center; visibility:hidden; border:1px solid rgba(244,240,232,.5); border-radius:50%; transform:translateY(1rem); opacity:0; pointer-events:none; background:var(--ink); color:var(--paper); font:1.25rem var(--serif); transition:opacity 180ms ease,transform 180ms ease,background-color 180ms ease,visibility 180ms ease; }
.back-to-top.is-visible { visibility:visible; transform:translateY(0); opacity:1; pointer-events:auto; }
.back-to-top:hover,.back-to-top:focus-visible { background:var(--gold); }
@supports (view-transition-name:none) { @view-transition { navigation:auto; } }
@media (max-width:760px) { body { padding-bottom:5.8rem; } .site-header.is-scrolled { min-height:80px; padding:.9rem 1.5rem; } .site-header.is-scrolled .brand-logo { width:130px; } .site-header.is-scrolled .main-nav { gap:1rem; font-size:.67rem; } main > section { scroll-margin-top:80px; } .directions-link { margin-top:1rem; padding:.15rem 0 .35rem; } .contact-details > a:first-child { padding-top:1rem; } .mobile-consultation { position:fixed; right:1rem; bottom:max(1rem,env(safe-area-inset-bottom)); z-index:19; display:inline-flex; align-items:center; gap:.8rem; padding:.78rem 1rem; border:1px solid rgba(244,240,232,.5); box-shadow:0 8px 22px rgba(16,40,52,.18); background:var(--ink); color:var(--paper); font-size:.63rem; font-weight:600; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; } .mobile-consultation span { color:var(--gold-light); font-size:1rem; line-height:0; } .mobile-consultation:focus-visible { outline:2px solid var(--gold); outline-offset:3px; } .back-to-top { right:1rem; bottom:4.85rem; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }
