* {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  /* make transparent link selection, adjust last value opacity 0 to 1.0 */
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: normal;
  src: url('../fonts/Poppins-Regular.ttf') format('opentype')
}

@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: normal;
  src: url('../fonts/Poppins-Italic.ttf') format('opentype')
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: bold;
  src: url('../fonts/Poppins-Bold.ttf') format('opentype')
}

@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: bold;
  src: url('../fonts/Poppins-BoldItalic.ttf') format('opentype')
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/Poppins-Medium.ttf') format('opentype')
}

@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 500;
  src: url('../fonts/Poppins-MediumItalic.ttf') format('opentype')
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/Poppins-SemiBold.ttf') format('opentype')
}

@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 600;
  src: url('../fonts/Poppins-SemiBoldItalic.ttf') format('opentype')
}

:root {
  --dodeca-background: #FFF5E8;
  --dodeca-green: #7EBC00;
  --dodeca-red: #DE0000;
  --dodeca-orange: #FF9D1B;
  --dodeca-orange-40: #FF9D1B66;
  --dodeca-green-40: #7EBC0066;
  --dodeca-brown: #663025;
  --dodeca-brown-bg: #6630252E;
  --dodeca-beige: #DDC9A5;
  --dodeca-orange-gradient: linear-gradient(94.28deg, #FF9D1B 15.14%, #FAC043 92.53%);
  --dodeca-green-gradient: linear-gradient(274.59deg, #7EBC00 25.71%, #DCE8BB 86.48%);
  --text-primary: #2F2B3D;
  --text-gray: #979797;
  --dodeca-gray: #F7F7F7;
  --dodeca-gray-bg: #F2F1F9;
  font-size: 14px;
}

body {
  -webkit-touch-callout: none;
  /* prevent callout to copy image, etc when tap to hold */
  -webkit-text-size-adjust: none;
  /* prevent webkit from resizing text to fit */
  -webkit-user-select: none;
  /* prevent copy paste, to allow, change 'none' to 'text' */
  user-select: none;
  /* prevent copy paste, to allow, change 'none' to 'text' */
  background-color: var(--dodeca-background);
  font-family: 'Poppins', system-ui, -apple-system, -apple-system-font, 'Segoe UI', 'Roboto', sans-serif;
  font-size: 1rem;
  height: 100vh;
  margin: 0px;
  padding-top: env(safe-area-inset-top);
  padding-right: env(safe-area-inset-right);
  padding-bottom: env(safe-area-inset-bottom);
  padding-left: env(safe-area-inset-left);
  width: 100%;
  color: var(--text-primary);
}


#appCapsule {
  max-width: 650px;
  margin: 0 auto;
}

#appCapsule>main>div {
  /* padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); */
}


a {
  color: var(--text-primary);
  text-decoration: none;
  text-transform: none;
}


a:visited {
  color: var(--text-primary);
}

p {
  color: var(--text-primary);
  text-transform: none;
  margin-bottom: 0;
}

#menu {}

.appBottomMenu {
  background: transparent;
  position: sticky;
}


.appBottomMenu .safe-menu-area {
  min-height: 4rem;
  background-color: transparent;
  background-image: url('../img/bg-appbar.svg');
  background-size: 100% 100%;
  background-position: -calc(env(safe-area-inset-left) / 2) 0;
  min-height: 4rem;
  border-top: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: 4px;
  padding-right: 4px;

}

.appBottomMenu .menu-padding {
  padding: 0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  background-color: white;
}


.appBottomMenu a {
  color: var(--text-primary);
}

.appBottomMenu .item.active:before {
  background-color: var(--dodeca-orange);
}

.appBottomMenu #menu_pass.item.active:before {
  background-color: transparent;
}

.appBottomMenu .item .action-button.large {
  background: transparent;
  position: absolute;
  top: 0;
  left: calc(10px + 50%);
  transform: translate(-50%, -2rem);
}

.appBottomMenu .ico-menu {
  font-size: 1.2rem;
}

.appBottomMenu .item .action-button.large+img {
  position: absolute;
  bottom: 0.4rem;
  left: 50%;
  transform: translateX(-50%);
}


.btn.btn-brown {
  background-color: var(--dodeca-brown);
  color: white;
}

.btn.btn-orange {
  background-color: var(--dodeca-orange);
  color: var(--dodeca-brown);
}

.btn.btn-green {
  background-color: var(--dodeca-green);
  color: white;
}

