/* =====================================================================
   Caffè Alverto — dopasowanie treści z Elementora do ciemnego układu.

   ZASADA: nie przestawiamy układu Elementora (to on wie, ile ma kolumn
   i jak się zwijają). Zmieniamy WYŁĄCZNIE kolory, krój i tła.
   Wcześniejsze próby wymuszania flexboxa powodowały zapadanie kolumn.
   ===================================================================== */

/* ---------- 1. TŁA: żadnych jasnych plam (grafiki zostają) ---------- */
.alv-page .elementor-element,
.alv-page .elementor-section,
.alv-page .elementor-container,
.alv-page .elementor-column,
.alv-page .elementor-column-wrap,
.alv-page .elementor-widget-wrap,
.alv-page .elementor-widget,
.alv-page .elementor-widget-container,
.alv-page .elementor-icon-box-wrapper,
.alv-page .elementor-image-box-wrapper{
  background-color:transparent !important;
}

/* ---------- 2. NAGŁÓWKI — wszędzie, także wewnątrz bloków tekstu ---------- */
.alv-page .elementor h1, .alv-page .elementor h2, .alv-page .elementor h3,
.alv-page .elementor h4, .alv-page .elementor h5, .alv-page .elementor h6,
.alv-page .elementor-heading-title,
.alv-page .elementor-widget-text-editor h1,
.alv-page .elementor-widget-text-editor h2,
.alv-page .elementor-widget-text-editor h3,
.alv-page .elementor-widget-text-editor h4,
.alv-page .elementor-widget-text-editor h5,
.alv-page .elementor-widget-text-editor h6,
.alv-page .alv-prose h1, .alv-page .alv-prose h2, .alv-page .alv-prose h3,
.alv-page .alv-prose h4, .alv-page .alv-prose h5, .alv-page .alv-prose h6{
  color:var(--alv-cream) !important;
  font-family:var(--alv-display) !important;
  font-weight:400 !important;
  line-height:1.2 !important; padding-bottom:.05em;
  overflow-wrap:break-word;
}
.alv-page .elementor h1{font-size:clamp(1.9rem,1.4rem + 2.4vw,3.2rem) !important}
.alv-page .elementor h2{font-size:clamp(1.6rem,1.3rem + 1.6vw,2.4rem) !important; margin-top:2.2rem !important}
.alv-page .elementor h3{font-size:clamp(1.25rem,1.1rem + .9vw,1.7rem) !important; margin-top:1.8rem !important}

/* nadtytuły wersalikami (krótkie, rozstrzelone) zostają złote */
.alv-page .elementor-widget-heading h5 .elementor-heading-title,
.alv-page .elementor-widget-heading h6 .elementor-heading-title{
  color:var(--alv-gold) !important;
  font-family:var(--alv-body) !important;
  font-size:.75rem !important; letter-spacing:.24em !important;
  text-transform:uppercase; line-height:1.6 !important;
}

/* ---------- 3. TEKST ---------- */
.alv-page .elementor-widget-text-editor,
.alv-page .elementor-text-editor,
.alv-page .elementor-widget-text-editor p,
.alv-page .elementor-widget-text-editor li,
.alv-page .elementor-widget-text-editor span:not([style*="background"]){
  color:rgba(245,234,216,.84) !important;
  font-family:var(--alv-body) !important;
  font-size:clamp(.97rem,.94rem + .15vw,1.06rem) !important;
  line-height:1.75 !important;
}
.alv-page .elementor-widget-text-editor p{margin:0 0 1.15em !important}
.alv-page .elementor-widget-text-editor p:last-child{margin-bottom:0 !important}
.alv-page .elementor-widget-text-editor strong,
.alv-page .elementor-widget-text-editor b{color:var(--alv-cream) !important; font-weight:600 !important}
.alv-page .elementor-widget a:not(.elementor-button){color:var(--alv-gold) !important}
.alv-page .elementor-widget a:not(.elementor-button):hover{color:var(--alv-cream) !important}

/* ---------- 4. LISTY ---------- */
.alv-page .elementor-icon-list-text,
.alv-page .elementor-icon-list-item,
.alv-page .elementor-icon-list-item > a,
.alv-page .elementor-widget-icon-list span,
.alv-page .elementor-widget-icon-list a{
  color:rgba(245,234,216,.86) !important;
  font-family:var(--alv-body) !important;
}
.alv-page .elementor-icon-list-icon i,
.alv-page .elementor-icon-list-icon svg{
  color:var(--alv-gold) !important; fill:var(--alv-gold) !important;
  background:transparent !important;
}

