
:root{
  --bg:#f6f4ef;
  --surface:#ffffff;
  --surface-2:#fbfaf7;
  --ink:#111111;
  --muted:#6d6a64;
  --muted-2:#9b978f;
  --line:#d8d3c8;
  --line-strong:#bcb5a7;
  --black:#111111;
  --white:#ffffff;
  --accent:#a83b2d;
  --accent-2:#7f2b22;
  --success:#247a4d;
  --warning:#a66b00;
  --danger:#b52d22;
  --focus:#1c57ff;
  --shadow:0 18px 60px rgba(17,17,17,.08);
  --radius:18px;
  --radius-sm:12px;
  --radius-xs:8px;
  --font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.45;font-size:15px}
a{color:var(--ink);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
button,input,select,textarea{font:inherit}
img{max-width:100%;display:block}

/* ===== Shared layout ===== */
.site-header{position:sticky;top:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:72px;padding:14px clamp(18px,3vw,42px);background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);color:var(--ink)}
.brand-logo{display:flex;align-items:center;gap:12px;min-width:150px}.brand-logo img{width:180px;max-width:38vw;height:auto;object-fit:contain}.site-logo{font-weight:800;font-size:18px;letter-spacing:.02em}.site-logo span{color:var(--accent)}
.header-nav{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.public-nav{gap:24px;flex:1}.nav-link{font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--ink);opacity:.82}.nav-link.active,.nav-link:hover{opacity:1;color:var(--accent);text-decoration:none}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.phone-link{display:inline-flex;align-items:center;gap:8px;font-weight:800;white-space:nowrap;color:var(--ink)}.phone-link:before{content:"☎";font-size:15px}.phone-link-large{font-size:18px}.phone-link-large:before{font-size:18px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:999px;padding:12px 18px;font-weight:700;font-size:14px;line-height:1;cursor:pointer;transition:.18s ease;background:transparent;color:var(--ink);min-height:42px}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--black);border-color:var(--black);color:var(--white)}.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--white)}.btn-ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-ghost:hover{border-color:var(--black);background:var(--surface-2);color:var(--ink)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-block{width:100%}.btn-small{min-height:34px;padding:8px 12px;font-size:12px}.basket-button span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px}

