/* Defensive wrapper reset for Joomla module positions */
.moduletable:has(> .ds2cv), .moduletable.ds2comfortview{overflow:visible !important;}
/* ============================================================
   DOMOSERWIS • DS2 Comfort View v1.5.1
   Premium visual CTA module for multilingual home pages
   Scope: .ds2cv only; uses DS2 variables when available
   ============================================================ */
.ds2cv{
  --ds2cv-brand:var(--ds-brand,#2622fd);
  --ds2cv-brand2:var(--ds-brand2,#1a49ff);
  --ds2cv-red:var(--ds-red,#d60000);
  --ds2cv-red2:var(--ds-red2,#ff3434);
  --ds2cv-red3:var(--ds-red3,#9f0000);
  --ds2cv-wa:var(--ds-wa,#25D366);
  --ds2cv-wa2:var(--ds-wa2,#128C7E);
  --ds2cv-ink:var(--ds-ink,#1f2433);
  --ds2cv-muted:var(--ds-muted,#424a63);
  --ds2cv-line:var(--ds-line,rgba(38,34,253,.14));
  --ds2cv-line2:var(--ds-line2,rgba(38,34,253,.10));
  --ds2cv-soft:var(--ds-soft,#f6f8ff);
  --ds2cv-r:28px;
  --ds2cv-r2:22px;
  --ds2cv-shadow:0 24px 70px rgba(27,35,68,.13);
  width:100% !important;
  max-width:var(--ds2cv-max,1320px) !important;
  margin:18px auto 18px !important;
  padding:0 !important;
  box-sizing:border-box !important;
  color:var(--ds2cv-ink) !important;
  font-family:inherit !important;
  line-height:1.45 !important;
}
.ds2cv--full{
  width:100vw !important;
  max-width:none !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  padding:22px max(18px, calc((100vw - var(--ds2cv-inner,1320px)) / 2)) !important;
  background:
    radial-gradient(820px 340px at 18% 20%, rgba(38,34,253,.08), transparent 62%),
    radial-gradient(760px 300px at 86% 84%, rgba(26,73,255,.07), transparent 62%),
    linear-gradient(180deg, rgba(249,251,255,.98) 0%, rgba(239,244,255,.92) 100%) !important;
  border-top:1px solid rgba(38,34,253,.08) !important;
  border-bottom:1px solid rgba(38,34,253,.10) !important;
}
.ds2cv--full .ds2cv__plate{
  max-width:var(--ds2cv-inner,1320px) !important;
  margin:0 auto !important;
}
.ds2cv,
.ds2cv *,
.ds2cv *::before,
.ds2cv *::after{box-sizing:border-box !important;}
.ds2cv a,
.ds2cv a:hover,
.ds2cv a:focus{text-decoration:none !important;}
.ds2cv a[href^="tel:"]::before,
.ds2cv a[href^="tel:"]::after{content:none !important;display:none !important;}
.ds2cv svg{display:block !important;width:18px !important;height:18px !important;max-width:18px !important;min-width:18px !important;fill:currentColor !important;}

.ds2cv__plate{
  position:relative !important;
  padding:12px !important;
  border-radius:34px !important;
  background:
    radial-gradient(520px 260px at 15% 20%, rgba(38,34,253,.18), transparent 58%),
    radial-gradient(460px 240px at 86% 82%, rgba(26,73,255,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(244,247,255,.98) 100%) !important;
  border:1px solid rgba(38,34,253,.16) !important;
  box-shadow:0 22px 60px rgba(18,28,45,.08) !important;
  overflow:visible !important;
}
.ds2cv__plate::before{
  content:"" !important;
  position:absolute !important;
  left:28px !important;
  right:28px !important;
  bottom:-12px !important;
  height:28px !important;
  border-radius:999px !important;
  background:rgba(38,34,253,.10) !important;
  filter:blur(18px) !important;
  pointer-events:none !important;
  z-index:0 !important;
}
.ds2cv__shell{
  position:relative !important;
  min-height:var(--ds2cv-desktop-h,430px) !important;
  border:1px solid rgba(255,255,255,.84) !important;
  border-radius:26px !important;
  overflow:hidden !important;
  background:#fff !important;
  box-shadow:var(--ds2cv-shadow) !important;
  isolation:isolate !important;
  z-index:1 !important;
}
.ds2cv__shell::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  pointer-events:none !important;
  z-index:3 !important;
  border-radius:inherit !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.58), inset 0 1px 0 rgba(255,255,255,.78) !important;
}
.ds2cv__media,
.ds2cv__media picture,
.ds2cv__media img{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
}
.ds2cv__media{z-index:0 !important;background:#eef2ff !important;}
.ds2cv__media picture{margin:0 !important;padding:0 !important;}
.ds2cv__media img{
  object-fit:cover !important;
  object-position:center center !important;
  transform:scale(1.002) !important;
  max-width:none !important;
  border:0 !important;
}
.ds2cv__shade{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:
    linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(248,250,255,.94) 24%, rgba(248,250,255,.68) 44%, rgba(255,255,255,.12) 70%, rgba(255,255,255,0) 100%),
    radial-gradient(560px 360px at 18% 30%, rgba(38,34,253,.14), transparent 66%) !important;
  pointer-events:none !important;
}
.ds2cv__glow{
  position:absolute !important;
  inset:14px !important;
  border-radius:21px !important;
  z-index:2 !important;
  pointer-events:none !important;
  border:1px solid rgba(255,255,255,.28) !important;
}
.ds2cv__content{
  position:relative !important;
  z-index:4 !important;
  width:min(505px, 48%) !important;
  min-height:var(--ds2cv-desktop-h,430px) !important;
  padding:42px 28px 34px 30px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:flex-start !important;
}
.ds2cv__eyebrow{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:32px !important;
  padding:7px 13px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.86) !important;
  border:1px solid rgba(38,34,253,.16) !important;
  box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
  color:var(--ds2cv-brand) !important;
  font-size:12.5px !important;
  font-weight:950 !important;
  line-height:1.1 !important;
  margin:0 0 14px 0 !important;
  white-space:nowrap !important;
}
.ds2cv__title{
  margin:0 0 10px 0 !important;
  padding:0 !important;
  color:var(--ds2cv-brand) !important;
  font-size:clamp(28px,2.85vw,42px) !important;
  line-height:1.08 !important;
  font-weight:950 !important;
  letter-spacing:-.045em !important;
  text-align:left !important;
  max-width:430px !important;
}
.ds2cv__text{
  margin:0 0 18px 0 !important;
  padding:0 !important;
  color:rgba(31,36,51,.86) !important;
  font-size:15px !important;
  line-height:1.65 !important;
  font-weight:650 !important;
  text-align:left !important;
  max-width:420px !important;
}
.ds2cv__actions,
.ds2cv__mobileActions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:100% !important;
}
.ds2cv__btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  min-height:48px !important;
  padding:13px 16px !important;
  border-radius:16px !important;
  border:1px solid rgba(255,255,255,.32) !important;
  color:#fff !important;
  font-size:14px !important;
  font-weight:950 !important;
  line-height:1.12 !important;
  white-space:nowrap !important;
  box-shadow:0 16px 36px rgba(38,34,253,.30) !important;
  transition:transform .22s ease, box-shadow .22s ease, filter .22s ease !important;
}
.ds2cv__btn:hover,
.ds2cv__btn:focus-visible{
  transform:translateY(-2px) !important;
  filter:brightness(1.05) !important;
  color:#fff !important;
}
.ds2cv__btn--primary{
  background:
    linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,0) 40%),
    linear-gradient(135deg,var(--ds2cv-red2) 0%, var(--ds2cv-red) 52%, var(--ds2cv-red3) 100%) !important;
  box-shadow:0 16px 40px rgba(214,0,0,.34) !important;
}
.ds2cv__btn--wa{
  background:linear-gradient(90deg,var(--ds2cv-wa) 0%, var(--ds2cv-wa2) 100%) !important;
  box-shadow:0 16px 40px rgba(18,140,126,.28) !important;
}
.ds2cv__btn--sms{
  background:linear-gradient(135deg,#ffcc33 0%, #f0a900 48%, #d89000 100%) !important;
  box-shadow:0 16px 40px rgba(216,144,0,.26) !important;
}
.ds2cv__btn--tg{
  background:linear-gradient(135deg,#35b7ff 0%, #229ED9 54%, #157fbb 100%) !important;
  box-shadow:0 16px 40px rgba(34,158,217,.28) !important;
}
.ds2cv__ico{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.18) !important;
  color:#fff !important;
  flex:0 0 28px !important;
}
.ds2cv__note{
  margin:13px 0 0 0 !important;
  color:rgba(66,74,99,.86) !important;
  font-size:13px !important;
  line-height:1.45 !important;
  font-weight:650 !important;
  text-align:left !important;
}
.ds2cv__badge{
  position:absolute !important;
  z-index:5 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  border-radius:18px !important;
  border:1px solid rgba(255,255,255,.62) !important;
  color:#fff !important;
  text-align:center !important;
  box-shadow:0 18px 42px rgba(18,24,39,.20) !important;
  backdrop-filter:blur(10px) !important;
  -webkit-backdrop-filter:blur(10px) !important;
}
.ds2cv__badge--top{
  top:20px !important;
  right:20px !important;
  min-width:92px !important;
  min-height:74px !important;
  padding:10px 12px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,0) 34%),
    linear-gradient(135deg,var(--ds2cv-brand) 0%, var(--ds2cv-brand2) 100%) !important;
}
.ds2cv__badge--bottom{
  right:20px !important;
  bottom:20px !important;
  min-width:130px !important;
  min-height:64px !important;
  padding:10px 16px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.24), rgba(255,255,255,0) 38%),
    linear-gradient(135deg,var(--ds2cv-wa) 0%, var(--ds2cv-wa2) 100%) !important;
}
.ds2cv__badgeNum{
  display:block !important;
  font-size:24px !important;
  font-weight:950 !important;
  letter-spacing:-.04em !important;
  line-height:1 !important;
  color:#fff !important;
}
.ds2cv__badgeLabel{
  display:block !important;
  max-width:110px !important;
  color:rgba(255,255,255,.92) !important;
  font-size:10.5px !important;
  font-weight:850 !important;
  line-height:1.15 !important;
}
.ds2cv__mobilePanel{display:none !important;}
.ds2cv__waChoices{
  width:100% !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin:12px 0 0 0 !important;
}
.ds2cv__waChoices--desktop{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  max-width:455px !important;
}
.ds2cv__waChoice{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:7px !important;
  min-height:34px !important;
  padding:8px 11px !important;
  border-radius:999px !important;
  background:rgba(37,211,102,.10) !important;
  border:1px solid rgba(18,140,126,.18) !important;
  color:#0f766e !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1.1 !important;
  box-shadow:0 8px 18px rgba(18,140,126,.08) !important;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease !important;
}
.ds2cv__choiceIcon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:22px !important;
  height:22px !important;
  min-width:22px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg,var(--ds2cv-wa) 0%, var(--ds2cv-wa2) 100%) !important;
  color:#fff !important;
  box-shadow:0 8px 16px rgba(18,140,126,.16) !important;
  flex:0 0 22px !important;
}
.ds2cv__choiceIcon svg{
  width:13px !important;
  height:13px !important;
  max-width:13px !important;
  min-width:13px !important;
  fill:currentColor !important;
}
.ds2cv__waChoice:hover,
.ds2cv__waChoice:focus-visible{
  transform:translateY(-1px) !important;
  background:rgba(37,211,102,.16) !important;
  color:#0f766e !important;
  box-shadow:0 12px 24px rgba(18,140,126,.13) !important;
}


