/* ==========================================================================
   Circle and Rest: makes the Beaver Builder pages render exactly like the
   original site (site.css), over Astra's and Beaver Builder's own styles.

   The Beaver Builder layouts use these classes (Row/Column/Module settings >
   Advanced > Class). Add the same class to a new module to give it the look:

   Modules   cr-title  cr-title--light  cr-title--waitlist  cr-eyebrow  cr-body
             cr-hero-title  cr-hero-lead  cr-hero-actions  cr-badge
             cr-strip  cr-arch  cr-offer-photo  cr-offer-title  cr-offer-list  cr-offer-actions
             cr-rest  cr-how-step  cr-waitlist-copy  cr-small  cr-dot-list  cr-checks  cr-legal
   Columns   cr-offer  cr-offer--sage
   Rows      cr-hero  cr-split  cr-framework  cr-offerings  cr-offers  cr-how  cr-about
             cr-waitlist  cr-apply  cr-enquire  cr-narrow  cr-header  cr-header--on-photo  cr-footer

   Columns in these rows are laid out with the original site's grids (for
   example 1fr 1.3fr with a 3rem gap), not Beaver Builder's percentages, so
   they line up exactly as before at every screen width.
   ========================================================================== */

/* ---------- Base: undo Astra's type defaults ---------- */

/* Astra shrinks the base text size on phones and tablets; the original keeps it at 100%. */
html { font-size: 100% !important; }
body, button, input, select, textarea { font-family: var(--body); }
body { font-size: 17px; line-height: 1.55; color: var(--ink); background: var(--white); }
/* Astra turns on font smoothing, which changes how heavy letters look on a Mac; the original uses the browser's default. */
html body { -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto; }
/* Astra sets headings to weight 600 with its own line heights; the original lets them inherit. */
h1, h2, h3, h4, h5, h6 { font-family: var(--display); font-weight: 400; line-height: inherit; color: var(--deep); }
.fl-heading-text { font-weight: inherit; line-height: inherit; }
.fl-builder-content a:not(.btn) { color: var(--forest); }
.fl-builder-content .btn-gold { color: var(--deep); }
.fl-builder-content .btn-solid, .fl-builder-content .btn-solid:hover { color: var(--white); }
.text-link--light { color: var(--white) !important; }
.fl-builder-content ul, .fl-builder-content ol { margin: 0; padding: 0; }
.fl-builder-content blockquote { border: 0; padding: 0; margin: 0; font-style: normal; }

/* Astra spaces every paragraph in page content; the original has no default spacing.
   The rules after this one restore the original spacing where a paragraph has its own class. */
.entry-content p { margin-bottom: 0; }
.entry-content .retreat-card-price { margin: 1.25rem 0 1.5rem; }
.entry-content .retreat-card-body .eyebrow { margin-bottom: 0.5rem; }
.entry-content .retreat-card .places-left { margin: -0.5rem 0 1.25rem; }
.entry-content .form-privacy { margin: 0.75rem 0 0; }
.entry-content .past-item .eyebrow { margin: 0; }
.entry-content .body-copy p:not(:last-child) { margin-bottom: 1rem; }

/* Focus outlines: only for keyboard users, as in the original. (Astra also outlines links
   clicked with the mouse, which showed as a dark box around a retreat card.) */
a:focus, button:focus, summary:focus, input:focus, textarea:focus, select:focus { outline: none; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--forest); outline-offset: 2px; }
.retreat-card:focus-visible { outline-offset: 4px; }
/* Beaver Builder outlines anything clicked (:focus); keep that for keyboard users only. */
.fl-builder-content :is(a[href], button, summary, [tabindex]):focus:not(:focus-visible) { outline: none; }
.fl-builder-content :is(a[href], button, summary):focus-visible { outline: 2px solid var(--forest); outline-offset: 2px; }

/* Links: underlined like the original (the browser's default), except where it says otherwise. */
.fl-builder-content a { text-decoration: underline; }
.eyebrow--light a { text-decoration: none !important; }
.fl-builder-content .eyebrow--light a { color: var(--gold-soft); }
/* No underline: */
.retreat-card, .retreat-card *, .gathering, .btn, .brand, .brand *, .cr-footer-links a, .cr-nav a { text-decoration: none !important; }
.retreat-card-link, .gathering-action, .text-link { text-decoration: underline !important; }
.gathering-action--plain { text-decoration: none !important; color: var(--soft-ink); }

