/* =========================================================================
   base.css — reset, body, container, buttons.
   Wydzielone z styles.css (v3.7k refaktor 2026-05-02 noc).
   ========================================================================= */
/* =========================================================================
   RESET + BASE
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }
html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    /* Offset dla wszystkich anchor-linków (#gXXX, #dodatkowe itd.) — żeby sticky
       main-nav (--nav-h = 64px) nie zasłaniał celu po scrollu. Działa zarówno
       dla klików w aplikacji, jak i dla wejścia z hash w URL (reload, deep-link). */
    scroll-padding-top: calc(var(--nav-h, 64px) + 16px);
}
body {
    margin: 0;
    font-family: var(--ff);
    font-size: 16px;
    line-height: 1.6;
    color: var(--text);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--green-800); text-decoration: none; }
a:hover { text-decoration: underline; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4, p { margin: 0; }
ul { list-style: none; padding: 0; margin: 0; }

.container {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding-left: var(--s-4);
    padding-right: var(--s-4);
}

/* =========================================================================
   BUTTONS
   ========================================================================= */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--s-2);
    padding: var(--s-3) var(--s-5);
    border-radius: var(--r-btn);
    border: 1px solid transparent;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.2;
    text-decoration: none;
    transition: all .2s ease;
    min-height: 44px;
}
.btn--primary {
    background: var(--gradient-hero);
    color: #fff;
    box-shadow: var(--shadow-hero);
}
.btn--primary:hover {
    background: linear-gradient(135deg, #1a7a45 0%, #135632 100%);
    color: #fff;
    text-decoration: none;
    transform: translateY(-1px);
}
.btn--warm {
    background: var(--gradient-warm);
    color: #fff;
}
.btn--warm:hover { color: #fff; text-decoration: none; transform: translateY(-1px); }
.btn--ghost {
    background: transparent;
    color: var(--green-800);
    border-color: var(--green-800);
}
.btn--ghost:hover {
    background: var(--green-800);
    color: #fff;
    text-decoration: none;
}
.btn--ghost-white {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,.8);
}
.btn--ghost-white:hover {
    background: #fff;
    color: var(--green-800);
    text-decoration: none;
}
.btn--lg {
    padding: var(--s-4) var(--s-6);
    font-size: 16px;
    min-height: 52px;
}
.btn--block { width: 100%; }