input,select,textarea{width:100%;height:46px;background:#fff;color:var(--ink);border:1px solid var(--line-strong);border-radius:12px;padding:0 13px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}textarea{height:auto;min-height:106px;padding:13px;resize:vertical}select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:38px}input:focus,select:focus,textarea:focus{border-color:var(--focus);box-shadow:0 0 0 3px rgba(28,87,255,.12)}label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.11em;font-weight:800;color:var(--muted);margin-bottom:7px}.form-group{margin-bottom:16px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-row.four{grid-template-columns:repeat(4,minmax(0,1fr))}.form-hint,small{display:block;color:var(--muted);font-size:12px;margin-top:7px}.form-error,.form-success{display:none;padding:12px 14px;border-radius:12px;margin:12px 0 16px;font-weight:600}.form-error{background:#fff1ee;border:1px solid #efb8ad;color:var(--danger)}.form-success{background:#eef9f3;border:1px solid #a8dfbd;color:var(--success)}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:22px}.panel h2{font-size:22px;letter-spacing:-.02em;margin-bottom:14px}.section-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:800}
.status-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;border:1px solid var(--line);background:#fff;color:var(--muted)}.status-badge.pending{color:var(--warning);border-color:#e5c77f;background:#fff8e9}.status-badge.approved{color:var(--success);border-color:#94d4ad;background:#effaf4}.status-badge.rejected{color:var(--danger);border-color:#efb8ad;background:#fff1ee}

/* ===== Public home/catalog ===== */
.public-page{background:#fff}.home-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#000}.home-category-tile{position:relative;display:block;height:42vw;min-height:270px;max-height:460px;overflow:hidden;background:#ddd;color:#fff}.home-category-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.32));transition:.25s}.home-category-tile:hover:after{background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.18))}.home-category-tile img,.tile-placeholder{width:100%;height:100%;object-fit:cover}.home-category-tile img{transition:transform .55s ease;filter:saturate(.96) contrast(.98)}.home-category-tile:hover img{transform:scale(1.045)}.tile-placeholder{background:linear-gradient(135deg,#d9d6ce,#bbb4aa)}.home-category-tile span{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(18px,2vw,28px);font-weight:800;text-align:center;text-transform:uppercase;letter-spacing:.17em;text-shadow:0 8px 30px rgba(0,0,0,.35)}
.home-landing{background:#171717;color:#fff;padding:clamp(62px,9vw,132px) clamp(20px,6vw,92px) clamp(48px,7vw,86px)}
.home-landing-inner{max-width:1540px;margin:0 auto}.home-landing .section-eyebrow{color:#b9b2a8}.home-landing h1{max-width:900px;margin:18px 0 20px;font-size:clamp(50px,8vw,124px);line-height:.9;letter-spacing:-.08em;font-weight:800}.home-landing h1 em{font-style:normal;color:#d6a18f}.home-landing p{max-width:570px;color:#c9c4bc;font-size:clamp(16px,1.6vw,20px);line-height:1.55}.home-landing-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.home-landing .btn-ghost{background:transparent;border-color:#777;color:#fff}.home-landing .btn-ghost:hover{background:#fff;color:#111}.home-landing-stats{display:flex;gap:clamp(24px,6vw,90px);margin-top:70px;padding-top:20px;border-top:1px solid #45413d}.home-landing-stats div{display:flex;flex-direction:column;gap:3px}.home-landing-stats strong{font-size:28px;letter-spacing:-.04em}.home-landing-stats span{color:#aaa39a;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.home-categories-section{padding:clamp(48px,7vw,92px) clamp(16px,3vw,42px) 30px;background:#f6f4ef}.home-section-head{max-width:1540px;margin:0 auto 28px;display:flex;align-items:end;justify-content:space-between;gap:30px}.home-section-head h2{font-size:clamp(34px,4vw,62px);line-height:.95;letter-spacing:-.06em;margin-top:12px}.home-section-head p{max-width:420px;color:var(--muted);line-height:1.6}.home-category-grid{max-width:1540px;margin:0 auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;background:transparent}.home-category-tile{height:320px;min-height:0;max-height:none;border-radius:18px;background:#c8c2b8;box-shadow:0 12px 36px rgba(17,17,17,.08)}.home-category-tile:after{background:linear-gradient(180deg,rgba(17,17,17,.02) 25%,rgba(17,17,17,.72) 100%)}.home-category-tile:hover:after{background:linear-gradient(180deg,rgba(17,17,17,.02) 20%,rgba(17,17,17,.64) 100%)}.home-category-tile .category-tile-copy{left:20px;right:20px;top:auto;bottom:20px;transform:none;text-align:left;text-transform:none;letter-spacing:0;text-shadow:none;display:flex;flex-direction:column;gap:4px}.category-tile-copy b{font-size:22px;letter-spacing:-.03em}.category-tile-copy small{font-size:12px;line-height:1.35;color:rgba(255,255,255,.78)}.category-tile-copy i{font-style:normal;color:#fff;font-size:12px;font-weight:800;margin-top:7px}.category-tile-arrow{left:auto!important;right:18px;top:18px!important;transform:none!important;font-size:24px!important;letter-spacing:0!important}.category-loading,.catalog-error{grid-column:1/-1;padding:32px;background:#fff;border:1px dashed var(--line-strong);border-radius:18px;color:var(--muted);display:flex;flex-direction:column;gap:6px}.catalog-error b{color:var(--ink);font-size:18px}.catalog-error span{font-size:14px}.empty-state-icon{font-size:32px;color:var(--accent);margin-bottom:8px}.empty-state .btn{margin:18px auto 0}
.catalog-section{background:var(--bg);padding:54px clamp(16px,3vw,42px) 90px}.catalog-head{max-width:1540px;margin:0 auto 24px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.catalog-head h1{font-size:clamp(38px,5vw,78px);line-height:.95;letter-spacing:-.06em;font-weight:800;margin-bottom:10px}.catalog-head p{color:var(--muted);max-width:720px}.catalog-info-line{max-width:1540px;margin:0 auto 20px;color:var(--muted);font-weight:600}
.public-filters{max-width:1540px;margin:0 auto 28px;padding:18px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;grid-template-columns:2fr repeat(4,minmax(130px,1fr));gap:14px;align-items:end}.public-filters .form-group{margin-bottom:0}.search-wide{grid-column:span 2}.filter-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end}.filter-actions .btn{min-width:118px}.filter-pill-note{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;margin-top:6px}
.models-directory-grid{max-width:1540px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:70px 52px}.directory-card{min-width:0}.directory-photo-wrap{position:relative;display:block;aspect-ratio:1/1.18;background:#ebe8e0;border:1px solid var(--line);overflow:hidden;border-radius:8px}.directory-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .28s ease,transform .45s ease}.directory-photo.hover{opacity:0}.directory-photo-wrap:hover .directory-photo.primary{opacity:0;transform:scale(1.035)}.directory-photo-wrap:hover .directory-photo.hover{opacity:1;transform:scale(1.035)}.model-card-photo-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#e7e3da;color:var(--muted);font-weight:700}.directory-card-body{text-align:center;padding-top:18px}.directory-name{display:block;color:var(--ink);font-size:19px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.directory-name:hover{color:var(--accent)}.directory-meta{margin-top:8px;color:var(--muted);font-size:13px}.directory-params{margin:6px 0 14px;color:var(--muted-2);font-size:12px}.directory-badges{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:10px 0}.mini-badge{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 8px;font-size:11px;color:var(--muted);font-weight:700}.catalog-loading,.empty-state{grid-column:1/-1;text-align:center;padding:44px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted)}.empty-state-title{font-size:22px;color:var(--ink);font-weight:800;margin-bottom:4px}

/* Drawer booking */
.booking-drawer{position:fixed;inset:0;z-index:110;display:none;justify-content:flex-end;background:rgba(17,17,17,.42)}.booking-drawer.open{display:flex}.booking-drawer-panel{width:min(560px,100vw);height:100%;background:#fff;color:var(--ink);padding:32px;overflow:auto;box-shadow:-20px 0 70px rgba(0,0,0,.18)}.booking-drawer-panel h2{font-size:28px;letter-spacing:-.04em}.drawer-close{position:absolute;right:18px;top:14px;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:28px;cursor:pointer}.phone-row{grid-template-columns:140px 1fr}.basket-mini-card{display:grid;grid-template-columns:58px 1fr 32px;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:10px 0}.basket-mini-card img{width:58px;height:70px;object-fit:cover;border-radius:8px}.basket-mini-card span{display:block;color:var(--muted);font-size:12px}.basket-mini-card button{border:1px solid var(--line);background:#fff;border-radius:999px;width:30px;height:30px;cursor:pointer}.empty-mini{padding:16px;background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:12px;color:var(--muted);margin:12px 0}

/* Public profile */
.profile-public{background:var(--bg);padding:42px clamp(16px,3vw,42px) 80px}.profile-hero-public{max-width:1540px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.7fr) 430px;gap:34px;align-items:start}.profile-gallery-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.profile-photo-tile{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#e7e3da;aspect-ratio:1/1.2;cursor:zoom-in}.profile-photo-tile:first-child{grid-row:span 2;aspect-ratio:auto}.profile-photo-tile img{width:100%;height:100%;object-fit:cover;transition:.35s}.profile-photo-tile:hover img{transform:scale(1.035)}.profile-summary-card{position:sticky;top:96px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.profile-category{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-weight:800}.profile-summary-card h1{font-size:clamp(36px,4vw,56px);line-height:.95;letter-spacing:-.06em;margin:12px 0}.profile-summary-card p{color:var(--muted)}.profile-public-params{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0}.profile-public-params div{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface-2)}.profile-public-params span,.review-field-label{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.profile-public-params b{display:block;font-size:18px;margin-top:4px}.profile-details-panel{max-width:1540px;margin:26px auto 0}.profile-description{margin-top:18px;color:var(--muted);line-height:1.65}

/* Auth/registration/model dashboard */
.auth-wrapper{min-height:calc(100vh - 72px);display:flex;align-items:flex-start;justify-content:center;padding:42px 16px}.auth-card{width:min(840px,100%);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}.auth-card h1{font-size:34px;letter-spacing:-.04em}.subtitle{color:var(--muted);margin:6px 0 22px}.role-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:24px}.role-tab{padding:13px;border:1px solid var(--line-strong);border-radius:999px;text-align:center;cursor:pointer;font-weight:800;background:#fff}.role-tab.active{background:#111;color:#fff;border-color:#111}.auth-switch{text-align:center;margin-top:20px;color:var(--muted)}.auth-switch a{color:var(--accent);font-weight:800}.dashboard{max-width:1240px;margin:0 auto;padding:38px 16px}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}.dashboard-header h1{font-size:42px;letter-spacing:-.05em}.checkbox-row{display:flex;align-items:center;gap:10px;margin:10px 0}.checkbox-row input{width:18px;height:18px}.checkbox-row label{margin:0;color:var(--ink);font-size:14px;text-transform:none;letter-spacing:0}.upload-zone{border:1px dashed var(--line-strong);border-radius:var(--radius);padding:28px;text-align:center;background:var(--surface-2);cursor:pointer}.upload-zone:hover{border-color:var(--black)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:18px}.photo-item{position:relative;aspect-ratio:1/1.25;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:#e7e3da}.photo-item img{width:100%;height:100%;object-fit:cover}.photo-status,.photo-delete{position:absolute;top:8px;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:800}.photo-status{left:8px;padding:5px 8px}.photo-delete{right:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer}

/* Admin */
.admin-crm{max-width:1500px}.admin-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:20px}.admin-tab,.admin-filter-btn{border:1px solid var(--line-strong);background:#fff;color:var(--ink);border-radius:999px;padding:11px 16px;font-weight:800;cursor:pointer;white-space:nowrap}.admin-tab.active,.admin-filter-btn.active{background:#111;color:#fff;border-color:#111}.admin-search-panel{padding:18px}.admin-filter-row{display:flex;gap:8px;overflow:auto;margin-bottom:14px}.admin-profile-list{display:grid;gap:14px}.admin-model-card,.review-card,.tilda-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;color:var(--ink)}.admin-model-main,.review-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.admin-model-main h3,.review-card-name{font-size:21px;letter-spacing:-.03em}.admin-model-main p{color:var(--muted);margin-top:4px}.admin-model-links,.row-actions,.ranking-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.ranking-row label{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:13px;text-transform:none;letter-spacing:0}.ranking-row input{width:92px;height:36px}.admin-note-preview{margin-top:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px;color:var(--muted);white-space:pre-wrap}.review-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.review-fields>div{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px}.modal-overlay{position:fixed;inset:0;z-index:150;display:none;align-items:flex-start;justify-content:center;overflow:auto;padding:30px 16px;background:rgba(17,17,17,.5)}.modal-overlay.open{display:flex}.modal-card{position:relative;width:min(900px,100%);background:#fff;color:var(--ink);border-radius:var(--radius);box-shadow:0 30px 100px rgba(0,0,0,.24);padding:28px}.large-modal{width:min(1080px,100%)}.modal-section-title{font-size:16px;margin:26px 0 14px;padding-top:18px;border-top:1px solid var(--line);letter-spacing:-.02em}.photo-manager-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:18px}.photo-manager-item{position:relative;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px;cursor:grab}.photo-manager-item img{width:100%;aspect-ratio:1/1.25;object-fit:cover;border-radius:8px}.photo-manager-item span{display:block;color:var(--muted);font-size:12px;margin-top:6px}.photo-manager-item button{position:absolute;right:8px;top:8px;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer}.tilda-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.tilda-photo{aspect-ratio:1/1.18;border-radius:12px;overflow:hidden;background:#e7e3da;margin-bottom:12px;display:flex;align-items:center;justify-content:center;color:var(--muted)}.tilda-photo img{width:100%;height:100%;object-fit:cover}.link-button{border:0;background:transparent;color:var(--accent);font-weight:800;text-decoration:underline;cursor:pointer}.credentials-box{background:#eef9f3;border:1px solid #a8dfbd;padding:12px;border-radius:12px;margin-top:12px}code{background:#fff;border:1px solid var(--line);padding:2px 6px;border-radius:6px}.booking-models-list{display:grid;gap:8px;margin:12px 0}.booking-models-list a{color:var(--accent);font-weight:800;text-decoration:underline}

.lightbox-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}.lightbox-overlay.open{display:flex}.lightbox-overlay img{max-width:94vw;max-height:86vh;object-fit:contain}.lightbox-close,.lightbox-nav{position:absolute;background:#fff;color:#111;border:0;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.lightbox-close{right:24px;top:24px;width:44px;height:44px;font-size:28px}.lightbox-nav{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:28px}.lightbox-prev{left:24px}.lightbox-next{right:24px}

@media (max-width:1180px){.public-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.search-wide{grid-column:1/-1}.filter-actions{grid-column:1/-1;justify-content:flex-start}.models-directory-grid,.home-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-hero-public{grid-template-columns:1fr}.profile-summary-card{position:static}.public-nav{order:3;width:100%;justify-content:flex-start;overflow:auto;padding-top:8px}.site-header{flex-wrap:wrap}.review-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.site-header{padding:12px 16px}.brand-logo img{width:150px}.header-actions{width:100%;justify-content:space-between}.home-category-grid,.models-directory-grid,.profile-gallery-main{grid-template-columns:1fr}.home-category-tile{height:65vh;min-height:330px}.catalog-head{display:block}.public-filters{display:block;padding:16px}.public-filters .form-group{margin-bottom:14px}.filter-actions{display:grid;grid-template-columns:1fr 1fr}.form-row,.form-row.three,.form-row.four,.phone-row{grid-template-columns:1fr}.auth-card,.panel,.modal-card{padding:20px}.dashboard-header{display:block}.dashboard-header .btn{margin-top:12px}.review-fields{grid-template-columns:1fr}.profile-public-params{grid-template-columns:1fr}.booking-drawer-panel{padding:24px 18px}.directory-card-body{text-align:left}.directory-badges{justify-content:flex-start}.directory-name{font-size:18px}.catalog-head h1{font-size:42px}}

/* ===== UX fixes: contrast, filters, fixed editor, image containment ===== */
a{color:#111} a[href^="http"], .booking-models-list a{color:#7f2b22;text-decoration:underline;text-underline-offset:3px}.link-button{color:#7f2b22}.public-filters{grid-template-columns:2fr repeat(5,minmax(140px,1fr));align-items:start;border:2px solid #c7bfae}.public-filters select[multiple]{height:112px;background-image:none;padding-right:13px}.inline-check{display:flex;align-items:center;gap:8px;margin-top:8px;text-transform:none;letter-spacing:0;font-size:12px;color:var(--muted);font-weight:700}.inline-check input{width:auto;height:auto}.directory-photo-wrap{background:#f2f0eb}.directory-photo{object-fit:contain;background:#f2f0eb}.directory-photo-wrap:hover .directory-photo.primary,.directory-photo-wrap:hover .directory-photo.hover{transform:none}.profile-top-actions{max-width:1540px;margin:0 auto 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-photo-tile{display:flex;align-items:center;justify-content:center;background:#f2f0eb}.profile-photo-tile img{object-fit:contain;background:#f2f0eb}.profile-photo-tile:hover img{transform:none}.admin-model-main.with-thumb{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center}.admin-model-thumb{width:92px;height:118px;border-radius:12px;background:#f2f0eb;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden}.admin-model-thumb img{width:100%;height:100%;object-fit:contain}.admin-thumb-empty{font-size:12px;color:var(--muted);text-align:center}.admin-model-info{min-width:0}.ranking-row.single-position{background:#fbfaf7;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.modal-overlay{align-items:center;overflow:hidden;padding:18px;background:rgba(17,17,17,.58)}.modal-card{max-height:calc(100vh - 36px);overflow:auto}.modal-card .drawer-close{position:sticky;top:0;float:right;z-index:5}.large-modal h2{position:sticky;top:0;background:#fff;z-index:4;padding:8px 54px 14px 0;border-bottom:1px solid var(--line)}.advanced-admin-fields{margin:14px 0;border:1px dashed var(--line-strong);border-radius:12px;padding:12px;background:#fbfaf7}.advanced-admin-fields summary{cursor:pointer;font-weight:800;color:var(--muted)}.photo-manager-item img{object-fit:contain;background:#f2f0eb}.status-badge.approved:before{content:'✓'}.status-badge.pending:before{content:'⏳'}.status-badge.rejected:before{content:'×'}
@media(max-width:1180px){.public-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-model-main.with-thumb{grid-template-columns:76px 1fr}.admin-model-main.with-thumb .status-badge{grid-column:1/-1;justify-self:start}.admin-model-thumb{width:76px;height:98px}}
@media(max-width:720px){.public-filters select[multiple]{height:96px}.profile-top-actions{display:grid;grid-template-columns:1fr}.admin-model-main.with-thumb{grid-template-columns:68px 1fr}.admin-model-thumb{width:68px;height:88px}.modal-overlay{align-items:stretch;padding:0}.modal-card{max-height:100vh;border-radius:0}}


/* ===== layout hotfix 2026-06-22 ===== */
body.category-page .home-category-grid{display:none}
body.category-page .catalog-section{padding-top:34px}
.public-filters{display:grid;grid-template-columns:minmax(280px,1.35fr) 220px 180px 160px 160px 160px 160px;gap:14px 16px;align-items:end;padding:20px;border:2px solid #bfb7a9;background:#fff;border-radius:22px;box-shadow:0 18px 44px rgba(17,17,17,.07)}
.public-filters .search-wide{grid-column:span 2}.public-filters .form-group{min-width:0}.public-filters input,.public-filters select,.multi-select summary{height:48px;border:1px solid #aaa295;border-radius:12px;background-color:#fff}.filter-actions{grid-column:6/8;justify-self:end;display:flex;gap:10px;align-items:end}.filter-actions .btn{min-width:128px}.city-filter-group{position:relative}.multi-select{position:relative}.multi-select summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:0 38px 0 13px;cursor:pointer;color:#111}.multi-select summary::-webkit-details-marker{display:none}.multi-select summary:after{content:'▾';position:absolute;right:14px;top:12px}.multi-select[open] summary{border-color:#111;box-shadow:0 0 0 3px rgba(17,17,17,.08)}.multi-select-menu{position:absolute;z-index:90;top:56px;left:0;width:min(320px,90vw);max-height:260px;overflow:auto;background:#fff;border:1px solid #aaa295;border-radius:14px;box-shadow:0 18px 54px rgba(0,0,0,.14);padding:8px}.multi-option{display:flex;align-items:center;gap:10px;margin:0;padding:10px 8px;border-radius:10px;text-transform:none;letter-spacing:0;font-size:14px;font-weight:650;color:#111;cursor:pointer}.multi-option:hover{background:#f6f4ef}.multi-option input{width:18px;height:18px;flex:0 0 auto}.multi-empty{padding:12px;color:#6d6a64}.inline-check{white-space:nowrap}.directory-params{line-height:1.5}.catalog-head{align-items:center}.catalog-head .phone-link-large{align-self:center}
@media(max-width:1280px){.public-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.public-filters .search-wide{grid-column:1/-1}.filter-actions{grid-column:1/-1;justify-self:end}}
@media(max-width:760px){.public-filters{display:block}.public-filters .form-group{margin-bottom:14px}.filter-actions{display:grid;grid-template-columns:1fr 1fr}.multi-select-menu{position:static;width:100%;box-shadow:none;margin-top:8px}.catalog-section{padding-top:28px}}

/* ===== Public catalog landing refresh ===== */
body.category-page .home-landing,body.category-page .home-categories-section{display:none}
.directory-photo-wrap{border-radius:16px}.directory-photo-badge{position:absolute;left:12px;bottom:12px;z-index:3;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);font-size:11px;font-weight:800;color:#171717;opacity:0;transform:translateY(5px);transition:opacity .18s ease,transform .18s ease}.directory-photo-wrap:hover .directory-photo-badge,.directory-photo-wrap:focus-visible .directory-photo-badge{opacity:1;transform:none}.directory-card-kicker{min-height:18px;color:var(--muted-2);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.directory-meta{font-weight:650}.directory-specs{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:12px 0 15px}.directory-specs span{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#5e5a54;font-size:11px;font-weight:700}.directory-card-actions{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;min-height:44px}.directory-card-actions .btn{min-width:104px;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.directory-card-actions .btn:active{transform:scale(.98)}.btn-selected{background:#111;border-color:#111;color:#fff}.btn-selected:hover{background:var(--accent);border-color:var(--accent);color:#fff}
@media(max-width:1180px){.home-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.home-landing{padding:54px 20px 44px}.home-landing h1{font-size:54px}.home-landing-stats{gap:20px;margin-top:48px;flex-wrap:wrap}.home-landing-stats strong{font-size:23px}.home-landing-stats span{font-size:10px}.home-section-head{display:block}.home-section-head p{margin-top:14px}.home-category-grid{grid-template-columns:1fr}.home-category-tile{height:230px}.home-category-tile .category-tile-copy{bottom:16px}.catalog-error{padding:24px}.directory-card-body{padding-top:14px}.directory-card-kicker{font-size:10px}.directory-name{letter-spacing:.06em}.directory-specs{justify-content:flex-start;margin:10px 0 13px}.directory-card-actions{justify-content:stretch}.directory-card-actions .btn{flex:1;min-width:0}.directory-photo-badge{opacity:1;transform:none}}

/* Admin category/gender UX fix */
#modal_category[multiple] {
    min-height: 148px;
    padding: 10px 12px;
    line-height: 1.45;
    background: #fff;
}
#modal_category[multiple] option {
    padding: 8px 10px;
    border-radius: 8px;
    margin-bottom: 4px;
}
#modal_gender {
    background: #fff;
}
.admin-model-info h3 + p {
    line-height: 1.5;
}

/* ===== Filter UX rebuild: desktop grid + mobile modal ===== */
.catalog-head-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mobile-filter-btn{display:none}.filter-shell{max-width:1540px;margin:0 auto 28px}.filter-panel{background:#fff;border:1.5px solid #c8c0b2;border-radius:24px;box-shadow:0 18px 54px rgba(17,17,17,.07);padding:22px}.filter-panel-head{display:none}.smart-filter-grid{display:grid;grid-template-columns:minmax(320px,1.5fr) repeat(5,minmax(160px,1fr));gap:14px;align-items:start}.filter-control{min-width:0}.filter-control label{display:block;margin-bottom:8px}.tag-input-box{min-height:50px;border:1px solid #aaa295;border-radius:14px;background:#fff;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:7px 10px}.tag-input-box:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px rgba(28,87,255,.12)}.tag-input-box input{border:0;box-shadow:none;height:32px;padding:0;min-width:190px;flex:1}.tag-input-box input:focus{box-shadow:none}.tag-input-chips{display:flex;gap:6px;flex-wrap:wrap}.filter-chip,.selected-chip{display:inline-flex;align-items:center;gap:7px;border-radius:999px;background:#111;color:#fff;border:0;padding:7px 10px;font-size:12px;font-weight:800}.filter-chip button,.selected-chip span{border:0;background:transparent;color:#fff;font-weight:900;cursor:pointer}.filter-suggestions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.filter-suggestions button{border:1px solid #d8d3c8;background:#fbfaf7;border-radius:999px;padding:6px 10px;font-size:12px;cursor:pointer}.nice-multi{position:relative}.nice-multi summary{list-style:none;height:50px;border:1px solid #aaa295;border-radius:14px;background:#fff;padding:0 40px 0 14px;display:flex;align-items:center;position:relative;cursor:pointer;font-weight:700;white-space:nowrap}.nice-multi summary::-webkit-details-marker{display:none}.nice-multi summary:after{content:'▾';position:absolute;right:14px;top:14px}.nice-multi[open] summary{border-color:#111;box-shadow:0 0 0 3px rgba(17,17,17,.08)}.nice-menu{position:absolute;top:58px;left:0;z-index:95;width:min(340px,92vw);max-height:310px;overflow:auto;background:#fff;border:1px solid #aaa295;border-radius:16px;box-shadow:0 22px 70px rgba(0,0,0,.16);padding:8px}.nice-option{display:flex;align-items:center;gap:10px;margin:0;padding:10px 9px;border-radius:12px;text-transform:none;letter-spacing:0;color:#111;font-size:14px;font-weight:700;cursor:pointer}.nice-option:hover{background:#f6f4ef}.nice-option input,.mini-check input{width:18px!important;height:18px!important;min-width:18px;padding:0;box-shadow:none}.mini-check{display:flex;align-items:center;gap:9px;margin:8px 8px 4px;padding:10px 8px;border-top:1px solid var(--line);text-transform:none;letter-spacing:0;color:#111;font-size:13px;font-weight:700}.selected-filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.selected-chip{background:#fff;border:1px solid #111;color:#111;cursor:pointer}.selected-chip span{color:#111}.filter-bottom-actions{display:flex;justify-content:flex-end;margin-top:16px}.public-filters{display:none!important}
@media(max-width:1280px){.smart-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-name-control{grid-column:1/-1}}
@media(max-width:760px){.mobile-filter-btn{display:inline-flex}.catalog-head-actions .phone-link-large{display:none}.filter-shell{display:none;position:fixed;inset:0;z-index:130;background:rgba(17,17,17,.5);margin:0;max-width:none;padding:0}.filter-shell.open{display:block}.filter-panel{position:absolute;left:0;right:0;bottom:0;max-height:88vh;overflow:auto;border-radius:24px 24px 0 0;padding:18px}.filter-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.filter-panel-head b{display:block;font-size:22px}.filter-panel-head span{display:block;color:var(--muted);font-size:13px}.filter-close{position:static!important;flex:0 0 auto}.smart-filter-grid{display:block}.filter-control{margin-bottom:16px}.nice-menu{position:static;width:100%;max-height:220px;box-shadow:none;margin-top:8px}.filter-bottom-actions{position:sticky;bottom:0;background:#fff;padding-top:12px}.filter-bottom-actions .btn{width:100%}.selected-filter-chips{margin-bottom:10px}.tag-input-box input{min-width:120px}}

/* ===== admin additions ===== */
.admin-toolbar-extra{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.admin-selection-builder{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin:16px 0}.admin-selection-builder h3{margin-bottom:8px}.casting-card,.selection-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:12px}.casting-card h3,.selection-card h3{margin-bottom:6px}.public-selection-hero{max-width:1540px;margin:0 auto 28px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}

/* ===== Refined filter UI: compact, overlay dropdowns, no layout shifts ===== */
.public-page .filter-shell{max-width:1540px;margin:0 auto 26px;padding:0 0;}
.public-page .filter-panel{background:#fff;border:1px solid #d8d2c6;border-radius:22px;box-shadow:0 18px 46px rgba(28,24,18,.06);padding:20px 22px 18px;overflow:visible;position:relative;}
.public-page .smart-filter-grid{display:grid!important;grid-template-columns:minmax(280px,1.25fr) repeat(5,minmax(150px,1fr));gap:16px;align-items:start;}
.public-page .filter-control{position:relative;min-width:0;}
.public-page .filter-control>label{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:12px;line-height:1;text-transform:uppercase;letter-spacing:.13em;color:#74706a;font-weight:900;}
.public-page .filter-input,.public-page .nice-multi>summary{width:100%;height:50px;border:1px solid #c7c0b4;border-radius:14px;background:#fff;color:#171717;font-size:15px;font-weight:700;padding:0 42px 0 15px;box-shadow:none;outline:none;box-sizing:border-box;}
.public-page .filter-input{padding-right:15px;font-weight:650;}
.public-page .filter-input::placeholder{color:#a29b92;font-weight:600;}
.public-page .filter-input:focus,.public-page .nice-multi[open]>summary{border-color:#111;box-shadow:0 0 0 4px rgba(17,17,17,.06);}
.public-page .filter-help{margin-top:7px;font-size:12px;line-height:1.35;color:#8a8379;}
.public-page .nice-multi{position:relative;display:block;}
.public-page .nice-multi>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.public-page .nice-multi>summary::-webkit-details-marker{display:none;}
.public-page .nice-multi>summary:after{content:'⌄';position:absolute;right:15px;top:15px;font-size:18px;line-height:1;color:#111;transition:transform .15s ease;}
.public-page .nice-multi[open]>summary:after{transform:rotate(180deg);}
.public-page .nice-menu{position:absolute!important;z-index:300;top:58px;left:0;width:min(300px,calc(100vw - 32px));max-height:258px;overflow:auto;background:#fff;border:1px solid #d2cabd;border-radius:16px;box-shadow:0 24px 70px rgba(25,22,18,.18);padding:8px;}
.public-page .filter-control:nth-child(n+5) .nice-menu{right:0;left:auto;}
.public-page .nice-option{display:flex;align-items:center;gap:10px;min-height:40px;margin:0;padding:9px 10px;border-radius:11px;text-transform:none;letter-spacing:0;color:#111;font-size:14px;font-weight:750;line-height:1.2;cursor:pointer;transition:background .12s ease;}
.public-page .nice-option:hover{background:#f5f2ec;}
.public-page .nice-option input,.public-page .mini-check input{appearance:auto!important;-webkit-appearance:checkbox!important;width:16px!important;height:16px!important;min-width:16px!important;max-width:16px!important;padding:0!important;margin:0!important;border-radius:4px!important;box-shadow:none!important;}
.public-page .mini-check{display:flex;align-items:center;gap:9px;margin:6px 4px 2px;padding:10px 8px 5px;border-top:1px solid #ece7df;text-transform:none;letter-spacing:0;color:#4b4741;font-size:13px;font-weight:750;line-height:1.25;}
.public-page .multi-empty{padding:12px 10px;color:#8a8379;font-size:14px;}
.public-page .selected-filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;min-height:0;}
.public-page .selected-filter-chips:empty{display:none;}
.public-page .selected-chip{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:#111;color:#fff;border:1px solid #111;padding:8px 11px;font-size:12px;font-weight:850;line-height:1;cursor:pointer;box-shadow:none;}
.public-page .selected-chip span{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font-weight:900;}
.public-page .filter-bottom-actions,.public-page .filter-suggestions,.public-page .tag-input-box,.public-page .tag-input-chips,.public-page .filter-chip{display:none!important;}
.public-page .catalog-head{margin-bottom:22px;}
.public-page .mobile-filter-btn{display:none;}
@media(max-width:1280px){.public-page .smart-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.public-page .filter-name-control{grid-column:1/-1;}.public-page .filter-control:nth-child(n) .nice-menu{left:0;right:auto;}}
@media(max-width:760px){.public-page .mobile-filter-btn{display:inline-flex;}.public-page .catalog-head-actions .phone-link-large{display:none;}.public-page .filter-shell{display:none;position:fixed;inset:0;z-index:130;background:rgba(17,17,17,.52);margin:0;max-width:none;padding:0;}.public-page .filter-shell.open{display:block;}.public-page .filter-panel{position:absolute;left:0;right:0;bottom:0;max-height:86vh;overflow:auto;border-radius:24px 24px 0 0;padding:18px 16px 20px;}.public-page .filter-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;}.public-page .filter-panel-head b{display:block;font-size:22px;line-height:1.1;}.public-page .filter-panel-head span{display:block;margin-top:4px;color:#777068;font-size:13px;}.public-page .filter-close{position:static!important;flex:0 0 auto;}.public-page .smart-filter-grid{display:grid!important;grid-template-columns:1fr;gap:14px;}.public-page .nice-menu{position:absolute!important;top:56px;width:100%;max-height:220px;}.public-page .selected-filter-chips{position:sticky;bottom:0;background:#fff;padding:12px 0 0;margin-top:10px;border-top:1px solid #eee8de;}.public-page .filter-help{font-size:11px;}.public-page .filter-input,.public-page .nice-multi>summary{height:48px;}}

/* ===== Final catalog filter: fashion-store style, compact overlays ===== */
.public-page .filter-shell{
  max-width:1540px!important;
  margin:0 auto 30px!important;
  padding:0 32px!important;
  position:relative!important;
  z-index:20!important;
}
.public-page .filter-panel{
  position:relative!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0!important;
}
.public-page .filter-panel-head{display:none!important;}
.public-page .shop-filter-bar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 300px!important;
  gap:28px!important;
  align-items:start!important;
  width:100%!important;
}
.public-page .shop-filter-facets{
  display:flex!important;
  align-items:flex-start!important;
  flex-wrap:wrap!important;
  gap:22px 30px!important;
  min-width:0!important;
}
.public-page .shop-filter-search{
  position:relative!important;
  display:flex!important;
  justify-content:flex-end!important;
  min-width:0!important;
}
.public-page .shop-filter-search:after{
  content:'⌕';
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  font-size:22px;
  color:#8b867d;
  pointer-events:none;
}
.public-page .filter-input{
  width:100%!important;
  height:42px!important;
  border:1px solid #d6d0c8!important;
  border-radius:3px!important;
  background:#fff!important;
  color:#171717!important;
  font-size:15px!important;
  font-weight:500!important;
  padding:0 42px 0 14px!important;
  box-shadow:none!important;
  outline:none!important;
  letter-spacing:.01em!important;
}
.public-page .filter-input::placeholder{color:#aaa49b!important;font-weight:500!important;}
.public-page .filter-input:focus{border-color:#111!important;box-shadow:0 0 0 3px rgba(17,17,17,.06)!important;}
.public-page .facet-dropdown,
.public-page .nice-multi{
  position:relative!important;
  display:block!important;
  flex:0 0 auto!important;
  min-width:auto!important;
  z-index:30!important;
}
.public-page .facet-dropdown[open]{z-index:80!important;}
.public-page .facet-dropdown>summary,
.public-page .nice-multi>summary{
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  min-height:32px!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  padding:0 18px 0 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#171717!important;
  box-shadow:none!important;
  cursor:pointer!important;
  list-style:none!important;
  text-transform:uppercase!important;
  letter-spacing:.12em!important;
  font-size:14px!important;
  line-height:1.25!important;
  font-weight:650!important;
  white-space:nowrap!important;
  overflow:visible!important;
}
.public-page .facet-dropdown>summary::-webkit-details-marker,
.public-page .nice-multi>summary::-webkit-details-marker{display:none!important;}
.public-page .facet-dropdown>summary:after,
.public-page .nice-multi>summary:after{
  content:''!important;
  position:absolute!important;
  right:0!important;
  top:50%!important;
  width:7px!important;
  height:7px!important;
  margin-top:-5px!important;
  border-right:1.5px solid #111!important;
  border-bottom:1.5px solid #111!important;
  transform:rotate(45deg)!important;
  transition:transform .14s ease!important;
}
.public-page .facet-dropdown[open]>summary:after,
.public-page .nice-multi[open]>summary:after{transform:rotate(225deg)!important;margin-top:-1px!important;}
.public-page .facet-dropdown>summary:hover,
.public-page .nice-multi>summary:hover{color:#000!important;}
.public-page .facet-count{
  display:none;
  min-width:18px;
  height:18px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#111;
  color:#fff;
  font-style:normal;
  font-size:11px;
  font-weight:800;
  letter-spacing:0;
  padding:0 5px;
}
.public-page .facet-dropdown.has-selection .facet-count{display:inline-flex;}
.public-page .facet-menu,
.public-page .nice-menu{
  position:absolute!important;
  top:38px!important;
  left:0!important;
  z-index:500!important;
  width:250px!important;
  min-width:250px!important;
  max-width:calc(100vw - 48px)!important;
  max-height:300px!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  background:#fff!important;
  border:1px solid #e4dfd6!important;
  border-radius:2px!important;
  box-shadow:0 18px 50px rgba(0,0,0,.12)!important;
  padding:8px!important;
}
.public-page .shop-filter-facets .facet-dropdown:nth-last-child(-n+2) .facet-menu,
.public-page .shop-filter-facets .facet-dropdown:nth-last-child(-n+2) .nice-menu{left:auto!important;right:0!important;}
.public-page .nice-option{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  min-height:38px!important;
  margin:0!important;
  padding:7px 8px!important;
  border-radius:4px!important;
  color:#1d1d1d!important;
  background:transparent!important;
  text-transform:none!important;
  letter-spacing:0!important;
  font-size:15px!important;
  font-weight:500!important;
  line-height:1.25!important;
  cursor:pointer!important;
}
.public-page .nice-option:hover{background:#f5f2ee!important;}
.public-page .nice-option input,
.public-page .mini-check input{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  max-width:20px!important;
  margin:0!important;
  padding:0!important;
  border:2px solid #8b867d!important;
  border-radius:2px!important;
  background:#fff!important;
  box-shadow:none!important;
  display:inline-grid!important;
  place-content:center!important;
}
.public-page .nice-option input:checked,
.public-page .mini-check input:checked{border-color:#111!important;background:#111!important;}
.public-page .nice-option input:checked:after,
.public-page .mini-check input:checked:after{
  content:'✓';
  color:#fff;
  font-size:14px;
  line-height:1;
  font-weight:900;
}
.public-page .mini-check{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin:6px 0 0!important;
  padding:10px 8px 6px!important;
  border-top:1px solid #eee8df!important;
  color:#1d1d1d!important;
  text-transform:none!important;
  letter-spacing:0!important;
  font-size:14px!important;
  font-weight:500!important;
}
.public-page .selected-filter-chips{
  display:flex!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  margin-top:20px!important;
  min-height:0!important;
}
.public-page .selected-filter-chips:empty{display:none!important;}
.public-page .selected-chip{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  height:34px!important;
  border:0!important;
  border-radius:999px!important;
  background:#eeeeec!important;
  color:#171717!important;
  padding:0 12px!important;
  font-size:14px!important;
  font-weight:500!important;
  line-height:1!important;
  cursor:pointer!important;
  box-shadow:none!important;
}
.public-page .selected-chip:hover{background:#e2e0dd!important;}
.public-page .selected-chip span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  height:auto!important;
  border-radius:0!important;
  background:transparent!important;
  color:#171717!important;
  font-size:18px!important;
  font-weight:400!important;
  line-height:1!important;
}
.public-page .multi-empty{padding:10px;color:#8c867d;font-size:14px;}
.public-page .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.public-page .filter-control,
.public-page .filter-control>label,
.public-page .filter-help,
.public-page .tag-input-box,
.public-page .tag-input-chips,
.public-page .filter-chip,
.public-page .filter-suggestions,
.public-page .filter-bottom-actions{display:none!important;}
.public-page .smart-filter-grid{display:block!important;}
.public-page .catalog-info-line{max-width:1540px;margin:26px auto 18px;padding:0 32px;color:#68635c;font-size:15px;font-weight:600;}
@media(max-width:1120px){
  .public-page .shop-filter-bar{grid-template-columns:1fr!important;gap:16px!important;}
  .public-page .shop-filter-search{justify-content:flex-start!important;max-width:360px!important;}
}
@media(max-width:760px){
  .public-page .mobile-filter-btn{display:inline-flex!important;}
  .public-page .catalog-head-actions .phone-link-large{display:none!important;}
  .public-page .filter-shell{display:none!important;position:fixed!important;inset:0!important;z-index:130!important;background:rgba(17,17,17,.55)!important;margin:0!important;max-width:none!important;padding:0!important;}
  .public-page .filter-shell.open{display:block!important;}
  .public-page .filter-panel{position:absolute!important;left:0!important;right:0!important;bottom:0!important;max-height:88vh!important;overflow:auto!important;background:#fff!important;border-radius:24px 24px 0 0!important;padding:18px 18px 22px!important;}
  .public-page .filter-panel-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;margin-bottom:18px!important;}
  .public-page .filter-panel-head b{display:block!important;font-size:22px!important;line-height:1.1!important;}
  .public-page .filter-panel-head span{display:block!important;margin-top:5px!important;color:#777068!important;font-size:13px!important;}
  .public-page .filter-close{position:static!important;flex:0 0 auto!important;}
  .public-page .shop-filter-bar{display:block!important;}
  .public-page .shop-filter-search{max-width:none!important;margin-bottom:18px!important;}
  .public-page .shop-filter-facets{display:flex!important;flex-direction:column!important;gap:0!important;}
  .public-page .facet-dropdown{width:100%!important;border-top:1px solid #eee8df!important;padding:0!important;}
  .public-page .facet-dropdown:last-child{border-bottom:1px solid #eee8df!important;}
  .public-page .facet-dropdown>summary{width:100%!important;min-height:52px!important;padding:0 24px 0 0!important;justify-content:flex-start!important;font-size:13px!important;}
  .public-page .facet-menu,.public-page .nice-menu{position:static!important;width:100%!important;min-width:0!important;max-width:none!important;max-height:230px!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding:0 0 10px!important;}
  .public-page .selected-filter-chips{position:sticky!important;bottom:0!important;background:#fff!important;padding:14px 0 0!important;margin-top:16px!important;border-top:1px solid #eee8df!important;}
}

/* Application request modal: the request is a focused workspace rather than
   a narrow drawer. Keep the selected models and the form visible together. */
body.drawer-open{overflow:hidden}
[hidden]{display:none!important}
.booking-account-note[hidden]{display:none!important}
.booking-drawer{align-items:center!important;justify-content:center!important;padding:24px 32px;background:rgba(20,20,20,.48);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.booking-drawer-panel.booking-request-modal{position:relative;width:min(1180px,calc(100vw - 64px));height:auto;max-height:calc(100vh - 48px);padding:40px;background:#fff;overflow:auto;transform:none!important;border-radius:20px;box-shadow:0 24px 90px rgba(0,0,0,.22)}
.booking-request-modal h1{margin:0;font-size:clamp(30px,3vw,48px);line-height:1.05;letter-spacing:-.045em}
.booking-request-modal h2{margin:0;font-size:18px;letter-spacing:-.02em}
.booking-modal-lead{max-width:720px;margin:14px 0 0;color:var(--muted);font-size:16px;line-height:1.5}
.booking-modal-close{position:absolute;right:24px;top:22px;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;aspect-ratio:1/1;display:grid;place-items:center;padding:0 0 2px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:24px;line-height:1;cursor:pointer}
.booking-modal-close:hover{background:#111;color:#fff;border-color:#111}
.booking-modal-close:focus-visible,.booking-request-modal :focus-visible{outline:2px solid #111;outline-offset:3px}
.booking-modal-grid{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:40px;margin-top:32px}
.booking-selected-panel,.booking-form{min-width:0}
.booking-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.booking-section-head h2 span{color:var(--muted);font-weight:500}
.booking-clear-btn{border:0;background:transparent;color:var(--muted);font-size:12px;text-decoration:underline;cursor:pointer;padding:5px}
.booking-clear-btn:hover{color:#111}
.booking-model-card{display:grid;grid-template-columns:88px minmax(0,1fr) 34px;gap:13px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.booking-model-card img{width:88px;height:108px;object-fit:cover;border-radius:10px;background:var(--surface-2)}
.booking-model-card-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.booking-model-card-copy b{font-size:17px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.booking-model-card-copy span{color:var(--muted);font-size:13px}
.booking-model-card-copy a{color:var(--ink);font-size:12px;text-decoration:underline;margin-top:5px}
.booking-model-remove{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;aspect-ratio:1/1;display:grid;place-items:center;padding:0 0 2px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:22px;line-height:1;cursor:pointer}
.booking-model-remove:hover{background:#111;color:#fff;border-color:#111}
.booking-empty-models{display:flex;flex-direction:column;gap:6px;padding:20px;border:1px dashed var(--line-strong);border-radius:12px;color:var(--muted);font-size:13px;line-height:1.45}
.booking-empty-models b{color:var(--ink);font-size:15px}
.booking-add-models{width:100%;margin-top:16px;padding:12px;border:1px dashed var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;font-size:14px}
.booking-add-models:hover{background:var(--surface-2)}
.booking-form{display:flex;flex-direction:column;gap:24px}
.booking-form-section{padding:0 0 24px;border-bottom:1px solid var(--line)}
.booking-form-section h2{margin-bottom:18px}
.booking-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 14px}
.booking-form .form-group{min-width:0;margin:0}
.booking-form label{display:block;margin:0 0 7px;color:var(--ink);font-size:13px;font-weight:600}
.booking-form label sup{color:#b42318}
.booking-form input,.booking-form select,.booking-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:14px;padding:0 14px;min-height:50px}
.booking-form textarea{display:block;min-height:118px;padding-top:13px;resize:vertical;line-height:1.45}
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:#111;outline:0}
.booking-form input.has-error,.booking-form select.has-error,.booking-form textarea.has-error{border-color:#c62828}
.booking-phone-line{display:block}
.booking-field-error{display:block;min-height:16px;margin-top:4px;color:#b42318;font-size:12px;line-height:1.25}
.booking-counter{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px}
.booking-counter .booking-field-error{flex:1}
.booking-counter>span:last-child{padding-top:4px;white-space:nowrap}
.booking-consents{margin-top:-8px}
.consent-row{display:flex!important;align-items:flex-start;gap:9px!important;font-weight:400!important;line-height:1.4}
.consent-row input{width:18px!important;min-height:18px!important;margin-top:1px;padding:0}
.consent-row a{color:inherit}
.booking-privacy-note{display:flex;gap:8px;align-items:flex-start;min-width:0;color:var(--muted);font-size:12px;line-height:1.35}
.booking-privacy-note span{display:flex;flex-direction:column}
.booking-privacy-note b{color:var(--ink);font-weight:600}
.booking-privacy-note small{font-size:11px}
.booking-form-footer{display:flex;align-items:center;justify-content:space-between;gap:18px}
.booking-submit-btn{min-width:220px;min-height:50px}
.booking-submit-btn:disabled{cursor:not-allowed;opacity:.42}
.booking-form-error{margin:0;color:#b42318}
.booking-success-state{text-align:center;padding:72px 24px 64px}
.booking-success-state h1{margin:16px 0 8px;font-size:40px}
.booking-success-state p{max-width:520px;margin:0 auto 24px;color:var(--muted);line-height:1.5}
.booking-success-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto;border-radius:50%;background:#111;color:#fff;font-size:34px}
.booking-toast{position:fixed;left:50%;bottom:24px;z-index:3;display:flex;align-items:center;gap:14px;transform:translateX(-50%);padding:11px 14px 11px 16px;border-radius:999px;background:#111;color:#fff;font-size:13px;box-shadow:0 8px 30px rgba(0,0,0,.2);white-space:nowrap}
.booking-toast button{border:0;background:transparent;color:#fff;text-decoration:underline;font:inherit;font-weight:700;cursor:pointer;padding:2px}
.booking-success-close{display:grid;place-items:center;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;aspect-ratio:1/1;margin:20px auto 0;padding:0 0 2px;border:1px solid var(--line-strong);border-radius:50%;background:#fff;color:var(--ink);font-size:26px;line-height:1;cursor:pointer}
.booking-success-close:hover{background:#111;color:#fff;border-color:#111}
@media(max-width:900px){
  .booking-modal-grid{grid-template-columns:1fr;gap:28px}
  .booking-selected-panel{padding-bottom:4px}
}
@media(max-width:600px){
  .booking-drawer{padding:12px!important;align-items:flex-start!important}
  .booking-drawer-panel.booking-request-modal{width:100%;max-height:calc(100vh - 24px);padding:26px 18px 24px;border-radius:16px}
  .booking-modal-close{right:14px;top:14px;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;font-size:24px}
  .booking-request-modal h1{padding-right:42px;font-size:30px}
  .booking-modal-lead{font-size:14px}
  .booking-form .form-row{grid-template-columns:1fr;gap:0}
  .booking-phone-line{display:block}
  .booking-form-footer{align-items:stretch;flex-direction:column}
  .booking-submit-btn{width:100%}
  .booking-success-state{padding:48px 8px}
}

/* ===== Filter V4: compact store dropdown, overlay menus ===== */
.public-page .filter-shell{
  max-width:1540px!important;
  margin:0 auto 28px!important;
  padding:0 32px!important;
  position:relative!important;
  z-index:60!important;
}
.public-page .filter-panel{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  overflow:visible!important;
}
.public-page .filter-panel-head{display:none!important;}
.public-page .catalog-filter-v4{
  position:relative!important;
  width:100%!important;
  padding:0!important;
  background:transparent!important;
  color:#141414!important;
  font-family:var(--font)!important;
}
.public-page .filter-v4-top{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 280px!important;
  gap:28px!important;
  align-items:start!important;
}
.public-page .filter-v4-facets{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:16px 28px!important;
  min-width:0!important;
}
.public-page .filter-v4-dropdown{
  position:relative!important;
  display:inline-flex!important;
  width:auto!important;
  min-width:0!important;
  flex:0 0 auto!important;
  z-index:1!important;
}
.public-page .filter-v4-dropdown.open{z-index:999!important;}
.public-page .filter-v4-trigger{
  appearance:none!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:none!important;
  width:auto!important;
  height:36px!important;
  min-height:36px!important;
  padding:0 18px 0 0!important;
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  cursor:pointer!important;
  color:#151515!important;
  text-transform:uppercase!important;
  letter-spacing:.13em!important;
  font-size:13px!important;
  font-weight:750!important;
  line-height:1!important;
  white-space:nowrap!important;
  position:relative!important;
}
.public-page .filter-v4-trigger:hover{color:#000!important;}
.public-page .filter-v4-trigger:after{
  content:''!important;
  width:7px!important;
  height:7px!important;
  border-right:1.5px solid currentColor!important;
  border-bottom:1.5px solid currentColor!important;
  transform:rotate(45deg)!important;
  position:absolute!important;
  right:1px!important;
  top:12px!important;
  transition:transform .15s ease, top .15s ease!important;
}
.public-page .filter-v4-dropdown.open .filter-v4-trigger:after{transform:rotate(225deg)!important;top:16px!important;}
.public-page .filter-v4-trigger em{
  display:none!important;
  min-width:18px!important;
  height:18px!important;
  padding:0 5px!important;
  border-radius:999px!important;
  background:#111!important;
  color:#fff!important;
  font-style:normal!important;
  font-size:11px!important;
  font-weight:850!important;
  letter-spacing:0!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:18px!important;
}
.public-page .filter-v4-dropdown.has-selection .filter-v4-trigger em{display:inline-flex!important;}
.public-page .filter-v4-menu{
  display:none!important;
  position:absolute!important;
  left:0!important;
  top:42px!important;
  z-index:1000!important;
  width:236px!important;
  min-width:236px!important;
  max-width:min(236px,calc(100vw - 32px))!important;
  max-height:286px!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  padding:8px!important;
  background:#fff!important;
  border:1px solid #e4ded3!important;
  border-radius:12px!important;
  box-shadow:0 18px 48px rgba(17,17,17,.16)!important;
}
.public-page .filter-v4-dropdown.open .filter-v4-menu{display:block!important;}
.public-page .filter-v4-dropdown:nth-last-child(-n+2) .filter-v4-menu{left:auto!important;right:0!important;}
.public-page .filter-v4-option{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  min-height:34px!important;
  margin:0!important;
  padding:7px 8px!important;
  border-radius:8px!important;
  background:transparent!important;
  color:#1c1c1c!important;
  cursor:pointer!important;
  text-transform:none!important;
  letter-spacing:0!important;
  font-size:14px!important;
  line-height:1.2!important;
  font-weight:600!important;
  user-select:none!important;
}
.public-page .filter-v4-option:hover{background:#f5f2ee!important;}
.public-page .filter-v4-option input{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:inline-grid!important;
  place-content:center!important;
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  max-width:16px!important;
  min-height:16px!important;
  max-height:16px!important;
  padding:0!important;
  margin:0!important;
  border:1.5px solid #8d877d!important;
  border-radius:4px!important;
  background:#fff!important;
  box-shadow:none!important;
  outline:none!important;
  flex:0 0 16px!important;
}
.public-page .filter-v4-option input:checked{
  background:#111!important;
  border-color:#111!important;
}
.public-page .filter-v4-option input:checked:before{
  content:'✓'!important;
  color:#fff!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:900!important;
}
.public-page .filter-v4-option span{
  display:block!important;
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.public-page .filter-v4-option-muted{
  margin-top:6px!important;
  padding-top:10px!important;
  border-top:1px solid #ede7df!important;
  color:#6f6a62!important;
}
.public-page .filter-v4-empty{padding:10px 8px;color:#8b867d;font-size:13px;font-weight:600;}
.public-page .filter-v4-search{
  position:relative!important;
  min-width:0!important;
  width:100%!important;
  max-width:280px!important;
  justify-self:end!important;
}
.public-page .filter-v4-search-input{
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  border:1px solid #d8d2c8!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#151515!important;
  padding:0 40px 0 14px!important;
  font-size:14px!important;
  font-weight:550!important;
  letter-spacing:.01em!important;
  box-shadow:none!important;
}
.public-page .filter-v4-search-input::placeholder{color:#9f988f!important;}
.public-page .filter-v4-search-input:focus{border-color:#111!important;box-shadow:0 0 0 4px rgba(17,17,17,.06)!important;}
.public-page .filter-v4-search span{position:absolute!important;right:12px!important;top:50%!important;transform:translateY(-50%)!important;color:#6f6a62!important;font-size:20px!important;pointer-events:none!important;}
.public-page .filter-v4-chips{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  margin:16px 0 0!important;
  padding:0!important;
  min-height:0!important;
}
.public-page .filter-v4-chips:empty{display:none!important;}
.public-page .selected-chip{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  height:30px!important;
  border:1px solid #ded8cf!important;
  border-radius:999px!important;
  background:#f0ede8!important;
  color:#252525!important;
  padding:0 9px 0 11px!important;
  font-size:13px!important;
  font-weight:650!important;
  line-height:1!important;
  box-shadow:none!important;
  cursor:pointer!important;
}
.public-page .selected-chip:hover{background:#111!important;border-color:#111!important;color:#fff!important;}
.public-page .selected-chip span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:16px!important;
  height:16px!important;
  border-radius:50%!important;
  background:rgba(0,0,0,.08)!important;
  color:inherit!important;
  font-size:13px!important;
  font-weight:800!important;
}
.public-page .selected-chip:hover span{background:rgba(255,255,255,.18)!important;}
.public-page .shop-filter-bar,.public-page .shop-filter-facets,.public-page .shop-filter-search{display:none!important;}
@media (max-width: 980px){
  .public-page .filter-v4-top{grid-template-columns:1fr!important;gap:14px!important;}
  .public-page .filter-v4-search{justify-self:start!important;max-width:340px!important;}
}
@media (max-width: 760px){
  .public-page .filter-shell{display:none!important;position:fixed!important;inset:0!important;z-index:130!important;margin:0!important;max-width:none!important;padding:0!important;background:rgba(17,17,17,.55)!important;}
  .public-page .filter-shell.open{display:block!important;}
  .public-page .filter-panel{position:absolute!important;left:0!important;right:0!important;bottom:0!important;max-height:88vh!important;overflow:auto!important;background:#fff!important;border-radius:24px 24px 0 0!important;padding:18px!important;}
  .public-page .filter-panel-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;margin-bottom:16px!important;}
  .public-page .filter-panel-head b{display:block!important;font-size:22px!important;line-height:1.1!important;}
  .public-page .filter-panel-head span{display:block!important;margin-top:4px!important;color:#777068!important;font-size:13px!important;}
  .public-page .filter-close{position:static!important;flex:0 0 auto!important;}
  .public-page .filter-v4-top{display:block!important;}
  .public-page .filter-v4-search{max-width:none!important;margin-bottom:14px!important;}
  .public-page .filter-v4-facets{display:block!important;}
  .public-page .filter-v4-dropdown{display:block!important;width:100%!important;border-top:1px solid #eee8df!important;}
  .public-page .filter-v4-dropdown:last-child{border-bottom:1px solid #eee8df!important;}
  .public-page .filter-v4-trigger{width:100%!important;height:50px!important;justify-content:flex-start!important;font-size:13px!important;}
  .public-page .filter-v4-trigger:after{right:2px!important;top:19px!important;}
  .public-page .filter-v4-dropdown.open .filter-v4-trigger:after{top:23px!important;}
  .public-page .filter-v4-menu{position:static!important;width:100%!important;min-width:0!important;max-width:none!important;max-height:220px!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0 0 10px!important;}
  .public-page .filter-v4-chips{position:sticky!important;bottom:0!important;background:#fff!important;margin-top:14px!important;padding:12px 0 0!important;border-top:1px solid #eee8df!important;}
}

/* === CRM/UX additions 2026-06-23 === */
.admin-filter-grid{grid-template-columns:minmax(260px,1.6fr) repeat(6,minmax(120px,1fr));align-items:end;gap:14px}.admin-selection-strip{margin-top:14px}.selection-empty-line{padding:12px 14px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);background:#faf8f3}.selection-workbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.05)}.selection-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.selection-chip{border:1px solid #dfdacd;background:#f5f2ec;border-radius:999px;padding:7px 10px;font-weight:700;cursor:pointer;color:#25231f}.admin-booking-tabs{display:flex;gap:10px;flex-wrap:wrap}.casting-editor textarea{min-height:130px}.casting-preview-row{display:flex;gap:18px;align-items:flex-start}.casting-thumb{width:140px;height:100px;object-fit:contain;border:1px solid var(--line);border-radius:14px;background:#f4f1ea}.directory-photo{object-fit:contain;background:#eee9df}.directory-photo-wrap{background:#eee9df}.profile-hero-two-col{display:grid;grid-template-columns:minmax(0,1.35fr) 420px;gap:34px;align-items:start}.profile-gallery-contain{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profile-gallery-contain .profile-photo-tile{aspect-ratio:3/4;background:#f1eee7;border:1px solid var(--line);border-radius:16px;overflow:hidden}.profile-gallery-contain .profile-photo-tile img{width:100%;height:100%;object-fit:contain;background:#f1eee7}.profile-summary-sticky{position:sticky;top:92px}.right-side-params{display:grid;gap:0;margin:18px 0}.profile-param-row{display:grid;grid-template-columns:minmax(130px,1fr) auto 28px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.profile-param-row span{color:var(--muted);font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.profile-param-row b{font-size:17px}.inline-edit-btn{width:26px;height:26px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:900;line-height:1}.inline-edit-btn:hover{background:#111;color:#fff}@media(max-width:1100px){.admin-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-hero-two-col{grid-template-columns:1fr}.profile-summary-sticky{position:static}}@media(max-width:760px){.admin-filter-grid{grid-template-columns:1fr}.selection-workbar{align-items:flex-start;flex-direction:column}.profile-gallery-contain{grid-template-columns:1fr}.casting-preview-row{flex-direction:column}.casting-thumb{width:100%;height:180px}}



   Карточки моделей: фото заполняет весь заданный шейп без белых полей.
   Важно: это применяется к плиткам каталога/подборок, а не к детальной
   галерее просмотра, где фото может показываться целиком.
   ========================================================= */

.model-card .model-photo,
.model-card .card-photo,
.model-card .photo,
.model-card .model-image,
.model-card .image-wrap,
.model-card .model-card-photo,
.model-card .card-image,
.model-card .profile-photo,
.catalog-card .model-photo,
.catalog-card .card-photo,
.catalog-card .photo,
.catalog-card .model-image,
.catalog-card .image-wrap,
.catalog-card .card-image,
.selection-card .model-photo,
.selection-card .card-photo,
.selection-card .photo,
.selection-card .model-image,
.selection-card .image-wrap,
.selection-card .card-image {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  border-radius: 14px !important;
  background: #e9e7df !important;
  display: block !important;
  position: relative !important;
}

.model-card .model-photo img,
.model-card .card-photo img,
.model-card .photo img,
.model-card .model-image img,
.model-card .image-wrap img,
.model-card .model-card-photo img,
.model-card .card-image img,
.model-card .profile-photo img,
.catalog-card .model-photo img,
.catalog-card .card-photo img,
.catalog-card .photo img,
.catalog-card .model-image img,
.catalog-card .image-wrap img,
.catalog-card .card-image img,
.selection-card .model-photo img,
.selection-card .card-photo img,
.selection-card .photo img,
.selection-card .model-image img,
.selection-card .image-wrap img,
.selection-card .card-image img,
.models-grid .model-card img:first-child,
.models-grid .catalog-card img:first-child,
.public-model-card img:first-child,
.model-card > a > img:first-child,
.catalog-card > a > img:first-child {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  background: #e9e7df !important;
}

/* Если hover-второе фото есть вторым img внутри обёртки — оно тоже должно
   занимать весь шейп, иначе при наведении опять появятся поля. */
.model-card .model-photo img + img,
.model-card .card-photo img + img,
.model-card .photo img + img,
.model-card .model-image img + img,
.model-card .image-wrap img + img,
.catalog-card .model-photo img + img,
.catalog-card .card-photo img + img,
.catalog-card .photo img + img,
.catalog-card .model-image img + img,
.catalog-card .image-wrap img + img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
}

/* Публичные плитки каталога: одинаковый визуальный ритм, без растягивания карточек. */
.models-grid,
.catalog-grid,
.selection-grid {
  align-items: start !important;
}

.model-card,
.catalog-card,
.public-model-card,
.selection-card {
  overflow: visible !important;
}

/* На мобильных фото остаётся плотным, но немного выше для портретных снимков. */
@media (max-width: 640px) {
  .model-card .model-photo,
  .model-card .card-photo,
  .model-card .photo,
  .model-card .model-image,
  .model-card .image-wrap,
  .catalog-card .model-photo,
  .catalog-card .card-photo,
  .catalog-card .photo,
  .catalog-card .model-image,
  .catalog-card .image-wrap,
  .selection-card .model-photo,
  .selection-card .card-photo,
  .selection-card .photo,
  .selection-card .model-image,
  .selection-card .image-wrap {
    aspect-ratio: 3 / 4 !important;
  }
}

/* Детальная карточка/галерея: там оставляем фото целиком, чтобы не резать
   портфолио при просмотре конкретной модели. */
.model-detail-gallery img,
.profile-gallery img,
.gallery-main img,
.model-profile-gallery img,
.detail-photo img,
.model-detail img {
  object-fit: contain;
}



   Единый режим фото для всех карточек моделей на сайте:
   каталог, категории, подборки, админка, Из Tilda.
   Фото заполняет весь заданный шейп без белых полей.
   ========================================================= */

/* 1) Универсальные контейнеры фото-карточек */
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile
) :is(
  .model-photo,
  .model-image,
  .card-photo,
  .card-image,
  .photo,
  .image,
  .image-wrap,
  .photo-wrap,
  .avatar-wrap,
  .profile-photo,
  .model-card-photo,
  .tilda-photo,
  .tilda-image,
  .admin-model-photo,
  .admin-photo,
  .thumbnail,
  .thumb
) {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  border-radius: 14px !important;
  background: #e9e7df !important;
  position: relative !important;
  display: block !important;
  flex: 0 0 auto !important;
}

/* 2) Все img внутри карточек заполняют контейнер */
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile
) :is(
  .model-photo,
  .model-image,
  .card-photo,
  .card-image,
  .photo,
  .image,
  .image-wrap,
  .photo-wrap,
  .avatar-wrap,
  .profile-photo,
  .model-card-photo,
  .tilda-photo,
  .tilda-image,
  .admin-model-photo,
  .admin-photo,
  .thumbnail,
  .thumb
) img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  background: #e9e7df !important;
}

/* 3) Если изображение лежит прямо в карточке без обёртки */
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile
) > img:first-child,
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile
) > a:first-child > img:first-child,
.models-grid :is(.model-card, .catalog-card, .public-model-card) img:first-child,
.catalog-grid :is(.model-card, .catalog-card, .public-model-card) img:first-child,
.selection-grid :is(.model-card, .catalog-card, .selection-card) img:first-child {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: 14px !important;
  background: #e9e7df !important;
}

/* 4) Hover-второе фото: тоже весь шейп */
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-tile
) :is(
  .model-photo,
  .model-image,
  .card-photo,
  .card-image,
  .photo,
  .image-wrap,
  .photo-wrap,
  .tilda-photo,
  .tilda-image
) img + img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
}

/* 5) Админские маленькие превью: без белых полей, но компактно */
.admin-dashboard :is(.admin-model-photo, .admin-photo, .model-thumb, .thumb, .thumbnail),
.admin-dashboard :is(.admin-model-photo, .admin-photo, .model-thumb, .thumb, .thumbnail) img {
  object-fit: cover !important;
  object-position: center top !important;
  background: #e9e7df !important;
}

/* 6) Не ломаем детальную галерею анкеты: там фото можно смотреть целиком.
      Если потом нужно строго cover и внутри галереи — заменить contain на cover. */
:is(
  .model-detail-gallery,
  .profile-gallery,
  .gallery-main,
  .model-profile-gallery,
  .detail-photo,
  .model-detail,
  .profile-detail-gallery
) img {
  object-fit: contain;
  background: #f3f1ea;
}

/* 7) Мобильные карточки — чуть более портретный шейп */
@media (max-width: 640px) {
  :is(
    .model-card,
    .catalog-card,
    .public-model-card,
    .selection-card,
    .admin-model-card,
    .tilda-card,
    .tilda-model-card,
    .model-row-card,
    .profile-card,
    .model-tile
  ) :is(
    .model-photo,
    .model-image,
    .card-photo,
    .card-image,
    .photo,
    .image,
    .image-wrap,
    .photo-wrap,
    .avatar-wrap,
    .profile-photo,
    .model-card-photo,
    .tilda-photo,
    .tilda-image,
    .admin-model-photo,
    .admin-photo,
    .thumbnail,
    .thumb
  ),
  :is(
    .model-card,
    .catalog-card,
    .public-model-card,
    .selection-card,
    .admin-model-card,
    .tilda-card,
    .tilda-model-card,
    .model-row-card,
    .profile-card,
    .model-tile
  ) > img:first-child {
    aspect-ratio: 3 / 4 !important;
  }
}



   Фото-карточки по всему сайту:
   - вертикальные фото получают портретный шейп;
   - горизонтальные фото получают горизонтальный шейп;
   - квадратные фото получают квадратный шейп;
   - само фото всегда заполняет шейп без белых полей.
   Технически это называется:
   aspect-ratio + object-fit: cover + JS orientation detection.
   ========================================================= */

:root {
  --model-photo-bg: #e9e7df;
  --model-photo-radius: 14px;
}

/* Основные карточки/плитки, где есть фото модели */
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile,
  .card
).photo-ready {
  overflow: visible;
}

/* Обёртки фото внутри любых карточек */
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile,
  .card
) :is(
  .model-photo,
  .model-image,
  .card-photo,
  .card-image,
  .photo,
  .image,
  .image-wrap,
  .photo-wrap,
  .avatar-wrap,
  .profile-photo,
  .model-card-photo,
  .tilda-photo,
  .tilda-image,
  .admin-model-photo,
  .admin-photo,
  .thumbnail,
  .thumb,
  .model-photo-frame
) {
  width: 100% !important;
  overflow: hidden !important;
  border-radius: var(--model-photo-radius) !important;
  background: var(--model-photo-bg) !important;
  position: relative !important;
  display: block !important;
  flex: 0 0 auto !important;
  line-height: 0 !important;
  box-sizing: border-box !important;
}

/* Если img лежит прямо внутри карточки, превращаем его в полноценный шейп */
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile,
  .card
) > img:first-child,
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile,
  .card
) > a:first-child > img:first-child {
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  height: auto !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: var(--model-photo-radius) !important;
  background: var(--model-photo-bg) !important;
}

/* Базовый режим до определения ориентации: аккуратный портрет */
.model-photo-frame,
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile,
  .card
) :is(
  .model-photo,
  .model-image,
  .card-photo,
  .card-image,
  .photo,
  .image,
  .image-wrap,
  .photo-wrap,
  .avatar-wrap,
  .profile-photo,
  .model-card-photo,
  .tilda-photo,
  .tilda-image
) {
  aspect-ratio: 4 / 5 !important;
}

/* Ориентации, которые проставляет JS по naturalWidth/naturalHeight */
.photo-orientation-portrait {
  aspect-ratio: 4 / 5 !important;
}

.photo-orientation-landscape {
  aspect-ratio: 4 / 3 !important;
}

.photo-orientation-square {
  aspect-ratio: 1 / 1 !important;
}

/* Для больших hero/detail блоков допустим более широкий кадр */
.model-detail-photo.photo-orientation-landscape,
.profile-hero-photo.photo-orientation-landscape,
.gallery-main.photo-orientation-landscape {
  aspect-ratio: 16 / 10 !important;
}

.model-detail-photo.photo-orientation-portrait,
.profile-hero-photo.photo-orientation-portrait,
.gallery-main.photo-orientation-portrait {
  aspect-ratio: 4 / 5 !important;
}

/* Все изображения внутри фото-шейпов: только cover */
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-row-card,
  .profile-card,
  .model-tile,
  .card
) :is(
  .model-photo,
  .model-image,
  .card-photo,
  .card-image,
  .photo,
  .image,
  .image-wrap,
  .photo-wrap,
  .avatar-wrap,
  .profile-photo,
  .model-card-photo,
  .tilda-photo,
  .tilda-image,
  .admin-model-photo,
  .admin-photo,
  .thumbnail,
  .thumb,
  .model-photo-frame
) img,
.model-photo-frame img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  background: var(--model-photo-bg) !important;
}

/* Hover-второе фото тоже полностью покрывает тот же шейп */
:is(
  .model-card,
  .catalog-card,
  .public-model-card,
  .selection-card,
  .admin-model-card,
  .tilda-card,
  .tilda-model-card,
  .model-tile,
  .card
) :is(
  .model-photo,
  .model-image,
  .card-photo,
  .card-image,
  .photo,
  .image-wrap,
  .photo-wrap,
  .tilda-photo,
  .tilda-image,
  .model-photo-frame
) img + img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
}

/* Админские маленькие превью — тоже без белых полей */
.admin-dashboard :is(.admin-model-photo, .admin-photo, .model-thumb, .thumb, .thumbnail) {
  overflow: hidden !important;
  background: var(--model-photo-bg) !important;
}

.admin-dashboard :is(.admin-model-photo, .admin-photo, .model-thumb, .thumb, .thumbnail) img,
.admin-dashboard img.admin-model-photo,
.admin-dashboard img.admin-photo,
.admin-dashboard img.model-thumb,
.admin-dashboard img.thumb,
.admin-dashboard img.thumbnail {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
}

/* Детальная карточка модели: убираем огромный пустой шейп.
   Главное фото занимает понятную колонку, но не раздувает страницу. */
.model-detail-layout,
.profile-detail-layout,
.model-profile-layout {
  align-items: start !important;
}

.model-detail-gallery,
.profile-gallery,
.model-profile-gallery,
.gallery-main,
.detail-photo,
.model-detail-photo,
.profile-hero-photo {
  overflow: hidden !important;
  border-radius: var(--model-photo-radius) !important;
  background: var(--model-photo-bg) !important;
  max-height: min(78vh, 760px) !important;
}

:is(
  .model-detail-gallery,
  .profile-gallery,
  .model-profile-gallery,
  .gallery-main,
  .detail-photo,
  .model-detail-photo,
  .profile-hero-photo
) img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
}

/* Защита от старых правил contain на карточках */
.models-grid img,
.catalog-grid img,
.selection-grid img {
  object-fit: cover !important;
}

/* Мобильная версия: карточки чуть более портретные */
@media (max-width: 640px) {
  .photo-orientation-landscape {
    aspect-ratio: 4 / 3 !important;
  }

  .photo-orientation-portrait,
  .model-photo-frame,
  :is(.model-card, .catalog-card, .public-model-card, .selection-card) :is(.model-photo, .model-image, .card-photo, .card-image, .photo, .image-wrap) {
    aspect-ratio: 3 / 4 !important;
  }

  .model-detail-gallery,
  .profile-gallery,
  .model-profile-gallery,
  .gallery-main,
  .detail-photo,
  .model-detail-photo,
  .profile-hero-photo {
    max-height: 70vh !important;
  }
}



   1) Каталожные карточки: фото всегда заполняет заданный шейп.
   2) Детальная карточка: галерея 2 в ряд без пустых проплешин.
   3) Параметры модели: компактно, без поломки текста.
   ========================================================= */

:root {
  --ma-photo-bg: #e9e7df;
  --ma-photo-radius: 14px;
}

/* ---------- 1. КАРТОЧКИ В КАТАЛОГАХ / КАТЕГОРИЯХ ---------- */

/* Все возможные обёртки фото в карточках каталога */
:is(.models-grid, .catalog-grid, .selection-grid) 
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile)
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile),
:is(.models-grid, .catalog-grid, .selection-grid) 
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) {
  overflow: visible !important;
}

/* Контейнер фотографии в карточке */
:is(.models-grid, .catalog-grid, .selection-grid)
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile)
:is(.model-photo, .model-image, .card-photo, .card-image, .photo, .image-wrap, .photo-wrap, .profile-photo, .model-card-photo),
:is(.models-grid, .catalog-grid, .selection-grid)
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) 
:is(.model-photo, .model-image, .card-photo, .card-image, .photo, .image-wrap, .photo-wrap, .profile-photo, .model-card-photo),
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) .model-photo,
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) .model-image,
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) .card-photo,
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) .card-image,
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) .image-wrap,
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) .photo-wrap {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border-radius: var(--ma-photo-radius) !important;
  background: var(--ma-photo-bg) !important;
  position: relative !important;
  display: block !important;
  line-height: 0 !important;
}

/* Любая картинка в карточке занимает всю площадь шейпа */
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) 
:is(.model-photo, .model-image, .card-photo, .card-image, .photo, .image-wrap, .photo-wrap, .profile-photo, .model-card-photo) img,
:is(.models-grid, .catalog-grid, .selection-grid) 
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) img:first-child,
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) > img:first-child,
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) > a:first-child > img:first-child {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: var(--ma-photo-radius) !important;
  background: var(--ma-photo-bg) !important;
}

/* Если img лежит напрямую в карточке — делаем его самим шейпом */
:is(.models-grid, .catalog-grid, .selection-grid) 
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) > img:first-child,
:is(.models-grid, .catalog-grid, .selection-grid) 
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile) > a:first-child > img:first-child {
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
}

/* hover-второе фото также покрывает весь шейп */
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile)
:is(.model-photo, .model-image, .card-photo, .card-image, .photo, .image-wrap, .photo-wrap) img + img,
:is(.model-card, .catalog-card, .public-model-card, .selection-card, .model-tile)
:is(.model-photo, .model-image, .card-photo, .card-image, .photo, .image-wrap, .photo-wrap) picture + img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
}

/* ---------- 2. ДЕТАЛЬНАЯ КАРТОЧКА МОДЕЛИ ---------- */

/* Общий лейаут: на десктопе фото слева, параметры справа, без разъезда текста */
.model-detail-layout,
.model-profile-layout,
.profile-detail-layout,
.model-public-layout,
.profile-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr) !important;
  gap: 32px !important;
  align-items: start !important;
}

/* Галерея внутри карточки: строго 2 в ряд, одинаковые отступы, без дыр */
.model-detail-gallery,
.profile-gallery,
.model-profile-gallery,
.gallery-grid,
.profile-detail-gallery {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: start !important;
  width: 100% !important;
  background: transparent !important;
  max-height: none !important;
  overflow: visible !important;
}

/* Каждый элемент галереи */
.model-detail-gallery > *,
.profile-gallery > *,
.model-profile-gallery > *,
.gallery-grid > *,
.profile-detail-gallery > * {
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  border-radius: var(--ma-photo-radius) !important;
  background: var(--ma-photo-bg) !important;
  display: block !important;
  line-height: 0 !important;
}

/* Фото в детальной галерее тоже заполняют свой шейп */
.model-detail-gallery img,
.profile-gallery img,
.model-profile-gallery img,
.gallery-grid img,
.profile-detail-gallery img,
.detail-photo img,
.model-detail-photo img,
.profile-hero-photo img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: var(--ma-photo-radius) !important;
  background: var(--ma-photo-bg) !important;
}

/* Убираем старые огромные одиночные шейпы */
.gallery-main,
.detail-photo,
.model-detail-photo,
.profile-hero-photo {
  max-height: none !important;
  overflow: hidden !important;
  background: transparent !important;
}

/* Если есть отдельный hero-снимок, он не должен создавать гигантскую пустоту */
.gallery-main > *,
.detail-photo > *,
.model-detail-photo > *,
.profile-hero-photo > * {
  aspect-ratio: 4 / 5 !important;
}

/* ---------- 3. ПАРАМЕТРЫ МОДЕЛИ ---------- */

.model-info-panel,
.profile-info-panel,
.model-params,
.profile-params,
.model-detail-info,
.model-public-info {
  font-size: 14px !important;
  line-height: 1.35 !important;
  color: #111 !important;
  overflow-wrap: anywhere !important;
}

.model-info-panel h1,
.profile-info-panel h1,
.model-detail-info h1,
.model-public-info h1 {
  font-size: clamp(32px, 5vw, 68px) !important;
  line-height: 0.95 !important;
  letter-spacing: -0.04em !important;
  margin: 0 0 18px !important;
}

.model-param-row,
.param-row,
.profile-param-row,
.model-info-row {
  display: grid !important;
  grid-template-columns: minmax(120px, 0.8fr) minmax(0, 1fr) auto !important;
  gap: 10px !important;
  align-items: center !important;
  padding: 8px 0 !important;
  border-bottom: 1px solid rgba(0,0,0,.08) !important;
}

.model-param-label,
.param-label,
.profile-param-label {
  color: rgba(0,0,0,.55) !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  font-weight: 700 !important;
}

.model-param-value,
.param-value,
.profile-param-value {
  color: #111 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  min-width: 0 !important;
}

/* Карандашик администратора меньше и аккуратнее */
.admin-edit-param,
.inline-edit-btn,
.param-edit-btn,
.edit-param-btn,
button[title*="Редактировать"],
button[aria-label*="Редактировать"] {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  line-height: 1 !important;
  display: inline-grid !important;
  place-items: center !important;
}

/* Нижние дублирующие плашки параметров в карточке скрываем, если они остались старой разметкой */
.model-extra-params,
.profile-extra-params,
.model-bottom-params,
.model-details-extra,
.extra-model-info {
  display: none !important;
}

/* ---------- МОБИЛЬНАЯ ВЕРСИЯ ---------- */

@media (max-width: 860px) {
  .model-detail-layout,
  .model-profile-layout,
  .profile-detail-layout,
  .model-public-layout,
  .profile-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 22px !important;
  }

  /* На мобильном: имя и параметры идут выше галереи, если в HTML порядок иной —
     CSS order аккуратно переставляет основные блоки. */
  .model-info-panel,
  .profile-info-panel,
  .model-detail-info,
  .model-public-info {
    order: 1 !important;
    width: 100% !important;
  }

  .model-detail-gallery,
  .profile-gallery,
  .model-profile-gallery,
  .gallery-grid,
  .profile-detail-gallery {
    order: 2 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .model-detail-gallery > *,
  .profile-gallery > *,
  .model-profile-gallery > *,
  .gallery-grid > *,
  .profile-detail-gallery > * {
    aspect-ratio: 4 / 5 !important;
  }

  .model-param-row,
  .param-row,
  .profile-param-row,
  .model-info-row {
    grid-template-columns: 1fr auto !important;
    gap: 6px 10px !important;
  }

  .model-param-label,
  .param-label,
  .profile-param-label {
    grid-column: 1 / -1 !important;
    font-size: 11px !important;
  }

  .model-param-value,
  .param-value,
  .profile-param-value {
    font-size: 14px !important;
  }
}

@media (max-width: 520px) {
  .model-detail-gallery,
  .profile-gallery,
  .model-profile-gallery,
  .gallery-grid,
  .profile-detail-gallery {
    grid-template-columns: 1fr 1fr !important;
  }

  .model-info-panel h1,
  .profile-info-panel h1,
  .model-detail-info h1,
  .model-public-info h1 {
    font-size: clamp(32px, 11vw, 48px) !important;
  }
}



   Исправляет реальные причины белых полей:
   - убирает padding у контейнера фото;
   - заставляет img быть absolute inset:0;
   - задаёт единую карточную сетку;
   - детальная галерея всегда 2 фото в ряд на десктопе.
   ========================================================= */

:root {
  --photo-radius: 14px;
  --photo-bg: #ece9df;
}

/* ---------- КАТАЛОГ / КАТЕГОРИИ ---------- */
.models-grid,
.catalog-grid,
.selection-grid,
#modelsGrid,
#modelsList,
.models-list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(220px, 1fr)) !important;
  gap: 58px 54px !important;
  align-items: start !important;
}

.model-card,
.catalog-card,
.public-model-card,
.selection-card,
.model-tile {
  min-width: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}

.model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
.catalog-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
.public-model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
.selection-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
.model-tile :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid rgba(20,20,20,.12) !important;
  border-radius: var(--photo-radius) !important;
  overflow: hidden !important;
  background: var(--photo-bg) !important;
  position: relative !important;
  display: block !important;
  line-height: 0 !important;
  box-sizing: border-box !important;
}

.models-grid :is(.model-card,.catalog-card,.public-model-card,.selection-card,.model-tile) > img:first-child,
.catalog-grid :is(.model-card,.catalog-card,.public-model-card,.selection-card,.model-tile) > img:first-child,
.selection-grid :is(.model-card,.catalog-card,.public-model-card,.selection-card,.model-tile) > img:first-child,
.models-list :is(.model-card,.catalog-card,.public-model-card,.selection-card,.model-tile) > img:first-child {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid rgba(20,20,20,.12) !important;
  border-radius: var(--photo-radius) !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  background: var(--photo-bg) !important;
}

.model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.catalog-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.public-model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.selection-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.model-tile :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: 0 !important;
  background: var(--photo-bg) !important;
}

.model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap) img + img,
.catalog-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap) img + img,
.public-model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap) img + img {
  opacity: 0;
  transition: opacity .25s ease;
}
.model-card:hover :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap) img + img,
.catalog-card:hover :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap) img + img,
.public-model-card:hover :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap) img + img {
  opacity: 1;
}

/* ---------- ДЕТАЛЬНАЯ КАРТОЧКА МОДЕЛИ ---------- */
.model-detail-layout,
.model-profile-layout,
.profile-detail-layout,
.model-public-layout,
.profile-layout,
.model-page-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) minmax(330px, .75fr) !important;
  gap: 42px !important;
  align-items: start !important;
}

.model-detail-gallery,
.profile-gallery,
.model-profile-gallery,
.profile-detail-gallery,
.gallery-grid,
.model-gallery,
#modelGallery,
#profileGallery {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
  width: 100% !important;
  align-items: start !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

.model-detail-gallery > *,
.profile-gallery > *,
.model-profile-gallery > *,
.profile-detail-gallery > *,
.gallery-grid > *,
.model-gallery > *,
#modelGallery > *,
#profileGallery > * {
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid rgba(20,20,20,.12) !important;
  border-radius: var(--photo-radius) !important;
  overflow: hidden !important;
  background: var(--photo-bg) !important;
  position: relative !important;
  display: block !important;
  line-height: 0 !important;
  box-sizing: border-box !important;
}

.model-detail-gallery > img,
.profile-gallery > img,
.model-profile-gallery > img,
.profile-detail-gallery > img,
.gallery-grid > img,
.model-gallery > img,
#modelGallery > img,
#profileGallery > img {
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: center top !important;
}

.model-detail-gallery img,
.profile-gallery img,
.model-profile-gallery img,
.profile-detail-gallery img,
.gallery-grid img,
.model-gallery img,
#modelGallery img,
#profileGallery img {
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: 0 !important;
  background: var(--photo-bg) !important;
}

