/* Foglio riservato alla home: il chatbot continua a usare il proprio CSS. */
:root{color-scheme:light;--paper:#faf3e5;--ink:#3b2117;--red:#bb2015;--line:#d9c5aa;--muted:#72594a}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit}
button{font:inherit;cursor:pointer}
button:focus-visible,a:focus-visible,.gallery:focus-visible{outline:3px solid #36713b;outline-offset:5px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:10;left:1rem;top:1rem;transform:translateY(-180%);padding:12px 18px;background:var(--paper);border:1px solid var(--ink);border-radius:4px}
.skip-link:focus{transform:translateY(0)}
.masthead{position:relative;isolation:isolate;width:100%;margin:0;overflow:hidden;background:#eee0cb;border-bottom:1px solid #c9b08d}
.masthead__banner{display:block;width:100%;height:auto;aspect-ratio:1520/656;object-fit:cover}
.masthead__top{position:absolute;inset:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:clamp(12px,2vw,30px) clamp(12px,3vw,48px)}
.brand{display:block;flex:none;width:clamp(120px,17vw,210px);transition:transform .2s ease}
.brand:hover{transform:rotate(-2deg)}
.brand img{display:block;width:100%;height:auto;filter:drop-shadow(0 2px 3px #3b211733)}
.navigation{display:flex;align-items:center;gap:24px;padding:12px 17px;border:1px solid #e3d5c3;border-radius:40px;background:#fffaf1f0;box-shadow:0 2px 9px #44250e0a;font-size:14px;font-weight:600;white-space:nowrap}
.navigation a{text-decoration:none;padding:5px 0}
.navigation a:hover{text-decoration:underline;text-underline-offset:5px}
.navigation .navigation__chat{color:var(--red)}
.navigation__chat span{display:inline-block;margin-left:5px}
.gallery{width:100%;max-width:none;margin:0;position:relative}
.gallery__stage{position:relative;min-height:0;overflow:visible;touch-action:pan-y}
.slide{width:100%;max-width:100%;margin:0;padding:0;overflow:visible;text-align:center;animation:appear .45s ease both}
.slide img{display:block;width:100%;max-width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;margin:0;padding:0;border:0;border-radius:0}
.gallery__arrow{position:absolute;top:50%;transform:translateY(-50%);width:45px;height:45px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff9efed;color:var(--ink);box-shadow:0 2px 8px #3b211710}
.gallery__arrow span{font-family:Georgia,serif;font-size:36px;line-height:1;transform:translateY(-2px)}
.gallery__arrow:hover{background:#fff;border-color:#a27955}
.gallery__arrow--previous{left:30px}.gallery__arrow--next{right:30px}
.gallery__controls{display:flex;justify-content:center;align-items:center;gap:25px;min-height:44px;margin:0}
.gallery__dots{display:flex;align-items:center;gap:3px}
.dot{position:relative;border:0;background:transparent;width:30px;height:34px;padding:0}
.dot:after{content:"";position:absolute;inset:12px 10px;border-radius:50%;background:#c8af94;transition:background .2s,transform .2s}
.dot[aria-current="true"]:after{background:var(--red);transform:scale(1.25)}
.gallery__pause{border:0;background:transparent;color:var(--muted);font-size:12px;padding:12px 5px;min-height:44px}
.gallery__pause span{margin-left:5px}
.introduction{max-width:820px;margin:0 auto;padding:24px 26px 14px;text-align:center;scroll-margin-top:20px}
.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.1px;color:var(--muted);margin:0 0 18px}
h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(38px,4.6vw,61px);font-weight:400;line-height:1.09;letter-spacing:-1.5px;margin:0 0 23px}
h1 em{font-style:italic;color:var(--red)}
.introduction__text{font-size:16px;line-height:1.85;margin:0 auto 28px;max-width:650px;color:#614638}
.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:54px;padding:16px 29px;background:var(--red);border:1px solid #ad1a11;box-shadow:inset 0 1px #ffffff40,0 4px 12px #9e1e141a;border-radius:30px;color:#fffaf1;font-size:16px;font-weight:700;text-decoration:none;transition:background .2s,transform .2s}
.button:hover{background:#9c190f;transform:translateY(-2px)}
.button span{font-size:22px;line-height:1}
.access-note{font-size:12px;color:var(--muted);margin:13px 0 0}
.prototype-note{font-family:Georgia,serif;font-style:italic;font-size:14px;color:var(--muted);margin:31px 0 0;line-height:1.5}
.footer{display:flex;justify-content:space-between;align-items:center;gap:18px;max-width:1160px;margin:0 auto;padding:12px 26px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.footer>span{font-family:Georgia,serif;font-size:16px;color:var(--ink)}
.footer a{text-decoration:none}.footer a:hover{text-decoration:underline;text-underline-offset:4px}
@keyframes appear{from{opacity:0}to{opacity:1}}
@media(max-width:700px){
 .masthead{padding-top:72px}
 .masthead__top{padding:8px 12px;align-items:center;background:var(--paper);height:76px}
 .brand{width:64px;margin-left:0;position:relative;z-index:1}
 .navigation{gap:15px;padding:8px 0;background:transparent;border:0;box-shadow:none;font-size:12px}
 .navigation__chat span{display:none}
 .masthead__banner{aspect-ratio:2.15/1;object-position:68% 50%}
 .gallery{width:100%;margin:0}
 .slide img{width:100%;height:auto;max-height:none;object-fit:contain}
 .gallery__arrow{width:40px;height:40px;background:#fff9efd9}
 .gallery__arrow--previous{left:8px}.gallery__arrow--next{right:8px}
 .introduction{padding:22px 25px 12px;margin-top:0}
 .eyebrow{font-size:9px;letter-spacing:1.5px}
 .introduction__text{font-size:15px;line-height:1.75}
 .footer{margin:0 20px;padding:12px 0;flex-wrap:wrap;font-size:11px}
}
@media(max-width:400px){.masthead__top{gap:8px}.navigation{font-size:11px;gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.authors{max-width:100%;line-height:1.6}.authors p{margin:0}.authors p+p{margin-top:3px;font-size:11px}.authors a{text-decoration:underline;text-underline-offset:3px}

/* UBALDO_HOME_FOOTER_START */
.footer.footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "brand links" "credits operator";
  align-items: start;
  gap: 10px 36px;
  max-width: 1160px;
  margin: 0 auto;
  padding: 24px 26px 28px;
  line-height: 1.6;
}
.footer > span { grid-area: brand; align-self: center; }
.footer > .authors { grid-area: credits; min-width: 0; }
.footer .authors p { margin: 0; }
.footer .authors p + p { margin-top: 2px; }
.footer.footer > .ubaldo-legal-links {
  grid-area: links;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px 22px;
  margin: 0;
  padding: 0;
  align-self: center;
  font-size: 12px;
  line-height: 1.6;
}
.footer > .ubaldo-operator {
  grid-area: operator;
  margin: 0;
  text-align: right;
  align-self: end;
  overflow-wrap: anywhere;
}
.footer .ubaldo-legal-links a { text-decoration: none; padding: 2px 0; }
.footer .ubaldo-legal-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
@media (max-width: 740px) {
  .footer.footer {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "brand" "credits" "links" "operator";
    gap: 10px;
    margin: 0 20px;
    padding: 20px 0 24px;
    font-size: 12px;
  }
  .footer.footer > .ubaldo-legal-links { justify-content: flex-start; gap: 8px 22px; margin-top: 2px; }
  .footer > .ubaldo-operator { text-align: left; align-self: start; }
}
/* UBALDO_HOME_FOOTER_END */

/* UBALDO_SHARED_FOOTER_START */
.ubaldo-site-footer {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 22px 26px 26px;
  border-top: 1px solid var(--line, var(--border, #ddcbb6));
  color: var(--muted, #755d4c);
  font: 12px/1.6 system-ui, sans-serif;
  text-align: center;
}
.ubaldo-site-footer .footer__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 30px;
}
.ubaldo-site-footer .footer__name { font: 18px/1.6 Georgia, serif; color: var(--ink, #40271b); }
.ubaldo-site-footer .footer__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px 24px;
  margin: 0;
  padding: 0;
  font-size: 14px;
}
.ubaldo-site-footer .footer__bottom,
.ubaldo-site-footer .footer__credits {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 4px 20px;
  min-width: 0;
  max-width: 100%;
}
.ubaldo-site-footer p { margin: 0; font: inherit; color: inherit; }
.ubaldo-site-footer a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.ubaldo-site-footer .footer__links a { padding: 2px 0; text-decoration: none; }
.ubaldo-site-footer .footer__links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ubaldo-site-footer a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
@media (max-width: 740px) {
  .ubaldo-site-footer { width: calc(100% - 36px); padding: 22px 0 26px; gap: 18px; }
  .ubaldo-site-footer .footer__top,
  .ubaldo-site-footer .footer__links,
  .ubaldo-site-footer .footer__bottom,
  .ubaldo-site-footer .footer__credits { flex-direction: column; align-items: center; gap: 10px; }
  .ubaldo-site-footer .footer__bottom { gap: 8px; }
  .ubaldo-site-footer .footer__credits { gap: 4px; }
  .ubaldo-site-footer .footer__links a { padding: 3px 6px; }
  .ubaldo-site-footer .footer__operator { overflow-wrap: anywhere; max-width: 100%; }
}
/* UBALDO_SHARED_FOOTER_END */
