/* =========================================================================
   FHR Theme – Main stylesheet
   Responsywny, dostępny, bazujący na custom properties.
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Tokens / Design system
   ------------------------------------------------------------------------- */
:root {
    --fhr-primary: #0b0b0b;
    --fhr-primary-contrast: #ffffff;
    --fhr-accent: #d4a017;
    --fhr-accent-hover: #b88a13;
    --fhr-secondary: #1f2937;
    --fhr-bg: #ffffff;
    --fhr-bg-alt: #f6f7f9;
    --fhr-surface: #ffffff;
    --fhr-text: #1a1a1a;
    --fhr-muted: #5b6471;
    --fhr-border: #e5e7eb;
    --fhr-success: #1b8a4f;
    --fhr-warn: #c57b00;
    --fhr-error: #b42318;

    --fhr-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --fhr-font-display: "Manrope", var(--fhr-font-sans);

    --fhr-radius-sm: 6px;
    --fhr-radius: 12px;
    --fhr-radius-lg: 20px;
    --fhr-radius-xl: 32px;

    --fhr-shadow-sm: 0 1px 2px rgba(0,0,0,.05);
    --fhr-shadow: 0 8px 24px rgba(15,23,42,.06);
    --fhr-shadow-lg: 0 24px 48px rgba(15,23,42,.12);

    --fhr-container: min(1200px, 100% - 2rem);
    --fhr-gutter: clamp(1rem, 2vw, 2rem);

    --fhr-step--2: clamp(.72rem, .69rem + .15vw, .8rem);
    --fhr-step--1: clamp(.85rem, .82rem + .2vw, .95rem);
    --fhr-step-0:  clamp(1rem, .95rem + .25vw, 1.125rem);
    --fhr-step-1:  clamp(1.15rem, 1rem + .5vw, 1.375rem);
    --fhr-step-2:  clamp(1.4rem, 1.2rem + .8vw, 1.75rem);
    --fhr-step-3:  clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);
    --fhr-step-4:  clamp(2.25rem, 1.8rem + 2vw, 3.25rem);
    --fhr-step-5:  clamp(2.75rem, 2rem + 3vw, 4.5rem);

    --fhr-space-1: .25rem;
    --fhr-space-2: .5rem;
    --fhr-space-3: .75rem;
    --fhr-space-4: 1rem;
    --fhr-space-5: 1.5rem;
    --fhr-space-6: 2rem;
    --fhr-space-7: 3rem;
    --fhr-space-8: 4rem;
    --fhr-space-9: 6rem;

    --fhr-header-height: 80px;
    --fhr-topbar-height: 40px;
    --fhr-transition: 200ms cubic-bezier(.4, 0, .2, 1);
}

@media (prefers-color-scheme: dark) {
    :root {
        /* Zmiana motywu jasnego/ciemnego pozostaje wyłączona domyślnie – aktywuj przez klasę <body class="theme-dark"> jeśli chcesz. */
    }
}

/* -------------------------------------------------------------------------
   2. Reset / base
   ------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

body {
    margin: 0;
    font-family: var(--fhr-font-sans);
    font-size: var(--fhr-step-0);
    line-height: 1.6;
    color: var(--fhr-text);
    background: var(--fhr-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    max-width: 100%;
    height: auto;
}

a { color: var(--fhr-primary); text-decoration: none; transition: color var(--fhr-transition); }
a:hover, a:focus-visible { color: var(--fhr-accent); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
    outline: 3px solid var(--fhr-accent);
    outline-offset: 2px;
    border-radius: var(--fhr-radius-sm);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--fhr-font-display);
    font-weight: 700;
    line-height: 1.15;
    margin: 0 0 .6em;
    letter-spacing: -.01em;
    color: var(--fhr-primary);
}
h1 { font-size: var(--fhr-step-5); letter-spacing: -.02em; }
h2 { font-size: var(--fhr-step-4); }
h3 { font-size: var(--fhr-step-2); }
h4 { font-size: var(--fhr-step-1); }
p { margin: 0 0 1em; }

ul, ol { padding-inline-start: 1.25em; }
figure { margin: 0; }
blockquote {
    margin: 1.5em 0;
    padding: 1rem 1.25rem;
    border-inline-start: 4px solid var(--fhr-accent);
    background: var(--fhr-bg-alt);
    border-radius: var(--fhr-radius);
    font-style: italic;
}
hr { border: 0; border-top: 1px solid var(--fhr-border); margin: 2rem 0; }

code, pre {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .95em;
}
pre { padding: 1rem; background: var(--fhr-bg-alt); border-radius: var(--fhr-radius); overflow: auto; }
code:not(pre code) { background: var(--fhr-bg-alt); padding: .1em .35em; border-radius: 4px; }

table { width: 100%; border-collapse: collapse; margin: 1.25rem 0; }
th, td { padding: .75rem; text-align: start; border-bottom: 1px solid var(--fhr-border); }
th { background: var(--fhr-bg-alt); font-weight: 600; }

/* Utilities */
.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px; width: 1px; overflow: hidden;
    word-wrap: normal !important;
}
.screen-reader-text:focus {
    clip: auto !important;
    display: block;
    width: auto; height: auto;
    top: 5px; left: 5px;
    padding: 1rem;
    background: var(--fhr-primary);
    color: #fff;
    z-index: 10000;
}
.skip-link { position: absolute; top: -999px; left: 0; z-index: 10000; }
.skip-link:focus { top: 0; }