.gallery-main,
.detail-photo,
.model-detail-photo,
.profile-hero-photo {
  max-height: none !important;
  background: transparent !important;
  overflow: visible !important;
  padding: 0 !important;
}

.model-info-panel,
.profile-info-panel,
.model-detail-info,
.model-public-info,
.model-params,
.profile-params {
  font-size: 13px !important;
  line-height: 1.3 !important;
  overflow-wrap: anywhere !important;
}

.model-info-panel h1,
.profile-info-panel h1,
.model-detail-info h1,
.model-public-info h1 {
  font-size: clamp(34px, 4vw, 64px) !important;
  line-height: .95 !important;
  letter-spacing: -.045em !important;
  margin: 0 0 14px !important;
}

.param-row,
.model-param-row,
.profile-param-row,
.model-info-row {
  display: grid !important;
  grid-template-columns: minmax(110px, 1fr) minmax(80px, auto) 24px !important;
  gap: 8px !important;
  align-items: center !important;
  padding: 8px 10px !important;
}

.param-label,
.model-param-label,
.profile-param-label {
  font-size: 11px !important;
  letter-spacing: .075em !important;
  text-transform: uppercase !important;
}

.param-value,
.model-param-value,
.profile-param-value {
  font-size: 15px !important;
  font-weight: 700 !important;
}

