/* ==========================================================================
   STRONY PRAWNE (.legal) – Polityka prywatności, Regulamin, Polityka cookies
   Ikony: Font Awesome 6 (podpięty w header.php) – wstawiane przez CSS.
   ========================================================================== */

.legal {
    max-width: 960px;
    margin: 0 auto;
    padding: 10px 0 40px;
    font-family: 'Montserrat', sans-serif;
    color: #555555;
    line-height: 1.8;
}
.legal *,
.legal *::before,
.legal *::after { box-sizing: border-box; }

/* Wspólne ustawienia ikon */
.legal .legal-purpose__title::before,
.legal .legal-callout::before,
.legal .legal-rights li::before {
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-style: normal;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    flex-shrink: 0;
}

/* Linki w treści */
.legal .legal-text a,
.legal .legal-rights a,
.legal .legal-callout a,
.legal .legal-ol a {
    color: #8a6d2f !important;
    font-weight: 600;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(223, 197, 133, 0.7);
    word-break: break-word;
    transition: color 0.3s ease, border-color 0.3s ease;
}
.legal .legal-text a:hover,
.legal .legal-rights a:hover,
.legal .legal-callout a:hover,
.legal .legal-ol a:hover {
    color: #1a1a1a !important;
    border-bottom-color: #1a1a1a;
}

/* ==========================================================================
   NAGŁÓWEK
   ========================================================================== */
.legal .legal-hero {
    max-width: 820px;
    margin: 0 auto 40px;
    text-align: center;
}
.legal .legal-eyebrow {
    display: block;
    margin-bottom: 12px;
    color: #8a6d2f;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
}
.legal .legal-hero__title {
    font-family: 'Montserrat', sans-serif !important;
    font-size: clamp(28px, 3.5vw, 40px) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    color: #1a1a1a !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    border: 0 !important;
}
.legal .legal-hero__title strong {
    color: #8a6d2f !important;
    font-weight: 700 !important;
}
.legal .legal-line {
    width: 60px;
    height: 3px;
    margin: 0 auto 24px;
    background: #dfc585;
    border-radius: 999px;
    font-size: 0;
    line-height: 0;
    overflow: hidden;
}
.legal .legal-lead {
    font-size: 15px;
    line-height: 1.85;
    color: #555555;
    text-align: left;
}

/* ==========================================================================
   SPIS TREŚCI
   ========================================================================== */
.legal .legal-toc {
    margin: 0 0 40px;
    padding: 28px 32px;
    background: #ffffff;
    border: 1px solid rgba(223, 197, 133, 0.35);
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}
.legal .legal-toc__title {
    margin-bottom: 16px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1a1a1a;
}
.legal .legal-toc__list {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 4px 30px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    counter-reset: legal-toc;
}
.legal .legal-toc__list li {
    counter-increment: legal-toc;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.5 !important;
}
.legal .legal-toc__list a {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px dashed rgba(223, 197, 133, 0.4);
    font-size: 14px;
    font-weight: 500;
    color: #444444 !important;
    text-decoration: none !important;
    transition: color 0.3s ease, padding-left 0.3s ease;
}
.legal .legal-toc__list a::before {
    content: counter(legal-toc, decimal-leading-zero);
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 700;
    color: #8a6d2f;
}
.legal .legal-toc__list a:hover {
    color: #8a6d2f !important;
    padding-left: 6px;
}

/* ==========================================================================
   SEKCJE
   ========================================================================== */
.legal .legal-section {
    margin: 0 0 22px;
    padding: 34px 38px;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
    scroll-margin-top: 130px; /* żeby sticky header nie zasłaniał nagłówka po kliknięciu w spis treści */
}
.legal .legal-section__head {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(223, 197, 133, 0.3);
}
.legal .legal-section__num {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #f4efe9;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: #8a6d2f;
    line-height: 1;
}
.legal .legal-section__title {
    align-self: center;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 19px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    color: #1a1a1a !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.legal .legal-text {
    margin: 0 0 16px;
    font-size: 15px;
    line-height: 1.85;
    color: #555555;
}
.legal .legal-text:last-child { margin-bottom: 0; }

