.parish-visual-sections:empty { display: none; }
.parish-visual-sections { padding-block: 24px 40px; }
.parish-visual-section + .parish-visual-section { margin-top: 32px; }
.parish-visual-section img { display: block; max-width: 100%; height: auto; margin-block: 12px; }
.parish-visual-section p { text-align: justify; hyphens: auto; }
.parish-visual-copy { white-space: pre-line; }

.parish-visual-open,
.parish-visual-panel {
  position: fixed;
  z-index: 10000;
  right: 12px;
  bottom: 12px;
}
.parish-visual-open,
.parish-visual-panel button,
.parish-visual-recommendations button,
.parish-visual-section-edit button,
.parish-visual-marker {
  padding: .45rem .75rem;
  border: 1px solid #005ca6;
  border-radius: 4px;
  background: #fff;
  color: #00497f;
  font: 600 .875rem/1.3 system-ui, sans-serif;
  cursor: pointer;
}
.parish-visual-open,
#parish-visual-save { background: #005ca6; color: #fff; }
.parish-visual-panel {
  box-sizing: border-box;
  width: min(350px, calc(100vw - 24px));
  max-height: min(65vh, 600px);
  overflow: auto;
  padding: 16px;
  border: 1px solid #b5cde1;
  border-radius: 8px;
  background: #fff;
  color: #102e50;
  box-shadow: 0 8px 36px #102e5040;
  font: 400 .9rem/1.5 system-ui, sans-serif;
}
.parish-visual-panel h2 { margin: 0; font-size: 1.25rem; }
.parish-visual-panel label,
.parish-visual-section-edit label { display: block; margin-block: 10px; }
.parish-visual-panel textarea,
.parish-visual-panel :is(input[type="url"], input[type="search"]),
.parish-visual-section-edit :is(input, textarea) { display: block; box-sizing: border-box; width: 100%; }
.parish-visual-panel img { display: block; max-width: 100%; max-height: 110px; object-fit: contain; margin-block: 8px; }
.parish-visual-panel img[hidden] { display: none; }
#parish-visual-fields [hidden] { display: none; }
.parish-visual-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.parish-visual-target { outline: 1px dashed #005ca6; }
.home-welcome-title.parish-visual-target { pointer-events: auto; cursor: text; }
[data-visual-label].parish-visual-target { cursor: text; }
.parish-visual-recommendations { display: grid; justify-items: start; gap: 12px; margin-top: 16px; text-align: left; }
.parish-visual-recommendations details { padding: 12px; border: 1px solid #b5cde1; }
.parish-visual-recommendations label { display: block; margin-block: 8px; }
.parish-visual-recommendations input { display: block; box-sizing: border-box; width: 100%; }
.parish-visual-recommendations img { max-width: 140px; max-height: 90px; object-fit: contain; }
.parish-visual-marker { margin: 4px 0 8px; }
.parish-visual-graphic { position: relative; }
.home-welcome-slide > .parish-visual-graphic { height: 100%; }
.parish-visual-graphic > button {
  position: absolute;
  z-index: 2;
  right: 6px;
  bottom: 6px;
  padding: .4rem .6rem;
  border: 1px solid #005ca6;
  border-radius: 4px;
  background: #fff;
  color: #00497f;
  font: 600 .8rem/1.3 system-ui, sans-serif;
  cursor: pointer;
}
.parish-visual-section-edit { padding: 16px; border: 1px dashed #005ca6; }
.parish-visual-section-edit details { margin-block: 12px; }
.parish-visual-open[hidden],
.parish-visual-panel[hidden],
.parish-visual-section-edit img[hidden] { display: none; }
