/*
 * Czytelne powiększenie tekstu w szablonie Wilga.
 * Układ desktopowy pozostaje desktopowy; menu zwija się dopiero na realnych
 * breakpointach mobilnych. Rozmiary są ograniczone tak, aby nie zasłaniały
 * treści i nie powodowały przewijania w dwóch kierunkach.
 */

body.wilga-home.accessibility-font {
  font-size: 20px !important;
  overflow-x: hidden;
}

body.wilga-home.accessibility-font main :where(p, li, address, blockquote, td, th, figcaption, label) {
  font-size: 20px !important;
  line-height: 1.65 !important;
}

body.wilga-home.accessibility-font main a {
  font-size: inherit !important;
  line-height: inherit;
  overflow-wrap: anywhere;
}

body.wilga-home.accessibility-font main :where(button, input, textarea, select) {
  font-size: 18px !important;
  line-height: 1.45 !important;
}

body.wilga-home.accessibility-font main h1 {
  font-size: 64px !important;
  line-height: 1.1 !important;
}

body.wilga-home.accessibility-font main h2 {
  font-size: 48px !important;
  line-height: 1.16 !important;
}

body.wilga-home.accessibility-font main h3 {
  font-size: 30px !important;
  line-height: 1.25 !important;
}

body.wilga-home.accessibility-font main h4 {
  font-size: 24px !important;
  line-height: 1.35 !important;
}