/* ---------- 5. KAFELKI: tylko kolory i wyrównanie wysokości ---------- */
.alv-page .elementor-widget-icon-box > .elementor-widget-container,
.alv-page .elementor-widget-image-box > .elementor-widget-container{
  background:var(--alv-ink-2) !important;
  border:1px solid var(--alv-line);
  padding:clamp(1.4rem,2.5vw,1.9rem) !important;
  height:100%;                       /* równa wysokość bez zmiany układu */
  transition:border-color .3s;
}
.alv-page .elementor-widget-icon-box:hover > .elementor-widget-container,
.alv-page .elementor-widget-image-box:hover > .elementor-widget-container{
  border-color:var(--alv-gold);
}
/* standardowy sposób WooCommerce/Elementora na równe kolumny w rzędzie */
.alv-page .elementor-column > .elementor-widget-wrap{align-content:flex-start}
.alv-page .elementor-column,
.alv-page .elementor-widget-wrap,
.alv-page .elementor-widget-container,
.alv-page .elementor-icon-box-content{min-width:0}

.alv-page .elementor-icon-box-title,
.alv-page .elementor-icon-box-title a,
.alv-page .elementor-image-box-title{
  color:var(--alv-cream) !important;
  font-family:var(--alv-display) !important;
  font-size:clamp(1rem,.95rem + .3vw,1.25rem) !important;
  line-height:1.3 !important; margin:0 0 .5rem !important;
  /* długie słowa jak „Lokalizacja" mają się zmieścić, a nie łamać po sylabie */
  overflow-wrap:normal; word-break:keep-all; hyphens:none;
  text-wrap:balance;
}
.alv-page .elementor-icon-box-description,
.alv-page .elementor-image-box-description{
  color:rgba(245,234,216,.76) !important;
  font-size:.94rem !important; line-height:1.65 !important; margin:0 !important;
  overflow-wrap:break-word; word-break:normal; hyphens:none;
}

.alv-page .elementor-icon{
  background-color:transparent !important;
  color:var(--alv-gold) !important; fill:var(--alv-gold) !important;
  border-color:var(--alv-gold) !important;
}
.alv-page .elementor-icon svg,
.alv-page .elementor-icon svg *{fill:var(--alv-gold) !important; stroke:var(--alv-gold) !important}
.alv-page .elementor-icon i{color:var(--alv-gold) !important}

/* ---------- 6. PRZYCISKI ---------- */
.alv-page .elementor-button{
  background-color:var(--alv-gold) !important; color:#090806 !important;
  border:1px solid var(--alv-gold) !important; border-radius:0 !important;
  font-family:var(--alv-body) !important; font-weight:500 !important;
  letter-spacing:.12em !important; text-transform:uppercase !important;
  transition:background .35s,color .35s;
}
.alv-page .elementor-button:hover{background-color:transparent !important; color:var(--alv-gold) !important}
.alv-page .elementor-button-text,
.alv-page .elementor-button-content-wrapper{color:inherit !important}

/* ---------- 7. OBRAZY I MAPY ---------- */
.alv-page .elementor-widget-image img{max-width:100%; height:auto; border:1px solid var(--alv-line)}
.alv-page .elementor-widget-google_maps iframe{
  width:100% !important; min-height:320px;
  border:1px solid var(--alv-line);
  filter:grayscale(.3) contrast(.95) brightness(.9);
}

