/*
Theme Name: Twenty Twenty Child
Theme URI: https://wordpress.org/themes/twentytwenty/
Template: twentytwenty
Author: the WordPress team
Author URI: https://wordpress.org/
Description: Our default theme for 2020 is designed to take full advantage of the flexibility of the block editor. Organizations and businesses have the ability to create dynamic landing pages with endless layouts using the group and column blocks. The centered content column and fine-tuned typography also makes it perfect for traditional blogs. Complete editor styles give you a good idea of what your content will look like, even before you publish. You can give your site a personal touch by changing the background colors and the accent color in the Customizer. The colors of all elements on your site are automatically calculated based on the colors you pick, ensuring a high, accessible color contrast for your visitors.
Tags: blog,one-column,custom-background,custom-colors,custom-logo,custom-menu,editor-style,featured-images,footer-widgets,full-width-template,rtl-language-support,sticky-post,theme-options,threaded-comments,translation-ready,block-patterns,block-styles,wide-blocks,accessibility-ready
Version: 2.9.0.1757948945
Updated: 2025-09-15 17:09:05
*/

/* Header */

:root {
  --header-h: 64px;
  --border: #eaeaea;
  --bg: #ffffff;
  --fg: #111111;
  --overlay: rgba(0,0,0,.45);
}

html, body { font-family: "Rubik", Sans-serif !important; }

a {
  color: var(--e-global-color-9796ccf);
  text-decoration: none !important;
}

li {
  margin-top: 0 !important;
}

/* Accessibilità */
.screen-reader-text,
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.screen-reader-text:focus {
  position: static;
  width: auto;
  height: auto;
}

.site-header {
  position: sticky !important;
  top: 0;
  z-index: 1000;
  background: var(--bg);
  border-bottom: 2px solid var(--border);
  transition: all .3s ease;
}

.header-inner {
  max-width: 1240px;
  margin: 0 auto;
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 0 16px;
}

.site-logo {
  display: inline-flex;
  align-items: center;
  font-weight: 700;
  color: var(--fg);
  text-decoration: none;
}

.custom-logo-link img, .site-logo-alt img {
  width: auto;
  height: 30px !important;
  object-fit: contain;
}

.nav-desktop { display: none; }

.menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}

.menu a {
  font-size: 16px;
  color: var(--e-global-color-9796ccf);
  transition: all .3s ease;
}

.menu a:hover { text-decoration: underline; }

#menu-primary li {
  border-radius: 6px;
  margin: 0;
  padding: 3px 10px;
  transition: all .3s ease;
}
#menu-primary li:hover { background: #f5f5f7; }

#menu-primary .kine-secondary-btn,
#menu-primary .kine-secondary-btn:hover {
  padding: 3px 23px;
  border-radius: 6px;
  color: #fff;
  border: 2px solid var(--e-global-color-9796ccf);
  background: var(--e-global-color-9796ccf);
  transition: all .3s ease;
}

/*
#menu-primary .kine-secondary-btn,
#menu-primary .kine-secondary-btn:hover {
  padding: 3px 23px;
  border-radius: 6px;
  color: var(--e-global-color-9796ccf);
  border: 2px solid var(--e-global-color-9796ccf);
  background: #fff;
  transition: all .3s ease;
}
*/

/* Hamburger */
.hamburger {
  appearance: none;
  border: 0;
  background: none;
  padding: 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.hamburger-box {
  display: inline-block;
  width: 24px;
  height: 18px;
  position: relative;
}

.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--fg);
  content: "";
  transition: transform .2s ease, opacity .2s ease;
  transition: all .3s ease;
}
.hamburger-inner {
  top: 50%;
  transform: translateY(-50%);
}
.hamburger-inner::before { top: -7px; }
.hamburger-inner::after { bottom: -7px; }

.hamburger[aria-expanded="true"] .hamburger-inner { transform: translateY(-50%) rotate(45deg); }
.hamburger[aria-expanded="true"] .hamburger-inner::before { transform: translateY(7px) rotate(90deg); }
.hamburger[aria-expanded="true"] .hamburger-inner::after {
  transform: translateY(-7px) rotate(90deg);
  opacity: 0;
}

