/* =========================================================
   Skup samochodów do kasacji – Rachwałowice
   Kolorystyka na podstawie wizytówki: żółty / czerwony / grafit
   ========================================================= */
:root {
  --yellow: #f5c400;
  --yellow-dark: #d9ad00;
  --red: #c8202a;
  --red-dark: #a3171f;
  --orange: #f07d1a;
  --dark: #1c1d21;
  --dark-2: #26282d;
  --gray: #6b6f78;
  --light: #f5f5f3;
  --font-head: 'Bebas Neue', Impact, 'Arial Narrow', sans-serif;
  --font-body: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --radius: 14px;
  --shadow: 0 10px 30px rgba(0, 0, 0, .08);
}

html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { font-family: var(--font-body); color: #2b2d33; background: #fff; line-height: 1.65; }
h1, h2, h3, h4 { font-family: var(--font-head); letter-spacing: .5px; font-weight: 400; line-height: 1.05; }
a { color: var(--red); }
a:hover { color: var(--red-dark); }
img { max-width: 100%; height: auto; }

/* ---------- Przyciski ---------- */
.btn { font-weight: 600; border-radius: 10px; }
.btn-accent { background: var(--yellow); border-color: var(--yellow); color: #1a1a1a; }
.btn-accent:hover, .btn-accent:focus { background: var(--yellow-dark); border-color: var(--yellow-dark); color: #1a1a1a; }
.btn-primary-red { background: var(--red); border-color: var(--red); color: #fff; }
.btn-primary-red:hover, .btn-primary-red:focus { background: var(--red-dark); border-color: var(--red-dark); color: #fff; }
.btn:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }

/* ---------- Nawigacja ---------- */
.site-nav { background: rgba(28, 29, 33, .92); backdrop-filter: blur(6px); padding: .7rem 0; transition: padding .25s, box-shadow .25s; }
.site-nav.is-scrolled { padding: .35rem 0; box-shadow: 0 4px 20px rgba(0, 0, 0, .3); }
.site-nav .nav-link { color: #e6e6e6; font-weight: 500; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: var(--yellow); }

.brand { display: inline-flex; flex-direction: column; line-height: .9; text-decoration: none; }
.brand__top { font-family: var(--font-head); font-size: 1.9rem; color: var(--yellow); letter-spacing: 1px; }
.brand__bottom { font-family: var(--font-head); font-size: 1rem; color: #fff; letter-spacing: 2px; }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  padding: 130px 0 90px;
  color: #fff;
  background:
    linear-gradient(160deg, rgba(28, 29, 33, .97) 0%, rgba(28, 29, 33, .92) 55%, rgba(200, 32, 42, .95) 55.2%, var(--red) 100%);
  overflow: hidden;
}
.hero__kicker { color: var(--yellow); font-weight: 600; text-transform: uppercase; font-size: .85rem; letter-spacing: 1px; }
.hero__title { font-size: clamp(3rem, 8vw, 5.5rem); color: var(--yellow); margin-bottom: 1rem; text-shadow: 3px 3px 0 rgba(0, 0, 0, .35); }
.hero__title span { display: block; color: #fff; }
.hero__lead { font-size: 1.1rem; color: #d9d9d9; max-width: 34rem; margin-bottom: 1.8rem; }
.hero__badges { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1.8rem 0 0; font-weight: 600; font-size: .95rem; }
.hero__badges i { color: var(--yellow); margin-right: .35rem; }
.hero__media { position: relative; border-radius: var(--radius); overflow: hidden; box-shadow: 0 25px 60px rgba(0, 0, 0, .45); border: 4px solid var(--yellow); transform: rotate(1.5deg); }
.hero__media img { display: block; width: 100%; }

/* szewrony jak na wizytówce */
.chevrons {
  position: absolute; right: 0; bottom: 0; width: 70px; height: 220px; opacity: .85;
  background: repeating-linear-gradient(135deg, transparent 0 12px, var(--orange) 12px 22px, transparent 22px 34px);
  -webkit-mask: linear-gradient(to top, #000, transparent);
          mask: linear-gradient(to top, #000, transparent);
}

/* ---------- Sekcje ---------- */
.section { padding: 90px 0; }
.section--dark { background: var(--dark); color: #cfd0d4; }
.section__head { margin-bottom: 3rem; }
.section__kicker { display: inline-block; color: var(--red); font-weight: 700; text-transform: uppercase; letter-spacing: 2px; font-size: .8rem; margin-bottom: .4rem; }
.section--dark .section__kicker { color: var(--yellow); }
.section__title { font-size: clamp(2.3rem, 5vw, 3.4rem); color: var(--dark); }

/* Karty usług */
.service-card {
  background: #fff; border-radius: var(--radius); padding: 2rem 1.6rem; box-shadow: var(--shadow);
  border-top: 5px solid var(--yellow); transition: transform .25s, box-shadow .25s, border-color .25s;
}
.service-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0, 0, 0, .12); border-top-color: var(--red); }
.service-card__icon {
  width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center;
  background: var(--red); color: var(--yellow); font-size: 1.8rem; margin-bottom: 1.2rem;
}
.service-card h3 { font-size: 1.8rem; color: var(--dark); }
.service-card p { color: var(--gray); margin: 0; font-size: .95rem; }

/* Kroki */
.step { text-align: center; padding: 2rem 1.2rem; background: var(--dark-2); border-radius: var(--radius); height: 100%; }
.step__num {
  display: inline-grid; place-items: center; width: 72px; height: 72px; border-radius: 50%;
  background: var(--yellow); color: var(--dark); font-family: var(--font-head); font-size: 2.6rem; margin-bottom: 1rem;
}
.step h3 { color: #fff; font-size: 1.8rem; }
.step p { margin: 0; }

/* Dlaczego my */
.feature { display: flex; gap: 1rem; align-items: center; background: var(--light); border-radius: var(--radius); padding: 1.3rem; height: 100%; }
.feature > i { font-size: 1.8rem; color: var(--red); flex-shrink: 0; }
.feature strong { display: block; color: var(--dark); }
.feature span { color: var(--gray); font-size: .9rem; }

/* CTA */
.cta { background: var(--yellow); padding: 60px 0; }
.cta h2 { font-size: clamp(2rem, 5vw, 3rem); color: var(--dark); margin-bottom: .3rem; }
.cta h2 span { color: var(--red); }
.cta__phone { font-family: var(--font-head); font-size: clamp(3rem, 10vw, 5.5rem); color: var(--red); text-decoration: none; line-height: 1; }
.cta__phone:hover { color: var(--red-dark); }

/* Kontakt */
.contact-box, .contact-form { background: var(--light); border-radius: var(--radius); padding: 2rem; }
.contact-box h3 { font-size: 2rem; }
.contact-list li { display: flex; gap: .9rem; margin-bottom: .9rem; align-items: flex-start; }
.contact-list i { color: var(--red); font-size: 1.2rem; margin-top: .1rem; }
.contact-list a { color: inherit; text-decoration: none; font-weight: 600; }
.contact-list a:hover { color: var(--red); }
.map-wrap { margin-top: 1.5rem; border-radius: 10px; overflow: hidden; min-height: 240px; background: #e4e4e1; }
.map-wrap iframe { width: 100%; height: 260px; border: 0; display: block; }
.map-placeholder { padding: 2rem 1.2rem; text-align: center; color: var(--gray); font-size: .9rem; }
.map-placeholder > i { font-size: 2.2rem; color: var(--red); }
.contact-form .form-control { border-radius: 10px; padding: .7rem .9rem; border-color: #d6d6d3; }
.contact-form .form-control:focus { border-color: var(--yellow); box-shadow: 0 0 0 .2rem rgba(245, 196, 0, .3); }
.contact-form .form-label { font-weight: 600; font-size: .9rem; }
.form-check-input:checked { background-color: var(--red); border-color: var(--red); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status.is-ok { color: #18794e; font-weight: 600; }
.form-status.is-error { color: var(--red); font-weight: 600; }

/* Stopka */
.footer { background: var(--dark); color: #a9abb2; padding: 60px 0 30px; font-size: .92rem; }
.footer h4 { color: #fff; font-size: 1.5rem; }
.footer a { color: #d6d7db; text-decoration: none; }
.footer a:hover { color: var(--yellow); }
.footer li { margin-bottom: .4rem; }
.footer hr { border-color: rgba(255, 255, 255, .15); margin: 2rem 0 1.2rem; }
.footer__copy { font-size: .85rem; }

/* Pływający przycisk telefonu */
.call-fab {
  position: fixed; right: 18px; bottom: 18px; z-index: 1040; width: 60px; height: 60px; border-radius: 50%;
  background: var(--red); color: #fff; display: grid; place-items: center; font-size: 1.6rem;
  box-shadow: 0 8px 22px rgba(200, 32, 42, .5); animation: pulse 2s infinite;
}
.call-fab:hover { color: var(--yellow); }
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(200, 32, 42, .6); }
  70% { box-shadow: 0 0 0 16px rgba(200, 32, 42, 0); }
  100% { box-shadow: 0 0 0 0 rgba(200, 32, 42, 0); }
}
body.has-cookie-banner .call-fab { bottom: 190px; }

/* Baner cookies */
.cookie-banner {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1060; padding: 1rem;
  background: rgba(28, 29, 33, .98); color: #ddd; border-top: 4px solid var(--yellow);
  box-shadow: 0 -8px 30px rgba(0, 0, 0, .35); font-size: .88rem;
  transform: translateY(100%); transition: transform .35s ease;
}
.cookie-banner.is-visible { transform: translateY(0); }
.cookie-banner__inner { max-width: 1140px; margin: 0 auto; display: flex; gap: 1rem 2rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.cookie-banner__text { flex: 1 1 480px; }
.cookie-banner__text strong { color: var(--yellow); display: block; margin-bottom: .2rem; }
.cookie-banner a { color: var(--yellow); }
.cookie-banner__actions { display: flex; gap: .6rem; flex-wrap: wrap; }

/* Podstrony z dokumentami */
.doc-page { padding: 120px 0 70px; }
.doc-page h1 { font-size: clamp(2.4rem, 6vw, 3.6rem); color: var(--dark); }
.doc-page h2 { font-size: 1.8rem; color: var(--red); margin-top: 2.2rem; }
.doc-page .doc-meta { color: var(--gray); font-size: .9rem; }
.doc-page table { font-size: .9rem; }
.doc-content { max-width: 860px; }

/* ---------- RWD ---------- */
@media (max-width: 991.98px) {
  .site-nav .navbar-collapse { padding: 1rem 0; }
  .hero { padding: 110px 0 70px; background: linear-gradient(180deg, var(--dark) 0%, var(--dark) 70%, var(--red) 70.2%); }
  .hero__media { transform: none; }
  .section { padding: 70px 0; }
}
@media (max-width: 575.98px) {
  .hero .btn-lg { width: 100%; }
  .contact-box, .contact-form { padding: 1.4rem; }
  .cookie-banner__actions { width: 100%; }
  .cookie-banner__actions .btn { flex: 1; }
  .chevrons { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
