@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');
:root{--paper:#fffdf8;--ivory:#f8f0e3;--ink:#090806;--gold:#b89453;--gold2:#d4b470;--wine:#351016;--muted:#d8c8ad;--soft:#f2eadc}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 0%,rgba(184,148,83,.14),transparent 34%),var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif}.td-access{min-height:100vh;display:grid;place-items:center;padding:28px}.td-card{width:min(760px,100%);min-height:min(860px,calc(100vh - 56px));display:grid;align-content:center;position:relative;padding:46px 34px;border:1px solid rgba(184,148,83,.22);background:rgba(255,253,248,.74);box-shadow:0 35px 120px rgba(53,16,22,.10);backdrop-filter:blur(18px);overflow:hidden}.td-card:before{content:"";position:absolute;inset:22px;border:1px solid rgba(184,148,83,.16);pointer-events:none}.td-logo-area{text-align:center;position:relative;z-index:2}.td-logo{width:min(470px,82vw);display:block;margin:0 auto 28px}.td-separator{height:44px;display:grid;place-items:center;margin-bottom:26px}.td-separator:before{content:"";width:min(420px,70vw);height:1px;background:linear-gradient(90deg,transparent,rgba(184,148,83,.82),transparent)}.td-separator span{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 1px rgba(184,148,83,.35),0 0 28px rgba(184,148,83,.28)}.td-choice{position:relative;z-index:2;transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1),filter .55s}.td-choice.is-leaving{opacity:0;transform:translateY(28px);filter:blur(7px);pointer-events:none}.td-actions{display:grid;gap:14px;width:min(420px,100%);margin:auto}.td-btn{width:100%;border:1px solid rgba(184,148,83,.36);background:#fffaf1;color:var(--ink);border-radius:999px;padding:17px 22px;text-transform:uppercase;letter-spacing:.13em;font-weight:800;cursor:pointer;transition:transform .28s ease,background .28s,color .28s,box-shadow .28s}.td-btn:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(53,16,22,.13)}.td-btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.td-btn.secondary{background:transparent}.td-btn.apple{background:#090806;color:white}.td-btn.google{background:#fff}.td-small-separator{display:flex;align-items:center;gap:12px;color:#8b7658;font-size:12px;text-transform:uppercase;letter-spacing:.18em;margin:4px 0}.td-small-separator:before,.td-small-separator:after{content:"";height:1px;background:#d7c6aa;flex:1}.td-flow{position:absolute;left:34px;right:34px;top:50%;transform:translateY(-42%);z-index:3;opacity:0;pointer-events:none;transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1)}.td-flow.is-active{opacity:1;transform:translateY(-50%);pointer-events:auto}.td-form{display:none;background:rgba(255,253,248,.92);border:1px solid rgba(184,148,83,.24);border-radius:28px;padding:30px;box-shadow:0 25px 80px rgba(53,16,22,.10)}.td-form.is-active{display:block;animation:formIn .72s cubic-bezier(.16,1,.3,1) both}@keyframes formIn{from{opacity:0;transform:translateY(24px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}.td-back{border:0;background:transparent;color:#8c7248;text-transform:uppercase;letter-spacing:.15em;font-size:11px;font-weight:800;margin:0 0 16px;cursor:pointer}.td-kicker{text-transform:uppercase;letter-spacing:.22em;color:var(--gold);font-size:11px;font-weight:800;margin:0 0 10px}.td-form h1{font-family:Cinzel,Georgia,serif;font-weight:400;font-size:clamp(30px,4vw,48px);line-height:1.05;margin:0 0 24px}.td-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.td-form label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#594936;margin-bottom:14px}.td-form input,.td-form select{border:1px solid #d1bea0;background:#fffaf1;border-radius:14px;padding:14px;font:inherit;outline:none}.td-form input:focus,.td-form select:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(184,148,83,.15)}.td-check{display:flex!important;grid-template-columns:auto 1fr;align-items:start;font-weight:500!important;line-height:1.35}.td-check input{margin-top:3px}.td-note,.td-link{font-size:13px;color:#7b674c}.td-link{display:inline-block;margin-top:14px}.td-message{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(24px);background:var(--ink);color:var(--paper);padding:14px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:.35s;z-index:20}.td-message.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(max-width:720px){.td-access{padding:14px}.td-card{min-height:calc(100vh - 28px);padding:34px 18px}.td-card:before{inset:12px}.td-flow{left:16px;right:16px}.td-form{padding:22px}.td-grid{grid-template-columns:1fr}.td-logo{width:min(390px,86vw)}}


/* FIX01 - form sotto separatore e logo visibile */
.td-logo{min-height:120px;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(0,0,0,.10));}
.td-choice.is-hidden{display:none!important;}
.td-flow{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  transform:translateY(28px)!important;
  width:min(560px,100%)!important;
  margin:0 auto!important;
  z-index:3!important;
}
.td-flow.is-active{
  opacity:1!important;
  transform:translateY(0)!important;
  pointer-events:auto!important;
}
.td-form{max-height:min(560px,58vh);overflow:auto;scrollbar-width:thin;}
@media(max-width:720px){.td-logo{min-height:90px}.td-flow{width:100%!important}.td-form{max-height:58vh}}


/* FIX02 - modulo incorporato nella pagina, nessun popup e nessuno scroll interno */
.td-card{
  min-height:auto!important;
  align-content:center!important;
  overflow:visible!important;
}
.td-flow{
  display:none!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  transform:translateY(18px)!important;
  width:min(560px,100%)!important;
  margin:0 auto!important;
  opacity:0!important;
  pointer-events:none!important;
}
.td-flow.is-active{
  display:block!important;
  opacity:1!important;
  transform:translateY(0)!important;
  pointer-events:auto!important;
}
.td-form{
  max-height:none!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:0!important;
}
.td-form.is-active{
  display:block!important;
}
.td-logo-area{
  margin-bottom:0!important;
}
.td-separator{
  margin-bottom:28px!important;
}
body{
  overflow-y:auto!important;
}
@media(max-width:720px){
  .td-card{padding:30px 18px!important;}
  .td-form{max-height:none!important;overflow:visible!important;}
}