/* Overlay + Off-canvas */
.offcanvas-overlay {
  position: fixed;
  inset: 0;
  background: var(--overlay);
  z-index: 998;
  opacity: 0;
  transition: opacity .2s ease;
}
.offcanvas-overlay.is-open { opacity: 1; }

.offcanvas {
  position: fixed;
  top: 0;
  right: 0;
  height: 100dvh;
  width: min(84vw, 380px);
  background: var(--bg);
  box-shadow: 0 10px 40px rgba(0,0,0,.2);
  transform: translateX(100%);
  transition: transform .25s ease;
  z-index: 999;
  display: flex;
  flex-direction: column;
}
.offcanvas.is-open { transform: translateX(0); }

.offcanvas-header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  height: var(--header-h);
  padding: 0 10px;
  border-bottom: 1px solid var(--border);
}
.offcanvas-close {
  appearance: none;
  border: 0;
  background: none;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.nav-mobile { padding: 12px; }

.menu-mobile {
  flex-direction: column;
  gap: 0;
}
.menu-mobile > li {
  border-bottom: 1px solid var(--border);
  width: 95%;
  margin: 0;
  position: relative;
}
.menu-mobile a {
  display: block;
  padding: 14px 8px;
}

/* Dropdown desktop */
.menu.menu-desktop > li { position: relative; }

.menu.menu-desktop li.menu-item-has-children > a {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.menu.menu-desktop li .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
  padding: 8px;
  margin-top: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity .15s ease, transform .15s ease, visibility .15s;
  z-index: 1001;
}
.menu.menu-desktop li .sub-menu a {
  padding: 10px 12px;
  display: block;
  border-radius: 6px;
  white-space: nowrap;
}
.menu.menu-desktop > li:hover > .sub-menu,
.menu.menu-desktop > li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Fisarmonica mobile */
.menu.menu-mobile li.menu-item-has-children > a {
  position: relative;
  padding-right: 36px;
}

.menu-mobile .submenu-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 12px;
  margin: 0;
  cursor: pointer;
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.menu-mobile .submenu-toggle[aria-expanded="true"]::before { transform: rotate(90deg); }

.menu-mobile .sub-menu {
  display: none;
  padding-left: 10px;
  margin: 8px 0 8px 8px;
}
.menu-mobile .sub-menu.is-open { display: block; }
.menu-mobile .sub-menu .sub-menu { border-left-color: #ececec; }

.submenu-toggle {
  height: 55px;
  width: 55px;
  color: var(--e-global-color-9796ccf);
}

#mobile-menu-close {
  color: var(--e-global-color-9796ccf);
  padding: 10px;
  text-decoration: none;
}

/* Desktop breakpoint */
@media (min-width: 980px) {
  .nav-desktop { display: block; flex: 1; }
  .hamburger { display: none; }
}

.sub-menu { list-style: none; margin: 0; padding: 0; }
#offcanvas-menu { overflow: auto; }

/* Scrolled */

#site-header.scrolled {
	background: var(--e-global-color-9796ccf);
	border-color: var(--e-global-color-9796ccf);
}

.scrolled #menu-primary a {
	color: white;
}

.scrolled #menu-primary li:hover {
	background: #f5f5f729;
}

#site-header .sub-menu li:hover {
	background: #f5f5f7;
}

#site-header .sub-menu a {
	color: var(--e-global-color-9796ccf);
}

.scrolled #menu-primary .kine-secondary-btn:hover {
	background: white;
}

.scrolled #menu-primary .kine-primary-btn:hover {
	background: var(--e-global-color-9796ccf);
}

.scrolled #menu-primary .kine-primary-btn,
.scrolled #menu-primary .kine-secondary-btn {
	border-color: white;
}

.scrolled .hamburger-inner, .scrolled .hamburger-inner::before, .scrolled .hamburger-inner::after {
	background: white;
}


.site-logo-alt {
  display: none;
}


.scrolled .custom-logo-link {
  display: none !important;
}

.scrolled .site-logo-alt {
   display: flex !important;
   color: white;
   gap: 10px;
   align-items: center;
}

.custom-logo-link {
   display: flex !important;
   color: var(--e-global-color-9796ccf);
   gap: 10px;
   align-items: center;
}

