@import "fonts.css";
@import "customize.css";
@import "upload.css";
@import "layout.css";

.comment-forbidden,
.comment-add {
  display: none !important;
}

html,
body {
  font-size: 14px;
  line-height: 1.555;
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--bs-body-color);

}

a,
a:focus,
a:active {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

@media (min-width: 1400px) {

  .container,
  .container-lg,
  .container-md,
  .container-sm,
  .container-xl,
  .container-xxl {
    max-width: 1440px;
  }
}

main {
  background-color: #fAfAfA;
  min-height: calc(100dvh - 342px);
  background-image: url("../../media/images/bg-rol-page.jpg");
  /* background-size: cover;
    background-position: center; */
  background-repeat: repeat;
}

a:hover {
  text-decoration: none !important;
}

.icon.icon-sm {
  width: 20px;
  height: 20px;
}

.it-header-center-wrapper .dropdown-toggle::after {
  display: none;
}

.it-page-sections-container.p-4 {
  background-color: #fff;
  border: 1px solid var(--bs-primary);
  min-height: 800px;
  /* border-radius: 0 4px 4px 4px */
  border-radius: 24px;
}

.it-page-sections-container.p-4.first-section-tab {
  border-radius: 0 24px 24px 24px;
}

.it-page-sections-container.p-4.last-section-tab {
  border-radius: 24px 0 24px 24px;
}

.nav-tabs {
  background-color: transparent;
  border-bottom: 0px none;
}

.navbar.it-navscroll-wrapper .link-list-wrapper ul li a span {
  font-weight: normal;
  color: var(--bs-primary);
}

.navbar.it-navscroll-wrapper .link-list-wrapper ul li a.active span {
  font-weight: 600;
  color: var(--bs-primary);
}

.nav-tabs .nav-link.active .icon {
  fill: var(--bs-primary);
}

.nav-tabs .nav-link:hover {
  color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.nav-tabs .nav-link:hover {
  color: var(--bs-primary);
}

.nav-tabs .nav-link .icon:hover {
  fill: var(--bs-primary);
}

.cmp-nav-tab .nav-tabs .nav-link.active {
  font-weight: 700;
  border-color: var(--bs-primary);
  border-bottom-color: transparent;
  border-radius: 15px 15px 0 0;
  color: var(--bs-primary);
}

.title-logo-comune {
  font-size: 22px;
}

.nav-tabs .nav-link {
  border-radius: 15px 15px 0 0;
}

.nav-tabs .nav-link:hover {
  background-color: #fff;
  border-radius: 15px 15px 0 0;
}

.card.cmp-info-summary {
  border-color: var(--bs-primary);
}

.card-header {
  position: relative;
  min-height: 55px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 24px;
  background-color: var(--bs-primary);
  background-image: url(../../media/images/card-leaves.png);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: auto 100%;
  color: white;
}

.card-header h5,
.card-header h4 {
  /* text-transform: uppercase;
    font-size: 15px;
    padding: 4px 0px; */
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 0 !important;
}

.card-header-warning {
  background: rgb(255, 193, 7);
  /* background: linear-gradient(50deg, rgba(255, 193, 7, 1) 0%, rgba(255, 247, 223, 1) 100%); */
}

@media (min-width: 576px) {
  .cmp-breadcrumbs .breadcrumb>li {
    font-size: 1rem;
  }
}

.cmp-breadcrumbs {
  margin-top: 0px;
  margin-bottom: 10px;
}

.cmp-breadcrumbs .breadcrumb-container .breadcrumb .breadcrumb-item a {
  color: #333;
}

.cmp-breadcrumbs .breadcrumb-container .breadcrumb .breadcrumb-item.active {
  color: var(--bs-primary);
  text-transform: uppercase;
  font-weight: 600;
}

.table> :not(caption)>*>* {
  padding: .5rem .3rem;
}


.small_prints_footer {
  font-size: 16px;
  color: #FFF;
}

.small_prints_footer a {
  font-size: 14px;
  color: #FFF;
  text-decoration: none;
  margin-right: 10px;
}

.small_prints_footer a:hover {
  font-size: 16px;
  color: #FFF;
  text-decoration: underline;
}

.it-footer-small-prints a,
.it-footer-small-prints a:hover:not(.disabled) {
  font-size: 16px;
}

.footer-logo-europa {
  align-items: center;
  display: flex;
}

.mb-5 {
  margin-bottom: 5px;
}

.mb-10 {
  margin-bottom: 10px;
}

.mb-15 {
  margin-bottom: 15px;
}

.mb-30 {
  margin-bottom: 30px;
}

.mb-20 {
  margin-bottom: 20px;
}

.mb-50 {
  margin-bottom: 50px;
}

.ml-5 {
  margin-left: 5px;
}

.ml-10 {
  margin-left: 10px;
}

.ml-15 {
  margin-left: 15px;
}

.ml-30 {
  margin-left: 30px;
}

.ml-20 {
  margin-left: 20px;
}

.ml-50 {
  margin-left: 50px;
}

.mt-10 {
  margin-top: 10px;
}

.mt-15 {
  margin-top: 15px;
}

.mt-20 {
  margin-top: 20px;
}

.mt-50 {
  margin-top: 50px;
}

.mt-30 {
  margin-top: 30px;
}

.mr-lg-40 {
  margin-right: 40px;
}

.mo-auto {
  margin-left: auto;
  margin-right: auto;
}

.pb-6 {
  padding-bottom: 6px;
}

.pt-20 {
  padding-top: 20px;
}

.pb-20 {
  padding-bottom: 20px;
}

.pd-15 {
  padding: 15px;
}

.pd-30 {
  padding: 30px;
}

.pl-15 {
  padding-left: 15px;
}

.pl-10 {
  padding-left: 10px;
}

.pl-25 {
  padding-left: 25px;
}

.pr-10 {
  padding-right: 10px;
}

.pt-35 {
  padding-top: 35px;
}

.fs-1rem {
  font-size: 1rem !important;
}

.line-height-0 {
  line-height: 0;
}

.inline_element {
  display: inline-flex;
}

.mr-5 {
  margin-right: 5px !important;
}

.mr-10 {
  margin-right: 10px !important;
}

.italic_font {
  font-style: italic !important;
}

/*.pb-0 {*/
/*  padding-bottom: 0 !important;*/
/*}*/

.text-right {
  text-align: right;
}

.float-right {
  float: right;
}

.float-left {
  float: left;
}

.display-inline {
  display: inline;
}

.margin_bottom_0 {
  margin-bottom: 0 !important;
}

.Allegatifs-smaller {
  font-size: 1.05rem !important;
}

body .text-white {
  color: #fff !important;
}

ul.simple {
  padding: 0 30px;
}

.hidden {
  display: none;
}

.top-10 {
  top: 10px;
}

.end-10 {
  right: 10px;
}

form {
  padding: 0;
  margin: 0;
  width: auto !important;
}

.form-check [type="checkbox"]+label,
.form-check [type="radio"]+label {
  height: auto;
  width: 100%;
  margin-bottom: 0px;
  padding-bottom: 0px;
}

input[type="date"],
input[type="datetime-local"],
input[type="mail"],
input[type="email"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="text"],
input[type="time"],
input[type="url"],
textarea {
  font-weight: normal;
}

select option {
  font-size: 1rem;
  font-family: var(--bs-body-font-family);
  white-space: normal;
  max-width: 100%;
  text-overflow: ellipsis;
  overflow: hidden;
}

.select-wrapper select option {
  font-size: 1rem;
  white-space: normal;
  max-width: 100%;
  text-overflow: ellipsis;
  overflow: hidden;
}

.btn-small {
  display: inline-block;
  font-weight: 600;
  font-size: 13px;
  white-space: initial;
  line-height: 1em;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  border: 1px solid rgba(0, 0, 0, 0);
  border-top-color: rgba(0, 0, 0, 0);
  border-right-color: rgba(0, 0, 0, 0);
  border-bottom-color: rgba(0, 0, 0, 0);
  border-left-color: rgba(0, 0, 0, 0);
  border-radius: 4px;
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
  padding: 10px 20px;
}

.btn-default {
  border: 1px solid #000;
}

.btn-primary {
  background-color: var(--bs-primary);
}

.btn-primary:hover {
  background-color: var(--bs-secondary);
}


#btn_concludi_richiesta:disabled {
  background-color: var(--bs-secondary);
}

.btn-custom-radius {
  display: block !important;
  padding: 0.5rem 1rem !important;
  height: 42px !important;
  border-radius: 14px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
}

.btn-custom-radius .icon {
  font-size: 14px;
  width: 16px;
  height: 16px;
}


.btn-outline-primary {
  --bs-btn-color: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
  --bs-btn-focus-shadow-rgb: 13, 110, 253;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bs-primary);
  --bs-btn-active-border-color: var(--bs-primary);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: var(--bs-primary);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--bs-primary);
  --bs-gradient: none;
}

.btn-outline-primary:hover {
  color: #ffffff;
  box-shadow: inset 0 0 0 2px var(--bs-primary);
}

body .btn-outline-primary:focus {
  border: 1px solid var(--bs-primary) !important;
}

.form-check-input:checked {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}

.ckb_veicoli {
  border-radius: 50% !important;
  width: 28px !important;
  height: 28px !important;
  cursor: pointer;
}


.btn-primary,
.btn-primary:hover {
  border: 1px solid var(--bs-primary);
}

.btn-primary:hover {
  border: 1px solid var(--bs-secondary);
  background-color: var(--bs-secondary);
}

.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show>.btn-primary.dropdown-toggle {
  color: #fff;
  background-color: inherit;
  border-color: inherit;
}

.btn-primary:focus,
.btn-primary.focus {
  box-shadow: 0 0 0 0 transparent !important;
  border-color: transparent !important;
  outline: 1px none !important;
  outline-offset: 0px;
}

.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show>.btn-primary.dropdown-toggle {
  color: #fff;
  background-color: var(--bs-secondary);
  border-color: var(--bs-secondary);
}

.btn-secondary {
  border: 1px solid var(--bs-body-color);
}

.btn-special-width {
  width: auto;
}

.btn-small.btn-vote {
  border: 1px solid #000;
  color: #000;
}

.btn-small.btn-vote:hover {
  border: 1px solid #000;
  color: #000;
  background-color: #cfcfcf;
}

.btn-small.btn-vote span {
  color: #F4B30A;
  font-size: 15px;
  padding-right: 1px;
  line-height: 0em;
}

.btn-small.addVote span {
  color: #F4B30A;
  font-size: 15px;
  padding-right: 1px;
  line-height: 0em;
}

.btn-auto {
  width: auto;
  padding: 8px;
}

.btn-action {
  border: 1px solid #CDCDCD;
  border-radius: 50%;
  padding: 6px 4px 5px 5px;
  height: 41px;
  width: 41px;
  box-shadow: none;
  display: inline-flex;
}

.btn-action:hover,
.btn-action:focus,
.btn-action:active {
  background: #e5e5e5;
  outline: none;
  -webkit-box-shadow: inset 0px 0px 5px #c1c1c1;
  -moz-box-shadow: inset 0px 0px 5px #c1c1c1;
  box-shadow: inset 0px 0px 5px #c1c1c1;
}

#dtPrenotazioniList .btn-action {
  border: 1px solid #CDCDCD;
  border-radius: 50%;
  padding: 6px 4px 5px 5px;
  height: 41px;
  width: 41px;
  box-shadow: none;
  display: inline-flex;
}

.btn-msg-action {
  border: 1px solid #CDCDCD;
  /* border-radius: 4px; */
  border-radius: 50%;
  padding: 0px;
  width: 41px;
  height: 41px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* box-shadow: 2px 2px 3px #666; */
}

.btn-msg-action:hover,
.btn-msg-action:focus,
.btn-msg-action:active {
  background: #e5e5e5;
  outline: none;
  -webkit-box-shadow: inset 0px 0px 5px #c1c1c1;
  -moz-box-shadow: inset 0px 0px 5px #c1c1c1;
  box-shadow: inset 0px 0px 5px #c1c1c1;
}

.btn-action.text-action {
  color: #169900;
  font-weight: bold;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 0.9em;
  min-width: 220px;
  text-align: left;
}

.btn-pagopa {
  background-color: #0066CC;
  color: #fff;
  border: 2px solid #0066CC;
}

.btn-pagopa:hover,
.btn-pagopa:active,
.btn-pagopa:focus {
  background-color: #fff !important;
  border: 2px solid #0066CC !important;
  color: #0066CC !important;
}

tbody td {
  border-style: dashed;
}

#dtPrenotazioniList tbody td {
  border-style: solid;
  border-color: #ccc;
}

.tooltip .tooltip-arrow::before {
  border-color: var(--bs-primary) !important;
}

.tooltip-arrow {
  border-bottom-color: var(--bs-primary) !important;
}

.tooltip-inner {
  background-color: #fff !important;
  color: var(--bs-primary) !important;
  border: 1px solid var(--bs-primary) !important;
}

.show {
  display: block;
}

.hide {
  display: none;
}

.font-italic {
  font-style: italic !important;
}

.upload[type="file"]+label:hover,
.upload:focus+label {
  background-color: var(--btn-primary-hover);
}

.alert-danger {
  background-position: 14px 16px;
  background-repeat: no-repeat;
  background-size: 32px 32px;
  border-left: 8px solid hsl(350deg, 60%, 50%);
  font-size: 14px;
  border-top: 1px solid #d5d5d5;
  border-right: 1px solid #d5d5d5;
  border-bottom: 1px solid #d5d5d5;
}

.alert-danger h5 {
  font-size: 16px;
  color: hsl(350deg, 60%, 50%);
  font-weight: 600;
}

.cmp-info-summary .card-body .data-text.description-alert {
  color: #cc334d;
}

.callout {
  max-width: 100%;
}

.callout.callout-highlight.warning {
  border-color: #cc334d;
}

.callout.warning .callout-title {
  /*color: #cc334d;*/
}

.callout.warning .callout-title .icon {
  fill: #cc334d;
}

.callout.warning .callout-title span {
  /*border-color: #cc334d;*/
  /*color: #cc334d;*/
  font-size: 1.125rem;
}

.callout p {
  font-size: 1rem;
}

.callout.consiglio {
  border-color: var(--bs-warning);
}

.callout.callout-highlight.consiglio {
  border-color: var(--bs-warning);
}

.callout.consiglio .callout-title {
  color: var(--bs-warning);
}

.callout.consiglio .callout-title .icon {
  fill: var(--bs-warning);
}

.callout.consiglio .callout-title span {
  border-color: var(--bs-warning);
  color: var(--bs-warning);
  font-size: 1.125rem;
}

.callout.consiglio .btn-consiglio {
  background-color: var(--bs-warning);
  color: #FFF;
}

.cmp-info-button-card .card-info {
  font-size: 1.2rem;
}

.modal .modal-dialog .modal-content .modal-header h5,
.modal .modal-dialog .modal-content .modal-header .h5 {
  font-size: 1rem;
}

.modal .modal-dialog .modal-content .modal-body p:not(.cmp-upload__info) {
  font-size: 0.9rem;
  font-weight: normal;
}

#modalShare .form-check {
  height: 1em;
  display: inline-flex;
}

.share-row {
  color: #7a9803;
  font-size: 13px;
  margin-top: 10px;
}

.share-row svg {
  height: 20px;
  width: 20px;
  margin-right: 4px;
  fill: #7a9803;
}

.cmp-info-summary.has-border {
  border: 1px solid #e5e5e5;
  padding: 1rem;
  border-radius: 4px;
}

.cmp-info-summary.has-border:not(:last-child) {
  margin-bottom: 1.67rem;
}

.cmp-input .clean-input {
  right: 1px;
  top: 4px;
}

.clean-input-flex {
  right: 1px;
  position: absolute;
  top: 10px;
}

.autocomplete_box_indirizzo.hidden {
  display: none !important;
}

.cmp-input__label.active.required {
  color: var(--bs-warning) !important;
}

.form-group.cmp-input label {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  color: #5a768a;
  margin-left: 4px;
  opacity: .9;
  mix-blend-mode: normal;
  padding-bottom: .625rem
}

.wrapper_noncensita {
  display: none;
}

.wrapper_noncensita.show {
  display: block;
}

.cmp-info-button-card.check-card:not(:first-of-type) {
  margin-top: 1.78rem;
}

.select-wrapper select {
  font-weight: normal;
  color: inherit;
}

.text-small {
  font-size: 15px;
}

.text-smaller {
  font-size: 12px;
}

.uppercase {
  text-transform: uppercase;
}

.card:after {
  display: none;
  content: none;
}

.form-check [type="checkbox"]:focus+label,
.form-check [type="radio"]:focus+label,
.toggles label input[type="checkbox"]:focus+.lever {

  box-shadow: 0 0 0 1px #000 !important;
}

#body_terms h4 {
  color: var(--bs-primary);
  margin-bottom: 20px;
}

#body_terms label {
  color: #1a1a1a;
  margin-top: 20px;
  font-size: 1.1rem;
}

.it-right-zone {
  position: relative;
}

#it-header-region {
  margin-right: 100px;
}

#it-header-region .social li {
  margin-right: 16px;
}

#it-header-region svg {
  fill: #ffffff;
  width: 24px;
  height: 24px;
}

#it-header-region a:hover svg {
  fill: #999999;
}

.search-box {
  width: fit-content;
  height: fit-content;
  position: absolute;
  right: 0;
}

#input-search {
  height: 50px;
  width: 50px;
  border-style: none;
  padding: 10px;
  font-size: 18px;
  outline: none;
  border-radius: 25px;
  transition: all .5s ease-in-out;
  padding-right: 40px;
  color: #fff;
  margin-left: 10px;
}

#input-search::placeholder {
  color: rgba(255, 255, 255, .5);
  font-size: 18px;
  font-weight: 100;
}

.btn-search {
  width: 50px;
  height: 50px;
  border-style: none;
  font-size: 20px;
  font-weight: bold;
  outline: none;
  cursor: pointer;
  border-radius: 50%;
  position: absolute;
  right: 0px;
  color: #ffffff;
  background-color: transparent;
  pointer-events: painted;
}

.btn-search svg {
  fill: var(--bs-secondary);
}

.btn-search:focus~#input-search {
  width: 300px;
  border-radius: 0px;
  color: #999999;
  background-color: #FFFFFF;
  border-bottom: 1px solid rgba(255, 255, 255, .5);
  transition: all 500ms cubic-bezier(0, 0.110, 0.35, 2);
}

#input-search:focus {
  width: 300px;
  border-radius: 0px;
  color: #999999;
  background-color: #FFFFFF;
  border-bottom: 1px solid rgba(255, 255, 255, .5);
  transition: all 500ms cubic-bezier(0, 0.110, 0.35, 2);
}

.it-header-slim-wrapper {
  background: var(--bs-secondary);
}

.it-user-wrapper.nav-item.dropdown {
  height: 40px;
  padding-top: 6px;
}

.it-header-wrapper .it-header-slim-wrapper .it-header-slim-wrapper-content a {
  color: #fff;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 600;
  border-width: 0px;
}

.it-header-wrapper .it-header-slim-wrapper .it-header-slim-wrapper-content a:hover {
  text-decoration: none;
}

.it-header-slim-wrapper .it-header-slim-wrapper-content a:focus {
  box-shadow: inset 0 0px 0 transparent;
  border-width: 0px;
}

.it-header-slim-wrapper .it-header-slim-wrapper-content a .rounded-icon {
  background-color: var(--bs-primary);
  border-radius: 50%;
  width: 29px;
  height: 26px;
  text-align: center;
}

.it-header-center-wrapper {
  background: var(--bs-primary);
}