/* FIX03 - transizione fluida, rimozione kicker, indietro animato */
.td-choice{
  max-height:520px;
  overflow:hidden;
  transition:opacity .68s cubic-bezier(.16,1,.3,1),transform .68s cubic-bezier(.16,1,.3,1),filter .68s cubic-bezier(.16,1,.3,1),max-height .72s cubic-bezier(.16,1,.3,1),margin .72s cubic-bezier(.16,1,.3,1)!important;
}
.td-choice.is-leaving{
  max-height:0!important;
  margin:0!important;
  opacity:0!important;
  transform:translateY(24px)!important;
  filter:blur(5px)!important;
}
.td-flow{
  display:block!important;
  max-height:0!important;
  overflow:hidden!important;
  opacity:0!important;
  transform:translateY(28px)!important;
  transition:max-height .95s cubic-bezier(.16,1,.3,1),opacity .70s cubic-bezier(.16,1,.3,1),transform .78s cubic-bezier(.16,1,.3,1)!important;
}
.td-flow.is-active{
  max-height:1400px!important;
  overflow:visible!important;
  opacity:1!important;
  transform:translateY(0)!important;
}
.td-form.is-active{
  animation:formInSoft .78s cubic-bezier(.16,1,.3,1) both!important;
}
@keyframes formInSoft{from{opacity:0;transform:translateY(20px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.td-kicker{display:none!important;}
.td-back{
  display:inline-flex!important;
  align-items:center!important;
  gap:9px!important;
  border:0!important;
  background:transparent!important;
  color:#8c7248!important;
  text-transform:uppercase!important;
  letter-spacing:.15em!important;
  font-size:11px!important;
  font-weight:800!important;
  margin:0 0 18px!important;
  cursor:pointer!important;
  transition:transform .35s cubic-bezier(.16,1,.3,1),color .35s ease!important;
}
.td-back-arrow{
  display:inline-block;
  transition:transform .35s cubic-bezier(.16,1,.3,1);
  font-size:15px;
  line-height:1;
}
.td-back:hover{
  color:#b89453!important;
  transform:translateX(-4px)!important;
}
.td-back:hover .td-back-arrow{
  transform:translateX(-7px)!important;
}


/* FIX04 - transizione elegante con stage animato, senza scatti */
.td-stage{
  position:relative!important;
  width:min(560px,100%)!important;
  margin:0 auto!important;
  height:auto;
  transition:height 1.05s cubic-bezier(.16,1,.3,1)!important;
  will-change:height;
}
.td-stage .td-choice,
.td-stage .td-flow{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:0!important;
  width:100%!important;
  margin:0 auto!important;
  max-height:none!important;
  overflow:visible!important;
  will-change:opacity,transform,filter;
}
.td-stage .td-choice{
  opacity:1!important;
  transform:translateY(0) scale(1)!important;
  filter:none!important;
  pointer-events:auto!important;
  transition:opacity .82s cubic-bezier(.16,1,.3,1),transform .82s cubic-bezier(.16,1,.3,1),filter .82s cubic-bezier(.16,1,.3,1)!important;
}
.td-stage .td-choice.is-leaving{
  opacity:0!important;
  transform:translateY(-22px) scale(.985)!important;
  filter:blur(7px)!important;
  pointer-events:none!important;
}
.td-stage .td-choice.is-hidden{
  visibility:hidden!important;
  display:block!important;
}
.td-stage .td-flow{
  display:block!important;
  opacity:0!important;
  transform:translateY(34px) scale(.985)!important;
  filter:blur(8px)!important;
  pointer-events:none!important;
  transition:opacity .92s cubic-bezier(.16,1,.3,1),transform .92s cubic-bezier(.16,1,.3,1),filter .92s cubic-bezier(.16,1,.3,1)!important;
}
.td-stage .td-flow.is-active{
  opacity:1!important;
  transform:translateY(0) scale(1)!important;
  filter:none!important;
  pointer-events:auto!important;
}
.td-stage .td-form{
  max-height:none!important;
  overflow:visible!important;
}
.td-stage .td-form:not(.is-active){
  display:none!important;
}


/* FIX05 - transizione a pagina che sale dal basso e scende tornando indietro */
.td-stage .td-choice{
  transition:opacity .46s ease,transform .82s cubic-bezier(.16,1,.3,1)!important;
}
.td-stage .td-choice.is-leaving{
  opacity:0!important;
  transform:translateY(-72px) scale(.99)!important;
  filter:none!important;
}
.td-stage .td-flow{
  opacity:0!important;
  transform:translateY(115px) scale(.992)!important;
  filter:none!important;
  transition:opacity .38s ease,transform .96s cubic-bezier(.16,1,.3,1)!important;
}
.td-stage .td-flow.is-active{
  opacity:1!important;
  transform:translateY(0) scale(1)!important;
  filter:none!important;
}
.td-stage .td-form.is-active{
  animation:none!important;
}
.td-form{
  transform-origin:center bottom;
}


/* FIX06 - elimina lo scatto: altezza stage stabile, nessun adattamento layout durante transizione */
.td-stage{
  height:620px!important;
  transition:none!important;
}
.td-stage .td-choice,
.td-stage .td-flow{
  top:0!important;
}
.td-stage .td-choice{
  min-height:320px;
}
.td-stage .td-flow{
  min-height:620px;
}
.td-card{
  transition:none!important;
}
@media(max-width:720px){
  .td-stage{height:760px!important;}
  .td-stage .td-flow{min-height:760px;}
}


/* FIX07 - riquadro che si allunga/riduce con animazione fluida invece di altezza fissa */
.td-stage{
  height:var(--stage-height, auto)!important;
  transition:height 1.05s cubic-bezier(.16,1,.3,1)!important;
  overflow:visible!important;
}
@media(max-width:720px){
  .td-stage{height:var(--stage-height, auto)!important;}
}


/* FIX08 - niente scroll nella pagina iniziale compatta */
body.td-lock-scroll{
  overflow:hidden!important;
}
body.td-form-open{
  overflow-y:auto!important;
}


/* FIX09 - login alto solo quanto serve + nessun blocco quando si torna indietro */
.td-stage .td-flow{
  min-height:0!important;
}
.td-stage .td-form{
  min-height:0!important;
}
#loginForm{
  max-width:520px;
  margin:0 auto;
}


/* FIX10 - eliminati blocchi scroll: box centrale, scroll naturale solo quando serve */
body,
body.td-lock-scroll,
body.td-form-open{
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
.td-access{
  min-height:100svh!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:28px!important;
}
body.td-register-open .td-access{
  align-items:flex-start!important;
  padding-top:28px!important;
  padding-bottom:28px!important;
}
.td-card{
  margin:auto!important;
}
body.td-register-open .td-card{
  margin:0 auto!important;
}
@media(max-width:720px){
  .td-access{padding:14px!important;}
  body.td-register-open .td-access{padding-top:14px!important;padding-bottom:14px!important;}
}


/* FIX11 - contenuto sempre dentro il riquadro + rimozione nota registrazione */
.td-card{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:stretch!important;
  overflow:visible!important;
}
body.td-register-open .td-card,
body.td-login-open .td-card{
  justify-content:flex-start!important;
}
.td-stage,
.td-stage .td-choice,
.td-stage .td-flow,
.td-form{
  box-sizing:border-box!important;
  max-width:100%!important;
}
.td-stage .td-flow{
  padding-left:2px!important;
  padding-right:2px!important;
}
.td-form h1,
.td-form label,
.td-form input,
.td-form select,
.td-btn{
  max-width:100%!important;
}
.td-form h1{
  overflow-wrap:break-word!important;
}
.td-note{
  display:none!important;
}
@media(max-width:720px){
  .td-card{width:100%!important;}
  .td-stage .td-flow{padding-left:0!important;padding-right:0!important;}
}


/* FIX12 - Nome/Cognome separati + autocomplete città */
.td-city-field{
  position:relative!important;
  z-index:8!important;
}
.td-city-dropdown{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% - 4px);
  z-index:30;
  background:#fffaf1;
  border:1px solid rgba(184,148,83,.42);
  border-radius:16px;
  box-shadow:0 22px 58px rgba(53,16,22,.14);
  overflow:hidden;
  max-height:0;
  opacity:0;
  pointer-events:none;
  transform:translateY(8px);
  transition:max-height .35s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1);
}
.td-city-dropdown.is-open{
  max-height:260px;
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
  overflow:auto;
}
.td-city-option{
  width:100%;
  border:0;
  background:transparent;
  text-align:left;
  padding:13px 15px;
  color:#352214;
  font:inherit;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  gap:14px;
  border-bottom:1px solid rgba(184,148,83,.16);
}
.td-city-option:last-child{border-bottom:0;}
.td-city-option:hover,
.td-city-option:focus{
  background:rgba(184,148,83,.12);
  outline:none;
}
.td-city-option strong{font-weight:800;}
.td-city-option span{color:#8c7248;font-size:12px;text-transform:uppercase;letter-spacing:.08em;}
.td-city-empty{
  padding:14px 15px;
  color:#8c7248;
  font-size:13px;
}
@media(max-width:720px){
  .td-city-dropdown.is-open{max-height:220px;}
}


/* FIX13 - calendario personalizzato + errori rossi sui campi obbligatori */
.td-form label{
  position:relative!important;
}
.td-date-field{
  position:relative!important;
  z-index:9!important;
}
#birthDateInput{
  cursor:pointer!important;
  background:#fffaf1!important;
}
.td-date-dropdown{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% - 4px);
  z-index:34;
  background:#fffaf1;
  border:1px solid rgba(184,148,83,.42);
  border-radius:16px;
  box-shadow:0 22px 58px rgba(53,16,22,.14);
  padding:14px;
  max-height:0;
  opacity:0;
  pointer-events:none;
  overflow:hidden;
  transform:translateY(8px);
  transition:max-height .35s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1);
}
.td-date-dropdown.is-open{
  max-height:240px;
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.td-date-grid{
  display:grid;
  grid-template-columns:1fr 1.2fr 1fr;
  gap:10px;
}
.td-date-dropdown select{
  border:1px solid #d1bea0;
  background:#fffdf8;
  color:#352214;
  border-radius:13px;
  padding:12px 10px;
  font:inherit;
  outline:none;
}
.td-date-dropdown select:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(184,148,83,.15);
}
.td-date-confirm{
  width:100%;
  margin-top:11px;
  border:1px solid rgba(184,148,83,.44);
  background:#090806;
  color:#fffdf8;
  border-radius:999px;
  padding:13px 16px;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-weight:800;
  cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease;
}
.td-date-confirm:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(53,16,22,.14);
}
.td-invalid{
  border-color:#9f1e2c!important;
  box-shadow:0 0 0 4px rgba(159,30,44,.13)!important;
}
.td-error-popup{
  position:absolute;
  left:12px;
  top:calc(100% + 7px);
  z-index:60;
  background:#8c1521;
  color:#fffdf8;
  border-radius:999px;
  padding:8px 12px;
  font-size:11px;
  line-height:1;
  font-weight:800;
  letter-spacing:.04em;
  box-shadow:0 12px 30px rgba(140,21,33,.25);
  animation:errorPop .28s cubic-bezier(.16,1,.3,1) both;
  white-space:nowrap;
}
.td-error-popup:before{
  content:"";
  position:absolute;
  left:16px;
  top:-5px;
  width:10px;
  height:10px;
  background:#8c1521;
  transform:rotate(45deg);
}
@keyframes errorPop{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
.td-check .td-error-popup{
  top:calc(100% + 5px);
  left:0;
}
@media(max-width:720px){
  .td-date-grid{grid-template-columns:1fr;}
  .td-date-dropdown.is-open{max-height:360px;}
  .td-error-popup{white-space:normal;max-width:250px;border-radius:14px;line-height:1.25;}
}


/* FIX14 - data nascita in 3 box + telefono facoltativo con prefisso */
.td-date-dropdown,
.td-date-confirm,
#birthDateInput{
  display:none!important;
}
.td-date-row{
  position:relative!important;
}
.td-date-inline,
.td-phone-inline{
  display:grid;
  gap:10px;
  width:100%;
}
.td-date-inline{
  grid-template-columns:1fr 1.25fr 1fr;
}
.td-date-inline select,
.td-phone-inline select,
.td-phone-inline input{
  border:1px solid #d1bea0;
  background:#fffaf1;
  border-radius:14px;
  padding:14px;
  font:inherit;
  outline:none;
  min-width:0;
}
.td-date-inline select:focus,
.td-phone-inline select:focus,
.td-phone-inline input:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(184,148,83,.15);
}
.td-phone-inline{
  grid-template-columns:minmax(118px,.38fr) 1fr;
}
.td-optional{
  color:#8c7248;
  font-weight:600;
  font-size:12px;
}
.td-phone-field .td-error-popup,
.td-date-row .td-error-popup{
  top:calc(100% + 7px);
}
@media(max-width:720px){
  .td-date-inline{grid-template-columns:1fr;}
  .td-phone-inline{grid-template-columns:1fr;}
}


