/* Scoped to the shortcode; typography inherits the active WordPress theme. */
.cis-guide {
  --cis-background: #FFFCF3;
  --cis-surface: #FFFCF3;
  --cis-text: #443322;
  --cis-muted: #715D49;
  --cis-accent: #DC6F13;
  --cis-link: #DC6F13;
  --cis-link-hover: #A94D08;
  --cis-control: #443322;
  --cis-control-hover: #624B35;
  --cis-on-control: #FFFCF3;
  --cis-border: #DDCDBA;
  --cis-input-border: #9C836A;
  --cis-soft: #F3E8DA;
  --cis-notice: #F8E8D4;
  --cis-guide-badge: #F9E2CD;
  --cis-guide-badge-text: #88410E;
  --cis-focus: #A94D08;
  --cis-shadow: rgba(68, 51, 34, .2);
  color: var(--cis-text); background-color: var(--cis-background); font-size: inherit; line-height: 1.65; margin: 24px 0; }
.cis-guide *, .cis-guide *::before, .cis-guide *::after { box-sizing: border-box; }
.cis-guide [hidden] { display: none !important; }
.cis-guide a { color: var(--cis-link); text-decoration: underline; text-underline-offset: 3px; }
.cis-guide button, .cis-guide input { font: inherit; }
.cis-guide button { cursor: pointer; }
.cis-guide :is(button, input, select, summary, a, [tabindex]):focus-visible { outline: 3px solid var(--cis-focus); outline-offset: 4px; }
.cis-heading { align-items: flex-end; display: flex; gap: 24px; justify-content: space-between; margin-bottom: 24px; }
.cis-heading h2 { color: inherit; font-size: clamp(26px, 4vw, 40px); line-height: 1.15; margin: 6px 0 12px; }
.cis-heading p { margin: 0; }
.cis-guide .cis-eyebrow { color: var(--cis-muted); font-size: 12px; font-weight: 600; letter-spacing: .08em; line-height: 1.5; margin: 0 0 8px; text-transform: uppercase; }
.cis-total { border-bottom: 2px solid var(--cis-accent); flex-shrink: 0; font-size: 14px; padding-bottom: 4px; }
.cis-toolbar { align-items: flex-end; display: flex; gap: 12px; }
.cis-toolbar label { flex: 1; font-size: 14px; font-weight: 600; }
.cis-guide .cis-search { background: var(--cis-surface); border: 1px solid var(--cis-input-border); border-radius: 3px; color: inherit; display: block; height: 46px; margin-top: 6px; max-width: none; padding: 9px 12px; width: 100%; }
.cis-guide .cis-reset { background: var(--cis-control); border: 1px solid var(--cis-control); border-radius: 3px; color: var(--cis-on-control); height: 46px; padding: 8px 16px; }
.cis-guide .cis-results { color: var(--cis-muted); font-size: 13px; margin: 10px 0; }
.cis-map { background: var(--cis-soft); border: 1px solid var(--cis-border); border-radius: 4px; width: 100%; }
.cis-map.maplibregl-map { font-family: inherit; }
.cis-map .maplibregl-ctrl-attrib { font-size: 11px; }
.cis-map .maplibregl-ctrl-attrib a { color: var(--cis-text); }
.cis-guide .cis-map-error, .cis-guide .cis-note { background: var(--cis-notice); border-left: 3px solid var(--cis-accent); color: var(--cis-text); font-size: 14px; padding: 12px 16px; }
.cis-cards { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 28px; }
.cis-card { align-self: start; background: var(--cis-surface); border: 1px solid var(--cis-border); border-top: 3px solid var(--cis-accent); border-radius: 2px; padding: 24px; scroll-margin-top: 100px; }
.cis-guide .cis-card h3 { color: inherit; font-size: 24px; line-height: 1.25; margin: 0 0 14px; }
.cis-intro { margin: 0 0 14px; }
.cis-guide .cis-address { color: var(--cis-muted); font-size: 14px; margin: 12px 0; }
.cis-guide .cis-locate { background: transparent; border: 0; color: var(--cis-link); font-size: 14px; font-weight: 600; margin: 0 0 12px; padding: 4px 0; text-decoration: underline; text-underline-offset: 4px; }
.cis-details { border-top: 1px solid var(--cis-border); margin-top: 8px; padding-top: 12px; }
.cis-guide summary { color: var(--cis-text); cursor: pointer; font-size: 14px; font-weight: 600; }
.cis-detail-body { font-size: 15px; padding-top: 12px; }
.cis-guide h4 { color: inherit; font-size: 17px; font-weight: 600; margin: 20px 0 10px; }
.cis-guide .cis-small { font-size: 13px; line-height: 1.65; }
.cis-record-id { overflow-wrap: anywhere; }
.cis-hours { border-collapse: collapse; font-size: 14px; margin: 14px 0; width: 100%; }
.cis-hours caption { color: var(--cis-muted); font-size: 12px; text-align: left; }
.cis-hours th, .cis-hours td { border-bottom: 1px solid var(--cis-border); padding: 6px 0; text-align: left; }
.cis-hours th { font-weight: 500; }
.cis-empty { border: 1px solid var(--cis-border); margin-top: 24px; padding: 24px; }
.cis-footer { border-top: 1px solid var(--cis-border); margin-top: 32px; padding-top: 16px; }
.cis-licences { font-size: 14px; max-width: 800px; padding: 10px 0; }
.cis-licences h3 { color: inherit; font-size: 18px; margin: 24px 0 10px; }
.cis-licences blockquote { border-left: 2px solid var(--cis-border); color: inherit; font-size: 14px; font-style: normal; margin: 16px 0; padding: 0 16px; }
.cis-profile { width: 100%; }
.cis-guide .cis-marker { background: var(--cis-accent); border: 2px solid var(--cis-surface); border-radius: 50% 50% 50% 4px; box-shadow: 0 2px 8px var(--cis-shadow); color: var(--cis-text); cursor: pointer; height: 38px; padding: 7px; width: 38px; }
.cis-guide .cis-marker svg { display: block; fill: currentColor; height: 20px; width: 20px; }
.cis-guide .cis-marker:hover, .cis-guide .cis-marker.cis-selected { background: var(--cis-control); color: var(--cis-on-control); }
.cis-map .maplibregl-popup-content { border-radius: 4px; color: inherit; padding: 22px; }
.cis-map .maplibregl-popup-close-button { color: inherit; font-size: 24px; padding: 4px 8px; }
.cis-popup h3 { color: inherit; font-size: 20px; line-height: 1.2; margin: 0 0 12px; }
.cis-popup p { font-size: 14px; line-height: 1.5; margin: 10px 0; }
.cis-popup button { background: var(--cis-control); border: 0; border-radius: 2px; color: var(--cis-on-control); font-size: 14px; padding: 9px 12px; }
.cis-popup .cis-popup-credit, .cis-popup .cis-popup-note { font-size: 11px; }
.cis-map-ready .cis-map-fallback { display: none; }
.cis-visually-hidden { position: absolute; clip-path: inset(50%); height: 1px; overflow: hidden; white-space: nowrap; width: 1px; }
@media (max-width: 680px) {
  .cis-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
  .cis-cards { grid-template-columns: minmax(0, 1fr); }
  .cis-card { padding: 20px; }
  .cis-map { max-height: 65vh; min-height: 300px; }
}

