:root {
  --wine: #5d1830;
  --wine-dark: #32101e;
  --ink: #1c1a18;
  --paper: #f5f0e8;
  --paper-deep: #e8dfd2;
  --sage: #697466;
  --line: rgba(28, 26, 24, .18);
  --white: #fffdf9;
  --display: Georgia, "Times New Roman", serif;
  --body: Inter, "Segoe UI", Arial, sans-serif;
  --wrap: min(1180px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.65;
}
body.menu-locked { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 200; background: var(--white); padding: 10px 16px; }
.skip-link:focus { top: 16px; }
.martini-shell { width: var(--wrap); margin: 0 auto; }

.topnote {
  background: var(--wine-dark);
  color: #f8ecee;
  font-size: .76rem;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.topnote .martini-shell { display: flex; justify-content: space-between; gap: 24px; padding: 8px 0; }
.topnote a { text-decoration: none; }
.masthead {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(245, 240, 232, .94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.masthead-row { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brandmark { display: inline-flex; align-items: center; gap: 13px; text-decoration: none; }
.brandmark-seal {
  width: 45px;
  height: 45px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--white);
  background: var(--wine);
  font-family: var(--display);
  font-size: 1.1rem;
}
.brandmark-copy { display: grid; line-height: 1.05; }
.brandmark-copy strong { font-family: var(--display); font-size: 1.12rem; font-weight: 500; letter-spacing: .03em; }
.brandmark-copy small { color: #6d665e; margin-top: 5px; font-size: .65rem; text-transform: uppercase; letter-spacing: .13em; }
.mainnav { display: flex; align-items: center; gap: 27px; }
.mainnav a { font-size: .86rem; text-decoration: none; position: relative; }
.mainnav a:not(.nav-contact)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: var(--wine); transition: right .25s ease; }
.mainnav a:hover::after, .mainnav a[aria-current="page"]::after { right: 0; }
.nav-contact { background: var(--wine); color: white; padding: 11px 17px; }
.menu-toggle { display: none; border: 0; background: none; padding: 8px; color: var(--ink); }
.menu-toggle span { display: block; width: 26px; height: 1px; background: currentColor; margin: 6px 0; }

.hero-home { min-height: 680px; position: relative; display: grid; align-items: end; overflow: hidden; }
.hero-home::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(23,12,16,.82) 0%, rgba(23,12,16,.58) 37%, rgba(23,12,16,.05) 75%), url('/assets/images/kyiv-property-management.jpg') center/cover; }
.hero-home::after { content: ""; position: absolute; inset: 28px; border: 1px solid rgba(255,255,255,.32); pointer-events: none; }
.hero-copy { position: relative; z-index: 1; max-width: 770px; color: white; padding: 120px 0 90px; }
.eyebrow { display: inline-flex; gap: 10px; align-items: center; text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; font-weight: 700; }
.eyebrow::before { content: ""; width: 34px; height: 1px; background: currentColor; }
.hero-copy h1, .page-intro h1 { margin: 18px 0 22px; font: 400 clamp(3.2rem, 7vw, 6.8rem)/.9 var(--display); letter-spacing: -.045em; }
.hero-copy h1 em { color: #e2c7b0; font-weight: 400; }
.hero-copy p { max-width: 650px; margin: 0 0 30px; color: rgba(255,255,255,.86); font-size: 1.08rem; }
.action-pair { display: flex; flex-wrap: wrap; gap: 13px; }
.button-wine, .button-pale, .button-line { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 50px; padding: 0 21px; text-decoration: none; border: 1px solid transparent; transition: transform .2s ease, background .2s ease; cursor: pointer; }
.button-wine { background: var(--wine); color: white; }
.button-pale { background: var(--paper); color: var(--ink); }
.button-line { border-color: currentColor; background: transparent; }
.button-wine:hover, .button-pale:hover, .button-line:hover { transform: translateY(-2px); }

.numbers-ribbon { background: var(--wine); color: white; }
.numbers-grid { display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); }
.numbers-grid > div { padding: 34px 28px; border-right: 1px solid rgba(255,255,255,.18); }
.numbers-grid > div:first-child { padding-left: 0; }
.numbers-grid strong { display: block; font: 400 1.9rem var(--display); }
.numbers-grid span { color: rgba(255,255,255,.7); font-size: .8rem; }
.numbers-grid .ribbon-lead { font: 400 1.18rem/1.45 var(--display); }

.section-pad { padding: 108px 0; }
.section-pad.compact { padding: 74px 0; }
.section-heading { display: grid; grid-template-columns: minmax(200px, .7fr) 1.5fr; gap: 60px; align-items: start; margin-bottom: 55px; }
.section-heading h2, .split-story h2, .closing-band h2 { margin: 0; font: 400 clamp(2.4rem, 5vw, 4.7rem)/.98 var(--display); letter-spacing: -.035em; }
.section-heading p { margin: 8px 0 0; max-width: 670px; color: #5d5750; font-size: 1.02rem; }
.service-index { border-top: 1px solid var(--line); }
.service-line { display: grid; grid-template-columns: 90px 1fr 1.1fr 42px; gap: 26px; align-items: center; padding: 31px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.service-line .count { color: var(--wine); font: italic 1rem var(--display); }
.service-line h3 { margin: 0; font: 400 clamp(1.4rem, 3vw, 2.35rem) var(--display); }
.service-line p { margin: 0; color: #686159; }
.service-line .arrow { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; transition: .2s ease; }
.service-line:hover .arrow { background: var(--wine); color: white; transform: rotate(-35deg); }

.split-story { display: grid; grid-template-columns: 1fr 1fr; min-height: 620px; background: var(--wine-dark); color: white; }
.split-story figure { margin: 0; min-height: 100%; }
.split-story img { width: 100%; height: 100%; object-fit: cover; }
.split-story-copy { padding: clamp(60px, 8vw, 120px); display: flex; flex-direction: column; justify-content: center; }
.split-story-copy p { color: rgba(255,255,255,.72); }
.split-story-copy ul { list-style: none; padding: 10px 0 0; margin: 0; }
.split-story-copy li { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.18); }

.method-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.method-card { min-height: 270px; background: var(--paper); padding: 28px; display: flex; flex-direction: column; }
.method-card b { color: var(--wine); font: 400 2.1rem var(--display); }
.method-card h3 { margin: auto 0 8px; font: 400 1.35rem var(--display); }
.method-card p { margin: 0; color: #665f58; font-size: .9rem; }
.closing-band { background: var(--paper-deep); }
.closing-band .martini-shell { display: grid; grid-template-columns: 1.5fr .7fr; align-items: end; gap: 50px; }

.page-intro { padding: 98px 0 70px; border-bottom: 1px solid var(--line); }
.page-intro h1 { max-width: 1040px; font-size: clamp(3rem, 7vw, 6.2rem); }
.page-intro .intro-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 50px; margin-top: 40px; }
.page-intro .intro-grid p { margin: 0; max-width: 760px; color: #5e5852; font-size: 1.08rem; }
.legal-identity { display: block; font: 400 clamp(1.5rem, 2.6vw, 2.3rem)/1.15 var(--display); letter-spacing: -.02em; }
.large-picture { width: var(--wrap); margin: 0 auto; }
.large-picture img { width: 100%; height: min(63vw, 720px); object-fit: cover; }
.caption { display: flex; justify-content: space-between; gap: 30px; padding-top: 10px; font-size: .75rem; color: #6c655e; }
.prose-grid { display: grid; grid-template-columns: .65fr 1.35fr; gap: 70px; }
.prose-grid h2 { position: sticky; top: 120px; margin: 0; font: 400 2.3rem/1.05 var(--display); }
.prose-column { max-width: 760px; }
.prose-column h3 { margin: 42px 0 12px; font: 400 1.65rem var(--display); }
.prose-column h3:first-child { margin-top: 0; }
.prose-column p, .prose-column li { color: #514c47; }
.fact-strips { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); }
.fact-strips div { padding: 30px; border-right: 1px solid var(--line); }
.fact-strips div:last-child { border-right: 0; }
.fact-strips small { display: block; color: var(--wine); text-transform: uppercase; letter-spacing: .12em; }
.fact-strips strong { display: block; margin-top: 12px; font: 400 1.3rem/1.35 var(--display); }
.insight-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.insight-card { background: var(--white); padding: 34px; border-top: 1px solid var(--wine); }
.insight-card .insight-no { color: var(--wine); font: italic 1rem var(--display); }
.insight-card h3 { margin: 34px 0 12px; font: 400 1.75rem/1.1 var(--display); }
.insight-card p { margin: 0; color: #5f5953; }
.detail-list { border-top: 1px solid var(--line); }
.detail-list article { display: grid; grid-template-columns: .75fr 1.25fr; gap: 45px; padding: 30px 0; border-bottom: 1px solid var(--line); }
.detail-list h3 { margin: 0; font: 400 1.55rem var(--display); }
.detail-list p { margin: 0; color: #5f5953; }
.question-list { border-top: 1px solid var(--line); }
.question-list details { border-bottom: 1px solid var(--line); padding: 22px 0; }
.question-list summary { cursor: pointer; font: 400 1.35rem var(--display); list-style: none; display: flex; justify-content: space-between; gap: 20px; }
.question-list summary::-webkit-details-marker { display: none; }
.question-list summary::after { content: '+'; color: var(--wine); }
.question-list details[open] summary::after { content: '−'; }
.question-list p { max-width: 760px; color: #5f5953; margin: 15px 0 3px; }

.services-board { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.service-sheet { background: var(--white); padding: 40px; border-top: 4px solid var(--wine); }
.service-sheet:nth-child(3n+2) { border-color: var(--sage); }
.service-sheet h2 { margin: 18px 0 12px; font: 400 2rem var(--display); }
.service-sheet p { color: #5f5953; }
.service-sheet ul { padding-left: 18px; }
.service-sheet li { margin: 8px 0; }
.service-sheet .sheet-no { color: var(--wine); font: italic 1rem var(--display); }

.timeline { counter-reset: timeline; border-top: 1px solid var(--line); }
.timeline-step { counter-increment: timeline; display: grid; grid-template-columns: 120px 1fr 1fr; gap: 40px; padding: 38px 0; border-bottom: 1px solid var(--line); }
.timeline-step::before { content: "0" counter(timeline); font: 400 2rem var(--display); color: var(--wine); }
.timeline-step h2 { margin: 0; font: 400 1.8rem var(--display); }
.timeline-step p { margin: 0; color: #5f5953; }

.contact-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; }
.contact-card { background: var(--wine-dark); color: white; padding: 42px; align-self: start; }
.contact-card h2 { margin: 0 0 28px; font: 400 2.2rem var(--display); }
.contact-card dl { margin: 0; }
.contact-card dt { margin-top: 24px; color: #c9aeb6; font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; }
.contact-card dd { margin: 5px 0 0; }
.contact-card a { color: white; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.field-unit { display: grid; gap: 7px; }
.field-unit.full { grid-column: 1 / -1; }
.field-unit label { font-size: .78rem; font-weight: 700; letter-spacing: .05em; }
.field-unit input, .field-unit textarea, .field-unit select { width: 100%; background: transparent; border: 0; border-bottom: 1px solid #999086; padding: 11px 2px; outline: none; border-radius: 0; }
.field-unit input:focus, .field-unit textarea:focus, .field-unit select:focus { border-color: var(--wine); box-shadow: 0 1px 0 var(--wine); }
.field-unit textarea { min-height: 110px; resize: vertical; }
.consent-row { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 10px; font-size: .83rem; color: #5c5650; }
.consent-row input { margin-top: 5px; accent-color: var(--wine); }
.form-note { grid-column: 1 / -1; margin: 0; font-size: .78rem; color: #766f67; }

.policy-wrap { display: grid; grid-template-columns: 260px minmax(0, 800px); gap: 70px; align-items: start; }
.policy-nav { position: sticky; top: 120px; border-left: 1px solid var(--line); padding-left: 20px; }
.policy-nav a { display: block; margin: 9px 0; color: #625b55; font-size: .84rem; text-decoration: none; }
.policy-body h2 { margin: 50px 0 14px; font: 400 2rem var(--display); scroll-margin-top: 120px; }
.policy-body h2:first-child { margin-top: 0; }
.policy-body h3 { margin: 28px 0 8px; font: 400 1.25rem var(--display); }
.policy-body p, .policy-body li { color: #514c47; }
.policy-body table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.policy-body th, .policy-body td { text-align: left; vertical-align: top; border: 1px solid var(--line); padding: 12px; }

.thank-panel { min-height: 64vh; display: grid; place-items: center; text-align: center; }
.thank-panel-inner { max-width: 730px; padding: 80px 20px; }
.thank-mark { width: 74px; height: 74px; display: grid; place-items: center; margin: 0 auto 28px; border-radius: 50%; background: var(--wine); color: white; font: 400 2rem var(--display); }
.thank-panel h1 { margin: 0 0 18px; font: 400 clamp(2.8rem, 7vw, 5.6rem)/.95 var(--display); }

.site-footer { background: #171412; color: #f6eee5; padding: 70px 0 24px; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .7fr 1fr; gap: 70px; }
.footer-brand p { max-width: 420px; color: #aaa097; }
.footer-title { color: #aa9e93; font-size: .7rem; text-transform: uppercase; letter-spacing: .16em; margin-bottom: 15px; }
.footer-links a { display: block; margin: 8px 0; text-decoration: none; }
.footer-contact address { font-style: normal; color: #ded4cb; }
.footer-contact a { color: white; text-decoration: none; }
.footer-legal { color: #f6eee5; font: 400 1.12rem/1.25 var(--display); margin: 0 0 17px; }
.footer-person { margin: 14px 0 0; color: #d7c9bc; font-size: .88rem; letter-spacing: .035em; }
.footer-base { display: flex; justify-content: space-between; gap: 30px; margin-top: 55px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.15); color: #948a82; font-size: .76rem; }

.cookie-note { position: fixed; z-index: 160; left: 22px; right: 22px; bottom: 22px; max-width: 760px; margin-left: auto; background: var(--white); border: 1px solid var(--line); box-shadow: 0 18px 55px rgba(32,21,24,.2); padding: 20px; display: none; grid-template-columns: 1fr auto; gap: 18px; align-items: center; }
.cookie-note.is-visible { display: grid; }
.cookie-note p { margin: 0; font-size: .84rem; color: #5b554f; }
.cookie-actions { display: flex; gap: 8px; }
.cookie-actions button { border: 1px solid var(--ink); padding: 8px 12px; background: transparent; cursor: pointer; }
.cookie-actions .accept { background: var(--wine); color: white; border-color: var(--wine); }

@media (max-width: 880px) {
  .topnote .martini-shell span:last-child { display: none; }
  .menu-toggle { display: block; }
  .mainnav { position: fixed; inset: 0; top: 109px; background: var(--paper); padding: 40px 20px; display: none; flex-direction: column; align-items: flex-start; }
  .mainnav.is-open { display: flex; }
  .mainnav a { font: 400 1.7rem var(--display); }
  .numbers-grid { grid-template-columns: 1fr 1fr; }
  .numbers-grid > div:first-child { padding-left: 28px; }
  .section-heading, .page-intro .intro-grid, .prose-grid, .contact-layout, .closing-band .martini-shell, .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .split-story { grid-template-columns: 1fr; }
  .split-story figure { min-height: 470px; }
  .method-grid, .insight-grid { grid-template-columns: 1fr 1fr; }
  .detail-list article { grid-template-columns: 1fr; gap: 9px; }
  .services-board { grid-template-columns: 1fr; }
  .timeline-step { grid-template-columns: 80px 1fr; }
  .timeline-step p { grid-column: 2; }
  .prose-grid h2 { position: static; }
  .policy-wrap { grid-template-columns: 1fr; gap: 30px; }
  .policy-nav { position: static; columns: 2; }
}

@media (max-width: 580px) {
  :root { --wrap: min(100% - 28px, 1180px); }
  .brandmark-copy small { display: none; }
  .masthead-row { min-height: 72px; }
  .mainnav { top: 97px; }
  .hero-home { min-height: 620px; }
  .hero-home::after { inset: 14px; }
  .hero-copy { padding: 100px 7px 70px; }
  .hero-copy h1 { font-size: 3.25rem; }
  .numbers-grid { grid-template-columns: 1fr; }
  .numbers-grid > div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); padding: 22px 0 !important; }
  .section-pad { padding: 74px 0; }
  .service-line { grid-template-columns: 45px 1fr 35px; gap: 12px; }
  .service-line p { display: none; }
  .split-story figure { min-height: 340px; }
  .split-story-copy { padding: 55px 24px; }
  .method-grid, .fact-strips, .insight-grid { grid-template-columns: 1fr; }
  .fact-strips div { border-right: 0; border-bottom: 1px solid var(--line); }
  .service-sheet { padding: 28px 22px; }
  .timeline-step { grid-template-columns: 48px 1fr; gap: 15px; }
  .contact-form { grid-template-columns: 1fr; }
  .field-unit { grid-column: 1 / -1; }
  .contact-card { padding: 30px 24px; }
  .policy-nav { columns: 1; }
  .policy-body table { display: block; overflow-x: auto; }
  .footer-base { flex-direction: column; }
  .cookie-note { left: 10px; right: 10px; bottom: 10px; grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
