/* V139: one presentation layer for every public PHP template.
   Semantic aliases retain each template's grid, IDs and behavior. Phone styles
   load afterwards. Important declarations are bounded to these UI components,
   whose older page layers otherwise use conflicting high-specificity rules. */
:root {
  --vo139-ink: #173e2e;
  --vo139-muted: #46584d;
  --vo139-green: #174e35;
  --vo139-hover: #0c3c28;
  --vo139-paper: #f4f4ec;
  --vo139-soft: #edf1e8;
  --vo139-line: #c7d2c8;
  --vo139-radius: 12px;
  --vo139-section-space: 72px;
  --vo139-card-space: 28px;
  --vo139-card-gap: 24px;
}
html body.vo139-page { color: var(--vo139-ink); }
html body.vo139-page main { font-family: Geist, system-ui, sans-serif; }
html body.vo139-page main :is(h1,h2,h3) { letter-spacing: -.035em; }
html body.vo139-page .vo139-section {
  padding-top: var(--vo139-section-space) !important;
  padding-bottom: var(--vo139-section-space) !important;
}
html body.vo139-page :is(.hm125-heading,.pbr81-heading,.cp111-section-heading,.hub114-split-heading,.info131-section-heading,.hm125-situation-head,.hm125-reading-head) h2,
html body.vo139-page :is(.hm125-faq-grid,.pbr81-faq-layout,.ocn70-faq-layout,.cp111-faq-layout,.hub114-faq-layout) > div:first-child h2,
html body.vo139-page .form-t {
  font-size: clamp(30px, 3.2vw, 40px) !important;
  font-weight: 650;
  line-height: 1.18;
  letter-spacing: -.035em;
  color: var(--vo139-ink);
}
html body.vo139-page .vo139-card,
html body.vo139-page .vo139-photo-card,
html body.vo139-page .vo139-tile,
html body.vo139-page .vo139-form-card {
  box-sizing: border-box;
  min-width: 0;
  border: 1px solid var(--vo139-line) !important;
  border-radius: var(--vo139-radius) !important;
  background: #fff !important;
  box-shadow: none !important;
}
html body.vo139-page .vo139-card { padding: var(--vo139-card-space) !important; }
html body.vo139-page .vo139-form-card { padding: 30px !important; }
html body.vo139-page .vo139-tile { padding: 24px !important; gap: 18px; }
html body.vo139-page .hub114-card-copy { padding: 24px; }
html body.vo139-page :is(.vo139-card,.vo139-photo-card,.vo139-tile) h3 {
  font-size: 23px !important;
  font-weight: 650;
  line-height: 1.3;
  color: var(--vo139-ink);
}
html body.vo139-page :is(.vo139-card,.vo139-tile) > p {
  font-size: 16px;
  line-height: 1.65;
  color: var(--vo139-muted);
}
html body.vo139-page :is(.vo139-tile,.hm125-reading-card,.hub114-card,.art71-related-card,.art115-related-card,.snn-card) {
  transition: border-color .16s ease, box-shadow .16s ease;
}
html body.vo139-page :is(.vo139-tile,.hm125-reading-card,.hub114-card,.art71-related-card,.art115-related-card,.snn-card):hover {
  border-color: #6b8874 !important;
  box-shadow: 0 5px 16px #173e2e08 !important;
}
/* All supplementary marks share a restrained line-icon tile. */
html body.vo139-page .vo139-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  box-sizing: border-box;
  padding: 0;
  border: 1px solid #d4ded1 !important;
  border-radius: 8px !important;
  background: var(--vo139-soft) !important;
  color: var(--vo139-green) !important;
  font-size: 20px;
  line-height: 1;
  box-shadow: none !important;
}
html body.vo139-page .vo139-icon > svg {
  display: block;
  width: 22px;
  height: 22px;
  stroke-width: 1.6;
}
/* Buttons use the same palette, corner and readable type. Form widths remain
   compact through form-feedback-v135; no rules here reveal hidden forms. */
