/**
 * Buildly frontend base styles (loaded on every page + in the editor canvas).
 * Currently: navigation element presets. Element-level styling (colour,
 * typography, spacing) is layered on top via the per-element cache CSS.
 */

/* Background overlay layer (rows/columns): sits above bg, below content. The
   inline style carries position/inset/z-index/background; this only ensures it
   tracks rounded corners and never intercepts clicks. */
.buildly-bg-overlay { border-radius: inherit; pointer-events: none; }

/* Media background layer (video / slideshow): below the overlay, above the
   solid background colour. Negative z-index inside the host's isolated
   stacking context. */
.buildly-bg-media { position: absolute; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; border-radius: inherit; }
.buildly-bg-video { width: 100%; height: 100%; object-fit: cover; display: block; }
.buildly-bg-slider .buildly-bg-slide { position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat; opacity: 0; transition: opacity 1s ease; }
.buildly-bg-slider .buildly-bg-slide.is-on { opacity: 1; }

/* Atomic widgets — base look (overridable via the element Style tab). */
.buildly-btn { display: inline-block; padding: .7rem 1.4rem; background: #0a66ff; color: #fff; border-radius: 6px; text-decoration: none; font-weight: 600; line-height: 1.2; transition: filter .15s; }
.buildly-btn:hover { filter: brightness(1.08); color: #fff; }
.buildly-divider { border: 0; border-top: 1px solid currentColor; }
.buildly-spacer { width: 100%; }
/* Icon-Box / Image-Box */
.buildly-box { display: flex; gap: 1rem; }
.buildly-box--top { flex-direction: column; align-items: flex-start; }
.buildly-box--right { flex-direction: row-reverse; }
.buildly-box-media img { display: block; max-width: 100%; height: auto; }
.buildly-iconbox .buildly-box-media img { width: 56px; height: auto; }
.buildly-box-title { margin: 0 0 .35rem; }
.buildly-box-text { margin: 0; }

/* Accordion */
.buildly-acc-item { border: 1px solid rgba(0,0,0,.12); border-radius: 6px; margin-bottom: .4rem; overflow: hidden; }
.buildly-acc-head { width: 100%; text-align: left; background: rgba(0,0,0,.03); border: 0; padding: .8rem 1rem; font: inherit; font-weight: 600; cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
.buildly-acc-ico { width: .7rem; height: .7rem; position: relative; flex: 0 0 auto; }
.buildly-acc-ico::before, .buildly-acc-ico::after { content: ""; position: absolute; background: currentColor; transition: transform .2s; }
.buildly-acc-ico::before { left: 0; top: 45%; width: 100%; height: 2px; }
.buildly-acc-ico::after { left: 45%; top: 0; width: 2px; height: 100%; }
.buildly-acc-item.is-open .buildly-acc-ico::after { transform: scaleY(0); }
.buildly-acc-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .25s; }
.buildly-acc-item.is-open .buildly-acc-body { grid-template-rows: 1fr; }
.buildly-acc-inner { overflow: hidden; }
.buildly-acc-item.is-open .buildly-acc-inner { padding: .8rem 1rem; }

/* Tabs (widget) */
.buildly-tabw-nav { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom: 2px solid rgba(0,0,0,.1); }
.buildly-tabw-btn { background: none; border: 0; padding: .6rem 1rem; font: inherit; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; }
.buildly-tabw-btn.is-active { border-bottom-color: currentColor; font-weight: 600; }
.buildly-tabw-panel { display: none; padding: 1rem 0; }
.buildly-tabw-panel.is-active { display: block; }

/* Image carousel */
.buildly-car { position: relative; }
.buildly-car-viewport { overflow: hidden; }
.buildly-car-track { display: flex; transition: transform .4s ease; }
.buildly-car-slide { flex: 0 0 100%; box-sizing: border-box; padding: 0 .25rem; }
.buildly-car-slide img { display: block; width: 100%; height: auto; }
.buildly-car-prev, .buildly-car-next { position: absolute; top: 50%; transform: translateY(-50%); border: 0; background: rgba(0,0,0,.5); color: #fff; width: 38px; height: 38px; border-radius: 50%; cursor: pointer; font-size: 1.4rem; line-height: 1; }
.buildly-car-prev { left: .5rem; } .buildly-car-next { right: .5rem; }
.buildly-car-dots { display: flex; justify-content: center; gap: .4rem; margin-top: .6rem; }
.buildly-car-dots button { width: 10px; height: 10px; border-radius: 50%; border: 0; background: rgba(0,0,0,.25); cursor: pointer; padding: 0; }
.buildly-car-dots button.is-on { background: rgba(0,0,0,.7); }

/* Loop grid (cards) */
.buildly-loop { display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: 1rem; }
@media (max-width: 767px) { .buildly-loop { grid-template-columns: 1fr; } }
.buildly-loop-card { display: block; padding: 1.25rem; border: 1px solid rgba(0,0,0,.12); border-radius: 8px; text-decoration: none; color: inherit; transition: box-shadow .15s, transform .15s; }
.buildly-loop-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.1); transform: translateY(-2px); color: inherit; }
.buildly-loop-card { padding: 0; overflow: hidden; }
.buildly-loop-img img { display: block; width: 100%; height: auto; }
.buildly-loop-card > h3, .buildly-loop-card > p, .buildly-loop-card > .buildly-loop-more { margin-left: 1.25rem; margin-right: 1.25rem; }
.buildly-loop-card > h3:first-child { margin-top: 1.25rem; }
.buildly-loop-card > .buildly-loop-more { display: inline-block; margin-bottom: 1.25rem; }
.buildly-loop-title { margin: 1.25rem 0 .4rem; }
.buildly-loop-teaser { margin: 0 0 .5rem; opacity: .8; }
.buildly-loop-more { font-weight: 600; }

/* Images never overflow / explode at natural size (Elementor-like default). */
.image_container img, figure.image_container img, .ce_image img { max-width: 100%; height: auto; }

/* Navigation — shared */
.buildly-nav { font: inherit; }
.buildly-nav-list { list-style: none; margin: 0; padding: 0; }
.buildly-nav a { text-decoration: none; color: inherit; display: block; padding: .5rem .75rem; }
.buildly-nav-item { position: relative; }
.buildly-nav-toggle { display: none; background: none; border: 0; font-size: 1.6rem; line-height: 1; cursor: pointer; color: inherit; padding: .25rem .5rem; }

/* Horizontal (default header bar) */
.buildly-nav--horizontal > .buildly-nav-list { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; }
.buildly-nav--horizontal .buildly-nav-item .buildly-nav-list {
    position: absolute; left: 0; top: 100%; min-width: 200px;
    background: #fff; color: #1b1f24; box-shadow: 0 10px 30px rgba(0,0,0,.15);
    display: none; flex-direction: column; padding: .35rem 0; z-index: 1000; border-radius: 6px;
}
.buildly-nav--horizontal .buildly-nav-item:hover > .buildly-nav-list { display: flex; }

/* Vertical / side navigation */
.buildly-nav--vertical > .buildly-nav-list { display: flex; flex-direction: column; gap: .15rem; }
.buildly-nav--vertical .buildly-nav-list .buildly-nav-list { padding-left: 1rem; }
.buildly-nav--vertical .buildly-nav-item > a { border-radius: 6px; }
.buildly-nav--vertical .buildly-nav-item > a:hover { background: rgba(0,0,0,.06); }

/* Hamburger: button always visible, panel toggles open */
.buildly-nav--hamburger { position: relative; }
.buildly-nav--hamburger .buildly-nav-toggle { display: inline-block; }
.buildly-nav--hamburger > .buildly-nav-list {
    display: none; flex-direction: column; gap: .15rem;
    position: absolute; top: 100%; left: 0; right: 0; z-index: 1000;
    background: #fff; color: #1b1f24; box-shadow: 0 10px 30px rgba(0,0,0,.15);
    padding: .5rem; border-radius: 6px; min-width: 220px;
}
.buildly-nav--hamburger.is-open > .buildly-nav-list { display: flex; }
.buildly-nav--hamburger .buildly-nav-list .buildly-nav-list { position: static; box-shadow: none; padding-left: .75rem; background: transparent; }

/* Inline-SVG icons (Tier 1). Sized to font-size; colour = currentColor. */
.buildly-svg { width: 1em; height: 1em; display: inline-block; vertical-align: middle; }
.buildly-icon { display: inline-flex; line-height: 0; font-size: 48px; color: inherit; }
.buildly-icon > a { display: inline-flex; color: inherit; }
.buildly-btn-ico { display: inline-flex; vertical-align: middle; }
.buildly-btn-ico .buildly-svg { width: 1em; height: 1em; }
.buildly-btn--ico-before .buildly-btn-ico { margin-right: .5em; }
.buildly-btn--ico-after .buildly-btn-ico { margin-left: .5em; }
.buildly-btn--ico-after { } /* icon order handled in markup */
.buildly-box-icon { display: inline-flex; line-height: 0; font-size: 56px; color: inherit; }
.buildly-box-icon .buildly-svg { width: 1em; height: 1em; }
/* Divider with centred text / alignment */
.buildly-divider-wrap { display: flex; align-items: center; gap: .75rem; }
.buildly-divider-wrap .buildly-divider-line { flex: 1; border-top: 1px solid currentColor; }
.buildly-divider-text { white-space: nowrap; }

/* Carousel fade mode (cross-fade instead of slide). */
.buildly-car--fade .buildly-car-track { display: block; position: relative; }
.buildly-car--fade .buildly-car-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .5s ease; flex: none !important; max-width: 100% !important; }
.buildly-car--fade .buildly-car-slide.is-shown { position: relative; opacity: 1; }