/* Astra wraps every page in a container; the rows set their own width. */
.ast-page-builder-template .site-content > .ast-container,
.single-cr_gathering .site-content > .ast-container,
.fl-theme-layout-template .site-content > .ast-container { max-width: 100%; padding: 0; display: block; }
.single-cr_gathering #primary, .ast-page-builder-template #primary { margin: 0; padding: 0; }

/* Beaver Builder photo modules fill their space. */
.cr-strip .fl-photo, .cr-strip .fl-photo-content, .cr-arch .fl-photo, .cr-arch .fl-photo-content,
.cr-offer-photo .fl-photo, .cr-offer-photo .fl-photo-content { display: block; width: 100%; }

/* ---------- The original grids ---------- */

/* Shorthand for "the column groups of this row". */
.cr-split > .fl-row-content-wrap > .fl-row-content > .fl-col-group,
.cr-strip-row > .fl-row-content-wrap > .fl-row-content > .fl-col-group,
.cr-offers > .fl-row-content-wrap > .fl-row-content > .fl-col-group,
.cr-how > .fl-row-content-wrap > .fl-row-content > .fl-col-group,
.cr-about > .fl-row-content-wrap > .fl-row-content > .fl-col-group,
.cr-waitlist > .fl-row-content-wrap > .fl-row-content > .fl-col-group,
.cr-footer > .fl-row-content-wrap > .fl-row-content > .fl-col-group,
.cr-header > .fl-row-content-wrap > .fl-row-content > .fl-col-group { display: grid !important; }
:is(.cr-split, .cr-strip-row, .cr-offers, .cr-how, .cr-about, .cr-waitlist, .cr-footer, .cr-header) .fl-col-group > .fl-col {
  width: auto !important; max-width: none !important; float: none !important; margin: 0 !important; min-width: 0;
}
:is(.cr-split, .cr-strip-row, .cr-offers, .cr-how, .cr-about, .cr-waitlist, .cr-footer, .cr-header) .fl-col-group::before,
:is(.cr-split, .cr-strip-row, .cr-offers, .cr-how, .cr-about, .cr-waitlist, .cr-footer, .cr-header) .fl-col-group::after { display: none !important; }

/* Heading beside text: 1fr 1.3fr, 3rem apart. One column on its own spans the row. */
.cr-split .fl-col-group { grid-template-columns: 1fr 1.3fr; gap: 3rem; }
.cr-split .fl-col-group:has(> .fl-col:only-child) { grid-template-columns: 1fr; }
.cr-framework .fl-col-group:first-child { margin-bottom: 3rem; }
.cr-offerings .fl-col-group:first-child { margin-bottom: 3rem; align-items: end; }

.cr-strip-row .fl-col-group { grid-template-columns: 1.4fr 1fr 1fr; gap: 1rem; }
.cr-offers .fl-col-group { grid-template-columns: 1fr 1fr; gap: 2rem; }
.cr-how .fl-col-group { grid-template-columns: repeat(4, 1fr); gap: 2.5rem; }
.cr-how .fl-col-group:first-child { grid-template-columns: 1fr; margin-bottom: 3rem; }
.cr-about .fl-col-group { grid-template-columns: 1fr 1.6fr; gap: 3rem; align-items: center; }
.cr-waitlist .fl-col-group { grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.cr-apply .fl-col-group, .cr-enquire .fl-col-group { align-items: start; }
.cr-footer .fl-col-group:first-child { grid-template-columns: 1fr 1.3fr 1fr; gap: 2.5rem; padding-bottom: 1.75rem; }
.cr-footer .fl-col-group:nth-child(2) { grid-template-columns: 1fr; }
.cr-footer > .fl-row-content-wrap > .fl-row-content > .fl-col-group:last-child { display: flex !important; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; }
/* Header: name and menu side by side, the menu wrapping under the name when there is no room (as the original). */
.cr-header > .fl-row-content-wrap > .fl-row-content > .fl-col-group { display: flex !important; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 2rem; }

/* The REST framework: four columns joined by fine lines, as in the original. */
.cr-framework .fl-col-group + .fl-col-group { grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--forest); }
.cr-framework .fl-col-group + .fl-col-group > .fl-col > .fl-col-content { padding: 2rem 1.5rem 0; border-right: 1px solid var(--hairline); height: 100%; box-sizing: border-box; }
.cr-framework .fl-col-group + .fl-col-group > .fl-col:first-child > .fl-col-content { padding: 2rem 1.5rem 0 0; }
.cr-framework .fl-col-group + .fl-col-group > .fl-col:last-child > .fl-col-content { padding: 2rem 0 0 1.5rem; border-right: none; }

