/* =========================================================
   ZGODA COOKIES (RODO/ePrivacy) — modal blokujący do wyboru.
   Czytelny, responsywny; na mobile NIE zajmuje całego ekranu.
   ========================================================= */
.tlcc-overlay{
  position:fixed; inset:0; z-index:5000; display:none;
  background:rgba(20,30,34,.55); backdrop-filter:saturate(.9) blur(2px);
  align-items:center; justify-content:center; padding:18px;
}
.tlcc-overlay.show{ display:flex; }
.tlcc{
  background:#fff; border-radius:18px; box-shadow:0 30px 80px rgba(0,0,0,.35);
  max-width:560px; width:100%; max-height:88vh; overflow:auto; padding:28px 28px 24px;
  font-family:'Source Sans 3',sans-serif;
}
.tlcc h2{ font-family:'Fraunces',serif; color:#1e3943; font-size:1.45rem; margin:0 0 8px; }
.tlcc p{ color:#4a565a; font-size:1rem; line-height:1.6; margin:0 0 14px; }
.tlcc a{ color:#806039; font-weight:700; text-decoration:underline; }
.tlcc-prefs{ display:flex; flex-direction:column; gap:10px; margin:6px 0 16px; }
.tlcc-cat{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  border:1px solid #e6e9e3; border-radius:12px; padding:13px 15px; background:#f6f8f5;
}
.tlcc-cat b{ color:#1e3943; display:block; font-size:1.02rem; }
.tlcc-cat small{ color:#4a565a; display:block; font-size:.9rem; }
.tlcc-sw{ position:relative; width:48px; height:28px; flex-shrink:0; }
.tlcc-sw input{ position:absolute; opacity:0; width:0; height:0; }
.tlcc-sw .track{ position:absolute; inset:0; background:#cdd3cd; border-radius:30px; transition:.2s; cursor:pointer; }
.tlcc-sw .track::before{ content:""; position:absolute; width:22px; height:22px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.3); }
.tlcc-sw input:checked + .track{ background:#42707b; }
.tlcc-sw input:checked + .track::before{ transform:translateX(20px); }
.tlcc-sw input:disabled + .track{ background:#b08d57; opacity:.7; cursor:not-allowed; }
.tlcc-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.tlcc-actions .tlcc-btn{
  flex:1 1 auto; min-width:140px; text-align:center; justify-content:center;
  display:inline-flex; align-items:center; gap:8px; padding:14px 18px; border-radius:12px;
  font-weight:700; font-size:1.02rem; cursor:pointer; border:2px solid transparent; transition:.18s;
}
.tlcc-btn.gold{ background:#b08d57; color:#fff; }
.tlcc-btn.gold:hover{ background:#9c7a48; }
.tlcc-btn.ghost{ background:#fff; border-color:#1e3943; color:#1e3943; }
.tlcc-btn.ghost:hover{ background:#eef3ef; }
.tlcc-btn.green{ background:#1e3943; color:#fff; }
.tlcc-foot{ margin-top:14px; font-size:.85rem; color:#7c878b; }
.tlcc-settings-link{ cursor:pointer; }

@media(max-width:560px){
  .tlcc-overlay{ align-items:flex-end; padding:0; }
  .tlcc{ max-width:100%; border-radius:18px 18px 0 0; max-height:86vh; padding:22px 18px 18px; }
  .tlcc-actions .tlcc-btn{ flex:1 1 100%; }
}
@media(prefers-reduced-motion:reduce){ .tlcc-overlay{ backdrop-filter:none; } }

/* poprawka: atrybut hidden ma działać mimo display:flex */
.tlcc [hidden]{ display:none !important; }

/* Native dialog supplies focus containment, Escape and background inertness. */
dialog.tlcc-overlay { margin:0; border:0; width:100%; height:100%; max-width:none; max-height:none; box-sizing:border-box; color:inherit; }
dialog.tlcc-overlay[open] { display:flex; }
dialog.tlcc-overlay::backdrop { background:transparent; }
.tlcc-cat input[type="checkbox"] { width:24px; height:24px; flex-shrink:0; accent-color:#1e3943; }
.tlcc-settings-link { display:inline-block; border:0; padding:4px 0; font:inherit; color:inherit; background:none; text-decoration:underline; }
.tlcc button:focus-visible, .tlcc input:focus-visible, .tlcc-settings-link:focus-visible { outline:3px solid #42707b; outline-offset:3px; }
.tlcc-storage { margin-top:14px; }
@media(max-width:760px) {
  body .tl-callbar a { padding:8px 12px; min-height:60px; box-sizing:border-box; }
  .tl-callbar svg { flex:none; }
  .tl-callbar-copy { display:flex; flex-direction:column; text-align:center; line-height:1.15; }
  .tl-callbar-copy small { font-size:.78rem; }
  .tl-callbar-copy strong { white-space:nowrap; font-size:1.12rem; }
}

/* Terra Levis gallery intro contrast 2026-09-08 */
.hero.sub > .gal-note {
  position:relative; z-index:1; box-sizing:border-box;
  width:calc(100% - 44px); max-width:1120px;
  margin-left:auto; margin-right:auto; padding:20px 24px;
  background:#fff; border-radius:14px; color:#1b3b2f;
  box-shadow:0 4px 20px rgba(0,0,0,.08);
}
.hero.sub > .gal-note p { margin:0; color:#1b3b2f; }
.hero.sub > .gal-note a { color:#1b3b2f; text-decoration:underline; text-underline-offset:3px; }
.hero.sub > .gal-note a:focus-visible { outline:3px solid #1b3b2f; outline-offset:3px; }
@media(max-width:560px) { .hero.sub > .gal-note { padding:18px; text-align:left; } }

/* Phone alternatives must be distinguishable without color alone. */
.form-availability a { text-decoration:underline; text-underline-offset:3px; }
.form-availability a:focus-visible { outline:3px solid #1e3943; outline-offset:3px; }

/* Footer logo: keep the client's original black artwork on its white field.
   The legacy footer rule in calc-fix.css inverts every image, which made the
   direct brand logo white on white while the award badges happened to reset
   that filter separately. Scope the reset to the direct PL brand image only. */
html:lang(pl) footer.site .foot-brand > img[src*="terra-logo-klient"] {
  filter:none !important;
  opacity:1;
}
