:root {
  --gl-primary: #102a56;
  --gl-primary-dark: #071a38;
  --gl-secondary: #285b9d;
  --gl-accent: #c99a32;
  --gl-text: #172033;
  --gl-muted: #5c6678;
  --gl-background: #fff;
  --gl-surface: #f5f7fa;
  --gl-line: #dce2eb;
  --gl-max-width: 1500px;
  --gl-base-size: 16px;
  --gl-menu-size: 15px;
  --gl-section-space: 104px;
  --gl-radius: 0px;
  --gl-card-bg: #fff;
  --gl-on-dark: #fff;
  --gl-focus: #ffbf47;
  --gl-books-bg: #fff;
  --gl-shop-bg: #fff;
  --gl-custom-bg: #fff;
  --gl-width-header: 1500px;
  --gl-width-hero: 1500px;
  --gl-width-quick: 1500px;
  --gl-width-current: 1500px;
  --gl-width-reader: 1500px;
  --gl-width-tourism: 1500px;
  --gl-width-books: 1500px;
  --gl-width-shop: 1500px;
  --gl-width-social: 1500px;
  --gl-width-custom: 1500px;
  --gl-width-contact: 1500px;
  --gl-width-footer: 1500px;
  --gl-width-content: 1050px;
  --gl-user-scale: 1;
  --gl-font: Inter, "Segoe UI", Arial, sans-serif;
  --gl-heading-font: Inter, "Segoe UI", Arial, sans-serif;
  --gl-shadow: 0 18px 45px rgba(16, 42, 86, .12);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: calc(var(--gl-base-size) * var(--gl-user-scale)); }