.accordion-item .accordion-body {
  padding: 12px 24px 0px 16px;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper .accordion.acc-category {
  padding-left: 6px;
  border-left: 0;
  border-right: 1px solid #c5c7c9;
  border-bottom: 1px solid #c5c7c9;
  margin-bottom: 4px;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper .accordion.acc-category .accordion-button::after {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-left: auto;
  content: "";
  background-color: var(--bs-primary);
  -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-size: 1rem;
  transition: transform .2s ease-in-out;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper .accordion.acc-category .accordion-button.collapsed::after {

  transform: rotate(0deg);
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper .accordion.acc-category .accordion-button:not(.collapsed)::after {

  transform: rotate(-180deg);
}

.pagination .page-item.active .page-link {
  background: var(--bs-primary);
  color: #FFFFFF;
}

.menu-numbers {
  font-weight: normal;
}

.menu-numbers:before {
  content: "(";
}

.menu-numbers:after {
  content: ")";
}

.badge-alert {
  background-image: url('../../media/images/badge-alert.png');
  background-repeat: no-repeat;
  width: 23px;
  height: 23px;
  background-position: left top;
  position: relative;
  margin-top: -24px;
  text-align: center;
  margin-left: -6px;
  padding: 5px 0 0 0;
  font-size: 0.75em;
  font-weight: 600;
}

.badge {
  background-image: url('../../media/images/badge.png');
  background-repeat: no-repeat;
  width: 23px;
  height: 23px;
  background-position: left top;
  position: relative;
  margin-top: -24px;
  text-align: center;
  margin-left: -6px;
  padding: 5px 0 0 0;
  font-size: 0.75em;
  font-weight: 600;
}

.nav-link:hover,
.nav-link:focus {
  color: var(--bs-primary);
  background-color: transparent;
  text-decoration: underline;
}

.nav-link.text-center.pe-lg-none.pb-lg-15.ps-lg-3.me-xl-5.text-tab:hover,
.nav-link.text-center.pe-lg-none.pb-lg-15.ps-lg-3.me-xl-5.text-tab:focus {
  text-decoration: none;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper ul li a {
  padding: 0;
  line-height: 1.8;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li {
  padding: 10px 0;
  border-bottom: 1px solid #ccc;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li .accordion {
  border: 1px none;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li a {
  padding: 0;
  text-transform: uppercase;
  font-size: 15px;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li a span {
  font-weight: 600;

}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li ul {
  margin-left: 20px;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li ul li {
  border-bottom: 1px none;
  list-style: disclosure-closed;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li ul li a .title-medium {
  font-weight: normal;
  font-size: 14px;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li ul li a.active .title-medium {
  font-weight: 700;
  text-decoration: none;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li .accordion-header .accordion-button::after {
  margin-top: -7px;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li a.accordion-button {
  border: 1px none;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li .protocollo {
  font-size: 12px;
}

.navbar.it-navscroll-wrapper .link-list-wrapper .acr-istanza ul li a .title-medium {
  text-transform: capitalize;
}

#attivita tbody th {
  font-weight: normal;
}

#attivita th.toread {
  font-weight: bold;
}

.it-footer-main {
  padding-top: 30px;
}

.it-footer-small-prints {
  background-color: var(--bs-primary);
}

/* ==========================================================
   FOOTER
   ========================================================== */

.it-footer-small-prints.bg-footer-utente {
  background-image: url(../../media/images/bg-footer-2.png);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  padding: 0;
  color: #fff;
}

/* ----------------------------------------------------------
   FASCIA SUPERIORE
   ---------------------------------------------------------- */

.it-footer-small-prints .footer-top {
  padding: 25px 0;
}

.it-footer-small-prints .footer-top .row {
  min-height: 56px;
}

.footer-logo-main {
  display: flex;
  align-items: center;
}

.footer-logo-main img {
  display: block;
  width: auto;
  max-width: 300px;
  max-height: 45px;
}

/* ----------------------------------------------------------
   LOGHI ISTITUZIONALI
   ---------------------------------------------------------- */

.footer-logos-istituzionali {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.footer-logos-istituzionali .loghi_progetto_img {
  display: flex;
  align-items: center;
  padding: 0 !important;
}

.footer-logos-istituzionali .logo_progetto_1 img,
.footer-logos-istituzionali .logo_progetto_2 img {
  height: 40px;
  width: auto;
  padding-right: 10px;
}

.footer-logos-istituzionali .logo_progetto_3 img {
  height: 40px;
  width: auto;
}

/* ==========================================================
   FOOTER
   ========================================================== */

.it-footer-small-prints.bg-footer-utente {
  background-image: url(../../media/images/logo-footer.png);
  background-size: contain;
  background-position-x: 60%;
  background-repeat: no-repeat;
  padding: 0 !important;
  color: #fff;
}

/* ==========================================================
   PARTE SUPERIORE
   ========================================================== */

.footer-top {
  padding: 30px 0 25px;
}

.footer-progetto {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  white-space: nowrap;
}

.footer-progetto-label,
.footer-powered {
  color: #fff;
  font-size: 14px;
  line-height: 1;
}

.footer-logo-digitalcity {
  display: block;
  height: 42px;
  width: auto;
}

.footer-logo-proximalab {
  display: block;
  height: 20px;
  width: auto;
}

/* ==========================================================
   LOGHI REPUBBLICA / EUROPA
   ========================================================== */

.footer-logos-istituzionali {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
}

.footer-logos-istituzionali .loghi_progetto_img {
  display: flex;
  align-items: center;
  padding: 0 !important;
}

.footer-logos-istituzionali img {
  display: block;
  width: auto;
  height: 40px;
}

.footer-logos-istituzionali .logo_progetto_2 img {
  padding-right: 10px;
}

/* ==========================================================
   PARTE INFERIORE
   ========================================================== */

.footer-bottom {
  border-top: 1px solid rgba(0, 0, 0, 0.10);
  padding: 7px 0;
}

.footer-bottom .row {
  min-height: 22px;
}

.footer-copyright {
  text-align: left;
}

.footer-links {
  text-align: right;
}

.it-footer-small-prints .small_prints_footer {
  font-size: 13px !important;
  line-height: 1.3;
  color: #fff;
}

.it-footer-small-prints .small_prints_footer a,
.it-footer-small-prints .small_prints_footer a:hover {
  font-size: 13px !important;
  color: #fff;
  text-decoration: none;
  margin-right: 10px;
}

.it-footer-small-prints .small_prints_footer a:hover {
  text-decoration: underline;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media screen and (max-width: 991px) {

  .footer-top {
    padding: 25px 0;
  }

  .footer-progetto {
    justify-content: center;
    margin-bottom: 20px;
    flex-wrap: wrap;
  }

  .footer-logos-istituzionali {
    justify-content: center;
  }

  .footer-copyright,
  .footer-links {
    text-align: center;
  }

  .footer-links {
    margin-top: 5px;
  }

  .footer-copyright p {
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }

  .footer-copyright .footer-logo-proximalab {
    height: 30px;
    width: auto;
    margin-top: 4px;
  }
}

.it-footer-small-prints-list li a,
.it-footer-small-prints-list li p {
  font-size: 13px;
  text-decoration: none;
}

.it-footer-small-prints-list li a:hover,
.it-footer-small-prints-list li a:active,
.it-footer-small-prints-list li a:focus,
.it-footer-small-prints-list li a:hover:not(.disabled) {
  text-decoration: underline;
  font-size: 13px;
}

.it-user-wrapper .btn-primary {
  background-color: var(--bs-primary);
  width: 274px;
  border: 1px none;
}

.it-user-wrapper .btn-icon .rounded-icon {
  background-color: var(--bs-secondary);
  width: 36px;
  height: 36px;
  border-radius: 100%;
}

.color-primary {
  color: var(--bs-primary);
}

.width-66 {
  width: 66%;
}

.menu-servizi .active .icon {
  fill: var(--bs-primary);
  width: 30px;
  margin-top: -2px;
}

.btn .icon {
  width: 16px;
  height: 16px;
  font-size: 14px;
}

.table {
  color: var(--bs-body-color);
}

.footer_show_more_menulista {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition: all .5s linear;
}

.footer_show_more_menulista.show {
  height: auto;
  opacity: 1;
}

#it-region-footer-second svg {
  fill: #fff;
}

.menu-step {
  border-right: 1px solid #cdcdcd;
  padding-top: 10px;
  padding-bottom: 10px;
}

.menu-step:nth-last-child(1) {
  border-right: 1px none;
}

.menu-step span {
  width: 30px;
  height: 30px;
  display: inline-block;
  line-height: 1em;
  border-radius: 50%;
  padding: 4px 5px 4px 5px;
  margin-right: 10px;
}

.menu-step.active {
  color: var(--bs-primary);
  font-weight: 700;
  text-decoration: underline;
}

.menu-step.active span {
  color: #fff;
  background-color: var(--bs-primary);
  border: 1px solid var(--bs-primary);
}

.menu-step.future {
  color: #999;
  font-weight: 500;
}

.menu-step.future span {
  color: #999;
  background-color: #fff;
  border: 1px solid #999;
}

.menu-step.passed {
  color: var(--bs-primary);
  font-weight: 700;
}

.menu-step.passed span {
  visibility: hidden;
  position: relative;
}

.menu-step.passed span::after {
  visibility: visible;
  position: absolute;
  top: 3px;
  left: 12px;
  content: url(../../media/images/check.png);
  width: 20px;
  height: 20px;
}

.footer-menu-lista-apri {
  font-weight: 500;
  margin-top: 3px;
}

.footer-menu-lista-apri.hide {
  display: none;
}

.footer-menu-lista-chiudi {
  display: none;
  font-weight: 500;
  margin-top: 3px;
}

.footer-menu-lista-chiudi.show {
  display: block;
}

.alert {
  position: relative;
  padding: 1rem 1rem;
  margin-bottom: 1rem;
  border: 1px solid #5d7083;
  padding-left: 4em;
  background-color: rgba(0, 0, 0, 0);
  border-radius: 4px;
  color: #1a1a1a;
}

.alert-warning {
  /*background-image: none;*/
  /*padding: 0 0 0.1rem 1rem;*/
  /*border: 1px none;*/
  /*border-left: 2px solid var(--bs-warning);*/
  margin-top: 20px;
  /*border-color: #995c00;*/
  /*border: 2px solid #995c00;*/
  border-color: var(--bs-warning);
  border: 2px solid var(--bs-warning);
  padding: 1.7rem;
  border-radius: 12px;
}

.alert-warning p,
.alert-warning a {
  font-size: 16px !important;
}

.alert-warning .alert-title {
  font-size: 1rem;
  text-transform: uppercase;
  margin-right: 2.222rem;
  letter-spacing: .06rem;
  margin-bottom: 1.556rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--bs-warning);
}

.alert-warning .alert-title .icon {
  fill: var(--bs-warning);
  margin-right: .444rem;
}

.alert-warning p {
  margin-bottom: 2px;
}

.alert-warning ul {
  padding: 0 0 0 16px;
  margin: 8px 0;
}

.alert-warning li {
  list-style: square;
  color: var(--bs-warning);
}

.alert-warning li a {
  text-decoration: none;
  color: var(--bs-warning);
}

.alert-danger {
  background-image: none;
  padding: 0 0 0.1rem 1rem;
  border: 1px none;
  border-left: 2px solid var(--bs-danger);
  margin-top: 20px;
  margin-bottom: 20px;
}

.alert-danger .alert-title {
  font-size: 1rem;
  text-transform: uppercase;
  margin-right: 2.222rem;
  letter-spacing: .06rem;
  margin-bottom: 1.556rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--bs-danger);
}

.alert-danger .alert-title .icon {
  fill: var(--bs-danger);
  margin-right: .444rem;
}

.alert-danger p {
  margin-bottom: 2px;
}

.alert-danger ul {
  padding: 0 0 0 16px;
  margin: 8px 0;
}

.alert-danger li {
  list-style: square;
  color: var(--bs-danger);
}

.alert-danger li a {
  text-decoration: none;
  color: var(--bs-danger);
}

label.required {
  color: var(--bs-warning) !important;
}

.contact-list {
  list-style: none;
}

.modal .modal-dialog .modal-content .modal-body p:not(.cmp-upload__info) {
  /*font-weight: 300;*/
}

.cmp-input__label.stuck-label {
  /*transform: translateY(-75%);*/
  font-size: .777rem;
  color: #1a1a1a;
}

.stuck-container label.active {
  transform: unset !important;
}

.cmp-input.cmp-spaced .clean-input {
  top: 30px;
}

.cmp-steps-rating__body {
  margin-top: 35px;
}

.selectSection.no_bold .title-medium {
  font-weight: normal !important;
}

.selectSection.force_color .title-medium {
  font-weight: 700 !important;
}

input[type="date"].required,
input[type="datetime-local"].required,
input[type="email"].required,
input[type="number"].required,
input[type="password"].required,
input[type="search"].required,
input[type="tel"].required,
input[type="text"].required,
input[type="time"].required,
input[type="url"].required,
textarea.required,
select.required,
.form-check [type="checkbox"]+label.required {
  border: 1px solid var(--bs-warning) !important;
}

p.required,
h2.required,
h4.required,
h5.required,
h6.required {
  color: var(--bs-warning);
}

.page-servizi .enabled .card .card-body .icon {
  fill: var(--bs-primary);
}

.page-categorie-servizi .card {
  box-shadow: 3px 3px 3px #cdcdcd;
}

.page-categorie-servizi .card .card-body {
  padding: 24px 24px 48px 24px;
}

.page-categorie-servizi .card .card-body .card-text {
  font-family: inherit;
}

.page-categorie-servizi .card a.read-more {
  bottom: 24px;
  right: 32px;
}

.page-servizi-detail .card.card-big .flag-icon {
  margin-left: 32px;
}

.page-servizi-detail .card.card-big .etichetta {
  right: 32px;
}

.page-servizi-detail .card.card-big .card-body {
  padding: 32px 32px 48px 32px;
}

.page-servizi-detail .card a.read-more {
  bottom: 24px;
  right: 32px;
}

.page-servizio-scelta .card {
  box-shadow: 3px 3px 3px #cdcdcd;
}

.page-servizio-scelta .card .card-body {
  padding: 24px 24px 48px 24px;
}

.page-servizio-scelta .card .card-body .card-title.h5 {
  color: var(--bs-primary) !important;
  text-transform: uppercase;
}

.page-servizio-scelta .card .card-body .text-primary {
  color: var(--bs-primary) !important;
  font-weight: bold;
}

.page-servizio-scelta .card .card-body .card-text {
  font-family: inherit;
}

.page-servizio-scelta .card a.read-more {
  bottom: 24px;
  right: 32px;
}

.title-istanze {
  color: var(--bs-primary);
  font-weight: 700;
  margin-bottom: 10px;
}

.tag-categorie a {
  align-items: center;
  background: #fcfdff;
  border: 1px solid #dfe4f2;
  border-radius: 12px;
  display: inline-flex;
  height: 24px;
  justify-content: space-evenly;
  min-width: 100px;
  padding: 0 16px 2px 8px;
  transition: all .05s;
  background-color: transparent;
  border-color: #06c;
  color: #06c;
  margin: 4px auto;
  padding-right: 8px;
  text-decoration: none;
  margin-right: 10px;
  font-size: 0.8rem !important;

}

.tag-categorie {
  margin-bottom: 0 !important;
}

.tag-categorie a:hover {
  text-decoration: underline;
  color: white !important;
  background-color: #06c;
}

.container-news-allegati-link .col-md-6 {
  margin-bottom: 20px !important;
}

.color-white {
  color: #fff !important;
}

.container_index_pagina {
  margin-bottom: 15px;
  padding-bottom: 5px;
  position: relative;
  padding-left: 0 !important;
  cursor: pointer;
}

.sidebar-single p a {


  font-size: 0.92rem;
}

.nascondi_item {
  opacity: 0;
  -webkit-transition: opacity 0.5s ease-in-out;
  -moz-transition: opacity 0.5s ease-in-out;
  -ms-transition: opacity 0.5s ease-in-out;
  -o-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
  display: none;
}

.container_index_pagina h3:after {
  content: '';
  position: absolute;

  top: 5px;
  right: 2px;
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #000;
  clear: both;
}

.container_index_pagina.hide_childs_sidemenu h3:after {
  border-bottom: 0 !important;
  border-top: 10px solid #000 !important;
}

.sidebar-single p {
  margin-bottom: 0px !important;
}

.sidebar-single p a:hover {
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 1rem;
}

.page-node-typepage #it-region-sidebar-first {
  overflow-x: hidden;
}

.it-header-center-wrapper .it-header-center-content-wrapper .it-brand-wrapper a .icon {
  width: unset !important;
}

.latest_update_date {
  margin-top: 35px !important;
}

.latest_update_date h5 {
  font-size: 1.15rem !important;
}

.it-page-title__wrapper h1.page-title {
  font-size: 1.4rem !important;
}

.calendar-vertical .calendar-date .calendar-date-day__month {
  text-transform: uppercase;
}

.calendar-vertical .calendar-date .calendar-date-description .calendar-date-description-content:before {
  background: linear-gradient(#0000, var(--bs-primary)) top/100% 800%;
}

.filter_calendario_home {
  text-align: right;
  margin-bottom: 30px !important;
}

.filter_calendario_home a {
  margin: 0 3px !important;
}

.align-center {
  text-align: center !important;
}

.justy-center {
  justify-content: center !important;
}

.cmp-tag__tag {
  font-size: .875rem;
  font-weight: 600;
  color: #008758;
  padding: 0 0.75rem;
  border: 1px solid #008758;
  text-decoration: none;
  border-radius: 50px;
}

.error-tag__tag {
  font-size: .875rem;
  font-weight: 600;
  color: #FF0000;
  padding: 0 0.75rem;
  border: 1px solid #FF0000;
  text-decoration: none;
  border-radius: 50px;
}

.bg-grigio {
  background-color: #eceff1 !important;
}

.navbar .navbar-collapsable .navbar-nav li a.nav-link.active.focus--mouse {
  background: transparent;
  border-left: 0;
  border-color: #fff !important;
}

#it-region-footer-first .field--name-body a,
#it-region-footer-second .field--name-body a,
#it-region-footer-third .field--name-body a,
#it-region-footer-fourth .field--name-body a {
  color: white !important;
  text-decoration: none;
}

#it-region-footer-first .field--name-body a:hover,
#it-region-footer-second .field--name-body a:hover,
#it-region-footer-third .field--name-body a:hover,
#it-region-footer-fourth .field--name-body a:hover {
  text-decoration: underline !important;
}

.it-footer-main h2 {
  font-size: 1.12em !important;
}

#it-region-footer-first,
#it-region-footer-second,
#it-region-footer-third,
#it-region-footer-fourth {
  word-break: break-all !important;
}

#it-region-footer-first h2,
#it-region-footer-second h2,
#it-region-footer-third h2,
#it-region-footer-four h2 {
  border-bottom: 1px solid white;
  padding-bottom: 5px;
}

#it-region-footer-eight svg {
  fill: #ffffff;
  width: 20px;
  height: 20px;
}

#it-region-footer-eight a:hover svg {
  fill: #999999;
}

.it-footer-small-prints ul.it-footer-small-prints-list {
  padding: 0.5rem 1rem !important;
}

body .contextual-links .quickedit a {
  color: black !important;
}

#it-block-gtranslate {
  display: none !important;
}

#it-block-sceltalinguacustom {
  margin-right: 15px !important;
}

.it-footer ul {
  padding: 0 !important;
}

.it-footer li {
  list-style: none !important;
}

.it-footer a {
  color: white;
  text-decoration: none;
}

.it-footer a:hover {
  text-decoration: underline;
}

.notification {

  z-index: 9999;
}

.region.notification.show {
  display: block;
}

.alert.show {
  padding-left: 0 !important;
  overflow: hidden;
}

.alert.show {
  padding-top: 65px;
}

.col-tax-list a {
  text-decoration: none;

}

.col-tax-list a:hover {
  text-decoration: underline !important;
}

.text_resized {
  font-size: 1rem !important;
}

.title_resized {
  font-size: 0.95rem !important;
}

.it-footer-small-prints-list .list-inline-item a:hover {
  text-decoration: underline !important;
}

.it-local-tasks_wrapper.mb-5 {
  margin-bottom: 15px !important;
}

.container.main-container {
  padding-bottom: 15px !important;
}

.background_image {
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 80px;
  margin-top: 3px;
  margin-right: 2px;
}

.col-md-8.container-content-block h5 {
  font-weight: 400 !important;
}

.text_bold {
  font-weight: bold !important;
}

body {
  max-width: 100%;
  overflow-x: hidden;
}

#it-region-home-second-row-full-width,
#it-region-home-first-row-full-width {

  overflow-x: hidden !important;
}

.border-bottom-white {
  border-bottom: 1px solid white !important;
}

.cursor_pointer {
  cursor: pointer !important;
}

.descrizione_menu_block {
  font-size: 0.8rem !important;
  font-weight: normal;
  margin-top: 7px;
}

.search_pages_menu a {
  text-decoration: none;
}

.search_pages_menu a:hover {
  text-decoration: underline !important;
}

.search_pages_menu h5 {
  font-size: 1.1rem;
  font-weight: 500;
}

.search_pages_menu p {
  margin-bottom: 6.5px !important;
  padding-left: 5px !important;
}

.search_pages_menu p>a {
  color: #0066cc !important;
}

.link_classic {
  text-decoration: none;
}

.link_classic:hover {
  text-decoration: underline !important;
}

.container_ulteriori_info {
  margin-top: 25px !important;
}

.btn.btn-primary .icon {
  fill: #fff;
}

.body-compilazione-dati .cmp-card .card .card-body {
  background-color: #FFFFFF;
  padding: 20px;
}

.body-compilazione-dati .cmp-card .sub_card .card-body {
  background-color: #fafafa;
}

.body-compilazione-dati .cmp-card .sub_card{
  overflow: auto;
}

ul.card_rb {
  list-style: none;
}

ul.card_rb input {
  margin-right: 10px;
}

.body-riepilogo p {
  margin-bottom: 3px;
}

.body-riepilogo .cmp-card {
  background-color: #ebeef0;
  padding: 20px;
  border-radius: 20px;
}

.body-riepilogo .cmp-card .card {
  background-color: transparent;
}

.body-riepilogo .cmp-card .card .card-body {
  background-color: #FFFFFF;
  padding: 20px;
}

.stepper {
  margin-top: 16px;
  margin-bottom: 24px;
}

.stepper .step {
  height: 96px;
}

.stepper .step .date-step {
  color: var(--bs-primary);
  font-family: "Roboto Mono", monospace;
  font-weight: 500;
  text-align: center;
  width: 14%;
  border-right: 1px solid var(--bs-primary);
  float: left;
  height: 100%;
  line-height: 1.2;
  position: relative;
  padding-right: 10px;
}

.step .date-step .date-step-giorno {
  font-size: 2.222em;
}

.step .date-step .date-step-mese {
  font-size: .889em;
  font-weight: 500;
  text-transform: uppercase;
}

.step .date-step .pallino {
  width: 9px;
  height: 9px;
  position: absolute;
  top: 35px;
  right: -5px;
  background-color: var(--bs-primary);
  border-radius: 50%;
}

.stepper .step .testo-step {
  width: 85%;
  float: right;
  height: 100%;
  padding-left: 20px;
  font-weight: 600;
}

#modalTimeline .calendar-date-description-content {
  font-size: 12px;
  color: var(--bs-body-color);
}

.text-allegati-xsmall {
  font-size: 0.9em;
  font-weight: 600;
  color: var(--bs-primary);
}

.text-allegati-xsmall a {
  text-decoration: none;
  color: var(--bs-body-color);
}

.text-xsmall {
  font-size: 0.7em;
  font-weight: 500;
  padding-top: 4px;
  margin-bottom: 0px;
}

.modal .modal-dialog .modal-content .modal-body p.text-xsmall {
  font-size: 0.7em;
  font-weight: 500;
  padding-top: 4px;
  margin-bottom: 0px;
  line-height: 1.2em;
}

.text-xbig {
  font-size: 3.7em;
  margin-bottom: 0px;
}

.thumb-view {
  display: inline;
  float: left;
  margin-right: 10px;
  margin-bottom: 10px;
}

.is-bold {
  font-weight: bold !important;
}

a.pulsante_leggi_dipiu {
  font-size: 0.8rem !important;
  font-weight: bold;
  text-decoration: none;
  margin-bottom: 5px;
  text-align: right;
  width: 100%;
  display: inline-block;
}

.pulsante_leggi_dipiu:hover {
  text-decoration: underline !important;
}

.form-check.form-check-inline.stuck-container {
  margin-top: -18px;
}

.it-header-wrapper .it-nav-wrapper .it-header-navbar-wrapper nav {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.titillium.hero-text {
  color: #000 !important;
}

.it-header-wrapper {
  margin-bottom: 0px;
}

.loghi_progetto_img a {
  text-decoration: none !important;
}

.loghi_progetto_img {
  padding: 5px !important;
}

.it-footer-small-prints-list .list-inline-item {
  padding: 0 !important;
}

.logo_progetto_1 a img {
  height: 40px;
  padding-right: 10px;
}

.logo_progetto_2 a img {
  height: 40px;
  padding-right: 10px;
}

.logo_progetto_3 a img {
  height: 40px;
}

.page-servizi .card {
  min-height: 280px;
}

.page-servizi .card .card-title a {
  text-decoration: none;
}

.page-servizi .card .card-title a:hover {
  text-decoration: underline;
}

.page-servizi .card .card-body {
  border: 1px solid #000;
  border-radius: 10px;
  border-left: 7px solid var(--bs-primary);
}

.page-servizi .disabled .card .card-body {
  border: 1px solid #000;
  border-radius: 10px;
  border-left: 7px solid #cdcdcd;
}

.page-servizi .card::after {
  margin-top: 20px;
}

.page-servizi .card .card-body .icon {
  float: left;
  margin-right: 3px;
  margin-top: -3px;
}

.page-servizi .card .card-body .read-more-news-list .icon {
  float: right;
  fill: var(--bs-primary);
}

.title-small-normal {
  font-weight: normal;
  font-size: 1.1em;
}

.title-small-semi-bold {
  font-weight: 800;
  font-size: 1.1em;
}

.date-xsmall {
  font-size: 0.9em;
}

.navbar-custom {
  width: 100%;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper .accordion .accordion-header .accordion-button {
  font-size: 1rem;
  padding-left: 0px !important;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper ul li a.active {
  border-left: 1px none;
  padding: 0px;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper ul li a span {
  font-weight: normal;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper ul li a.active span {
  font-weight: 600;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper ul li:not(:last-child) {
  margin-bottom: 0px;
  margin-top: 0px;
}

.cmp-navscroll .navbar.it-navscroll-wrapper .link-list-wrapper ul li+li {
  margin-top: 0px;
}

.ui-dialog-titlebar {
  display: none;
}

svg.radial-progress {
  height: auto;
  max-width: 136px;
  padding: 1em;
  transform: rotate(-90deg);
  width: 100%;
}

svg.radial-progress circle {
  fill: rgba(0, 0, 0, 0);
  stroke: #fff;
  stroke-dashoffset: 219.91148575129;

  stroke-width: 10;
}

svg.radial-progress circle.incomplete {
  opacity: 0.25;
}

svg.radial-progress circle.complete {
  stroke-dasharray: 219.91148575129;

}

svg.radial-progress text {
  font: 400 1em/1 'Oswald', sans-serif;
  text-anchor: middle;
}

svg.radial-progress.draft circle {
  stroke: #cdcdcd;
}

svg.radial-progress.sent circle {
  stroke: #202986;
}

svg.radial-progress.working circle {
  stroke: #e88a1a;
}

svg.radial-progress.all_prenotazioni circle {
  stroke: #6495ED;
}

svg.radial-progress.integration circle {
  stroke: #c53ed9;
}

svg.radial-progress.pending circle {
  stroke: #dc6601;
}

svg.radial-progress.accepted circle {
  stroke: #4e7e5b;
}

svg.radial-progress.refused circle {
  stroke: #ef0303;
}

.after-section {
  margin-bottom: 40px;
  padding-bottom: 20px;
  border-bottom: 1px solid #cdcdcd;
}

.after-section-small {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #cdcdcd;
}

.before-section-small {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #cdcdcd;
}

.form-check [type="checkbox"],
.form-check [type="radio"] {
  position: relative;
}

.rating-box .feed_title,
#valutazione_positiva .feed_title,
#valutazione_negativa .feed_title {
  text-decoration: none;
  font-weight: bold;
}

.rating-box ul {
  margin: 0;
  padding: 0;
}

.rating-box li {
  cursor: pointer;
  list-style-type: none;
  display: inline-block;
  color: #F0F0F0;
  text-shadow: 0 0 1px #666666;
  font-size: 40px;
}

.rating-box .highlight,
.rating-box .selected {
  color: #F4B30A;
  text-shadow: 0 0 1px #F48F0A;
}

.cmp-card-latest-messages .rating-box li {
  cursor: default;
  list-style-type: none;
  display: inline-block;
  color: #F0F0F0;
  text-shadow: 0 0 1px #666666;
  font-size: 26px;
  line-height: 1em;
}

.cmp-card-latest-messages .rating-box .highlight,
.cmp-card-latest-messages .rating-box .selected {
  color: #F4B30A;
  text-shadow: 0 0 1px #F48F0A;
}

.cmp-nav-steps .btn:not(:first-child) {
  width: auto;
}

table .rating-box li {
  font-size: 18px;
}

.rating-box #loader-icon {
  display: none;
  vertical-align: top;
}

.rating-box #image-size {
  width: 30px;
}

.box-legenda {
  width: 98%;
  border: 1px solid #cdcdcd;
  margin: 0 auto;
  border-radius: 10px;
  padding: 10px;
}

.box-legenda .title-xsmall {
  color: var(--bs-primary);
  font-weight: bold;
  font-size: 16px;
  border-bottom: 1px solid #cdcdcd;
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.box-legenda p {
  margin: 12px 0 0;
  display: block;
  text-transform: uppercase;
  font-size: 11px;
}

.sticky-top .box-legenda .title-xsmall {
  color: var(--bs-primary);
  font-weight: bold;
  font-size: 16px;
  border-bottom: 1px solid #cdcdcd;
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.sticky-top .box-legenda p {
  margin: 5px 0 0;
  display: block;
  text-transform: uppercase;
  font-size: 15px;
  color: #333;
}

.box-cronologia {
  width: 98%;
  border: 1px solid #cdcdcd;
  margin: 0 auto;
  border-radius: 10px;
  padding: 10px;
}

.box-cronologia .title-xsmall {
  color: var(--bs-primary);
  font-weight: bold;
  font-size: 16px;
  border-bottom: 1px solid #cdcdcd;
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.box-cronologia p {
  margin: 12px 0 0;
  display: block;
  text-transform: uppercase;
  font-size: 11px;
}

.sticky-top .box-cronologia .title-xsmall {
  color: var(--bs-primary);
  font-weight: bold;
  font-size: 16px;
  border-bottom: 1px solid #cdcdcd;
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.sticky-top .box-cronologia p {
  margin: 5px 0 0;
  display: block;
  text-transform: uppercase;
  font-size: 11px;
  color: #333;
}

.pagina-title {
  font-weight: 700;
  margin-bottom: 6px;
}

.title-dettaglio-servizio {
  font-weight: 400;
  font-size: 1.333rem;
  line-height: 1.2;
  color: #19191a;
  font-family: Titillium Web, Geneva, Tahoma, sans-serif;
}

.body-messaggi p {
  font-size: 16px;
}

.fixed-action-I {
  width: 118px;
}

.fixed-action-II {
  width: 200px;
}

.bacheca-fixed-action-II {
  width: 156px;
}

.fixed-action-III {
  width: 74px;
}

.fixed-action-messaggi {
  width: 140px;
}

.required-right,
.required-right:focus {
  border: 1px solid var(--bs-warning) !important;
  border-left: 0 !important;
}

.required-left {
  border: 1px solid var(--bs-warning) !important;
  border-right: 0 !important;
}

.it-footer-main .it-brand-wrapper a .icon {
  height: 90px;
  width: unset;
}

.spinner_small {
  margin-top: 25px;
}

.spinner_small .progress-spinner {
  width: 30px;
  height: 30px;
  margin: 0 auto;

}

.calendar-date.not-completed .calendar-date-day:before,
.calendar-date.not-completed .calendar-date-day:after {
  background-color: gray !important;
}

.calendar-date.not-completed .calendar-date-description-content h4 {
  color: gray;
}

.address_result_index {
  border: 1px solid black;
  cursor: pointer;
  padding: 5px;
}

#segnalazione_luogo~.clean-input {
  display: none !important;
}

#map.nascondi_mappa {
  opacity: 0;
  position: absolute !important;
  z-index: -1;
}

.btn.btn-auto.btn-outline-secondarys.me-1 {
  border: 1px solid #CDCDCD;
  padding: 4px 4px 4px 4px;
  box-shadow: 2px 2px 3px #666;
  margin-right: 10px !important;
}

.btn-outline-secondarys:hover,
.btn-outline-secondarys:focus,
.btn-outline-secondarys:active {
  background: #e5e5e5;
  outline: none;
  -webkit-box-shadow: inset 0px 0px 5px #c1c1c1;
  -moz-box-shadow: inset 0px 0px 5px #c1c1c1;
  box-shadow: inset 0px 0px 5px #c1c1c1;

}

@media (min-width: 992px) {
  .it-header-navbar-wrapper {
    background: var(--bs-primary);
  }

  .it-header-slim-wrapper .it-header-slim-wrapper-content {
    padding: 0;
  }

  .it-header-center-wrapper .it-header-center-content-wrapper {
    padding-left: 0;
  }

  .navbar .navbar-collapsable .navbar-nav li a.nav-link {
    padding: 13px 24px;
  }

  .navbar .navbar-collapsable .navbar-nav li:first-child a.nav-link {
    padding: 13px 24px 13px 0;
  }

  .navbar.it-navscroll-wrapper .link-list-wrapper ul li a {
    padding-right: 0px;
  }

  .steppers .steppers-header li {
    border: 0px none;
  }

  .steppers .steppers-header li:nth-last-child(1) {
    border-right: 0px none;
  }


  .body-riepilogo .card,
  .body-compilazione-dati .card,
  .body-messaggi .card,
  #latest-posts .card,
  #be_dichiarazioni .card,
  #aa_dichiarazioni .card,
  #zt_dichiarazioni .card,
  #pi_dichiarazioni .card,
  #dc_dichiarazioni .card,
  #ms_dichiarazioni .card,
  #ts_dichiarazioni .card,
  #pc_dichiarazione .card,
  #pm_dichiarazioni .card,
  .body-dichiarazioni .card {
    min-height: 40px;
  }

  #latest-activities .card,
  #attivita .card {
    min-height: 220px;
    padding: 10px;
    margin-bottom: 30px;
  }

  .navbar.it-navscroll-wrapper .menu-wrapper {
    padding: 20px 0 24px;
  }
}

@media screen and (max-width: 1023px) {
  .avatar-initial span {
    font-size: 1.2rem;
  }

  #divButtons .order-lg-3 {
    margin-right: 27px;
  }
}

@media screen and (max-width: 991px) {
  .mr-lg-40 {
    margin-right: 0px;
  }

  .it-user-wrapper .btn {
    width: auto;
  }

  .it-header-wrapper .it-nav-wrapper .it-brand-wrapper {
    padding-left: 0px;
  }

  .navbar.it-navscroll-wrapper .menu-wrapper {
    padding: 0px;
  }

  .cmp-nav-tab {
    /* border-top: 1px solid #cdcdcd; */
    /* border-bottom: 1px solid #cdcdcd; */
    padding: 10px 0;
    font-size: 14px;
  }

  .cmp-nav-tab div {
    min-height: 40px;
  }

  .menu-step {
    border-right: 1px none;
  }

  .menu-step.passed span::after {
    top: 3px;
    left: 5px;
  }

  .menu-step.active span {
    padding: 6px 5px 6px 10px;
  }

  .menu-step.future span {
    padding: 6px 5px 6px 10px;
  }

  .menu-servizi .active .icon {
    width: 20px;
    margin-top: -3px;
  }

  .page-servizi a.pulsante_leggi_dipiu {
    margin-bottom: 0px;
  }

  .page-servizi .card {
    min-height: 220px;
  }

  .form-check [type="checkbox"]+label,
  .form-check [type="radio"]+label {
    padding-bottom: 10px;
  }

  .badge {
    line-height: 1.8;
  }

  .btn-action.text-action {
    min-width: auto;
  }

  .btn-action.text-action span {
    display: none;
  }

  html body .dataTables_wrapper .dataTables_length,
  .dataTables_wrapper .dt-buttons {
    margin-bottom: 20px !important;
  }

  .order-mobile-1 {
    order: 1 !important;
  }

  .order-mobile-2 {
    order: 2 !important;
  }

}

@media screen and (min-width: 768px) {

  #it-region-footer-first,
  #it-region-footer-second,
  #it-region-footer-third {
    height: 100%;
  }

  #it-region-footer-first>nav,
  #it-region-footer-second>nav,
  #it-region-footer-third>nav {
    min-height: 50%;
  }

  .cmp-nav-steps {
    border-top: 0px none;
  }
}

@media screen and (max-width: 768px) {

  .text-center-mobile {
    text-align: center;
    margin-top: 5px;
  }

  .pl-min-mobile {
    padding-left: 15px !important;
  }

  .pd-titlehead-mobile {
    padding: 0 20px;
  }

  .container-md,
  .container-sm,
  .container {
    max-width: 760px;
  }

  h1,
  .h1 {
    font-size: 2rem;
  }

  h2,
  .h2 {
    font-size: 1.7rem;
  }

  .btn {
    width: auto;
  }

  .it-user-wrapper .btn {
    width: auto;
  }

  .after-section {
    margin-bottom: 20px;

  }

  .p-0-lr-mobile {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .mt-mobile-20 {
    margin-top: 20px;
  }

  .it-header-wrapper .it-nav-wrapper .it-brand-wrapper {
    padding-left: 20px;
    padding-right: 40px;
  }

  .search-box {
    right: -15px;
  }

  .container.main-container {
    padding: 15px !important;
  }

  .container_index_pagina {
    text-align: center !important;
  }

  .it-page-title__wrapper h1.page-title {
    padding-left: 10px;
  }

  .it-footer-small-prints-list .list-inline-item {
    padding-bottom: 0;
  }

  .hide-mobile-footer {
    display: none;
  }

  .loghi_progetto {
    padding-bottom: 25px;
  }

  .upload[type="file"]+label {
    width: 100%;
    max-width: 100%;
  }

  #am_pagamento .btn,
  #be_pagamento .btn,
  #ms_pagamento .btn,
  #dc_pagamento .btn {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  #divButtons .btn {
    width: calc(100% - 30px);
    margin-right: 15px;
    margin-bottom: 20px;
    margin-left: 15px;
  }

  #divButtons button {
    width: 100%;
    margin-right: 0px;
  }

  #divButtons button:first-child {
    margin-right: 0px;
  }

  .modal-footer .btn {
    width: 100%;
  }

  #divButtons a {
    float: left;
  }

  #divButtons .order-lg-3 {
    margin-right: 0px;
  }

  .stepper .step .date-step {
    width: 30%;
    padding-right: 10px;
  }

  .stepper .step .testo-step {
    width: 68%;
    padding-left: 4px;
  }

  .scheda-gestione {
    padding: 0px 4px;
  }

  #modalTimeline .stepper .step .date-step {
    width: 100%;
  }

  #modalTimeline .stepper .step .testo-step {
    width: 100%;
    margin-top: 10px;
  }

  .cmp-nav-tab .nav-tabs .nav-link .icon {
    width: 30px;
    height: 30px;
  }

  .modal .modal-dialog {
    /*margin: 20px;*/
  }

  form[name="frm_privacy"]>p.form-check {
    margin-top: 25px !important;
    margin-bottom: 15px !important;
  }

  .smaller_mobile_title {
    font-size: 1.2rem !important;
  }

}

