/* OTDELKA78 V1.16.27.32 — core-page visual and enquiry improvements.
   Loaded last, only on six pages carrying the v32-visual body class. */

.v32-visual { --section: clamp(56px, 6vw, 88px); }
.v32-visual .site-header .header-inner {
  width: min(calc(100% - (var(--pad) * 2)), var(--max));
  margin-inline: auto;
}
.v32-visual .site-header .brand-sub { display: none; }
.v32-visual .section-title {
  font-size: clamp(30px, 3.7vw, 50px);
  line-height: 1.12;
  letter-spacing: -.035em;
}
.v32-visual .section-lead { line-height: 1.6; }
/* Content, especially enquiry forms, is available without a reveal animation. */
.v32-visual main .reveal { opacity: 1; transform: none; transition: none; }

.v32-visual .service-scope,
.v32-visual .service-formats,
.v32-visual .service-cost,
.v32-visual .service-faq,
.v32-visual .od78-smeta-brief,
.v32-visual .about-identity-section,
.v32-visual .about-principles,
.v32-visual .about-proof,
.v32-visual .about-boundaries,
.v32-visual .about-ecosystem,
.v32-visual .contacts-direct,
.v32-visual .contacts-brief,
.v32-visual .contacts-routing { padding-block: var(--section); }
.v32-visual .service-proof-strip,
.v32-visual .service-related-note { padding-block: 44px; }

