@media (max-width: 600px) {
  :root { --cdv-mobile-gutter: 20px; }
  html { scroll-padding-top: 66px; }

  /* Keep every editorial box inside the real viewport without replacing
     the alignment and spacing explicitly selected in Gutenberg. */
  main,
  main :where(.prose, .wp-block-group, .wp-block-columns, .wp-block-column,
  .wp-block-cover__inner-container, .cdv-component) {
    min-width: 0;
    box-sizing: border-box;
  }

  main :where(h1, h2, h3, h4, h5, h6, p, li, blockquote, figcaption) {
    max-width: 100%;
    box-sizing: border-box;
    overflow-wrap: anywhere;
  }

  main :where(h1, h2, h3, h4, h5, h6, p, li, blockquote, figcaption) a {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  main .has-text-align-left { text-align: left !important; }
  main .has-text-align-center { text-align: center !important; }
  main .has-text-align-right { text-align: right !important; }
  main .has-text-align-justify { text-align: justify !important; }

  .content-layout, .prose, main .prose > .wp-block-group, main .prose > .cdv-component,
  .cdv-home-story, .cdv-home-location, .cdv-home-universes, .cdv-home-equestrian,
  .cdv-home-gallery, .cdv-home-instagram, .cdv-contact {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    box-sizing: border-box;
  }

  .content-layout, .prose {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  main .prose > .wp-block-group,
  main .prose > .cdv-viewport-panel {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0;
    padding-left: 0;
  }

  main .prose > :is(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote),
  main .prose > .wp-block-group > :is(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote) {
    width: auto;
    max-width: 100%;
    margin-right: var(--cdv-mobile-gutter);
    margin-left: var(--cdv-mobile-gutter);
    padding-right: 0;
    padding-left: 0;
    box-sizing: border-box;
    overflow-wrap: anywhere;
  }

  main .prose > .wp-block-group > :is(h1, h2, h3, h4):first-child { margin-top: 0 !important; }

  main .prose > .cdv-viewport-panel > :is(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote) {
    width: auto;
    max-width: 100%;
    margin-right: var(--cdv-mobile-gutter);
    margin-left: var(--cdv-mobile-gutter);
    padding-right: 0;
    padding-left: 0;
    box-sizing: border-box;
  }
  main .prose > .wp-block-group > :is(h1, h2),
  .cdv-home-story__copy h2, .cdv-home-location__copy h2, .cdv-home-location__intro h2 { text-wrap: balance; }
  main .prose > .wp-block-group > p { line-height: 1.72; }
  main .prose > .wp-block-group > p + p { margin-top: 22px !important; }

  .cdv-home-section-head,
  .cdv-estate-plan__intro,
  .cdv-estate-plan__landmarks {
    width: 100%;
    padding-right: var(--cdv-mobile-gutter) !important;
    padding-left: var(--cdv-mobile-gutter) !important;
    box-sizing: border-box;
  }

  .cdv-estate-plan__figure figcaption {
    margin-right: 0;
    margin-left: 0;
    padding-right: var(--cdv-mobile-gutter);
    padding-left: var(--cdv-mobile-gutter);
  }

  .cdv-home-story__copy, .cdv-home-location__copy, .cdv-home-location__intro,
  .cdv-home-equestrian__copy, .cdv-home-equestrian__aside, .cdv-home-location__capabilities,
  .cdv-card__body, .content-card__body, .cdv-stay-card__body, .contact-details,
  .cdv-contact__form, .contact-panel, .wpcf7, .location-map__content {
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: var(--cdv-mobile-gutter) !important;
    padding-left: var(--cdv-mobile-gutter) !important;
    box-sizing: border-box;
  }

  .cdv-card__body, .content-card__body, .cdv-stay-card__body {
    padding-top: 28px;
    padding-bottom: 32px;
  }

  .cdv-cards__grid, .cdv-gallery__grid, .gallery-grid, .cdv-home-services,
  .cdv-home-instagram__grid, .cdv-stay-gallery__grid, .cdv-stay-index__grid {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    border-right-width: 0 !important;
    border-left-width: 0 !important;
  }

  .cdv-card, .content-card, .cdv-stay-card, .contact-details, .cdv-contact__form,
  .contact-panel, .wpcf7, .location-map {
    width: 100% !important;
    max-width: none !important;
    border-right-width: 0 !important;
    border-left-width: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  :is(.wp-block-image, .wp-block-gallery, .cdv-card__image, .cdv-card__media,
  .content-card__media, .cdv-stay-card__media, .cdv-gallery__grid, .gallery-grid,
  .cdv-gallery__grid a, .gallery-grid a, .cdv-gallery__grid img, .gallery-grid img) {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    border-radius: 0 !important;
  }

  :is(.wp-block-image img, .wp-block-gallery img, .cdv-card img, .content-card img,
  .cdv-stay-card img, .cdv-gallery__grid img, .gallery-grid img) {
    display: block;
    width: 100%;
  }

  .cta-row, .cdv-cta__actions, main .prose > .wp-block-buttons,
  main .prose > .wp-block-group > .wp-block-buttons {
    width: 100%;
    gap: 12px;
    padding-right: var(--cdv-mobile-gutter);
    padding-left: var(--cdv-mobile-gutter);
    box-sizing: border-box;
  }

  main .wp-block-buttons.is-content-justification-left { justify-content: flex-start; }
  main .wp-block-buttons.is-content-justification-center { justify-content: center; }
  main .wp-block-buttons.is-content-justification-right { justify-content: flex-end; }
  main .wp-block-buttons.is-content-justification-space-between { justify-content: space-between; }

  main :where(.button, .wp-block-button__link, .wpcf7-form input[type="submit"]) {
    min-height: 54px;
    max-width: 100%;
    padding-right: 20px;
    padding-left: 20px;
  }

  .primary-nav { padding: 10px var(--cdv-mobile-gutter) 24px; }
  .primary-nav a { padding-top: 16px; padding-bottom: 16px; }

  .site-footer {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 44px var(--cdv-mobile-gutter) 34px;
  }

  .site-footer > * { padding-top: 24px; padding-bottom: 24px; }

  .cdv-stay-mobile-booking {
    gap: 12px;
    padding-right: var(--cdv-mobile-gutter);
    padding-left: var(--cdv-mobile-gutter);
  }

  .cdv-page-accommodation {
    --cdv-stay-shell: 100%;
  }

  .cdv-stay,
  .cdv-breadcrumb,
  .cdv-stay-hero,
  .cdv-stay-facts,
  .cdv-stay-layout,
  .cdv-stay-gallery,
  .cdv-stay-domain,
  .cdv-stay-faq,
  .cdv-stay-related {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    box-sizing: border-box;
  }

  .cdv-breadcrumb,
  .cdv-stay-hero__copy,
  .cdv-stay-intro,
  .cdv-stay-services,
  .cdv-stay-booking,
  .cdv-stay-gallery > header,
  .cdv-stay-faq,
  .cdv-stay-related > header {
    padding-right: var(--cdv-mobile-gutter) !important;
    padding-left: var(--cdv-mobile-gutter) !important;
  }

  .cdv-stay-hero__media,
  .cdv-stay-hero__media img,
  .cdv-stay-gallery__grid,
  .cdv-stay-gallery__grid img {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    border-radius: 0 !important;
  }
  .wpcf7-form input:not([type="checkbox"]), .wpcf7-form select { min-height: 58px; }
  .wpcf7-form textarea { min-height: 150px; }

  .site-header .menu-toggle, .site-header .header-booking, .cdv-slider__controls button,
  .cdv-lightbox button, .cdv-stay-mobile-booking .button { width: auto; }
}
