/* Match grounded-v3 container width + theme font. font-size omitted so the
   theme/body default carries through; only h2/h3 sizes set explicitly. */
.onlyf-loc-panel{max-width:1140px;margin:0 auto 24px;padding:28px 24px;box-sizing:border-box;color:inherit;background:#fff;border-radius:12px}
.onlyf-loc-panel-h2{font-size:22px;font-weight:800;letter-spacing:-.03em;line-height:1.2;margin:0 0 14px}
.onlyf-loc-panel-h3{font-size:18px;font-weight:700;line-height:1.25;margin:24px 0 12px}
.onlyf-loc-panel-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 6px}
.onlyf-loc-card{background:#f4f8fd;border:1px solid #cfdcec;border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.onlyf-loc-card-label{font-size:12px;color:#5a6c84;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.onlyf-loc-card-num{font-size:24px;font-weight:800;line-height:1.1}
.onlyf-loc-tablewrap{overflow-x:auto;margin-bottom:6px}
.onlyf-loc-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e6eaf0;border-radius:8px;overflow:hidden}
.onlyf-loc-table th{text-align:left;padding:10px 14px;background:#f6f8fb;color:#3b4658;font-weight:700;border-bottom:1px solid #e6eaf0;white-space:nowrap;font-size:.92em}
.onlyf-loc-table td{padding:9px 14px;border-bottom:1px solid #eef2f7;line-height:1.45}
.onlyf-loc-table tr:last-child td{border-bottom:none}
.onlyf-loc-table tr:hover td{background:#f9fbfd}
.onlyf-loc-table a{color:#0051AD;text-decoration:none}
.onlyf-loc-table a:hover{text-decoration:underline}
.onlyf-loc-siblings{list-style:none;padding:0;margin:6px 0 14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.onlyf-loc-siblings li{padding:10px 14px;background:#f4f8fd;border:1px solid #cfdcec;border-radius:6px;display:flex;justify-content:space-between;gap:12px}
.onlyf-loc-siblings li a{color:inherit;text-decoration:none;font-weight:600}
.onlyf-loc-siblings li a:hover{color:#0051AD}
.onlyf-loc-siblings li span{color:#5a6c84}
.onlyf-loc-panel-source{margin-top:18px;color:#7b8797;line-height:1.5;font-size:.85em}
@media (max-width:767px){
  .onlyf-loc-panel{padding:18px 16px}
  .onlyf-loc-panel-h2{font-size:20px}
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5;color:#222;background:#018cf1!important}
main.site-main,main#main{background:#fff;width:100%;max-width:1280px;margin:0 auto;box-sizing:border-box;border-radius:12px;overflow:hidden;padding:24px}
@media(max-width:1279px){main.site-main,main#main{max-width:100%;border-radius:0;padding:16px}}

/* Four siblings live directly under <body> on a blue background:
     1. <main.site-main>  — the model cards
     2. <section.nls-explore>  — Pages / locations sitemap (mu-plugin)
     3. <section.og-grounded-bottom>  — About + FAQ + featured aside
     4. <section.onlyf-loc-panel>  — per-location stats snapshot (mu-plugin)
   Out of the box they have wildly different max-widths (1280 / 1140 / none)
   and inconsistent vertical spacing. Force them all into the same 1280px
   centered band with the same 24px top margin so they read as a stack of
   matched cards. */
.nls-explore,.og-grounded-bottom,.onlyf-loc-panel{max-width:1280px!important;width:100%;margin:24px auto 0!important;box-sizing:border-box;background:#fff;border-radius:12px!important}
.nls-explore{overflow:hidden}
@media(max-width:1279px){.nls-explore,.og-grounded-bottom,.onlyf-loc-panel{max-width:100%!important;border-radius:0!important}}
html,body{overflow-x:clip;max-width:100vw}
@supports not (overflow-x:clip){.site-footer-sticky{overflow-x:hidden}}
.main_warp{max-width:100%;width:100%;box-sizing:border-box;margin:0 auto}
#onlyf_models_data,.cards{max-width:100%;width:100%;box-sizing:border-box}
.onlyf_card{box-sizing:border-box}
img,video,iframe{max-width:100%}


img,svg,video{max-width:100%;height:auto;display:block}
a{color:#0a6abd;text-decoration:none}
a:hover,a:focus-visible{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{line-height:1.2;margin:0 0 .5em}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid #0a6abd;outline-offset:2px;border-radius:3px}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;white-space:nowrap;border:0;padding:0}
.skip-link:focus{position:absolute!important;top:0;left:0;clip:auto;width:auto;height:auto;padding:.75rem 1rem;background:#fff;color:#0a6abd;font-weight:600;z-index:9999}

/* Header structure (matches header.php):
   <div.site-header-bg>  full-width dark FIXED background, always visible
     <header.site-header>  max-width:1280px centered flex container
       <a.site-flag>        flag image, left
       <div.site-filters>   location / tag / gender dropdowns
       <button.site-search-toggle>  spyglass that reveals the nls-bar
       (onlyf-nl-search JS injects .nls-bar here too; hidden by default,
        shown when body.nls-search-open via the spyglass click)
   Fixed (not sticky) so it survives every scroll context. Body gets a
   matching padding-top so content starts below it. */
.site-header-bg{background:#282828;color:#fff;position:fixed;top:0;left:0;right:0;z-index:1000;width:100%;min-height:60px;box-shadow:0 1px 0 rgba(255,255,255,.04)}
body{padding-top:60px}
.site-header{display:flex;align-items:center;gap:10px;max-width:1280px;margin:0 auto;padding:8px 12px;flex-wrap:nowrap;min-height:60px;color:#fff;box-sizing:border-box;position:relative}
.site-flag{flex:0 0 auto;display:inline-flex;align-items:center}
.site-flag img{width:42px;height:28px;display:block;object-fit:contain}
.site-logo{flex:0 0 auto;display:inline-flex;align-items:center;color:#fff;text-decoration:none}
.site-logo img{max-height:36px;width:auto;height:auto;display:block}

/* Filter dropdowns: location / tag / gender. Each is a <label> with an
   emoji as data-icon attribute (rendered via ::before) plus a styled
   <select>. The wrapper gives us pill shape + a visible leading icon
   that survives the native select widget on every browser/mobile OS.
   margin-left:auto pushes filters + spyglass + lang flag to the right
   edge of the header, leaving only the country flag on the left. */
.site-filters{display:flex;align-items:center;gap:6px;flex:0 1 auto;min-width:0;flex-wrap:nowrap;margin-left:auto}
.site-filter{position:relative;display:inline-flex;align-items:center;background:#fff;border-radius:999px;height:34px;padding:0 6px 0 28px;color:#06142d;font-size:13px;min-width:0;flex:0 1 auto;cursor:pointer}
.site-filter::before{content:attr(data-icon);position:absolute;left:8px;top:50%;transform:translateY(-50%);font-size:14px;line-height:1;pointer-events:none}
.site-filter-label-vh{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;white-space:nowrap;border:0;padding:0}
.site-filter-select{border:0!important;background:transparent!important;font:inherit;color:inherit;padding:0 18px 0 4px;height:32px;max-width:100px;min-width:0;-webkit-appearance:none;appearance:none;cursor:pointer;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 8" fill="%23506178"><path d="M6 8 0 0h12z"/></svg>')!important;background-repeat:no-repeat!important;background-position:right 4px center!important;background-size:8px 6px!important;outline:0;text-overflow:ellipsis}
.site-filter-select:focus-visible{box-shadow:0 0 0 2px #0a6abd}
/* Tag = 2nd filter; narrower so the language flag has room to the right. */
.site-filter:nth-of-type(2) .site-filter-select{max-width:70px}

/* Mobile: roomy enough that full labels (Location/Tag/Gender) read.
   Without the lang flag in the header the dropdowns have ~300 CSS-px
   to share at 393 viewport, so 80-100px each fits comfortably. */
@media(max-width:560px){
  .site-header{gap:6px;padding:6px 10px}
  .site-flag img{width:34px;height:23px}
  .site-filter{padding:0 6px 0 24px;height:32px;font-size:13px}
  .site-filter::before{left:7px;font-size:13px}
  .site-filter-select{max-width:90px;font-size:13px;padding:0 14px 0 2px}
  .site-filter:nth-of-type(2) .site-filter-select{max-width:54px}
  .site-search-toggle{width:38px;height:38px}
  .site-search-toggle svg{width:18px;height:18px}
}
@media(max-width:380px){
  .site-header{gap:4px;padding:6px 8px}
  .site-filter{padding:0 4px 0 22px}
  .site-filter-select{max-width:64px;font-size:12px}
  .site-filter:nth-of-type(2) .site-filter-select{max-width:42px}
}

/* Location mega menu: <details>-based disclosure that takes the place of
   the old single-level Location <select>. <summary> is styled to look
   identical to the pill <select>s next to it (chevron, leading icon).
   On open the .site-mega-panel anchors to the header (absolute, full
   header width) and renders a columned grid of all backed locations. */
.site-filter-mega{list-style:none}
.site-filter-mega::-webkit-details-marker{display:none}
.site-filter-mega-summary{list-style:none;display:inline-flex;align-items:center;height:100%;padding:0 14px 0 0;font:inherit;color:inherit;cursor:pointer;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 8" fill="%23506178"><path d="M6 8 0 0h12z"/></svg>') no-repeat right 4px center/8px 6px;outline:0}
.site-filter-mega-summary::-webkit-details-marker{display:none}
.site-filter-mega-summary::marker{content:""}
.site-filter-mega-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-filter-mega[open]{box-shadow:0 0 0 2px #0a6abd inset}
/* Panel is fixed-positioned (NOT absolute) so it spans the full header band
   regardless of the pill width. `.site-filter` is position:relative for its
   ::before icon, so an absolute panel would anchor to the pill itself. */
.site-filter-mega .site-mega-panel{position:fixed;top:60px;left:0;right:0;margin:0 auto;max-width:1280px;background:#fff;color:#06142d;box-shadow:0 8px 24px rgba(0,0,0,.18);border-top:1px solid rgba(0,0,0,.06);padding:10px 22px;max-height:calc(100vh - 76px);overflow-y:auto;z-index:9998;box-sizing:border-box}
.site-mega-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 22px;margin:0;align-items:start;align-content:start}
.site-mega-col{break-inside:avoid;min-width:0;align-self:start}
.site-mega-h{margin:0 0 2px;font-size:14px;font-weight:700;letter-spacing:.01em;line-height:1.25}
.site-mega-h .site-mega-link{color:#06142d}
.site-mega-list,.site-mega-sublist,.site-mega-flat{list-style:none;margin:0;padding:0}
.site-mega-list>li,.site-mega-flat>li{margin:0;line-height:1.3}
.site-mega-sublist{margin:0 0 2px 10px;padding-left:8px;border-left:1px solid rgba(0,0,0,.08)}
.site-mega-sublist>li{line-height:1.3}
.site-mega-link{display:block;text-decoration:none;color:#1f3251;font-size:13px;padding:0;margin:0;line-height:1.3}
.site-mega-h .site-mega-link{display:inline}
.site-mega-link:hover,.site-mega-link:focus-visible{text-decoration:underline;color:#0a6abd;outline:0}
.site-mega-flat{column-count:4;column-gap:22px}
.site-mega-flat>li{break-inside:avoid;margin:0 0 2px}
@media(max-width:900px){.site-mega-flat{column-count:3}}
@media(max-width:680px){
.site-filter-mega .site-mega-panel{padding:6px 12px!important;max-height:80vh}
.site-mega-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important;gap:2px 12px!important;align-items:start!important;align-content:start!important}
.site-mega-col,.site-mega-col-region,.site-mega-col-foreign{align-self:start!important;margin:0!important;padding:0!important}
.site-mega-h{margin:0!important;padding:0!important;font-size:13px!important;line-height:1.15!important;font-weight:700}
.site-mega-h a,.site-mega-h .site-mega-link{display:inline!important;padding:0!important;margin:0!important;line-height:1.15!important}
.site-mega-list,.site-mega-sublist,.site-mega-flat{margin:0!important;padding:0!important}
.site-mega-list>li,.site-mega-flat>li,.site-mega-sublist>li{margin:0!important;padding:0!important;line-height:1.15!important;min-height:0!important}
.site-mega-list .site-mega-link,.site-mega-sublist .site-mega-link,.site-mega-flat .site-mega-link{display:block!important;padding:0!important;margin:0!important;line-height:1.2!important;min-height:0!important;font-size:12px!important}
.site-mega-flat{column-count:2}
.site-mega-sublist{margin:0 0 0 8px!important;padding-left:6px!important}
}
@media(max-width:380px){.site-mega-flat{column-count:1}.site-mega-grid{gap:1px 10px!important}.site-filter-mega .site-mega-panel{padding:4px 10px!important}}

/* Server-rendered TP language switcher (sites with multiple languages).
   Lives between the filter dropdowns and the spyglass; small round flag
   buttons styled to match the spyglass on the dark header background. */
.site-lang{flex:0 0 auto;display:inline-flex;align-items:center;margin-left:4px}
.site-lang .nls-lang{margin:0;gap:4px}
.site-lang .nls-lang-link{width:30px;height:30px;background:rgba(255,255,255,.12);border-color:transparent;opacity:.85}
.site-lang .nls-lang-link:hover,.site-lang .nls-lang-link:focus-visible{background:rgba(255,255,255,.22);opacity:1}
@media(max-width:560px){.site-lang .nls-lang-link{width:26px;height:26px}.site-lang .nls-lang-flag{width:18px;height:12px}}

/* Spyglass: always visible at the right edge, large. Click expands the
   nls-bar via JS. */
.site-search-toggle{flex:0 0 auto;width:42px;height:42px;border:0;background:rgba(255,255,255,.12);border-radius:50%;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin-left:6px}
.site-search-toggle:hover,.site-search-toggle:focus-visible{background:rgba(255,255,255,.22);outline:0}
.site-search-toggle[aria-expanded="true"]{background:#0a6abd}
.site-search-toggle svg{width:22px;height:22px}

/* The mu-plugin's filter pills, gender select, and per-language flag
   are superseded by our header dropdowns / spyglass / TP picker
   elsewhere. Hide all of them; the search input is revealed only when
   the spyglass is toggled open. */
.nls-bar .nls-header-pills,.nls-bar .nls-header-gender,.nls-bar .nls-lang{display:none!important}

/* Collapse the injected nls-bar entirely by default; reveal the search
   input as a slide-down panel when the spyglass is clicked. */
.nls-bar.nls-in-header{display:none!important}
/* On mobile, win over the mu-plugin's later `.nls-bar.nls-in-header{display:flex!important}`
   inline CSS by bumping specificity (body .nls... => 0,2,1) inside a max-width media query.
   The `body.nls-search-open ...` reveal rule below is 0,3,1 so it still wins when toggled. */
@media(max-width:767px){body .nls-bar.nls-in-header{display:none!important}}

/* Search-open: the whole .nls-bar becomes a full-width slide-down panel
   below the header containing the input-wrap as a 600px centered pill.
   The language flag is suppressed in expanded mode to keep focus on
   the search box. */
body.nls-search-open .nls-bar.nls-in-header{position:absolute!important;left:0!important;right:0!important;top:100%!important;background:#282828!important;padding:10px 16px!important;margin:0!important;max-width:none!important;width:100%!important;box-sizing:border-box;box-shadow:0 8px 24px rgba(0,0,0,.32);justify-content:center}
body.nls-search-open .nls-bar.nls-in-header .nls-lang{display:none!important}
body.nls-search-open .nls-bar.nls-in-header .nls-input-wrap{display:flex!important;align-items:center;width:100%;max-width:600px;margin:0;background:#fff;border:1px solid #d6d6dc;border-radius:8px;height:40px;padding:0 10px;box-sizing:border-box}
body.nls-search-open .nls-bar.nls-in-header .nls-input-wrap .nls-icon{color:#666;width:18px;height:18px;flex:0 0 auto;margin-right:6px}
body.nls-search-open .nls-bar.nls-in-header .nls-input-wrap .nls-input{flex:1 1 auto;border:0!important;outline:0!important;font-size:15px;background:transparent!important;height:38px;color:#111;min-width:0}

main.site-main{min-height:60vh}
.container{max-width:1280px;margin:0 auto;padding:0 16px}
.site-footer{max-width:1280px;width:100%;margin:24px auto 0;padding:18px 24px;background:#1c1c1c;color:#fff;text-align:center;box-sizing:border-box;border-radius:12px;margin-bottom:80px}
@media(max-width:1279px){.site-footer{max-width:100%;border-radius:0}}
.site-copyright{margin:0;font-size:14px;color:#fff}
.site-footer-sticky{position:fixed;left:0;right:0;bottom:0;background:#242424;padding:10px;z-index:50;box-shadow:0 -8px 24px rgba(0,0,0,.32)}
@media(prefers-reduced-motion:no-preference){
.site-footer-sticky{transition:transform .2s}
}
.site-main .page,.site-main .page-content{max-width:1180px;margin:0 auto;padding:24px 16px 60px}
.page-header{margin-bottom:16px}
.page-title{font-size:28px;margin:0 0 6px}
.single-model{max-width:1180px;margin:0 auto;padding:0 16px 60px}
.model-single-header{position:relative;margin-bottom:48px}
.model-single-banner img{width:100%;max-height:240px;object-fit:cover;border-radius:14px}
.model-single-picture{position:absolute;left:50%;transform:translateX(-50%);bottom:-72px;width:144px;height:144px;border-radius:50%;overflow:hidden;border:4px solid #fff;background:#eee}
.model-single-picture img{width:144px;height:144px;object-fit:cover;border-radius:50%}
.model-single-titlebar{text-align:center;padding-top:88px}
.model-single-handle{font-size:28px;margin:0}
.model-single-name{font-size:16px;margin:4px 0 16px;color:#666}
.model-single-cta{display:inline-block;padding:14px 28px;background:#0a6abd;color:#fff;border-radius:10px;font-weight:600;min-height:44px;line-height:18px}
.model-single-cta:hover,.model-single-cta:focus-visible{background:#08518f;color:#fff;text-decoration:none}
.model-single-price{display:inline-block;margin-left:8px;opacity:.9;font-size:13px}
.model-single-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:24px 0;padding:18px;background:#f6f6f6;border-radius:14px;color:#222}
.model-meta-row{display:flex;flex-direction:column;gap:4px}
.model-meta-label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#555}
.model-meta-value a{color:#0a6abd}
.model-single-bio{margin:24px 0;line-height:1.6;color:#222}
.related-models{margin-top:48px;padding-top:24px;border-top:1px solid #eee}
.related-models-title{font-size:22px;text-align:center;margin:0 0 18px}
.related-models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}
.related-models-cta{text-align:center;margin-top:28px}
.ff-model-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;background:#fff;border-radius:14px;box-shadow:0 3px 10px -4px rgba(0,0,0,.16);color:#222}
.ff-model-card:hover{text-decoration:none;color:#222}
.ff-model-card__pic img{width:96px;height:96px;border-radius:50%;object-fit:cover}
.ff-model-card__handle{font-weight:600;font-size:14px;text-align:center;word-break:break-word;color:#222}
.ff-model-card__name{font-size:13px;color:#555;text-align:center}
.button,.button-primary{display:inline-block;padding:10px 22px;background:#0a6abd;color:#fff;border-radius:8px;font-weight:600;border:0;cursor:pointer;min-height:44px;line-height:24px}
.button:hover,.button:focus-visible{background:#08518f;color:#fff;text-decoration:none}
.button.secondary{background:transparent;color:#0a6abd;border:2px solid #0a6abd}
.tag_section_fil_ter a,.tag_section_fil_ter button{min-height:44px;min-width:44px;color:#fff}

/* Retire the Elementor top-menu widget + hamburger inside the header — gender/free are now in-header pills, location is reachable via the Pages sitemap below. */
header.elementor-location-header .elementor-widget-nav-menu,
header.elementor-location-header .elementor-menu-toggle,
.elementor-menu-toggle,div.elementor-menu-toggle{display:none !important}
/* Sticky header so search + filter pills follow the user. */
header.elementor-location-header{position:sticky !important;top:0;z-index:9999;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.08)}
/* TP's in-header switcher is hardcoded to width:200px which crowds out the search bar. Cap it so the flag stays as a compact "logo" on the left and the search fits next to it. */
.nls-host-anc-header .trp-language-switcher,.nls-host-anc .trp-language-switcher,header .trp-language-switcher{width:auto !important;min-width:0 !important;max-width:54px !important;height:auto !important;flex:0 0 auto !important}
.nls-host-anc-header .trp-language-switcher>div,.nls-host-anc .trp-language-switcher>div,header .trp-language-switcher>div{padding:2px 6px !important;border:0 !important;background:transparent !important;height:auto !important}

header.elementor-location-header{overflow:visible !important;height:auto !important;min-height:0 !important}
.nls-host-anc-header,.nls-host-anc,.nls-host-anc .elementor-container,.nls-host-anc .elementor-column,.nls-host-anc .elementor-widget-wrap{overflow:visible !important;height:auto !important;min-height:0 !important;flex-wrap:nowrap !important}
/* Force the host (widget-wrap) to a row layout so flag + bar sit on the same line. */
.nls-host-header{display:flex !important;flex-direction:row !important;flex-wrap:nowrap !important;align-items:center !important;justify-content:flex-start !important;width:100% !important;gap:12px;min-width:0 !important}
.nls-bar{max-width:480px;margin:8px auto 8px;padding:0 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative;z-index:50;box-sizing:border-box;width:100%}
.nls-bar.nls-in-header{margin:0 0 0 auto !important;padding:0 !important;width:auto !important;max-width:560px !important;flex:1 1 0 !important;min-width:0 !important;align-self:center !important;display:flex !important;align-items:center !important;gap:8px !important;order:99 !important;flex-wrap:nowrap}
.nls-bar.nls-in-header .nls-input-wrap{flex:1 1 auto;min-width:0}
/* In-header gender/Free pills — small round icon-only buttons (desktop) */
.nls-host-header .nls-header-pills{display:flex;align-items:center;gap:4px;flex:0 0 auto;margin-left:6px}
.nls-host-header .nls-header-pills .nls-filterpill{width:26px;height:26px;padding:0;border-radius:50%;font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:0;border:1px solid #d6d6dc;background:#fff}
.nls-host-header .nls-header-pills .nls-filterpill.nls-filterpill-active{background:#06142d;border-color:#06142d;color:#fff}
.nls-host-header .nls-header-pills .nls-filterpill-label{display:none}
.nls-host-header .nls-header-pills .nls-filterpill-icon{font-size:13px;line-height:1}
/* The "All" pill has no icon — drop it from the header (site logo links home). */
.nls-host-header .nls-header-pills .nls-filterpill:not(:has(.nls-filterpill-icon)){display:none}
/* Mobile: pills become a compact gender select */
.nls-host-header .nls-header-gender{display:none;height:32px;border-radius:8px;border:1px solid #d6d6dc;background:#fff;padding:0 6px;font-size:13px;flex:0 0 auto;margin-left:6px;max-width:120px}
@media (max-width:767px){
  .nls-host-header .nls-header-pills{display:none}
  .nls-host-header .nls-header-gender{display:inline-block}
}
/* Hide the page-level filter pills — they live in the header now. Keep only the sort form, right-aligned at the top of the listings. */
.nls-filterbar .nls-filterpills{display:none}
.nls-filterbar .nls-filterbar-inner{justify-content:flex-end}
.nls-lang{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.nls-lang-link{flex:0 0 auto}
.nls-lang-link{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid transparent;opacity:.55;transition:opacity .15s,border-color .15s,background .15s;text-decoration:none}
.nls-lang-link:hover{opacity:1;background:#f3f3f6}
.nls-lang-link.nls-lang-active{opacity:1;border-color:#d6d6dc;background:#fff}
.nls-lang-flag{display:block;width:20px;height:14px;object-fit:cover;border-radius:2px}
.nls-input-wrap{display:flex;align-items:center;background:#fff;border:1px solid #d6d6dc;border-radius:8px;padding:0 8px 0 10px;box-shadow:0 1px 3px rgba(20,16,40,.04);transition:border-color .15s,box-shadow .15s;height:36px;box-sizing:border-box}
.nls-input-wrap:focus-within{border-color:#888;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.nls-icon{color:#888;flex-shrink:0;margin-right:6px;width:16px;height:16px}
.nls-input{flex:1;border:0 !important;outline:0 !important;font-size:14px;padding:6px 2px !important;background:transparent !important;color:#111;min-width:0;line-height:1;height:34px;box-shadow:none !important;-webkit-appearance:none;appearance:none;border-radius:0 !important}
.nls-input::-webkit-search-decoration,.nls-input::-webkit-search-cancel-button,.nls-input::-webkit-search-results-button,.nls-input::-webkit-search-results-decoration{-webkit-appearance:none;display:none}
.nls-typeahead{background:#fff;border:1px solid #e6e6ea;border-radius:12px;margin-top:8px;overflow-y:auto;max-height:520px;box-shadow:0 12px 30px rgba(0,0,0,.10);position:absolute;left:12px;right:12px}
.nls-row{display:flex;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;color:#111;border-bottom:1px solid #f3f3f6}
.nls-row:last-of-type{border-bottom:0}
.nls-row:hover{background:#faf7ff}
.nls-row-img{width:48px;height:48px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#eee}
.nls-row-body{flex:1;display:flex;flex-direction:column;min-width:0}
.nls-row-name{font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nls-row-meta{font-size:12px;color:#666}
.nls-row-price{font-size:13px;font-weight:600;padding:3px 8px;border-radius:6px;flex-shrink:0}
.nls-row-price.nls-free{background:#ffe4ef;color:#d4146e}
.nls-row-price.nls-paid{background:#eef0ff;color:#4137e3}
.nls-ai-btn{display:block;width:100%;text-align:left;padding:12px 14px;background:#fafaff;border:0;border-top:1px solid #f3f3f6;font-weight:600;font-size:14px;color:#7b3fe4;cursor:pointer}
.nls-ai-btn:hover{background:#f3eeff}
.nls-ai-btn.nls-ai-secondary{font-weight:500;color:#444}
.nls-empty{padding:18px 14px;color:#666;font-size:14px;text-align:center}
.nls-results{max-width:980px;margin:18px auto 18px;padding:18px;background:#faf7ff;border:1px solid #ede4ff;border-radius:14px;position:relative;box-sizing:border-box}
.nls-results-bar{max-width:1200px;margin:14px auto 6px;padding:10px 16px;background:#f6f3ff;border:1px solid #ede4ff;border-radius:10px;font-size:14px;color:#4a3a7a;display:block;box-sizing:border-box}
.nls-results-bar .nls-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600}
.nls-results-bar .nls-chips{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px}
/* Bottom "Pages" sitemap — site's own published WP pages, top-level + children. */
.nls-explore{max-width:1140px;margin:24px auto 16px;padding:28px 24px;box-sizing:border-box;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#fff;border-radius:12px}
@media (max-width:782px){.nls-explore{content-visibility:auto;contain-intrinsic-size:auto 1600px}}
.nls-explore-title{font-size:18px;line-height:1.1;letter-spacing:-.02em;margin:0 0 14px;color:#06142d;font-weight:800}
.nls-explore-list{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.nls-explore-item{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 14px;border:1px solid #e6eaf0;border-radius:999px;background:#fff;font-size:13px;font-weight:700;color:#06142d;text-decoration:none;transition:background .12s,border-color .12s,color .12s}
.nls-explore-item:hover{background:#eaf3fb;border-color:#c7e0f5;color:#0975bd}
.nls-explore-item:visited{color:#06142d}
.nls-explore-kids{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 8px 18px;margin-top:-2px;border-left:2px solid #eef4f9;margin-left:8px}
.nls-explore-kid{font-size:12px;font-weight:600;padding:4px 10px 4px 12px;background:#f6faff;border-color:#dde7f3}
.nls-explore-count{color:#7b8797;font-size:11px;font-weight:800;background:#eef4f9;padding:2px 8px;border-radius:999px;margin-left:2px}

/* Top filter pill bar — replaces the legacy .filter_for_mobiles dropdown row. */
.nls-filterbar{max-width:1140px;margin:14px auto 4px;padding:10px 14px;box-sizing:border-box;background:#fff;border-radius:12px;border:1px solid #eef0f4;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}
.nls-filterbar-inner{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between}
.nls-filterpills{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1 1 auto;min-width:0}
.nls-filterpill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 12px;border:1px solid #e6eaf0;border-radius:999px;background:#fff;font-size:13px;font-weight:700;color:#06142d;text-decoration:none;transition:background .12s,border-color .12s,color .12s}
.nls-filterpill:hover{background:#eaf3fb;border-color:#c7e0f5;color:#0975bd}
.nls-filterpill-icon{font-size:13px;line-height:1;opacity:.85}
.nls-filterpill.nls-filterpill-active{background:#06142d;border-color:#06142d;color:#fff}
.nls-filterpill.nls-filterpill-active:hover{background:#0e2347;color:#fff}
.nls-sort{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;margin:0}
.nls-sort-label{font-size:13px;font-weight:600;color:#506178}
.nls-sort-select{font:inherit;font-size:13px;font-weight:600;padding:6px 28px 6px 12px;border:1px solid #e6eaf0;border-radius:999px;background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 8" fill="%23506178"><path d="M6 8 0 0h12z"/></svg>') no-repeat right 10px center/8px 6px;-webkit-appearance:none;appearance:none;color:#06142d;cursor:pointer}
.nls-sort-select:focus{outline:0;border-color:#a9bcd4}
@media (max-width:600px){
  .nls-filterbar{margin:10px 8px 4px;padding:10px 12px}
  .nls-filterbar-inner{flex-direction:column;align-items:stretch;gap:8px}
  .nls-filterpills{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;margin:0 -12px;padding-left:12px;padding-right:12px}
  .nls-filterpills::-webkit-scrollbar{display:none}
  .nls-filterpill{flex:0 0 auto}
  .nls-sort{justify-content:flex-end}
}
.nls-summary{font-size:14px;color:#4a3a7a;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:12px}
.nls-close{background:transparent;border:0;font-size:22px;line-height:1;cursor:pointer;color:#888;padding:0 4px}
.nls-close:hover{color:#222}
.nls-chips{margin:8px 0 14px;display:flex;flex-wrap:wrap;gap:6px}
.nls-chip{font-size:12px;padding:3px 10px;background:#efeaff;color:#5a3fa7;border-radius:99px;font-weight:500}
.nls-chip-kw{background:#fff5e3;color:#a36a00}
.nls-chip-free{background:#ffe4ef;color:#d4146e;font-weight:600}
.nls-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.nls-card{display:block;background:#fff;border-radius:12px;overflow:hidden;text-decoration:none;color:#111;border:1px solid #efeaff;transition:transform .15s,box-shadow .15s}
.nls-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(123,63,228,.16)}
.nls-card-img{aspect-ratio:1/1;overflow:hidden;background:#eee}
.nls-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.nls-card-body{padding:10px 12px}
.nls-card-name{font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.nls-card-price{font-size:11px;font-weight:700;padding:2px 6px;border-radius:5px;flex-shrink:0;white-space:nowrap}
.nls-card-price.nls-free{background:#ffe4ef;color:#d4146e}
.nls-card-price.nls-paid{background:#eef0ff;color:#4137e3}
.nls-card-meta{font-size:11px;color:#666;margin-top:4px}
.nls-card-tags{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}
.nls-tag{font-size:10px;padding:2px 6px;background:#efeaff;color:#5a3fa7;border-radius:4px;text-transform:capitalize}
.nls-loading{padding:24px;text-align:center;color:#7b3fe4;font-weight:600}
.nls-results-empty{padding:24px;text-align:center;color:#666}
@media (max-width:600px){
  .nls-bar{margin:12px auto}
  .nls-input{font-size:15px;padding:8px 4px}
  .nls-typeahead{left:8px;right:8px}
}
.filter_for_mobiles,.onlyf_search_box,.onlyf_active_filters,.onlyf-filters-wrapper,.filter_shortcode_wrapper,.shortw,#onlyf_price_filter,#filter_by_gender,#onlyf_short_by{display:none !important}
/*# sourceURL=onlyf-nls-inline-css */

@media only screen and (max-width: 767px) {
  h1 {
    font-size: 24px !important;
    line-height: 1.2; /* Optional: adjust line-height if needed */
  }
}

.footer-columns {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 1200px;
  margin: 2rem auto;
  padding: 0 1rem;
  font-family: sans-serif;
}
.footer-column {
  flex: 1 1 18%;
  min-width: 200px;
}
.footer-column h3 {
  color: white;
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}
.footer-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-column li {
  margin: 0.3rem 0;
}
.footer-column a {
  color: white;
  text-decoration: underline;
  font-weight: bold;
}

.onlyf_card{position:relative}
.onlyf-badges-row{position:absolute;top:8px;left:8px;right:8px;z-index:3;display:flex;flex-wrap:wrap;gap:4px;pointer-events:none}
.onlyf-badges{display:inline-flex;flex-wrap:wrap;gap:4px}
.onlyf-badge{pointer-events:auto;display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.02em;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 1px 2px rgba(0,0,0,.15)}
.onlyf-badge-new{background:rgba(14,165,233,.92);color:#fff}
.onlyf-badge-active{background:rgba(16,185,129,.92);color:#fff}
.onlyf-badge-rising{background:rgba(34,197,94,.92);color:#fff}
.onlyf-badge-pricedrop{background:rgba(245,158,11,.95);color:#fff}
.onlyf-badge-burst{background:rgba(139,92,246,.92);color:#fff}
.onlyf-delta{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
.onlyf-delta-up{background:#dcfce7;color:#166534}
.onlyf-delta-down{background:#fee2e2;color:#991b1b}

/* Flagship sponsored card, desktop cover height.
   These rules came across from the onlyf-featured-card-height mu-plugin, whose
   markup was `.onlyf_card-header > a > img`. ad-card.blade.php now wraps the
   cover in <picture> (so a phone can be served the portrait main image), which
   put an element between the <a> and the <img> and stopped `> a > img` from
   matching anything. The card silently fell back to the generic
   `.onlyf_card-header img{height:150px}` further down this file: a 150px
   letterbox of a portrait avatar cropped at dead centre, i.e. no face. The
   descendant combinator matches both markups; the avatar image is not reachable
   through it (it hangs off .onlyf_profile_wrap, a sibling of this <a>). */
@media screen and (min-width:769px){#onlyf_models_data .onlyf_card.promoted.onlyf_large_model:not(.og-grounded-feature-card) .onlyf_card-header > a img{height:300px !important;width:100% !important;object-fit:cover !important;object-position:50% 30% !important}#onlyf_models_data .onlyf_card.promoted.onlyf_large_model .onlyf_card-header .onlyf_profile_wrap .onlyf_profiole_inner img{height:100% !important;width:100% !important;object-fit:cover !important}#onlyf_models_data .onlyf_card.promoted.onlyf_large_model .onlyf_card-header .onlyf_profile_wrap{justify-content:flex-start !important;padding-left:18px !important;box-sizing:border-box !important}#onlyf_models_data .onlyf_card.promoted.onlyf_large_model:not(.onlyf_large_layout):not(.og-grounded-feature-card) .onlyf_card-header > a img{height:150px !important;object-position:50% 25% !important}#onlyf_models_data .onlyf_card.promoted.onlyf_large_model:not(.onlyf_large_layout):not(.og-grounded-feature-card) .onlyf_card-header .onlyf_profile_wrap{margin-top:-78px !important}#onlyf_models_data .onlyf_card.promoted.onlyf_large_model:not(.onlyf_large_layout):not(.og-grounded-feature-card) .onlyf_card-header .onlyf_profile_wrap .onlyf_profiole_inner{width:130px !important;height:130px !important}}

.og-grounded-bottom { padding: 32px 0 16px; }
    .og-grounded-grid {
        display: grid; grid-template-columns: 1fr 340px; gap: 28px; align-items: start;
        max-width: 1140px; margin: 0 auto; padding: 28px 24px; box-sizing: border-box;
        background: #fff;
        border-radius: 12px;
    }
    .og-grounded-grid-solo { grid-template-columns: 1fr; }
    .og-grounded-text { min-width: 0; }
    .og-grounded-text h2 { font-size: 22px; letter-spacing: -.03em; margin: 0 0 14px; line-height: 1.2; }
    .og-grounded-text p { margin: 0 0 12px; line-height: 1.55; }
    .og-grounded-text strong a, .og-grounded-text a strong { color: #0051AD; }
    .og-grounded-text a { color: #0051AD; text-decoration: none; }
    .og-grounded-text a:hover { text-decoration: underline; }
    .og-grounded-feature { position: sticky; top: 90px; max-width: 340px; }
    .og-grounded-feature .onlyf_card { max-width: none !important; width: 100%; margin: 0; }
    .og-creator-row {
        display: flex; gap: 12px; overflow-x: auto;
        scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
        padding: 4px 2px 12px; margin: 18px 0 26px; scrollbar-width: thin;
    }
    .og-creator-row::-webkit-scrollbar { height: 8px; }
    .og-creator-row::-webkit-scrollbar-thumb { background: #c4c4c4; border-radius: 4px; }
    .og-tile {
        flex: 0 0 calc((100% - 36px) / 3.5); min-width: 220px; scroll-snap-align: start;
        position: relative; aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden;
        background: #f4f4f4; border: 1px solid #e6e6e6;
        text-decoration: none; color: inherit; display: block;
    }
    .og-tile:hover { color: inherit; }
    .og-tile.og-tile-promoted { border: 2px solid #FED700; }
    .og-tile-img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
    .og-tile-label {
        position: absolute; top: 10px; left: 10px;
        background: #0051AD; color: #fff;
        font-size: 11px; font-weight: 700;
        padding: 4px 10px; border-radius: 999px;
        text-transform: uppercase; letter-spacing: .04em; line-height: 1.3;
    }
    .og-tile.og-tile-promoted .og-tile-label { background: #FED700; color: #1a1a1a; }
    .og-tile-name {
        position: absolute; bottom: 0; left: 0; right: 0;
        padding: 12px 14px;
        background: linear-gradient(transparent, rgba(0,0,0,.78));
        color: #fff; font-weight: 700; font-size: 14px; line-height: 1.25;
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .fmf-faq-question { font-family: inherit !important; font-weight: 700; }
    body.og-grounded-active .onlyf_location_faq { display: none !important; }
    @media (max-width: 1023px) {
        .og-grounded-grid { grid-template-columns: 1fr; gap: 18px; }
        .og-grounded-feature { position: static; margin: 0 auto; max-width: none; width: 100%; }
        .og-grounded-feature .onlyf_card-header { aspect-ratio: 4 / 5; overflow: hidden; position: relative; }
        .og-grounded-feature .onlyf_card-header > a { display: block; width: 100%; height: 100%; }
        .og-grounded-feature .onlyf_card-header img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: top; display: block; }
        .og-tile { flex-basis: calc((100% - 24px) / 2.5); }
        footer.e-parent { padding-top: 12px !important; padding-bottom: 12px !important; }
        footer.e-parent .elementor-widget-heading { margin: 0 !important; padding: 4px 0 !important; }
        footer.e-parent .elementor-widget-divider { padding: 4px 0 !important; }
    }
    @media (max-width: 767px) {
        .og-tile { flex-basis: calc((100% - 12px) / 1.5); min-width: 200px; }
    }

@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:swap;src:url(https://fanfindcroatia.com/wp-content/plugins/elementor/assets/lib/font-awesome/webfonts/fa-brands-400.woff2) format("woff2")}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:swap;src:url(https://fanfindcroatia.com/wp-content/plugins/elementor/assets/lib/font-awesome/webfonts/fa-regular-400.woff2) format("woff2")}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:swap;src:url(https://fanfindcroatia.com/wp-content/plugins/elementor/assets/lib/font-awesome/webfonts/fa-solid-900.woff2) format("woff2")}

/* Tag/location pages: the FAQ card (.location-faqs) ships only a box-shadow with
   no background-color, so it borrows its white fill from the page behind it and
   can look like it has "lost" its background. Make the white explicit. */
.location-faqs{background:#fff!important}

/* === Content-stats block: shown on ALL viewports (mobile + desktop/tablet). ===
   Posts / Images / Videos with month-to-date chips, plus a preserved Price +
   Last Seen line. The stock Price/Last-Seen/Posts list is hidden ONLY on cards
   that actually received the new block (:has guard) so a card never loses its
   stats if data is unavailable on a given site. */
.au-mobile-stats{display:block}
#onlyf_models_data .onlyf_card:has(.au-mobile-stats) .onlyf_card-body ul.details:not(.au-stats){display:none!important}
.au-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:#3a4254;margin:2px 0 9px}
.au-meta i{color:#0051AD;margin-right:3px}
.au-meta strong{color:#10131a;font-weight:700}
ul.details.au-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;width:100%;max-width:520px;margin:0 auto;padding:0;list-style:none;border:1px solid #e6e8ee;border-radius:14px;overflow:hidden;background:#fbfcfe}
ul.details.au-stats li.au-stat{display:flex!important;flex-direction:column;align-items:center;gap:3px;padding:11px 6px;margin:0;width:auto;border-right:1px solid #e6e8ee;text-align:center}
ul.details.au-stats li.au-stat:last-child{border-right:none}
.au-stat__label{font-size:11px;font-weight:600;color:#5a6275;display:flex;align-items:center;gap:4px}
.au-stat__label i{color:#0051AD}
.au-stat__num{font-size:18px;font-weight:800;color:#10131a;line-height:1.1}
.au-chip{display:inline-flex;align-items:center;gap:2px;font-size:10px;font-weight:700;line-height:1;padding:2px 7px;border-radius:999px}
.au-chip.au-up{background:#e7f8ef;color:#127a45}
.au-chip.au-down{background:#fdecec;color:#b42323}
.au-chip.au-flat{background:#eef0f4;color:#8a93a6}
.au-stats-caption{text-align:center;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#9aa2b3;margin:7px 0 2px}

/* === Layout/image treatment: MOBILE ONLY (<=768px). Desktop/tablet keep the
   stock grid, avatar and promoted styling; only the stats above cross over. === */
@media screen and (max-width:768px){
  /* one card per row, full width */
  #onlyf_models_data{display:flex;flex-direction:column;gap:18px;align-items:stretch}
  #onlyf_models_data .onlyf_card,
  #onlyf_models_data .onlyf_card.onlyf_large_model,
  #onlyf_models_data .onlyf_card.onlyf_large_card{width:100%!important;max-width:100%!important}

  /* Cover banner stays a modest strip. The MAIN image is the round profile
     avatar: 2.25x the stock 80px (=180px), kept perfectly circular. */
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_card-header img{height:188px!important}
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profile_wrap{margin-top:-95px}
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profiole_inner{width:180px!important;height:180px!important;border-radius:50%!important;border:3px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.18);overflow:hidden}
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profiole_inner img{width:100%!important;height:100%!important;border-radius:50%!important;object-fit:cover!important}

  /* All promoted/sponsored creators render like the lead promoted card:
     full-width, large, MAIN IMAGE ONLY (big banner, no round avatar). */
  #onlyf_models_data .onlyf_card.promoted:not(.og-grounded-feature-card){width:100%!important;max-width:100%!important}
  #onlyf_models_data .onlyf_card.promoted:not(.og-grounded-feature-card) .onlyf_card-header img{height:400px!important}
  #onlyf_models_data .onlyf_card.promoted:not(.og-grounded-feature-card) .onlyf_card-header .onlyf_profile_wrap{display:none!important}
  /* promoted cards have no new block but are intentionally image-only on mobile */
  #onlyf_models_data .onlyf_card.promoted:not(.og-grounded-feature-card) .onlyf_card-body ul.details:not(.au-stats){display:none!important}
}

/* ---- the toggle control (segmented). MOBILE ONLY: hidden on desktop/tablet. ---- */
.ff-view-toggle{display:none}
.ff-view-toggle .ff-view-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border:0;background:transparent;color:#3a4254;font-size:14px;font-weight:600;line-height:1;cursor:pointer}
.ff-view-toggle .ff-view-btn svg{width:17px;height:17px}
.ff-view-toggle .ff-view-btn+.ff-view-btn{border-left:1px solid #d7dae2}
.ff-view-toggle .ff-view-btn:hover{background:#e9ebf1}
.ff-view-toggle .ff-view-btn.active{background:#0051AD;color:#fff}

/* ===== Portrait MAIN-image listing: MOBILE ONLY (<=768px). Desktop keeps the stock
   round-avatar + banner card untouched. This block is emitted at wp_head priority 101,
   AFTER onlyf-au-listing-redesign (100), so it overrides that plugin's mobile round-avatar
   treatment. The MAIN image = the creator's profile pic (.onlyf_profiole_inner), shown as a
   large portrait that fills the card; the BACKGROUND/cover banner (.onlyf_card-header > a)
   is hidden on mobile. Applies in BOTH Feed and Grid; the toggle only controls columns:
   Feed = 1 per row, Grid = 2 per row. ===== */
@media screen and (max-width:768px){
  .ff-view-toggle{display:flex;justify-content:center;width:max-content;margin:0 auto 16px;border:1px solid #d7dae2;border-radius:10px;overflow:hidden;background:#f4f5f8}

  /* one card per row by default (Feed). */
  #onlyf_models_data{display:flex!important;flex-direction:column!important;gap:18px!important;align-items:stretch}

  /* normal card: show only the MAIN image (profile pic) as a big portrait; hide the
     background/cover banner and strip the round-avatar framing. */
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_card-header{height:auto!important;margin:0!important}
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_card-header>a{display:none!important}
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profile_wrap{display:block!important;margin:0!important;padding:0!important;width:100%!important;transform:none!important}
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profiole_inner{width:100%!important;height:auto!important;aspect-ratio:3/4!important;border-radius:12px!important;border:0!important;box-shadow:none!important;overflow:hidden!important}
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profiole_inner img{width:100%!important;height:100%!important;border-radius:12px!important;object-fit:cover!important;object-position:top center!important;display:block!important}
  #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_card-body{padding-top:10px}

  /* Grid only: 2 normals per row (2 rows of 2 between each full-width sponsored). */
  html.ff-view-portrait #onlyf_models_data{flex-direction:row!important;flex-wrap:wrap!important;gap:12px!important}
  html.ff-view-portrait #onlyf_models_data .onlyf_card:not(.promoted){width:calc(50% - 6px)!important;max-width:calc(50% - 6px)!important}

  /* sponsored/promoted creators stay full-width, prominent (AU already does this). */
  html.ff-view-portrait #onlyf_models_data .onlyf_card.promoted{width:100%!important;max-width:100%!important}
}

/* ===== DESKTOP/tablet only (>=769px): move the circular MAIN image (profile pic) to the
   LEFT over the background banner on the plain sponsored/featured cards, so they match the
   lead featured card and the OnlyFans profile layout. ONLY the avatar position changes; the
   card size/width and everything else is left exactly as the onlyf plugin renders it. The
   lead (onlyf_large_model) and grounded feature cards are excluded - they already do this. */
@media screen and (min-width:769px){
  #onlyf_models_data .onlyf_card.promoted:not(.onlyf_large_model):not(.og-grounded-feature-card) .onlyf_card-header .onlyf_profile_wrap{justify-content:flex-start!important;padding-left:18px!important;box-sizing:border-box!important}
}

.perfmatters-lazy-video{position:relative;width:100%;max-width:100%;height:0;padding-bottom:56.23%;overflow:hidden}.perfmatters-lazy-video img{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:cover;object-position:center;border:none;cursor:pointer;transition:.5s all;-webkit-transition:.5s all;-moz-transition:.5s all}.perfmatters-lazy-video img:hover{-webkit-filter:brightness(75%)}.perfmatters-lazy-video .play{position:absolute;top:50%;left:50%;right:auto;width:68px;height:48px;margin-left:-34px;margin-top:-24px;background:url(https://fanfindcroatia.com/wp-content/plugins/perfmatters/img/youtube.svg) no-repeat;background-position:center;background-size:cover;pointer-events:none;filter:grayscale(1)}.perfmatters-lazy-video:hover .play{filter:grayscale(0)}.perfmatters-lazy-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.elementor-widget-html:has(.perfmatters-lazy-video),.elementor-widget-text-editor:has(.perfmatters-lazy-video){width:100%}.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper:has(.perfmatters-lazy-video)::before{display:none;}.perfmatters-lazy.pmloaded,.perfmatters-lazy.pmloaded>img,.perfmatters-lazy>img.pmloaded,.perfmatters-lazy[data-ll-status=entered]{animation:500ms pmFadeIn}@keyframes pmFadeIn{0%{opacity:0}100%{opacity:1}}body .perfmatters-lazy-css-bg:not([data-ll-status=entered]),body .perfmatters-lazy-css-bg:not([data-ll-status=entered]) *,body .perfmatters-lazy-css-bg:not([data-ll-status=entered])::before,body .perfmatters-lazy-css-bg:not([data-ll-status=entered])::after,body .perfmatters-lazy-css-bg:not([data-ll-status=entered]) *::before,body .perfmatters-lazy-css-bg:not([data-ll-status=entered]) *::after{background-image:none!important;will-change:transform;transition:opacity 0.025s ease-in,transform 0.025s ease-in!important;}

h1.onlyf_page_heading {
        text-align: center;
        font-weight: 600;
        margin-bottom: 40px;
        color: #424242;
    }
    .onlyf_search_box label {
        color: #333333;
    }
    .filter_clear_by_gender {

    }
    .shortw {
        width: max-content;
    }

    .onlyf_search_box  .onlyf_models_profile_filter:hover label {
        color: #ffffff;
    }
    .onlyf_search_box  .onlyf_models_profile_filter.active label {
        color: #ffffff;
    }
    .onlyf_allamericanfans_loder {
        z-index: 9;
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    .onlyf_loader_fade_div {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: #ffffff8a;
    }
    .onlyf_allamericanfans_loder img {
        width: 150px !important;
    }
    .onlyf_card-body ul.details li {
        width: 100%;
        justify-content: center;
    }

    .onlyf_card-body ul.details li .list_title {
        color: #000;
        font-weight: 600;
    }

    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    .main_warp {
        font-family: Arial, sans-serif;
        padding: 20px 0;
        display: flex;
        justify-content: center;

        width:100%;
        margin: auto;
        flex-direction: column;
    }

    .cards {
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
    }

    .onlyf_card {
        background: #fff;
        border: 1px solid #ddd;
        border-radius: 25px;
        width: 100%;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        overflow: hidden;
        display: flex;
        justify-content: space-between;
        gap: 5px;
        flex-direction: column;
    }

    .onlyf_card-header img {
        width: 100%;
        height: 150px;
        object-fit: cover;
    }
    /* fap-sponsored-banner-focal: frame the model's face in promoted/sponsored banners
       (avatarOriginal portraits cover-crop to headroom/cleavage at the default center) */
    .onlyf_card.promoted .onlyf_card-header img,
    .sponsored-block .onlyf_card-header img { object-position: center 30%; }

    .onlyf_card-body {
        padding: 0 10px;
        text-align: center;
    }

    .onlyf_card-body h2 {
    font-size: 1.2rem;
    color: #555;
    margin-bottom: 5px;
    }

    .onlyf_card-body h3 {
        font-size: 18px;
        color: #000000;
        margin-bottom: 10px;
        font-weight: 600;
    }

    ul.details {
        padding: 0px;
        margin: 0px;
        display: flex;
        gap: 0px 7px;
        flex-wrap: wrap;
        justify-content: center;
        font-size: 14px;
        font-weight: normal;
    }
    ul.details li {
        list-style: none;
        padding: 0;
        margin-bottom:3px;
    }
    .pagination {
        margin: 0px auto !important;
    }
    ul.details li {
        display: flex;
        gap: 4px;
        align-items: center;
    }
    ul.details li .data_span {
        color: #5b5b5b;
    }
    ul.details li i {
        color: #007bff;
    }
    .onlyf_btn_wrap {
        display: flex;
        justify-content: center;
        align-items: center;

        padding-block: 25px;
    }
    .onlyf_btn {
        display: flex;
        gap: 5px;
        align-items: center;
        padding: 10px 20px;
        background-color: #0051AD;
        color: #fff;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        text-decoration: none;
        font-size: 0.9rem;

    }

    .onlyf_btn:hover {
    background-color: #0056b3;
    }
    .promoted  .onlyf_btn_wrap {
    padding-block-start: 0px;
    margin-bottom: 25px;
    }
        .promoted  .onlyf_card-body h2 {
            font-size: 20px;
            font-weight:bold;
        }


    .promoted {
    border: 2px solid #FED700;
    position: relative;
    }
    .onlyf_card.promoted-sm {
        border: 2px solid #FED700;
        position: relative;
    }
    .promoted ul.details {
    padding: 0px;
    margin: 0px;
    display: flex;
    gap: 2px;
    flex-direction: column;
    justify-content: center;
    }
    .promoted  ul.details li {
    justify-content: center;
    }
    .promoted-banner {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #FED700;
    color: #000;
    font-weight: bold;
    text-align: center;
    padding: 5px;
    }
    .onlyf_profile_wrap {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: -90px;
    }
    .onlyf_profiole_inner
    {
    width: 120px;
    height: 120px;
    border-radius: 50%;


    }
    .onlyf_profiole_inner  img
    {
    border-radius: 50% !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    }
    .dividor {
    border-top: 1px solid #ccc;
    height: 1px;
    width: 100%;
    margin-block: 15px;
    }
    .pagination {
        gap:15px;
        flex-wrap:wrap;
        margin:24px auto;
    }
    #onlyf_pagination span.page-numbers.current {
        background-color: #000;
        color: #fff;
    }
    .onlyf_allamericanfans_loder {
        z-index: 9;
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    .description_info {
        font-weight: normal;
        font-size: 15px;
        color: #000;
        margin-bottom: 15px;
        line-height: 1.3em;
    }
    .promoted  .description_info {
        font-weight:normal;
        font-size: 14px;
        color: #666;
        margin-bottom: 15px;
    }
    .promoted  .list_title {
        color:#000;
        font-weight:600;
    }


    .onlyf_models_profile_filter.active {
        color: #fff;
        background-color: #6c6c6c;
    }
    .onlyf_models_profile_filter.active:after {
        content: "✅";
        font-weight: normal;
        font-style: normal;
        margin: 0px 0px 0px 4px;
        text-decoration: none;
    }
    .onlyf_models_profile_filter {
        padding: 12px 15px;
        background-color: #e0dddd;
        border-radius: 8px;
    }
    .onlyf_models_profile_filter:hover {
        background-color: #989797;
        color:#fff;
        cursor: pointer;
    }
    .wmax{
        width: max-content;
    }

    /* Styling the inner content of the search box */
    .onlyf_search_box_inner {
        display: flex;
        justify-content: space-between; /* Space out the checkboxes */
        align-items: center;
    }


    .onlyf_filter_by_gender select {
        border: 1px solid #ccc;
    }


    /* Styling individual rows (checkboxes) */
    .onlyf_search_box .onlyf_models_profile_filter {
        display: flex;
        align-items: center;
        font-size: 16px;
    }

    /* Styling labels */
    .onlyf_search_box label {
        display: flex;
        align-items: center;
        font-weight: bold;
        cursor: pointer;
    }

    /* Styling the span text */
    .onlyf_search_box label span {
        margin-right: 10px;
    }

    span.onlyf_sponsored {
        display: flex;
        width: max-content;
        margin: auto;
        color: #000;
        gap: 8px;
        align-items: center;
        line-height: 1;
        font-weight: 600;
        font-size: 12px;
        margin-top: 10px;
    }
    span.onlyf_sponsored svg {
        width: 16px;
        height: 16px;
    }
    .onlyf_card {
        width: 100%;
        max-width: calc(50% - 8px);
    }
    .onlyf_card.onlyf_large_model {
        width: 100%;
        max-width: calc(100% - 0px);
    }
    #onlyf_models_data{
        margin-bottom:12px;
    }
    .onlyf_search_box.onlyf_0810 {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap:wrap;
    }
    .onlyf_0810 .filter_clear_by_gender .onlyf_filter_by_gender {
        margin-top:0;
    }
    .onlyf_0810 [type=button], .onlyf_0810 [type=submit], .onlyf_0810 button{
        padding: 0.3rem 1rem;
        background-color: #f1f1f1 !important;
        border-color: #ccc !important;
        color: #000 !important;
    }
    .onlyf_0810 .onlyf_search_box_inner {
        margin-bottom:0px;
    }
    #onlyf_price_filter, .onlyf_filter_by_gender select {
        border: 2px solid #e79600 !important;
    }
    .onlyf_models_count_data {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        margin-bottom:15px;
        margin-top:20px;
        gap:10px
    }
    .onlyf_models_count_data p{
        margin-bottom:0px;
        font-weight: 600;
    }
    .onlyf_models_count_data select#onlyf_short_by {
        width: auto;
        border: 1px solid #ccc;
    }
    .footer_content_wrapper ul, .footer_content_wrapper ol {
        padding-left: 20px;
    }
    /* FAQ CSS */
    .fmf-faq-section {
        max-width: 700px;
        margin: 40px auto;
        padding: 0 20px;
        font-family: 'Inter', sans-serif;
        background-color: #f9f9f9;
        border-radius: 8px;
    }
    .fmf-faq-heading {
        font-size: 28px;
        font-weight: 700;
        color: #0e4181;
        text-align: center;
        margin-bottom: 30px;
    }
    .fmf-faq-item {
        border-bottom: solid 2px #0282ea;
        overflow: hidden;
    }
    .fmf-faq-item:last-child {
        border-bottom: none;
    }
    .fmf-faq-question {
        font-size: 18px;
        color: #000000;
        padding: 16px 0px;
        margin: 0;
        display: flex;
        justify-content: space-between;
        align-items: center;
        cursor: pointer;
        user-select: none;
        font-family: 'Inter-Bold';
    }
    .fmf-faq-icon {
        font-size: 20px;
        margin-left: 10px;
    }

    .fmf-faq-answer {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s ease;
        padding: 0 16px;
        color: #333;
    }
    .fmf-faq-answer p {
        margin: 0px 0px 15px;
        font-size: 16px;
        line-height: 1.6;
        color: #000000;
    }
    .onlyf_location_faq {
        margin-top: 30px;
    }
    .location-faqs {
        border-radius: 20px;
        box-shadow: 0px 0px 14px 0 rgba(0, 0, 0, 0.2), 0 4px 16px 0 rgba(0, 0, 0, -0.2);
        padding: 50px 60px;
        margin: 0 auto 40px;
    }
    .fmf-faq-answer a {
        color: #000000;
        text-decoration: underline;
    }

    .location-faqs h2 {
        font-size: 52px;
    }
     span.filter-tag {
        display: inline-block;
        background: #f1f1f1;
        padding: 6px 10px;
        margin: 0px;
        border-radius: 20px;
    }
    span.filter-tag a {
        margin-left: 6px;
        text-decoration: none;
        color: red;
        font-weight: bold;
    }
    .onlyf_active_filters {
        justify-content: center;
        display: flex;
        align-items: center;
        gap: 7px;
        margin-top: 10px;
        font-size: 13px;
        font-weight: 600;
    }
    /* Optional: Add media query for responsiveness */
    /* SUPERSEDED 20260728: the column count is now set once, as a real CSS grid,
       in the hand-maintained block at the end of this file (five columns, the
       flagship spanning two). These percentage widths are left as the no-grid
       fallback only -- edit the grid, not these. */
    @media screen and (min-width: 1025px) {
        .onlyf_card {
            max-width: calc(20% - 12.8px);
        }
        .onlyf_card.onlyf_large_model {
            max-width: calc(20% - 12.8px); /* ffslotmap 20260707: sponsored cards one grid column */
        }
        .onlyf_card.onlyf_large_model:not(.onlyf_large_layout) .onlyf_card-header img {
            height: 120px;
        }
        .onlyf_card.onlyf_large_model:not(.onlyf_large_layout) .onlyf_profile_wrap {
            margin-top: -70px;
        }
        .onlyf_card.onlyf_large_model:not(.onlyf_large_layout) .onlyf_profiole_inner {
            width: 96px;
            height: 96px;
        }
        /* pos-1 large ad only (owner spec 20260707): the double-width format is
           reserved for position 1 (onlyf_large_layout); every other sponsored card
           stays one grid column. */
        .onlyf_card.onlyf_large_model.onlyf_large_layout {
            width: 100%;
            max-width: calc(40% - 9.6px);
        }
    }
    @media screen and (max-width: 768px) {
        #onlyf_models_data > .onlyf_card:nth-child(11):has(+ .onlyf_card.onlyf_large_layout:nth-child(12)) {
            display: none;
        }
        .onlyf_card.onlyf_large_layout  {
            width: 100% !important;
            max-width: calc(100% - 0px) !important;
        }
        .onlyf_card.onlyf_large_layout .onlyf_card-header img {
            height: 400px !important;
        }
        .onlyf_card.onlyf_large_layout .onlyf_card-header .onlyf_profile_wrap {
            display: none;
        }
        .select_pr, .select_gen, .shortw {

            font-size: 13px;
        }
        .select_pr {
            width: max-content;
            padding-inline:5px;
        }
        .select_gen {
            width: 80px;
            padding-inline:5px;
        }
        .shortw  {
            max-width: 110px;
            padding-inline:5px;
        }
        .onlyf_models_count_data p {
            font-size: 14px;
        }
        .promoted ul.details {
            gap: 0px;
            /*flex-direction: row !important;*/
            flex-wrap: wrap;
        }
        .main_warp {
            padding-top: 0;
        }

        .onlyf_card {
            border-radius: 10px;
        }
        .onlyf_search_box_inner {
            gap:6px;
            margin-bottom:10px;
        }
        .onlyf_card ul.details {
            flex-direction: column;
            justify-content:center;
            align-items: center;
        }
        .onlyf_search_box .onlyf_models_profile_filter {
            font-size:14px;
            padding-inline: 10px;
            text-align: center;
        }
        .onlyf_card.onlyf_large_model .onlyf_card-header img {
            height: 150px;
        }
        .onlyf_card.onlyf_large_model .onlyf_profiole_inner {
            width: 120px;
            height: 120px;
        }

        .onlyf_card:not(.promoted) .onlyf_card-header img, .onlyf_card-header img {
            height: 100px;
        }
        .onlyf_card:not(.promoted) .onlyf_profile_wrap, .onlyf_profile_wrap {
            margin-top: -60px;
        }
        .onlyf_card:not(.promoted) .onlyf_profiole_inner, .onlyf_profiole_inner {
            width: 80px;
            height: 80px;
        }
        .onlyf_card-body h2, .promoted .onlyf_card-body h2 {
            font-size: 1rem;
            margin-bottom: 5px;
            margin-top: 0;
        }
        .onlyf_card-body h3 {
            font-size: 14px;
            margin-bottom: 8px;
        }
        .description_info {
            font-size: 13px;
            line-height: 1.2em;
        }
        .onlyf_btn_wrap {
            padding-bottom: 10px;
            padding-top: 0;
        }
        .promoted .onlyf_btn_wrap, .promoted-sm .onlyf_btn_wrap {
            margin-bottom: 35px;
        }
        ul.details li {
            font-size: 12px;
            margin-bottom: 0;
        }
        .onlyf_card-body {
            padding: 0px 5px;
        }
        .dividor {
            margin-block: 10px;
        }
        button.onlyf_btn {
            padding: 5px 10px;
            font-size: 13px;
        }
        .promoted-banner {
            font-size: 14px;
        }
        .pagination {
            gap:5px;
            justify-content: center;
        }
        .pagination .page-numbers {
            padding: 5px 10px;
            font-size: 12px;
        }
        .location-faqs {
            border-radius: 15px;
            padding: 30px 20px;
        }
        .location-faqs h3 {
            font-size: 26px;
        }
        .fmf-faq-question {
            font-size: 16px;
        }
        .fmf-faq-answer p {
            font-size: 14px;
        }
        .onlyf_card.onlyf_single_featured_img .onlyf_card-header img {
            height: 400px;
        }
        .onlyf_card.onlyf_single_featured_img .onlyf_card-header .onlyf_profile_wrap {
            display: none;
        }

    }
    .onlyf_error_msg {
        font-size: 16px;
        color: white;
        background-color: #f44336; /* Red color for error */
        padding: 10px 20px;
        border-radius: 5px;
        text-align: center;
        font-weight: bold;
        margin: 20px 0;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        max-width: 400px;
        margin-left: auto;
        margin-right: auto;
    }

    .onlyf_error_msg:hover {
        background-color: #d32f2f; /* Darker red on hover */
        cursor: pointer;
    }
    #onlyf_pagination ul.page-numbers {
        list-style: none;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        border: none;
        gap: 15px;
    }
    #onlyf_pagination ul.page-numbers li {
        display: inherit;
    }
    #onlyf_pagination span.page-numbers:hover,
    #onlyf_pagination a.page-numbers:hover {
        background-color: #000;
        border: 1px solid #000;
        color: #fff;
    }
    #onlyf_pagination span.page-numbers,
    #onlyf_pagination a.page-numbers {
        padding: 7px 15px;
        border-radius: 8px;
        border: 1px solid #838383;
        color: #000;
        font-size: 14px;
        line-height: 1.2em;
        transition: all .4s ease-in-out;
    }
    .filter_for_mobiles {
        display:flex;
        justify-content:center;
        align-items:center;
    }
    .onlyf_clear_filter {
        padding:4px 8px !important;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
    }
    .onlyf_clear_filter svg {
        width: 25px;
        height:25px;
    }
    .onlyf_hide_on_desktop {
        display:none;
    }
    .filter_for_mobiles select {
        border:1px solid #ddd;
        padding:8px 5px;
        color:#000;
        height:35px;
        border-radius:5px;

    }
    .filter_for_mobiles select:focus {
        outline:none;
        box-shadow:none;
    }
    @media screen and (max-width: 768px) {
        h1.onlyf_page_heading {
            margin-bottom:20px;
        }
        .onlyf_hide_on_desktop {
            display:block !important;
        }
        .filter_for_mobiles {
            justify-content:space-between !important;
        }
        .onlyf_hide_on_mobile {
            display:none;
        }
        .onlyf_large_card {
            width: 100%;
        }
        img {
            /*filter: blur(15px);*/
        }
    }

.onlyf-filters-wrapper {
            display: flex;
            gap: 9px;
        }
        .fil_drop_menu_wrapper {
            position: relative;
            width: 100%;
            font-family: sans-serif;
        }
        .fil_drop_menu_button {
            width: 100%;
            height: 42px;
            padding: 0 40px 0 12px;
            border: 1px solid #4e5057;
            border-radius: 6px;
            background-color: #c3c3c3;
            color: #000000;
            font-size: 15px;
            text-align: left;
            cursor: pointer;
            text-transform: capitalize;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='black'><path d='M7 10l5 5 5-5z'/></svg>");
            background-repeat: no-repeat;
            background-position: right 12px center;
            background-size: 14px;
            transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
            }
        .fil_drop_menu_list {
            position: absolute;
            top: calc(100% + 5px);
            left: 0;
            width: 100%;
            background: #343c4c;
            border: 1px solid #343c4c;
            border-radius: 6px;
            box-shadow: 0 4px 10px rgba(249, 243, 243, 0.1);
            max-height: 250px;
            overflow-y: auto;
            display: none;
            z-index: 9999;
            padding: 8px;
        }
        .elementor-sticky--active .fil_drop_menu_list {
            top: auto;
            bottom:calc(100% + 5px);
        }
        .fil_drop_menu_list::-webkit-scrollbar {
            width: 0;
            height: 0;
            }
        .fil_drop_menu_list:hover {
            scrollbar-width: thin;
            scrollbar-color: #7a7c84 #3d3f45;
        }
        .fil_drop_menu_list:hover::-webkit-scrollbar {
            width: 8px;
        }

        .fil_drop_menu_list:hover::-webkit-scrollbar-track {
            background: #3d3f45;
            border-radius: 6px;
        }

        .fil_drop_menu_list:hover::-webkit-scrollbar-thumb {
            background-color: #7a7c84;
            border-radius: 6px;
            border: 2px solid #3d3f45;
        }

        .fil_drop_menu_list:hover::-webkit-scrollbar-thumb:hover {
            background-color: #a0a2aa;
            }
        .fil_drop_menu_button:hover {
            color: #ffffff;
            background-color: #343c4c;
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='white'><path d='M7 10l5 5 5-5z'/></svg>");
        }
        .fil_drop_menu_button:focus {
            outline: none;
            border-color: #343c4c;
            box-shadow: 0 0 3px #343c4c7e;
            color: #ffffff;
            background-color: #343c4c;
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='white'><path d='M7 10l5 5 5-5z'/></svg>");
        }
        .fil_drop_menu_list div:hover {
            background: #36b7e1;
        }
        .fil_drop_menu_list{
            display:none;
        }
        .fil_drop_menu_list div {
            text-transform: capitalize;
            line-height: 1.2em;
            color: #ffffff;
            border-radius: 6px;
            padding: 10px 12px;
            cursor: pointer;
        }
        .inner_onlyf-filters-col{
            width: calc(33.33% - 6px);
        }
        .onlyf-filters-wrapper {
            display: flex;
            gap: 9px;
            justify-content: center;
        }

.onlyf_card.onlyf-trim-hide{display:none!important}
/* --- appearance facet bar (onlyf-attr-facets), copied from the live inline
   stylesheet on the sites that run it --- */
.onlyf-af-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.onlyf-af-sel{background:#333;color:#fff;border:1px solid #4a4a4a;border-radius:6px;padding:6px 10px;font-size:14px;max-width:150px}
.onlyf-af-clear{color:#FED700;font-size:13px;text-decoration:underline;white-space:nowrap}
@media(max-width:768px){
.onlyf-af-bar{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;margin:0 -10px;padding:0 10px}
.onlyf-af-bar::-webkit-scrollbar{display:none}
.onlyf-af-sel{flex:0 0 auto;width:44px;min-width:44px;max-width:44px;padding:6px 2px 6px 12px;font-size:17px;text-align:left;text-align-last:left;text-overflow:clip;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}
.onlyf-af-sel[data-af-empty="0"]{width:auto;min-width:44px;max-width:118px;padding:6px 8px;font-size:13px;text-align:center;text-align-last:center}
.onlyf-af-clear{flex:0 0 auto;font-size:12px}
}


/* ---------------------------------------------------------------------------
   Sponsored cards in the mobile list views.

   The live design makes a sponsored card image-only on a phone: the cover
   image is drawn 400px tall and the avatar circle is hidden. That is fine as a
   layout; what looked wrong was the picture inside it, a wide cover cropped
   into a tall box. The card markup now offers the creator's portrait main
   image at that breakpoint (see ad-card.blade.php), so these rules only make
   sure it is cropped from the top and that "Grid" is genuinely a grid.
   --------------------------------------------------------------------------- */
@media screen and (max-width:768px){
  #onlyf_models_data .onlyf_card.promoted:not(.og-grounded-feature-card) .onlyf_card-header img{
    object-fit:cover!important;object-position:top center!important}

  /* Grid means two columns for every card, sponsored included: leaving them
     full width made Grid read as a second feed. */
  html.ff-view-portrait #onlyf_models_data .onlyf_card.promoted{width:calc(50% - 6px)!important;max-width:calc(50% - 6px)!important}
  html.ff-view-portrait #onlyf_models_data .onlyf_card.promoted:not(.og-grounded-feature-card) .onlyf_card-header img{height:260px!important}
  html.ff-view-portrait #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profiole_inner{aspect-ratio:3/4!important}

  /* Half-width cards cannot carry the three-column stats block at full size. */
  html.ff-view-portrait #onlyf_models_data ul.details.au-stats{max-width:100%!important}
  html.ff-view-portrait #onlyf_models_data ul.details.au-stats li.au-stat{padding:7px 2px!important;min-width:0!important}
  html.ff-view-portrait #onlyf_models_data .au-stat__label{font-size:10px!important;white-space:normal!important;line-height:1.15;text-align:center}
  html.ff-view-portrait #onlyf_models_data .au-stat__num{font-size:14px!important}
  html.ff-view-portrait #onlyf_models_data .au-chip{font-size:9px!important}
  html.ff-view-portrait #onlyf_models_data .au-meta{font-size:11px!important}
  html.ff-view-portrait #onlyf_models_data .onlyf_card h2{font-size:15px!important}
}


/* ---------------------------------------------------------------------------
   Feed view: one card, one screenful.

   The stock feed gives the image a fixed height and lets the card run past the
   bottom of the screen, so on a shorter Android phone no card is ever fully
   visible. Here the card is bounded to the space between the fixed header and
   the sticky filter bar, the text keeps its natural height, and the IMAGE
   takes whatever is left: the card always fits, on any phone, and the photo is
   as large as that phone allows.

   The image is absolutely positioned inside the header rather than sized with
   percentages -- a percentage height has nothing to resolve against here, which
   is what let the photo keep its natural size and push the button off screen.

   dvh is the dynamic viewport unit, so the card re-fits when the browser's own
   toolbars slide away; vh first for anything that lacks it.
   --------------------------------------------------------------------------- */
@media screen and (max-width:768px){
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card{
    display:flex!important;flex-direction:column!important;
    height:calc(100vh - 150px);height:calc(100dvh - 150px);
    max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);
    overflow:hidden!important}

  /* The image area is the only part allowed to grow or shrink. */
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card .onlyf_card-header{
    position:relative!important;flex:1 1 auto!important;
    min-height:150px!important;height:auto!important;margin:0!important}
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card.promoted .onlyf_card-header>a,
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profile_wrap{
    position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;
    display:block!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;transform:none!important}
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card .onlyf_card-header picture,
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card.promoted .onlyf_card-header>a img,
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profiole_inner,
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card:not(.promoted) .onlyf_profiole_inner img{
    width:100%!important;height:100%!important;max-width:none!important;
    aspect-ratio:auto!important;border-radius:0!important;
    object-fit:cover!important;object-position:top center!important;display:block!important}

  /* Everything below the image keeps its natural height. */
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card .onlyf_card-body,
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card .onlyf_btn_wrap,
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card .promoted-banner{
    flex:0 0 auto!important}
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card .onlyf_card-body{padding-top:8px;padding-bottom:2px}
  html:not(.ff-view-portrait) #onlyf_models_data .au-stats-caption{margin-bottom:2px}
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_btn_wrap{padding:6px 0!important;margin:0!important}
}

/* Short phones: the same card, with the decorations that cost the most
   vertical space dropped so the photo keeps a usable size and the CTA stays on
   screen. Keyed on viewport HEIGHT, so a tall phone keeps the full block. */
@media screen and (max-width:768px) and (max-height:740px){
  html:not(.ff-view-portrait) #onlyf_models_data .au-meta{display:none!important}
  html:not(.ff-view-portrait) #onlyf_models_data .au-stats-caption{display:none!important}
  html:not(.ff-view-portrait) #onlyf_models_data ul.details.au-stats li.au-stat{padding:6px 4px!important}
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf-card-tags{margin:4px 0 0!important}
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card h2{font-size:15px!important;margin:2px 0 4px!important}
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card .dividor{margin:2px 0!important}
}

/* Tag chips on a sponsored card. Reuses the search result chip styling that
   the fleet already ships, so they look like the site rather than like an ad. */
.onlyf-card-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:8px 0 2px}
.onlyf-card-tags .nls-tag{font-size:10px;padding:2px 6px;background:#efeaff;color:#5a3fa7;border-radius:4px;text-transform:capitalize}

/* The sponsored card's stats block must be the same three-column grid the
   ordinary cards use. `.promoted ul.details{flex-direction:column}` from the
   plugin's own stylesheet lands later in the cascade at equal specificity and
   would otherwise stack it. */
#onlyf_models_data .onlyf_card.promoted ul.details.au-stats{
  display:grid!important;grid-template-columns:repeat(3,1fr)!important;
  flex-direction:row!important;gap:0!important;width:100%!important;max-width:520px;margin:0 auto!important}
#onlyf_models_data .onlyf_card.promoted ul.details.au-stats li.au-stat{
  display:flex!important;flex-direction:column!important;align-items:center!important}
#onlyf_models_data .onlyf_card.promoted .au-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}

/* The "Promoted creator" ribbon is position:absolute;bottom:0, so it sits over
   whatever the card's last in-flow element is. On the live cards there is
   enough slack below the CTA that it never showed; on a card bounded to the
   viewport (feed) or halved (grid) the CTA ends up underneath it. Reserve the
   ribbon's height at the foot of every sponsored card. */
#onlyf_models_data .onlyf_card.promoted{padding-bottom:36px!important}
#onlyf_models_data .onlyf_card.promoted .onlyf_btn_wrap{margin-bottom:0!important}
@media screen and (max-width:768px){
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card.promoted .promoted-banner,
  html.ff-view-portrait #onlyf_models_data .onlyf_card.promoted .promoted-banner{
    line-height:1.2;padding:6px 4px!important}
}

/* The mobile reveal rule for the header search bar. The stylesheet hides the
   bar with `body .nls-bar.nls-in-header{display:none!important}` under 767px
   and its open-state rule only re-positions it, never re-displays it -- on the
   live sites the search plugin's own JS sets the inline style that fills that
   gap. This app renders the bar itself, so the rule belongs here: same
   specificity story (0,3,1 beats 0,2,1), no JS needed to make it visible. */
@media (max-width:767px){
  body.nls-search-open .nls-bar.nls-in-header{display:flex!important}
}

/* Search refinements: the three selects reuse the header's pill styling, the
   active-filter chips are removable links, and clear-all resets to the query
   on its own. */
.nls-filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:10px 0 6px}
.nls-filters .site-filter{background:#f2f3f7;color:#06142d;border:1px solid #d7dae2}
.nls-filters .site-filter-select{max-width:170px}
.nls-active-filters{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;margin:4px 0 12px}
.nls-active-chip{display:inline-flex;align-items:center;gap:6px;background:#0051AD;color:#fff!important;
  border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600;text-decoration:none!important}
.nls-active-chip:hover{background:#003d82}
.nls-active-chip span{opacity:.8;font-size:15px;line-height:1}
.nls-clear-all{font-size:13px;color:#0051AD;text-decoration:underline}
@media(max-width:768px){
  .nls-filters{gap:6px}
  .nls-filters .site-filter-select{max-width:110px;font-size:13px}
}

/* A sponsored card that leads with the creator's main photo does not also need
   the avatar circle: it is the same picture twice. The plugin only hides it
   inside a mobile media query, so state it for every width. */
#onlyf_models_data .onlyf_card.onlyf_single_featured_img .onlyf_card-header .onlyf_profile_wrap{display:none!important}

/* Search filter selects. Same pill look as the header controls, but a class of
   their own so the header's "navigate to the option value" handler leaves them
   alone. All three share a width so one label is not truncated to "Loka..."
   while the next runs the full width of the row. */
.nls-filters .site-filter{flex:0 0 auto;padding-right:4px}
.nls-filter-select{
  border:0!important;background:transparent!important;font:inherit;color:inherit;
  padding:0 4px 0 4px;height:32px;width:150px;min-width:150px;max-width:150px;
  text-overflow:ellipsis}
.nls-filter-select:focus{outline:0}
@media(max-width:768px){
  .nls-filter-select{width:104px;min-width:104px;max-width:104px;font-size:13px}
}

/* Search form: query on its own line, refinements plus the submit on the next,
   the button pinned to the end of that row. */
.nls-search{max-width:880px;margin:0 auto 8px;display:flex;flex-direction:column;gap:8px}
.nls-search-row{display:flex;align-items:center;gap:8px}
.nls-search-query .nls-input-wrap{display:flex;align-items:center;width:100%;background:#fff;
  border:1px solid #d6d6dc;border-radius:8px;height:44px;padding:0 12px;box-sizing:border-box}
.nls-search-query .nls-icon{color:#666;flex:0 0 auto;margin-right:8px}
.nls-search-query .nls-input{flex:1 1 auto;border:0!important;outline:0!important;background:transparent!important;
  font-size:16px;height:42px;color:#111;min-width:0}
.nls-search-filters{flex-wrap:wrap}
.nls-search-filters .site-filter{background:#f2f3f7;color:#06142d;border:1px solid #d7dae2;height:38px}
.nls-search-submit{margin-left:auto;height:38px;padding:0 22px}
@media(max-width:768px){
  .nls-search{gap:6px}
  .nls-search-filters{gap:6px}
  .nls-search-submit{margin-left:auto;padding:0 14px;font-size:13px}
}

/* The reasoning chips and the count belong with the form above them. */
.nls-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:2px 0 6px}
.nls-active-filters{margin-top:0}

/* Gender, location, tag and the button share ONE line, at every width.
   The three selects flex from a zero basis so they divide whatever space is
   left after the button, shrinking (and ellipsising) rather than wrapping the
   button onto a line of its own. */
.nls-search-filters{flex-wrap:nowrap!important;gap:6px}
.nls-search-filters .site-filter{flex:1 1 0;min-width:0;padding:0 4px 0 24px}
.nls-search-filters .site-filter::before{left:6px}
.nls-search-filters .nls-filter-select{width:100%!important;min-width:0!important;max-width:none!important;
  padding-right:14px;text-overflow:ellipsis}
.nls-search-submit{flex:0 0 auto;white-space:nowrap}
@media(max-width:560px){
  .nls-search-filters{gap:4px}
  .nls-search-filters .site-filter{height:36px;padding:0 2px 0 20px;font-size:12px}
  .nls-search-filters .site-filter::before{left:4px;font-size:12px}
  .nls-search-filters .nls-filter-select{font-size:12px;height:34px;padding-right:10px}
  .nls-search-submit{height:36px;padding:0 10px;font-size:12px}
}

.nls-submit-icon{display:none}
@media(max-width:560px){
  .nls-search-submit span{display:none}
  .nls-submit-icon{display:block}
  .nls-search-submit{padding:0 12px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
  .nls-search-filters .site-filter{padding:0 2px 0 22px;font-size:13px}
  .nls-search-filters .nls-filter-select{font-size:13px}
}

/* Under ~480px the emoji in each pill costs more than it earns: dropping it
   gives every select back ~20px, which is the difference between "M..." and
   "Muskarci". The chips underneath still name each active filter in full. */
@media(max-width:480px){
  .nls-search-filters .site-filter::before{display:none}
  .nls-search-filters .site-filter{padding:0 2px 0 8px}
  .nls-search-filters .nls-filter-select{padding-right:8px}
}

/* Reclaim the native dropdown arrow's width on small screens: a 10px caret
   drawn as a background costs about half what the platform widget does, and on
   a 360px phone that is another character or two of each label. */
@media(max-width:560px){
  .nls-search-filters .nls-filter-select{
    -webkit-appearance:none;-moz-appearance:none;appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='%2306142d'><path d='M7 10l5 5 5-5z'/></svg>")!important;
    background-repeat:no-repeat!important;background-position:right 2px center!important;
    padding-right:13px!important}
  .nls-search-filters{gap:4px}
  .nls-search-submit{padding:0 10px;min-width:40px}
}

/* ---------------------------------------------------------------------------
   Whole card is the click target.

   The CTA anchor stretches an invisible overlay across the card, so a click
   anywhere on it goes where the button goes -- for creator cards (which arm
   their /redirect.php href on interaction) and sponsored cards (which carry
   the sponsor URL) alike.

   Done with a pseudo-element rather than by wrapping the card in an anchor:
   the card already contains links and a button, and nesting those inside an
   anchor is invalid and breaks keyboard order. The real anchor stays exactly
   where it was, so focus and Enter still work.

   Anything genuinely interactive inside the card is lifted above the overlay
   so it keeps its own click: location links, the form-submit buttons used for
   noindexed pages, and the tag chips.
   --------------------------------------------------------------------------- */
#onlyf_models_data .onlyf_card{position:relative;cursor:pointer}
#onlyf_models_data .onlyf_card .onlyf_btn_wrap > a::after{
  content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}
#onlyf_models_data .onlyf_card .onlyf_model_location,
#onlyf_models_data .onlyf_card .onlyf-card-tags,
#onlyf_models_data .onlyf_card .onlyf-formlink,
#onlyf_models_data .onlyf_card .onlyf_card-header > a,
#onlyf_models_data .onlyf_card .onlyf_profile_wrap a,
#onlyf_models_data .onlyf_card .onlyf_btn_wrap{position:relative;z-index:2}
/* Hover feedback, so the card reads as one target. */
#onlyf_models_data .onlyf_card:hover{box-shadow:0 6px 20px rgba(0,0,0,.14)}
#onlyf_models_data .onlyf_card:focus-within{outline:2px solid #0a6abd;outline-offset:2px}

/* Correction to the stretched link: the overlay is absolutely positioned, so
   it resolves against the nearest POSITIONED ancestor. Making .onlyf_btn_wrap
   relative (to lift it above the overlay) made it that ancestor, and the
   overlay covered only the button. The wrap and its anchor stay static; the
   card is the positioning context. Clicks on the button itself still land on
   the overlay, which is the same link. */
#onlyf_models_data .onlyf_card{position:relative!important;cursor:pointer}
#onlyf_models_data .onlyf_card .onlyf_btn_wrap{position:static!important;z-index:auto!important}
#onlyf_models_data .onlyf_card .onlyf_btn_wrap > a{position:static!important}
#onlyf_models_data .onlyf_card .onlyf_btn_wrap > a::after{
  content:"";position:absolute!important;top:0;left:0;right:0;bottom:0;z-index:1}

/* Whole-card click is handled in script (see the card-click handler in the
   layout), not by a stretched pseudo-element: the cards contain positioned
   blocks of their own, so an overlay wins in some places and loses in others.
   These rules only make the card LOOK like one target. */
#onlyf_models_data .onlyf_card{position:relative;cursor:pointer}
/* ---------------------------------------------------------------------------
   Desktop: one shape for every card image, and one baseline for everything
   under it.

   Two things had to be true at once and only the first one was:

   1. Every IMAGE bottom on a row lands on the same line. That is the strongest
      horizontal in the grid, so it is fixed with an ASPECT RATIO rather than a
      pixel height: cards on a row are all the same width, so 2/1 gives them
      all the same image height at every breakpoint, with no JS and nothing to
      re-tune when the grid reflows. The flagship is double width, so it comes
      out double height (~304px at 1920) -- the "twice as high" hero treatment,
      staying exactly proportional instead of being an arbitrary number.

   2. Every NAME, stats block and CTA lands on the same line too. This is what
      was still wrong. An organic card carries a 120px avatar circle pulled up
      over the banner by margin, so 30px of circle hangs BELOW the image and
      pushes the name down. A sponsored card drawn from a single image has no
      circle (.onlyf_single_featured_img hides it), so its name started 30px
      higher than its neighbours' and every row of text below it was out of
      step across the grid -- the "sponsored vs local models" misalignment.

      Fixed by taking the circle out of flow (absolute, pinned to the bottom of
      the header) and reserving its overhang as padding on EVERY card header,
      circle or no circle. Same media-block height everywhere, so the name
      starts at the same y whatever the card is. The 88/32 split reproduces the
      old -90px margin's overlap to within 2px, so the circle looks unchanged.

   Cards stretch to the row height again and the CTA is pinned to the bottom of
   the card, so a short card no longer stops in mid-air with the next row's
   tops jammed against it. An earlier revision let the header absorb the slack,
   which is what broke (1); here the slack goes to the gap ABOVE the CTA, which
   is the one place that costs no alignment.

   The flagship's own `height:300px!important` rule earlier in this file has
   higher specificity, so it is overridden explicitly below rather than by
   hoping. The grounded feature card keeps its own 4/5 treatment.
   --------------------------------------------------------------------------- */
@media screen and (min-width:769px){
  #onlyf_models_data{align-items:stretch!important}
  #onlyf_models_data .onlyf_card:not(.og-grounded-feature-card){
    display:flex!important;flex-direction:column!important;justify-content:flex-start!important}
  #onlyf_models_data .onlyf_card:not(.og-grounded-feature-card) .onlyf_card-header{
    display:block!important;flex:none!important;height:auto!important;min-height:0!important;position:relative!important;
    padding-bottom:32px!important}
  #onlyf_models_data .onlyf_card:not(.og-grounded-feature-card) .onlyf_card-header > a{
    display:block!important;position:relative!important;width:100%!important;
    aspect-ratio:1/1!important;height:auto!important;min-height:0!important;max-height:none!important;
    overflow:hidden!important;flex:none!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important}
  /* Twice as high as the old 2/1 (owner request 2026-07-28). At five columns the
     image box was about 115px tall and the avatar circle drawn over it is 120px,
     so the circle covered essentially the whole banner and there was no point
     loading it. A square box leaves the top half of the banner in clear view
     with the circle sitting over the bottom half.
     The flagship is exempt: it is double width, so a square box would make it
     four times the area of its neighbours and it already has the height it was
     specified with. */
  #onlyf_models_data .onlyf_card.onlyf_large_layout:not(.og-grounded-feature-card) .onlyf_card-header > a{
    aspect-ratio:2/1!important}
  #onlyf_models_data .onlyf_card:not(.og-grounded-feature-card) .onlyf_card-header > a picture{
    display:block!important;width:100%!important;height:100%!important}
  #onlyf_models_data .onlyf_card:not(.og-grounded-feature-card) .onlyf_card-header > a img{
    width:100%!important;height:100%!important;max-height:none!important;
    object-fit:cover!important;object-position:50% 25%!important}
  /* Same rule, matched to the flagship's own specificity so it actually wins. */
  #onlyf_models_data .onlyf_card.promoted.onlyf_large_model:not(.og-grounded-feature-card) .onlyf_card-header > a img{
    height:100%!important;object-position:50% 30%!important}

  /* The avatar circle: out of flow, sitting in the reserved 32px. Written
     against the wrap rather than the circle so the per-breakpoint circle sizes
     (120px, and 96px on a one-column sponsored card) keep working -- each one
     just hangs a different amount over the image and the same amount below. */
  #onlyf_models_data .onlyf_card:not(.og-grounded-feature-card) .onlyf_profile_wrap{
    position:absolute!important;left:0!important;right:0!important;bottom:0!important;
    width:100%!important;margin:0!important;padding:0!important;
    display:flex!important;justify-content:center!important;align-items:flex-end!important}

  /* Body takes the row's slack; the CTA is pinned to the foot of the card so
     the buttons line up across a row the way the images do. */
  #onlyf_models_data .onlyf_card:not(.og-grounded-feature-card) .onlyf_card-body{flex:0 0 auto!important}
  #onlyf_models_data .onlyf_card:not(.og-grounded-feature-card) .onlyf_btn_wrap{
    flex:0 0 auto!important;margin-top:auto!important}

  /* Pixel-exact heights: every card must have the same CONTENT width, because
     aspect-ratio resolves against it. Cards are box-sizing:border-box at one
     grid width, but plain cards carried a 1px #ddd border and promoted cards a
     2px gold one, so the plain content box was 2px wider and its image came out
     1px taller (147 vs 146). Equalise on 2px rather than 1px: thinning the gold
     border would quietly reduce the prominence advertisers are paying for. */
  #onlyf_models_data .onlyf_card:not(.og-grounded-feature-card){border-width:2px!important}
}

/* ---------------------------------------------------------------------------
   Five columns, not four (owner request 2026-07-28).

   Done by making the listing a real CSS grid at this breakpoint instead of a
   flex row of percentage widths. The percentages were the reason the column
   count was hard to change -- every one of them (25%/50% for the card, the
   flagship, the tablet fallback) had to agree with the 16px gap, and each was
   written as its own calc(). A grid says "five columns" once, keeps the gap out
   of the width arithmetic entirely, and gives every row a single height, which
   is what the CTA pinning above resolves against.

   The flagship keeps its double-width format by spanning two of those columns.
   It is always the first card in the DOM, so it lands on columns 1-2 and never
   leaves a hole at the end of a row.
   --------------------------------------------------------------------------- */
@media screen and (min-width:1025px){
  #onlyf_models_data{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:16px!important;
    align-items:stretch!important}
  #onlyf_models_data > .onlyf_card{
    width:auto!important;max-width:none!important;min-width:0!important}
  #onlyf_models_data > .onlyf_card.onlyf_large_model.onlyf_large_layout{
    grid-column:span 2!important}
}

/* ---------------------------------------------------------------------------
   Two things that only showed up once the column got narrower.

   1. The Posts / Images / Videos block overflowed its card and the third
      column was clipped by the card edge ("23,97"). `repeat(3,1fr)` is
      `minmax(auto,1fr)`, and `auto` floors each column at its MIN-CONTENT
      width -- a six-figure count is wider than a third of a 233px card, so the
      grid grew past its container instead of shrinking the cells. minmax(0,1fr)
      removes that floor, and the type is stepped down and set in tabular
      figures so the three columns stay the same width whatever the digits are.
      (The portrait rules already carried a min-width:0 patch for the same bug
      at the same root cause; this fixes it for every width at once.)

   2. Names ran to three lines on a five-column card, which pushed the price,
      the stats and everything under them out of step with the cards beside
      them -- the same misalignment the header reserve had just removed, coming
      back in through the text. Two lines, always: clamped so a long name cannot
      take a third, and floored so a short one still occupies two.
   --------------------------------------------------------------------------- */
#onlyf_models_data ul.details.au-stats,
#onlyf_models_data .onlyf_card.promoted ul.details.au-stats{
  grid-template-columns:repeat(3,minmax(0,1fr))!important}
#onlyf_models_data ul.details.au-stats li.au-stat{min-width:0!important;overflow:hidden}
#onlyf_models_data .au-stat__num{font-variant-numeric:tabular-nums}
@media screen and (min-width:1025px){
  #onlyf_models_data ul.details.au-stats li.au-stat{padding:9px 3px!important}
  #onlyf_models_data .au-stat__num{font-size:15px!important}
  #onlyf_models_data .au-stat__label{font-size:10px!important;gap:3px!important}
  #onlyf_models_data .au-chip{font-size:9px!important;padding:2px 5px!important}
  #onlyf_models_data .au-meta{font-size:12px!important;gap:4px 12px!important}
}
@media screen and (min-width:769px){
  #onlyf_models_data .onlyf_card .onlyf_card-body h2{
    display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    line-clamp:2;overflow:hidden!important;
    min-height:2.4em;line-height:1.2}
}

/* ---------------------------------------------------------------------------
   Mobile Grid view: the same fix, for the same reason.

   The two columns never lined up because the two card types sized their photo
   differently: an organic card draws the avatar full-bleed at aspect-ratio 3/4,
   a sponsored card had a flat `height:260px`. At a 185px column that is 247px
   against 260px, so every sponsored card's name sat lower than the organic card
   beside it and the mismatch grew or shrank with the phone's width. Both now
   use 3/4, which is width-proportional and therefore identical in both columns
   on every device.

   CTAs are pinned to the foot of the card here too; portrait cards already
   stretch to the row height, so without it the buttons floated at different
   heights in the two columns.
   --------------------------------------------------------------------------- */
@media screen and (max-width:768px){
  html.ff-view-portrait #onlyf_models_data .onlyf_card.promoted:not(.og-grounded-feature-card) .onlyf_card-header > a{
    display:block!important;width:100%!important;aspect-ratio:3/4!important;
    height:auto!important;overflow:hidden!important}
  html.ff-view-portrait #onlyf_models_data .onlyf_card.promoted:not(.og-grounded-feature-card) .onlyf_card-header > a picture{
    display:block!important;width:100%!important;height:100%!important}
  html.ff-view-portrait #onlyf_models_data .onlyf_card.promoted:not(.og-grounded-feature-card) .onlyf_card-header > a img{
    width:100%!important;height:100%!important;max-height:none!important;
    object-fit:cover!important;object-position:top center!important}
  html.ff-view-portrait #onlyf_models_data .onlyf_card{
    display:flex!important;flex-direction:column!important;justify-content:flex-start!important}
  html.ff-view-portrait #onlyf_models_data .onlyf_card .onlyf_card-body{flex:0 0 auto!important}
  html.ff-view-portrait #onlyf_models_data .onlyf_card .onlyf_btn_wrap{
    flex:0 0 auto!important;margin-top:auto!important}
}

/* ---------------------------------------------------------------------------
   CTAs on one baseline, sponsored and organic alike.

   A sponsored card reserves a strip at its foot for the "Promoted creator"
   ribbon, so its button stopped that much short of where the ordinary card's
   button stopped -- side by side in a two-column phone grid that reads as the
   sponsored button being knocked out of line. The ordinary cards now reserve
   the same strip: nothing moves on the sponsored card, its ribbon keeps its
   space, and the two buttons share a baseline. Paired with the identical
   label the two cards now carry, the CTA row reads as one row.
   --------------------------------------------------------------------------- */
#onlyf_models_data .onlyf_card:not(.promoted):not(.og-grounded-feature-card){
  padding-bottom:36px!important}
@media screen and (max-width:768px){
  /* Feed view gives each card the full screen, so there is nothing beside it to
     line up with and the reserve would only eat into the photo. */
  html:not(.ff-view-portrait) #onlyf_models_data .onlyf_card:not(.promoted){
    padding-bottom:0!important}
}

/* ---------------------------------------------------------------------------
   Form-submit links.

   A menu entry or card link whose destination is noindexed is rendered as a
   <button> that submits the shared hidden form, so the markup carries no href
   for a crawler to follow. It has to be indistinguishable from the anchor it
   replaces, or the menu ends up with two visibly different kinds of item.
   These are the browser's own button defaults being undone; the colour and
   size come from the .site-mega-link / card rules the button also carries.
   --------------------------------------------------------------------------- */
.onlyf-formlink{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;
  text-align:left;cursor:pointer;-webkit-appearance:none;appearance:none;width:auto}
.onlyf-formlink:hover,.onlyf-formlink:focus-visible{text-decoration:underline}
.site-mega-flat button.site-mega-link{display:block;width:100%;line-height:1.3}
.site-mega-flat button.site-mega-link:hover,
.site-mega-flat button.site-mega-link:focus-visible{color:#0a6abd;outline:0}
/* The fleet gives every control a 44px touch target on coarse pointers; inside
   a dense location list that would treble the menu's height, and these are
   text links, not buttons, so they keep the list's own line height. */
@media (pointer:coarse){
  .site-mega-flat button.site-mega-link{min-height:0}
}

/* ---------------------------------------------------------------------------
   Card location.

   One place name per card, under the stats. It reuses .onlyf_sponsored for
   structure because that is the live markup's shape, but that class is styled
   for the bold "Sponsored" line, so the location gets its own weight and
   colour here rather than shouting as loudly as a sponsorship label.
   --------------------------------------------------------------------------- */
.onlyf_model_location{display:flex;justify-content:center;margin:6px 0 0}
.onlyf_sponsored.onlyf-loc{display:inline-flex;align-items:center;gap:4px;
  margin:0;font-size:12px;font-weight:500;color:#5a6275;line-height:1.2;max-width:100%}
.onlyf-loc-pin{width:12px;height:12px;flex:0 0 auto;color:#0051AD}
.onlyf-loc-link{color:inherit;text-decoration:underline;text-underline-offset:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.onlyf-loc-link:hover,.onlyf-loc-link:focus-visible{color:#0a6abd}
/* Same reasoning as the mega-menu items: these are text, not tap targets, and
   the fleet's 44px coarse-pointer floor would otherwise stretch every card. */
@media (pointer:coarse){
  button.onlyf-loc-link{min-height:0}
}

/* ---------------------------------------------------------------------------
   Back to top.

   Lives at the right-hand end of the sticky bottom menu, as its last item
   (.ff-top-inbar). It is a sibling of the facet bar, not an item inside it:
   that bar scrolls horizontally on a phone, and a control that scrolls out of
   reach is not a control. So the bar becomes a row of [facets, which take the
   slack and scroll] + [this, pinned].

   .ff-top-float is the fallback for a page with no filter bar to sit in. Same
   control, parked bottom-right and revealed only once the page has actually
   been scrolled, since with no bar under it there is nothing to stop it
   covering a card.
   --------------------------------------------------------------------------- */
.ff-top{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1px;padding:0;border:0;color:#fff;cursor:pointer;line-height:1;
  -webkit-appearance:none;appearance:none}
.ff-top svg{width:18px;height:18px;display:block}
.ff-top .ff-top-label{font-size:9px;font-weight:700;letter-spacing:.06em}

/* In the bar: sized and coloured like the appearance-facet chips beside it, so
   it reads as part of the menu rather than as something dropped on top of it. */
.site-footer-sticky{display:flex;align-items:center;gap:8px}
.site-footer-sticky .onlyf-af-bar{flex:1 1 auto;min-width:0;margin-bottom:0}
.ff-top-inbar{flex:0 0 auto;width:46px;height:44px;border-radius:8px;
  background:#333;border:1px solid #4a4a4a}
.ff-top-inbar:hover,.ff-top-inbar:focus-visible{background:#0051AD;border-color:#0051AD;outline:0}
.ff-top-inbar:focus-visible{box-shadow:0 0 0 2px rgba(255,255,255,.85)}
@media(max-width:768px){
  .site-footer-sticky{gap:6px}
  /* The facet bar is negatively margined to bleed to the screen edges; keep
     that on the left, but stop it running under the button on the right. */
  .site-footer-sticky .onlyf-af-bar{margin-right:0!important;padding-right:2px!important}
}

/* Floating fallback. */
.ff-top-float{position:fixed;right:16px;bottom:88px;z-index:60;
  width:52px;height:52px;border-radius:50%;background:#0051AD;
  box-shadow:0 4px 14px rgba(0,0,0,.32);
  opacity:0;visibility:hidden;transform:translateY(8px)}
@media(prefers-reduced-motion:no-preference){
  .ff-top-float{transition:opacity .18s,transform .18s,visibility .18s}}
.ff-top-float.is-on{opacity:1;visibility:visible;transform:none}
.ff-top-float:hover,.ff-top-float:focus-visible{background:#0a6abd;outline:0}
.ff-top-float:focus-visible{box-shadow:0 0 0 3px rgba(255,255,255,.9),0 4px 14px rgba(0,0,0,.32)}
.ff-top-float svg{width:20px;height:20px}
@media(max-width:768px){.ff-top-float{right:12px;bottom:80px;width:46px;height:46px}
  .ff-top-float svg{width:18px;height:18px}}