.avatar-initial {
  min-width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  text-align: center;
}

div.dataTables_wrapper div.dataTables_length,
div.dataTables_wrapper div.dataTables_filter {
  margin-top: 0px;
  margin-bottom: 0px;
}

table.dataTable thead th {
  text-transform: uppercase;
  font-size: 13px;
}

table.dataTable>thead>tr>th,
table.dataTable>thead>tr>td {
  vertical-align: top;
}

table.dataTable thead>tr>th.sorting::after,
table.dataTable thead>tr>th.sorting_asc::after,
table.dataTable thead>tr>th.sorting_desc::after,
table.dataTable thead>tr>th.sorting_asc_disabled::after,
table.dataTable thead>tr>th.sorting_desc_disabled::after,
table.dataTable thead>tr>td.sorting::after,
table.dataTable thead>tr>td.sorting_asc::after,
table.dataTable thead>tr>td.sorting_desc::after,
table.dataTable thead>tr>td.sorting_asc_disabled::after,
table.dataTable thead>tr>td.sorting_desc_disabled::after {
  top: 25%;
}

.form-check [type="checkbox"]:focus+label,
.form-check [type="radio"]:focus+label,
.toggles label input[type="checkbox"]:focus+.lever,
:focus:not(.focus--mouse) {
  border-color: var(--bs-primary-light) !important;
  box-shadow: 0 0 0 0px transparent !important;
  outline: 0px solid transparent !important;
  outline-offset: 0px;
}

.form-check [type="checkbox"]:focus {
  outline: 1px solid black !important;
}

.yadcf-filter,
.yadcf-filter-date {
  padding: 3px 5px;
  height: 27px !important;
  background-color: #FFF;
  border: 1px solid #666;
  margin-left: 0px;
  margin-top: 12px;
  margin-bottom: 6px;
  width: 100%;
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}

.yadcf-filter-reset-button {
  padding: 3px 5px;
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
  height: 25px;
  line-height: 10px;
  font-family: var(--fa-style-family-classic);
  font-size: 9px;
  top: -5px;
  position: relative;
  border: 0px;
  background-color: #cdcdcd;
  color: #fff;
  right: 15px;
}

button.yadcf-filter-reset-button {
  background-color: #cdcdcd;
}

.inuse,
.ui-slider-range .inuse,
.yadcf-filter-range-number-slider .inuse {
  background: var(--bs-primary-light);
}

.yadcf-no-reset .yadcf-filter-wrapper {
  padding-right: 0;
}

.yadcf-no-reset .yadcf-filter-reset-button {
  display: none;
}

.yadcf-filter-wrapper {
  display: block;

  white-space: nowrap;
}

.yadcf-filter-wrapper .form-control,
.yadcf-filter-wrapper .select2-container,
.yadcf-filter-wrapper .select2-container.form-control,
.yadcf-filter-wrapper .yadcf-number-slider-filter-wrapper-inner {
  display: inline-block;

  width: 100%;
}

.yadcf-filter-wrapper .yadcf-filter-range-date {
  width: 100px;
}

.yadcf-filter-wrapper .yadcf-filter-range-number {
  width: 60px;
}

.yadcf-filter-wrapper-inner {
  display: inline-block;

  vertical-align: middle;
}

.yadcf-filter-range {
  display: inline-block;

  vertical-align: middle;
}

.yadcf-filter-range-date-seperator,
.yadcf-filter-range-number-seperator {
  display: inline-block;

  margin-left: 1px;

  vertical-align: middle;
}

.yadcf-filter-reset-button {

  display: inline-block;
  margin-right: -36px;
  margin-left: 1px;
  vertical-align: top;
  top: 13px;
  right: 19px;
}

#datatableStrutture .yadcf-filter-reset-button {
  display: inline-block;
  margin-right: -36px;
  margin-left: 1px;
  vertical-align: top;
  top: 0px;
  right: 0px;
}

.yadcf-filter-reset-button.btn {
  font-size: 11px;
  line-height: 20px;

  color: #d9d9d9;
}

.yadcf-filter-reset-button.btn:hover {
  color: #333;
}

.yadcf-range-stack .yadcf-filter-wrapper-inner {
  display: inline-block;

  vertical-align: top;
}

.yadcf-range-stack .yadcf-filter-range {
  display: block;
}

.yadcf-range-stack .yadcf-filter-range-date-seperator,
.yadcf-range-stack .yadcf-filter-range-number-seperator {
  display: none;
}

.clickable-tr,
.clickable-sub-tr,
.terclickable-tr {
  cursor: pointer;
}

.cmp-nav-tab .nav-tabs {
  overflow: inherit;
}

#section-content .nav-tabs {
  background-color: transparent;
  border-bottom: 0px none;
}

#section-content .nav-tabs .nav-link.active {
  background-color: #f5f7f8;
  border-color: var(--bs-primary);
  border-bottom-color: #f5f7f8;
  border-radius: 15px 15px 0 0;
}

#section-content .tab-content {
  border: 1px solid var(--bs-primary);
  margin-top: -1px;
  background-color: #f5f7f8;
  min-height: 630px;
  border-radius: 0px 24px 24px 24px;
}

.nav-tabs .nav-link.active {
  cursor: pointer;
}

.bg-label-info {
  background-color: #d7f5fc !important;
  color: #03c3ec !important;
}

.showDiv.collapsed:after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f078";
  padding-left: 5px;

}

.showDiv:not(.collapsed):after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f077";
  padding-left: 5px;
}

.steppers .steppers-header ul {
  display: block;
  width: 100%;
  padding: 0;
}

.status-prenotazione-2 {
  background-color: #5988C6;
  border-color: #5988C6;
}

.status-prenotazione-4 {
  background-color: #7CA086;
  border-color: #7CA086;
}

.status-prenotazione-5 {
  background-color: #B54747;
  border-color: #B54747;
}

.status-prenotazione-31 {
  background-color: #cf943c;
  border-color: #cf943c;
}

.status-prenotazione-42 {
  background-color: #7CA086;
  border-color: #7CA086;
}

.fc {
  font-size: 0.8rem !important;
}

.fc-unthemed th,
.fc-unthemed td,
.fc-unthemed thead,
.fc-unthemed tbody,
.fc-unthemed .fc-divider,
.fc-unthemed .fc-row,
.fc-unthemed .fc-content,
.fc-unthemed .fc-popover,
.fc-unthemed .fc-list-view,
.fc-unthemed .fc-list-heading td {
  border-color: #dcdcdc;
}

.fc-unthemed td.fc-today {
  background: #E1F4DC;
}

.fc-toolbar h2 {
  font-size: 1.35em;
  margin: 0;
  text-transform: uppercase;
}

.fc-button {
  padding: 0.2em 0.65em 0.4em;
}

.fc-button-primary {
  color: #fff;
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.fc-button-primary:not(:disabled):active,
.fc-button-primary:not(:disabled).fc-button-active {
  color: #fff;
  background-color: var(--btn-primary-hover);
  border-color: var(--btn-primary-hover);
}

.fc-button-primary:hover {
  color: #fff;
  background-color: var(--btn-primary-hover);
  border-color: var(--btn-primary-hover);
}

.fc-button-primary:disabled {
  color: #fff;
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.fc-today-button {
  padding: 0.25em 1em 0.5em;
}

.step-servizi-content {
  padding: 1.25rem 1rem 1.25rem 1.5rem;
  position: relative;
  z-index: 0;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .17);
  width: 100%;
  margin: 0 0 1.33rem 0;
  overflow: hidden;
}

.img-struttura {
  object-fit: cover;
  height: 250px;
  width: 100%;
  border-radius: 4px 4px 0 0;
}

.ps-dt-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between !important;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.ps-dt-length,
.ps-dt-buttons {
  display: flex;
  align-items: center;
}

.ps-dt-buttons,
.ps-dt-buttons .dt-buttons,
.ps-dt-buttons .btn-group {
  float: none !important;
  margin-left: 0 !important;
}

.ps-dt-buttons .dt-button:hover {
  background: #f3f6f9 !important;
  border-color: #b9c7d6 !important;
}

#datatableStrutture {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  font-size: 16px;
}

#datatableStrutture thead th {
  position: relative;
  vertical-align: top;
  text-align: left;
  white-space: normal;
  background: #f8fafc;
  color: #17324d;
  font-weight: 700;
  padding: 16px 14px 12px 14px;
  border-bottom: 2px solid #e3eaf2;
  font-size: 0.98rem;
}

#datatableStrutture thead th.sorting,
#datatableStrutture thead th.sorting_asc,
#datatableStrutture thead th.sorting_desc {
  padding-right: 28px;
}

#datatableStrutture thead th.sorting::before,
#datatableStrutture thead th.sorting_asc::before,
#datatableStrutture thead th.sorting_desc::before {
  top: 10px !important;
  right: 10px !important;
  transform: none !important;
  font-size: 0.72rem;
  color: #7b8a9a;
}

#datatableStrutture thead th.sorting::after,
#datatableStrutture thead th.sorting_asc::after,
#datatableStrutture thead th.sorting_desc::after {
  top: 18px !important;
  right: 10px !important;
  transform: none !important;
  font-size: 0.72rem;
  color: #7b8a9a;
}

#datatableStrutture thead th.sorting_disabled::before,
#datatableStrutture thead th.sorting_disabled::after {
  display: none !important;
}

#datatableStrutture tbody td {
  padding: 14px 12px;
  vertical-align: middle;
  border-bottom: 1px solid #eef2f6;
  color: #334155;
  background: #fff;
}

#datatableStrutture tbody tr:hover td {
  background: #fbfcfe;
}

#datatableStrutture tbody td:nth-child(3) {
  font-weight: 600;
  color: #17324d;
}

#datatableStrutture img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #e7edf3;
}

#datatableStrutture tbody td.ps-td-dettaglio {
  text-align: center;
  vertical-align: middle;
}

#datatableStrutture .ps-btn-dettaglio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 112px;
  height: 40px;
  padding: 0 14px;
  border-radius: 4px;
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  font-weight: 600;
  text-decoration: none;
}

#datatableStrutture .ps-btn-dettaglio:hover {
  background-color: #255a31;
  border-color: #255a31;
}

#datatableStrutture .ps-btn-dettaglio-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

#datatableStrutture .ps-btn-dettaglio-icon svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
}

#datatableStrutture .yadcf-filter-wrapper {
  display: flex !important;
  align-items: center;
  width: 100%;
  margin-top: 12px;
  clear: both;
}

#datatableStrutture .yadcf-filter-input-custom {
  width: 100% !important;
  min-width: 0;
  height: 38px !important;
  padding: 8px 12px !important;
  border: 1px solid #ccd6e2 !important;
  border-radius: 8px 0 0 8px !important;
  background: #ffffff !important;
  color: #334155 !important;
  font-size: 0.94rem !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  box-shadow: none !important;
}

#datatableStrutture .yadcf-filter-input-custom:focus {
  outline: none;
  border-color: var(--bs-primary) !important;
  box-shadow: 0 0 0 3px rgba(47, 111, 62, 0.12) !important;
}

#datatableStrutture .yadcf-filter-reset-button {
  width: 38px !important;
  height: 38px !important;
  margin: 0 !important;
  border: 1px solid #ccd6e2 !important;
  border-left: 0 !important;
  border-radius: 0 8px 8px 0 !important;
  background: #f8fafc !important;
  color: #64748b !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0.85rem !important;
  line-height: 1 !important;
  box-shadow: none !important;
  cursor: pointer;
  flex: 0 0 38px;
}

#datatableStrutture .yadcf-filter-reset-button:hover {
  background: #e9eef4 !important;
  color: #334155 !important;
}

#datatableStrutture td.dtr-control {
  cursor: pointer;
  width: 42px;
  text-align: center;
  vertical-align: middle;
}

#datatableStrutture.dtr-column>tbody>tr>td.dtr-control:before,
#datatableStrutture.dtr-column>tbody>tr>th.dtr-control:before {
  content: '\1F50D';
  background: #ecf4ee;
  color: var(--bs-primary);
  border: 1px solid #cfe0d3;
  box-shadow: none;
  width: 28px;
  height: 28px;
  line-height: 26px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 400;
}

#datatableStrutture.dtr-column>tbody>tr.parent>td.dtr-control:before,
#datatableStrutture.dtr-column>tbody>tr.parent>th.dtr-control:before {
  content: '\2212';
  background: var(--bs-primary);
  color: #fff;
  border-color: var(--bs-primary);
}

#datatableStrutture tbody td.child {
  background: #f8fafc;
  padding: 12px 14px;
}

.ps-mobile-details {
  display: grid;
  gap: 10px;
  padding: 6px 0;
}

.ps-mobile-detail-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ps-mobile-detail-label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #64748b;
}

.ps-mobile-detail-value {
  font-size: 0.95rem;
  color: #17324d;
}

div.dataTables_wrapper div.dataTables_info,
div.dt-container .dt-info {
  color: #475569;
  font-size: 0.95rem;
  padding-top: 14px;
}

div.dataTables_wrapper div.dataTables_paginate,
div.dt-container .dt-paging {
  padding-top: 10px;
}

div.dataTables_wrapper div.dataTables_paginate .paginate_button.current,
div.dt-container .dt-paging .dt-paging-button.current {
  background: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #fff !important;
  /* border-radius: 4px; */
  border-radius: 50%;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
  border-radius: 50%;
  border-color: transparent !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
  opacity: 0.5 !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
  width: 40px;
  height: 40px;
  padding: 0.5em 0 !important
}