.btn.btn-beige {
  background-color: var(--dodeca-beige);
  color: var(--dodeca-brown);
}

.card {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}

.page-card {
  border-radius: 2rem 2rem 0px 0px;
  background-color: white;
  padding: 2.5rem 1.6rem 9.5rem 1.6rem;

}

.advantage {
  position: relative;
}

.advantage .box-start {
  position: absolute;
  top: 0;
  left: 0;
  padding: 0.5rem;
  border-radius: 0.8rem;
  border-top-right-radius: 0;
  border-bottom-left-radius: 0;
  color: white;
}


.advantage.discount {
  border: 2px solid var(--dodeca-orange);
}


.advantage.discount .box-start {
  background: var(--dodeca-orange);
}

.advantage.cashback {
  border: 2px solid var(--dodeca-green);
}

.advantage.cashback .box-start {
  background: var(--dodeca-green);
}

.card {
  border-radius: 0.6rem;
}

.bg-gray {
  background-color: var(--dodeca-gray);
}

.bg-gradient-orange {
  background-image: var(--dodeca-orange-gradient) !important;
}

.bg-orange {
  background-color: var(--dodeca-orange);
}

.bg-orange-40 {
  background: var(--dodeca-orange-40);
}

.bg-green {
  background-color: var(--dodeca-green);
}

.bg-green-40 {
  background: var(--dodeca-green-40);
}

.bg-brown-bg {
  background-color: var(--dodeca-brown-bg);
}

.bg-background {
  background-color: var(--dodeca-background);
}

.rounded-4 {
  border-radius: 1rem;
}

.rounded-5 {
  border-radius: 2rem;
}

.listview.simple-listview {
  background: transparent;
  border-top: none;
  border-bottom: none;
}

.listview.simple-listview li {
  background: transparent;
  border: none;
  text-transform: none;

}

.listview.simple-listview li::after {
  height: 0;
}

.form-switch .form-check-label::after {
  background: #979797;
}

.form-switch .form-check-label::before {
  background: #E1E1E1;
}

.form-check-input:checked~.form-check-label:after {
  background: #FDA75814;
  border: none;
}

.form-check-input:checked~.form-check-label:before {
  background: #FDA758;
  border-color: #FDA758;
}

.welcome-logo {
  width: min(50%, 12.5rem);
  margin-top: 6rem;
}

.title {
  font-size: 1.2rem;
  font-weight: bold;
}


.backButton {
  color: var(--dodeca-brown);
  padding: 1rem;
  font-size: 1rem;
  font-weight: 600;
}

.header-title {
  color: var(--dodeca-brown);
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0;
}


.page-title {
  font-size: 1.5rem;
  font-weight: 600;
}

.page-subtitle {
  font-size: 0.85rem;
}


.text-orange {
  color: var(--dodeca-orange);
}

.text-green {
  color: var(--dodeca-green);
}

.input-group span+.form-control {
  border-left: 0;
}

.form-floating>.autoComplete_wrapper {
  width: 100%;
}

.form-floating>.autoComplete_wrapper>input {
  padding-top: 1.625rem;
}


.form-floating>.autoComplete_wrapper>.form-control {
  height: calc(3.5rem + 2px);
  line-height: 1.25;
  width: 100%;
}

.form-floating>.autoComplete_wrapper:has(>.form-control:focus)~label,
.form-floating>.autoComplete_wrapper:has(>.form-control:not(:placeholder-shown))~label {
  opacity: .65;
  transform: scale(.85) translateY(-.5rem) translateX(.15rem);
}


.modal-title {
  font-size: 1.8rem;
  font-weight: 600;
}

.modal-message {
  font-size: 1.25rem;
  font-weight: 500;
}

.modal-sub-message {
  font-size: 0.95rem;
  font-weight: 500;
}


.modal-content {
  border-radius: 2rem;
}

.modal-body {
  padding: 2rem;
}

.modal-body>button.btn-close {
  background-color: #bbb;
  padding: 1rem;
}


.input {
  width: 2.5rem;
  border: 1px solid #ccc;
  border-radius: 1rem;
  text-align: center;
  font-size: 2.5rem;
  cursor: not-allowed;
  pointer-events: none;
  padding: 0;
}

.input:focus {
  border-bottom: 3px solid orange;
  outline: none;
}

.input:nth-child(1) {
  cursor: pointer;
  pointer-events: all;
}

