:root { --heading-font: Manrope, Roboto, sans-serif; }
:is(.hero,.catalog,.featured,.editorial,.home-about,.team,.movies,.rd-shell,.mountain-collection) :is(h1,h2,h3,h4),
.agency-numbers strong, .listing-spec caption { font-family: var(--heading-font); }
.hero.mountain-hero { background: #213c48; }
.mountain-hero > picture { inset: 0; width: 100%; }
.mountain-hero > picture img { object-position: center 54%; }
.mountain-hero::before { display: none; }
.mountain-hero .hero-veil { background: linear-gradient(90deg, #102b38d9, #102b3866 49%, transparent 84%), linear-gradient(0deg,#132a37b3,transparent 42%); }
.mountain-hero .hero-type { max-width: 900px; }
.mountain-hero h1 { font-size: clamp(42px,5.5vw,88px); letter-spacing: -.056em; }
.mountain-hero h1 em { color: #fff1d3; font-weight: 470; }
.mountain-hero .hero-inside { padding-block: clamp(50px,6vw,96px) 80px; }
.hero-foot .photo-credit { color: #fff; font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.mountain-hero .home-finder { max-width: 1050px; }
.finder-extra { grid-template-columns: repeat(3,minmax(0,1fr)); row-gap: 10px; }
.finder-fields { grid-template-columns: minmax(140px,1fr) minmax(0,2.5fr) auto; }
.property-facts { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 2px 0 14px; color: #314c60; }
.property-facts > span { display: inline-flex; align-items: center; gap: 5px; font-size: .875rem; }
.property-facts svg { color: #28628b; }
.property .photo, .rd-stage { background-color: #dce8ee; background-position: center; background-size: cover; }
.property .photo:has(img) { isolation: isolate; }
.property .photo .photo-link { background: transparent; }
.property .locale { font-size: .85rem; }
.property h3 { line-height: 1.26; font-size: clamp(19px,1.55vw,25px); text-wrap: pretty; }
.prices .unit-price { width: 100%; color: #3d5c70; }
.mountain-collection { padding: clamp(36px,5vw,75px) 0; background: #112f3c; color: #f6f4ec; }
.mountain-collection .cards { margin-top: 25px; }
.mountain-collection .property { color: var(--ink); border: 0; }
.mountain-collection .eyebrow, .mountain-collection .text-link { color: #cee8ed; }
.home-about, .team, .movies { padding-block: clamp(36px,4vw,70px); }
.agency-numbers { display: grid; grid-template-columns: repeat(3,1fr); margin: 26px 0 42px; border-block: 1px solid #c5d7e1; }
.agency-numbers > div { display: grid; padding: clamp(14px,2vw,28px) 10px; gap: 4px; }
.agency-numbers strong { color: #135579; font-size: clamp(32px,4.6vw,72px); letter-spacing: -.06em; line-height: 1.1; }
.agency-benefits > h3 { font-size: clamp(23px,2.5vw,38px); }
.agency-benefits > div { margin-top: 18px; display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.agency-benefits article { border: 1px solid #c5d7e1; border-top: 3px solid #317ba1; background: #f1f6f8; padding: clamp(16px,2vw,26px); border-radius: 4px 4px 12px 12px; }
.benefit-mark { display: flex; align-items: center; justify-content: space-between; color: #32617b; font-weight: 650; }
.agency-benefits h4 { margin: 22px 0 8px; font-size: 19px; line-height: 1.3; }
.agency-benefits article p { margin: 0; color: #344f61; font-size: 15px; }
.team-layout { display: grid; grid-template-columns: minmax(200px,.8fr) minmax(0,1.4fr); gap: clamp(20px,4vw,70px); margin-top: 22px; }
.director-photo { margin: 0; background: #eef4f7; }
.director-photo img { width: 100%; height: clamp(210px,24vw,350px); object-fit: contain; }
.director-photo figcaption { padding: 9px 16px; color: #36556a; }
.team-roster > div { padding: 14px 0; border-top: 1px solid #b7cdda; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.team-roster h3 { font-size: clamp(17px,2vw,27px); margin: 0; }
.team-roster span { color: #435c6f; }
.agency-film { display: block; position: relative; overflow: hidden; border-radius: 12px; background: #133749; }
.agency-film img { width: 100%; max-height: 460px; object-fit: cover; }
.agency-film > span { position: absolute; inset: 0; display: flex; gap: 12px; align-items: end; padding: clamp(18px,3vw,48px); color: white; background: linear-gradient(0deg,#0f293deb,transparent 58%); font-size: clamp(18px,2.8vw,40px); }
.agency-film svg { align-self: end; margin-bottom: .2em; }
.listing-spec { width: 100%; border-collapse: collapse; margin-bottom: 28px; }
.listing-spec caption, .listing-map h2 { text-align: left; font-weight: 700; font-size: clamp(23px,2.2vw,32px); margin-bottom: 14px; }
.listing-spec :is(td,th) { text-align: left; padding: 9px 12px; border-bottom: 1px solid #d1dfe7; }
.listing-spec th { width: 45%; font-weight: 500; background: #f1f6f8; }
.listing-map { margin: 32px 0; }
.listing-map iframe { border: 0; width: 100%; height: 270px; background: #eef5f8; margin: 10px 0; border-radius: 10px; }
.listing-map a { color: #145d91; text-decoration: underline; }
.foot-bottom a { display: inline-flex; padding: 6px; }
@media (max-width: 375px) {
  .brand span { display: none; }
  .head-actions { gap: 5px; }
}
@media (min-width:901px) {
  .rd-estate .rd-side { align-self: stretch; }
  .rd-estate .rd-side-inner { position: sticky; top: 16px; max-height: calc(100dvh - 32px); overflow-y: auto; }
}
@media (max-width:900px) {
  .agency-benefits > div { grid-template-columns: 1fr 1fr; }
}
@media (max-width:600px) {
  .mountain-hero .hero-inside { padding-block: 31px 58px; }
  .mountain-hero > picture img { object-position: 58% 50%; }
  .mountain-hero .hero-veil { background: linear-gradient(90deg,#162d3bc7,#152a3666 70%),linear-gradient(0deg,#142d3cc7,transparent 58%); }
  .mountain-hero h1 { font-size: clamp(34px,8.4vw,50px); max-width: 100%; }
  .finder-fields { grid-template-columns: minmax(0,1fr) auto; }
  .finder-extra { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .finder-extra label { border: 0; padding-left: 0; }
  .hero-foot .where { display: inline-flex; }
  .agency-numbers { gap: 4px; margin: 16px 0 27px; }
  .agency-numbers > div { padding: 12px 0; }
  .agency-numbers span { font-size: 13px; }
  .agency-benefits > div, .team-layout { grid-template-columns: 1fr; }
  .agency-benefits h4 { margin-top: 10px; }
  .director-photo img { height: 240px; }
  .team-roster > div { display: grid; gap: 3px; }
}