html body.vo139-page :is(.vo139-button,.vo139-secondary) {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  gap: 12px;
  min-height: 48px;
  max-width: 100%;
  padding: 12px 20px;
  border: 1px solid var(--vo139-green) !important;
  border-radius: 8px !important;
  background: var(--vo139-green) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 650 !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
  white-space: normal;
  box-shadow: none !important;
  transform: none;
  transition: background-color .16s ease, border-color .16s ease;
}
html body.vo139-page .vo139-secondary {
  background: #fff !important;
  color: var(--vo139-ink) !important;
  border-color: #7a9080 !important;
}
html body.vo139-page .vo139-button:hover { background: var(--vo139-hover) !important; border-color: var(--vo139-hover) !important; }
html body.vo139-page .vo139-secondary:hover { background: var(--vo139-soft) !important; border-color: var(--vo139-green) !important; }
/* V143: prominent actions share one layout on product, article and information
   pages. Body links, breadcrumbs and section navigation retain their roles. */
html body.vo139-page .vo143-actions {
  display: flex;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
}
html body.vo139-page .vo143-actions > :is(.vo139-button,.vo139-secondary) {
  min-height: 54px !important;
  gap: 12px !important;
  padding: 12px 20px !important;
  align-self: auto !important;
}
/* The shared phone component replaced legacy phone classes. Restore spacing
   outside the component, including the estimate page's existing wrapper. */
