/**
 * Dalcin Sidebar
 * Author: CLAB
 * Author URI: https://www.clabcomunicazione.it
 */

.dalcin-sidebar,
.dalcin-sidebar * {
  box-sizing: border-box;
}

.dalcin-sidebar {
  --dalcin-accent: #002a4e;
  --dalcin-ink: #ececec;
  --dalcin-icon: #486687;
  --dalcin-shadow: 0 18px 50px rgb(0 0 0 / 18%);
  position: fixed;
  z-index: 99999;
  top: calc(30% - 34px);
  right: 0;
  color: var(--dalcin-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1;
}

.dalcin-sidebar__toggle,
.dalcin-sidebar__close {
  border: 0;
  border-radius: 0;
  color: var(--dalcin-ink);
  background: var(--dalcin-accent);
  font: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.dalcin-sidebar__toggle {
  display: flex;
  align-items: center;
  width: 64px;
  height: 68px;
  margin: 0;
  padding: 18px 16px;
  box-shadow: var(--dalcin-shadow);
  transition: filter .3s ease;
}

.dalcin-sidebar__toggle:hover,
.dalcin-sidebar__toggle:focus-visible {
  filter: brightness(1.16);
}

.dalcin-sidebar__toggle:focus-visible,
.dalcin-sidebar__close:focus-visible,
.dalcin-sidebar__list a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: -3px;
}

.dalcin-sidebar__toggle svg {
  display: block;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
}

.dalcin-sidebar__panel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 78px;
  padding: 0;
  background: var(--dalcin-accent);
  box-shadow: var(--dalcin-shadow);
  transform-origin: top right;
}

.dalcin-sidebar__panel[hidden] {
  display: none;
}

.dalcin-sidebar.is-open .dalcin-sidebar__panel {
  overflow: hidden;
  animation: dalcin-sidebar-reveal .48s cubic-bezier(.22, 1, .36, 1) both;
}

.dalcin-sidebar.is-closing .dalcin-sidebar__panel {
  overflow: hidden;
  pointer-events: none;
  animation: dalcin-sidebar-hide .48s cubic-bezier(.64, 0, .78, 0) both;
}

@keyframes dalcin-sidebar-reveal {
  from {
    clip-path: inset(0 0 100% 0);
    transform: translateY(-12px);
  }
  to {
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }
}

@keyframes dalcin-sidebar-hide {
  from {
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }
  to {
    clip-path: inset(0 0 100% 0);
    transform: translateY(-12px);
  }
}

.dalcin-sidebar__nav {
  margin: 0;
  padding: 0;
}

.dalcin-sidebar__list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 10px 0;
  list-style: none;
}

.dalcin-sidebar__list li {
  margin: 0;
  padding: 0;
}

.dalcin-sidebar__list a {
  display: grid;
  place-items: center;
  width: 78px;
  height: 56px;
  margin: 0;
  padding: 10px;
  border: 0;
  border-radius: 0;
  color: inherit;
  background: transparent;
  text-decoration: none;
}

.dalcin-sidebar__icon {
  display: block;
  width: 35px;
  height: 35px;
  background-color: var(--dalcin-icon);
  mask: center / contain no-repeat var(--dalcin-icon-url);
  -webkit-mask: center / contain no-repeat var(--dalcin-icon-url);
  transform: scale(1);
  transform-origin: center;
  transition: background-color .3s ease, transform .3s ease;
}

.dalcin-sidebar__icon--1 { --dalcin-icon-url: url('../icons/icon-1.svg'); }
.dalcin-sidebar__icon--2 { --dalcin-icon-url: url('../icons/icon-2.svg'); }
.dalcin-sidebar__icon--3 { --dalcin-icon-url: url('../icons/icon-3.svg'); }
.dalcin-sidebar__icon--4 { --dalcin-icon-url: url('../icons/icon-4.svg'); }

.dalcin-sidebar__list a:hover .dalcin-sidebar__icon,
.dalcin-sidebar__list a:focus-visible .dalcin-sidebar__icon {
  transform: scale(1.08);
}

.dalcin-sidebar__list a:hover .dalcin-sidebar__icon--1,
.dalcin-sidebar__list a:focus-visible .dalcin-sidebar__icon--1 { background-color: #fecd5b; }

.dalcin-sidebar__list a:hover .dalcin-sidebar__icon--2,
.dalcin-sidebar__list a:focus-visible .dalcin-sidebar__icon--2 { background-color: #f69800; }

.dalcin-sidebar__list a:hover .dalcin-sidebar__icon--3,
.dalcin-sidebar__list a:focus-visible .dalcin-sidebar__icon--3 { background-color: #c2002e; }

.dalcin-sidebar__list a:hover .dalcin-sidebar__icon--4,
.dalcin-sidebar__list a:focus-visible .dalcin-sidebar__icon--4 { background-color: #ececec; }

.dalcin-sidebar__close {
  position: relative;
  order: -1;
  display: block;
  flex: 0 0 120px;
  width: 78px;
  min-height: 120px;
  margin: 0;
  padding: 0;
}

.dalcin-sidebar__close strong {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: max-content;
  color: var(--dalcin-ink);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .04em;
  text-align: right;
  white-space: nowrap;
  transform: translate(-50%, -50%) rotate(-90deg);
}

.dalcin-sidebar.is-open .dalcin-sidebar__toggle,
.dalcin-sidebar.is-closing .dalcin-sidebar__toggle {
  display: none;
}

@media (max-width: 640px), (max-height: 500px) {
  .dalcin-sidebar {
    top: max(8px, min(calc(30vh - 34px), calc(100vh - 368px)));
  }
}

@media (max-height: 380px) {
  .dalcin-sidebar__close {
    flex-basis: 96px;
    min-height: 96px;
  }

  .dalcin-sidebar__list {
    padding-block: 4px;
  }

  .dalcin-sidebar__list a {
    height: 50px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dalcin-sidebar.is-open .dalcin-sidebar__panel,
  .dalcin-sidebar.is-closing .dalcin-sidebar__panel {
    animation: none;
  }

  .dalcin-sidebar__toggle,
  .dalcin-sidebar__icon {
    transition-duration: 0s;
  }
}