/* FIX15 - prefissi con bandiere reali + facoltativo inline + validazioni rinforzate */
.td-label-title{
  display:inline-flex!important;
  align-items:baseline!important;
  gap:5px!important;
  white-space:nowrap!important;
}
.td-optional{
  display:inline!important;
  white-space:nowrap!important;
}
.td-prefix-select{
  position:relative;
  z-index:18;
}
.td-prefix-button{
  width:100%;
  height:100%;
  min-height:50px;
  border:1px solid #d1bea0;
  background:#fffaf1;
  border-radius:14px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  cursor:pointer;
  font:inherit;
  color:#352214;
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.td-prefix-button:hover,
.td-prefix-button:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(184,148,83,.15);
  outline:none;
}
.td-prefix-button img,
.td-prefix-menu img{
  width:24px;
  height:16px;
  object-fit:cover;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
}
.td-prefix-button span,
.td-prefix-menu span{
  font-weight:800;
}
.td-prefix-menu{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 8px);
  z-index:50;
  background:#fffaf1;
  border:1px solid rgba(184,148,83,.42);
  border-radius:16px;
  box-shadow:0 22px 58px rgba(53,16,22,.14);
  max-height:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:max-height .35s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1);
}
.td-prefix-menu.is-open{
  max-height:265px;
  opacity:1;
  overflow:auto;
  pointer-events:auto;
  transform:translateY(0);
}
.td-prefix-menu button{
  width:100%;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 10px;
  cursor:pointer;
  color:#352214;
  font:inherit;
}
.td-prefix-menu button:hover,
.td-prefix-menu button:focus{
  background:rgba(184,148,83,.12);
  outline:none;
}
.td-phone-inline{
  grid-template-columns:minmax(122px,.42fr) 1fr!important;
}
.td-phone-field .td-error-popup,
.td-city-field .td-error-popup{
  z-index:80;
}
@media(max-width:720px){
  .td-label-title{white-space:normal!important;}
  .td-phone-inline{grid-template-columns:1fr!important;}
  .td-prefix-button{justify-content:flex-start;}
  .td-prefix-menu button{justify-content:flex-start;}
}


/* FIX16 - Stato + città adattiva e validazione telefono in ordine */
.td-origin-inline{
  display:grid;
  grid-template-columns:minmax(150px,.48fr) 1fr;
  gap:10px;
  width:100%;
}
.td-country-select,
.td-city-input-wrap{
  position:relative;
  z-index:20;
}
.td-country-button{
  width:100%;
  min-height:50px;
  border:1px solid #d1bea0;
  background:#fffaf1;
  border-radius:14px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  cursor:pointer;
  font:inherit;
  color:#352214;
  transition:border-color .25s ease,box-shadow .25s ease;
}
.td-country-button:hover,
.td-country-button:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(184,148,83,.15);
  outline:none;
}
.td-country-button img,
.td-country-menu img{
  width:24px;
  height:16px;
  object-fit:cover;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
}
.td-country-menu{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 8px);
  z-index:70;
  background:#fffaf1;
  border:1px solid rgba(184,148,83,.42);
  border-radius:16px;
  box-shadow:0 22px 58px rgba(53,16,22,.14);
  max-height:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:max-height .35s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1);
}
.td-country-menu.is-open{
  max-height:265px;
  opacity:1;
  overflow:auto;
  pointer-events:auto;
  transform:translateY(0);
}
.td-country-menu button{
  width:100%;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:9px;
  padding:11px 12px;
  cursor:pointer;
  color:#352214;
  font:inherit;
}
.td-country-menu button:hover,
.td-country-menu button:focus{
  background:rgba(184,148,83,.12);
  outline:none;
}
.td-city-dropdown{
  left:0!important;
  right:0!important;
}
.td-city-input-wrap .td-error-popup{
  left:12px;
}
@media(max-width:720px){
  .td-origin-inline{grid-template-columns:1fr;}
  .td-country-button{justify-content:flex-start;}
}