/* --- Lista z kropkami --- */
.legal .legal-list {
    margin: 0 0 16px !important;
    padding: 0 !important;
    list-style: none !important;
}
.legal .legal-list:last-child { margin-bottom: 0 !important; }
.legal .legal-list li {
    position: relative;
    margin: 0 0 10px !important;
    padding: 0 0 0 26px !important;
    font-size: 15px;
    line-height: 1.75 !important;
    color: #555555;
}
.legal .legal-list li::before {
    content: '';
    position: absolute;
    left: 4px;
    top: 0.72em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #dfc585;
}

/* ==========================================================================
   CELE PRZETWARZANIA – KARTY
   ========================================================================== */
.legal .legal-purposes {
    display: grid;
    gap: 16px;
}
.legal .legal-purpose {
    padding: 22px 24px;
    background: #faf9f7;
    border: 1px solid rgba(223, 197, 133, 0.3);
    border-left: 3px solid #dfc585;
    border-radius: 12px;
}
.legal .legal-purpose__title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
    font-size: 15px;
    font-weight: 700;
    color: #1a1a1a;
}
.legal .legal-purpose__title::before {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 1px solid rgba(223, 197, 133, 0.5);
    color: #8a6d2f;
    font-size: 14px;
}
.legal .legal-purpose--form    .legal-purpose__title::before { content: '\f0e0'; } /* koperta */
.legal .legal-purpose--booking .legal-purpose__title::before { content: '\f236'; } /* łóżko */
.legal .legal-purpose--stats   .legal-purpose__title::before { content: '\f080'; } /* wykres */
.legal .legal-purpose__text {
    font-size: 14px;
    line-height: 1.8;
    color: #555555;
}

/* ==========================================================================
   PRAWA – KAFELKI
   ========================================================================== */
.legal .legal-rights {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 0 0 22px !important;
    padding: 0 !important;
    list-style: none !important;
}
.legal .legal-rights li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0 !important;
    padding: 16px 18px !important;
    background: #faf9f7;
    border: 1px solid rgba(223, 197, 133, 0.3);
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.6 !important;
    color: #444444;
}
.legal .legal-rights li::before {
    content: '\f00c'; /* ptaszek */
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-top: 1px;
    border-radius: 50%;
    background: #8a6d2f;
    color: #ffffff;
    font-size: 11px;
}

/* ==========================================================================
   WYRÓŻNIONA INFORMACJA
   ========================================================================== */
.legal .legal-callout {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-top: 22px;
    padding: 18px 22px;
    background: #fbf8f1;
    border: 1px solid rgba(223, 197, 133, 0.45);
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.75;
    color: #444444;
}
.legal .legal-callout::before {
    content: '\f0e0'; /* koperta */
    margin-top: 3px;
    font-size: 18px;
    color: #8a6d2f;
}

/* ==========================================================================
   REGULAMIN – PARAGRAFY (§) I NUMEROWANE USTĘPY
   ========================================================================== */

/* Spis treści z oznaczeniem "§ 1" zamiast "01" */
.legal .legal-toc__list--par a::before {
    content: '§ ' counter(legal-toc);
    min-width: 34px;
}

/* Znacznik paragrafu w nagłówku sekcji */
.legal .legal-section__num--par {
    width: auto;
    min-width: 48px;
    padding: 0 10px;
    white-space: nowrap;
}

/* Ustępy: 1. 2. 3. ze złotym numerem */
.legal .legal-ol {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    counter-reset: legal-ol;
}
.legal .legal-ol > li {
    position: relative;
    counter-increment: legal-ol;
    margin: 0 !important;
    padding: 14px 0 14px 46px !important;
    border-bottom: 1px dashed rgba(223, 197, 133, 0.35);
    font-size: 15px;
    line-height: 1.8 !important;
    color: #555555;
}
.legal .legal-ol > li:first-child { padding-top: 4px !important; }
.legal .legal-ol > li:last-child { border-bottom: 0; padding-bottom: 0 !important; }
.legal .legal-ol > li::before {
    content: counter(legal-ol);
    position: absolute;
    left: 0;
    top: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #f4efe9;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    color: #8a6d2f;
}
.legal .legal-ol > li:first-child::before { top: 4px; }