/* Ready SMS messages -------------------------------------------------- */
.ds2cv__smsBox{
  width:100% !important;
  max-width:455px !important;
  margin:10px 0 0 0 !important;
  border:1px solid rgba(216,144,0,.22) !important;
  border-radius:16px !important;
  background:rgba(255,204,51,.10) !important;
  box-shadow:0 10px 24px rgba(216,144,0,.08) !important;
  overflow:hidden !important;
}
.ds2cv__smsBox summary{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  min-height:42px !important;
  padding:10px 38px 10px 14px !important;
  color:#8b5a00 !important;
  cursor:pointer !important;
  list-style:none !important;
  font-size:12.5px !important;
  font-weight:950 !important;
  line-height:1.25 !important;
  user-select:none !important;
}
.ds2cv__smsBox summary::-webkit-details-marker{display:none !important;}
.ds2cv__smsBox summary::before{
  content:"✉" !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  margin-right:8px !important;
  border-radius:999px !important;
  background:linear-gradient(135deg,#ffcc33 0%,#e69b00 100%) !important;
  color:#fff !important;
  font-size:13px !important;
  box-shadow:0 7px 16px rgba(216,144,0,.20) !important;
}
.ds2cv__smsBox summary::after{
  content:"⌄" !important;
  position:absolute !important;
  right:14px !important;
  top:50% !important;
  transform:translateY(-54%) rotate(0deg) !important;
  color:#8b5a00 !important;
  font-size:18px !important;
  font-weight:950 !important;
  transition:transform .2s ease !important;
}
.ds2cv__smsBox[open] summary::after{transform:translateY(-48%) rotate(180deg) !important;}
.ds2cv__smsChoices{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:7px !important;
  padding:0 10px 10px !important;
}
.ds2cv__smsChoice{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:7px !important;
  min-height:42px !important;
  padding:8px 9px !important;
  border-radius:12px !important;
  border:1px solid rgba(216,144,0,.20) !important;
  background:rgba(255,255,255,.82) !important;
  color:#795000 !important;
  font-size:11.5px !important;
  font-weight:900 !important;
  line-height:1.2 !important;
  white-space:normal !important;
  text-align:left !important;
  box-shadow:0 7px 16px rgba(216,144,0,.07) !important;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease !important;
}
.ds2cv__smsChoice:hover,
.ds2cv__smsChoice:focus-visible{
  transform:translateY(-1px) !important;
  background:#fff !important;
  color:#795000 !important;
  box-shadow:0 10px 22px rgba(216,144,0,.13) !important;
}
.ds2cv__smsChoiceIcon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:21px !important;
  height:21px !important;
  min-width:21px !important;
  border-radius:999px !important;
  background:linear-gradient(135deg,#ffcc33 0%,#e69b00 100%) !important;
  color:#fff !important;
  font-size:11px !important;
  flex:0 0 21px !important;
}
.ds2cv__smsBox--mobile{display:none !important;}

@media (max-width:980px){
  .ds2cv{max-width:100% !important;padding:0 14px !important;}
  .ds2cv__shell{min-height:350px !important;}
  .ds2cv__content{width:min(420px,54%) !important;padding:34px 24px !important;}
  .ds2cv__title{font-size:clamp(24px,3vw,32px) !important;}
  .ds2cv__shade{background:linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(248,250,255,.92) 34%, rgba(248,250,255,.56) 62%, rgba(255,255,255,.08) 100%) !important;}
}
@media (max-width:767px){
  .ds2cv.ds2cv--full{
    width:100% !important;
    max-width:100% !important;
    margin:14px 0 18px !important;
    padding:0 12px !important;
    background:transparent !important;
    border:0 !important;
  }
  .ds2cv{
    max-width:100% !important;
    margin:14px 0 18px !important;
    padding:0 12px !important;
  }
  .ds2cv__plate{
    padding:8px !important;
    border-radius:28px !important;
    background:
      radial-gradient(320px 220px at 18% 8%, rgba(38,34,253,.16), transparent 62%),
      radial-gradient(300px 210px at 88% 92%, rgba(26,73,255,.10), transparent 64%),
      linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(241,245,255,.98) 100%) !important;
    box-shadow:0 16px 44px rgba(18,28,45,.08) !important;
  }
  .ds2cv__plate::before{left:18px !important;right:18px !important;bottom:-8px !important;height:20px !important;}
  .ds2cv__shell{
    min-height:0 !important;
    aspect-ratio:4/5 !important;
    border-radius:22px !important;
    box-shadow:0 18px 44px rgba(18,24,39,.12) !important;
  }
  .ds2cv__media img{object-position:center center !important;}
  .ds2cv__shade{
    background:linear-gradient(180deg, rgba(255,255,255,.00) 0%, rgba(255,255,255,.02) 100%) !important;
  }
  .ds2cv__glow{inset:9px !important;border-radius:17px !important;}
  .ds2cv__content,
  .ds2cv__badge{
    display:none !important;
  }
  .ds2cv__mobilePanel{
    position:relative !important;
    z-index:3 !important;
    display:block !important;
    margin:10px 0 0 0 !important;
    padding:12px !important;
    border-radius:20px !important;
    background:rgba(255,255,255,.92) !important;
    border:1px solid rgba(38,34,253,.12) !important;
    box-shadow:0 16px 36px rgba(18,24,39,.08) !important;
    backdrop-filter:blur(10px) !important;
    -webkit-backdrop-filter:blur(10px) !important;
  }
  .ds2cv__mobileActions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:9px !important;
  }
  .ds2cv__mobileActions .ds2cv__btn--primary{grid-column:1 / -1 !important;}
  .ds2cv__mobileActions .ds2cv__btn--tg:last-child{grid-column:1 / -1 !important;}
  .ds2cv__btn{width:100% !important;min-height:46px !important;padding:11px 12px !important;border-radius:15px !important;font-size:13.5px !important;}
  .ds2cv__ico{width:25px !important;height:25px !important;min-width:25px !important;flex-basis:25px !important;}
  .ds2cv__ico svg{width:16px !important;height:16px !important;max-width:16px !important;min-width:16px !important;}
  .ds2cv__waChoices--desktop{display:none !important;}
  .ds2cv__waChoices--mobile{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    margin-top:10px !important;
  }
  .ds2cv__waChoice{
    min-height:40px !important;
    padding:8px 9px !important;
    font-size:11.5px !important;
    border-radius:14px !important;
    text-align:left !important;
    white-space:normal !important;
    justify-content:flex-start !important;
  }
  .ds2cv__choiceIcon{
    width:20px !important;
    height:20px !important;
    min-width:20px !important;
    flex-basis:20px !important;
  }
}


@media (max-width:767px){
  .ds2cv__smsBox--desktop{display:none !important;}
  .ds2cv__smsBox--mobile{
    display:block !important;
    max-width:none !important;
    margin-top:10px !important;
    border-radius:15px !important;
  }
  .ds2cv__smsBox summary{
    min-height:44px !important;
    padding:10px 38px 10px 12px !important;
    font-size:12px !important;
  }
  .ds2cv__smsChoices{
    grid-template-columns:1fr !important;
    padding:0 9px 9px !important;
  }
  .ds2cv__smsChoice{
    min-height:40px !important;
    font-size:11.5px !important;
  }
}

@media (max-width:420px){
  .ds2cv__mobilePanel{padding:10px !important;border-radius:18px !important;}
  .ds2cv__btn{font-size:13px !important;}
  .ds2cv__waChoice{font-size:11px !important;}
}
