/* css/front-page-style.css */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');

:root {
    --primary-color: #cf242b;
    --primary-color-hover: #b21e24;
    --secondary-action-color: #3498db;
    --secondary-action-color-hover: #2980b9;

    --text-dark: #333;
    --text-medium: #444;
    --text-light: #555;
    --text-lighter: #666;
    --text-lightest: #777;

    --background-body: #f8f9fa;
    --background-card: #fff;

    --border-color-light: #eee;
    --border-color-medium: #ddd;
    --border-color-dark: #ccc;

    --border-radius-small: 3px;
    --border-radius-main: 5px;
    --border-radius-large: 8px;

    --font-family-main: 'Roboto', sans-serif;

    --box-shadow-light: 0 2px 10px rgba(0,0,0,0.07);
    --box-shadow-medium: 0 3px 12px rgba(0,0,0,0.09);
    --box-shadow-hover: 0 6px 16px rgba(0,0,0,0.12);
}

body {
    font-family: var(--font-family-main);
    color: var(--text-medium);
    margin: 0;
    line-height: 1.6;
    background-color: var(--background-body);
}

/* --- Przyciski Ogólne --- */
.btn {
    display: inline-block;
    padding: 10px 20px;
    border-radius: var(--border-radius-main);
    text-decoration: none;
    font-weight: 500;
    transition: background-color 0.3s, color 0.3s, border-color 0.3s, opacity 0.3s, box-shadow 0.3s;
    cursor: pointer;
    border: 1px solid transparent;
    text-align: center;
    font-size: 1em;
    line-height: 1.5;
    box-sizing: border-box;
}
.btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(207, 36, 43, 0.3);
}
.btn-primary {
    background-color: var(--primary-color);
    color: white !important;
    border-color: var(--primary-color);
}
.btn-primary:hover {
    background-color: var(--primary-color-hover);
    border-color: var(--primary-color-hover);
    color: white !important;
}
.btn-secondary {
    background-color: var(--secondary-action-color);
    color: white !important;
    border-color: var(--secondary-action-color);
}
.btn-secondary:hover {
    background-color: var(--secondary-action-color-hover);
    border-color: var(--secondary-action-color-hover);
    color: white !important;
}
.btn-secondary:focus-visible {
    box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.3);
}
.btn-outline-primary {
    background-color: transparent;
    color: var(--primary-color) !important;
    border-color: var(--primary-color);
}
.btn-outline-primary:hover {
    background-color: var(--primary-color);
    color: white !important;
}
.btn-outline-secondary {
    background-color: transparent;
    color: var(--secondary-action-color) !important;
    border-color: var(--secondary-action-color);
}
.btn-outline-secondary:hover {
    background-color: var(--secondary-action-color);
    color: white !important;
}
/* --- Koniec Przycisków Ogólnych --- */


/* Style dla top-bar */
.top-bar {
    background-color: var(--background-card);
    padding: 8px 20px;
    text-align: right;
    border-bottom: 1px solid var(--border-color-medium);
    display: flex;
    justify-content: center;
    align-items: center;
}
.top-bar .container{
   display: flex;
   align-items: center;
   justify-content: flex-end;
   max-width: 1200px;
   width: 100%;
   padding: 0 20px;
}
.language-switcher {
    display: flex;
    align-items: center;
    margin-right: 15px;
}
.language-switcher a {
    display: inline-block;
    margin-left: 10px;
    text-decoration: none;
    color: var(--text-dark);
    line-height: 0;
    transition: opacity 0.2s ease;
}
.language-switcher a:first-child { margin-left: 0; }
.language-switcher a:hover { opacity: 0.8; }
.language-switcher img{
    height: 20px; width: auto; vertical-align: middle;
    border: 1px solid var(--border-color-light);
    border-radius: var(--border-radius-small);
}
.intranet-button {
  padding: 6px 12px;
  font-size: 0.9em;
}

