.lbo-public{box-sizing:border-box;background:var(--lbo-bg,#000000);color:var(--lbo-text,#fff);font-family:var(--lbo-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);--lbo-current-columns:var(--lbo-columns,3);--lbo-current-gap:var(--lbo-gap,24px);--lbo-current-ratio:var(--lbo-ratio,4/3)}
.lbo-public *,.lbo-public *::before,.lbo-public *::after{box-sizing:border-box}
.lbo-public .lbo-portfolio-grid,.lbo-public .lbo-gallery-grid{display:grid;grid-template-columns:repeat(min(var(--lbo-current-columns),var(--lbo-card-count,6)),minmax(0,1fr));gap:var(--lbo-current-gap)}
.lbo-public .lbo-portfolio-card{min-width:0;overflow:hidden;background:var(--lbo-card,#0E0F11);color:var(--lbo-panel-text,#fff);border:1px solid var(--lbo-border);border-radius:var(--lbo-radius,16px)}
.lbo-public .lbo-portfolio-card[hidden]{display:none!important}
.lbo-public .lbo-project-link{display:block;color:inherit;text-decoration:none;height:100%}
.lbo-public .lbo-project-link:focus-visible,.lbo-public .lbo-lightbox-link:focus-visible,.lbo-public button:focus-visible,.lbo-public .lbo-external-link:focus-visible{outline:3px solid var(--lbo-focus,#26AACC);outline-offset:3px}
.lbo-public .lbo-card-image{overflow:hidden;aspect-ratio:var(--lbo-current-ratio);background:var(--lbo-bg,#000000)}
.lbo-public .lbo-image{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:var(--lbo-current-ratio);margin:0;transition:transform .25s ease,opacity .25s ease}
.lbo-public .lbo-card-caption{position:relative;padding:22px 52px 24px 24px}
.lbo-public .lbo-card-category{color:var(--lbo-primary,#26AACC);font-size:12px;line-height:1.6;font-weight:650;letter-spacing:.04em;margin:0 0 8px;padding:0}
.lbo-public .lbo-card-title{color:inherit;font-family:inherit;font-weight:650;font-size:clamp(18px,2vw,24px);line-height:1.25;padding:0;margin:0;overflow-wrap:anywhere}
.lbo-public .lbo-card-arrow{position:absolute;right:24px;bottom:24px;font-size:24px;color:var(--lbo-primary,#26AACC)}
.lbo-public.lbo-hover-zoom .lbo-project-link:hover .lbo-image{transform:scale(1.04)}
.lbo-public.lbo-hover-overlay .lbo-project-link:hover .lbo-card-caption{background:var(--lbo-hover)}
.lbo-public .lbo-image-missing{display:flex;align-items:center;justify-content:center;min-height:220px;height:100%;padding:24px;color:var(--lbo-muted,#B0B1B1);font-size:16px;text-align:center}
.lbo-public .lbo-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.lbo-public .lbo-filter,.lbo-public .lbo-lightbox-control{appearance:none;cursor:pointer;min-height:44px;min-width:44px;border:1px solid var(--lbo-border);border-radius:var(--lbo-button-radius,10px);background:var(--lbo-card,#0E0F11);color:var(--lbo-panel-text,#fff);font:inherit;padding:10px 18px;line-height:1.4}
.lbo-public .lbo-filter.is-active{background:var(--lbo-primary,#26AACC);border-color:var(--lbo-primary,#26AACC);color:var(--lbo-action-text,#000000)}
.lbo-public .lbo-filter:hover{border-color:var(--lbo-primary,#26AACC)}
.lbo-public .lbo-visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.lbo-public .lbo-public-empty{padding:48px 24px;border:1px solid var(--lbo-border);border-radius:var(--lbo-radius,16px);background:var(--lbo-card,#0E0F11);color:var(--lbo-panel-text,#fff);text-align:center}
.lbo-public .lbo-public-empty p{padding:0;margin:0;line-height:1.7}
.lbo-public .lbo-gallery-item{margin:0;min-width:0;overflow:hidden;border-radius:var(--lbo-radius,16px);background:var(--lbo-card,#0E0F11)}
.lbo-public .lbo-lightbox-link{display:block;cursor:zoom-in}
.lbo-public .lbo-gallery-caption{padding:12px 16px;font-size:13px;color:var(--lbo-panel-text,#fff);line-height:1.6}
.lbo-public.lbo-gallery-masonry .lbo-gallery-grid{display:block;columns:min(var(--lbo-current-columns),var(--lbo-card-count,6));column-gap:var(--lbo-current-gap)}
.lbo-public.lbo-gallery-masonry .lbo-gallery-item{break-inside:avoid;margin-bottom:var(--lbo-current-gap)}
.lbo-public .lbo-external-link{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;color:var(--lbo-action-text,#000);background:var(--lbo-primary,#26AACC);text-decoration:none;border-radius:var(--lbo-button-radius,10px)}
.lbo-public.lbo-contact-link{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:10px 18px;color:var(--lbo-action-text,#000);background:var(--lbo-primary,#26AACC);text-decoration:none;border-radius:var(--lbo-button-radius,10px);overflow-wrap:anywhere}
.lbo-public.lbo-contact-link:focus-visible{outline:3px solid var(--lbo-focus,#26AACC);outline-offset:3px}
.lbo-public .lbo-project-description{padding:24px 0;line-height:1.7;overflow-wrap:anywhere}
.lbo-public.lbo-lightbox{position:fixed;inset:0;width:min(96vw,1300px);max-width:96vw;max-height:96dvh;margin:auto;border:1px solid var(--lbo-border);border-radius:var(--lbo-radius,16px);padding:20px;background:var(--lbo-bg,#000000);color:var(--lbo-text,#fff)}
.lbo-public.lbo-lightbox::backdrop{background:rgba(0,0,0,.92)}
.lbo-public.lbo-lightbox .lbo-lightbox-image{display:block;max-height:calc(96dvh - 115px);max-width:100%;width:auto;height:auto;object-fit:contain;margin:auto}
.lbo-public.lbo-lightbox .lbo-lightbox-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.lbo-public.lbo-lightbox .lbo-lightbox-actions{display:flex;gap:8px}
.lbo-public.lbo-lightbox .lbo-lightbox-control{padding:8px 14px}
@media(max-width:980px){.lbo-public{--lbo-current-columns:var(--lbo-columns-tablet,2);--lbo-current-gap:var(--lbo-gap-tablet,20px);--lbo-current-ratio:var(--lbo-ratio-tablet,var(--lbo-ratio,4/3))}}
@media(max-width:767px){.lbo-public{--lbo-current-columns:var(--lbo-columns-phone,1);--lbo-current-gap:var(--lbo-gap-phone,16px);--lbo-current-ratio:var(--lbo-ratio-phone,var(--lbo-ratio,4/3))}.lbo-public .lbo-card-caption{padding:18px 48px 20px 20px}.lbo-public .lbo-card-arrow{right:20px;bottom:20px}.lbo-public.lbo-lightbox{padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.lbo-public .lbo-image{transition:none}.lbo-public .lbo-project-link:hover .lbo-image{transform:none}}
.lbo-public.lbo-highlight{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,64px);padding:clamp(28px,5vw,80px);align-items:center;background:var(--lbo-bg,#000000);color:var(--lbo-text,#fff);border-radius:var(--lbo-card-radius,14px);border:1px solid var(--lbo-border,#B0B1B133)}
.lbo-public.lbo-highlight .lbo-highlight-copy>span{color:var(--lbo-primary,#26AACC);text-transform:uppercase;font-size:11px;letter-spacing:2px}
.lbo-public.lbo-highlight h2{font-size:clamp(34px,5vw,72px);letter-spacing:-.045em;line-height:1.05;margin:16px 0 24px}
.lbo-public.lbo-highlight p{color:var(--lbo-secondary,#B0B1B1);line-height:1.7}
.lbo-public.lbo-highlight .lbo-highlight-image img{display:block;width:100%;height:auto;border-radius:var(--lbo-card-radius,14px)}
@media(max-width:767px){.lbo-public.lbo-highlight{grid-template-columns:1fr;padding:24px}.lbo-public.lbo-highlight h2{font-size:40px}}

/* Native Legendary layouts formerly depended on the separate Mini OS site.css.
   Keep their saved Divi attributes, rows and modules. Only explicit LB markers
   receive the shared design system; Theme Builder header/footer stay authored. */
.et_pb_section.lb5-section,.et_pb_section.lbo-dark-section,.lbo-dark-layout{
 --gcid-lb-accent:var(--lbo-primary,#26AACC);--gcid-lb-accent-light:var(--lbo-primary,#26AACC);
 --gcid-lb-bg:var(--lbo-bg,#000000);--gcid-lb-black:var(--lbo-bg,#000000);
 --gcid-lb-surface:var(--lbo-card,#0E0F11);--gcid-lb-surface-raised:var(--lbo-card,#0E0F11);
 --gcid-lb-text:var(--lbo-text,#fff);--gcid-lb-muted:var(--lbo-secondary,#B0B1B1);--gcid-lb-border:var(--lbo-border,#B0B1B133);
 --gvid-lb-heading-font:var(--lbo-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);
 --gvid-lb-body-font:var(--lbo-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);
 --gvid-lb-radius:var(--lbo-card-radius,14px);--gvid-lb-radius-xl:var(--lbo-card-radius,14px);--gvid-lb-radius-sm:var(--lbo-button-radius,10px)
}
/* Fill only an explicitly Legendary post layout, including its panel gutters.
   A mixed/unmarked page never matches. No body, #main-content or TB area reset. */
.et-l--post>.et_builder_inner_content:has(>.et_pb_section.lb5-section):not(:has(>.et_pb_section:not(.lb5-section))),
.lbo-dark-layout{background-color:var(--lbo-bg,#000000);display:flow-root}
.et_pb_section:is(.lb5-section,.lbo-dark-section):not(:is(.lb5-light-section,.lbo-light-section,[data-lbo-surface="light"])){
 background-color:var(--lbo-bg,#000000);color:var(--lbo-text,#fff)
}
.et_pb_section:is(.lb5-section,.lbo-dark-section):not(:is(.lb5-light-section,.lbo-light-section,[data-lbo-surface="light"])) :is(h1,h2,h3,h4,h5,h6,.et_pb_module_header){color:var(--lbo-text,#fff)}
.et_pb_section:is(.lb5-section,.lbo-dark-section):not(:is(.lb5-light-section,.lbo-light-section,[data-lbo-surface="light"])) .et_pb_text_inner{color:var(--lbo-secondary,#B0B1B1)}
.lb5-section .et_pb_column{min-width:0}
.lb5-section .lb5-eyebrow .et_pb_text_inner{color:var(--lbo-primary,#26AACC)}
.lb5-section .lb5-accent-line :is(h1,h2,h3){color:var(--lbo-primary,#26AACC)}
.lb5-section :is(.lb5-feature-card,.lb5-person-card,.lb5-photo-tile){box-sizing:border-box;min-width:0;background-color:var(--lbo-card,#0E0F11);border-color:var(--lbo-border,#B0B1B133);border-radius:var(--lbo-card-radius,14px);overflow:hidden}
.lb5-section :is(.lb5-feature-card,.lb5-person-card) .et_pb_image_wrap,.lb5-section .lb5-photo-tile .et_pb_image_wrap{display:block;overflow:hidden;border-radius:var(--lbo-card-radius,14px)}
.lb5-section :is(.lb5-card-image,.lb5-person-photo,.lb5-photo-tile) img{display:block;width:100%;object-fit:cover}
.lb5-section :is(.lb5-feature-photo,.lb5-cta-photo) img{width:100%;max-height:430px;object-fit:cover;border-radius:var(--lbo-card-radius,14px)}
.lb5-section .lb5-hero-photo img{width:100%;max-height:600px;object-fit:cover;object-position:50% 40%;border-radius:var(--lbo-card-radius,14px)}
.lb5-section :is(.lb5-os-mount,.lb5-shortcode-host,.lb5-data-slot){min-width:0}
.lb5-section .lb5-os-mount{background:transparent;border:0;box-shadow:none}
.lb5-section .lb5-shortcode-host .et_pb_text_inner{width:100%}
.lb5-section .lb5-shortcode-host .et_pb_text_inner p{margin:0}
.lb5-button.et_pb_button,.lb5-button .et_pb_button{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;max-width:100%;
 padding:12px 20px;border-radius:var(--lbo-button-radius,10px);text-align:center;text-decoration:none;overflow-wrap:anywhere
}
.lb5-button-primary.et_pb_button,.lb5-button-primary .et_pb_button{background-color:var(--lbo-primary,#26AACC);color:var(--lbo-action-text,#000);border-color:var(--lbo-primary,#26AACC)}
.lb5-button-outline.et_pb_button,.lb5-button-outline .et_pb_button,.lb5-button-nav.et_pb_button,.lb5-button-nav .et_pb_button{background-color:var(--lbo-card,#0E0F11);color:var(--lbo-panel-text,#fff);border-color:var(--lbo-primary,#26AACC)}
.lb5-button.et_pb_button:focus-visible,.lb5-button .et_pb_button:focus-visible{outline:3px solid var(--lbo-focus,#26AACC);outline-offset:3px}
.lb5-section.lb5-form-panel :is(.et_pb_contact_form input,.et_pb_contact_form textarea){background-color:var(--lbo-input,#000);color:var(--lbo-text,#fff);border-color:var(--lbo-border,#B0B1B133);border-radius:var(--lbo-button-radius,10px)}
.lb5-section.lb5-form-panel .et_pb_contact_submit{min-height:44px;background-color:var(--lbo-primary,#26AACC);color:var(--lbo-action-text,#000);border-color:var(--lbo-primary,#26AACC)}
@media(max-width:767px){.lb5-section .lb5-hero-photo img{max-height:400px}.lb5-section .lb5-hero-actions{flex-wrap:wrap}.lb5-section .lb5-hero-actions .et_pb_button{min-height:48px}}
