/* AB Exclusive — generato da build/costruisci.mjs. */

/* I caratteri del prototipo, serviti dal dominio del sito. */
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400 500;font-display:swap;src:url(/assets/font/bodoni-moda-latin-ext-corsivo.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400 500;font-display:swap;src:url(/assets/font/bodoni-moda-latin-corsivo.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/font/bodoni-moda-latin-ext-normale.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/font/bodoni-moda-latin-normale.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:300 500;font-display:swap;src:url(/assets/font/jost-latin-ext-normale.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Jost';font-style:normal;font-weight:300 500;font-display:swap;src:url(/assets/font/jost-latin-normale.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Il primo disegno scritto nell'HTML: due, per il telefono e per il computer, e
   se ne vede uno. Appena il JavaScript prende in mano la pagina tiene quello
   giusto, e questa regola non serve più. */
[data-dc-pre]{display:none}
@media (max-width:899px){[data-dc-pre="stretto"]{display:block}}
@media (min-width:900px){[data-dc-pre="largo"]{display:block}}

/* Il sipario della home (il logo che si apre). Senza JavaScript non c'è: non
   ci sarebbe niente a toglierlo. Col JavaScript c'è dal primo fotogramma, e se
   qualcosa va storto se ne va da solo dopo cinque secondi. */
[data-intro]{display:none}
@media (prefers-reduced-motion:no-preference){
  html.js:not(.ab-intro-vista) [data-intro]{display:block;animation:abSipario 0s linear 5s forwards}
  html.js [data-intro-mark]{opacity:0}
  html.js [data-intro-line]{transform:scaleX(0)}
}
@keyframes abSipario{to{visibility:hidden}}

/* Le entrate in scena (motion.js). Gli elementi partono nello stato iniziale
   della loro animazione, cosi' fra il primo disegno e l'avvio del JavaScript
   non si vedono comparire e sparire. Vale solo col JavaScript acceso, e se il
   JavaScript non arriva entro tre secondi e mezzo tutto compare lo stesso: una
   sezione invisibile non e' mai il risultato voluto. */
@media (prefers-reduced-motion:no-preference){
  html.js:not(.ab-vivo) [data-r]{animation:abRete 0s linear 3.5s forwards}
  html.js:not(.ab-vivo) [data-r="up"]{opacity:0;transform:translateY(40px)}
  html.js:not(.ab-vivo) [data-r="fade"]{opacity:0}
  html.js:not(.ab-vivo) [data-r="rise"]{transform:translateY(112%)}
  html.js:not(.ab-vivo) [data-r="blur"]{opacity:0;filter:blur(16px);transform:scale(1.04)}
  html.js:not(.ab-vivo) [data-r="line"]{transform:scaleX(0)}
  html.js:not(.ab-vivo) [data-r="vline"]{transform:scaleY(0)}
  html.js:not(.ab-vivo) [data-r="img"]{clip-path:inset(16% 12% 16% 12%)}
  html.js:not(.ab-vivo) [data-r="wipe"]{clip-path:inset(0 100% 0 0)}
  html.js:not(.ab-vivo) [data-r="left"]{opacity:0;transform:translateX(-32px)}
}
@keyframes abRete{to{opacity:1;transform:none;filter:none;clip-path:none}}

/* Le sezioni che avanzano con lo scorrimento (la fila della collezione, il
   pacchetto matrimonio) leggono --p, che scrive motion.js. Senza JavaScript si
   mostrano complete invece che ferme all'inizio. */
html:not(.js) [data-progress]{--p:1}

/* Nel CMS, se in questa visita si è già entrati, il modulo di accesso del primo
   disegno non si mostra per un attimo prima della dashboard. */
html.ab-cms-dentro:not(.ab-vivo) #ab-app{visibility:hidden}

/* I collegamenti dentro la pagina (#preventivo, #transfer-vip) ci arrivano
   scorrendo invece di saltare. */
html{scroll-behavior:smooth}

/* Il contorno di chi naviga da tastiera: nel prototipo non c'era. */
:focus-visible{outline:2px solid #C8A45A;outline-offset:3px}
input:focus-visible,textarea:focus-visible{outline:none}

/* Chi ha chiesto al sistema operativo meno animazioni le ottiene. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* Gli stati al passaggio del mouse e alla pressione, dal prototipo (style-hover). */
@media (hover:hover){.dch1jaxvpm:hover{color:#C8A45A !important}}
@media (hover:hover){.dch2m3xny:hover{background:#D9BA74 !important}}
@media (hover:hover){.dch17294qn:hover{transform:scale(1.07) !important;filter:saturate(1.05) !important}}
@media (hover:hover){.dch1vsucxw:hover{transform:scale(1.08) !important}}
@media (hover:hover){.dchbfb2qw:hover{background:rgba(200,164,90,.14) !important}}
.dcaja5ujf:active{transform:scale(.97) !important}
@media (hover:hover){.dch1hwcinj:hover{background:#242424 !important}}
@media (hover:hover){.dch1plf97i:hover{transform:scale(1.06) !important}}
@media (hover:hover){.dch1yisw0z:hover{transform:scale(1.12) !important}}
@media (hover:hover){.dch1ydb611:hover{background:#F5EFE6 !important;color:#0E0E0E !important}}
@media (hover:hover){.dch1p5wxgx:hover{transform:scale(1.07) !important}}
@media (hover:hover){.dchbdvjhn:hover{transform:scale(1.05) !important}}
@media (hover:hover){.dchy42tch:hover{color:#8A6A2E !important;padding-left:12px !important}}
@media (hover:hover){.dch1vb3zkq:hover{color:#C8A45A !important;padding-left:12px !important}}
@media (hover:hover){.dch2dffev:hover{background:rgba(245,239,230,.06) !important}}
@media (hover:hover){.dch12msvow:hover{border-color:rgba(200,164,90,.5) !important}}
@media (hover:hover){.dchvag3xt:hover{border-color:#C8A45A !important;color:#C8A45A !important}}
