/* Inner pages: full-width backgrounds and the homepage's bounded content. */
html:root body.vc-unified-inner { --ip-gutter:32px; background:#fff !important; }
html:root body.vc-unified-inner .page { width:100% !important; max-width:none !important; margin:0 !important; border-radius:0 !important; box-shadow:none !important; }
html:root body.vc-unified-inner :is(.container,.vc-container,.seo-container),
html:root body.vc-unified-inner .page > header .header > .container,
html:root body.vc-unified-inner .stats {
 width:calc(100% - var(--ip-gutter) * 2) !important; max-width:1200px !important; margin-inline:auto !important; padding-inline:0 !important;
}
html:root body.vc-unified-inner .vc-footer { border-radius:0 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) main > :is(.vc-page-section,.vc-section,.seo-section) {
 padding:36px 0 !important; min-height:0 !important; border-top:1px solid #e3edf1; background:#fff !important;
}
html:root body.vc-unified-inner:not(.vc-reference-about) main > :is(.vc-page-section,.vc-section,.seo-section):nth-of-type(even) { background:linear-gradient(115deg,#f6fbff,#edf7fc) !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) main :is(h1,h2,h3,p) { overflow-wrap:break-word; }
html:root body.vc-unified-inner:not(.vc-reference-about) main h1 { font-size:40px !important; line-height:1.14 !important; letter-spacing:-.8px; }
html:root body.vc-unified-inner:not(.vc-reference-about) main h2 { font-size:32px !important; line-height:1.25 !important; text-align:left !important; margin:0 0 20px !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) main h3 { font-size:18px !important; line-height:1.35 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-grid-2,.vc-grid-3,.vc-grid-4,.vc-card-grid,.seo-grid) { gap:20px !important; align-items:stretch; }
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-card,.vc-info-card,.vc-case-card,.vc-article-card,.seo-card,.seo-price) { min-width:0; min-height:0 !important; height:auto !important; border-radius:14px !important; box-shadow:0 4px 16px #1f506b08 !important; }

/* Hero copy and photography keep their own proportions. */
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero { padding:32px 0 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:40px; align-items:center; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__content { min-width:0; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__media {
 display:flex; flex-direction:column; width:100%; max-width:540px; min-height:0 !important; height:auto !important; aspect-ratio:auto !important;
 margin-inline:auto; border-radius:16px; overflow:hidden;
}
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__media img { width:100% !important; height:auto !important; max-height:340px !important; min-height:0 !important; aspect-ratio:auto !important; object-fit:contain !important; object-position:center; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__fact { position:static !important; max-width:none !important; width:100%; margin:0; padding:14px 18px; border-radius:0; font-size:16px !important; line-height:1.45; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__actions { display:flex; flex-wrap:wrap; gap:12px; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__text { font-size:18px !important; line-height:1.5 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero { position:relative; padding:32px 0 !important; min-height:0 !important; overflow:hidden; }
html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero > .container { display:flex; align-items:center; min-height:440px !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero .hero__content { width:58% !important; max-width:660px; padding:0 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero .hero__lead { font-weight:400 !important; line-height:1.5 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero .hero__visual {
 inset:0 max(0px,calc((100% - 1280px)/2)) 0 auto !important; width:min(46%,620px) !important; height:100% !important;
 background-size:contain !important; background-repeat:no-repeat; background-position:right center;
}
html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero .hero__visual::before { background:linear-gradient(90deg,#f3faff,transparent 28%) !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero .breadcrumbs { flex-wrap:wrap; font-weight:400; line-height:1.5; }
html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero .hero__buttons { display:flex; flex-wrap:wrap; gap:12px; }
html:root body.vc-unified-inner:not(.vc-reference-about) .stats { gap:16px !important; border-radius:0; box-shadow:none; }

/* Service and project cards: no artificial paragraph height or extra inset. */
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-inner-main .vc-card-grid .vc-service--link {
 display:flex !important; flex-direction:column; padding:18px !important; gap:12px; overflow:hidden;
}
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-inner-main .vc-card-grid .vc-service--link > :is(h3,p,.vc-service__price,.vc-btn) { min-height:0 !important; margin:0 !important; width:100% !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-inner-main .vc-card-grid .vc-service--link p { flex:1; line-height:1.5 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-inner-main .vc-card-grid .vc-service--link .vc-service__price { padding:5px 8px; font-size:16px; line-height:1.4; border-radius:6px; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-inner-main .vc-card-grid .vc-service--link img {
 width:100% !important; height:210px !important; min-height:0 !important; max-height:none !important; aspect-ratio:auto !important;
 object-fit:contain !important; object-position:center; margin:0 !important; border-radius:10px;
}
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-case-card,.vc-article-card) { display:flex; flex-direction:column; padding:18px !important; gap:12px; }
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-case-card,.vc-article-card) > :is(h3,p,.vc-case-meta) { margin:0 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-case-card,.vc-article-card) > a.vc-btn { margin-top:auto !important; width:100%; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-case-card > img { width:100%; height:210px !important; aspect-ratio:auto !important; object-fit:contain !important; object-position:center; margin:0 !important; border-radius:10px; background:#f5fafb; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-case-meta { gap:6px; font-size:16px; line-height:1.45; }
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-info-card,.seo-card) { padding:18px !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-info-card__icon { margin-bottom:12px; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-before-after { gap:20px; align-items:start; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-before-after figure { min-width:0; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-before-after img { width:100%; height:340px !important; aspect-ratio:auto !important; object-fit:contain !important; object-position:center; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-article-body { max-width:860px; margin-inline:auto; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-article-body h2 { margin-top:28px !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-table-wrap { min-width:0; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }

/* Detailed landing pages use the same spacing and readable text. */
html:root body.vc-unified-inner:not(.vc-reference-about) .seo-split { grid-template-columns:minmax(0,1fr) 330px; gap:36px; align-items:start; }
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.seo-text,.seo-price) { min-width:0; }
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.seo-card,.seo-price,.seo-text) :is(p,li) { font-weight:400 !important; font-size:16px !important; line-height:1.6 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .seo-card p { margin:0; }
html:root body.vc-unified-inner:not(.vc-reference-about) .seo-price { padding:22px; border-color:#dfeaf0; background:linear-gradient(125deg,#fff,#f0f9ff); }
html:root body.vc-unified-inner:not(.vc-reference-about) .seo-related { justify-content:flex-start; gap:12px; }
html:root body.vc-unified-inner:not(.vc-reference-about) .seo-related a { max-width:100%; white-space:normal; overflow-wrap:break-word; font-size:16px; font-weight:500; border-radius:10px; }

/* Forms retain every field, with one surface and aligned controls. */
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-section#contacts > .vc-container > .vc-contact-card { padding:0 !important; border:0 !important; box-shadow:none !important; background:transparent !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px !important; width:100%; min-width:0; max-width:920px; margin:0; padding:22px !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide label:not(.vc-form__check) { display:grid; align-content:start; gap:8px; min-width:0; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) { min-width:0; box-sizing:border-box; width:100%; max-width:100%; font-size:16px !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide :is(input:not([type=checkbox]):not([type=hidden]),select) { height:50px; min-height:50px; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide textarea { min-height:100px; height:100px; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide label:last-of-type { grid-column:auto; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide .vc-form__check { display:grid; grid-template-columns:18px minmax(0,1fr); grid-column:1 / -1 !important; align-items:start; gap:9px; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide .vc-form__check > span { font-size:14px !important; line-height:1.5; min-width:0; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide button[type=submit] { grid-column:1 / -1; max-width:320px; width:100%; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-contacts-page .vc-form--wide { max-width:920px; }
html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts > .vc-container { padding:0 !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts :is(h2,.vc-lead) { text-align:left !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contacts__grid { grid-template-columns:minmax(0,1.1fr) minmax(280px,1fr) 190px !important; padding:24px !important; gap:24px !important; align-items:center; }
html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contacts__grid > * { min-width:0; }
html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contact-list { gap:16px 20px !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contact-list a { overflow-wrap:anywhere; }
html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contacts__media { grid-column:auto !important; min-height:0; }
html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contacts__media img { width:100% !important; height:auto !important; max-height:280px !important; object-fit:contain !important; }

@media(max-width:1100px) {
 html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contacts__grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contacts__media { grid-column:1 / -1 !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contacts__media img { width:auto !important; max-width:100%; max-height:180px !important; margin-inline:auto; }
}
@media(max-width:900px) {
 html:root body.vc-unified-inner { --ip-gutter:20px; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__grid { grid-template-columns:1fr; gap:24px; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__media { max-width:480px; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .seo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 html:root body.vc-unified-inner:not(.vc-reference-about) .seo-split { grid-template-columns:1fr; gap:24px; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .seo-price { max-width:600px; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero > .container { min-height:0 !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero .hero__content { width:100% !important; max-width:none; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero .hero__visual { position:relative !important; inset:auto !important; width:calc(100% - var(--ip-gutter) * 2) !important; max-width:600px; margin:24px auto 0; height:auto !important; aspect-ratio:3 / 2; background-position:center; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero .hero__visual::before { display:none; }
 html:root body.vc-unified-inner:not(.vc-reference-about) main h1 { font-size:36px !important; }
}
@media(max-width:700px) {
 html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-form--wide,.vc-contacts-page .vc-form--wide) { grid-template-columns:1fr !important; max-width:100%; }
 html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contacts__grid { grid-template-columns:1fr !important; padding:18px !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) section.vc-contacts#contacts .vc-contact-list { grid-template-columns:1fr !important; }
}
@media(max-width:600px) {
 html:root body.vc-unified-inner { --ip-gutter:16px; }
 html:root body.vc-unified-inner:not(.vc-reference-about) main > :is(.vc-page-section,.vc-section,.seo-section),
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero,
 html:root body.vc-unified-inner:not(.vc-reference-about) .service-hero { padding:28px 0 !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) main h1 { font-size:30px !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) main h2 { font-size:28px !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__actions { display:grid; grid-template-columns:1fr; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__media { max-width:400px; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-page-hero__media img { max-height:260px !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-card-grid,.seo-grid) { grid-template-columns:1fr !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-inner-main .vc-card-grid .vc-service--link { padding:16px !important; gap:10px; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-inner-main .vc-card-grid .vc-service--link img,
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-case-card > img { height:185px !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-before-after { grid-template-columns:1fr; gap:16px; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-before-after img { height:280px !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide { padding:18px !important; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-form--wide button[type=submit] { max-width:none; }
}

/* Compact process cards: six readable stages, with full-frame thematic photos. */
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-grid-3 {
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:18px !important;
  align-items:stretch !important;
}
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps h2 { margin-bottom:24px !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) min(38%,144px);
  grid-template-rows:auto 1fr;
  gap:10px 16px !important;
  padding:18px !important;
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  border:1px solid #dfeaf0 !important;
  border-radius:16px !important;
  background:linear-gradient(145deg,#fff 65%,#f5fafb) !important;
  box-shadow:0 5px 18px #163f4b06 !important;
  align-content:start;
}
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .hr-step-heading {
  grid-column:1;
  grid-row:1;
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step__number {
  position:static !important;
  display:grid !important;
  place-items:center;
  width:32px !important;
  height:32px !important;
  min-width:32px;
  flex:0 0 32px;
  padding:0 !important;
  margin:0 !important;
  border:1px solid #d3ecf7 !important;
  border-radius:10px !important;
  background:linear-gradient(135deg,#e0f4ff,#f1fbff) !important;
  color:#087bab !important;
  font-size:14px !important;
  font-weight:700;
  line-height:1 !important;
}
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step h3 {
  margin:0 !important;
  padding:0 !important;
  min-width:0 !important;
  min-height:0 !important;
  width:auto !important;
  font-size:18px !important;
  line-height:1.25 !important;
  letter-spacing:-.2px;
  color:#153742 !important;
  text-align:left !important;
}
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step h3::before { content:none !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step__toggle { display:none !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step__details { display:contents !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step p {
  grid-column:1;
  grid-row:2;
  margin:0 !important;
  padding:0 !important;
  flex:none !important;
  min-width:0;
  font-size:16px !important;
  line-height:1.45 !important;
  color:#607580 !important;
}
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step img {
  grid-column:2;
  grid-row:1 / 3;
  align-self:center;
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:4 / 3 !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 !important;
  border-radius:10px !important;
  order:0 !important;
}
@media(max-width:1050px) {
  html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media(max-width:680px) {
  html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-grid-3 { grid-template-columns:1fr !important; gap:12px !important; }
  html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step {
    grid-template-columns:minmax(0,1fr) clamp(96px,32%,160px);
    padding:16px !important;
    gap:8px 12px !important;
  }
  html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps h2 { margin-bottom:20px !important; }
}
@media(max-width:360px) {
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .hr-step-heading { grid-column:1 / -1; }
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-steps .vc-step img { grid-row:2; }
}
/* A full-width list uses both halves of the service panel on desktop. */
html:root body.vc-unified-inner:not(.vc-reference-about) .vc-service-detail .vc-check-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 28px; }
@media(max-width:900px) {
 html:root body.vc-unified-inner:not(.vc-reference-about) .vc-service-detail .vc-check-list { grid-template-columns:1fr; }
}
/* Use one gap between a section title, its introduction and the cards. */
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-section-head,.section-head) { display:block !important; margin:0 0 24px !important; gap:0 !important; text-align:left !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-section-head,.section-head) h2 { margin:0 0 12px !important; }
html:root body.vc-unified-inner:not(.vc-reference-about) :is(.vc-section-head,.section-head) > p { margin:0 !important; }