.admin-edit-param,
.inline-edit-btn,
.param-edit-btn,
.edit-param-btn,
button[title*="Редактировать"],
button[aria-label*="Редактировать"] {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  padding: 0 !important;
  font-size: 10px !important;
  border-radius: 999px !important;
  display: inline-grid !important;
  place-items: center !important;
}

.model-extra-params,
.profile-extra-params,
.model-bottom-params,
.model-details-extra,
.extra-model-info {
  display: none !important;
}

@media (max-width: 1200px) {
  .models-grid,
  .catalog-grid,
  .selection-grid,
  #modelsGrid,
  #modelsList,
  .models-list {
    grid-template-columns: repeat(3, minmax(220px, 1fr)) !important;
    gap: 44px 34px !important;
  }
}

@media (max-width: 860px) {
  .models-grid,
  .catalog-grid,
  .selection-grid,
  #modelsGrid,
  #modelsList,
  .models-list {
    grid-template-columns: repeat(2, minmax(150px, 1fr)) !important;
    gap: 32px 18px !important;
  }

  .model-detail-layout,
  .model-profile-layout,
  .profile-detail-layout,
  .model-public-layout,
  .profile-layout,
  .model-page-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
  }

  .model-info-panel,
  .profile-info-panel,
  .model-detail-info,
  .model-public-info {
    order: 1 !important;
    width: 100% !important;
  }

  .model-detail-gallery,
  .profile-gallery,
  .model-profile-gallery,
  .profile-detail-gallery,
  .gallery-grid,
  .model-gallery,
  #modelGallery,
  #profileGallery {
    order: 2 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .param-row,
  .model-param-row,
  .profile-param-row,
  .model-info-row {
    grid-template-columns: 1fr auto 22px !important;
  }
}

