/* ============================================================
   Flatsome shortcode compatibility — styling for shim output
   (inc/flatsome-shim.php renders these classes)
   ============================================================ */
.fl-section { padding-block: clamp(28px, 4vw, 56px); }
.fl-section > .fl-section__inner { width:100%; max-width: var(--container); margin-inline:auto; padding-inline: var(--gutter); }
.fl-section--dark { background: var(--c-dark); color:#cdd6ea; }
.fl-section--dark h1,.fl-section--dark h2,.fl-section--dark h3 { color:#fff; }

.fl-row { display:grid; gap: clamp(16px,2.4vw,32px); grid-template-columns: repeat(12, 1fr); align-items:center; }
.fl-col { grid-column: span 12; min-width:0; }
@media(min-width:782px){
  .fl-col[data-span="1"]{grid-column:span 1}.fl-col[data-span="2"]{grid-column:span 2}.fl-col[data-span="3"]{grid-column:span 3}
  .fl-col[data-span="4"]{grid-column:span 4}.fl-col[data-span="5"]{grid-column:span 5}.fl-col[data-span="6"]{grid-column:span 6}
  .fl-col[data-span="7"]{grid-column:span 7}.fl-col[data-span="8"]{grid-column:span 8}.fl-col[data-span="9"]{grid-column:span 9}
  .fl-col[data-span="10"]{grid-column:span 10}.fl-col[data-span="11"]{grid-column:span 11}.fl-col[data-span="12"]{grid-column:span 12}
}
.fl-col--center { text-align:center; }

.fl-title { margin: 0 0 1rem; }
.fl-title--center { text-align:center; }
.fl-title h1,.fl-title h2,.fl-title h3 { text-transform:uppercase; letter-spacing:-.01em; }
.fl-title__line { display:block; width:54px; height:4px; border-radius:2px; background: var(--c-volt); margin:.7rem 0; }
.fl-title--center .fl-title__line { margin-inline:auto; }

.fl-gap { display:block; }
.fl-divider { border:0; border-top:1px solid var(--c-line); margin: 1.5rem 0; }
.fl-button { /* uses .btn */ }
.fl-image img { border-radius: var(--r-sm); }
.fl-image--center { text-align:center; }
.fl-banner { position:relative; border-radius: var(--r); overflow:hidden; min-height: 280px; display:flex; align-items:center; padding: clamp(20px,4vw,48px); color:#fff; }
.fl-banner img.fl-banner__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.fl-banner__content { position:relative; z-index:2; }
.fl-banner::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,16,32,.6), rgba(10,16,32,.15)); z-index:1; }

.fl-imagebox { text-align:center; }
.fl-imagebox__media { margin:0 0 12px; }
.fl-imagebox__media img { border-radius: var(--r-sm); display:inline-block; }
.fl-imagebox__body h1,.fl-imagebox__body h2,.fl-imagebox__body h3,.fl-imagebox__body h4 { margin-bottom:.3rem; }

/* Compact page-header sections (leading [section label="TITLE"] with an h1).
   !important beats the builder's inline padding-block from padding="40px". */
.fl-section--pagehead { padding-block: clamp(18px, 2.5vw, 34px) !important; }
.fl-section--pagehead .fl-title { margin-bottom: 0; }
.fl-section--pagehead .fl-title__line { margin-block: .5rem 0; }
/* The section that follows a page header shouldn't re-add a full section gap */
.fl-section--pagehead + .fl-section { padding-block-start: clamp(8px, 1.5vw, 16px); }
/* Headings inside a [title] block: the block owns the spacing, not the heading */
.fl-title :is(h1,h2,h3,h4) { margin-block: 0; }