.loading-element {
  z-index: 2500;
}

.shop-selector {
  padding: 1rem;
  border-radius: 50%;
  background-color: var(--dodeca-green);
  opacity: 0.2;
}

.store-image {
  max-width: 15%;
}

.shop-address {
  font-size: 0.9rem;
}

.nav-pills .nav-link {
  color: var(--text-primary);
  background-color: var(--dodeca-gray-bg);
}

.nav-pills .nav-link.active {
  background-color: var(--dodeca-orange);
}

#map {
  height: 400px;
}

.distance-indicator {
  font-weight: 700;
}


.shop-search-results {
  position: relative;
  top: -4rem;
}

details.shop-time summary {
  position: relative;
  padding-left: 2rem;
  list-style: none;
  border: none;
  margin-bottom: 0.75rem;
}

details.shop-time summary::after {
  content: "<";
  color: var(--text-primary);
  padding: 0 5px;
  margin-inline-start: 5px;
  position: absolute;
  right: 0;
}

details.shop-time summary[open]::after {
  transform: rotate(-90deg);
}

details.shop-time summary.open::before {
  position: absolute;
  content: ' ';
  background-color: var(--dodeca-green);
  border-radius: 50%;
  width: 10px;
  height: 10px;
  top: 0;
  left: 0;
  transform: translate(50%, 50%)
}

details.shop-time summary.close::before {
  position: absolute;
  content: ' ';
  background-color: var(--dodeca-red);
  border-radius: 50%;
  width: 10px;
  height: 10px;
  top: 0;
  left: 0;
  transform: translate(50%, 50%)
}

.shop-services,
.shop-departments {
  font-size: 0.8rem;
}

.shop-services .col-6,
.shop-departments .col-6 {
  margin-bottom: 1rem;
}

.top-header {
  height: 6rem;
  padding: 0 1.3rem;
}


.homepage-dodeca-card {
  position: relative;
  background: var(--dodeca-orange-gradient) !important;
  padding-bottom: 5.5rem;
}

.homepage-main {
  position: relative;
  top: -3.5rem;
  background: var(--dodeca-background) !important;
  padding-bottom: 5.5rem;
  font-size: 0.7rem;
}


div.slide-placeholder {
  height: 10rem;
  width: 100%;
  background-color: #b9b9b9;
  border-radius: 2rem;
  animation: placeholder-slide-anim 2s ease-in-out infinite;
}

@keyframes placeholder-slide-anim {
  50% {
    opacity: 0.2;
  }
}

.home-fidelity-counter {
  margin-left: 50%;
  width: 50%;
  background: var(--dodeca-orange);
  color: white;
  font-weight: bold;
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  text-align: center;
  border: 0.15rem solid var(--dodeca-orange);
}


.home-fidelity-box {
  border: 0.15rem solid var(--dodeca-orange);
  border-radius: 1rem 0 1rem 1rem;
}

.home-fidelity-title {
  font-weight: bold;
  text-wrap: wrap;
  white-space: wrap;
}


.fidelity-points {
  border: 0.15rem solid var(--dodeca-orange);
  border-radius: 0 0 1rem 1rem;
  background: white;
  color: var(--dodeca-orange);
  font-weight: 600;
  text-align: center;
  border-right: 0;
}

.box-content {
  box-sizing: content-box;
}

.fidelity-title {
  padding-left: 1.2rem;
  padding-top: 0.3rem;
  color: var(--text-primary);
  font-size: 1rem;
  font-weight: 600;
}

.fidelity-points .fidelity-point-text {
  font-size: 1.75rem;
}

.fidelity-points .fidelity-point-um {
  font-size: 1.3rem;
}


.home-fidelity-box .dot {
  position: absolute;
  width: 2rem;
  height: 2rem;
  transform: translate(-50%, -50%);
  top: 50%;
  border-radius: 50%;
  border: 2px solid var(--dodeca-background);
  background: var(--dodeca-orange);
}

.home-fidelity-box .dot.active {
  background: var(--dodeca-green);
}

.home-fidelity-box .dot.active::after {
  display: flex;
  align-items: center;
  justify-content: center;
  content: '✓';
  color: white;
  font-weight: bold;
  font-size: 1.2rem;
}

.advantage .dot {
  width: 1rem;
  height: 1rem;
  font-size: 0.6rem;
  border-radius: 50%;
  background: var(--text-gray);
}

