/*
 * WordPress bridge styles: neutralise wrappers that WordPress adds around the mock markup,
 * plus accessibility additions made during the WordPress build.
 */

/* Template-part and post-content wrappers must not create boxes (keeps the sticky header working). */
.wp-site-blocks > .spayaz-part,
.spayaz-main > .spayaz-content { display: contents; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }

/* Core block wrappers that carry mock classes. */
.wp-block-group,
.wp-block-heading,
.wp-block-list,
.wp-block-details { box-sizing: border-box; }
.wp-block-details summary { cursor: pointer; }
ul.wp-block-list, ol.wp-block-list { margin-top: 0; }

/* Shortcode block wrapper (forms). */
.wp-block-shortcode { margin: 0; }

/* Screen-reader text used by WordPress core and plugins. */
.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important;
  width: 1px; word-wrap: normal !important;
}

/* Hero carousel: 24px touch targets for the dots (WCAG 2.5.8) while keeping the small visual dot. */
.hero-rotator-dots { gap: 0; align-items: center; }
.hero-rotator-dots button {
  width: 24px; height: 24px; background: transparent; display: inline-flex;
  align-items: center; justify-content: center; transform: none;
}
.hero-rotator-dots button::before {
  content: ""; width: 0.55rem; height: 0.55rem; border-radius: 999px;
  background: rgba(44, 42, 38, 0.28); transition: background 0.15s ease, transform 0.15s ease;
}
.hero-rotator-dots button.is-active { background: transparent; transform: none; }
.hero-rotator-dots button.is-active::before { background: var(--brand); transform: scale(1.2); }

/* Hero carousel pause/play control. */
.hero-rotator-pause {
  position: absolute; z-index: 3; left: calc(50% + var(--dots-half, 36px) + 0.4rem); bottom: calc(0.85rem - 2px);
  width: 28px; height: 28px; border-radius: 999px; border: 1px solid rgba(44, 42, 38, 0.15);
  background: rgba(255, 255, 255, 0.9); color: var(--ink); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; padding: 0;
}
.hero-rotator-pause.is-floating { left: auto; right: 0.65rem; bottom: 0.55rem; }
.hero-rotator-pause:hover { background: #fff; color: var(--brand); }
.hero-rotator-pause:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.hero-rotator-pause .icon-play { display: none; }
.hero-rotator.is-paused .hero-rotator-pause .icon-play { display: inline; }
.hero-rotator.is-paused .hero-rotator-pause .icon-pause { display: none; }

/* Forms (spayaz-forms mu-plugin) reuse the mock contact form classes; extra states below. */
.spayaz-form .form-grid + .form-grid { margin-top: 1rem; }
.spayaz-form .form-row { margin-top: 1rem; }
.spayaz-form .req { color: var(--coral-text); }
.spayaz-form .field-hint { display: block; font-size: 0.8125rem; color: var(--muted); margin-top: 0.3rem; }
.spayaz-form input[type="file"] { padding: 0.5rem; background: var(--surface); }
.spayaz-form .hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.spayaz-form .form-errors { margin-bottom: 1rem; }
.spayaz-form .form-errors ul { list-style: disc; padding-left: 1.25rem; margin: 0.35rem 0 0; }
.spayaz-form [aria-invalid="true"] { border-color: var(--coral-text); }
.spayaz-form .cf-turnstile { margin-top: 1rem; }
.form-success:focus { outline: 3px solid var(--focus); outline-offset: 2px; }
.careers-form-panel { min-width: 0; }
@media (min-width: 820px) {
  .careers-grid { grid-template-columns: 1.6fr 1fr; }
}
.spayaz-form .field-error { font-size: 0.875rem; font-weight: 600; color: var(--coral-text); margin-top: 0.3rem; }
.spayaz-form .form-errors,
.form-success { border: 1px solid var(--border); border-left: 4px solid var(--coral-text); background: var(--coral-soft); border-radius: 10px; padding: 0.9rem 1rem; }
.form-success { border-left-color: var(--brand); background: var(--brand-soft); }
.spayaz-form .form-errors:focus { outline: 3px solid var(--focus); outline-offset: 2px; }
.spayaz-form .form-errors a { color: var(--ink); }
.spayaz-form .form-required-note { margin: 0 0 0.75rem; }

/* Privacy policy and other legal pages: readable line length. */
.legal-effective { font-size: 0.9375rem; color: var(--muted); margin-top: 0.75rem; }
.legal-content { max-width: 46rem; }
.legal-content h2 { font-size: 1.375rem; margin: 2.25rem 0 0.6rem; }
.legal-content h2:first-child { margin-top: 0; }
.legal-content p, .legal-content li { color: var(--ink); line-height: 1.65; }
.legal-content p + p { margin-top: 0.75rem; }
.legal-content ul { list-style: disc; padding-left: 1.25rem; margin: 0.5rem 0 0.75rem; }
.legal-content li + li { margin-top: 0.4rem; }
.legal-content a { color: var(--brand-text-soft); text-decoration: underline; }
.footer-bottom .footer-legal a { color: #A8A29A; text-decoration: underline; }
