/* Readable body copy and predictable media. Heading metrics remain in v3.css. */
:root {
  --font-body: "Golos Text", Arial, sans-serif;
  --font-heading: "Onest", Arial, sans-serif;
  --copy-scale: 1.1;
  --action-yellow: #ffdf47;
  --media-landscape: 16 / 9;
  --copy-meta: .75rem;
}
a.shortcut { text-decoration: none; }
.section-link { display: flex; align-items: center; flex-shrink: 0; gap: .2rem; min-height: 2.75rem; padding: 0 .3rem 0 .75rem; color: var(--v3-green-700); font-size: .825rem; font-weight: 500; text-decoration: none; }
.section-link svg { width: .95rem; height: .95rem; }
.bottom-nav a { min-width: 0; min-height: 3.5rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .25rem; color: var(--v3-ink-faint); font-size: .715rem; font-weight: 400; text-decoration: none; }
.bottom-nav a > svg { width: 1.45rem; height: 1.45rem; }
body { font-family: var(--font-body); font-size: 1.1rem; letter-spacing: 0; }
h1, h2, h3, .brand strong, .footer-brand b, .footer-links b, .company-grid b, .logo {
  font-family: var(--font-heading);
}
/* Scale explicit copy sizes, not the root: rem-based headings and spacing stay unchanged. */
.hero p { font-size: calc(.9375rem * var(--copy-scale)); }
.hero-badge { font-size: max(var(--copy-meta), .6875rem); }
.hero-copy > span { font-size: max(var(--copy-meta), .75625rem); }
.brand small { font-size: calc(.525rem * var(--copy-scale)); }
.button-yellow, .button-glass { font-size: calc(.8125rem * var(--copy-scale)); }
.shortcut > span:last-child { font-size: calc(.75rem * var(--copy-scale)); }
.premium-shortcut small { font-size: calc(.5rem * var(--copy-scale)); }
.publish-cta strong { font-size: calc(.9375rem * var(--copy-scale)); }
.section-heading > div > small { font-size: var(--copy-meta); }
.section-heading button, .chips button, .pulse-more { font-size: calc(.75rem * var(--copy-scale)); }
.pulse-title p { font-size: calc(.7rem * var(--copy-scale)); }
.metrics b { font-size: calc(1.125rem * var(--copy-scale)); }
.metrics span, .metrics small { font-size: var(--copy-meta); }
.publication-copy > small, .publication-copy div span { font-size: var(--copy-meta); }
.publication-copy p, .listing-cta p, .video-copy p, .subscribe p { font-size: calc(.75rem * var(--copy-scale)); }
.badge, .company-grid small, .video-copy small, .duration, .mini-videos article span { font-size: var(--copy-meta); }
.property section b { font-size: calc(1.125rem * var(--copy-scale)); letter-spacing: 0; }
.property p { font-size: calc(.72rem * var(--copy-scale)); }
.property small, .questions p { font-size: var(--copy-meta); }
.wide-button { font-size: calc(.8rem * var(--copy-scale)); }
.listing-cta > div > span { font-size: var(--copy-meta); }
.listing-cta .button-yellow { font-size: calc(.72rem * var(--copy-scale)); }
.promo small { font-size: var(--copy-meta); }
.promo p { font-size: calc(.73rem * var(--copy-scale)); }
.promo button { font-size: calc(.72rem * var(--copy-scale)); }
.premium-copy > span { font-size: calc(.72rem * var(--copy-scale)); }
.premium p { font-size: calc(.82rem * var(--copy-scale)); }
.premium button { font-size: calc(.7rem * var(--copy-scale)); }
.subscribe input { font-size: calc(1rem * var(--copy-scale)); }
.subscribe form button { font-size: calc(.75rem * var(--copy-scale)); }
.subscribe > small { font-size: var(--copy-meta); }
.footer-brand p { font-size: calc(.7rem * var(--copy-scale)); }
.footer-links span { font-size: calc(.72rem * var(--copy-scale)); }
.copyright, .photo-credit { font-size: var(--copy-meta); }
.bottom-nav button { font-size: calc(.65rem * var(--copy-scale)); }
.bottom-nav .create b { font-size: calc(.62rem * var(--copy-scale)); }
/* Yellow applies only to the lower placement actions, not every green CTA. */
.bottom-nav .create > span, .listing-cta .button-yellow {
  color: var(--v3-ink);
  background: var(--action-yellow);
}
.listing-cta .button-yellow:hover { background: #f6d237; }

/* Ratio belongs to the photo, never to the entire card. */
.publication-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.publication-image, .property > div, .mini-videos article > div {
  height: auto;
  aspect-ratio: var(--media-landscape);
}
.publication-image img, .property img, .mini-videos img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--cover-position, 50% 50%);
}
.publication:nth-child(2), .mini-videos article:nth-child(3) { --cover-position: 50% 25%; }
.publication:hover img, .property:hover img { transform: none; }
.publication { display: flex; flex-direction: column; }
.publication-copy { display: flex; flex-direction: column; flex: 1; }
.publication-copy > div { margin-top: auto; padding-top: .75rem; flex-wrap: wrap; gap: .5rem; }
.publication-copy p { margin-bottom: .5rem; }
.publication-copy h3 { overflow-wrap: anywhere; }
.badge { left: .45rem; top: .45rem; padding: .25rem .4rem; font-weight: 500; letter-spacing: 0; }
.property { min-width: 0; }
.property section { padding: .75rem; }
.property section b { display: block; white-space: nowrap; }
.property small { align-items: flex-start; line-height: 1.45; }
.property small svg { flex-shrink: 0; margin-top: .12rem; }
.logo { aspect-ratio: 1; flex-shrink: 0; }
.logo img { width: 100%; height: 100%; object-fit: contain; }

