/* Business information pages share the utility-page rhythm and neutral surfaces. */
.ub-page .co-page { --dp-accent:#37566d; --dp-soft:#f3f5f7; --dp-line:#dde4e9; }
.ub-page .co-page .co-intro,
.ub-page .cp-page.co-page .cp-hero { padding:32px 0; background:#fff; }
.ub-page .co-page .co-intro h1,
.ub-page .cp-page.co-page .cp-hero h1 { max-width:850px; margin:0 0 18px; font-size:clamp(30px,3.4vw,44px); line-height:1.15; text-align:left; }
.ub-page .co-page .co-lead,
.ub-page .cp-page.co-page .cp-lead { max-width:760px; margin:0; font-size:17px; line-height:1.65; text-align:left; }
.ub-page .co-page .co-eyebrow { color:#586975; letter-spacing:.04em; }
.ub-page .co-page h2:not(:where(.production-h3)) { text-align:left; font-size:clamp(26px,2.5vw,30px); line-height:1.25; }
.ub-page .co-page a:focus-visible { outline:2px solid #37566d; outline-offset:4px; }

/* The office, map and callback share one alignment and a quiet visual hierarchy. */
.ub-page .co-contact-layout { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); border-radius:14px; background:#f3f5f7; }
.ub-page .co-contact-details { padding:30px; }
.ub-page .co-office-address { gap:20px; }
.ub-page .co-page .co-office-title { font-size:26px; }
.ub-page .co-page .co-office-phone { font-size:25px; }
.ub-page .co-office-phone:hover { color:#37566d; }
.ub-page .co-contact-map .cc-embed-map { display:flex; flex:1; min-height:300px; }
.ub-page .co-contact-map .cc-external-placeholder { width:100%; min-height:300px; padding:28px; background:#f7f9fa; }
.ub-page .co-contact-map .co-map-frame { height:320px; min-height:300px; }
.ub-page .co-page .co-contact-callback { padding:0 0 48px; }
.ub-page .co-contact-callback .fr-callback-panel { padding:28px 30px; border-radius:14px; background:#f3f5f7; box-shadow:none; }
.ub-page .co-contact-callback .fr-callback-copy h2:not(:where(.production-h3)) { max-width:none; font-size:28px; }
.ub-page .co-contact-callback .fr-callback-copy p { max-width:460px; font-size:16px; }

/* Keep all original warranty terms; replace the oversized carousel with documents. */
.ub-page .co-page .co-warranty-grid { gap:16px; margin-top:28px; }
.ub-page .co-page .co-warranty-card { padding:24px; border-radius:14px; background:#f3f5f7; }
.ub-page .co-page .co-warranty-card.co-warranty-installation { background:#f0f2f4; }
.ub-page .co-page .co-warranty-card .count { margin-bottom:20px; color:#35383d; font-size:44px; letter-spacing:-.025em; }
.ub-page .co-page .co-warranty-card .co-eyebrow { margin-bottom:16px; }
.ub-page .co-page .co-warranty-card .co-warranty-details { font-size:15px; }
.ub-page .co-page section.co-certificates { padding:20px 0 36px; }
.ub-page .co-certificates h2:not(:where(.production-h3)) { margin:0 0 24px; }
.ub-page .ub-document-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px; }
.ub-page .ub-document { display:flex; flex-direction:column; align-items:stretch; min-width:0; padding:14px; border:1px solid #dde4e9; border-radius:14px; background:#f3f5f7; color:#243441; text-decoration:none; }
.ub-page .ub-document img { display:block; width:100%; height:auto; aspect-ratio:268/369; object-fit:contain; margin:0 0 16px; background:#fff; }
.ub-page .ub-document :is(h3,h2:where(.production-h3)) { margin:0 0 8px; font-size:17px; line-height:1.35; text-align:left; }
.ub-page .ub-document-caption { margin-top:auto; color:#37566d; font-size:12px; line-height:1.5; }
.ub-page .ub-document:hover { border-color:#8ca1b1; }
.ub-page .co-page .co-care-section { padding:0 0 48px; }
.ub-page .co-page .co-care-layout { grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); align-items:start; gap:40px; padding:28px 30px; border:1px solid #dde4e9; border-radius:14px; background:#f3f5f7; }
.ub-page .co-care-rules li { padding:14px 0 14px 19px; font-size:15px; line-height:1.6; }
.ub-page .co-care-rules li::before { background:#37566d; }

/* A compact partnership offer: introduction, audiences, then one contact area. */
.ub-page .cp-page.co-page .cp-hero-grid { display:block; }
.ub-page .cp-page.co-page .cp-audiences { padding:12px 0 28px; }
.ub-page .cp-page.co-page .cp-audience-grid { gap:18px; }
.ub-page .cp-page.co-page .cp-audience-card { padding:24px; border-radius:14px; background:#f3f5f7; }
.ub-page .cp-page.co-page .cp-role-heading { align-items:start; min-height:54px; gap:12px; margin-bottom:18px; }
.ub-page .cp-page.co-page .cp-audience-card :is(h3,h2:where(.production-h3)) { padding-top:2px; font-size:21px; }
.ub-page .cp-page.co-page .cp-role-icon { flex-basis:36px; width:36px; height:36px; border-radius:9px; background:#e7eef3; }
.ub-page .cp-page.co-page .ub-related-work { margin-top:18px; color:#37566d; }
.ub-page .cp-page.co-page .cp-start { padding:0 0 48px; }
.ub-page .cp-page.co-page .cp-start-panel { padding:28px 30px; gap:36px; border-radius:14px; background:#f3f5f7; }
.ub-page .cp-page.co-page .cp-start-copy h2:not(:where(.production-h3)) { font-size:28px; }

/* Vacancies use the same content-led introduction; all roles remain visible. */
.ub-page .co-page .co-vacancy-layout { display:block; }
.ub-page .co-page .co-vacancy-copy { padding:0; }
.ub-page .co-page .co-vacancies-section { padding:12px 0 28px; }
.ub-page .co-vacancies-lead { max-width:760px; margin:0 0 24px; font-size:16px; }
.ub-page .co-vacancies-grid { gap:14px; }
.ub-page .co-page .co-vacancies-grid > li { grid-template-columns:44px minmax(0,1fr) auto; gap:22px; padding:24px; border-radius:14px; background:#f3f5f7; }
.ub-page .co-page .co-job-symbol { width:44px; height:44px; border-radius:10px; background:#e7eef3; color:#37566d; }
.ub-page .co-page .co-vacancies-grid :is(h3,h2:where(.production-h3)) { margin:0 0 10px; font-size:22px; }
.ub-page .co-page .co-job-description { max-width:720px; font-size:15px; line-height:1.6; }
.ub-page .co-page .co-job-apply { gap:12px; padding:10px 0 10px 16px; color:#37566d; text-decoration:underline; text-underline-offset:5px; }
.ub-page .co-page .co-job-apply span:last-child { display:inline; flex:0 0 auto; width:auto; height:auto; border:0; border-radius:0; font-size:19px; background:none; }
.ub-page .co-page .co-vacancy-response { padding:0 0 48px; }
.ub-page .co-page .co-vacancy-response-panel { padding:28px 30px; gap:36px; border-radius:14px; background:#f3f5f7; border-color:#dde4e9; }
.ub-page .co-page .co-response-copy h2:not(:where(.production-h3)) { font-size:28px; }
.ub-page .co-page .co-vacancy-messengers a { border-color:#d6e0e9; }
.ub-page .co-page .co-vacancy-messengers a:hover { border-color:#8ca1b1; background:#fff; }

@media(max-width:991px) {
  .ub-page .co-page .co-warranty-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ub-page .ub-document-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
  .ub-page .co-page .co-care-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
  .ub-page .co-page .co-contact-layout { grid-template-columns:minmax(0,1fr); }
  .ub-page .cp-page.co-page .cp-start-panel,
  .ub-page .co-page .co-vacancy-response-panel { grid-template-columns:minmax(0,1fr); gap:24px; }
  .ub-page .cp-page.co-page .cp-role-heading { min-height:0; margin-bottom:0; }
  .ub-page .co-page .co-vacancies-grid > li { gap:18px; }
}
@media(max-width:767px) {
  .ub-page .co-page .co-intro,
  .ub-page .cp-page.co-page .cp-hero { padding:26px 0; }
  .ub-page .co-page .co-lead,
  .ub-page .cp-page.co-page .cp-lead { font-size:16px; }
  .ub-page .co-contact-details,
  .ub-page .co-contact-callback .fr-callback-panel,
  .ub-page .co-page .co-care-layout,
  .ub-page .cp-page.co-page .cp-start-panel,
  .ub-page .co-page .co-vacancy-response-panel { padding:22px; }
  .ub-page .co-page .co-office-title { font-size:24px; }
  .ub-page .co-page .co-office-phone { font-size:23px; }
  .ub-page .co-contact-map .cc-external-placeholder { padding:22px; min-height:250px; }
  .ub-page .co-contact-map .co-map-frame { height:280px; min-height:250px; }
  .ub-page .co-page .co-warranty-grid { gap:12px; margin-top:24px; }
  .ub-page .co-page .co-warranty-card { padding:18px; }
  .ub-page .co-page .co-warranty-card .count { font-size:38px; }
  .ub-page .co-page .co-warranty-card .co-warranty-details { font-size:14px; }
  .ub-page .ub-document-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .ub-page .ub-document { padding:12px; }
  .ub-page .ub-document :is(h3,h2:where(.production-h3)) { font-size:16px; }
  .ub-page .co-page .co-vacancies-grid > li { grid-template-columns:36px minmax(0,1fr); padding:22px; gap:16px; }
  .ub-page .co-page .co-job-symbol { width:36px; height:36px; border-radius:9px; }
  .ub-page .co-page .co-job-icon { width:23px; height:23px; }
  .ub-page .co-page .co-job-copy { display:contents; }
  .ub-page .co-page .co-vacancies-grid :is(h3,h2:where(.production-h3)) { grid-column:2; align-self:center; margin:0; font-size:20px; }
  .ub-page .co-page .co-job-description { grid-column:1 / -1; }
  .ub-page .co-page .co-job-apply { grid-column:1 / -1; justify-self:start; gap:14px; padding:0; border:0; }
  .ub-page .co-page .co-response-copy h2:not(:where(.production-h3)),
  .ub-page .cp-page.co-page .cp-start-copy h2:not(:where(.production-h3)),
  .ub-page .co-contact-callback .fr-callback-copy h2:not(:where(.production-h3)) { font-size:26px; }
}
@media(max-width:575px) {
  .ub-page .cp-page.co-page .cp-audience-card { padding:22px; }
  .ub-page .cp-page.co-page .cp-role-heading { margin-bottom:16px; }
}
@media(max-width:374px) {
  .ub-page .co-page .co-warranty-grid { grid-template-columns:minmax(0,1fr); }
}
