  .service-container { margin-left: auto; margin-right: auto; width: 100%; max-width: 80rem; padding-left: 1.25rem; padding-right: 1.25rem; }
@media (min-width: 640px) {
 .service-container { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (min-width: 1024px) {
 .service-container { padding-left: 2rem; padding-right: 2rem; } }
  .service-section { padding-top: 3rem; padding-bottom: 3rem; }
  @media (min-width: 640px) {
 .service-section { padding-top: 4rem; padding-bottom: 4rem; } }
  @media (min-width: 768px) {
 .service-section { padding-top: 5rem; padding-bottom: 5rem; } }
  @media (min-width: 1024px) {
 .service-section { padding-top: 6rem; padding-bottom: 6rem; } }
  .service-heading { font-family: Syne, sans-serif; font-weight: 800; text-transform: uppercase; line-height: 1.08; letter-spacing: -0.025em; font-size: clamp(1.5rem, 6.2vw, 3rem); }
  .service-section-intro { grid-template-columns: minmax(0, 1fr); margin-bottom: 2.5rem; display: grid; align-items: flex-end; gap: 1.5rem; }
  .service-page .service-section-intro > * { min-width: 0; }
  @media (min-width: 1024px) {
 .service-section-intro { margin-bottom: 3.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; } }
  .service-lead { max-width: 65ch; font-size: 1rem; line-height: 1.5rem; line-height: 1.625; color: hsl(var(--muted-foreground)); }
  @media (min-width: 640px) {
 .service-lead { font-size: 1.125rem; line-height: 1.75rem; } }
  .service-hero-title { font-size: clamp(1.75rem, 3.15vw, 3rem); line-height: 1.08; letter-spacing: -0.025em; }
  .service-button { display: inline-flex; min-height: 3rem; align-items: center; justify-content: center; gap: 0.75rem; border-radius: 9999px; background-color: hsl(var(--secondary)); padding-left: 1.5rem; padding-right: 1.5rem; padding-top: 0.75rem; padding-bottom: 0.75rem; font-size: 0.875rem; line-height: 1.25rem; font-weight: 700; line-height: 1.375; --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
  .service-button:hover { background-color: hsl(var(--secondary) / 0.9); }
  .service-button:disabled { cursor: wait; opacity: 0.7; }
  .service-tab { display: flex; min-height: 4rem; align-items: center; justify-content: center; gap: 0.5rem; border-bottom-width: 2px; padding-left: 0.5rem; padding-right: 0.5rem; padding-top: 1rem; padding-bottom: 1rem; font-family: Syne, sans-serif; font-size: 0.875rem; line-height: 1.25rem; font-weight: 700; }
  @media (min-width: 640px) {
 .service-tab { gap: 1rem; font-size: 1rem; line-height: 1.5rem; } }
  .service-label { margin-bottom: 0.5rem; display: block; font-size: 0.875rem; line-height: 1.25rem; font-weight: 700; }
  .service-input { width: 100%; border-radius: 0.75rem; border-width: 1px; border-color: rgb(255 255 255 / 0.3); --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); padding-left: 1rem; padding-right: 1rem; padding-top: 0.75rem; padding-bottom: 0.75rem; font-size: 1rem; line-height: 1.5rem; color: hsl(var(--foreground)); }
  .service-input::-moz-placeholder { color: hsl(var(--muted-foreground)); }
  .service-input::placeholder { color: hsl(var(--muted-foreground)); }
  .service-input { caret-color: hsl(var(--secondary)); }
  .service-mobile-contact { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
.service-faq summary::-webkit-details-marker { display: none; }
.service-page a, .service-page button { text-underline-offset: 4px; }
.service-page :is(section, main)[id] { scroll-margin-top: 112px; }
.service-page :focus-visible { outline: 3px solid hsl(var(--secondary)); outline-offset: 4px; }
.service-page .bg-primary :focus-visible { outline-color: white; }
.service-page header nav > :is(a, button) { font-size: 0.8125rem; }
.service-page header nav { gap: 1rem; }

@media (min-width: 1024px) and (max-width: 1279px) {
  .service-page header nav { display: none; }
  .service-page header .lg\:hidden { display: flex; }
  .service-page .service-header-menu { display: block; }
}

@media (prefers-reduced-motion: no-preference) {
  .service-hero figure { animation: service-photo-reveal 700ms cubic-bezier(0.16, 1, 0.3, 1) both; }
  @keyframes service-photo-reveal { from { clip-path: inset(0 0 7% 0 round 24px); } to { clip-path: inset(0 round 24px); } }
}

/* Mobilní zalamování: grid položky se smí zúžit pod šířku nejdelšího slova, stránka se nikdy neposouvá do strany. */
.service-page { overflow-x: clip; }
.service-page .grid > * { min-width: 0; }
.service-page h1, .service-page h2, .service-page h3 { overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }
