/* ============================================================
   Federacja Armwrestling Polska — Main Layout
   Wzorowany na armwrestling.pl (3-kolumny: nav | content | right)
   Font: Raleway | Bootstrap 3 | Kolor główny: #1a1a1a + #d32f2f
   ============================================================ */

* { box-sizing: border-box; }

/* Override Bootstrap 3's html { font-size: 10px } */
html { font-size: 16px !important; }

body {
    font-family: 'Raleway', sans-serif !important;
    font-weight: 400;
    font-size: 15px !important;
    line-height: 1.65 !important;
    background: #f0f0f0;
    color: #333;
    margin: 0;
    padding: 0;
}

/* ---- 3-COLUMN LAYOUT ---- */
.main-container {
    display: flex;
    min-height: 100vh;
    max-width: 1400px;
    margin: 0 auto;
    background: #fff;
    box-shadow: 0 0 20px rgba(0,0,0,.15);
}

/* LEFT — fixed nav sidebar */
.main-container__left {
    width: 220px;
    flex-shrink: 0;
    position: relative;
}
.main-container__left--fixed-div {
    position: sticky;
    top: 0;
    width: 220px;
    height: 100vh;
    background: #1a1a1a;
    overflow-y: auto;
    z-index: 100;
    display: flex;
    flex-direction: column;
}

/* CENTER — main content */
.main-container__center {
    flex: 1;
    padding: 24px 28px;
    min-width: 0;
    background: #fff;
    font-size: 15px;
    line-height: 1.65;
}

/* RIGHT — photo/sidebar column */
.main-container__right {
    width: 200px;
    flex-shrink: 0;
    background: #f7f7f7;
    border-left: 1px solid #e0e0e0;
    padding: 16px 12px;
    font-size: 14px;
}

/* ---- NAVIGATION ---- */
.navigation {
    background: #1a1a1a;
    flex: 1;
}

.navigation__logo-wrap {
    display: block;
    padding: 24px 20px 20px;
    text-align: center;
    border-bottom: 1px solid #333;
}
.navigation__logo {
    max-width: 160px;
    height: auto;
}

.navigation__ul {
    list-style: none;
    margin: 0;
    padding: 10px 0;
}

.navigation__ul li a {
    display: block;
    padding: 11px 20px;
    color: #ccc;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: .5px;
    text-transform: uppercase;
    border-left: 3px solid transparent;
    transition: all .15s;
}
.navigation__ul li a:hover,
.navigation__ul li.active a {
    color: #fff;
    background: #2a2a2a;
    border-left-color: #d32f2f;
}

