@import url('fonts-local.css');

:root{color-scheme:dark;--bg:#101719;--panel:#131b1e;--line:rgba(207,220,224,.16);--muted:#9aa7ac;--yellow:#febc02;--text:#f5f6f7}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;color:var(--text);font:16px/1.5 "Montserrat",Arial,sans-serif;letter-spacing:0;min-width:320px;background:linear-gradient(rgba(12,18,21,.8),rgba(12,18,21,.86)),url('../assets/bg/objects-blueprint.png') center top/1600px auto repeat-y}
button,input,select{font:inherit;letter-spacing:0}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
button{color:inherit}
img{max-width:100%;display:block}
button:disabled{cursor:default;opacity:.3}
:focus-visible{outline:2px solid var(--yellow);outline-offset:5px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.icon{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.skip-link{position:fixed;top:8px;left:16px;padding:12px 20px;background:var(--yellow);color:#111;z-index:20;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.site-header{border-bottom:1px solid var(--line);background:rgba(11,17,19,.42)}
.header-inner{max-width:1584px;padding:26px 48px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:36px;min-height:110px}
.brand{position:relative;display:block;width:220px;flex-shrink:0}
.brand img{width:100%;height:auto}
.brand .brand-letters{position:absolute;inset:0;filter:brightness(0) invert(1);clip-path:inset(0 0 0 26%)}
.site-nav{display:flex;align-items:center;gap:38px;font-size:14px;font-weight:500}
.site-nav>a{padding:12px 0;white-space:nowrap;transition:color .2s}
.site-nav>a:hover,.site-nav>a[aria-current]{color:var(--yellow)}
.header-socials{display:flex;gap:10px}
.icon-button{display:inline-grid;place-items:center;border:1px solid rgba(225,234,238,.4);background:transparent;border-radius:50%;width:44px;height:44px;flex:none;transition:background .2s,color .2s,border-color .2s}
.icon-button:hover{background:var(--yellow);border-color:var(--yellow);color:#101719}
.max-link{font:700 10px/1 Arial,sans-serif}
.menu-toggle{display:none}
.page-shell{max-width:1880px;margin:auto;padding:42px 36px 100px}
.breadcrumbs{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-bottom:26px}
.breadcrumbs a:hover{color:var(--yellow)}
.breadcrumbs [aria-current]{color:#e0e4e6}
.catalog-head{display:flex;align-items:center;flex-wrap:wrap;gap:34px;margin-bottom:46px}
h1{font-size:60px;line-height:.95;margin:0;text-transform:uppercase;font-weight:700;letter-spacing:-.02em}
.category-filter{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.category-filter button{border:1px solid rgba(255,255,255,.24);background:rgba(10,16,19,.42);border-radius:22px;padding:10px 17px;font-family:"Inter","Arial Narrow",sans-serif;font-size:16px;line-height:1.2;font-weight:400;letter-spacing:0;transition:border-color .2s ease,color .2s ease,background .2s ease}
.category-filter button:hover{border-color:rgba(254,188,2,.6);color:#fff}
.category-filter button[aria-pressed=true]{background:var(--yellow);color:#101719;border-color:var(--yellow)}
.catalog-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
.filter-panel{background:rgba(15,23,26,.76);border:1px solid var(--line);border-radius:4px;padding:24px 20px;position:sticky;top:24px;margin-left:-12px}
.filters summary{font-size:18px;font-weight:800;text-transform:uppercase;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
.filters summary::-webkit-details-marker{display:none}
.filters summary .icon{width:18px;height:18px;color:var(--muted)}
.filter-fields{display:grid;gap:18px;margin-top:28px}
.search-field{position:relative}
.search-field>.icon{position:absolute;left:12px;top:15px;width:17px;height:17px;color:#c7d0d3;pointer-events:none}
input[type=search],select{width:100%;min-width:0;height:48px;border:1px solid rgba(205,218,222,.24);border-radius:4px;background:rgba(9,15,18,.4);color:#f2f4f5;font-size:12px}
input[type=search]{padding:0 8px 0 36px}
input::placeholder{color:#93a0a6;opacity:1}
.select-field{position:relative;display:block;min-width:0}
select{appearance:none;padding:0 38px 0 14px;cursor:pointer}
select option{background:#151e22;color:#fff}
.select-field>.icon{position:absolute;right:12px;top:15px;width:18px;height:18px;pointer-events:none}
.year-filter{padding:0;border:0;margin:12px 0 0;min-width:0}
.year-filter legend{font-size:13px;margin-bottom:22px;color:#e9edef}
.year-options{position:relative;display:grid;gap:4px}
.year-options::before{content:"";position:absolute;left:6px;top:20px;bottom:20px;width:1px;background:var(--line)}
.year-option{position:relative;display:flex;align-items:center;gap:18px;min-height:46px;color:#98a5ab;cursor:pointer;font-size:19px}
.year-option input{appearance:none;width:13px;height:13px;margin:0;background:#111a1e;border:1px solid #637077;border-radius:50%;flex:none;z-index:1}
.year-option input:checked{border-color:var(--yellow);background:var(--yellow);box-shadow:0 0 0 4px rgba(254,188,2,.14)}
.year-option:has(input:checked){color:#fff;font-weight:700}
.year-option:first-child{font-size:14px}
.reset-button{display:flex;align-items:center;gap:12px;border:0;border-top:1px solid var(--line);background:transparent;margin-top:14px;padding:24px 0 0;font-size:12px;color:#bbc5c9;min-height:46px;text-align:left}
.reset-button:hover{color:var(--yellow)}
.reset-button .icon{width:19px;height:19px}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 22px;min-height:48px}
.catalog-toolbar p{font-size:12px;color:var(--muted);margin:0}
.sort-field{width:230px;flex-shrink:0}
.object-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 14px}
.object-card{border:1px solid var(--line);border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(19,27,30,.98));overflow:hidden;min-width:0;display:flex;flex-direction:column;box-shadow:0 18px 38px rgba(0,0,0,.22);transition:border-color .2s,transform .2s}
.object-card:hover{border-color:rgba(254,188,2,.55)}
.object-card__media{position:relative;display:block;padding:0;border:0;background:#222c30;width:100%;aspect-ratio:.88;overflow:hidden;text-align:left}
.object-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.object-card:hover .object-card__media img{transform:scale(1.035)}
.object-card__media:focus-visible{outline-offset:-5px}
.object-card__year{position:absolute;top:14px;left:14px;background:#101b20;border-radius:18px;padding:4px 12px;color:var(--yellow);font-size:13px;font-weight:700}
.object-card__body{padding:17px 15px 16px;flex:1;display:flex;flex-direction:column}
.object-card h2{font-size:16px;line-height:1.3;min-height:4em;font-weight:600;margin:0 0 13px;overflow-wrap:anywhere}
.object-card__title{border:0;background:transparent;padding:0;text-align:left;font:inherit;line-height:inherit;cursor:pointer}
.object-card__title:hover{color:var(--yellow)}
.object-card__city{display:flex;align-items:flex-start;gap:8px;margin:0 0 14px;min-height:3em;color:#c9d1d4;font-size:12px}
.object-card__city .icon{width:17px;height:17px;color:var(--yellow);margin-top:1px}
.object-card__roof{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0;margin:0 0 12px;color:#aeb9be;font-size:12px}
.object-card__bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}
.object-card__area{color:var(--yellow);font-size:21px;line-height:1.3;font-weight:700}
.object-card__area small{display:block;color:#9aa7ac;font-size:10px;font-weight:500;margin-bottom:5px}
.object-card .icon-button{width:38px;height:38px;color:var(--yellow);border-color:rgba(208,221,226,.4)}
.object-card .icon-button:hover{color:#101719}
.pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin:36px 0 0}
.pagination button{width:42px;height:42px;display:grid;place-items:center;background:rgba(14,22,25,.7);border:1px solid rgba(205,218,222,.3);border-radius:4px;font-size:13px}
.pagination button[aria-current]{background:var(--yellow);color:#111;border-color:var(--yellow);font-weight:700}
.pagination button:not(:disabled):hover{border-color:var(--yellow)}
.pagination__ellipsis{width:24px;text-align:center;color:var(--muted)}
.empty-state{text-align:center;padding:90px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.empty-state>.icon{width:36px;height:36px;color:var(--yellow)}
.empty-state h2{font-size:24px;margin:20px 0 10px}
.empty-state p{color:var(--muted);font-size:14px}
.accent-button{border:1px solid var(--yellow);border-radius:4px;background:var(--yellow);color:#121719;padding:12px 18px;font-size:13px;font-weight:600;margin-top:14px}
.object-dialog{position:fixed;padding:0;width:min(900px,calc(100% - 32px));max-height:90dvh;border:1px solid var(--line);border-radius:8px;background:#131c20;color:#fff;overflow:auto;overscroll-behavior:contain}
.object-dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(5px)}
body:has(.object-dialog[open]){overflow:hidden}
.dialog-close{position:absolute;right:14px;top:14px;background:#101719;z-index:1}
.dialog-media{position:relative;background:#0b1114}
.dialog-photo{width:100%;max-height:55dvh;object-fit:contain;background:#0b1114}
.dialog-photo-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(16,23,25,.88);z-index:1}
.dialog-photo-nav:hover{transform:translateY(-50%)}
.dialog-photo-nav--prev{left:14px}.dialog-photo-nav--next{right:14px}
.dialog-photo-count{position:absolute;right:16px;bottom:14px;padding:5px 10px;border-radius:16px;background:rgba(11,17,20,.84);font-size:11px;color:#fff}
.dialog-copy{padding:28px 32px 32px}
.dialog-category{font-size:12px;color:var(--yellow);margin:0 0 10px}
.dialog-copy h2{font-size:26px;line-height:1.3;margin:0 0 24px;overflow-wrap:anywhere}
.dialog-description{margin:-8px 0 24px;color:#c8d0d3;font-size:14px;line-height:1.65}
.dialog-copy dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0}
.dialog-copy dl div{border-top:1px solid var(--line);padding-top:12px}
.dialog-copy dt{font-size:12px;color:var(--muted);margin-bottom:6px}
.dialog-copy dd{font-size:15px;margin:0}
.dialog-source{display:inline-flex;align-items:center;gap:8px;margin-top:26px;color:var(--yellow);font-size:13px;font-weight:600}
.dialog-source .icon{width:17px;height:17px}
@media(max-width:1499px){.object-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1200px){
  .header-inner,.page-shell{padding-left:32px;padding-right:32px}
  .site-nav{gap:23px;font-size:12px}.brand{width:195px}
  .catalog-layout{grid-template-columns:205px minmax(0,1fr);gap:20px}
  .filter-panel{padding:22px 15px;margin-left:-8px}.object-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 14px}
  .object-card__body{padding:16px 13px}.object-card h2{font-size:16px}.object-card__area{font-size:18px}
}
@media(max-width:1000px){
  .catalog-head{gap:22px;margin-bottom:30px}h1{font-size:44px}.category-filter{margin-left:0}.object-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-nav{gap:16px}.header-inner{gap:24px}.brand{width:170px}.header-socials{gap:7px}.header-socials .icon-button{width:36px;height:36px}
  .category-filter button{padding:10px 16px}
}
@media(max-width:760px){
  .header-inner{min-height:86px;padding:18px 22px;position:relative}.brand{width:190px}.menu-toggle{display:grid}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 24px 28px;background:#111b20;border-bottom:1px solid var(--line);z-index:10;box-shadow:0 18px 30px #0006;font-size:15px}
  .site-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:4px}.header-socials{margin-top:14px}
  .page-shell{padding:26px 22px 60px}.breadcrumbs{margin-bottom:24px;font-size:11px}
  .catalog-head{display:block;margin-bottom:24px}h1{font-size:34px;margin-bottom:25px}.category-filter{gap:8px}.category-filter button{font-size:12px;padding:9px 14px}
  .catalog-layout{display:block}.filter-panel{position:static;padding:17px 18px;margin:0 0 20px}.filters summary{font-size:14px}.filter-fields{margin-top:24px}
  .year-options{display:flex;gap:22px;flex-wrap:wrap}.year-options::before{display:none}.year-option{font-size:15px;gap:9px;min-height:36px}.year-filter legend{margin-bottom:12px}
  .catalog-toolbar{gap:10px}.sort-field{width:190px}.catalog-toolbar p{font-size:11px}
  .object-card__media{aspect-ratio:.92}.object-card h2{min-height:4.05em}.object-card__city{min-height:3em}
}
@media(max-width:480px){
  .page-shell{padding-left:18px;padding-right:18px}h1{font-size:30px}.brand{width:180px}.header-inner{padding-left:18px;padding-right:18px}
  .object-grid{grid-template-columns:minmax(0,1fr);gap:20px}.object-card__media{aspect-ratio:1.12 / 1}
  .object-card__body{padding:20px}.object-card h2{font-size:20px;min-height:0;margin-bottom:16px}.object-card__city{min-height:0;font-size:13px}.object-card__area{font-size:23px}
  .object-card__roof{font-size:13px}.object-card .icon-button{width:42px;height:42px}
  .sort-field{width:180px}.pagination{gap:8px}.pagination button{width:40px;height:40px}
  .dialog-copy{padding:22px}.dialog-copy h2{font-size:22px}.dialog-copy dl{grid-template-columns:1fr;gap:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
