:root {
  --a11y-accent: #9a5f65;
  --a11y-ink: #312628;
  --a11y-soft: #fbf7f4;
}

.site-tools {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 2147482998;
  display: flex;
  align-items: center;
  gap: 10px;
}

.site-tools .rcc-reopen,
.a11y-trigger {
  position: static;
  inset: auto;
  min-height: 44px;
  margin: 0;
  justify-content: center;
}

.site-tools .rcc-reopen svg {
  display: block;
  flex: 0 0 auto;
  margin: 0;
}

.a11y-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 15px;
  border: 1px solid #c99572;
  border-radius: 999px;
  background: #fffaf6;
  color: #4c3431;
  box-shadow: 0 6px 22px rgba(60, 40, 38, .16);
  font: 700 13px/1.1 "Montserrat", Arial, sans-serif;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.a11y-trigger:hover { transform: translateY(-2px); box-shadow: 0 9px 26px rgba(60, 40, 38, .22); }
.a11y-trigger svg { width: 19px; height: 19px; fill: currentColor; flex: 0 0 auto; }

.a11y-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483001;
  background: rgba(30, 24, 25, .58);
  backdrop-filter: blur(2px);
}

.a11y-panel {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 2147483002;
  width: min(430px, calc(100vw - 36px));
  max-height: calc(100vh - 36px);
  overflow: auto;
  border: 1px solid rgba(154, 95, 101, .32);
  border-radius: 20px;
  background: #fff;
  color: var(--a11y-ink);
  box-shadow: 0 24px 70px rgba(30, 20, 22, .32);
  font-family: "Montserrat", Arial, sans-serif;
}