/* ---------- Type modules ---------- */

.cr-title :is(h1, h2, h3) {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(1.9rem, 3.5vw, 2.6rem);
  line-height: 1.15;
  color: var(--deep);
  margin: 0;
}
.cr-title--light :is(h1, h2, h3) { color: var(--white); }
.cr-title--waitlist :is(h1, h2, h3) { font-size: clamp(1.9rem, 3.5vw, 2.4rem); }
/* Beaver Builder sets heading margins to 0 !important, so headings are spaced on their module instead. */
.fl-module.cr-title + .fl-module { margin-top: 1.25rem; }
.cr-offerings .fl-module.cr-title + .fl-module, .cr-split > .fl-row-content-wrap .fl-col:first-child .fl-module.cr-title + .fl-module.cr-shortcode { margin-top: 0; }

.cr-eyebrow p {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-ink);
  margin: 0 0 0.9rem;
}

.cr-body, .cr-body p { color: var(--soft-ink); font-size: 1.05rem; }
.cr-body p + p { margin-top: 1rem; }
.cr-about .cr-body, .cr-about .cr-body p { font-size: 17px; }
.cr-about .fl-module.cr-title + .fl-module { margin-top: 1.25rem; }
.cr-about .cr-body p:last-child { margin-bottom: 1.5rem; }
/* Past gatherings: the original's title and intro spacing. */
.fl-module.cr-title + .fl-module.cr-past-intro { margin-top: 1rem; }
.fl-module.cr-past-intro { margin-bottom: 3rem; }
.cr-past-intro p { max-width: 40rem; }
.cr-small p { color: var(--soft-ink); font-size: 0.85rem; margin-top: 0.9rem; }
.cr-waitlist-copy p { color: var(--soft-ink); margin: 0 0 1.25rem; }
.cr-apply .cr-waitlist-copy p, .cr-enquire .cr-waitlist-copy p { margin-bottom: 0; }
.cr-privacy p { color: var(--soft-ink); font-size: 0.8rem; margin: 0.75rem 0 0; }

.cr-dot-list ul, .cr-checks ul { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: 0.6rem; color: var(--soft-ink); }
.cr-checks ul { margin: 0; gap: 0.85rem; font-size: 1.05rem; }
.cr-dot-list li { position: relative; padding-left: 1.5rem; }
.cr-checks li { position: relative; padding-left: 1.75rem; }
.cr-dot-list li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--gold); }
.cr-checks li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--gold); }

.cr-legal { max-width: 46rem; }
.cr-legal h2 { font-size: 1.4rem; color: var(--deep); margin: 2.5rem 0 0.75rem; }
.cr-legal p, .cr-legal li { color: var(--soft-ink); }
.cr-legal p { margin: 0 0 1rem; }
.cr-legal ul { padding-left: 1.25rem; display: grid; gap: 0.5rem; margin: 0 0 1rem; list-style: disc; }
/* Privacy: the original's narrow, centred column (46rem including the side gutters). */
.cr-narrow > .fl-row-content-wrap > .fl-row-content { max-width: calc(46rem - 3rem) !important; }
.cr-narrow .cr-eyebrow p { color: var(--soft-ink); margin-bottom: 1rem; }
.fl-row.cr-narrow .fl-module.cr-title + .fl-module { margin-top: 2rem; }

/* ---------- Homepage: opening photo ---------- */

