@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;600&family=DM+Sans:wght@300;400;500&display=swap');


    :root {
      --cream:   #f4f6fa;
      --sand:    #dde4ef;
      --clay:    #8fa8cc;
      --espresso:#0d2d6b;
      --charcoal:#0a1f4e;
      --accent:  #c0181e;
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    body {
      font-family: 'DM Sans', sans-serif;
      background-color: var(--cream);
      color: var(--charcoal);
      margin: 0;
      padding: 0;
    }

    #page-wrapper {
      min-height: 100vh;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
    }

    /*  HEADER / LOGO  */
    .site-header {
      padding: 1rem 2rem;
      background: #ffffff;
      border-bottom: 3px solid var(--accent);
      box-shadow: 0 2px 12px rgba(13,45,107,.08);
    }

    .logo-placeholder {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      text-decoration: none;
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
    }

    /*  MAIN CONTENT  */
    .main-content {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 auto;
              flex: 1 1 auto;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      padding: 3rem 1rem;
    }

    /*  CARD  */
    .login-card {
      background: #fff;
      border-radius: 12px;
      box-shadow: 0 4px 40px rgba(59,44,31,.10);
      padding: 2.75rem 2.5rem;
      width: 100%;
      max-width: 420px;
    }

    .profile-card {
      max-width: 900px;
    }

    @-webkit-keyframes fadeUp {
      from { opacity: 0; -webkit-transform: translateY(24px); transform: translateY(24px); }
      to   { opacity: 1; -webkit-transform: translateY(0);    transform: translateY(0); }
    }

    @keyframes fadeUp {
      from { opacity: 0; -webkit-transform: translateY(24px); transform: translateY(24px); }
      to   { opacity: 1; -webkit-transform: translateY(0);    transform: translateY(0); }
    }

    .card-eyebrow {
      font-size: .7rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--clay);
      margin-bottom: .4rem;
    }

    .login-card h1 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 2rem;
      font-weight: 600;
      color: var(--espresso);
      margin-bottom: 1.75rem;
      line-height: 1.15;
    }

    /*  FORM ELEMENTS  */
    .form-label {
      font-size: .75rem;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: var(--espresso);
      font-weight: 500;
      margin-bottom: .35rem;
    }

    .form-control {
      background: var(--cream);
      border: 1.5px solid var(--sand);
      border-radius: 6px;
      color: var(--charcoal);
      font-family: 'DM Sans', sans-serif;
      font-size: .9rem;
      padding: .65rem .9rem;
      -webkit-transition: border-color .2s, box-shadow .2s;
              transition: border-color .2s, box-shadow .2s;
    }

    .form-control:focus {
      background: #fff;
      border-color: var(--clay);
      box-shadow: 0 0 0 3px rgba(143,168,204,.25);
      color: var(--charcoal);
    }

    .input-group .form-control { border-radius: 6px !important; }

    .input-group-text {
      background: var(--sand);
      border: 1.5px solid var(--sand);
      color: var(--espresso);
      border-radius: 6px !important;
      cursor: pointer;
      -webkit-transition: background .2s;
              transition: background .2s;
    }

    .input-group-text:hover { background: var(--clay); color: #fff; }

    .form-check-input:checked {
      background-color: var(--accent);
      border-color: var(--accent);
    }

    .forgot-link {
      font-size: .82rem;
      color: var(--accent);
      text-decoration: none;
      -webkit-transition: color .2s;
              transition: color .2s;
    }

    .forgot-link:hover { color: var(--espresso); }

    /*  BUTTON  */
    .btn-login {
      background: var(--espresso);
      background-color: var(--espresso);
      color: var(--cream);
      border: none;
      border-radius: 6px;
      font-family: 'DM Sans', sans-serif;
      font-size: .85rem;
      letter-spacing: .08em;
      text-transform: uppercase;
      font-weight: 500;
      padding: .75rem;
      width: 100%;
      -webkit-transition: background .25s, -webkit-transform .15s;
              transition: background .25s, transform .15s;
      margin-top: .5rem;
      cursor: pointer;
    }

    .btn-login:hover {
      background: var(--accent);
      color: #fff;
      -webkit-transform: translateY(-1px);
              transform: translateY(-1px);
    }

    .btn-login:active {
      -webkit-transform: translateY(0);
              transform: translateY(0);
    }

    .divider {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      gap: .75rem;
      margin: 1.4rem 0;
      color: var(--clay);
      font-size: .75rem;
      letter-spacing: .08em;
    }

    .divider::before, .divider::after {
      content: '';
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1;
      height: 1px;
      background: var(--sand);
    }

    .btn-social {
      border: 1.5px solid var(--sand);
      background: transparent;
      color: var(--espresso);
      border-radius: 6px;
      font-size: .82rem;
      font-family: 'DM Sans', sans-serif;
      padding: .6rem .9rem;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      gap: .5rem;
      width: 100%;
      -webkit-transition: border-color .2s, background .2s;
              transition: border-color .2s, background .2s;
      cursor: pointer;
    }

    .btn-social:hover { border-color: var(--clay); background: var(--cream); }

    .register-link {
      font-size: .82rem;
      color: var(--espresso);
      text-align: center;
      margin-top: 1.25rem;
    }

    .register-link a {
      color: var(--accent);
      text-decoration: none;
      font-weight: 500;
    }

    .register-link a:hover { color: var(--espresso); }

    /*  STRUTTURA PAGINA  */
    .site-header,
    .site-footer {
      display: block;
      width: 100%;
    }

    /*  FOOTER  */
    .site-footer {
      line-height: 0;
      overflow: hidden;
      position: relative;
    }

    /*  RESPONSIVE  */
    @media (max-width: 480px) {
      .login-card  { padding: 2rem 1.25rem; }
      .site-header { padding: 1rem 1.25rem; }
    }
    
    .ui-selectonemenu label.ui-selectonemenu-label {
        background: var(--cream);
    }
    

	/* --- WARNING --- */
	.ui-messages-warn {
	    color: #664d03;
	    background-color: #fff3cd;
	    border: 1px solid #ffecb5;
	    border-radius: 0.375rem;
	    padding: 1rem;
	    margin-bottom: 1rem;
	}
	.ui-messages-warn .ui-messages-warn-icon { display: none; }
	.ui-messages-warn-summary,
	.ui-messages-warn-detail { color: #664d03; }
	
	/* --- INFO --- */
	.ui-messages-info {
	    color: #055160;
	    background-color: #cff4fc;
	    border: 1px solid #b6effb;
	    border-radius: 0.375rem;
	    padding: 1rem;
	    margin-bottom: 1rem;
	}
	.ui-messages-info .ui-messages-info-icon { display: none; }
	.ui-messages-info-summary,
	.ui-messages-info-detail { color: #055160; }
	
	/* --- ERROR / FATAL --- */
	.ui-messages-error {
	    color: #842029;
	    background-color: #f8d7da;
	    border: 1px solid #f5c2c7;
	    border-radius: 0.375rem;
	    padding: 1rem;
	    margin-bottom: 1rem;
	}
	.ui-messages-error .ui-messages-error-icon { display: none; }
	.ui-messages-error-summary,
	.ui-messages-error-detail { color: #842029; }
	
	/* --- FATAL (alias di error) --- */
	.ui-messages-fatal {
	    color: #842029;
	    background-color: #f8d7da;
	    border: 1px solid #f5c2c7;
	    border-radius: 0.375rem;
	    padding: 1rem;
	    margin-bottom: 1rem;
	}
	.ui-messages-fatal .ui-messages-fatal-icon { display: none; }
	.ui-messages-fatal-summary,
	.ui-messages-fatal-detail { color: #842029; }
	
	/* --- Rimuovi bordo/sfondo del contenitore esterno --- */
	.ui-messages {
	    border: none !important;
	    background: none !important;
	    padding: 0 !important;
	    box-shadow: none !important;
	}

  .registration-info {
    line-height: 1.6;
  }

  .privacy-card {
    max-width: 960px;
  }

  .privacy-document {
    background: linear-gradient(180deg, rgba(244, 246, 250, .96), #ffffff);
    border: 1px solid rgba(143, 168, 204, .35);
    border-radius: 14px;
    padding: 1.75rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
  }

  .privacy-document p {
    font-size: .96rem;
    line-height: 1.75;
    margin-bottom: 1rem;
    color: rgba(10, 31, 78, .9);
  }

  .privacy-document p:last-child {
    margin-bottom: 0;
  }

  .privacy-title {
    font-size: .8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--espresso);
    margin-bottom: .75rem;
  }

  .privacy-subtitle {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--espresso);
    margin-bottom: 1.25rem;
  }

  .privacy-link {
    color: var(--accent);
    font-weight: 600;
    text-decoration: none;
  }

  .privacy-link:hover {
    color: var(--espresso);
  }

  .privacy-consent {
    padding: 1rem 1.25rem;
    background: rgba(221, 228, 239, .35);
    border: 1px solid rgba(143, 168, 204, .28);
    border-radius: 12px;
  }

  .privacy-check {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin: 0;
  }

  .privacy-check .form-check-input {
    margin-top: .2rem;
    flex: 0 0 auto;
  }

  .privacy-check .form-check-label {
    font-size: .95rem;
    line-height: 1.6;
    color: var(--charcoal);
    cursor: pointer;
  }

  .privacy-actions {
    display: flex;
    justify-content: flex-start;
  }

  .privacy-continue {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
  }

  .privacy-continue.disabled,
  .privacy-continue[aria-disabled='true'] {
    opacity: .55;
    pointer-events: none;
  }

  @media (max-width: 767px) {
    .privacy-document {
      padding: 1.25rem;
    }

    .privacy-actions {
      justify-content: stretch;
    }

    .privacy-continue {
      max-width: none;
    }
  }