/* Palette variables can be overridden on .cis-guide in YOOtheme Custom CSS. */
.cis-part { margin: 16px 0; }
.cis-guide .cis-card h3 a { color: inherit; text-decoration: none; }
.cis-guide .cis-card h3 a:hover { text-decoration: underline; }
.cis-guide .cis-profile-link { font-weight: 600; font-size: 14px; }
.cis-guide .cis-locate { display: inline-block; margin: 8px 0 0 12px; }
.cis-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 32px; }
.cis-facts div { border-bottom: 1px solid var(--cis-border); padding-bottom: 12px; }
.cis-facts dt { font-size: 13px; }
.cis-facts dd { margin: 4px 0 0; }
.cis-profile-sources { margin-top: 32px; }
@media (max-width: 480px) { .cis-facts { grid-template-columns: minmax(0, 1fr); } }

/* National directory: the same palette across filters, cards and maps. */
.cis-guide :is(h2,h3,h4) { color: var(--cis-text); }
.cis-guide :is(.cis-eyebrow,.cis-address,.cis-results,.cis-small,.cis-hours caption) { color: var(--cis-muted); }
.cis-guide .cis-facts dt { opacity: 1; color: var(--cis-muted); }
.cis-guide .cis-coverage { max-width: 900px; margin-bottom: 24px; }
.cis-search-row { display: flex; align-items: flex-end; gap: 12px; }
.cis-search-row label { flex: 1; }
.cis-guide .cis-filter-form label { display: block; color: var(--cis-text); font-size: 14px; font-weight: 600; min-width: 0; }
.cis-guide .cis-filter-form :is(input,select) { display: block; width: 100%; min-width: 0; margin-top: 6px; border: 1px solid var(--cis-input-border); border-radius: 3px; background: var(--cis-surface); color: var(--cis-text); height: 46px; padding: 8px 10px; font: inherit; text-transform: none; }
.cis-guide .cis-filter-form :is(input,select,button):focus-visible { outline: 3px solid var(--cis-focus); outline-offset: 3px; }
.cis-guide .cis-filter-form input::placeholder { color: var(--cis-muted); opacity: 1; }
.cis-guide .cis-filter-form button { border: 1px solid var(--cis-control); border-radius: 3px; height: 46px; padding: 8px 18px; background: var(--cis-control); color: var(--cis-on-control); }
.cis-guide .cis-filter-form .cis-clear { color: var(--cis-control); background: var(--cis-surface); }
.cis-filter-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 16px; margin-top: 18px; }
.cis-directory-count { margin: 20px 0 12px; font-weight: 600; }
.cis-directory-map { background: var(--cis-soft); border: 1px solid var(--cis-border); width: 100%; font-family: inherit; }
.cis-directory-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; margin-top: 28px; }
.cis-directory-cards .cis-card { height: 100%; border-top-width: 1px; }
.cis-level { display: inline-block; width: fit-content; font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 3px; background: var(--cis-soft); color: var(--cis-text); margin: 0 0 14px; }
.cis-level-guide { background: var(--cis-guide-badge); color: var(--cis-guide-badge-text); }
.cis-directory-pagination { display: flex; gap: 14px; margin: 24px 0; }
.cis-page-link { display: inline-block; border: 1px solid var(--cis-input-border); border-radius: 3px; padding: 8px 18px; }
.cis-directory-footer { border-top: 1px solid var(--cis-border); margin-top: 30px; padding-top: 16px; }
/* The global footer sits on YOOtheme's primary section, not a cream directory panel. */
.cis-guide.cis-site-footer {
  --cis-background: transparent;
  --cis-text: rgba(255,255,255,.7);
  --cis-muted: rgba(255,255,255,.7);
  --cis-link: rgba(255,255,255,.7);
  --cis-link-hover: rgba(255,255,255,.7);
  --cis-focus: rgba(255,255,255,.7);
  --cis-border: rgba(255,255,255,.2);
  background: transparent;
  border: 0;
  margin: 0;
  padding: 0;
  color: var(--cis-text);
  font-size: 14px;
  line-height: 1.65;
  text-align: left;
  overflow-wrap: anywhere;
}
.cis-guide.cis-site-footer :is(.cis-small,p,h3,blockquote,summary,a) { color: var(--cis-text); }
.cis-guide.cis-site-footer .cis-small { font-size: inherit; margin: 0 0 12px; }
.cis-guide.cis-site-footer details { max-width: 90ch; }
.cis-guide.cis-site-footer summary { width: fit-content; max-width: 100%; font-size: inherit; font-weight: 600; }
.cis-guide.cis-site-footer details > p { margin: 16px 0; }
.cis-guide.cis-site-footer .cis-licences { max-width: none; padding: 0; font-size: inherit; }
.cis-guide.cis-site-footer .cis-licences h3 { font-family: inherit; font-size: 15px; font-weight: 700; line-height: 1.4; margin: 24px 0 8px; }
.cis-guide.cis-site-footer .cis-licences p { margin: 0 0 12px; }
.cis-guide.cis-site-footer .cis-licences blockquote { font-family: inherit; font-size: inherit; line-height: inherit; margin: 12px 0; padding: 0 0 0 16px; }
.cis-guide.cis-site-footer .cis-licences > :last-child { margin-bottom: 0; }
.cis-guide.cis-site-footer a:hover { color: var(--cis-link-hover); text-decoration-thickness: 2px; }
.cis-directory-error { background: var(--cis-notice); color: var(--cis-text); padding: 12px 16px; border-left: 3px solid var(--cis-accent); }
.cis-directory-empty { grid-column: 1/-1; }
.cis-guide .maplibregl-popup-content { background: var(--cis-surface); color: var(--cis-text); padding: 22px; }
.cis-guide .maplibregl-popup-close-button { color: var(--cis-text); font-size: 23px; }
.cis-guide .maplibregl-ctrl-attrib { color: var(--cis-text); background: var(--cis-surface); }
.cis-guide .maplibregl-ctrl-attrib a { color: var(--cis-text); }
.cis-guide .maplibregl-ctrl button { background-color: var(--cis-surface); }
@media (max-width: 760px) { .cis-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 540px) {
  .cis-filter-grid, .cis-directory-cards { grid-template-columns: minmax(0,1fr); }
  .cis-search-row { flex-wrap: wrap; } .cis-search-row label { flex-basis: 100%; }
  .cis-directory-map { max-height: 65vh; min-height: 300px; }
}

