/*
 * MSW FotoAtlas Auto Layout Repair 1.0.0
 * Wspólna galeria WordPress/Telegram + ostrożna poprawa kontrastu na podstronach.
 * Nie zmienia istniejących zdjęć, opisów w bazie ani układu kuli AI.
 */
:root {
  --msw-far-ink: #18364e;
  --msw-far-title: #102e48;
  --msw-far-muted: #3f5870;
  --msw-far-bg: #f3f9fd;
  --msw-far-border: #aecbdc;
  --msw-far-focus: #00a5ce;
}

/* 1. Siatka: jedna wysokość kart, bez nakładania opisów na fotografie. */
body .msw-pawel-gallery {
  position: relative;
  isolation: isolate;
  max-width: 1480px;
  margin-inline: auto;
  color: var(--msw-far-ink);
}
body .msw-pawel-gallery .msw-pawel-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 305px), 1fr)) !important;
  gap: clamp(14px, 2vw, 24px) !important;
  align-items: stretch !important;
}
body .msw-pawel-gallery .msw-pawel-card {
  position: relative !important;
  inset: auto !important;
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  min-height: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
  isolation: isolate;
  border: 1px solid #b5d2e1 !important;
  border-radius: 18px !important;
  background: var(--msw-far-bg) !important;
  color: var(--msw-far-ink) !important;
  box-shadow: 0 8px 24px rgba(5,35,65,.14) !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
}
body .msw-pawel-gallery .msw-pawel-card > a[data-msw-zoom] {
  display: block !important;
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: clamp(230px, 22vw, 300px) !important;
  flex: 0 0 auto !important;
  overflow: hidden !important;
  background: #d8e8f1 !important;
  text-decoration: none !important;
}
body .msw-pawel-gallery .msw-pawel-card > a[data-msw-zoom] > img {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}
body .msw-pawel-gallery .msw-pawel-card .msw-pawel-card-body {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  z-index: 1 !important;
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: clamp(17px, 2vw, 22px) !important;
  background: var(--msw-far-bg) !important;
  color: var(--msw-far-ink) !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
  text-shadow: none !important;
  box-sizing: border-box !important;
  overflow-wrap: anywhere !important;
}
body .msw-pawel-gallery .msw-pawel-card-body > .msw-pawel-eyebrow {
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: .76rem !important;
  line-height: 1.55 !important;
  font-weight: 750 !important;
  letter-spacing: .035em !important;
  color: #0c638a !important;
  background: transparent !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
body .msw-pawel-gallery .msw-pawel-card-body > h3 {
  position: static !important;
  inset: auto !important;
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--msw-far-title) !important;
  background: transparent !important;
  font-size: clamp(1.08rem, 1.45vw, 1.4rem) !important;
  line-height: 1.27 !important;
  font-weight: 800 !important;
  opacity: 1 !important;
  text-shadow: none !important;
  overflow-wrap: anywhere !important;
}
body .msw-pawel-gallery .msw-pawel-card-body > p {
  position: static !important;
  inset: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: var(--msw-far-muted) !important;
  font-size: .96rem !important;
  line-height: 1.65 !important;
  opacity: 1 !important;
  visibility: visible !important;
  text-shadow: none !important;
  filter: none !important;
  overflow-wrap: anywhere !important;
}
/* Trzy linie zajawki tylko wtedy, gdy JS zapewnił pełny opis w <details>. */
body .msw-pawel-gallery.msw-far-ready .msw-pawel-card[data-msw-far-enhanced="1"]
  .msw-pawel-card-body > p:first-of-type {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  line-clamp: 3;
  overflow: hidden !important;
}
body .msw-pawel-gallery .msw-pawel-card .msw-pawel-card-actions {
  position: static !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 9px !important;
  align-items: stretch !important;
  margin-top: auto !important;
  padding-top: 10px !important;
  background: transparent !important;
}
body .msw-pawel-gallery .msw-pawel-card-actions button {
  flex: 1 1 120px;
  min-height: 44px;
  padding: 10px 14px !important;
  border: 1px solid #8bb2c6 !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #123b57 !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  text-shadow: none !important;
  box-shadow: none !important;
}
body .msw-pawel-gallery .msw-pawel-card-actions button:hover {
  background: #e0f3fb !important;
  border-color: #0b7197 !important;
}