html body.vo139-page .vo143-hero-copy > a.vo-phone--labelled,
html body.vo139-page .vo143-hero-contact {
  margin-top: 24px !important;
}
html body.vo139-page .vo139-button:disabled { background: #4e5f56 !important; border-color: #4e5f56 !important; cursor: not-allowed; }
html body.vo139-page :is(.js-contact-submit,#submitBtn):disabled { cursor: wait; }
html body.vo139-page :is(.hm125-hero,.pbr81-hero,.ocn70-hero,.cp111-hero,.hub114-hero) :is(.vo139-button,.vo139-secondary) { min-height: 54px; }
html body.vo139-page :is(.vo139-button,.vo139-secondary) > svg { width: 20px; height: 20px; flex-shrink: 0; stroke-width: 1.6; }
html body.vo139-page :is(.header-cta,.f84-cta,.vo-mobile-contact__cta) { min-height: 44px; }
/* Plain directional marks: no detached arrow boxes, including hover states.
   FAQ toggle signs and telephone circles retain their distinct meaning. */
html body.vo139-page .vo139-arrow,
html body.vo139-page :is(a,button):hover .vo139-arrow {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px;
  margin-block: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
  line-height: 1;
  pointer-events: none;
}
html body.vo139-page .vo139-arrow > svg { display: block; width: 20px; height: 20px; stroke-width: 1.6; }
html body.vo139-page .vo139-card--direct { background: var(--vo139-ink) !important; border-color: var(--vo139-ink) !important; }
html body.vo139-page .vo139-card--direct :is(h1,h2,h3,p,li,dt,dd,strong) { color: #f5f7f0 !important; }
html body.vo139-page .vo139-card--direct :is(a,button):focus-visible { outline-color: #f5f7f0 !important; }
html body.vo139-page .vo139-card--direct .vo139-icon { background: var(--vo139-soft) !important; color: var(--vo139-green) !important; }
html body.vo139-page .vo139-card--direct li::before { color: #dce8d2 !important; }
html body.vo139-page .vo139-button--light,
html body.vo139-page .vo139-card--direct .vo139-button {
  background: #f1f5eb !important;
  border-color: #f1f5eb !important;
  color: var(--vo139-ink) !important;
}
html body.vo139-page .vo139-button--light:hover,
html body.vo139-page .vo139-card--direct .vo139-button:hover { background: #dce8d2 !important; border-color: #dce8d2 !important; }
/* Homepage comparison: aligned rows and CTA, with deliberately compact copy. */
html body.vo139-page .hm125-sale-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: stretch; }
html body.vo139-page .hm125-sale-card { display: flex; flex-direction: column; grid-column: auto; background: #f8f9f5 !important; }
html body.vo139-page .hm125-sale-card.vo139-card--direct { background: var(--vo139-ink) !important; }
html body.vo139-page .hm125-sale-card h3 { min-height: 2.6em; margin: 18px 0 8px; font-size: 23px; line-height: 1.3; }
.vo139-sale-facts { display: grid; grid-template-rows: repeat(3,1fr); flex: 1 1 auto; margin: 0 0 20px; }
.vo139-sale-facts > div { display: grid; grid-template-columns: 82px minmax(0,1fr); gap: 14px; padding: 15px 0; border-top: 1px solid var(--vo139-line); align-content: start; }
.vo139-sale-facts dt { font-size: 14px; font-weight: 550; line-height: 1.6; color: var(--vo139-muted); }
.vo139-sale-facts dd { margin: 0; font-size: 15px; font-weight: 450; line-height: 1.6; color: var(--vo139-ink); }
.hm125-direct .vo139-sale-facts > div { border-top-color: #6b8979; }
.vo139-sale-actions { margin-top: auto; }
html body.vo139-page .vo139-sale-actions :is(.hm125-card-link,.hm125-button) { width: 100%; min-height: 48px; margin: 0; padding-block: 12px; font-size: 15px; }
html body.vo139-page .hm125-cost-note { gap: 20px; padding: 22px 24px; border: 1px solid var(--vo139-line); border-radius: var(--vo139-radius); margin-top: 24px; }
html body.vo139-page .hm125-cost-note h3 { font-size: 21px; margin-bottom: 6px; }
html body.vo139-page .hm125-cost-note p { font-size: 15px; line-height: 1.65; }
html body.vo139-page .hm125-cost-note > a { min-height: 48px !important; }
html body.vo139-page .vo139-comparison-intro { max-width: 44ch; padding-bottom: 4px; }
html body.vo139-page .vo139-comparison-intro .hm125-link { font-size: 14px; margin-top: 8px; }
html body.vo139-page .hm125-topic > .vo139-icon { display: inline-flex; }
html body.vo139-page .hm125-topic h3 { font-size: 21px; margin-bottom: 8px; }
html body.vo139-page .hm125-topic p { font-size: 15px; line-height: 1.65; }
/* Related cards and factual panels on specialised sale pages. */
html body.vo139-page :is(.vo94-offer-grid,.vo94-property-grid,.mh96-bank-grid,.mh96-situation-grid,.ih99-stage-grid,.ih99-owner-grid,.ih99-handover-grid) > :is(article,div),
html body.vo139-page :is(.art120-obstacle,.art121-route) {
  box-sizing: border-box;
  min-width: 0;
  border: 1px solid var(--vo139-line);
  border-radius: var(--vo139-radius);
  background: #fff;
  padding: var(--vo139-card-space);
  box-shadow: none;
}
/* V141: these templates previously joined panels into one framed group.
   Individual rounded cards need space and a complete border on every edge. */
html body.vo139-page.vo94-page .vo94-property-grid {
  gap: var(--vo139-card-gap);
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}
html body.vo139-page.vo94-page .vo94-property-grid > article {
  border: 1px solid var(--vo139-line);
}
html body.vo139-page.pbr81-page.pbr86-page .pbr81-compare-grid {
  gap: var(--vo139-card-gap);
  align-items: start;
}
html body.vo139-page.pbr81-page.pbr86-page .pbr81-sale-options {
  gap: var(--vo139-card-gap);
}
html body.vo139-page.pbr81-page.pbr86-page .pbr81-sale-option {
  flex: 0 0 auto;
}
html body.vo139-page .vo139-steps > li {
  border: 1px solid var(--vo139-line);
  border-radius: var(--vo139-radius);
  padding: var(--vo139-card-space);
  background: #fff;
}
/* FAQs use a consistent accessible toggle; long legal answers stay intact. */
html body.vo139-page .vo139-faq details { border: 0; border-bottom: 1px solid var(--vo139-line); border-radius: 0; background: transparent; }
html body.vo139-page .vo139-faq details:first-child { border-top: 1px solid var(--vo139-line); }
html body.vo139-page .vo139-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0 !important; font-size: 17px !important; line-height: 1.5; font-weight: 600; color: var(--vo139-ink); list-style: none; }
html body.vo139-page .vo139-faq summary::-webkit-details-marker { display: none; }
html body.vo139-page .vo139-faq summary::after { content: '+'; display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: var(--vo139-soft); color: var(--vo139-green); font-size: 22px; font-weight: 400; line-height: 1; }
html body.vo139-page .vo139-faq details[open] summary::after { content: '−'; }
html body.vo139-page .vo139-faq details > div { padding: 0 48px 22px 0; }
html body.vo139-page .vo139-table { border-color: var(--vo139-line); }
html body.vo139-page .vo139-table th { background: var(--vo139-soft); color: var(--vo139-ink); }
html body.vo139-page .vo139-table :is(th,td) { border-color: var(--vo139-line); padding: 15px 18px; line-height: 1.65; }
html body.vo139-page :is(.js-contact-form,.ocn-form-wrap) :is(.form-control,input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  border-radius: 8px !important;
  font-size: 16px !important;
}
html body.vo139-page :is(.js-contact-form,.ocn-form-wrap) :is(.form-control,select,textarea):focus-visible { outline: 2px solid var(--vo139-green); outline-offset: 2px; }
html body.vo139-page :is(a,button,summary,input,select,textarea):focus-visible { outline: 3px solid var(--vo139-green); outline-offset: 4px; }
html body.vo139-page :is(.vo139-button,.vo139-secondary):focus-visible { outline: 3px solid var(--vo139-green) !important; outline-offset: 4px !important; }
html body.vo139-page .vo139-card--direct :is(a,button):focus-visible { outline-color: #f1f5eb !important; }
html body.vo139-page .vykupy-form-success { background: var(--vo139-soft); border-color: var(--vo139-line); border-radius: var(--vo139-radius); }
html body.vo139-page .vykupy-form-success__timer { border-radius: 8px; border-color: var(--vo139-line); }
/* Consent is created in the browser: style its existing controls directly.
   Accept and reject keep equal size and prominence; consent logic is untouched. */
html body.vo139-page .cc_div {
  --cc-bg: #fff;
  --cc-text: #173e2e;
  --cc-btn-primary-bg: #174e35;
  --cc-btn-primary-hover-bg: #0c3c28;
  --cc-btn-primary-text: #fff;
  --cc-btn-secondary-bg: #edf1e8;
  --cc-btn-secondary-text: #173e2e;
  --cc-toggle-bg-on: #174e35;
  --cc-section-border: #c7d2c8;
}
html body.vo139-page #cm.cloud { border-color: var(--vo139-line); border-radius: var(--vo139-radius); }
html body.vo139-page #cm.cloud #c-bns .c-bn,
html body.vo139-page #s-cnt .c-bn { border-radius: 8px; min-height: 44px; font-family: Geist,system-ui,sans-serif; }
html body.vo139-page #cm.cloud :is(#c-p-bn,#c-t-bn) { background: var(--vo139-green); border-color: var(--vo139-green); color: #fff; }
html body.vo139-page #cm.cloud :is(#c-p-bn,#c-t-bn):hover { background: var(--vo139-hover); border-color: var(--vo139-hover); }
@media (max-width: 1199.98px) {
  :root { --vo139-card-space: 24px; --vo139-card-gap: 20px; }
  html body.vo139-page .hm125-sale-grid { gap: 18px; }
  .vo139-sale-facts > div { grid-template-columns: 70px minmax(0,1fr); gap: 10px; }
}
@media (max-width: 991.98px) {
  :root { --vo139-section-space: 56px; }
  html body.vo139-page .hm125-sale-grid { grid-template-columns: 1fr; gap: 18px; }
  html body.vo139-page .hm125-sale-card h3 { min-height: 0; margin-bottom: 18px; }
  .vo139-sale-facts > div { grid-template-columns: 100px minmax(0,1fr); gap: 20px; }
  .vo139-sale-facts { grid-template-rows: none; }
  html body.vo139-page .vo139-sale-actions :is(.hm125-card-link,.hm125-button) { width: auto; }
  html body.vo139-page .hm125-cost-note > a { margin-left: 60px; }
}
@media (max-width: 767.98px) {
  :root { --vo139-section-space: 48px; --vo139-card-space: 24px; --vo139-card-gap: 16px; }
  html body.vo139-page .vo139-form-card { padding: 24px 20px !important; }
  html body.vo139-page .vo139-tile { padding: 22px 20px !important; gap: 14px; }
  html body.vo139-page .vo139-tile .vo139-icon { flex-basis: 34px; width: 34px; height: 34px; }
  html body.vo139-page :is(.vo139-card,.vo139-photo-card,.vo139-tile) h3 { font-size: 22px !important; }
  html body.vo139-page .hm125-topic h3 { font-size: 19px !important; }
  html body.vo139-page .hm125-cost-note { padding: 22px 20px; }
  html body.vo139-page .hm125-cost-note > a { width: auto; margin: 18px 0 0; }
  html body.vo139-page .vo139-faq details > div { padding-right: 0; }
  html body.vo139-page .vo139-faq summary { gap: 14px; padding: 18px 0 !important; }
  html body.vo139-page .vo139-table :is(th,td) { padding: 12px 14px; }
  html body.vo139-page :is(.vo139-button,.vo139-secondary) { padding-inline: 18px; }
  html body.vo139-page .vo143-actions { flex-direction: column !important; align-items: stretch !important; }
  html body.vo139-page .vo143-actions > :is(.vo139-button,.vo139-secondary) { width: 100% !important; padding-inline: 18px !important; }
  html body.vo139-page .vo143-hero-copy > a.vo-phone--labelled,
  html body.vo139-page .vo143-hero-contact { margin-top: 20px !important; }
}
@media (max-width: 399.98px) {
  :root { --vo139-card-space: 22px; }
  html body.vo139-page .vo139-form-card { padding: 22px 16px !important; }
  html body.vo139-page .hm125-topic > .vo139-icon { display: none; }
  .vo139-sale-facts > div { grid-template-columns: 1fr; gap: 5px; padding: 14px 0; }
  .vo139-sale-facts dt { font-size: 13px; }
  html body.vo139-page :is(.vo139-button,.vo139-secondary) { padding-inline: 16px; }
  html body.vo139-page .vo143-actions > :is(.vo139-button,.vo139-secondary) { padding-inline: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html body.vo139-page :is(.vo139-card,.vo139-photo-card,.vo139-tile,.vo139-button,.vo139-secondary) { transition: none !important; }
}
@media print {
  html body.vo139-page .vo139-section { padding-top: 20px !important; padding-bottom: 20px !important; }
  html body.vo139-page :is(.vo139-card,.vo139-photo-card,.vo139-tile,.vo139-card--direct,.vo139-steps > li) { padding: 16px !important; background: #fff !important; border-color: #999 !important; border-radius: 0 !important; break-inside: avoid; box-shadow: none !important; }
  html body.vo139-page .vo139-card--direct :is(h1,h2,h3,p,li,dt,dd,strong) { color: #111 !important; }
  html body.vo139-page .vo139-arrow { display: none !important; }
}
