/*
Theme Name: PortalPress
Theme URI: https://example.invalid/portalpress
Author: OpenAI
Description: Lekki, adaptacyjny motyw magazynowy dla portali tworzonych przez Portal Factory.
Version: 1.2.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: portalpress
*/
:root{--pp-bg:#f7f5f0;--pp-card:#fff;--pp-text:#17201b;--pp-muted:#667069;--pp-accent:#d94b2b;--pp-dark:#18231d;--pp-line:#e6e2d9;--pp-radius:18px;--pp-width:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--pp-bg);color:var(--pp-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.pp-wrap{width:min(calc(100% - 36px),var(--pp-width));margin-inline:auto}.pp-header{position:sticky;top:0;z-index:50;background:rgba(247,245,240,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--pp-line)}.pp-head{min-height:74px;display:flex;align-items:center;gap:32px}.pp-brand{font-size:1.35rem;font-weight:850;letter-spacing:-.04em}.pp-brand-mark{color:var(--pp-accent)}.pp-nav{display:flex;gap:22px;margin-left:auto}.pp-nav ul{display:flex;list-style:none;gap:22px;margin:0;padding:0}.pp-nav a{font-size:.92rem;font-weight:650}.pp-search{display:flex;border:1px solid var(--pp-line);background:#fff;border-radius:999px;overflow:hidden}.pp-search input{width:150px;border:0;padding:9px 4px 9px 14px;background:transparent}.pp-search button{border:0;background:transparent;padding:8px 12px;cursor:pointer}.pp-hero{padding:72px 0 38px}.pp-kicker{display:inline-flex;color:var(--pp-accent);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.pp-hero-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:40px;align-items:center}.pp-hero h1{font-size:clamp(2.3rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.06em;margin:12px 0 20px}.pp-hero p{font-size:1.08rem;color:var(--pp-muted);max-width:64ch}.pp-hero-media{aspect-ratio:4/3;background:var(--pp-dark);border-radius:28px;overflow:hidden;box-shadow:0 20px 60px rgba(16,25,20,.16)}.pp-hero-media img{width:100%;height:100%;object-fit:cover}.pp-placeholder{height:100%;display:grid;place-items:center;color:#fff;font-size:4rem;background:linear-gradient(135deg,var(--pp-dark),var(--pp-accent))}.pp-categories{display:flex;gap:10px;overflow:auto;padding:8px 0 30px}.pp-pill{white-space:nowrap;padding:9px 15px;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:999px;font-size:.87rem;font-weight:700}.pp-pill:hover{border-color:var(--pp-accent);color:var(--pp-accent)}.pp-section{padding:34px 0 76px}.pp-section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.pp-section h2,.pp-page-title{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.1;letter-spacing:-.045em;margin:0}.pp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.pp-card{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:var(--pp-radius);overflow:hidden;transition:.2s transform,.2s box-shadow}.pp-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(20,30,24,.09)}.pp-card-media{display:block;aspect-ratio:16/10;background:#dedfd9;overflow:hidden}.pp-card-media img{width:100%;height:100%;object-fit:cover;transition:.35s transform}.pp-card:hover img{transform:scale(1.035)}.pp-card-body{padding:20px}.pp-card h2{font-size:1.25rem;line-height:1.22;margin:6px 0 10px;letter-spacing:-.025em}.pp-meta{color:var(--pp-muted);font-size:.8rem}.pp-excerpt{color:var(--pp-muted);font-size:.93rem;margin:0}.pp-main{padding:58px 0 80px}.pp-article{max-width:820px;margin:auto}.pp-article-header{text-align:center;margin-bottom:34px}.pp-article h1{font-size:clamp(2.35rem,5vw,4.3rem);line-height:1.04;letter-spacing:-.055em;margin:12px 0 18px}.pp-content{font-family:Georgia,"Times New Roman",serif;font-size:1.12rem}.pp-content>p:first-of-type{font-size:1.24rem;color:#3c4740}.pp-content h2,.pp-content h3{font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.15;letter-spacing:-.035em;margin:2.1em 0 .7em}.pp-content h2{font-size:2rem}.pp-content h3{font-size:1.5rem}.pp-content a{color:var(--pp-accent);text-decoration:underline;text-underline-offset:3px}.pp-content figure{margin:2rem 0}.pp-content img{border-radius:16px}.pp-related,.pnl-related,.uaip-related-posts{font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:#fff;border-left:4px solid var(--pp-accent);padding:18px 20px;margin:28px 0;border-radius:0 12px 12px 0}.pp-pagination{margin-top:36px}.pp-footer{background:var(--pp-dark);color:#eef2ef;padding:52px 0}.pp-foot{display:grid;grid-template-columns:1.5fr 1fr;gap:40px}.pp-footer p{color:#bac4bd}.pp-footer ul{list-style:none;padding:0;margin:0;display:flex;gap:16px;flex-wrap:wrap}.pp-footer a:hover{color:#fff;text-decoration:underline}.preset-news{--pp-bg:#f5f6f8;--pp-accent:#c4202e;--pp-dark:#111827}.preset-business{--pp-bg:#f4f6f8;--pp-accent:#155eef;--pp-dark:#101828}.preset-building{--pp-bg:#f2f0ea;--pp-accent:#d06a20;--pp-dark:#292620}.preset-health{--pp-bg:#f1f8f5;--pp-accent:#168a67;--pp-dark:#14372d}.preset-lifestyle{--pp-bg:#fbf4f5;--pp-accent:#bd4268;--pp-dark:#3b2029}.preset-home{--pp-bg:#f5f2e9;--pp-accent:#71824a;--pp-dark:#283120}.preset-food{--pp-bg:#f8f4ea;--pp-accent:#d94b2b;--pp-dark:#263229}.preset-gaming{--pp-bg:#f3f1fa;--pp-accent:#6c4ee3;--pp-dark:#171329}.preset-travel{--pp-bg:#eff7f8;--pp-accent:#087f8c;--pp-dark:#12353a}.preset-sport{--pp-bg:#f4f7f1;--pp-accent:#4b8b21;--pp-dark:#172414}.preset-auto{--pp-bg:#f1f3f5;--pp-accent:#e04932;--pp-dark:#161b20}.preset-regional{--pp-bg:#f6f3ee;--pp-accent:#246b54;--pp-dark:#18342b}
@media(max-width:850px){.pp-nav{display:none}.pp-search{margin-left:auto}.pp-hero{padding-top:42px}.pp-hero-grid{grid-template-columns:1fr}.pp-hero-media{order:-1}.pp-grid{grid-template-columns:repeat(2,1fr)}.pp-foot{grid-template-columns:1fr}}
@media(max-width:560px){.pp-head{min-height:64px}.pp-search input{width:105px}.pp-grid{grid-template-columns:1fr}.pp-hero h1{font-size:2.55rem}.pp-main{padding-top:38px}.pp-content{font-size:1.04rem}}

/* Paginacja */
.navigation.pagination {
    margin: 40px 0;
}

.navigation.pagination .nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}