.container { width: var(--fhr-container); margin-inline: auto; }

/* -------------------------------------------------------------------------
   3. Buttons
   ------------------------------------------------------------------------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .75rem 1.25rem;
    border-radius: 999px;
    font-weight: 600;
    font-family: inherit;
    font-size: var(--fhr-step--1);
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    border: 2px solid transparent;
    transition: background var(--fhr-transition), color var(--fhr-transition), border-color var(--fhr-transition), transform var(--fhr-transition), box-shadow var(--fhr-transition);
    white-space: nowrap;
}
.btn:hover, .btn:focus-visible { transform: translateY(-1px); box-shadow: var(--fhr-shadow); }
.btn:active { transform: translateY(0); }

.btn-primary {
    background: var(--fhr-primary);
    color: var(--fhr-primary-contrast);
}
.btn-primary:hover, .btn-primary:focus-visible {
    background: var(--fhr-accent);
    color: #0b0b0b;
}
.btn-ghost {
    background: transparent;
    color: var(--fhr-primary);
    border-color: currentColor;
}
.btn-ghost:hover, .btn-ghost:focus-visible {
    background: var(--fhr-primary);
    color: var(--fhr-primary-contrast);
}
.btn-lg { padding: 1rem 1.75rem; font-size: var(--fhr-step-0); }

/* -------------------------------------------------------------------------
   4. Header & navigation
   ------------------------------------------------------------------------- */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--fhr-bg);
    border-bottom: 1px solid var(--fhr-border);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
}

.fhr-topbar {
    background: var(--fhr-primary);
    color: #e5e7eb;
    font-size: var(--fhr-step--2);
    padding: .35rem 0;
}
.topbar-inner {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    flex-wrap: wrap;
}
.topbar-contact, .topbar-socials {
    list-style: none;
    margin: 0; padding: 0;
    display: flex; gap: 1.25rem; flex-wrap: wrap;
}
.fhr-topbar a { color: inherit; }
.fhr-topbar a:hover, .fhr-topbar a:focus-visible { color: var(--fhr-accent); }
.topbar-socials a { opacity: .8; }

.header-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem 0;
}
.site-branding { display: flex; align-items: center; gap: .75rem; }
.site-branding img { width: 56px; height: 56px; }
.site-branding-text { display: flex; flex-direction: column; line-height: 1.1; }
.site-title { font-family: var(--fhr-font-display); font-weight: 800; font-size: 1.25rem; margin: 0; }
.site-title a { color: var(--fhr-primary); }
.site-description { font-size: var(--fhr-step--2); color: var(--fhr-muted); margin: 0; }

.main-navigation .fhr-menu {
    list-style: none;
    margin: 0; padding: 0;
    display: flex; gap: 1.25rem;
}
.main-navigation .fhr-menu a {
    display: inline-block;
    padding: .5rem .25rem;
    font-weight: 600;
    font-size: var(--fhr-step--1);
    color: var(--fhr-primary);
    position: relative;
}
.main-navigation .fhr-menu a::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: 2px;
    background: var(--fhr-accent);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform var(--fhr-transition);
}
.main-navigation .fhr-menu a:hover::after,
.main-navigation .fhr-menu a:focus-visible::after,
.main-navigation .fhr-menu .current-menu-item > a::after {
    transform: scaleX(1);
    transform-origin: left;
}
.main-navigation .fhr-menu .current-menu-item > a { color: var(--fhr-primary); }