.scrolled.custom-logo-link {
	display: none !important;
}

/* Footer */

#site-footer { border-top: 2px solid #f5f5f7; }

.site-footer {
  background: #111;
  color: #fff;
  padding: 40px 20px;
}

.footer-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 40px 20px;
  max-width: 1240px;
  margin: 0 auto;
}

.footer-widgets {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
  gap: 20px;
  margin-bottom: 30px;
}

.footer-widget-area { color: #ddd; }
.footer-widget-area a { color: #fff; text-decoration: none; }
.footer-widget-area a:hover { text-decoration: underline; }

#menu-primary .kine-secondary-btn a,
#menu-primary .kine-primary-btn a { color: inherit; }

.footer-menus {
  width: 65%;
  display: flex;
  margin-top: 40px;
  align-items: flex-start;
  justify-content: flex-end;
}

.menu.footer-contact-menu { flex-direction: column; align-items: flex-start; }
.footer-contact-menu, .footer-policy-menu { margin-top: 0; }
.menu.menu-footer-main li { margin: 0; }

.footer-inner .tel-list {
  display: flex;
  list-style: none;
  gap: 20px;
  margin: 0;
}
.footer-inner p,
.footer-inner .tel-list li { margin: 0; }

.footer-info {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
  color: #aaa;
}

.menu.menu-footer-main,
.menu.footer-policy-menu {
  flex-direction: column;
  align-items: flex-start;
}

.footer-info p,
.footer-info ul li { margin: 0; }

.footer-company-info {
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: var(--e-global-color-9796ccf);
  width: 33%;
  padding: 0 !important;
}
.footer-company-info span {
  font-size: 16px;
  color: var(--e-global-color-9796ccf);
}

.footer-brand .site-logo-text{
	display: none;
}

.df-convenzioni {
	width: 15%;
	display: flex;
	flex-direction: column;
	gap: 15px;
	margin-left: 350px;
}

.footer-policy-menu {
	margin-left: 30px;
}

.df-convenzioni img {
    width: 100%;
    height: 50px;
    object-fit: contain;
    border: 2px solid #e5e5e5;
    padding: 8px;
    border-radius: 6px;
}

/* Focus link nel footer */
.site-footer a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.site-footer .menu[role="list"] { list-style: none; margin: 0; padding: 0; }

/* Kine Img Box */

.kine-img-container { position: relative; }
.kine-img-text {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}
.kine-img-container img { transition: all .3s ease; }
.kine-img-container img:hover { transform: scale(1.5); }

/* Slider Style */

/* (ripristinato selettore mancante) */
#my-slider-images-wrapper { margin-bottom: 10px; }

.my-slider-thumb {
  position: relative;
  border: 1px solid #ddd;
  border-radius: 6px;
  overflow: hidden;
  width: 100px;
  height: 100px;
  background: #fafafa;
  display: flex;
  align-items: center;
  justify-content: center;
}
.my-slider-thumb img { max-width: 100%; max-height: 100%; }
.my-slider-thumb.ui-sortable-helper { opacity: .8; }

.my-slider-remove {
  position: absolute;
  top: 4px;
  right: 4px;
  background: #d63638;
  color: #fff;
  border: 0;
  border-radius: 4px;
  cursor: pointer;
  padding: 2px 6px;
  font-size: 11px;
}

#slider-home .swiper-slide::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 2;
    pointer-events: none;
}

/* Desktop / default */
.my-swiper-container {
  width: 100%;
  height: 450px;
  position: relative; /* per didascalie assolute */
}
.my-swiper-container .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.my-swiper-container img {
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  display: block;
}

/* Caption */
.my-swiper-caption {
  position: absolute;
  width: 1240px;
  display: flex;
  gap: 15px;
  flex-direction: column;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 3;
}

.my-swiper-btn {
  width: max-content;
  font-size: 25px;
  font-weight: 500;
  padding: 13px 25px;
  background: white;
  border-radius: 6px;
}

.my-swiper-caption h3 {
  margin: 0;
}

.my-swiper-caption p {
	width: 80%;
}

.my-swiper-caption h3,
.my-swiper-caption p { color: white; }

.swiper-button-prev,
.swiper-button-next { opacity: 0; }

/* Hover cards */
.partner-card,
.kinesalute-card-ab { transition: all .3s ease; }
.partner-card:hover,
.kinesalute-card-ab:hover { transform: scale(1.05); }

/* Contact Form 7 */

.contact-form input,
.contact-form textarea {
  border-width: 0;
  background: #f5f5f7;
  border-radius: 6px;
}
.contact-form input[type="submit"] {
  width: 100%;
  background: var(--e-global-color-9796ccf);
}

/* Form */

.contact-form form {
  display: flex;
  flex-wrap: wrap;
  gap: 0 20px;
}
.contact-form .elementor-shortcode { width: 100%; }
.contact-form p { width: 100%; margin: 0; }

.contact-form p:nth-child(1),
.contact-form p:nth-child(2),
.contact-form p:nth-child(3),
.contact-form p:nth-child(4),
.contact-form p:nth-child(5) {
  width: 48%;
  margin: 0;
}
.contact-form p:nth-child(8) .wpcf7-list-item { margin: 0 0 20px 0; }
.contact-form p:nth-child(7) { margin-bottom: 20px !important; }

/* */

.metro {
	display: flex;
	gap: 10px;
	margin: 10px 0;
}

.metro img {
	width: 9%;
}

/* Reviews */

#g-review .grwp_header{
	display: none !important;
}