@media (max-width: 768px) {
  .ps-dt-toolbar {
    flex-wrap: nowrap;
    justify-content: space-between !important;
    gap: 8px;
  }

  .ps-dt-length {
    flex: 1 1 auto;
  }

  .ps-dt-buttons {
    flex: 0 0 auto;
  }

  .ps-mobile-search-wrapper {
    display: block;
    margin-bottom: 14px;
  }

  #datatableStrutture .yadcf-filter-wrapper {
    display: none !important;
  }

  #datatableStrutture thead th:nth-child(2),
  #datatableStrutture tbody td:nth-child(2),
  #datatableStrutture thead th:nth-child(4),
  #datatableStrutture tbody td:nth-child(4) {
    display: none;
  }

  #datatableStrutture tbody td {
    padding: 12px 10px;
  }

  #datatableStrutture tbody td:nth-child(3) {
    font-size: 0.98rem;
  }

  #datatableStrutture .ps-btn-dettaglio {
    min-width: 42px;
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 4px;
    gap: 0;
  }

  #datatableStrutture .ps-btn-dettaglio-text {
    display: none;
  }

  #datatableStrutture .ps-btn-dettaglio-icon svg {
    width: 18px;
    height: 18px;
  }

  div.dt-container div.dt-layout-row,
  div.dataTables_wrapper div.dataTables_length,
  div.dataTables_wrapper div.dataTables_info,
  div.dataTables_wrapper div.dataTables_paginate {
    font-size: 0.92rem;
  }
}

.full-page {
  min-height: calc(100dvh - 342px);
}

.descrizione-preview {
  position: relative;
  overflow: hidden;
  transition: max-height 0.25s ease;
}

.descrizione-preview.collapsed {
  max-height: 120px;
}

.descrizione-preview.expanded {
  max-height: 1000px;
}

.btn-scopri {
  margin-top: 10px;
  padding: 0;
  border: 0;
  background: none;
  color: #2f8f2f;
  font-weight: 600;
  cursor: pointer;
}

.btn-scopri:hover {
  text-decoration: underline;
}

@media (min-width: 576px) {
  .step-servizi-content {
    padding: 1.11rem .89rem 1.11rem 1.33rem;
  }
}

.step-servizi-content::before {
  background: linear-gradient(#0000, var(--bs-primary)) top/100% 800%;
  content: "";
  width: .5rem;
  height: 120%;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  background-color: #f0f8f5;
}

@media (min-width: 576px) {
  .step-servizi-content::before {
    width: .44rem;
  }
}

.step-servizi-content h6 {
  text-transform: uppercase;
  font-size: 1.15em;
  font-weight: 600;
}

.step-servizi-content.active {
  color: var(--bs-primary);
}

.cmp-breadcrumbs .breadcrumb-container .breadcrumb .breadcrumb-item a:hover {
  color: var(--btn-primary-hover);
}

.cmp-rating .card-header {
  padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
}

.cmp-rating .card-body {
  padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
}

.modal-title {
  margin-bottom: 0;
  line-height: var(--bs-modal-title-line-height);
  text-transform: uppercase;
  font-weight: 600;
}

@media (min-width: 576px) {
  .cmp-card .card-header {
    margin-bottom: 0;
  }
}

a.fc-event {
  color: #fff !important;
}

a.fc-event:hover,
a.fc-event:active,
a.fc-event:focus {
  color: #666 !important;
}

.fc-daygrid-event-dot {
  display: none;
}

.fc-event-time {
  margin-left: 4px;
}

.text-blue {
  color: #0d6efd;
}

.descrizione-struttura {
  overflow: hidden;

  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;

  line-height: 1.5rem;
  max-height: calc(1.5rem * 5);
}

.descrizione-struttura p:last-child {
  margin-bottom: 0;
}

.card-rol-struttura:hover {
  box-shadow: 0px 3px 6px #00000029;
  cursor: pointer;
}

.card-rol-struttura {
  transition: 0.3s all ease-in-out;
}

.swiper-struttura-view {
  width: 100%;
}

.swiper-struttura-view .swiper-slide img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  border-radius: 6px;
}

.cmp-activity-card {
  border: 2px solid #d9dee3;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  background: #fff;
}

.cmp-activity-card.checked {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb), 0.25);
}

.cmp-activity-card .activity-card-banner {
  display: block;
  position: relative;
  height: 160px;
  background-size: cover;
  background-position: center;
  cursor: pointer;
}

.cmp-activity-card .activity-card-check {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--bs-primary);
  display: none;
  align-items: center;
  justify-content: center;
}

.cmp-activity-card.checked .activity-card-check {
  display: flex;
}

.cmp-activity-card .activity-card-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 12px;
  cursor: pointer;
  text-align: center;
}

.cmp-activity-card .activity-card-name {
  font-weight: 700;
  text-transform: uppercase;
  font-size: 16px;
}

.cmp-activity-card .activity-more-btn {
  background: none;
  border: none;
  font-weight: 700;
  font-size: 22px;
  line-height: 1;
  color: var(--bs-primary);
  padding: 2px 0 0;
}

.ps-struttura-dettaglio {
  color: #17324d;
}

.ps-struttura-dettaglio .card {
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0px 3px 6px #00000029 !important;
}

.ps-detail-hero-card {
  background: linear-gradient(180deg, #fbfdfb 0%, #ffffff 100%);
}

.ps-section-title-main {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.15;
  color: #17324d;
  margin-bottom: 0;
}

.ps-hero-description,
.ps-section-content {
  color: #4b5d70;
  font-size: 16px;
  line-height: 1.75;
}

.ps-section-title {
  display: inline-block;
  font-size: 1.3rem;
  font-weight: 700;
  color: #17324d;
  margin-bottom: 1rem;
  position: relative;
}

.ps-section-title::after,
.ps-mini-title::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: var(--bs-primary);
  margin-top: 8px;
}

.ps-mini-title {
  font-size: 1rem;
  font-weight: 700;
  color: #17324d;
  margin-bottom: 1rem;
  display: inline-block;
}

.ps-info-card {
  height: 100%;
  padding: 1rem 1rem 1.1rem;
  border: 1px solid #e7edf3;
  border-radius: 4px;
  background: #fcfdfd;
}

.ps-detail-list-clean {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ps-detail-list-clean li {
  display: flex;
  flex-direction: column;
  gap: 10px;
  line-height: 1.5;
  color: #334155;
  font-size: 16px;
}

.ps-list-dati-prenotazione li {
  flex-direction: row;

}

.ps-detail-label {
  font-size: 16px;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.ps-detail-list-clean a {
  color: #17324d;
  text-decoration: none;
  font-weight: 500;
}

.ps-detail-list-clean a:hover {
  color: var(--bs-primary);
  text-decoration: underline;
}

.ps-gallery-wrapper {
  width: 100%;
}

.ps-gallery-empty {
  min-height: 280px;
  border: 1px dashed #dbe5dd;
  border-radius: 14px;
  background: #f8faf8;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6b7c8e;
  text-align: center;
  padding: 1.25rem;
}

.ps-struttura-gallery-main {
  width: 100%;
  border-radius: 4px;
  overflow: hidden;
  background: #f3f5f7;
}

.ps-struttura-gallery-main .swiper-wrapper {
  height: unset !important;
}

.ps-gallery-main-image {
  display: block;
  width: 100%;
  height: 300px;
  object-fit: cover;
}

.ps-struttura-gallery-main .swiper-button-prev,
.ps-struttura-gallery-main .swiper-button-next {
  color: #fff;
}

.ps-struttura-gallery-thumbs .swiper-slide {
  height: 78px;
  opacity: 0.45;
  cursor: pointer;
  border-radius: 4px;
  overflow: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.ps-struttura-gallery-thumbs .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ps-struttura-gallery-thumbs .swiper-slide-thumb-active {
  opacity: 1;
  transform: translateY(-1px);
  box-shadow: 0 0 0 2px var(--bs-primary) inset;
}

.ps-attivita-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ps-attivita-badge {
  display: inline-flex;
  align-items: center;
  padding: 9px 14px;
  background: #eef5ef;
  color: var(--bs-primary);
  border: 1px solid #dcebdd;
  border-radius: 999px;
  font-weight: 600;
  font-size: 15px;
}

.ps-tariffe-table {
  color: #334155;
  font-size: 0.98rem;
}

.ps-tariffe-table thead th {
  color: #17324d;
  font-weight: 700;
  border-bottom: 1px solid #dbe4ec;
  background: #fbfcfd;
  padding-top: 14px;
  padding-bottom: 14px;
  font-size: 20px;
}

.ps-tariffe-table tbody td {
  padding-top: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #e8edf2;
  vertical-align: middle;
  font-size: 16px;
}

.ps-tariffe-table th.text-end,
.ps-tariffe-table td.text-end {
  text-align: right;
}

.ps-btn-indietro {
  border-radius: 14px;
  font-size: 16px;
}

.ps-btn-prenota {
  min-width: 230px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 14px;
  font-weight: 700;
  background-color: var(--bs-primary);
  font-size: 16px;
  border-color: var(--bs-primary);
}

.ps-btn-prenota:hover {
  background-color: #255a31;
  border-color: #255a31;
}

.ps-btn-prenota-icon {
  font-size: 1rem;
  line-height: 1;
}

.ps-btn-prenota-label-mobile {
  display: none;
}

.ps-btn-prenota-top {
  min-width: 220px;
}

.ps-topbar {
  border-bottom: 1px solid #e8edf2;
  padding-bottom: 1rem;
}

.ps-top-actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: end;
  gap: 12px;
}

.ps-quick-contacts {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.ps-quick-contact {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid #dce7dd;
  border-radius: 14px;
  background: #f8fbf8;
  color: #17324d;
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 600;
  height: 48px;
  width: 48px;
}

.ps-quick-contact:hover {
  color: var(--bs-primary);
  border-color: #bcd2bf;
  background: #f1f7f2;
  text-decoration: none;
}

.ps-detail-bottom-cta {
  display: flex;
  justify-content: center;
}

.ps-detail-subsection+.ps-detail-subsection {
  padding-top: 1rem;
  border-top: 1px solid #e8edf2;
}

.ps-detail-subtitle {
  font-size: 1rem;
  font-weight: 700;
  color: #17324d;
  margin-bottom: 0.85rem;
}

.ps-detail-subtitle+.ps-attivita-badges {
  margin-top: 0.25rem;
}

.ps-detail-main-row {
  align-items: stretch;
}

.ps-detail-copy {


  gap: 1.25rem;
  height: 100%;
}

.ps-detail-copy>.ps-section-content,
.ps-detail-copy>.ps-hero-description {
  margin-bottom: 0;
}

.ps-detail-copy .row.g-3 {
  margin-top: auto;
}

@media (max-width: 991px) {
  .ps-section-title-main {
    font-size: 1.8rem;
  }


  .cmp-activity-card .activity-card-banner {

    height: 120px;

  }

  .ps-list-dati-prenotazione li {
    flex-direction: column;

  }

  .ps-gallery-main-image {
    height: 280px;
  }

  .ps-top-actions {
    align-items: flex-start;
  }

  .ps-quick-contacts {
    justify-content: flex-start;
  }

  .ps-btn-prenota-top {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .ps-section-title-main {
    font-size: 1.55rem;
  }

  .ps-section-title {
    font-size: 1.15rem;
  }

  .ps-gallery-main-image {
    height: 220px;
  }

  .ps-struttura-gallery-thumbs .swiper-slide {
    height: 60px;
  }

  .ps-btn-prenota {
    width: 100%;
    min-width: 0;
  }

  .ps-top-actions {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .ps-quick-contacts {
    flex-direction: row;
    align-items: flex-start;
    justify-content: center;
    gap: 10px;
    flex: 0 0 auto;
  }

  .ps-btn-prenota-top {
    min-width: 0;
    width: auto;
    height: 48px;
    padding: 0 14px;
    border-radius: 4px;
    flex: 0 0 auto;
  }

  .ps-btn-prenota-icon {
    font-size: 0.95rem;
  }

  .ps-btn-prenota-label-full {
    display: none;
  }

  .ps-btn-prenota-label-mobile {
    display: inline;
    font-size: 0.92rem;
  }
}

#lista-strutture .card {
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0px 3px 6px #00000029 !important;
}

.breadcrumb-rol .breadcrumb-item a {
  text-decoration: underline !important;
}

.breadcrumb-rol .breadcrumb-item.active {
  font-weight: 600 !important;
}

.title-tipologia-struttura {
  position: relative;
  font-weight: 600;
  color: #17324d;
  display: inline-block;
}

.title-tipologia-struttura::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: var(--bs-primary);
  margin-top: 8px;
}

.subtitle-tipologia-struttura {
  position: relative;
  font-weight: 600;
  color: #17324d;
  margin-bottom: 20px !important;
  display: inline-block;
}

.subtitle-tipologia-struttura::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: var(--bs-primary);
  margin-top: 8px;
}

#accordionFasce .mese-item .accordion-button {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 600;
}

#accordionFasce .mese-item .accordion-button .mese-titolo {
  flex: 1;
}

#accordionFasce .mese-item .accordion-button .mese-badge {
  background: #e9ecef;
  color: #495057;
  font-size: 0.8rem;
  font-weight: 500;
  padding: 3px 10px;
  border-radius: 12px;
}

#accordionFasce .mese-item .accordion-button .mese-subtotale {
  font-size: 0.9rem;
  color: #198754;
  font-weight: 600;
  margin-right: 8px;
}

#accordionFasce .mese-item .accordion-button:not(.collapsed) {
  background-color: #f0f7f0;
  color: #198754;
}

#accordionFasce .mese-item+.mese-item {
  margin-top: 6px;
}

#accordionFasce .mese-item .accordion-button {
  padding: 10px;
}

.box-recap-prenotazione {
  padding: 10px;
  border-radius: 14px;
}

.card-horizontal-custom {
  border-radius: 4px;
  overflow: hidden;
  background-color: #ffffff;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card-horizontal-custom:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.08) !important;
}

.img-struttura-horizontal {
  width: 100%;
  height: 100%;
  min-height: 140px;
  max-height: 200px;
  object-fit: cover;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}

@media (max-width: 575.98px) {
  .img-struttura-horizontal {
    border-bottom-left-radius: 0;
    border-top-right-radius: 4px;
  }
}

.card-horizontal-clean {
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
  max-height: 200px;

  transition: transform 0.2s ease, box-shadow 0.2s ease;
  border: 1px solid #c5c7c9;
}

.card-horizontal-clean:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08) !important;
}

.img-horizontal-cover {
  width: 100%;
  height: 100%;
  max-height: 200px;
  object-fit: cover;
  display: block;
}

.swiper-activity-detail {
  max-width: 375px;
}

.clean-input {
  position: absolute;
  right: 40px;
  top: 8px;
}

.clean-input--alt {
  right: 17px;
  top: 40px;
  transform: translateY(-50%);
  color: red;
}

.summary-card__header {
  padding: 14px 20px;
  background: linear-gradient(90deg, #3fa13a 0%, #dcebd7 100%);
}

.summary-card__header h5 {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 14px;
  letter-spacing: .3px;
}

.summary-card__body {
  padding: 20px;
  background: #fff;
}

.summary-hero {
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid #d9dde3;
}

.summary-hero__title {
  font-size: 24px;
  font-weight: 700;
  color: #2f4858;
}

.summary-hero__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  color: #5f6b76;
  font-size: 16px;
}

.summary-label {
  font-weight: 500;
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 24px;
}

.summary-item {
  padding: 12px 0;
  border-bottom: 1px solid #eef1f4;
}

.summary-item--full {
  grid-column: 1 / -1;
}

.summary-item__label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 16px;
  font-weight: 600;
  color: #6c7a86;
  text-transform: uppercase;
}

.summary-item__value {
  font-size: 16px;
  font-weight: 600;
  color: #2f4858;
  word-break: break-word;
}

@media (max-width: 767px) {
  .summary-grid {
    grid-template-columns: 1fr;
  }

  .summary-card__body {
    padding: 16px;
  }

  .summary-hero__title {
    font-size: 20px;
  }
}

.summary-box {
  background: #fff;
  border: 1px solid #e7ebef;
  border-radius: 4px;
  padding: 16px 18px;
  margin-bottom: 16px;
  margin-top: 15px;
}

.summary-box__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #eef1f4;
  font-size: 15px;
  font-weight: 700;
  color: #2f4858;
}

.summary-box__title i {
  color: #4cae4f;
  width: 16px;
  text-align: center;
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 24px;
}

.summary-item {
  min-width: 0;
}

.summary-item__label {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 4px;
  font-size: 16px;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: .3px;
  color: #7b8794;
  font-weight: 700;
}

.summary-item__label i {
  width: 14px;
  text-align: center;
  color: #91a0ad;
}

.summary-item__value {
  font-size: 16px;
  line-height: 1.45;
  font-weight: 600;
  color: #2f4858;
  word-break: break-word;
}

@media (max-width: 767px) {
  .summary-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .summary-box {
    padding: 14px;
  }
}

#riepilogo_servizi_aggiuntivi .form-check {
  padding-left: 0;
  display: flex;
  justify-content: center;
}

#riepilogo_servizi_aggiuntivi .form-check-input.servizio-aggiuntivo-ckb {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

#riepilogo_servizi_aggiuntivi .form-check-label {
  margin-left: 0;
}

.ps-referente-item {
  border: 1px solid #dee2e6;
  border-radius: 4px;
  padding: 10px;
}

#map-struttura {
  width: 100%;
  height: 300px;
  border-radius: 10px;
  overflow: hidden;
}

#ricorrenza_totale_label {
  border-radius: 4px;
}

.steppers-menu-booking {
  position: relative !important;
  display: block !important;
  overflow: hidden !important;
  border: 1px solid var(--bs-primary) !important;
  border-radius: 18px !important;
  background-color: #fff;
  background-image: url(../../media/images/card-leaves-stepper.png) !important;
  background-repeat: no-repeat !important;
  background-position: right bottom !important;

  /* background-size: 80% auto!important; */
  background-size: cover !important;
  padding: 20px 18px 22px !important;
}

.steppers-title {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  margin: 0 0 20px 0;
  padding: 0;
  color: var(--bs-primary);
  font-size: 25px;
  line-height: 1.2;
  font-weight: 700;
}

.steppers-title .card-step__help {
  flex: 0 0 auto;
  margin: 0;
}

.steppers-menu-booking>ul::before,
.steppers-menu-booking .step-servizi-content::before {
  display: none !important;
  content: none !important;
}

.steppers-menu-booking .step-servizi-content {
  position: relative !important;
  z-index: 1;
  display: flex !important;
  align-items: center;
  width: 100% !important;
  min-height: 48px;

  margin: 0 !important;
  padding: 5px 0 5px 52px !important;

  border: 0 !important;
  border-radius: 0 !important;

  background: transparent !important;
  box-shadow: none !important;

  overflow: visible !important;
  text-align: start;
  color: #8a8a8a;
  font-size: 18px !important;
  line-height: 1.2;
  font-weight: 700 !important;
  text-transform: uppercase;
}

.steppers-menu-booking .step-servizi-content:not(:last-child)::after {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;

  left: 14px !important;
  top: calc(50% + 15px) !important;

  width: 2px !important;
  height: 18px !important;

  background-color: var(--bs-primary) !important;
}

.steppers-menu-booking .step-servizi-number {
  position: absolute !important;
  z-index: 2;

  left: 0;
  top: 50%;

  transform: translateY(-50%);

  display: flex !important;
  align-items: center;
  justify-content: center;

  width: 32px !important;
  height: 32px !important;

  margin: 0 !important;

  border: 2px solid #9b9b9b;
  border-radius: 50%;

  background-color: #fff;
  color: #8a8a8a;

  font-size: 15px;
  line-height: 1;
  font-weight: 700;

  box-sizing: border-box;
}

.steppers-menu-booking .step-servizi-content.active {
  color: var(--bs-primary) !important;
}

.steppers-menu-booking .step-servizi-content.active .step-servizi-number,
.steppers-menu-booking .step-servizi-number--active {
  border-color: var(--bs-primary);
  background-color: #fff;
  color: var(--bs-primary);
}

.steppers-menu-booking .step-servizi-content.confirmed {
  color: var(--bs-primary) !important;
}

.steppers-menu-booking .step-servizi-content.confirmed .step-servizi-number,
.steppers-menu-booking .step-servizi-number--confirmed {
  border-color: var(--bs-primary);
  background-color: var(--bs-primary);
  color: #fff;
}

.steppers-menu-booking .step-servizi-content:not(.active):not(.confirmed) {
  color: #8a8a8a !important;
}

.steppers-menu-booking .step-servizi-content.optional-pending {
  font-style: italic;
}

.steppers-menu-booking .step-servizi-content.optional-pending .step-servizi-number {
  border-style: dashed;
}

.steppers-menu-booking .step-servizi-content:not(.active):not(.confirmed) .step-servizi-number {
  border-color: #9b9b9b;
  background-color: #fff;
  color: #8a8a8a;
}

.steppers-menu-booking .step-servizi-content.cursor_pointer {
  cursor: pointer;
}

.steppers-menu-booking .step-servizi-content.cursor_pointer:hover {
  color: var(--bs-primary) !important;
}

.steppers-menu-booking .steppers-index {
  display: none !important;
}

@media (max-width: 991px) {

  .steppers-menu-booking {
    border-radius: 16px;
    padding: 18px 16px 20px;
  }

  .steppers-title {
    font-size: 1.25rem;
    margin-bottom: 18px;
  }

  .steppers-menu-booking .step-servizi-content {
    padding-left: 50px !important;
    font-size: 0.70rem;
  }
}

.steppers-menu-booking>ul.bread-element.d-none {
  display: none !important;
}

.steppers-menu-booking>ul.bread-element:not(.d-none) {
  display: block !important;
}

.steppers-menu-booking .step-servizi-content.active::after {
  display: none !important;
}

.steppers-menu-booking .step-servizi-content:not(:last-child)::after {
  display: block !important;
}

.steppers-menu-booking .step-servizi-content:nth-child(4)::after {
  display: none !important;
}

.steppers-menu-booking .step-servizi-content:nth-child(4):not(:has(+ .step-hidden))::after {
  display: block !important;
}

.steppers-menu-booking .step-servizi-content:not(.confirmed):not(.active):not(.step-error) {
  color: #8a8a8a !important;
}

.steppers-menu-booking .step-servizi-content:not(.confirmed):not(.active):not(.step-error) .step-servizi-number {
  border-color: #9b9b9b !important;
  background-color: #fff !important;
  color: #8a8a8a !important;
}

.steppers-menu-booking .step-servizi-content.step-error {
  color: #d32f2f !important;
}

.steppers-menu-booking .step-servizi-content.step-error .step-servizi-number {
  border-color: #d32f2f !important;
  background-color: #fff !important;
  color: #d32f2f !important;
}

.steppers-menu-booking .step-servizi-content.step-hidden {
  display: none !important;
}

.struttura_selezionata_box {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  background-image: url(../../media/images/bg-struttura-rol.png);
  background-position: center;
  background-size: cover;
  background-color: var(--bs-primary) !important;
}

/* .struttura_selezionata_box::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
            rgba(22, 128, 58, 0.95) 0%,
            rgba(22, 128, 58, 0.80) 30%,
            rgba(22, 128, 58, 0.35) 55%,
            rgba(22, 128, 58, 0) 75%);
    z-index: 0;
    pointer-events: none;
} */
.struttura_selezionata_box>* {
  position: relative;
  z-index: 1;
}

.struttura_selezionata_box>.card-header {
  margin-bottom: 0 !important;
}

.struttura_selezionata_box .struttura-gallery-container {
  width: 100%;
}

.struttura_selezionata_box .struttura-gallery-wrapper,
.struttura_selezionata_box .struttura-gallery-main,
.struttura_selezionata_box .struttura-gallery-main-single {
  width: 100%;
}

.struttura_selezionata_box .struttura-gallery-main {
  overflow: hidden;
}

.struttura_selezionata_box .struttura-gallery-image {
  display: block;

  width: 100% !important;
  height: 280px !important;

  object-fit: cover;

  margin: 0;
}

.struttura_selezionata_box .struttura-gallery-thumbs {
  width: 100%;
  height: 55px;
}

.struttura_selezionata_box .struttura-gallery-thumbs .swiper-slide {
  width: 75px;
  height: 55px;

  opacity: .65;

  cursor: pointer;
}

.struttura_selezionata_box .struttura-gallery-thumbs .swiper-slide-thumb-active {
  opacity: 1;
}

.struttura_selezionata_box .struttura-gallery-thumbs img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  border-radius: 5px;
}

.struttura_selezionata_box .struttura-gallery-main .swiper-button-prev,
.struttura_selezionata_box .struttura-gallery-main .swiper-button-next {
  color: #fff;
}

.struttura_selezionata_box .struttura-gallery-main .swiper-button-prev::after,
.struttura_selezionata_box .struttura-gallery-main .swiper-button-next::after {
  font-size: 26px;
}