/* FIX17 - Continente > Stato > Città */
.td-origin-triple{
  grid-template-columns:minmax(130px,.55fr) minmax(150px,.75fr) 1fr!important;
}
.td-continent-select,
.td-country-select,
.td-city-input-wrap{
  position:relative;
  z-index:24;
}
.td-continent-button,
.td-country-button{
  width:100%;
  min-height:50px;
  border:1px solid #d1bea0;
  background:#fffaf1;
  border-radius:14px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  cursor:pointer;
  font:inherit;
  color:#352214;
  transition:border-color .25s ease,box-shadow .25s ease;
}
.td-continent-button:hover,
.td-continent-button:focus,
.td-country-button:hover,
.td-country-button:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(184,148,83,.15);
  outline:none;
}
.td-continent-button span,
.td-country-button span,
.td-continent-menu span,
.td-country-menu span{
  font-weight:800;
}
.td-continent-menu,
.td-country-menu{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 8px);
  z-index:90;
  background:#fffaf1;
  border:1px solid rgba(184,148,83,.42);
  border-radius:16px;
  box-shadow:0 22px 58px rgba(53,16,22,.14);
  max-height:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:max-height .35s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1);
}
.td-continent-menu.is-open,
.td-country-menu.is-open{
  max-height:300px;
  opacity:1;
  overflow:auto;
  pointer-events:auto;
  transform:translateY(0);
}
.td-continent-menu button,
.td-country-menu button{
  width:100%;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:9px;
  padding:11px 12px;
  cursor:pointer;
  color:#352214;
  font:inherit;
  text-align:left;
}
.td-continent-menu button:hover,
.td-continent-menu button:focus,
.td-country-menu button:hover,
.td-country-menu button:focus{
  background:rgba(184,148,83,.12);
  outline:none;
}
.td-country-button img,
.td-country-menu img{
  width:24px;
  height:16px;
  object-fit:cover;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
  flex:0 0 auto;
}
.td-country-menu small{
  color:#8c7248;
  margin-left:auto;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
@media(max-width:980px){
  .td-origin-triple{grid-template-columns:1fr!important;}
  .td-continent-button,.td-country-button{justify-content:flex-start;}
}


/* FIX18 - continenti dentro la stessa tendina Stato */
.td-origin-compact{
  grid-template-columns:minmax(170px,.55fr) 1fr!important;
}
.td-continent-select,
.td-continent-button,
.td-continent-menu{
  display:none!important;
}
.td-country-menu button.td-continent-option{
  justify-content:flex-start!important;
}
.td-continent-badge{
  width:26px;
  height:26px;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  background:rgba(184,148,83,.16);
  border:1px solid rgba(184,148,83,.38);
  font-size:15px;
  flex:0 0 auto;
}
.td-menu-back{
  color:#8c7248!important;
  font-size:12px!important;
  text-transform:uppercase;
  letter-spacing:.08em;
  border-bottom:1px solid rgba(184,148,83,.18)!important;
}
.td-country-menu .td-menu-title{
  padding:12px 14px 8px;
  color:#8c7248;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:800;
}
@media(max-width:980px){
  .td-origin-compact{grid-template-columns:1fr!important;}
}


/* FIX19 - Stati sempre visibili dopo click continente */
.td-country-menu[data-view="countries"].is-open{max-height:320px!important;}


/* FIX21 - prefisso cellulare con metodologia Continente > Stato */
.td-prefix-menu .td-menu-title{
  padding:12px 14px 8px;
  color:#8c7248;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:800;
}
.td-prefix-menu .td-menu-back{
  color:#8c7248!important;
  font-size:12px!important;
  text-transform:uppercase;
  letter-spacing:.08em;
  border-bottom:1px solid rgba(184,148,83,.18)!important;
}
.td-prefix-menu .td-continent-badge{
  width:26px;
  height:26px;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  background:rgba(184,148,83,.16);
  border:1px solid rgba(184,148,83,.38);
  font-size:15px;
  flex:0 0 auto;
}
.td-prefix-menu small{
  color:#8c7248;
  margin-left:auto;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.td-prefix-menu[data-view="countries"].is-open{max-height:320px!important;}


/* FIX22 - ordine visivo form registrazione più lineare */
#registerForm .td-grid{
  grid-template-columns:1fr 1fr!important;
  column-gap:16px!important;
  row-gap:18px!important;
  align-items:start!important;
}
#registerForm .td-grid > label:nth-child(1){order:1;grid-column:auto!important;}
#registerForm .td-grid > label:nth-child(2){order:2;grid-column:auto!important;}
#registerForm .td-date-row{order:3;grid-column:auto!important;}
#registerForm .td-grid > label:nth-child(4){order:4;grid-column:auto!important;}
#registerForm .td-phone-field{order:5;grid-column:1 / -1!important;}
#registerForm .td-city-field{order:6;grid-column:1 / -1!important;}
#registerForm .td-grid > label:nth-child(6){order:7;grid-column:auto!important;}
#registerForm .td-grid > label:nth-child(8){order:8;grid-column:auto!important;}
#registerForm .td-date-inline,
#registerForm .td-phone-inline,
#registerForm .td-origin-inline{
  margin-top:7px!important;
}
#registerForm input,
#registerForm select,
#registerForm .td-prefix-button,
#registerForm .td-country-button{
  min-height:52px!important;
  border:1px solid rgba(184,148,83,.42)!important;
  background:#fffaf1!important;
  border-radius:14px!important;
}
#registerForm .td-phone-inline,
#registerForm .td-origin-compact{
  grid-template-columns:minmax(170px,.42fr) 1fr!important;
}
#registerForm .td-city-field,
#registerForm .td-phone-field{
  padding-top:2px!important;
}
@media(max-width:720px){
  #registerForm .td-grid{grid-template-columns:1fr!important;}
  #registerForm .td-grid > label,
  #registerForm .td-date-row,
  #registerForm .td-phone-field,
  #registerForm .td-city-field{
    grid-column:1 / -1!important;
  }
  #registerForm .td-phone-inline,
  #registerForm .td-origin-compact{
    grid-template-columns:1fr!important;
  }
}


/* FIX23 - rifiniture visive tendine e allineamenti */
.td-prefix-menu button,
.td-prefix-menu .td-prefix-continent-option{
  justify-content:flex-start!important;
  text-align:left!important;
}
.td-prefix-menu .td-prefix-continent-option span:last-child{
  text-align:left!important;
}
#registerForm .td-origin-compact{
  width:100%!important;
  grid-template-columns:minmax(170px,.42fr) minmax(0,1fr)!important;
}
#registerForm .td-city-input-wrap,
#registerForm #cityInput{
  width:100%!important;
  min-width:0!important;
}
#registerForm .td-grid > label:nth-child(4) select{
  margin-top:7px!important;
  min-height:52px!important;
  height:52px!important;
}
#registerForm .td-date-inline select{
  min-height:52px!important;
  height:52px!important;
}
@media(max-width:720px){
  #registerForm .td-origin-compact{grid-template-columns:1fr!important;}
}


/* FIX25 - città prima della mail + checkbox lineare */
.td-city-input-wrap{
  position:relative!important;
}
.td-city-input-wrap .td-error-popup{
  top:calc(100% + 7px)!important;
  left:12px!important;
  z-index:95!important;
}
#registerForm .td-check{
  display:flex!important;
  align-items:center!important;
  gap:11px!important;
  line-height:1.35!important;
  margin-top:18px!important;
  margin-bottom:18px!important;
  position:relative!important;
}
#registerForm .td-check input{
  width:17px!important;
  height:17px!important;
  min-width:17px!important;
  margin:0!important;
  flex:0 0 17px!important;
  accent-color:#b89453;
}
#registerForm .td-check .td-error-popup{
  top:calc(100% + 7px)!important;
  left:0!important;
}