body.wilga-home.accessibility-font main :where(h1, h2, h3, h4) {
  max-width: 100%;
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* Nagłówek pozostaje w wersji komputerowej na szerokich ekranach. */
body.wilga-home.accessibility-font .site-header {
  height: 92px !important;
  min-height: 92px;
}

body.wilga-home.accessibility-font .site-header-inner {
  width: min(1320px, calc(100% - 40px)) !important;
  height: 100% !important;
  min-height: 0;
  padding: 0;
  gap: 24px;
}

body.wilga-home.accessibility-font .site-title {
  font-size: 34px !important;
  line-height: 1.04 !important;
}

body.wilga-home.accessibility-font .site-branding p {
  margin-top: 5px;
  font-size: 14px !important;
  line-height: 1.18 !important;
}

body.wilga-home.accessibility-font .menu-toggle {
  display: none !important;
}

body.wilga-home.accessibility-font .site-header .nav-menu {
  position: static;
  display: flex;
  width: auto;
  max-height: none;
  overflow: visible;
  padding: 0;
  flex-direction: row;
  align-items: center;
  gap: clamp(12px, 1vw, 22px);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.wilga-home.accessibility-font .site-header .nav-menu > li {
  width: auto;
  border: 0;
}

body.wilga-home.accessibility-font .site-header .nav-menu > li:last-child {
  padding: 0;
}

body.wilga-home.accessibility-font .site-header .nav-link,
body.wilga-home.accessibility-font .site-header .nav-btn {
  width: auto;
  min-height: 48px;
  justify-content: center;
  padding: 12px 0 10px;
  font-size: 17px !important;
  white-space: nowrap;
}

body.wilga-home.accessibility-font .site-header .nav-btn {
  padding-inline: 21px;
}

/* Strona główna. */
body.wilga-homepage-modern.accessibility-font .hero {
  min-height: 650px;
}

body.wilga-homepage-modern.accessibility-font .hero-content {
  padding-top: 112px;
  padding-bottom: 160px;
}

body.wilga-homepage-modern.accessibility-font .hero-eyebrow {
  max-width: 780px;
  font-size: 18px !important;
  line-height: 1.45 !important;
  white-space: normal;
}

body.wilga-homepage-modern.accessibility-font .hero-title {
  max-width: 820px;
  font-size: 80px !important;
  line-height: 1.04 !important;
  letter-spacing: -2px;
}

body.wilga-homepage-modern.accessibility-font .hero-text {
  max-width: 760px;
  font-size: 26px !important;
  line-height: 1.55 !important;
}

body.wilga-homepage-modern.accessibility-font .hero-button {
  min-height: 58px;
  padding: 14px 22px;
  font-size: 18px !important;
}

body.wilga-homepage-modern.accessibility-font .opening-card h2 {
  font-size: 28px !important;
}

body.wilga-homepage-modern.accessibility-font .opening-card p {
  font-size: 19px !important;
}

body.wilga-homepage-modern.accessibility-font .service-mini p {
  font-size: 15px !important;
}

body.wilga-homepage-modern.accessibility-font .section h2,
body.wilga-homepage-modern.accessibility-font .cta-section h2,
body.wilga-homepage-modern.accessibility-font .info-services h2 {
  font-size: 56px !important;
}

body.wilga-homepage-modern.accessibility-font .section-lead {
  max-width: 900px;
  font-size: 21px !important;
}

body.wilga-homepage-modern.accessibility-font .schedule {
  grid-template-columns: 280px minmax(0, 1fr);
}

body.wilga-homepage-modern.accessibility-font .tab-list button {
  min-height: 60px;
  font-size: 17px !important;
  white-space: normal;
}

body.wilga-homepage-modern.accessibility-font .tab-panels,
body.wilga-homepage-modern.accessibility-font .doctor-hours li {
  font-size: 20px !important;
}

body.wilga-homepage-modern.accessibility-font .patient-card {
  min-height: 390px;
}

body.wilga-homepage-modern.accessibility-font .patient-card h3,
body.wilga-homepage-modern.accessibility-font .news-grid h3 {
  font-size: 26px !important;
}

body.wilga-homepage-modern.accessibility-font .patient-card-toggle,
body.wilga-homepage-modern.accessibility-font .patient-card-details,
body.wilga-homepage-modern.accessibility-font .patient-card-details h4,
body.wilga-homepage-modern.accessibility-font .document-list a,
body.wilga-homepage-modern.accessibility-font .patient-note,
body.wilga-homepage-modern.accessibility-font .news-card-link,
body.wilga-homepage-modern.accessibility-font .more-link {
  font-size: 18px !important;
  line-height: 1.55 !important;
}

body.wilga-homepage-modern.accessibility-font .declaration-links a {
  min-height: 58px;
  font-size: 18px !important;
}

body.wilga-homepage-modern.accessibility-font .info-services > .narrow > p,
body.wilga-homepage-modern.accessibility-font .accordion-panel,
body.wilga-homepage-modern.accessibility-font .accordion-panel p,
body.wilga-homepage-modern.accessibility-font .accordion-panel li {
  font-size: 20px !important;
}

body.wilga-homepage-modern.accessibility-font .accordion-item button {
  min-height: 76px;
  font-size: 20px !important;
  white-space: normal;
}

body.wilga-homepage-modern.accessibility-font .contact-content h2 {
  font-size: 56px !important;
}

body.wilga-homepage-modern.accessibility-font .contact-grid h3 {
  font-size: 18px !important;
}

body.wilga-homepage-modern.accessibility-font .contact-grid p,
body.wilga-homepage-modern.accessibility-font .contact-grid address {
  font-size: 17px !important;
}

/* Podstrony. */
body.wilga-subpage.accessibility-font .wilga-breadcrumbs {
  font-size: 18px !important;
}

body.wilga-subpage.accessibility-font .wilga-breadcrumbs ol {
  min-height: 58px;
}

body.wilga-subpage.accessibility-font .subpage-eyebrow,
body.wilga-subpage.accessibility-font .news-meta,
body.wilga-subpage.accessibility-font .article-meta,
body.wilga-subpage.accessibility-font .search-result-type {
  font-size: 16px !important;
  line-height: 1.5 !important;
}

body.wilga-subpage.accessibility-font .subpage-title {
  font-size: 64px !important;
}

body.wilga-subpage.accessibility-font .subpage-intro {
  max-width: 900px;
  font-size: 24px !important;
}

body.wilga-subpage.accessibility-font :where(.article-content, .standard-page-content, .declaration-content, .news-excerpt, .search-result p, .search-empty) {
  font-size: 20px !important;
  line-height: 1.75 !important;
}

body.wilga-subpage.accessibility-font :where(.article-content, .standard-page-content, .declaration-content) h2,
body.wilga-subpage.accessibility-font .news-article h2,
body.wilga-subpage.accessibility-font .search-result h2 {
  font-size: 40px !important;
}

body.wilga-subpage.accessibility-font :where(.article-content, .standard-page-content, .declaration-content) h3 {
  font-size: 32px !important;
}

body.wilga-subpage.accessibility-font :where(.article-content, .standard-page-content) h4 {
  font-size: 26px !important;
}

body.wilga-subpage.accessibility-font .news-read-more,
body.wilga-subpage.accessibility-font .search-result-link,
body.wilga-subpage.accessibility-font .article-back,
body.wilga-subpage.accessibility-font .error-action {
  min-height: 52px;
  font-size: 18px !important;
}

body.wilga-subpage.accessibility-font .error-card > p:not(.error-code) {
  font-size: 24px !important;
}

body.wilga-subpage.accessibility-font .error-card h1 {
  font-size: 64px !important;
}

body.wilga-subpage.accessibility-font .wilga-pdf-title {
  font-size: 40px !important;
}

body.wilga-subpage.accessibility-font .wilga-pdf-meta,
body.wilga-subpage.accessibility-font .wilga-pdf-help,
body.wilga-subpage.accessibility-font .wilga-pdf-action,
body.wilga-subpage.accessibility-font .wilga-pdf-mobile-content p {
  font-size: 18px !important;
  line-height: 1.65 !important;
}

body.wilga-home.accessibility-font .site-footer,
body.wilga-home.accessibility-font .site-footer p,
body.wilga-home.accessibility-font .footer-search label,
body.wilga-home.accessibility-font .footer-search input,
body.wilga-home.accessibility-font .footer-search button {
  font-size: 16px !important;
  line-height: 1.5 !important;
}

/* Prawdziwy breakpoint mobilny — dopiero tutaj pojawia się przycisk menu. */
@media (max-width: 900px) {
  body.wilga-home.accessibility-font .site-header {
    height: auto !important;
    min-height: 88px;
  }

  body.wilga-home.accessibility-font .site-header-inner {
    width: calc(100% - 30px) !important;
    height: auto !important;
    min-height: 88px;
    padding: 8px 0;
  }

  body.wilga-home.accessibility-font .site-title {
    font-size: 30px !important;
  }

  body.wilga-home.accessibility-font .site-branding p {
    font-size: 13px !important;
  }

  body.wilga-home.accessibility-font .menu-toggle {
    display: block !important;
    flex: 0 0 52px;
  }

  body.wilga-home.accessibility-font .site-header .nav-menu {
    position: absolute;
    top: 100%;
    right: 15px;
    display: none;
    width: calc(100% - 30px);
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    padding: 12px 20px 18px;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    border-top: 1px solid #d8e1e5;
    background: #fff;
    box-shadow: 0 14px 32px rgba(13, 39, 64, .16);
  }

  body.wilga-home.accessibility-font .site-header .site-nav.is-open .nav-menu {
    display: flex;
  }

  body.wilga-home.accessibility-font .site-header .nav-menu > li {
    width: 100%;
    border-bottom: 1px solid #d8e1e5;
  }

  body.wilga-home.accessibility-font .site-header .nav-menu > li:last-child {
    padding-top: 12px;
    border-bottom: 0;
  }

  body.wilga-home.accessibility-font .site-header .nav-link,
  body.wilga-home.accessibility-font .site-header .nav-btn {
    width: 100%;
    min-height: 54px;
    justify-content: space-between;
    padding: 13px 8px;
    font-size: 18px !important;
    white-space: normal;
  }

  body.wilga-homepage-modern.accessibility-font .hero-title {
    font-size: 64px !important;
  }

  body.wilga-homepage-modern.accessibility-font .hero-text,
  body.wilga-subpage.accessibility-font .subpage-intro {
    font-size: 22px !important;
  }

  body.wilga-homepage-modern.accessibility-font .schedule {
    display: block;
  }

  body.wilga-homepage-modern.accessibility-font .tab-list {
    overflow-x: auto;
    flex-direction: row;
  }

  body.wilga-homepage-modern.accessibility-font .tab-list button {
    flex: 0 0 auto;
  }
}

@media (max-width: 520px) {
  body.wilga-homepage-modern.accessibility-font .hero-title,
  body.wilga-subpage.accessibility-font .subpage-title {
    font-size: 52px !important;
  }

  body.wilga-home.accessibility-font main :where(p, li, address, blockquote, td, th, figcaption, label) {
    font-size: 19px !important;
  }

  body.wilga-home.accessibility-font main h2,
  body.wilga-homepage-modern.accessibility-font .section h2,
  body.wilga-homepage-modern.accessibility-font .cta-section h2,
  body.wilga-homepage-modern.accessibility-font .info-services h2 {
    font-size: 42px !important;
  }

  body.wilga-home.accessibility-font main h3 {
    font-size: 28px !important;
  }
}

/* ==========================================================
   WYSOKI KONTRAST: czarne tło + żółty #ffff00
   Arkusz jest ładowany jako ostatni, dlatego poniższe reguły
   ujednolicają także starsze komponenty szablonu.
   ========================================================== */
body.accessibility-contrast.accessibility-contrast.accessibility-contrast {
  --hc-yellow: #ffff00;
  --color-primary: var(--hc-yellow);
  --color-link: var(--hc-yellow);
  --color-secondary: var(--hc-yellow);
  --color-inne: var(--hc-yellow);
  --color-inne2: var(--hc-yellow);
  background: #000 !important;
  color: var(--hc-yellow) !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(
  h1, h2, h3, h4, h5, h6,
  p, a, button, label, li, dt, dd, address, blockquote,
  figcaption, time, strong, small, span, td, th,
  .site-title, .material-symbols-outlined
) {
  color: var(--hc-yellow) !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(input, textarea, select) {
  border-color: var(--hc-yellow) !important;
  background: #000 !important;
  color: var(--hc-yellow) !important;
  caret-color: var(--hc-yellow) !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(input, textarea)::placeholder {
  color: var(--hc-yellow) !important;
  opacity: 1 !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(
  button, input, textarea, select,
  .site-header, .site-header .nav-menu, .site-header .mega-menu,
  .site-header .featured, .site-header .nav-btn,
  .opening-card, .service-mini, .patient-card,
  .schedule, .tab-list, .tab-panels, .doctor-hours li,
  .patient-card-toggle, .document-list a, .patient-note,
  .news-grid article, .contact, .accordion-item,
  .accordion-panel, .wilga-breadcrumbs, .article-header,
  .article-content blockquote, .standard-page-content blockquote,
  .search-empty, .error-card, .declaration-status,
  .wilga-pdf-module, .wilga-pdf-preview-wrap, .wilga-pdf-icon,
  .wilga-pdf-action, .wilga-pdf-mobile-fallback,
  .wilga-pdf-mobile-icon, .wilga-pdf-mobile-open
) {
  border-color: var(--hc-yellow) !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(
  .service-mini .material-symbols-outlined,
  .patient-card-icon
) {
  border-color: var(--hc-yellow) !important;
  background: var(--hc-yellow) !important;
  background-image: none !important;
  color: #000 !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(
  .contrast-belka button[aria-pressed="true"],
  .tab-list button[aria-selected="true"],
  .skip-link:focus-visible,
  .site-header .nav-btn:hover,
  .site-header .nav-btn:focus-visible
) {
  border-color: var(--hc-yellow) !important;
  background: var(--hc-yellow) !important;
  color: #000 !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(
  .contrast-belka button[aria-pressed="true"],
  .tab-list button[aria-selected="true"],
  .skip-link:focus-visible,
  .site-header .nav-btn:hover,
  .site-header .nav-btn:focus-visible
) :is(span, strong, svg) {
  color: #000 !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(a, button, input, textarea, select):focus-visible {
  outline: 3px solid #000 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 6px var(--hc-yellow) !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast .site-header .nav-link[aria-current="page"],
body.accessibility-contrast.accessibility-contrast.accessibility-contrast .site-header .nav-link:hover {
  border-bottom-color: var(--hc-yellow) !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast .doctor-hours li::before,
body.accessibility-contrast.accessibility-contrast.accessibility-contrast .hero-eyebrow::before {
  background: var(--hc-yellow) !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast .wilga-breadcrumbs li + li::before {
  color: var(--hc-yellow) !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast .wilga-pdf-action:focus-visible,
body.accessibility-contrast.accessibility-contrast.accessibility-contrast .wilga-pdf-preview:focus-visible,
body.accessibility-contrast.accessibility-contrast.accessibility-contrast .wilga-pdf-mobile-open:focus-visible {
  box-shadow: 0 0 0 6px var(--hc-yellow) !important;
}

/* Końcowa blokada kaskady. Starsze arkusze mają miejscami bardzo rozbudowane
   selektory z !important, dlatego tryb kontrastowy otrzymuje jednoznaczny
   priorytet bez wpływania na standardową wersję kolorystyczną. */
body.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast * {
  border-color: var(--hc-yellow) !important;
  color: var(--hc-yellow) !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(
  .service-mini .material-symbols-outlined,
  .patient-card-icon,
  .contrast-belka button[aria-pressed="true"],
  .tab-list button[aria-selected="true"],
  .skip-link:focus-visible,
  .site-header .nav-btn:hover,
  .site-header .nav-btn:focus-visible
) {
  border-color: var(--hc-yellow) !important;
  background: var(--hc-yellow) !important;
  background-image: none !important;
  color: #000 !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(
  .contrast-belka button[aria-pressed="true"],
  .tab-list button[aria-selected="true"],
  .skip-link:focus-visible,
  .site-header .nav-btn:hover,
  .site-header .nav-btn:focus-visible
) * {
  color: #000 !important;
}

body.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast.accessibility-contrast :is(
  a, button, input, textarea, select
):focus-visible {
  outline: 3px solid #000 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 6px var(--hc-yellow) !important;
}
