/* Complianz: palette e leggibilità del master La Tirlindana. */
body .cmplz-cookiebanner.cmplz-cookiebanner {
  --cmplz_text_color: #0d2c2a; --cmplz_hyperlink_color: #0d2c2a;
  --cmplz_title_font_size: 22px; --cmplz_text_font_size: 16px; --cmplz_text_line_height: 1.6;
  --cmplz_button_font_size: 16px; --cmplz_link_font_size: 14px; --cmplz_category_body_font_size: 16px;
  --cmplz_slider_active_color: #0d2c2a; --cmplz_slider_inactive_color: #566966; --cmplz_slider_bullet_color: #faf7ef;
  --cmplz_category_header_always_active_color: #0d2c2a; --cmplz_category_header_title_font_size: 16px;
  background: #faf7ef; color: #0d2c2a; border: 1px solid #0d2c2a;
  border-radius: 0; padding: 24px; width: min(526px, calc(100vw - 32px)); max-width: calc(100vw - 32px);
  max-height: calc(100dvh - 32px); overflow-y: auto;
  font-family: "TL Manrope", Arial, sans-serif; font-size: 16px; line-height: 1.6;
}
body .cmplz-cookiebanner.cmplz-cookiebanner > * {grid-column: 1 / -1; min-width: 0;}
body .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-header {grid-template-columns: 1fr 44px;}
body .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-logo {display: none;}
body .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-title {display: block; grid-column: 1; justify-self: start; color: #0d2c2a; font-size: 22px; font-weight: 700; line-height: 1.3;}
body .cmplz-cookiebanner .cmplz-message, body .cmplz-cookiebanner .cmplz-message p,
body .cmplz-cookiebanner .cmplz-description {color: #0d2c2a; font-size: 16px; line-height: 1.6;}
body .cmplz-cookiebanner .cmplz-buttons {display: grid; grid-template-columns: 1fr 1fr; gap: 12px;}
body .cmplz-cookiebanner .cmplz-btn.cmplz-btn {
  min-height: 48px; height: auto; margin: 0; padding: 12px 16px; border-radius: 0;
  border: 1px solid #0d2c2a; background: #0d2c2a; color: #faf7ef;
  font: 600 16px/1.4 "TL Manrope", Arial, sans-serif; white-space: normal;
}
body .cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
body .cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences {grid-column: 1 / -1; background: transparent; color: #0d2c2a;}
body .cmplz-cookiebanner .cmplz-btn.cmplz-btn:hover {background: #d6b449; color: #0d2c2a; border-color: #0d2c2a;}
.cmplz-cookiebanner .cmplz-btn:focus-visible, .cmplz-cookiebanner a:focus-visible {outline: 3px solid #0d2c2a; outline-offset: 3px;}
body .cmplz-cookiebanner .cmplz-links .cmplz-link {color: #0d2c2a; font-size: 14px; text-underline-offset: 3px;}
.cmplz-cookiebanner .cmplz-category {background: rgba(13,44,42,.05); border: 1px solid rgba(13,44,42,.2); color: #0d2c2a;}
.cmplz-cookiebanner .cmplz-category-title, .cmplz-cookiebanner .cmplz-always-active {color: #0d2c2a;}
body .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-close {grid-column: 2; display: grid; place-items: center; width: 44px; height: 44px; color: #0d2c2a;}
body #cmplz-manage-consent .cmplz-manage-consent {background: #faf7ef; color: #0d2c2a; border: 1px solid #0d2c2a; border-radius: 0; font: 600 14px/1.4 "TL Manrope", Arial, sans-serif;}
/* Complianz sits at 99999. Keep the replacement pointer above its UI without
   changing pointer-events, touch behaviour or the native-pointer fallback. */
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body .tl-cursor {z-index: 100000;}
  /* DOM hover clears immediately when the popup closes, even without a move. */
  html:has(.cmplz-cookiebanner:hover, #cmplz-manage-consent:hover) .tl-cursor {
    background: #0d2c2a; border-color: #0d2c2a; box-shadow: 0 0 0 1px #faf7ef;
  }
  html:has(.cmplz-cookiebanner:hover, #cmplz-manage-consent:hover) .tl-cursor.tl-active {background: transparent;}
}
/* Only the two purposes actually present in the current site are offered. */
.tlm-statistics-consent .cmplz-cookiebanner .cmplz-category.cmplz-preferences,
.tlm-statistics-consent .cmplz-cookiebanner .cmplz-category.cmplz-marketing {display: none !important;}
.tl-footer-legal {grid-column: 1 / -1; width: 100%; margin-top: 48px; padding-top: 24px; border-top: 1px solid rgba(250,247,239,.25);}
.tl-footer-legal > .elementor-widget-container {display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 24px;}
.tl-legal-identity {font: 400 16px/1.6 "TL Manrope", Arial, sans-serif; color: #faf7ef;}
.tl-legal-links {display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px;}
.tl-legal-links a, .tl-cookie-preferences.tl-cookie-preferences {color: #faf7ef; font: 400 16px/1.5 "TL Manrope", Arial, sans-serif; text-transform: none; letter-spacing: 0;}
.tl-cookie-preferences.tl-cookie-preferences {display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; background: transparent; border: 0; border-radius: 0; text-decoration: underline; text-underline-offset: 4px;}
.tl-legal-links a {display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px;}
.tl-legal-links a:hover, .tl-cookie-preferences.tl-cookie-preferences:hover {color: #d6b449; background: transparent;}
.tl-legal-links a:focus-visible, .tl-cookie-preferences.tl-cookie-preferences:focus-visible {outline: 2px solid #d6b449; outline-offset: 4px;}
/* Shared footer: brand above the rule; company and contacts share one top edge. */
.e-con.tl-footer.tl-footer-v2 {display: flex; flex-direction: column; align-items: stretch; gap: 0; padding-block: 48px;}
.tl-footer-v2 > .tl-footer-brand {width: 100%; max-width: none;}
.tl-footer-v2 .e-con.tl-footer-bottom {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); grid-template-rows: max-content 1fr; align-items: start;
  width: 100%; max-width: none; gap: 16px clamp(32px, 5vw, 80px);
  margin-top: 24px; padding: 24px 0 0; border-top: 1px solid rgba(250,247,239,.25);
}
.tl-footer-v2 .tl-footer-legal {grid-column: 1; grid-row: 1; width: 100%; min-width: 0; margin: 0; padding: 0; border: 0;}
.tl-footer-v2 .tl-footer-legal > .elementor-widget-container {display: flex; flex-direction: column; align-items: flex-start; gap: 16px;}
.tl-footer-v2 .e-con.tl-footer-meta {grid-column: 2; grid-row: 1 / 3; width: 100%; min-width: 0; justify-self: end; align-self: start; align-items: flex-end; gap: 8px; text-align: right;}
.tl-footer-v2 .tl-footer-meta .elementor-widget-text-editor {font: 400 16px/1.6 "TL Manrope", Arial, sans-serif; color: #faf7ef;}
.tl-footer-v2 .tl-footer-meta p:has(> a) {display: flex; flex-direction: column; align-items: flex-end; gap: 0; margin: 0;}
.tl-footer-v2 .tl-footer-meta p:has(> a) > br {display: none;}
.tl-footer-v2 .tl-footer-meta a {display: inline-flex; align-items: center; min-height: 44px;}
.tl-footer-v2 .tl-footer-meta a:focus-visible {outline: 2px solid #d6b449; outline-offset: 4px;}
/* Keep the credit with the legal block, independent of the contact column's height. */
.tl-footer-v2 .tl-footer-credit {grid-column: 1; grid-row: 2; width: 100%; min-width: 0; font: 400 16px/1.6 "TL Manrope", Arial, sans-serif; color: #faf7ef;}
.tl-footer-v2 .tl-footer-credit p {margin: 0;}
.tl-footer-v2 .tl-footer-credit a {display: inline-flex; align-items: center; min-height: 44px; color: #d6b449; font-weight: 600; text-decoration: underline; text-underline-offset: 4px;}
.tl-footer-v2 .tl-footer-credit a:hover {color: #faf7ef;}
.tl-footer-v2 .tl-footer-credit a:focus-visible {outline: 2px solid #d6b449; outline-offset: 4px;}
@media (max-width: 767px) {
  .e-con.tl-footer.tl-footer-v2 {padding-block: 32px;}
  .tl-footer-v2 .e-con.tl-footer-bottom {grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; margin-top: 24px; gap: 16px;}
  .tl-footer-v2 .tl-footer-legal, .tl-footer-v2 .e-con.tl-footer-meta, .tl-footer-v2 .tl-footer-credit {grid-column: auto; grid-row: auto;}
  .tl-footer-v2 .e-con.tl-footer-meta {justify-self: start; align-items: flex-start; text-align: left;}
  .tl-footer-v2 .tl-footer-meta p:has(> a) {flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: 0 24px;}
}
/* Compact text links with a mouse; retain 44px touch targets on touch devices. */
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
  .tl-footer-v2 .tl-footer-meta a, .tl-footer-v2 .tl-footer-credit a {min-height: 24px;}
}
.e-con.tl-legal-document {padding-top: calc(var(--tl-header-height, 92px) + 64px); padding-bottom: 96px; gap: 0; background: #0d2c2a; color: #faf7ef; align-items: stretch;}
.tl-legal-document > .elementor-element {width: 100%; max-width: 880px;}
.tl-legal-document .tl-eyebrow, .tl-legal-document .tl-eyebrow .elementor-widget-container {color: #d6b449;}
.tl-legal-title .elementor-heading-title {font: 500 clamp(40px, 6.5vw, 88px)/1.08 "TL Newsreader", Georgia, serif; letter-spacing: -.025em; color: #faf7ef; overflow-wrap: anywhere;}
.tl-legal-document > .tl-legal-title {margin-top: 24px;}
.tl-legal-document > .tl-legal-date {margin-top: 24px;}
.tl-legal-date {font: 400 16px/1.6 "TL Manrope", Arial, sans-serif; color: #faf7ef;}
.e-con.tl-legal-copy-section {padding: 0; gap: 16px; margin-top: 40px;}
.tl-legal-subtitle .elementor-heading-title {font: 500 clamp(28px, 3vw, 36px)/1.2 "TL Newsreader", Georgia, serif; color: #faf7ef; letter-spacing: -.015em;}
.tl-legal-body {font: 400 16px/1.75 "TL Manrope", Arial, sans-serif; color: #faf7ef; overflow-wrap: anywhere;}
.tl-legal-body p {margin: 0 0 20px;}
.tl-legal-body p:last-child {margin-bottom: 0;}
.tl-legal-body a {color: #d6b449; text-decoration: underline; text-underline-offset: 3px;}
.tl-legal-body a:hover {color: #faf7ef;}
.tl-legal-body code {font: inherit; color: inherit; background: transparent; padding: 0;}
.tl-legal-document > .elementor-widget-html {margin-top: 32px;}
@media (max-width: 767px) {
  body .cmplz-cookiebanner.cmplz-cookiebanner {left: 16px; right: 16px; bottom: 16px; width: auto; padding: 20px;}
  body .cmplz-cookiebanner .cmplz-buttons {gap: 10px;}
  .tl-footer-legal {margin-top: 32px;}
  .tl-footer-legal > .elementor-widget-container {align-items: flex-start; flex-direction: column; gap: 20px;}
  .e-con.tl-legal-document {padding-top: 128px; padding-bottom: 64px;}
}
@media (max-height: 400px) {
  body .cmplz-cookiebanner.cmplz-cookiebanner {zoom: 1 !important; height: auto; display: grid; overflow-y: auto; padding: 16px !important;}
  body .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-header {max-height: none; margin: 0 !important;}
  body .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-btn {zoom: 1 !important; min-height: 44px !important; height: auto !important; padding: 10px !important; font-size: 16px !important; line-height: 1.4 !important; white-space: normal !important;}
  body .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-close, body .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-documents {zoom: 1 !important;}
}