.a11y-panel[hidden], .a11y-overlay[hidden] { display: none !important; }
.a11y-panel__header { display: flex; justify-content: space-between; gap: 18px; padding: 22px 22px 15px; border-bottom: 1px solid #eadfda; }
.a11y-panel__header h2 { margin: 3px 0 0; color: var(--a11y-ink); font-size: 1.35rem; line-height: 1.2; }
.a11y-kicker { margin: 0; color: var(--a11y-accent); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.a11y-close { width: 44px; height: 44px; flex: 0 0 auto; border: 1px solid #dccbc4; border-radius: 50%; background: #fffaf6; color: var(--a11y-ink); font-size: 1.7rem; line-height: 1; cursor: pointer; }
.a11y-panel__intro { margin: 0; padding: 15px 22px 6px; font-size: .89rem; line-height: 1.55; }
.a11y-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px 22px 18px; }
.a11y-option { min-height: 70px; padding: 12px; border: 1px solid #dfd2cd; border-radius: 13px; background: var(--a11y-soft); color: var(--a11y-ink); text-align: left; font: 700 .83rem/1.25 "Montserrat", Arial, sans-serif; cursor: pointer; transition: border-color .2s ease, background-color .2s ease, transform .2s ease; }
.a11y-option:hover { transform: translateY(-1px); border-color: var(--a11y-accent); }
.a11y-option[aria-pressed="true"] { border-color: var(--a11y-accent); background: #ead6d6; box-shadow: inset 0 0 0 1px var(--a11y-accent); }
.a11y-option small { display: block; margin-top: 5px; color: #735e5c; font-size: .7rem; font-weight: 500; }
.a11y-size { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #dfd2cd; border-radius: 13px; background: var(--a11y-soft); font-size: .83rem; font-weight: 700; }
.a11y-size button { width: 44px; height: 40px; border: 1px solid #ccb8b1; border-radius: 9px; background: #fff; color: var(--a11y-ink); font-weight: 800; cursor: pointer; }
.a11y-panel__footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 22px 20px; border-top: 1px solid #eadfda; }
.a11y-reset { min-height: 44px; padding: 10px 16px; border: 1px solid var(--a11y-accent); border-radius: 999px; background: #fff; color: var(--a11y-accent); font-weight: 800; cursor: pointer; }
.a11y-status { margin: 0; font-size: .72rem; color: #695756; }
body.a11y-dialog-open { overflow: hidden; }

html.a11y-text-small { font-size: 90%; }
html.a11y-text-large { font-size: 112.5%; }
html.a11y-text-larger { font-size: 125%; }
html.a11y-line-height body, html.a11y-line-height p, html.a11y-line-height li { line-height: 1.85 !important; }
html.a11y-spacing body { letter-spacing: .05em !important; word-spacing: .12em !important; }
html.a11y-readable, html.a11y-readable body, html.a11y-readable * { font-family: Arial, Helvetica, sans-serif !important; }
html.a11y-links a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px !important; }
html.a11y-focus *:focus-visible { outline: 4px solid #ffbf00 !important; outline-offset: 4px !important; }
html.a11y-grayscale { filter: grayscale(100%); }
html.a11y-reduce-motion { scroll-behavior: auto !important; }
html.a11y-reduce-motion *, html.a11y-reduce-motion *::before, html.a11y-reduce-motion *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
html.a11y-reduce-motion .hero-figure img,
html.a11y-reduce-motion .image-container {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
html.a11y-reduce-motion .hero-text { opacity: 1 !important; visibility: visible !important; transform: translate(-50%, -50%) !important; }
html.a11y-reduce-motion .hero-button-wrapper { opacity: 1 !important; visibility: visible !important; transform: translateX(-50%) !important; }
html.a11y-high-contrast body, html.a11y-high-contrast header, html.a11y-high-contrast main, html.a11y-high-contrast section, html.a11y-high-contrast article, html.a11y-high-contrast footer, html.a11y-high-contrast nav { background-color: #000 !important; color: #fff !important; }
html.a11y-high-contrast h1, html.a11y-high-contrast h2, html.a11y-high-contrast h3, html.a11y-high-contrast p, html.a11y-high-contrast li, html.a11y-high-contrast span { color: #fff !important; }
html.a11y-high-contrast a { color: #ffdf5d !important; }
html.a11y-high-contrast button { border-color: #fff !important; }
html.a11y-high-contrast .site-tools .a11y-trigger,
html.a11y-high-contrast .site-tools .rcc-reopen {
  background: #000 !important;
  color: #ffdf5d !important;
  border: 2px solid #ffdf5d !important;
}
html.a11y-high-contrast .site-tools .a11y-trigger span,
html.a11y-high-contrast .site-tools .rcc-reopen span {
  color: #ffdf5d !important;
}
html.a11y-high-contrast .site-tools svg { fill: #ffdf5d !important; }
html.a11y-high-contrast .servizio,
html.a11y-high-contrast figcaption,
html.a11y-high-contrast .call-to-action,
html.a11y-high-contrast .nota-estiva,
html.a11y-high-contrast .rds-consent-placeholder,
html.a11y-high-contrast .tabella-orari th,
html.a11y-high-contrast .tabella-orari td,
html.a11y-high-contrast .tabella-orari thead,
html.a11y-high-contrast .panel,
html.a11y-high-contrast .social-follow {
  background: #000 !important;
  background-image: none !important;
  color: #fff !important;
  border-color: #fff !important;
  box-shadow: none !important;
}
html.a11y-high-contrast .servizio *,
html.a11y-high-contrast figcaption *,
html.a11y-high-contrast .call-to-action *,
html.a11y-high-contrast .nota-estiva *,
html.a11y-high-contrast .rds-consent-placeholder *,
html.a11y-high-contrast .tabella-orari *,
html.a11y-high-contrast .panel *,
html.a11y-high-contrast .social-follow * {
  color: #fff !important;
}
html.a11y-high-contrast .hero-button,
html.a11y-high-contrast .phone-float,
html.a11y-high-contrast #backToTop,
html.a11y-high-contrast .rcc-btn {
  background: #000 !important;
  color: #ffdf5d !important;
  border: 2px solid #ffdf5d !important;
}
html.a11y-high-contrast .hero-button *,
html.a11y-high-contrast .phone-float *,
html.a11y-high-contrast #backToTop *,
html.a11y-high-contrast .rcc-btn * { color: #ffdf5d !important; }
html.a11y-high-contrast .a11y-panel, html.a11y-high-contrast .a11y-panel__header, html.a11y-high-contrast .a11y-panel__footer, html.a11y-high-contrast .a11y-size, html.a11y-high-contrast .a11y-option { background: #090909 !important; color: #fff !important; border-color: #fff !important; }
html.a11y-high-contrast .a11y-option small, html.a11y-high-contrast .a11y-status { color: #fff !important; }
html.a11y-high-contrast .a11y-option[aria-pressed="true"] { background: #3a3000 !important; box-shadow: inset 0 0 0 2px #ffdf5d; }

@media (max-width: 640px) {
  .site-tools { right: 10px; bottom: 72px; gap: 8px; }
  .site-tool__label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .site-tools .rcc-reopen, .a11y-trigger { width: 46px; height: 46px; min-height: 46px; padding: 0; border-radius: 50%; }
  .a11y-panel { inset: auto 8px 8px; width: auto; max-height: calc(100vh - 16px); border-radius: 17px; }
  .a11y-options { grid-template-columns: 1fr; }
  .a11y-size { grid-column: 1; }
  .a11y-panel__footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .a11y-trigger, .a11y-option { transition: none; }
}
