/* Leading Architects: section shell for custom (HTML) modules + page classes for native BB modules.
 * Enqueued after la-components.css. Apply la-* classes via Beaver Builder: Advanced > Class.
 */

/* ---------- Shell for custom modules (aligns with the logo line: 1200 content + 20 gutter) ---------- */
.lac-sec { padding: var(--ds-space-section) 0; background: var(--ds-color-surface); }
.lac-sec--alt { background: var(--ds-color-surface-alt); }
.lac-sec--tight-top { padding-top: 64px; }
.lac-wrap { max-width: var(--ds-width-container); margin: 0 auto; padding: 0 20px; box-sizing: content-box; }
.lac-h2 { font-family: var(--ds-font-heading); font-weight: 400; font-size: 44px; line-height: 1.12; color: var(--ds-color-heading); margin: 0; }
.lac-lead { font-size: 19px; line-height: 1.6; color: var(--ds-color-text); margin: 0; }
.lac-sec p { margin: 0; }
.lac-head { display: flex; flex-direction: column; gap: 20px; max-width: 760px; margin-bottom: 48px; }
.lac-head .lac-kicker { margin-bottom: -10px; }
.lac-head--row { max-width: none; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px 40px; }
.lac-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: start; margin-bottom: 48px; }
.lac-links { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 40px; }
.lac-note { margin-top: 32px !important; font-size: 15px; color: var(--ds-color-text-muted); max-width: 760px; }
.lac-sec .lac-kicker::before { content: "/ "; color: var(--ds-color-accent); }
.lac-sec .lac-card-meta .lac-kicker::before { content: none; }
.lac-post { text-decoration: none !important; }

/* ---------- Native page classes ---------- */
.la-hero > .fl-row-content-wrap { padding-top: 88px !important; padding-bottom: 96px !important; }
.la-hero-trust p { display: flex; flex-wrap: wrap; gap: 12px 28px; padding-top: 20px; border-top: 1px solid var(--ds-color-line); font-size: 15px; color: var(--ds-color-text-muted); margin: 0; }
.la-hero-trust strong { color: var(--ds-color-heading); font-weight: 600; }
.la-logos-row > .fl-row-content-wrap { padding-top: 44px !important; padding-bottom: 44px !important; border-top: 1px solid var(--ds-color-line); border-bottom: 1px solid var(--ds-color-line); }
.la-logo-names { display: flex; flex-wrap: wrap; gap: 16px 44px; align-items: center; font-size: 21px; font-weight: 600; color: var(--ds-color-line-strong); margin: 0; }
.la-muted p, p.la-muted { font-size: 15px; color: var(--ds-color-text-muted); }
.la-point-num.fl-heading, .la-point-num .fl-heading { font-family: var(--ds-font-heading) !important; font-size: 28px !important; line-height: 1 !important; color: var(--ds-color-accent) !important; }
.la-point-title.fl-heading, .la-point-title .fl-heading { font-family: var(--ds-font-body) !important; font-size: 21px !important; font-weight: 500 !important; line-height: 1.35 !important; }
.la-pull { border-left: 2px solid var(--ds-color-accent); padding-left: 28px; font-family: var(--ds-font-heading); font-size: 28px; line-height: 1.3; color: var(--ds-color-heading); max-width: 820px; margin: 0; }
.la-quote-by b { display: block; color: var(--ds-color-heading); font-weight: 600; }
.la-contact > .fl-row-content-wrap { padding-top: 88px !important; padding-bottom: 88px !important; }
.la-contact p { color: var(--ds-color-on-dark-muted); }
.la-contact-direct a { color: var(--ds-color-accent) !important; text-decoration: none; }
.la-form-card { background: var(--ds-color-surface); padding: 32px; color: var(--ds-color-text); }
.la-form-card p, .la-form-card label, .la-form-card legend { color: var(--ds-color-text) !important; }

@media (max-width: 980px) {
  .lac-split { grid-template-columns: 1fr; gap: 24px; }
  .lac-h2 { font-size: 38px; }
}
@media (max-width: 640px) {
  .lac-h2 { font-size: 30px; }
  .lac-lead { font-size: 17px; }
  .lac-head { margin-bottom: 32px; }
  .la-pull { font-size: 22px; padding-left: 20px; }
  .la-form-card { padding: 24px 20px; }
  .la-hero > .fl-row-content-wrap { padding-top: 48px !important; padding-bottom: 64px !important; }
}