.menu-toggle {
    display: none;
    background: transparent;
    border: 2px solid var(--fhr-primary);
    border-radius: var(--fhr-radius-sm);
    padding: .5rem .6rem;
    cursor: pointer;
}
.hamburger {
    display: block;
    width: 24px; height: 18px;
    position: relative;
}
.hamburger span {
    position: absolute; left: 0; right: 0; height: 2px;
    background: var(--fhr-primary); border-radius: 2px;
    transition: transform var(--fhr-transition), opacity var(--fhr-transition), top var(--fhr-transition);
}
.hamburger span:nth-child(1) { top: 2px; }
.hamburger span:nth-child(2) { top: 8px; }
.hamburger span:nth-child(3) { top: 14px; }
[aria-expanded="true"] .hamburger span:nth-child(1) { top: 8px; transform: rotate(45deg); }
[aria-expanded="true"] .hamburger span:nth-child(2) { opacity: 0; }
[aria-expanded="true"] .hamburger span:nth-child(3) { top: 8px; transform: rotate(-45deg); }

@media (max-width: 960px) {
    .header-inner { grid-template-columns: auto 1fr auto; }
    .menu-toggle { display: inline-flex; }
    .main-navigation .fhr-menu {
        position: absolute;
        inset-inline: 0; top: 100%;
        background: var(--fhr-bg);
        flex-direction: column;
        padding: 1rem var(--fhr-gutter);
        border-bottom: 1px solid var(--fhr-border);
        box-shadow: var(--fhr-shadow);
        transform: translateY(-8px);
        opacity: 0;
        visibility: hidden;
        transition: opacity var(--fhr-transition), transform var(--fhr-transition), visibility var(--fhr-transition);
        gap: .25rem;
    }
    .main-navigation.is-open .fhr-menu {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
    }
    .main-navigation .fhr-menu a { padding: .75rem 0; }
    .header-cta { display: none; }
}

@media (max-width: 640px) {
    .topbar-hours, .topbar-socials { display: none; }
}

/* -------------------------------------------------------------------------
   5. Sections – shared
   ------------------------------------------------------------------------- */
.fhr-section { padding: clamp(3rem, 6vw, 6rem) 0; }
.fhr-section__header { text-align: center; max-width: 780px; margin: 0 auto 2.5rem; }
.fhr-section__header .eyebrow,
.fhr-hero .eyebrow {
    display: inline-block;
    padding: .3rem .75rem;
    border-radius: 999px;
    background: var(--fhr-bg-alt);
    color: var(--fhr-secondary);
    font-size: var(--fhr-step--2);
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: .75rem;
}
.fhr-section__lead { color: var(--fhr-muted); font-size: var(--fhr-step-1); }

/* Hero */
.fhr-hero {
    background: radial-gradient(1200px 600px at 85% -10%, rgba(212,160,23,.15), transparent 60%),
                radial-gradient(800px 400px at -10% 110%, rgba(31,41,55,.08), transparent 60%),
                var(--fhr-bg);
    padding-block: clamp(3rem, 7vw, 7rem);
}
.fhr-hero__inner {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
}
.fhr-hero__title { margin: .5rem 0 1rem; }
.fhr-hero__title .accent { color: var(--fhr-secondary); font-weight: 600; display: inline-block; }
.fhr-hero__lead { font-size: var(--fhr-step-1); color: var(--fhr-muted); max-width: 58ch; }
.fhr-hero__cta { display: flex; gap: .75rem; flex-wrap: wrap; margin-block: 1.5rem; }
.fhr-hero__badges {
    list-style: none; padding: 0; margin: 1.5rem 0 0;
    display: flex; flex-wrap: wrap; gap: .75rem 1.5rem;
}
.fhr-hero__badges li { display: inline-flex; align-items: center; gap: .4rem; color: var(--fhr-secondary); font-weight: 600; font-size: var(--fhr-step--1); }
.fhr-hero__badges span { color: var(--fhr-accent); font-weight: 800; }

