.ft-page-builder-public{
  display:grid!important;
  grid-template-columns:repeat(24,minmax(0,1fr))!important;
  grid-auto-rows:auto!important;
  gap:14px 10px;
  align-items:start;
  width:100%;
  min-width:0;
  margin:10px 0 24px;
}
.ft-builder-public-item{
  position:relative!important;
  left:auto!important;
  top:auto!important;
  width:auto!important;
  height:auto!important;
  min-width:0;
  min-height:0;
  margin:0!important;
  padding:0;
  box-sizing:border-box!important;
  align-self:start;
  justify-self:stretch;
}
.ft-builder-public-item>.block{
  height:auto!important;
  min-height:inherit;
  box-sizing:border-box;
  margin:0!important;
  overflow:visible!important;
}
.ft-builder-card{box-sizing:border-box}
.ft-builder-media{display:flex;flex-direction:column}
.ft-builder-media img{width:100%;max-height:520px;object-fit:contain;border-radius:12px}
.ft-builder-file>a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-decoration:none;text-align:center}
.ft-builder-file-icon{font-size:3rem}
.ft-builder-link-card{display:flex;flex-direction:column;justify-content:center}
.ft-builder-link-card>a{font-size:1.1rem;font-weight:800}
.ft-builder-pagefield>.block{margin:8px 0!important}
.ft-builder-pagefield{overflow:visible!important}

