:root{
      --ocean:#282D46;
      --wood:#A17B5A;
      --warm:#F7F5F0;
      --ink:#0B0C10;
      --muted:#6B6F80;
      --line:rgba(40,45,70,.14);
      --card:#FFFFFF;
      --shadow: 0 14px 45px rgba(11,12,16,.10);
      --shadow2: 0 8px 22px rgba(11,12,16,.08);
      --radius: 22px;
      --radius2: 30px;
      --max: 1180px;
      --overlay-backdrop-rgb: 8, 11, 19;
      --overlay-opacity-soft: .34;
      --overlay-opacity: .44;
      --overlay-opacity-strong: .56;
      --overlay-blur: 10px;
      --overlay-transition-duration: .24s;
      --overlay-transition-easing: cubic-bezier(.22,.61,.36,1);
    }
    *{box-sizing:border-box}
    html,body{min-height:100%}
html.gp-overlay-open,
body.gp-overlay-open{
  overflow: hidden;
}
body{
  margin:0;
  font-family:"Jost", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: var(--cream);
  color: var(--ink);
  letter-spacing: .2px;
  -webkit-hyphens: none;
  hyphens: none;
}
:is(h1, h2, h3, h4, h5, h6, p, li, blockquote, .lead, .muted, .fine){
  text-wrap: pretty;
  word-break: normal;
  overflow-wrap: normal;
  -webkit-hyphens: none;
  hyphens: none;
}
:is(h1, h2, h3, .h1, .h2, .h3){
  text-wrap: balance;
}
    a{color:inherit; text-decoration:none}
    .anchor{scroll-margin-top: 92px}
    .spacer{height:10px}

    /* Layout grids */
    .grid2{display:grid; grid-template-columns: repeat(2, 1fr); gap: 14px}
    .grid3{display:grid; grid-template-columns: repeat(3, 1fr); gap: 14px}

    /* legacy page overrides only */

    /* Hero grid */
    .heroGrid{
      display:grid;
      grid-template-columns: 1.12fr .88fr;
      gap: 26px;
      align-items: stretch;
    }
    .heroCard{
      border-radius: var(--radius2);
      border: 1px solid rgba(40,45,70,.10);
      background: rgba(255,255,255,.62);
      box-shadow: var(--shadow);
      padding: 22px;
      overflow:hidden;
      position: relative;
    }
    .heroCard::before{
      content:"";
      position:absolute;
      inset:-80px -120px auto auto;
      width: 260px; height: 260px;
      border-radius: 999px;
      background: rgba(161,123,90,.12);
      transform: rotate(20deg);
    }
    .heroCard::after{
      content:"";
      position:absolute;
      inset:auto -160px -140px auto;
      width: 340px; height: 340px;
      border-radius: 999px;
      background: rgba(40,45,70,.10);
      transform: rotate(-12deg);
    }
    .heroLeft{padding: 8px 2px 14px; position:relative; z-index:1}
    .heroRight{display:grid; gap:14px; align-content:start}

    /* Brand window (placeholder) */
    .windowFrame{
      border-radius: 26px;
      border: 1px solid rgba(40,45,70,.14);
      padding: 10px;
      background: rgba(247,245,240,.65);
    }
    .windowMask{
      width: 100%;
      height: 280px;
      border-radius: 22px;
      background:
        linear-gradient(0deg, rgba(11,12,16,.35), rgba(11,12,16,0) 56%),
        radial-gradient(120px 120px at 30% 20%, rgba(255,255,255,.42), rgba(255,255,255,0)),
        url('/uploads/site/office-01.jpg');
      background:
        linear-gradient(0deg, rgba(11,12,16,.35), rgba(11,12,16,0) 56%),
        radial-gradient(120px 120px at 30% 20%, rgba(255,255,255,.42), rgba(255,255,255,0)),
        image-set(
          url('/uploads/site/office-01.webp') type('image/webp'),
          url('/uploads/site/office-01.jpg') type('image/jpeg')
        );
      background-size: 100% 100%, 100% 100%, cover;
      background-position: center;
      position: relative;
      overflow:hidden;
    }
    .windowMask::before{
      content:"";
      position:absolute; inset:0;
      background: linear-gradient(0deg, rgba(11,12,16,.35), rgba(11,12,16,0) 56%);
      pointer-events:none;
    }
    .windowOverlayText{
      position:absolute;
      left: 18px; right: 18px; bottom: 16px;
      display:flex; flex-direction:column; gap:4px;
      color: rgba(255,255,255,.92);
    }
    .windowOverlayText b{font-size: 18px; letter-spacing:.02em}
    .windowOverlayText span{font-size: 13px; opacity:.88}

    /* Stats */
    .statRow{
      display:grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 10px;
      margin-top: 14px;
    }
    .stat{
      border-radius: 18px;
      border: 1px solid rgba(40,45,70,.12);
      background: rgba(255,255,255,.55);
      padding: 14px 12px;
    }
    .stat b{display:block; font-size: 22px; color: var(--ocean); letter-spacing:.02em}
    .stat span{display:block; margin-top: 4px; font-size: 12.5px; color: rgba(40,45,70,.70); line-height: 1.25}

    /* Chips */
    .chipRow{display:flex; flex-wrap:wrap; gap:8px; margin-top: 12px}

    .consultAsideCard{
      display:flex;
      flex-direction:column;
    }
    .consultAsideVisual{
      margin: 14px 0 0;
      border-radius: 16px;
      border: 1px solid rgba(40,45,70,.12);
      background: rgba(255,255,255,.72);
      overflow: hidden;
    }
    .consultAsideVisual img{
      display:block;
      width: 100%;
      aspect-ratio: 3 / 2;
      object-fit: cover;
      object-position: center;
    }
    .chip{
      display:inline-flex; align-items:center; gap:8px;
      font-size: 12px;
      padding: 8px 10px;
      border-radius: 999px;
      border: 1px solid rgba(40,45,70,.14);
      background: rgba(247,245,240,.85);
      color: rgba(40,45,70,.78);
      font-weight: 700;
      white-space:nowrap;
    }
    .chip.chipBtn{
      cursor:pointer;
      font-family: inherit;
      transition: background .18s ease, border-color .18s ease, color .18s ease;
    }
    .chip.chipBtn[aria-pressed="true"]{
      background: rgba(40,45,70,.12);
      border-color: rgba(40,45,70,.26);
      color: var(--ocean);
    }
    .articlesTools{
      display:grid;
      gap:12px;
    }
    .articleCounter{
      font-size:13px;
      color: rgba(40,45,70,.76);
      font-weight: 600;
    }
    .articleCardMeta{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      color: rgba(40,45,70,.66);
      font-size: 12px;
      font-weight: 700;
      margin-bottom: 8px;
    }
    .caseCard{
      display:flex;
      flex-direction:column;
      gap:10px;
      min-height: 360px;
    }
    .caseCover{
      height: 130px;
      border-radius: 16px;
      border: 1px solid rgba(40,45,70,.14);
      background:
        linear-gradient(0deg, rgba(11,12,16,.28), rgba(11,12,16,0) 54%),
        url('/uploads/site/office-07.jpg');
      background:
        linear-gradient(0deg, rgba(11,12,16,.28), rgba(11,12,16,0) 54%),
        image-set(
          url('/uploads/site/office-07.webp') type('image/webp'),
          url('/uploads/site/office-07.jpg') type('image/jpeg')
        );
      background-size: 100% 100%, cover;
      background-position: center;
    }
    .caseCoverAlt{
      background:
        linear-gradient(0deg, rgba(11,12,16,.3), rgba(11,12,16,0) 54%),
        url('/uploads/site/office-10.jpg');
      background:
        linear-gradient(0deg, rgba(11,12,16,.3), rgba(11,12,16,0) 54%),
        image-set(
          url('/uploads/site/office-10.webp') type('image/webp'),
          url('/uploads/site/office-10.jpg') type('image/jpeg')
        );
      background-size: 100% 100%, cover;
      background-position: center;
    }
    .caseCoverWarm{
      background:
        linear-gradient(0deg, rgba(11,12,16,.32), rgba(11,12,16,0) 54%),
        url('/uploads/site/office-13.jpg');
      background:
        linear-gradient(0deg, rgba(11,12,16,.32), rgba(11,12,16,0) 54%),
        image-set(
          url('/uploads/site/office-13.webp') type('image/webp'),
          url('/uploads/site/office-13.jpg') type('image/jpeg')
        );
      background-size: 100% 100%, cover;
      background-position: center;
    }
    .articleTeaser{
      display:flex;
      flex-direction:column;
      min-height: 320px;
      gap:8px;
    }
    .articleTeaserCover{
      height: 110px;
      border-radius: 14px;
      border: 1px solid rgba(40,45,70,.12);
      background:
        linear-gradient(0deg, rgba(11,12,16,.25), rgba(11,12,16,0) 52%),
        url('/uploads/site/office-16.jpg');
      background:
        linear-gradient(0deg, rgba(11,12,16,.25), rgba(11,12,16,0) 52%),
        image-set(
          url('/uploads/site/office-16.webp') type('image/webp'),
          url('/uploads/site/office-16.jpg') type('image/jpeg')
        );
      background-size: 100% 100%, cover;
      background-position: center;
      margin-bottom: 2px;
    }
    .articleTeaserCoverAlt{
      background:
        linear-gradient(0deg, rgba(11,12,16,.26), rgba(11,12,16,0) 52%),
        url('/uploads/site/office-19.jpg');
      background:
        linear-gradient(0deg, rgba(11,12,16,.26), rgba(11,12,16,0) 52%),
        image-set(
          url('/uploads/site/office-19.webp') type('image/webp'),
          url('/uploads/site/office-19.jpg') type('image/jpeg')
        );
      background-size: 100% 100%, cover;
      background-position: center;
    }
    .articleTeaserCoverWarm{
      background:
        linear-gradient(0deg, rgba(11,12,16,.26), rgba(11,12,16,0) 52%),
        url('/uploads/site/office-22.jpg');
      background:
        linear-gradient(0deg, rgba(11,12,16,.26), rgba(11,12,16,0) 52%),
        image-set(
          url('/uploads/site/office-22.webp') type('image/webp'),
          url('/uploads/site/office-22.jpg') type('image/jpeg')
        );
      background-size: 100% 100%, cover;
      background-position: center;
    }

    /* Directions cards */
    .dirCard{
      display:flex; flex-direction:column; gap:10px;
      min-height: 220px;
    }
    .dirTop{
      display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
    }
    .dirBadge{
      font-size:12px;
      padding:7px 10px;
      border-radius:999px;
      border:1px solid rgba(40,45,70,.12);
      background: rgba(247,245,240,.85);
      color: rgba(40,45,70,.78);
      font-weight:800;
    }
    .dirIcon{
      width: 44px; height: 44px;
      border-radius: 16px;
      background: rgba(40,45,70,.08);
      border: 1px solid rgba(40,45,70,.10);
      display:grid; place-items:center;
      flex: 0 0 auto;
    }
    .dirIcon svg{width:20px;height:20px;color:var(--ocean)}
    .dirLinkRow{margin-top:auto; display:flex; gap:10px; flex-wrap:wrap}

    /* Search block */
    .searchWrap{
      border-radius: var(--radius2);
      background: rgba(255,255,255,.70);
      border: 1px solid rgba(40,45,70,.12);
      box-shadow: var(--shadow);
      padding: 16px;
    }
    .searchGrid{
      display:grid;
      grid-template-columns: 1.1fr 1fr 1fr 1fr;
      gap: 10px;
      align-items:end;
    }
    .field{display:grid; gap:6px}
    label{font-size: 12px; color: rgba(40,45,70,.72); font-weight: 700}
    input, select{
      width: 100%;
      padding: 12px 12px;
      border-radius: 14px;
      border: 1px solid rgba(40,45,70,.16);
      background: rgba(247,245,240,.95);
      outline:none;
      font-family: inherit;
      font-size: 14px;
      color: rgba(40,45,70,.90);
    }
    input:focus, select:focus{
      border-color: rgba(161,123,90,.60);
      box-shadow: 0 0 0 4px rgba(161,123,90,.14);
    }
    .searchActions{
      display:flex; gap:10px; flex-wrap:wrap; margin-top: 10px; align-items:center;
    }
    .searchResultsHead{
      display:flex; align-items:flex-end; justify-content:space-between; gap:14px;
      margin-top: 14px;
    }
    .resultsGrid{margin-top: 12px}
    .listing{
      display:flex; flex-direction:column; gap:10px;
    }
    .thumb{
      border-radius: 18px;
      border: 1px solid rgba(40,45,70,.12);
      height: 170px;
      background:
        radial-gradient(120px 120px at 20% 30%, rgba(255,255,255,.85), rgba(255,255,255,0)),
        linear-gradient(135deg, rgba(40,45,70,.80), rgba(40,45,70,.55));
      position: relative;
      overflow:hidden;
    }
    .thumb::after{
      content:"";
      position:absolute; inset:auto -30px -40px auto;
      width: 160px; height: 160px;
      border-radius: 999px;
      background: rgba(161,123,90,.24);
      transform: rotate(18deg);
    }
    .thumb.photo{
      background-color: rgba(222,226,235,.95);
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center;
    }
    .thumb.photo::after{
      display:none;
    }
    .itemMainImage{
      background:
        radial-gradient(120px 120px at 20% 30%, rgba(255,255,255,.85), rgba(255,255,255,0)),
        linear-gradient(135deg, rgba(40,45,70,.80), rgba(40,45,70,.55));
      background-size: cover;
      background-position: center;
    }
    .itemMainImage::after{
      display:none;
    }
    .thumbStrip{
      display:flex;
      gap:8px;
      margin-top:10px;
      overflow:auto;
      padding-bottom:2px;
    }
    .thumbStrip .thumb{
      width: 78px;
      height: 62px;
      border-radius: 12px;
      border: 1px solid rgba(40,45,70,.16);
      background-color: rgba(222,226,235,.95);
      background-size: cover;
      background-position: center;
      cursor: pointer;
      flex: 0 0 auto;
      appearance: none;
    }
    .thumbStrip .thumb::after{
      display:none;
    }
    .thumbMini{
      width: 78px;
      height: 62px;
      border-radius: 12px;
      border: 1px solid rgba(40,45,70,.16);
      background: rgba(247,245,240,.9);
      background-size: cover;
      background-position: center;
      cursor: pointer;
      flex: 0 0 auto;
      appearance: none;
      transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
    }
    .thumbMini:hover{
      transform: translateY(-1px);
      box-shadow: var(--shadow2);
    }
    .thumbMini:focus-visible{
      outline: 2px solid rgba(40,45,70,.5);
      outline-offset: 2px;
    }
    .thumbMini[aria-pressed="true"]{
      border-color: rgba(40,45,70,.40);
      box-shadow: 0 0 0 2px rgba(161,123,90,.25);
    }