/* ---------- 8. FORMULARZE ---------- */
.alv-page .elementor-field-group > label,
.alv-page .elementor-field-label,
.alv-page .alv-prose label,
.alv-page .wpcf7 label{
  color:var(--alv-cream) !important;
  font-family:var(--alv-body) !important;
  font-size:.84rem !important; font-weight:500 !important;
  margin-bottom:.45rem !important; display:block;
}
.alv-page .elementor-field-textual,
.alv-page .elementor-field,
.alv-page .wpcf7 input[type="text"],
.alv-page .wpcf7 input[type="email"],
.alv-page .wpcf7 input[type="tel"],
.alv-page .wpcf7 textarea{
  background:var(--alv-ink-2) !important;
  border:1px solid var(--alv-line) !important;
  color:var(--alv-cream) !important; border-radius:2px !important;
  padding:.9rem 1rem !important;
  font-family:var(--alv-body) !important; font-size:16px !important;
  width:100% !important; max-width:100%;
}
.alv-page .elementor-field-textual:focus,
.alv-page .wpcf7 input:focus,
.alv-page .wpcf7 textarea:focus{
  border-color:var(--alv-gold) !important; outline:none;
  box-shadow:0 0 0 3px rgba(212,161,91,.15) !important;
}
.alv-page .wpcf7 ::placeholder,
.alv-page .elementor-field-textual::placeholder{color:rgba(245,234,216,.35) !important}
.alv-page .wpcf7 input[type="submit"]{
  background:var(--alv-gold) !important; color:#090806 !important;
  border:1px solid var(--alv-gold) !important; width:auto !important;
  padding:1rem 2.1rem !important; cursor:pointer;
  font-size:.82rem !important; font-weight:500 !important;
  letter-spacing:.14em !important; text-transform:uppercase;
}

/* ---------- 9. DROBIAZGI ---------- */
.alv-page .elementor-widget-text-editor p:empty{display:none}
.alv-page .elementor-divider-separator{border-color:var(--alv-line) !important}
.alv-page .elementor-background-overlay{opacity:.3 !important}


/* ---------- kafelki: minimalna szerokość kolumny ---------- */
/* przy trzech kafelkach obok siebie żaden nie powinien być węższy niż 240 px,
   bo wtedy tytuły łamią się po sylabach */
@media(min-width:1025px){
  .alv-page .elementor-widget-icon-box > .elementor-widget-container,
  .alv-page .elementor-widget-image-box > .elementor-widget-container{
    min-width:240px;
  }
}
/* poniżej tabletu kafelki i tak idą jeden pod drugim — wtedy pełna szerokość */
@media(max-width:1024px){
  .alv-page .elementor-widget-icon-box > .elementor-widget-container,
  .alv-page .elementor-widget-image-box > .elementor-widget-container{
    min-width:0; width:100%;
  }
}

/* formularz Contact Form 7: gwiazdka przy polach wymaganych i krótkie komunikaty */
.alv-page .wpcf7 .alv-req{color:#E8A097; margin-left:.15rem}
.alv-page .wpcf7 .wpcf7-not-valid-tip{margin-top:.4rem; font-size:.8rem; color:#F2A79C}
.alv-page .wpcf7 .wpcf7-not-valid{border-color:#C8574D !important}
.alv-page .wpcf7 form .wpcf7-response-output{margin:1.2rem 0 0; padding:.9rem 1rem; border-radius:4px; font-size:.9rem}

/* bez "Wielkich Liter Na Początku Słów" z motywu: po polsku to błąd */
.alv-page .wpcf7,
.alv-page .wpcf7 label,
.alv-page .wpcf7 input,
.alv-page .wpcf7 textarea,
.alv-page .wpcf7 .wpcf7-not-valid-tip,
.alv-page .wpcf7 .wpcf7-response-output,
.alv-page .alv-main .elementor h1,.alv-page .alv-main .elementor h2,.alv-page .alv-main .elementor h3,
.alv-page .alv-main .elementor h4,.alv-page .alv-main .elementor h5,.alv-page .alv-main .elementor h6,
.alv-page .alv-main .elementor-heading-title,
.alv-page .alv-prose > h1,.alv-page .alv-prose > h2,.alv-page .alv-prose > h3,.alv-page .alv-prose > h4{text-transform:none !important}
.alv-page .wpcf7 label{font-size:.88rem; color:var(--alv-cream)}

/* komunikat ogólny formularza w kolorach serwisu */
.alv-page .wpcf7 form .wpcf7-response-output{border:1px solid rgba(212,161,91,.4) !important; background:rgba(212,161,91,.06); color:var(--alv-cream)}
.alv-page .wpcf7 form.invalid .wpcf7-response-output,
.alv-page .wpcf7 form.unaccepted .wpcf7-response-output,
.alv-page .wpcf7 form.failed .wpcf7-response-output{border-color:rgba(200,87,77,.55) !important; background:rgba(200,87,77,.1); color:#F2C2BC}
.alv-page .wpcf7 form.sent .wpcf7-response-output{border-color:rgba(127,209,164,.5) !important; background:rgba(127,209,164,.08); color:#CFEFDD}