/* Main Navigation */
.main-navigation {
    background-color: #f8f8f8;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-color-medium);
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.main-navigation .container {
   display: flex; align-items: center;
   max-width: 1200px; margin: 0 auto; padding: 0 20px;
}
.main-navigation .logo img{ height: 40px; }
.main-navigation ul {
    list-style: none; padding: 0; margin: 0 0 0 auto;
    display: flex; align-items: center;
}
.main-navigation li { margin-left: 25px; }
.main-navigation a {
    text-decoration: none; color: var(--text-light); font-weight: 500;
    padding: 8px 12px;
    transition: color 0.3s, background-color 0.3s;
    border-radius: var(--border-radius-main);
    font-size: 0.95em;
}
.main-navigation a:hover, .main-navigation a.active, .main-navigation a:focus-visible {
    color: white; background-color: var(--primary-color);
    outline: none;
}

/* Hero Section */
.hero-section{
   display: flex; align-items: center; justify-content: space-between;
   max-width: 1200px; margin: 40px auto;
   padding: 50px 30px; gap: 40px;
   background-color: var(--background-card);
   border-radius: var(--border-radius-large);
   box-shadow: var(--box-shadow-light);
}
.hero-content{ flex: 1.2; padding-right: 30px; }
.hero-content h1{
    font-size: 2.8em; color: var(--text-dark); margin-bottom: 0.6em;
    font-weight: 700; line-height: 1.2;
}
.hero-content h1 span{ color: var(--primary-color); }
.hero-content p {
    color: var(--text-light); margin-bottom: 2em;
    font-size: 1.05em;
    line-height: 1.7;
}
.hero-image { flex: 0.8; max-width: 45%; text-align: center; }
.hero-image img{ max-width: 100%; height: auto; border-radius: var(--border-radius-large); }
.hero-button.calculator-button {
   padding: 12px 25px;
   font-size: 1.05em;
   margin-top: 10px;
}

/* --- Packages Section --- */
.packages-section {
    max-width: 1200px; margin: 60px auto;
    padding: 40px 20px; text-align: center;
    background-color: var(--background-body);
}
.packages-section .section-title {
    font-size: 2.5em; margin-bottom: 1.2em;
    color: var(--text-dark); font-weight: 600;
}
.packages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    align-items: stretch;
}
.package-card {
    background-color: var(--background-card);
    border: 1px solid var(--border-color-medium);
    border-radius: var(--border-radius-large);
    padding: 30px 25px;
    box-shadow: var(--box-shadow-light);
    transition: transform 0.3s, box-shadow 0.3s;
    display: flex;
    flex-direction: column;
    text-align: left;
}
.package-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--box-shadow-hover);
}
.package-card.recommended {
    border-top: 5px solid var(--primary-color);
    position: relative;
}
.package-card.recommended::before {
    content: attr(data-recommended-label);
    position: absolute;
    top: -1px;
    right: 20px;
    background-color: var(--primary-color);
    color: white;
    padding: 5px 12px;
    font-size: 0.8em;
    font-weight: 500;
    border-radius: 0 0 var(--border-radius-main) var(--border-radius-main);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.package-name {
    font-size: 1.7em;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 15px;
}
.package-price {
    font-size: 3em;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 5px;
    line-height: 1;
}
.package-period {
    font-size: 0.95em;
    color: var(--text-lightest);
    margin-bottom: 25px;
}
.package-features {
    list-style: none;
    padding: 0;
    margin-bottom: 30px;
    flex-grow: 1;
}
.package-features li {
    margin-bottom: 12px;
    color: var(--text-light);
    font-size: 0.95em;
    display: flex;
    align-items: flex-start;
}
.package-features li::before {
    content: '✓';
    color: #28a745;
    margin-right: 10px;
    font-weight: bold;
    line-height: 1.5;
    flex-shrink: 0;
}
.package-cta {
    padding: 12px 20px;
    font-size: 1.05em;
    margin-top: auto;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
}
/* --- Koniec Packages Section --- */

/* Login Modal */
.modal {
    display: none; position: fixed; z-index: 1000;
    left: 0; top: 0; width: 100%; height: 100%;
    overflow: auto; background-color: rgba(0,0,0,0.6); padding-top: 60px;
}
.modal-content {
    background-color: var(--background-card); margin: 5% auto; padding: 30px;
    border: none; width: 90%; max-width: 650px;
    border-radius: var(--border-radius-large);
    box-shadow: 0 5px 15px rgba(0,0,0,0.3); position: relative;
}
.close-button {
    color: #aaa; position: absolute; top: 10px; right: 15px;
    font-size: 32px; font-weight: bold; cursor: pointer; line-height: 1;
}
.close-button:hover, .close-button:focus-visible { color: var(--text-dark); text-decoration: none; outline: none;}
.login-header { margin-bottom: 25px; text-align: center; }
.login-logo{ max-width: 180px; margin-bottom: 15px; }
.login-header h2 { font-weight: 500; color: var(--text-dark); margin: 0; }
.login-form { display: flex; flex-direction: column; }
.form-group { margin-bottom: 15px; }
.input-field {
    width: 100%; padding: 12px; border: 1px solid var(--border-color-dark);
    border-radius: var(--border-radius-main); box-sizing: border-box;
    font-size: 1em;
}
.input-field:focus-visible {
    border-color: var(--primary-color);
    outline: none;
    box-shadow: 0 0 0 3px rgba(207, 36, 43, 0.2);
}
.login-button {
   padding: 12px 20px;
   width: 100%;
   margin-top: 10px;
}
.error {
    color: var(--primary-color);
    margin-top: 15px; font-size: 0.9em; text-align: center;
}
.modal.show { display: block; animation: fadeIn 0.3s ease-out; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* Calculator Page & Calculator Styles */
.calculator-page-container {
    max-width: 1200px; margin: 30px auto; padding: 0 20px;
}
.selling-price-calculator-section {
    background-color: var(--background-card);
    padding: 30px 20px; margin-bottom: 30px;
    border-radius: var(--border-radius-large);
    box-shadow: var(--box-shadow-light);
}
.selling-price-calculator-section h2 {
    text-align: center; margin-bottom: 1.5em; font-size: 2em;
    font-weight: 600; color: var(--text-dark);
}
.calculator-form-grid { display: flex; gap: 30px; flex-wrap: wrap; }
.calculator-column {
    flex: 1; min-width: 300px; padding: 20px;
    border: 1px solid var(--border-color-light);
    border-radius: var(--border-radius-main);
    background-color: #fdfdfd;
}
.calculator-column h4 {
    margin-top: 0; margin-bottom: 20px; font-size: 1.4em; font-weight: 500;
    color: var(--text-medium); border-bottom: 1px solid var(--border-color-light);
    padding-bottom: 10px;
}
.calculator-column h5 {
    font-size: 1.1em; color: var(--primary-color);
    margin-top: 20px; margin-bottom: 10px; padding-bottom: 5px;
    border-bottom: 1px dashed var(--border-color-medium);
    user-select: none;
}
.calculator-column .form-group label {
    display: block; margin-bottom: 5px; font-size: 0.9em; color: var(--text-light);
    user-select: none;
}
.calculator-column .checkbox-group label { margin-left: 5px; font-weight: normal; cursor: pointer; }
.calculator-column .checkbox-group input[type="checkbox"] { vertical-align: middle; cursor: pointer; margin-right: 5px;}
.calculator-column .dynamic-options-container {
    border: 1px solid var(--border-color-light); padding: 10px; margin-top: 10px;
    border-radius: var(--border-radius-main); background-color: #f9f9f9;
}
.calculator-column .dynamic-options-container h6 {
    margin-top: 0; margin-bottom: 8px; font-size: 0.95em; color: var(--text-dark);
}
.calculator-column .dynamic-options-container .checkbox-group { margin-bottom: 3px; }
.calculator-column .form-group input[type="number"],
.calculator-column .form-group select {
    width: 100%; padding: 8px 10px; border: 1px solid var(--border-color-dark);
    border-radius: var(--border-radius-main); box-sizing: border-box; font-size: 0.95em;
}
.calculator-column .form-group input[type="number"]:focus-visible,
.calculator-column .form-group select:focus-visible {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.2rem rgba(207, 36, 43, 0.25);
    outline: 0;
}
.form-group-radio { margin-bottom: 8px; display: flex; align-items: center; }
.form-group-radio input[type="radio"] { margin-right: 8px; }
.form-group-radio label { font-weight: normal; font-size: 0.9em; color: var(--text-light); cursor: pointer; }
.calculator-column .form-group #calcDesiredReturnValue {
    display: inline-block; width: auto; max-width: 120px; margin-right: 5px;
}
.calculator-column .form-group #desiredReturnUnit { font-size: 0.9em; color: var(--text-lighter); }
.results-column .result-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 0; border-bottom: 1px dotted var(--border-color-light); font-size: 0.95em;
}
.results-column .result-item:last-child { border-bottom: none; }
.results-column .result-item strong { color: var(--text-dark); font-weight: 500; margin-right: 10px; }
.results-column .result-item em {
    color: var(--text-light); font-style: normal; font-size: 0.85em;
    display: block; width: 100%; text-align: right; margin-top: -8px; padding-right: 25px;
}
.results-column .result-item span:not(.result-currency) {
    font-weight: bold; color: #28a745; font-size: 1.05em;
}
.results-column .result-item #resultProfitNet[data-negative="true"] { color: #dc3545; }
.results-column .result-currency { margin-left: 5px; color: var(--text-lightest); font-size: 0.9em; }

