/* Catalog composition follows the owner-provided six-card reference. */
.apartments.content {
  position: relative;
  max-width: none;
  padding: 144px clamp(20px, 2.7vw, 40px) 64px;
  background: radial-gradient(ellipse at 55% 43%, #fffefa 0%, #f8f6f2 54%, #f0eee9 100%);
  overflow: hidden;
}
.apartments .catalog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 35px;
  padding: 0 22px;
}
.apartments .catalog-head h2 {
  font: 400 clamp(35px, 3.15vw, 44px)/1.04 var(--serif);
  letter-spacing: -.028em;
  text-transform: uppercase;
  white-space: nowrap;
}
.apartments .catalog-tagline {
  margin: 8px 0 0;
  color: #898b8a;
  font: 11px/1.5 Arial, sans-serif;
  letter-spacing: .25em;
  text-transform: uppercase;
}
.apartments .catalog-tagline span { margin: 0 12px; color: #333b3d; }
.apartments .catalog-count { display: flex; flex-direction: column; align-items: flex-end; min-width: 200px; padding-top: 4px; }
.apartments .catalog-count > span:first-child { font: 13px/1.4 Arial, sans-serif; letter-spacing: .035em; white-space: nowrap; }
.apartments .catalog-count-rule { width: 48px; height: 1px; margin: -9px 0 19px; background: #d7d5d1; transform: translateX(62px); }
.apartments .catalog-count small { color: #c6c5c1; font: 11px/1.45 Arial, sans-serif; letter-spacing: .12em; text-align: right; text-transform: uppercase; }
.apartments .catalog-bar { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin: 0 14px 17px; padding: 0; border: 0; }
.apartments .filters { display: flex; flex-wrap: nowrap; gap: 0; border-radius: 9px; background: #eeedeb; overflow: hidden; }
.apartments .filters button {
  min-width: 108px;
  height: 39px;
  padding: 0 19px;
  border: 1px solid #fff9;
  border-radius: 0;
  background: transparent;
  color: #343b3e;
  font: 14px/1 Arial, sans-serif;
  white-space: nowrap;
  transition: background .3s, color .3s;
}
.apartments .filters button:first-child { border-radius: 8px 0 0 8px; }
.apartments .filters button:last-child { border-radius: 0 8px 8px 0; }
.apartments .filters button.active,.apartments .filters button[aria-pressed="true"] { color: #fff; background: #2b363a; border-color: #2b363a; border-radius: 8px; }
.apartments .filters button:not(.active):hover { background: #e4e3df; }
.apartments .catalog-sort { position: relative; flex: 0 0 153px; height: 39px; }
.apartments .catalog-sort select {
  width: 100%; height: 100%; appearance: none;
  border: 1px solid #d7d6d1; border-radius: 14px;
  padding: 0 30px 0 20px; background: #ffffff68;
  color: #3a4144; font: 10px/1 Arial, sans-serif; letter-spacing: .17em; text-transform: uppercase; cursor: pointer;
}
.apartments .catalog-sort svg { position: absolute; right: 19px; top: 15px; pointer-events: none; }
.apartments .lots-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 75px; }
.apartments .lot-card {
  min-width: 0; min-height: 396px; padding: 0;
  display: flex; flex-direction: column;
  border: 1px solid #e3e1dc; border-radius: 7px;
  background: #fcfbf8; box-shadow: 0 12px 28px #33372e12;
  overflow: hidden;
  transition: translate .65s cubic-bezier(.22,.7,.2,1), box-shadow .65s ease, border-color .65s ease;
}
.apartments .lot-card-media { display: grid; grid-template-columns: 42.5% 57.5%; height: 294px; min-width: 0; border-bottom: 1px solid #e8e6e1; }
.apartments .lot-plan-panel { position: relative; min-width: 0; overflow: hidden; background: #fdfcf9; }
.apartments .lot-card-meta { position: absolute; z-index: 1; top: 19px; left: 22px; right: 5px; display: grid; gap: 3px; }
.apartments .lot-card-meta > span { font: 12px/1.35 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.apartments .lot-card-meta small { color: #a4a5a3; font: 10px/1.4 Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.apartments .lot-card-meta b { margin: 0 7px; font-weight: 400; }
.apartments .lot-plan-art { position: absolute; inset: 62px 0 44px; display: grid; place-items: center; overflow: hidden; }
.apartments .lot-plan-art img { width: 100%; height: 100%; max-width: none; object-fit: contain; pointer-events: none; }
.apartments .lot-plan-art--4 img { transform: scale(2.2); }
.apartments .lot-plan-art--5 img { transform: scale(1.8); }
.apartments .lot-plan-art--6 img { transform: scale(1.6); }
.apartments .lot-view { position: absolute; left: 21px; right: 6px; bottom: 15px; display: flex; align-items: center; gap: 9px; color: #8e928e; font: 10px/1.2 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.apartments .lot-view svg { display: block; width: 26px; height: 26px; flex: 0 0 26px; fill: none; stroke: #818681; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.apartments .lot-photo-panel { position: relative; overflow: hidden; background: #758693; }
.apartments .lot-photo-panel > img { width: 100%; height: 100%; object-fit: fill; transform-origin: center; transition: transform .9s cubic-bezier(.2,.7,.18,1), filter .9s ease; }
@media (hover: hover) and (pointer: fine) {
  .apartments .lot-card:hover,
  .apartments .lot-card:focus-within { translate: 0 -5px; border-color: #d4c9b8; box-shadow: 0 22px 42px #33372e24; }
  .apartments .lot-card:hover .lot-photo-panel > img,
  .apartments .lot-card:focus-within .lot-photo-panel > img { transform: scale(1.025); filter: brightness(1.035) saturate(1.035); }
}
.apartments .lot-card-bottom { flex: 1; min-height: 100px; padding: 16px 21px 12px; display: flex; flex-direction: column; justify-content: space-between; }
.apartments .lot-card-name { display: flex; justify-content: space-between; align-items: baseline; gap: 5px; white-space: nowrap; }
.apartments .lot-card-name h3 { margin: 0; font: 400 clamp(24px, 2.2vw, 31px)/1.05 var(--serif); letter-spacing: -.025em; text-transform: uppercase; }
.apartments .lot-card-name strong { flex: 0 0 auto; font: 400 clamp(26px, 2.2vw, 32px)/1 var(--serif); }
.apartments .lot-card-name strong small { font-size: .47em; margin-left: 2px; }
.apartments .lot-card-bottom button { display: inline-flex; align-items: center; align-self: flex-start; gap: 18px; padding: 0; border: 0; background: none; color: #2d363a; font: 13px/1.1 Arial, sans-serif; white-space: nowrap; }
.apartments .lot-link-label { padding-bottom: 3px; border-bottom: 1px solid #a7aaa6; }
.apartments .lot-link-arrow { display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid #9fa6a6; border-radius: 50%; transition: background .35s, color .35s, transform .35s; }
.apartments .lot-card-bottom button:hover .lot-link-arrow,.apartments .lot-card-bottom button:focus-visible .lot-link-arrow { background: #2b363a; color: #fff; transform: translateX(3px); }
.apartments .catalog-tail { display: flex; align-items: center; gap: 17px; margin: 50px 75px 0; color: #a0a19e; font: 10px/1.5 Arial, sans-serif; letter-spacing: .22em; text-transform: uppercase; white-space: nowrap; }
.apartments .catalog-tail i { flex: 1; height: 1px; background: #c9cac6; }
.apartments .catalog-tail b { margin: 0 11px; font-weight: 400; }
.apartments .catalog-note { margin: 17px 75px 0; color: #a0a19e; font: 11px/1.5 Arial, sans-serif; }
#offer-dialog .offer-lot-field { height: 59px; margin: 9px 0 16px; border-color: #c7ad80; background: #fffaf0ad; color: #5f594f; }
#offer-dialog .offer-lot-field > svg { flex: 0 0 26px; margin: 0 17px 0 19px; }
#offer-dialog .offer-lot-field input { color: #302923; font-size: 13px; text-overflow: ellipsis; cursor: default; }
#offer-dialog.has-lot .offer-subtitle { display: none; }
@media(min-width:1101px) and (max-width:1280px){
  .apartments .lots-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:1100px){
  .apartments .lots-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; }
  .apartments .catalog-tagline { max-width: 600px; line-height: 1.8; }
  .apartments .catalog-count { min-width: 170px; }
}
@media(max-width:800px){
  .apartments.content { padding: 110px 22px 60px; }
  .apartments .lots-grid { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
  .apartments .catalog-head { padding: 0; }
  .apartments .catalog-head h2 { white-space: normal; }
  .apartments .catalog-count { min-width: 140px; }
  .apartments .catalog-tail,.apartments .catalog-note { margin-left: 0; margin-right: 0; }
}
@media(max-width:600px){
  .apartments.content { padding: 96px 18px 52px; }
  .apartments .catalog-head { display: block; margin-bottom: 23px; }
  .apartments .catalog-head h2 { font-size: clamp(36px, 10vw, 45px); }
  .apartments .catalog-tagline { margin-top: 9px; font-size: 10px; line-height: 1.7; letter-spacing: .17em; }
  .apartments .catalog-tagline span { margin: 0 5px; }
  .apartments .catalog-count { flex-direction: row; align-items: center; gap: 12px; padding-top: 14px; }
  .apartments .catalog-count > span:first-child { font-size: 12px; }
  .apartments .catalog-count-rule { flex: 1; width: auto; margin: 0; transform: none; }
  .apartments .catalog-count small { display: none; }
  .apartments .catalog-bar { display: grid; gap: 13px; margin: 0 0 18px; }
  .apartments .filters { overflow-x: auto; scrollbar-width: none; }
  .apartments .filters::-webkit-scrollbar { display: none; }
  .apartments .filters button { flex: 1 0 92px; min-width: 92px; padding: 0 9px; font-size: 13px; }
  .apartments .catalog-sort { width: 153px; justify-self: end; }
  .apartments .lot-card-media { height: 257px; }
  .apartments .lot-card { min-height: 352px; }
  .apartments .lot-plan-art { top: 58px; bottom: 43px; }
  .apartments .lot-card-meta { left: 16px; top: 15px; }
  .apartments .lot-card-meta > span { font-size: 11px; }
  .apartments .lot-card-meta small { font-size: 9px; }
  .apartments .lot-card-meta b { margin: 0 3px; }
  .apartments .lot-view { left: 15px; bottom: 10px; gap: 5px; font-size: 8px; letter-spacing: .04em; }
  .apartments .lot-view svg { width: 21px; height: 21px; flex-basis: 21px; }
  .apartments .lot-card-bottom { min-height: 95px; padding: 14px 16px 11px; }
  .apartments .lot-card-name h3 { font-size: clamp(22px, 7vw, 30px); }
  .apartments .lot-card-name strong { font-size: clamp(23px, 7vw, 30px); }
  .apartments .catalog-tail { gap: 9px; margin-top: 38px; font-size: 8px; letter-spacing: .14em; }
  .apartments .catalog-tail span:first-child { max-width: 130px; white-space: normal; }
  .apartments .catalog-tail span:last-child { max-width: 140px; white-space: normal; text-align: right; }
  .apartments .catalog-tail b { margin: 0 2px; }
  .apartments .catalog-note { font-size: 10px; }
}
@media(max-width:360px){
  .apartments .lot-card-name h3 { font-size: 22px; }
  .apartments .lot-card-name strong { font-size: 22px; }
}
@media(prefers-reduced-motion:reduce){
  .apartments .lot-card,.apartments .lot-photo-panel > img,.apartments .lot-link-arrow { transition: none; }
  .apartments .lot-card:hover,.apartments .lot-card:focus-within { translate: none; }
  .apartments .lot-card:hover .lot-photo-panel > img,.apartments .lot-card:focus-within .lot-photo-panel > img { transform: none; filter: none; }
}