.advantage .dot.active {
  background: var(--dodeca-green);
}

.advantage .dot::after {
  display: flex;
  align-items: center;
  justify-content: center;
  content: '✓';
  color: white;
  font-size: 0.6rem;
  font-weight: bold;
  color: white;
}


.home-fidelity-box .dot:nth-child(2) {
  left: 33.3333%;
}

.home-fidelity-box .dot:nth-child(3) {
  left: 66.6667%;
}

.home-fidelity-box .dot:last-child {
  left: 100%;
  transform: translate(-100%, -50%);
}

.home-fidelity-box .points-indicator {
  font-weight: 600;
  position: relative;
  left: 5%;
  top: 0;
  transform: translateX(-50%);
  text-align: center;
  background-color: var(--dodeca-orange);
  color: white;
  width: 35%;
}

.home-fidelity-box .points-indicator::after {
  position: absolute;
  bottom: 0;
  transform: translate(-50%, 50%) rotate(45deg);
  left: 50%;
  content: ' ';
  background: var(--dodeca-orange);
  width: 10px;
  height: 10px;
  border-radius: 25%;
}


.fidelity-awards p {
  font-size: 0.8rem;
}

.fidelity-awards p.text-orange {
  font-size: 1rem;
  font-weight: 600;
}

.fidelity-awards p.text-green {
  font-size: 1.3rem;
  font-weight: 600;
}


.border-right-orange {
  border-right: 1px solid var(--dodeca-orange);
}

.home-coupons {
  border-radius: 1rem;
  background-image: var(--dodeca-green-gradient);
}

.home-spesa {
  border-radius: 1rem;
  background: var(--dodeca-orange-40);
}

.home-vantaggi {
  border-radius: 1rem;
  background-image: var(--dodeca-orange-gradient);
}


.home-coupons .col-6:first-child>*,
.home-vantaggi .col-6:first-child>* {
  padding-left: 0.5rem;
}

.menu-page {
  font-size: 1.2rem;
}

.menu-page .page-card {
  background: var(--dodeca-background);
}


.placeholder-card {
  border-radius: 1rem;
}


.news-title {
  font-size: 1.1rem;
  font-weight: bold;
}

.page-card.article-header .date {
  font-size: 0.8rem;
}

.page-card.article-header img {
  position: relative;
  z-index: 10;
}

.page-card.article-body {
  position: relative;
  z-index: 2;
  top: -19rem;
  padding-top: 12rem;
}

.icon-shop {
  width: 1.5rem;
}

.fs-small {
  font-size: 0.75rem;
}

.pass-title {
  font-size: 1.2rem;
  font-weight: bold;
  color: var(--dodeca-brown);
}

.background-pass {
  background-image: url('/img/DodecaPassBg.svg');
  background-size: cover;
}


.advantage {
  position: relative;
}

.box-end {
  position: absolute;
  top: 0;
  right: 0;
  padding: 1rem;
  border-radius: 1rem;
  border-top-left-radius: 0;
  border-bottom-right-radius: 0;
}

.coupon-divider {
  margin: 1rem 0;
  border: 1px dashed gray;
}

.m-neg-1dot5rem {
  margin: 0 -1.5rem;
}

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


.input-group> :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
  margin-left: calc(-1 * var(--bs-border-width));
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.input-group .input-group-text:last-child {
  border-right: 1px solid #ced4da;
}

.input-group>.form-control,
.input-group>.form-floating,
.input-group>.form-select {
  position: relative;
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
}

.input-group>.form-floating:not(:first-child)>.form-control,
.input-group>.form-floating:not(:first-child)>.form-select {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.form-floating>.form-control-plaintext:focus,
.form-floating>.form-control-plaintext:not(:placeholder-shown),
.form-floating>.form-control:focus,
.form-floating>.form-control:not(:placeholder-shown) {
  padding-top: 1.625rem;
  padding-bottom: .625rem;
}


.advantage-prize.active {
  border: 2px solid var(--dodeca-green);
}

.advantage-prize.active .box-end {
  background: var(--dodeca-green);
  color: white;
  border-top-right-radius: 0.8rem !important;
}

.advantage-prize.active .ti-lock-open {
  color: var(--dodeca-green);
}

.advantage-prize.active .dot.bg-green {
  background: var(--dodeca-green) !important;
}

#map {
  height: 300px;
  width: 100%;
  border-radius: 0.5rem;
}