/* Administrator canvas remains free-positioned. */
.ft-builder-admin{overflow:auto}
.ft-builder-canvas{
  display:block;
  position:relative;
  width:100%;
  min-width:850px;
  min-height:calc(var(--ft-rows,50)*14px);
  background-image:linear-gradient(to right,rgba(15,58,44,.07) 1px,transparent 1px),linear-gradient(to bottom,rgba(15,58,44,.07) 1px,transparent 1px);
  background-size:calc(100%/24) 14px;
  border:1px solid #cbdad2;
  border-radius:14px;
  margin:14px 0 16px;
}
.ft-builder-item{
  position:absolute;
  min-width:0;
  min-height:0;
  border:2px solid #2f6b54;
  border-radius:12px;
  background:#fff;
  box-shadow:0 3px 12px rgba(0,0,0,.08);
  overflow:hidden;
  padding:0;
  touch-action:none;
}
.ft-builder-handle{
  height:28px;background:#0f3a2c;color:#fff;font-weight:700;padding:4px 9px;cursor:move;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;-webkit-user-select:none;touch-action:none
}
.ft-builder-preview{height:calc(100% - 28px);overflow:auto;padding:6px}
.ft-builder-preview>.block{height:auto;box-sizing:border-box;margin:0}
.ft-builder-resize{
  position:absolute;right:0;bottom:0;width:24px;height:24px;cursor:nwse-resize;
  background:linear-gradient(135deg,transparent 0 45%,#b68a2e 46% 58%,transparent 59% 66%,#b68a2e 67% 79%,transparent 80%);
  touch-action:none;z-index:20
}
.ft-builder-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.ft-builder-tools form,.ft-builder-edit-row form{background:#f7faf8;border:1px solid #d9e5de;border-radius:12px;padding:12px}
.ft-builder-edit-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;border-top:1px solid #e3ebe6;padding:12px 0}
.ft-builder-empty{grid-column:1/-1;padding:20px}
.ft-admin-page-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #e6ece8}
.ft-admin-page-row form{margin:0!important;padding:0!important;border:0!important;background:transparent!important}
.ft-admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}
.ft-admin-actions form{margin:0!important;padding:0!important;border:0!important;background:transparent!important}
.ft-builder-item.ft-builder-active{outline:3px solid rgba(182,138,46,.55);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.ft-builder-canvas.ft-builder-dragging{cursor:grabbing}
.ft-builder-canvas.ft-builder-resizing{cursor:nwse-resize}

/* Only real touch/mobile devices stack the public fields. Desktop remains grid,
   even when browser zoom or Windows display scaling makes CSS pixels narrow. */
@media (max-width:700px) and (pointer:coarse){
  .ft-page-builder-public{display:block!important}
  .ft-builder-public-item{
    grid-column:auto!important;grid-row:auto!important;
    display:block!important;margin:0 0 14px!important;
    min-height:0!important;
  }
  .ft-builder-public-item>.block{min-height:120px}
  .ft-builder-edit-row{grid-template-columns:1fr}
  .ft-builder-admin{overflow-x:auto}
}


/* V9.3K: public page builder uses server-grouped flex rows.
   This avoids browser/grid interactions that compressed fields into thin columns. */
.ft-page-builder-public{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin:10px 0 24px!important;
}
.ft-builder-public-row{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  width:100%!important;
  min-width:0!important;
  margin:0 0 14px!important;
}
.ft-builder-public-item{
  position:relative!important;
  left:auto!important;
  top:auto!important;
  height:auto!important;
  min-width:0!important;
  box-sizing:border-box!important;
  padding:0!important;
  margin-top:0!important;
  margin-bottom:0!important;
  align-self:stretch!important;
}
.ft-builder-public-item>.block{
  width:100%!important;
  height:100%!important;
  min-height:inherit!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}

@media (max-width:700px) and (pointer:coarse){
  .ft-builder-public-row{
    display:block!important;
    margin:0!important;
  }
  .ft-builder-public-item{
    margin-left:0!important;
    max-width:none!important;
    width:100%!important;
    flex:none!important;
    min-height:0!important;
    margin-bottom:14px!important;
  }
  .ft-builder-public-item>.block{
    height:auto!important;
    min-height:120px!important;
  }
}


/* V9.3L: final public field sizing.
   The saved 24-column widths are authoritative on every builder page. */
.ft-page-builder-public,
.ft-page-builder-public *{
  box-sizing:border-box;
}
.ft-builder-public-row{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.ft-builder-public-row>.ft-builder-public-item{
  position:relative!important;
  display:block!important;
  box-sizing:border-box!important;
  flex-grow:0!important;
  flex-shrink:0!important;
  overflow:visible!important;
}
.ft-builder-public-row>.ft-builder-public-item>.block{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  overflow:visible!important;
}
.ft-builder-public-row>.ft-builder-public-item input,
.ft-builder-public-row>.ft-builder-public-item textarea,
.ft-builder-public-row>.ft-builder-public-item select,
.ft-builder-public-row>.ft-builder-public-item table,
.ft-builder-public-row>.ft-builder-public-item img{
  max-width:100%!important;
}

@media (max-width:700px) and (pointer:coarse){
  .ft-builder-public-row{
    display:block!important;
  }
  .ft-builder-public-row>.ft-builder-public-item{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-left:0!important;
    flex:none!important;
    min-height:0!important;
    margin-bottom:14px!important;
  }
}


/* V9.3M: final responsive public field layout.
   Every builder page uses the editor's 24-column geometry directly.
   Grid tracks always fit inside the visible content width. */
.ft-page-builder-public{
  display:grid!important;
  grid-template-columns:repeat(24,minmax(0,1fr))!important;
  grid-auto-rows:auto!important;
  column-gap:clamp(4px,.55vw,10px)!important;
  row-gap:14px!important;
  align-items:start!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:visible!important;
  margin:10px 0 24px!important;
}
.ft-page-builder-public>.ft-builder-public-item{
  position:relative!important;
  display:block!important;
  left:auto!important;
  top:auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  align-self:stretch!important;
  justify-self:stretch!important;
  flex:none!important;
}
.ft-page-builder-public>.ft-builder-public-item>.block{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  min-height:inherit!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.ft-page-builder-public>.ft-builder-public-item *,
.ft-page-builder-public>.ft-builder-public-item input,
.ft-page-builder-public>.ft-builder-public-item textarea,
.ft-page-builder-public>.ft-builder-public-item select,
.ft-page-builder-public>.ft-builder-public-item table,
.ft-page-builder-public>.ft-builder-public-item img{
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ft-page-builder-public>.ft-builder-public-item{
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Real touch/mobile screens stack fields; desktop zoom never changes the geometry. */
@media (max-width:700px) and (pointer:coarse){
  .ft-page-builder-public{
    display:block!important;
    width:100%!important;
  }
  .ft-page-builder-public>.ft-builder-public-item{
    display:block!important;
    grid-column:auto!important;
    grid-row:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:0!important;
    margin:0 0 14px!important;
  }
  .ft-page-builder-public>.ft-builder-public-item>.block{
    min-height:120px!important;
  }
}


/* V9.3N: page-defined responsive columns.
   This is based on the width of <main>, so the sidebar never counts as available space. */
.layout>main{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
}
.ft-page-builder-public{
  display:grid!important;
  grid-template-columns:repeat(var(--ft-page-cols,1),minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  grid-auto-rows:auto!important;
  gap:clamp(10px,1vw,18px)!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:10px 0 24px!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.ft-page-builder-public>.ft-builder-public-item{
  grid-column:auto!important;
  grid-row:auto!important;
  position:relative!important;
  display:block!important;
  left:auto!important;
  top:auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.ft-page-builder-public>.ft-builder-public-item>.block{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.ft-page-builder-public>.ft-builder-public-item *{
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ft-builder-columns-form{
  display:grid;
  grid-template-columns:minmax(220px,360px) auto;
  gap:10px 14px;
  align-items:end;
  margin:12px 0 18px;
  padding:12px;
  border:1px solid #d9e5de;
  border-radius:12px;
  background:#f7faf8;
}
.ft-builder-columns-form p{grid-column:1/-1;margin:0}
.ft-builder-columns-form label{margin:0}
.ft-builder-columns-form select{width:100%}

@media (max-width:700px) and (pointer:coarse){
  .ft-page-builder-public{
    grid-template-columns:1fr!important;
  }
  .ft-builder-columns-form{
    grid-template-columns:1fr;
  }
}


/* V9.3P: chosen column count is also written inline by PHP.
   This rule only supplies layout behavior around the explicit columns. */
.ft-page-builder-public[data-columns]{
  display:grid!important;
  grid-auto-flow:row!important;
  grid-auto-rows:auto!important;
  align-items:start!important;
  justify-items:stretch!important;
  gap:clamp(10px,1vw,18px)!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:visible!important;
}
.ft-page-builder-public[data-columns]>.ft-builder-public-item{
  display:block!important;
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
}
@media (max-width:700px) and (pointer:coarse){
  .ft-page-builder-public[data-columns]{
    grid-template-columns:1fr!important;
  }
}


/* V9.3Q — clean responsive column renderer.
   Width is always based on the actual <main> content area, after the sidebar. */
.ft-public-columns-v93q{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  margin:10px 0 24px!important;
}
.ft-public-row-v93q{
  box-sizing:border-box!important;
  margin:0 0 16px!important;
}
.ft-public-cell-v93q{
  box-sizing:border-box!important;
  overflow:visible!important;
}
.ft-public-cell-v93q>.block{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.ft-public-cell-v93q *,
.ft-public-cell-v93q input,
.ft-public-cell-v93q textarea,
.ft-public-cell-v93q select,
.ft-public-cell-v93q table,
.ft-public-cell-v93q img{
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}

/* Stack only on genuine narrow touch devices. */
@media (max-width:700px) and (pointer:coarse){
  .ft-public-row-v93q{
    display:block!important;
    width:100%!important;
  }
  .ft-public-cell-v93q{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:0!important;
    margin:0 0 16px!important;
    flex:none!important;
  }
}


/* V9.3R — table-based responsive columns.
   This avoids all previous flex/grid conflicts. The table lives inside <main>,
   so its 100% width is already the available width after the left menu. */
.ft-layout-table-v93r{
  display:table!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:12px 0!important;
  box-sizing:border-box!important;
  margin:10px 0 24px!important;
}
.ft-layout-table-v93r .ft-layout-row-v93r{
  display:table-row!important;
}
.ft-layout-table-v93r .ft-layout-cell-v93r{
  display:table-cell!important;
  vertical-align:top!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.ft-layout-table-v93r .ft-layout-cell-v93r>.block{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.ft-layout-table-v93r .ft-layout-cell-v93r *,
.ft-layout-table-v93r .ft-layout-cell-v93r input,
.ft-layout-table-v93r .ft-layout-cell-v93r textarea,
.ft-layout-table-v93r .ft-layout-cell-v93r select,
.ft-layout-table-v93r .ft-layout-cell-v93r img,
.ft-layout-table-v93r .ft-layout-cell-v93r table{
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ft-layout-spacer-v93r td{
  height:14px!important;
  padding:0!important;
  border:0!important;
}
.ft-layout-empty-v93r{
  padding:0!important;
  border:0!important;
  background:transparent!important;
}

/* Genuine narrow touch screens stack cells vertically. */
@media (max-width:700px) and (pointer:coarse){
  .ft-layout-table-v93r,
  .ft-layout-table-v93r tbody,
  .ft-layout-table-v93r tr,
  .ft-layout-table-v93r td{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
  }
  .ft-layout-table-v93r{
    border-spacing:0!important;
  }
  .ft-layout-table-v93r .ft-layout-cell-v93r{
    margin:0 0 14px!important;
  }
  .ft-layout-table-v93r .ft-layout-empty-v93r,
  .ft-layout-table-v93r .ft-layout-spacer-v93r{
    display:none!important;
  }
}
