/*
Theme Name: Liminal
Theme URI: http://www.meetliminal.com
Version: 1.1
Description: A Liminal Website
Author: Liminal
Author URI: http://www.meetliminal.com
Template: bb-theme
*/

/**
 * The Sparrows visual system
 *
 * Beaver Builder remains the native content and layout authoring surface.
 * This stylesheet owns shared tokens, responsive type, focus behavior, and
 * opt-in layout utilities so new pages do not require one-off CSS nudges.
 */
:root {
  --sparrows-grid-max: 1216px;
  --sparrows-page-gutter: clamp(20px, 7.7778vw, 112px);

  --sparrows-space-1: 8px;
  --sparrows-space-2: 12px;
  --sparrows-space-3: 16px;
  --sparrows-space-4: 24px;
  --sparrows-space-5: 32px;
  --sparrows-space-6: 40px;
  --sparrows-space-7: 56px;
  --sparrows-space-8: 80px;
  --sparrows-section-space: clamp(60px, 8.4vw, 121px);
  --sparrows-section-space-compact: clamp(40px, 5.5556vw, 80px);
  --sparrows-gap-heading-copy: clamp(20px, 2.2222vw, 32px);
  --sparrows-gap-copy-action: clamp(24px, 2.7778vw, 40px);
  --sparrows-gap-media-text: clamp(32px, 5.5556vw, 80px);

  --sparrows-font-display: "Crimson Pro", serif;
  --sparrows-font-body: "Sofia Pro", Verdana, Arial, sans-serif;
  --sparrows-heading-1: 64px;
  --sparrows-heading-2: clamp(40px, 3.3333vw, 48px);
  --sparrows-heading-3: clamp(34px, 2.7778vw, 40px);
  --sparrows-heading-4: clamp(30px, 2.5vw, 36px);
  --sparrows-heading-5: 24px;
  --sparrows-heading-6: 20px;
  --sparrows-text-small: 14px;
  --sparrows-text-medium: 18px;
  --sparrows-text-large: 20px;
  --sparrows-leading-body: 1.45;

  --sparrows-focus: #e2b05b;
}

/* The design source specifies a 64px H1; scale it safely below desktop. */
.fl-builder-content-primary h1 {
  font-family: var(--sparrows-font-display);
  font-size: var(--sparrows-heading-1);
  line-height: 1;
}

/*
 * Explicit type roles win over Beaver module-level size fields. They are the
 * supported escape hatch for new native pages and intentional variants.
 */
.sparrows-type-h1 { font: 700 var(--sparrows-heading-1)/1 var(--sparrows-font-display) !important; }
.sparrows-type-h2 { font: 700 var(--sparrows-heading-2)/1.2 var(--sparrows-font-display) !important; }
.sparrows-type-h3 { font: 700 var(--sparrows-heading-3)/1.2 var(--sparrows-font-display) !important; }
.sparrows-type-h4 { font: 700 var(--sparrows-heading-4)/1.2 var(--sparrows-font-display) !important; }
.sparrows-type-h5 { font: 700 var(--sparrows-heading-5)/1.2 var(--sparrows-font-body) !important; }
.sparrows-type-h6 { font: 700 var(--sparrows-heading-6)/1.2 var(--sparrows-font-body) !important; }
.sparrows-copy-large { font: 400 var(--sparrows-text-large)/var(--sparrows-leading-body) var(--sparrows-font-body) !important; }
.sparrows-copy-medium { font: 400 var(--sparrows-text-medium)/var(--sparrows-leading-body) var(--sparrows-font-body) !important; }
.sparrows-copy-small { font: 400 var(--sparrows-text-small)/var(--sparrows-leading-body) var(--sparrows-font-body) !important; }

/* Long-form native Beaver content uses the shared medium-text token. */
.page-id-5919 .fl-builder-content-primary .fl-module-rich-text,
.page-id-5926 .fl-builder-content-primary .fl-module-rich-text {
  font-family: var(--sparrows-font-body);
  font-size: var(--sparrows-text-medium);
  line-height: var(--sparrows-leading-body);
}

