/*
Theme Name: DS Paliwa
Theme URI: https://dspaliwa.wielun.pl
Author: olekcodetech
Author URI: https://olekcodetech.pl
Description: Motyw firmowy DS Paliwa sp. z o.o. — paliwa płynne, transport, stacja paliw. Wierne odwzorowanie projektu z panelem do ręcznej edycji cen paliw.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ds-paliwa
*/

/* ==========================================================================
   Globalne resety i ustawienia (odwzorowane 1:1 z projektu)
   Tokeny (kolory, typografia, odstępy) są w assets/css/ds-paliwa-tokens.css
   ========================================================================== */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-body);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
::selection { background: var(--blue-200); }

/* Układ aplikacji */
.ds-app { min-height: 100vh; display: flex; flex-direction: column; background: var(--surface-page); }
.ds-app > main { flex: 1; }

/* Kontener */
.ds-container { width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--space-5); }

/* Sekcja */
.ds-section { padding-block: var(--space-9); }

/* Siatki o równej wysokości kafelków */
.ds-stretch { align-items: stretch; }
.ds-stretch > * { height: 100%; }

/* ---- Responsywność ---- */
@media (max-width: 880px) {
  .ds-desktop-nav { display: none !important; }
  .ds-mobile-toggle { display: flex !important; }
  .ds-hero-grid, .ds-2col { grid-template-columns: 1fr !important; }
  .ds-3col { grid-template-columns: 1fr !important; }
  .ds-4col { grid-template-columns: 1fr 1fr !important; }
  .ds-footer-grid { grid-template-columns: 1fr 1fr !important; }
  .ds-section { padding-block: var(--space-7) !important; }
}
@media (max-width: 560px) {
  .ds-4col, .ds-footer-grid { grid-template-columns: 1fr !important; }
  .ds-util-addr { display: none !important; }
  .ds-util-mail { display: none !important; }
  .ds-hero-stats { gap: 20px 28px !important; }
  .ds-section { padding-block: var(--space-6) !important; }
}

/* ---- Animacja pulsującego wskaźnika (pasek aktualizacji cen) ---- */
@keyframes dsPulse {
  0%   { box-shadow: 0 0 0 0 rgba(47,143,91,0.5); }
  70%  { box-shadow: 0 0 0 7px rgba(47,143,91,0); }
  100% { box-shadow: 0 0 0 0 rgba(47,143,91,0); }
}
.ds-pulse { animation: dsPulse 1.8s infinite; }
@media (prefers-reduced-motion: reduce) { .ds-pulse { animation: none; } }

/* ---- Interakcje (hover/active) odtworzone bez JS ---- */
.ds-btn { transition: transform var(--dur-fast) var(--ease-out), filter var(--dur-fast) var(--ease-out); }
.ds-btn:hover { filter: brightness(1.06); }
.ds-btn:active { transform: translateY(1px); }

.ds-card-interactive { transition: transform var(--dur-mid) var(--ease-out), box-shadow var(--dur-mid) var(--ease-out); }
.ds-card-interactive:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.ds-doc-card { transition: box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.ds-doc-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }

/* Nagłówek przyklejony */
#ds-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--white);
  border-bottom: 1px solid var(--border-subtle);
  transition: box-shadow var(--dur-mid) var(--ease-out), background var(--dur-mid);
}
#ds-header.is-scrolled {
  background: rgba(255,255,255,0.92);
  backdrop-filter: saturate(160%) blur(10px);
  box-shadow: var(--shadow-sm);
}

/* Nawigacja mobilna */
.ds-mobile-nav { display: none; border-top: 1px solid var(--border-subtle); background: var(--white); }
.ds-mobile-nav.is-open { display: block; }
.ds-mobile-toggle { display: none; }

/* Pola formularza – stan focus */
.ds-field:focus { border-color: var(--brand) !important; box-shadow: 0 0 0 3px rgba(46,139,212,0.18); }