/* Keep video text below its 16:9 cover so neither controls nor titles hide the image. */
.main-video { height: auto; color: var(--v3-ink); border: 1px solid var(--v3-line); }
.main-video > img { width: 100%; height: auto; aspect-ratio: var(--media-landscape); object-fit: cover; }
.main-video .video-shade { display: none; }
.main-video .play { top: .75rem; left: .75rem; transform: none; width: 3rem; height: 3rem; }
.main-video .duration { top: .75rem; right: .75rem; bottom: auto; color: white; }
.video-copy { position: static; padding: 1rem; }
.video-copy h3 { max-width: none; }
.video-copy small { color: var(--v3-green-700); }
.video-copy p { color: var(--v3-ink-soft); line-height: 1.5; }

/* More room for wider Cyrillic copy; preserve all four objects, no carousel. */
.section-heading { gap: .75rem; flex-wrap: wrap; }
.section-heading > div { min-width: 0; }
.section-heading button { flex-shrink: 0; }
.shortcut { padding-inline: .35rem; }
.shortcut > span:last-child { overflow-wrap: anywhere; }
.hero { min-height: 30rem; height: auto; }
.hero-copy { position: relative; inset: auto; padding: 9rem 1.45rem 1.55rem; }
.premium-copy > div { flex-wrap: wrap; }
.premium button { padding: .65rem .8rem; }
.questions article { grid-template-columns: 2.65rem minmax(0, 1fr) 1.25rem; }
.company-grid small { overflow-wrap: anywhere; }
.subscribe form { grid-template-columns: minmax(0, 1fr) auto; }
.subscribe form button { padding-inline: .8rem; }
.bottom-nav button { min-width: 0; padding-inline: 0; }
.bottom-nav { column-gap: .1rem; }
@media (max-width: 400px) {
  .brand small { font-size: calc(.48rem * var(--copy-scale)); }
  .shortcut > span:last-child { font-size: calc(.6875rem * var(--copy-scale)); }
  .metrics b { font-size: calc(1rem * var(--copy-scale)); }
  .hero-copy { padding-inline: 1.1rem; }
  .company-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .publication-copy { padding: .65rem; }
  .property section { padding: .6rem; }
  .property-grid { gap: .65rem; }
  .mini-videos { grid-template-columns: 1fr; gap: .8rem; }
  .mini-videos article { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: .75rem; align-items: center; }
  .mini-videos h3 { margin: 0; }
  .listing-cta { grid-template-columns: 1fr; }
  .listing-cta > img { display: none; }
}
@media (max-width: 350px) {
  .topbar { padding-inline: .6rem; }
  .brand { gap: .4rem; }
  .top-actions { gap: 0; }
  .top-actions button { width: 2.25rem; }
  .property section b { font-size: 1.2375rem; }
  .bottom-nav { padding-inline: .1rem; }
}