.navigation.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 14px;
    border: 1px solid var(--pp-line);
    border-radius: 10px;
    background: var(--pp-card);
    color: var(--pp-text);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition:
        background-color .2s,
        border-color .2s,
        color .2s,
        transform .2s;
}

.navigation.pagination a.page-numbers:hover {
    border-color: var(--pp-accent);
    color: var(--pp-accent);
    transform: translateY(-1px);
}

.navigation.pagination .page-numbers.current {
    border-color: var(--pp-accent);
    background: var(--pp-accent);
    color: #fff;
}

.navigation.pagination .prev,
.navigation.pagination .next {
    width: auto;
    padding-inline: 18px;
}

/* Contact Form 7 */
.wpcf7 {
    margin-top: 32px;
}

.wpcf7 form {
    max-width: 760px;
}

.wpcf7 p {
    margin: 0 0 20px;
}

.wpcf7 label {
    display: block;
    margin-bottom: 8px;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: .92rem;
    font-weight: 700;
    color: var(--pp-text);
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 13px 15px;
    border: 1px solid var(--pp-line);
    border-radius: 10px;
    background: var(--pp-card);
    color: var(--pp-text);
    font: inherit;
    line-height: 1.4;
    outline: none;
    transition:
        border-color .2s,
        box-shadow .2s,
        background-color .2s;
}

.wpcf7 textarea {
    min-height: 180px;
    resize: vertical;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
    border-color: var(--pp-accent);
    box-shadow: 0 0 0 3px rgba(21, 94, 239, .12);
}

.wpcf7 input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 22px;
    border: 1px solid var(--pp-accent);
    border-radius: 10px;
    background: var(--pp-accent);
    color: #fff;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: .95rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    transition:
        transform .2s,
        box-shadow .2s,
        background-color .2s;
}

.wpcf7 input[type="submit"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(21, 94, 239, .18);
}

.wpcf7 .wpcf7-response-output {
    margin: 24px 0 0 !important;
    padding: 14px 16px !important;
    border-radius: 10px;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: .92rem;
}

.wpcf7 form.sent .wpcf7-response-output {
    border-color: #2f855a;
    background: #f0fff4;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
    border-color: #d97706;
    background: #fff7ed;
}

.wpcf7-not-valid-tip {
    margin-top: 6px;
    font-size: .82rem;
    color: #b42318;
}

@media (max-width: 700px) {
    .wpcf7 form {
        max-width: 100%;
    }

    .wpcf7 input[type="submit"] {
        width: 100%;
    }
}

/* Kontakt */
.pp-content .wpcf7 {
    max-width: 760px;
}

.pp-content h2 {
    margin-top: 0;
}
