
.fr-search{ position:relative; max-width:100%; font-family:'inter',"inter Fallback",system-ui,sans-serif; }
.fr-search *{ box-sizing:border-box; }

/* Every child declares min-width:0 so the row can compress instead of pushing the
   button out past the container's overflow:hidden edge. */
.fr-search__bar{ display:flex; flex-wrap:nowrap; align-items:stretch; width:100%;
  background:#fff; border-radius:6px; overflow:hidden; box-shadow:0 2px 6px rgba(12,20,37,.08); }
.fr-search--full .fr-search__bar{ box-shadow:0 18px 38px rgba(12,20,37,.16); }

.fr-search__field{ position:relative; flex:1 1 auto; min-width:0; display:flex; align-items:center; }
.fr-search__ico{ position:absolute; left:14px; z-index:1; width:16px; height:16px; pointer-events:none;
  background:#6b7a8d;
  -webkit-mask:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 3a7.5 7.5 0 0 1 5.9 12.14l4.23 4.23-1.26 1.26-4.23-4.23A7.5 7.5 0 1 1 10.5 3zm0 2a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11z'/%3E%3C/svg%3E");
  mask:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 3a7.5 7.5 0 0 1 5.9 12.14l4.23 4.23-1.26 1.26-4.23-4.23A7.5 7.5 0 1 1 10.5 3zm0 2a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11z'/%3E%3C/svg%3E"); }

/* !important throughout: themes and Elementor both style bare inputs, selects and
   buttons globally, and losing the left padding puts the icon under the placeholder. */
.fr-search .fr-search__input{ flex:1 1 auto; width:100%; min-width:0;
  height:48px !important; margin:0 !important; padding:0 12px 0 40px !important;
  border:0 !important; border-radius:0 !important; outline:none !important;
  background:transparent !important; box-shadow:none !important;
  -webkit-appearance:none !important; appearance:none !important;
  font-family:'inter',"inter Fallback",system-ui,sans-serif !important; font-size:15px !important;
  font-weight:400 !important; line-height:48px !important; color:#16202f !important; }
.fr-search .fr-search__input::placeholder{ color:#9aa8b9 !important; opacity:1; }
.fr-search .fr-search__input::-webkit-search-cancel-button{ -webkit-appearance:none; }

.fr-search .fr-search__sel{ flex:0 1 auto; min-width:0; width:auto; max-width:200px;
  height:48px !important; margin:0 !important; padding:0 30px 0 14px !important;
  border:0 !important; border-left:1px solid #dde4ec !important; border-radius:0 !important;
  outline:none !important; box-shadow:none !important; background-color:#fff !important;
  color:#3d4d63 !important; font-family:'inter',"inter Fallback",system-ui,sans-serif !important;
  font-size:14px !important; cursor:pointer;
  -webkit-appearance:none !important; appearance:none !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236b7a8d'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important; background-position:right 6px center !important;
  background-size:18px !important; text-overflow:ellipsis; }
.fr-search .fr-search__sel:focus{ box-shadow:inset 0 0 0 2px rgba(42,62,89,.25) !important; }
.fr-search .fr-search__sel option{ color:#16202f; }
.fr-search__sub{ color:#6b7a8d; }

/* flex:0 0 auto plus nowrap — the button must never be the thing that gets squeezed. */
.fr-search .fr-search__go{ flex:0 0 auto; white-space:nowrap; cursor:pointer;
  height:48px !important; margin:0 !important; padding:0 22px !important;
  border:0 !important; border-radius:0 !important; outline:none !important;
  box-shadow:none !important; background:#f2d98d !important; color:#0c1425 !important;
  font-family:'archivo',"archivo Fallback",system-ui,sans-serif !important; font-weight:700 !important;
  font-size:13px !important; letter-spacing:.06em !important; text-transform:uppercase !important;
  line-height:1 !important; transition:background 200ms cubic-bezier(.4,0,.2,1); }
.fr-search .fr-search__go:hover{ background:#fff !important; }
.fr-search .fr-search__go--icon{ display:inline-flex; align-items:center; justify-content:center;
  width:52px; padding:0 !important; }
.fr-search--compact .fr-search__go--icon{ width:46px; }
/* Size pinned in CSS: the width/height attributes alone lose to theme rules like
   `button svg { width:1em }`, which is what shrinks the glyph to a speck. */
.fr-search .fr-search__go--icon svg{ display:block; width:22px !important; height:22px !important;
  max-width:none !important; flex:0 0 auto; }
.fr-search--compact .fr-search__go--icon svg{ width:20px !important; height:20px !important; }

.fr-search--compact .fr-search__input{ height:36px !important; line-height:36px !important;
  font-size:13.5px !important; padding-left:36px !important; }
.fr-search--compact .fr-search__ico{ left:12px; width:15px; height:15px; }
.fr-search--compact .fr-search__go{ height:36px !important; padding:0 16px !important; font-size:12px !important; }
.fr-search--compact .fr-search__sel{ height:36px !important; }

.fr-search__panel{ position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:9995;
  background:#fff; border-top:3px solid #f2d98d; border-radius:0 0 8px 8px;
  box-shadow:0 18px 38px rgba(12,20,37,.16); overflow:hidden; text-align:left; }
.fr-search__panel[hidden]{ display:none; }
.fr-sug__row{ display:block; padding:11px 16px; text-decoration:none; border-bottom:1px solid #eef2f6; }
.fr-sug__row:last-child{ border-bottom:0; }
.fr-sug__row:hover,.fr-sug__row.is-active{ background:#f7f9fb; }
.fr-sug__name{ display:block; font-family:'archivo',"archivo Fallback",system-ui,sans-serif; font-weight:600; font-size:14.5px; color:#16202f; }
.fr-sug__meta{ display:block; font-size:12.5px; color:#6b7a8d; margin-top:2px; }
.fr-sug__all{ display:block; padding:11px 16px; text-align:center; text-decoration:none; background:#f7f9fb;
  font-family:'archivo',"archivo Fallback",system-ui,sans-serif; font-weight:700; font-size:12px; letter-spacing:.05em;
  text-transform:uppercase; color:#2a3e59; border-top:1px solid #dde4ec; }
.fr-sug__all:hover{ background:#eef2f6; }
.fr-sug__none{ padding:16px; font-size:14px; color:#6b7a8d; text-align:center; }
.fr-sug__busy{ padding:16px; font-size:13px; color:#9aa8b9; text-align:center; }

.fr-res__count{ font-size:14px; color:#6b7a8d; margin:0 0 20px; }
.fr-res__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
.fr-res__card{ display:flex; gap:14px; background:#fff; border:1px solid #dde4ec; border-radius:8px;
  padding:20px; box-shadow:0 1px 2px rgba(12,20,37,.06); transition:box-shadow 200ms, transform 200ms; }
.fr-res__card:hover{ box-shadow:0 6px 18px rgba(12,20,37,.10); transform:translateY(-2px); }
.fr-res__logo{ width:52px; height:52px; object-fit:contain; flex:0 0 auto; border-radius:4px; }
.fr-res__name{ font-family:'archivo',"archivo Fallback",system-ui,sans-serif; font-size:17px; font-weight:600; margin:0 0 4px; }
.fr-res__name a{ color:#16202f; text-decoration:none; }
.fr-res__name a:hover{ color:#2a3e59; }
.fr-res__meta{ font-size:13.5px; color:#6b7a8d; margin:0; }
.fr-res__empty{ background:#f7f9fb; border:1px solid #dde4ec; border-radius:8px; padding:32px; text-align:center; color:#3d4d63; }
.fr-res__empty a{ color:#2a3e59; }
.fr-res__pager{ display:flex; gap:6px; justify-content:center; margin-top:28px; }
.fr-res__pager a{ min-width:38px; padding:8px 10px; text-align:center; text-decoration:none;
  border:1px solid #c3cedb; border-radius:4px; color:#2a3e59; font-size:14px; }
.fr-res__pager a.is-current{ background:#2a3e59; border-color:#2a3e59; color:#fff; }

@media (max-width:900px){
  .fr-search--full .fr-search__bar{ flex-wrap:wrap; }
  .fr-search--full .fr-search__field{ flex:1 1 100%; border-bottom:1px solid #dde4ec; }
  .fr-search--full .fr-search__sel{ flex:1 1 45%; max-width:none;
    border-left:0 !important; border-right:1px solid #dde4ec !important;
    border-bottom:1px solid #dde4ec !important; height:44px !important; }
  .fr-search--full .fr-search__go{ flex:1 1 100%; height:46px !important; }
}
