/* Moove owns consent, visibility, focus and category state. These rules only
   style its public surfaces. Use the appearance layer so legacy theme button
   and dark-text !important rules cannot override the consent palette. */
@layer tbp-appearance {
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) {
    font-family: Manrope, "DM Sans", sans-serif !important;
  }
  html body #moove_gdpr_cookie_info_bar {
    z-index: 2147483646 !important;
    width: min(850px, calc(100% - 32px)) !important;
    max-width: calc(100% - 32px) !important;
    max-height: min(400px, calc(100dvh - 32px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    box-sizing: border-box !important;
    padding: 0 !important;
    overflow-y: auto !important;
    background: var(--tbp-night-surface, var(--tbp-white, #fff)) !important;
    border: 1px solid var(--tbp-line, rgba(8, 72, 40, .14)) !important;
    border-radius: 28px !important;
    box-shadow: 0 16px 56px #0005 !important;
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
  }
  html body #moove_gdpr_cookie_info_bar:not(.moove-gdpr-info-bar-hidden) {
    top: auto !important;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  }
  html body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container {
    padding: clamp(22px, 4vw, 40px) !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
  html body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 24px !important;
    padding: 0 !important;
  }
  html body #moove_gdpr_cookie_info_bar .moove-gdpr-cookie-notice {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) :is(h1,h2,h3,h4,.moove-gdpr-modal-title,.tab-title) {
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    -webkit-text-fill-color: currentColor !important;
    font-family: Manrope, "DM Sans", sans-serif !important;
    font-weight: 700 !important;
    font-size: clamp(22px, 3vw, 30px) !important;
    line-height: 1.2 !important;
    letter-spacing: -.02em !important;
    margin: 0 0 16px !important;
    text-transform: none !important;
  }
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) :is(p,.moove-gdpr-tab-main-content,.moove-gdpr-cookie-notice) {
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    -webkit-text-fill-color: currentColor !important;
    font-family: Manrope, "DM Sans", sans-serif !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
    text-align: start !important;
    overflow-wrap: anywhere;
  }
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) p { margin: 0 0 12px !important; }
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) a:not(.mgbutton) {
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    -webkit-text-fill-color: currentColor !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
  }
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) .moove-gdpr-button-holder {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 12px !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) .mgbutton {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    min-height: 48px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 12px 16px !important;
    border: 1px solid var(--tbp-night-line, #8da89a) !important;
    border-radius: 12px !important;
    background: transparent !important;
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    -webkit-text-fill-color: currentColor !important;
    font: 600 15px/1.35 Manrope, "DM Sans", sans-serif !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    text-transform: none !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transform: none !important;
  }
  html body #moove_gdpr_cookie_info_bar .moove-gdpr-infobar-settings-btn { order: 1 !important; }
  html body #moove_gdpr_cookie_info_bar .moove-gdpr-infobar-reject-btn { order: 2 !important; }
  html body #moove_gdpr_cookie_info_bar .moove-gdpr-infobar-allow-all { order: 3 !important; }
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) :is(.moove-gdpr-infobar-allow-all,.moove-gdpr-modal-allow-all) {
    background: var(--tbp-green, #084828) !important;
    color: var(--tbp-white, #fff) !important;
    border-color: var(--tbp-green, #084828) !important;
  }
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) .mgbutton:hover { border-color: var(--tbp-night-text, var(--tbp-green, #084828)) !important; box-shadow: inset 0 0 0 1px currentColor !important; }
  html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) :is(button,a,input):focus-visible {
    outline: 3px solid var(--tbp-gold, #C9A227) !important;
    outline-offset: 4px !important;
  }
  html body .gdpr_lightbox.moove_gdpr_cookie_modal_open { z-index: 2147483647 !important; }
  html body #moove_gdpr_cookie_modal .tab-title {
    background: var(--tbp-night-raised, var(--tbp-sage, #F4F7F5)) !important;
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    border-color: var(--tbp-night-line, #8da89a) !important;
    font-size: 18px !important;
    line-height: 1.35 !important;
  }
  html body #moove_gdpr_cookie_modal .moove-gdpr-modal-content {
    background: var(--tbp-night-surface, var(--tbp-white, #fff)) !important;
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    border: 1px solid var(--tbp-line, rgba(8, 72, 40, .14)) !important;
    border-radius: 24px !important;
    max-width: calc(100vw - 24px) !important;
    box-sizing: border-box !important;
  }
  html body #moove_gdpr_cookie_modal :is(.moove-gdpr-modal-left-content,.moove-gdpr-modal-right-content,.moove-gdpr-modal-footer-content,.main-modal-content,.moove-gdpr-tab-content,.moove-gdpr-tab-main-content) {
    background: var(--tbp-night-surface, var(--tbp-white, #fff)) !important;
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    border-color: var(--tbp-line, rgba(8, 72, 40, .14)) !important;
  }
  html body #moove_gdpr_cookie_modal :is(#moove-gdpr-menu li,#moove-gdpr-menu a,.moove-gdpr-status-bar,.gdpr-sr-label) {
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    -webkit-text-fill-color: currentColor !important;
    border-color: var(--tbp-night-line, #8da89a) !important;
  }
  html body #moove_gdpr_cookie_modal #moove-gdpr-menu li.menu-item-selected a { background: var(--tbp-night-raised, var(--tbp-sage, #F4F7F5)) !important; color: var(--tbp-night-text, var(--tbp-green, #084828)) !important; }
  html body #moove_gdpr_cookie_modal .moove-gdpr-modal-footer-content { padding: 20px !important; box-sizing: border-box !important; }
  html body #moove_gdpr_cookie_modal .moove-gdpr-modal-close {
    background: var(--tbp-night-surface, var(--tbp-white, #fff)) !important;
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    border: 1px solid var(--tbp-night-line, #8da89a) !important;
    min-width: 44px !important;
    min-height: 44px !important;
    border-radius: 50% !important;
  }
  @media (max-width: 600px) {
    html body #moove_gdpr_cookie_info_bar { width: calc(100% - 20px) !important; max-width: calc(100% - 20px) !important; border-radius: 22px !important; }
    html body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container { padding: 22px 18px !important; }
    html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) p { font-size: 16px !important; }
    html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) .moove-gdpr-button-holder { gap: 8px !important; }
    html body :is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) .mgbutton { padding: 12px 8px !important; font-size: 13px !important; }
  }
  @media (prefers-reduced-motion: reduce) {
    html body #moove_gdpr_cookie_info_bar { transition: none !important; }
  }
}

/* Optional iframe gate only; video.js owns its insertion and removal. */
@layer tbp-appearance {
  html body button.tbp-external-media-consent {
    position: absolute !important;
    z-index: 5 !important;
    inset: 50% auto auto 50% !important;
    transform: translate(-50%, -50%) !important;
    width: max-content !important;
    max-width: calc(100% - 32px) !important;
    min-height: 44px !important;
    padding: 12px 18px !important;
    margin: 0 !important;
    border: 1px solid var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    border-radius: 12px !important;
    background: var(--tbp-night-surface, var(--tbp-white, #fff)) !important;
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    -webkit-text-fill-color: currentColor !important;
    font: 600 15px/1.4 Manrope, "DM Sans", sans-serif !important;
    white-space: normal !important;
    text-align: center !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    pointer-events: auto !important;
    cursor: pointer;
  }
  html body button.tbp-external-media-consent:focus-visible { outline: 3px solid var(--tbp-gold, #C9A227) !important; outline-offset: 4px !important; }
}

/* Keep the provider's real native inputs in the accessibility tree. */
@layer tbp-appearance {
  html body #moove_gdpr_cookie_modal .cookie-switch input[type="checkbox"] {
    display: block !important;
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    clip-path: inset(50%) !important;
    overflow: hidden !important;
  }
  html body #moove_gdpr_cookie_modal .cookie-switch:has(input:focus-visible) {
    outline: 3px solid var(--tbp-gold, #C9A227) !important;
    outline-offset: 5px !important;
  }
}

@layer tbp-appearance {
  html body #moove_gdpr_cookie_modal .gdpr-sr-label span {
    color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
    -webkit-text-fill-color: var(--tbp-night-text, var(--tbp-green, #084828)) !important;
  }
}
@layer tbp-appearance {
  html body #moove_gdpr_cookie_modal .moove-gdpr-modal-right-content { border-radius: inherit !important; }
  /* Let the action area size to its translated labels, rather than the
     provider's fixed 70px mobile footer. Only the document body scrolls. */
  html body #moove_gdpr_cookie_modal .moove_gdpr_modal_theme_v2 .moove-gdpr-modal-right-content {
    display: flex !important;
    flex-direction: column !important;
    max-height: calc(100dvh - 64px) !important;
    padding: clamp(18px, 3vw, 30px) !important;
  }
  html body #moove_gdpr_cookie_modal .moove_gdpr_modal_theme_v2 .moove-gdpr-modal-title { flex-shrink: 0 !important; }
  html body #moove_gdpr_cookie_modal .moove_gdpr_modal_theme_v2 .main-modal-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
  }
  html body #moove_gdpr_cookie_modal .moove_gdpr_modal_theme_v2 .moove-gdpr-modal-footer-content {
    position: static !important;
    flex: 0 0 auto !important;
    height: auto !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 16px 0 0 !important;
    margin-top: 16px !important;
    border-top: 1px solid var(--tbp-line, rgba(8, 72, 40, .14)) !important;
  }
  html body #moove_gdpr_cookie_modal .moove_gdpr_modal_theme_v2 .moove-gdpr-modal-footer-content::before { content: none !important; }
  html body #moove_gdpr_cookie_modal .moove_gdpr_modal_theme_v2 .moove-gdpr-branding-cnt { padding: 0 !important; }
  html body #moove_gdpr_cookie_modal .moove_gdpr_modal_theme_v2 .tab-title {
    background: transparent !important;
    border: 0 !important;
    font-size: 20px !important;
  }
  html body #moove_gdpr_cookie_modal .moove-gdpr-modal-title .tab-title { font-size: 26px !important; }
}

/* Sul telefono la finestra dei cookie era larga quanto lo schermo e alta un
   terzo: copriva la pagina intera (Elind, 19/9). Ora e' una scheda stretta e
   bassa: stessi tre bottoni, stesso testo, corpo piu' piccolo. Nello stesso
   layer delle regole sopra, che sono !important. */
@layer tbp-appearance {
  @media (max-width: 600px) {
    html body #moove_gdpr_cookie_info_bar {
      width: min(330px, calc(100% - 32px)) !important;
      max-width: min(330px, calc(100% - 32px)) !important;
      border-radius: 18px !important;
      box-shadow: 0 8px 28px #0003 !important;
    }
    html body #moove_gdpr_cookie_info_bar:not(.moove-gdpr-info-bar-hidden) {
      bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important;
    }
    html body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container { padding: 14px 14px 12px !important; }
    html body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content { gap: 10px !important; }
    html body #moove_gdpr_cookie_info_bar :is(h1,h2,h3,h4,.moove-gdpr-modal-title,.tab-title) { font-size: 16px !important; margin: 0 0 6px !important; }
    html body #moove_gdpr_cookie_info_bar :is(p,.moove-gdpr-cookie-notice) { font-size: 12.5px !important; line-height: 1.4 !important; }
    html body #moove_gdpr_cookie_info_bar p { margin: 0 !important; }
    html body #moove_gdpr_cookie_info_bar .moove-gdpr-button-holder { gap: 6px !important; }
    html body #moove_gdpr_cookie_info_bar .mgbutton { min-height: 38px !important; padding: 8px 4px !important; font-size: 12.5px !important; border-radius: 10px !important; }
  }
}

/* 12/10 (CEO): il banner compare subito e non copre la barra. Dove c'e' la barra in basso (fino a
   849 px) si posa appena sopra la sua fascia, invece che sopra la barra: i tre bottoni del banner e
   le voci della barra restano tutti visibili e toccabili. La riserva (--tbp-app-bar-reserve,
   css/tbp-app-bar.css) e' fascia + 16 px, e vale 0 nelle pagine a schermo intero: li' torna la
   distanza di prima. Colombo sale da solo sopra il banner (sopraLeStrisce). */
@layer tbp-appearance {
  @media (max-width: 849px) {
    html body.tbp-has-app-bar #moove_gdpr_cookie_info_bar:not(.moove-gdpr-info-bar-hidden) {
      bottom: max(calc(12px + env(safe-area-inset-bottom, 0px)), calc(var(--tbp-app-bar-reserve, 0px) - 10px)) !important;
    }
  }
}

/* 13/10 (CEO): sulla Home, alla prima visita, il banner compare quando il benvenuto finisce. Finche'
   <html> ha la classe tbp-intro-attiva (la mette inc/home-intro.php, la toglie js/tbp-home-intro.js)
   il banner non si vede e non si tocca. Senza benvenuto, e in ogni altra pagina, compare subito.
   Se il benvenuto non dovesse chiudersi, dopo 15 secondi js/tbp-cookie-banner.js mette
   tbp-cookie-senza-attesa e il banner compare comunque. */
html.tbp-intro-attiva:not(.tbp-cookie-senza-attesa) body #moove_gdpr_cookie_info_bar {
  visibility: hidden !important;
  pointer-events: none !important;
}


/* Nei percorsi a schermo pieno (registrazione guidata, configurazione del
   professionista) la CTA sta in fondo allo schermo e il banner, che compare
   in ritardo, ci si posava sopra: al passo «Dati di fatturazione» «Continua»
   non si toccava piu' (collaudo 20/9). Li' il banner aspetta la pagina dopo. */
html body.tbp-flow-fullscreen #moove_gdpr_cookie_info_bar,
html body.tbp-onb-flow #moove_gdpr_cookie_info_bar,
html body.tbp-wizard-fullscreen #moove_gdpr_cookie_info_bar,
html body.wcfm-store-setup #moove_gdpr_cookie_info_bar {
  display: none !important;
}

/* 23/9 (Elind, tema «ToBePolo»): «Personalizza» e «Rifiuta» si leggevano a
   fatica. Il plugin mette «Personalizza» a opacita' 0,7 (verde su bianco
   scendeva a 4,4:1) e i due bottoni erano trasparenti, quindi prendevano il
   colore di quello che stava dietro. Ora sono bottoni a contorno veri: fondo
   pieno, testo pieno, opacita' 1, in tutti e tre i temi (>= 10:1). */
@layer tbp-appearance {
  html body #moove_gdpr_cookie_info_bar .mgbutton,
  html body #moove_gdpr_cookie_modal .mgbutton {
    opacity: 1 !important;
  }
  html body #moove_gdpr_cookie_info_bar :is(.moove-gdpr-infobar-settings-btn, .moove-gdpr-infobar-reject-btn),
  html body #moove_gdpr_cookie_info_bar :is(.moove-gdpr-infobar-settings-btn, .moove-gdpr-infobar-reject-btn):is(:hover, :focus, .focus-g) {
    background: #ffffff !important;
    color: #084828 !important;
    -webkit-text-fill-color: #084828 !important;
    border: 1.5px solid #084828 !important;
    box-shadow: none !important;
  }
  html[data-tbp-theme="dark"] body #moove_gdpr_cookie_info_bar :is(.moove-gdpr-infobar-settings-btn, .moove-gdpr-infobar-reject-btn),
  html[data-tbp-theme="dark"] body #moove_gdpr_cookie_info_bar :is(.moove-gdpr-infobar-settings-btn, .moove-gdpr-infobar-reject-btn):is(:hover, :focus, .focus-g) {
    background: #1e1e1e !important;
    color: #ededed !important;
    -webkit-text-fill-color: #ededed !important;
    border-color: #8da89a !important;
  }
  html body #moove_gdpr_cookie_info_bar .moove-gdpr-infobar-allow-all,
  html body #moove_gdpr_cookie_info_bar .moove-gdpr-infobar-allow-all:is(:hover, :focus, .focus-g) {
    background: #084828 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: 1.5px solid #084828 !important;
  }
}
