/* SAVI Produkt – style (Elementor widget) */
.savi-brochure{
  background: var(--savi-bg, #1D344A);
  color: var(--savi-text, #fff);
  border-radius: var(--savi-radius, 18px);
  overflow:hidden;
  width:100%;
}
.savi-brochure, .savi-brochure *{ box-sizing:border-box; }
.savi-brochure *{ color: var(--savi-text, #fff) !important; }

/* ===== GRID (młot na Elementor fit-content) ===== */
.savi-wrap{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  justify-items:stretch;
  align-items:stretch;
  gap:22px;
  padding:28px 30px 18px;
  width:100%;
}

/* Lewa kolumna */
.savi-brochure .savi-left{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  justify-self:stretch !important;
}

.savi-brochure .savi-copy{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  align-self:stretch !important;
  justify-self:stretch !important;
}

.savi-brochure .savi-title,
.savi-brochure .savi-subtitle,
.savi-brochure .savi-desc{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
}

.savi-badge{
  background: var(--savi-accent, #E63323);
  padding:12px 18px;
  font-weight:900;
  margin:0 0 12px;
  display:inline-block;
  font-size:clamp(18px, 2vw, 26px);
  letter-spacing:.3px;
  line-height:1.1;
}

/* 1 linia desktop (clamp żeby się mieściło) */
.savi-title{
  font-size:clamp(24px, 2.2vw, 32px);
  font-weight:900;
  margin:0 0 8px;
  line-height:1.08;
  white-space:nowrap !important;
}

/* ✅ NOWE: dopowiedzenie (podtytuł) — nie nagłówek */
.savi-subtitle{
  margin:0 0 18px;              /* większy odstęp przed opisem */
  font-weight:900;              /* mocniejszy bold */
  font-size:clamp(16px, 1.25vw, 19px);
  line-height:1.3;
  letter-spacing:.2px;
}

/* dodatkowy oddech między subtitle a opisem */
.savi-subtitle + .savi-desc{
  margin-top:4px;
}

/* Opis wyjustowany */
.savi-desc{
  opacity:.9;
  margin:0 0 14px;
  text-align:justify;
  text-justify:inter-word;
  text-align-last:left;
  hyphens:auto;
  justify-self:stretch !important;
}

/* ===== CONTACTS ===== */
.savi-contacts{
  background: var(--savi-contacts-bg, rgba(255,255,255,.06));
  border-radius:16px;
  padding:14px 16px;
  width:fit-content;
  max-width:100%;
  min-width: var(--savi-contacts-minw, 420px); /* desktop */
}

.savi-contacts-title{
  font-weight:900;
  margin:0 0 10px;
  text-transform:uppercase;
  letter-spacing:.6px;
}
.savi-contacts-title::after{ display:none !important; }

.savi-person-name{ font-weight:900; margin:6px 0 6px; }

.savi-row{
  display:grid;
  grid-template-columns:22px max-content max-content;
  gap:10px;
  align-items:center;
  padding:6px 0;
}

.savi-ico{
  width:22px;
  height:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  line-height:1;
}

.savi-value{
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}

.show-link{
  background: var(--savi-accent, #E63323);
  padding:7px 12px;
  border-radius:999px;
  font-weight:900;
  font-size:13px;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.22);
  white-space:nowrap;
  justify-self:start;
}

.savi-divider{ height:1px; background:rgba(255,255,255,.15); margin:10px 0; }

/* ===== RIGHT ===== */
.savi-right{
  position:relative;
  min-width:0;
  min-height:0;
}

.savi-image{
  position:relative;
  border-radius:16px;
  overflow:hidden;
  height:100%;
  min-height:0;
  z-index:2;
}

.savi-image img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.savi-stripes{
  position:absolute;
  left:50%;
  bottom:0;
  transform: translateX(-10%) translateY(-85%);
  width:420px;
  height:260px;
  background:repeating-linear-gradient(
    135deg,
    var(--savi-accent, #E63323) 0 18px,
    transparent 18px 46px
  );
  z-index:1;
  pointer-events:none;
}

/* ===== USP ===== */
.savi-uspbar{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  padding:22px 30px 30px;
  text-align:center;
}

.savi-uspitem{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

/* wspólny kontener ikon w USP */
.savi-uspitem i{
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;

  font-size:32px;
  line-height:1;
  margin:0 0 8px;
}

.savi-usptitle{ font-weight:900; }
.savi-uspdesc{ font-size:12px; opacity:.85; }

/* ===== MOBILE ===== */
@media(max-width:900px){
  .savi-wrap{
    grid-template-columns:1fr;
    gap:6px;
    padding:14px 14px 10px;
  }

  .savi-right{ order:-1; }

  .savi-image{
    min-height:auto;
    height:auto;
  }
  .savi-image img{
    position:static;
    height:auto;
    width:100%;
    display:block;
  }

  .savi-title{
    white-space:normal !important;
    margin-bottom:8px;
  }

  .savi-subtitle{
    margin-bottom:10px;
  }

  .savi-uspbar{
    grid-template-columns:repeat(2,1fr);
    gap:14px;
    padding:14px 14px 16px;
    justify-items:center;
  }

  .savi-uspitem:nth-child(3){
    grid-column:1 / -1;
    max-width:320px;
    width:100%;
    justify-self:center;
  }

  .savi-row{
    grid-template-columns:22px minmax(0,1fr);
    row-gap:8px;
    column-gap:12px;
  }
  .savi-row .show-link{
    grid-column:1 / -1;
    justify-self:start;
    margin-top:2px;
  }

  .savi-stripes{ display:none; }

  /* mobile: kafelek na pełną szerokość */
  .savi-contacts{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  /* mobile: zmniejsz font telefonu+maila o 1px + popraw line-height */
  .savi-value{
    font-size:14px !important;
    line-height:1.35 !important;
  }

  /* Telefon dalej może być skracany */
  .savi-value:not(.savi-mail){
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    min-width:0 !important;
  }

  /* MAIL: 1 linia, bez zawijania, bez ucinania — przewijanie poziome */
  .savi-value.savi-mail{
    white-space:nowrap !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    text-overflow:clip !important;
    max-width:100% !important;
    display:block !important;
    min-width:0 !important;
    -webkit-overflow-scrolling:touch;
    padding-right:8px;
    padding-bottom:2px;
  }

  .savi-value.savi-mail::-webkit-scrollbar{
    height:0;
  }

  .savi-brochure .savi-usptitle{ font-size:12px; }
  .savi-brochure .savi-uspdesc{ font-size:10px; }
}
.savi-en-wrap{
  margin-top:14px;
}

.savi-en-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 16px;
  background:var(--savi-accent, #E63323);
  color:#fff !important;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  text-decoration:none;
  font-size:13px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:normal;
}

.savi-en-button:hover{
  color:#fff !important;
  text-decoration:none;
  opacity:.92;
}

@media(max-width:900px){
  .savi-en-button{
    width:100%;
    text-align:center;
  }
}