.itemCardsGrid{
  margin-top: 10px;
}
.itemRecoDivider{
  margin-top: 22px;
}
.itemCardsGrid .listingCompact{
  display: grid;
      grid-template-columns: 1fr;
      gap: 8px;
      padding: 10px;
      border-radius: 18px;
      min-height: 100%;
    }
    .itemCardsGrid .listingCompact .listingMedia{
      display: block;
      border-radius: 12px;
      overflow: hidden;
    }
    .itemCardsGrid .listingCompact .listingThumb{
      width: 100%;
      height: auto;
      min-height: 0;
      aspect-ratio: 4 / 3;
      border-radius: 12px;
    }
    .itemCardsGrid .listingCompact .listingBody{
      min-width: 0;
      display: grid;
      gap: 8px;
      align-content: start;
    }
    .itemCardsGrid .listingCompact .listingHead{
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
    }
    .itemCardsGrid .listingCompact .listingPriceBlock{
      min-width: 0;
      display: grid;
      gap: 2px;
    }
    .itemCardsGrid .listingCompact .listingPrice{
      margin: 0;
      font-size: clamp(26px, 1.8vw, 30px);
      line-height: 1.08;
    }
    .itemCardsGrid .listingCompact .listingPriceHint{
      min-height: 1.2em;
      margin: 0;
      color: rgba(32,39,66,.68);
      font-size: 13px;
      line-height: 1.2;
    }
    .itemCardsGrid .listingCompact .listingTitle{
      margin: 0;
      color: rgba(32,39,66,.92);
      font-size: 18px;
      line-height: 1.28;
      font-weight: 700;
      text-decoration: none;
    }
    .itemCardsGrid .listingCompact .listingAddress{
      margin: 0;
      min-height: 0;
      color: rgba(32,39,66,.74);
      font-size: 16px;
      line-height: 1.35;
      font-weight: 500;
      text-decoration: none;
      overflow: hidden;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 1;
    }
    .itemCardsGrid .listingCompact .listingAddress:hover{
      text-decoration: underline;
    }
    .itemCardsGrid .listingCompact .listingFacts{
      font-size: 15px;
    }
    .itemCardsGrid .listingCompact .listingMortgage{
      font-size: 13px;
    }
    .itemCardsGrid .listingCompact .listingMeta{
      display: none;
    }
    .price{font-size: 18px; font-weight: 800; color: var(--ocean)}
    .meta{
      display:flex; flex-wrap:wrap; gap:8px;
      color: rgba(40,45,70,.72);
      font-size: 13px;
      line-height:1.3;
    }
    .meta span{
      padding: 7px 9px;
      border-radius: 999px;
      border: 1px solid rgba(40,45,70,.12);
      background: rgba(247,245,240,.85);
      font-weight: 700;
      white-space:nowrap;
    }

    /* Process / FAQ details */
    details summary{
      cursor:pointer;
      list-style:none;
      font-weight: 700;
      color: rgba(40,45,70,.86);
      padding: 12px 12px;
      border-radius: 14px;
      border: 1px solid rgba(40,45,70,.12);
      background: rgba(247,245,240,.85);
      display:flex; align-items:center; justify-content:space-between;
      gap: 12px;
      user-select:none;
    }
    details summary::-webkit-details-marker{display:none}
    .chev{transition: transform .18s ease}
    details[open] summary .chev{transform: rotate(180deg)}
    .detailBody{
      padding: 10px 4px 0;
      color: rgba(40,45,70,.74);
      font-size: 14px;
      line-height: 1.45;
    }
    .detailBody ul{margin: 8px 0 0; padding-left: 18px}
    .detailBody li{margin: 6px 0}

    /* Responsive */
    @media (max-width: 1100px){
      .searchGrid{grid-template-columns: 1fr 1fr}
      .statRow{grid-template-columns: 1fr 1fr}
    }
    @media (max-width: 980px){
      .heroGrid{grid-template-columns: 1fr}
      .windowMask{height: 240px}
      .grid3{grid-template-columns: 1fr}
      .grid2{grid-template-columns: 1fr}
    }

/* Added for multi-page forms */
textarea{
  width: 100%;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(40,45,70,.16);
  background: rgba(247,245,240,.95);
  outline:none;
  font-family: inherit;
  font-size: 14px;
  color: rgba(40,45,70,.90);
  min-height: 92px;
  resize: vertical;
}
textarea:focus{
  border-color: rgba(161,123,90,.60);
  box-shadow: 0 0 0 4px rgba(161,123,90,.14);
}