#g-review .g-review {
	background: #F4F4F4 !important;
	box-shadow: none !important;
}

#g-review.layout_style-1 .g-review {
	padding: 20px !important;
}

#g-review .gr-inner-header p a {
	font-size: 15px !important;
	color: black !important;
	font-weight: 500 !important;
}

/* Social Icons */

.scrolled .social-icon {
	color: white;
}

.social-links {
  display: flex;
  gap: 10px;
  font-size: 22px;
}

/* Media */

@media screen and (max-width: 1024px) {
   .footer-menus {
	   margin-top: 0;
	   width: 100% !important;	
	   flex-direction: column;
	   gap: 25px;
   }	
	
	.footer-inner {
		gap: 20px;
	}
	
   .footer-contact-menu li, .footer-policy-menu li {
		margin: 0;
   }
	
   .footer-menus nav {
		width: 100%;
   }
	

  .my-swiper-caption { width: 100%; padding: 0 20px; }
  .my-swiper-caption h3 { font-size: 22px; }
  .my-swiper-caption p { font-size: 16px; }
  .my-swiper-btn { width: 100%; text-align: center; }

  .kine-primary-btn,
  .kine-primary-btn:hover {
    padding: 0;
    border-radius: 6px;
    text-align: center;
    margin-top: 10px !important;
    color: #fff;
    border: 2px solid var(--e-global-color-9796ccf) !important;
    background: var(--e-global-color-9796ccf);
    transition: all .3s ease;
  }
	
  .kine-primary-btn a,
  .kine-secondary-btn a { color: inherit; }


  .submenu-toggle {
    height: 55px !important;
    width: 55px;
    color: var(--e-global-color-9796ccf);
  }

  .kine-secondary-btn {
    margin-top: 10px !important;
    padding: 0;
    text-align: center;
    border-radius: 6px;
    color: var(--e-global-color-9796ccf);
    border: 2px solid var(--e-global-color-9796ccf) !important;
    background: #fff;
    transition: all .3s ease;
  }
	
  .my-swiper-caption p {
	width: 100%;	
  }


  #site-footer { padding: 40px 20px; }

  .footer-company-info,
  .footer-main-menu { width: 100%; }

  .footer-main-menu {
    margin: 0;
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .contact-form p:nth-child(1),
  .contact-form p:nth-child(2),
  .contact-form p:nth-child(3),
  .contact-form p:nth-child(4),
  .contact-form p:nth-child(5) {
    width: 100%;
    margin: 0;
  }
	
  .df-convenzioni {
	display: flex;
	width: 100%;
	flex-direction: row;
	flex-wrap: wrap;
	margin-left: 0;
   }
	
  .df-convenzioni img {
	width: 47%;	
  }
	
  .social-links {
	font-size: 25px;
	margin-left: auto;
  }
	
	.footer-policy-menu {
		margin-left: 0;
	}
}