/* Punkty wewnątrz ustępu: 1) 2) 3) */
.legal .legal-ol .legal-ol {
    margin: 12px 0 4px !important;
    padding: 14px 18px !important;
    background: #faf9f7;
    border: 1px solid rgba(223, 197, 133, 0.3);
    border-radius: 10px;
    counter-reset: legal-sub;
}
.legal .legal-ol .legal-ol > li {
    counter-increment: legal-sub;
    padding: 6px 0 6px 30px !important;
    border-bottom: 0;
    font-size: 14px;
    line-height: 1.7 !important;
}
.legal .legal-ol .legal-ol > li::before {
    content: counter(legal-sub) ')';
    top: 6px;
    width: auto;
    height: auto;
    background: none;
    border-radius: 0;
    font-size: 13px;
}
.legal .legal-ol .legal-ol > li:first-child { padding-top: 6px !important; }
.legal .legal-ol .legal-ol > li:first-child::before { top: 6px; }
.legal .legal-ol .legal-ol > li:last-child { padding-bottom: 6px !important; }

/* ==========================================================================
   WAŻNA INFORMACJA (np. opłaty) – ciepła czerwień
   ========================================================================== */
.legal .legal-notice {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    max-width: 820px;
    margin: 0 auto 40px;
    padding: 18px 22px;
    background: #fbf3f1;
    border: 1px solid #f0d8d2;
    border-left: 4px solid #b5533c;
    border-radius: 12px;
}
.legal .legal-notice::before {
    content: '\f06a'; /* wykrzyknik w kółku */
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    line-height: 1;
    margin-top: 2px;
    font-size: 20px;
    color: #b5533c;
    flex-shrink: 0;
}
.legal .legal-notice__title {
    margin-bottom: 3px;
    font-size: 15px;
    font-weight: 700;
    color: #6b1c1c;
}
.legal .legal-notice__text {
    font-size: 14px;
    line-height: 1.7;
    color: #7a3a2e;
}
.legal .legal-notice__text strong { color: #4a1a1a !important; }

/* ==========================================================================
   LISTA W FORMIE CHIPSÓW (np. rasy psów)
   ========================================================================== */
.legal .legal-chips {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
    margin: 4px 0 20px !important;
    padding: 0 !important;
    list-style: none !important;
}
.legal .legal-chips li {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 !important;
    padding: 9px 16px !important;
    background: #faf9f7;
    border: 1px solid rgba(223, 197, 133, 0.45);
    border-radius: 30px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4 !important;
    color: #1a1a1a;
}
.legal .legal-chips li::before {
    content: '\f05e'; /* znak zakazu */
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    line-height: 1;
    font-size: 12px;
    color: #b5533c;
}

/* Drobna adnotacja */
.legal .legal-note {
    padding-top: 16px;
    border-top: 1px dashed rgba(223, 197, 133, 0.45);
    font-size: 13px;
    line-height: 1.7;
    color: #777777;
}

/* Wyróżnienie pod nagłówkiem dokumentu (np. godziny otwarcia) */
.legal .legal-callout--top {
    max-width: 820px;
    margin: 0 auto 40px;
}
.legal .legal-callout--clock::before { content: '\f017'; } /* zegar */
.legal .legal-callout strong { color: #1a1a1a !important; }

/* Mała stopka pod dokumentem */
.legal .legal-copy {
    margin-top: 30px;
    padding-top: 16px;
    border-top: 1px solid rgba(223, 197, 133, 0.3);
    font-size: 12px;
    color: #999999;
    text-align: center;
}

/* ==========================================================================
   RESPONSYWNOŚĆ
   ========================================================================== */
@media (max-width: 768px) {
    .legal .legal-ol > li { padding-left: 40px !important; font-size: 14px; }
    .legal .legal-ol .legal-ol { padding: 12px 14px !important; }
    .legal .legal-ol .legal-ol > li { padding-left: 26px !important; }
    .legal .legal-toc { padding: 22px 20px; }
    .legal .legal-toc__list,
    .legal .legal-rights { grid-template-columns: 1fr; }
    .legal .legal-section { padding: 24px 20px; border-radius: 12px; }
    .legal .legal-section__head { gap: 14px; }
    .legal .legal-section__num { width: 38px; height: 38px; font-size: 13px; }
    .legal .legal-section__title { font-size: 17px !important; }
    .legal .legal-purpose { padding: 18px; }
}