/* Dodatkowe style strony Artura Pasika. Oryginalne pliki Sandbox pozostają bez zmian.
   Układ korzysta wyłącznie z klas Sandbox. Modyfikacje ograniczone do identyfikatorów
   sekcji i istniejących selektorów. Logo: wektorowy plik SVG odtworzony z obrazu referencyjnego. */
:root {
  --bs-primary: #2161ed;
  --bs-primary-rgb: 33, 97, 237;
  --bs-link-color: #2161ed;
  --bs-link-hover-color: #1748b5;
  --bs-body-color: #596784;
  --bs-heading-color: #0c1749;
}
body { font-size: .85rem; }
h1, h2, h3, h4 { color: #0c1749; letter-spacing: -.025em; }

.btn-primary { --bs-btn-bg: #2161ed; --bs-btn-border-color: #2161ed; --bs-btn-hover-bg: #1748b5; --bs-btn-hover-border-color: #1748b5; --bs-btn-active-bg: #1748b5; --bs-btn-active-border-color: #1748b5; box-shadow: 0 5px 15px rgb(33 97 237 / 14%); }
.btn-outline-primary { --bs-btn-color: #2161ed; --bs-btn-border-color: #2161ed; --bs-btn-hover-bg: #2161ed; --bs-btn-hover-border-color: #2161ed; }
.text-primary, .link-primary { color: #2161ed !important; }
.bg-gradient-primary { background: linear-gradient(120deg,#f3faff 0%,#f9fbff 50%,#f2ebff 100%); }
.card { border: 1px solid #edf1f9; box-shadow: 0 5px 20px rgb(37 72 135 / 5%); border-radius: .65rem; }
.card .icon-svg { width: 2.1rem; height: 2.1rem; margin-right: .8rem; }
.navbar { min-height: 76px; }
.navbar .nav-link { font-size: .7rem; padding-right: .65rem; padding-left: .65rem; }
.navbar .navbar-brand { flex: 0 0 190px; width: auto !important; }
.navbar .navbar-other { flex: 0 0 auto; width: auto !important; }
.navbar .navbar-brand > a, #footer-logo { display: block; width: 152px; height: 39px; }
.navbar .navbar-brand img, #footer-logo img { width: 152px; height: 39px; display: block; }
@media (min-width: 992px) { .navbar .navbar-other { margin-left: 1.5rem !important; } }
#home h1 { font-size: clamp(2rem,3.4vw,2.6rem); line-height: 1.1; font-weight: 700; max-width: 570px; }
#home .lead { max-width: 530px; }
#home figure img { max-height: 405px; width: 100%; object-fit: contain; }
#home .btn { font-size: .75rem; padding: .65rem 1.1rem; }
#home .order-1 > .d-flex { flex-wrap: wrap; gap: .5rem 0; }
#experience .icon-svg { width: 1.6rem; height: 1.6rem; margin-right: 1rem; }
#services .card-body > div:first-child { flex-shrink: 0; }
#services .more { display: block; text-align: right; }
#about { margin: 1rem 0; }
#about img { width: 100%; max-height: 280px; object-fit: contain; }
#about .icon-list li { margin-top: .45rem; }
#process [id^='process-step-'] { border: 1px solid #edf1f9; border-radius: .65rem; padding: 1rem; background: white; box-shadow: 0 5px 20px rgb(37 72 135 / 5%); }
#process .row { margin-left: 0; margin-right: 0; gap: .7rem; }
#tools .btn { padding: .35rem 1.1rem; font-weight: 600; font-size: .7rem; }
#case-studies .card { background: linear-gradient(135deg,white,#fafcff); }
#training figure img { max-height: 210px; object-fit: contain; }
#contact h2 { font-size: 1.25rem !important; }
#contact .card { background: linear-gradient(105deg,#e9f7ff,#efebff); }
a:focus-visible, button:focus-visible { outline: 3px solid #2161ed; outline-offset: 4px; }
@media (max-width: 1199px) and (min-width: 992px) {
  .navbar .navbar-brand { flex-basis: 155px; }
  .navbar .nav-link { padding-right: .4rem; padding-left: .4rem; font-size: .65rem; }
  .navbar .btn { font-size: .65rem; padding-left: .7rem; padding-right: .7rem; }
}
@media (max-width: 991px) {
  .navbar .nav-link { font-size: .9rem; padding: .5rem 0; }
  #home figure img { max-height: 340px; }
  #home .container { padding-bottom: 1.5rem !important; }
  #about .col-lg-3 { max-width: 100%; }
  #process [id^='process-step-'] { flex: 1 1 calc(50% - .7rem); }
  #training figure img { max-height: 190px; }
}
@media (max-width: 767px) {
  .container { padding-left: 1.2rem; padding-right: 1.2rem; }
  .navbar .navbar-brand { flex-basis: auto; margin-right: auto; }
  .navbar .navbar-other { margin-left: 0 !important; }
  #home h1 { font-size: 2rem; }
  #contact .card-body { padding: 1.3rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
/* Karty bloga zachowują pionowy układ i elementy oryginalnego bloku Sandbox. */
#knowledge .card { overflow: hidden; }
#knowledge .card-img-top img { aspect-ratio: 16 / 9; object-fit: cover; }
#knowledge .card-body { padding: 1.25rem; }
#knowledge .card-footer { padding: .8rem 1.25rem; margin-top: auto; }
#knowledge .post-title { font-size: 1rem; line-height: 1.3; }
#knowledge .post-content p { font-size: .75rem; margin-bottom: 0; }
#knowledge .post-meta { font-size: .65rem; }

/* Centrowanie ograniczonych szerokością tekstów w jednokolumnowym hero. */
@media (max-width: 991px) {
  #home h1, #home .lead { margin-left: auto; margin-right: auto; }
}

/* Teksty do czytania: minimum 16 px. Daty i etykiety pomocnicze zachowują swój rozmiar. */
body { font-size: 16px; }
section p:not(.lead), #about .icon-list, #footer address, #footer .widget {
  font-size: 16px !important;
}
#footer p:not(.fs-12) { font-size: 16px; }
/* Jednolity rozmiar CTA: linki ze strzałką i przyciski akcji. */
a.more, #navigation a.btn, #home a.btn, #about a.btn,
#training a.btn, #contact a.btn { font-size: 16px !important; }

/* Menu główne: jednolita typografia i wyrównanie etykiet z rozwijanym menu. */
.navbar .navbar-nav > .nav-item > .nav-link { font-size: 16px !important; line-height: 1.5; }
@media (min-width: 992px) {
  .navbar .navbar-nav > .nav-item > .nav-link { display: flex; align-items: center; padding-top: 1rem; padding-bottom: 1rem; }
  .navbar.navbar-expand-lg .navbar-nav .dropdown:not(.dropdown-submenu) > .dropdown-menu {
    top: calc(100% - 10px); margin-top: 0 !important;
  }
}
/* Połowa dotychczasowego dolnego odstępu pod kolumnami stopki. */
#footer > .container:first-child { padding-bottom: 1.25rem !important; }
@media (min-width: 768px) { #footer > .container:first-child { padding-bottom: 1.75rem !important; } }
#footer nav .nav-link { color: #60697b; font-weight: 500; }
#footer nav .nav-link:hover, #footer nav .nav-link:focus { color: #2161ed; }

.navbar .navbar-nav > .nav-item > .dropdown-toggle::after { line-height: 1; }

/* Uproszczony układ na smartfonach, poniżej progu md Sandbox. */
@media (max-width: 767.98px) {
  #process [id^='process-step-'] { flex: 0 0 100%; width: 100%; }
  #tools { display: none; }
  #knowledge .card-footer { display: none; }
}

/* Strona Kontakt: wszystkie reguły ograniczone do #contact-page. */
#contact-page .breadcrumb { font-size: 14px; }
#contact-page #contact-content textarea { height: 150px; }
#contact-page #contact-content .form-control,
#contact-page #contact-content label,
#contact-page #contact-content address,
#contact-page #contact-content .btn { font-size: 16px; }
@media (min-width: 992px) {
  #contact-page #contact-content .col-lg-4 { border-left: 1px solid #edf1f9; }
}
