/* ==========================================================================
   Traumglass — warstwa UI/UX (B2B)
   Nakładka na motyw hnice + Elementor + WooCommerce.
   Nie zmienia struktury HTML: wyłącznie typografia, rytm, komponenty,
   dostępność. Każda reguła celuje w istniejące klasy motywu.
   ========================================================================== */

:root{
  color-scheme:light;
  --tg-ink:#12171f;            /* tekst główny — mocniejszy kontrast niż #666 */
  --tg-ink-2:#4a5462;          /* tekst pomocniczy, nadal AA na białym */
  --tg-line:#e3e7ec;
  --tg-bg-soft:#f6f8fa;
  --tg-accent:#c8781e;         /* akcent marki z logo */
  --tg-accent-ink:#8f5412;
  --tg-radius:10px;
  --tg-radius-sm:6px;
  --tg-shadow-1:0 1px 2px rgba(18,23,31,.06), 0 2px 8px rgba(18,23,31,.05);
  --tg-shadow-2:0 6px 16px rgba(18,23,31,.10), 0 2px 6px rgba(18,23,31,.06);
  --tg-focus:#1a6dd8;
  --tg-tap:44px;               /* minimalny cel dotykowy */
  /* motyw uzywa tej zmiennej jako tla stron WooCommerce, ale jej nie definiuje
     (tak samo w oryginale) - tlo bylo przezroczyste i w trybie ciemnym
     przegladarki strona robila sie czarna, a logo znikalo */
  --e-global-color-background-light:#fff;
  --tg-topbar-h:93px;          /* wysokosc paska informacyjnego nad menu */
}
html{ background-color:#fff; }

/* --------------------------------------------------------------------------
   1. Typografia — czytelność długich opisów technicznych
   -------------------------------------------------------------------------- */
body{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; color:var(--tg-ink); }

.elementor-widget-text-editor p,
.woocommerce-Tabs-panel p,
.entry-content p{ line-height:1.72; }

/* ograniczenie długości wiersza — powyżej ~75 znaków czytelność spada */
.woocommerce-Tabs-panel p,
.woocommerce-product-details__short-description p{ max-width:72ch; }

h1,h2,h3,h4{ letter-spacing:-.015em; line-height:1.18; }

/* --------------------------------------------------------------------------
   2. Nagłówek przyklejony — nawigacja stale w zasięgu
   -------------------------------------------------------------------------- */
@media (min-width:1025px){
  /* motyw ustawia overflow-x:hidden, co tworzy kontener przewijania i
     uniewaznia position:sticky. clip przycina tak samo, ale kontenera nie tworzy. */
  body, body > .site{ overflow-x:clip; overflow-y:visible; }

  /* ujemny top: pas informacyjny odjezdza, przyklejona zostaje sama nawigacja */
  body > .site > header, body > header{
    position:-webkit-sticky !important;
    position:sticky !important;
    top:calc(-1 * var(--tg-topbar-h)) !important;
    z-index:900 !important;
    background:#fff;
    border-bottom:1px solid var(--tg-line);
    box-shadow:var(--tg-shadow-1);
  }
}

/* pasek informacyjny nad menu — czytelniejsza hierarchia */
body > header p{ margin:0; }

/* --------------------------------------------------------------------------
   3. Przyciski — jeden spójny system zamiast kilku wariantów
   -------------------------------------------------------------------------- */
.elementor-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.wpforms-submit, .btn-primary,
.single_add_to_cart_button{
  border-radius:var(--tg-radius-sm) !important;
  font-weight:600 !important;
  letter-spacing:.01em;
  min-height:var(--tg-tap);
  padding:.85em 1.6em !important;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease;
  border:1px solid transparent;
}
.elementor-button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.wpforms-submit:hover, .btn-primary:hover,
.single_add_to_cart_button:hover{
  transform:translateY(-1px);
  box-shadow:var(--tg-shadow-2);
}
.elementor-button:active,
.woocommerce a.button:active, .single_add_to_cart_button:active{
  transform:translateY(0); box-shadow:var(--tg-shadow-1);
}

/* --------------------------------------------------------------------------
   4. Dostępność — widoczny focus i sensowne cele dotykowe
   -------------------------------------------------------------------------- */
a:focus-visible, button:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid var(--tg-focus);
  outline-offset:2px;
  border-radius:3px;
}
.main-navigation a, .menu-item > a{ padding-top:.5rem; padding-bottom:.5rem; }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
}

/* --------------------------------------------------------------------------
   5. Karty produktów — spójna siatka, jednolite proporcje zdjęć
   -------------------------------------------------------------------------- */