/* 2. Odtworzenie lubianego rozwijanego opisu + kontakt do technika. */
body .msw-pawel-gallery .msw-far-details {
  margin: 2px 0 4px !important;
  padding: 0 !important;
  border: 1px solid #91c6d7 !important;
  border-radius: 12px !important;
  background: #e8f8fd !important;
  color: #173851 !important;
  overflow: hidden !important;
}
body .msw-pawel-gallery .msw-far-details > summary {
  position: relative !important;
  display: list-item !important;
  padding: 13px 14px !important;
  margin: 0 !important;
  color: #075676 !important;
  background: #e4f7fc !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  cursor: pointer;
  text-shadow: none !important;
}
body .msw-pawel-gallery .msw-far-details[open] > summary {
  background: #c8eef7 !important;
  border-bottom: 1px solid #90c8d7;
}
body .msw-pawel-gallery .msw-far-details-inner {
  padding: 14px !important;
  color: #27475c !important;
  background: #f5fcff !important;
}
body .msw-pawel-gallery .msw-far-details-inner > p,
body .msw-pawel-gallery .msw-far-details-inner > small {
  display: block !important;
  color: #28465e !important;
  background: transparent !important;
  opacity: 1 !important;
  font-size: .94rem !important;
  line-height: 1.6 !important;
  overflow-wrap: anywhere !important;
}
body .msw-pawel-gallery .msw-far-details-inner > small { margin-top: 9px !important; }
body .msw-pawel-gallery .msw-far-contact {
  display: flex !important;
  gap: 9px !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  margin-top: 6px !important;
}
body .msw-pawel-gallery .msw-far-contact > a {
  position: static !important;
  flex: 1 1 125px !important;
  min-height: 45px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 12px !important;
  border: 1px solid #075579 !important;
  border-radius: 11px !important;
  background: #075579 !important;
  color: #fff !important;
  font-size: .89rem !important;
  font-weight: 750 !important;
  line-height: 1.35 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-shadow: none !important;
  box-shadow: none !important;
}
body .msw-pawel-gallery .msw-far-contact > a:last-child {
  border-color: #0e755e !important;
  background: #08715a !important;
  color: #fff !important;
}
body .msw-pawel-gallery .msw-far-contact > a:hover { filter: brightness(1.12) !important; }