.fhr-hero__visual { display: flex; justify-content: center; }
.fhr-hero__circle {
    width: min(420px, 90%);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, #1f1f1f, #000);
    display: grid; place-items: center;
    box-shadow: 0 40px 80px rgba(0,0,0,.18), inset 0 -4px 20px rgba(255,255,255,.05);
    position: relative;
}
.fhr-hero__circle::before {
    content: "";
    position: absolute; inset: -20px;
    border: 1px dashed rgba(212,160,23,.5);
    border-radius: 50%;
    animation: fhr-spin 40s linear infinite;
}
@keyframes fhr-spin { to { transform: rotate(360deg); } }
.fhr-hero__circle img { width: 70%; height: auto; filter: drop-shadow(0 20px 40px rgba(0,0,0,.4)); }

@media (max-width: 880px) {
    .fhr-hero__inner { grid-template-columns: 1fr; text-align: start; }
    .fhr-hero__visual { order: -1; }
    .fhr-hero__circle { width: min(320px, 70%); }
}

/* Services */
.fhr-services__grid {
    list-style: none; padding: 0; margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--fhr-space-5);
}
.fhr-service-card {
    background: var(--fhr-surface);
    border: 1px solid var(--fhr-border);
    border-radius: var(--fhr-radius-lg);
    padding: var(--fhr-space-6);
    transition: transform var(--fhr-transition), box-shadow var(--fhr-transition), border-color var(--fhr-transition);
    display: flex; flex-direction: column;
}
.fhr-service-card:hover { transform: translateY(-4px); box-shadow: var(--fhr-shadow); border-color: var(--fhr-primary); }
.fhr-service-card__icon {
    width: 56px; height: 56px;
    background: var(--fhr-bg-alt);
    border-radius: var(--fhr-radius);
    display: grid; place-items: center;
    font-size: 1.75rem;
    margin-bottom: 1rem;
}
.fhr-service-card__title { margin: 0 0 .5rem; font-size: var(--fhr-step-1); }
.fhr-service-card__desc { color: var(--fhr-muted); flex: 1; margin-bottom: 1rem; }
.fhr-service-card__link { font-weight: 600; }

/* About */
.fhr-about { background: var(--fhr-bg-alt); }
.fhr-about__inner {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
}
.fhr-about__stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-top: 1.5rem;
}
.fhr-about__stats .stat {
    background: var(--fhr-surface);
    border-radius: var(--fhr-radius);
    padding: 1rem;
    text-align: center;
    box-shadow: var(--fhr-shadow-sm);
}
.fhr-about__stats strong {
    display: block;
    font-family: var(--fhr-font-display);
    font-size: var(--fhr-step-3);
    color: var(--fhr-primary);
    line-height: 1;
}
.fhr-about__stats span { font-size: var(--fhr-step--1); color: var(--fhr-muted); }
.fhr-about__circle {
    width: min(360px, 90%);
    aspect-ratio: 1;
    margin-inline: auto;
    border-radius: 50%;
    background: #000;
    display: grid; place-items: center;
    box-shadow: var(--fhr-shadow-lg);
}
.fhr-about__circle img { width: 70%; }

@media (max-width: 880px) {
    .fhr-about__inner { grid-template-columns: 1fr; }
}

/* Why */
.fhr-why__grid {
    list-style: none; margin: 0; padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--fhr-space-5);
}
.fhr-why__item {
    display: flex; gap: 1rem;
    padding: 1.25rem;
    background: var(--fhr-surface);
    border: 1px solid var(--fhr-border);
    border-radius: var(--fhr-radius);
}
.fhr-why__check {
    flex: 0 0 auto;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--fhr-primary);
    color: var(--fhr-accent);
    display: grid; place-items: center;
    font-weight: 800;
}
.fhr-why__item h3 { margin: 0 0 .35rem; font-size: var(--fhr-step-0); }
.fhr-why__item p { margin: 0; color: var(--fhr-muted); font-size: var(--fhr-step--1); }