@media (max-width: 520px) {
  .models-grid,
  .catalog-grid,
  .selection-grid,
  #modelsGrid,
  #modelsList,
  .models-list {
    grid-template-columns: 1fr 1fr !important;
  }

  .model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
  .catalog-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
  .public-model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
  .selection-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) {
    aspect-ratio: 4 / 5 !important;
  }
}


/* =========================================================
   REAL PHOTO + FILTER FIX
   Почему раньше не сработало:
   1) реальные карточки каталога имеют классы directory-card / directory-photo-wrap,
      а фиксы били в основном по model-card;
   2) у фильтра filter-v4 были меню, но не было обработчика открытия;
   3) некоторые фото имеют студийные светлые поля внутри самого изображения,
      поэтому добавлен лёгкий zoom, чтобы кадр визуально заполнял шейп.
   ========================================================= */

:root {
  --photo-radius-real: 8px;
  --photo-bg-real: #ebe8e0;
}

/* ---------- КАТАЛОГ: реальные классы directory-* ---------- */

.models-directory-grid {
  max-width: 1540px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 70px 52px !important;
  align-items: start !important;
}

.directory-card {
  min-width: 0 !important;
  overflow: visible !important;
}

.directory-photo-wrap {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1 / 1.18 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  border-radius: var(--photo-radius-real) !important;
  border: 1px solid var(--line, rgba(0,0,0,.12)) !important;
  background: var(--photo-bg-real) !important;
  line-height: 0 !important;
  box-sizing: border-box !important;
}

.directory-photo-wrap > img,
.directory-photo {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: 0 !important;
  background: var(--photo-bg-real) !important;
}

/* Небольшой zoom убирает визуальные светлые поля, если они уже есть внутри студийного фото */
.directory-photo.primary,
.directory-photo.hover {
  transform: scale(1.075) !important;
  transform-origin: center top !important;
  transition: opacity .28s ease, transform .45s ease !important;
}

.directory-photo.hover {
  opacity: 0 !important;
}

.directory-photo-wrap:hover .directory-photo.primary {
  opacity: 0 !important;
  transform: scale(1.11) !important;
}

.directory-photo-wrap:hover .directory-photo.hover {
  opacity: 1 !important;
  transform: scale(1.11) !important;
}

/* ---------- ДРУГИЕ КАТАЛОЖНЫЕ КАРТОЧКИ НА СЛУЧАЙ ИНЫХ КЛАССОВ ---------- */

:is(.models-grid,.catalog-grid,.selection-grid,.models-list,#modelsGrid,#modelsList)
:is(.model-card,.catalog-card,.public-model-card,.selection-card,.model-tile) 
:is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) {
  width: 100% !important;
  aspect-ratio: 1 / 1.18 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  border-radius: var(--photo-radius-real) !important;
  background: var(--photo-bg-real) !important;
  position: relative !important;
  display: block !important;
  line-height: 0 !important;
}

:is(.models-grid,.catalog-grid,.selection-grid,.models-list,#modelsGrid,#modelsList)
:is(.model-card,.catalog-card,.public-model-card,.selection-card,.model-tile) 
:is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  transform: scale(1.075) !important;
}

/* ---------- ДЕТАЛЬНАЯ КАРТОЧКА МОДЕЛИ: реальные классы profile-* ---------- */

.profile-hero-two-col {
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) minmax(340px, .72fr) !important;
  gap: 42px !important;
  align-items: start !important;
}