/* ── Tier 2: Alert / Blockquote / Counter / Progress ── */
.buildly-alert { display: flex; gap: .75rem; align-items: flex-start; padding: 1rem 1.25rem; border-radius: 8px; border: 1px solid; }
.buildly-alert--info { background: #e7f1ff; border-color: #9ec5fe; color: #084298; }
.buildly-alert--success { background: #d1e7dd; border-color: #a3cfbb; color: #0a3622; }
.buildly-alert--warning { background: #fff3cd; border-color: #ffe69c; color: #664d03; }
.buildly-alert--error { background: #f8d7da; border-color: #f1aeb5; color: #58151c; }
.buildly-alert-body { flex: 1; }
.buildly-alert-title { font-weight: 700; margin: 0 0 .25rem; }
.buildly-alert-text { margin: 0; }
.buildly-alert-close { background: none; border: 0; color: inherit; font-size: 1.4rem; line-height: 1; cursor: pointer; padding: 0 .2rem; opacity: .7; }
.buildly-alert-close:hover { opacity: 1; }

.buildly-quote { margin: 0; padding: .5rem 0 .5rem 1.25rem; border-left: 4px solid currentColor; }
.buildly-quote-text { margin: 0; font-size: 1.25rem; font-style: italic; }
.buildly-quote-author { margin: .6rem 0 0; font-size: .9rem; opacity: .75; }
.buildly-quote-author::before { content: "— "; }

.buildly-counter { display: inline-flex; align-items: baseline; gap: .05em; font-size: 2.75rem; font-weight: 700; line-height: 1.1; }

.buildly-progress-label { display: flex; justify-content: space-between; margin-bottom: .35rem; font-size: .9rem; }
.buildly-progress-track { background: rgba(0,0,0,.1); border-radius: 999px; overflow: hidden; height: 10px; }
.buildly-progress-bar { width: 0; height: 100%; background: #0a66ff; border-radius: 999px; transition: width 1.2s ease; }

/* ── Tier 2 (Batch 2): Icon-List / CTA / Social / Flip-Box ── */
.buildly-ilist { list-style: none; margin: 0; padding: 0; }
.buildly-ilist-item { display: flex; align-items: flex-start; gap: .6rem; margin: 0 0 .5rem; }
.buildly-ilist-ico { display: inline-flex; line-height: 0; font-size: 1.2em; color: inherit; flex: 0 0 auto; margin-top: .1em; }
.buildly-ilist-ico .buildly-svg { width: 1em; height: 1em; }

.buildly-cta { padding: 2rem; border-radius: 10px; background: rgba(0,0,0,.04); text-align: center; }
.buildly-cta-title { margin: 0 0 .5rem; }
.buildly-cta-text { margin: 0 0 1.25rem; }

.buildly-social { display: flex; flex-wrap: wrap; gap: .6rem; }
.buildly-social-link { display: inline-flex; align-items: center; justify-content: center; width: 2.6em; height: 2.6em; border-radius: 50%; background: rgba(0,0,0,.08); color: inherit; text-decoration: none !important; transition: background .15s, transform .15s; }
.buildly-social-link:hover, .buildly-social-link:focus { background: rgba(0,0,0,.16); transform: translateY(-2px); text-decoration: none !important; }
.buildly-social-link .buildly-svg { width: 1.2em; height: 1.2em; }
/* Icon links never inherit the theme's link underline. */
.buildly-icon a, .buildly-icon a:hover { text-decoration: none !important; }

.buildly-flip { perspective: 1200px; }
.buildly-flip-inner { position: relative; width: 100%; height: var(--flip-h, 300px); transition: transform .6s; transform-style: preserve-3d; }
.buildly-flip:hover .buildly-flip-inner, .buildly-flip:focus-within .buildly-flip-inner { transform: rotateY(180deg); }
.buildly-flip-face { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; padding: 1.5rem; border-radius: 10px; backface-visibility: hidden; -webkit-backface-visibility: hidden; text-align: center; }
.buildly-flip-front { background: #0a66ff; color: #fff; }
.buildly-flip-back { background: #1b2330; color: #fff; transform: rotateY(180deg); }
.buildly-flip-ico { display: inline-flex; line-height: 0; font-size: 2.5rem; }
.buildly-flip-ico .buildly-svg { width: 1em; height: 1em; }
.buildly-flip-title { margin: 0; }
.buildly-flip-text { margin: 0; }

/* ── Tier 4: Logo / Page-Title / Breadcrumb / Sitemap ── */
.buildly-logo { display: inline-flex; line-height: 0; }
.buildly-logo a { display: inline-flex; }
.buildly-logo-img { display: block; max-width: 100%; height: auto; }
.buildly-pagetitle { margin: 0; }

.buildly-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.buildly-breadcrumb a { text-decoration: none; color: inherit; opacity: .8; }
.buildly-breadcrumb a:hover { opacity: 1; text-decoration: underline; }
.buildly-bc-sep { opacity: .5; }
.buildly-bc-active { font-weight: 600; }

.buildly-sitemap ul { list-style: none; margin: 0; padding: 0; }
.buildly-sitemap .buildly-sitemap-list .buildly-sitemap-list { padding-left: 1.1rem; }
.buildly-sitemap-item > a { text-decoration: none; color: inherit; display: inline-block; padding: .2rem 0; }
.buildly-sitemap-item > a:hover { text-decoration: underline; }

/* ── Tier 4: Reader-Field ── */
.buildly-rf-title { margin: 0; }
.buildly-rf-teaser { margin: 0; }
.buildly-rf-img { display: block; max-width: 100%; height: auto; }
.buildly-rf-date, .buildly-rf-author { display: inline-block; }
.buildly-rf-ph { opacity: .5; font-style: italic; }

/* ── Tier 5: Countdown / Map / Share / TOC ── */
.buildly-countdown { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.buildly-cd-unit { display: flex; flex-direction: column; align-items: center; min-width: 3.5rem; }
.buildly-cd-num { font-size: 2.25rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.buildly-cd-lbl { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; opacity: .7; margin-top: .25rem; }
.buildly-cd-expired { font-size: 1.5rem; font-weight: 700; }

.buildly-map { position: relative; }
.buildly-map-frame { width: 100%; height: var(--map-h, 400px); border: 0; display: block; border-radius: 8px; }
.buildly-map-consent { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; height: var(--map-h, 400px); background: rgba(0,0,0,.05); border: 1px dashed rgba(0,0,0,.2); border-radius: 8px; padding: 1.5rem; text-align: center; }
.buildly-map-load { background: #0a66ff; color: #fff; border: 0; border-radius: 6px; padding: .6rem 1.4rem; cursor: pointer; font-weight: 600; }

.buildly-share { display: flex; flex-wrap: wrap; gap: .6rem; }
.buildly-share-link { display: inline-flex; align-items: center; justify-content: center; width: 2.6em; height: 2.6em; border-radius: 50%; background: rgba(0,0,0,.08); color: inherit; text-decoration: none; border: 0; cursor: pointer; transition: background .15s, transform .15s; }
.buildly-share-link:hover { background: rgba(0,0,0,.16); transform: translateY(-2px); }
.buildly-share-link .buildly-svg { width: 1.2em; height: 1.2em; }
.buildly-share-copy.is-copied { background: #16a34a; color: #fff; }

.buildly-toc { background: rgba(0,0,0,.03); border-left: 3px solid currentColor; padding: 1rem 1.25rem; border-radius: 6px; }
.buildly-toc-title { font-weight: 700; margin: 0 0 .5rem; }
.buildly-toc-list { list-style: none; margin: 0; padding: 0; }
.buildly-toc-i { margin: .2rem 0; }
.buildly-toc-h3 { padding-left: 1rem; }
.buildly-toc-h4 { padding-left: 2rem; }
.buildly-toc a { color: inherit; text-decoration: none; }
.buildly-toc a:hover { text-decoration: underline; }

/* ── Tier 5 (Batch 2): Price-Table / Price-List / Steps / Search ── */
.buildly-pricetable { border: 1px solid rgba(0,0,0,.12); border-radius: 10px; padding: 1.75rem; text-align: center; background: #fff; }
.buildly-pricetable--featured { border-color: #0a66ff; box-shadow: 0 10px 30px rgba(10,102,255,.15); transform: translateY(-4px); }
.buildly-prt-title { margin: 0 0 .75rem; }
.buildly-prt-price { display: flex; align-items: baseline; justify-content: center; gap: .25rem; margin-bottom: 1.25rem; }
.buildly-prt-amount { font-size: 2.5rem; font-weight: 800; line-height: 1; }
.buildly-prt-period { opacity: .65; }
.buildly-prt-features { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.buildly-prt-feature { padding: .5rem 0; border-bottom: 1px solid rgba(0,0,0,.07); }
.buildly-prt-btn { width: 100%; box-sizing: border-box; text-align: center; }

.buildly-pricelist { list-style: none; margin: 0; padding: 0; }
.buildly-prl-row { display: flex; align-items: baseline; gap: .5rem; padding: .45rem 0; }
.buildly-prl-name { flex: 0 0 auto; font-weight: 600; }
.buildly-prl-dots { flex: 1; border-bottom: 2px dotted rgba(0,0,0,.25); transform: translateY(-.2em); }
.buildly-prl-price { flex: 0 0 auto; font-weight: 700; }

.buildly-steps { list-style: none; margin: 0; padding: 0; }
.buildly-step { display: flex; gap: 1rem; padding-bottom: 1.25rem; position: relative; }
.buildly-step:not(:last-child)::before { content: ""; position: absolute; left: 1rem; top: 2.25rem; bottom: 0; width: 2px; background: rgba(0,0,0,.12); }
.buildly-step-num { flex: 0 0 auto; width: 2rem; height: 2rem; border-radius: 50%; background: #0a66ff; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; position: relative; z-index: 1; }
.buildly-step-title { margin: .2rem 0 .25rem; }
.buildly-step-text { margin: 0; }

.buildly-search { display: flex; gap: .5rem; max-width: 100%; }
.buildly-search-input { flex: 1; padding: .6rem .9rem; border: 1px solid rgba(0,0,0,.2); border-radius: 6px; font: inherit; }
.buildly-search-btn { background: #0a66ff; color: #fff; border: 0; border-radius: 6px; padding: .6rem 1.2rem; cursor: pointer; font-weight: 600; }

/* ── Tier 5 (Batch 3): Animated headline / Hotspot / Code ── */
.buildly-anim-words { color: #0a66ff; }
.buildly-anim-words.is-anim { display: inline-block; }
.buildly-anim[data-effect="type"] .buildly-anim-words::after { content: "|"; opacity: .6; animation: buildly-caret 1s steps(1) infinite; }
@keyframes buildly-caret { 50% { opacity: 0; } }

.buildly-hotspot { position: relative; display: inline-block; max-width: 100%; }
.buildly-hs-img { display: block; max-width: 100%; height: auto; }
.buildly-hs-point { position: absolute; transform: translate(-50%, -50%); border: 0; background: none; padding: 0; cursor: pointer; }
.buildly-hs-dot { display: flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: #0a66ff; color: #fff; font-size: .8rem; font-weight: 700; box-shadow: 0 0 0 rgba(10,102,255,.5); animation: buildly-pulse 2s infinite; }
@keyframes buildly-pulse { 0% { box-shadow: 0 0 0 0 rgba(10,102,255,.5); } 70% { box-shadow: 0 0 0 12px rgba(10,102,255,0); } 100% { box-shadow: 0 0 0 0 rgba(10,102,255,0); } }
.buildly-hs-tip { position: absolute; bottom: 130%; left: 50%; transform: translateX(-50%); background: #1b2330; color: #fff; padding: .4rem .7rem; border-radius: 6px; font-size: .85rem; white-space: nowrap; max-width: 240px; opacity: 0; pointer-events: none; transition: opacity .15s; }
.buildly-hs-point:hover .buildly-hs-tip, .buildly-hs-point:focus .buildly-hs-tip { opacity: 1; }

.buildly-code { border-radius: 8px; overflow: hidden; background: #1b2330; }
.buildly-code-bar { display: flex; justify-content: space-between; align-items: center; padding: .4rem .8rem; background: rgba(255,255,255,.06); color: #cbd5e1; font-size: .8rem; }
.buildly-code-lang { text-transform: uppercase; letter-spacing: .05em; }
.buildly-code-copy { background: rgba(255,255,255,.1); border: 0; color: #fff; border-radius: 4px; padding: .2rem .6rem; cursor: pointer; font-size: .8rem; }
.buildly-code-copy.is-copied { background: #16a34a; }
.buildly-code-pre { margin: 0; padding: 1rem; overflow-x: auto; color: #e2e8f0; }
.buildly-code-pre code { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: .9rem; line-height: 1.5; white-space: pre; }

/* ── Tier 5 (Batch 4): Video playlist ── */
.buildly-vplaylist { display: grid; grid-template-columns: 2fr 1fr; gap: 1rem; align-items: start; }
@media (max-width: 767px) { .buildly-vplaylist { grid-template-columns: 1fr; } }
.buildly-vp-stage { position: relative; width: 100%; padding-top: var(--vp-ratio, 56.25%); background: #000; border-radius: 8px; overflow: hidden; }
.buildly-vp-frame, .buildly-vp-stage > video, .buildly-vp-stage > iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.buildly-vp-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.35); color: #fff; border: 0; cursor: pointer; font-size: 3rem; }
.buildly-vp-play:hover { background: rgba(0,0,0,.5); }
.buildly-vp-list { list-style: none; margin: 0; padding: 0; max-height: 360px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; }
.buildly-vp-item { display: flex; align-items: center; gap: .6rem; width: 100%; text-align: left; background: rgba(0,0,0,.04); border: 0; border-radius: 6px; padding: .6rem .8rem; cursor: pointer; color: inherit; }
.buildly-vp-item:hover { background: rgba(0,0,0,.09); }
.buildly-vp-item.is-active { background: #0a66ff; color: #fff; }
.buildly-vp-ico { flex: 0 0 auto; opacity: .8; }
.buildly-vp-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Font Awesome icons (optional source) — size via parent font-size, like inline SVG. */
.buildly-fa { display: inline-block; line-height: 1; }
.buildly-icon .buildly-fa, .buildly-box-icon .buildly-fa, .buildly-flip-ico .buildly-fa { font-size: 1em; }

/* ── Buildly gallery ── */
.buildly-gallery--grid { display: grid; grid-template-columns: repeat(var(--ga-cols, 3), 1fr); gap: var(--ga-gap, 8px); }
.buildly-gallery--tiles { display: grid; grid-template-columns: repeat(var(--ga-cols, 3), 1fr); gap: var(--ga-gap, 8px); }
.buildly-gallery--masonry { column-count: var(--ga-cols, 3); column-gap: var(--ga-gap, 8px); }
@media (max-width: 767px) { .buildly-gallery--grid, .buildly-gallery--tiles { grid-template-columns: repeat(2, 1fr); } .buildly-gallery--masonry { column-count: 2; } }
.buildly-ga-item { display: block; position: relative; overflow: hidden; border-radius: 6px; text-decoration: none !important; }
.buildly-gallery--masonry .buildly-ga-item { break-inside: avoid; margin-bottom: var(--ga-gap, 8px); }
.buildly-ga-img { display: block; width: 100%; height: auto; }
.buildly-gallery--grid .buildly-ga-img { aspect-ratio: auto; }
/* Tiles: equal-size cells via padded frame + absolute cover. */
.buildly-ga-frame { display: block; position: relative; width: 100%; padding-top: var(--ga-ratio, 100%); }
.buildly-ga-frame .buildly-ga-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Hover effects */
.buildly-ga-img { transition: transform .35s ease, filter .35s ease; }
.buildly-gallery--hover-zoom .buildly-ga-item:hover .buildly-ga-img { transform: scale(1.08); }
.buildly-gallery--hover-grayscale .buildly-ga-img { filter: grayscale(1); }
.buildly-gallery--hover-grayscale .buildly-ga-item:hover .buildly-ga-img { filter: grayscale(0); }
.buildly-ga-ov { position: absolute; inset: 0; background: rgba(0,0,0,0); transition: background .3s; }
.buildly-gallery--hover-overlay .buildly-ga-item:hover .buildly-ga-ov { background: rgba(0,0,0,.35); }
/* Lightbox overlay */
.buildly-lb { position: fixed; inset: 0; z-index: 10050; background: rgba(0,0,0,.9); display: flex; align-items: center; justify-content: center; }
.buildly-lb img { max-width: 92vw; max-height: 88vh; border-radius: 4px; }
.buildly-lb-close, .buildly-lb-prev, .buildly-lb-next { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; font-size: 1.6rem; line-height: 1; }
.buildly-lb-close { top: 1rem; right: 1rem; }
.buildly-lb-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.buildly-lb-next { right: 1rem; top: 50%; transform: translateY(-50%); }