/* CTA */
.fhr-cta {
    background: var(--fhr-primary);
    color: #fff;
}
.fhr-cta h2, .fhr-cta p { color: inherit; }
.fhr-cta__inner {
    display: grid;
    grid-template-columns: 1.2fr auto;
    gap: 2rem;
    align-items: center;
}
.fhr-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; }
.fhr-cta .btn-primary { background: var(--fhr-accent); color: #0b0b0b; }
.fhr-cta .btn-primary:hover, .fhr-cta .btn-primary:focus-visible { background: var(--fhr-accent-hover); }
.fhr-cta .btn-ghost { color: #fff; }
.fhr-cta .btn-ghost:hover, .fhr-cta .btn-ghost:focus-visible { background: #fff; color: var(--fhr-primary); }

@media (max-width: 720px) {
    .fhr-cta__inner { grid-template-columns: 1fr; }
}

/* Contact */
.fhr-contact__inner {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}
.fhr-contact__list { display: grid; gap: 1rem; margin: 1.5rem 0 0; }
.fhr-contact__list > div { padding: 1rem; background: var(--fhr-bg-alt); border-radius: var(--fhr-radius); }
.fhr-contact__list dt { font-weight: 600; color: var(--fhr-secondary); font-size: var(--fhr-step--2); text-transform: uppercase; letter-spacing: .08em; }
.fhr-contact__list dd { margin: .25rem 0 0; color: var(--fhr-text); }

@media (max-width: 880px) {
    .fhr-contact__inner { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   6. Forms
   ------------------------------------------------------------------------- */
.fhr-form {
    display: grid;
    gap: 1rem;
    background: var(--fhr-surface);
    padding: var(--fhr-space-6);
    border-radius: var(--fhr-radius-lg);
    border: 1px solid var(--fhr-border);
    box-shadow: var(--fhr-shadow-sm);
}
.fhr-form label {
    display: grid;
    gap: .35rem;
    font-weight: 600;
    font-size: var(--fhr-step--1);
    color: var(--fhr-secondary);
}
.fhr-form input[type="text"],
.fhr-form input[type="email"],
.fhr-form input[type="tel"],
.fhr-form input[type="url"],
.fhr-form textarea,
.fhr-form select,
.search-field {
    width: 100%;
    padding: .75rem .9rem;
    font: inherit;
    color: var(--fhr-text);
    background: var(--fhr-bg);
    border: 1px solid var(--fhr-border);
    border-radius: var(--fhr-radius);
    transition: border-color var(--fhr-transition), box-shadow var(--fhr-transition);
}
.fhr-form input:focus,
.fhr-form textarea:focus,
.fhr-form select:focus,
.search-field:focus {
    border-color: var(--fhr-primary);
    box-shadow: 0 0 0 3px rgba(212,160,23,.25);
    outline: none;
}
.fhr-form__consent { display: flex; align-items: flex-start; gap: .6rem; font-weight: 500; }
.fhr-form__consent input { width: auto; margin-top: .2rem; }
.fhr-notice { padding: 1rem; border-radius: var(--fhr-radius); margin: 1rem 0; background: var(--fhr-bg-alt); }
.fhr-notice--ok { background: #e8f7ee; color: #146c3a; }
.fhr-notice--warn { background: #fff7e6; color: #8a5a00; }
.fhr-notice--err { background: #fdecea; color: #8a1c12; }

.search-form { display: flex; gap: .5rem; flex-wrap: wrap; max-width: 540px; }
.search-form .search-field { flex: 1; min-width: 180px; }

/* -------------------------------------------------------------------------
   7. Page hero & content
   ------------------------------------------------------------------------- */
.page-hero {
    background: var(--fhr-bg-alt);
    padding: clamp(2.5rem, 5vw, 4rem) 0;
    border-bottom: 1px solid var(--fhr-border);
}
.page-hero .page-title { margin: .5rem 0; }
.page-hero--404 { text-align: center; }
.page-hero--archive .archive-description { color: var(--fhr-muted); }

.fhr-breadcrumbs ol { list-style: none; padding: 0; margin: 0 0 .5rem; display: flex; gap: .5rem; flex-wrap: wrap; font-size: var(--fhr-step--2); color: var(--fhr-muted); }
.fhr-breadcrumbs li + li::before { content: "›"; margin-inline-end: .5rem; color: var(--fhr-border); }

.content-with-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 3rem;
    padding: clamp(2rem, 4vw, 4rem) 0;
}
@media (max-width: 960px) {
    .content-with-sidebar { grid-template-columns: 1fr; }
}

/* Posts grid */
.posts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--fhr-space-5);
}
.post-card {
    background: var(--fhr-surface);
    border: 1px solid var(--fhr-border);
    border-radius: var(--fhr-radius-lg);
    overflow: hidden;
    display: flex; flex-direction: column;
    transition: transform var(--fhr-transition), box-shadow var(--fhr-transition);
}
.post-card:hover { transform: translateY(-4px); box-shadow: var(--fhr-shadow); }
.post-card__thumb { display: block; aspect-ratio: 3/2; overflow: hidden; }
.post-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--fhr-transition); }
.post-card:hover .post-card__thumb img { transform: scale(1.05); }
.post-card__body { padding: 1.25rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.post-card__cat { display: inline-block; font-size: var(--fhr-step--2); font-weight: 700; color: var(--fhr-accent); text-transform: uppercase; letter-spacing: .08em; }
.post-card__title { font-size: var(--fhr-step-1); margin: 0; }
.post-card__title a { color: var(--fhr-primary); }
.post-card__title a:hover { color: var(--fhr-accent); }
.post-card__meta { font-size: var(--fhr-step--2); color: var(--fhr-muted); }
.post-card__excerpt { color: var(--fhr-muted); flex: 1; }
.post-card__more { font-weight: 600; color: var(--fhr-primary); margin-top: auto; }
.post-card__more:hover { color: var(--fhr-accent); }

/* Pagination */
.nav-links {
    display: flex;
    gap: .5rem;
    justify-content: center;
    margin: 2.5rem 0 1rem;
}
.nav-links .page-numbers {
    display: inline-flex;
    align-items: center; justify-content: center;
    min-width: 40px; height: 40px;
    padding: 0 .75rem;
    border-radius: var(--fhr-radius-sm);
    border: 1px solid var(--fhr-border);
    color: var(--fhr-primary);
    font-weight: 600;
}
.nav-links .current { background: var(--fhr-primary); color: var(--fhr-primary-contrast); border-color: var(--fhr-primary); }
.nav-links a:hover { background: var(--fhr-bg-alt); }

/* Page */
.fhr-page .entry-content { padding: clamp(2rem, 4vw, 4rem) 0; }
.fhr-page-elementor, .fhr-page-full { padding: 0; }

/* -------------------------------------------------------------------------
   8. Footer
   ------------------------------------------------------------------------- */
.site-footer {
    background: var(--fhr-primary);
    color: #d1d5db;
    padding-top: clamp(3rem, 6vw, 5rem);
    margin-top: clamp(3rem, 6vw, 5rem);
}
.site-footer a { color: #e5e7eb; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--fhr-accent); }
.site-footer .widget-title { color: #fff; font-family: var(--fhr-font-display); font-size: 1.05rem; margin-bottom: 1rem; }

.footer-widgets {
    display: grid;
    grid-template-columns: 1.3fr repeat(4, 1fr);
    gap: 2.5rem;
    padding-bottom: 3rem;
}
.footer-brand img { width: 80px; height: 80px; background: #fff; border-radius: 50%; padding: 6px; }
.footer-tagline { color: #9ca3af; margin-top: 1rem; max-width: 32ch; }

.footer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }

.site-info { border-top: 1px solid rgba(255,255,255,.08); padding: 1.25rem 0; }
.site-info-inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; font-size: var(--fhr-step--2); color: #9ca3af; }
.legal-menu { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.25rem; flex-wrap: wrap; }

@media (max-width: 1024px) {
    .footer-widgets { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
    .footer-widgets { grid-template-columns: 1fr; gap: 2rem; }
}

/* -------------------------------------------------------------------------
   9. Sidebar
   ------------------------------------------------------------------------- */
.widget-area { display: grid; gap: 1.5rem; align-content: start; }
.widget-area .widget {
    background: var(--fhr-surface);
    border: 1px solid var(--fhr-border);
    border-radius: var(--fhr-radius);
    padding: 1.25rem;
}
.widget-area .widget-title { margin: 0 0 .75rem; font-size: var(--fhr-step-1); }
.widget-area ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }

/* -------------------------------------------------------------------------
   10. Elementor reset-ish
   ------------------------------------------------------------------------- */
body.fhr-elementor .site-main > article.fhr-page-elementor,
body.fhr-canvas { margin: 0; }

.elementor-widget-image img { border-radius: var(--fhr-radius); }

/* -------------------------------------------------------------------------
   11. Print styles
   ------------------------------------------------------------------------- */
@media print {
    .fhr-topbar, .menu-toggle, .main-navigation, .header-cta, .site-footer, .fhr-cta { display: none !important; }
    body { background: #fff; color: #000; }
    a { color: #000; text-decoration: underline; }
}
