/**
 * Scoped custom-page shell.
 *
 * This layer defines the boundary between WordPress/Twenty Twenty-Five
 * and fully custom Verre & Sens pages. It should stay generic: any page
 * using .vs-page--immersive gets a neutral canvas without moving those
 * WordPress overrides into each page stylesheet.
 */
body:has(.vs-page--immersive) {
  overflow-x: hidden;
}

body:has(.vs-page--immersive) .wp-site-blocks,
body:has(.vs-page--immersive) .entry-content,
body:has(.vs-page--immersive) .wp-block-post-content,
body:has(.vs-page--immersive) main.wp-block-group,
body:has(.vs-page--immersive) .wp-block-group.has-global-padding {
  max-width: none !important;
  padding: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body:has(.vs-page--immersive) .wp-block-post-content > *,
body:has(.vs-page--immersive) .entry-content > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body:has(.vs-page--immersive) .is-layout-constrained {
  max-width: none !important;
}

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

.vs-page {
  width: 100%;
  max-width: none;
  margin: 0;
  overflow-x: hidden;
  color: var(--vs-color-text);
  background: var(--vs-color-white);
  font-family: var(--vs-font-main);
}

.vs-page :where(h1, h2, h3, h4, h5, h6, p, figure, ul, ol, dl, blockquote) {
  margin: 0;
}

.vs-page :where(a) {
  color: inherit;
  text-decoration: none;
}

.vs-page :where(img, svg, video, canvas) {
  max-width: 100%;
}

.vs-page :where(img) {
  display: block;
}

.vs-page :where(button, input, textarea, select) {
  font: inherit;
}

.vs-page :where(button) {
  appearance: none;
}
