/*
Theme Name: Twoje Korzenie
Description: Dostępny portal genealogiczny i katalog wiedzy.
Version: 1.0.1
Requires PHP: 8.1
Text Domain: twoje-korzenie
*/
:root{
--green:#173f35;
--green-2:#265f4f;
--cream:#f5f0e4;
--paper:#fffdf8;
--sepia:#8a5a32;
--ink:#202923;
--muted:#647068;
--line:#d9d2c3;
--focus:#e7a52b;
--radius:0;
--shadow:0 10px 35px rgba(23,63,53,.09)}


*{
box-sizing:border-box}

html{
scroll-behavior:smooth}

body{
margin:0;
background:var(--cream);
color:var(--ink);
font:17px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}

img{
max-width:100%;
height:auto}

a{
color:var(--green-2);
text-underline-offset:3px}

a:hover{
color:var(--sepia)}

:focus-visible{
outline:3px solid var(--focus);
outline-offset:3px}

h1,h2,h3{
font-family:Georgia,"Times New Roman",serif;
line-height:1.15;
color:var(--green);
margin-top:0}

h1{
font-size:clamp(2.35rem,6vw,5rem)}

h2{
font-size:clamp(1.8rem,4vw,2.8rem)}

.container{
width:98%;
max-width:1600px;
margin-inline:auto}

.skip-link{
position:fixed;
top:-100px;
left:1rem;
z-index:9999;
background:#fff;
padding:.75rem}

.skip-link:focus{
top:1rem}

.site-header{
position:sticky;
top:0;
z-index:50;
background:rgba(255,253,248,.96);
border-bottom:1px solid var(--line);
backdrop-filter:blur(10px)}

.header-inner{
min-height:76px;
display:flex;
align-items:center;
gap:2rem}

.brand{
display:flex;
align-items:center;
gap:.7rem;
color:var(--green);
font:700 1.25rem Georgia,serif;
text-decoration:none;
white-space:nowrap}