/* Article styling (added) */
.article{max-width: 820px;}
.article h1{margin: 4px 0 12px; color: var(--ocean); font-size: 40px; line-height:1.06}
.article h2{margin: 22px 0 10px; color: var(--ocean); font-size: 22px}
.article p{margin: 10px 0; color: rgba(40,45,70,.76); line-height:1.65; font-size: 16px}
.article ul{margin: 10px 0 10px 18px; color: rgba(40,45,70,.76); line-height:1.65; font-size:16px}
.articleRelatedGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.articleRelatedCard{
  border-radius: 16px;
  border: 1px solid rgba(40,45,70,.12);
  background: rgba(247,245,240,.82);
  padding: 12px;
}
.articleRelatedCard b{
  display:block;
  color: var(--ocean);
  font-size: 14px;
  line-height: 1.28;
}
.articleRelatedCard span{
  display:block;
  margin-top: 6px;
  color: rgba(40,45,70,.70);
  font-size: 12px;
  line-height: 1.35;
}
.callout{
  border-radius: 18px;
  border: 1px solid rgba(40,45,70,.12);
  background: rgba(255,255,255,.62);
  padding: 14px;
}
@media (max-width: 980px){
  .articleRelatedGrid{grid-template-columns: 1fr;}
}

/* Auth pages */
.authLayout{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.authLayout.authLayout--single{
  grid-template-columns: minmax(0, 720px);
  justify-content: center;
}
.authLayout.authLayout--register{
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
}
.authCard h3{margin-bottom: 6px;}
.authNote{
  border-radius: 14px;
  border: 1px solid rgba(40,45,70,.12);
  background: rgba(247,245,240,.85);
  padding: 10px 12px;
  font-size: 13px;
  color: rgba(40,45,70,.76);
}
.statusOk{
  border-radius: 12px;
  border: 1px solid rgba(68,122,83,.25);
  background: rgba(68,122,83,.12);
  padding: 10px 12px;
  color: rgba(21,77,38,.92);
  font-size: 13px;
}
.statusErr{
  border-radius: 12px;
  border: 1px solid rgba(153,51,39,.28);
  background: rgba(153,51,39,.12);
  padding: 10px 12px;
  color: rgba(122,36,24,.92);
  font-size: 13px;
}
.roleSwitch{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.roleSwitchOption{
  position: relative;
  display: flex;
  border-radius: 14px;
}
.roleSwitchOption input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.roleSwitchOption span{
  width: 100%;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(40,45,70,.16);
  background: rgba(255,255,255,.86);
  color: rgba(40,45,70,.84);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.roleSwitchOption span:hover{
  border-color: rgba(40,45,70,.3);
  background: rgba(255,255,255,.95);
}
.roleSwitchOption.is-active span{
  border-color: rgba(40,45,70,.34);
  background: rgba(40,45,70,.1);
  color: rgba(27,33,55,.95);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.34);
}
.accountGrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.kv{
  display:grid;
  gap:6px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(40,45,70,.12);
  background: rgba(247,245,240,.85);
}
.kv b{
  font-size: 12px;
  color: rgba(40,45,70,.66);
  font-weight: 700;
}
.kv span{
  font-size: 15px;
  color: rgba(40,45,70,.92);
}
@media (max-width: 980px){
  .authLayout, .accountGrid{grid-template-columns: 1fr;}
}


/* Consultation modal */
.drawerBackdrop{
  position: fixed;
  inset: 0;
  z-index: 90;
  opacity: 0;
  pointer-events: none;
  background: rgba(var(--overlay-backdrop-rgb), var(--overlay-opacity-soft));
  backdrop-filter: blur(var(--overlay-blur));
  -webkit-backdrop-filter: blur(var(--overlay-blur));
  transition: opacity var(--overlay-transition-duration) var(--overlay-transition-easing);
}

.modalBackdrop{
  position: fixed;
  inset: 0;
  background: rgba(var(--overlay-backdrop-rgb), var(--overlay-opacity));
  backdrop-filter: blur(var(--overlay-blur));
  -webkit-backdrop-filter: blur(var(--overlay-blur));
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--overlay-transition-duration) var(--overlay-transition-easing);
  z-index: 170;
}
.modalBackdrop.open{
  opacity: 1;
  pointer-events: auto;
}
@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))){
  .drawerBackdrop,
  .modalBackdrop,
  .partnerReferralBackdrop{
    background: rgba(var(--overlay-backdrop-rgb), calc(var(--overlay-opacity) + .08));
  }
  .photoLightbox{
    background: rgba(var(--overlay-backdrop-rgb), calc(var(--overlay-opacity-strong) + .08));
  }
}
.consultModal{
  position: fixed;
  left: 50%;
  top: 50%;
  width: min(1120px, calc(100vw - 24px));
  max-width: min(1120px, calc(100vw - 24px));
  height: min(78vh, 720px);
  max-height: calc(100vh - 24px);
  border-radius: 28px;
  border: 1px solid rgba(40,45,70,.14);
  background: #fff;
  box-shadow: 0 28px 80px rgba(11,12,16,.26);
  overflow: hidden;
  z-index: 171;
  opacity: 0;
  transform: translate(-50%, -46%) scale(.985);
  pointer-events: none;
  transition: opacity var(--overlay-transition-duration) var(--overlay-transition-easing), transform var(--overlay-transition-duration) var(--overlay-transition-easing);
}
.consultModal.open{
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  pointer-events: auto;
}
.consultModalInner{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: stretch;
  height: auto;
  min-height: 0;
}
.consultModalMain{
  flex: 1 1 50%;
  min-width: 0;
  padding: 24px 24px 22px;
  overflow: auto;
  display: flex;
}
.consultModalMainContent{
  width: 100%;
  max-width: min(520px, 100%);
  margin-block: auto;
}
.consultHead{
  display:block;
  padding-right: 0;
  margin-bottom:12px;
  max-width: 100%;
}
.consultHead h3{
  margin: 0;
  color: var(--ocean);
  font-size: clamp(24px, 2.4vw, 30px);
  line-height: 1.1;
}
.consultCloseBtn{
  position: absolute;
  top: 8px;
  right: 8px;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid rgba(40,45,70,.16);
  background: rgba(255,255,255,.86);
  color: rgba(40,45,70,.76);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
  z-index: 4;
}
.consultCloseBtn:hover{
  background: rgba(40,45,70,.09);
  border-color: rgba(40,45,70,.24);
  color: var(--ocean);
}
.consultModalForm{
  width: 100%;
  max-width: 100%;
}
.consultActions{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.consultActions .btn{
  min-width: 240px;
}
.consultFine{
  max-width: 520px;
  line-height: 1.45;
}
.consultVisual{
  flex: 0 0 50%;
  border-left: 1px solid rgba(40,45,70,.12);
  background-color: #f6f7fa;
  background-image: url('/uploads/site/consult-expert.jpg');
  background-image: image-set(
    url('/uploads/site/consult-expert.webp') type('image/webp'),
    url('/uploads/site/consult-expert.jpg') type('image/jpeg')
  );
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  align-self: stretch;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.consultVisual.is-object{
  background-size: contain;
  background-position: center;
  background-color: #090d1f;
}
.consultVisual::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(11,15,28,.06) 14%, rgba(11,15,28,.72) 100%);
  opacity: .5;
  transition: opacity .2s ease;
}
.consultVisual.is-object::after{
  opacity: 1;
}
.consultVisualMeta{
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 2;
  display: grid;
  gap: 6px;
  padding: 12px 13px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(13,18,34,.58);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  color: rgba(255,255,255,.96);
}
.consultVisualMetaBadge{
  justify-self: start;
  padding: 4px 9px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.28);
  font-size: 11px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: rgba(255,255,255,.88);
}
.consultVisualMetaTitle{
  font-size: 20px;
  line-height: 1.16;
  color: #fff;
}
.consultVisualMetaSpecs{
  font-size: 14px;
  line-height: 1.35;
  color: rgba(255,255,255,.9);
}
.consultVisualMetaAddress{
  font-size: 13px;
  line-height: 1.36;
  color: rgba(255,255,255,.84);
}
.consultVisual img{
  display: none !important;
}
@media (max-width: 980px){
  .consultModal{
    width: min(860px, calc(100vw - 16px));
    max-width: min(860px, calc(100vw - 16px));
    height: auto;
    min-height: 0;
    max-height: calc(100vh - 24px);
    overflow: auto;
  }
  .consultModalInner{
    position: static;
    inset: auto;
    display: flex;
    min-height: 0;
  }
  .consultModalMain{
    flex: 1 1 auto;
    padding: 20px 18px 18px;
    overflow: visible;
  }
  .consultModalMainContent{
    margin-block: 0;
  }
  .consultVisual{
    flex: 0 0 clamp(220px, 38vw, 300px);
    display: block;
    min-height: 360px;
  }
  .consultActions .btn{
    width: 100%;
    min-width: 0;
  }
}
@media (max-width: 860px){
  .consultModalInner{
    display: block;
  }
  .consultVisual{
    display: none;
  }
}

/* Favorites */
.favBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(32,39,66,.18);
  background: #fff;
  cursor:pointer;
  font-size: 19px;
  line-height: 1;
  color: rgba(32,39,66,.8);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease, background-color .16s ease;
}
.favBtn:hover{
  transform: translateY(-1px);
  border-color: rgba(32,39,66,.35);
}
.favBtn[aria-pressed="true"]{
  color: #fff;
  border-color: #282D46;
  background: #282D46;
  box-shadow: 0 8px 18px rgba(32,39,66,.22);
}