/* Keyboard focus stays visible; pointer clicks do not retain a browser ring. */
:where(a, button, input, select, textarea, [tabindex]):focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--sparrows-focus);
  outline-offset: 4px;
}

/*
 * Chromium can retain :focus-visible after a pointer click on links. The
 * companion input-modality script makes pointer and keyboard intent explicit
 * without removing the keyboard focus indicator.
 */
html.sparrows-input-pointer
  :where(a, button, input, select, textarea, [tabindex]):focus,
html.sparrows-input-pointer
  :where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

html.sparrows-input-keyboard
  :where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--sparrows-focus) !important;
  outline-offset: 4px !important;
}

/*
 * Beaver-safe layout utilities.
 * Add these semantic classes in Advanced > HTML Element > Class; content,
 * media, ordering, visibility, and responsive controls remain native.
 */
.sparrows-grid > .fl-row-content-wrap {
  padding-right: var(--sparrows-page-gutter) !important;
  padding-left: var(--sparrows-page-gutter) !important;
}

.sparrows-grid > .fl-row-content-wrap > .fl-row-content {
  width: 100%;
  max-width: var(--sparrows-grid-max);
}

.sparrows-section > .fl-row-content-wrap {
  padding-top: var(--sparrows-section-space) !important;
  padding-bottom: var(--sparrows-section-space) !important;
}

.sparrows-section--compact > .fl-row-content-wrap {
  padding-top: var(--sparrows-section-space-compact) !important;
  padding-bottom: var(--sparrows-section-space-compact) !important;
}

.sparrows-stack > .fl-module-content > * {
  margin-top: 0;
  margin-bottom: 0;
}

.sparrows-stack > .fl-module-content > * + * {
  margin-top: var(--sparrows-stack-gap, var(--sparrows-gap-heading-copy));
}

.sparrows-stack--tight { --sparrows-stack-gap: var(--sparrows-space-3); }
.sparrows-stack--loose { --sparrows-stack-gap: var(--sparrows-space-6); }

.sparrows-media-text {
  column-gap: var(--sparrows-gap-media-text) !important;
  row-gap: var(--sparrows-space-6) !important;
}

.sparrows-media-frame img {
  display: block;
  width: 100%;
  height: auto;
}

/*
 * Normalize late-added long-form resource rows while they are migrated to the
 * semantic Beaver classes above. The selectors are page-scoped and do not
 * touch the intentionally different community CTA row at the end of each page.
 */
.fl-builder-content-5919 > .fl-row:first-child .fl-module-content,
.fl-builder-content-5919 > .fl-row:first-child .fl-module-heading,
.fl-builder-content-5926 > .fl-row:not(:last-child) .fl-module-content,
.fl-builder-content-5926 > .fl-row:not(:last-child) .fl-module-heading {
  margin-right: 0 !important;
  margin-left: 0 !important;
}

/* Align the mission bird with the approved composition on desktop only. */
@media (min-width: 993px) {
  .fl-builder-content-5094 .fl-node-u1ls6k93zmyt > .fl-row-content-wrap {
    background-position-x: 86% !important;
  }
}

@media (max-width: 768px) {
  .fl-builder-content-primary h1 {
    font-size: clamp(44px, 12.3077vw, 48px) !important;
  }

  body .fl-builder-content-primary h1.sparrows-appointment-heading {
    font-size: clamp(44px, 12.3077vw, 48px) !important;
  }

  body .fl-builder-content-primary h1.sparrows-workshops-heading {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .fl-builder-content-5919 > .fl-row:first-child > .fl-row-content-wrap,
  .fl-builder-content-5926 > .fl-row:not(:last-child) > .fl-row-content-wrap {
    padding-right: 20px !important;
    padding-left: 20px !important;
  }
}