/* Strengthen small text on the light company sections. */
.v32-visual.about-page .about-identity-section .eyebrow,
.v32-visual.about-page .about-proof .eyebrow,
.v32-visual.about-page .about-ecosystem > .shell > .eyebrow { color: #79562e; }
.v32-visual.about-page .about-intro-copy,
.v32-visual.about-page .about-object-row p,
.v32-visual.about-page .about-proof-head .section-lead { color: #585b54; }
.v32-visual.about-page .about-sheet-row i { color: #57594f; letter-spacing: .035em; }
.v32-visual.about-page .about-sheet-head,
.v32-visual.about-page .about-sheet-row > span,
.v32-visual.about-page .about-sheet-foot { color: #79562e; }
.v32-visual .estimate-copy > p:not(.eyebrow) { color: #585b54; }
.v32-visual .estimate-section .eyebrow { color: #79562e; }
.v32-visual .estimate-section .estimate-copy { position: static; }
.v32-visual .estimate-section .section-title { max-width: 16ch; }

/* Short first step. Closed optional fields remain part of the original form. */
.v32-visual .client-form { min-width: 0; padding: 28px; }
.v32-visual .client-form-help { margin: 0 0 20px; color: #55584f; font-size: 14px; line-height: 1.6; }
.v32-visual .form-primary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.v32-visual .form-primary .field { grid-column: auto; min-width: 0; }
.v32-visual .form-primary .price-type-fieldset { grid-column: 1 / -1; margin: 0; min-width: 0; }
.v32-visual .price-type-fieldset legend { font-size: 13px; margin-bottom: 10px; }
.v32-visual .form-primary .price-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.v32-visual .form-primary .price-type-wide { grid-column: auto; }
.v32-visual .form-primary .price-type-choice span { min-height: 46px; padding: 10px; border-radius: 12px; font-size: 13px; }
.v32-visual .form-primary .price-type-choice span::before { flex: 0 0 16px; }
.v32-visual .form-primary .price-type-fieldset + .field { grid-column: 1 / -1; }
.v32-visual .form-extra { min-width: 0; margin-top: 18px; border-block: 1px solid #d6d1c5; }
.v32-visual .form-extra > summary {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px;
  min-height: 54px; padding: 14px 26px 14px 0;
  position: relative; color: #34382f; font-size: 14px; font-weight: 700;
  cursor: pointer; list-style: none;
}
.v32-visual .form-extra > summary::-webkit-details-marker { display: none; }
.v32-visual .form-extra > summary::after { content: "+"; position: absolute; right: 2px; top: 50%; transform: translateY(-50%); font-size: 24px; font-weight: 400; }
.v32-visual .form-extra[open] > summary::after { content: "−"; }
.v32-visual .form-extra > summary small { color: #64685e; font-size: 12px; font-weight: 500; }
.v32-visual .form-extra > .form-grid { min-width: 0; padding-block: 5px 20px; }
.v32-visual .form-extra .field { min-width: 0; }
.v32-visual .form-extra .file-drop { padding: 14px; }
.v32-visual .form-extra .file-ui { min-height: 58px; padding: 10px; gap: 10px; }
.v32-visual .form-extra .file-ui-text { overflow-wrap: anywhere; }
.v32-visual .form-extra .field textarea { min-height: 100px; }
.v32-visual .client-form .consent { font-size: 13px; color: #55594f; }
.v32-visual .client-form .form-footer { margin-top: 18px; gap: 10px; }
.v32-visual .client-form .form-footer .button { width: 100%; }
.v32-visual .client-form .form-status:empty { display: none; }

.v32-visual.home-page .hero-price-note { max-width: 660px; margin: 12px 0 0; color: #d2ccc2; font-size: 12px; line-height: 1.55; }
.v32-visual.home-page .hero-price-note a,
.v32-visual.home-page .hero-points a { text-decoration: underline; text-underline-offset: 3px; }
.v32-visual.home-page .hero-project { padding: 0; border: 1px solid rgba(246,243,236,.24); border-radius: 18px; overflow: hidden; background: #181b17; }
.v32-visual.home-page .hero-project-photo { display: block; }
.v32-visual.home-page .hero-project-photo img { width: 100%; height: 220px; object-fit: cover; object-position: 50% 66%; }
.v32-visual.home-page .hero-project-copy { padding: 20px; }
.v32-visual.home-page .hero-project-label { display: block; margin-bottom: 8px; color: #caa66f; font-size: 11px; line-height: 1.5; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.v32-visual.home-page .hero-project strong { margin-bottom: 8px; font-size: 24px; }
.v32-visual.home-page .hero-project p { color: #d0cbc1; font-size: 14px; }
.v32-visual.home-page .hero-project-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 7px; color: #d5b47e; font-size: 13px; font-weight: 700; }
.v32-visual.home-page .archive-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 32px; }
.v32-visual.home-page .archive-project { min-width: 0; padding: 20px; }
.v32-visual.home-page .archive-project-head { display: block; margin-bottom: 16px; }
.v32-visual.home-page .archive-project-title { grid-template-columns: 26px minmax(0, 1fr); gap: 10px; }
.v32-visual.home-page .archive-project-title h3 { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.14; }
.v32-visual.home-page .archive-project-kicker { font-size: 10px; line-height: 1.55; }
.v32-visual.home-page .archive-project-link { display: inline-flex; align-items: center; min-height: 44px; margin: 8px 0 0 36px; white-space: normal; }
.v32-visual.home-page .archive-project-gallery {
  height: 360px; min-height: 0; grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: minmax(0, 240px) minmax(0, 108px); gap: 12px;
}
.v32-visual.home-page .archive-project-gallery figure { min-height: 0; min-width: 0; border-radius: 14px; }
.v32-visual.home-page .archive-project-gallery .archive-project-main { grid-column: 1 / -1; grid-row: 1; min-height: 0; }
.v32-visual.home-page .archive-project-gallery img { height: 100%; width: 100%; object-fit: cover; }
.v32-visual.home-page .archive-project-gallery--pragma .archive-project-main img { object-position: 50% 66%; }
.v32-visual.home-page .archive-project-gallery .archive-tag { font-size: 9px; line-height: 1.4; letter-spacing: .04em; padding: 5px 8px; }
.v32-visual.home-page .archive-project-gallery figcaption { left: 8px; right: 8px; bottom: 8px; }
.v32-visual.home-page .cost-factors { gap: 10px; }
.v32-visual.home-page .cost-factor { min-height: 104px; padding: 18px; }
.v32-visual.home-page .cost-factor strong { margin-top: 16px; }
.v32-visual.home-page .priority-service-grid { margin-top: 30px; }
.v32-visual.home-page .priority-service-card { min-height: 0; padding: 22px; }
.v32-visual.home-page .ecosystem-section { padding-block: 56px; }

@media (min-width: 761px) {
  .v32-visual .service-hero h1,
  .v32-visual .about-hero-copy h1,
  .v32-visual .contacts-copy h1,
  .v32-visual .price-hero-copy h1 { font-size: clamp(46px, 4.9vw, 70px); line-height: 1.05; letter-spacing: -.04em; }
  .v32-visual .about-hero-copy h1 small,
  .v32-visual .price-hero-copy h1 small { font-size: .58em; line-height: 1.2; }
  .v32-visual .service-hero-content { padding-top: 118px; padding-bottom: 48px; }
  .v32-visual .service-hero { min-height: 0; }
  .v32-visual .service-hero-grid { grid-template-columns: minmax(0, 1.7fr) minmax(240px, .7fr); gap: 44px; }
  .v32-visual .service-hero-copy { font-size: 19px; line-height: 1.6; }
  .v32-visual .scope-grid,
  .v32-visual .format-grid { margin-top: 32px; }
  .v32-visual .scope-card,
  .v32-visual .format-card { min-height: 0; padding: 24px; }
  .v32-visual .scope-card h3,
  .v32-visual .format-card h3 { margin-top: 20px; }
  .v32-visual .format-card a { padding-top: 18px; }
  .v32-visual .service-case-grid { gap: 16px; margin-top: 32px; }
  .v32-visual .service-case-card figure { aspect-ratio: 16 / 10; }
  .v32-visual .service-case-body { padding: 20px; }
  .v32-visual .service-case-body h3 { font-size: clamp(22px, 2vw, 28px); line-height: 1.15; }
  .v32-visual .service-case-body p { font-size: 14px; line-height: 1.6; }
  .v32-visual .service-case-meta { line-height: 1.55; }
  .v32-visual .estimate-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 48px; }
  .v32-visual .estimate-section { padding-block: 56px; scroll-margin-top: 12px; }
  .v32-visual .estimate-copy .section-title { font-size: clamp(32px, 3.4vw, 46px); }
  .v32-visual .about-hero,
  .v32-visual .price-hero,
  .v32-visual .contacts-hero { padding-bottom: 56px; }
  .v32-visual .about-hero-grid,
  .v32-visual .contacts-hero-grid { gap: 44px; }
  .v32-visual .about-proof-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: none; gap: 16px; margin-top: 32px; }
  .v32-visual .about-proof-grid figure { grid-row: auto; min-height: 0; height: 360px; }
  .v32-visual .about-proof-grid figcaption { left: 20px; right: 20px; bottom: 20px; }
  .v32-visual .about-proof-grid figcaption strong { font-size: 24px; }
  .v32-visual.home-page .hero { min-height: 620px; }
  .v32-visual.home-page .hero-content { padding-top: 124px; padding-bottom: 50px; }
  .v32-visual.home-page .hero-grid { grid-template-columns: minmax(0, 1.65fr) minmax(280px, .75fr); align-items: center; gap: 44px; }
  .v32-visual.home-page .hero h1 { font-size: clamp(46px, 5.2vw, 74px); line-height: 1.03; }
  .v32-visual.home-page .hero-side { width: 100%; }
  .v32-visual.home-page .direction-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: none; margin-top: 32px; }
  .v32-visual.home-page .direction-card,
  .v32-visual.home-page .direction-card:first-child { grid-row: auto; min-height: 390px; }
  .v32-visual.home-page .direction-copy { inset: auto 22px 22px; }
  .v32-visual.home-page .direction-copy h3 { font-size: 28px; }
}
@media (min-width: 1101px) {
  .v32-visual .service-case-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .v32-visual .service-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .v32-visual .estimate-grid { grid-template-columns: 1fr; gap: 28px; }
  .v32-visual.home-page .hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .v32-visual.home-page .hero-side { display: none; }
  .v32-visual.home-page .direction-card,
  .v32-visual.home-page .direction-card:first-child { min-height: 470px; }
  .v32-visual.home-page .direction-copy { inset: auto 18px 18px; }
  .v32-visual.home-page .direction-copy h3 { font-size: 24px; }
  .v32-visual .about-proof-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .v32-visual { --section: 48px; }
  .v32-visual .site-header .header-inner { width: calc(100% - 32px); }
  .v32-visual .section-title { font-size: clamp(29px, 7.9vw, 36px); line-height: 1.13; }
  .v32-visual .estimate-section { padding-block: 36px; scroll-margin-top: 8px; }
  .v32-visual .estimate-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .v32-visual .estimate-copy .section-title { max-width: none; }
  .v32-visual .estimate-copy p { margin-top: 14px; font-size: 15px; }
  .v32-visual .client-form { padding: 20px 16px; border-radius: 16px; }
  .v32-visual .client-form-help { font-size: 13px; margin-bottom: 16px; }
  .v32-visual .form-primary { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .v32-visual .form-extra > .form-grid { grid-template-columns: minmax(0, 1fr); }
  .v32-visual .form-extra > summary { font-size: 13px; }
  .v32-visual .form-primary .price-type-grid { grid-template-columns: minmax(0, 1fr); }
  .v32-visual .form-primary .price-type-choice span { justify-content: flex-start; }
  .v32-visual.home-page .hero { min-height: 0; }
  .v32-visual.home-page .hero-content { padding-top: 98px; padding-bottom: 34px; }
  .v32-visual.home-page .hero-copy { font-size: 15px; line-height: 1.55; }
  .v32-visual.home-page .hero-city { font-size: clamp(27px, 7.8vw, 34px); white-space: normal; }
  .v32-visual.home-page .hero-project { display: none; }
  .v32-visual.home-page .hero-price-note { font-size: 11px; }
  .v32-visual.home-page .direction-grid { margin-top: 28px; }
  .v32-visual.home-page .direction-card,
  .v32-visual.home-page .direction-card:first-child,
  .v32-visual.home-page .direction-card:not(:first-child) { min-height: 310px; }
  .v32-visual.home-page .direction-copy p { font-size: 13px; }
  .v32-visual.home-page .archive-head { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .v32-visual.home-page .archive-status { justify-self: stretch; max-width: none; }
  .v32-visual.home-page .archive-projects { grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 26px; }
  .v32-visual.home-page .archive-project { padding: 16px; }
  .v32-visual.home-page .archive-project-title h3 { font-size: 26px; }
  .v32-visual.home-page .archive-project-gallery { height: 324px; grid-template-rows: minmax(0, 210px) minmax(0, 102px); }
  .v32-visual.home-page .archive-project-gallery .archive-project-main { grid-column: 1 / -1; grid-row: 1; min-height: 0; }
  .v32-visual.home-page .archive-project-gallery figure:not(.archive-project-main) { min-height: 0; }
}
