/* Step 7.1.9.4.128.2 corrected — catalog manual-card flex allocation:
   keep the original title typography; do not allow the title/kicker to flex-shrink;
   let the short-description area yield space first. */
:root { --bg:#07110f; --panel:#0d1a17; --text:#f5f7f6; --muted:#9ba8a4; --line:rgba(255,255,255,.10); --accent:#dcebe6; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; }
.catalog-wrap { width:min(1280px, calc(100% - 40px)); margin:0 auto; }
.catalog-header { padding:58px 0 30px; }
.brand-line { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { font-size:28px; font-weight:800; letter-spacing:2px; }
.admin-link { color:var(--muted); font-size:13px; text-decoration:none; }
.hero { padding:48px 0 36px; max-width:850px; }
.hero h1 { margin:0 0 15px; font-size:clamp(38px,6vw,76px); line-height:.98; letter-spacing:-.04em; }
.hero p { margin:0; color:var(--muted); font-size:18px; line-height:1.6; }
.search-box { display:grid; grid-template-columns:1fr auto; gap:10px; margin-top:28px; }
.search-box input { width:100%; padding:15px 17px; border:1px solid var(--line); border-radius:11px; background:#0a1512; color:#fff; outline:none; font-size:16px; }
.search-box button { border:0; border-radius:11px; padding:0 22px; background:#fff; color:#07110f; font-weight:800; cursor:pointer; }
.filters { display:flex; gap:8px; flex-wrap:wrap; padding:5px 0 30px; }
.filters a { padding:8px 12px; border:1px solid var(--line); border-radius:999px; color:var(--muted); text-decoration:none; font-size:13px; }
.filters a.active, .filters a:hover { color:#fff; border-color:rgba(255,255,255,.35); }
.results-head { display:flex; justify-content:space-between; align-items:end; gap:20px; margin:12px 0 18px; }
.results-head h2 { margin:0; font-size:18px; }
.results-head span { color:var(--muted); font-size:13px; }
.cards-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding-bottom:70px; }
.site-card { min-height:390px; position:relative; overflow:hidden; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:17px; background:var(--panel); text-decoration:none; transition:transform .2s ease,border-color .2s ease; }
.site-card:hover { transform:translateY(-3px); border-color:rgba(255,255,255,.24); }
.card-visual { position:relative; height:220px; background:linear-gradient(135deg,#183229,#0a1512); overflow:hidden; }
.card-visual::after { content:""; position:absolute; inset:auto 0 0; height:45%; background:linear-gradient(transparent,rgba(7,17,15,.55)); }
.no-image { height:100%; display:grid; place-items:center; font-size:44px; font-weight:900; letter-spacing:.06em; color:rgba(255,255,255,.72); }
.logo { position:absolute; left:18px; top:18px; z-index:2; max-width:120px; max-height:48px; object-fit:contain; filter:drop-shadow(0 4px 12px rgba(0,0,0,.3)); }
.card-body { padding:19px 20px 21px; display:flex; flex-direction:column; flex:1; }
.card-kicker { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px; }
.card-body h3 { margin:0 0 9px; font-size:22px; }
.card-body p { margin:0; color:var(--muted); line-height:1.5; font-size:14px; }
.card-bottom { margin-top:auto; padding-top:18px; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.tags { color:#aab5b2; font-size:12px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.open { font-weight:800; font-size:13px; white-space:nowrap; }
.empty { padding:50px 0 90px; color:var(--muted); }
.footer { border-top:1px solid var(--line); padding:24px 0 35px; color:var(--muted); font-size:12px; }
@media(max-width:950px){.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.catalog-wrap{width:min(100% - 24px,1280px)}.catalog-header{padding-top:28px}.hero{padding-top:35px}.search-box{grid-template-columns:1fr}.search-box button{min-height:48px}.cards-grid{grid-template-columns:1fr}.site-card{min-height:350px}.card-visual{height:200px}}

/* Step 7.1.9.4.49 — оформленная auto-standard визитка в каталоге. */
.site-card-standard{min-height:0}
.standard-card-thumb{position:relative;width:100%;aspect-ratio:820/540;overflow:hidden;background:#eef2f0}
.standard-card-frame{position:absolute;left:0;top:0;width:820px;height:540px;border:0;pointer-events:none;transform-origin:0 0}
.standard-card-caption{min-height:104px}
.standard-card-hit{position:absolute;inset:0;z-index:5;border-radius:inherit}
.standard-card-hit:focus-visible{outline:3px solid #fff;outline-offset:-5px}

/* Step 7.1.9.4.88–4.89 — fixed catalog tiles + modal details for manual objects. */
.catalog-manual-card{height:410px;min-height:410px;box-sizing:border-box}
.catalog-manual-card .card-visual{height:200px;flex:0 0 200px}
.catalog-card-hit{position:absolute;inset:0;z-index:3;border-radius:inherit;text-decoration:none}
.catalog-card-hit:focus{outline:none}
.catalog-card-hit:focus-visible{outline:3px solid #fff;outline-offset:-5px}
.catalog-manual-card .card-body{min-height:0;overflow:hidden;padding:14px 16px 15px}
.catalog-card-kicker,.catalog-card-title,.catalog-card-description{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}
.catalog-card-kicker{flex:0 0 auto;-webkit-line-clamp:1;margin-bottom:5px;line-height:1.25}
.catalog-card-title{flex:0 0 auto;-webkit-line-clamp:2;margin-bottom:5px!important;line-height:1.12}
.catalog-description-wrap{display:flex;flex:0 1 auto;min-height:0;overflow:hidden;flex-direction:column;align-items:flex-start}
.catalog-card-description{flex:0 1 auto;min-height:0;-webkit-line-clamp:3;line-height:1.38!important}
.catalog-detail-trigger{position:relative;z-index:4;border:0;background:none;color:#aab5b2;font:inherit;cursor:pointer;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}
.catalog-description-more{align-self:flex-start;margin-top:3px;padding:0;font-size:11px;font-weight:700;text-decoration:none;border-bottom:1px dashed rgba(216,224,221,.48);line-height:1.2}
.catalog-detail-trigger:hover,.catalog-detail-trigger:focus{color:#fff}
.catalog-detail-trigger:focus{outline:none}
.catalog-detail-trigger:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:3px}
.catalog-tags{display:flex;align-items:center;min-width:0;gap:6px;overflow:visible;white-space:nowrap;text-overflow:clip}
.catalog-tags-visible{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catalog-direction{font-weight:400;color:inherit}.catalog-direction-primary{font-weight:900;color:#fff}.catalog-direction-sep{color:#7f8c88}
.catalog-tags-separator{position:relative;z-index:4;flex:0 0 auto;color:#7f8c88}
.catalog-tags-more{flex:0 0 auto;padding:1px 5px;border:1px solid rgba(255,255,255,.17);border-radius:999px;font-size:11px;font-weight:800;text-decoration:none;line-height:1.35}
.catalog-manual-card .card-bottom{flex:0 0 auto;padding-top:9px}
.catalog-manual-card .open{position:relative;z-index:4;text-decoration:none}
.catalog-details-dialog{width:min(680px,calc(100vw - 32px));max-height:min(82vh,760px);padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:17px;background:#10201b;color:#fff;box-shadow:0 24px 80px rgba(0,0,0,.48)}
.catalog-details-dialog::backdrop{background:rgba(1,8,6,.72)}
.catalog-details-dialog-panel{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:min(82vh,760px);max-height:min(82vh,760px);overflow:hidden}
.catalog-details-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px 12px 18px;border-bottom:1px solid var(--line)}
.catalog-details-dialog-head strong{font-size:15px}
.catalog-details-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:50%;background:#172b24;color:#fff;font:inherit;font-size:25px;font-weight:400;line-height:1;cursor:pointer;-webkit-appearance:none;appearance:none;outline:none;-webkit-tap-highlight-color:transparent}
.catalog-details-close span{display:block;transform:translateY(-1px)}
.catalog-details-close:hover,.catalog-details-close:focus{border-color:rgba(255,255,255,.48);background:#1b322a;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.catalog-details-dialog-body{min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px 22px 28px;-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.catalog-details-dialog-body::-webkit-scrollbar{width:0;height:0;display:none}
.catalog-details-content h3{margin:0 0 8px;font-size:25px;line-height:1.2}
.catalog-details-subtitle{margin-bottom:14px;color:#b9c5c1;font-size:13px;line-height:1.5;text-transform:uppercase;letter-spacing:.05em}
.catalog-details-content p{margin:0 0 16px;color:#d5ddda;font-size:14px;line-height:1.65}
.catalog-details-section-title{margin:19px 0 8px;color:#fff;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.catalog-details-tags{color:#b9c5c1;font-size:13px;line-height:1.7}
.catalog-details-scroll-hint{position:absolute;left:0;right:0;bottom:58px;z-index:3;height:58px;display:flex;align-items:flex-end;justify-content:center;padding:0 12px 8px;pointer-events:none;background:linear-gradient(to bottom,rgba(16,32,27,0),rgba(16,32,27,.94) 68%,#10201b 100%)}
.catalog-details-scroll-hint[hidden]{display:none}
.catalog-details-scroll-hint span{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(16,32,27,.92);color:#cbd5d1;font-size:11px;font-weight:700;line-height:1;letter-spacing:.02em;box-shadow:0 5px 14px rgba(0,0,0,.18)}
.catalog-details-dialog-footer{position:relative;z-index:4;display:flex;align-items:center;justify-content:flex-end;min-height:58px;padding:10px 14px;border-top:1px solid var(--line);background:#10201b}
.catalog-details-open-link{display:inline-flex;align-items:center;justify-content:center;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:#172b24;color:#fff;text-decoration:none;font-size:12px;font-weight:800;-webkit-appearance:none;appearance:none;outline:none;-webkit-tap-highlight-color:transparent}
.catalog-details-open-link:hover,.catalog-details-open-link:focus{border-color:rgba(255,255,255,.48);background:#172b24;color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.catalog-details-open-link:focus{outline:none}
.catalog-details-open-link:focus-visible{outline:none}
html.catalog-details-open,html.catalog-details-open body{overflow:hidden}
@media(max-width:620px){
    .catalog-manual-card{height:410px;min-height:410px}
    .catalog-manual-card .card-visual{height:190px;flex-basis:190px}
    .catalog-card-kicker{-webkit-line-clamp:1}
    .catalog-card-title{-webkit-line-clamp:2}
    .catalog-card-description{-webkit-line-clamp:3}
    .catalog-details-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px);border-radius:14px}
    .catalog-details-dialog-panel{height:calc(100vh - 20px);max-height:calc(100vh - 20px)}
    .catalog-details-dialog-body{padding:18px 16px 26px}
    .catalog-details-dialog-head{padding:10px 10px 10px 16px}
    .catalog-details-dialog-footer{min-height:58px;padding:10px 12px}
    .catalog-details-scroll-hint{bottom:58px}
    .catalog-details-open-link{width:auto}
}