body { margin: 0; background: var(--gl-background); color: var(--gl-text); font-family: var(--gl-font); line-height: 1.65; }
body, button, input, textarea, select { font: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, h4 { color: var(--gl-primary-dark); font-family: var(--gl-heading-font); line-height: 1.14; }
:focus-visible { outline: 3px solid var(--gl-focus); outline-offset: 3px; }

.screen-reader-text,
.gl-skip-link:not(:focus) { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.gl-skip-link { position: fixed; z-index: 99999; left: 1rem; top: 1rem; padding: .8rem 1rem; background: #ffbf47; color: #000; font-weight: 800; }
.gl-container { width: min(calc(100% - 3rem), var(--gl-max-width)); margin-inline: auto; }
.gl-site-header .gl-container { max-width: var(--gl-width-header); }
.gl-hero .gl-container { max-width: var(--gl-width-hero); }
.gl-quick-links .gl-container { max-width: var(--gl-width-quick); }
.gl-section-current .gl-container { max-width: var(--gl-width-current); }
.gl-reader-section .gl-container { max-width: var(--gl-width-reader); }
.gl-section-tourism .gl-container { max-width: var(--gl-width-tourism); }
.gl-section-books .gl-container { max-width: var(--gl-width-books); }
.gl-section-shop .gl-container { max-width: var(--gl-width-shop); }
.gl-social-section .gl-container { max-width: var(--gl-width-social); }
.gl-custom-section .gl-container { max-width: var(--gl-width-custom); }
.gl-contact-teaser .gl-container { max-width: var(--gl-width-contact); }
.gl-site-footer .gl-container { max-width: var(--gl-width-footer); }

.gl-utility { background: var(--gl-utility-bg,var(--gl-primary-dark)); color: var(--gl-on-dark); font-size: .78rem; }
.gl-utility-inner, .gl-utility-contact, .gl-accessibility, .gl-brand-row, .gl-brand, .gl-header-actions, .gl-button-row, .gl-panel-heading, .gl-calendar-heading, .gl-calendar-legend, .gl-footer-formal-inner { display: flex; align-items: center; }
.gl-utility-inner { min-height: 42px; justify-content: space-between; gap: 1rem; }
.gl-utility-contact { gap: 1.2rem; flex-wrap: wrap; }
.gl-utility-contact a { font-weight: 800; }
.gl-today-hours { padding-left: 1rem; border-left: 1px solid rgba(255,255,255,.3); }
.gl-accessibility { align-self: stretch; }
.gl-accessibility button { min-width: 42px; height: 100%; padding: 0 .7rem; border: 0; border-left: 1px solid rgba(255,255,255,.22); background: transparent; color: var(--gl-on-dark); cursor: pointer; font-weight: 850; }
.gl-accessibility button:hover, .gl-accessibility button[aria-pressed="true"] { background: #fff; color: var(--gl-primary-dark); border-radius: 0; }

.gl-site-header { position: relative; z-index: 30; background: var(--gl-header-bg,#fff); box-shadow: 0 5px 25px rgba(16,42,86,.06); }
.gl-brand-row { min-height: 104px; justify-content: space-between; gap: 2rem; }
.gl-brand { gap: 1rem; }
.gl-brand .custom-logo-link { display: block; }
.gl-brand .custom-logo { width: auto; max-height: 68px; }
.gl-brand-mark, .gl-footer-mark { display: grid; place-items: center; width: 58px; height: 58px; background: var(--gl-primary); color: var(--gl-on-dark); border: 2px solid var(--gl-primary); box-shadow: inset 0 0 0 4px var(--gl-card-bg); font-weight: 900; letter-spacing: .06em; }
.gl-brand-copy { display: grid; line-height: 1.2; }
.gl-brand-copy strong { color: var(--gl-primary); font-size: clamp(1.15rem, 2vw, 1.65rem); font-weight: 850; letter-spacing: -.025em; }
.gl-brand-copy span { margin-top: .3rem; color: var(--gl-muted); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.gl-header-actions { gap: .6rem; }
.gl-header-actions a { min-height: 46px; padding: .65rem .9rem; border: 1px solid var(--gl-line); color: var(--gl-primary); font-size: .86rem; font-weight: 750; }
.gl-header-actions a:hover { background: color-mix(in srgb, var(--gl-primary) 9%, #fff); border-color: var(--gl-primary); border-radius: 0; }
.gl-menu-toggle { display: none; min-height: 48px; padding: .7rem .95rem; border: 0; background: var(--gl-primary); color: var(--gl-on-dark); font-weight: 800; cursor: pointer; }
.gl-main-navigation { border-top: 1px solid var(--gl-line); }
.gl-menu { display: flex; justify-content: space-between; align-items: stretch; min-height: 58px; margin: 0; padding: 0; list-style: none; }
.gl-menu > li { display: flex; flex: 1 1 auto; }
.gl-menu > li > a { display: grid; place-items: center; width: 100%; padding: .8rem .65rem; border-bottom: 3px solid transparent; font-size: var(--gl-menu-size); font-weight: 720; text-align: center; }
.gl-menu > li:first-child > a { color: var(--gl-primary); }
.gl-menu > li > a:hover, .gl-menu > li.current-menu-item > a { background: color-mix(in srgb, var(--gl-primary) 9%, #fff); color: var(--gl-primary); border-bottom-color: var(--gl-primary); border-radius: 0; }
.gl-menu .sub-menu { position: absolute; z-index: 50; display: none; min-width: 240px; margin: 58px 0 0; padding: .5rem 0; background: #fff; border: 1px solid var(--gl-line); box-shadow: var(--gl-shadow); list-style: none; }
.gl-menu li:hover > .sub-menu, .gl-menu li:focus-within > .sub-menu { display: block; }
.gl-menu .sub-menu a { display: block; padding: .7rem 1rem; font-size: .85rem; font-weight: 700; }
.gl-menu .sub-menu a:hover { background: var(--gl-surface); border-radius: 0; }

.gl-main { min-height: 50vh; }
.gl-eyebrow, .gl-meta { margin: 0 0 .9rem; color: var(--gl-secondary); font-size: .78rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.gl-hero { padding: clamp(3rem, 7vw, 7rem) 0 4rem; background: linear-gradient(90deg, rgba(16,42,86,.035) 1px, transparent 1px), linear-gradient(rgba(16,42,86,.035) 1px, transparent 1px), var(--gl-hero-bg,#fff); background-size: 34px 34px; }
.gl-hero-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(520px,1.1fr); gap: clamp(3rem,7vw,7rem); align-items: center; }
.gl-hero h1 { max-width: 780px; margin: 0 0 1.2rem; font-size: clamp(2.6rem,5vw,var(--gl-h1-size,88px)); font-weight: 870; letter-spacing: -.055em; }
.gl-hero-slogan { margin: 0 0 1rem; color: var(--gl-secondary); font-size: clamp(1.2rem,2.2vw,1.7rem); font-weight: 780; }
.gl-hero-intro { max-width: 680px; margin: 0 0 2rem; color: var(--gl-muted); font-size: clamp(1rem,1.5vw,1.2rem); line-height: 1.75; }
.gl-button-row { flex-wrap: wrap; gap: .75rem; }
.gl-button, .wp-element-button, input[type="submit"], button[type="submit"] { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .78rem 1.2rem; border: 2px solid var(--gl-primary); border-radius: var(--gl-radius); font-weight: 820; cursor: pointer; }
.gl-button:hover, .wp-element-button:hover, input[type="submit"]:hover, button[type="submit"]:hover { transform: translateY(-2px); border-radius: 0; }
.gl-button-primary, input[type="submit"], button[type="submit"] { background: var(--gl-primary); color: var(--gl-on-dark); }
.gl-button-secondary { background: var(--gl-card-bg); color: var(--gl-primary); }
.gl-hero-media { position: relative; min-height: 500px; }
.gl-hero-media::before { position: absolute; content: ""; inset: -22px 36px 36px -26px; background: var(--gl-primary); }
.gl-hero-media img { position: relative; z-index: 1; width: 100%; height: 500px; object-fit: cover; }
.gl-hero-hours { position: absolute; z-index: 2; right: 0; bottom: 0; display: grid; min-width: 225px; padding: 1.1rem 1.4rem; background: var(--gl-card-bg); border-left: 5px solid var(--gl-accent); box-shadow: var(--gl-shadow); }
.gl-hero-hours small { color: var(--gl-muted); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gl-hero-hours strong { color: var(--gl-primary); font-size: 1.45rem; }

.gl-quick-links { background: var(--gl-quick-bg,var(--gl-primary)); color: var(--gl-on-dark); }
.gl-quick-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.gl-quick-card { display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 96px; padding: 1.1rem 1.3rem; border-right: 1px solid rgba(255,255,255,.22); }
.gl-quick-card:first-child { border-left: 1px solid rgba(255,255,255,.22); }
.gl-quick-card:hover { background: #fff; color: var(--gl-primary); border-radius: 0; }
.gl-quick-card strong, .gl-quick-card small { display: block; }
.gl-quick-card small { opacity: .75; font-size: .76rem; }
.gl-quick-arrow { font-size: 1.3rem; }

.gl-section { padding: var(--gl-section-space) 0; }
.gl-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem; }
.gl-section-heading h2, .gl-tourism-intro h2, .gl-contact-teaser h2 { margin: 0; font-size: clamp(2rem,3.4vw,var(--gl-h2-size,58px)); font-weight: 850; letter-spacing: -.045em; }
.gl-section-heading > p { max-width: 510px; margin: 0; color: var(--gl-muted); }
.gl-section-link, .gl-text-link { color: var(--gl-primary); font-size: .84rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.gl-section-separator { border-top: 1px solid var(--gl-line); }

.gl-section-current { background: var(--gl-current-bg,#fff); }
.gl-live-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(360px,.92fr); gap: 1.35rem; align-items: start; }
.gl-panel { background: var(--gl-card-bg); border: 1px solid var(--gl-line); border-radius: var(--gl-radius); }
.gl-panel-heading { min-height: 70px; justify-content: space-between; padding: 1.1rem 1.3rem; background: var(--gl-surface); border-bottom: 1px solid var(--gl-line); }
.gl-panel-heading h3 { margin: 0; font-size: 1.12rem; }
.gl-news-list, .gl-event-list { display: grid; }
.gl-news-card { display: grid; min-height: 178px; padding: 1.3rem; border-bottom: 1px solid var(--gl-line); }
.gl-news-card:last-child, .gl-event-card:last-child { border-bottom: 0; }
.gl-news-card:hover, .gl-event-card:hover { background: color-mix(in srgb, var(--gl-primary) 8%, #fff); border-radius: 0; }
.gl-news-card h4 { margin: .25rem 0 .45rem; font-size: 1rem; }
.gl-news-card p { margin: 0 0 .55rem; color: var(--gl-muted); font-size: .84rem; }
.gl-event-card { display: grid; grid-template-columns: 66px 1fr; gap: 1rem; min-height: 178px; padding: 1.3rem; border-bottom: 1px solid var(--gl-line); }
.gl-event-date { display: grid; place-items: center; align-content: center; align-self: start; width: 66px; height: 72px; background: var(--gl-primary); color: var(--gl-on-dark); }
.gl-event-date strong { font-size: 1.65rem; line-height: 1; }
.gl-event-date small { font-weight: 850; letter-spacing: .1em; }
.gl-event-copy { display: grid; align-content: start; }
.gl-event-copy h4 { margin: .4rem 0; font-size: 1rem; }
.gl-event-copy p { margin: 0; color: var(--gl-muted); font-size: .78rem; }
.gl-event-type { width: fit-content; padding: .15rem .42rem; background: var(--gl-secondary); color: var(--gl-on-dark); font-size: .62rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }

.gl-calendar { padding: 1.1rem; }
.gl-calendar-heading { justify-content: space-between; margin-bottom: 1rem; }
.gl-calendar-heading h4 { margin: 0; font-size: 1rem; text-transform: capitalize; }
.gl-calendar-nav { width: 38px; height: 38px; border: 1px solid var(--gl-line); background: var(--gl-card-bg); color: var(--gl-primary); cursor: pointer; font-weight: 850; }
.gl-calendar-nav:hover { background: var(--gl-primary); color: #fff; border-radius: 0; }
.gl-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.gl-calendar-weekdays { margin-bottom: 5px; color: var(--gl-muted); font-size: .66rem; font-weight: 800; text-align: center; }
.gl-calendar-day, .gl-calendar-empty { position: relative; display: grid; place-items: center; height: 42px; padding: 0; border: 0; background: var(--gl-surface); color: var(--gl-text); font-size: .75rem; }
button.gl-calendar-day { cursor: pointer; }
.gl-calendar-day.has-events { background: var(--gl-primary); color: var(--gl-on-dark); font-weight: 850; }
.gl-calendar-day:hover { outline: 2px solid var(--gl-primary); outline-offset: -2px; border-radius: 0; }
.gl-calendar-count { position: absolute; right: 3px; top: 1px; font-size: .52rem; }
.gl-calendar-legend { flex-wrap: wrap; gap: .7rem; margin-top: .9rem; color: var(--gl-muted); font-size: .65rem; }
.gl-calendar-legend span { display: inline-flex; align-items: center; gap: .3rem; }
.gl-calendar-dot { width: 9px; height: 9px; background: var(--gl-secondary); }
.gl-calendar-message { margin-top: .8rem; padding: .7rem; background: color-mix(in srgb, var(--gl-primary) 9%, #fff); font-size: .75rem; }

.gl-reader-section { background: var(--gl-reader-bg,var(--gl-surface)); }
.gl-reader-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: var(--gl-line); border: 1px solid var(--gl-line); }
.gl-reader-card { position: relative; min-height: 280px; padding: 1.8rem; background: var(--gl-card-bg); overflow: hidden; }
.gl-reader-number { position: absolute; right: 1rem; top: .4rem; color: #edf1f6; font-size: 4rem; font-weight: 900; line-height: 1; }
.gl-reader-card h3 { margin: 3.3rem 0 .6rem; font-size: var(--gl-card-title-size,21px); }
.gl-reader-card p { color: var(--gl-muted); }
.gl-reader-card:hover { background: var(--gl-primary); color: var(--gl-on-dark); border-radius: 0; }
.gl-reader-card:hover h3, .gl-reader-card:hover p, .gl-reader-card:hover .gl-text-link { color: var(--gl-on-dark); }
.gl-reader-card:hover .gl-reader-number { color: rgba(255,255,255,.08); }

.gl-section-tourism { background: var(--gl-tourism-bg,#fff); }
.gl-tourism-intro { max-width: 780px; margin-bottom: 2.8rem; }
.gl-tourism-intro > p:last-child { color: var(--gl-muted); font-size: 1.03rem; }
.gl-tourism-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.2rem; }
.gl-tourism-card { position: relative; min-height: 420px; overflow: hidden; background: var(--gl-primary-dark); border-radius: var(--gl-radius); }
.gl-tourism-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease, opacity .25s ease; }
.gl-tourism-overlay { position: absolute; inset: 0; display: grid; align-content: end; padding: clamp(1.5rem,4vw,3rem); color: var(--gl-on-dark); background: linear-gradient(180deg,rgba(7,26,56,.04) 20%,rgba(7,26,56,.95) 100%); }
.gl-tourism-overlay small { font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gl-tourism-overlay strong { margin: .4rem 0 .7rem; font-size: clamp(1.7rem,3vw,2.7rem); line-height: 1.1; }
.gl-tourism-overlay span { opacity: .88; }
.gl-tourism-card:hover { outline: 4px solid var(--gl-accent); outline-offset: -4px; border-radius: 0; }
.gl-tourism-card:hover img { transform: scale(1.035); opacity: .77; }

.gl-social-section { background: var(--gl-social-bg,color-mix(in srgb, var(--gl-primary) 9%, #fff)); }
.gl-social-layout { display: grid; grid-template-columns: .8fr 1.4fr; gap: clamp(2rem,6vw,6rem); align-items: center; }
.gl-reels-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.gl-reel-card { padding: 1.2rem; background: var(--gl-card-bg); border: 1px solid var(--gl-line); }
.gl-reel-media { position: relative; aspect-ratio: 4/3; margin: -1.2rem -1.2rem 1rem; background: var(--gl-primary); overflow: hidden; }
.gl-reel-media img { width: 100%; height: 100%; object-fit: cover; opacity: .8; }
.gl-reel-card h3 { margin-bottom: .5rem; }
.gl-reel-card p { margin-bottom: 0; color: var(--gl-muted); font-size: .84rem; }

.gl-section-books { background: var(--gl-books-bg); }
.gl-section-shop { background: var(--gl-shop-bg); }
.gl-custom-section { background: var(--gl-custom-bg); }
.gl-custom-section .gl-custom-media { margin-bottom: 1.5rem; }
.gl-custom-section .gl-custom-media img { width: 100%; max-height: 520px; object-fit: cover; }
.gl-contact-teaser { background: var(--gl-contact-bg,var(--gl-primary-dark)); color: var(--gl-on-dark); }
.gl-contact-layout { display: grid; grid-template-columns: 1.2fr .8fr; gap: 3rem; align-items: center; }
.gl-contact-teaser h2 { color: var(--gl-on-dark); }
.gl-contact-teaser p { color: rgba(255,255,255,.74); }
.gl-contact-actions { display: grid; gap: .7rem; }
.gl-contact-teaser .gl-button-primary { background: var(--gl-card-bg); border-color: var(--gl-card-bg); color: var(--gl-primary); }
.gl-contact-teaser .gl-button-secondary { background: transparent; border-color: rgba(255,255,255,.5); color: var(--gl-on-dark); }

.gl-page-hero { padding: 4rem 0; background: linear-gradient(90deg,rgba(16,42,86,.045) 1px,transparent 1px), linear-gradient(rgba(16,42,86,.045) 1px,transparent 1px), var(--gl-surface); background-size: 34px 34px; }
.gl-page-hero h1 { max-width: 1050px; margin: 0; font-size: clamp(2.3rem,4.2vw,4.7rem); letter-spacing: -.045em; }
.gl-breadcrumbs { display: flex; gap: .55rem; margin-bottom: 2rem; color: var(--gl-muted); font-size: .78rem; }
.gl-breadcrumbs a { color: var(--gl-secondary); text-decoration: underline; text-underline-offset: 3px; }
.gl-content, .gl-entry-content { max-width: var(--gl-width-content); padding-block: 4.5rem 6rem; }
.gl-entry-content { font-size: 1.03rem; }
.gl-entry-content > * + * { margin-top: 1.5rem; }
.gl-single-image { margin: 0 0 2rem; }
.gl-single-image img { width: 100%; }
.gl-entry-details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin: 0 0 2rem; background: var(--gl-line); border: 1px solid var(--gl-line); }
.gl-entry-details > div { padding: 1rem 1.2rem; background: var(--gl-card-bg); }
.gl-entry-details dt { color: var(--gl-muted); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.gl-entry-details dd { margin: .25rem 0 0; color: var(--gl-primary-dark); font-weight: 780; }
.gl-entry-highlight { padding: 1rem 1.2rem; background: var(--gl-surface); border-left: 4px solid var(--gl-primary); }

.gl-archive-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 3rem; padding-block: 4rem 6rem; align-items: start; }
.search-form { display: grid; grid-template-columns: 1fr auto; margin-bottom: 1.3rem; }
.search-form label { margin: 0; }
.search-field { width: 100%; min-height: 52px; padding: .7rem 1rem; border: 1px solid var(--gl-line); }
.search-submit { min-height: 52px; }
.gl-post-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.gl-post-card { border: 1px solid var(--gl-line); background: var(--gl-card-bg); }
.gl-card-image { display: block; aspect-ratio: 16/9; overflow: hidden; }
.gl-card-image img { width: 100%; height: 100%; object-fit: cover; }
.gl-card-content { padding: 1.4rem; }
.gl-card-content h2 { margin: .3rem 0 .6rem; font-size: 1.3rem; }
.gl-card-content p { color: var(--gl-muted); }
.gl-post-card:hover { background: color-mix(in srgb, var(--gl-primary) 8%, #fff); border-color: var(--gl-primary); border-radius: 0; }
.gl-tourism-archive { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; padding-block: 4rem 2rem; }
.gl-tourism-entry { display: grid; grid-template-columns: 220px 1fr; border: 1px solid var(--gl-line); background: var(--gl-card-bg); }
.gl-tourism-entry-image { min-height: 220px; background: var(--gl-surface); }
.gl-tourism-entry-image img { width: 100%; height: 100%; object-fit: cover; }
.gl-tourism-entry > div { padding: 1.4rem; }
.gl-tourism-entry h2 { margin: .35rem 0 .6rem; font-size: 1.3rem; }
.gl-tourism-entry p { color: var(--gl-muted); }
.gl-tourism-entry:hover { background: color-mix(in srgb,var(--gl-primary) 8%,#fff); border-color: var(--gl-primary); border-radius: 0; }
.gl-tourism-archive.is-gallery { grid-template-columns: repeat(3,minmax(0,1fr)); }
.gl-tourism-archive.is-gallery .gl-tourism-entry { display: block; }
.gl-tourism-archive.is-gallery .gl-tourism-entry-image { display: block; height: 280px; }
.gl-tourism-archive.is-gallery .gl-tourism-entry > div { padding: .9rem 1rem; }
.gl-sidebar { position: sticky; top: 1rem; }
.gl-widget { margin-bottom: 1rem; padding: 1.3rem; background: var(--gl-surface); border-top: 4px solid var(--gl-primary); }
.gl-widget-title, .gl-widget h2 { margin-top: 0; font-size: 1.05rem; }
.gl-widget summary { color: var(--gl-primary); cursor: pointer; font-weight: 800; }
.gl-widget ul { margin: .8rem 0 0; padding-left: 1.2rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 .75rem; border: 1px solid var(--gl-line); font-weight: 800; }
.page-numbers.current { background: var(--gl-primary); color: var(--gl-on-dark); }

.gl-site-footer { padding-top: 4.5rem; background: var(--gl-footer-bg,#fff); border-top: 1px solid var(--gl-line); }
.gl-footer-grid { display: grid; grid-template-columns: 1.25fr .8fr 1fr 1fr; gap: 3rem; padding-bottom: 4rem; }
.gl-site-footer h2 { margin: 1rem 0; font-size: 1rem; text-transform: uppercase; letter-spacing: .05em; }
.gl-site-footer section > a, .gl-footer-menu a { display: block; width: fit-content; margin-bottom: .4rem; color: var(--gl-primary); font-size: .82rem; font-weight: 700; }
.gl-site-footer p { color: var(--gl-muted); font-size: .82rem; }
.gl-footer-small { overflow-wrap: anywhere; }
.gl-opening-hours { width: 100%; border-collapse: collapse; font-size: .76rem; }
.gl-opening-hours th, .gl-opening-hours td { padding: .22rem 0; border: 0; text-align: left; }
.gl-opening-hours td { text-align: right; font-weight: 720; }
.gl-footer-menu, .gl-formal-menu { margin: 0; padding: 0; list-style: none; }
.gl-footer-archive { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--gl-line); font-size: .82rem; }
.gl-footer-archive summary { color: var(--gl-primary); cursor: pointer; font-weight: 800; }
.gl-footer-archive ul { padding-left: 1.2rem; }
.gl-footer-formal { padding: 1rem 0; background: var(--gl-footer-bar-bg,var(--gl-primary-dark)); color: rgba(255,255,255,.72); font-size: .7rem; }
.gl-footer-formal-inner { justify-content: space-between; gap: 1.4rem; }
.gl-footer-formal p { margin: 0; color: inherit; }
.gl-formal-menu { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }
.gl-formal-menu a { color: var(--gl-on-dark); }

html[data-contrast="high"] { --gl-primary:#000; --gl-primary-dark:#000; --gl-secondary:#0000b8; --gl-accent:#fff000; --gl-text:#000; --gl-muted:#111; --gl-background:#fff; --gl-surface:#fff; --gl-line:#000; --gl-card-bg:#fff; --gl-on-dark:#fff; --gl-focus:#ffbf47; --gl-header-bg:#fff; --gl-utility-bg:#000; --gl-hero-bg:#fff; --gl-quick-bg:#000; --gl-current-bg:#fff; --gl-reader-bg:#fff; --gl-tourism-bg:#fff; --gl-books-bg:#fff; --gl-shop-bg:#fff; --gl-custom-bg:#fff; --gl-social-bg:#fff; --gl-contact-bg:#000; --gl-footer-bg:#fff; --gl-footer-bar-bg:#000; }
html[data-contrast="high"] .gl-hero, html[data-contrast="high"] .gl-page-hero { background: #fff; }

@media (max-width: 1220px) {
  .gl-menu { flex-wrap: wrap; justify-content: flex-start; }
  .gl-menu > li { flex: 1 1 auto; }
  .gl-live-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gl-calendar-panel { grid-column: 1/-1; }
  .gl-calendar-panel .gl-calendar { max-width: 680px; margin-inline: auto; }
  .gl-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .gl-decoration { display: none !important; }
  .gl-utility-contact > span:first-child, .gl-today-hours, .gl-header-actions { display: none; }
  .gl-menu-toggle { display: block; }
  .gl-main-navigation { display: none; }
  .gl-main-navigation.is-open { display: block; }
  .gl-menu { display: grid; min-height: 0; }
  .gl-menu > li { display: block; }
  .gl-menu > li > a { display: block; padding: .8rem 1rem; text-align: left; border-bottom: 1px solid var(--gl-line); }
  .gl-menu .sub-menu { position: static; display: block; margin: 0; box-shadow: none; border: 0; padding-left: 1rem; }
  .gl-hero-grid, .gl-social-layout, .gl-contact-layout, .gl-archive-layout { grid-template-columns: 1fr; }
  .gl-hero-media, .gl-hero-media img { min-height: 400px; height: 400px; }
  .gl-quick-grid, .gl-reader-grid, .gl-tourism-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gl-sidebar { position: static; }
  .gl-tourism-archive, .gl-tourism-archive.is-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gl-footer-formal-inner { flex-direction: column; text-align: center; }
}

@media (max-width: 640px) {
  .gl-container { width: min(calc(100% - 1.4rem), var(--gl-max-width)); }
  .gl-utility-inner { width: 100%; }
  .gl-accessibility [data-contrast-toggle] span { display: none; }
  .gl-brand-row { min-height: 88px; gap: .6rem; }
  .gl-brand { gap: .6rem; }
  .gl-brand-mark { width: 46px; height: 46px; font-size: .9rem; }
  .gl-brand-copy strong { font-size: 1rem; }
  .gl-brand-copy span { max-width: 180px; font-size: .6rem; }
  .gl-menu-toggle { width: 48px; padding: 0; font-size: 0; }
  .gl-menu-toggle span { font-size: 1.35rem; }
  .gl-hero { padding: 3rem 0; }
  .gl-hero h1 { font-size: clamp(2.4rem,12vw,3.4rem); }
  .gl-hero-media, .gl-hero-media img { min-height: 310px; height: 310px; }
  .gl-hero-media::before { inset: -10px 14px 20px -7px; }
  .gl-quick-grid, .gl-live-grid, .gl-reader-grid, .gl-tourism-grid, .gl-reels-grid, .gl-post-grid, .gl-tourism-archive, .gl-tourism-archive.is-gallery, .gl-footer-grid { grid-template-columns: 1fr; }
  .gl-tourism-entry { grid-template-columns: 1fr; }
  .gl-entry-details { grid-template-columns: 1fr; }
  .gl-section { padding: 4rem 0; }
  .gl-section-heading { align-items: start; flex-direction: column; }
  .gl-news-card, .gl-event-card { min-height: 0; }
  .gl-tourism-card { min-height: 360px; }
  .gl-page-hero { padding: 3rem 0; }
  .gl-content, .gl-entry-content, .gl-archive-layout { padding-block: 3rem 5rem; }
}

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

/* ============================================================
   Wersja 1.2.0 — poprawki zaakceptowane z klientem (09.2026)
   ============================================================ */
:root {
  --gl-width-saturdays: 1500px;
  --gl-width-special: 1500px;
}
.gl-saturdays-section .gl-container { max-width: var(--gl-width-saturdays); }
.gl-special-section .gl-container { max-width: var(--gl-width-special); }

/* Górna belka: social media -> BIP -> dostępność */
.gl-utility-inner { min-height: 48px; }
.gl-utility-left,
.gl-utility-right,
.gl-social-links { display: flex; align-items: center; }
.gl-utility-left { min-width: 0; }
.gl-utility-right { align-self: stretch; margin-left: auto; }
.gl-social-links { gap: .2rem; }
.gl-social-icon { display: grid !important; place-items: center; width: 42px !important; height: 42px; margin: 0 !important; color: currentColor !important; }
.gl-social-icon svg { width: 19px; height: 19px; }
.gl-utility .gl-social-icon:hover { background: rgba(255,255,255,.14); }
.gl-utility-bip { display: grid; place-items: center; align-self: stretch; min-width: 62px; padding: 0 .9rem; border-left: 1px solid rgba(255,255,255,.22); border-right: 1px solid rgba(255,255,255,.22); font-weight: 900; letter-spacing: .08em; }
.gl-utility-bip:hover { background: #fff; color: var(--gl-primary-dark); }
.gl-accessibility { align-self: stretch; }

/* Logo i akcje nagłówka */
.gl-brand-logo { display: flex; align-items: center; flex: 0 0 auto; }
.gl-brand-logo .gl-logo-image { width: auto; max-width: min(290px, 31vw); max-height: 78px; object-fit: contain; }
.gl-header-actions { align-self: stretch; gap: .65rem; padding-block: 1rem; }
.gl-header-actions a { display: flex; align-items: center; justify-content: center; min-width: 112px; min-height: 50px; padding: .7rem 1rem; text-align: center; line-height: 1.2; }
.gl-menu > li > a { font-weight: 760; }
.gl-menu .sub-menu a { font-size: max(.92rem, calc(var(--gl-menu-size) - 2px)); }

/* Hero: bez przycisków i bez granatowego cienia; godziny pod tekstem */
.gl-hero-grid { grid-template-columns: minmax(0,.92fr) minmax(480px,1.08fr); }
.gl-hero-media { min-height: 460px; background: var(--gl-surface); overflow: hidden; }
.gl-hero-media::before { display: none !important; content: none !important; }
.gl-hero-media img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: var(--gl-hero-fit, cover); object-position: var(--gl-hero-position, center); }
.gl-hero-hours-inline { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .8rem 1rem; max-width: 680px; margin-top: 2rem; padding: 1rem 1.15rem; background: var(--gl-surface); border-left: 5px solid var(--gl-accent); }
.gl-hero-hours-inline > span { color: var(--gl-muted); font-size: .76rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.gl-hero-hours-inline strong { color: var(--gl-primary-dark); font-size: 1.06rem; }
.gl-hero-hours-inline a { color: var(--gl-primary); font-size: .82rem; font-weight: 850; text-decoration: underline; text-underline-offset: 3px; }

/* Cztery oddzielne kafle zamiast jednej długiej belki */
.gl-quick-links { padding: 1.35rem 0; background: var(--gl-background); color: var(--gl-on-dark); }
.gl-quick-grid { gap: 1rem; }
.gl-quick-card { min-height: 92px; padding: 1rem 1.25rem; background: var(--gl-quick-bg,var(--gl-primary)); border: 0 !important; box-shadow: 0 7px 20px rgba(16,42,86,.07); }
.gl-quick-card strong { font-size: clamp(1rem,1.25vw,1.18rem); }
.gl-quick-card small { margin-top: .15rem; font-size: .8rem; }
.gl-quick-card:hover { background: var(--gl-primary-dark); color: var(--gl-on-dark); transform: translateY(-2px); }

/* Aktualności + wydarzenia; brak kalendarza na stronie głównej */
.gl-current-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(330px,.9fr); gap: clamp(1.2rem,2.5vw,2rem); align-items: start; }
.gl-current-news,
.gl-current-events { min-width: 0; background: var(--gl-card-bg); border: 1px solid var(--gl-line); }
.gl-panel-heading-clean { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; padding: .95rem 1.1rem; background: var(--gl-surface); border-bottom: 1px solid var(--gl-line); }
.gl-panel-heading-clean h3 { margin: 0; font-size: 1.12rem; }
.gl-news-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--gl-line); }
.gl-news-card-horizontal { display: grid; grid-template-columns: 145px minmax(0,1fr); min-height: 178px; padding: 0; background: var(--gl-card-bg); border: 0; overflow: hidden; }
.gl-news-thumb { display: block; min-height: 100%; background: var(--gl-surface); overflow: hidden; }
.gl-news-thumb img { width: 100%; height: 100%; min-height: 178px; object-fit: cover; }
.gl-news-thumb-fallback { display: grid; place-items: center; width: 100%; min-height: 178px; height: 100%; background: color-mix(in srgb, var(--gl-primary) 10%, #fff); color: var(--gl-primary); font-size: 1.4rem; font-weight: 900; letter-spacing: .08em; }
.gl-news-copy { display: block; min-width: 0; padding: 1rem; }
.gl-news-copy .gl-meta { margin-bottom: .35rem; font-size: .65rem; }
.gl-news-card-horizontal h4 { margin: 0 0 .45rem; font-size: 1rem; }
.gl-news-card-horizontal p { margin: 0 0 .5rem; color: var(--gl-muted); font-size: .8rem; }
.gl-news-card-horizontal:hover { background: color-mix(in srgb, var(--gl-primary) 7%, #fff); }
.gl-current-events .gl-event-list { display: grid; }
.gl-current-events .gl-event-card { min-height: 0; padding: 1rem; }
.gl-current-events .gl-event-date { width: 62px; height: 66px; }
.gl-current-events .gl-event-copy h4 { margin: .28rem 0; }
.gl-more-events { display: flex; align-items: center; justify-content: center; min-height: 54px; padding: .8rem 1rem; border-top: 1px solid var(--gl-line); color: var(--gl-primary); font-weight: 850; text-align: center; }
.gl-more-events:hover { background: var(--gl-surface); }

/* Instagram bezpośrednio pod aktualnościami/wydarzeniami; rolki 9:16 */
.gl-social-section { background: var(--gl-social-bg,color-mix(in srgb,var(--gl-primary) 7%,#fff)); }
.gl-social-layout { grid-template-columns: minmax(250px,.55fr) minmax(0,1.45fr); align-items: start; }
.gl-social-copy { position: sticky; top: 1rem; }
.gl-instagram-feed { min-width: 0; }
.gl-reels-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,250px)); justify-content: start; gap: 1rem; }
.gl-reel-card { padding: 0; background: var(--gl-card-bg); border: 1px solid var(--gl-line); overflow: hidden; }
.gl-reel-media { aspect-ratio: 9/16; margin: 0; }
.gl-reel-media img { width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.gl-reel-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: #fff; font-weight: 850; }
.gl-instagram-feed iframe { max-width: 100% !important; }

/* Harmonogram sobót */
.gl-saturdays-section { background: var(--gl-background); }
.gl-saturday-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.gl-saturday-card { display: grid; grid-template-columns: 88px 1fr; min-height: 116px; background: var(--gl-card-bg); border: 1px solid var(--gl-line); }
.gl-saturday-card time { display: grid; place-items: center; align-content: center; padding: .8rem; background: var(--gl-primary); color: var(--gl-on-dark); text-align: center; }
.gl-saturday-card time strong { font-size: 2rem; line-height: 1; }
.gl-saturday-card time span { font-size: .73rem; font-weight: 900; letter-spacing: .08em; }
.gl-saturday-card time small { margin-top: .2rem; opacity: .8; }
.gl-saturday-card > div { display: grid; align-content: center; padding: 1rem 1.1rem; }
.gl-saturday-card h3 { margin: 0; font-size: 1.12rem; }
.gl-saturday-card p { margin: .35rem 0 0; color: var(--gl-muted); font-size: .85rem; }

/* Nowości i zbiory specjalne: tylko wybrane grafiki, bez tytułów */
.gl-section-heading-compact { margin-bottom: 1.8rem; }
.gl-special-section { background: var(--gl-books-bg,#fff); }
.gl-cover-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(130px,190px)); justify-content: start; gap: clamp(.85rem,2vw,1.5rem); }
.gl-cover-card { display: block; aspect-ratio: 2/3; padding: .35rem; background: #fff; border: 1px solid var(--gl-line); overflow: hidden; }
.gl-cover-card img { width: 100%; height: 100%; object-fit: contain; }
.gl-cover-card[href]:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(16,42,86,.12); }
.gl-admin-only-empty { padding: 1rem; border: 1px dashed var(--gl-line); background: var(--gl-surface); }

/* Stopka: większy tekst + godziny / turystyka / wystawy obok siebie */
.gl-footer-grid-new { grid-template-columns: 1.15fr .9fr .9fr .9fr; gap: clamp(1.5rem,3vw,3rem); }
.gl-footer-logo { display: flex !important; margin-bottom: 1.2rem !important; }
.gl-footer-logo .gl-logo-image { width: auto; max-width: 250px; max-height: 76px; object-fit: contain; }
.gl-site-footer section > h2 { font-size: 1.08rem; }
.gl-site-footer section > a,
.gl-footer-menu a { font-size: .92rem; line-height: 1.45; }
.gl-site-footer p { font-size: .9rem; }
.gl-opening-hours { font-size: .87rem; }
.gl-opening-hours th,
.gl-opening-hours td { padding: .3rem 0; }
.gl-social-links-footer { margin-top: .9rem; gap: .3rem; }
.gl-social-links-footer .gl-social-icon { width: 40px !important; height: 40px; border: 1px solid var(--gl-line); color: var(--gl-primary) !important; }
.gl-footer-links li + li { margin-top: .2rem; }

html[data-contrast="high"] .gl-quick-card { background: #000; color: #fff; border: 2px solid #fff !important; }
html[data-contrast="high"] .gl-hero-hours-inline { border: 2px solid #000; border-left-width: 5px; }

@media (max-width: 1220px) {
  .gl-brand-logo .gl-logo-image { max-width: 230px; }
  .gl-current-grid { grid-template-columns: minmax(0,1.55fr) minmax(300px,.85fr); }
  .gl-news-grid { grid-template-columns: 1fr; }
  .gl-saturday-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gl-footer-grid-new { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .gl-utility-inner { gap: .5rem; }
  .gl-utility-left { display: flex; }
  .gl-utility-right { margin-left: auto; }
  .gl-brand-logo .gl-logo-image { max-width: 190px; max-height: 62px; }
  .gl-hero-grid, .gl-current-grid, .gl-social-layout { grid-template-columns: 1fr; }
  .gl-hero-media { min-height: 380px; }
  .gl-social-copy { position: static; }
  .gl-quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gl-cover-grid { grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); }
}

@media (max-width: 640px) {
  .gl-utility-inner { align-items: stretch; }
  .gl-utility-left { align-items: center; }
  .gl-social-icon { width: 36px !important; height: 42px; }
  .gl-utility-bip { min-width: 52px; padding-inline: .55rem; }
  .gl-accessibility button { min-width: 37px; padding-inline: .45rem; }
  .gl-brand-logo .gl-logo-image { max-width: 145px; max-height: 54px; }
  .gl-brand-copy span { display: none; }
  .gl-hero-media { min-height: 300px; }
  .gl-hero-hours-inline { grid-template-columns: 1fr; gap: .2rem; }
  .gl-quick-grid { grid-template-columns: 1fr; }
  .gl-news-card-horizontal { grid-template-columns: 112px minmax(0,1fr); }
  .gl-news-thumb img, .gl-news-thumb-fallback { min-height: 165px; }
  .gl-saturday-grid { grid-template-columns: 1fr; }
  .gl-cover-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gl-footer-grid-new { grid-template-columns: 1fr; }
}
.gl-brand-wordmark { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; max-width: 230px; padding: .55rem .85rem; background: var(--gl-primary); color: var(--gl-on-dark); font-size: .82rem; font-weight: 900; line-height: 1.15; text-align: center; text-transform: uppercase; letter-spacing: .035em; }


/* ============================================================
   Wersja 1.3.0 — korekta po porównaniu testowanie/testownikus1
   ============================================================ */
/* Przywrócenie danych kontaktowych z wersji zaakceptowanej i kolejność:
   kontakt | social media | BIP | A-/A/A+ | kontrast. */
.gl-utility-left { display:flex; align-items:center; min-width:0; }
.gl-utility-right { display:flex; align-items:center; align-self:stretch; margin-left:auto; }
.gl-utility-contact { gap:1.15rem; }
.gl-utility-contact a { color:inherit; font-weight:800; }
.gl-social-links-utility { align-self:stretch; padding-inline:.25rem; border-left:1px solid rgba(255,255,255,.14); }
.gl-social-links-utility .gl-social-icon { height:100%; min-height:48px; }

/* Menu pozostaje widoczne podczas przewijania. Górna belka przewija się normalnie. */
.gl-site-header { position:sticky; top:0; z-index:999; }
body.admin-bar .gl-site-header { top:32px; }
[id] { scroll-margin-top:150px; }

/* Logo: koniec z zastępczym „BP”. */
.gl-brand-logo { min-width:64px; }
.gl-brand-logo .gl-logo-fallback { width:64px; height:64px; max-width:64px; max-height:64px; }

/* Przy większej liczbie pozycji zachowujemy większy font, ale bez zlewania menu. */
.gl-menu { gap:.12rem; }
.gl-menu > li > a { min-height:58px; padding:.72rem .56rem; line-height:1.15; }
.gl-menu .sub-menu { margin-top:58px; }

/* Puste nowe sekcje nadal są widoczne na testach, żeby klient widział ich miejsce. */
.gl-empty-public { margin:0; padding:1.1rem 1.2rem; background:var(--gl-surface); border:1px dashed var(--gl-line); color:var(--gl-muted); }
.gl-instagram-feed .gl-empty-public { min-height:220px; display:grid; place-items:center; text-align:center; }

@media (max-width:900px) {
  .gl-site-header { top:0; }
  body.admin-bar .gl-site-header { top:46px; }
  .gl-utility-contact > span:first-child, .gl-today-hours { display:none; }
  .gl-utility-contact { gap:.55rem; }
  .gl-social-links-utility { border-left:0; }
  [id] { scroll-margin-top:105px; }
}
@media (max-width:782px) {
  body.admin-bar .gl-site-header { top:46px; }
}
@media (max-width:640px) {
  .gl-utility-contact a { font-size:.72rem; }
  .gl-social-links-utility { padding-inline:0; }
  .gl-social-links-utility .gl-social-icon { width:32px !important; }
  .gl-brand-logo .gl-logo-fallback { width:50px; height:50px; max-width:50px; max-height:50px; }
}

/* Dodatkowy CSS: 00-WSPOLNE */
/* Dodatkowy CSS dla 00-WSPOLNE.
   Dopisz nowe reguły POD tym komentarzem. Skrypt buduj.py dołączy je na końcu CSS motywu. */

/* Client requirement: plain white page backgrounds, without decorative grids.
   High-contrast mode retains its own accessible palette. */
html:not([data-contrast="high"]) :is(.gl-hero, .gl-page-hero, #gl-section-social, #gl-section-contact) {
  background: #fff;
}
html:not([data-contrast="high"]) #gl-section-contact {
  color: var(--gl-text);
}
html:not([data-contrast="high"]) #gl-section-contact h2 {
  color: var(--gl-primary-dark);
}
html:not([data-contrast="high"]) #gl-section-contact p {
  color: var(--gl-muted);
}
html:not([data-contrast="high"]) #gl-section-contact .gl-button-primary {
  background: var(--gl-primary);
  border-color: var(--gl-primary);
  color: #fff;
}
html:not([data-contrast="high"]) #gl-section-contact .gl-button-secondary {
  background: #fff;
  border-color: var(--gl-primary);
  color: var(--gl-primary);
}


/* Dodatkowy CSS: 01-MENU */
/* ETAP 01/23 — CSS menu: dopisany po oryginalnych stylach, innych etapów nie zmieniamy. */
.gl-main-navigation .gl-menu > li { position: relative; min-width: 0; }
.gl-main-navigation .gl-menu > li > a { font-size: var(--gl-menu-size, 18px); overflow-wrap: anywhere; }
.gl-main-navigation .gl-menu .sub-menu {
  top: 100%; left: 0; margin: 0; min-width: min(280px, 90vw);
  max-width: min(360px, 96vw);
}
.gl-main-navigation .gl-menu .sub-menu .sub-menu { top: 0; left: 100%; }
.gl-main-navigation .gl-menu .sub-menu a { line-height: 1.35; font-size: max(.98rem, calc(var(--gl-menu-size, 18px) - 2px)); }
.gl-main-navigation .gl-menu a:focus-visible, .gl-submenu-toggle:focus-visible,
.gl-menu-toggle:focus-visible { outline: 3px solid var(--gl-focus,#d99a24); outline-offset: 2px; }
.gl-submenu-toggle { display: none; }
/* Lepiej łamać liczne pozycje menu niż zmniejszać czcionkę poniżej życzenia klienta. */
@media (min-width: 901px) {
  .gl-main-navigation .gl-menu { flex-wrap: wrap; }
  .gl-main-navigation .gl-menu > li { flex: 1 1 max-content; max-width:100%; }
  .gl-main-navigation .gl-menu .sub-menu li { position: relative; }
  .gl-main-navigation .gl-menu .sub-menu .sub-menu { max-width: 300px; }
}
@media (max-width: 900px) {
  .gl-main-navigation.is-open { max-height: calc(100dvh - 110px); overflow-y: auto; overscroll-behavior: contain; }
  .gl-main-navigation .gl-menu li { position: relative; }
  .gl-main-navigation .gl-menu > li > a { padding-right: 4rem; min-height: 48px; }
  .gl-main-navigation .gl-menu .sub-menu { position: static; max-width: none; margin: 0; box-shadow: none; }
  /* Bez JS podmenu są widoczne; z JS rozwija się je przyciskiem. */
  .gl-main-navigation .gl-menu.js-menu-ready .sub-menu { display: none; }
  .gl-main-navigation .gl-menu.js-menu-ready li.is-submenu-open > .sub-menu { display: block; }
  .gl-main-navigation .gl-menu .sub-menu .sub-menu { position: static; }
  .gl-main-navigation .gl-submenu-toggle {
    display: grid; place-items: center; position: absolute; top: 0; right: 0;
    width: 48px; height: 48px; border: 1px solid var(--gl-line,#dce2eb);
    border-radius: 0; background: var(--gl-surface,#f5f7fa);
    color: var(--gl-primary,#102a56); font-size: 1.5rem; cursor: pointer;
  }
  .gl-main-navigation li.is-submenu-open > .gl-submenu-toggle { transform: rotate(180deg); }
  .gl-menu-toggle { min-width: 48px; min-height: 48px; }
}


/* Dodatkowy CSS: 02-GORNA-BELKA */
/* ETAP 02: górna belka. Nadpisania WYŁĄCZNIE dla tego modułu.
   Kolejność i dane: kontakt | społecznościowe | BIP | dostępność.
   Elementy nie są usuwane z DOM na małych ekranach. */
.gl-utility .gl-utility-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .55rem 1rem;
  min-height: 52px;
}
.gl-utility .gl-utility-left { display: flex; min-width: 0; align-items: center; }
.gl-utility .gl-utility-contact {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .25rem .9rem;
  min-width: 0;
  font-size: clamp(.78rem, .22vw + .73rem, .88rem);
  line-height: 1.45;
  font-style: normal;
}
.gl-utility .gl-utility-contact > * { overflow-wrap: anywhere; }
.gl-utility .gl-utility-phone { display: inline-flex; align-items: center; min-height: 44px; }
.gl-utility .gl-today-hours { padding-left: .75rem; border-left: 1px solid rgba(255,255,255,.35); }
.gl-utility .gl-utility-right {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-left: 0;
  min-width: 0;
}
.gl-utility .gl-social-links-utility { display: flex; align-items: stretch; flex-wrap: nowrap; border-left: none; }
.gl-utility .gl-social-links-utility:empty { display: none; }
.gl-utility .gl-social-links-utility .gl-social-icon {
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.gl-utility .gl-utility-bip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 52px;
  padding-inline: .65rem;
}
.gl-utility .gl-accessibility { display: flex; align-items: stretch; min-height: 44px; }
.gl-utility .gl-accessibility button { min-width: 44px; height: auto; min-height: 44px; }
.gl-utility a:focus-visible,
.gl-utility button:focus-visible {
  outline: 3px solid var(--gl-focus, #ffbf47);
  outline-offset: -3px;
  position: relative;
  z-index: 1;
}
@media (max-width: 1180px) {
  .gl-utility .gl-utility-inner { grid-template-columns: minmax(0, 1fr); padding-block: .2rem; }
  .gl-utility .gl-utility-left,
  .gl-utility .gl-utility-right { justify-content: center; margin: 0; }
  .gl-utility .gl-utility-contact { justify-content: center; text-align: center; }
}
@media (max-width: 900px) {
  /* Starszy motyw ukrywał dane poniżej 900px. Przywracamy je bez zmian w innych modułach. */
  .gl-utility .gl-utility-contact > .gl-utility-address,
  .gl-utility .gl-utility-contact > .gl-today-hours { display: inline; }
}
@media (max-width: 640px) {
  .gl-utility .gl-utility-inner { gap: 0; padding-block: .25rem; }
  .gl-utility .gl-utility-contact { gap: 0 .55rem; font-size: .76rem; }
  .gl-utility .gl-utility-phone { min-height: 36px; }
  .gl-utility .gl-today-hours { padding-left: .45rem; }
  .gl-utility .gl-utility-right { justify-content: center; width: 100%; }
  .gl-utility .gl-accessibility { justify-content: center; flex-basis: 100%; border-top: 1px solid rgba(255,255,255,.22); }
  .gl-utility .gl-social-links-utility .gl-social-icon { width: 44px !important; min-height: 44px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .gl-utility .gl-utility-inner *, .gl-utility .gl-utility-inner *::before { transition: none !important; }
}


/* Dodatkowy CSS: 03-LOGO-NAGLOWEK */
/* ETAP 03/23 — wyłącznie nagłówek: logo, nazwa i szybkie działania. */
.gl-brand-row { display:flex; flex-wrap:wrap; align-items:center; gap:clamp(.75rem,2vw,2rem); }
.gl-brand { flex:1 1 320px; min-width:0; }
.gl-brand-home { display:inline-flex; align-items:center; gap:clamp(.5rem,1.3vw,1rem); max-width:100%; min-width:0; text-decoration:none; }
.gl-brand-home:focus-visible, .gl-header-action:focus-visible, .gl-header-search button:focus-visible,
.gl-header-search input:focus-visible { outline:3px solid var(--gl-focus,#164e9a); outline-offset:3px; }
.gl-brand-logo { flex:0 0 auto; min-width:52px; }
.gl-brand-logo .gl-logo-image { display:block; width:auto; height:auto; max-width:min(290px,31vw); max-height:78px; object-fit:contain; }
.gl-brand-copy { display:grid; min-width:0; overflow-wrap:break-word; }
.gl-brand-copy strong { font-size:clamp(1rem,1.45vw,1.65rem); }
.gl-brand-copy span { line-height:1.4; }
.gl-logo-text-fallback { width:auto; min-width:74px; max-width:154px; padding:.65rem .75rem; font-size:.9rem; }
.gl-header-actions { display:flex; align-items:center; justify-content:flex-end; align-self:center; flex-wrap:wrap; gap:.5rem; padding:.65rem 0; }
.gl-header-actions > .gl-header-action,
.gl-header-search > summary.gl-header-action { display:flex; align-items:center; justify-content:center;
  min-width:0; min-height:46px; padding:.68rem .85rem; border:1px solid var(--gl-line);
  background:var(--gl-card-bg,#fff); color:var(--gl-primary); text-align:center;
  font-size:.9rem; font-weight:750; line-height:1.2; text-decoration:none; cursor:pointer; }
.gl-header-search { position:relative; }
.gl-header-search > summary { list-style:none; }
.gl-header-search > summary::-webkit-details-marker { display:none; }
.gl-header-search[open] > summary { background:var(--gl-surface); border-color:var(--gl-primary); }
.gl-header-search-form { position:absolute; z-index:150; top:calc(100% + 8px); right:0;
  width:min(380px,calc(100vw - 1.25rem)); padding:1rem; border:1px solid var(--gl-line);
  background:var(--gl-card-bg,#fff); box-shadow:0 10px 25px rgba(10,25,55,.18); }
.gl-header-search-form label { display:block; margin-bottom:.5rem; font-size:.88rem; font-weight:700; }
.gl-header-search-fields { display:flex; gap:.4rem; }
.gl-header-search-fields input { flex:1 1 auto; min-width:0; max-width:100%; min-height:44px;
 padding:.5rem .6rem; border:1px solid var(--gl-line); background:#fff; color:#172033; font:inherit; }
.gl-header-search-fields button { min-height:44px; padding:.5rem .7rem; border:0; background:var(--gl-primary); color:#fff; font:inherit; font-weight:700; cursor:pointer; }
@media (max-width:1050px) and (min-width:901px) {
 .gl-brand-copy strong { font-size:1.08rem; }
 .gl-header-actions { gap:.35rem; }
 .gl-header-actions > .gl-header-action,.gl-header-search > summary.gl-header-action { padding:.55rem .6rem; }
}
@media (max-width:900px) {
 .gl-brand-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem .7rem; padding-block:.55rem; }
 .gl-brand { grid-column:1; grid-row:1; min-width:0; }
 .gl-brand-home { width:100%; }
 .gl-brand-copy strong { font-size:clamp(.94rem,2.4vw,1.23rem); }
 .gl-brand-logo .gl-logo-image { max-width:min(190px,35vw); max-height:62px; }
 .gl-menu-toggle { grid-column:2; grid-row:1; align-self:center; }
 .gl-header-actions { grid-column:1 / -1; grid-row:2; display:flex; width:100%;
    justify-content:stretch; flex-wrap:nowrap; gap:.45rem; padding:0 0 .3rem; }
 .gl-header-actions > .gl-header-action, .gl-header-search { flex:1 1 0; min-width:0; }
 .gl-header-search > summary.gl-header-action { width:100%; }
 .gl-header-search-form { right:0; }
}
@media (max-width:640px) {
 .gl-brand-logo .gl-logo-image { max-width:min(130px,33vw); max-height:54px; }
 .gl-brand-copy strong { font-size:.95rem; }
 .gl-header-actions > .gl-header-action, .gl-header-search > summary.gl-header-action {
    min-height:44px; padding:.55rem .3rem; font-size:.77rem; }
 .gl-header-search-form { right:0; }
}
@media (prefers-reduced-motion:reduce) {
 .gl-brand-home,.gl-header-action { scroll-behavior:auto; }
}

/* Keep the configured family after the legacy form-control font reset. */
html body { font-family:var(--gl-font,Inter,"Segoe UI",Arial,sans-serif); line-height:1.65; }
@media (max-width:640px) {
 .gl-brand-home { flex-wrap:wrap; }
 .gl-brand-copy { flex:1 1 140px; }
 .gl-brand-copy > * { min-width:0; overflow-wrap:anywhere; }
 .gl-logo-text-fallback { overflow-wrap:anywhere; white-space:normal; }
 .gl-menu-toggle { width:auto; min-width:48px; font-size:1.4rem; line-height:1; padding:.35rem; }
 .gl-menu-toggle-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
}


/* Dodatkowy CSS: 04-DOSTEPNOSC */
/* ETAP 04 z 23 — dostępność. Uzupełnienia WYŁĄCZNIE tego modułu.
   Zachowujemy historyczne bloki CSS, korzystamy ze wspólnego --gl-user-scale. */
.gl-utility .gl-accessibility { display:flex; flex-wrap:wrap; align-items:stretch; gap:0; }
.gl-utility .gl-accessibility button {
  min-width:44px; min-height:44px; height:auto;
  padding:.5rem .7rem; line-height:1.3; font-size:1rem;
  touch-action:manipulation;
}
.gl-utility .gl-accessibility button:disabled { opacity:.6; cursor:not-allowed; }
.gl-utility .gl-accessibility button:focus-visible {
  outline:3px solid var(--gl-focus,#ffbf47); outline-offset:-3px;
  position:relative; z-index:2;
}
/* Wspomaganie skalowania tekstu: większość układu już używa rem.
   Zachowujemy ewentualną większą wartość ustaloną przez administratora. */
.gl-main-navigation .gl-menu > li > a { font-size:max(1rem, var(--gl-menu-size,1rem)); }
/* Nie wymuszamy utraty informacji przy 200% powiększeniu i zawijamy długi tekst. */
.gl-utility .gl-accessibility, .gl-header-actions, .gl-utility .gl-utility-right { min-width:0; }
.gl-accessibility button { white-space:nowrap; }
/* Kontrast: dodatkowo obejmujemy wpisy, formularze i linki, które mogą
   posiadać własne kolory, poza dostosowanymi zmiennymi motywu. */
html[data-contrast="high"] {
  color-scheme:light;
  --gl-accent:#000;
  --gl-secondary:#000;
  --gl-muted:#000;
}
html[data-contrast="high"] :is(.gl-main, .gl-section, .gl-entry-content, .gl-card-content, .gl-footer, .gl-site-header) a:not(.gl-button):not(.wp-element-button):not(.gl-header-action):not(.gl-brand-home) {
  text-decoration:underline; text-underline-offset:.17em;
}
html[data-contrast="high"] :is(input,textarea,select) {
  background:#fff; color:#000; border-color:#000;
}
html[data-contrast="high"] :is(input,textarea)::placeholder { color:#333; opacity:1; }
html[data-contrast="high"] :is(.gl-button-primary, .wp-element-button, button[type="submit"], input[type="submit"], .gl-header-search-fields button) {
  background:#000; color:#fff; border-color:#000;
}
html[data-contrast="high"] :is(.gl-card-content, .gl-entry-content, .gl-footer-grid, .gl-hero-copy) :is(p, li, h1, h2, h3, h4) {
  color:var(--gl-text,#000);
}
html[data-contrast="high"] .gl-accessibility button[aria-pressed="true"] {
  background:#fff; color:#000; outline:2px solid #fff; outline-offset:-2px;
}
html[data-contrast="high"] :focus-visible { outline:3px solid #ffbf47; outline-offset:3px; }
@media (max-width:640px) {
  .gl-utility .gl-accessibility { justify-content:center; width:100%; }
  .gl-utility .gl-accessibility button { min-width:44px; }
}
/* Długie nagłówki nie mogą wymuszać poziomego przewijania przy 160% tekstu. */
.gl-main :is(h1,h2,h3,h4), .gl-entry-content :is(h1,h2,h3,h4) {
  overflow-wrap:anywhere; hyphens:auto;
}

/* Text-size controls also scale viewport-based type and configured pixel limits.
   rem values already scale at the document root: do not multiply them twice. */
html .gl-hero h1 {
  font-size:clamp(2.6rem,calc(5vw * var(--gl-user-scale)),calc(var(--gl-h1-size,88px) * var(--gl-user-scale)));
}
html .gl-hero-slogan { font-size:clamp(1.2rem,calc(2.2vw * var(--gl-user-scale)),1.7rem); }
html .gl-hero-intro { font-size:clamp(1rem,calc(1.5vw * var(--gl-user-scale)),1.2rem); }
html .gl-section-heading h2, html .gl-tourism-intro h2, html .gl-contact-teaser h2 {
  font-size:clamp(2rem,calc(3.4vw * var(--gl-user-scale)),calc(var(--gl-h2-size,58px) * var(--gl-user-scale)));
}
html .gl-page-hero h1 { font-size:clamp(2.3rem,calc(4.2vw * var(--gl-user-scale)),4.7rem); }
html .gl-main-navigation .gl-menu > li > a { font-size:max(1rem,calc(var(--gl-menu-size,16px) * var(--gl-user-scale))); }
html .gl-main-navigation .gl-menu .sub-menu a { font-size:max(.98rem,calc((var(--gl-menu-size,18px) - 2px) * var(--gl-user-scale))); }
html .gl-brand-copy strong { font-size:clamp(1rem,calc(1.45vw * var(--gl-user-scale)),1.65rem); }
html .gl-utility .gl-utility-contact { font-size:clamp(.78rem,calc(.22vw * var(--gl-user-scale) + .73rem),.88rem); }
html .gl-quick-links .gl-quick-card strong { font-size:clamp(1.05rem,calc(1.25vw * var(--gl-user-scale)),1.25rem); }
html #gl-section-current .gl-news-copy h4 { font-size:clamp(1rem,calc(1.25vw * var(--gl-user-scale)),1.25rem); }
html .gl-event-title { font-size:clamp(1rem,calc(1.5vw * var(--gl-user-scale)),1.18rem); }
html .gl-saturday-card h3 { font-size:clamp(1.05rem,calc(1.4vw * var(--gl-user-scale)),1.2rem); }
html .gl-tourism-overlay strong { font-size:clamp(1.7rem,calc(3vw * var(--gl-user-scale)),2.7rem); }
html .gl-site-footer .gl-footer-grid-new h2 { font-size:clamp(1.075rem,calc(1.2vw * var(--gl-user-scale)),1.25rem); }
html .gl-reader-portal-group > h2 { font-size:clamp(1.45rem,calc(2.2vw * var(--gl-user-scale)),2.1rem); }
html .gl-reader-info-card h3 { font-size:clamp(1.1rem,calc(1.6vw * var(--gl-user-scale)),1.35rem); }
html .gl-reader-card h3 { font-size:calc(var(--gl-card-title-size,21px) * var(--gl-user-scale)); }
@media (max-width:1050px) and (min-width:901px) {
  html .gl-brand-copy strong { font-size:1.08rem; }
}
@media (max-width:900px) {
  html .gl-brand-copy strong { font-size:clamp(.94rem,calc(2.4vw * var(--gl-user-scale)),1.23rem); }
}
@media (max-width:640px) {
  html .gl-brand-copy strong { font-size:.95rem; }
  html .gl-hero h1 { font-size:clamp(2.4rem,calc(12vw * var(--gl-user-scale)),3.4rem); }
}
@media (max-width:370px) {
  html .gl-tourism-overlay strong { font-size:1.45rem; }
}


/* Dodatkowy CSS: 05-BANER-HERO */
/* ETAP 05: HERO — poprawki niezależne, dołączane po oryginalnych stylach.
 * Stare reguły i znaczniki GL zostają bez zmian. */
.gl-hero .gl-hero-copy, .gl-hero .gl-hero-media { min-width: 0; }
.gl-hero h1, .gl-hero-intro, .gl-hero-slogan { overflow-wrap: anywhere; }
.gl-hero-media picture { position: absolute; inset: 0; display: block; height: 100%; width: 100%; }
.gl-hero-media picture > img { position: absolute; inset: 0; height: 100%; width: 100%; object-fit: var(--gl-hero-fit, cover); object-position: var(--gl-hero-position, center); }
/* Dodatkowy cień wymaga jawnego włączenia w panelu WordPress. */
.gl-hero--shadow .gl-hero-media { box-shadow: 0 12px 25px rgba(16,42,86,.14); }
html[data-contrast="high"] .gl-hero--shadow .gl-hero-media { box-shadow: none; outline: 2px solid currentColor; }
/* Tablet / mały laptop: nie pozwalaj na kolumnę 480px powodującą overflow. */
@media (max-width: 1100px) {
  .gl-hero .gl-hero-grid { grid-template-columns: minmax(0,1fr); gap: clamp(1.5rem,4vw,3rem); }
  .gl-hero .gl-hero-media { width: 100%; min-height: clamp(300px,48vw,480px); }
  .gl-hero .gl-hero-media img { min-height: 0; height: 100%; }
}
@media (max-width: 640px) {
  .gl-hero { padding-block: 2rem 2.5rem; }
  .gl-hero .gl-hero-media { min-height: clamp(230px,77vw,360px); }
  .gl-hero .gl-hero-hours-inline { grid-template-columns: minmax(0,1fr); gap: .35rem; padding: 1rem; }
  .gl-hero .gl-hero-hours-inline > * { min-width: 0; overflow-wrap: anywhere; }
}
/* Selected promotional material, preserving uncropped posters and original image URLs. */
.gl-hero-title-line{display:block;}
.gl-hero-carousel{position:absolute;inset:0;min-width:0;background:var(--gl-card-bg,#fff);}
.gl-hero-slide{position:absolute;inset:0 0 48px;}
.gl-hero-slide[hidden]{display:none!important;}
.gl-hero-slide>a{display:block;width:100%;height:100%;}
.gl-hero .gl-hero-slide img{width:100%;height:100%;object-fit:var(--gl-hero-fit,contain);}
.gl-hero-carousel-controls{position:absolute;inset:auto 0 0;display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:48px;background:var(--gl-card-bg,#fff);color:var(--gl-text,#172033);}
.gl-hero-carousel-controls button{font:inherit;min-height:44px;min-width:44px;border:1px solid var(--gl-line);padding:.3rem .6rem;background:var(--gl-card-bg,#fff);color:var(--gl-primary,#102a56);cursor:pointer;}
.gl-hero-carousel-controls button:focus-visible{outline:3px solid var(--gl-focus,#164e9a);outline-offset:2px;}
.gl-hero-carousel-controls [data-gl-hero-pause]{font-size:.85rem;}


/* Dodatkowy CSS: 06-CZTERY-KAFELKI */
/* ETAP 06: cztery odrębne kafelki. Dodatkowy CSS jest ładowany po oryginalnych regułach. */
.gl-quick-links .gl-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.75rem, 1.5vw, 1.25rem);
  align-items: stretch;
}
.gl-quick-links .gl-quick-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  min-width: 0;
  min-height: 100px;
  padding: clamp(1rem, 1.5vw, 1.4rem);
  background: var(--gl-quick-bg, #102a56);
  color: var(--gl-on-dark, #fff);
  border: 1px solid transparent !important;
  border-radius: var(--gl-radius, 6px);
  text-decoration: none;
  box-shadow: 0 5px 16px rgba(16,42,86,.10);
  overflow-wrap: anywhere;
  transition: background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.gl-quick-links .gl-quick-copy { display: block; min-width: 0; }
.gl-quick-links .gl-quick-card strong {
  display: block;
  font-size: clamp(1.05rem, 1.25vw, 1.25rem);
  line-height: 1.35;
}
.gl-quick-links .gl-quick-card small {
  display: block;
  margin-top: .4rem;
  font-size: .9rem;
  line-height: 1.45;
  color: inherit;
  opacity: .95;
}
.gl-quick-links .gl-quick-arrow { flex-shrink: 0; font-size: 1.4rem; }
.gl-quick-links a.gl-quick-card:hover { background: var(--gl-primary-dark, #071b38); color: var(--gl-on-dark, #fff); }
.gl-quick-links a.gl-quick-card:focus-visible {
  outline: 3px solid var(--gl-focus, #ffbf47);
  outline-offset: 4px;
  background: var(--gl-primary-dark, #071b38);
  color: var(--gl-on-dark, #fff);
}
.gl-quick-links .gl-quick-card-unlinked { opacity: .74; cursor: default; }
.gl-quick-links .gl-quick-card-unlinked:hover { transform: none; }
html[data-contrast="high"] .gl-quick-links .gl-quick-card {
  background: #000; color: #fff; border: 2px solid #fff !important;
  box-shadow: none; transition: none;
}
html[data-contrast="high"] .gl-quick-links a.gl-quick-card:focus-visible { outline: 4px solid #ffbf47; }
@media (max-width: 900px) {
  .gl-quick-links .gl-quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .gl-quick-links .gl-quick-grid { grid-template-columns: 1fr; }
  .gl-quick-links .gl-quick-card { min-height: 92px; }
}
@media (prefers-reduced-motion: reduce) {
  .gl-quick-links .gl-quick-card { transition: none; }
  .gl-quick-links a.gl-quick-card:hover { transform: none; }
}
@media (forced-colors: active) {
  .gl-quick-links .gl-quick-card { border: 1px solid CanvasText !important; }
  .gl-quick-links a.gl-quick-card:focus-visible { outline: 3px solid Highlight; }
}


/* Dodatkowy CSS: 07-AKTUALNOSCI */
/* ETAP 07 — tylko Aktualności i ich pozycja względem sekcji Wydarzeń.
   Oryginalne bloki theme.css pozostają nienaruszone. */
#gl-section-current .gl-current-grid {
  grid-template-columns: minmax(0, 1fr);
}
#gl-section-current .gl-current-news,
#gl-section-current .gl-current-events {
  min-width: 0;
}
#gl-section-current .gl-news-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  padding: 1rem;
  background: transparent;
}
#gl-section-current .gl-news-card {
  display: block;
  min-width: 0;
  min-height: 0;
  padding: 0;
  background: var(--gl-card-bg, #fff);
  border: 1px solid var(--gl-line, #dce3ea);
  border-radius: .6rem;
  overflow: hidden;
}
#gl-section-current .gl-news-card-horizontal {
  display: grid;
  grid-template-columns: minmax(118px, 35%) minmax(0, 1fr);
  min-width: 0;
  min-height: 175px;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
#gl-section-current .gl-news-thumb {
  display: block;
  height: 100%;
  min-height: 175px;
  overflow: hidden;
}
#gl-section-current .gl-news-thumb img,
#gl-section-current .gl-news-thumb-fallback {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 175px;
  object-fit: cover;
}
#gl-section-current .gl-news-thumb-fallback {
  display: grid;
  place-items: center;
}
#gl-section-current .gl-news-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .35rem;
  padding: 1rem;
  min-width: 0;
  overflow-wrap: anywhere;
}
#gl-section-current .gl-news-copy h4 {
  margin: 0;
  font-size: clamp(1rem, 1.25vw, 1.25rem);
  line-height: 1.4;
}
#gl-section-current .gl-news-copy p {
  margin: 0;
  font-size: .9rem;
  line-height: 1.5;
}
#gl-section-current .gl-news-copy .gl-meta {
  display: block;
  font-size: .8rem;
}
#gl-section-current .gl-news-copy .gl-text-link {
  margin-top: .2rem;
  font-weight: 750;
}
#gl-section-current .gl-news-card:focus-within {
  outline: 3px solid var(--gl-primary, #143967);
  outline-offset: 3px;
}
#gl-section-current .gl-news-card-horizontal:focus-visible {
  outline: 3px solid var(--gl-primary, #143967);
  outline-offset: -4px;
}
#gl-section-current .gl-news-empty {
  grid-column: 1 / -1;
  padding: 1.3rem;
}
@media (max-width: 930px) {
  #gl-section-current .gl-news-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  #gl-section-current .gl-news-grid { gap: .8rem; padding: .7rem; }
  #gl-section-current .gl-news-card-horizontal { grid-template-columns: minmax(0, 1fr); }
  #gl-section-current .gl-news-thumb { height: 148px; min-height: 148px; }
  #gl-section-current .gl-news-thumb img,
  #gl-section-current .gl-news-thumb-fallback { height: 148px; min-height: 148px; }
  #gl-section-current .gl-news-copy { padding: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
  #gl-section-current .gl-news-card-horizontal { transition: none; }
}
/* Pozwala nagłówkowi zawijać się także przy A+ na bardzo wąskich telefonach. */
#gl-section-current .gl-current-news .gl-panel-heading {
  flex-wrap: wrap;
  min-width: 0;
  gap: .5rem 1rem;
}
#gl-section-current .gl-current-news .gl-panel-heading h3 {
  min-width: 0;
  overflow-wrap: anywhere;
}
#gl-section-current .gl-current-news .gl-section-link {
  max-width: 100%;
  overflow-wrap: anywhere;
}
/* Client layout: the right column owns events, social and Saturdays. */
#gl-section-current .gl-current-grid.gl-current-two-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(1rem,3vw,2.5rem);align-items:start;}
#gl-section-current .gl-current-two-columns .gl-news-grid{grid-template-columns:minmax(0,1fr);padding:.8rem;}
.gl-current-sidebar{min-width:0;display:grid;gap:1.6rem;}
#gl-section-current .gl-current-sidebar>.gl-section{padding:0!important;margin:0!important;border:0;}
#gl-section-current .gl-current-sidebar .gl-container{width:100%;max-width:none;padding-inline:0;}
#gl-section-current .gl-current-sidebar .gl-social-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;}
#gl-section-current .gl-current-sidebar .gl-section-heading{margin-bottom:1rem;}
#gl-section-current .gl-current-sidebar .gl-section-heading h2{font-size:clamp(1.3rem,2.1vw,1.9rem);}
#gl-section-current .gl-current-sidebar .gl-saturday-grid{grid-template-columns:minmax(0,1fr);}
.gl-saturdays-poster{display:block;width:100%;height:auto;object-fit:contain;}
.gl-news-more{padding:.8rem 1rem;margin:0;}
@media(max-width:900px){#gl-section-current .gl-current-grid.gl-current-two-columns{grid-template-columns:minmax(0,1fr);}.gl-current-sidebar{gap:1.5rem;}}
#gl-section-current .gl-current-sidebar .gl-social-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;}
#gl-section-current .gl-current-sidebar .gl-instagram-feed{min-width:0;}


/* Dodatkowy CSS: 08-WYDARZENIA */
/* ETAP 08 — tylko Wydarzenia, nie modyfikuje innych modułów. */
.gl-current-events .gl-event-card { grid-template-columns: minmax(62px, auto) minmax(0, 1fr); min-width: 0; text-decoration: none; }
.gl-current-events .gl-event-copy { min-width: 0; }
.gl-event-title { display: block; margin: .3rem 0; font-size: clamp(1rem, 1.5vw, 1.18rem); overflow-wrap: anywhere; line-height: 1.4; }
.gl-event-details { display: block; font-size: .9rem; line-height: 1.5; overflow-wrap: anywhere; color: var(--gl-muted); }
.gl-event-card:focus-visible, .gl-more-events:focus-visible, .gl-calendar-nav:focus-visible, .gl-calendar-day:focus-visible { outline: 3px solid #ec9b19; outline-offset: 3px; }
.gl-events-view-switch { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 1.2rem; }
.gl-events-view-switch a { padding: .55rem .8rem; border: 1px solid var(--gl-line, #c8cdd3); border-radius: 4px; overflow-wrap: anywhere; }
.gl-events-view-switch a[aria-current="page"] { background: var(--gl-primary, #163766); color: #fff; }
.gl-events-page { grid-template-columns: minmax(0, 1fr) minmax(280px, .75fr); }
.gl-events-page > * { min-width: 0; }
.gl-event-archive-card { grid-template-columns: minmax(70px, 95px) minmax(0, 1fr); }
.gl-event-archive-copy { min-width: 0; overflow-wrap: anywhere; }
.gl-events-calendar .gl-calendar { padding: clamp(.55rem, 2vw, 1.3rem); }
.gl-calendar-heading { display:flex; align-items:center; gap:.4rem; }
.gl-calendar-heading h4 { text-align:center; min-width:0; overflow-wrap: anywhere; }
.gl-calendar-grid { gap: clamp(1px, .3vw, 4px); }
.gl-calendar-days .gl-calendar-day { min-width:0; }
.gl-calendar-day[aria-pressed="true"] { outline: 3px solid #ec9b19; outline-offset: 1px; }
.gl-calendar-nav:disabled { opacity: .4; cursor: not-allowed; }
.gl-calendar-message { overflow-wrap:anywhere; }
.gl-calendar-message a { text-decoration: underline; }
@media (max-width: 1000px) { .gl-events-page { display:grid; grid-template-columns: minmax(0,1fr); gap:1.5rem; } .gl-events-calendar { position: static; } }
@media (max-width: 460px) {
 .gl-current-events .gl-event-card { gap: .7rem; padding: .85rem .5rem; grid-template-columns: 62px minmax(0,1fr); }
 .gl-event-archive-card { gap:.7rem; padding:.75rem; grid-template-columns: 65px minmax(0,1fr); }
 .gl-event-archive-card > time { min-height: 75px; }
 .gl-events-page .gl-calendar-days .gl-calendar-day, .gl-events-page .gl-calendar-empty { height: 42px; }
 .gl-calendar-weekdays { font-size: .8rem; }
}


/* Dodatkowy CSS: 09-INSTAGRAM */
/* Etap 09 — Reels. Globalna typografia i kontrast pozostają pod kontrolą modułu 04. */
.gl-social-layout { min-width: 0; }
.gl-instagram-feed { min-width: 0; max-width: 100%; }
.gl-reels-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 240px)); gap: clamp(.65rem, 2vw, 1.25rem); }
.gl-reel-card { display: flex; flex-direction: column; min-width: 0; padding: 0; border-radius: var(--gl-radius, 12px); overflow: hidden; text-decoration: none; }
.gl-reel-card:focus-visible { outline: 3px solid var(--gl-focus, #e39a17); outline-offset: 3px; }
.gl-reel-media { display: block; width: 100%; aspect-ratio: 9 / 16; margin: 0; flex: none; background: var(--gl-primary, #102a56); }
.gl-reel-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gl-reel-label { display: block; padding: .75rem; color: var(--gl-text, #172033); overflow-wrap: anywhere; font-size: .95rem; line-height: 1.35; }
.gl-reel-card:hover .gl-reel-label { text-decoration: underline; }
.gl-reel-placeholder { padding: 1rem; text-align: center; }
@media (max-width: 560px) {
  .gl-reels-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 145px), 1fr)); justify-content: stretch; }
}
@media (prefers-reduced-motion: reduce) {
  .gl-reel-card, .gl-reel-card * { transition: none !important; animation: none !important; }
}


/* Dodatkowy CSS: 10-PRACUJACE-SOBOTY */
/* ETAP 10: responsywne karty i typografia przy zoomie tekstu. */
.gl-saturdays-section .gl-container,
.gl-saturday-grid,
.gl-saturday-card,
.gl-saturday-copy { min-width: 0; }
.gl-saturday-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gl-saturday-card { grid-template-columns: minmax(70px, 88px) minmax(0, 1fr); border-radius: .55rem; overflow: hidden; }
.gl-saturday-card .gl-saturday-copy { overflow-wrap: anywhere; padding: .9rem 1rem; }
.gl-saturday-card h3 { line-height: 1.35; font-size: clamp(1.05rem, 1.4vw, 1.2rem); }
.gl-saturday-card time { min-width: 0; }
.gl-saturday-card time span { letter-spacing: 0; overflow-wrap: anywhere; }
@media (max-width: 1040px) {
 .gl-saturday-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
 .gl-saturday-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 360px) {
 .gl-saturday-card { grid-template-columns: minmax(64px, 75px) minmax(0, 1fr); }
 .gl-saturday-card .gl-saturday-copy { padding: .75rem; }
}
/* Przy A+ długie polskie tytuły nie mogą poszerzać viewportu. */
.gl-saturdays-section .gl-section-heading > div,
.gl-saturdays-section .gl-section-heading > p { min-width: 0; max-width: 100%; }
.gl-saturdays-section .gl-section-heading h2 { overflow-wrap: anywhere; hyphens: auto; }


/* Dodatkowy CSS: 11-NOWOSCI-KSIAZKOWE */
/* ETAP 11: czytelne okładki, zachowanie proporcji, focus klawiatury i brak poziomego scrolla. */
.gl-section-books .gl-cover-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,145px),1fr)); gap:clamp(.7rem,2vw,1.3rem); max-width:100%; min-width:0; }
.gl-section-books .gl-cover-card { display:flex; min-width:0; width:100%; max-width:240px; aspect-ratio:2/3; align-items:center; justify-content:center; border-radius:8px; text-decoration:none; transition:transform .16s ease,box-shadow .16s ease; }
.gl-section-books .gl-cover-card img { display:block; max-width:100%; width:100%; height:100%; object-fit:contain; }
.gl-section-books .gl-cover-card[href]:focus-visible { outline:3px solid #ef9e24; outline-offset:3px; box-shadow:0 0 0 4px #102a56; }
@media (max-width:480px) { .gl-section-books .gl-cover-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; } .gl-section-books .gl-cover-card { padding:.2rem; } }
@media (prefers-reduced-motion:reduce) { .gl-section-books .gl-cover-card {transition:none} }


/* Dodatkowy CSS: 12-ZBIORY-SPECJALNE */
/* ETAP 12: osobny układ drugiej galerii, bez wpływu na Nowości. */
.gl-special-section .gl-cover-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 145px), 1fr));
  gap: clamp(.7rem, 2vw, 1.3rem);
  max-width: 100%;
  min-width: 0;
}
.gl-special-section .gl-cover-card {
  display: flex;
  width: 100%;
  max-width: 240px;
  min-width: 0;
  aspect-ratio: 2 / 3;
  border-radius: 8px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease;
}
.gl-special-section .gl-cover-card img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
}
.gl-special-section .gl-cover-card[href]:focus-visible {
  outline: 3px solid #ef9e24;
  outline-offset: 3px;
  box-shadow: 0 0 0 4px #102a56;
}
@media (max-width: 480px) {
  .gl-special-section .gl-cover-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
  .gl-special-section .gl-cover-card { padding: .2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gl-special-section .gl-cover-card { transition: none; }
}


/* Dodatkowy CSS: 13-WYSTAWA */

/* ETAP 13: styl wyłącznie stron wystawy, bez ingerencji w karty i menu główne. */
.gl-exhibition-layout{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:clamp(1rem,3vw,3rem);padding-block:clamp(1.2rem,3vw,3rem);align-items:start}
.gl-exhibition-nav{display:flex;flex-direction:column;gap:.375rem;max-width:100%;min-width:0}
.gl-exhibition-nav a{display:block;overflow-wrap:anywhere;padding:.85em 1em;border:1px solid var(--gl-line,#dce2eb);border-radius:var(--gl-radius,8px);background:var(--gl-surface,#f5f7fa);color:var(--gl-text,#172033);text-decoration:none;line-height:1.45}
.gl-exhibition-nav a:hover,.gl-exhibition-nav a:focus-visible{background:var(--gl-primary,#102a56);color:#fff}
.gl-exhibition-nav a[aria-current="page"]{background:var(--gl-primary,#102a56);color:#fff;font-weight:700}
.gl-exhibition-nav a:focus-visible{outline:3px solid var(--gl-focus,#c99a32);outline-offset:3px}
.gl-exhibition-content{min-width:0;overflow-wrap:anywhere}
.gl-exhibition-content :is(img,iframe,video){max-width:100%;height:auto}
.gl-exhibition-content table{display:block;max-width:100%;overflow-x:auto}
.gl-exhibition-hero .gl-breadcrumbs{display:flex;flex-wrap:wrap;gap:.35em;overflow-wrap:anywhere}
.gl-exhibition-hero h1{overflow-wrap:anywhere}
@media(max-width:760px){.gl-exhibition-layout{grid-template-columns:minmax(0,1fr)}.gl-exhibition-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:450px){.gl-exhibition-nav{grid-template-columns:minmax(0,1fr)}}
@media(forced-colors:active){.gl-exhibition-nav a[aria-current="page"]{outline:2px solid CanvasText}}


/* Dodatkowy CSS: 14-SKLEP */
/* Etap 14 — wygląd sklepu; bez nadpisywania układu płatności WooCommerce Blocks. */
.gl-shop-shell { min-width: 0; width: 100%; }
.gl-shop-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin: 0 0 1.25rem; }
.gl-shop-actions a { display: inline-flex; min-height: 44px; min-width: 44px; align-items: center; justify-content: center; border: 2px solid var(--gl-primary, #102a56); color: var(--gl-primary, #102a56); padding: .65rem 1rem; text-decoration: none; font-weight: 650; border-radius: 4px; }
.gl-shop-actions a:hover, .gl-shop-actions a:focus-visible { background: var(--gl-primary, #102a56); color: #fff; }
.gl-shop-actions a:focus-visible { outline: 3px solid #c99a32; outline-offset: 3px; }
.gl-shop-notice { max-width: 68ch; padding: 1.25rem; border: 2px solid var(--gl-primary, #102a56); background: #f4f7fb; color: #172033; }
.gl-shop-shell .woocommerce { max-width: 100%; min-width: 0; }
.gl-shop-shell .woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1.1rem; margin: 1rem 0; padding: 0; list-style: none; }
.gl-shop-shell .woocommerce ul.products::before, .gl-shop-shell .woocommerce ul.products::after { display: none; }
.gl-shop-shell .woocommerce ul.products li.product { width: auto; min-width: 0; float: none; margin: 0; padding: 0; }
.gl-shop-shell .woocommerce ul.products li.product img { display:block; width:100%; height:auto; object-fit:contain; }
.gl-shop-shell .woocommerce ul.products li.product a { overflow-wrap:anywhere; }
.gl-shop-shell .woocommerce a.button, .gl-shop-shell .woocommerce button.button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.gl-shop-shell .woocommerce .woocommerce-pagination ul.page-numbers { display:flex; flex-wrap:wrap; gap:.5rem; }
@media (max-width: 900px) { .gl-shop-shell .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 530px) { .gl-shop-shell .woocommerce ul.products { grid-template-columns: minmax(0,1fr); } }
@media (prefers-reduced-motion: reduce) { .gl-shop-shell *, .gl-shop-actions * { transition: none !important; animation:none !important; } }


/* Dodatkowy CSS: 15-STOPKA */
/* ETAP 15 — Stopka. Nadpisania wyłącznie dla tego modułu, bez zmiany starszego CSS. */
.gl-site-footer { padding-top: clamp(2rem, 4.5vw, 4.5rem); }
.gl-site-footer .gl-footer-grid-new { display:grid; grid-template-columns: minmax(0,1.3fr) repeat(3,minmax(0,1fr)); gap: clamp(1.25rem,2.6vw,2.7rem); padding-bottom: clamp(2.5rem,4vw,4rem); }
.gl-site-footer .gl-footer-column, .gl-site-footer .gl-footer-grid-new > section { min-width:0; overflow-wrap:anywhere; }
.gl-site-footer .gl-footer-grid-new h2 { font-size: clamp(1.075rem,1.2vw,1.25rem); line-height:1.32; margin:.6rem 0 1rem; text-transform:none; letter-spacing:.01em; }
.gl-site-footer .gl-footer-grid-new p { font-size:1rem; line-height:1.65; }
.gl-site-footer .gl-footer-grid-new :is(.gl-footer-contact-link,.gl-footer-newsletter,.gl-footer-all-hours,.gl-footer-menu a) { font-size:1rem; line-height:1.45; min-height:2.75rem; display:flex; align-items:center; max-width:100%; width:fit-content; overflow-wrap:anywhere; text-decoration-thickness: .085em; text-underline-offset:.18em; }
.gl-site-footer .gl-footer-grid-new a:is(:hover,:focus-visible) { text-decoration:underline; }
.gl-site-footer :is(a,summary):focus-visible { outline:3px solid var(--gl-focus,#ffbf47); outline-offset:3px; border-radius:2px; }
.gl-site-footer .gl-footer-address { white-space:normal; overflow-wrap:anywhere; }
.gl-site-footer .gl-footer-delivery { display:flex; flex-direction:column; gap:.1rem; }
.gl-site-footer .gl-footer-delivery span { overflow-wrap:anywhere; }
.gl-site-footer .gl-footer-hours { width:100%; max-width:100%; }
.gl-site-footer .gl-footer-hours .gl-opening-hours { width:100%; max-width:100%; table-layout:fixed; border-collapse:collapse; font-size:1rem; }
.gl-site-footer .gl-footer-hours .gl-opening-hours :is(th,td) { text-align:left; vertical-align:top; padding:.42rem .4rem .42rem 0; white-space:normal; overflow-wrap:anywhere; line-height:1.45; }
.gl-site-footer .gl-footer-hours .gl-opening-hours th { width:37%; }
.gl-site-footer .gl-footer-logo .gl-logo-image { max-width:min(100%,250px); height:auto; }
.gl-site-footer .gl-footer-grid-new .gl-footer-archive { font-size:1rem; }
.gl-site-footer .gl-footer-archive summary { padding:.5rem 0; min-height:2.75rem; }
.gl-site-footer .gl-social-links-footer { display:flex; flex-wrap:wrap; gap:.45rem; }
.gl-site-footer .gl-social-links-footer .gl-social-icon { width:44px !important; height:44px; min-height:44px; }
.gl-site-footer .gl-footer-formal { font-size:.92rem; line-height:1.55; }
.gl-site-footer .gl-footer-formal-inner { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.8rem; }
.gl-site-footer .gl-footer-formal p { font-size:inherit; overflow-wrap:anywhere; }
.gl-site-footer .gl-footer-formal .gl-formal-menu { display:flex; flex-wrap:wrap; gap:.4rem 1rem; }
.gl-site-footer .gl-footer-formal .gl-formal-menu a { min-height:2.75rem; display:inline-flex; align-items:center; font-size:inherit; overflow-wrap:anywhere; }
@media (max-width: 1120px) {
 .gl-site-footer .gl-footer-grid-new { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 670px) {
 .gl-site-footer .gl-footer-grid-new { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
 .gl-site-footer .gl-footer-formal-inner { flex-direction:column; align-items:stretch; text-align:left; }
 .gl-site-footer .gl-footer-formal .gl-formal-menu { justify-content:flex-start; }
 /* Przy 200% powiększeniu nie łamiemy nazw dni tygodnia na sylaby. */
 .gl-site-footer .gl-footer-hours .gl-opening-hours,
 .gl-site-footer .gl-footer-hours .gl-opening-hours tbody { display:block; width:100%; }
 .gl-site-footer .gl-footer-hours .gl-opening-hours tr { display:flex; flex-direction:column; align-items:stretch; padding:.3rem 0; border-bottom:1px solid var(--gl-line); }
 .gl-site-footer .gl-footer-hours .gl-opening-hours :is(th,td) { width:100%; padding:.15rem 0; overflow-wrap:break-word; }
}

/* Compact spacing without reducing link hit areas or text legibility. */
.gl-site-footer {padding-top:1.5rem;}
.gl-site-footer .gl-footer-grid-new {gap:1.25rem;padding-bottom:1.5rem;}
.gl-site-footer .gl-footer-grid-new h2 {margin:.25rem 0 .65rem;}
.gl-site-footer .gl-footer-grid-new p {margin-block:.4rem;line-height:1.5;}
.gl-site-footer .gl-footer-hours .gl-opening-hours :is(th,td) {padding:.18rem .35rem .18rem 0;line-height:1.35;}
.gl-site-footer .gl-footer-formal {padding-block:.75rem;}
.gl-site-footer .gl-footer-formal-inner {gap:.4rem 1rem;}
@media(max-width:670px) {
 .gl-site-footer .gl-footer-grid-new {grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem .85rem;}
 .gl-site-footer .gl-footer-brand-section,.gl-site-footer .gl-footer-hours-section {grid-column:1/-1;}
 .gl-site-footer .gl-footer-hours .gl-opening-hours tr {flex-direction:row;gap:.65rem;padding:.15rem 0;}
 .gl-site-footer .gl-footer-hours .gl-opening-hours :is(th,td) {width:50%;padding:.15rem 0;}
}
@media(max-width:360px) {.gl-site-footer .gl-footer-grid-new {grid-template-columns:minmax(0,1fr);}}

.gl-site-footer .gl-footer-navigation > summary {cursor:pointer;min-height:44px;display:flex;align-items:center;gap:.5rem;}
.gl-site-footer .gl-footer-navigation > summary::after {content:'+';margin-left:auto;font-size:1.35rem;}
.gl-site-footer .gl-footer-navigation[open] > summary::after {content:'−';}
.gl-site-footer .gl-footer-navigation > summary h2 {margin:0;}
.gl-site-footer .gl-footer-navigation > summary:focus-visible {outline:3px solid var(--gl-focus,#ffbf47);outline-offset:3px;}
@media(max-width:670px) {.gl-site-footer .gl-footer-grid-new {gap:.8rem;}.gl-site-footer .gl-footer-brand-section .gl-footer-logo {display:none;}.gl-site-footer .gl-footer-brand-section {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem .8rem;align-items:start;}.gl-site-footer .gl-footer-brand-section :is(h2,.gl-footer-address,.gl-footer-delivery) {grid-column:1/-1;}.gl-site-footer .gl-footer-brand-section .gl-footer-newsletter {margin:0;}.gl-site-footer .gl-footer-brand-section .gl-footer-contact-link {width:auto;min-width:0;}}

/* Whole-footer compaction: contact, actions, all navigation groups and legal bar. */
.gl-site-footer .gl-footer-grid-new { align-items:start; column-gap:1.5rem; row-gap:1rem; }
.gl-site-footer .gl-footer-brand-section { display:block; }
.gl-site-footer .gl-footer-contact-links { display:flex; flex-wrap:wrap; column-gap:1rem; }
.gl-site-footer .gl-footer-contact-link { margin:0; font-weight:700; color:var(--gl-primary); }
.gl-site-footer .gl-footer-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem 1rem; }
.gl-site-footer .gl-footer-actions .gl-social-links-footer { margin:0; }
.gl-site-footer .gl-footer-actions .gl-footer-newsletter { margin:0; }
.gl-site-footer .gl-footer-delivery { display:block; }
.gl-site-footer .gl-footer-delivery span { margin-left:.25em; }
.gl-site-footer .gl-footer-menu a { margin:0; }
.gl-site-footer .gl-footer-links li + li { margin-top:0; }
.gl-site-footer .gl-footer-navigation > summary { padding-block:0; }
.gl-site-footer .gl-footer-navigation > summary::after { display:none; }
.gl-site-footer .gl-footer-formal-inner { gap:.25rem 1rem; }
@media(max-width:670px) {
 .gl-site-footer { padding-top:1rem; }
 .gl-site-footer .gl-footer-grid-new { grid-template-columns:minmax(0,1fr); gap:.35rem; padding-bottom:1rem; }
 .gl-site-footer .gl-footer-grid-new > section { grid-column:1/-1; }
 .gl-site-footer .gl-footer-brand-section { display:block; padding-bottom:.5rem; }
 .gl-site-footer .gl-footer-brand-section .gl-footer-logo { display:none!important; margin:0!important; }
 .gl-site-footer .gl-footer-contact-links { column-gap:1rem; }
 .gl-site-footer .gl-footer-contact-links .gl-footer-contact-link { width:fit-content; }
 .gl-site-footer .gl-footer-navigation { border-top:1px solid var(--gl-line); }
 .gl-site-footer .gl-footer-navigation > summary { min-height:44px; }
 .gl-site-footer .gl-footer-navigation > summary::after { display:block; }
 .gl-site-footer .gl-footer-navigation > .gl-footer-menu { padding-bottom:.5rem; }
 .gl-site-footer .gl-footer-formal { padding-block:.6rem; }
}

.gl-site-footer .gl-footer-archive > summary {display:flex;align-items:center;gap:.5rem;min-height:44px;}
.gl-site-footer .gl-footer-archive > summary::after {content:'+';margin-left:auto;font-size:1.35rem;}
.gl-site-footer .gl-footer-archive[open] > summary::after {content:'−';}

/* Contact and section links use compact rows; the approved hours table stays unchanged. */
.gl-site-footer .gl-footer-grid-new :is(.gl-footer-contact-link,.gl-footer-newsletter,.gl-footer-menu a) {
 min-height:28px; line-height:1.4; padding-block:2px;
}
.gl-site-footer .gl-footer-brand-section h2 { margin-bottom:.35rem; }
.gl-site-footer .gl-footer-brand-section p { margin-block:.25rem; line-height:1.4; }
.gl-site-footer .gl-footer-contact-links { row-gap:0; }
.gl-site-footer .gl-footer-actions { gap:.25rem .75rem; margin-top:.25rem; }
.gl-site-footer .gl-footer-actions .gl-social-icon { width:32px!important; height:32px; min-height:32px; }
.gl-site-footer .gl-footer-menu { margin-block:.15rem 0; padding-block:0; }
.gl-site-footer .gl-footer-menu li { margin:0; padding:0; }
@media(min-width:671px) {
 .gl-site-footer section:not(.gl-footer-hours-section) > .gl-footer-navigation > summary { min-height:32px; }
}
.gl-site-footer .gl-footer-grid-new{grid-template-columns:repeat(3,minmax(0,1fr));}
.gl-hours-note{font-size:.9em;font-weight:500;}
@media(max-width:1050px){.gl-site-footer .gl-footer-grid-new{grid-template-columns:repeat(2,minmax(0,1fr));}.gl-site-footer .gl-footer-visitor-hours{grid-column:1/-1;}}
@media(max-width:670px){.gl-site-footer .gl-footer-grid-new{grid-template-columns:minmax(0,1fr);}}

/* Both opening-hours areas share the same width and native table layout. */
@media(min-width:1051px){.gl-site-footer :is(.gl-footer-hours-section,.gl-footer-visitor-hours) .gl-footer-navigation h2{min-height:2.64em;}}


/* Dodatkowy CSS: 16-KONTAKT-FORMULARZE */
/* ETAP 16 — Formularz kontaktowy, newsletter i potwierdzenie adresu. */
.gl-forms-panel{max-width:720px; margin:1.6rem auto; padding:clamp(1rem,3vw,2rem); border:1px solid var(--gl-line,#ccd5e2); background:var(--gl-card-bg,#fff); color:var(--gl-text,#1b263b); border-radius:12px; overflow-wrap:anywhere}
.gl-forms-panel form{display:grid;gap:1rem;margin-block:1rem 2rem}
.gl-forms-panel form p{margin:0}
.gl-forms-panel label{display:block;font-weight:650;line-height:1.55}
.gl-forms-panel input:not([type=checkbox]),.gl-forms-panel textarea{box-sizing:border-box;display:block;width:100%;max-width:100%;min-height:46px;padding:.75rem;border:1px solid #64748b;border-radius:6px;font:inherit;background:#fff;color:#152238}
.gl-forms-panel textarea{resize:vertical;min-height:9rem}
.gl-forms-panel .gl-forms-consent label{display:flex;align-items:flex-start;gap:.75rem;font-weight:400}
.gl-forms-panel input[type=checkbox]{flex:0 0 auto;margin-top:.35em;width:20px;height:20px}
.gl-forms-panel button{min-height:46px;white-space:normal;overflow-wrap:anywhere;font:inherit;cursor:pointer}
.gl-forms-panel input:focus-visible,.gl-forms-panel textarea:focus-visible,.gl-forms-panel button:focus-visible,.gl-forms-panel a:focus-visible{outline:3px solid #ffc145;outline-offset:3px}
.gl-forms-panel .gl-forms-trap{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.gl-forms-panel .gl-form-notice{border-left:4px solid #25559f;padding:.8rem 1rem;background:#eaf1fa;color:#142642}
@media(max-width:480px){.gl-forms-panel{padding:1rem;max-width:100%}.gl-forms-panel h2,.gl-forms-panel h3{overflow-wrap:anywhere}}

/* Keep day names intact; wrap the two cells into separate rows when text grows. */
@media(max-width:670px) {
 .gl-contact-details .gl-opening-hours,
 .gl-contact-details .gl-opening-hours tbody { display:block; width:100%; }
 .gl-contact-details .gl-opening-hours tr { display:flex; flex-wrap:wrap; gap:0 .75rem; padding:.35rem 0; border-bottom:1px solid var(--gl-line); }
 .gl-contact-details .gl-opening-hours :is(th,td) { display:block; flex:1 1 8em; min-width:0; padding:.15rem 0; border:0; overflow-wrap:break-word; }
 .gl-contact-details .gl-opening-hours th { flex-basis:9em; width:auto; text-align:left; }
 .gl-contact-details .gl-opening-hours td { text-align:left; }
}


/* Dodatkowy CSS: 19-WERSJA-MOBILNA */
/* ETAP 19/23 — wspólne poprawki responsywności całej witryny.
   Nie ukrywamy nadmiaru treści poziomym overflow:hidden.
   Zmiany pozostają w tym module i są dołączane na końcu CSS przez buduj.py. */

/* Bloki WordPressa i media nie mogą wymuszać szerokości większej od kolumny. */
.gl-main :is(.wp-block-image, .wp-block-gallery, .wp-block-video,
  .wp-block-embed, .wp-block-columns, .wp-block-group,
  .gl-events-page, .gl-events-archive, .gl-events-calendar,
  .gl-shop-shell, .gl-forms-panel, .gl-news-grid,
  .gl-reels-grid, .gl-cover-grid) { min-width:0; max-width:100%; }
.gl-main :is(img, video, iframe, svg, canvas) { max-width:100%; }
.gl-main :is(.wp-block-embed__wrapper, .wp-block-video) { max-width:100%; }
.gl-main :is(.wp-block-embed__wrapper iframe) { max-width:100%; }
/* Szerokie tabele treści mają własny przewijany obszar — nie przewijają całej strony. */
.gl-main :is(.wp-block-table, .table-responsive) { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.gl-main :is(.wp-block-table, .table-responsive) table { width:max-content; min-width:100%; max-width:none; }
.gl-main :is(.wp-block-table, .table-responsive) table :is(th,td) { overflow-wrap:break-word; }
/* Długie linki/kody i wartości danych mają prawo zawijać się, ale nie rozpychają siatki. */
.gl-main :is(.gl-news-card, .gl-event-card, .gl-shop-shell, .gl-forms-panel,
  .gl-exhibition, .gl-page-content, .gl-entry-content) { min-width:0; overflow-wrap:break-word; }
.gl-main :is(input, textarea, select) { max-width:100%; }

/* W formularzu display:grid domyślny rozmiar min-content pola input
   potrafił poszerzać wszystkie pola na 320px przy 200% skali. */
.gl-main .gl-forms-panel form { grid-template-columns:minmax(0,1fr); min-width:0; }
.gl-main .gl-forms-panel form :is(p, label, input, textarea, select, button) { min-width:0; max-width:100%; }
.gl-main .gl-forms-panel form :is(input:not([type=checkbox]),textarea,select) { width:100%; }

/* Zgoda: flex tworzył osobne elementy z tekstu i linku, które nie
   mieściły się obok siebie przy 200% powiększeniu. Zwykły przepływ tekstu
   gwarantuje zawijanie odnośnika i zachowuje dostępny checkbox. */
@media (max-width:640px) {
  .gl-main .gl-forms-panel .gl-forms-consent label { display:block; }
  .gl-main .gl-forms-panel .gl-forms-consent input[type=checkbox] {
    display:inline-block; vertical-align:middle; width:1.25rem; height:1.25rem;
    margin:0 .5rem .15rem 0;
  }
  .gl-main .gl-forms-panel .gl-forms-consent a { overflow-wrap:anywhere; }
}

/* Dwie okładki w rzędzie mieszczą się przy zwykłym rozmiarze tekstu na telefonie.
   Gdy czytelnik powiększa tekst, minimalny wymiar jest liczony w rem:
   galeria automatycznie przechodzi na jedną kolumnę zamiast ściskać opisy. */
@media (max-width:480px) {
  .gl-section-books .gl-cover-grid,
  .gl-special-section .gl-cover-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));
  }
  .gl-section-books .gl-cover-card,
  .gl-special-section .gl-cover-card { min-width:0; max-width:100%; }
}

/* Treść dodatkowa: nazwy dni, złożone adresy URL i długie tytuły. */
@media (max-width:640px) {
  .gl-main :is(.gl-section-heading, .gl-panel-heading, .gl-archive-layout) { min-width:0; }
  .gl-main :is(.gl-section-heading, .gl-panel-heading) > * { min-width:0; }
  .gl-main :is(.gl-section-link, .gl-text-link, .gl-post-meta) { overflow-wrap:anywhere; }
  .gl-main :is(.wp-block-columns) { flex-wrap:wrap !important; }
  .gl-main :is(.wp-block-column) { min-width:0; }
}

/* Animacje nie są niezbędne do zrozumienia treści. */
@media (prefers-reduced-motion:reduce) {
  .gl-main :is(.gl-card, .gl-news-card, .gl-cover-card, .gl-reel-card, .gl-button) { animation:none; transition:none; }
}


/* Dodatkowy CSS: 20-BEZPIECZENSTWO-WCAG */
/* ETAP 20 — widoczny fokus, obsługa wymuszonego kontrastu i ograniczonego ruchu.
   Świadomie nie zmieniamy kolorów konfigurowanych przez bibliotekę: wymagają
   osobnej kontroli kontrastów dla ostatecznej treści i ustawień. */
:where(.gl-main,.gl-site-header,.gl-site-footer,.gl-utility) :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid #ffbf47;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #12274f;
}
.gl-main :is(a,button,input,textarea,select,summary):focus-visible { scroll-margin-block: 7rem; }
#gl-main:focus { outline: none; }
#gl-main:focus-visible { outline: 3px solid #ffbf47; outline-offset: -3px; }
:target { scroll-margin-block-start: 7rem; }
.gl-main a:not(.gl-button):focus-visible,
.gl-site-footer a:focus-visible { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
/* Małe przyciski funkcjonalne mają co najmniej 24 x 24 CSS px.
   Linki wewnątrz ciągłego tekstu podlegają wyjątkowi WCAG 2.5.8. */
.gl-main :is(.gl-calendar-nav,.gl-calendar-day.has-events,.gl-forms-panel button,.gl-event-card a.gl-button) { min-width: 24px; min-height: 24px; }
@media (forced-colors: active) {
  :where(.gl-main,.gl-site-header,.gl-site-footer,.gl-utility) :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
    outline: 3px solid Highlight; box-shadow: none;
  }
  .gl-main :is(.gl-calendar-day[aria-pressed="true"],.gl-forms-panel .gl-button) { border: 2px solid CanvasText; }
}
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto !important; }
  .gl-main *, .gl-site-header *, .gl-site-footer * { animation-duration: 0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}


/* Dodatkowy CSS: 21-TURYSTYKA */
/* ETAP 21 — Informacja Turystyczna. Oryginalne fragmenty theme.css bez zmian. */
.gl-tourism-card { display: block; color: var(--gl-on-dark,#fff); text-decoration: none; isolation: isolate; }
.gl-tourism-card-pending { cursor: default; }
.gl-tourism-card-pending img { opacity: .45; }
.gl-tourism-pending-note { display: inline-block; width: fit-content; margin-top: .8rem; padding: .25em .65em; border: 1px solid currentColor; border-radius: .35rem; font-size: .9rem; font-weight: 700; }
.gl-tourism-card:focus-visible, .gl-tourism-nav a:focus-visible { outline: 3px solid var(--gl-focus,#ffcc00); outline-offset: 3px; }
.gl-tourism-nav { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.gl-tourism-nav a { display: inline-flex; padding: .65rem .9rem; border: 2px solid currentColor; border-radius: .5rem; color: inherit; font-weight: 700; text-decoration: none; }
.gl-tourism-nav a[aria-current="page"] { background: var(--gl-primary,#14345c); border-color: var(--gl-primary,#14345c); color: #fff; }
.gl-tourism-pagination { padding-bottom: 3rem; }
.gl-tourism-empty { grid-column: 1 / -1; }
.gl-tourism-entry { min-width: 0; }
.gl-tourism-entry h2, .gl-tourism-entry p, .gl-tourism-overlay span, .gl-tourism-overlay strong { overflow-wrap: anywhere; }
@media(max-width: 800px) { .gl-tourism-archive, .gl-tourism-archive.is-gallery { grid-template-columns: minmax(0,1fr); padding-block: 2rem; } .gl-tourism-entry { grid-template-columns: minmax(0,1fr); } .gl-tourism-entry-image { min-height: 0; } .gl-tourism-entry-image img { aspect-ratio: 3 / 2; height: auto; } }
@media(max-width: 600px) { .gl-tourism-grid { grid-template-columns: minmax(0,1fr); } .gl-tourism-card { min-height: 310px; } .gl-tourism-overlay { padding: 1.25rem; } .gl-tourism-nav { gap: .5rem; } .gl-tourism-nav a { min-height: 44px; align-items: center; } }
@media(max-width: 370px) { .gl-tourism-card { min-height: 330px; } .gl-tourism-overlay strong { font-size: 1.45rem; } }
@media(prefers-reduced-motion: reduce) { .gl-tourism-card img { transition: none; } .gl-tourism-card:hover img { transform: none; } }

/* Okruszki zawijają się także przy powiększeniu 200% na 320 px. */
.gl-page-hero .gl-breadcrumbs { display: flex; flex-wrap: wrap; column-gap: .55rem; row-gap: .4rem; max-width: 100%; min-width: 0; white-space: normal; }
.gl-page-hero .gl-breadcrumbs > * { min-width: 0; overflow-wrap: anywhere; white-space: normal; }


/* Dodatkowy CSS: 22-DLA-CZYTELNIKA */
/* ETAP 22: portal czytelnika. Oryginalne fragmenty CSS pozostają bez zmian. */
.gl-reader-portal { min-width:0; margin-block:clamp(1rem,3vw,2.5rem); }
.gl-reader-portal-group { margin-block:0 3rem; min-width:0; }
.gl-reader-portal-group > h2 { margin:0 0 .5rem; font-size:clamp(1.45rem,2.2vw,2.1rem); line-height:1.25; overflow-wrap:break-word; }
.gl-reader-portal-group > p { color:var(--gl-muted,#536177); margin:0 0 1.5rem; max-width:72ch; }
.gl-reader-portal-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.gl-reader-portal-grid .gl-reader-card { display:flex; flex-direction:column; min-width:0; min-height:250px; text-decoration:none; color:var(--gl-text,#162338); overflow-wrap:anywhere; }
.gl-reader-portal-grid .gl-reader-card h3 { position:relative; margin:3rem 0 .75rem; z-index:1; }
.gl-reader-portal-grid .gl-reader-card p { flex:1; }
.gl-reader-portal-grid .gl-reader-card .gl-text-link { position:relative; z-index:1; font-weight:700; }
.gl-reader-portal-grid .gl-reader-card-pending { cursor:default; }
.gl-reader-portal-grid .gl-reader-card-pending:hover { background:var(--gl-card-bg,#fff); color:var(--gl-text,#162338); }
.gl-reader-portal-grid .gl-reader-card-pending:hover h3,
.gl-reader-portal-grid .gl-reader-card-pending:hover p,
.gl-reader-portal-grid .gl-reader-card-pending:hover .gl-text-link { color:inherit; }
.gl-reader-info-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.gl-reader-info-card { display:flex; flex-direction:column; min-width:0; background:var(--gl-card-bg,#fff); border:1px solid var(--gl-line,#d5dce6); border-radius:12px; padding:1.3rem; color:var(--gl-text,#162338); text-decoration:none; overflow-wrap:anywhere; }
.gl-reader-info-card h3 { font-size:clamp(1.1rem,1.6vw,1.35rem); line-height:1.3; margin:0 0 .65rem; }
.gl-reader-info-card p { color:var(--gl-muted,#536177); margin:0 0 1rem; flex:1; }
.gl-reader-link-label { font-weight:700; }
.gl-reader-info-card[href]:hover { border-color:var(--gl-primary,#17294c); text-decoration:underline; }
.gl-reader-portal a:focus-visible { outline:3px solid #ee9a23; outline-offset:4px; }
.gl-reader-info-card-pending, .gl-reader-card-pending { opacity:.85; }
.gl-reader-info-card-pending .gl-reader-link-label { color:var(--gl-muted,#536177); }
@media(max-width:980px) { .gl-reader-portal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .gl-reader-info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .gl-reader-portal-grid,.gl-reader-info-grid { grid-template-columns:minmax(0,1fr); } .gl-reader-portal-grid .gl-reader-card { min-height:175px; padding:1.2rem; } .gl-reader-portal-grid .gl-reader-card h3 { margin:1.65rem 0 .5rem; } .gl-reader-portal-grid .gl-reader-number { font-size:3rem; } .gl-reader-info-card { padding:1rem; } }
@media (prefers-reduced-motion:reduce) { .gl-reader-portal *, .gl-reader-portal *::before, .gl-reader-portal *::after { transition-duration:0.01ms!important; animation-duration:0.01ms!important; } }
@media (forced-colors:active) { .gl-reader-portal a:focus-visible { outline:3px solid Highlight; } .gl-reader-info-card { border-color:CanvasText; } }
.gl-reader-portal-group > p, .gl-reader-info-card p, .gl-reader-info-card h3 { overflow-wrap:anywhere; }
/* Matching reader cards in both groups, without decorative numbering. */
.gl-reader-portal .gl-reader-portal-grid,.gl-reader-portal .gl-reader-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;background:transparent;border:0;}
.gl-reader-portal .gl-reader-card,.gl-reader-portal .gl-reader-info-card{display:flex;flex-direction:column;min-width:0;min-height:220px;padding:1.3rem;background:var(--gl-card-bg,#fff);border:1px solid var(--gl-line,#d5dce6);border-radius:12px;color:var(--gl-text,#162338);}
.gl-reader-portal .gl-reader-card h3,.gl-reader-portal .gl-reader-info-card h3{margin:0 0 .65rem;font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.3;}
.gl-reader-portal .gl-reader-card p,.gl-reader-portal .gl-reader-info-card p{flex:1;}
@media(max-width:980px){.gl-reader-portal .gl-reader-portal-grid,.gl-reader-portal .gl-reader-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.gl-reader-portal .gl-reader-portal-grid,.gl-reader-portal .gl-reader-info-grid{grid-template-columns:minmax(0,1fr);}.gl-reader-portal .gl-reader-card,.gl-reader-portal .gl-reader-info-card{min-height:175px;padding:1rem;}}


/* Dodatkowy CSS: 23-SEKCJE-DODATKOWE */
/* ETAP 23 — globalne szablony: wyszukiwanie, 404 i podstrony. */
.gl-search-form { display:flex; flex-wrap:wrap; align-items:end; gap:.75rem; min-width:0; margin-bottom:1.5rem; }
.gl-search-form .gl-search-field-label { display:flex; flex:1 1 15rem; min-width:0; flex-direction:column; gap:.35rem; font-size:1rem; font-weight:700; }
.gl-search-form .search-field { box-sizing:border-box; width:100%; min-width:0; max-width:100%; padding:.75rem; font-size:1rem; border:1px solid var(--gl-line,#dce2eb); border-radius:var(--gl-radius,0); color:var(--gl-text,#172033); background:#fff; }
.gl-search-form .search-submit { min-height:44px; min-width:90px; padding:.75rem 1.2rem; border:0; cursor:pointer; background:var(--gl-primary,#102a56); color:#fff; font-size:1rem; font-weight:700; }
.gl-search-query { display:inline; overflow-wrap:anywhere; word-break:normal; }
.gl-archive-layout, .gl-archive-results, .gl-post-grid, .gl-sidebar, .gl-page-hero .gl-container { min-width:0; }
.gl-breadcrumbs { display:flex; flex-wrap:wrap; gap:.4rem; overflow-wrap:anywhere; }
.gl-breadcrumbs a, .gl-breadcrumbs span { max-width:100%; overflow-wrap:anywhere; }
.gl-not-found-search { max-width:min(var(--gl-width-content,1100px),100%); padding-block:2rem 4rem; }
.gl-not-found-search h2 { overflow-wrap:anywhere; }
.gl-custom-section .gl-custom-content { min-width:0; overflow-wrap:anywhere; }
@media(max-width:850px) { .gl-archive-layout { grid-template-columns:minmax(0,1fr); gap:1.75rem; } .gl-not-found-search { padding-block:1.5rem 3rem; } }
@media(max-width:480px) { .gl-search-form .search-submit { width:100%; } .gl-page-hero h1 { overflow-wrap:anywhere; } }
@media(prefers-reduced-motion:reduce) { .gl-search-form * { scroll-behavior:auto; } }

/* Compact common page system, shared by exhibition, tourism, contact and content. */
body .gl-breadcrumbs, body .woocommerce-breadcrumb {display:none!important;}
.gl-main .gl-page-hero {padding-block:clamp(1.5rem,3vw,2.5rem);background:var(--gl-surface,#f5f7fa);}
.gl-main .gl-page-hero h1 {font-size:clamp(1.85rem,3.2vw,3rem);line-height:1.16;letter-spacing:-.025em;overflow-wrap:anywhere;}
.gl-main :is(.gl-content,.gl-exhibition-content) {font-size:1rem;line-height:1.7;overflow-wrap:anywhere;min-width:0;}
.gl-main .gl-content {padding-block:clamp(1.5rem,3vw,2.75rem);}
.gl-main .gl-content > :first-child {margin-top:0;}
.gl-main .gl-content :is(h2,h3) {line-height:1.25;letter-spacing:-.015em;margin-block:1.5em .65em;}
.gl-main .gl-content img {max-width:100%;height:auto;}
.gl-main .gl-content :is(table,iframe,video) {max-width:100%;}
.gl-main .gl-section-heading {margin-bottom:1.4rem;gap:1rem;}
.gl-main :is(.gl-section-heading h2,.gl-tourism-intro h2,.gl-contact-teaser h2,.gl-social-copy h2) {font-size:clamp(1.65rem,2.5vw,2.65rem);line-height:1.2;letter-spacing:-.025em;}
.gl-main .elementor-widget-gl-library-module {margin-bottom:0;}
.gl-main .gl-quick-grid {grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));}
@media(max-width:600px) {.gl-main .gl-section-heading {align-items:stretch;}.gl-main .gl-quick-grid {grid-template-columns:minmax(0,1fr);}}