.struttura_selezionata_box .struttura-info-container {
  display: flex;

  gap: 35px;

  margin-top: 25px;
}

.struttura_selezionata_box .struttura-info-dati {
  flex: 1;
}

.struttura_selezionata_box .struttura-info-dati h4 {
  margin: 0 0 4px;

  font-size: 22px;
  font-weight: 700;
  color: white;
  text-transform: uppercase;
}

.struttura_selezionata_box .struttura-info-dati p {
  color: white;
  font-size: 16px;
}

.struttura_selezionata_box .struttura-info-contatti {
  flex: 1;
}

.struttura_selezionata_box .struttura-contatto {
  display: flex;
  align-items: center;

  margin-bottom: 7px;

  font-size: 16px;
}

.struttura_selezionata_box .struttura-contatto:last-child {
  margin-bottom: 0;
}

.struttura_selezionata_box .struttura-contatto i {
  width: 20px;

  margin-right: 7px;

  text-align: center;
}

.struttura_selezionata_box .struttura-allegato {
  margin-top: 15px;
}

@media (max-width: 767px) {

  /* .struttura_selezionata_box>.struttura-content {
    padding: 16px !important;
  } */
  .struttura_selezionata_box>.struttura-content {
    padding: 0px !important;
  }

  .struttura_selezionata_box .struttura-gallery-image {
    height: 220px !important;
  }

  .struttura_selezionata_box .struttura-info-container {
    flex-direction: column;
    gap: 18px;
    padding: 15px;
  }

}

.struttura-selezionata-gallery {
  position: relative;
  z-index: 2;

  width: 100%;
}

.struttura-gallery-wrapper,
.struttura-gallery-main,
.struttura-gallery-main-single {
  width: 100%;
}

.struttura-gallery-main,
.struttura-gallery-main-single {
  overflow: hidden;
}

.struttura-gallery-image {
  display: block;

  width: 100% !important;
  height: 260px !important;

  object-fit: cover;

  margin: 0;
}

.struttura-gallery-main-single {
  border-radius: 0;
}

.struttura-gallery-main .swiper-slide {
  width: 100%;
}

.struttura-gallery-main .swiper-slide img {
  width: 100%;
}

.struttura-gallery-main .swiper-button-prev,
.struttura-gallery-main .swiper-button-next {
  color: #fff;
}

.struttura-gallery-main .swiper-button-prev::after,
.struttura-gallery-main .swiper-button-next::after {
  font-size: 26px;
}

.struttura-gallery-thumbs {
  width: 100%;
  height: 55px;
}

.struttura-gallery-thumbs .swiper-slide {
  width: 75px;
  height: 55px;
  opacity: .65;
  cursor: pointer;
}

.struttura-gallery-thumbs .swiper-slide-thumb-active {
  opacity: 1;
}

.struttura-gallery-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 5px;
}

.struttura-selezionata-info {
  position: relative;
  z-index: 2;

  display: flex;
  gap: 35px;

  margin-top: 25px;
}

.struttura-selezionata-dati {
  flex: 1;
}

.struttura-selezionata-dati h4 {
  margin: 0 0 3px;

  color: #fff;
  font-size: 21px;
  font-weight: 700;
  text-transform: uppercase;
}

.struttura-selezionata-dati p {
  margin: 0;

  color: #fff;
}

.struttura-selezionata-contatti {
  flex: 1;
}

.struttura-contatto {
  display: flex;
  align-items: center;

  margin-bottom: 7px;

  color: #fff;
  font-size: 16px;
}

.struttura-contatto:last-child {
  margin-bottom: 0;
}

.struttura-contatto i {
  width: 20px;
  margin-right: 6px;

  text-align: center;
}

.struttura-selezionata-allegato {
  position: relative;
  z-index: 2;

  margin-top: 15px;
}

.struttura-selezionata-allegato,
.struttura-selezionata-allegato a {
  color: #fff;
}

@media (max-width: 767px) {

  .struttura-selezionata-card {
    padding: 16px;
  }

  .struttura-selezionata-numero {
    font-size: 30px;
  }

  .struttura-selezionata-titolo {
    font-size: 21px;
  }

  .struttura-gallery-image {
    height: 220px !important;
  }

  .struttura-selezionata-info {
    flex-direction: column;
    gap: 18px;
  }

}

#steppers_menuDx #calendar_selection.step-hidden {
  display: none !important;
}

.struttura-scopri-wrapper {
  display: flex;
  justify-content: flex-end;
  width: 100%;
}

.struttura-scopri-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: white;
  font-size: 16px;
}

.struttura-scopri-btn:hover,
.struttura-scopri-btn:focus {
  color: white;
  border-color: transparent !important;
}

.struttura-contatti-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 50px;
  background: #e9e9e9;
  color: #555;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.struttura-detail-section {
  margin-bottom: 24px;
}

.struttura-detail-section p {
  font-size: 16px !important;
}

.struttura-detail-section:last-child {
  margin-bottom: 0;
}

.struttura-detail-section h6 {
  margin-bottom: 10px;
  font-weight: 700;
  font-size: 18px !important;
}

.struttura-detail-description {
  margin-bottom: 0;
  white-space: pre-line;
}

.struttura-detail-address {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.struttura-detail-contact {
  padding: 12px 0;
  border-bottom: 1px solid #eee;
}

.struttura-detail-contact:last-child {
  border-bottom: 0;
}

.struttura-detail-contact strong {
  display: block;
  margin-bottom: 7px;
}

.struttura-detail-contact-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 5px;
}

.struttura-detail-contact-row i,
.struttura-detail-address i {
  width: 18px;
  margin-top: 3px;
}

/*.attenzione_riepilogo_rol.callout.callout-highlight.warning {*/
.callout.callout-highlight.warning {
  border-color: #995c00;
  border: 2px solid #995c00;
  padding: 1.7rem;
  border-radius: 12px;
}

.attenzione_riepilogo_rol.callout.warning .callout-title .icon {
  fill: #995c00;
}

.attenzione_riepilogo_rol.callout.warning .callout-title span {
  border-color: #995c00;
  color: #995c00;
}

.attenzione_riepilogo_rol.callout.warning p {
  font-size: 15px;
}

.card-tipologia-struttura {
  position: relative;
  overflow: hidden;
  border: 1px solid #d9d9d9 !important;
  border-radius: 15px !important;
  background: #fff;
  box-shadow: none !important;
  transition: transform .2s ease, box-shadow .2s ease;
}

.card-tipologia-struttura:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, .08) !important;
}

.card-tipologia-image-wrap {
  height: 172px;
  overflow: visible;
}

.card-tipologia-image {
  display: block;
  width: 100%;
  height: 172px;
  object-fit: cover;
  border-radius: 15px 15px 0 0;
}

.card-tipologia-badge {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, 50%);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  padding: 5px 12px;
  border: 1px solid #e0e0e0;
  border-radius: 20px;
  background: #fff;
  color: var(--bs-primary);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
}

.card-tipologia-badge i {
  font-size: 11px;
  color: var(--bs-primary);
}

.card-tipologia-body {
  min-height: 185px;
  padding: 24px 18px 16px !important;
}

.card-tipologia-title {
  margin: 0 0 9px;
  color: #111;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.25;
}

.card-tipologia-description {
  display: -webkit-box;
  overflow: hidden;
  color: #6f6f6f;
  font-size: 16px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.card-tipologia-footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 14px;
}

.card-tipologia-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #2f8a4c !important;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none !important;
  white-space: nowrap;
}

.card-tipologia-link:hover {
  color: #236b3a !important;
  text-decoration: none !important;
}

.card-tipologia-link span {
  font-size: 17px;
  line-height: 1;
  transition: transform .15s ease;
}

.card-tipologia-link:hover span {
  transform: translateX(3px);
}

@media (max-width: 767.98px) {

  .card-tipologia-image-wrap,
  .card-tipologia-image {
    height: 190px;
  }

  .card-tipologia-body {
    min-height: 180px;
  }
}

.strutture-page {
  width: 100%;
}

.strutture-page .ps-section-title {
  margin: 0 0 20px !important;
  padding: 0 !important;
  border: 0 !important;
  display: inline-block;
  color: var(--bs-primary) !important;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
}

.strutture-page .ps-section-title::after {
  display: none !important;
}

.strutture-page .ps-category-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 365px;
  gap: 28px;
  align-items: start;
  margin-bottom: 48px;
}

.strutture-page .ps-category-intro-text {
  min-width: 0;
}

.strutture-page .ps-category-intro-text .ps-section-title {
  margin-top: 0 !important;
}

.strutture-page .ps-sommario-tipologia,
.strutture-page .ps-descrizione-tipologia {
  color: #334155;
  font-size: 18px;
  line-height: 1.5;
}

.strutture-page .ps-sommario-tipologia p:first-child,
.strutture-page .ps-descrizione-tipologia p:first-child {
  margin-top: 0;
}

.strutture-page .ps-sommario-tipologia p:last-child,
.strutture-page .ps-descrizione-tipologia p:last-child {
  margin-bottom: 0;
}

.strutture-page .ps-ideale-box {
  width: 365px;
  min-height: 347px;
  box-sizing: border-box;
  margin-top: -24px;
  padding: 62px 58px 45px;
  background-color: #349808;
  background-image: url('../../media/images/layer-regione-step-box.png');
  background-size: cover;
  background-position: center;
  border-radius: 38px;
  color: #fff;
}

.strutture-page .ps-ideale-box h3 {
  margin: 0 0 20px;
  color: #fff;
  font-size: 25px;
  line-height: 1.1;
  font-weight: 700;
}

.strutture-page .ps-ideale-box ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.strutture-page .ps-ideale-box li {
  position: relative;
  margin: 0;
  padding-left: 23px;
  color: #fff;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 600;
}

.strutture-page .ps-ideale-box li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #fff;
  font-size: 18px;
  font-weight: 800;
}

.strutture-page .ps-section-block {
  width: 100%;
}

.strutture-page .ps-dt-table-wrapper {
  width: 100%;
}

.strutture-page .ps-dt-toolbar {
  display: flex !important;
  width: 100%;
  align-items: center;
  justify-content: space-between !important;
  gap: 16px;
  margin-bottom: 20px;
}

.strutture-page .ps-dt-search {
  flex: 1 1 auto;
  min-width: 0;
}

.strutture-page .ps-global-search-wrapper {
  display: flex;
  align-items: center;
}

.strutture-page .ps-global-search-input {
  width: 275px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 7px 38px 7px 14px !important;
  box-sizing: border-box;
  border: 1px solid #dedede !important;
  border-radius: 20px !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5' fill='none' stroke='%23909090' stroke-width='1.8'/%3E%3Cpath d='m16 16 5 5' fill='none' stroke='%23909090' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;
  background-size: 16px 16px;
  color: #333 !important;
  font-size: 14px !important;
}

.strutture-page .ps-global-search-input::placeholder {
  color: #999;
}

.strutture-page .ps-global-search-input:focus {
  outline: none !important;
  border-color: #bfcdbb !important;
  box-shadow: 0 0 0 2px rgba(52, 152, 8, .08) !important;
}

.strutture-page .ps-dt-buttons {
  flex: 0 0 auto;
  margin-left: auto;
  text-align: right;
}

.strutture-page .ps-dt-buttons .dt-buttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
}

.strutture-page .ps-dt-buttons .dt-buttons>.dt-button,
#dtPrenotazioniList_wrapper .dt-buttons>.dt-button,
.dataTables_wrapper .btn-esporta {
  width: 40px;
  height: 40px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  background: var(--bs-primary) !important;
  border: 1px solid !important;
  border-radius: 50% !important;
  color: #fff !important;
  box-shadow: none !important;
}

#dtPrenotazioniList_wrapper .dt-buttons .dt-button-down-arrow,
.dataTables_wrapper .btn-esporta .dt-button-down-arrow {
  display: none;
}

/* Posizionamento menu Esporta */
.strutture-page .ps-dt-buttons .dt-button-collection {
  left: auto !important;
  right: 0 !important;
  top: 40px !important;
  min-width: 150px;
  width: max-content;
  max-width: 220px;
}

.strutture-page .ps-dt-buttons .dt-buttons>.dt-button:hover,
.strutture-page .ps-dt-buttons .dt-buttons>.dt-button:focus {
  background: #287c08 !important;
  color: #fff !important;
}

.strutture-page .ps-export-label {
  display: none !important;
}

.strutture-page .ps-dt-buttons .dt-down-arrow,
.strutture-page .ps-dt-buttons .dt-button-down-arrow,
.strutture-page .ps-dt-buttons .dt-button:after {
  display: none !important;
  content: none !important;
}

.strutture-page #datatableStrutture {
  display: block;
  width: 100% !important;
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

.strutture-page #datatableStrutture thead {
  display: none !important;
}

.strutture-page #datatableStrutture tbody {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  width: 100%;
}

.strutture-page #datatableStrutture tbody>tr:not(.child) {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  column-gap: 18px;
  width: 100%;
  min-height: 255px;
  margin: 0 !important;
  padding: 17px !important;
  box-sizing: border-box;
  background: #fff !important;
  border: 1px solid #e4e4e4 !important;
  border-radius: 20px !important;
  box-shadow: none !important;
  overflow: hidden;
}

.strutture-page #datatableStrutture tbody>tr:not(.child)>td {
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  vertical-align: top !important;
}

.strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(1) {
  display: none !important;
}

.strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(2) {
  grid-column: 1;
  grid-row: 1 / 5;
  width: 100% !important;
  height: 219px !important;
  padding: 0 !important;
  align-self: start;
}

.strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(2) img {
  display: block;
  width: 100% !important;
  height: 219px !important;
  max-width: none !important;
  object-fit: cover;
  border-radius: 14px !important;
  border: 0 !important;
}

.strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(3) {
  grid-column: 2;
  grid-row: 1;
  padding: 25px 0 0 !important;
  color: var(--bs-primary) !important;
  font-size: 25px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  box-shadow: none !important;
}

.strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(4) {
  grid-column: 2;
  grid-row: 2;
  padding: 10px 0 0 !important;
  color: #555 !important;
  font-size: 16px !important;
  line-height: 1.3 !important;
  box-shadow: none !important;
}

.strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(4)::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 19px;
  margin-right: 7px;
  vertical-align: -6px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2316803a' d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

.strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(5) {
  grid-column: 2;
  grid-row: 3;
  padding: 12px 0 0 !important;
  color: #555 !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
}

.strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(6) {
  grid-column: 2;
  grid-row: 4;
  display: flex !important;
  align-items: center;
  gap: 30px;
  padding: 18px 0 0 !important;
  text-align: left !important;
  box-shadow: none !important;
}

.strutture-page #datatableStrutture .ps-card-action {
  display: inline-flex !important;
  align-items: center;
  gap: 7px;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #333 !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.strutture-page #datatableStrutture .ps-card-action:hover {
  background: transparent !important;
  color: var(--bs-primary) !important;
}

.strutture-page #datatableStrutture .ps-card-action-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: var(--bs-primary);
}

.strutture-page #datatableStrutture .ps-card-action-icon svg {
  display: block;
  width: 22px;
  height: 22px;
}

.strutture-page #datatableStrutture tbody td.dtr-control,
.strutture-page #datatableStrutture tbody>tr.child {
  display: none !important;
}

.strutture-page #datatableStrutture_wrapper .ps-dt-footer {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 24px;
  padding: 0;
}

.strutture-page #datatableStrutture_wrapper .ps-dt-length {
  display: flex !important;
  align-items: center;
  margin: 0;
  text-align: left;
}

.strutture-page #datatableStrutture_wrapper .ps-dt-length select {
  height: 32px;
  min-width: 65px;
  margin: 0 5px;
  padding: 4px 4px 4px 10px;
  border: 1px solid #dedede;
  border-radius: 18px;
  background-color: #fff;
  color: #555;
  font-size: 13px;
  cursor: pointer;
}

.strutture-page #datatableStrutture_wrapper .ps-dt-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
}

.strutture-page #datatableStrutture_wrapper .dt-paging,
.strutture-page #datatableStrutture_wrapper .dataTables_paginate {
  width: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

.dataTables_wrapper .dt-paging .dt-paging-button {
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 3px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: var(--bs-primary) !important;
  font-size: 13px !important;
  line-height: 1 !important;
}

.strutture-page #datatableStrutture_wrapper .dataTables_paginate .paginate_button.previous,
.strutture-page #datatableStrutture_wrapper .dataTables_paginate .paginate_button.next {
  font-size: 25px !important;
  display: flex !important;
  align-items: center !important;
}

.dataTables_wrapper .dt-paging .dt-paging-button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current {
  background: var(--bs-primary) !important;
  color: #fff !important;
  font-weight: 700;
}

.strutture-page #datatableStrutture_wrapper .dt-paging .dt-paging-button:hover:not(.disabled):not(.current),
.strutture-page #datatableStrutture_wrapper .dataTables_paginate .paginate_button:hover:not(.disabled):not(.current) {
  background: #edf4eb !important;
  color: var(--bs-primary) !important;
}

.strutture-page #datatableStrutture_wrapper .dt-paging .dt-paging-button.disabled,
.strutture-page #datatableStrutture_wrapper .dataTables_paginate .paginate_button.disabled {
  opacity: .45;
}

.strutture-page #datatableStrutture_wrapper .dt-info,
.strutture-page #datatableStrutture_wrapper .dataTables_info {
  display: none !important;
}

@media (max-width: 991px) {
  .strutture-page .ps-category-intro {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
  }

  .strutture-page .ps-ideale-box {
    width: 300px;
    padding: 48px 40px 38px;
  }
}

@media (max-width: 767px) {
  .strutture-page .ps-category-intro {
    display: flex !important;
    flex-direction: column !important;
    gap: 30px !important;
    margin-bottom: 35px !important;
  }

  .strutture-page .ps-category-intro-text {
    width: 100% !important;
  }

  .strutture-page .ps-category-intro-text .ps-section-title {
    margin-bottom: 15px !important;
    font-size: 26px !important;
    line-height: 1.2 !important;
  }

  .strutture-page .ps-sommario-tipologia,
  .strutture-page .ps-descrizione-tipologia {
    width: 100% !important;
    font-size: 18px !important;
    line-height: 1.55 !important;
  }

  .strutture-page .ps-ideale-box {
    width: 100% !important;
    max-width: 450px;
    min-height: auto !important;
    margin-top: 0 !important;
    padding: 30px 28px !important;
    border-radius: 28px !important;
  }

  .strutture-page .ps-ideale-box h3 {
    margin-bottom: 16px !important;
    font-size: 22px !important;
  }

  .strutture-page .ps-ideale-box li {
    font-size: 15px !important;
  }

  .strutture-page .ps-dt-toolbar {
    flex-wrap: nowrap;
    gap: 8px;
  }

  .strutture-page .ps-dt-search {
    flex: 1 1 auto;
  }

  .strutture-page .ps-global-search-input {
    width: 100% !important;
    max-width: none !important;
  }

  .strutture-page .ps-dt-buttons {
    flex: 0 0 auto;
  }

  .strutture-page #datatableStrutture tbody {
    grid-template-columns: 1fr !important;
    gap: 15px !important;
  }

  .strutture-page #datatableStrutture tbody>tr:not(.child) {
    grid-template-columns: 40% minmax(0, 60%);
    column-gap: 0;
    min-height: 150px;
    padding: 0 !important;
    border-radius: 12px !important;
  }

  .strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(2),
  .strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(2) img {
    height: 150px !important;
  }

  .strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(3) {
    padding: 10px 10px 0 !important;
    font-size: 18px !important;
  }

  .strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(4) {
    padding: 3px 10px 0 !important;
    font-size: 14px !important;
  }

  .strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(5) {
    padding: 3px 10px 0 !important;
    font-size: 12px !important;
  }

  .strutture-page #datatableStrutture tbody>tr:not(.child)>td:nth-child(6) {
    padding: 5px 10px 10px !important;
    gap: 10px;
  }

  .strutture-page #datatableStrutture .ps-card-action {
    font-size: 14px !important;
  }

  .strutture-page #datatableStrutture .ps-card-action-icon,
  .strutture-page #datatableStrutture .ps-card-action-icon svg {
    width: 15px;
    height: 15px;
  }

  .strutture-page #datatableStrutture_wrapper .ps-dt-footer {
    gap: 10px;
  }
}

.ps-category-heading {
  margin-bottom: 35px;
}

.ps-category-page-title {
  margin: 0 0 10px;
  color: var(--ps-home-green);
  font-size: 2.7rem;
  font-weight: 700;
  line-height: 1.2;
}

.ps-category-page-summary {
  color: #334155;
  font-size: 1.0625rem;
  line-height: 1.8;
}

.ps-category-page-summary p {
  margin-bottom: 12px;
}

.strutture-page .ps-descrizione-tipologia ul {
  margin: 8px 0 18px;
  padding-left: 0;
  list-style: none;
}

.strutture-page .ps-descrizione-tipologia li {
  position: relative;
  margin-bottom: 2px;
  padding-left: 20px;
  color: #334155;
  font-size: 18px;
  line-height: 1.5;
}

.strutture-page .ps-descrizione-tipologia li::before {
  content: "✓";
  position: absolute;
  top: 0;
  left: 0;
  color: var(--bs-primary);
  font-weight: 800;
}

.strutture-page .ps-descrizione-tipologia h4 {
  margin: 0 0 4px;
  color: var(--bs-primary);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .dataTables_wrapper .dt-buttons {
    margin-bottom: 0px !important;
  }
    #dtPrenotazioniList_wrapper.dataTables_wrapper .dt-buttons {
    margin-bottom: 10px !important;
  }
}

@media (max-width: 768px) {

  #datatableStrutture tbody {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 15px !important;
    width: 100% !important;
  }

  #datatableStrutture tbody>tr:not(.child) {
    display: grid !important;
    grid-template-columns: 40% minmax(0, 60%) !important;
    column-gap: 0 !important;
    width: 100% !important;
    min-height: 150px !important;
    padding: 0 !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background: #fff !important;
  }


  #datatableStrutture tbody>tr:not(.child)>td:nth-child(2) {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 / 5 !important;
    width: 100% !important;
    height: 150px !important;
    padding: 0 !important;
  }

  #datatableStrutture tbody>tr:not(.child)>td:nth-child(2) img {
    display: block !important;
    width: 100% !important;
    height: 150px !important;
    max-width: none !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    border: 0 !important;
  }


  #datatableStrutture tbody>tr:not(.child)>td:nth-child(3) {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    padding: 18px 12px 0 !important;
    font-size: 17px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    color: var(--ps-home-green) !important;
  }


  #datatableStrutture tbody>tr:not(.child)>td:nth-child(4) {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 2 !important;
    padding: 8px 12px 0 !important;
    color: #555 !important;
    font-size: 14px !important;
  }


  #datatableStrutture tbody>tr:not(.child)>td:nth-child(5) {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 3 !important;
    padding: 8px 12px 0 !important;
    color: #555 !important;
    font-size: 13px !important;
  }


  #datatableStrutture tbody>tr:not(.child)>td:nth-child(6) {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 4 !important;
    padding: 8px 12px 12px !important;
  }

}

/* ============================================================
   PRENOTAZIONE SPAZI - DETTAGLIO STRUTTURA
   Regole integrate per mantenere modal, card, referenti e mappa
   ============================================================ */

.ps-struttura-dettaglio {
  width: 100%;
}

/* ============================================================
   CARD DETTAGLIO
   ============================================================ */

.ps-struttura-dettaglio .ps-info-card {
  overflow: hidden;
  padding: 0 !important;
  border: 1px solid #d9d9d9 !important;
  border-radius: 14px;
  background: #fff;
  box-shadow: none !important;
}

/* HEADER CARD */

.ps-struttura-dettaglio .ps-card-header {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 58px;
  padding: 14px 24px;
  overflow: hidden;
  background: var(--bs-primary);
  color: #fff;
}

.ps-struttura-dettaglio .ps-card-header::after {
  content: "";
  position: absolute;
  inset: 0;

  background-image: url("../../media/images/card-leaves.png");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: auto 100%;

  pointer-events: none;
}

.ps-struttura-dettaglio .ps-card-header-title {
  position: relative;
  z-index: 1;

  margin: 0;
  color: #fff;

  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
}

.ps-struttura-dettaglio .ps-info-card>.card-body {
  padding: 24px !important;
}

/* ============================================================
   DESCRIZIONE
   ============================================================ */

.ps-struttura-dettaglio .ps-hero-description {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
}

.ps-struttura-dettaglio .ps-hero-description.ps-hero-description-multiple-gallery {
  -webkit-line-clamp: 11;
}