.woocommerce ul.products li.product,
li.product{
  background:#fff;
  border:1px solid var(--tg-line);
  border-radius:var(--tg-radius);
  overflow:hidden;
  transition:box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.woocommerce ul.products li.product:hover,
li.product:hover{
  box-shadow:var(--tg-shadow-2);
  border-color:#d3d9e0;
  transform:translateY(-2px);
}
li.product .product-image img,
li.product .woocommerce-loop-product__link img{
  aspect-ratio:1/1; object-fit:cover; width:100%; display:block;
}
li.product .product-caption{ padding:1rem 1.1rem 1.2rem; }
li.product h3.woocommerce-loop-product__title{
  font-size:1rem; line-height:1.4; font-weight:600; margin:.1rem 0 .45rem;
}
/* motyw: 1 linia (-webkit-line-clamp), oryginal nadpisuje overflow:visible,
   wiec reszta tytulu wylewala sie pod karte ("Massgeschneiderte..." + nakladajace
   sie linie). Pelny tytul - nazwy produktow roznia sie dopiero na koncu. */
ul.products li.product h3.woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title{
  display:block; -webkit-line-clamp:unset; line-clamp:none; height:auto;
  /* "Massgeschneiderte" jest szersze niz waska kolumna - dzielenie wg jezyka (lang=de)
     zamiast lamania w przypadkowym miejscu (overflow-wrap:break-word z motywu) */
  -webkit-hyphens:auto; hyphens:auto; overflow-wrap:normal;
}
@media (min-width:690px){
  ul.products li.product h3.woocommerce-loop-product__title{ font-size:1rem; }
}
li.product .price{ font-weight:700; color:var(--tg-ink); }
li.product .posted-in{ font-size:.78rem; color:var(--tg-ink-2); letter-spacing:.02em; }

/* --------------------------------------------------------------------------
   6. Karta produktu — specyfikacja techniczna czytana jak arkusz danych
   -------------------------------------------------------------------------- */
.woocommerce-product-attributes,
table.shop_attributes{
  width:100%; border-collapse:collapse;
  border:1px solid var(--tg-line); border-radius:var(--tg-radius); overflow:hidden;
}
.woocommerce-product-attributes th, table.shop_attributes th{
  text-align:left; font-weight:600; color:var(--tg-ink);
  background:var(--tg-bg-soft); width:38%; padding:.7rem .9rem;
  border-bottom:1px solid var(--tg-line);
}
.woocommerce-product-attributes td, table.shop_attributes td{
  padding:.7rem .9rem; border-bottom:1px solid var(--tg-line); color:var(--tg-ink-2);
}
.woocommerce-product-attributes tr:last-child th,
.woocommerce-product-attributes tr:last-child td{ border-bottom:0; }
.woocommerce-product-attributes td p{ margin:0; }

/* zakładki opisu */
.woocommerce-tabs ul.tabs li a{ font-weight:600; }
.woocommerce-tabs ul.tabs li.active a{ color:var(--tg-accent-ink); }
.woocommerce-Tabs-panel{ padding-top:.6rem; }

/* --------------------------------------------------------------------------
   7. Formularze — pola o jednakowej wysokości i wyraźnym stanie
   -------------------------------------------------------------------------- */
.wpforms-field input[type=text], .wpforms-field input[type=email],
.wpforms-field input[type=tel], .wpforms-field input[type=number],
.wpforms-field select, .wpforms-field textarea,
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel],
.wpcf7 textarea, .woocommerce form .form-row input.input-text{
  border:1px solid #cbd2da !important;
  border-radius:var(--tg-radius-sm) !important;
  padding:.7rem .85rem !important;
  min-height:var(--tg-tap);
  font-size:1rem;
  background:#fff;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.wpforms-field input:focus, .wpforms-field select:focus, .wpforms-field textarea:focus{
  border-color:var(--tg-focus) !important;
  box-shadow:0 0 0 3px rgba(26,109,216,.15);
}
.wpforms-field-label{ font-weight:600; color:var(--tg-ink); }
.wpforms-required-label{ color:#b3261e; }

/* --------------------------------------------------------------------------
   8. Nawigacja okruszkowa i sekcje pomocnicze
   -------------------------------------------------------------------------- */
.woocommerce-breadcrumb, .breadcrumb,
nav.woocommerce-breadcrumb{
  font-size:.85rem; color:var(--tg-accent-ink) !important;
  /* motyw: capitalize -> "Walk-In Mit Dekorativem..." - bledne w niemieckim */
  text-transform:none !important;
}
.woocommerce-breadcrumb a, .breadcrumb a{ color:var(--tg-ink-2); text-decoration:none; }
.woocommerce-breadcrumb a:hover, .breadcrumb a:hover{
  color:var(--tg-accent-ink); text-decoration:underline;
}

/* wynik/sortowanie w katalogu w jednej linii bazowej */
.woocommerce-result-count{ color:var(--tg-ink-2); font-size:.9rem; }
.woocommerce-ordering select{
  border:1px solid #cbd2da; border-radius:var(--tg-radius-sm);
  padding:.55rem .8rem; min-height:var(--tg-tap); background:#fff;
}

/* --------------------------------------------------------------------------
   9. Tabele i listy w treści redakcyjnej
   -------------------------------------------------------------------------- */
.entry-content table, .woocommerce-Tabs-panel table{
  width:100%; border-collapse:collapse; margin:1.2rem 0;
}
.entry-content table th, .woocommerce-Tabs-panel table th{
  background:var(--tg-bg-soft); text-align:left; padding:.65rem .85rem;
  border-bottom:2px solid var(--tg-line);
}
.entry-content table td, .woocommerce-Tabs-panel table td{
  padding:.65rem .85rem; border-bottom:1px solid var(--tg-line);
}

/* szerokie tabele nie rozpychają strony na telefonie - przewija się sama tabela.
   (Wcześniej overflow-x:auto na .entry-content: sekcje Elementora rozciągnięte na
   100vw były obcinane do 1410 px kontenera - na ekranach >1440 px ucięte teksty
   z lewej/prawej: strona główna, Showroom, Kontakt, Messservice, Über uns.) */
@media (max-width:767px){
  .entry-content > table{
    display:block; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
  }
}

/* --------------------------------------------------------------------------
   10. Drobne poprawki kontrastu
   -------------------------------------------------------------------------- */
.elementor-sub-title{ color:var(--tg-ink-2); }
footer a{ text-decoration:none; }
footer a:hover{ text-decoration:underline; }
::selection{ background:rgba(200,120,30,.22); }

/* ==========================================================================
   11. Strona główna — sekcje dołożone do układu (klasy tg-*)
   ========================================================================== */
.tg-band{ padding:clamp(2.6rem,5vw,4.6rem) 1.25rem; scroll-margin-top:110px; }
.tg-wrap{ max-width:1180px; margin-inline:auto; }
.tg-eyebrow{
  margin:0 0 .6rem; font-size:.78rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--tg-accent-ink);
}
.tg-band h2{ margin:0 0 .7rem; }

