/* ═══════════════════════════════════════════════════════════════════
   ADM DEVELOPER — MODERN CSS RESET
   ═══════════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; }

* { margin: 0; padding: 0; }

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  scroll-behavior: smooth;
  /* Reserve the scrollbar's space without forcing the scrollbar itself: a short page and a
     long one stay the same width, so moving between them doesn't shift the layout, but a page
     that fits the viewport shows no dead scrollbar track.

     Deliberately NOT overflow-y: scroll — that draws the bar on every page whether it scrolls
     or not. The gutter alone is enough to keep the width stable. */
  scrollbar-gutter: stable;
}

/* ── Scroll lock without the sideways jump ──
   Every overlay on this site locks scrolling with overflow:hidden on <html>. That destroys
   the scrollbar, and the content immediately grows into the freed pixels — the whole page
   lurches right as the modal opens, then back as it closes.

   scrollbar-gutter:stable does NOT prevent this. It is ignored once overflow is hidden on
   the same element (measured in Chrome: content 1434px → 1440px with both declared). The
   only thing that holds the width is padding worth exactly one scrollbar, measured while
   unlocked and published as --adm-sbw by app.js.

   .adm-booking-open is the Absolute Calendar embed's own class — it locks <html> from a
   script we don't control, so we compensate from this side rather than patch the embed. */
html.menu-open,
html.adm-booking-open,
html.adm-overlay-open {
  overflow: hidden;
  overscroll-behavior: none;
  padding-right: var(--adm-sbw, 0px);
}

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

body {
  min-height: 100vh;
  line-height: var(--line-height-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

img, picture { height: auto; }

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

button { cursor: pointer; }

p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}

p { text-wrap: pretty; }

a {
  color: inherit;
  text-decoration: none;
}

ul, ol { list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* WordPress-specific resets */
.wp-block-image img { height: auto; }
.entry-content > * + * { margin-top: 1.5em; }