.ps-struttura-dettaglio .ps-read-more-btn {
  display: none;

  margin-top: 8px;
  padding: 0;

  border: 0;
  background: transparent;

  color: var(--bs-primary);
  font-size: .95rem;
  font-weight: 600;

  cursor: pointer;
}

.ps-struttura-dettaglio .ps-read-more-btn.ps-visible {
  display: inline-flex;
}

.ps-struttura-dettaglio .ps-read-more-btn:hover {
  color: #255a31;
  text-decoration: underline;
}

/* ============================================================
   CONTATTI - REFERENTI
   ============================================================ */

.ps-struttura-dettaglio .ps-referenti-list {
  gap: 14px;
}

.ps-struttura-dettaglio .ps-referente-item {
  padding: 12px;
  border: 1px solid #dee2e6;
  border-radius: 14px;
  background: #fff;
}

.ps-struttura-dettaglio .ps-referente-item .ps-detail-label {
  display: block;
  margin-bottom: 8px;
}

.ps-struttura-dettaglio .ps-referente-contact {
  display: flex !important;
  align-items: center;
  gap: 7px;
  width: fit-content;
  max-width: 100%;
  line-height: 1.45;
  font-size: 18px;
  word-wrap: anywhere;
}

.ps-struttura-dettaglio .ps-referente-contact+.ps-referente-contact {
  margin-top: 8px;
}

.ps-struttura-dettaglio .ps-mostra-referenti {
  display: inline-flex;
  align-items: center;

  margin-top: 12px;
  padding: 0;

  background: none;
  border: 0;

  color: var(--bs-primary);
  font-size: .95rem;
  font-weight: 600;

  cursor: pointer;
  text-decoration: none;
}

.ps-struttura-dettaglio .ps-mostra-referenti:hover {
  color: #255a31;
  text-decoration: underline;
}

/* ============================================================
   MODAL REFERENTI
   ============================================================ */

.ps-description-modal,
.ps-referenti-modal {
  position: fixed;
  z-index: 99999;
  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 20px;

  background: rgba(0, 0, 0, .45);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition: opacity .2s ease,
    visibility .2s ease;
}

.ps-description-modal.ps-modal-visible,
.ps-referenti-modal.ps-modal-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.ps-description-modal-dialog,
.ps-referenti-modal-dialog {
  width: 100%;
  max-width: 700px;
  max-height: 90vh;

  transform: translateY(12px);
  transition: transform .2s ease;
}

.ps-description-modal.ps-modal-visible .ps-description-modal-dialog,
.ps-referenti-modal.ps-modal-visible .ps-referenti-modal-dialog {
  transform: translateY(0);
}

.ps-description-modal-content,
.ps-referenti-modal-content {
  display: flex;
  max-height: 90vh;
  flex-direction: column;

  overflow: hidden;

  background: #fff;
  border-radius: 8px;

  box-shadow: 0 15px 40px rgba(0, 0, 0, .25);
}

.ps-description-modal-header,
.ps-referenti-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 18px 22px;

  background: var(--bs-primary);
  color: #fff;
}

.ps-description-modal-title,
.ps-referenti-modal-title {
  margin: 0;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
}

.ps-description-modal-close,
.ps-referenti-modal .ps-modal-close {
  display: inline-flex;

  width: 36px;
  height: 36px;

  align-items: center;
  justify-content: center;

  padding: 0;

  background: transparent;
  border: 0;

  color: #fff;

  cursor: pointer;
  opacity: .9;
}

.ps-description-modal-close:hover,
.ps-referenti-modal .ps-modal-close:hover {
  opacity: 1;
}

.ps-description-modal-body,
.ps-referenti-modal-body {
  max-height: calc(90vh - 75px);
  overflow-y: auto;
  padding: 22px;
}

.ps-description-modal-body {
  color: #4b5d70;
  font-size: 1rem;
  line-height: 1.75;
}

.ps-description-modal-body p:last-child {
  margin-bottom: 0;
}

body.ps-description-modal-open,
body.ps-modal-open {
  overflow: hidden;
}

/* ============================================================
   MAPPA - PULSANTE GOOGLE MAPS
   ============================================================ */

.ps-struttura-dettaglio .ps-map-wrapper {
  position: relative;
}

.ps-struttura-dettaglio .ps-map-directions {
  position: absolute;
  right: auto;
  left: 14px;
  bottom: 14px;
  z-index: 401;

  display: flex;
  width: 46px;
  height: 46px;

  align-items: center;
  justify-content: center;

  background: var(--bs-primary);
  border: 0;
  border-radius: 4px;

  color: #fff !important;
  text-decoration: none !important;

  box-shadow: 0 3px 10px rgba(0, 0, 0, .25);

  cursor: pointer;

  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}

.ps-struttura-dettaglio .ps-map-directions svg {
  display: block;
  width: 22px;
  height: 22px;
}

.ps-struttura-dettaglio .ps-map-directions::after {
  content: attr(data-tooltip);

  position: absolute;
  right: 0;
  bottom: calc(100% + 9px);

  width: max-content;
  max-width: 220px;

  padding: 7px 10px;

  background: #17324d;
  border-radius: 4px;

  color: #fff;
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.25;
  white-space: nowrap;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transform: translateY(4px);

  transition: opacity .2s ease,
    visibility .2s ease,
    transform .2s ease;
}

.ps-struttura-dettaglio .ps-map-directions::before {
  content: "";

  position: absolute;
  right: 16px;
  bottom: calc(100% + 4px);

  width: 9px;
  height: 9px;

  background: #17324d;

  transform: rotate(45deg);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition: opacity .2s ease, visibility .2s ease;
}

.ps-struttura-dettaglio .ps-map-directions:hover::after,
.ps-struttura-dettaglio .ps-map-directions:hover::before,
.ps-struttura-dettaglio .ps-map-directions:focus-visible::after,
.ps-struttura-dettaglio .ps-map-directions:focus-visible::before {
  opacity: 1;
  visibility: visible;
}

.ps-struttura-dettaglio .ps-map-directions:hover::after,
.ps-struttura-dettaglio .ps-map-directions:focus-visible::after {
  transform: translateY(0);
}

.ps-struttura-dettaglio .ps-map-directions:focus-visible {
  outline: 3px solid rgba(52, 130, 58, .35);
  outline-offset: 2px;
}

/* ============================================================
   TITOLI / SPAZIATURA
   ============================================================ */

.ps-struttura-dettaglio .ps-detail-subtitle {
  font-size: 20px;
  font-weight: 700;
  color: #17324d;
  margin-bottom: .85rem;
}

.ps-struttura-dettaglio .ps-detail-subsection+.ps-detail-subsection {
  padding-top: 1rem;
  border-top: 1px solid #e8edf2;
}

.ps-struttura-dettaglio .ps-detail-main-row {
  align-items: stretch;
}

.ps-struttura-dettaglio .ps-detail-copy {
  gap: 1.25rem;
  height: 100%;
}

.ps-struttura-dettaglio .ps-detail-copy>.ps-section-content,
.ps-struttura-dettaglio .ps-detail-copy>.ps-hero-description {
  margin-bottom: 0;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 991px) {

  .ps-struttura-dettaglio .ps-section-title-main {
    font-size: 1.8rem;
  }

  .ps-struttura-dettaglio .ps-gallery-main-image {
    height: 280px;
  }

}

@media (max-width: 768px) {

  .ps-struttura-dettaglio .ps-section-title-main {
    font-size: 1.55rem;
  }

  .ps-struttura-dettaglio .ps-gallery-main-image {
    height: 220px;
  }

  .ps-struttura-dettaglio .ps-struttura-gallery-thumbs .swiper-slide {
    height: 60px;
  }

}

/* CARD CONTENITORE TIPOLOGIE STRUTTURE */

.card-tipologie-wrapper {
  overflow: hidden;
  border: 1px solid #d9d9d9 !important;
  border-radius: 12px !important;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
}

.card-tipologie-header {
  position: relative;
  min-height: 55px;
  display: flex;
  align-items: center;
  padding: 0 24px;
  background-color: var(--bs-primary);
  background-image: url("../../media/images/card-leaves.png");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: auto 100%;

}

.card-tipologie-header-content {
  position: relative;
  z-index: 1;
}

.card-tipologie-header h5 {
  margin: 0;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
}

.card-tipologie-content {
  padding: 24px !important;
}

.modal.fade .modal-body {
  font-size: 16px;
}

.modal .modal-dialog .modal-content .modal-header h5 {
  font-size: 18px;
}

#Riepilogo_calendario .table> :not(caption)>*>* {
  font-size: 16px;
}

.steppers-btn-back-booking {
  border: 1px solid var(--bs-primary);
  border-radius: 14px;
  min-width: 100px;
  padding: .56rem .89rem !important;

}

.steppers-btn-back-booking:hover {
  border: 1px solid var(--bs-secondary);
  background-color: var(--bs-secondary);

}

.steppers-btn-back-booking:hover span {
  color: white;

}

.steppers-btn-back-booking:hover svg {
  fill: white;

}

.steppers-btn-back-booking span {
  font-size: 16px;
  font-weight: 600;
}

.steppers-btn-confirm,
.steppers-btn-prev {
  border-radius: 14px;
  min-width: 100px;
}

/*.steppers-btn-confirm span, .steppers-btn-prev span {*/
/*  font-size: 16px;*/
/*  font-weight: 600;*/
/*}*/

.steppers-btn-prev .icon {
  fill: var(--bs-primary);
}

.steppers-btn-prev:hover .icon {
  fill: #fff;
}

.body-conferma-rol .card {
  border: 1px solid #e4e6eb !important;
  border-radius: 14px !important;
}

.body-conferma-rol .card-header.card-step--completed {
  background: var(--bs-primary) !important;
  color: #fff;
  border-radius: 14px 14px 0 0 !important;
}

.prenotazione-stato-deleted {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #777;
  font-weight: 600;
}

.prenotazione-stato-deleted i {
  font-size: 16px;
  color: red;
}

.prenotazione-stato-deleted small {
  display: block;
  font-size: 11px;
  font-weight: 400;
  color: #999;
}

.prenotazione-stato-deleted span {
  color: red;
}

#dtPrenotazioniList tr.prenotazione-deleted {
  background-color: #f7f7f7;
}

#dtPrenotazioniList tr.prenotazione-deleted td {
  color: #777;
}

#dtPrenotazioniList tr.prenotazione-deleted td:first-child {
  border-left: 4px solid #999;
}

#applica_tutti_giorni_msg .alert {
  border: 1px solid #e4e6eb;
  border-radius: 14px;
}

.card-step__help,
.card-step_rounded {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid currentColor;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  position: relative;
  z-index: 1;
  color: inherit;
  font-size: 18px;
}

.card-step__help--inline {
  color: var(--bs-primary);
  border-color: var(--bs-primary);
  vertical-align: middle;
  margin-left: .4rem;
}


/* .bg-sfondo-rol {
  background-image: url("../../media/images/bg-rol-page.jpg");
  background-size: cover;
  background-position: center;
} */

.card-step_rounded:after {
  padding-left: 0 !important;
}

.summary-anagrafica-anchor-btn {
  position: absolute;
  right: 24px;
  top: 85px;
  color: var(--bs-primary);
}

/* =========================================
   MODAL HELP - HEADER STILE CARD
   ========================================= */

#cardHelpModal .modal-content {
  overflow: hidden;
  border-radius: 8px;
}

#cardHelpModal .modal-header,
#AzioneROLModal .modal-header,
.modalCustom .modal-header,
.modal-header {
  position: relative;
  min-height: 55px;
  display: flex;
  align-items: center;
  padding: 0 24px;

  background-color: var(--bs-primary);
  background-image: url("../../media/images/card-leaves.png");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: auto 100%;

  border-bottom: 0;
}

#cardHelpModal .modal-header .modal-title,
#AzioneROLModal .modal-header h5,
.modalCustom .modal-header .modal-title,
.modal-header .modal-title  {
  position: relative;
  z-index: 1;
  line-height: 20px;
  margin: 0;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
}

#cardHelpModal .modal-header .btn-close,
#AzioneROLModal .modal-header .btn-close,
#modalAnnullaModificheUtente .btn-close,
.modalCustom .modal-header .btn-close,
.modal-header .btn-close {
  position: relative;
  z-index: 2;

  margin: 0 0 0 auto;
  opacity: 1;

  /* rende bianca la X di Bootstrap */
  filter: brightness(0) invert(1);
}

#cardHelpModal .modal-body {
  background-color: #fff;
  color: var(--bs-body-color);
}

#strutturaDetailModal .modal-header {
  position: relative;
  background: var(--bs-primary) !important;
  color: #fff;
  border-radius: 12px 12px 0 0 !important;
}

#strutturaDetailModal .modal-header:after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url(../../media/images/card-leaves.png);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: contain;
  opacity: 1;
  pointer-events: none;
}

#strutturaDetailModal .modal-content {
  border-radius: 14px !important;
  overflow: hidden;
}

#strutturaDetailModal .btn-close {

  filter: brightness(0) invert(1);
  opacity: 1;
}

.dropzone-allegati {
  border: 2px dashed #b5b5b5;
  border-radius: 12px;
  padding: 32px 20px;
  text-align: center;
  background: #fff;
  transition: border-color .2s ease, background-color .2s ease;
}

.dropzone-allegati.is-dragover {
  border-color: #06c;
  background-color: #f2f7fc;
}

.dropzone-allegati__icon {
  display: block;
  font-size: 2rem;
  color: #b5b5b5;
  margin-bottom: 12px;
}

.dropzone-allegati.is-dragover .dropzone-allegati__icon {
  color: #06c;
}

.dropzone-allegati__title {
  font-size: 1.1rem;
  font-weight: 600;
}

.dropzone-allegati__text {
  margin-bottom: 0;
}

.dropzone-allegati__hint {
  font-size: .875rem;
  color: #6b6b6b;
}

.lista-allegati-selezionati {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.allegato-selezionato {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
}

.allegato-selezionato__info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.allegato-selezionato__nome {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.allegato-selezionato__dimensione {
  font-size: .8rem;
  color: #6b6b6b;
}

.allegato-selezionato__remove {
  flex-shrink: 0;
  font-size: 1.5rem;
  line-height: 1;
  text-decoration: none;
}

.btn-prenota-bacheca-utente {
  background-color: var(--bs-primary);
  font-size: 18px;
  font-weight: 600;
}

.custom-background-image-radius {
  background-color: white;
  border-radius: 100%;
  padding: 4px;
}

.menu-utente-header {
  border-radius: 14px;
  border: 1px solid var(--bs-primary);
}

.logo-header {
  max-width: 300px;
}

@media (max-width: 578px) {
  .logo-header {
    max-width: 200px;
  }
}

.dataTables_wrapper .dataTables_length select {
  height: 32px;
  min-width: 65px;
  margin: 0 5px;
  padding: 4px 4px 4px 10px;
  border: 1px solid #dedede;
  border-radius: 18px;
  background-color: #fff;
  color: #555;
  font-size: 13px;
  cursor: pointer;
}

table.dataTable .yadcf-filter,
table.dataTable .yadcf-filter-date {
  height: 26px !important;
  margin: 12px 0 6px 0 !important;
  /* padding: 7px 14px !important; */
  box-sizing: border-box;
  width: 100%;
  border: 1px solid #dedede !important;
  border-top-left-radius: 20px !important;
  border-bottom-left-radius: 20px !important;
  border-top-right-radius: 20px !important;
  border-bottom-right-radius: 20px !important;
  background-color: #fff !important;
  color: #333 !important;
  font-size: 14px !important;
  -webkit-appearance: none;
}

table.dataTable .yadcf-filter-reset-button {
  padding: 3px 5px;
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
  height: 25px;
  line-height: 10px;
  font-family: var(--fa-style-family-classic);
  font-size: 9px;
  /* top: -5px; */
  position: relative;
  border: 0px;
  /* background-color: #cdcdcd;
    color: #fff; */
  background-color: transparent;
  color: var(--bs-primary);
  top: 13px;
  right: 19px;
}

.page-container-booking-rol .col-lg-4>.d-flex {
  gap: 20px !important;
}

.page-container-booking-rol .col-lg-4>.d-flex>.card:nth-child(2) {
  flex: 1 1 auto;
}

.page-container-booking-rol .portafoglio-prenotazioni .card-body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.page-container-booking-rol .portafoglio-prenotazioni .numero-prenotazioni {
  margin-bottom: 30px;
}

.page-container-booking-rol .portafoglio-prenotazioni .wallet-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
}

.portafoglio-prenotazioni .prenotazione-stat {
  min-width: 0;
  min-height: 118px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 16px 10px;
  border: 1px solid #e1e1e1;
  border-radius: 8px;
  background: #fafafa;
}

.page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-number {
  display: block;
  font-size: 30px;
  line-height: 1.1;
  font-weight: 700;
  color: var(--bs-primary);
  margin-bottom: 8px;
}

.page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-label {
  display: block;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
  color: #555;
  margin-bottom: 6px;
}

.page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-value {
  display: block;
  font-size: 13px;
  line-height: 1.25;
  color: #555;
}

.page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-money .prenotazione-stat-number,
.page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-credit .prenotazione-stat-number {
  font-size: 26px;
}

.page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-credit {
  border-color: rgba(0, 123, 255, 0.25);
}

.page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-action {
  border-color: rgba(0, 123, 255, 0.18);
}

@media (max-width: 575.98px) {
  .page-container-booking-rol .portafoglio-prenotazioni .wallet-grid {
    grid-template-columns: 1fr 1fr;
  }

  .page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat {
    min-height: 105px;
  }

  .page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-money .prenotazione-stat-number,
  .page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-credit .prenotazione-stat-number {
    font-size: 22px;
  }

  .page-container-booking-rol .portafoglio-prenotazioni .prenotazione-stat-number {
    font-size: 22px;
  }
}

/* ============================================================
   CALENDARIO PRENOTAZIONI - MOBILE
   ============================================================ */

@media (max-width: 767px) {

  #calendar {
    width: 100%;
    overflow: hidden;
  }

  #calendar .fc {
    width: 100%;
    font-size: 0.75rem !important;
  }

  /* Toolbar */
  #calendar .fc-header-toolbar {
    display: grid !important;
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "navigation"
      "views";
    gap: 10px;
    margin-bottom: 15px !important;
    align-items: center;
  }

  /* Titolo */
  #calendar .fc-toolbar-chunk:nth-child(2) {
    grid-area: title;
    display: flex;
    justify-content: center;
    text-align: center;
  }

  #calendar .fc-toolbar-title {
    font-size: 1.25rem !important;
    line-height: 1.2;
    margin: 0 !important;
  }

  /* Precedente / successivo / oggi */
  #calendar .fc-toolbar-chunk:first-child {
    grid-area: navigation;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin-bottom: 40px;
  }

  /* Mese / settimana / giorno */
  #calendar .fc-toolbar-chunk:last-child {
    grid-area: views;
    display: flex;
    justify-content: center;
    width: 100%;
  }

  #calendar .fc-button {
    font-size: 0.75rem !important;
    padding: 0.35rem 0.65rem !important;
    line-height: 1.2;
  }

  #calendar .fc-today-button {
    padding-left: 0.7rem !important;
    padding-right: 0.7rem !important;
  }

  /* Solo il gruppo Mese / Settimana / Giorno */
  #calendar .fc-toolbar-chunk:last-child .fc-button-group {
    width: 100%;
    display: flex;
  }

  #calendar .fc-toolbar-chunk:last-child .fc-button-group .fc-button {
    flex: 1 1 0;
  }

  /* Gruppo precedente / successivo */
  #calendar .fc-toolbar-chunk:first-child .fc-button-group {
    width: auto;
    display: flex;
  }

  #calendar .fc-toolbar-chunk:first-child .fc-button {
    flex: 0 0 auto;
  }

  /* Celle del calendario */
  #calendar .fc-daygrid-day-number {
    font-size: 0.7rem;
    padding: 4px;
  }

  #calendar .fc-col-header-cell-cushion {
    font-size: 0.7rem;
    padding: 5px 2px;
  }

  /* Eventi */
  #calendar .fc-event {
    font-size: 0.65rem !important;
    line-height: 1.2;
  }

}

#chartDonutPrenotazioni {
  width: 100%;
  height: 430px;
}

#chartDonutPrenotazioni,
#chartDonutPrenotazioni canvas,
#chartDonutPrenotazioni svg {
  cursor: pointer;
}

.anychart-credits {
  display: none !important;
}

@media (max-width: 767.98px) {

  #chartDonutPrenotazioni {
    height: 360px;
  }
}

.ricorrenza-days-tabs-scroll {
  flex-wrap: wrap;
  gap: 8px;
}

.ricorrenza-day-btn.nav-link {
  border: 1px solid #ced4da;
  border-radius: 6px;
  padding: 8px 16px;
  white-space: nowrap;
  color: #495057;
  background: #fff;
}

.ricorrenza-day-btn.nav-link.active {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.ricorrenza-day-btn.nav-link:hover,
.ricorrenza-day-btn.nav-link:focus {
  text-decoration: none;
}

@media (max-width: 575.98px) {
  .ricorrenza-day-btn.nav-link {
    padding: 6px 10px;
    font-size: 0.85rem;
  }

  .card-tipologie-content {
    padding: 15px !important;
  }
}

.riepilogo-totali {
  width: 100%;
  margin-bottom: 0;
}

.riepilogo-totali td {
  padding: 6px 0;
  border: 0;
  vertical-align: middle;
}

.riepilogo-totali td:first-child {
  text-align: right;
  padding-right: 12px;
}

.riepilogo-totali td:last-child {
  text-align: right;
  white-space: nowrap;
  width: 120px;
}

.riepilogo-totali__originale td {
  color: #6c757d;
  text-decoration: line-through;
}

.riepilogo-totali__complessivo td {
  padding-top: 10px;
  border-top: 1px dashed #d9d9d9;
}

/* PULSANTE ELIMINATE - STATO NORMALE */
#dtPrenotazioniList_wrapper .dt-buttons>.dt-button.showDeletedROL,
#dtPrenotazioniList_wrapper .dt-buttons>.dt-button.showDeletedROL:hover,
#dtPrenotazioniList_wrapper .dt-buttons>.dt-button.showDeletedROL:focus {

  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #fff !important;
}

/* ICONA CESTINO - STATO NORMALE */
#dtPrenotazioniList_wrapper .dt-buttons>.dt-button.showDeletedROL svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}


/* PULSANTE ELIMINATE - ATTIVO */
#dtPrenotazioniList_wrapper .dt-buttons>.dt-button.showDeletedROL.active,
#dtPrenotazioniList_wrapper .dt-buttons>.dt-button.showDeletedROL.active:hover,
#dtPrenotazioniList_wrapper .dt-buttons>.dt-button.showDeletedROL.active:focus {

  background-color: #fff !important;
  border-color: #dc3545 !important;
  color: #dc3545 !important;
}

/* ICONA CESTINO - ATTIVO */
#dtPrenotazioniList_wrapper .dt-buttons>.dt-button.showDeletedROL.active svg {
  fill: #dc3545 !important;
}

/* ============================================================
   FULLCALENDAR - SCHERMO INTERO
   ============================================================ */

#calendar.calendar-fullscreen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99999;
  background: #fff;
  padding: 20px;
  overflow: auto;
}

#calendar.calendar-fullscreen .fc {
  width: 100%;
  height: 100%;
}

#calendar.calendar-fullscreen .fc-view-harness {
  height: calc(100vh - 100px) !important;
}

/* Pulsante uscita fullscreen */

#btnCloseFullscreenCalendario {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 100000;
}

/* Mobile */

@media (max-width: 767.98px) {

  #calendar.calendar-fullscreen {
    padding: 10px;
  }

  #calendar.calendar-fullscreen .fc-view-harness {
    height: calc(100vh - 80px) !important;
  }
}

.badge-rimosso {
  color: white;
  border-radius: 24px;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0 5px;
}

.header-logo-comune {
  text-decoration: none !important;
}

.header-logo-comune-content {
  display: flex;
  align-items: center;
}

.header-logo-comune-img {
  width: auto;
  max-width: 100px;
  max-height: 80px;
  padding-right: 15px;
}

.header-logo-comune-text {
  white-space: nowrap;
}