/* Subtle reveal on scroll */
.reveal{ opacity: 0; transform: translateY(10px); transition: opacity .45s ease, transform .45s ease; }
.reveal.visible{ opacity: 1; transform: none; }

/* Breadcrumbs */
.breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0;
  margin:0 0 10px;
  color:rgba(40,45,70,.62);
  line-height:1.35;
}
.breadcrumbs a, .breadcrumbs span{
  position:relative;
  display:inline-flex;
  align-items:center;
  font-size:12px;
  font-weight:600;
  color:rgba(40,45,70,.74);
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.breadcrumbs a{
  text-decoration:none;
}
.breadcrumbs a:hover{
  color:rgba(40,45,70,.92);
  text-decoration:underline;
  text-decoration-color:rgba(40,45,70,.34);
  text-underline-offset:3px;
}
.breadcrumbs > * + *{
  margin-left:7px;
}
.breadcrumbs > * + *::before{
  content:"/";
  margin-right:7px;
  color:rgba(40,45,70,.46);
  font-weight:500;
}
@media (max-width: 860px){
  .breadcrumbs{
    margin-bottom:8px;
  }
  .breadcrumbs > * + *{
    margin-left:6px;
  }
  .breadcrumbs > * + *::before{
    margin-right:6px;
  }
}
/* ===== Design System V2: premium, conversion-first ===== */
:root{
  --ocean:#202742;
  --ocean-2:#2b345a;
  --wood:#b38a64;
  --wood-2:#c49b72;
  --warm:#f4f1ea;
  --cream:#faf8f3;
  --ink:#12141c;
  --muted:#5f6577;
  --line:rgba(32,39,66,.15);
  --line-strong:rgba(32,39,66,.24);
  --card:#ffffff;
  --focus: rgba(179,138,100,.3);
  --radius: 24px;
  --radius2: 34px;
  --shadow: 0 18px 56px rgba(13,17,30,.12);
  --shadow2: 0 10px 30px rgba(13,17,30,.09);
  --shadow3: 0 4px 12px rgba(13,17,30,.07);
  --max: 1240px;
  --overlay-backdrop-rgb: 8, 11, 19;
  --overlay-opacity-soft: .34;
  --overlay-opacity: .44;
  --overlay-opacity-strong: .56;
  --overlay-blur: 10px;
  --overlay-transition-duration: .24s;
  --overlay-transition-easing: cubic-bezier(.22,.61,.36,1);
}

html{
  scroll-behavior:smooth;
}
body{
  min-height: 100vh;
  background: var(--cream);
  color: var(--ink);
}

.sectionHead p,
.muted{
  color: rgba(32,39,66,.73);
}

.heroCard,
.searchWrap{
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(32,39,66,.13);
  box-shadow: var(--shadow2);
  backdrop-filter: blur(4px);
}
.heroCard{
  border-radius: var(--radius2);
  box-shadow: var(--shadow);
  overflow: clip;
}
.heroCard::before{
  inset: -110px -130px auto auto;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(179,138,100,.24), rgba(179,138,100,.04) 62%, rgba(179,138,100,0) 70%);
}
.heroCard::after{
  inset: auto -180px -160px auto;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(32,39,66,.2), rgba(32,39,66,.03) 58%, rgba(32,39,66,0) 70%);
}

.windowFrame{
  border-radius: 26px;
  border-color: rgba(32,39,66,.16);
  background: rgba(255,255,255,.56);
}
.windowMask{
  height: clamp(260px, 32vw, 340px);
}
.windowOverlayText b{ font-size: 22px; }
.windowOverlayText span{ font-size: 13px; }

.grid2,
.grid3,
.grid4{ gap: 16px; }

.sectionHead h2{
  font-size: clamp(30px, 3vw, 42px);
  letter-spacing: .01em;
}

.divider{
  background: linear-gradient(90deg, rgba(32,39,66,.18), rgba(32,39,66,.06));
}

.statRow{ gap: 12px; }
.stat{
  border-radius: 18px;
  background: rgba(255,255,255,.72);
}
.stat b{ font-size: 24px; }
.stat span{ font-size: 12.5px; }

