/* Bottoni e stati hover. Caricato per ultimo: sovrascrive i fogli precedenti. */
:root{--btn-bg:#292621;--btn-text:#FAF6EF;--btn-hover:#8E4A2F;--btn-hover-text:#FAF6EF;--btn-ease:cubic-bezier(.22,.61,.36,1);--link-hover:#8E4A2F}

/* ---------- Bottoni ---------- */
html:root body .btn{
 gap:18px!important;min-height:50px;padding:13px 18px 13px 24px!important;border-radius:10px!important;
 font-weight:500!important;font-size:12px!important;letter-spacing:.09em!important;line-height:1.2;
 box-shadow:0 1px 2px #29262114;
 transition:background-color .3s var(--btn-ease),color .3s var(--btn-ease),border-color .3s var(--btn-ease),box-shadow .3s var(--btn-ease),transform .3s var(--btn-ease)!important;
}
/* Mantiene l'animazione di comparsa dei blocchi .page-reveal */
html:root body .btn.page-reveal{
 transition:opacity .7s var(--btn-ease) var(--reveal-delay,0ms),translate .7s var(--btn-ease) var(--reveal-delay,0ms),background-color .3s var(--btn-ease),color .3s var(--btn-ease),border-color .3s var(--btn-ease),box-shadow .3s var(--btn-ease),transform .3s var(--btn-ease)!important;
}
/* Freccia in un cerchio che scorre al passaggio del mouse */
html:root body .btn>span[aria-hidden="true"],html:root body .btn>svg{
 display:inline-grid;place-items:center;flex:none;width:30px;height:30px;margin:-4px -6px -4px 0;border-radius:6px;
 background:#FAF6EF1f;transition:transform .35s var(--btn-ease),background-color .3s var(--btn-ease)
}
html:root body .btn>span[aria-hidden="true"] svg,html:root body .btn>svg{width:18px;height:18px}
html:root body .btn>svg{padding:6px;box-sizing:content-box;width:18px;height:18px}

/* Colori hover: letti dal livello @layer shared-action-interactions di luxury.css */
html:root body :is(.btn,.fireplace-motion,.motion-toggle,.gallery-controls button){--hover-bg:var(--btn-hover);--hover-text:var(--btn-hover-text)}
html:root body .cta-card .btn{--hover-bg:#fff;--hover-text:#292621}
html:root body .service-filters button{--hover-bg:#EADBCD;--hover-border:#8E4A2F59;--hover-text:#8E4A2F}

html:root body .btn:is(:hover,:focus-visible):not(:disabled){transform:translateY(-2px);box-shadow:0 10px 24px -10px #8E4A2F99}
html:root body .btn:is(:hover,:focus-visible):not(:disabled)>:is(span[aria-hidden="true"],svg){transform:translateX(4px);background:#FAF6EF2e}
html:root body .btn:active:not(:disabled){transform:translateY(0) scale(.98);box-shadow:0 2px 6px -2px #29262140}
html:root body .btn:focus-visible{outline:2px solid var(--btn-hover)!important;outline-offset:3px!important}

/* Bottone chiaro sul banner scuro "Il tuo spazio" */
html:root body .cta-card .btn{box-shadow:0 8px 24px -12px #0009}
html:root body .cta-card .btn>span[aria-hidden="true"],html:root body .cta-card .btn>svg{background:#2926210f}
html:root body .cta-card .btn:is(:hover,:focus-visible):not(:disabled){box-shadow:0 14px 30px -12px #000b}
html:root body .cta-card .btn:is(:hover,:focus-visible):not(:disabled)>:is(span[aria-hidden="true"],svg){background:#8E4A2F1f}
html:root body .cta-card .btn:focus-visible{outline-color:#FAF6EF!important}

/* Bottoni secondari (pausa fiamma, frecce recensioni, filtri) */
html:root body :is(.fireplace-motion,.motion-toggle,.service-filters button,.review-prev,.review-next,.brand-marquee-toggle){transition:background-color .3s var(--btn-ease),color .3s var(--btn-ease),border-color .3s var(--btn-ease),transform .3s var(--btn-ease)!important}
html:root body :is(.review-prev,.review-next,.brand-marquee-toggle):is(:hover,:focus-visible){background:#8E4A2F14!important;border-color:#8E4A2F66!important;color:#8E4A2F!important}

/* ---------- Menu principale ---------- */
html:root body header nav>a:not(.btn),html:root body header .nav-toggle{position:relative;transition:color .25s var(--btn-ease)}
html:root body header nav>a:not(.btn)::after,html:root body header .nav-toggle::after{
 content:"";position:absolute;left:0;right:0;bottom:calc(50% - 15px);height:1.5px;border-radius:2px;background:currentColor;
 transform:scaleX(0);transform-origin:right;transition:transform .35s var(--btn-ease);pointer-events:none
}
html:root body header .nav-toggle::after{right:22px}
html:root body header nav>a:not(.btn):is(:hover,:focus-visible)::after,html:root body header .nav-toggle:is(:hover,:focus-visible,[aria-expanded="true"])::after,html:root body header nav>a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
html:root body header:not(.on-dark):not(.over-dark-hero.at-page-top) nav>a:not(.btn):is(:hover,:focus-visible),html:root body header:not(.on-dark):not(.over-dark-hero.at-page-top) .nav-toggle:is(:hover,:focus-visible){color:var(--link-hover)!important}
html:root body header.on-dark nav>a:not(.btn):is(:hover,:focus-visible),html:root body header.at-page-top.over-dark-hero nav>a:not(.btn):is(:hover,:focus-visible){color:#fff!important}
/* Sottomenu Servizi */
html:root body header .mega-links>a h3{transition:color .25s var(--btn-ease)}
html:root body header .mega-links>a:is(:hover,:focus-visible) h3{color:var(--link-hover)}
html:root body header .mega-links>a>span{transition:transform .35s var(--btn-ease),color .25s}
html:root body header .mega-links>a:is(:hover,:focus-visible)>span{color:var(--link-hover)}

/* Menu mobile */
html:root body .mobile-menu-dialog a:not(.btn){transition:color .25s var(--btn-ease)}
html:root body .mobile-menu-dialog a:not(.btn) svg{transition:transform .35s var(--btn-ease)}
html:root body .mobile-menu-dialog a:not(.btn):is(:hover,:focus-visible){color:var(--link-hover)}
html:root body .mobile-menu-dialog a:not(.btn):is(:hover,:focus-visible) svg{transform:translateX(4px)}
html:root body .mobile-menu-dialog :is(.mobile-menu-close,.menu-services-toggle){transition:color .25s}
html:root body .mobile-menu-dialog :is(.mobile-menu-close,.menu-services-toggle):is(:hover,:focus-visible){color:var(--link-hover)}

/* ---------- Link ---------- */
/* Footer */
html:root body footer :is(.footer-top,.footer-bottom) a:not(.btn){transition:color .25s var(--btn-ease);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:4px;transition:color .25s var(--btn-ease),text-decoration-color .25s var(--btn-ease)}
html:root body footer :is(.footer-top,.footer-bottom) a:not(.btn):is(:hover,:focus-visible){color:var(--link-hover)!important;text-decoration-color:currentColor}
html:root body footer .footer-bottom a svg{transition:transform .35s var(--btn-ease)}
html:root body footer .footer-bottom a:is(:hover,:focus-visible) svg{transform:translateX(4px)}
/* Link nel testo e breadcrumb */
html:root body main :is(p,li,dd) a:not(.btn),html:root body .form-help a,html:root body .contact-form a:not(.btn){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:#8E4A2F66;transition:color .25s,text-decoration-color .25s}
html:root body main :is(p,li,dd) a:not(.btn):is(:hover,:focus-visible),html:root body .form-help a:is(:hover,:focus-visible),html:root body .contact-form a:not(.btn):is(:hover,:focus-visible){color:var(--link-hover);text-decoration-color:currentColor}
html:root body a.breadcrumb{transition:opacity .25s}
html:root body a.breadcrumb:is(:hover,:focus-visible){opacity:.7;text-decoration:underline;text-underline-offset:3px}
/* Card (servizi, realizzazioni, prodotti): freccia che scorre */
html:root body :is(.service-card,.project-card,.product-card,.editorial-card) :is(.service-more,.arrow-right){transition:transform .35s var(--btn-ease)}
html:root body :is(.service-card,.project-card,.product-card,.editorial-card):is(:hover,:focus-visible) :is(.service-more,.arrow-right){transform:translateX(5px)}

@media(hover:none){html:root body .btn:hover{transform:none}}
@media(prefers-reduced-motion:reduce){html:root body .btn,html:root body .btn *,html:root body header nav a::after,html:root body header .nav-toggle::after{transition-duration:.01ms!important;transform:none!important}}
html:root body :is(.fireplace-motion,.motion-toggle){border-radius:10px!important;padding-left:16px!important;padding-right:16px!important}

/* Tablet: area cliccabile più ampia sui link del menu, senza andare a capo */
@media(min-width:761px) and (max-width:1100px){
 html:root body header nav>a:not(.btn),html:root body header .nav-toggle{white-space:nowrap;padding-block:13px}
 html:root body header .header-contact{min-height:46px;padding:10px 12px 10px 20px!important;gap:12px!important}
}
/* Mobile: link del footer alti almeno 44px */
@media(max-width:760px){
 html:root body footer .footer-top a:not(.brand),html:root body footer .footer-bottom a{min-height:44px;box-sizing:border-box;padding-block:11px;margin-block:0!important}
 html:root body footer .footer-bottom a{display:inline-flex;align-items:center;gap:6px}
}

/* Logo header: testo scuro su sfondo chiaro, testo bianco sopra le foto scure */
html:root body header .brand img.logo-on-dark{display:none!important}
html:root body header:is(.on-dark,.at-page-top.over-dark-hero:not(:has([aria-expanded="true"]))) .brand img.logo-on-light{display:none!important}
html:root body header:is(.on-dark,.at-page-top.over-dark-hero:not(:has([aria-expanded="true"]))) .brand img.logo-on-dark{display:block!important}
/* Logo footer a colori */
html:root body footer .brand img{filter:none!important;opacity:1!important}
/* Link legali Iubenda nel footer */
html:root body footer .footer-legal{display:flex;flex-wrap:wrap;align-items:center;gap:4px 22px}