.profile-gallery-main {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
  align-items: start !important;
  width: 100% !important;
  max-height: none !important;
  overflow: visible !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

.profile-photo-tile {
  width: 100% !important;
  aspect-ratio: 1 / 1.18 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid var(--line, rgba(0,0,0,.12)) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: var(--photo-bg-real) !important;
  position: relative !important;
  display: block !important;
  line-height: 0 !important;
  cursor: pointer !important;
}

.profile-photo-tile img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
  transform: scale(1.035) !important;
  transform-origin: center top !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Убираем старый режим contain именно в карточке модели */
.profile-gallery-contain img,
.profile-gallery-main img {
  object-fit: cover !important;
}

/* Компактная правая карточка параметров */
.profile-summary-card {
  position: sticky !important;
  top: 24px !important;
  align-self: start !important;
}

.profile-public-params,
.right-side-params {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 !important;
  overflow: visible !important;
}

.profile-param-row {
  min-width: 0 !important;
  padding: 12px 14px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto 22px !important;
  gap: 8px !important;
  align-items: center !important;
  overflow: hidden !important;
}

.profile-param-row span {
  min-width: 0 !important;
  color: rgba(0,0,0,.55) !important;
  font-size: 11px !important;
  line-height: 1.15 !important;
  text-transform: uppercase !important;
  letter-spacing: .075em !important;
  font-weight: 800 !important;
}

.profile-param-row b {
  min-width: 0 !important;
  font-size: 16px !important;
  line-height: 1.05 !important;
  font-weight: 850 !important;
  color: #111 !important;
  text-align: right !important;
  overflow-wrap: anywhere !important;
}

.inline-edit-btn {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  padding: 0 !important;
  font-size: 10px !important;
  line-height: 1 !important;
  border-radius: 999px !important;
  display: inline-grid !important;
  place-items: center !important;
}

/* ---------- ФИЛЬТР: меню должно открываться поверх, а не превращаться в тех. список ---------- */

.public-page .filter-v4-dropdown {
  position: relative !important;
}

.public-page .filter-v4-menu {
  display: none !important;
  position: absolute !important;
  top: calc(100% + 10px) !important;
  left: 0 !important;
  z-index: 5000 !important;
  width: 240px !important;
  max-height: 286px !important;
  overflow: auto !important;
  padding: 8px !important;
  background: #fff !important;
  border: 1px solid #e4ded3 !important;
  border-radius: 12px !important;
  box-shadow: 0 18px 48px rgba(17,17,17,.16) !important;
}

.public-page .filter-v4-dropdown.open .filter-v4-menu {
  display: block !important;
}

.public-page .filter-v4-option {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-height: 34px !important;
  padding: 7px 8px !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: #1c1c1c !important;
  background: transparent !important;
}

.public-page .filter-v4-option:hover {
  background: #f5f2ee !important;
}

.public-page .filter-v4-option input {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-grid !important;
  place-content: center !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  min-height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1.5px solid #8d877d !important;
  border-radius: 4px !important;
  background: #fff !important;
  flex: 0 0 16px !important;
}

.public-page .filter-v4-option input:checked {
  background: #111 !important;
  border-color: #111 !important;
}

.public-page .filter-v4-option input:checked::before {
  content: '✓' !important;
  color: #fff !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
}

/* ---------- АДАПТИВ ---------- */

@media (max-width: 1200px) {
  .models-directory-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 52px 34px !important;
  }

  .profile-hero-two-col {
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr) !important;
  }
}

@media (max-width: 860px) {
  .models-directory-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 36px 18px !important;
  }

  .profile-hero-two-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 22px !important;
  }

  .profile-summary-card {
    order: 1 !important;
    position: static !important;
    width: 100% !important;
  }

  .profile-gallery-main {
    order: 2 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

@media (max-width: 520px) {
  .directory-photo-wrap,
  .profile-photo-tile {
    aspect-ratio: 1 / 1.18 !important;
  }

  .profile-public-params,
  .right-side-params {
    grid-template-columns: 1fr !important;
  }
}




/* =========================================================
   SECURE CASTING + GALLERY FINAL FIX
   1) Детальная галерея модели: строго 2 фото в ряд на десктопе.
   2) Реальная gallery-разметка profile-gallery-main/profile-photo-tile.
   3) Публичный каталог: directory-photo-wrap без внутренних отступов.
   ========================================================= */

.models-directory-grid .directory-photo-wrap,
.directory-photo-wrap {
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0 !important;
  overflow: hidden !important;
  background: #ebe8e0 !important;
  border-radius: 8px !important;
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 1 / 1.18 !important;
}

.models-directory-grid .directory-photo-wrap > img,
.directory-photo-wrap > img,
.directory-photo {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  min-width: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
}

.directory-photo.primary,
.directory-photo.hover {
  transform: scale(1.075) !important;
  transform-origin: center top !important;
}

.profile-hero-two-col {
  display: grid !important;
  grid-template-columns: minmax(0, 1.4fr) minmax(340px, .8fr) !important;
  gap: 42px !important;
  align-items: start !important;
}

.profile-gallery-main,
.profile-gallery-main.profile-gallery-contain {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
  align-items: start !important;
  width: 100% !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  grid-auto-flow: row !important;
}

.profile-photo-tile {
  width: 100% !important;
  aspect-ratio: 1 / 1.18 !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid var(--line, rgba(0,0,0,.12)) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: #ebe8e0 !important;
  position: relative !important;
  display: block !important;
  line-height: 0 !important;
  box-sizing: border-box !important;
}

.profile-photo-tile img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

.profile-public-params.right-side-params,
.profile-public-params,
.right-side-params {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.profile-param-row {
  min-width: 0 !important;
  overflow: hidden !important;
}

.inline-edit-btn {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  font-size: 9px !important;
  padding: 0 !important;
}

.casting-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 28px;
}

.casting-card {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(17,17,17,.06);
}

.casting-card img,
.casting-hero-image img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  background: #ebe8e0;
}

.casting-card-body {
  padding: 22px;
}

.casting-meta {
  color: var(--muted);
  font-size: 13px;
  margin: 8px 0 16px;
}

.casting-page {
  max-width: 1180px;
  margin: 0 auto;
  padding: 46px 24px 90px;
}

.casting-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  gap: 34px;
  align-items: start;
}

.casting-response-card {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  padding: 24px;
  position: sticky;
  top: 24px;
}

.casting-choice-list {
  display: grid;
  gap: 10px;
  margin: 14px 0;
}

.casting-choice-list label {
  display: flex;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
  cursor: pointer;
}

@media (max-width: 980px) {
  .casting-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .casting-detail-layout { grid-template-columns: 1fr; }
  .casting-response-card { position: static; }
}

@media (max-width: 860px) {
  .profile-hero-two-col {
    display: flex !important;
    flex-direction: column !important;
  }
  .profile-summary-card {
    order: 1 !important;
    position: static !important;
  }
  .profile-gallery-main,
  .profile-gallery-main.profile-gallery-contain {
    order: 2 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

@media (max-width: 620px) {
  .casting-grid { grid-template-columns: 1fr; }
}


/* =========================================================
   GLOBAL CATEGORY MODEL CARD PHOTO FIX
   Применяется ко всем категориям, а не только к /man:
   /man, /woman, /kids, /actors, /plussize, /45plus,
   /international, /dubai и любым будущим категориям.
   ========================================================= */

/* 1. Единая сетка моделей во всех категориях */
.public-page .catalog-section .models-directory-grid,
.public-page main .models-directory-grid,
.public-page #modelsGrid,
.public-page #modelsList,
.public-page .models-list,
.public-page .catalog-grid,
.public-page .models-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 70px 52px !important;
  align-items: start !important;
}

/* 2. Карточка модели в любой категории */
.public-page .directory-card,
.public-page .model-card,
.public-page .catalog-card,
.public-page .public-model-card,
.public-page .selection-card,
.public-page .model-tile {
  min-width: 0 !important;
  background: transparent !important;
  overflow: visible !important;
}

/* 3. Реальный фото-шейп карточки модели.
      Важно: убираем padding/margin и фиксируем один контейнер. */
.public-page .directory-photo-wrap,
.public-page .model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
.public-page .catalog-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
.public-page .public-model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
.public-page .selection-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
.public-page .model-tile :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo),
.public-page .catalog-section a[href*="model-profile.html"]:has(img) {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1 / 1.18 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  line-height: 0 !important;
  border-radius: 8px !important;
  border: 1px solid var(--line, rgba(0,0,0,.12)) !important;
  background: #ebe8e0 !important;
  box-sizing: border-box !important;
}

/* 4. Картинка внутри шейпа: на всю площадь.
      Это бьёт по реальной разметке directory-photo и по любым будущим карточкам. */
.public-page .directory-photo-wrap > img,
.public-page .directory-photo,
.public-page .catalog-section a[href*="model-profile.html"]:has(img) > img,
.public-page .catalog-section a[href*="model-profile.html"]:has(img) picture > img,
.public-page .model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.public-page .catalog-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.public-page .public-model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.public-page .selection-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.public-page .model-tile :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: 0 !important;
  background: #ebe8e0 !important;
}

/* 5. Универсальный лёгкий zoom для студийных фото с белыми краями.
      Применяется во всех категориях, не только в мужчинах. */
.public-page .directory-photo.primary,
.public-page .directory-photo.hover,
.public-page .directory-photo-wrap > img,
.public-page .catalog-section a[href*="model-profile.html"]:has(img) > img,
.public-page .catalog-section a[href*="model-profile.html"]:has(img) picture > img,
.public-page .model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.public-page .catalog-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.public-page .public-model-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.public-page .selection-card :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img,
.public-page .model-tile :is(.model-photo,.model-image,.card-photo,.card-image,.photo,.image-wrap,.photo-wrap,.model-card-photo,.profile-photo) img {
  transform: scale(1.075) !important;
  transform-origin: center top !important;
}

/* 6. Hover-фото тоже на весь шейп */
.public-page .directory-photo.hover {
  opacity: 0 !important;
}

.public-page .directory-photo-wrap:hover .directory-photo.primary {
  opacity: 0 !important;
  transform: scale(1.11) !important;
}

.public-page .directory-photo-wrap:hover .directory-photo.hover {
  opacity: 1 !important;
  transform: scale(1.11) !important;
}

/* 7. Фолбэк без :has для браузеров/ситуаций, где обёртка не поймалась */
.public-page .catalog-section img.directory-photo,
.public-page .catalog-section .directory-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
}

/* 8. Адаптив сетки моделей во всех категориях */
@media (max-width: 1200px) {
  .public-page .catalog-section .models-directory-grid,
  .public-page main .models-directory-grid,
  .public-page #modelsGrid,
  .public-page #modelsList,
  .public-page .models-list,
  .public-page .catalog-grid,
  .public-page .models-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 52px 34px !important;
  }
}

@media (max-width: 860px) {
  .public-page .catalog-section .models-directory-grid,
  .public-page main .models-directory-grid,
  .public-page #modelsGrid,
  .public-page #modelsList,
  .public-page .models-list,
  .public-page .catalog-grid,
  .public-page .models-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 36px 18px !important;
  }
}



/* =========================================================
   NAV / SELECTION / CASTING UX FIX
   ========================================================= */