/* FIX29 - selettore lingua elegante e isolato */
.td-lang-switch{position:absolute;top:22px;right:24px;z-index:60;}
.td-lang-button{min-width:64px;height:40px;border:1px solid rgba(184,148,83,.45);background:rgba(255,250,241,.9);color:#352214;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:900;letter-spacing:.08em;cursor:pointer;box-shadow:0 10px 28px rgba(53,16,22,.08);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.td-lang-button:hover{transform:translateY(-2px);border-color:#b89453;box-shadow:0 16px 38px rgba(53,16,22,.12);}
.td-lang-button img,.td-lang-menu img{width:24px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.08);}
.td-lang-menu{position:absolute;right:0;top:calc(100% + 10px);width:190px;background:#fffaf1;border:1px solid rgba(184,148,83,.42);border-radius:16px;box-shadow:0 22px 58px rgba(53,16,22,.14);overflow:hidden;max-height:0;opacity:0;pointer-events:none;transform:translateY(8px);transition:max-height .35s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1);}
.td-lang-menu.is-open{max-height:420px;opacity:1;pointer-events:auto;transform:translateY(0);}
.td-lang-menu button{width:100%;border:0;background:transparent;text-align:left;padding:12px 14px;color:#352214;cursor:pointer;font:inherit;font-weight:700;display:flex;align-items:center;gap:10px;}
.td-lang-menu button:hover,.td-lang-menu button.is-active{background:rgba(184,148,83,.13);}
@media(max-width:720px){.td-lang-switch{top:14px;right:14px}.td-lang-button{height:36px;min-width:58px;font-size:12px}}


/* FIX30 - bottone lingua più elegante */
.td-lang-button{
  min-width:118px!important;
  height:44px!important;
  padding:0 13px!important;
  gap:8px!important;
  background:linear-gradient(135deg,rgba(255,250,241,.96),rgba(242,234,220,.88))!important;
  border:1px solid rgba(184,148,83,.62)!important;
  box-shadow:0 16px 38px rgba(53,16,22,.10), inset 0 0 0 1px rgba(255,255,255,.45)!important;
}
.td-lang-label{
  font-family:Cinzel,Georgia,serif;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#8c7248;
}
.td-lang-code{
  font-size:12px;
  color:#1f1710;
}
@media(max-width:720px){
  .td-lang-button{min-width:92px!important;height:38px!important;padding:0 10px!important;}
  .td-lang-label{display:none;}
}

/* FIX34 - allineamento data e transizione più cinematografica */
#registerForm .td-date-inline select{
  text-align:left!important;
  text-align-last:left!important;
  padding-left:16px!important;
  justify-content:flex-start!important;
}
#registerForm .td-date-inline select option{
  text-align:left!important;
}
#registerForm .td-grid > label:nth-child(4) select{
  text-align:left!important;
  text-align-last:left!important;
  padding-left:16px!important;
}

.td-stage .td-choice{
  transition:opacity .72s ease, transform 1.05s cubic-bezier(.22,1,.36,1), filter .72s ease!important;
  transform:translate3d(0,0,0)!important;
}
.td-stage .td-choice.is-leaving{
  opacity:0!important;
  transform:translate3d(0,-56px,0)!important;
  filter:blur(4px)!important;
}
.td-stage .td-flow{
  opacity:0!important;
  transform:translate3d(0,118px,0) scale(.992)!important;
  filter:blur(5px)!important;
  transition:opacity .76s ease, transform 1.08s cubic-bezier(.22,1,.36,1), filter .76s ease!important;
  will-change:transform,opacity,filter!important;
}
.td-stage .td-flow.is-active{
  opacity:1!important;
  transform:translate3d(0,0,0) scale(1)!important;
  filter:none!important;
}
.td-stage .td-form.is-active{
  animation:tdPanelSlideUp34 1.02s cubic-bezier(.22,1,.36,1) both!important;
}
.td-stage.td-returning .td-choice:not(.is-leaving){
  animation:tdChoiceReturn34 .9s cubic-bezier(.22,1,.36,1) both!important;
}
.td-stage.td-returning .td-flow{
  transform:translate3d(0,128px,0) scale(.992)!important;
  opacity:0!important;
  filter:blur(5px)!important;
}
@keyframes tdPanelSlideUp34{
  0%{opacity:0;transform:translate3d(0,76px,0) scale(.992);filter:blur(5px)}
  58%{opacity:1;filter:blur(0)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:none}
}
@keyframes tdChoiceReturn34{
  0%{opacity:0;transform:translate3d(0,42px,0) scale(.992);filter:blur(4px)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:none}
}

/* FIX35 - data nascita allineata e transizioni più reattive */
#registerForm .td-date-inline{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}
#registerForm .td-date-inline select{
  width:100%!important;
  min-width:0!important;
  height:54px!important;
  min-height:54px!important;
  line-height:54px!important;
  padding:0 42px 0 16px!important;
  text-align:left!important;
  text-align-last:left!important;
  direction:ltr!important;
  display:block!important;
  font-size:14px!important;
  font-weight:700!important;
  color:#352214!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  background-color:#fffaf1!important;
  background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23b89453' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 15px center!important;
  background-size:12px 8px!important;
}
#registerForm .td-date-inline select option{
  text-align:left!important;
  direction:ltr!important;
}
#registerForm .td-grid > label:nth-child(4) select{
  width:100%!important;
  text-align:left!important;
  text-align-last:left!important;
  padding-left:16px!important;
}
@media(max-width:420px){
  #registerForm .td-date-inline{gap:8px!important;}
  #registerForm .td-date-inline select{font-size:13px!important;padding-left:12px!important;padding-right:34px!important;background-position:right 12px center!important;}
}

.td-stage .td-choice{
  transition:opacity .42s ease, transform .68s cubic-bezier(.23,1,.32,1), filter .42s ease!important;
}
.td-stage .td-choice.is-leaving{
  opacity:0!important;
  transform:translate3d(0,-42px,0)!important;
  filter:blur(3px)!important;
}
.td-stage .td-flow{
  opacity:0!important;
  transform:translate3d(0,86px,0) scale(.995)!important;
  filter:blur(3px)!important;
  transition:opacity .48s ease, transform .72s cubic-bezier(.23,1,.32,1), filter .48s ease!important;
}
.td-stage .td-flow.is-active{
  opacity:1!important;
  transform:translate3d(0,0,0) scale(1)!important;
  filter:none!important;
}
.td-stage .td-form.is-active{
  animation:tdPanelSlideUp35 .72s cubic-bezier(.23,1,.32,1) both!important;
}
.td-stage.td-returning .td-choice:not(.is-leaving){
  animation:tdChoiceReturn35 .64s cubic-bezier(.23,1,.32,1) both!important;
}
.td-stage.td-returning .td-flow{
  transform:translate3d(0,92px,0) scale(.995)!important;
  opacity:0!important;
  filter:blur(3px)!important;
}
@keyframes tdPanelSlideUp35{
  0%{opacity:0;transform:translate3d(0,58px,0) scale(.995);filter:blur(3px)}
  45%{opacity:1;filter:blur(0)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:none}
}
@keyframes tdChoiceReturn35{
  0%{opacity:0;transform:translate3d(0,30px,0) scale(.996);filter:blur(3px)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:none}
}

/* FIX36 - più spazio alla data, sesso più stretto, freccia elegante anche su sesso */
#registerForm .td-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
#registerForm .td-grid > label:nth-child(1){grid-column:1 / 3!important;}
#registerForm .td-grid > label:nth-child(2){grid-column:3 / 5!important;}
#registerForm .td-date-row{grid-column:1 / 4!important;}
#registerForm .td-grid > label:nth-child(4){grid-column:4 / 5!important;}
#registerForm .td-phone-field{grid-column:1 / 5!important;}
#registerForm .td-city-field{grid-column:1 / 5!important;}
#registerForm .td-grid > label:nth-child(6){grid-column:1 / 3!important;}
#registerForm .td-grid > label:nth-child(8){grid-column:3 / 5!important;}

#registerForm .td-date-inline{
  grid-template-columns:repeat(3,minmax(86px,1fr))!important;
  gap:10px!important;
}
#registerForm .td-date-inline select{
  padding-left:13px!important;
  padding-right:30px!important;
  background-position:right 12px center!important;
  font-size:13.5px!important;
  letter-spacing:0!important;
}
#registerForm .td-grid > label:nth-child(4) select{
  appearance:none!important;
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  padding-left:13px!important;
  padding-right:30px!important;
  background-color:#fffaf1!important;
  background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23b89453' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 12px center!important;
  background-size:12px 8px!important;
  text-align:left!important;
  text-align-last:left!important;
  font-size:13.5px!important;
  min-width:0!important;
}
@media(max-width:720px){
  #registerForm .td-grid{grid-template-columns:1fr!important;}
  #registerForm .td-grid > label:nth-child(1),
  #registerForm .td-grid > label:nth-child(2),
  #registerForm .td-date-row,
  #registerForm .td-grid > label:nth-child(4),
  #registerForm .td-phone-field,
  #registerForm .td-city-field,
  #registerForm .td-grid > label:nth-child(6),
  #registerForm .td-grid > label:nth-child(8){grid-column:1 / -1!important;}
  #registerForm .td-date-inline{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media(max-width:420px){
  #registerForm .td-date-inline{grid-template-columns:1fr!important;}
}