.header-progetto {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.header-progetto-label {
  color: #fff;
  font-size: 14px;
}

.header-logo-digitalcity {
  display: block;
  width: auto;
  height: 45px;
}

.header-separator {
  height: 32px;
  width: 1px;
  background-color: rgba(255, 255, 255, 0.6);
  margin: 0 25px;
}

.header-utente-label {
  color: #fff;
  font-size: 28px;
  font-weight: 600;
}

.header-utente {
  display: flex;
  align-items: center;
}

.header-progetto a:hover {
  text-decoration: none !important;
}

.header-logo-comune-text p {
  font-size: 16px;
}

@media screen and (max-width: 991px) {
  .cmp-nav-tab .nav-tabs .nav-link.active {
    border-radius: 15px 15px 0 0 !important;
  }

  /* .it-header-center-wrapper .container {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
  } */

  .navbar-nav-right {
    flex-wrap: wrap;
  }

  .navbar-nav-left {
    width: 100%;
  }

  .header-logo-comune {
    width: 100%;
  }

  .header-logo-comune-content {
    justify-content: center;
  }

  .header-logo-comune-img {
    max-width: 80px;
    max-height: 60px;
  }

  .header-logo-comune-text .title-logo-comune {
    font-size: 18px;
  }

  .header-logo-comune-text p {
    font-size: 14px;
  }

  .navbar-nav-right>.ms-auto {
    /* width: 100%; */
    /* justify-content: center; */
    /* margin-top: 15px; */
  }

  .header-progetto,
  .header-separator,
  .header-utente {
    display: none;
  }

  .header-progetto-label {
    font-size: 12px;
  }

  .header-logo-digitalcity {
    height: 35px;
  }

  .header-separator {
    margin: 0 12px;
    height: 25px;
  }

  .header-utente-label {
    font-size: 18px;
  }
}

/* Hover sulla prima tab → elimina l'angolo superiore sinistro
   del contenitore della pagina */
#main-container:has(.cmp-nav-tab .nav-item:first-child .nav-link:hover) .it-page-sections-container.p-4 {
  border-top-left-radius: 0;
}

/* Hover sull'ultima tab → elimina l'angolo superiore destro
   del contenitore della pagina */
#main-container:has(.cmp-nav-tab .nav-item:last-child .nav-link:hover) .it-page-sections-container.p-4 {
  border-top-right-radius: 0;
}

/* ==========================================================
   CALENDARIO PRENOTAZIONE - RESPONSIVE
   ========================================================== */

#calendario_date {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

#calendario_date .ui-datepicker {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

/* La tabella deve occupare tutto lo spazio disponibile */
#calendario_date .ui-datepicker-calendar {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

/* IMPORTANTE:
   impedisce che 10, 11, 12, ecc. vengano spezzati */
#calendario_date .ui-datepicker-calendar th,
#calendario_date .ui-datepicker-calendar td {
  white-space: nowrap !important;
  box-sizing: border-box;
}

/* Numeri dei giorni */
#calendario_date .ui-datepicker-calendar td a,
#calendario_date .ui-datepicker-calendar td span {
  white-space: nowrap !important;
  text-align: center !important;
}

/* Mobile */
@media (max-width: 576px) {

  #calendario_date {
    width: 100%;
    max-width: 100%;
  }

  #calendario_date .ui-datepicker {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }

  #calendario_date .ui-datepicker-calendar {
    width: 100% !important;
    table-layout: auto !important;
  }

  #calendario_date .ui-datepicker-calendar th {
    font-size: 14px !important;
    padding: 8px 2px !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  #calendario_date .ui-datepicker-calendar td {
    padding: 0 !important;
    height: 44px;
    text-align: center !important;
  }

  #calendario_date .ui-datepicker-calendar td a,
  #calendario_date .ui-datepicker-calendar td span {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 44px !important;
    padding: 0 !important;
    font-size: 15px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    box-sizing: border-box;
  }
}


.rol-fascia-stato {
  display: inline-block;
  padding: 2px 7px;
  margin-left: 6px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
  vertical-align: middle;
  text-decoration: none !important;
}

.rol-fascia-stato--pagata {
  background: #198754;
  color: #fff;
}

.rol-fascia-stato--rifiutata {
  background: #dc3545;
  color: #fff;
}

.rol-fascia-stato--verifica {
  background: #0dcaf0;
  color: #212529;
}

.rol-fascia-stato--attesa {
  background: #ffc107;
  color: #212529;
}


.rol-fascia-stato--rimossa {
  background: #6c757d;
  color: #fff;
}

.rol-pagamento-stato {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  text-decoration: none !important;
}

.rol-pagamento-stato--manuale {
  background: #fff;
  color: var(--bs-primary);
}

.rol-pagamento-stato--attesa {
  background: #ffc107;
  color: #212529;
}

.rol-pagamento-stato--verifica {
  background: #0dcaf0;
  color: #212529;
}

.rol-pagamento-stato--validato {
  background: #198754;
  color: #fff;
}

.rol-pagamento-stato--rifiutato {
  background: #dc3545;
  color: #fff;
}

.rol-pagamento-stato--altro {
  background: #6c757d;
  color: #fff;
}

.timeline-dettaglio .selectSectionROL b {
  white-space: nowrap;
}

/* CARD FILTRI LOG E MESSAGGI - START */

.card-stat {
  min-width: 0;
  min-height: 118px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 16px 10px;
  border: 1px solid #e1e1e1;
  border-radius: 8px;
  background: #fafafa;
  cursor: pointer;
}

.card-stat-label {
  color: var(--bs-primary);
}

.card-stat.active {
  background-color: var(--bs-primary);
  color: #fff;
}

.card-stat.active .card-stat-number,
.card-stat.active .card-stat-label {
  color: #fff;
}

.card-stat-number {
  display: block;
  font-size: 1.8rem;
  line-height: 1.1;
  font-weight: 700;
  color: var(--bs-primary);
  margin-bottom: 8px;
}

.card-stat-label {
  display: block;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
  color: #555;
  margin-bottom: 6px;
}

.card-stat-value {
  display: block;
  font-size: 13px;
  line-height: 1.25;
  color: #555;
}

.card-stat-money .card-stat-number,
.card-stat-credit .card-stat-number {
  font-size: 26px;
}

.card-stat-credit {
  border-color: rgba(0, 123, 255, 0.25);
}

.card-stat-action {
  border-color: rgba(0, 123, 255, 0.18);
}

@media (max-width: 575.98px) {
  .wallet-grid {
    grid-template-columns: 1fr 1fr;
  }

  .card-stat {
    min-height: 105px;
  }
}

.sub_card .sub_card_header {
  padding: 10px 25px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid #e1e1e1;
}

.sub_card h6 {
  font-weight: bold;
  margin-bottom: 0;
}

.sub_card.positive .sub_card_header {
  background-color: #e4efe7;
  border-bottom: 2px solid #33854a;
  color: #276b3a !important;
}

.sub_card.positive h6,
.sub_card.positive i {
  color: #276b3a;
  fill: #276b3a;
}

.sub_card.negative .sub_card_header {
  background-color: #fbe9ea;
  border-bottom: 2px solid #d9363e;
  color: #a8232a !important;
}

.sub_card.negative h6,
.sub_card.negative i {
  color: #a8232a;
  fill: #a8232a;
}

.linkAllegatiIstanze {
  font-size: 1.2rem !important;
  font-weight: bold;
  color: var(--bs-primary);
}

.prenotazione-numero {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.prenotazione-da-leggere {
  width: 10px;
  height: 10px;
  min-width: 10px;
  border-radius: 50%;
  background-color: #dc3545;
  display: inline-block;
  cursor: help;
}

.prenotazione-da-leggere-spacer {
  width: 10px;
  min-width: 10px;
  height: 10px;
  display: inline-block;
  visibility: hidden;
}


/* ============================================================
   MODIFICA PRENOTAZIONE UTENTE - ritocchi grafici mirati
   ============================================================ */

.page-container-booking-rol .booking-edit-notice,
#applica_tutti_giorni_msg .alert-success,
.alert-patrocinio {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
  margin-bottom: 16px;
  color: #355342;
  background: #f3f8f4;
  border: 1px solid #d2e4d7;
  border-left: 4px solid var(--bs-primary);
  border-radius: 8px;
}

#patrocinioPrenotazioneBanner.alert-success {
  gap: 10px;
  padding: 12px 16px;
  margin-bottom: 16px;
  color: #355342;
  background: #f3f8f4;
  border: 1px solid #d2e4d7;
  border-left: 4px solid var(--bs-primary);
  border-radius: 8px;
}

.page-container-booking-rol .booking-edit-notice>i {
  flex: 0 0 auto;
  margin-top: 2px;
  color: var(--bs-primary);
  font-size: 16px;
}

.page-container-booking-rol .booking-edit-notice--review {
  color: #69511d;
  background: #fff9eb;
  border-color: #f0dfb5;
  border-left-color: #c18a16;
}

.page-container-booking-rol .booking-edit-notice--review>i {
  color: #a8750b;
}

/* Cestino visuale: il controllo sottostante rimane una vera checkbox. */
.page-container-booking-rol .booking-remove-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px !important;
  height: 34px;
  margin: 0 !important;
  padding: 0 !important;
  color: #68747d;
  background: #fff;
  border: 1px solid #cfd6dc;
  border-radius: 7px;
  cursor: pointer;
  vertical-align: middle;
  transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}

.page-container-booking-rol .booking-remove-toggle input[type="checkbox"] {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.page-container-booking-rol .booking-remove-toggle>i {
  font-size: 14px;
  pointer-events: none;
}

.page-container-booking-rol .booking-remove-toggle:hover {
  color: #b02a37;
  border-color: #dc3545;
  background: #fff8f8;
}

.page-container-booking-rol .booking-remove-toggle.is-selected {
  color: #b4232f;
  background: #fff0f0;
  border-color: #dc3545;
  box-shadow: 0 0 0 2px rgba(220, 53, 69, .08);
}

.page-container-booking-rol .booking-remove-toggle:focus-within {
  outline: 2px solid #343a40;
  outline-offset: 2px;
}

.page-container-booking-rol .table tbody tr {
  transition: background-color .15s ease;
}

.page-container-booking-rol .table tbody tr.is-marked-for-removal>td {
  color: #71383d;
  background-color: #fff2f1 !important;
}

.page-container-booking-rol .table tbody tr.is-marked-for-removal>td:first-child {
  box-shadow: inset 3px 0 0 #dc3545;
}

/* Campo data e pulsante di ricerca degli orari allineati. */
.page-container-booking-rol .booking-date-search-col {
  align-self: flex-start;
  padding-top: 31px;
}

.page-container-booking-rol #btnCercaOrariUtente {
  min-height: 33px;
  white-space: nowrap;
}

.page-container-booking-rol .booking-empty-state {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 13px 15px;
  color: #5d6b62;
  background: #f7f9f7;
  border: 1px dashed #d5e0d8 !important;
  border-radius: 8px;
}

.page-container-booking-rol .booking-empty-state>i {
  flex: 0 0 auto;
  color: #6b8874;
}

/* Elementi aggiunti: distinti dagli elementi già presenti e da quelli da rimuovere. */
.page-container-booking-rol .booking-added-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  margin-bottom: 8px;
  color: #294c35;
  background: #f1f8f3;
  border: 1px solid #c9dfcf;
  border-left: 4px solid var(--bs-primary);
  border-radius: 7px;
}

.page-container-booking-rol .booking-added-item__label {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}


.page-container-booking-rol .booking-added-badge {
  display: inline-block;
  padding: 2px 7px;
  color: #28633b;
  background: #dcefe1;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  text-transform: uppercase;
  white-space: nowrap;
}

.page-container-booking-rol .booking-edit-summary-title {
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 700;
}

.page-container-booking-rol .booking-removed-item {
  color: #71383d;
  background: #fff2f1;
  border-color: #f0c9c6;
  border-left-color: #dc3545;
}

.page-container-booking-rol .booking-removed-badge {
  color: #842029;
  background: #f8d7da;
}

.page-container-booking-rol .booking-added-item .btn-annulla-fascia-utente,
.page-container-booking-rol .booking-added-item .btn-annulla-servizio-utente {
  flex: 0 0 auto;
}

@media (max-width: 767.98px) {
  .page-container-booking-rol .booking-date-search-col {
    padding-top: 0;
  }

  .page-container-booking-rol #btnCercaOrariUtente {
    width: 100%;
    white-space: normal;
  }
}

@media (max-width: 575.98px) {
  .page-container-booking-rol .booking-added-item {
    align-items: flex-start;
  }

  .page-container-booking-rol .booking-added-item__label {
    align-items: flex-start;
  }
}

/* Evita lo scurimento Bootstrap sulle righe selezionate */
.page-container-booking-rol .table tbody tr.is-marked-for-removal>td {
  box-shadow: none;
  background-color: #fff0f0 !important;
}

/* Mantiene il bordo rosso sulla prima cella */
.page-container-booking-rol .table tbody tr.is-marked-for-removal>td:first-child {
  box-shadow: inset 3px 0 0 #dc3545;
}

/* Avviso di errore nella modifica prenotazione */
.page-container-booking-rol #esitoModificaUtente .alert-danger,
.page-container-booking-rol #esitoAnnullamentoUtente.alert-warning,
#date_slot_coverage_warning,
#dati_richiedente_box .alert-warning,
#contatti_pnl_return .alert-warning,
#contatti_pnl_return.alert-warning,
#ricorrenza_conflitti_box.alert-warning,
#esitoModificaUtente .alert-warning,
#applica_tutti_giorni_msg .alert-secondary {
  /* background-color: #fde8e8 !important;
  background-image: none !important;
  color: #842029 !important;
  border: 1px solid #f5c2c7 !important;
  border-left: 4px solid #dc3545 !important;
  border-radius: 8px;
  padding: 12px 15px; */
}


/* ============================================================
   DETTAGLIO PRENOTAZIONE - DOCUMENTI E RATA VALIDATA
   Regole circoscritte agli elementi della sezione pagamenti.
   ============================================================ */
.rol-documento-link {
  display: inline-flex;
  align-items: flex-start;
  gap: 7px;
  max-width: 100%;
  color: var(--bs-primary);
  font-weight: 600;
  line-height: 1.4;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.rol-documento-link:hover,
.rol-documento-link:focus {
  color: var(--bs-secondary);
  text-decoration: underline;
}

.rol-documento-link i {
  flex: 0 0 auto;
  margin-top: 2px;
  font-size: 15px;
}

.rol-documento-link span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.rol-rata-validata-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 13px;
  color: #155c35;
  background: #edf7f0;
  border: 1px solid #c9e5d1;
  border-left: 4px solid #198754;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}

.rol-rata-verifica-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 13px;
  color: #000;
  background: #0ccaf0;
  border: 1px solid #c9e5d1;
  border-left: 4px solid #198754;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}

.rol-rata-validata-notice__icon {
  display: inline-flex;
  flex: 0 0 25px;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  color: #fff;
  background: #198754;
  border-radius: 50%;
  font-size: 12px;
}

.richiesta-annullamento-attesa {
  padding-left: 1rem;
  background-color: #ffc10733;
  border-color: #ffc107;
}

body .stepper-footer-servizio .btn {
  display: block !important;
  padding: 0.5rem 1rem !important;
  height: 42px !important;
  border-radius: 14px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
}

@media screen and (max-width: 567px) {
  .stepper-footer-servizio {
    flex-wrap: wrap;
  }

  .stepper-footer-servizio .steppers-btn-save {
    order: 0;
    width: 100%;
  }

  .stepper-footer-servizio .steppers-btn-prev {
    order: 1;
    width: 40% !important;
  }

  .stepper-footer-servizio .steppers-btn-confirm,
  body .stepper-footer-servizio #conferma_invia {
    order: 2;
    width: 40% !important;
  }

  body .stepper-footer-servizio #conferma_invia .steppers-btn-confirm {
    width: calc(100% - 15px) !important;
    /*width: 100% !important;*/
    margin-left: 0 !important;
  }
}

/* descrizione struttura selezionata - troncamento */
.descrizione-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.descrizione-clamp.expanded {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}

.descrizione-toggle-btn {
  text-decoration: none;
  font-weight: 600;
}

/* galleria più compatta dentro la card di riepilogo */
.ps-gallery-main-image-sm {
  display: block;
  width: 100%;
  height: 100% !important;
  max-height: 350px;
  object-fit: cover;
  border-radius: 4px;
}

.ps-detail-list-clean {
  background: #f8faf8;
  border: 1px solid #eef1ee;
  border-radius: 4px;
  padding: 12px 14px !important;
}

.ps-gallery-main-sm .swiper-slide {
  height: 220px;
}

#tipo_utente_box .custom-option-content {
  text-align: left;
  padding: 1rem;
}

#tipo_utente_box .custom-option-body {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 0;
}

#tipo_utente_box .custom-option-text {
  min-width: 0;
}

#tipo_utente_box .custom-option-title b {
  font-size: 18px !important;
}


.tipo-utente-icon {
  display: block;
  height: 38px;
  width: auto;
  margin: 0;
}

.tipo-utente-icon-associazione {
  height: 38px;
  width: auto;
  min-width: 50px;
}

.tipo-utente-icon path[fill="currentColor"] {
  stroke: currentColor;
  stroke-width: 10px;
  stroke-linejoin: round;
}

.tipo-utente-icon path[fill="#fff"] {
  stroke: #fff;
  stroke-width: 2px;
  stroke-linejoin: round;
}

.dati-extra-title {
  font-weight: 700;
  text-align: center;
  margin-bottom: 1rem;
  font-size: 16px;
}

.dati-extra-box {
  border: 1px solid #d9dee3;
  border-radius: .5rem;
  padding: 1.25rem;
}

.title-booking {
  color: var(--bs-primary);
  font-weight: 700;
  margin-bottom: 10px;
}

.card-step {
  position: relative;
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  overflow: hidden;
  border-radius: .25rem .25rem 0 0;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.card-step::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--card-step-leaves-bg);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: contain;
  opacity: 1;
  pointer-events: none;
}

.card-step-first::after {
  background-image: none;
}

.card-step__num {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  color: inherit;
}

.card-step__title {
  margin: 0;
  margin-bottom: 0px !important;
  font-weight: 700;
  flex-grow: 1;
  position: relative;
  z-index: 1;
  color: inherit;
  font-size: 22px !important;
  text-transform: uppercase;
}

.card-step__help {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid currentColor;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  position: relative;
  z-index: 1;
  color: inherit;
  font-size: 18px;
}

.card-step__help--inline {
  color: var(--bs-primary);
  border-color: var(--bs-primary);
  vertical-align: middle;
  margin-left: .4rem;
}


/* stato 1: step COMPLETATO */
.body-compilazione-dati .card-header.card-step--completed,
#repielogo_prenotazione .card-header.card-step--completed,
.card-header.card-step--completed {
  background: var(--bs-primary) !important;
  color: #fff;
}

.card-header.card-step--completed .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

/* stato 2: step ATTIVO (in compilazione ora) */
.body-compilazione-dati .card-header.card-step--active,
#repielogo_prenotazione .card-header.card-step--active {
  background: #d8d8d8;
  color: var(--bs-primary);
  border: 1px solid var(--bs-primary);
}

.body-compilazione-dati .card-header.card-step--active .card-step__title,
#repielogo_prenotazione .card-header.card-step--active .card-step__title {
  color: var(--bs-primary);
}

.body-compilazione-dati .card-header.card-step--completed.card-step-first,
#repielogo_prenotazione .card-header.card-step--completed.card-step-first {
  background-color: transparent !important;
}

.cmp-card.is-active-step {
  border: 2px solid var(--bs-primary);
}

.cmp-card.has-step-error {
  border: 2px solid #c62828 !important;
}

/* stato 3: step NON ANCORA RAGGIUNTO */
.body-compilazione-dati .card-header.card-step--pending,
#repielogo_prenotazione .card-header.card-step--pending {
  background: #d8d8d8;
  color: #fff;
}

.card_orari_calendar button {
  font-weight: 600;
  color: #00402b;
  border-color: #cecece;
}

.data_selezione_title {
  font-weight: 700;
  color: #00402b;
}

.day-enabled.slot_day_hours.btn-primary,
.recurring-slot.btn-primary {
  color: #fff;
}

#btn_genera_ricorrenza {
  color: white;
  border-radius: 14px;
}

#servizi_aggiuntivi_domanda .form-check-input:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.struttura-scopri-wrapper {
  display: flex;
  align-items: center;
  gap: .5rem;
}

.struttura-allegato-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: white;
  flex-shrink: 0;
}

/* .struttura-allegato-icon:hover {
    background: var(--btn-primary-hover);
} */
.prenotazione-eliminata-alert {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 6px;
  background: #f1f1f1;
  color: #6c6c6c;
  text-align: left;
  border: 2px solid red;
}

.prenotazione-eliminata-alert i {
  font-size: 18px;
}

.prenotazione-eliminata-alert strong {
  display: block;
  font-size: 14px;
  text-transform: uppercase;
}

.prenotazione-eliminata-alert span {
  display: block;
  font-size: 12px;
  font-weight: normal;
}

.badge-prenotazione-eliminata {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 600;
  color: #6c6c6c;
  background: #f1f1f1;
  border-radius: 4px;
  padding: 4px 8px;
}

.wallet-stat-clickable {
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.wallet-stat-clickable:hover,
.wallet-stat-clickable:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
  border-color: var(--bs-primary, #348b4b);
  outline: none;
}

.wallet-detail-loading {
  color: #6c757d;
}

.wallet-detail-table td,
.wallet-detail-table th {
  vertical-align: middle;
}

.wallet-detail-amount {
  white-space: nowrap;
  text-align: right;
  font-weight: 600;
}

.wallet-detail-amount--positive {
  color: #2e8b57;
}

.wallet-detail-amount--negative {
  color: #c0392b;
}

.wallet-detail-empty {
  padding: 2rem 1rem;
  text-align: center;
  color: #6c757d;
}

.wallet-detail-summary {
  border: 1px solid #e2e6ea;
  border-radius: 10px;
  padding: .85rem 1rem;
  margin-bottom: 1rem;
  background: #f8f9fa;
}

.wallet-detail-summary strong {
  color: var(--bs-primary, #348b4b);
}

#ricorrenza_conflitti_box {
  margin-top: 20px;
}

#ricorrenza_conflitti_box .conflitto-box__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 4px;
}

#ricorrenza_conflitti_box .conflitto-box__header-text {
  min-width: 0;
}

#ricorrenza_conflitti_box .conflitto-box__title {
  font-weight: 700;
  line-height: 1.35;
}

#ricorrenza_conflitti_box .conflitto-box__subtitle {
  margin: 5px 0;
  font-size: 0.875rem;
  opacity: 0.85;
}

#ricorrenza_conflitti_box .conflitto-box__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(220, 53, 69, 0.10);
  border: 1px solid rgba(220, 53, 69, 0.25);
  font-size: 0.85rem;
  font-weight: 700;
  flex: 0 0 auto;
}

#ricorrenza_conflitti_list {
  margin-top: 10px !important;
}

#ricorrenza_conflitti_list .conflitto-riga {
  display: grid;
  grid-template-columns: minmax(210px, 0.8fr) minmax(320px, 1.2fr);
  align-items: center;
  column-gap: 24px;
  row-gap: 6px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(132, 32, 41, 0.12);
}

#ricorrenza_conflitti_list .conflitto-riga:last-child {
  border-bottom: 0;
}

#ricorrenza_conflitti_list .conflitto-riga__info {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  white-space: nowrap;
}

#ricorrenza_conflitti_list .conflitto-riga__data {
  font-weight: 600;
}

#ricorrenza_conflitti_list .conflitto-riga__orario {
  font-size: 0.9rem;
  white-space: nowrap;
}

#ricorrenza_conflitti_list .conflitto-riga__azioni {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: nowrap;
  min-width: 0;
}

#ricorrenza_conflitti_list .conflitto-riga__azioni--info {
  min-width: 0;
}

#ricorrenza_conflitti_list .conflitto-riga__azioni--info .conflitto-no-slot {
  white-space: normal;
}

#ricorrenza_conflitti_list .conflitto-select-alternativa {
  width: 160px;
  min-width: 145px;
  flex: 0 0 160px;
}

#ricorrenza_conflitti_list .conflitto-btn-applica {
  white-space: nowrap;
  flex: 0 0 auto;
}

#ricorrenza_conflitti_list .conflitto-btn-salta {
  padding: 0.25rem 0.35rem;
  white-space: nowrap;
  text-decoration: none;
  flex: 0 0 auto;
}

#ricorrenza_conflitti_list .conflitto-btn-salta:hover {
  text-decoration: underline;
}

#ricorrenza_conflitti_list .conflitto-no-slot {
  display: inline-flex;
  align-items: center;
  color: #6c757d;
  font-size: 0.875rem;
}