/* ---------- Button pair inside one column (column class la-btn-row; button modules class la-btn-inline) ---------- */
.la-btn-row > .fl-col-content { flex-direction: row !important; flex-wrap: wrap; align-content: flex-start; justify-content: flex-start; }
.la-btn-row > .fl-col-content > .fl-module { flex: 0 0 100%; max-width: 100%; }
.la-btn-row > .fl-col-content > .fl-module.la-btn-inline { flex: 0 0 auto; max-width: none; margin-left: 0 !important; margin-right: 0 !important; margin-top: 8px !important; }
.la-btn-row > .fl-col-content > .fl-module.la-btn-inline + .fl-module.la-btn-inline { margin-left: 12px !important; margin-right: 0 !important; }
@media (max-width: 640px) {
  .la-btn-row > .fl-col-content > .fl-module.la-btn-inline,
  .la-btn-row > .fl-col-content > .fl-module.la-btn-inline + .fl-module.la-btn-inline { flex: 0 0 100%; margin-left: 0 !important; margin-right: 0 !important; }
  .la-btn-row > .fl-col-content > .fl-module.la-btn-inline + .fl-module.la-btn-inline { margin-top: 12px !important; }
  .la-btn-row .la-btn-inline .fl-button-wrap, .la-btn-row .la-btn-inline a.fl-button { width: 100%; text-align: center; }
}

/* Hero photo height */
.la-hero .la-diagonal img { width: 100%; height: 520px; object-fit: cover; }
@media (max-width: 980px) { .la-hero .la-diagonal img { height: 360px; } }
.la-section-alt .la-diagonal-reverse img { width: 100%; height: 480px; object-fit: cover; }
@media (max-width: 980px) { .la-section-alt .la-diagonal-reverse img { height: 300px; } }

/* Heading scale: keep Astra's H2 44/38/30 over the BB AI page clamp (.fl-ds-page h2) */
.fl-ds-page h2, .fl-ds-page .fl-ds-block h2 { font-size: 44px; line-height: 1.12; }
.fl-ds-page .lac-h3 { font-size: 28px; line-height: 1.2; }
@media (max-width: 980px) { .fl-ds-page h2, .fl-ds-page .fl-ds-block h2 { font-size: 38px; } .fl-ds-page .lac-h3 { font-size: 26px; } }
@media (max-width: 640px) { .fl-ds-page h2, .fl-ds-page .fl-ds-block h2 { font-size: 30px; } .fl-ds-page .lac-h3 { font-size: 24px; } }

.fl-ds-page .lac-h4 { font-family: var(--ds-font-body); font-weight: 500; font-size: 21px; line-height: 1.3; margin: 0; }
.fl-ds-page .lac-h3 { font-family: var(--ds-font-heading); font-weight: 400; margin: 0; }

/* Mobile gutter: BB AI modules carry 0 side margin, so the row supplies the 20px gutter */
@media (max-width: 1240px) { .fl-builder-content > .fl-row > .fl-row-content-wrap { padding-left: 20px !important; padding-right: 20px !important; } }

.fl-module.la-form-card { margin-left: 0 !important; margin-right: 0 !important; }
@media (max-width: 640px) { .la-btn-row > .fl-col-content > .fl-module.la-btn-inline { margin-bottom: 0 !important; } .la-btn-row > .fl-col-content > .fl-module.la-btn-inline + .fl-module.la-btn-inline { margin-bottom: 20px !important; } }

