/* Targeted repairs layered over the official theme and page styles. */
html { scrollbar-gutter: stable; }
body { margin: 0; }
img { height: auto; }
button { font: inherit; }
#open_menu { background: transparent; border: 0; padding: 0; cursor: pointer; color: inherit; }
:focus-visible { outline: 2px solid #96512b !important; outline-offset: 5px; }
.skip-link { position: fixed; top: 8px; left: 8px; padding: 10px 16px; z-index: 1000; background: white; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.page-animation { display: none; position: fixed; inset: 0; z-index: 100; background: #fff; opacity: 1; transition: opacity .5s ease; }
.page-animation.is-playing { display: block; }
.page-animation.is-leaving { opacity: 0; pointer-events: none; }
.animation-canvas { width: 100%; height: 100%; }
.skip-animation { position: absolute; bottom: 22px; right: 3%; border: 1px solid #000; background: #fff; border-radius: 0; padding: 6px 15px; cursor: pointer; font-size: 12px; }
.menu-mobile { z-index: 20; }
.form-status { width: 100%; font-size: 14px; line-height: 1.5; padding: 12px 0; }
.form-status:empty { padding: 0; }
body.menu-open { overflow: hidden; }
.accordion__title { width: 100%; background: none; border: 0; text-align: left; color: inherit; }
.accordion__content.is-open { display: block; animation: reveal .4s ease; }
.static-slider { position: relative; }
.static-slider .slides > li { display: none; float: none; }
.static-slider .slides > li.is-current { display: block; animation: reveal .4s ease; }
.slider-controls { display: flex; justify-content: space-between; gap: 12px; padding: 10px; }
.slider-controls button { background: transparent; color: inherit; border: 1px solid currentColor; cursor: pointer; padding: 6px 15px; }
@keyframes reveal { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
/* Fix aspect ratios and inline WordPress dimension conflicts. */
figure img { max-width: 100%; object-fit: contain; }
#videoloop { object-fit: cover; width: 100%; height: 100%; }
main .wp-block-column { min-width: 0; }
main [id], main[id] { scroll-margin-top: 100px; }
main p, main li, main a { overflow-wrap: break-word; }
header#menu { position: relative; }
body.is-sticky header#menu { position: sticky; top: 0; margin-left: auto; height: auto; z-index: 30; }
body#servizi.is-sticky header#menu { display: block; }
/* Let short browser windows accommodate all of the home copy. */
#homepage .circle { max-width: 100%; }
#homepage .circle h1 { line-height: 1.12; }
#homepage .circle h2 { line-height: 1.15; }
.elementor-invisible { visibility: visible; }
.elementor-location-popup { display: none; }
.static-lightbox { position: fixed; inset: 0; z-index: 100; background: rgb(0 0 0 / .88); display: flex; align-items: center; justify-content: center; padding: 40px; }
.static-lightbox img { max-width: 100%; max-height: 90vh; object-fit: contain; }
.static-lightbox button { position: absolute; top: 10px; right: 18px; font-size: 28px; background: none; border: 0; color: white; cursor: pointer; }
@media (min-width: 769px) and (max-width: 1200px) {
  #menu nav ul li a { font-size: 11px; }
  #menu nav { width: 73%; }
  #menu .logo img { max-width: 110px; }
}
@media (max-width: 768px) {
  header.is-active .menu-mobile { position: fixed; inset: 108px 0 0; margin: 0; height: calc(100dvh - 108px); overflow-y: auto; }
  header.is-active .menu-mobile ul { position: relative; top: 0; left: 0; transform: none; margin: 0; height: auto; padding: 25px 24px; width: 100%; }
  body #menu .menu-mobile ul li { padding-bottom: 26px; }
  header.is-active .menu-mobile .lingua { position: relative; padding: 12px 24px 28px; }
  header#menu { z-index: 30; }
  body header#menu.is-active { background: #000; height: 108px; }
  body header#menu.is-active .logo img { filter: none; }
  body header#menu.is-active #open_menu { position: relative; z-index: 50; }
  main .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-wrap: wrap !important; }
  main .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
  #main_content .wp-block-columns .wp-block-column { border-left: 0; }
  .small_tit.with_line { display: flex; gap: 20px; align-items: center; }
  .small_tit.with_line::after { flex: 1; margin: 0; position: static; }
  .footer .inner_box { gap: 12px; }
  .footer .foo_info { display: block !important; width: 100%; overflow-wrap: anywhere; font-size: 11px; line-height: 1.5; }
  #contatti p, #contacts p { overflow-wrap: anywhere; }
  #homepage .circle { width: min(85vw, 600px); height: min(85vw, 600px); padding: 0 7vw; }
  #homepage .circle h1 { font-size: clamp(19px, 4.8vw, 32px); }
  #homepage .circle h2 { font-size: clamp(14px, 3.7vw, 22px); }
  .giustificato { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .page-animation { display: none !important; }
}
