/**
 * @file
 * Reset: box model, margins, form controls inherit the page type.
 */

html:where(.gdrfad-dds),
:where(.gdrfad-dds) *,
:where(.gdrfad-dds) *::before,
:where(.gdrfad-dds) *::after,
.gdrfad-dds-embedded,
.gdrfad-dds-embedded *,
.gdrfad-dds-embedded *::before,
.gdrfad-dds-embedded *::after {
  box-sizing: border-box;
}

/* Embedded in another theme (hand-written, scope-css.py leaves it alone):
 * Drupal's own wrapper classes stay on the design's markup, so that theme's
 * rules for them (Olivero: .form-item { margin-block }) are taken back to the
 * browser's defaults, as on the staff theme. The design's own rules for
 * these classes come later and win. */
.gdrfad-dds-embedded :is(.form-item, .form-wrapper, .form-actions, .description, .fieldset-wrapper) {
  margin: revert;
  padding: revert;
  border: revert;
  background: revert;
  box-shadow: revert;
  flex-wrap: revert;
  align-items: revert;
}

html:where(.gdrfad-dds),
:where(.gdrfad-dds) body,
:where(.gdrfad-dds) h1,
:where(.gdrfad-dds) h2,
:where(.gdrfad-dds) h3,
:where(.gdrfad-dds) h4,
:where(.gdrfad-dds) h5,
:where(.gdrfad-dds) h6,
:where(.gdrfad-dds) p,
:where(.gdrfad-dds) figure,
:where(.gdrfad-dds) blockquote,
:where(.gdrfad-dds) dl,
:where(.gdrfad-dds) dd,
.gdrfad-dds-embedded,
.gdrfad-dds-embedded h1,
.gdrfad-dds-embedded h2,
.gdrfad-dds-embedded h3,
.gdrfad-dds-embedded h4,
.gdrfad-dds-embedded h5,
.gdrfad-dds-embedded h6,
.gdrfad-dds-embedded p,
.gdrfad-dds-embedded figure,
.gdrfad-dds-embedded blockquote,
.gdrfad-dds-embedded dl,
.gdrfad-dds-embedded dd {
  margin: 0;
}

:where(.gdrfad-dds) button,
:where(.gdrfad-dds) input,
:where(.gdrfad-dds) select,
:where(.gdrfad-dds) textarea,
.gdrfad-dds-embedded button,
.gdrfad-dds-embedded input,
.gdrfad-dds-embedded textarea {
  font: inherit;
  color: inherit;
}

:where(.gdrfad-dds) img,
:where(.gdrfad-dds) svg,
.gdrfad-dds-embedded img,
.gdrfad-dds-embedded svg {
  max-inline-size: 100%;
}

:where(.gdrfad-dds) img,
.gdrfad-dds-embedded img {
  block-size: auto;
}

/* A [hidden] rule must beat any display rule, or #states targets and the
 * pickers' filtered rows reappear. until-found keeps its own behaviour. */
:where(.gdrfad-dds) [hidden]:not([hidden="until-found"]),
.gdrfad-dds-embedded [hidden]:not([hidden="until-found"]) {
  display: none !important;
}