#ricorrenza_conflitti_list .conflitto-esito {
  grid-column: 2;
  min-height: 0;
  font-size: 0.8rem;
}

.conflitto-bulk-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
}

.conflitto-bulk-actions--top {
  margin-top: 0;
  margin-bottom: 12px;
}

.conflitto-bulk-actions--bottom {
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(132, 32, 41, 0.15);
}

.conflitto-bulk-actions .conflitto-bulk-actions__buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.conflitto-bulk-actions .conflitto-bulk-actions__hint {
  margin-top: 0;
  font-size: 0.8rem;
  color: #6c757d;
  text-align: right;
}

@media (max-width: 991.98px) {
  #ricorrenza_conflitti_list .conflitto-riga {
    grid-template-columns: minmax(180px, 0.7fr) minmax(280px, 1.3fr);
    column-gap: 16px;
  }

  .conflitto-bulk-actions .conflitto-bulk-actions__hint {

    text-align: left;
  }
}

@media (max-width: 767.98px) {
  #ricorrenza_conflitti_box .conflitto-box__header {
    align-items: flex-start;
  }

  #ricorrenza_conflitti_list .conflitto-riga {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
  }

  #ricorrenza_conflitti_list .conflitto-riga__info {
    width: 100%;
    white-space: normal;
    flex-wrap: wrap;
  }

  #ricorrenza_conflitti_list .conflitto-riga__azioni {
    width: 100%;
    flex-wrap: wrap;
  }

  #ricorrenza_conflitti_list .conflitto-select-alternativa {
    width: auto;
    max-width: 180px;
  }

  #ricorrenza_conflitti_list .conflitto-esito {
    width: 100%;
  }

  .conflitto-bulk-actions .conflitto-bulk-actions__buttons {
    flex-direction: column;
    align-items: stretch;
  }
}

.btn-modifica-fascia-utente {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px !important;
  height: 34px;
  margin: 0 !important;
  padding: 0 !important;
  color: #68747d;
  background: #fff;
  border: 1px solid #cfd6dc;
  border-radius: 7px;
  cursor: pointer;
  vertical-align: middle;
  transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}

/* Modifica prenotazione ROL: date senza disponibilità nel datepicker jQuery UI */
#ui-datepicker-div td.rol-datepicker-date-unavailable {
  opacity: .45;
  background: #f3f5f7;
}

#ui-datepicker-div td.rol-datepicker-date-unavailable span {
  color: #89929b !important;
  cursor: not-allowed;
  text-decoration: line-through;
}

#ui-datepicker-div td.rol-datepicker-date-available a {
  font-weight: 600;
}

#ui-datepicker-div .ui-datepicker-current-day a {
  border-color: #36518a;
}

#dataNuovaFascia[readonly] {
  background-color: #fff;
  cursor: pointer;
}

.slot-modifica-orario-attuale {
  /* min-height: 56px; */
  cursor: not-allowed;
  opacity: .85;
  position: relative;
}

.slot-modifica-orario-attuale small {
  font-size: .72rem;
  line-height: 1.2;
  opacity: 1;
  position: absolute;
  top: -7px;
  font-weight: 600;
  color: white;
  background-color: #2b6b37;
  padding: 2px;
  border-radius: 5px;
}

/* ==========================================================
   ROL FRONTEND UTENTE - Datepicker modifica prenotazione
   Allineato graficamente al calendario del back-office
   ========================================================== */

#ui-datepicker-div.ui-datepicker {
  z-index: 2000 !important;
  box-sizing: border-box;
  width: 292px;
  max-width: calc(100vw - 24px);
  padding: 10px;
  border: 1px solid #d7dfec !important;
  border-radius: 10px;
  background: #fff !important;
  box-shadow: 0 10px 28px rgba(30, 48, 82, .20);
  color: var(--bs-primary);
  font-family: inherit;
  font-size: 14px;
}

#ui-datepicker-div .ui-datepicker-header {
  position: relative;
  padding: 8px 35px;
  border: 1px solid var(--bs-primary) !important;
  border-radius: 7px;
  background: var(--bs-primary) !important;
  color: #fff !important;
}

#ui-datepicker-div .ui-datepicker-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0;
  line-height: 1.5;
  color: #fff !important;
  font-weight: 600;
}

#ui-datepicker-div .ui-datepicker-title select {
  height: 30px;
  max-width: 58%;
  margin: 0;
  padding: 3px 22px 3px 7px;
  border: 1px solid #d7dfec;
  border-radius: 5px;
  background: #fff;
  color: var(--bs-primary);
  font: inherit;
}

#ui-datepicker-div .ui-datepicker-prev,
#ui-datepicker-div .ui-datepicker-next {
  top: 5px;
  width: 26px;
  height: 26px;
  border: 1px solid rgba(255, 255, 255, .35) !important;
  border-radius: 5px;
  background: transparent !important;
  cursor: pointer;
}

#ui-datepicker-div .ui-datepicker-prev {
  left: 5px;
}

#ui-datepicker-div .ui-datepicker-next {
  right: 5px;
}

#ui-datepicker-div .ui-datepicker-prev:hover,
#ui-datepicker-div .ui-datepicker-next:hover {
  border-color: #fff !important;
  background: rgba(255, 255, 255, .14) !important;
}

#ui-datepicker-div .ui-datepicker-prev .ui-icon,
#ui-datepicker-div .ui-datepicker-next .ui-icon {
  display: none !important;
}

#ui-datepicker-div .ui-datepicker-prev::before,
#ui-datepicker-div .ui-datepicker-next::before {
  display: block;
  color: #fff;
  font-size: 23px;
  font-weight: 400;
  line-height: 23px;
  text-align: center;
}

#ui-datepicker-div .ui-datepicker-prev::before {
  content: "‹";
}

#ui-datepicker-div .ui-datepicker-next::before {
  content: "›";
}

#ui-datepicker-div .ui-datepicker-calendar {
  width: 100%;
  margin: 8px 0 0;
  border-collapse: separate;
  border-spacing: 2px;
  font-size: 13px;
}

#ui-datepicker-div .ui-datepicker-calendar thead th {
  padding: 5px 1px;
  border: 0 !important;
  background: #f3f6fb !important;
  color: #526783 !important;
  font-size: 11px;
  font-weight: 700;
  text-align: center;
}

#ui-datepicker-div .ui-datepicker-calendar td {
  padding: 1px;
  border: 0 !important;
  background: transparent !important;
}

#ui-datepicker-div .ui-datepicker-calendar td a,
#ui-datepicker-div .ui-datepicker-calendar td span {
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 30px;
  min-height: 31px;
  padding: 4px 2px !important;
  border: 1px solid transparent !important;
  border-radius: 6px !important;
  background: #f4f7fc !important;
  color: var(--bs-primary) !important;
  text-align: center;
  text-decoration: none;
}

#ui-datepicker-div .ui-datepicker-calendar .rol-datepicker-date-available a {
  border-color: #d8e2f3 !important;
  background: #edf3fc !important;
  color: var(--bs-primary) !important;
  font-weight: 600;
}

#ui-datepicker-div .ui-datepicker-calendar .rol-datepicker-date-available a:hover,
#ui-datepicker-div .ui-datepicker-calendar .rol-datepicker-date-available a:focus {
  border-color: var(--bs-primary) !important;
  background: var(--bs-primary) !important;
  color: #fff !important;
}

#ui-datepicker-div .ui-datepicker-calendar .rol-datepicker-date-unavailable span {
  border-color: #f0f2f5 !important;
  background: #f7f8fa !important;
  color: #c1c7d0 !important;
  cursor: not-allowed;
}

#ui-datepicker-div .ui-datepicker-calendar .ui-datepicker-today a {
  border-color: #198754 !important;
  font-weight: 700;
}

#ui-datepicker-div .ui-datepicker-calendar .ui-datepicker-current-day a,
#ui-datepicker-div .ui-datepicker-calendar .ui-datepicker-current-day a:hover {
  border-color: var(--bs-primary) !important;
  background: var(--bs-primary) !important;
  color: #fff !important;
  font-weight: 700;
}

#ui-datepicker-div .ui-datepicker-calendar .ui-datepicker-other-month a,
#ui-datepicker-div .ui-datepicker-calendar .ui-datepicker-other-month span {
  opacity: .45;
}

#ui-datepicker-div .ui-state-hover,
#ui-datepicker-div .ui-widget-content .ui-state-hover,
#ui-datepicker-div .ui-widget-header .ui-state-hover {
  border-color: transparent;
}

#dataNuovaFascia[readonly] {
  background-color: #fff;
  cursor: pointer;
}

@media (max-width: 575.98px) {
  #ui-datepicker-div.ui-datepicker {
    width: 280px;
    max-width: calc(100vw - 24px);
    padding: 8px;
  }

  #ui-datepicker-div .ui-datepicker-calendar td a,
  #ui-datepicker-div .ui-datepicker-calendar td span {
    min-height: 30px;
  }
}


/* ==========================================================
   MODIFICA PRENOTAZIONE ROL - FASCE ORARIE RESPONSIVE MOBILE
   Su schermi stretti la tabella delle fasce diventa una card
   per riga: data/azioni sopra, orario/costo sotto.
   La tabella desktop resta invariata.
   ========================================================== */
@media (max-width: 575.98px) {

  #formModificaROLUtente>div.card:first-of-type .table-responsive,
  #formModificaROL #tabellaFasceAttive {
    overflow-x: visible !important;
    overflow-y: visible !important;
  }

  #formModificaROLUtente>div.card:first-of-type .table-responsive>table,
  #formModificaROL #tabellaFasceAttive {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-bottom: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    table-layout: auto !important;
  }

  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>thead,
  #formModificaROL #tabellaFasceAttive>thead {
    display: none !important;
  }

  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>tbody,
  #formModificaROL #tabellaFasceAttive>tbody {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
  }

  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>tbody>tr,
  #formModificaROL #tabellaFasceAttive>tbody>tr {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "data azioni"
      "orario costo" !important;
    align-items: center !important;
    gap: 10px 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 12px !important;
    border: 1px solid #d9e0e8 !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: 0 2px 6px rgba(26, 48, 77, .06) !important;
  }

  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>tbody>tr>td,
  #formModificaROL #tabellaFasceAttive>tbody>tr>td {
    display: block !important;
    min-width: 0 !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    vertical-align: middle !important;
    white-space: normal !important;
  }

  /* Prima riga: data e azioni */
  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>tbody>tr>td:nth-child(1),
  #formModificaROL #tabellaFasceAttive>tbody>tr>td:nth-child(1) {
    grid-area: data !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    flex-wrap: wrap !important;
    font-weight: 700 !important;
    color: var(--bs-primary) !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
  }

  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>tbody>tr>td:nth-child(4),
  #formModificaROL #tabellaFasceAttive>tbody>tr>td:nth-child(4) {
    grid-area: azioni !important;
    justify-self: end !important;
    align-self: center !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  /* Seconda riga: orario e costo, con etichette esplicite */
  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>tbody>tr>td:nth-child(2),
  #formModificaROL #tabellaFasceAttive>tbody>tr>td:nth-child(2) {
    grid-area: orario !important;
    justify-self: start !important;
    text-align: left !important;
    color: var(--bs-body-color) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
  }

  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>tbody>tr>td:nth-child(2)::before,
  #formModificaROL #tabellaFasceAttive>tbody>tr>td:nth-child(2)::before {
    content: "Orario";
    display: block;
    margin-bottom: 2px;
    color: var(--bs-secondary, #637b8a);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.2;
    white-space: normal;
  }

  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>tbody>tr>td:nth-child(3),
  #formModificaROL #tabellaFasceAttive>tbody>tr>td:nth-child(3) {
    grid-area: costo !important;
    justify-self: end !important;
    text-align: right !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
  }

  #formModificaROLUtente>div.card:first-of-type .table-responsive>table>tbody>tr>td:nth-child(3)::before,
  #formModificaROL #tabellaFasceAttive>tbody>tr>td:nth-child(3)::before {
    content: "Costo";
    display: block;
    margin-bottom: 2px;
    color: var(--bs-secondary, #637b8a);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.2;
    text-align: right;
  }

  /* Azioni touch-friendly e allineate */
  #formModificaROLUtente>div.card:first-of-type .booking-slot-actions,
  #formModificaROL .booking-slot-actions {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    white-space: nowrap !important;
  }

  #formModificaROLUtente>div.card:first-of-type .booking-slot-actions .btn,
  #formModificaROL .booking-slot-actions .btn,
  #formModificaROLUtente>div.card:first-of-type .booking-remove-toggle,
  #formModificaROL .booking-remove-toggle {
    flex: 0 0 36px !important;
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 8px !important;
  }

  #formModificaROLUtente>div.card:first-of-type .booking-remove-toggle>i,
  #formModificaROL .booking-remove-toggle>i {
    margin: 0 !important;
  }
}



/* ==========================================================
   MODIFICA PRENOTAZIONE - FASCE RAGGRUPPATE PER MESE (>15)
   ========================================================== */
.booking-fasce-mesi {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.booking-fasce-mese-item {
  border: 1px solid rgba(var(--bs-primary-rgb, 53, 78, 132), .24) !important;
  border-radius: 10px !important;
  overflow: hidden;
  background: #fff;
}

.booking-fasce-mese-button,
.booking-fasce-mese-button:not(.collapsed) {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 15px;
  color: var(--bs-primary) !important;
  background: #f5f7fb !important;
  box-shadow: none !important;
  font-weight: 600;
}

.booking-fasce-mese-button::after {
  margin-left: 8px;
  flex-shrink: 0;
}

.booking-fasce-mese-button .mese-titolo {
  min-width: 0;
}

.booking-fasce-mese-button .mese-badge {
  display: inline-block;
  flex: 0 0 auto;
  border: 1px solid rgba(var(--bs-primary-rgb, 53, 78, 132), .18);
  background: #fff;
  color: var(--bs-primary);
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}

.booking-fasce-mese-button .mese-subtotale {
  margin-left: auto;
  color: var(--bs-body-color);
  font-size: 13px;
  white-space: nowrap;
}

.booking-month-slots-table {
  width: 100%;
  margin-bottom: 0 !important;
}

.booking-fasce-mese-item .accordion-body {
  padding: 0 !important;
}

@media (max-width: 575.98px) {

  .booking-fasce-mese-button,
  .booking-fasce-mese-button:not(.collapsed) {
    gap: 7px;
    padding: 11px 10px;
    font-size: 14px;
  }

  .booking-fasce-mese-button .mese-subtotale {
    display: none;
  }

  /* Le tabelle interne mantengono la resa a card per ogni fascia. */
  #formModificaROL .booking-fasce-mesi .booking-month-slots-table,
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    table-layout: auto !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>thead,
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>thead {
    display: none !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>tbody,
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>tbody {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 10px !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>tbody>tr,
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>tbody>tr {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "data azioni" "orario costo" !important;
    align-items: center !important;
    gap: 10px 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 12px !important;
    border: 1px solid #d9e0e8 !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: 0 2px 6px rgba(26, 48, 77, .06) !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td,
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td {
    display: block !important;
    min-width: 0 !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    white-space: normal !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(1),
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(1) {
    grid-area: data !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    flex-wrap: wrap !important;
    font-weight: 700 !important;
    color: var(--bs-primary) !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(4),
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(4) {
    grid-area: azioni !important;
    justify-self: end !important;
    align-self: center !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(2),
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(2) {
    grid-area: orario !important;
    justify-self: start !important;
    text-align: left !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(2)::before,
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(2)::before {
    content: "Orario";
    display: block;
    margin-bottom: 2px;
    color: var(--bs-secondary, #637b8a);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.2;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(3),
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(3) {
    grid-area: costo !important;
    justify-self: end !important;
    text-align: right !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(3)::before,
  #formModificaROLUtente .booking-fasce-mesi .booking-month-slots-table>tbody>tr>td:nth-child(3)::before {
    content: "Costo";
    display: block;
    margin-bottom: 2px;
    color: var(--bs-secondary, #637b8a);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.2;
    text-align: right;
  }
}

/* ==========================================================
   FIX VISIVO ACCORDION MENSILI - MODIFICA PRENOTAZIONE
   Intestazioni con padding coerente, spaziatura e freccia visibile
   ========================================================== */
#formModificaROL .booking-fasce-mesi .booking-fasce-mese-item>.accordion-header,
#formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-item>.accordion-header {
  margin: 0 !important;
  padding: 0 !important;
}

#formModificaROL .booking-fasce-mesi .booking-fasce-mese-button,
#formModificaROL .booking-fasce-mesi .booking-fasce-mese-button:not(.collapsed),
#formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button,
#formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button:not(.collapsed) {
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  min-height: 54px !important;
  padding: 12px 18px !important;
  gap: 10px !important;
  text-align: left !important;
  line-height: 1.4 !important;
  border: 0 !important;
  border-radius: 0 !important;
  white-space: normal !important;
}

#formModificaROL .booking-fasce-mesi .booking-fasce-mese-button .mese-titolo,
#formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button .mese-titolo {
  display: inline-block !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

#formModificaROL .booking-fasce-mesi .booking-fasce-mese-button .mese-badge,
#formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button .mese-badge {
  flex: 0 0 auto !important;
  margin: 0 !important;
}

#formModificaROL .booking-fasce-mesi .booking-fasce-mese-button .mese-subtotale,
#formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button .mese-subtotale {
  flex: 0 0 auto !important;
  margin-left: auto !important;
  padding-left: 8px !important;
  white-space: nowrap !important;
}

/* Freccia disegnata via CSS, indipendente dalle icone Bootstrap */
#formModificaROL .booking-fasce-mesi .booking-fasce-mese-button::after,
#formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button::after {
  content: "" !important;
  display: block !important;
  width: 8px !important;
  height: 8px !important;
  flex: 0 0 8px !important;
  margin: 0 0 4px 10px !important;
  padding: 0 !important;
  border: 0 !important;
  border-right: 2px solid currentColor !important;
  border-bottom: 2px solid currentColor !important;
  background: none !important;
  background-image: none !important;
  transform: rotate(45deg) !important;
  opacity: .85 !important;
}

#formModificaROL .booking-fasce-mesi .booking-fasce-mese-button:not(.collapsed)::after,
#formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button:not(.collapsed)::after {
  transform: rotate(225deg) !important;
  margin-bottom: -4px !important;
}

@media (max-width: 575.98px) {

  #formModificaROL .booking-fasce-mesi .booking-fasce-mese-button,
  #formModificaROL .booking-fasce-mesi .booking-fasce-mese-button:not(.collapsed),
  #formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button,
  #formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button:not(.collapsed) {
    min-height: 52px !important;
    padding: 11px 14px !important;
    gap: 8px !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-fasce-mese-button .mese-subtotale,
  #formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button .mese-subtotale {
    display: none !important;
  }

  #formModificaROL .booking-fasce-mesi .booking-fasce-mese-button::after,
  #formModificaROLUtente .booking-fasce-mesi .booking-fasce-mese-button::after {
    margin-left: auto !important;
  }
}

@media (max-width: 767.98px) {

  /*#dtServiziList td:first-child {*/
  /*  white-space: normal !important;   !* sovrascrive .truncate *!*/
  /*  overflow-wrap: anywhere;          !* spezza solo se non ci sta *!*/
  /*  word-break: normal;*/
  /*  min-width: 0;*/
  /*}*/
  .col-lg-4 .steppers {
    display: none;
  }
}

.label_flag_box_radius {
  display: inline-block;
  padding: 5px 10px;
  border-radius: 5px;
  color: var(--bs-primary);
  border: 1px solid var(--bs-primary);
  font-size: 14px;
}

.box_dettaglio {
  border: 1px solid var(--bs-primary);
  border-radius: 0.375rem;
  background-color: white !important;
}

.badge-patrocinabile {
  background-color: green;
  border-radius: 5px;
  color: white;
  padding: 0px 3px;
  font-size: 12px;
}



/* Calendario ROL: filtro struttura solo su desktop
   o quando il calendario è a schermo intero */
@media (max-width: 767.98px) {
  .calendar-struttura-filter {
    display: none !important;
  }

  table.dataTable > tbody > tr.child ul.dtr-details{
    width: 100% ;
  }
}

/* ==========================================================
   ROL - Allineamento campi nelle righe responsive prenotazioni
   ========================================================== */
#dtPrenotazioniList tbody tr.child > td,
#dtPrenotazioniList tbody tr.dtr-child > td {
  padding: 0 !important;
  text-align: left !important;
}

#dtPrenotazioniList tbody tr.child ul.dtr-details,
#dtPrenotazioniList tbody tr.dtr-child ul.dtr-details {
  display: block !important;
  width: 100%;
  margin: 0;
  padding: 0.25rem 0.65rem 0.65rem;
  box-sizing: border-box;
}

#dtPrenotazioniList tbody tr.child ul.dtr-details > li.dtr-detail,
#dtPrenotazioniList tbody tr.dtr-child ul.dtr-details > li.dtr-detail {
  display: grid !important;
  grid-template-columns: minmax(78px, 30%) minmax(0, 1fr);
  align-items: start;
  column-gap: 0.5rem;
  text-align: left !important;
}

#dtPrenotazioniList tbody tr.child ul.dtr-details > li.dtr-detail > .dtr-title,
#dtPrenotazioniList tbody tr.child ul.dtr-details > li.dtr-detail > .dtr-data,
#dtPrenotazioniList tbody tr.dtr-child ul.dtr-details > li.dtr-detail > .dtr-title,
#dtPrenotazioniList tbody tr.dtr-child ul.dtr-details > li.dtr-detail > .dtr-data {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  text-align: left !important;
}

#dtPrenotazioniList tbody tr.child ul.dtr-details > li.dtr-detail > .dtr-data,
#dtPrenotazioniList tbody tr.dtr-child ul.dtr-details > li.dtr-detail > .dtr-data {
  justify-self: stretch;
  overflow-wrap: anywhere;
}

/* ============================================================
   ROL - CALENDARIO PRENOTAZIONI: HEADER COMPATTO SU MOBILE
   ============================================================ */
@media (max-width: 575.98px) {
  /* Il selettore isola la card che contiene il calendario, senza
     alterare gli header delle altre schede della pagina. */
  .card:has(> .card-body > #calendar) > .card-header.card-tipologie-header {
    min-height: 50px;
    padding: 8px 12px !important;
    gap: 8px;
    flex-wrap: nowrap !important;
  }

  .card:has(> .card-body > #calendar) > .card-header.card-tipologie-header > h5 {
    flex: 0 1 auto;
    min-width: 0;
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.15;
    white-space: nowrap;
  }

  .card:has(> .card-body > #calendar) > .card-header.card-tipologie-header > .d-flex {
    flex: 0 0 auto;
    flex-wrap: nowrap !important;
    justify-content: flex-end;
    gap: 5px !important;
    margin-left: auto;
  }

  .card:has(> .card-body > #calendar) #btnExportCalendario,
  .card:has(> .card-body > #calendar) #btnFullscreenCalendario,
  .card:has(> .card-body > #calendar) .card-step__help {
    flex: 0 0 30px;
    width: 30px !important;
    min-width: 30px;
    height: 30px !important;
    min-height: 30px;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
  }

  .card:has(> .card-body > #calendar) #btnExportCalendario i,
  .card:has(> .card-body > #calendar) #btnFullscreenCalendario i {
    margin: 0 !important;
  }
}

@media (max-width: 359.98px) {
  .card:has(> .card-body > #calendar) > .card-header.card-tipologie-header {
    padding-left: 8px !important;
    padding-right: 8px !important;
    gap: 5px;
  }

  .card:has(> .card-body > #calendar) > .card-header.card-tipologie-header > h5 {
    font-size: 12px !important;
  }

  .card:has(> .card-body > #calendar) > .card-header.card-tipologie-header > .d-flex {
    gap: 3px !important;
  }

  .card:has(> .card-body > #calendar) #btnExportCalendario,
  .card:has(> .card-body > #calendar) #btnFullscreenCalendario,
  .card:has(> .card-body > #calendar) .card-step__help {
    flex-basis: 27px;
    width: 27px !important;
    min-width: 27px;
    height: 27px !important;
    min-height: 27px;
  }
}

/* ============================================================
   ROL - FRECCIA RESPONSIVE INLINE AL NUMERO PRENOTAZIONE
   ============================================================ */
@media (max-width: 767.98px) {
  #dtPrenotazioniList tbody td.rol-col-numero {
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
  }

  #dtPrenotazioniList tbody td.rol-col-numero.dtr-control::before {
    display: inline-block !important;
    vertical-align: middle;
    margin-right: 4px !important;
  }
}