.fl-row.cr-hero .fl-row-content-wrap {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: flex-end !important;
  background-color: var(--deep);
}
.fl-row.cr-hero .fl-row-content-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 36, 27, 0.55) 0%, rgba(20, 36, 27, 0.15) 30%, rgba(20, 36, 27, 0.25) 55%, rgba(20, 36, 27, 0.82) 100%);
}
.cr-hero .fl-module:not(.cr-badge) { position: relative; z-index: 1; }
.cr-hero-title h1 {
  font-size: clamp(2.75rem, 6.5vw, 5.75rem);
  line-height: 1.04;
  color: var(--white);
  max-width: 14ch;
}
.fl-module.cr-hero-title { margin-bottom: 1.5rem; }
.cr-hero-lead p { font-size: 1.15rem; color: rgba(255, 255, 255, 0.88); max-width: 34rem; margin: 0 0 2.25rem; }
.cr-hero-actions p, .cr-offer-actions p { display: flex; flex-wrap: wrap; gap: 1.75rem; align-items: center; }
.cr-offer-actions p { gap: 1.25rem; }
.cr-offer-actions .btn-solid { padding: 0.7rem 1.4rem; }
.cr-waitlist .cr-offer-actions p { display: block; } /* a button on its own text line, as in the original */
.cr-waitlist .cr-offer-actions .btn-solid { padding: 0.9rem 1.75rem; }
.cr-badge .badge { z-index: 3; }

/* ---------- Photo strip, about, offer cards ---------- */

.cr-strip img { display: block; width: 100%; height: 22rem; object-fit: cover; border-radius: 6px; }
.cr-strip--first img { border-radius: 24px 6px 6px 6px; }
.cr-strip--last img { border-radius: 6px 6px 24px 6px; }

.cr-arch img { display: block; width: 100%; height: 24rem; object-fit: cover; border-radius: 220px 220px 24px 24px; }
.cr-about--compact .cr-arch img { height: 20rem; }

.cr-offer > .fl-col-content { height: 100%; border: 1px solid var(--hairline); border-radius: 16px; overflow: hidden; background: var(--white); padding-bottom: 2rem; box-sizing: border-box; }
.cr-offer--sage > .fl-col-content { border: none; background: var(--sage); }
.cr-offer .fl-module:not(.cr-offer-photo) { padding: 0 2rem; }
.cr-offer-photo img { display: block; width: 100%; height: 14rem; object-fit: cover; }
.cr-offer-title h3 { font-size: 1.6rem; color: var(--deep); }
.fl-module.cr-offer-title { margin: 2rem 0 1rem; }
.cr-offer-list ul { margin: 0 0 1.5rem; padding: 0; list-style: none; color: var(--soft-ink); display: grid; gap: 0.6rem; }

/* ---------- REST framework, How it works ---------- */

.cr-rest p { color: var(--soft-ink); font-size: 0.95rem; }
.cr-rest .rest-name { margin: 0.75rem 0 0.5rem; }

.cr-how-step { border-top: 1px solid rgba(201, 169, 110, 0.5); padding-top: 1.5rem; }
.cr-how-step .how-num { display: block; font-family: var(--display); font-size: 2.4rem; line-height: 1; color: var(--gold); margin-bottom: 1rem; }
.cr-how-step .how-title { font-size: 1.35rem; margin: 0 0 0.6rem; color: var(--white); }
.cr-how-step p { color: rgba(255, 255, 255, 0.78); font-size: 0.95rem; }

/* ---------- Waitlist, application, enquiries ---------- */

.cr-apply .places-left { margin: 1.25rem 0 0; }

/* ---------- Forms (Formidable, with its own styling switched off) ---------- */