/* Interaction states and MapLibre chrome match the YOOtheme palette. */
.cis-guide a:hover, .cis-guide .cis-locate:hover { color: var(--cis-link-hover); }
.cis-guide .cis-card h3 a:hover { color: var(--cis-link-hover); }
.cis-guide .cis-reset:hover, .cis-guide .cis-filter-form button:hover,
.cis-guide .cis-popup button:hover { background: var(--cis-control-hover); border-color: var(--cis-control-hover); color: var(--cis-on-control); }
.cis-guide .cis-filter-form .cis-clear:hover, .cis-guide .cis-page-link:hover { background: var(--cis-soft); color: var(--cis-text); }
.cis-guide .cis-page-link { background: var(--cis-surface); }
.cis-guide .maplibregl-ctrl-group { background: var(--cis-surface); box-shadow: 0 0 0 2px var(--cis-shadow); }
.cis-guide .maplibregl-ctrl-group button + button { border-top-color: var(--cis-border); }
.cis-guide .maplibregl-ctrl button:not(:disabled):hover,
.cis-guide .maplibregl-popup-close-button:hover { background-color: var(--cis-soft); }
.cis-guide .maplibregl-popup-content { box-shadow: 0 2px 12px var(--cis-shadow); }
.cis-guide :is(.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right) .maplibregl-popup-tip { border-bottom-color: var(--cis-surface); }
.cis-guide :is(.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right) .maplibregl-popup-tip { border-top-color: var(--cis-surface); }
.cis-guide .maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: var(--cis-surface); }
.cis-guide .maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: var(--cis-surface); }
.cis-guide .maplibregl-ctrl-scale { background: var(--cis-surface); border-color: var(--cis-text); color: var(--cis-text); }

