/* BLOWER-TECH custom styles */
html { scroll-behavior:smooth; }
  section[id] { scroll-margin-top:5rem; }
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }
  .language-switcher { display:flex; align-items:center; gap:.25rem; margin-left:.75rem; padding:.25rem; border:1px solid var(--border); border-radius:.5rem; background:color-mix(in srgb, var(--background) 92%, transparent); }
  .language-switcher a { min-width:2.25rem; padding:.35rem .55rem; border-radius:.35rem; font:700 .78rem/1 Inter,sans-serif; letter-spacing:.06em; text-align:center; color:var(--muted-foreground); text-decoration:none; }
  .language-switcher a[aria-current="page"] { color:#fff; background:#155eaa; box-shadow:0 2px 8px rgba(21,94,170,.28); }
  #oferta h3 { min-height:2.7rem; font-family:"Barlow Condensed",Inter,sans-serif; font-size:1.65rem; line-height:1.05; letter-spacing:.01em; }
  #wynajem .font-display.text-lg, #stopnie .font-display.text-lg { font-family:"Barlow Condensed",Inter,sans-serif; font-size:1.4rem; line-height:1.12; letter-spacing:.01em; }
  @media (max-width: 639px) { .language-switcher { margin-left:auto; } }
  @media (max-width: 767px) {
    main, section { text-align: center; }
    .footer-rights { display:block; margin-top:.25rem; }
    #wynajem .lucide-truck { margin-left:auto; margin-right:auto; }
    section p { margin-left: auto; margin-right: auto; }
    section .flex.flex-wrap, #top .mt-8, #wynajem .mt-8 { justify-content: center; }
    #o-firmie ul li, #stopnie ul li, #stopnie ol li { flex-direction: column; align-items: center; text-align: center; }
    #o-firmie ul li svg, #oferta .group > .flex, #stopnie li > .flex, #kontakt a > .flex { margin-left: auto; margin-right: auto; }
    #oferta .group, #wynajem .rounded-xl, #stopnie .rounded-2xl, #kontakt > div > div { text-align: center; }
    #kontakt a { flex-direction: column; justify-content: center; text-align: center; }
    #kontakt .mt-10.space-y-5 > .flex { flex-direction:column; justify-content:center; text-align:center; }
    #kontakt .mt-10.space-y-5 > .flex > .flex { margin-left:auto; margin-right:auto; }
    #kontakt form label { text-align: center; }
    #kontakt form input, #kontakt form textarea, #kontakt form select { text-align: left; }
    footer, footer > div { text-align: center; justify-content: center; }
  }
  .mobile-menu { display:none; position:relative; }
  .mobile-menu > summary { display:flex; width:2.6rem; height:2.6rem; cursor:pointer; list-style:none; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:.5rem; background:var(--background); color:var(--foreground); }
  .mobile-menu > summary::-webkit-details-marker { display:none; }
  .mobile-menu-icon, .mobile-menu-icon::before, .mobile-menu-icon::after { display:block; width:1.25rem; height:2px; border-radius:2px; background:currentColor; transition:transform .2s ease, opacity .2s ease; }
  .mobile-menu-icon { position:relative; }
  .mobile-menu-icon::before, .mobile-menu-icon::after { position:absolute; left:0; content:""; }
  .mobile-menu-icon::before { top:-.4rem; }
  .mobile-menu-icon::after { top:.4rem; }
  .mobile-menu[open] > summary .mobile-menu-icon { background:transparent; }
  .mobile-menu[open] > summary .mobile-menu-icon::before { top:0; transform:rotate(45deg); }
  .mobile-menu[open] > summary .mobile-menu-icon::after { top:0; transform:rotate(-45deg); }
  .mobile-menu nav { position:absolute; top:calc(100% + .65rem); right:0; width:min(18rem, calc(100vw - 2rem)); overflow:hidden; border:1px solid var(--border); border-radius:.75rem; background:var(--background); box-shadow:0 16px 40px rgba(15,23,42,.18); }
  .mobile-menu nav a { display:block; padding:.9rem 1.1rem; border-bottom:1px solid var(--border); color:var(--foreground); font-size:.95rem; font-weight:600; text-align:left; text-decoration:none; }
  .mobile-menu nav a:last-child { border-bottom:0; }
  .mobile-menu nav a:hover { color:#155eaa; background:rgba(21,94,170,.07); }
  @media (max-width: 767px) {
    header > div > a[href^="tel:"] { display:none; }
    .mobile-menu { display:block; }
    .language-switcher { margin-left:auto; }
  }
  @media (max-width: 420px) {
    header > div { padding-left:.75rem !important; padding-right:.75rem !important; gap:.35rem; }
    .language-switcher { margin-left:auto; padding:.2rem; }
    .language-switcher a { min-width:1.85rem; padding:.35rem .4rem; }
    .mobile-menu > summary { width:2.4rem; height:2.4rem; }
  }
  header nav a.is-active { color:#155eaa !important; font-weight:700; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:.45rem; }
  .mobile-menu nav a.is-active { color:#fff !important; background:#155eaa; text-decoration:none; }
  .offer-details { display:grid; gap:.55rem; margin-top:1rem; text-align:left; }
  .offer-details li { position:relative; padding-left:1.25rem; color:var(--foreground); line-height:1.5; }
  .offer-details li::before { position:absolute; left:0; content:"✓"; color:#155eaa; font-weight:800; }
  .offer-brands { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .offer-brands li { font-family:"Barlow Condensed",Inter,sans-serif; font-size:1.05rem; font-weight:700; letter-spacing:.04em; }
  .offer-detail-note { display:block; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--border); }
  @media (max-width: 767px) {
    .offer-details { text-align:center; }
    .offer-details li { padding-left:0; }
    .offer-details li::before { position:static; margin-right:.4rem; }
  }
  .brand-section { overflow:hidden; padding-top:7rem !important; padding-bottom:7rem !important; border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:linear-gradient(135deg, color-mix(in srgb, #155eaa 9%, var(--background)), color-mix(in srgb, #38bdf8 6%, var(--background))); }
  .brand-marquee { width:100%; overflow:hidden; -webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent); }
  .brand-marquee-track { display:flex; width:max-content; gap:2rem; animation:brand-scroll 30s linear infinite; }
  .brand-marquee:hover .brand-marquee-track { animation-play-state:paused; }
  .brand-marquee-group { display:flex; align-items:center; gap:2rem; }
  .brand-logo-card { display:flex; width:12rem; height:6.5rem; flex:0 0 auto; align-items:center; justify-content:center; padding:1.1rem; border:1px solid var(--border); border-radius:.9rem; background:var(--card); box-shadow:var(--shadow-card); }
  .brand-logo-card img { width:100%; height:100%; object-fit:contain; filter:none; opacity:1; transition:filter .2s ease, opacity .2s ease, transform .2s ease; }
  .brand-logo-card:hover img { filter:grayscale(0); opacity:1; transform:scale(1.04); }
  @keyframes brand-scroll { to { transform:translateX(calc(-50% - 1rem)); } }
  @media (max-width: 767px) {
    .brand-section { padding-top:5.5rem !important; padding-bottom:5.5rem !important; }
    .brand-marquee-track, .brand-marquee-group { gap:1rem; }
    .brand-logo-card { width:9rem; height:5.5rem; padding:.85rem; }
    @keyframes brand-scroll { to { transform:translateX(calc(-50% - .5rem)); } }
  }
  @media (prefers-reduced-motion: reduce) {
    .brand-marquee { overflow-x:auto; mask-image:none; -webkit-mask-image:none; }
    .brand-marquee-track { animation:none; }
    .brand-marquee-group[aria-hidden="true"] { display:none; }
  }
  #oferta-przeglady, #oferta-remonty, #oferta-diagnostyka, #oferta-doradztwo { scroll-margin-top:5.5rem; }
  header > div > nav { height:100%; align-items:center; }
  .nav-dropdown { position:relative; display:flex; height:100%; align-items:center; align-self:stretch; }
  .nav-dropdown-menu { position:absolute; z-index:60; top:calc(100% + 1px); left:50%; width:16rem; padding:.45rem; border:1px solid var(--border); border-radius:.75rem; background:var(--background); box-shadow:0 16px 40px rgba(15,23,42,.18); opacity:0; visibility:hidden; transform:translate(-50%,.5rem); transition:opacity .18s ease, transform .18s ease, visibility .18s ease; }
  .nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown:focus-within .nav-dropdown-menu { opacity:1; visibility:visible; transform:translate(-50%,0); }
  .nav-dropdown-menu a { display:block; padding:.7rem .8rem; border-radius:.45rem; color:var(--foreground) !important; font-size:.875rem; font-weight:600; text-decoration:none !important; white-space:nowrap; }
  .nav-dropdown-menu a:hover, .nav-dropdown-menu a:focus { color:#155eaa !important; background:rgba(21,94,170,.08); }
  .mobile-submenu > summary { display:flex; width:100%; cursor:pointer; list-style:none; align-items:center; justify-content:space-between; padding:.9rem 1.1rem; border-bottom:1px solid var(--border); color:var(--foreground); font-size:.95rem; font-weight:600; text-align:left; }
  .mobile-submenu > summary::-webkit-details-marker { display:none; }
  .mobile-submenu > summary::after { content:"+"; color:#155eaa; font-size:1.25rem; font-weight:700; }
  .mobile-submenu[open] > summary::after { content:"−"; }
  .mobile-submenu > summary.is-active { color:#fff; background:#155eaa; }
  .mobile-submenu > summary.is-active::after { color:#fff; }
  .mobile-submenu-links { padding:.25rem 0 .4rem; background:color-mix(in srgb,var(--secondary) 55%,transparent); }
  .mobile-menu nav .mobile-submenu-links a { padding:.75rem 1.1rem .75rem 2rem; font-size:.875rem; font-weight:500; }
  .hero-slide { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block !important; animation:none !important; opacity:0; transform:scale(1.055); transition:opacity 1s ease, transform 5s ease; }
  .hero-slide.is-active { opacity:1; transform:scale(1.02); }
  .hero-dots { display:flex; align-items:center; gap:.65rem; margin-top:1.4rem; }
  .hero-dot { width:.7rem; height:.7rem; padding:0; cursor:pointer; border:2px solid rgba(255,255,255,.9); border-radius:999px; background:transparent; box-shadow:0 1px 5px rgba(0,0,0,.25); transition:width .2s ease, background .2s ease, transform .2s ease; }
  .hero-dot:hover, .hero-dot:focus-visible { transform:scale(1.18); outline:none; }
  .hero-dot.is-active { width:1.8rem; background:#fff; }
  @media (max-width: 767px) { .hero-dots { justify-content:center; } }
  @media (prefers-reduced-motion: reduce) { .hero-slide { transition:none; } }
  .service-gallery-section { background:color-mix(in srgb,var(--secondary) 48%,var(--background)); }
  .service-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:14rem; gap:1rem; }
  .service-gallery-card { position:relative; overflow:hidden; border:1px solid var(--border); border-radius:1rem; background:var(--card); box-shadow:var(--shadow-card); }
  .service-gallery-card:first-child { grid-column:span 1; grid-row:span 1; }
  .service-gallery-card img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease, filter .3s ease; }
  .service-gallery-card:hover img { transform:scale(1.045); filter:brightness(.84); }
  .service-gallery-zoom { position:absolute; right:.8rem; bottom:.8rem; display:flex; width:2.35rem; height:2.35rem; align-items:center; justify-content:center; border-radius:999px; background:rgba(255,255,255,.92); color:#155eaa; font-size:1.15rem; font-weight:800; box-shadow:0 5px 18px rgba(0,0,0,.2); transition:transform .2s ease; }
  .service-gallery-card:hover .service-gallery-zoom { transform:scale(1.08); }
  @media (max-width: 767px) {
    .service-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:12rem; }
    .service-gallery-card:first-child { grid-column:span 1; grid-row:span 1; }
  }
  @media (max-width: 480px) {
    .service-gallery-grid { grid-template-columns:1fr; grid-auto-rows:13rem; }
    .service-gallery-card:first-child { grid-column:span 1; }
  }
  .mobile-call-button { display:none; }
  @media (max-width: 767px) {
    .mobile-call-button { position:fixed; z-index:80; right:1.1rem; bottom:calc(1.1rem + env(safe-area-inset-bottom, 0px)); display:flex; width:3.6rem; height:3.6rem; align-items:center; justify-content:center; border:2px solid rgba(255,255,255,.9); border-radius:999px; background:#155eaa; color:#fff; box-shadow:0 10px 28px rgba(15,60,105,.38); transition:transform .2s ease, background .2s ease; animation:call-attention 3s ease-in-out infinite; transform-origin:50% 50%; }
    .mobile-call-button:active { transform:scale(.94); }
    .mobile-call-button svg { width:1.55rem; height:1.55rem; }
  }
  @keyframes call-attention {
    0%, 70%, 100% { transform:rotate(0) scale(1); }
    74% { transform:rotate(-9deg) scale(1.06); }
    78% { transform:rotate(9deg) scale(1.08); }
    82% { transform:rotate(-7deg) scale(1.08); }
    86% { transform:rotate(7deg) scale(1.06); }
    90% { transform:rotate(0) scale(1); }
  }
  @media (prefers-reduced-motion: reduce) { .mobile-call-button { animation:none; } }
  .mobile-call-button::before { position:absolute; right:calc(100% + .75rem); top:50%; padding:.65rem .85rem; border:1px solid var(--border); border-radius:.65rem; background:rgba(255,255,255,.97); color:#102a43; box-shadow:0 8px 24px rgba(15,60,105,.25); content:attr(data-call-label); font-size:.84rem; font-weight:700; line-height:1; white-space:nowrap; opacity:0; pointer-events:none; transform:translate(.45rem,-50%) scale(.92); animation:call-tooltip 3s ease-in-out infinite; }
  .mobile-call-button::after { position:absolute; right:calc(100% + .3rem); top:50%; width:.7rem; height:.7rem; border-top:1px solid var(--border); border-right:1px solid var(--border); background:rgba(255,255,255,.97); content:""; opacity:0; pointer-events:none; transform:translateY(-50%) rotate(45deg); animation:call-tooltip-arrow 3s ease-in-out infinite; }
  @keyframes call-tooltip {
    0%, 68%, 96%, 100% { opacity:0; transform:translate(.45rem,-50%) scale(.92); }
    73%, 91% { opacity:1; transform:translate(0,-50%) scale(1); }
  }
  @keyframes call-tooltip-arrow {
    0%, 68%, 96%, 100% { opacity:0; }
    73%, 91% { opacity:1; }
  }
  @media (prefers-reduced-motion: reduce) { .mobile-call-button::before, .mobile-call-button::after { display:none; animation:none; } }
  @property --call-progress { syntax:"<angle>"; inherits:false; initial-value:0deg; }
  .mobile-call-button { border:3px solid transparent; background:linear-gradient(#155eaa,#155eaa) padding-box, conic-gradient(#22c55e var(--call-progress), rgba(255,255,255,.24) 0) border-box; animation:call-attention 5s ease-in-out infinite, call-progress 5s linear infinite; }
  .mobile-call-button::before { animation:call-tooltip 15s ease-in-out infinite; }
  .mobile-call-button::after { animation:call-tooltip-arrow 15s ease-in-out infinite; }
  @keyframes call-progress {
    0% { --call-progress:0deg; }
    90%, 100% { --call-progress:360deg; }
  }
  @keyframes call-attention {
    0%, 89% { transform:rotate(0) scale(1); }
    91% { transform:rotate(-10deg) scale(1.06); }
    93% { transform:rotate(10deg) scale(1.08); }
    95% { transform:rotate(-8deg) scale(1.08); }
    97% { transform:rotate(8deg) scale(1.06); }
    100% { transform:rotate(0) scale(1); }
  }
  @keyframes call-tooltip {
    0%, 85.5% { opacity:0; transform:translate(.45rem,-50%) scale(.92); }
    87%, 98% { opacity:1; transform:translate(0,-50%) scale(1); }
    100% { opacity:0; transform:translate(.2rem,-50%) scale(.96); }
  }
  @keyframes call-tooltip-arrow {
    0%, 85.5% { opacity:0; }
    87%, 98% { opacity:1; }
    100% { opacity:0; }
  }

/* Contact form and footer */
.form-status {
  min-height: 1.5rem;
  margin-top: .75rem;
  font-size: .875rem;
  font-weight: 600;
}
.form-status.is-success {
  display: flex;
  align-items: center;
  gap: .5rem;
  color: #16803a;
}
.form-status.is-success::before {
  content: "";
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 1.15rem;
  border-radius: 50%;
  background: #16a34a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 70% no-repeat;
}
.form-status.is-error { color: #c62828; }
form[data-contact-form] button[type="submit"]:disabled { cursor: wait; opacity: .65; }

.recaptcha-wrap {
  max-width: 100%;
  margin: 0 0 .75rem;
  overflow: hidden;
}
.recaptcha-wrap .g-recaptcha { transform-origin: left top; }

.contact-modal-open { overflow: hidden; }
.contact-success-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgba(3, 12, 24, .72);
  backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity .2s ease;
}
.contact-success-overlay.is-visible { opacity: 1; }
.contact-success-dialog {
  width: min(100%, 28rem);
  padding: 2.25rem 2rem 2rem;
  border-radius: 1.25rem;
  background: #fff;
  color: #172033;
  text-align: center;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .35);
  transform: translateY(14px) scale(.97);
  transition: transform .2s ease;
}
.contact-success-overlay.is-visible .contact-success-dialog { transform: translateY(0) scale(1); }
.contact-success-message {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin: 0 0 1.5rem;
  color: #16803a;
  font-size: 1rem;
  font-weight: 600;
  text-align: left;
}
.contact-success-message-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  flex: 0 0 1.5rem;
  border-radius: 50%;
  background: #16a34a;
  color: #fff;
}
.contact-success-message-check svg {
  width: .82rem;
  height: .82rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.contact-success-close {
  min-width: 8rem;
  padding: .7rem 1.25rem;
  border: 0;
  border-radius: .5rem;
  background: #16a34a;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}
.contact-success-close:hover { background: #12813b; }
.contact-success-close:focus-visible { outline: 3px solid rgba(22, 163, 74, .35); outline-offset: 3px; }

.site-credit {
  padding: .8rem 1rem;
  border-top: 1px solid rgba(148, 163, 184, .18);
  background: #0d1b2d;
  text-align: center;
}
.site-credit a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  color: #fff;
  font-size: 1rem;
  text-decoration: none;
  transition: color .2s ease;
}
.site-credit a:hover { color: #22c55e; }
.site-credit img { width: 1.5rem; height: 1.5rem; object-fit: contain; }

@media (max-width: 640px) {
  .contact-success-dialog { padding: 2rem 1.25rem 1.5rem; }
}
@media (max-width: 380px) {
  .recaptcha-wrap { height: 72px; }
  .recaptcha-wrap .g-recaptcha { transform: scale(.86); }
}

/* Replacements for former inline styles */
#o-firmie .grid.grid-cols-2.gap-4 > :nth-child(even) { transform: translateY(12px); }
.about-pattern { background-image: radial-gradient(circle at 20% 20%, oklch(0.65 0.16 220) 0%, transparent 50%), radial-gradient(circle at 80% 80%, oklch(0.5 0.2 260) 0%, transparent 50%); }
