/* Local content rails, not a new page-wide card system.
   Preserve the photographic bleed and the existing responsive section gutters.
   Sibling rhythm: 8 / 16 / 24 / 32; controls keep their usable target sizes. */
#atlas .visual-column,
#atlas .description-column,
.closer-copy,
.footer > div,
#settings { min-width: 0; }

/* The photo is the workspace rail. Its inset back-thumbnail remains an inset;
   candidate, add/remove actions, status and selection do not inherit that inset. */
#atlas .region-workspace .region-actions {
  padding: 16px 0;
  gap: 8px 16px;
}
#atlas .region-candidate { flex-basis: 100%; }
#atlas .region-status {
  min-height: 0;
  min-block-size: 0;
  margin: 16px 0 0;
}
#atlas .region-status:empty { display: none; }
#atlas .region-chosen { margin-top: 16px; }
#atlas .region-chosen > p { margin: 0 0 8px; }
#atlas .region-chosen li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 8px 16px;
  padding: 8px 0;
}
#atlas .region-chosen li > span { overflow-wrap: anywhere; }
#atlas .region-evidence { margin-top: 8px; }
#atlas .region-evidence summary { min-height: 44px; }
#atlas .region-evidence summary::after { overflow-wrap: anywhere; }

/* Description is one authored stack. Empty attachment feedback creates no
   phantom rows, while a real file list stays attached to its upload control. */
#atlas .description-column { padding-top: 0; }
#atlas .description-column > label { margin: 24px 0 8px; }
#atlas .description-column > textarea { margin: 0; }
#atlas .atlas-observations { margin: 8px 0 0; }
#atlas .atlas-observations > summary {
  min-height: 44px;
  align-content: center;
}
#atlas .visual-attachment {
  display: grid !important;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 16px;
  padding-block: 16px !important;
  min-height: 86px;
}
/* The camera's path starts at x12 within its 96-unit canvas. Align painted
   path, not the invisible SVG canvas, with label/textarea/CTA rail. */
#atlas .visual-attachment svg {
  margin-inline: -9.5px 9.5px;
  overflow: visible;
}
#atlas #attachment-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
#atlas #attachment-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  overflow-wrap: anywhere;
}
#atlas #attachment-list:empty,
#atlas #attachment-status:empty { display: none; }
#atlas #attachment-status:not(:empty) { margin: 8px 0 0; }
#atlas .description-column > .text-link { margin-top: 24px; }

/* Editorial copy keeps one local reading rail, even when its photograph is
   deliberately full bleed. The tablet no longer splits body from its heading. */
.closer-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-content: center;
}
.closer-copy h2,
.closer-copy p,
.closer-copy p + p,
.closer-copy .text-link { margin: 0; grid-column: 1; grid-row: auto; }

/* Booking is a single form rail. Native date/select keep their own internal
   text inset; labels, outlines, submit and receipt share the outside edge. */
#contact [data-request-editor],
#contact .ticket-result,
#contact .contact-actions { min-width: 0; }
#contact .booking-fields { column-gap: 24px; row-gap: 24px; }
#contact .ticket-panel { margin-top: 24px; }
#contact .ticket-result { display: grid; gap: 16px; }
#contact .ticket-result > h3,
#contact .ticket-result > p,
#contact .ticket-result > [data-ticket-code],
#contact .ticket-result > [data-ticket-status],
#contact .ticket-result > .channel-links { margin: 0; }
#contact .ticket-result > button { justify-self: start; }
#contact [data-booking-note]:empty,
#contact [data-messenger-note]:empty { display: none; }
/* VK is currently the first available channel in the public projection.
   Offset only its row's hit area; visible ink begins on the form rail. */
#contact .channel-links:has(> a:first-child[data-contact-channel="vk"]) { margin-inline-start: -10.5px; }
#contact .channel-links:has(> a:first-child[data-contact-channel="max"]),
#contact .channel-links:has(> a:first-child[data-contact-channel="whatsapp"]) { margin-inline-start: -12.3333px; }
#contact .channel-links:has(> a:first-child[data-contact-channel="telegram"]) { margin-inline-start: -9.7648px; }

/* Repeated review rows share their text/meta edge, without decorative cards. */
#reviews [data-reviews-list] { min-width: 0; }
#reviews .review-row { margin-inline: 0; }
#reviews .review-meta { gap: 8px 16px; }
@media (min-width: 1101px) {
  #reviews > h2 { grid-column: 1; grid-row: 1; }
  #reviews [data-review-destinations] { grid-column: 2; grid-row: 1; }
  #reviews [data-reviews-list] { grid-column: 2; }
  #reviews:has([data-review-destinations][hidden]) [data-reviews-list] { grid-row: 1; }
}

/* Footer brand, supporting line, safety copy and contact retain their own
   column rails; the brand's responsive column-fit stays owned by refine.css. */
.footer-info { display: grid; gap: 24px; align-content: start; }
.footer .footer-info > p,
.footer .footer-info > a { margin: 0; }

/* Dialog is an operated form, not another marketing composition. */
#settings { padding: 32px; }
#settings h2,
#settings > p,
#settings > label,
#settings > select { margin-inline: 0; }
#settings > p { margin-top: 16px; }
#settings > label { margin-block: 24px 8px; }
#settings > select { min-height: 48px; }

@media (max-width: 760px) {
  .closer-copy { gap: 24px; }
  #settings { padding: 24px; }
}
@media (max-width: 380px) {
  .mast nav { flex-wrap: wrap; row-gap: 0; }
}