/* przyciski wspólne dla sekcji strony głównej */
.tg-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:var(--tg-tap); padding:.85rem 1.7rem;
  border-radius:var(--tg-radius-sm); border:1.5px solid transparent;
  font-weight:600; font-size:1rem; line-height:1.1; text-decoration:none;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
}
.tg-btn--primary{ background:var(--tg-accent); color:#fff; }
.tg-btn--primary:hover{ background:var(--tg-accent-ink); color:#fff; transform:translateY(-1px); box-shadow:var(--tg-shadow-2); }
.tg-btn--ghost{ border-color:#c9d0d8; color:var(--tg-ink); background:#fff; }
.tg-btn--ghost:hover{ border-color:var(--tg-ink); transform:translateY(-1px); }
.tg-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin:1.5rem 0 .9rem; }

/* 11a. Propozycja wartości */
.tg-value{ background:#fff; border-bottom:1px solid var(--tg-line); }
.tg-value__grid{
  display:grid; grid-template-columns:1.25fr .95fr; gap:clamp(1.8rem,4vw,3.5rem); align-items:center;
}
.tg-value__title{
  font-size:clamp(1.9rem,3.4vw,2.85rem); line-height:1.14; letter-spacing:-.02em; color:var(--tg-ink);
}
.tg-value__lead{ font-size:1.09rem; line-height:1.65; color:var(--tg-ink-2); max-width:56ch; margin:0; }
.tg-note{ margin:0; font-size:.92rem; color:var(--tg-ink-2); }
.tg-checks{ list-style:none; margin:0; padding:1.4rem 1.5rem; background:var(--tg-bg-soft);
  border:1px solid var(--tg-line); border-radius:var(--tg-radius); }
.tg-checks li{
  position:relative; padding:.55rem 0 .55rem 1.9rem; color:var(--tg-ink);
  font-size:.98rem; line-height:1.5; border-bottom:1px solid var(--tg-line);
}
.tg-checks li:last-child{ border-bottom:0; }
.tg-checks li::before{
  content:""; position:absolute; left:0; top:.95rem; width:1.05rem; height:.55rem;
  border-left:2.5px solid var(--tg-accent); border-bottom:2.5px solid var(--tg-accent);
  transform:rotate(-45deg);
}

/* 11b. Pasek zaufania */
.tg-trust{ background:var(--tg-ink); color:#fff; padding-block:clamp(1.6rem,3vw,2.4rem); }
.tg-trust__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.tg-trust__item{ display:flex; flex-direction:column; gap:.3rem; padding-left:1rem; border-left:2px solid rgba(255,255,255,.22); }
.tg-trust__n{ font-size:clamp(1.25rem,2.2vw,1.7rem); font-weight:700; letter-spacing:-.01em; }
.tg-trust__l{ font-size:.9rem; line-height:1.45; color:rgba(255,255,255,.76); }

/* 11c. Proces */
.tg-steps{ background:#fff; }
.tg-steps__title{ font-size:clamp(1.6rem,2.8vw,2.2rem); color:var(--tg-ink); }
.tg-steps__grid{ list-style:none; margin:2rem 0 0; padding:0;
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; counter-reset:none; }
.tg-step{
  position:relative; padding:1.6rem 1.5rem; background:#fff;
  border:1px solid var(--tg-line); border-radius:var(--tg-radius);
  transition:box-shadow .18s ease, transform .18s ease;
}
.tg-step:hover{ box-shadow:var(--tg-shadow-2); transform:translateY(-2px); }
.tg-step__n{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.4rem; height:2.4rem; border-radius:50%;
  background:var(--tg-accent); color:#fff; font-weight:700; font-size:1.05rem; margin-bottom:.9rem;
}
.tg-step__t{ margin:0 0 .45rem; font-size:1.14rem; color:var(--tg-ink); }
.tg-step__d{ margin:0; color:var(--tg-ink-2); line-height:1.6; font-size:.97rem; }

/* 11d. Blok domykający */
.tg-cta{ background:var(--tg-bg-soft); border-top:1px solid var(--tg-line); }
.tg-cta__grid{ display:grid; grid-template-columns:1.3fr .7fr; gap:2rem; align-items:center; }
.tg-cta__title{ font-size:clamp(1.6rem,2.8vw,2.15rem); color:var(--tg-ink); }
.tg-cta__lead{ margin:0; color:var(--tg-ink-2); font-size:1.05rem; line-height:1.6; max-width:52ch; }
.tg-cta__side{ display:flex; flex-direction:column; align-items:flex-start; gap:.9rem; }
.tg-cta__contact{ margin:0; font-size:.98rem; color:var(--tg-ink-2); }
.tg-cta__contact a{ color:var(--tg-ink); font-weight:600; text-decoration:none; }
.tg-cta__contact a:hover{ text-decoration:underline; }

@media (max-width:900px){
  .tg-value__grid, .tg-cta__grid{ grid-template-columns:1fr; }
  .tg-trust__grid{ grid-template-columns:repeat(2,1fr); }
  .tg-steps__grid{ grid-template-columns:1fr; }
  .tg-cta__side{ align-items:stretch; }
  .tg-btn{ width:100%; }
}
@media (max-width:480px){
  .tg-trust__grid{ grid-template-columns:1fr; }
}

/* ==========================================================================
   12. Rozwijane menu — dostępność z klawiatury
   Motyw otwiera podmenu wyłącznie na :hover, więc użytkownik klawiatury
   nigdy do niego nie dotrze. focus-within nie zmienia zachowania myszy.
   ========================================================================== */
@media (min-width:1025px){
  .menu-item-has-children:focus-within > ul.sub-menu{
    visibility:visible !important;
    opacity:1 !important;
    transform:none !important;
  }
}

/* opis produktu (Elementor w zakladce) na telefonie przylegal do krawedzi ekranu */
@media (max-width:767px){
  .single-product .woocommerce-tabs .woocommerce-Tabs-panel.panel{ padding-left:16px !important; padding-right:16px !important; }
}

/* banery "cover" (Elementor CTA): bialy tytul na zdjeciu - na jasnych zdjeciach
   (np. "Filigrane Schiebetüren") tekst znikal; cien nie zmienia ciemnych kart */
.elementor-cta--skin-cover .elementor-cta__title,
.elementor-cta--skin-cover .elementor-cta__description,
.elementor-cta--skin-cover .elementor-cta__button{
  text-shadow:0 1px 3px rgba(0,0,0,.55), 0 0 14px rgba(0,0,0,.35);
}

/* --------------------------------------------------------------------------
   Wpis na blogu z tabelami i FAQ (add_blog_post.py, klasa .tg-post)
   -------------------------------------------------------------------------- */
.tg-post{ color:var(--tg-ink); font-size:1.02rem; line-height:1.7; }
.tg-post strong, .tg-post b{ font-weight:700; }
.tg-post h2{ font-size:clamp(1.35rem,1.1rem + 1vw,1.75rem); line-height:1.25; margin:2.4rem 0 .8rem; }
.tg-post h3{ font-size:1.08rem; line-height:1.35; margin:0 0 .35rem; font-weight:600; }
.tg-post p, .tg-post ul, .tg-post ol{ margin:0 0 1rem; }
.tg-post ul, .tg-post ol{ padding-left:1.3rem; }
.tg-post li{ margin:.3rem 0; }
.tg-post a{ color:var(--tg-accent-ink); text-decoration:underline; text-underline-offset:2px; }
.tg-post a.tg-btn{ text-decoration:none; }
.tg-post__lead{ font-size:1.12rem; padding:1rem 1.2rem; background:var(--tg-bg-soft);
  border-left:4px solid var(--tg-accent); border-radius:0 var(--tg-radius-sm) var(--tg-radius-sm) 0; }
.tg-post__source{ font-size:.9rem; color:var(--tg-ink-2); }
.tg-post__note{ padding:.8rem 1rem; border:1px solid var(--tg-line); border-radius:var(--tg-radius-sm);
  background:#fffaf2; }
.tg-post__summary{ margin:0 0 1.2rem; padding:1rem 1.2rem .4rem; border:1px solid var(--tg-line);
  border-radius:var(--tg-radius-sm); }
.tg-post__summary-title{ font-weight:700; margin:0 0 .4rem !important; }
.tg-post__sources{ margin:2rem 0 0; font-size:.92rem; color:var(--tg-ink-2); }
.tg-post__sources ul{ margin-bottom:.4rem; }
.tg-post__related{ margin:2.2rem 0 0; padding:1rem 1.2rem .4rem; background:var(--tg-bg-soft);
  border-radius:var(--tg-radius-sm); }
.tg-post__related h2{ font-size:1.15rem; margin:0 0 .5rem; }
.tg-post__table{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:1.2rem 0 1rem;
  border:1px solid var(--tg-line); border-radius:var(--tg-radius); }
.tg-post table{ width:100%; border-collapse:collapse; margin:0; font-size:.95rem; line-height:1.5; }
.tg-post caption{ caption-side:top; text-align:left; font-size:.85rem; color:var(--tg-ink-2);
  padding:.7rem .9rem; border-bottom:1px solid var(--tg-line); }
.tg-post th, .tg-post td{ padding:.7rem .9rem; border-bottom:1px solid var(--tg-line);
  text-align:left; vertical-align:top; }
.tg-post thead th{ background:var(--tg-bg-soft); font-weight:600; white-space:nowrap; }
.tg-post tbody th{ font-weight:600; }
.tg-post tbody tr:last-child th, .tg-post tbody tr:last-child td{ border-bottom:0; }
.tg-post .tg-nowrap{ white-space:nowrap; font-weight:600; }
.tg-post__compare{ min-width:640px; }
.tg-post__steps{ counter-reset:none; }
.tg-post__faq{ border-top:1px solid var(--tg-line); }
.tg-post .tg-faq{ padding:1rem 0; border-bottom:1px solid var(--tg-line); }
.tg-post .tg-faq p{ margin:0; color:var(--tg-ink-2); }
.tg-post__cta{ margin:2.4rem 0 0; padding:1.4rem 1.4rem .6rem; border-radius:var(--tg-radius);
  background:#12171f; color:#e9edf2; }
.tg-post__cta h2{ color:#fff; margin-top:0; }
.tg-post__cta a:not(.tg-btn){ color:#f3c27f; }
.tg-post__cta-actions{ display:flex; flex-wrap:wrap; gap:.6rem; }
.tg-post__cta .tg-btn--ghost{ color:#fff; background:transparent; border-color:rgba(255,255,255,.5); }
/* motyw lamie slowa w komorkach w dowolnym miejscu ("Dusch-wand") */
.tg-post th, .tg-post td{ word-break:normal; overflow-wrap:normal; -webkit-hyphens:auto; hyphens:auto; }
/* telefon: kazdy wiersz tabeli jako karta z podpisami - cena widoczna bez przewijania w bok */
@media (max-width:600px){
  .tg-post__table{ overflow:visible; border:0; border-radius:0; }
  .tg-post table, .tg-post__compare{ min-width:0; }
  .tg-post table, .tg-post tbody, .tg-post tr, .tg-post th, .tg-post td{ display:block; width:auto; }
  .tg-post thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .tg-post caption{ display:block; padding:0 0 .5rem; border:0; }
  .tg-post tbody tr{ border:1px solid var(--tg-line); border-radius:var(--tg-radius); margin:0 0 .7rem;
    overflow:hidden; background:#fff; }
  .tg-post tbody th{ background:var(--tg-bg-soft); border-bottom:1px solid var(--tg-line); }
  .tg-post tbody td{ border-bottom:1px solid var(--tg-line); padding:.55rem .9rem; }
  .tg-post tbody td:last-child{ border-bottom:0; }
  .tg-post td[data-label]::before{ content:attr(data-label); display:block; font-size:.78rem;
    font-weight:600; letter-spacing:.02em; color:var(--tg-ink-2); margin-bottom:.1rem; }
  .tg-post .tg-nowrap{ white-space:normal; font-size:1.05rem; }
}
/* wpisy na blogu na telefonie przylegaly do krawedzi ekranu (kontener motywu bez paddingu) */
@media (max-width:767px){
  .single-post #content > .col-full{ padding-left:16px !important; padding-right:16px !important; }
}
/* siatki produktow Elementora na telefonie: 4 kolumny "1fr" niezaleznie od liczby kart
   (np. Angebot-Seiten: 1 karta w siatce 4-kolumnowej). Oryginal ratowal to przypadkiem
   (dlugi tytul rozpychal 1. kolumne), po pelnych tytulach karta miala 66 px i znikalo zdjecie.
   auto-fit: 1 karta = cala szerokosc, wiecej kart = 2 kolumny jak w katalogu. */
@media (max-width:767px){
  ul.hnice-products.elementor-grid{ grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)) !important; }
}
/* jw. na kazdej szerokosci: siatka z jednym produktem (Angebot-Seiten) = jedna kolumna */
ul.hnice-products.elementor-grid:has(> li.product:only-child){ grid-template-columns:minmax(0, 1fr) !important; }

/* Kontakt: sekcja "Beratung" - obie kolumny maja w Elementorze 100% szerokosci,
   pierwsza sie nie kurczy, wiec formularz dostawal ~118 px i wychodzil poza ekran
   (blad oryginalu). Na komputerze: Calenso 58 %, formularz 42 %. */
@media (min-width:1025px){
  .elementor-element-ec0f235 > .elementor-element-1a558a3{ --width:58%; width:58%; flex-shrink:1; }
  .elementor-element-ec0f235 > .elementor-element-bc809fe{ --width:42%; width:42%; flex-shrink:1; }
}

/* ==========================================================================
   Poprawki klienta 2026-09-28 (Marcin)
   ========================================================================== */
/* Angebot: nagłówek w wąskiej kolumnie łamał się na 7 linii - max 3 linie */
.elementor-element-ebd3c45{ width:min(1100px, 100%) !important; max-width:100% !important; --container-widget-width:min(1100px, 100%); }
.elementor-element-ebd3c45 .elementor-heading-title{ font-size:clamp(28px, 1.2rem + 1.6vw, 44px) !important; line-height:1.2 !important; text-wrap:balance; }

/* Angebot: kafel "Neue Frame-Serie" klikalny w całości (inhalt.py dodaje link i przycisk) */
.elementor-element-5186832{ position:relative; cursor:pointer; overflow:hidden; }
.elementor-element-5186832 .tg-tile-link{ position:absolute; inset:0; z-index:5; }
.elementor-element-5186832 .tg-tile-link:focus-visible{ outline:3px solid var(--tg-focus); outline-offset:-3px; }
.tg-tile-btn{ display:inline-flex; gap:.5rem; align-items:center; margin-top:1.1rem; padding:.7rem 1.4rem;
  border:1px solid rgba(255,255,255,.8); border-radius:6px; color:#fff; font-size:.8rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; transition:background .2s ease, color .2s ease; }
.elementor-element-5186832:hover .tg-tile-btn{ background:#fff; color:var(--tg-ink); }
.elementor-element-5186832 > .elementor-element{ transition:transform .4s ease; }
.elementor-element-5186832:hover > .elementor-element{ transform:scale(1.015); }

/* Über uns: nagłówek 52 px w kolumnie 480 px dawał 6 linii, a dekoracyjne kształty
   (żółty i szary blok) nachodziły na tekst */
.elementor-element-d64fcd6{ width:100% !important; max-width:100% !important; }
.elementor-element-d64fcd6 .elementor-heading-title{ font-size:clamp(28px, 1rem + 1.5vw, 40px) !important; line-height:1.22 !important; text-wrap:balance; }
.elementor-element-2e3c252, .elementor-element-8c2510d,
.elementor-element-76d0cd0, .elementor-element-fff87dd{ display:none !important; }

/* Showroom: zdjęcie od klienta pod tekstem i mapą */
.tg-showroom-photo{ max-width:1410px; margin:2.5rem auto 3rem; padding:0 16px; }
.tg-showroom-photo img{ display:block; width:100%; height:auto; border-radius:var(--tg-radius); box-shadow:var(--tg-shadow-1); }
.tg-showroom-photo figcaption{ margin-top:.7rem; font-size:.9rem; color:var(--tg-ink-2); text-align:center; }

/* Strona glowna: "Neu bei Traumglass" (neuheiten.py) */
.tg-new{ background:#fff; }
.tg-new__title{ font-size:clamp(1.6rem, 1.1rem + 1.6vw, 2.4rem); margin:.2rem 0 1.6rem; }
.tg-new__grid{ list-style:none; margin:0; padding:0; display:grid; gap:1.25rem;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); }
.tg-new__card{ margin:0; }
.tg-new__link{ display:flex; flex-direction:column; height:100%; text-decoration:none; color:var(--tg-ink);
  border:1px solid var(--tg-line); border-radius:var(--tg-radius); overflow:hidden; background:#fff;
  transition:box-shadow .2s ease, transform .2s ease; }
.tg-new__link:hover{ box-shadow:var(--tg-shadow-2); transform:translateY(-2px); }
.tg-new__link:focus-visible{ outline:3px solid var(--tg-focus); outline-offset:2px; }
.tg-new__img{ display:block; aspect-ratio:4/3; overflow:hidden; background:var(--tg-bg-soft); }
.tg-new__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.tg-new__link:hover .tg-new__img img{ transform:scale(1.03); }
.tg-new__body{ display:flex; flex-direction:column; gap:.45rem; padding:1.1rem 1.2rem 1.3rem; flex:1; }
.tg-new__tag{ align-self:flex-start; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:#fff; background:var(--tg-accent); border-radius:4px; padding:.15rem .5rem; }
.tg-new__t{ font-size:1.3rem; font-weight:600; line-height:1.25; }
.tg-new__d{ color:var(--tg-ink-2); line-height:1.55; flex:1; }
.tg-new__more{ color:var(--tg-accent-ink); font-weight:600; font-size:.92rem; }

/* Angebot: kafel LUMOO */
.tg-lumoo-tile{ margin:2rem auto; }
.tg-lumoo-tile__link{ display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:0; text-decoration:none;
  color:var(--tg-ink); background:var(--tg-bg-soft); border-radius:var(--tg-radius); overflow:hidden; }
.tg-lumoo-tile__img img{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:16/9; transition:transform .4s ease; }
.tg-lumoo-tile__link:hover .tg-lumoo-tile__img img{ transform:scale(1.02); }
.tg-lumoo-tile__body{ display:flex; flex-direction:column; gap:.6rem; padding:2rem; }
.tg-lumoo-tile__t{ font-size:clamp(1.6rem, 1rem + 1.4vw, 2.2rem); line-height:1.15; }
.tg-lumoo-tile__d{ color:var(--tg-ink-2); line-height:1.6; }
.tg-tile-btn--dark{ align-self:flex-start; color:var(--tg-ink); border-color:var(--tg-ink); }
.tg-lumoo-tile__link:hover .tg-tile-btn--dark{ background:var(--tg-ink); color:#fff; }
@media (max-width:767px){ .tg-lumoo-tile__link{ grid-template-columns:1fr; } .tg-lumoo-tile__body{ padding:1.3rem; } }

/* Strona LUMOO-Effekt */
.tg-lumoo{ color:var(--tg-ink); padding:1rem 0 3rem; }
.tg-lumoo section{ margin:0 auto 3.2rem; }
.tg-lumoo h2{ font-size:clamp(1.5rem, 1.1rem + 1.3vw, 2.2rem); line-height:1.2; margin:0 0 .8rem; }
.tg-lumoo__title{ font-size:clamp(1.9rem, 1.2rem + 2.2vw, 3rem); line-height:1.12; margin:.2rem 0 1rem; text-wrap:balance; }
.tg-lumoo__lead{ font-size:1.12rem; line-height:1.7; max-width:62ch; color:var(--tg-ink-2); }
.tg-lumoo__compare{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.tg-lumoo figure{ margin:0; }
.tg-lumoo figure img{ display:block; width:100%; height:auto; border-radius:var(--tg-radius); }
.tg-lumoo figcaption{ margin-top:.5rem; font-weight:600; font-size:.95rem; }
.tg-lumoo__zones3{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem; padding:0; list-style:none; counter-reset:z; }
.tg-lumoo__zones3 li{ counter-increment:z; padding:1.1rem 1.2rem; border:1px solid var(--tg-line); border-radius:var(--tg-radius); line-height:1.55; }
.tg-lumoo__zones3 li::before{ content:counter(z); display:inline-grid; place-items:center; width:1.8rem; height:1.8rem;
  border-radius:50%; background:var(--tg-accent); color:#fff; font-weight:700; margin-bottom:.5rem; }
.tg-lumoo__zones3 strong{ display:block; }
.tg-lumoo__grid4{ list-style:none; padding:0; margin:1.2rem 0 0; display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem; }
.tg-lumoo-zone{ border:1px solid var(--tg-line); border-radius:var(--tg-radius); overflow:hidden; background:#fff; }
.tg-lumoo-zone img{ display:block; width:100%; height:260px; object-fit:cover; object-position:center bottom; }
.tg-lumoo-zone h3{ font-size:1.05rem; margin:.9rem 1rem .4rem; }
.tg-lumoo-zone dl{ margin:0 1rem 1rem; display:grid; grid-template-columns:auto 1fr; gap:.2rem .7rem; font-size:.92rem; }
.tg-lumoo-zone dt{ color:var(--tg-ink-2); }
.tg-lumoo-zone dd{ margin:0; font-weight:600; }
.tg-lumoo__colors{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:1.2rem; align-items:center; }
.tg-lumoo__colors figure img{ aspect-ratio:1; object-fit:cover; }
.tg-lumoo__cards{ list-style:none; padding:0; margin:0 0 1.5rem; display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem; }
.tg-lumoo__cards li{ padding:1.2rem 1.3rem; background:var(--tg-bg-soft); border-radius:var(--tg-radius); }
.tg-lumoo__cards h3{ font-size:1.1rem; margin:0 0 .4rem; }
.tg-lumoo__cards p{ color:var(--tg-ink-2); line-height:1.6; margin:0 0 .6rem; }
.tg-lumoo__cards a{ color:var(--tg-accent-ink); font-weight:600; }
@media (max-width:900px){
  .tg-lumoo__grid4{ grid-template-columns:repeat(2, 1fr); }
  .tg-lumoo__zones3, .tg-lumoo__cards{ grid-template-columns:1fr; }
  .tg-lumoo__colors{ grid-template-columns:1fr 1fr; } .tg-lumoo__colortext{ grid-column:1 / -1; }
}
@media (max-width:600px){ .tg-lumoo__compare{ grid-template-columns:1fr; } .tg-lumoo-zone img{ height:200px; } }

/* nawigacja wpisu: motyw zaklada dwa linki (50 %) - gdy jest jeden, tytul byl ucinany */
.post-navigation .nav-links > div:only-child{ width:100%; max-width:100%; flex:1 1 100%; }
.post-navigation .nav-links a, .post-navigation .nav-content{ min-width:0; }

/* wzmianka o LUMOO przy produktach, ktorych dotyczy (neuheiten.py) */
.tg-lumoo-note{ display:flex; gap:.9rem; align-items:flex-start; margin:1.1rem 0 1.3rem; padding:.9rem 1rem;
  border:1px solid var(--tg-line); border-left:4px solid var(--tg-accent); border-radius:var(--tg-radius-sm);
  background:var(--tg-bg-soft); }
.tg-lumoo-note img{ width:56px; height:56px; object-fit:cover; border-radius:6px; flex:none; }
.tg-lumoo-note p{ margin:0 0 .25rem; }
.tg-lumoo-note__t{ font-weight:700; color:var(--tg-ink); line-height:1.35; }
.tg-lumoo-note__d{ font-size:.92rem; color:var(--tg-ink-2); line-height:1.5; }
.tg-lumoo-note__a{ font-size:.92rem; font-weight:600; color:var(--tg-accent-ink); text-decoration:underline; text-underline-offset:2px; }
.tg-lumoo-note-band{ margin:1.5rem auto; }

/* ---------- formularze: komunikaty wysylki (skrypty/forms.js) ---------- */
.tg-form-error{ display:block; margin-top:.3rem; font-style:normal; font-size:.88rem; color:#b42318; }
.tg-form-ok, .tg-form-fail{ margin:1rem 0; padding:1rem 1.1rem; border-radius:var(--tg-radius-sm); line-height:1.5; }
.tg-form-ok{ background:#ecfdf3; border:1px solid #abefc6; color:#054f31; }
.tg-form-fail{ background:#fef3f2; border:1px solid #fecdca; color:#912018; }
.tg-file{ display:block; width:100%; padding:.75rem; border:1px dashed var(--tg-line); border-radius:var(--tg-radius-sm); background:#fff; }

/* ===== SEO (seo.py, 2026-10-04) =====
   .tg-seo-todo — naglowki z fraz wspierajacych, tresc do uzupelnienia (TODO w seo/WDROZENIE.md)
   .tg-seo-local — szkielet stron lokalnych (noindex) */
.tg-seo-todo, .tg-seo-local { padding: 32px 16px; }
.tg-seo-todo h2, .tg-seo-local h2 { margin: 28px 0 12px; }
.tg-seo-todo h3 { margin: 20px 0 8px; }
.tg-seo-local__h1 { margin: 24px 0 16px; }