.caseCard,
.articleTeaser,
.listing{
  border-radius: 22px;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.caseCard:hover,
.articleTeaser:hover,
.listing:hover{
  transform: translateY(-3px);
  box-shadow: 0 18px 38px rgba(13,17,30,.12);
  border-color: rgba(32,39,66,.22);
}

.caseCover,
.articleTeaserCover,
.thumb,
.itemMainImage{
  border-radius: 16px;
  border-color: rgba(32,39,66,.16);
}
.thumb{
  height: 198px;
}

.dirCard{
  min-height: 238px;
}
.dirIcon{
  width: 48px;
  height: 48px;
  border-radius: 15px;
}

.searchWrap{
  padding: 18px;
  border-radius: 28px;
}
.searchGrid{
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 12px;
}
label{
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: rgba(32,39,66,.67);
}
input,
select,
textarea{
  border-radius: 14px;
  border-color: rgba(32,39,66,.2);
  background: rgba(255,255,255,.86);
  font-size: 14px;
  color: rgba(32,39,66,.92);
}
input:focus,
select:focus,
textarea:focus{
  border-color: rgba(179,138,100,.72);
  box-shadow: 0 0 0 4px var(--focus);
}
select:not([multiple]):not([size]){
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5L7 7.5L13 1.5' stroke='%23333B56' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 14px 9px;
}
select:not([multiple]):not([size])::-ms-expand{
  display: none;
}

.chip{
  border-color: rgba(32,39,66,.16);
  background: rgba(255,255,255,.75);
  color: rgba(32,39,66,.82);
  font-weight: 700;
}
.chip:hover{
  border-color: rgba(179,138,100,.45);
  background: rgba(255,255,255,.95);
}

.meta span{
  border-color: rgba(32,39,66,.14);
  background: rgba(255,255,255,.76);
}
.price{
  font-size: 22px;
  letter-spacing: .01em;
}
.listing{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.listingTopRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.listingContent{
  display:grid;
  gap:8px;
}
.listingTitle{
  margin:0;
  color: rgba(32,39,66,.95);
  font-size: 18px;
  line-height: 1.28;
  font-weight: 700;
}
.listingAddress{
  margin:0;
  color: rgba(32,39,66,.74);
  font-size: 14px;
  line-height: 1.42;
  min-height: 2.84em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.listingMeta{
  min-height: 34px;
  gap: 7px;
}
.listingMeta span{
  font-size: 12px;
}
.listingActionsRow{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.listingActionsRow .btn.small{
  padding: 10px 14px;
}

.catalogLayout{
  display: grid;
  grid-template-columns: minmax(280px, 320px) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
.catalogFiltersPane.searchWrap{
  position: static;
  top: auto;
  background: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  padding: 0;
}
.catalogFiltersForm{
  display: grid;
  gap: 12px;
}
.catalogFiltersGrid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.catalogFilterActions{
  margin-top: 2px;
}
.catalogFilterActions .btn{
  flex: 1 1 calc(50% - 8px);
}
.catalogResultsPane{
  min-width: 0;
}
.catalogSplit{
  margin-top: 12px;
  display: block;
}
.catalogMapPane{
  display: none;
  position: relative;
  min-width: 0;
  border: 1px solid rgba(32,39,66,.14);
  border-radius: 20px;
  background: rgba(255,255,255,.78);
  box-shadow: var(--shadow2);
  overflow: hidden;
}
.catalogSplit.catalogSplit--mapMode .catalogMapPane{
  display: block;
}
.catalogSplit.catalogSplit--mapMode .catalogListPane{
  display: none;
}
.catalogMapCanvas{
  width: 100%;
  height: min(74vh, 820px);
  min-height: 520px;
}
.catalogMapHint{
  padding: 10px 12px;
  border-top: 1px solid rgba(32,39,66,.12);
  color: rgba(32,39,66,.78);
  background: rgba(255,255,255,.86);
  font-size: 13px;
  line-height: 1.45;
}
.catalogListPane{
  min-width: 0;
}
.catalogResultsTools{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-left: auto;
  gap: 10px;
  flex-wrap: wrap;
}
.viewSwitch{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px;
  border-radius: 12px;
  border: 1px solid rgba(32,39,66,.16);
  background: rgba(255,255,255,.7);
}
.viewBtn{
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid transparent;
  background: transparent;
  color: rgba(32,39,66,.74);
  border-radius: 9px;
  padding: 8px 12px;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.viewBtnIcon{
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}
.viewBtnIcon rect{
  fill: none;
}
.viewBtnIcon circle{
  fill: currentColor;
  stroke: none;
}
.viewBtnLabel{
  line-height: 1;
}
.viewBtn[aria-pressed="true"]{
  background: rgba(32,39,66,.1);
  border-color: rgba(32,39,66,.2);
  color: rgba(32,39,66,.96);
}
.viewBtn:hover{
  background: rgba(255,255,255,.95);
  border-color: rgba(32,39,66,.22);
}
.catalogResultsList{
  margin-top: 12px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
.catalogResultsList .listing{
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 12px;
  padding: 10px;
  border-radius: 20px;
  min-height: 0;
}
.catalogResultsList .listingMedia{
  position: relative;
  display: block;
  min-width: 0;
  border-radius: 14px;
  overflow: hidden;
}
.catalogResultsList .listingThumb{
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 4 / 3;
  border-radius: 14px;
}
.catalogResultsList .listingBody,
.catalogResultsList .listingContent{
  min-width: 0;
  display: grid;
  gap: 10px;
  align-content: start;
}
.catalogResultsList .listingHead{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.catalogResultsList .listingPrice{
  margin: 0;
  font-size: clamp(34px, 2.8vw, 46px);
  line-height: .98;
  font-weight: 700;
}
.catalogResultsList .listingPriceHint{
  margin-top: 2px;
  min-height: 1.1em;
  font-size: 17px;
  font-weight: 600;
  color: rgba(32,39,66,.58);
}
.listingPriceBlock{
  min-width: 0;
  display: grid;
  gap: 2px;
}
.listingMortgage{
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  margin: 2px 0 0;
  font-size: 14px;
  line-height: 1.3;
}
.listingMortgageLabel{
  color: rgba(32,39,66,.7);
  font-weight: 600;
}
.listingMortgageValue{
  color: #2f65d9;
  font-weight: 700;
}
.listingFacts{
  margin-top: 2px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  color: rgba(32,39,66,.9);
  font-size: 15px;
  line-height: 1.35;
  font-weight: 700;
}
.listingFactsPrimary{
  margin-top: 0;
  margin-bottom: 2px;
}
.listingFactsDot{
  color: rgba(32,39,66,.32);
  font-weight: 500;
}
.catalogResultsList .listingTitle{
  margin: 0;
  font-size: 16px;
  line-height: 1.3;
  font-weight: 700;
  color: rgba(32,39,66,.9);
  text-decoration: none;
}
.catalogResultsList .listingTitle:hover{
  text-decoration: underline;
}
.catalogResultsList .listingAddress{
  margin: 0;
  min-height: 0;
  color: rgba(32,39,66,.76);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.catalogResultsList[data-view="catalog_grid"]{
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.catalogResultsList[data-view="catalog_grid"] .listing{
  grid-template-columns: 1fr;
  gap: 10px;
}
.catalogResultsList[data-view="catalog_grid"] .listingGridContent{
  display: grid;
  gap: 6px;
}
.catalogResultsList[data-view="catalog_grid"] .listingPrice{
  font-size: clamp(28px, 2.1vw, 38px);
}
.catalogResultsList[data-view="catalog_grid"] .listingPriceHint{
  font-size: 15px;
}
.catalogResultsList[data-view="catalog_grid"] .listingFacts{
  font-size: 14px;
}
.catalogResultsList[data-view="catalog_grid"] .listingMortgage{
  font-size: 13px;
}
.catalogResultsList[data-view="catalog_grid"] .listingAddress{
  -webkit-line-clamp: 1;
  font-size: 14px;
}
.catalogResultsList .listing[data-card-href]{
  cursor: pointer;
}
.catalogResultsList .listing.is-map-focused{
  border-color: rgba(179,138,100,.72);
  box-shadow: 0 0 0 2px rgba(179,138,100,.2), 0 14px 32px rgba(13,17,30,.16);
  animation: catalogCardFocusPulse .45s ease;
}
.catalogResultsList .listing.is-map-focused .listingTitle{
  color: rgba(32,39,66,.98);
}
@keyframes catalogCardFocusPulse{
  0%{
    transform: translateY(0);
  }
  50%{
    transform: translateY(-2px);
  }
  100%{
    transform: translateY(0);
  }
}
.listingBodyCompact{
  align-content: start;
}
.listingAddressLink{
  display: block;
}
.listingContactRow{
  margin-top: 4px;
  width: 100%;
  display: block;
  min-height: 44px;
}
.listingPhoneBtn{
  width: 100%;
  min-height: 44px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  padding: 10px 14px;
}
.listingContactBtn,
.listingCallBtn{
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 600;
}
.listingContactValue{
  color: rgba(32,39,66,.84);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}
.catalogResultsList[data-view="catalog_grid"] .listingContactRow{
  align-items: flex-start;
}
.catalogResultsList[data-view="catalog_grid"] .listingContactValue{
  width: 100%;
}
.listingGallerySteps{
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 8px;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 4px;
  pointer-events: none;
}
.listingGalleryStep{
  height: 3px;
  border-radius: 99px;
  background: rgba(255,255,255,.45);
}
.listingGalleryStep.is-active{
  background: rgba(255,255,255,.95);
}
.itemMediaCard{
  position: relative;
}
.itemMainImage.clickable{
  cursor: zoom-in;
}
.itemMainImage.clickable:focus-visible{
  outline: 2px solid rgba(32,39,66,.45);
  outline-offset: 2px;
}
.itemMainImage{
  width: 100%;
  height: auto !important;
  min-height: 0;
  aspect-ratio: var(--item-main-ratio, 4 / 3);
}
.itemAboutBlock{
  margin-top: 6px;
}
.itemAboutBlock h3{
  margin: 0 0 8px;
  color: rgba(32,39,66,.92);
}
.itemAboutText{
  margin: 0;
  display: grid;
  gap: 10px;
  font-size: 14px;
  line-height: 1.58;
  color: rgba(32,39,66,.82);
}
.itemAboutText p{
  margin: 0;
}
.itemTitle{
  font-size: clamp(26px, 2.6vw, 42px);
  line-height: 1.03;
  margin: 12px 0 10px;
}
.itemHeroMeta{
  display: grid;
  gap: 6px;
  margin-bottom: 10px;
}
.itemSublead{
  margin: 0;
  max-width: none;
  font-size: 20px;
  line-height: 1.35;
  color: rgba(32,39,66,.9);
}
.itemAddressLine{
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: rgba(32,39,66,.72);
  font-size: 16px;
  line-height: 1.4;
}
.itemAddressIcon{
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin-top: 2px;
  color: rgba(32,39,66,.58);
}
.itemAddressIcon svg{
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.itemAddressTrigger{
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.itemAddressTrigger:hover{
  color: rgba(32,39,66,.9);
}
.itemAddressTrigger:focus-visible{
  outline: 2px solid rgba(48,103,216,.55);
  outline-offset: 2px;
  border-radius: 6px;
}
.itemAddressTrigger[disabled]{
  cursor: default;
  text-decoration: none;
}
.itemMapModal{
  position: fixed;
  inset: 0;
  z-index: 210;
  display: grid;
  place-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--overlay-transition-duration) var(--overlay-transition-easing);
}
.itemMapModal.open{
  opacity: 1;
  pointer-events: auto;
}
.itemMapModal[hidden]{
  display: none !important;
}
.itemMapBackdrop{
  position: absolute;
  inset: 0;
  background: rgba(var(--overlay-backdrop-rgb), var(--overlay-opacity));
  backdrop-filter: blur(var(--overlay-blur));
  -webkit-backdrop-filter: blur(var(--overlay-blur));
}
.itemMapDialog{
  position: relative;
  width: min(920px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid rgba(32,39,66,.16);
  background: #fff;
  box-shadow: 0 28px 58px rgba(9,12,20,.26);
  display: grid;
  grid-template-rows: auto minmax(320px, 62vh) auto;
}
.itemMapHead{
  padding: 16px 20px 10px;
  border-bottom: 1px solid rgba(32,39,66,.12);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
}
.itemMapTitle{
  margin: 0;
  color: rgba(32,39,66,.95);
  font-size: 21px;
  line-height: 1.2;
}
.itemMapAddress{
  margin: 6px 0 0;
  color: rgba(32,39,66,.74);
  font-size: 14px;
  line-height: 1.45;
}
.itemMapClose{
  appearance: none;
  border: 1px solid rgba(32,39,66,.18);
  background: #fff;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  color: rgba(32,39,66,.9);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.itemMapClose:hover{
  border-color: rgba(32,39,66,.34);
}
.itemMapClose:focus-visible{
  outline: 2px solid rgba(48,103,216,.55);
  outline-offset: 2px;
}
.itemMapCanvas{
  position: relative;
  background: #f3f4f8;
}
.itemMapFrame{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.itemMapFallback{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 22px;
  color: rgba(32,39,66,.72);
  font-size: 14px;
  line-height: 1.45;
}
.itemMapActions{
  padding: 12px 20px 16px;
  border-top: 1px solid rgba(32,39,66,.12);
  display: flex;
  justify-content: flex-end;
}
.itemMapActions .btn{
  min-width: 188px;
}
.itemMetaLine{
  margin-top: 8px;
  color: rgba(32,39,66,.7);
  font-size: 14px;
  line-height: 1.45;
}
.itemStatsTable{
  margin-top: 14px;
}
.itemStatsHead{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.itemStatsTitle{
  margin: 0;
  color: rgba(32,39,66,.92);
  font-size: 19px;
}
.itemStatsHeadActions{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: nowrap;
  margin-left: auto;
}
.itemIconBtn{
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(32,39,66,.18);
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(32,39,66,.8);
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease, background-color .16s ease;
}
.itemIconBtn:hover{
  transform: translateY(-1px);
  border-color: rgba(32,39,66,.35);
}
.itemIconBtn:focus-visible{
  outline: 2px solid rgba(32,39,66,.45);
  outline-offset: 2px;
}
.itemIconBtn .itemIconGlyph{
  font-size: 19px;
  line-height: 1;
}
.itemIconBtn.active,
.itemIconBtn[aria-pressed="true"]{
  color: #fff;
  border-color: #282D46;
  background: #282D46;
  box-shadow: 0 8px 18px rgba(32,39,66,.22);
}
.itemBackBtn{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.itemBackArrow{
  font-size: 15px;
  line-height: 1;
}
.itemPrimaryStats{
  margin-top: 2px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid rgba(32,39,66,.14);
}
.itemPrimaryStats:empty{
  display: none;
}
.itemStatRow{
  display: grid;
  grid-template-columns: minmax(120px, 46%) minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(32,39,66,.14);
}
.itemStatKey{
  color: rgba(32,39,66,.66);
  font-size: 13px;
  line-height: 1.3;
}
.itemStatVal{
  color: rgba(32,39,66,.94);
  font-size: 14px;
  line-height: 1.35;
  text-align: right;
  justify-self: end;
}
.itemStatValRich{
  text-align: right;
}
.itemMortgageValueWrap{
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  max-width: 100%;
}
.itemMortgageAmount{
  font-weight: 600;
  color: rgba(32,39,66,.95);
}
.itemMortgageAmountHint{
  cursor: help;
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.itemMortgageAmountHint:focus-visible{
  outline: 2px solid rgba(48,103,216,.55);
  outline-offset: 2px;
}
.itemMortgageAssistLink{
  color: #2f67d8;
  font-size: 12px;
  line-height: 1.35;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.itemMortgageAssistLink:hover,
.itemMortgageAssistLink:focus-visible{
  color: #214faa;
}
.itemCtaGroup{
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
  align-self: stretch;
}
.itemCtaGroup .btn{
  width: 100%;
  min-width: 0;
  justify-content: center;
  min-height: 44px;
}
.itemCtaGroup .btn:nth-child(3){
  grid-column: 1 / -1;
}
.itemContactCard{
  padding: 12px;
  border-radius: 14px;
  display: grid;
  gap: 8px;
}
.itemContactTitle{
  margin: 0;
  font-size: 14px;
  line-height: 1.25;
  color: rgba(32,39,66,.9);
}
.itemContactRow{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.itemContactMain{
  min-width: 0;
  display: grid;
  gap: 3px;
}
.itemContactBroker{
  margin-top: -2px;
  font-size: 13px;
  color: rgba(32,39,66,.64);
}
.itemContactActionBtn{
  white-space: nowrap;
  margin-left: auto;
}
#itemContactValue{
  font-weight: 700;
  color: rgba(32,39,66,.92);
  line-height: 1.35;
}

.photoLightbox{
  position: fixed;
  inset: 0;
  z-index: 190;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 24px;
  background: rgba(var(--overlay-backdrop-rgb), var(--overlay-opacity-strong));
  backdrop-filter: blur(calc(var(--overlay-blur) + 1px));
  -webkit-backdrop-filter: blur(calc(var(--overlay-blur) + 1px));
  transition: opacity var(--overlay-transition-duration) var(--overlay-transition-easing);
  opacity: 0;
  pointer-events: none;
}
.photoLightbox.open{
  opacity: 1;
  pointer-events: auto;
}
.photoLightbox[hidden]{
  display: none !important;
}
.photoLightboxStage{
  min-height: 64vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
}
.photoLightboxStage img{
  max-width: min(92vw, 1400px);
  max-height: 84vh;
  object-fit: contain;
  border-radius: 16px;
  box-shadow: 0 20px 56px rgba(6,8,14,.45);
  background: rgba(255,255,255,.92);
  transform: scale(.985);
  transition: transform var(--overlay-transition-duration) var(--overlay-transition-easing);
}
.photoLightbox.open .photoLightboxStage img{
  transform: scale(1);
}
.photoLightboxClose{
  position: absolute;
  top: 16px;
  right: 16px;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(20,27,45,.56);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}
.photoLightboxNav{
  width: 46px;
  height: 56px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(20,27,45,.56);
  color: #fff;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
}
.photoLightboxCaption{
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  color: rgba(255,255,255,.92);
  font-size: 14px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(20,27,45,.52);
}

.article{
  max-width: 900px;
}
.article h1{
  font-size: clamp(40px, 4vw, 64px);
  line-height: .98;
}
.article h2{
  margin-top: 28px;
  font-size: clamp(24px, 2.3vw, 33px);
}
.article p,
.article ul{
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 1.7;
}

.authNote,
.statusOk,
.statusErr,
.kv,
.callout,
.articleRelatedCard,
details summary{
  border-radius: 14px;
}

details summary{
  background: rgba(255,255,255,.8);
  border-color: rgba(32,39,66,.14);
}

#partnerTable th,
#partnerTable td{
  padding: 10px 9px;
  border-bottom: 1px solid rgba(32,39,66,.12);
  font-size: 13px;
  vertical-align: middle;
}
#partnerTable tr:hover td{
  background: rgba(255,255,255,.58);
}
#partnerTable .u-table-empty-cell{
  padding: 16px 10px;
}
#partnerTable .u-table-empty-cell a{
  margin-left: 6px;
}
#partnerTable .partnerCellClamp{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.35;
  max-width: 220px;
}

.partnerSortBtn{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(32,39,66,.82);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.partnerSortBtn::after{
  content: "↕";
  font-size: 11px;
  color: rgba(32,39,66,.44);
}
.partnerSortBtn.is-active{
  color: rgba(32,39,66,.98);
}
.partnerSortBtn.is-active::after{
  color: rgba(32,39,66,.8);
}

.partnerFilters{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.partnerCabinetTop{
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.15fr);
  gap: 12px;
}
.partnerKpiGrid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.partnerKpiCard{
  display: grid;
  gap: 6px;
  min-height: 86px;
  padding: 12px 14px;
  border: 1px solid rgba(32,39,66,.14);
  border-radius: 14px;
  background: rgba(255,255,255,.74);
}
.partnerKpiLabel{
  font-size: 12px;
  line-height: 1.35;
  color: rgba(32,39,66,.66);
}
.partnerKpiValue{
  font-size: 24px;
  line-height: 1.08;
  letter-spacing: .01em;
  color: rgba(32,39,66,.94);
}
.partnerCabinetOps{
  display: grid;
  gap: 10px;
  align-content: start;
}
.partnerCabinetOpsActions{
  justify-content: flex-start;
}
.partnerCabinetOpsActions .btn{
  min-width: 132px;
}
.partnerSyncStatus{
  border: 1px solid rgba(32,39,66,.13);
  border-radius: 12px;
  background: rgba(255,255,255,.7);
  color: rgba(32,39,66,.82);
  font-size: 13px;
  line-height: 1.45;
  padding: 10px 12px;
}
.partnerSyncStatus.is-running{
  border-color: rgba(176,138,97,.26);
  background: rgba(176,138,97,.12);
}
.partnerSyncStatus.is-error{
  border-color: rgba(153,51,39,.3);
  background: rgba(153,51,39,.11);
}
.partnerSyncStatus.is-ok{
  border-color: rgba(68,122,83,.28);
  background: rgba(68,122,83,.1);
}
.partnerSection{
  padding: 58px 0;
}
.partnerLandingHero{
  padding-top: 34px;
  padding-bottom: 32px;
}
.partnerLandingHero .heroGrid{
  gap: 22px;
  grid-template-columns: 1.08fr .92fr;
}
.partnerLandingHero .heroRight{
  height: 100%;
  align-content: stretch;
  grid-template-rows: minmax(0, 1fr);
}
.partnerLandingHero .heroCard{
  border-color: rgba(32,39,66,.11);
  background: linear-gradient(150deg, rgba(255,255,255,.86), rgba(250,247,241,.72));
  box-shadow: 0 18px 46px rgba(11,12,16,.09);
  padding: 30px 30px 28px;
}
.partnerLandingHero .heroLeft{
  padding: 4px 2px 10px;
}
.partnerHeroMeta{
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 0;
  margin-bottom: 20px;
}
.partnerHeroLead{
  max-width: 54ch;
  margin-top: 0;
}
.partnerLandingHero .heroLeft .h1{
  font-size: clamp(34px, 3.45vw, 52px);
  line-height: 1.06;
  letter-spacing: .1px;
  margin-top: 14px;
  margin-bottom: 18px;
}
.partnerHeroSignals{
  display: grid;
  gap: 11px;
}
.partnerHeroSignal{
  padding: 14px 15px;
  border-radius: 18px;
  border: 1px solid rgba(32,39,66,.12);
  background: rgba(255,255,255,.64);
}
.partnerHeroSignal h3{
  margin: 0 0 7px;
  font-size: 17px;
}
.partnerHeroSignal p{
  margin: 0;
  font-size: 13.5px;
  line-height: 1.4;
  color: rgba(32,39,66,.74);
}
.card.partnerHeroVisual{
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  height: 100%;
  overflow: hidden;
  padding: 0;
  border-radius: 24px;
  background: rgba(255,255,255,.84);
  box-shadow: 0 16px 34px rgba(11,12,16,.1);
}
.card.partnerHeroVisual picture{
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  overflow: hidden;
}
.card.partnerHeroVisual img{
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  aspect-ratio: auto;
  min-height: 340px;
  object-fit: cover;
  object-position: center;
}
.partnerHeroVisualBody{
  padding: 16px 18px 18px;
}
.partnerHeroVisualBody b{
  display: block;
  font-size: 19px;
  color: var(--ocean);
}
.partnerHeroVisualBody p{
  margin: 7px 0 0;
  font-size: 14px;
  line-height: 1.42;
}
.partnerStepsGrid{
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.partnerStepsGrid::before{
  content: none;
}
.partnerStepCard{
  position: relative;
  padding-top: 18px;
  border-radius: 20px;
  border: 1px solid rgba(32,39,66,.12);
  background: rgba(255,255,255,.74);
  box-shadow: 0 10px 24px rgba(11,12,16,.06);
}
.partnerStepNum{
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(161,123,90,.4);
  background: linear-gradient(140deg, rgba(255,255,255,.98), rgba(247,242,233,.94));
  color: rgba(32,39,66,.96);
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 5px 12px rgba(11,12,16,.08);
}
.partnerStepCard h3{
  margin-top: 13px;
  margin-bottom: 7px;
  font-size: 20px;
}
.partnerStepCard p{
  margin: 0;
  font-size: 14px;
  line-height: 1.46;
}
.partnerStageLineWrap{
  margin-top: 16px;
  border-radius: 16px;
  border: 1px solid rgba(32,39,66,.12);
  background: rgba(255,255,255,.66);
  padding: 11px 12px 12px;
}
.partnerStageLineLabel{
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: rgba(32,39,66,.56);
}
.partnerStageLine{
  margin-top: 9px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
}
.partnerStageLine span{
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(32,39,66,.16);
  background: rgba(255,255,255,.86);
  color: rgba(32,39,66,.78);
  font-size: 12px;
  font-weight: 600;
}
.partnerStageLine span:not(:last-child)::after{
  content: "→";
  margin-left: 8px;
  color: rgba(161,123,90,.72);
  font-weight: 700;
  line-height: 1;
}
.partnerBenefitsSection{
  position: relative;
  isolation: isolate;
}
.partnerBenefitsSection::before{
  content: none;
}
.partnerBenefitsSection .sectionHead{
  margin-bottom: 14px;
}
.partnerBenefitsGrid{
  gap: 14px;
  align-items: stretch;
}
.partnerBenefitsGrid .partnerBenefitCard{
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  border: 1px solid rgba(32,39,66,.12);
  background: rgba(255,255,255,.84);
  box-shadow: 0 12px 28px rgba(11,12,16,.07);
  padding: 16px 16px 14px;
}
.partnerBenefitCard h3{
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.12;
}
.partnerBenefitIcon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid rgba(32,39,66,.2);
  background: rgba(32,39,66,.06);
  color: rgba(32,39,66,.85);
  flex: 0 0 auto;
}
.partnerBenefitIcon svg{
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 1.75;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.partnerBenefitIcon--percent{
  font-weight: 700;
  font-size: 20px;
  line-height: 1;
}
.partnerBenefitCard p{
  margin: 0;
  font-size: 13.5px;
  line-height: 1.42;
  color: rgba(32,39,66,.76);
}
.partnerBenefitCard--accent{
  border-color: rgba(161,123,90,.35);
  background: linear-gradient(155deg, rgba(41,53,90,.97), rgba(33,45,80,.95));
  box-shadow: 0 18px 34px rgba(18,24,42,.24);
}
.partnerBenefitCard--accent h3{
  color: rgba(255,255,255,.98);
}
.partnerBenefitCard--accent .partnerBenefitIcon{
  border-color: rgba(237,243,255,.42);
  background: rgba(255,255,255,.1);
  color: rgba(248,252,255,.96);
}
.partnerBenefitCard--accent p{
  color: rgba(238,243,255,.88);
}
.partnerTransferSection .sectionHead{
  margin-bottom: 16px;
}
.partnerTransferSection .grid2{
  gap: 16px;
  align-items: stretch;
}
.partnerTransferFormCard{
  border-radius: 22px;
  border-color: rgba(32,39,66,.12);
  background: rgba(255,255,255,.84);
  box-shadow: 0 12px 28px rgba(11,12,16,.07);
  padding: 22px 22px 20px;
}
.partnerTransferForm{
  display: grid;
  gap: 0;
}
.partnerTransferForm .field{
  gap: 7px;
}
.partnerTransferForm .divider{
  margin: 13px 0;
}
.partnerTransferForm .small{
  color: rgba(32,39,66,.62);
  margin-top: 14px;
}
.partnerTransferForm .searchActions + .small{
  margin-top: 18px;
}
.card.partnerTransferAside{
  padding: 0;
  overflow: hidden;
  border-radius: 22px;
  border-color: rgba(32,39,66,.12);
  background: transparent;
  box-shadow: none;
}
.card.partnerTransferAside picture{
  display: block;
  width: 100%;
  margin: 0;
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  overflow: hidden;
}
.card.partnerTransferAside img{
  display: block;
  width: 100%;
  margin: 0;
  aspect-ratio: 5 / 3;
  object-fit: cover;
  object-position: center;
}
.partnerTransferAsideBody{
  padding: 18px 18px 18px;
}
.partnerTransferAsideBody h3{
  margin: 0 0 8px;
  font-size: 22px;
}
.partnerTransferAsideBody p{
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
  color: rgba(32,39,66,.74);
}
.partnerTransferAsideBody ul{
  margin: 10px 0 0;
  padding-left: 18px;
  color: rgba(32,39,66,.8);
  line-height: 1.42;
}
.partnerFinalCta{
  text-align: left;
  border-radius: 24px;
}
.partnerFinalCta h2{
  margin: 0 0 10px;
  font-size: clamp(28px, 2.8vw, 40px);
  line-height: 1.02;
  color: var(--ocean);
}
.partnerFinalCta .lead{
  margin-bottom: 10px;
  font-size: clamp(16px, 1.4vw, 20px);
}
.partnerFinalSection{
  padding-top: 64px;
  padding-bottom: 30px;
}
.partnerFinalCta--accent{
  border-color: rgba(234,242,255,.2);
  background: linear-gradient(140deg, rgba(29,39,70,.98), rgba(36,50,88,.96));
  box-shadow: 0 20px 42px rgba(11,12,16,.26);
  padding: 28px 30px;
}
.partnerFinalCta--accent h2{
  color: rgba(249,252,255,.98);
}
.partnerFinalCta--accent .lead{
  color: rgba(233,240,255,.88);
}
.partnerFinalCtaActions{
  margin-top: 14px;
}
.partnerFinalCtaActions .btn.primary{
  background: rgba(255,255,255,.96);
  color: var(--ocean);
  border-color: rgba(255,255,255,.9);
  box-shadow: 0 8px 20px rgba(9,11,22,.28);
}
.partnerFinalCtaActions .btn.primary:hover{
  box-shadow: 0 10px 24px rgba(9,11,22,.34);
}
.partnerFinalCtaActions .btn.ghost{
  border-color: rgba(229,237,255,.38);
  background: rgba(255,255,255,.07);
  color: rgba(245,249,255,.95);
}
.partnerFinalCtaActions .btn.link{
  color: rgba(233,241,255,.92);
}
.partnerTransferHint{
  border-radius: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(32,39,66,.12);
  background: rgba(255,255,255,.76);
  color: rgba(32,39,66,.78);
}
.partnerTransferHint--loading{
  border-color: rgba(176,138,97,.28);
  background: rgba(176,138,97,.14);
  color: rgba(60,45,28,.9);
}
.partnerTransferHint--ok{
  border-color: rgba(68,122,83,.28);
  background: rgba(68,122,83,.12);
  color: rgba(20,76,37,.92);
}
.partnerTransferHint--error{
  border-color: rgba(153,51,39,.28);
  background: rgba(153,51,39,.12);
  color: rgba(122,36,24,.92);
}
.partnerOptionalFields{
  margin: 0;
  border: 1px solid rgba(32,39,66,.13);
  border-radius: 14px;
  background: rgba(255,255,255,.62);
  padding: 10px 12px;
}
.partnerOptionalFields summary{
  list-style: none;
  cursor: pointer;
  user-select: none;
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  color: rgba(32,39,66,.7);
}
.partnerOptionalFields summary::-webkit-details-marker{
  display: none;
}
.partnerOptionalFields summary::after{
  content: "▾";
  float: right;
  color: rgba(32,39,66,.58);
  transition: transform .18s ease;
}
.partnerOptionalFields[open] summary::after{
  transform: rotate(180deg);
}
.partnerOptionalFields[open]{
  background: rgba(255,255,255,.78);
}
.partnerAuthGateNav{
  margin: 8px 0 0;
  color: rgba(32,39,66,.7);
}
.partnerTransferAsideBody .partnerAuthGateNav{
  margin-top: 18px;
}
.partnerAuthGateNav a{
  font-weight: 600;
}
.partnerAuthQuickNav{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-top: 8px;
}
.partnerAuthQuickNav a{
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(32,39,66,.14);
  background: rgba(255,255,255,.72);
  color: rgba(32,39,66,.92);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}
.partnerAuthQuickNav a:hover{
  border-color: rgba(32,39,66,.26);
  background: rgba(255,255,255,.94);
}
.partnerFilterActions{
  display: flex;
  align-items: flex-end;
}
.partnerFilterActions .btn{
  width: 100%;
}
.partnerStatusBadge{
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid rgba(32,39,66,.15);
  background: rgba(255,255,255,.82);
  color: rgba(32,39,66,.88);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}
.partnerStatusBadge--neutral{
  border-color: rgba(32,39,66,.16);
  background: rgba(255,255,255,.86);
}
.partnerStatusBadge--progress{
  border-color: rgba(176,138,97,.34);
  background: rgba(176,138,97,.13);
  color: rgba(60,45,28,.92);
}
.partnerStatusBadge--ok{
  border-color: rgba(68,122,83,.33);
  background: rgba(68,122,83,.12);
  color: rgba(20,76,37,.96);
}
.partnerStatusBadge--error{
  border-color: rgba(153,51,39,.34);
  background: rgba(153,51,39,.12);
  color: rgba(122,36,24,.95);
}
.partnerPagination{
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.partnerPaginationMeta{
  font-size: 13px;
  color: rgba(32,39,66,.72);
}
.partnerPaginationBtns{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.partnerPageBtn.is-active{
  background: rgba(32,39,66,.12);
  border-color: rgba(32,39,66,.28);
}
#partnerTable .is-clickable{
  cursor: pointer;
}
#partnerTable .partnerRowOpenBtn{
  min-height: 34px;
  padding: 8px 10px;
}

.partnerReferralBackdrop{
  position: fixed;
  inset: 0;
  z-index: 98;
  background: rgba(var(--overlay-backdrop-rgb), var(--overlay-opacity));
  backdrop-filter: blur(var(--overlay-blur));
  -webkit-backdrop-filter: blur(var(--overlay-blur));
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--overlay-transition-duration) var(--overlay-transition-easing);
}
.partnerReferralBackdrop.open{
  opacity: 1;
  pointer-events: auto;
}
.partnerReferralDrawer{
  position: fixed;
  top: 0;
  right: 0;
  width: min(520px, 100%);
  height: 100vh;
  z-index: 99;
  background: rgba(248,245,239,.99);
  border-left: 1px solid rgba(32,39,66,.14);
  box-shadow: -18px 0 46px rgba(11,12,16,.18);
  display: grid;
  grid-template-rows: auto 1fr;
  transform: translateX(100%);
  opacity: 0;
  transition: transform var(--overlay-transition-duration) var(--overlay-transition-easing), opacity var(--overlay-transition-duration) var(--overlay-transition-easing);
}
.partnerReferralDrawer.open{
  transform: translateX(0);
  opacity: 1;
}
.partnerReferralDrawerHead{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(32,39,66,.12);
}
.partnerReferralDrawerHead h3{
  margin: 0;
  font-size: 20px;
  color: var(--ocean);
}
.partnerReferralDrawerBody{
  padding: 14px 16px 18px;
  overflow: auto;
}
.partnerReferralInfo{
  display: grid;
  gap: 8px;
  font-size: 14px;
  line-height: 1.45;
  color: rgba(32,39,66,.84);
}
.partnerReferralHistory{
  display: grid;
  gap: 10px;
}
.partnerHistoryRow{
  display: grid;
  gap: 4px;
  padding: 10px 11px;
  border-radius: 12px;
  border: 1px solid rgba(32,39,66,.12);
  background: rgba(255,255,255,.72);
}
body.partnerDrawerOpen{
  overflow: hidden;
}

@media (max-width: 1100px){
  .searchGrid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .statRow{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .catalogLayout{ grid-template-columns: 1fr; }
  .catalogSplit{
    grid-template-columns: 1fr;
  }
  .catalogSplit.catalogSplit--listOnly{
    grid-template-columns: 1fr;
  }
  .catalogMapPane{
    position: static;
    top: auto;
  }
  .catalogMapCanvas{
    height: 420px;
    min-height: 360px;
  }
  .catalogResultsTools{
    width: auto;
    justify-content: flex-end;
  }
  .catalogFiltersPane.searchWrap{
    position: static;
    top: auto;
  }
  .catalogResultsList[data-view="catalog_list"] .listing{
    grid-template-columns: 240px minmax(0, 1fr);
  }
  .catalogResultsList[data-view="catalog_list"] .listingSpecs{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px){
  .partnerLandingHero .heroRight{
    height: auto;
    grid-template-rows: auto;
  }
  .card.partnerHeroVisual{
    height: auto;
    grid-template-rows: auto auto;
  }
  .card.partnerHeroVisual img{
    min-height: 0;
  }
  .partnerStepsGrid{
    grid-template-columns: 1fr;
  }
  .partnerBenefitsGrid .partnerBenefitCard{
    min-height: 0;
  }
  .partnerCabinetTop{
    grid-template-columns: 1fr;
  }
  .partnerKpiGrid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .partnerCabinetOpsActions{
    width: 100%;
  }
  .partnerCabinetOpsActions .btn{
    flex: 1 1 calc(33.333% - 8px);
    min-width: 0;
  }
  .partnerFilters{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hero{ padding-top: 26px; }
  .heroGrid{ gap: 16px; }
  .heroCard{ padding: 16px; border-radius: 22px; }
  .itemTitle{ font-size: clamp(24px, 6.2vw, 34px); }
  .itemSublead{ font-size: 17px; line-height: 1.32; }
  .itemAddressLine{ font-size: 14px; }
  .itemMapDialog{
    width: min(920px, calc(100vw - 20px));
    max-height: calc(100vh - 20px);
    border-radius: 16px;
    grid-template-rows: auto minmax(250px, 56vh) auto;
  }
  .itemMapHead{
    padding: 12px 14px 8px;
  }
  .itemMapTitle{
    font-size: 18px;
  }
  .itemMapAddress{
    font-size: 13px;
  }
  .itemMapActions{
    padding: 10px 14px 12px;
    justify-content: stretch;
  }
  .itemMapActions .btn{
    width: 100%;
    min-width: 0;
  }
  .searchWrap{ padding: 14px; border-radius: 20px; }
  .searchGrid{ grid-template-columns: 1fr; }
  .catalogLayout{ gap: 14px; }
  .catalogSplit{
    margin-top: 8px;
  }
  .catalogResultsTools{
    width: 100%;
    justify-content: flex-start;
  }
  .viewSwitch{
    width: 100%;
    justify-content: space-between;
  }
  .viewBtn{
    flex: 1 1 33.333%;
    text-align: center;
    justify-content: center;
  }
  .catalogResultsList[data-view="catalog_grid"]{
    grid-template-columns: 1fr;
  }
  .catalogResultsList[data-view="catalog_list"] .listing{
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .catalogResultsList .listingThumb{
    min-height: 0;
  }
  .catalogResultsList .listingTitle{
    font-size: 16px;
  }
  .catalogResultsList .listingFooter{
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .listingContactRow{
    width: 100%;
    justify-content: stretch;
  }
  .listingContactRow .btn.small{
    flex: 1 1 calc(33.333% - 8px);
    min-width: 0;
  }
  .catalogResultsList .listingFooter .btn{
    width: 100%;
  }
  .thumb{ height: 184px; }
  .itemCardsGrid .listingCompact .listingPrice{
    font-size: 24px;
  }
  .itemCtaGroup{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .itemStatsHead{
    flex-direction: column;
    align-items: stretch;
  }
  .itemStatsHeadActions{
    justify-content: flex-start;
  }
  .itemBackBtn{
    width: auto;
  }
  .itemContactRow{
    flex-direction: column;
    align-items: stretch;
  }
  .itemContactActionBtn{
    width: 100%;
    margin-left: 0;
  }
  .itemStatRow{
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .itemStatVal{
    font-size: 13px;
  }
  .itemStatValRich{
    text-align: left;
    justify-self: start;
  }
  .itemMortgageValueWrap{
    align-items: flex-start;
  }
  .itemAboutText{ font-size: 13px; }
  .photoLightbox{
    grid-template-columns: 1fr;
    padding: 12px;
    gap: 0;
  }
  .photoLightboxStage{
    min-height: auto;
    padding: 24px 0 12px;
  }
  .photoLightboxNav{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
  .photoLightboxNav.prev{ left: 8px; }
  .photoLightboxNav.next{ right: 8px; }
  .photoLightboxClose{
    top: 8px;
    right: 8px;
  }
  .listingTitle{ font-size: 17px; }
  .listingActionsRow .btn.small{ width: 100%; }
  .windowMask{ height: 228px; }
  .grid2,
  .grid3,
  .grid4,
  .articleRelatedGrid,
  .accountGrid,
  .authLayout{ grid-template-columns: 1fr; }
  .consultModal{
    top: 50%;
    left: 50%;
    right: auto;
    border-radius: 18px;
  }
}

@media (max-width: 430px){
  .consultModal{
    width: calc(100vw - 12px);
    max-width: calc(100vw - 12px);
    max-height: calc(100vh - 12px);
    height: auto;
    border-radius: 16px;
    transform: translate(-50%, -48%) scale(.985);
  }
  .consultModal.open{
    transform: translate(-50%, -50%) scale(1);
  }
  .consultModalMain{
    padding: 16px 14px 14px;
  }
  .consultHead{
    padding-right: 40px;
    margin-bottom: 10px;
  }
  .consultHead h3{
    font-size: clamp(30px, 9.4vw, 40px);
    line-height: .98;
    letter-spacing: .01em;
  }
  .consultHead .muted{
    font-size: 15px;
    line-height: 1.45;
  }
  .consultCloseBtn{
    top: 10px;
    right: 10px;
    width: 30px;
    height: 30px;
    font-size: 20px;
  }
  .consultFine{
    font-size: 11px;
    line-height: 1.4;
  }
  .photoLightbox{
    padding: 8px;
  }
  .photoLightboxStage{
    padding: 14px 0 8px;
  }
}

@media (max-width: 640px){
  .roleSwitch{
    grid-template-columns: 1fr;
  }
  .partnerKpiGrid{
    grid-template-columns: 1fr;
  }
  .partnerCabinetOpsActions .btn{
    flex: 1 1 100%;
  }
  .partnerPagination{
    flex-direction: column;
    align-items: stretch;
  }
  .partnerPaginationBtns{
    justify-content: flex-start;
  }
  #partnerTable .partnerCellClamp{
    max-width: 160px;
  }
  .partnerFilters{
    grid-template-columns: 1fr;
  }
  .partnerReferralDrawer{
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce){
  .drawerBackdrop,
  .drawer,
  .modalBackdrop,
  .consultModal,
  .partnerReferralBackdrop,
  .partnerReferralDrawer,
  .photoLightbox{
    transition: none !important;
    animation: none !important;
  }
}

/* Unified lead-form validation contract */
.fieldError{
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.35;
  font-weight: 700;
  color: #b42318;
}

input.inputError,
select.inputError,
textarea.inputError{
  border-color: rgba(180,35,24,.58) !important;
  box-shadow: 0 0 0 4px rgba(180,35,24,.12) !important;
}

/* Accessibility helpers */
.btn:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible{
  outline: 2px solid rgba(179,138,100,.86);
  outline-offset: 2px;
}