/* FIX37 - proporzioni data/sesso più equilibrate */
#registerForm .td-grid{
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
}
#registerForm .td-grid > label:nth-child(1){grid-column:1 / 7!important;}
#registerForm .td-grid > label:nth-child(2){grid-column:7 / 13!important;}
#registerForm .td-date-row{grid-column:1 / 9!important;}
#registerForm .td-grid > label:nth-child(4){grid-column:9 / 13!important;}
#registerForm .td-phone-field{grid-column:1 / 13!important;}
#registerForm .td-city-field{grid-column:1 / 13!important;}
#registerForm .td-grid > label:nth-child(6){grid-column:1 / 7!important;}
#registerForm .td-grid > label:nth-child(8){grid-column:7 / 13!important;}
#registerForm .td-date-inline{
  grid-template-columns:.78fr 1.35fr .78fr!important;
  gap:10px!important;
}
#registerForm .td-date-inline select{
  padding-left:12px!important;
  padding-right:28px!important;
  background-position:right 11px center!important;
}
#registerForm .td-grid > label:nth-child(4) select{
  width:100%!important;
  height:54px!important;
  min-height:54px!important;
}
@media(max-width:720px){
  #registerForm .td-grid{grid-template-columns:1fr!important;}
  #registerForm .td-grid > label:nth-child(1),
  #registerForm .td-grid > label:nth-child(2),
  #registerForm .td-date-row,
  #registerForm .td-grid > label:nth-child(4),
  #registerForm .td-phone-field,
  #registerForm .td-city-field,
  #registerForm .td-grid > label:nth-child(6),
  #registerForm .td-grid > label:nth-child(8){grid-column:1 / -1!important;}
  #registerForm .td-date-inline{grid-template-columns:.78fr 1.35fr .78fr!important;}
}
@media(max-width:420px){
  #registerForm .td-date-inline{grid-template-columns:1fr!important;}
}

/* FIX38 - mese leggermente ridotto, sesso più proporzionato, lingua minimal */
#registerForm .td-date-row{grid-column:1 / 8!important;}
#registerForm .td-grid > label:nth-child(4){grid-column:8 / 13!important;}
#registerForm .td-date-inline{
  grid-template-columns:.82fr 1.18fr .82fr!important;
  gap:9px!important;
}
#registerForm .td-date-inline select{
  font-size:13.2px!important;
  padding-left:11px!important;
  padding-right:27px!important;
  background-position:right 10px center!important;
}
#registerForm .td-grid > label:nth-child(4) select{
  font-size:13.5px!important;
  padding-left:14px!important;
}
@media(max-width:720px){
  #registerForm .td-date-row,
  #registerForm .td-grid > label:nth-child(4){grid-column:1 / -1!important;}
  #registerForm .td-date-inline{grid-template-columns:.82fr 1.18fr .82fr!important;}
}
@media(max-width:420px){
  #registerForm .td-date-inline{grid-template-columns:1fr!important;}
}

.td-lang-switch{top:24px!important;right:26px!important;}
.td-lang-button{
  min-width:74px!important;
  width:74px!important;
  height:36px!important;
  padding:0 9px!important;
  gap:7px!important;
  border-radius:7px!important;
  background:rgba(255,250,241,.48)!important;
  border:1px solid rgba(184,148,83,.28)!important;
  box-shadow:none!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
  transition:background .25s ease,border-color .25s ease,transform .25s ease,opacity .25s ease!important;
}
.td-lang-button:hover{
  transform:translateY(-1px)!important;
  background:rgba(255,250,241,.68)!important;
  border-color:rgba(184,148,83,.48)!important;
  box-shadow:none!important;
}
.td-lang-label{display:none!important;}
.td-lang-code{
  font-size:11px!important;
  letter-spacing:.12em!important;
  color:#4b3722!important;
}
.td-lang-button img{
  width:21px!important;
  height:14px!important;
  opacity:.9!important;
  border-radius:2px!important;
}
.td-lang-menu{
  width:178px!important;
  border-radius:9px!important;
  background:rgba(255,250,241,.92)!important;
  border:1px solid rgba(184,148,83,.30)!important;
  box-shadow:0 14px 36px rgba(53,16,22,.10)!important;
  backdrop-filter:blur(12px)!important;
  -webkit-backdrop-filter:blur(12px)!important;
}
.td-lang-menu button{
  padding:11px 13px!important;
  font-size:13px!important;
}
@media(max-width:720px){
  .td-lang-switch{top:15px!important;right:15px!important;}
  .td-lang-button{width:66px!important;min-width:66px!important;height:34px!important;}
}

/* FIX39 - lingua senza riquadro + checkbox pulita */
.td-lang-button{
  min-width:auto!important;
  width:auto!important;
  height:auto!important;
  padding:0!important;
  gap:7px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.td-lang-button:hover{
  transform:none!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  opacity:.72!important;
}
.td-lang-button img{
  width:24px!important;
  height:16px!important;
  border-radius:2px!important;
  box-shadow:0 0 0 1px rgba(0,0,0,.06)!important;
}
.td-lang-code{
  font-size:12px!important;
  letter-spacing:.12em!important;
  font-weight:900!important;
  color:#5f4729!important;
}
#registerForm .td-check input[type="checkbox"]{
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  width:17px!important;
  height:17px!important;
  min-width:17px!important;
  min-height:17px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:2px!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:none!important;
  accent-color:#b89453!important;
}
#registerForm .td-check input[type="checkbox"]:focus,
#registerForm .td-check input[type="checkbox"]:focus-visible,
#registerForm .td-check input[type="checkbox"]:checked,
#registerForm .td-check input[type="checkbox"]:active{
  outline:none!important;
  box-shadow:none!important;
  border:0!important;
  background:transparent!important;
}

/* FIX40 - lingua più ariosa + sicurezza transizioni rapide */
.td-lang-switch{
  top:34px!important;
  right:40px!important;
}
.td-lang-button{
  padding:4px 2px!important;
}
.td-lang-button img{
  width:25px!important;
  height:17px!important;
}
.td-lang-code{
  color:#6d542f!important;
}
.td-card.td-transition-lock .td-btn,
.td-card.td-transition-lock .td-back,
.td-card.td-transition-lock .td-lang-button{
  pointer-events:none!important;
}
@media(max-width:720px){
  .td-lang-switch{
    top:22px!important;
    right:24px!important;
  }
}

/* FIX41 - nessun blocco sui pulsanti */
.td-card.td-transition-lock .td-btn,
.td-card.td-transition-lock .td-back,
.td-card.td-transition-lock .td-lang-button{
  pointer-events:auto!important;
}

/* FIX43 - selezione testo dorata + scroll disattivato su home e login */
::selection{
  background:#8b6a2e;
  color:#fffaf1;
}
::-moz-selection{
  background:#8b6a2e;
  color:#fffaf1;
}
html{
  overflow-x:hidden!important;
}
body{
  overflow-x:hidden!important;
  overflow-y:hidden!important;
  scrollbar-gutter:stable both-edges;
}
body.td-login-open,
body:not(.td-register-open){
  overflow-y:hidden!important;
}
body.td-register-open{
  overflow-y:auto!important;
}
body.td-login-open .td-access,
body:not(.td-register-open) .td-access{
  min-height:100svh!important;
}

/* FIX44 - nessuna scrollbar su pagina iniziale e login, anche sull'elemento html */
html,
html body{
  overflow-x:hidden!important;
}
html:not(.td-register-open),
html:not(.td-register-open) body,
html.td-login-open,
html.td-login-open body,
body.td-login-open,
body:not(.td-register-open){
  overflow-y:hidden!important;
  scrollbar-gutter:auto!important;
}
html.td-register-open,
html.td-register-open body,
body.td-register-open{
  overflow-y:auto!important;
  scrollbar-gutter:auto!important;
}
body:not(.td-register-open) .td-form,
body.td-login-open .td-form,
body.td-login-open #loginForm{
  overflow:visible!important;
  max-height:none!important;
}
body:not(.td-register-open) .td-access,
body.td-login-open .td-access{
  min-height:100svh!important;
  max-height:100svh!important;
}

