/* ============================================================================
   GOONDOI RANGERS — ELEMENTOR OUTPUT FIXES
   Rules that correct Elementor's own base stylesheet. Kept out of the kit CSS
   because the kit rewrites the word "selector", and out of global classes
   because those compile to ".elementor .label" (0,2,0), which only ties with
   the base rules they need to beat.
   ========================================================================= */

/* Elementor gives every atomic div block "min-width: 30px" so empty containers
   stay grabbable in the editor. That floor leaks to the front end and silently
   clamps anything narrower.

   The homepage hero corner fillets are 28px squares whose radial-gradient
   circle is anchored at the element's own edge (100% 0 / 0 100%). Clamped to
   30px the circle centre moved 2px, so the arcs no longer met the 52px notch
   and the scroll button sat in a stepped corner.

   Scoped to the hero wrapper's direct children, so it still applies if the
   fillet elements are rebuilt with new ids. Nothing else in there is under
   30px wide.                                                                */
.elementor .elementor-element-7da2ad22 > .e-div-block-base { min-width: 0; }

/* reCAPTCHA v2 checkbox on the atomic contact form. The widget and its token
   carrier are injected by assets/recaptcha.js, so they carry plain classes
   rather than Elementor's. See inc/recaptcha.php for why. */
/* The form is a CSS grid. A grid item defaults to min-width:auto, so the
   widget's fixed 304px iframe would set the column's minimum and push every
   field wider than the card on a phone. min-width:0 lets the track shrink. */
.gc-recaptcha {
  margin-block: 0.5rem 0.25rem;
  min-width: 0;
  max-width: 100%;
}

/* The carrier has to stay in the DOM to be serialised, but must never be
   focusable or visible. */
.gc-recaptcha__token {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Belt and braces: the iframe can never paint outside the card. Narrow
   viewports get Google's own "compact" widget instead (see recaptcha.js), so
   this should not actually clip anything. */
.gc-recaptcha__widget { max-width: 100%; overflow: hidden; }

/* Make the gated submit read as unavailable rather than merely unresponsive. */
.gc-recaptcha ~ * button[type="submit"][disabled],
.gc-recaptcha ~ * input[type="submit"][disabled] { opacity: 0.55; cursor: not-allowed; }

/* ============================================================================
   THEME BUILDER TEMPLATES (archive, search, 404, single post)
   Descendant selectors cannot live in a V4 global class, so the rules that
   need to reach inside rendered post content live here.
   ========================================================================= */

/* The single post body is raw WordPress HTML, so it carries none of the
   site's atomic classes and needs its own prose styles. */
.elementor .gc-post__body > * + * { margin-top: 1.25rem; }

.elementor .gc-post__body p,
.elementor .gc-post__body li {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--text-secondary);
}

.elementor .gc-post__body h2,
.elementor .gc-post__body h3 {
  font-family: var(--font-display);
  line-height: 1.25;
  color: var(--text-primary);
  margin-top: 2rem;
}

.elementor .gc-post__body h2 { font-size: 1.5rem; }
.elementor .gc-post__body h3 { font-size: 1.25rem; }

.elementor .gc-post__body a { color: var(--text-brand); text-decoration: underline; }

.elementor .gc-post__body ul,
.elementor .gc-post__body ol { padding-inline-start: 1.25rem; list-style: revert; }

.elementor .gc-post__body img { max-width: 100%; height: auto; border-radius: 12px; }

.elementor .gc-post__body blockquote {
  border-inline-start: 2px solid var(--border-strong);
  padding-inline-start: 1.25rem;
  font-style: italic;
}

/* The featured image is optional. Elementor emits a src-less <img> when a post
   has none, which the browser paints as a broken image. */
.elementor img.gc-post__media:not([src]) { display: none; }

/* Never leave an empty line of space where a dynamic tag resolved to nothing. */
.elementor .gc-post > .gc-caption:empty,
.elementor .gc-archive__head > .gc-body:empty { display: none; }