.cr-form .frm_screen_reader, .cr-form .frm_verify, .cr-form .frm_hidden_container label.frm_primary_label,
.cr-form .frm_none_container label.frm_primary_label {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.cr-form .frm_hidden, .cr-form .frm_form_title, .cr-form legend.frm_screen_reader { display: none; }
.cr-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.cr-form .frm_fields_container { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.cr-form .frm_form_field, .cr-form .frm_submit { grid-column: 1 / -1; margin: 0; }
.cr-form .frm_form_field.frm_half { grid-column: auto; }
.cr-form .frm_primary_label { display: block; font-size: 0.9rem; font-weight: 500; color: var(--deep); margin-bottom: 0.35rem; }
.cr-form .frm_required { display: none; } /* the original marks optional fields instead */
.cr-form .optional { font-weight: 400; color: var(--soft-ink); }
.cr-form input[type="text"], .cr-form input[type="email"], .cr-form input[type="tel"], .cr-form textarea, .cr-form select {
  width: 100%;
  box-sizing: border-box;
  font: inherit;
  font-size: 1rem;
  padding: 0.8rem 1rem;
  border: 1px solid var(--hairline);
  border-radius: 6px;
  background: var(--white);
  color: var(--ink);
  box-shadow: none;
}
.cr-form input, .cr-form select, .cr-form .frm_primary_label { line-height: 1.55 !important; }
.cr-form input[type="text"], .cr-form input[type="email"], .cr-form input[type="tel"], .cr-form textarea { display: block; height: auto !important; min-height: 0; }
/* The original's text boxes take the label's slightly smaller size. */
.cr-form textarea { resize: vertical; font-size: 0.9rem !important; line-height: 1.55 !important; }
.cr-form:not(.cr-form--waitlist) .frm_submit { margin-top: 0.5rem; }
.cr-form--application .form-privacy, .cr-form--enquiry .form-privacy { margin-top: 1.75rem; }
/* Formidable's spam trap */
.cr-form [id$="_container"]:has(> .frm_verify) { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cr-form select { height: auto; min-height: 0; line-height: normal !important; }
.cr-form input:focus-visible, .cr-form textarea:focus-visible, .cr-form select:focus-visible { outline: 2px solid var(--forest); outline-offset: 2px; }
.cr-form .frm_submit button, .cr-form .frm_button_submit {
  font: inherit;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.55;
  padding: 0.8rem 1.6rem;
  border-radius: 6px;
  border: none;
  background: var(--forest);
  color: var(--white);
  cursor: pointer;
}
.cr-form .frm_error, .cr-form .frm_error_style { color: var(--error); font-size: 0.85rem; margin-top: 0.35rem; }
.cr-form .frm_message, .cr-form .frm_message p { color: var(--forest); font-size: 0.95rem; }
.cr-form .frm_description { color: var(--soft-ink); font-size: 0.85rem; }
.cr-form .frm-loading-img, .cr-form .frm_ajax_loading { display: none; }

/* Waitlist: the email box and button on one line, as in the original. */
.cr-form--waitlist .frm_fields_container { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.cr-form--waitlist .frm_form_field { flex: 1 1 14rem; }
.cr-form--waitlist .frm_submit { flex: 0 0 auto; grid-column: auto; }

/* Register interest pop-up */
.interest-dialog { position: relative; }
.interest-dialog .dialog-x { position: absolute; top: 0.75rem; right: 0.9rem; border: none; background: none; font-size: 1.6rem; line-height: 1; color: var(--soft-ink); cursor: pointer; padding: 0.25rem; }
.interest-dialog .frm_fields_container { grid-template-columns: 1fr; gap: 0.75rem; }
.interest-dialog .frm_submit { justify-self: end; }

/* ---------- Header ---------- */

.cr-header .brand-tagline { color: var(--soft-ink); }
.cr-nav .menu { display: flex !important; flex-wrap: wrap; justify-content: flex-start !important; gap: 1.75rem; }
.cr-nav .menu > li { margin: 0 !important; float: none !important; }
.cr-nav .menu::before, .cr-nav .menu::after { display: none !important; } /* Beaver Builder's clearfix would add a gap after the last link */
.cr-nav .menu > li > a, .cr-nav .menu > li > .fl-has-submenu-container > a { color: var(--ink); font-size: 0.95rem; line-height: 1.55; padding: 0 !important; }
.cr-nav .menu > li > a:hover { color: var(--forest); }
.cr-header--on-photo .brand-dot { background: var(--gold); }
.cr-header--on-photo .brand-name { color: var(--white); }
.cr-header--on-photo .brand-tagline { color: var(--gold-soft); }
.cr-header--on-photo .cr-nav .menu > li > a { color: var(--white); }
.cr-header--on-photo .cr-nav .menu > li > a:hover { color: var(--gold-soft); }
.cr-header--on-photo .fl-menu-mobile-toggle { color: var(--white); border-color: rgba(255, 255, 255, 0.5); }
.cr-header--on-photo .fl-menu-mobile-toggle rect { fill: var(--white); }
/* The header over the photo stays on top of the page, so its menu opens above the photo. */
.fl-theme-builder-header-overlay, header.fl-builder-content[data-type="header"] { z-index: 100; }

/* ---------- Footer ---------- */

.cr-footer { border-top: 1px solid var(--hairline); }
.cr-footer-logo .footer-logo { display: inline; } /* inline, as in the original: it sits on a text line */
.cr-footer-tagline p { color: var(--soft-ink); font-size: 0.9rem; margin: 0.5rem 0 0; }
.cr-footer-heading h2 { font-weight: 500; font-size: 1rem; color: var(--deep); }
.fl-module.cr-footer-heading { margin-bottom: 0.75rem; }
.fl-module.cr-footer-heading + .fl-module { margin-top: 0; }
.cr-footer-land p { color: var(--soft-ink); font-size: 0.82rem; line-height: 1.5; }
.cr-footer-links ul { margin: 0; padding: 0; } /* the rest comes from the original .footer-links */
.cr-footer-links a.ink { color: var(--ink) !important; }
.cr-footer-disclaimer p { color: var(--soft-ink); font-size: 0.8rem; padding: 1.25rem 0; border-top: 1px solid var(--hairline); }
.cr-footer .fl-col-group:last-child { border-top: 1px solid var(--hairline); padding: 1.25rem 0; }
.cr-footer-bar p { font-size: 0.85rem; color: var(--soft-ink); }
.cr-footer-bar--right p { display: flex; gap: 1.25rem; }
.cr-footer-bar a { color: var(--soft-ink) !important; }

/* ==========================================================================
   Tablet and smaller (the original's 900px breakpoint)
   ========================================================================== */

@media (max-width: 900px) {
  .cr-strip-row .fl-col-group { grid-template-columns: 1fr 1fr; }
  .cr-strip-row .fl-col-group > .fl-col:first-child { grid-column: 1 / -1; }
  .cr-framework .fl-col-group + .fl-col-group { grid-template-columns: 1fr 1fr; }
  .cr-framework .fl-col-group + .fl-col-group > .fl-col:nth-child(odd) > .fl-col-content { padding-left: 0; }
  .cr-framework .fl-col-group + .fl-col-group > .fl-col:nth-child(even) > .fl-col-content { padding-right: 0; border-right: none; }
  .cr-offers .fl-col-group, .cr-about .fl-col-group, .cr-waitlist .fl-col-group { grid-template-columns: 1fr; }
  .cr-footer .fl-col-group:first-child { grid-template-columns: 1fr; }
  .cr-how .fl-col-group { grid-template-columns: 1fr 1fr; }
}



/* ==========================================================================
   Phones (the original's 600px breakpoint)
   ========================================================================== */

@media (max-width: 600px) {
  .cr-framework .fl-col-group + .fl-col-group { grid-template-columns: 1fr; }
  .cr-framework .fl-col-group + .fl-col-group > .fl-col > .fl-col-content,
  .cr-framework .fl-col-group + .fl-col-group > .fl-col:first-child > .fl-col-content,
  .cr-framework .fl-col-group + .fl-col-group > .fl-col:last-child > .fl-col-content { border-right: none; border-bottom: 1px solid var(--hairline); padding: 1.5rem 0; }
  .cr-split .fl-col-group { grid-template-columns: 1fr; gap: 1.25rem; }
  .cr-how .fl-col-group { grid-template-columns: 1fr; gap: 2rem; }
  .cr-strip img { height: 16rem; }
  .cr-hero-lead p { font-size: 1.05rem; }
  .fl-row.cr-hero .fl-row-content-wrap::before { background: linear-gradient(180deg, rgba(20, 36, 27, 0.6) 0%, rgba(20, 36, 27, 0.4) 22%, rgba(20, 36, 27, 0.72) 40%, rgba(20, 36, 27, 0.9) 100%); }
  .cr-form .frm_fields_container { grid-template-columns: 1fr; }
  .cr-nav .menu { gap: 0.5rem 1.25rem; }
}