/* Sub-menu (O Nas) */
.navigation__ul li.has-submenu > a::after {
    content: ' ▾';
    font-size: 11px;
}
.navigation__submenu {
    list-style: none;
    padding: 0;
    margin: 0;
    background: #111;
    display: none;
}
.navigation__submenu li a {
    padding: 8px 20px 8px 32px;
    font-size: 13px;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    border-left: 3px solid transparent;
}
.navigation__submenu li a:hover { border-left-color: #d32f2f; color: #fff; background: #1a1a1a; }
.navigation__ul li.has-submenu.open .navigation__submenu { display: block; }
.navigation__ul li.has-submenu.open > a { color: #fff; }

/* Mobile toggle button */
.nav-mobile-toggle {
    display: none;
    align-items: center;
    gap: 12px;
    background: #1a1a1a;
    color: #fff;
    border: none;
    width: 100%;
    padding: 12px 20px;
    font-size: 17px;
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.nav-mobile-toggle .logo-mobile { height: 36px; display: block; }

/* Footer in nav sidebar */
.navigation__footer {
    padding: 16px 20px;
    border-top: 1px solid #333;
    margin-top: auto;
}
.navigation__footer .social-icons a {
    color: #aaa;
    font-size: 19px;
    margin-right: 10px;
}
.navigation__footer .social-icons a:hover { color: #d32f2f; }

/* ---- CONTENT AREA ---- */
.page-header-text {
    font-size: 26px;
    font-weight: 700;
    color: #1a1a1a;
    border-bottom: 3px solid #d32f2f;
    padding-bottom: 8px;
    margin-bottom: 20px;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.section-header {
    font-size: 18px;
    font-weight: 700;
    color: #d32f2f;
    text-transform: uppercase;
    letter-spacing: .5px;
    margin: 24px 0 12px;
    border-left: 4px solid #d32f2f;
    padding-left: 10px;
}

/* ---- NEWS GRID ---- */
.news-grid { display: flex; flex-direction: column; gap: 0; }
.news-card {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
    transition: box-shadow .2s;
    margin-bottom: 10px;
}
.news-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.news-card__thumb { flex-shrink: 0; width: 100px; height: 75px; overflow: hidden; }
.news-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-card__img { width: 100%; height: 180px; object-fit: cover; display: block; }
.news-card__body { padding: 10px 14px; flex: 1; min-width: 0; }
.news-card__category { font-size: 12px; font-weight: 700; color: #d32f2f; text-transform: uppercase; margin-bottom: 4px; }
.news-card__title { font-size: 15px; font-weight: 700; color: #1a1a1a; line-height: 1.35; margin-bottom: 4px; }
.news-card__title a { color: inherit; text-decoration: none; }
.news-card__title a:hover { color: #d32f2f; }
.news-card__meta { font-size: 12px; color: #888; }
.news-card__excerpt { font-size: 14px; color: #555; margin-top: 6px; line-height: 1.55; }

/* Hero news card (full width, vertical) */
.news-card--hero { flex-direction: column; margin-bottom: 20px; }
.news-card--hero .news-card__thumb { display: none; }
.news-card--hero .news-card__img { height: 300px; }
.news-card--hero .news-card__title { font-size: 22px; }
.news-card--hero .news-card__body { padding: 14px; }

/* ---- THUMB PLACEHOLDER ---- */
.thumb-placeholder { width: 100%; height: 100%; background: #1a1a1a; display: flex; align-items: center; justify-content: center; }
.thumb-placeholder img { width: 52px; height: auto; opacity: .35; }

/* ---- EVENT CARD WITH THUMB ---- */
.event-card__thumb { flex-shrink: 0; width: 80px; height: 60px; overflow: hidden; border-radius: 3px; margin-right: 12px; }
.event-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---- RIGHT COLUMN ---- */
.main-container__right .side-photo {
    display: block;
    margin-bottom: 10px;
}
.main-container__right .side-photo img {
    width: 100%;
    border-radius: 3px;
    display: block;
}
.right-widget { margin-bottom: 20px; }
.right-widget__title {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #1a1a1a;
    border-bottom: 2px solid #d32f2f;
    padding-bottom: 5px;
    margin-bottom: 10px;
}
.right-widget ul { list-style: none; padding: 0; margin: 0; }
.right-widget ul li { border-bottom: 1px solid #eee; padding: 6px 0; }
.right-widget ul li a { font-size: 13px; color: #333; text-decoration: none; line-height: 1.4; }
.right-widget ul li a:hover { color: #d32f2f; }
.right-widget ul li small { display: block; color: #999; font-size: 12px; }

/* ---- ARTICLE ---- */
.article-body { font-size: 16px; line-height: 1.85; color: #333; }
.article-body img { max-width: 100%; height: auto; border-radius: 3px; margin: 10px 0; }
.article-body table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 14px; }
.article-body table th { background: #1a1a1a; color: #fff; padding: 7px 10px; }
.article-body table td { padding: 6px 10px; border-bottom: 1px solid #e5e5e5; }
.article-body table tr:nth-child(even) td { background: #f9f9f9; }
.color-red { color: #d32f2f; }

/* ---- RESULTS TABLE ---- */
.results-content table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 14px; }
.results-content table th { background: #1a1a1a; color: #fff; padding: 7px 10px; white-space: nowrap; }
.results-content table td { padding: 6px 10px; border-bottom: 1px solid #e5e5e5; }
.results-content table tr:nth-child(even) td { background: #f9f9f9; }

/* ---- RESULTS BODY (individual/team results) ---- */
.results-body { font-size: 14px; }
.results-body p { margin: 0; padding: 0; }
.results-cat {
    font-weight: 700;
    font-size: 13px;
    color: #1a1a1a;
    text-transform: uppercase;
    letter-spacing: .3px;
    padding-top: 14px !important;
    padding-bottom: 4px !important;
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 2px !important;
}
.results-row {
    font-size: 13px;
    color: #333;
    padding-top: 1px !important;
    padding-bottom: 1px !important;
    line-height: 1.5;
}

/* ---- EVENTS / CALENDAR ---- */
.event-card {
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    padding: 14px;
    margin-bottom: 12px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
}
.event-card__date {
    min-width: 60px;
    text-align: center;
    background: #1a1a1a;
    color: #fff;
    border-radius: 3px;
    padding: 8px 4px;
}
.event-card__date .day { font-size: 24px; font-weight: 700; line-height: 1; }
.event-card__date .month { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; }
.event-card__body { flex: 1; }
.event-card__title { font-weight: 700; font-size: 17px; color: #1a1a1a; margin-bottom: 3px; }
.event-card__title a { color: inherit; text-decoration: none; }
.event-card__title a:hover { color: #d32f2f; }
.event-card__meta { font-size: 14px; color: #777; }
.event-card__typ { display: inline-block; padding: 1px 7px; border-radius: 2px; font-size: 11px; font-weight: 700; }
.event-card__typ--mp { background: #1a1a1a; color: #fff; }
.event-card__typ--pp { background: #d32f2f; color: #fff; }

/* ---- GALERIA ---- */
.gallery-year-tab { margin-bottom: 16px; }
.gallery-year-tab .btn { margin: 2px; border-radius: 2px; font-size: 13px; }
.gallery-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.gallery-grid__item { flex: 0 0 calc(25% - 6px); }
.gallery-grid__item img { width: 100%; height: 150px; object-fit: cover; border-radius: 3px; cursor: pointer; transition: opacity .2s; }
.gallery-grid__item img:hover { opacity: .85; }

/* ---- KLUBY ---- */
.klub-item {
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    padding: 14px 16px;
    margin-bottom: 10px;
    border-left: 4px solid #1a1a1a;
}
.klub-item h5 { color: #1a1a1a; font-weight: 700; margin-bottom: 4px; font-size: 17px; }
.klub-item .meta { font-size: 14px; color: #666; }

/* ---- ZARZĄD ---- */
.zarzad-grid { display: flex; flex-wrap: wrap; gap: 16px; }
.zarzad-card {
    flex: 0 0 calc(33.33% - 12px);
    text-align: center;
    padding: 16px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
}
.zarzad-card img { width: 100px; height: 100px; object-fit: cover; border-radius: 50%; border: 3px solid #1a1a1a; margin-bottom: 8px; }
.zarzad-card .stanowisko { color: #d32f2f; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.zarzad-card h5 { font-size: 17px; font-weight: 700; margin: 4px 0; }

/* ---- FOOTER ---- */
footer.main-footer {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    background: #111;
    color: #aaa;
    padding: 20px 28px;
    font-size: 14px !important;
    line-height: 1.5 !important;
}
footer.main-footer .logotype-flex { display: flex; align-items: center; gap: 16px; }
footer.main-footer img { display: block; height: 40px; filter: grayscale(50%) brightness(1.2); }
footer.main-footer a { color: #ccc; text-decoration: none; }
footer.main-footer a:hover { color: #fff; }
footer.main-footer span { font-size: 14px !important; line-height: 1.5 !important; }

/* ---- BREADCRUMB ---- */
.breadcrumb {
    background: transparent;
    padding: 0 0 12px 0;
    font-size: 13px;
    color: #999;
}
.breadcrumb a { color: #555; text-decoration: none; }
.breadcrumb a:hover { color: #d32f2f; }
.breadcrumb > li + li:before { color: #bbb; }

/* ---- PAGINATION ---- */
.pagination > li > a { color: #1a1a1a; border-radius: 0 !important; font-size: 14px; }
.pagination > li.active > a { background: #1a1a1a; border-color: #1a1a1a; color: #fff; }
.pagination > li > a:hover { background: #d32f2f; border-color: #d32f2f; color: #fff; }

/* ---- BUTTONS ---- */
.btn-fap { background: #1a1a1a; color: #fff; border: none; border-radius: 2px; font-weight: 600; font-size: 14px; padding: 8px 18px; }
.btn-fap:hover { background: #d32f2f; color: #fff; }
.btn-fap--red { background: #d32f2f; }
.btn-fap--red:hover { background: #b71c1c; }
.btn-fap--outline { background: transparent; border: 2px solid #1a1a1a; color: #1a1a1a; }
.btn-fap--outline:hover { background: #1a1a1a; color: #fff; }

/* ---- BADGES ---- */
.badge-typ { padding: 2px 8px; font-size: 11px; font-weight: 700; border-radius: 2px; }
.badge-mp { background: #1a1a1a; color: #fff; }
.badge-pp { background: #d32f2f; color: #fff; }

/* ---- FORMS ---- */
.form-control { border-radius: 2px; border: 1px solid #ccc; font-family: 'Raleway', sans-serif; font-size: 15px; }
.form-control:focus { border-color: #d32f2f; box-shadow: 0 0 0 2px rgba(211,47,47,.2); outline: none; }

/* ---- INFO BOX ---- */
.info-box { border-left: 4px solid #1a1a1a; background: #f9f9f9; padding: 14px 18px; border-radius: 0 4px 4px 0; margin-bottom: 16px; font-size: 15px; }
.info-box strong { color: #1a1a1a; }

/* ---- TABS ---- */
.nav-tabs > li > a { font-family: 'Raleway', sans-serif; font-weight: 600; font-size: 14px; color: #555; }
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover { color: #1a1a1a; border-bottom-color: #fff; }
.nav-tabs > li > a:hover { color: #d32f2f; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
    .main-container__right { display: none; }
    .news-card { flex: 0 0 100%; }
    .zarzad-card { flex: 0 0 calc(50% - 8px); }
    .gallery-grid__item { flex: 0 0 calc(33.33% - 6px); }
}

@media (max-width: 768px) {
    .main-container { flex-direction: column; min-height: unset; }
    .main-container__left { width: 100%; }
    .main-container__left--fixed-div { display: none; position: relative; width: 100%; height: auto; flex-direction: column; }
    .main-container__left--fixed-div.open { display: flex; }
    .nav-mobile-toggle { display: flex; }
    .main-container__center { padding: 16px; font-size: 15px; }
    .news-card { flex: 0 0 100%; }
    .zarzad-card { flex: 0 0 100%; }
    .gallery-grid__item { flex: 0 0 calc(50% - 4px); }
}