/* FIX45 - una sola scrollbar in registrazione + scrollbar minimal */
html:not(.td-register-open),
html:not(.td-register-open) body{
  overflow-y:hidden!important;
}
html.td-register-open{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  height:auto!important;
  max-height:none!important;
  scrollbar-width:thin;
  scrollbar-color:rgba(139,106,46,.62) rgba(255,250,241,.18);
}
html.td-register-open body,
body.td-register-open{
  overflow-y:visible!important;
  overflow-x:hidden!important;
  height:auto!important;
  max-height:none!important;
  scrollbar-width:auto!important;
}
body.td-register-open .td-access{
  max-height:none!important;
  min-height:100svh!important;
}
body.td-register-open .td-form,
body.td-register-open #registerForm,
body.td-register-open .td-card,
body.td-register-open .td-stage,
body.td-register-open .td-flow{
  overflow:visible!important;
  max-height:none!important;
}
html.td-register-open::-webkit-scrollbar{
  width:9px;
}
html.td-register-open::-webkit-scrollbar-track{
  background:rgba(255,250,241,.22);
}
html.td-register-open::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(184,148,83,.85),rgba(105,79,37,.72));
  border-radius:999px;
  border:2px solid rgba(255,250,241,.72);
  background-clip:content-box;
}
html.td-register-open::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,rgba(184,148,83,1),rgba(105,79,37,.9));
  border:2px solid rgba(255,250,241,.66);
  background-clip:content-box;
}
body::-webkit-scrollbar{
  width:0!important;
  height:0!important;
}

/* FIX46 - elimina la seconda scrollbar temporanea in registrazione */
html.td-register-open body,
html.td-register-open body.td-register-open{
  overflow-y:visible!important;
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
}
html.td-register-open body::-webkit-scrollbar,
body.td-register-open::-webkit-scrollbar,
body.td-register-open .td-form::-webkit-scrollbar,
body.td-register-open .td-card::-webkit-scrollbar,
body.td-register-open .td-stage::-webkit-scrollbar,
body.td-register-open .td-flow::-webkit-scrollbar{
  display:none!important;
  width:0!important;
  height:0!important;
}
body.td-register-open .td-form,
body.td-register-open #registerForm{
  overflow:visible!important;
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
}
html.td-register-open{
  overflow-y:auto!important;
  scrollbar-width:thin!important;
  scrollbar-color:rgba(139,106,46,.62) rgba(255,250,241,.18)!important;
}
html.td-login-open,
html.td-login-open body,
body.td-login-open,
html:not(.td-register-open),
html:not(.td-register-open) body{
  overflow-y:hidden!important;
}

/* FIX48 - ingresso semplice del box bianco dal basso + menu stato sopra */
.td-card{
  animation:tdBoxInitialSlideUp .95s cubic-bezier(.22,1,.36,1) both;
  will-change:transform,opacity;
}
@keyframes tdBoxInitialSlideUp{
  0%{opacity:0;transform:translate3d(0,78px,0) scale(.985);filter:blur(3px)}
  55%{opacity:1;filter:blur(0)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:none}
}
#originCountrySelect .td-country-menu,
.td-country-select#originCountrySelect .td-country-menu{
  top:auto!important;
  bottom:calc(100% + 8px)!important;
  transform:translateY(-8px)!important;
  z-index:180!important;
}
#originCountrySelect .td-country-menu.is-open,
.td-country-select#originCountrySelect .td-country-menu.is-open{
  transform:translateY(0)!important;
}
@media(max-width:720px){
  #originCountrySelect .td-country-menu,
  .td-country-select#originCountrySelect .td-country-menu{
    max-height:260px!important;
  }
}

/* FIX49 - animazione più fluida e menu Stato sotto come prefisso */
.td-card{
  animation:tdBoxInitialSlideUpSmooth 1.35s cubic-bezier(.16,1,.3,1) both!important;
  will-change:transform,opacity!important;
  backface-visibility:hidden!important;
  transform:translate3d(0,0,0);
}
@keyframes tdBoxInitialSlideUpSmooth{
  0%{opacity:0;transform:translate3d(0,92px,0) scale(.992)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
#originCountrySelect,
.td-country-select#originCountrySelect{
  position:relative!important;
  z-index:220!important;
}
#originCountrySelect .td-country-menu,
.td-country-select#originCountrySelect .td-country-menu{
  top:calc(100% + 8px)!important;
  bottom:auto!important;
  transform:translateY(8px)!important;
  z-index:230!important;
}
#originCountrySelect .td-country-menu.is-open,
.td-country-select#originCountrySelect .td-country-menu.is-open{
  transform:translateY(0)!important;
}
#residenceCityWrap,
.td-city-input-wrap{
  position:relative!important;
  z-index:20!important;
}

/* FIX50 - ingresso fluido con un solo box, senza doppia animazione */
.td-card{
  animation:none!important;
  transition:transform 1.28s cubic-bezier(.18,1,.22,1),opacity .92s ease!important;
  will-change:transform,opacity!important;
  backface-visibility:hidden!important;
  -webkit-font-smoothing:antialiased;
}
body:not(.td-page-entered) .td-card{
  opacity:0!important;
  transform:translate3d(0,96px,0)!important;
}
body.td-page-entered .td-card{
  opacity:1!important;
  transform:translate3d(0,0,0)!important;
}
body:not(.td-page-entered) .td-card:before{
  opacity:.55!important;
}
body.td-page-entered .td-card:before{
  opacity:1!important;
  transition:opacity .75s ease .22s!important;
}

/* FIX51 - scroll automatico su home/login solo per display bassi */
@media(max-height:760px){
  html:not(.td-register-open),
  html.td-login-open{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    height:auto!important;
    max-height:none!important;
    scrollbar-width:thin!important;
    scrollbar-color:rgba(139,106,46,.62) rgba(255,250,241,.18)!important;
  }
  html:not(.td-register-open) body,
  html.td-login-open body,
  body:not(.td-register-open),
  body.td-login-open{
    overflow-y:visible!important;
    overflow-x:hidden!important;
    height:auto!important;
    max-height:none!important;
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
  }
  body:not(.td-register-open)::-webkit-scrollbar,
  body.td-login-open::-webkit-scrollbar{
    display:none!important;
    width:0!important;
    height:0!important;
  }
  body:not(.td-register-open) .td-access,
  body.td-login-open .td-access{
    min-height:100svh!important;
    max-height:none!important;
    align-items:flex-start!important;
    padding-top:24px!important;
    padding-bottom:24px!important;
  }
  body:not(.td-register-open) .td-card,
  body.td-login-open .td-card{
    margin-top:0!important;
    margin-bottom:0!important;
  }
  html:not(.td-register-open)::-webkit-scrollbar,
  html.td-login-open::-webkit-scrollbar{
    width:9px;
  }
  html:not(.td-register-open)::-webkit-scrollbar-track,
  html.td-login-open::-webkit-scrollbar-track{
    background:rgba(255,250,241,.22);
  }
  html:not(.td-register-open)::-webkit-scrollbar-thumb,
  html.td-login-open::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,rgba(184,148,83,.85),rgba(105,79,37,.72));
    border-radius:999px;
    border:2px solid rgba(255,250,241,.72);
    background-clip:content-box;
  }
}

/* TECH07 - Pulsante Google conforme allo stile originale Google, con testo traducibile */
.td-actions .td-google-btn{
  width:100%!important;
  min-height:44px!important;
  height:44px!important;
  border:1px solid #dadce0!important;
  background:#fff!important;
  color:#3c4043!important;
  border-radius:4px!important;
  padding:0 14px!important;
  display:grid!important;
  grid-template-columns:24px 1fr 24px!important;
  align-items:center!important;
  column-gap:10px!important;
  font-family:Roboto,Arial,sans-serif!important;
  font-size:14px!important;
  font-weight:500!important;
  line-height:1!important;
  letter-spacing:.25px!important;
  text-transform:none!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease!important;
  -webkit-font-smoothing:antialiased!important;
}
.td-actions .td-google-btn:hover{
  background:#f8fafd!important;
  border-color:#d2e3fc!important;
  box-shadow:0 1px 2px rgba(60,64,67,.18),0 1px 3px rgba(60,64,67,.12)!important;
}
.td-actions .td-google-btn:active{
  background:#f1f3f4!important;
  box-shadow:none!important;
}
.td-actions .td-google-btn:focus-visible{
  outline:2px solid rgba(66,133,244,.45)!important;
  outline-offset:2px!important;
}
.td-google-icon{
  width:18px!important;
  height:18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  justify-self:start!important;
}
.td-google-icon svg{
  width:18px!important;
  height:18px!important;
  display:block!important;
}
.td-google-text{
  justify-self:center!important;
  text-align:center!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  max-width:100%!important;
}
@media(max-width:420px){
  .td-actions .td-google-btn{
    height:42px!important;
    min-height:42px!important;
    font-size:13px!important;
    padding:0 12px!important;
  }
}

