/* Jemné úpravy odsouhlaseného vzhledu. Původní paleta a fotografie zůstávají. */
body { font-size: 16px; line-height: 1.7; }
::selection { background: #f3131d; color: #fff; }
h1, h2 { font-weight: 500; }
h2, h3 { text-wrap: balance; }
.navigation a { font-size: 19px; }
.navigation a:focus-visible { border-radius: 2px; }
.hero-panel { background: rgba(212, 39, 37, .84); }
.hero h1 { line-height: 1.24; }
.button { min-height: 44px; line-height: 44px; font-size: 19px; font-weight: 600; padding-inline: 20px; }
.introduction { padding-top: 110px; }
.introduction h2 { font-size: 36px; }
.introduction p { line-height: 1.8; }
.introduction hr { margin-block: 24px; }
.service-grid { padding-top: 100px; padding-bottom: 110px; }
.service {
  display: grid;
  grid-template-rows: 188px auto 1fr;
  align-content: start;
  padding: 24px;
  border-radius: 8px;
  transition: background-color .18s ease-out;
}
.service:hover { background: #f6f6f6; }
.service img {
  width: 144px;
  height: 172px;
  object-fit: contain;
  align-self: center;
  margin: 0 auto 16px;
}
.service h3 { font-weight: 600; line-height: 1.35; margin-bottom: 16px; }
.service p { color: #444; max-width: 23ch; }
.about { min-height: 520px; padding-block: 160px; }
.about h2, .reasons h2 { font-size: 26px; font-weight: 500; }
.about-content { max-width: 52%; }
.about p { margin-bottom: 24px; }
.reasons { padding-block: 110px; }
.reasons-grid { column-gap: 48px; }
.reasons ul { padding-left: 22px; }
.reasons li + li { margin-top: 6px; }
.contact-panel { padding: 110px 40px; }
.contact h2 { margin-bottom: 32px; line-height: 1.3; }
.contact h3 { font-size: 20px; font-weight: 600; margin-bottom: 12px; }
.contact p { font-size: 19px; font-weight: 600; line-height: 1.65; margin-bottom: 32px; }
.contact-person { display: block; font-size: 16px; font-weight: 400; color: #222; margin-bottom: 4px; }
.contact-primary { display: inline-block; font-size: 26px; font-weight: 600; line-height: 1.5; }
.contact-email { font-size: 23px; }
.contact a { text-underline-offset: 5px; }
.contact p:last-child a { display: inline-block; padding-top: 10px; text-decoration: underline; }
.references { padding-block: 110px; }
.references h2 { margin-bottom: 36px; }
.client-grid { align-items: start; gap: 18px; }
.client img { width: 100%; height: 200px; aspect-ratio: auto; object-fit: contain; filter: brightness(.6) contrast(5); }
.client:hover img { filter: brightness(.6) contrast(5); }
.client-description { font-size: 14px; padding: 14px; }
.footer { padding-top: 64px; padding-bottom: 64px; }
.footer-brand { margin-bottom: 44px; }
.footer-grid { line-height: 1.7; }
.footer h2 { font-weight: 500; }
.cookie-consent { font-size: 14px; }
.cookie-consent h2 { font-weight: 500; }

@media (min-width: 960px) and (max-width: 1199px) {
  .service { padding: 16px 10px; }
  .service-grid { gap: 16px; }
  .service h3 { font-size: 19px; }
  .contact-panel { padding: 88px 32px; }
  .contact-primary { font-size: 24px; }
  .contact-email { font-size: 22px; }
}
@media (max-width: 959px) {
  .introduction { padding-top: 64px; }
  .service-grid { padding-block: 64px 80px; gap: 28px; }
  .service { padding: 20px; }
  .about { padding-block: 120px; min-height: 460px; }
  .about-content { max-width: 60%; }
  .reasons, .references { padding-block: 80px; }
  .contact-panel { padding: 72px 30px; }
  .contact h2 { font-size: 29px; }
  .contact-primary { font-size: 23px; }
  .contact-email { font-size: 21px; }
  .client img { height: 190px; }
}
@media (max-width: 767px) {
  .hero h1 { font-size: 36px; }
  .hero-panel { padding-block: 124px; }
  .introduction h2 { font-size: 29px; }
  .service-grid { padding-block: 56px 72px; gap: 36px 18px; }
  .service { padding: 12px 0; grid-template-rows: 154px 54px 1fr; }
  .service img { width: 114px; height: 138px; }
  .service h3 { font-size: 19px; margin-bottom: 14px; }
  .service p { font-size: 15px; }
  .about { padding-block: 72px; min-height: 0; }
  .about-content { max-width: 88%; padding: 24px; }
  .about h2, .reasons h2 { font-size: 24px; }
  .reasons, .references { padding-block: 64px; }
  .reasons-grid { gap: 24px; }
  .contact-photo { min-height: 260px; }
  .contact-panel { padding: 64px 30px; }
  .contact h2 { font-size: 29px; margin-bottom: 28px; }
  .contact h3 { font-size: 20px; }
  .contact p { font-size: 19px; }
  .contact-primary { font-size: 25px; }
  .contact-email { font-size: 23px; }
  .client-grid { gap: 30px 20px; }
  .client img { height: 148px; }
  .client-description { font-size: 13px; padding: 6px 0 0; }
  .client-description strong { font-weight: 600; }
  .footer { padding-block: 52px; }
  .footer-grid { gap: 32px; }
}
@media (max-width: 359px) {
  .hero h1 { font-size: 31px; }
  .service-grid { grid-template-columns: 1fr; gap: 28px; }
  .service { grid-template-rows: 154px auto 1fr; }
  .about-content { max-width: 100%; }
  .contact-panel { padding-inline: 22px; }
  .contact-primary { font-size: 23px; }
  .contact-email { font-size: 21px; }
}
@media print {
  .hero-panel { background: #fff; }
  .service-grid { padding-block: 25px; }
  .about, .reasons, .references, .contact-panel, .footer { padding-block: 25px; min-height: 0; }
  .contact-person { color: #111; }
}