/* ---------- Feedback round 1 (13 Oct) ---------- */
/* 2. Kicker: BB's clearfix ::before (display:table) pushed the text to a new line */
.la-kicker.fl-heading::before, .la-kicker .fl-heading::before, .la-kicker p::before { display: inline !important; }
.la-kicker.fl-heading::after { content: none !important; }
/* 3. Logo strip: lines run content-wide, not full-bleed */
.la-logos-row > .fl-row-content-wrap { border-top: 0 solid transparent !important; border-bottom: 0 solid transparent !important; padding-top: 0 !important; padding-bottom: 0 !important; }
.la-logos-row > .fl-row-content-wrap > .fl-row-content { border-top: 1px solid var(--ds-color-line); border-bottom: 1px solid var(--ds-color-line); padding-top: 44px; padding-bottom: 44px; }
/* 4. Three problems: more air above and below the top rule */
.la-rule-top { margin-top: 28px; }
.la-rule-top > .fl-col-content { padding-top: 36px !important; }
.la-rule-top .la-point-num { margin-bottom: 18px !important; }
/* 5-6. Text links: cyan underline as in the design */
.fl-ds-page .lac-link, .lac-link, .la-section .lac-link { text-decoration: underline !important; text-decoration-color: var(--ds-color-accent) !important; text-decoration-thickness: 2px !important; text-underline-offset: 6px !important; font-weight: 500; color: var(--ds-color-heading) !important; border-bottom: 0 solid transparent; }
.fl-ds-page .lac-link:hover, .lac-link:hover { color: var(--ds-color-accent-ink) !important; }
.fl-ds-page .lac-sec--dark .lac-link, .fl-ds-page .lac-cta--dark .lac-link { color: var(--ds-color-on-dark) !important; }
/* 8. Testimonials: equal height, 24px gaps, design padding */
.fl-col-group:has(> .fl-col.la-quote) { display: flex; flex-wrap: wrap; gap: 24px; }
.fl-col-group:has(> .fl-col.la-quote)::before, .fl-col-group:has(> .fl-col.la-quote)::after { display: none !important; }
.fl-col-group:has(> .fl-col.la-quote) > .fl-col.la-quote { float: none !important; flex: 1 1 0; width: auto !important; display: flex; }
.fl-col.la-quote > .fl-col-content { padding: 32px !important; width: 100%; display: flex; flex-direction: column; justify-content: flex-start; }
.fl-col.la-quote > .fl-col-content > .fl-module:last-child { margin-top: auto !important; }
/* 9. About block: space between image and text */
.la-section-alt .fl-col-group > .fl-col:has(.la-diagonal-reverse) + .fl-col > .fl-col-content { padding-left: 64px; }
/* 10. Footer logo: 20px to the text below */
.la-ft .fl-module.la-ft-logo { margin-bottom: 20px !important; }
/* 1. Language switcher on one line */
.ast-builder-language-switcher, .ast-builder-language-switcher-menu { white-space: nowrap; }
.ast-builder-language-switcher-menu { flex-wrap: nowrap !important; width: max-content; }
.ast-builder-language-switcher-menu > li { flex: 0 0 auto; }

@media (max-width: 768px) {
  .la-rule-top { margin-top: 0; }
  .fl-col-group:has(> .fl-col.la-quote) { gap: 16px; }
  .fl-col-group:has(> .fl-col.la-quote) > .fl-col.la-quote { flex: 1 1 100%; }
  .fl-col.la-quote > .fl-col-content { padding: 28px 24px !important; }
  .la-section-alt .fl-col-group > .fl-col:has(.la-diagonal-reverse) + .fl-col > .fl-col-content { padding-left: 0; padding-top: 32px; }
  .la-logos-row > .fl-row-content-wrap > .fl-row-content { padding-top: 32px; padding-bottom: 32px; }
}
.ast-builder-language-switcher-menu > li { display: flex; align-items: center; line-height: 16px; }
.ast-builder-language-switcher-menu .ast-builder-language-switcher-menu-item-header + .ast-builder-language-switcher-menu-item-header::before { font-size: 14px !important; line-height: 16px !important; }
/* Photos in native rows sit on the content edges */
.fl-module-photo.la-diagonal, .fl-module-photo.la-diagonal-reverse { margin-left: 0 !important; margin-right: 0 !important; }

/* feedback r1b: logo strip uses the full content width */
.fl-ds-page .la-logos-row p{max-width:none!important}
.fl-ds-page .la-logos-row .la-logo-names{justify-content:space-between;column-gap:32px}
.fl-ds-page .la-logos-row .la-logo-names span{white-space:nowrap}
@media (max-width:768px){.fl-ds-page .la-logos-row .la-logo-names{justify-content:flex-start;column-gap:28px}}

/* feedback r1c: hero text column keeps 64px from the photo (desktop) */
@media (min-width:769px){.fl-ds-page .la-hero .fl-col:first-child > .fl-col-content{padding-right:64px!important}}

/* feedback r1d: rule above the problems keeps its spacing on mobile */
@media (max-width:768px){.fl-ds-page .fl-col.la-rule-top{margin-top:28px!important}.fl-ds-page .fl-col.la-rule-top > .fl-col-content{padding-top:36px!important;padding-bottom:0!important}}

/* ---------- Design round 4 (Nov 2026): fewer decorative devices ---------- */
/* Problems: no big 01-03 numbers, the rule above stays */
.fl-module.la-point-num{display:none!important}
/* Statement without the vertical accent line */
.la-pull{border-left:0!important;padding-left:0!important}
@media (max-width:768px){.la-pull{padding-left:0!important}}

/* Statement on the content line now that its accent line is gone */
.fl-module:has(> .fl-module-content > .la-pull),.fl-module:has(> .la-pull){margin-left:0!important;margin-right:0!important}
