/*---------------------------------------------------------------------------------
Theme Name: website Digital Venice
Theme URI: https://digitalvenice.it/
Version: 1.2.0
Description: Child Theme made in Digital Venice
Author: DIGITAL VENICE
Author URI: https://digitalvenice.it/
Template: Divi
------------------------------ ADDITIONAL CSS HERE ------------------------------*/


/* ======================================================================
   1. ACCESSIBILITÀ BASE
   ====================================================================== */

a,
button,
.et_pb_button,
.mobile_menu_bar {
  transition:
    outline-color 0.15s ease,
    box-shadow 0.15s ease,
    background-color 0.15s ease,
    color 0.15s ease;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 3px solid #ef6a41;
  outline-offset: 3px;
}

a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
select:focus:not(:focus-visible),
summary:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible),
[tabindex]:not([tabindex="-1"]):focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}


/* ======================================================================
   2. SKIP LINK
   ====================================================================== */

.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  text-decoration: none;
  border-radius: 6px;
  padding: 10px 14px;
  z-index: 999999;
  background: #ffffff;
  color: #000000 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.skip-link:focus,
.skip-link:focus-visible {
  position: fixed;
  left: 12px;
  top: 12px;
  width: auto;
  height: auto;
  overflow: visible;
  outline: 3px solid #ef6a41;
  outline-offset: 2px;
}


/* ======================================================================
   3. BOTTONI, FORM E ICONE
   ====================================================================== */

.et_pb_button:focus-visible,
.et_pb_button_module_wrapper a:focus-visible {
  outline: 3px solid #ef6a41;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #ffffff;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  box-shadow: 0 0 0 2px rgba(239, 106, 65, 0.2);
}

.et_pb_icon a:focus-visible {
  outline: 3px solid #ef6a41;
  outline-offset: 4px;
  border-radius: 999px;
}


/* ======================================================================
   4. TARGET DELLO SKIP LINK
   ====================================================================== */

#main-content {
  scroll-margin-top: 100px;
}

#main-content:focus-visible {
  outline: 2px solid transparent;
}


/* ======================================================================
   5. MENU DESKTOP
   ====================================================================== */

/* Focus visibile */
#top-menu a:focus-visible,
.et_mobile_menu a:focus-visible,
.mobile_menu_bar:focus-visible {
  outline: 3px solid #ef6a41 !important;
  outline-offset: 4px !important;
  border-radius: 6px;
}

/* Stato corrente non affidato solo al colore */
.current-menu-item > a,
.current_page_item > a,
.current-menu-ancestor > a,
.current-page-ancestor > a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* Apertura submenu desktop da tastiera / JS */
@media (min-width: 981px) {
  #top-menu li.menu-item-has-children.dv-submenu-open > ul.sub-menu,
  #top-menu li.menu-item-has-children:focus-within > ul.sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    pointer-events: auto !important;
  }
}


/* ======================================================================
   6. MENU MOBILE OVERLAY DESIGN + HAMBURGER FIX
   ====================================================================== */

@media (max-width: 980px) {

  /* Header */
  #main-header .container,
  .et-l--header .et_pb_row {
    min-height: 90px;
  }

  /* =========================================================
     HAMBURGER
     ========================================================= */

  .mobile_menu_bar {
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    padding: 10px;
    position: relative;
    z-index: 100001 !important;
  }

  .mobile_menu_bar:before {
    font-family: "ETmodules" !important;
    content: "\61";
    font-size: 44px !important;
    font-weight: 700;
    color: #1c1c1c !important;
    line-height: 1 !important;
    display: block;
  }

  .mobile_nav.opened .mobile_menu_bar:before {
    content: "\00d7" !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 44px !important;
    font-weight: 700 !important;
    color: #1c1c1c !important;
    line-height: 1 !important;
    display: block;
  }

  /* =========================================================
     MENU OVERLAY
     ========================================================= */

  .mobile_nav {
    position: static !important;
  }

  .et_mobile_menu {
    display: block !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    overflow-y: auto !important;
    z-index: 99999 !important;

    background: #f7f7f7 !important; /* SFONDO */

    padding: 140px 32px 40px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-12px);
    transition: all 0.22s ease;
  }

  .mobile_nav.opened .et_mobile_menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  body.dv-mobile-menu-open {
    overflow: hidden;
  }

  /* =========================================================
     VOCI MENU
     ========================================================= */

  .et_mobile_menu > li {
    border: 0 !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
  }

  .et_mobile_menu > li > a {
    font-size: clamp(32px, 7vw, 52px) !important; /* MENU */
    line-height: 0.95 !important;
    font-weight: 700 !important;
    letter-spacing: -0.03em !important;
    color: #111111 !important;
    padding: 0 !important;
    margin: 0 0 10px 0 !important;
    background: transparent !important;
    min-height: auto !important;
  }

  .et_mobile_menu .current-menu-item > a {
    text-decoration: underline;
    text-underline-offset: 0.14em;
  }

  /* Submenu */
  .et_mobile_menu li.menu-item-has-children > ul.sub-menu {
    display: block !important;
    padding: 10px 0 18px 10px !important;
    border-left: 3px solid rgba(17,17,17,0.22);
  }

  .et_mobile_menu .sub-menu li a {
    font-size: clamp(16px, 2.8vw, 20px) !important; /* SUBMENU */
    color: rgba(17,17,17,0.72) !important;
    padding: 8px 0 !important;
  }

  /* Focus accessibile */
  .et_mobile_menu a:focus-visible,
  .mobile_menu_bar:focus-visible {
    outline: 3px solid #111111 !important;
    outline-offset: 6px !important;
    border-radius: 8px;
  }

  /* Header sopra menu */
  #main-header,
  .et-l--header {
    position: relative;
    z-index: 100000 !important;
  }
}


/* ======================================================================
   7. TOUCH
   ====================================================================== */

a,
button {
  -webkit-tap-highlight-color: transparent;
}