.brand-mark{
display:grid;
place-items:center;
width:43px;
height:43px;
border-radius:0;
background:var(--green);
color:#fff}

.site-nav{
margin-left:auto}

.site-nav ul{
display:flex;
align-items:center;
gap:1.3rem;
list-style:none;
margin:0;
padding:0}

.site-nav a{
font-weight:650;
color:var(--ink);
text-decoration:none}

.menu-toggle{
display:none;
margin-left:auto;
border:0;
background:var(--green);
color:#fff;
border-radius:0;
padding:.65rem .8rem}

.hero{
position:relative;
overflow:hidden;
padding:clamp(2.5rem,6vw,4.5rem) 0;
background:var(--green);
color:#fff}

.hero:after{
content:"";
position:absolute;
inset:0;
opacity:.16}

.hero .container{
position:relative;
z-index:1}

.eyebrow{
text-transform:uppercase;
letter-spacing:.16em;
font-size:.78rem;
font-weight:800;
color:#d8c59f}

.hero h1{
max-width:850px;
color:#fff;
margin:.35rem 0 1rem}

.hero p{
font-size:clamp(1.05rem,2vw,1.35rem);
max-width:700px}

.button{
display:inline-block;
border:2px solid var(--green);
border-radius:0;
padding:.72rem 1.25rem;
background:var(--green);
color:#fff;
text-decoration:none;
font-weight:750}

.button:hover{
background:var(--green-2);
color:#fff}

.hero .button{
background:#f2d89e;
border-color:#f2d89e;
color:#173f35}

.section{
padding:clamp(1.5rem,4vw,3rem) 0}

.section-head{
display:flex;
justify-content:space-between;
align-items:end;
gap:1rem;
margin-bottom:2rem}

.section-head p{
max-width:600px;
color:var(--muted)}

.areas,.cards{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
gap:1rem}

article.card, .box, .panel{
padding:1rem;
background:var(--paper);
border:1px solid var(--line);
border-radius:0;
box-shadow:var(--shadow)}

.area{
padding:1rem;
background:var(--paper);
border:1px solid var(--line);
border-radius:0;
box-shadow:var(--shadow);
text-decoration:none;
color:var(--ink);
transition:transform .2s,border .2s}

.area:hover{
transform:translateY(-4px);
border-color:var(--sepia)}

.area-icon{
font-size:1.8rem}

.area h3{
margin:.8rem 0 .35rem}

.portal-grid{
display:grid;
grid-template-columns:minmax(0,7fr) minmax(300px,3fr);
gap:1.5rem;
align-items:start}

.sidebar{
position:sticky;
top:96px}

.map-wrap{
padding:1.2rem;
border-radius:0}

.poland-map{
display:block;
width:100%;
height:auto}

.poland-map path{
fill:#b8c9b4;
stroke:#fff;
stroke-width:4;
transition:fill .15s}

.poland-map a:nth-child(2n) path{
fill:#d9c5a7}

.poland-map a:hover path,.poland-map a:focus path{
fill:var(--focus)}

.region-list{
columns:2;
font-size:.9rem;
padding-left:1.2rem}

.post-list{
display:grid;
gap:1rem}

.post-card{
display:grid;
grid-template-columns:160px 1fr;
gap:1.25rem;
padding:1.25rem;
background:var(--paper);
border-radius:0;
border:1px solid var(--line)}

.post-card img{
width:160px;
height:130px;
object-fit:cover;
border-radius:0}

.meta{
font-size:.82rem;
text-transform:uppercase;
letter-spacing:.08em;
color:var(--sepia);
font-weight:700;
opacity:.5}

.post-card h3{
margin:.25rem 0;
font-size:1.45rem}

.post-card h3 a{
text-decoration:none}

.archive-header{
padding:4rem 0 2rem}

.archive-header h1{
font-size:clamp(2.4rem,5vw,4rem)}

.filter-bar{
display:flex;
flex-wrap:wrap;
gap:1rem;
align-items:end;
padding:1.25rem;
background:var(--paper);
border-radius:0;
margin-bottom:2rem}

.filter-bar label{
display:grid;
gap:.3rem;
font-weight:700}

.filter-bar select{
min-height:44px;
padding:.5rem;
border:1px solid var(--line);
border-radius:0}

.entry{
max-width:820px;
margin:0 auto;
padding:4rem 0}

.entry-content{
font-family:Georgia,serif;
font-size:1.1rem}

.entry-content>*+*{
margin-top:1.3em}

.breadcrumbs{
font-size:.9rem;
color:var(--muted)}

.empty{
padding:3rem;
text-align:center;
background:var(--paper);
border-radius:0}

.pagination{
display:flex;
justify-content:center;
align-items:center;
margin:3rem 0 1.5rem;
width:100%}

.pagination-inner{
display:inline-flex;
align-items:center;
justify-content:center;
flex-wrap:wrap;
gap:.35rem;
padding:.35rem;
background:var(--paper);
border:1px solid var(--line);
border-radius:0;
box-shadow:0 4px 16px rgba(23,63,53,.06)}

.pagination .page-numbers,
.pagination a,
.pagination span{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:40px;
height:40px;
padding:0 .75rem;
border:1px solid transparent;
border-radius:0;
background:transparent;
color:var(--ink);
text-decoration:none;
font-weight:600;
font-size:.9rem;
line-height:1;
transition:all .18s ease;
cursor:pointer;
user-select:none}

.pagination a.page-numbers:hover,
.pagination .page-numbers:hover,
.pagination a.page-numbers:focus-visible,
.pagination .page-numbers:focus-visible{
background:var(--cream);
color:var(--green);
border-color:var(--line);
transform:translateY(-1px);
text-decoration:none;
outline:none}

.pagination .current,
.pagination .page-numbers.current{
background:var(--green);
color:#fff;
border-color:var(--green);
font-weight:700;
box-shadow:0 3px 8px rgba(23,63,53,.22);
cursor:default;
transform:none}

.pagination .dots,
.pagination .page-numbers.dots{
min-width:28px;
padding:0 .25rem;
background:transparent;
border-color:transparent;
color:var(--muted);
font-weight:700;
cursor:default;
transform:none}

.pagination .dots:hover,
.pagination .page-numbers.dots:hover{
background:transparent;
border-color:transparent;
color:var(--muted);
transform:none}

.pagination .prev.page-numbers,
.pagination .next.page-numbers{
padding:0 .9rem;
background:rgba(23,63,53,.04);
border-color:var(--line);
font-weight:600;
font-size:.85rem;
gap:.45rem;
flex-shrink:0}

.pagination .prev.page-numbers:hover,
.pagination .next.page-numbers:hover{
background:var(--green);
color:#fff;
border-color:var(--green);
box-shadow:0 4px 12px rgba(23,63,53,.2)}

.pagination-btn-content{
display:inline-flex;
align-items:center;
gap:.35rem}

.pagination-arrow-icon{
display:inline-block;
vertical-align:middle;
flex-shrink:0;
transition:transform .18s ease}

.pagination .prev:hover .pagination-arrow-icon{
transform:translateX(-3px)}

.pagination .next:hover .pagination-arrow-icon{
transform:translateX(3px)}

@media(max-width:768px){
.pagination{
margin:1.75rem 0 1rem}

.pagination-inner{
width:auto;
max-width:100%;
flex-wrap:nowrap;
justify-content:center;
gap:.25rem;
padding:.25rem;
overflow-x:auto;
-webkit-overflow-scrolling:touch}

.pagination .page-numbers,
.pagination a,
.pagination span{
min-width:34px;
height:34px;
padding:0 .45rem;
font-size:.82rem;
flex-shrink:0}

.pagination .prev.page-numbers,
.pagination .next.page-numbers{
min-width:34px;
height:34px;
padding:0 .45rem;
flex-shrink:0}

.pagination-text{
display:none}}

@media(max-width:480px){
.pagination-inner{
gap:.18rem;
padding:.2rem}

.pagination .page-numbers,
.pagination a,
.pagination span{
min-width:30px;
height:30px;
padding:0 .25rem;
font-size:.78rem}

.pagination .prev.page-numbers,
.pagination .next.page-numbers{
min-width:30px;
height:30px;
padding:0 .3rem}

.pagination .dots,
.pagination .page-numbers.dots{
min-width:18px;
padding:0 .1rem}}

.site-footer{
background:var(--green);
color:#dbe6df;
padding:3.5rem 0 2rem;
border-top:1px solid rgba(255,253,248,.12)}

.site-footer a{
color:#fff;
text-decoration:none;
transition:color .15s}

.site-footer a:hover,
.site-footer a:focus{
color:var(--focus);
text-decoration:underline}

.footer-grid{
display:flex;
justify-content:space-between;
align-items:center;
flex-wrap:wrap;
gap:1.5rem;
padding:0}

.footer-links{
display:flex;
flex-wrap:wrap;
justify-content:center;
align-items:center;
gap:.5rem 1.5rem;
font-size:.9rem}

.footer-links ul,
.footer-links .footer-nav-menu{
display:flex;
flex-wrap:wrap;
justify-content:center;
align-items:center;
gap:.5rem 1.5rem;
list-style:none;
margin:0;
padding:0}

.footer-links li{
display:inline-flex;
align-items:center;
margin:0;
padding:0}

.site-footer h2,.site-footer h3{
color:#fff}

.copyright{
margin:0;
padding:0;
font-size:.85rem;
opacity:.85}

@media(max-width:900px){
.footer-grid{
justify-content:center;
text-align:center;
gap:1.25rem}}

.screen-reader-text{
position:absolute;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
border:0}


@media(max-width:900px){
.menu-toggle{
display:block}

.site-nav{
display:none;
position:absolute;
top:76px;
left:0;
right:0;
background:var(--paper);
padding:1rem 1.5rem;
border-bottom:1px solid var(--line)}

.site-nav.is-open{
display:block}

.site-nav ul{
align-items:stretch;
flex-direction:column}

.site-nav a{
display:block;
padding:.6rem}

.portal-grid{
grid-template-columns:1fr}

.sidebar{
position:static;
order:-1}

.areas,.cards{
grid-template-columns:repeat(2,1fr)}

}


@media(max-width:600px){
body{
font-size:16px}

.areas,.cards{
grid-template-columns:1fr}

.post-card{
grid-template-columns:1fr}

.post-card img{
width:100%;
height:190px}

.region-list{
columns:1}

.section-head{
display:block}

.hero{
padding:4rem 0}

.header-inner{
min-height:68px}

.site-nav{
top:68px}

}


@media(prefers-reduced-motion:reduce){
*,*:before,*:after{
scroll-behavior:auto!important;
transition:none!important}

}


.poland-map path{
stroke:#fffdf8;
stroke-width:2;
vector-effect:non-scaling-stroke;
transition:fill .15s,filter .15s}

.poland-map a:hover path,.poland-map a:focus path{
filter:drop-shadow(0 2px 3px rgba(23,63,53,.35))}



main#main {

    padding-top: 20px;

}



button {

    height: 41px;

}

/* Front-page modern compact layout */
.front-main{
padding-top:0}

.hero .overlay{
position:relative;
z-index:2;
max-width:820px;
margin-inline:auto;
padding:clamp(2.2rem,5vw,4rem) 1.25rem;
text-align:center}

.hero .overlay h2{
font-size:clamp(2rem,5vw,3.5rem);
color:#fff;
line-height:1.1;
margin:.35rem 0 1rem}

.hero .overlay p{
font-size:clamp(1.05rem,2vw,1.3rem);
color:rgba(255,255,255,.92);
max-width:650px;
margin:0 auto 1.5rem}

.features{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:1rem;
margin:2rem 0}

.feature{
display:flex;
flex-direction:column;
gap:.65rem;
padding:1.25rem;
background:var(--paper);
border:1px solid var(--line);
box-shadow:var(--shadow);
color:var(--ink);
text-decoration:none}

.feature-icon{
font-size:2rem;
line-height:1}

.feature h3{
font-size:1.15rem;
margin:0}

.feature p{
font-size:.92rem;
color:var(--muted);
margin:0}

.front-main h2{
font-size:clamp(1.5rem,3vw,2.2rem);
margin:2.5rem 0 1.25rem}

.cards .card{
padding:0;
overflow:hidden;
display:flex;
flex-direction:column}

.cards .card .img{
height:180px;
background:var(--line);
overflow:hidden}

.cards .card .img img{
width:100%;
height:100%;
object-fit:cover;
transition:transform .2s}

.cards .card:hover .img img{
transform:scale(1.04)}

.cards .card h3{
font-size:1.25rem;
margin:1rem 1rem .35rem}

.cards .card p{
font-size:.95rem;
color:var(--muted);
margin:0 1rem 1.25rem;
line-height:1.55}

.sources{
margin:2.5rem 0}

.logos{
display:flex;
flex-wrap:wrap;
gap:.65rem}

.logos a{
display:inline-block;
padding:.55rem 1rem;
background:var(--paper);
border:1px solid var(--line);
text-decoration:none;
color:var(--green-2);
font-weight:650;
font-size:.95rem;
transition:background .2s,color .2s,border .2s}

.logos a:hover{
background:var(--green);
color:#fff;
border-color:var(--green)}

.home-sidebar{
position:sticky;
top:100px;
align-self:start}

.home-sidebar .box + .box{
margin-top:1.25rem}

.home-sidebar .box h3{
font-size:1.2rem;
margin-bottom:.75rem}

.tags{
display:flex;
flex-wrap:wrap;
gap:.5rem}

.tags a{
display:inline-block;
padding:.4rem .75rem;
background:var(--cream);
border:1px solid var(--line);
text-decoration:none;
color:var(--ink);
font-size:.85rem;
transition:background .2s,color .2s,border .2s}

.tags a:hover{
background:var(--green);
color:#fff;
border-color:var(--green)}

@media(max-width:900px){
.home-sidebar{
position:static;
order:-1}
}

.related-filter-title{
font-size:1.4rem;
color:var(--green);
margin:0 0 .5rem}

.content-filters{
display:flex;
flex-wrap:wrap;
gap:.5rem;
margin:0 0 1.5rem}

.filter-btn{
display:inline-block;
padding:.45rem 1rem;
border:1px solid var(--line);
background:var(--paper);
color:#222;
font-size:.9rem;
text-align:center;
text-decoration:none;
cursor:pointer;
transition:background .2s,color .2s,border-color .2s,transform .1s}

.filter-btn.is-active,
.filter-btn:hover,
.filter-btn:focus{
background:var(--green);
color:#fff;
border-color:var(--green)}

.filter-btn:active{
transform:translateY(1px)}

.card.is-hidden{
display:none}

.card.is-animating{
animation:cardIn .35s ease both}

@keyframes cardIn{
from{opacity:0;transform:translateY(12px)}
to{opacity:1;transform:translateY(0)}}