/* 3. Pasek filtrów, dodatkowy katalog i nawigacja. */
body .msw-pawel-gallery .msw-pawel-tools {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 9px !important;
  align-items: center !important;
  margin: 12px 0 20px !important;
}
body .msw-pawel-gallery .msw-pawel-tools :is(button, .msw-wplib-return) {
  border: 1px solid #a3cadc !important;
  border-radius: 11px !important;
  padding: 10px 12px !important;
  background: #eaf7fd !important;
  color: #17465f !important;
  font-weight: 680 !important;
  text-decoration: none !important;
  text-shadow: none !important;
}
body .msw-pawel-gallery .msw-pawel-tools button[aria-pressed="true"] {
  color: #fff !important;
  background: #07587e !important;
  border-color: #07587e !important;
}
body .msw-pawel-gallery .msw-pawel-tools input[type="search"] {
  background: #fff !important;
  color: #19374e !important;
  border: 1px solid #81a9bf !important;
  border-radius: 11px !important;
  padding: 10px 13px !important;
  box-sizing: border-box;
  max-width: 100%;
}
body .msw-pawel-gallery :is([data-msw-count], [data-msw-status]) { color: #214965 !important; opacity: 1 !important; }
body .msw-pawel-gallery .msw-pawel-card[hidden] { display: none !important; }
body .msw-pawel-gallery :is(a,button,input,summary):focus-visible,
body .msw-wplib-nav a:focus-visible {
  outline: 3px solid var(--msw-far-focus) !important;
  outline-offset: 3px !important;
}
body .msw-wplib-nav {
  color: #173851 !important;
  background: #e8f5fd !important;
  border-color: #95c4d8 !important;
}
body .msw-wplib-nav :is(a,p,span,strong) { color: #154360 !important; text-shadow: none !important; }

/* 4. Pozostałe sekcje FotoAtlasu: spójne karty zamiast jasnego tekstu na jasnym tle. */
body #msw-forge-atlas500 .msw-fa500-grid figure,
body #msw-ppe-gallery .msw-ppe-grid figure {
  display: flex !important;
  flex-direction: column !important;
  border: 1px solid #bed7e6 !important;
  background: #f4faff !important;
  color: #173850 !important;
  overflow: hidden !important;
  border-radius: 14px !important;
}
body #msw-forge-atlas500 .msw-fa500-grid figcaption,
body #msw-ppe-gallery .msw-ppe-grid figcaption {
  padding: 14px !important;
  background: #f4faff !important;
  color: #24465e !important;
  font-size: .95rem !important;
  line-height: 1.55 !important;
  overflow-wrap: anywhere !important;
}
body #msw-forge-atlas500 .msw-fa500-grid figcaption :is(strong,span),
body #msw-ppe-gallery .msw-ppe-grid figcaption :is(strong,span) {
  color: #21445b !important;
  opacity: 1 !important;
}

/* 5. Inne strony MSW: bezpieczna korekta kontrastu formularzy i czytelności linków.
 * Nie nadpisuj globalnie ciemnych hero, kuli AI, stylów marek ani całych motywów.
 */
body .site-content :is(.entry-content, .wp-block-group, .wp-block-column)
  :is(input[type="text"],input[type="search"],input[type="email"],input[type="tel"],input[type="number"],select,textarea):not([disabled]) {
  color: #1a3b53;
  background-color: #fff;
  border-color: #769eaf;
  caret-color: #0a698d;
}
body .site-content :is(.entry-content, .wp-block-group, .wp-block-column)
  :is(input,select,textarea):focus-visible {
  outline: 3px solid var(--msw-far-focus) !important;
  outline-offset: 2px;
}
body .site-content :is(.entry-content, .wp-block-group, .wp-block-column)
  :is(input,textarea)::placeholder { color: #50697e; opacity: 1; }
body .site-content :is(.wp-block-button__link,.button):not(.has-text-color):focus-visible {
  outline: 3px solid #09add7 !important;
  outline-offset: 3px;
}
body .site-content [data-msw-contrast-fixed="1"] {
  color: var(--msw-repaired-color) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
@media (max-width: 640px) {
  body .msw-pawel-gallery .msw-pawel-grid { grid-template-columns: minmax(0,1fr) !important; gap: 16px !important; }
  body .msw-pawel-gallery .msw-pawel-card > a[data-msw-zoom] { height: 235px !important; }
  body .msw-pawel-gallery .msw-pawel-card-body { padding: 16px !important; }
  body .msw-pawel-gallery .msw-pawel-tools label { flex: 1 1 100%; }
  body .msw-pawel-gallery .msw-pawel-tools input[type="search"] { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  body .msw-pawel-gallery *, body .msw-pawel-gallery *::before, body .msw-pawel-gallery *::after {
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
    animation-duration: .001ms !important;
  }
}

/* 1.1.0 — dodatki wyłącznie w publicznym FotoAtlasie; brak ingerencji w artykuły. */
body .msw-pawel-gallery .msw-far-work-details,
body .msw-pawel-gallery dialog .msw-far-modal-work-details {
  border: 1px solid #9dc8da !important;
  border-radius: 12px !important;
  margin: 9px 0 !important;
  color: #183b55 !important;
  background: #eaf6fc !important;
  overflow: hidden !important;
  max-width: 100%;
}
body .msw-pawel-gallery .msw-far-work-details > summary,
body .msw-pawel-gallery dialog .msw-far-modal-work-details > summary {
  padding: 13px 16px !important;
  font-weight: 800 !important;
  color: #075679 !important;
  background: #e7f5fc !important;
  cursor: pointer;
  overflow-wrap: anywhere;
  line-height: 1.45;
}
body .msw-pawel-gallery :is(.msw-far-work-details,.msw-far-modal-work-details)[open] > summary {
  border-bottom: 1px solid #a2c9dc !important;
  background: #d6eef8 !important;
}
body .msw-pawel-gallery .msw-far-work-content {
  padding: 14px 16px !important;
  color: #1c425a !important;
  background: #fff !important;
}
body .msw-pawel-gallery .msw-far-work-content :is(p,small) {
  color: #1c425a !important;
  font-weight: 450 !important;
  font-size: .91rem !important;
  line-height: 1.62 !important;
  margin: 0 0 9px !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  opacity: 1 !important;
}
body .msw-pawel-gallery .msw-far-work-content small {display: block; font-size: .8rem !important; color: #496478 !important;}
body .msw-pawel-gallery .msw-far-contact > .msw-far-msg-button,
body .msw-pawel-gallery .msw-far-modal-contact > .msw-far-msg-button {
  min-width: 0 !important;
  flex: 1 1 140px !important;
  min-height: 46px !important;
  border-radius: 11px !important;
  border: 1px solid transparent !important;
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 11px 13px !important;
  color: #fff !important;
  font-weight: 800 !important;
  font-size: .91rem !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  text-align: center !important;
  text-shadow: none !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}
body .msw-pawel-gallery .msw-far-msg-telegram {background: #176e99 !important; border-color: #0d5c83 !important;}
body .msw-pawel-gallery .msw-far-msg-whatsapp {background: #087b5c !important; border-color: #07634a !important;}
body .msw-pawel-gallery .msw-far-msg-button:focus-visible {outline: 3px solid #f8bd54 !important; outline-offset: 2px;}
body .msw-pawel-gallery .msw-far-modal-contact {display: grid !important;grid-template-columns: repeat(2,minmax(0,1fr));gap: 10px;margin:12px 0 0;}
body .msw-pawel-gallery dialog .msw-far-modal-service {
  padding: clamp(12px,2vw,18px) !important;
  margin-top: 10px !important;
  background: #f4faff !important;
  color: #17374e !important;
  border: 1px solid #b5d9e7 !important;
  border-radius: 14px !important;
  box-sizing: border-box !important;
}
body .msw-pawel-gallery dialog .msw-far-modal-service h4 {
  color: #163c59 !important;
  font-weight: 850 !important;
  font-size: clamp(1rem,1.6vw,1.18rem) !important;
  line-height: 1.3 !important;
  margin: 0 0 10px !important;
}
body .msw-pawel-gallery dialog [data-msw-dialog-content] figure {
  min-width: 0 !important;
  max-width: 100% !important;
}
@media(max-width:580px){
  body .msw-pawel-gallery .msw-far-modal-contact {grid-template-columns: 1fr !important;}
  body .msw-pawel-gallery .msw-far-contact > .msw-far-msg-button {flex-basis:100% !important;}
  body .msw-pawel-gallery dialog .msw-far-modal-service {padding:12px !important;}
}

body .msw-pawel-gallery dialog .msw-far-modal-teaser {
  display:block!important;
  margin: 0 0 10px !important;
  padding: 0 !important;
  color: #254860 !important;
  font-size: .96rem !important;
  line-height: 1.6 !important;
  font-weight: 550 !important;
  opacity:1!important;
  text-shadow:none!important;
  overflow-wrap:anywhere !important;
}