/* Style dla article.php */
.article-page-container { max-width: 800px; margin: 30px auto; padding: 0 20px; }
.article-content-section {
    background-color: var(--background-card); padding: 30px;
    border-radius: var(--border-radius-large); box-shadow: var(--box-shadow-medium);
}
.article-title {
    font-size: 2.2em; font-weight: 700; margin-bottom: 0.6em;
    color: var(--text-dark); line-height: 1.3;
}
.article-meta {
    font-size: 0.85em; color: #95a5a6; margin-bottom: 2em;
    padding-bottom: 1em; border-bottom: 1px solid var(--border-color-light);
    display: flex; flex-wrap: wrap; gap: 8px 18px;
}
.article-meta span { display: inline-flex; align-items: center; }
.article-meta img { width: 14px; height: 14px; margin-right: 6px; opacity: 0.65; }
.article-featured-image img {
    max-width: 100%; height: auto; border-radius: var(--border-radius-large);
    margin-bottom: 2.2em; display: block; border: 1px solid var(--border-color-light);
    box-shadow: 0 5px 15px rgba(0,0,0,0.07);
}
.article-body { line-height: 1.85; color: #34495e; font-size: 1.08rem; }
.article-body h1, .article-body h2, .article-body h3, .article-body h4, .article-body h5, .article-body h6 {
    margin-top: 2em; margin-bottom: 0.8em; color: #2c3e50;
    line-height: 1.4; font-weight: 600;
}
.article-body h1 { font-size: 1.9em; }
.article-body h2 { font-size: 1.7em; border-bottom: 1px solid var(--border-color-light); padding-bottom: 0.4em;}
.article-body h3 { font-size: 1.5em; }
.article-body h4 { font-size: 1.3em; color: #34495e; }
.article-body p { margin-bottom: 1.5em; }
.article-body ul, .article-body ol { margin-left: 20px; margin-bottom: 1.5em; padding-left: 10px; }
.article-body li { margin-bottom: 0.7em; }
.article-body blockquote {
    border-left: 4px solid var(--secondary-action-color); padding: 15px 25px; margin: 2em 0;
    background-color: #f8f9fa; color: var(--text-light); font-style: normal;
    border-radius: 0 var(--border-radius-main) var(--border-radius-main) 0;
}
.article-body blockquote p:last-child { margin-bottom: 0; }
.article-body img.in-content-image, .article-body img {
    max-width: 100%; height: auto; border-radius: var(--border-radius-main);
    margin: 25px auto; display: block; box-shadow: 0 3px 10px rgba(0,0,0,0.1);
    border: 1px solid var(--border-color-medium);
}
.article-body a {
    color: var(--secondary-action-color); text-decoration: none;
    border-bottom: 1px dotted var(--secondary-action-color);
    transition: color 0.2s, border-color 0.2s;
}
.article-body a:hover { color: var(--secondary-action-color-hover); border-bottom-color: var(--secondary-action-color-hover);}
.article-body pre {
    background-color: #2d2d2d; border: 1px solid #222; color: #f8f8f2;
    display: block; font-family: 'Consolas', 'Monaco', 'Menlo', monospace;
    font-size: 0.9em; line-height: 1.7; margin-bottom: 1.8em; overflow: auto;
    padding: 1.2em 1.8em; border-radius: var(--border-radius-main);
    white-space: pre-wrap; word-wrap: break-word;
}
.back-to-blog-link {
    margin-top: 3em;
    font-size: 1em;
    padding: 10px 20px;
}
.article-error-message {
    padding: 20px; text-align: center; background-color: var(--background-card);
    border-radius: var(--border-radius-large); box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

/* Style dla blog.php */
.blog-page-container { max-width: 900px; margin: 30px auto; padding: 0 20px; }
.blog-page-container > h1 {
    text-align: center; margin-bottom: 40px; font-size: 2.5em;
    font-weight: 600; color: var(--text-dark);
}
.blog-post-item {
    background-color: var(--background-card); padding: 20px; margin-bottom: 30px;
    border-radius: var(--border-radius-large); box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    display: flex; gap: 25px;
}
.blog-post-item-image { flex-shrink: 0; width: 240px; height: 170px; }
.blog-post-item-image img {
    width: 100%; height: 100%; object-fit: cover;
    border-radius: var(--border-radius-main); display: block;
    border: 1px solid var(--border-color-light);
}
.blog-post-item-content { flex-grow: 1; display: flex; flex-direction: column; }
.blog-post-item-content h2 {
    font-size: 1.6em; line-height: 1.35; margin-top: 0; margin-bottom: 0.5em;
}
.blog-post-item-content h2 a {
    color: #2c3e50; text-decoration: none; transition: color 0.2s ease-in-out;
}
.blog-post-item-content h2 a:hover { color: var(--primary-color); }
.blog-post-meta { font-size: 0.8em; color: #7f8c8d; margin-bottom: 12px; }
.blog-post-meta .date, .blog-post-meta .author {
    margin-right: 15px; display: inline-flex; align-items: center;
}
.blog-post-meta img { width: 13px; height: 13px; margin-right: 5px; opacity: 0.6; }
.blog-post-excerpt p {
    font-size: 0.95em; color: var(--text-light); line-height: 1.65;
    margin-top: 0; margin-bottom: 15px; overflow: hidden; display: -webkit-box;
    -webkit-line-clamp: 3; -webkit-box-orient: vertical; max-height: calc(1.65em * 3);
}
.read-more-btn {
    padding: 8px 18px; font-size: 0.9em;
    margin-top: auto; align-self: flex-start;
}
.blog-pagination { text-align: center; margin-top: 40px; margin-bottom: 40px; }
.blog-pagination a, .blog-pagination span {
    display: inline-block; padding: 9px 15px; margin: 0 4px;
    border: 1px solid #bdc3c7; text-decoration: none; color: #34495e;
    border-radius: var(--border-radius-main);
    transition: background-color 0.2s, color 0.2s;
}
.blog-pagination a:hover, .blog-pagination a:focus-visible {
    background-color: var(--border-color-light); color: #2c3e50;
    outline: none;
}
.blog-pagination span.current {
    background-color: var(--primary-color); color: white;
    border-color: var(--primary-color); font-weight: bold;
}
.no-posts-message {
    text-align: center; padding: 50px 20px; background-color: var(--background-card);
    border-radius: var(--border-radius-large); box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    font-size: 1.15em; color: #7f8c8d;
}

/* Style dla sekcji bloga na stronie głównej (z index.php) */
.latest-blog-section {
    max-width: 1200px; margin: 50px auto; padding: 30px 20px;
    background-color: var(--background-body);
    border-radius: var(--border-radius-large);
}
.latest-blog-section .section-title {
    font-size: 2.2em; color: var(--text-dark); margin-bottom: 1em;
    text-align: center; font-weight: 600;
}
.blog-posts-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px;
}
.blog-post-card {
    background-color: var(--background-card); border-radius: var(--border-radius-large);
    box-shadow: var(--box-shadow-light); overflow: hidden;
    display: flex; flex-direction: column;
    transition: transform 0.3s, box-shadow 0.3s;
}
.blog-post-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--box-shadow-hover);
}
.blog-post-card-image img {
    width: 100%; height: 200px; object-fit: cover; display: block;
    border-bottom: 1px solid var(--border-color-light);
}
.blog-post-card-content { padding: 20px; flex-grow: 1; display: flex; flex-direction: column; }
.blog-post-card-content h3 { font-size: 1.5em; line-height: 1.3; margin-top: 0; margin-bottom: 0.6em; }
.blog-post-card-content h3 a { color: #2c3e50; text-decoration: none; transition: color 0.2s; }
.blog-post-card-content h3 a:hover { color: var(--primary-color); }
.blog-post-card-meta { font-size: 0.8em; color: #7f8c8d; margin-bottom: 10px; }
.blog-post-card-meta .date, .blog-post-card-meta .author {
    margin-right: 10px; display: inline-flex; align-items: center;
}
.blog-post-card-meta img { width:13px; height:13px; margin-right:4px; opacity:0.6; }
.blog-post-card-excerpt {
    font-size: 0.95em; color: var(--text-light); line-height: 1.6;
    margin-bottom: 15px; flex-grow: 1; overflow: hidden; display: -webkit-box;
    -webkit-line-clamp: 3; -webkit-box-orient: vertical; max-height: calc(1.6em * 3);
}
.blog-post-card-readmore {
    padding: 8px 15px; font-size: 0.9em;
    margin-top: auto; align-self: flex-start;
}
.view-all-blog-link {
    display: block; text-align: center; margin-top: 30px;
    font-size: 1.1em; font-weight: 500;
    padding: 10px;
}

/* Style dla strony kontaktowej (z contact.php) */
.contact-page-container { max-width: 700px; margin: 40px auto; padding: 0 20px; }
.contact-section {
    background-color: var(--background-card); padding: 30px;
    border-radius: var(--border-radius-large); box-shadow: var(--box-shadow-light);
}
.contact-section h2 {
    text-align: center; margin-bottom: 1.5em; font-size: 2.2em;
    font-weight: 600; color: var(--text-dark);
}
.contact-form .form-group { margin-bottom: 20px; }
.contact-form label {
    display: block; margin-bottom: 8px; font-weight: 500;
    color: var(--text-medium); font-size: 0.95em;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
    width: 100%; padding: 12px; border: 1px solid var(--border-color-dark);
    border-radius: var(--border-radius-main); box-sizing: border-box;
    font-family: var(--font-family-main); font-size: 1em;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.contact-form input[type="text"]:focus-visible,
.contact-form input[type="email"]:focus-visible,
.contact-form textarea:focus-visible {
    border-color: var(--primary-color); outline: none;
    box-shadow: 0 0 0 3px rgba(207, 36, 43, 0.15);
}
.contact-form textarea { min-height: 150px; resize: vertical; }
.contact-form button[type="submit"] {
    display: block; width: 100%; padding: 12px 20px;
    font-size: 1.1em;
}
.contact-form-message {
    padding: 15px; margin-bottom: 20px;
    border-radius: var(--border-radius-main);
    font-size: 0.95em; text-align: center;
}
.contact-form-message.success {
    background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb;
}
.contact-form-message.error {
    background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb;
}
.contact-info {
    margin-top: 30px; padding-top: 20px;
    border-top: 1px solid var(--border-color-light); text-align: center;
}
.contact-info p { margin-bottom: 8px; color: var(--text-light); }

/* Style dla strony kursów NBP (z nbp-kursy-walut.php) */
.nbp-rates-page-container {
    max-width: 900px; margin: 30px auto; padding: 0 20px;
}
.nbp-rates-section {
    background-color: var(--background-card); padding: 30px 20px; margin-bottom: 30px;
    border-radius: var(--border-radius-large); box-shadow: var(--box-shadow-light);
}
.nbp-rates-section h2 {
    text-align: center; margin-bottom: 1.5em; font-size: 2em;
    font-weight: 600; color: var(--text-dark);
}
.nbp-rates-section table { width: 100%; border-collapse: collapse; margin-top: 20px; }
.nbp-rates-section th, .nbp-rates-section td {
    border: 1px solid var(--border-color-medium); padding: 10px 12px; text-align: left;
}
.nbp-rates-section th { background-color: #f0f0f0; font-weight: 500; }
.nbp-rates-section tr:nth-child(even) td { background-color: #f9f9f9; }
.nbp-rates-section .api-error-message {
    color: #D8000C; background-color: #FFD2D2; border: 1px solid #D8000C;
    padding: 15px; border-radius: var(--border-radius-main);
    text-align: center; margin-bottom: 20px;
}
.nbp-info-text {
    margin-bottom: 15px; font-size: 0.95em; color: var(--text-light); text-align: center;
}
.nbp-data-source {
    font-size: 0.85em; color: var(--text-lightest); margin-top: 25px; text-align: center;
}

/*Dodatkowe style dla responsywności */
@media (max-width: 992px) {
    .main-navigation .container { flex-direction: column; align-items: flex-start; }
    .main-navigation ul { margin-left: 0; margin-top: 10px; width: 100%; justify-content: center; }
    .main-navigation li { margin-left: 15px; margin-right: 15px; }
    .hero-section { flex-direction: column; text-align: center; margin-top: 20px; padding: 30px 20px; gap: 30px;}
    .hero-content { padding-right: 0; order: 2; }
    .hero-content h1 { font-size: 2.2em; }
    .hero-content p { font-size: 1em; }
    .hero-image { flex: none; max-width: 70%; text-align: center; order: 1; margin-bottom: 20px; }
    .packages-section { margin: 40px auto; padding: 30px 15px;}
    .packages-section .section-title { font-size: 2.2em; }
    .calculator-form-grid { flex-direction: column; }
}

@media (max-width: 768px){
    .top-bar .container { padding: 0 10px; }
    .language-switcher { margin-right: 10px; }
    .language-switcher a { margin-left: 8px; }
    .language-switcher img { height: 18px; }
    .intranet-button { padding: 5px 10px; font-size: 0.85em; }
    .main-navigation ul { flex-wrap: wrap; justify-content: center; }
    .main-navigation li { margin: 5px 10px; }
    .hero-content h1 { font-size: 1.8em; }
    .hero-image { max-width: 80%; }
    .modal-content { padding: 20px; }
    .packages-grid { grid-template-columns: 1fr; }
    .package-name { font-size: 1.5em;}
    .package-price { font-size: 2.5em;}
    .selling-price-calculator-section h2 { font-size: 1.7em; }
    .calculator-column h4 { font-size: 1.25em; }

    .blog-post-item { flex-direction: column; gap: 15px; }
    .blog-post-item-image { width: 100%; height: 200px; }
    .blog-post-item-content h2 { font-size: 1.4em; }
    .blog-post-excerpt p { -webkit-line-clamp: 4; max-height: calc(1.65em * 4); }

    .blog-post-card-image img { height: 180px; }
    .blog-post-card-content h3 { font-size: 1.3em; }

    .nbp-rates-section table,
    .nbp-rates-section thead,
    .nbp-rates-section tbody,
    .nbp-rates-section th,
    .nbp-rates-section td,
    .nbp-rates-section tr { display: block; }
    .nbp-rates-section thead tr { position: absolute; top: -9999px; left: -9999px; }
    .nbp-rates-section tr { border: 1px solid var(--border-color-dark); margin-bottom: 10px; border-radius: var(--border-radius-main); }
    .nbp-rates-section td {
        border: none; border-bottom: 1px solid var(--border-color-light);
        position: relative; padding-left: 45%; padding-top: 12px; padding-bottom: 12px;
        text-align: right; min-height: 30px; line-height: 1.4;
    }
    .nbp-rates-section td:before {
        position: absolute; top: 50%; transform: translateY(-50%); left: 12px;
        width: 40%; padding-right: 10px; white-space: nowrap;
        content: attr(data-label); font-weight: bold; text-align: left; color: var(--text-medium);
    }
    .nbp-rates-section td:last-child { border-bottom: none; }
}

@media (max-width: 480px) {
    .hero-content h1 { font-size: 1.6em; }
    .hero-image { max-width: 100%; }
    .main-navigation .container { padding: 0 10px; }
    .main-navigation li { margin-left: 10px; }
    .main-navigation a { padding: 6px 8px; font-size: 0.9em; }
    .modal-content { width: 95%; margin: 10% auto; }
    .packages-section .section-title { font-size: 1.8em; }
    .package-card { padding: 20px 15px; }
    .calculator-column { padding: 15px; }
}

/* Style dla stron błędów */
.error-page-content-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 200px);
    text-align: center;
    padding: 20px;
}
.error-page-content-wrapper .logo img {
    display: block;
    width: 120px;
    height: auto;
    margin: 0 auto 30px auto;
}
.error-page-content-wrapper .title {
    margin-top: 24px;
    font-size: 60px;
    font-weight: 700;
    color: var(--text-dark);
    letter-spacing: 2px;
    line-height: 1;
    margin-bottom: 15px;
}
.error-page-content-wrapper .desc {
    margin-top: 0;
    font-size: 1.1em;
    color: var(--text-light);
    line-height: 1.6;
    max-width: 500px;
}
.error-page-content-wrapper .btn-home {
    margin-top: 30px;
    padding: 12px 30px;
    font-size: 1.05em;
}