.public-nav-main { display:flex; align-items:center; gap:10px; }
.nav-dropdown { position:relative; display:inline-block; }
.nav-dropdown-trigger { border:1px solid var(--line); background:#fff; border-radius:999px; padding:10px 14px; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; gap:8px; color:var(--ink); }
.nav-dropdown-trigger:after { content:'⌄'; font-size:12px; opacity:.7; }
.nav-dropdown-menu { display:none; position:absolute; top:calc(100% + 10px); left:0; min-width:230px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 20px 55px rgba(17,17,17,.16); padding:8px; z-index:6000; }
.nav-dropdown.open .nav-dropdown-menu { display:block; }
.nav-dropdown-menu a { display:flex; align-items:center; justify-content:space-between; padding:10px 12px; border-radius:10px; color:var(--ink); font-weight:750; text-decoration:none; }
.nav-dropdown-menu a:hover { background:#f5f2ee; }
.nav-link-static { color:var(--ink); font-weight:800; text-decoration:none; padding:10px 12px; border-radius:999px; }
.nav-link-static:hover, .nav-link-static.active { background:#f4f0e8; }
.header-actions { margin-left:auto; }
.basket-button { gap:8px; }
.basket-icon-clean { display:inline-grid; place-items:center; width:20px; height:20px; border:1.7px solid currentColor; border-radius:7px; font-size:0; position:relative; }
.basket-icon-clean:before { content:''; position:absolute; width:8px; height:5px; border:1.7px solid currentColor; border-bottom:0; border-radius:8px 8px 0 0; top:-5px; left:50%; transform:translateX(-50%); background:#fff; }
.basket-button span:not(.basket-icon-clean) { display:inline-grid; place-items:center; min-width:20px; height:20px; border-radius:999px; background:#111; color:#fff; font-size:11px; padding:0 6px; }

.profile-gallery-main.profile-gallery-contain,
.profile-gallery-main { grid-template-columns:repeat(2,minmax(0,1fr)) !important; grid-auto-flow:row !important; }
.profile-photo-tile { width:100% !important; }
.profile-gallery-main .profile-photo-tile:nth-child(n) { grid-column:auto !important; grid-row:auto !important; }
.profile-photo-tile:only-child { max-width:none !important; }

.admin-casting-detail { display:grid; grid-template-columns: minmax(0,1fr) 380px; gap:22px; }
.admin-response-list { display:grid; gap:12px; }
.admin-response-card { border:1px solid var(--line); border-radius:18px; background:#fff; padding:16px; display:grid; gap:10px; }
.admin-response-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.admin-response-meta { color:var(--muted); font-size:13px; }
.admin-response-actions { display:flex; gap:8px; flex-wrap:wrap; }
.casting-slots-list { display:grid; gap:8px; margin-top:8px; }
.casting-slot-row { display:grid; grid-template-columns:1fr 1fr auto; gap:8px; }
.casting-slot-row input { min-width:0; }
.casting-public-link { font-size:12px; color:var(--muted); word-break:break-all; }

@media (max-width: 900px){
  .public-nav-main { flex-wrap:wrap; gap:6px; }
  .nav-dropdown-menu { position:fixed; left:16px; right:16px; top:72px; min-width:0; }
  .admin-casting-detail { grid-template-columns:1fr; }
  .site-header { gap:12px; }
}


/* =========================================================
   WORKFLOW / SECURITY / STATS FIX
   ========================================================= */
.pending-changes-box,.admin-pending-preview{border:1px solid #e1d8c8;background:#fffaf1;border-radius:16px;padding:14px 16px;margin:14px 0}.pending-changes-box h3{margin:0 0 8px;font-size:18px}.pending-change-row,.admin-pending-preview div{display:grid;grid-template-columns:160px minmax(0,1fr) 20px minmax(0,1fr);gap:10px;align-items:center;padding:8px 0;border-top:1px solid #eee5d6}.pending-change-row:first-of-type,.admin-pending-preview div:first-of-type{border-top:0}.pending-change-row span,.admin-pending-preview span{font-weight:800;color:#6b665e;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.pending-change-row b,.pending-change-row strong,.admin-pending-preview em,.admin-pending-preview strong{font-style:normal;overflow-wrap:anywhere}.pending-change-row b,.admin-pending-preview em{color:#8a8379}.pending-change-row strong,.admin-pending-preview strong{color:#111}.danger{color:#9f2d20!important;border-color:#e0b6ae!important}.stats-summary{margin-bottom:18px}.stats-table{width:100%;border-collapse:collapse;font-size:13px}.stats-table th,.stats-table td{border-bottom:1px solid var(--line);padding:10px;text-align:left}.stats-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.profile-gallery-main.profile-gallery-contain,.profile-gallery-main{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;grid-auto-flow:row!important;align-items:start!important}.profile-gallery-main .profile-photo-tile,.profile-gallery-contain .profile-photo-tile{grid-column:auto!important;grid-row:auto!important;aspect-ratio:3/4!important;width:100%!important;max-width:none!important}.profile-gallery-main .profile-photo-tile:first-child{grid-column:auto!important;grid-row:auto!important;aspect-ratio:3/4!important}.profile-gallery-main .profile-photo-tile img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center top!important}
@media(max-width:760px){.profile-gallery-main.profile-gallery-contain,.profile-gallery-main{grid-template-columns:repeat(2,minmax(0,1fr))!important}.pending-change-row,.admin-pending-preview div{grid-template-columns:1fr;gap:4px}.pending-change-row em{display:none}}

/* Basket regression fix: пустой счётчик не отображается. */
.basket-count-badge[hidden],
.basket-button [data-shared-basket-count][hidden],
#basketCount[hidden] { display: none !important; }
.basket-count-badge {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font-size: 11px;
  line-height: 1;
}


/* ===== ModelDesk stable public header + floating selection ===== */
.public-site-header{
  height:72px;
  min-height:72px;
  max-height:72px;
  flex-wrap:nowrap;
  padding-top:0;
  padding-bottom:0;
  background:rgba(255,255,255,.97);
}
.brand-logo-text{
  flex:0 0 auto;
  min-width:154px;
  font-size:24px;
  line-height:1;
  font-weight:800;
  letter-spacing:-.055em;
  color:#111;
  white-space:nowrap;
}
.brand-logo-text:hover{text-decoration:none;color:#111}
.public-nav-main{flex:1;justify-content:flex-start;gap:24px;min-width:0;flex-wrap:nowrap}
.public-nav-main .nav-link-static,.nav-dropdown-trigger{
  appearance:none;border:0;background:transparent;padding:8px 0;color:#373737;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer
}
.public-nav-main .nav-link-static:hover,.nav-dropdown-trigger:hover{color:#111;text-decoration:none}
.nav-dropdown{position:relative}
.nav-dropdown-trigger{display:inline-flex;align-items:center;gap:6px}
.nav-dropdown-menu{
  position:absolute;top:calc(100% + 13px);left:-14px;z-index:150;display:none;min-width:220px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(17,17,17,.12)
}
.nav-dropdown.open>.nav-dropdown-menu{display:grid}
.nav-dropdown-menu a{display:grid;gap:2px;padding:10px 12px;border-radius:9px;font-size:13px;font-weight:600;color:#222}
.nav-dropdown-menu a span{font-size:11px;font-weight:500;color:var(--muted)}
.nav-dropdown-menu a:hover{background:#f5f4f1;text-decoration:none}
.nav-dropdown-menu-right{left:auto;right:0;min-width:280px}
.public-header-actions{margin-left:auto;flex-wrap:nowrap;min-width:max-content;gap:14px}
.public-auth-link,.public-register-trigger{
  display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 15px;border-radius:999px;border:1px solid transparent;background:transparent;color:#111;font-size:13px;font-weight:700;white-space:nowrap
}
.public-auth-link:hover{background:#f4f3ef;text-decoration:none}
.public-register-trigger{border-color:#111;background:#111;color:#fff;gap:7px;cursor:pointer}
.public-register-trigger:hover{text-decoration:none;background:#2a2a2a;color:#fff}
.public-register-fallback{display:inline-flex}
.public-register-menu .public-register-trigger{display:inline-flex}
.floating-basket-button{
  position:fixed;right:24px;bottom:24px;z-index:105;width:58px;height:58px;border:0;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 16px 40px rgba(0,0,0,.24);opacity:0;visibility:hidden;transform:translateY(12px) scale(.92);transition:.2s ease
}
.floating-basket-button.is-visible{opacity:1;visibility:visible;transform:none}
.floating-basket-button:hover{transform:translateY(-2px);background:#242424}
.floating-basket-icon{width:26px;height:26px;display:grid;place-items:center}
.floating-basket-icon svg{width:26px;height:26px}
.floating-basket-count{position:absolute;right:-3px;top:-4px;min-width:22px;height:22px;padding:0 6px;border:2px solid #fff;border-radius:999px;background:#fff;color:#111;font-size:11px;font-weight:800;display:grid;place-items:center}
@media(max-width:820px){
  .public-site-header{height:64px;min-height:64px;max-height:64px;padding-left:16px;padding-right:12px;gap:12px}
  .brand-logo-text{font-size:21px;min-width:auto}
  .public-nav-main{display:none}
  .public-header-actions{gap:6px}
  .public-auth-link,.public-register-trigger{min-height:36px;padding:0 11px;font-size:12px}
  .nav-dropdown-menu-right{position:fixed;top:70px;right:12px;left:12px;min-width:0}
  .floating-basket-button{right:16px;bottom:18px;width:54px;height:54px}
}


.registration-role-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:5px;background:#f2f1ed;border-radius:14px;margin:24px 0}
.registration-role-btn{border:0;border-radius:10px;background:transparent;padding:12px 14px;font-weight:750;cursor:pointer;color:var(--muted)}
.registration-role-btn.active{background:#111;color:#fff;box-shadow:0 5px 16px rgba(17,17,17,.12)}
.registration-form{display:none}.registration-form.active{display:block}.registration-form-title{font-size:20px;margin:4px 0}.registration-lead{margin-bottom:20px}.register-card-wide{width:min(860px,calc(100vw - 30px))}
@media(max-width:720px){.registration-role-switch{position:sticky;top:70px;z-index:5}.register-card-wide{padding:18px}.registration-form .form-row,.registration-form .form-row.three,.registration-form .form-row.four{grid-template-columns:1fr}}

.booking-account-note{display:grid;gap:2px;padding:13px 14px;margin:14px 0;border-radius:12px;background:#f1f7f3;border:1px solid #c9e2d1;color:#1e5436}.booking-account-note span{font-size:12px;color:#47705a}


/* ===== Public UX quality pass v2 ===== */
.nav-dropdown-trigger:after{content:none!important}
.nav-chevron{width:11px;height:8px;flex:0 0 auto;display:block;transition:transform .16s ease}
.nav-chevron path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.nav-dropdown.open>.nav-dropdown-trigger .nav-chevron,.nav-dropdown.open>.public-register-trigger .nav-chevron{transform:rotate(180deg)}
.public-nav-main .nav-link-static,.public-nav-main .nav-dropdown-trigger,.public-auth-link,.public-register-trigger{
  box-sizing:border-box;min-height:40px;height:40px;line-height:1;vertical-align:middle
}
.public-nav-main .nav-dropdown-trigger{padding:0 2px;border:0!important;border-radius:8px!important;outline:none;box-shadow:none!important}
.public-nav-main .nav-dropdown-trigger:focus{outline:none;box-shadow:none!important}
.public-nav-main .nav-dropdown-trigger:focus-visible,.public-auth-link:focus-visible,.public-register-trigger:focus-visible{
  outline:2px solid #111!important;outline-offset:3px;box-shadow:none!important
}
.public-auth-link{padding:0 14px}
.public-register-trigger{padding:0 18px;border-radius:999px!important}
.public-header-actions{align-items:center}

.booking-drawer{overscroll-behavior:contain;transition:background .18s ease}
.booking-drawer-panel{position:relative;transform:translateX(18px);opacity:.98;transition:transform .2s ease,opacity .2s ease;overscroll-behavior:contain}
.booking-drawer.open .booking-drawer-panel{transform:none;opacity:1}
.booking-drawer .drawer-close{
  position:sticky!important;top:0!important;right:auto!important;float:right;z-index:20;
  width:auto!important;height:38px!important;min-width:92px;padding:0 14px!important;margin:-8px -4px 8px 14px!important;
  border:1px solid #ddd8cf!important;border-radius:999px!important;background:rgba(255,255,255,.96)!important;
  color:#1c1c1c!important;font-size:13px!important;font-weight:750!important;line-height:1!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
  box-shadow:0 5px 18px rgba(0,0,0,.06);backdrop-filter:blur(8px)
}
.booking-drawer .drawer-close:hover{background:#111!important;border-color:#111!important;color:#fff!important}
.booking-drawer .drawer-close:focus-visible{outline:2px solid #111;outline-offset:2px}
body.drawer-open{overflow:hidden}

.country-phone-row{display:grid;grid-template-columns:minmax(150px,180px) minmax(0,1fr);gap:12px;align-items:end}
.country-code-select{font-variant-numeric:tabular-nums}
@media(max-width:720px){.country-phone-row{grid-template-columns:140px minmax(0,1fr)}.booking-drawer .drawer-close{margin-top:-2px}}
@media(max-width:440px){.country-phone-row{grid-template-columns:1fr}.booking-drawer .drawer-close{min-width:84px;height:36px!important;padding:0 12px!important}}

.models-directory-grid.is-loading{opacity:.55;pointer-events:none;transition:opacity .12s ease}
.catalog-skeleton-card{pointer-events:none}.catalog-skeleton-card .skeleton{background:linear-gradient(90deg,#ebe8e0 25%,#f7f5f1 37%,#ebe8e0 63%);background-size:400% 100%;animation:catalogSkeletonShimmer 1.35s ease-in-out infinite}.catalog-skeleton-photo{width:100%;aspect-ratio:1/1.18;border-radius:8px}.catalog-skeleton-copy{display:grid;gap:10px;padding:18px 8px 0}.catalog-skeleton-line{height:12px;border-radius:5px}.catalog-skeleton-line.wide{width:72%;margin:0 auto}.catalog-skeleton-line.medium{width:48%;margin:0 auto}.catalog-skeleton-line.short{width:34%;margin:0 auto}@keyframes catalogSkeletonShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.catalog-skeleton-card .skeleton{animation:none}}
.directory-photo{will-change:opacity;backface-visibility:hidden}
.directory-card{contain:layout paint style}
/* v7: desktop header geometry — one baseline, no wrapping/jumps */
@media (min-width:1181px){
  .site-header.public-site-header{height:68px!important;min-height:68px!important;padding:0 32px!important;display:grid!important;grid-template-columns:210px minmax(0,1fr) auto!important;align-items:center!important;gap:24px!important;flex-wrap:nowrap!important}
  .public-site-header .brand-logo,.public-site-header .brand-logo a{height:40px!important;display:flex!important;align-items:center!important;margin:0!important}
  .public-site-header .brand-logo img{display:block!important;max-height:32px!important;width:auto!important}
  .public-site-header .public-nav-main{height:40px!important;display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;margin:0!important;padding:0!important}
  .public-site-header .nav-link-static,.public-site-header .nav-dropdown-trigger,.public-site-header .header-actions>a,.public-site-header .header-actions>button{height:40px!important;min-height:40px!important;box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 14px!important;margin:0!important;line-height:1!important;border-radius:10px!important;white-space:nowrap!important}
  .public-site-header .header-actions{height:40px!important;display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;margin:0!important;padding:0!important}
}

/* ===== ModelDesk v8 · mobile UX & iOS keyboard stabilization ===== */
:root{--app-vh:100dvh;--keyboard-offset:0px}
html{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{width:100%;max-width:100%;overflow-x:hidden}
img,video,svg{max-width:100%}
button,a,input,select,textarea{touch-action:manipulation}
@supports(height:100dvh){.booking-drawer-panel,.modal,.modal-overlay,.admin-modal{max-height:100dvh}}
@media(max-width:760px){
  html,body{min-height:100dvh}
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;line-height:1.35}
  input,select,textarea{max-width:100%;box-sizing:border-box}
  button,.btn,.small-btn,[role=button],.public-auth-link,.nav-link-static,.nav-dropdown-trigger,.public-register-trigger{min-height:44px}
  .form-row,.form-row.three,.form-row.four,.phone-row{grid-template-columns:1fr!important}
  .panel{padding:18px;border-radius:16px}
  .booking-drawer{align-items:flex-end}
  .booking-drawer-panel{width:100%;height:min(92dvh,calc(var(--app-vh) - env(safe-area-inset-top)));max-height:calc(var(--app-vh) - env(safe-area-inset-top));padding:22px 16px calc(20px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;overscroll-behavior:contain}
  .modal,.modal-overlay,.admin-modal{max-height:calc(var(--app-vh) - 12px);overscroll-behavior:contain}
  .modal-content,.modal-box,.admin-modal-content{max-height:calc(var(--app-vh) - 24px);overflow:auto;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
  .upload-zone{min-height:112px;padding:20px 14px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  table{max-width:100%}
  .table-wrap,.table-scroll,.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* Public navigation: one stable desktop line; compact mobile drawer */
.public-site-header{height:68px;min-height:68px;padding:0 clamp(18px,3vw,42px);display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr) minmax(180px,260px);align-items:center;gap:18px;flex-wrap:nowrap}
.public-site-header .brand-logo{white-space:nowrap}
.public-site-header .public-nav-main{height:68px;display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:nowrap;min-width:0}
.public-site-header .public-header-actions{height:68px;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:nowrap;min-width:0}
.public-site-header .nav-dropdown-trigger,.public-site-header .public-register-trigger,.public-site-header .public-auth-link,.public-site-header .nav-link-static{height:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;box-sizing:border-box}
.public-mobile-toggle{display:none;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:var(--ink);align-items:center;justify-content:center;cursor:pointer}
.public-mobile-toggle svg{width:22px;height:22px}
.public-mobile-menu-surface{display:contents}
.mobile-filter-actions{display:none}
@media(max-width:760px){
  .public-site-header{height:60px;min-height:60px;padding:0 14px;grid-template-columns:1fr auto;gap:10px}
  .public-site-header .brand-logo{font-size:20px;z-index:2}
  .public-mobile-toggle{display:inline-flex;grid-column:2;grid-row:1}
  .public-site-header .public-nav-main,.public-site-header .public-header-actions{display:none}
  .public-site-header.mobile-open .public-nav-main,.public-site-header.mobile-open .public-header-actions{display:flex;position:fixed;left:12px;right:12px;background:#fff;z-index:150;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:10px 12px;height:auto;min-height:0;flex-direction:column;align-items:stretch;gap:6px}
  .public-site-header.mobile-open .public-nav-main{top:66px;border-top:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:0 22px 55px rgba(0,0,0,.14)}
  .public-site-header.mobile-open .public-header-actions{top:154px;border-bottom:1px solid var(--line);border-radius:0 0 16px 16px}
  .public-site-header.mobile-open .nav-dropdown,.public-site-header.mobile-open .public-register-menu{width:100%}
  .public-site-header.mobile-open .nav-dropdown-trigger,.public-site-header.mobile-open .public-register-trigger,.public-site-header.mobile-open .public-auth-link,.public-site-header.mobile-open .nav-link-static{width:100%;height:46px;justify-content:space-between;padding:0 12px;border-radius:10px}
  .public-site-header.mobile-open .nav-dropdown-menu{position:static;width:100%;box-shadow:none;margin-top:4px;border-radius:10px}
}

/* ===== v9 final public header geometry ===== */
@media (min-width: 901px){
  .site-header.public-site-header{
    height:68px!important;min-height:68px!important;max-height:68px!important;
    padding:0 32px!important;display:grid!important;
    grid-template-columns:200px minmax(0,1fr) auto!important;
    align-items:center!important;gap:24px!important;overflow:visible!important;
  }
  .public-site-header>.brand-logo{
    display:flex!important;align-items:center!important;height:40px!important;min-height:40px!important;
    margin:0!important;padding:0!important;font-size:24px!important;font-weight:700!important;line-height:1!important;
  }
  .public-site-header>.public-nav-main{
    display:flex!important;align-items:center!important;justify-content:flex-start!important;
    height:40px!important;min-height:40px!important;gap:8px!important;margin:0!important;padding:0!important;flex-wrap:nowrap!important;overflow:visible!important;
  }
  .public-site-header>.public-header-actions{
    display:flex!important;align-items:center!important;justify-content:flex-end!important;
    height:40px!important;min-height:40px!important;gap:8px!important;margin:0!important;padding:0!important;flex-wrap:nowrap!important;
  }
  .public-site-header .nav-link-static,
  .public-site-header .nav-dropdown-trigger,
  .public-site-header .public-auth-link,
  .public-site-header .public-register-trigger,
  .public-site-header .public-account-link{
    height:40px!important;min-height:40px!important;max-height:40px!important;box-sizing:border-box!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    margin:0!important;padding:0 14px!important;border-radius:10px!important;line-height:1!important;white-space:nowrap!important;
  }
  .public-site-header>.public-mobile-toggle{display:none!important}
}

/* Media upload surfaces: large, obvious, touch friendly. */
.media-card{border:1px solid #e8e5df;border-radius:14px;padding:14px;background:#fff;margin-bottom:12px}
.media-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.media-card-title{font-size:13px;font-weight:650;color:#1d1d1d}.media-card-note{font-size:11px;color:#888;margin-top:2px}
.upload-zone{min-height:112px;border:1.5px dashed #cfcac0;border-radius:14px;background:#faf9f7;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px;padding:18px;cursor:pointer;transition:.15s ease}
.upload-zone:hover,.upload-zone.drag{border-color:#222;background:#f4f2ee;transform:translateY(-1px)}
.upload-zone strong{font-size:13px;font-weight:650}.upload-zone span{font-size:11px;color:#777;line-height:1.4}
.upload-progress{height:5px;border-radius:999px;background:#ece9e3;overflow:hidden;display:none;margin:8px 0 10px}.upload-progress i{display:block;height:100%;width:0;background:#1d1d1d;transition:width .12s linear;border-radius:999px}
@media(max-width:720px){
  .media-card{padding:12px;border-radius:12px}.media-card-head{flex-direction:column}.media-card-actions{width:100%}.media-card-actions .small-btn{width:100%}
  .upload-zone{min-height:104px;padding:16px 12px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Stable mobile public menu: one surface, content-driven height, no stacked jumps. */
.photo-item{position:relative}.photo-item-actions{position:absolute;left:6px;right:6px;bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:5px;opacity:0;transition:opacity .15s ease}.photo-item:hover .photo-item-actions,.photo-item:focus-within .photo-item-actions{opacity:1}.photo-item-actions .small-btn{min-height:30px;padding:5px 8px;font-size:11px;background:rgba(255,255,255,.94);border-color:#d8d3c8}.photo-item-actions .photo-item-del{position:static!important;width:30px!important;height:30px!important;min-height:30px!important;background:rgba(255,255,255,.94)!important}.photo-item-status{position:absolute;left:6px;top:6px;z-index:2}
@media(max-width:760px){
  .public-site-header .public-mobile-menu-surface{display:none}
  .public-site-header.mobile-open .public-mobile-menu-surface{display:flex;position:fixed;left:12px;right:12px;top:66px;z-index:150;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 55px rgba(0,0,0,.14);max-height:calc(100dvh - 78px);overflow:auto}
  .public-site-header.mobile-open .public-nav-main,.public-site-header.mobile-open .public-header-actions{display:flex;position:static;width:100%;height:auto;min-height:0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px}
  .public-site-header.mobile-open .public-header-actions{border-top:1px solid #eee8df;padding-top:8px}
  .photo-item-actions{opacity:1}
  .mobile-filter-actions{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1.35fr;gap:8px;margin:14px -2px -2px;padding:12px 0 2px;background:#fff;border-top:1px solid #eee8df;z-index:2}.mobile-filter-actions .btn{width:100%}.mobile-filter-actions .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
}

/* v15 upload feedback */
.upload-zone.is-dragover{border-color:#111!important;background:#f4f4f2!important;transform:translateY(-1px)}
.upload-zone:focus-visible{outline:2px solid #111;outline-offset:2px}

/* Public model profile: category-based media sections. */
.profile-media-sections{display:block!important}.profile-media-section{margin-bottom:38px}.profile-media-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}.profile-media-section-head h2{font-size:clamp(22px,3vw,38px);letter-spacing:-.05em;margin:0}.profile-media-section-head span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.profile-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.profile-media-grid .profile-photo-tile:first-child{grid-row:auto;aspect-ratio:3/4}.profile-media-grid .profile-photo-tile{aspect-ratio:3/4;border-radius:4px}
@media(max-width:720px){.profile-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.profile-media-section{margin-bottom:28px}}
.profile-video-tile{background:#111;border-radius:4px;overflow:hidden;aspect-ratio:3/4;color:#fff;display:flex;flex-direction:column}.profile-video-tile video{width:100%;height:calc(100% - 34px);object-fit:cover;background:#111}.profile-video-tile span{font-size:11px;padding:9px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* v11 design system: calmer cards on desktop, tighter 8px corners on mobile. */
:root{--radius:16px;--radius-sm:12px}
.public-page .home-category-tile,.public-page .directory-photo-wrap,.public-page .profile-photo-tile,.public-page .profile-summary-card,.public-page .profile-details-panel,.public-page .catalog-loading,.public-page .empty-state,.public-page .catalog-error,.public-page .filter-panel,.public-page .booking-drawer-panel{border-radius:16px}
.public-page .models-directory-grid{gap:44px 28px}
.public-page .directory-card-body{text-align:left;padding:14px 2px 0}
.public-page .directory-name{letter-spacing:.02em;text-transform:none;font-size:clamp(17px,1.5vw,22px)}
.public-page .directory-card-kicker{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:800}
.public-page .directory-meta{margin-top:5px}
@media(max-width:720px){
  .public-page .home-category-tile,.public-page .directory-photo-wrap,.public-page .profile-photo-tile,.public-page .profile-summary-card,.public-page .profile-details-panel,.public-page .catalog-loading,.public-page .empty-state,.public-page .catalog-error,.public-page .filter-panel,.public-page .booking-drawer-panel{border-radius:8px}
  .public-page .catalog-section{padding-top:38px}
  .public-page .catalog-head h1{font-size:36px}
  .public-page .models-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}
  .public-page .directory-photo-wrap{aspect-ratio:3/4}
  .public-page .directory-card-body{padding:10px 0 0}
  .public-page .directory-name{font-size:16px;line-height:1.1}
  .public-page .directory-meta{font-size:12px}
  .public-page .directory-specs{display:none}
  .public-page .directory-card-actions{display:grid;grid-template-columns:1fr;gap:6px;margin-top:10px}
  .public-page .directory-card-actions .btn{min-height:38px;width:100%;font-size:11px}
}

/* v10: reserve space during async loads and keep actions usable on touch. */
.category-loading,.catalog-loading{min-height:112px;display:grid;place-items:center;align-content:center;gap:6px}
.models-directory-grid.is-loading{opacity:.72;transition:none}
@media (hover:none), (max-width:760px){
  .tbl-actions{opacity:1}
  .tbl-actions .icon-btn,.tbl-actions .small-btn{min-width:34px;min-height:34px}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* v13 mobile catalog polish: larger editorial photos and non-overlapping copy. */
@media (max-width:720px){
  .public-page .models-directory-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:32px 10px;
    align-items:start;
  }
  .public-page .directory-card{
    min-width:0;
    overflow:visible;
  }
  .public-page .directory-photo-wrap{
    width:100%;
    aspect-ratio:2 / 3;
    min-height:0;
    overflow:hidden;
  }
  .public-page .directory-card-body{
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:10px 1px 0;
  }
  .public-page .directory-card-kicker,
  .public-page .directory-name,
  .public-page .directory-meta{
    min-width:0;
    overflow-wrap:anywhere;
  }
  .public-page .directory-card-kicker{
    min-height:0;
    margin-bottom:5px;
    font-size:9px;
    line-height:1.25;
  }
  .public-page .directory-name{
    font-size:15px;
    line-height:1.2;
    font-weight:800;
  }
  .public-page .directory-meta{
    margin-top:5px;
    font-size:11px;
    line-height:1.3;
  }
  .public-page .directory-specs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:4px;
    margin:9px 0 0;
  }
  .public-page .directory-specs span{
    min-width:0;
    min-height:0;
    padding:5px 6px;
    border-radius:6px;
    font-size:9px;
    line-height:1.25;
    white-space:normal;
    overflow-wrap:anywhere;
    justify-content:flex-start;
  }
  .public-page .directory-card-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
    min-height:0;
    margin-top:10px;
  }
  .public-page .directory-card-actions .btn{
    width:100%;
    min-width:0;
    min-height:36px;
    padding:8px 7px;
    font-size:10px;
    white-space:nowrap;
  }
}

@media (max-width:380px){
  .public-page .models-directory-grid{gap:26px 8px}
  .public-page .directory-name{font-size:14px}
  .public-page .directory-specs span{font-size:8px;padding-inline:5px}
}

/* v14 model profile redesign: one coherent information card. */
.public-page .profile-hero-two-col{
  grid-template-columns:minmax(0,1fr) minmax(390px,440px);
  gap:28px;
}
.public-page .profile-gallery-contain{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.public-page .profile-summary-card{
  border-radius:15px;
  padding:30px;
}
.public-page .profile-summary-card h1{
  font-size:clamp(40px,4.2vw,64px);
  line-height:.94;
}
.public-page .right-side-params{
  gap:8px;
  margin:24px 0 18px;
}
.public-page .profile-param-row{
  grid-template-columns:minmax(0,1fr) auto 30px;
  min-width:0;
  gap:10px;
  padding:13px 0;
}
.public-page .profile-param-row span,
.public-page .profile-param-row b{
  min-width:0;
  overflow-wrap:anywhere;
}
.public-page .profile-extra-info{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
.public-page .profile-extra-info h2{
  margin:0 0 12px;
  font-size:15px;
  letter-spacing:-.02em;
}
.public-page .profile-extra-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.public-page .profile-extra-grid>div{
  min-width:0;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface-2);
}
.public-page .profile-extra-grid span{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.public-page .profile-extra-grid b{
  display:block;
  min-width:0;
  font-size:13px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.public-page .profile-extra-info .profile-description{
  margin:12px 0 0;
  font-size:13px;
  line-height:1.5;
}

/* One radius rule for public/admin surfaces: 15px desktop, 8px mobile. */
:where(
  .public-page .panel,.public-page .profile-summary-card,.public-page .profile-extra-grid>div,
  .public-page .directory-photo-wrap,.public-page .profile-photo-tile,.public-page .profile-video-tile,
  .public-page .catalog-loading,.public-page .catalog-error,.public-page .empty-state,
  .public-page .filter-panel,.public-page .filter-shell,.public-page .booking-drawer-panel,
  .public-page input,.public-page select,.public-page textarea,.public-page .filter-input,
  .public-page .nice-multi>summary,.public-page .nice-menu,.public-page .filter-v4-menu,
  .public-page .btn,.public-page .home-category-tile,
  .admin-dashboard .panel,.admin-dashboard .stat-card,.admin-dashboard .attention-card,
  .admin-dashboard .review-card,.admin-dashboard .modal-box,.admin-dashboard .media-card,
  .admin-dashboard input,.admin-dashboard select,.admin-dashboard textarea,
  .admin-dashboard .upload-zone,.admin-dashboard .table-wrap,.admin-dashboard .admin-model-card
){border-radius:15px!important}

@media(max-width:720px){
  .public-page .profile-hero-two-col{grid-template-columns:1fr;gap:22px}
  .public-page .profile-gallery-contain{grid-template-columns:1fr;gap:8px}
  .public-page .profile-summary-card{padding:20px;border-radius:8px}
  .public-page .profile-summary-card h1{font-size:clamp(34px,11vw,52px)}
  .public-page .profile-public-params.right-side-params{grid-template-columns:1fr 1fr;gap:6px}
  .public-page .profile-param-row{
    grid-template-columns:minmax(0,1fr) auto 24px;
    gap:6px;
    padding:10px 0;
  }
  .public-page .profile-param-row span{font-size:9px;line-height:1.15}
  .public-page .profile-param-row b{font-size:15px;line-height:1.15}
  .public-page .profile-extra-grid>div{border-radius:8px}
  :where(
    .public-page .panel,.public-page .profile-summary-card,.public-page .profile-extra-grid>div,
    .public-page .directory-photo-wrap,.public-page .profile-photo-tile,.public-page .profile-video-tile,
    .public-page .catalog-loading,.public-page .catalog-error,.public-page .empty-state,
    .public-page .filter-panel,.public-page .filter-shell,.public-page .booking-drawer-panel,
    .public-page input,.public-page select,.public-page textarea,.public-page .filter-input,
    .public-page .nice-multi>summary,.public-page .nice-menu,.public-page .filter-v4-menu,
    .public-page .btn,.public-page .home-category-tile,
    .admin-dashboard .panel,.admin-dashboard .stat-card,.admin-dashboard .attention-card,
    .admin-dashboard .review-card,.admin-dashboard .modal-box,.admin-dashboard .media-card,
    .admin-dashboard input,.admin-dashboard select,.admin-dashboard textarea,
    .admin-dashboard .upload-zone,.admin-dashboard .table-wrap,.admin-dashboard .admin-model-card
  ){border-radius:8px!important}
}

/* v17 brand asset sizing: preserve the supplied wide wordmark in every header. */
.brand-logo{display:flex;align-items:center;min-width:0;height:42px}
.brand-logo img{display:block;width:154px!important;max-width:42vw!important;height:auto!important;object-fit:contain}
.sb-logo-image{display:block;width:150px;max-width:100%;height:auto;object-fit:contain;margin-bottom:4px}
@media(max-width:720px){
  .brand-logo{height:34px}
  .brand-logo img{width:132px!important;max-width:48vw!important}
}

/* Home is a category directory; the model list appears only on /kids, /men, etc. */
.public-page .home-categories-section{padding-top:clamp(48px,7vw,96px)}
.public-page .catalog-home-hidden{display:none!important}
.public-page.all-models-page .home-categories-section{display:none!important}
.public-page.category-page #categories{display:none!important}
.public-page .directory-meta{font-weight:400!important}
.public-page .directory-specs span{font-weight:400!important}
.public-page .profile-param-row b{font-weight:500!important}
.public-page .profile-extra-grid b{font-weight:500!important}
.public-page .filter-v4-search{position:relative!important}
.public-page .filter-search-button{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:8px;background:transparent;color:#6f6a62;display:grid;place-items:center;cursor:pointer}
.public-page .filter-search-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.public-page .filter-search-button:hover{background:#f0eee9;color:#111}
.public-page .filter-search-button:focus-visible{outline:2px solid #111;outline-offset:2px}
.public-page .filter-v4-search-input{padding-right:54px!important}

/* Favorites on catalog photos: the image remains the only navigation target. */
.public-page .directory-photo-link{position:absolute;inset:0;display:block;z-index:1}
.public-page .directory-favorite{position:absolute;right:12px;top:12px;z-index:3;width:44px;height:44px;border:1px solid rgba(255,255,255,.55);border-radius:15px;background:rgba(17,17,17,.22);color:rgba(255,255,255,.92);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.16);backdrop-filter:blur(8px);transition:transform .16s ease,background .16s ease,color .16s ease}
.public-page .favorite-icon{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}
.public-page .directory-favorite:hover{transform:scale(1.06);background:rgba(17,17,17,.52);color:#fff}
.public-page .directory-favorite.is-selected{background:rgba(255,255,255,.94);border-color:rgba(255,255,255,.94);color:#e53935}
.public-page .directory-favorite.is-selected .favorite-icon{stroke-width:1.3;filter:none}
.public-page .directory-card-actions{display:none!important}
.public-page .booking-consents{display:grid;gap:10px;margin:4px 0 18px}
.public-page .consent-row{display:flex;align-items:flex-start;gap:9px;margin:0;text-transform:none;letter-spacing:0;color:var(--muted);font-size:12px;font-weight:600;line-height:1.35;cursor:pointer}
.public-page .consent-row input{width:18px!important;height:18px!important;min-width:18px;margin:0;padding:0;border-radius:4px!important;accent-color:#111}
.public-page .booking-drawer .form-success:empty{display:none!important}
@media(max-width:720px){
  .public-page .directory-favorite{right:8px;top:8px;width:38px;height:38px;border-radius:8px}
  .public-page .favorite-icon{width:22px;height:22px}
  .public-page .booking-consents{gap:8px;margin-bottom:14px}
  .public-page .consent-row{font-size:11px}
  .public-page .booking-form > #bookingGuestFields > .form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .public-page .country-phone-row{grid-template-columns:118px minmax(0,1fr);gap:8px}
}
@media(max-width:350px){
  .public-page .booking-form > #bookingGuestFields > .form-row,
  .public-page .country-phone-row{grid-template-columns:1fr}
}

/* v15 profile media: large editorial slider instead of tiny thumbnail grid. */
.public-page .profile-media-section-head{
  align-items:flex-end;
}
.public-page .profile-media-section-head>div:first-child{
  min-width:0;
}
.public-page .profile-slider-controls{
  display:flex;
  gap:6px;
  flex:0 0 auto;
}
.public-page .profile-slider-btn{
  width:38px;
  height:38px;
  border:1px solid var(--line-strong);
  border-radius:15px;
  background:#fff;
  color:var(--ink);
  font-size:18px;
  line-height:1;
  cursor:pointer;
}
.public-page .profile-slider-btn:hover{
  background:#111;
  border-color:#111;
  color:#fff;
}
.public-page .profile-media-grid{
  display:flex;
  gap:14px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:2px 2px 12px;
}
.public-page .profile-media-grid::-webkit-scrollbar{display:none}
.public-page .profile-media-grid .profile-photo-tile,
.public-page .profile-media-grid .profile-video-tile{
  flex:0 0 min(68%,520px);
  width:auto;
  aspect-ratio:4 / 5;
  scroll-snap-align:start;
  border-radius:15px;
}
.public-page .profile-media-grid .profile-photo-tile img{
  object-fit:cover;
}
.public-page .profile-media-grid .profile-video-tile video{
  object-fit:cover;
}
@media(max-width:720px){
  .public-page .profile-media-section-head{align-items:center}
  .public-page .profile-slider-btn{width:34px;height:34px;border-radius:8px}
  .public-page .profile-media-grid{gap:8px;padding-bottom:8px}
  .public-page .profile-media-grid .profile-photo-tile,
  .public-page .profile-media-grid .profile-video-tile{
    flex-basis:86vw;
    border-radius:8px;
  }
}

/* v16: natural-size category tiles. Never crop portrait or landscape media. */
.public-page .profile-summary-sticky{
  position:sticky;
  top:96px;
  align-self:start;
}
.public-page .profile-media-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  overflow:visible;
  padding:0;
  scroll-snap-type:none;
}
.public-page .profile-media-grid .profile-photo-tile,
.public-page .profile-media-grid .profile-video-tile{
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  flex:none;
  scroll-snap-align:none;
  overflow:hidden;
  background:#f1eee7;
}
.public-page .profile-media-grid .profile-photo-tile img{
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  object-fit:contain;
  object-position:center;
}
.public-page .profile-media-grid .profile-photo-tile:only-child,
.public-page .profile-media-grid .profile-video-tile:only-child{
  grid-column:1 / -1;
}
.public-page .profile-media-grid .profile-video-tile video{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  background:#111;
}
.public-page .profile-media-grid .profile-video-tile span{
  display:block;
  padding:10px 12px;
  background:#111;
}
@media(max-width:720px){
  .public-page .profile-summary-sticky{position:static}
  .public-page .profile-media-grid{grid-template-columns:1fr;gap:8px}
  .public-page .profile-media-grid .profile-photo-tile,
  .public-page .profile-media-grid .profile-video-tile{
    grid-column:auto;
    border-radius:8px;
  }
}

/* v18 profile refinement: calm specification rows and larger full-width media. */
.public-page .profile-summary-card h1{
  font-weight:600;
  letter-spacing:-.055em;
  font-size:clamp(38px,3.7vw,56px);
}
.public-page .profile-public-params.right-side-params{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  margin:24px 0 20px;
  border-top:1px solid var(--line);
}
.public-page .profile-public-params.right-side-params> .profile-param-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 30px;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:14px 0;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0!important;
  background:transparent;
}
.public-page .profile-public-params.right-side-params> .profile-param-row span{
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
}
.public-page .profile-public-params.right-side-params> .profile-param-row b{
  font-size:18px;
  font-weight:500!important;
}
.public-page .profile-media-grid{
  grid-template-columns:1fr;
}
.public-page .profile-media-grid .profile-photo-tile,
.public-page .profile-media-grid .profile-video-tile{
  grid-column:1;
  width:100%;
}
@media(max-width:720px){
  .public-page .profile-summary-card h1{font-size:clamp(34px,10vw,48px)}
  .public-page .profile-public-params.right-side-params{
    grid-template-columns:1fr;
    margin-top:20px;
  }
  .public-page .profile-public-params.right-side-params> .profile-param-row{
    padding:12px 0;
  }
}

/* v19: editorial vertical media feed. Each category flows downward without
   fixed-height tiles, so portrait and landscape files keep their proportions. */
.public-page .profile-media-section{width:100%;max-width:980px}
.public-page .profile-gallery-main.profile-media-sections{display:block!important;grid-template-columns:none!important;width:100%!important}
.public-page .profile-media-grid{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:18px!important;overflow:visible!important;padding:0!important}
.public-page .profile-media-grid .profile-photo-tile,
.public-page .profile-media-grid .profile-video-tile{display:block!important;width:100%!important;max-width:980px!important;height:auto!important;min-height:0!important;aspect-ratio:auto!important;flex:none!important;grid-column:auto!important;border-radius:15px!important;overflow:hidden!important}
.public-page .profile-media-grid .profile-photo-tile img{position:static!important;inset:auto!important;display:block!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;object-fit:contain!important;object-position:center!important}
.public-page .profile-media-grid .profile-video-tile video{display:block!important;width:100%!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important}
@media(max-width:720px){
  .public-page .profile-media-section{max-width:none}
  .public-page .profile-media-grid{gap:8px!important}
  .public-page .profile-media-grid .profile-photo-tile,
  .public-page .profile-media-grid .profile-video-tile{max-width:none!important;border-radius:8px!important}
}

/* Last rule wins: keep the shared geometry contract after all page-specific
   refinements above. */
:root{--radius:15px}
.panel,.stat-card,.attention-card,.casting-card,.selection-card,
.admin-model-card,.review-card,.tilda-card,.modal-box,.modal-card,
.media-card,.md-popup-box,.md-confirm-box,.application-model-card,
.application-client-card,.application-request-card,.application-models-panel,
.auth-card,.upload-zone,.filter-panel,.public-filters,.catalog-loading,
.catalog-error,.empty-state,.profile-summary-card,.profile-details-panel,
.home-category-tile,.directory-photo-wrap,.profile-photo-tile,
.photo-manager-item,.admin-selection-builder,.public-selection-hero,
.booking-drawer-panel{border-radius:15px}
@media(max-width:760px){
  .panel,.stat-card,.attention-card,.casting-card,.selection-card,
  .admin-model-card,.review-card,.tilda-card,.modal-box,.modal-card,
  .media-card,.md-popup-box,.md-confirm-box,.application-model-card,
  .application-client-card,.application-request-card,.application-models-panel,
  .auth-card,.upload-zone,.filter-panel,.public-filters,.catalog-loading,
  .catalog-error,.empty-state,.profile-summary-card,.profile-details-panel,
  .home-category-tile,.directory-photo-wrap,.profile-photo-tile,
  .photo-manager-item,.admin-selection-builder,.public-selection-hero,
  .booking-drawer-panel{border-radius:8px}
}

/* Единый подвал для всех публичных страниц frontend/*.html (каталог,
   вход, регистрация, кастинги, правовые страницы) — буквально тот же
   подвал (разметка и стили), что уже работает на лендинге modeldesk.ru
   (landing/index.html, class="footer-main"), просто скопированный
   сюда 1:1, а не придуманный заново. Внутренние якоря (#features и
   т.п.) на этих страницах ведут на /#features — назад на лендинг,
   с которого они вообще имеют смысл; на самом лендинге те же классы
   используют относительные #features и продолжают работать как раньше,
   эти правила их не трогают (другой файл, другой <style>). Показ самого
   подвала ограничен доменом modeldesk.ru через JS-проверку hostname
   рядом с HTML-блоком (а не здесь) — см. frontend/*.html.*/
.footer-main{background:linear-gradient(180deg,#f5f7fb 0%,#f1f4fa 100%);padding:70px 0 32px;border-top:1px solid #dde1e8;margin-top:48px}
.footer-main .container{width:min(1100px,calc(100% - 48px));margin:auto}
.footer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:34px;padding-bottom:48px;border-bottom:1px solid #d8dde5}
.footer-col h4{font-size:18px;margin:0 0 22px}
.footer-col a{display:block;margin:0 0 14px;font-size:14px;color:#34383d}
.footer-col a:hover{color:#2d6a4f}
.footer-mid{display:grid;grid-template-columns:1fr 1.5fr;gap:50px;padding:42px 0;border-bottom:1px solid #d8dde5}
.footer-mid h4{font-size:18px;margin:0 0 20px}
.footer-social{display:flex;gap:10px}
.footer-social .social{width:46px;height:46px;border-radius:12px;background:#fff;border:1px solid #e1e5eb;display:grid;place-items:center;font-weight:800;color:#35425d;transition:.2s ease}
.footer-social .social:hover{border-color:#2d6a4f;color:#2d6a4f}
.footer-mid .site-search{height:52px;border:1px solid #e0e4ea;background:#fff;border-radius:12px;display:flex;align-items:center;padding:0 16px;color:#34383d;font-weight:650;transition:.2s ease}
.footer-mid .site-search:hover{border-color:#2d6a4f;color:#2d6a4f}
.footer-legal{padding-top:36px;width:min(1100px,calc(100% - 48px));margin:auto}
.footer-legal .copyright{display:flex;justify-content:space-between;gap:20px;margin-top:34px;font-size:13px}
.footer-legal .footer-note{margin-top:14px;font-size:12px;line-height:1.5;color:#9aa0ab}
@media(max-width:1100px){
  .footer-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:26px}
  .footer-mid{grid-template-columns:1fr}
  .footer-legal .copyright{flex-direction:column}
  .footer-main{padding-top:48px}
}
@media(max-width:460px){
  .footer-grid{grid-template-columns:1fr}
  .footer-col{padding-bottom:18px;border-bottom:1px solid #dfe3e9}
  .footer-col:last-child{border-bottom:0}
}