/* TECH08 - Google coerente con gli altri tasti */
.td-actions .td-google-btn{
  min-height:56px!important;
  height:auto!important;
  border-radius:999px!important;
  padding:17px 22px!important;
  border:1px solid rgba(184,148,83,.36)!important;
  background:#fff!important;
  color:var(--ink)!important;
  grid-template-columns:24px 1fr 24px!important;
  column-gap:12px!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:14px!important;
  font-weight:800!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
  line-height:1.15!important;
  box-shadow:none!important;
}
.td-actions .td-google-btn:hover{
  background:#fffaf1!important;
  border-color:rgba(184,148,83,.48)!important;
  transform:translateY(-3px)!important;
  box-shadow:0 18px 42px rgba(53,16,22,.13)!important;
}
.td-google-text{
  font-size:inherit!important;
  font-weight:inherit!important;
  letter-spacing:inherit!important;
  text-transform:inherit!important;
}
.td-google-icon{
  align-self:center!important;
}
@media(max-width:420px){
  .td-actions .td-google-btn{
    min-height:54px!important;
    padding:16px 18px!important;
    font-size:12px!important;
    letter-spacing:.10em!important;
  }
}

/* TECH09 - Animazione pulsante Google uguale agli altri tasti */
.td-actions .td-google-btn{
  transition:transform .28s ease,background .28s ease,color .28s ease,box-shadow .28s ease,border-color .28s ease!important;
  will-change:transform,box-shadow!important;
}
.td-actions .td-google-btn:hover{
  transform:translateY(-3px)!important;
  box-shadow:0 18px 42px rgba(53,16,22,.13)!important;
}
.td-actions .td-google-btn:active{
  transform:translateY(-1px)!important;
  box-shadow:0 10px 28px rgba(53,16,22,.10)!important;
}


/* TECH14V - Compatibilità Safari/macOS/iOS + responsive globale */
:root{
  --td-app-height:100svh;
}
html{
  width:100%!important;
  min-height:100%!important;
  min-height:-webkit-fill-available!important;
  overflow-x:hidden!important;
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
}
body{
  width:100%!important;
  max-width:100%!important;
  min-height:100vh!important;
  min-height:100svh!important;
  min-height:var(--td-app-height)!important;
  overflow-x:hidden!important;
  -webkit-font-smoothing:antialiased!important;
  text-rendering:optimizeLegibility!important;
  overscroll-behavior-y:none!important;
}
.td-access{
  min-height:100vh!important;
  min-height:100svh!important;
  min-height:var(--td-app-height)!important;
  width:100%!important;
  overflow-x:hidden!important;
  padding-top:max(18px,env(safe-area-inset-top))!important;
  padding-right:max(14px,env(safe-area-inset-right))!important;
  padding-bottom:max(18px,env(safe-area-inset-bottom))!important;
  padding-left:max(14px,env(safe-area-inset-left))!important;
}
.td-card{
  max-width:100%!important;
  -webkit-backface-visibility:hidden!important;
  backface-visibility:hidden!important;
  transform:translate3d(0,0,0)!important;
}
.td-stage,
.td-choice,
.td-flow,
.td-form{
  max-width:100%!important;
}
.td-form input,
.td-form select,
.td-form button,
.td-btn,
.td-google-btn{
  font-size:max(16px,1em)!important;
  -webkit-tap-highlight-color:transparent!important;
  touch-action:manipulation!important;
}
.td-actions .td-google-btn,
.td-btn{
  -webkit-appearance:none!important;
  appearance:none!important;
}
.td-form input,
.td-form select{
  -webkit-appearance:none;
  appearance:none;
  min-width:0!important;
}
.td-form select{
  background-clip:padding-box!important;
}
.td-lang-switch,
.td-lang-menu{
  z-index:50!important;
}
.td-lang-menu{
  max-height:min(360px,calc(var(--td-app-height) - 120px))!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
}
/* su display bassi o mobile lo scroll torna disponibile, evitando tagli su Safari */
@media (max-height:760px), (max-width:720px){
  html:not(.td-register-open),
  body:not(.td-register-open),
  html.td-login-open,
  body.td-login-open{
    overflow-y:auto!important;
    height:auto!important;
    max-height:none!important;
  }
  .td-access{
    align-items:start!important;
    place-items:start center!important;
  }
  .td-card{
    margin:0 auto!important;
  }
}
@media (max-width:720px){
  .td-card{
    width:100%!important;
    border-radius:26px!important;
    padding:30px 18px!important;
  }
  .td-logo{
    width:min(330px,86vw)!important;
    min-height:auto!important;
  }
  .td-stage{
    width:100%!important;
  }
  .td-actions{
    width:100%!important;
  }
  .td-grid{
    grid-template-columns:1fr!important;
  }
  #registerForm .td-grid{
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
  }
  #registerForm .td-grid>label{
    grid-column:1 / -1!important;
  }
  #registerForm .td-date-row,
  #registerForm label:has(select[name="gender"]){
    grid-column:1 / -1!important;
  }
  .td-date-inline{
    grid-template-columns:1fr 1.15fr 1fr!important;
  }
}
@media (max-width:420px){
  .td-card{
    padding:26px 14px!important;
    border-radius:22px!important;
  }
  .td-form h1{
    font-size:28px!important;
  }
  .td-date-inline{
    gap:7px!important;
  }
  .td-form input,
  .td-form select{
    padding:13px 11px!important;
  }
}
/* Safari vecchi: se il blur crea problemi, manteniamo sfondo elegante senza scatti */
@supports (-webkit-touch-callout:none){
  .td-card{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    background:rgba(255,253,248,.90)!important;
  }
}

/* TECH14W - Fix Safari: pallino separatore login perfettamente centrato */
.td-logo-area .td-separator{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:44px!important;
  width:min(420px,70vw)!important;
  max-width:100%!important;
  margin:0 auto 28px!important;
  overflow:visible!important;
}
.td-logo-area .td-separator::before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:50%!important;
  width:100%!important;
  height:1px!important;
  transform:translateY(-50%)!important;
  background:linear-gradient(90deg,transparent 0%,rgba(184,148,83,.82) 22%,rgba(184,148,83,.82) 78%,transparent 100%)!important;
  pointer-events:none!important;
}
.td-logo-area .td-separator span{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:8px!important;
  height:8px!important;
  min-width:8px!important;
  min-height:8px!important;
  border-radius:50%!important;
  transform:translate(-50%,-50%)!important;
  margin:0!important;
  background:var(--gold)!important;
  box-shadow:0 0 0 1px rgba(184,148,83,.35),0 0 28px rgba(184,148,83,.28)!important;
  z-index:2!important;
  pointer-events:none!important;
}
@supports (-webkit-touch-callout:none){
  .td-logo-area .td-separator,
  .td-logo-area .td-separator::before,
  .td-logo-area .td-separator span{
    -webkit-transform-style:flat!important;
    transform-style:flat!important;
  }
  .td-logo-area .td-separator span{
    transform:translate3d(-50%,-50%,0)!important;
  }
}


/* TECH14CI - Scroll globale: la rotellina resta attiva salvo blocchi espliciti */
html,body{height:auto!important;min-height:100%!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior-y:auto!important;}
body.td-lock-scroll,body.td-profile-loading{overflow:hidden!important;}