/* A single selected church sits below the map, separate from the paged results. */
.cis-map-selection { position: relative; margin: 16px 0; scroll-margin: 24px; border: 1px solid var(--cis-border); border-left: 4px solid var(--cis-accent); background: var(--cis-surface); }
.cis-map-selection .cis-card { border: 0; padding: 22px 60px 22px 24px; }
.cis-map-selection .cis-card > :last-child { margin-bottom: 0; }
.cis-map-selection .cis-card-with-image { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 26px; align-items: start; }
.cis-selection-photo { margin: 0; min-width: 0; }
.cis-selection-photo > a { display: block; }
.cis-selection-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 3px; }
.cis-selection-photo figcaption { margin: 8px 0 0; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.cis-selection-details { min-width: 0; overflow-wrap: anywhere; }
.cis-selection-details > :last-child { margin-bottom: 0; }
@media (max-width: 700px) {
  .cis-map-selection .cis-card-with-image { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}
.cis-selection-content > p { padding: 22px 60px 22px 24px; margin: 0; }
.cis-guide .cis-selection-close { position: absolute; top: 8px; right: 8px; width: 40px; height: 40px; padding: 0; border: 1px solid var(--cis-border); border-radius: 3px; background: var(--cis-surface); color: var(--cis-text); font-size: 26px; line-height: 1; }
.cis-guide .cis-selection-close:hover { background: var(--cis-soft); }

/* The homepage leads into all diocese archives; filters only affect the map. */
.cis-diocese-section { margin-top: 42px; }
:is(.cis-guide .cis-diocese-section,.cis-guide.cis-diocese-section) > h2 { font-size: clamp(26px, 3vw, 34px); line-height: 1.2; margin: 0 0 12px; }
.cis-diocese-section > p { margin: 0 0 24px; max-width: 780px; }
.cis-diocese-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.cis-guide .cis-diocese-card { display: flex; flex-direction: column; padding: 24px; border: 1px solid var(--cis-border); border-top: 3px solid var(--cis-accent); border-radius: 3px; color: var(--cis-text); background: var(--cis-surface); text-decoration: none; overflow-wrap: anywhere; }
.cis-guide .cis-diocese-card:hover { background: var(--cis-soft); border-color: var(--cis-input-border); border-top-color: var(--cis-accent); color: var(--cis-text); }
.cis-guide .cis-diocese-card h3 { font-size: 24px; line-height: 1.25; margin: 0 0 14px; }
.cis-diocese-description { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; line-height: 1.6; max-height: 4.8em; margin: 0 0 24px; }
.cis-diocese-link { margin-top: auto; color: var(--cis-link); font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.cis-diocese-card:hover .cis-diocese-link { color: var(--cis-link-hover); }
@media (max-width: 960px) { .cis-diocese-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) {
  .cis-diocese-cards { grid-template-columns: minmax(0, 1fr); }
  .cis-explorer-dioceses .cis-directory-map { max-height: 75vh; }
}

/* Keep the selected church accessible inside native and mobile fullscreen. */
.cis-map-stage:is(:fullscreen, :-webkit-full-screen, .maplibregl-pseudo-fullscreen) { display: flex; flex-direction: column; width: 100%; height: 100%; background: var(--cis-background); overscroll-behavior: contain; }
.cis-map-stage:is(:fullscreen, :-webkit-full-screen, .maplibregl-pseudo-fullscreen) .cis-directory-map { flex: 1 1 auto; height: 0 !important; min-height: 150px; max-height: none; border: 0; }
.cis-map-stage:is(:fullscreen, :-webkit-full-screen, .maplibregl-pseudo-fullscreen) .cis-map-selection { flex: 0 1 auto; max-height: 40vh; overflow: auto; overscroll-behavior: contain; margin: 0; border-width: 1px 0 0; }

/* Related churches: four cards on desktop, two on tablet, one on mobile. */
.cis-other-churches-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.cis-guide.cis-other-churches > h2 { font-size: clamp(24px, 3vw, 32px); line-height: 1.25; margin: 0 0 24px; }
.cis-other-churches-grid .cis-card { display: flex; flex-direction: column; height: 100%; padding: 20px; overflow-wrap: anywhere; }
.cis-guide .cis-other-churches-grid h3 { font-size: 22px; }
.cis-other-churches-grid .cis-profile-link { margin-top: auto; }
.cis-other-churches .cis-related-sources { margin: 18px 0 0; }
@media (max-width: 1024px) { .cis-other-churches-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cis-other-churches-grid { grid-template-columns: minmax(0, 1fr); } }

/* Recent field visits use dated, credited featured-image cards. */
.cis-visit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.cis-guide:is(.cis-latest-visits,.cis-visited-churches) > h2 { font-size: clamp(24px, 3vw, 32px); line-height: 1.25; margin: 0 0 12px; }
:is(.cis-latest-visits,.cis-visited-churches) .cis-visits-intro { max-width: 720px; margin: 0 0 26px; color: var(--cis-muted); }
.cis-guide .cis-visit-card { padding: 0; height: 100%; display: flex; flex-direction: column; border-top-width: 1px; border-radius: 4px; overflow: hidden; overflow-wrap: anywhere; }
.cis-visit-card figure { margin: 0; }
.cis-visit-photo { display: block; overflow: hidden; }
.cis-visit-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
.cis-visit-card figcaption { margin: 0; padding: 9px 18px; border-bottom: 1px solid var(--cis-border); font-size: 11px; line-height: 1.5; }
.cis-visit-body { padding: 20px; display: flex; flex-direction: column; flex: 1; }
.cis-visit-date { margin: 0 0 10px; font-size: 13px; color: var(--cis-muted); }
.cis-guide .cis-visit-card h3 { font-size: 22px; margin: 0 0 18px; }
.cis-visit-card .cis-profile-link { margin-top: auto; }
.cis-visit-pagination { margin-top: 32px; }
.cis-visit-pagination ul.page-numbers { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.cis-visit-pagination li { margin: 0; padding: 0; }
.cis-guide .cis-visit-pagination :is(a,span).page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; min-height: 42px; padding: 6px 12px; border: 1px solid var(--cis-border); border-radius: 3px; text-decoration: none; }
.cis-guide .cis-visit-pagination a:hover { background: var(--cis-soft); }
.cis-guide .cis-visit-pagination .page-numbers.current { background: var(--cis-control); color: var(--cis-on-control); border-color: var(--cis-control); }
.cis-guide .cis-visit-pagination .page-numbers.dots { border-color: transparent; }
@media (max-width: 1024px) { .cis-visit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cis-visit-grid { grid-template-columns: minmax(0, 1fr); } }

/* Diocese-led breadcrumbs and linked geography are independent classifications. */
.cis-breadcrumbs { font-size: 14px; margin: 0 0 20px; }
.cis-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px 0; padding: 0; margin: 0; list-style: none; }
.cis-breadcrumbs li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; margin: 0; }
.cis-breadcrumbs li + li::before { content: '›'; color: var(--cis-muted); margin: 0 10px; }
.cis-breadcrumbs [aria-current] { color: var(--cis-text); }

/* Ronald's UIkit slider and lightbox format; reuse the theme's UIkit assets. */
.cis-guide .r24k-at-slider { position: relative; margin: 0 -5px; }
.cis-gallery .uk-slider-items { display: flex; margin: 0; padding: 0; list-style: none; }
.cis-gallery .uk-slider-items > li { box-sizing: border-box; flex: none; width: 100%; padding: 5px; margin: 0; }
.cis-gallery:not(.cis-gallery-enhanced) .uk-slider-items { overflow-x: auto; scroll-snap-type: x mandatory; }
.cis-gallery:not(.cis-gallery-enhanced) .uk-slider-items > li { scroll-snap-align: start; }
.cis-gallery figure { margin: 0; }
.cis-gallery .cis-gallery-image { position: relative; display: block; border-radius: 20px; overflow: hidden; }
.cis-gallery .cis-gallery-image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; }
.cis-gallery .r24k-at-image-caption { position: absolute; bottom: 0; left: 0; width: 100%; padding: 24px 16px 12px; margin: 0; color: #FFFCF3; background: linear-gradient(180deg, rgba(68,51,34,0), rgba(68,51,34,.9)); text-align: center; text-shadow: 0 1px 2px #443322; font-size: 14px; line-height: 1.4; pointer-events: none; }
.cis-gallery figcaption { color: var(--cis-muted); font-size: 12px; line-height: 1.5; margin: 8px 4px 0; overflow-wrap: anywhere; }
.cis-gallery .cis-gallery-controls { display: none; align-items: center; justify-content: center; gap: 16px; margin-top: 12px; }
.cis-gallery-enhanced .cis-gallery-controls { display: flex; }
.cis-gallery .uk-slidenav { flex: 0 0 40px; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 8px; border: 1px solid var(--cis-border); border-radius: 3px; background: var(--cis-surface); box-shadow: 1px 1px 0 var(--cis-control); color: var(--cis-control); }
.cis-gallery .uk-slidenav:hover { background: var(--cis-soft); }
.cis-gallery .r24k-at-slider-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cis-gallery .r24k-at-slider-nav > * { padding: 0; }
.cis-gallery .uk-dotnav > * > * { border: 1px solid var(--cis-control); }
.cis-gallery .uk-dotnav > .uk-active > * { background-color: var(--cis-control); }
@media (min-width: 640px) { .cis-gallery:not([data-columns="1"]) .uk-slider-items > li { width: 50%; } }
@media (min-width: 960px) {
  .cis-gallery[data-columns="3"] .uk-slider-items > li { width: 33.333333%; }
  .cis-gallery[data-columns="4"] .uk-slider-items > li { width: 25%; }
}

/* Provider-listed visitor facilities and contact details. */
.cis-visitor-section { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--cis-border); overflow-wrap: anywhere; }
.cis-guide .cis-visitor-section h3 { color: var(--cis-text); font-size: 22px; line-height: 1.35; margin: 0 0 14px; }
.cis-facility-list { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 14px; padding: 0; }
.cis-facility-list li { background: var(--cis-soft); border: 1px solid var(--cis-border); border-radius: 3px; padding: 6px 12px; font-size: 15px; }
.cis-contact-list, .cis-official-links { list-style: none; margin: 12px 0; padding: 0; }
.cis-contact-list li, .cis-official-links li { margin: 8px 0; }
.cis-contact-list span { display: inline-block; min-width: 95px; font-weight: 600; }
.cis-contact-owner { margin: 0 0 12px; }
