/* Jemné úpravy odsouhlaseného vzhledu. Původní paleta a fotografie zůstávají. */
.page { max-width: 1440px; margin-inline: auto; }
.container { max-width: 1200px; }
.container.narrow { max-width: 988px; }
body {
  font-family: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.75;
}
::selection { background: #f3131d; color: #fff; }
h1, h2 { font-weight: 600; letter-spacing: -.018em; }
h2, h3 { text-wrap: balance; }
.header { height: 108px; }
.navigation a { font-size: 17px; font-weight: 600; padding-block: 8px; border-bottom: 2px solid transparent; }
.navigation a:hover, .navigation a[aria-current] { border-bottom-color: var(--red); }
.navigation a:focus-visible { border-radius: 2px; }
.hero { padding: 48px; }
.hero-panel { width: 600px; padding: 120px 48px; background: rgba(212, 39, 37, .9); }
.hero-content { max-width: 480px; }
.hero h1 { font-size: 52px; line-height: 1.12; font-weight: 600; letter-spacing: -.035em; margin-bottom: 36px; }
.button { min-height: 48px; line-height: 48px; font-size: 17px; font-weight: 600; padding-inline: 24px; border-radius: 5px; }
.hero .button { background: #fff; color: #bd1018; }
.hero .button:hover { background: #fff0f0; }
.introduction { padding-top: 88px; }
.introduction h2 { font-size: 38px; color: #222; }
.introduction h2 strong { color: var(--red); font-weight: 600; }
.introduction p { line-height: 1.8; }
.introduction hr { width: 48px; border-top: 3px solid var(--red); margin: 26px auto; }
.service-grid { padding-top: 64px; padding-bottom: 88px; gap: 24px; }
.service {
  display: grid;
  grid-template-rows: 188px auto 1fr;
  align-content: start;
  padding: 24px;
  border-radius: 0;
  border-top: 1px solid #dedede;
  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; letter-spacing: -.01em; 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: 600; }
.about-content { width: 560px; max-width: 64%; padding: 44px; background: rgba(255,255,255,.94); }
.about h2 { font-size: 32px; }
.about p { font-size: 18px; line-height: 1.75; margin-bottom: 28px; }
.reasons { padding-block: 96px; }
.reasons-grid { grid-template-columns: .85fr 1.65fr; gap: 64px; align-items: start; }
.reasons-intro h2 { font-size: 34px; line-height: 1.2; margin-bottom: 18px; }
.reasons-intro > p { color: #666; margin-bottom: 28px; }
.reasons .reasons-benefits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 36px 32px; }
.reasons-benefits li { position: relative; padding-left: 28px; }
.reasons-benefits li::before { content: "✓"; position: absolute; left: 0; top: 0; color: #bd1018; font-size: 20px; font-weight: 600; line-height: 1.4; }
.reasons-benefits h3 { font-size: 20px; font-weight: 600; letter-spacing: -.01em; margin-bottom: 8px; }
.reasons-benefits p { color: #555; line-height: 1.65; margin: 0; }
.contact-panel { padding: 88px 48px; background: #fafafa; color: #222; }
.contact h2 { font-size: 30px; margin-bottom: 36px; line-height: 1.3; }
.contact h3 { font-size: 14px; font-weight: 500; color: #666; letter-spacing: 0; margin-bottom: 6px; }
.contact p { font-size: 16px; font-weight: 400; line-height: 1.75; margin-bottom: 26px; }
.contact-person { display: block; font-size: 20px; font-weight: 600; color: #222; margin-bottom: 6px; }
.contact-primary { display: inline-block; font-size: 26px; font-weight: 600; line-height: 1.5; }
.contact-email { font-size: 23px; }
.contact a { color: #bd1018; text-underline-offset: 5px; }
.contact p:last-child a { display: inline-block; padding-top: 12px; font-size: 14px; text-decoration: underline; }
.references { padding-block: 88px; }
.references h2 { font-size: 34px; margin-bottom: 12px; }
.references-intro { text-align: center; color: #666; margin-bottom: 40px; }
.client-grid { align-items: stretch; gap: 16px; }
.client { padding: 24px 16px; border: 1px solid #e7e7e7; border-radius: 6px; text-align: center; transition: border-color .18s; }
.client:hover { border-color: #b9b9b9; text-decoration: none; }
.client:hover .client-description strong { text-decoration: underline; text-underline-offset: 4px; }
.client img { width: 100%; height: 112px; aspect-ratio: auto; object-fit: cover; object-position: center; filter: brightness(.6) contrast(5); margin-bottom: 20px; }
.client:hover img { filter: brightness(.6) contrast(5); }
.client-description { position: static; inset: auto; display: block; opacity: 1; background: none; font-size: 13px; line-height: 1.6; padding: 0; color: #666; }
.client-description strong { display: block; color: #222; font-size: 16px; font-weight: 600; line-height: 1.35; margin-bottom: 10px; }
.footer { padding-top: 64px; padding-bottom: 64px; }
.footer-brand { margin-bottom: 44px; }
.footer-grid { line-height: 1.7; }
.footer h2 { font-weight: 600; letter-spacing: 0; }
.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) {
  .hero { padding: 32px; }
  .hero-panel { width: 570px; padding: 104px 36px; }
  .hero h1 { font-size: 46px; }
  .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: 72%; padding: 36px; }
  .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: 112px; }
}
@media (max-width: 767px) {
  .header { height: auto; }
  .hero { padding: 24px 18px; }
  .hero h1 { font-size: clamp(24px, 7.5vw, 38px); }
  .hero-panel { width: 100%; padding: 80px 24px; min-height: 0; }
  .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 { width: 100%; max-width: 100%; padding: 28px; margin-left: 0; }
  .about h2 { font-size: 28px; }
  .reasons h2 { font-size: 24px; }
  .about p { font-size: 17px; }
  .reasons, .references { padding-block: 64px; }
  .reasons-grid { grid-template-columns: 1fr; gap: 36px; }
  .reasons-intro h2 { font-size: 30px; }
  .reasons .reasons-benefits { grid-template-columns: 1fr; gap: 26px; }
  .contact-photo { min-height: 260px; }
  .contact-panel { padding: 64px 30px; }
  .contact h2 { font-size: 29px; margin-bottom: 28px; }
  .contact h3 { font-size: 14px; }
  .contact p { font-size: 16px; }
  .contact-primary { font-size: 25px; }
  .contact-email { font-size: 23px; }
  .client-grid { gap: 16px; }
  .client img { height: 104px; }
  .client-description { font-size: 13px; padding: 0; }
  .client-description strong { font-weight: 600; }
  .footer { padding-block: 52px; }
  .footer-grid { gap: 32px; }
}
@media (max-width: 479px) {
  .client-grid { grid-template-columns: 1fr; }
  .client { display: grid; grid-template-columns: 88px 1fr; gap: 18px; align-items: center; padding: 20px; text-align: left; }
  .client img { height: 88px; margin: 0; }
  .client-description { text-align: left; }
  .references-intro { margin-bottom: 28px; }
}
@media (max-width: 359px) {
  .hero h1 { font-size: 24px; }
  .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; }
}
