/*
Theme Name: Konsulaty w Polsce
Theme URI: https://konsulatywpolsce.pl
Description: Temat dla konsulatywpolsce.pl — Katalog Konsulatów i Ambasad w Polsce
Author: SEOFune
Template: asap
Version: 1.0.0
Text Domain: konsulaty-theme
*/

:root {
    --granat:     #0D2137;
    --granat-m:   #1A3A5C;
    --granat-c:   #2E6DA4;
    --zloty:      #C9A84C;
    --zloty-d:    #A8882E;
    --biel:       #FFFFFF;
    --szary-f:    #F5F7FA;
    --szary-m:    #E4E8EF;
    --szary-t:    #4A5568;
    --szary-d:    #2D3748;
    --czarny:     #0A1628;
    --radio:      6px;
    --radio-l:    12px;
    --cien-s:     0 1px 3px rgba(0,0,0,.10);
    --cien-m:     0 4px 16px rgba(13,33,55,.12);
    --trans:      .2s ease;
    --ui:         'Outfit', system-ui, sans-serif;
    --body:       'Source Serif 4', Georgia, serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--body); font-size: 17px; line-height: 1.75; color: var(--czarny); background: var(--biel); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--granat-c); text-decoration: none; transition: color var(--trans); }
a:hover { color: var(--zloty-d); }
h1,h2,h3,h4,h5,h6 { font-family: var(--ui); font-weight: 700; line-height: 1.25; color: var(--granat); }
h1 { font-size: clamp(1.75rem,4vw,2.5rem); margin-bottom: 1rem; }
h2 { font-size: clamp(1.3rem,3vw,1.75rem); margin: 2rem 0 .75rem; }
h3 { font-size: clamp(1.05rem,2vw,1.3rem); margin: 1.5rem 0 .5rem; }
p { margin-bottom: 1.1rem; }
p:last-child { margin-bottom: 0; }
ul, ol { padding-left: 1.5rem; margin-bottom: 1rem; }
li { margin-bottom: .35rem; }
strong { color: var(--granat); font-weight: 700; }

/* ── HEADER ─────────────────────────────────────────────── */
#kp-header { background: var(--granat); position: sticky; top: 0; z-index: 1000; box-shadow: 0 2px 12px rgba(0,0,0,.3); }
.kp-header-in { max-width: 1200px; margin: 0 auto; padding: 0 1.25rem; display: flex; align-items: center; justify-content: space-between; height: 62px; }
.kp-logo { display: flex; align-items: center; gap: .55rem; text-decoration: none; flex-shrink: 0; }
.kp-logo-icon { width: 36px; height: 36px; background: var(--zloty); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.kp-logo-icon svg { width: 20px; height: 20px; fill: var(--granat); }
.kp-logo-text { display: flex; flex-direction: column; line-height: 1.1; }
.kp-logo-text .marca { font-family: var(--ui); font-weight: 800; font-size: 1rem; color: var(--biel); }
.kp-logo-text .marca span { color: var(--zloty); }
.kp-logo-text .sub { font-family: var(--ui); font-size: .58rem; font-weight: 500; color: rgba(255,255,255,.55); letter-spacing: .1em; text-transform: uppercase; }
.kp-nav { display: flex; align-items: center; gap: .2rem; }
.kp-nav a { font-family: var(--ui); font-size: .82rem; font-weight: 500; color: rgba(255,255,255,.8); padding: .38rem .8rem; border-radius: var(--radio); transition: all var(--trans); white-space: nowrap; }
.kp-nav a:hover { color: var(--biel); background: rgba(255,255,255,.1); }
.kp-nav .cta { background: var(--zloty); color: var(--granat) !important; font-weight: 700; margin-left: .4rem; }
.kp-nav .cta:hover { background: var(--zloty-d); color: var(--biel) !important; }
.kp-toggle { display: none; background: none; border: none; cursor: pointer; padding: .4rem; color: var(--biel); }
.kp-toggle svg { width: 24px; height: 24px; fill: currentColor; }

/* ── LAYOUT ─────────────────────────────────────────────── */
#kp-main { min-height: 60vh; }
.kp-wrap { max-width: 1200px; margin: 0 auto; padding: 0 1.25rem; }
.kp-layout { display: grid; grid-template-columns: 1fr 290px; gap: 2.5rem; max-width: 1200px; margin: 0 auto; padding: 2.5rem 1.25rem; align-items: start; }
.kp-content { min-width: 0; }
.kp-sidebar { position: sticky; top: 78px; }

/* ── HERO ────────────────────────────────────────────────── */
.kp-hero { background: linear-gradient(135deg, #0D2137 0%, #1A3A5C 60%, #2E6DA4 100%); color: var(--biel); padding: 2.75rem 0 2.25rem; position: relative; overflow: hidden; }
.kp-hero::before { content: ''; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E"); }
.kp-hero-in { max-width: 1200px; margin: 0 auto; padding: 0 1.25rem; position: relative; }
.kp-hero-badge { display: inline-flex; align-items: center; gap: .3rem; background: var(--zloty); color: var(--granat); font-family: var(--ui); font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; padding: .22rem .7rem; border-radius: 100px; margin-bottom: .75rem; }
.kp-hero h1 { color: var(--biel); margin-bottom: .5rem; text-shadow: 0 2px 8px rgba(0,0,0,.2); }
.kp-hero-meta { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; margin-top: .75rem; }
.kp-hero-meta-item { display: flex; align-items: center; gap: .4rem; font-family: var(--ui); font-size: .83rem; color: rgba(255,255,255,.8); }
.kp-hero-meta-item svg { width: 14px; height: 14px; fill: var(--zloty); flex-shrink: 0; }

/* ── HERO PAGE (editoriales/legales) ────────────────────── */
.kp-page-hero { background: linear-gradient(135deg, #0D2137 0%, #1A3A5C 100%); color: var(--biel); padding: 2rem 0 1.75rem; }
.kp-page-hero-in { max-width: 1200px; margin: 0 auto; padding: 0 1.25rem; }
.kp-page-hero h1 { color: var(--biel); font-size: clamp(1.4rem, 3vw, 2rem); margin-bottom: .35rem; }
.kp-page-hero .kp-breadcrumb { font-family: var(--ui); font-size: .78rem; color: rgba(255,255,255,.6); margin-bottom: .6rem; }
.kp-page-hero .kp-breadcrumb a { color: rgba(255,255,255,.7); }
.kp-page-hero .kp-breadcrumb a:hover { color: var(--zloty); }

/* ── FICHA CONSULADO ─────────────────────────────────────── */
.kp-ficha-hero { background: linear-gradient(135deg, #0D2137 0%, #1A3A5C 100%); color: var(--biel); padding: 2rem 0 1.75rem; border-bottom: 3px solid var(--zloty); }
.kp-ficha-hero-in { max-width: 1200px; margin: 0 auto; padding: 0 1.25rem; }
.kp-ficha-badge { display: inline-flex; align-items: center; gap: .3rem; font-family: var(--ui); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .2rem .65rem; border-radius: 100px; margin-bottom: .6rem; }
.kp-ficha-badge.ambasada { background: var(--zloty); color: var(--granat); }
.kp-ficha-badge.konsulat { background: var(--granat-c); color: var(--biel); }
.kp-ficha-badge.honorowy { background: rgba(255,255,255,.15); color: var(--biel); }
.kp-ficha-hero h1 { color: var(--biel); font-size: clamp(1.35rem, 3vw, 1.9rem); margin-bottom: .4rem; }
.kp-ficha-hero .kp-breadcrumb { font-family: var(--ui); font-size: .78rem; color: rgba(255,255,255,.6); }
.kp-ficha-hero .kp-breadcrumb a { color: rgba(255,255,255,.7); }
.kp-ficha-hero .kp-breadcrumb a:hover { color: var(--zloty); }

/* ── TARJETA INFO ────────────────────────────────────────── */
.kp-info-card { background: var(--szary-f); border: 1px solid var(--szary-m); border-radius: var(--radio-l); overflow: hidden; margin-bottom: 1.5rem; }
.kp-info-card-head { background: var(--granat); color: var(--biel); font-family: var(--ui); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .65rem 1.1rem; }
.kp-info-card-body { padding: 1rem 1.1rem; }
.kp-info-row { display: flex; align-items: flex-start; gap: .65rem; padding: .55rem 0; border-bottom: 1px solid var(--szary-m); font-family: var(--ui); font-size: .88rem; }
.kp-info-row:last-child { border-bottom: none; }
.kp-info-row svg { width: 14px; height: 14px; fill: var(--granat-c); flex-shrink: 0; margin-top: 2px; }
.kp-info-label { color: var(--szary-t); font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; min-width: 80px; padding-top: 1px; }
.kp-info-val { color: var(--czarny); font-weight: 500; flex: 1; }
.kp-info-val a { color: var(--granat-c); word-break: break-all; }

/* ── BOTONES CTA ─────────────────────────────────────────── */
.kp-btns { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.25rem 0; }
.kp-btn { display: inline-flex; align-items: center; gap: .4rem; font-family: var(--ui); font-size: .85rem; font-weight: 600; padding: .6rem 1.1rem; border-radius: var(--radio); text-decoration: none; transition: all var(--trans); cursor: pointer; border: none; }
.kp-btn-primary { background: var(--granat-c); color: var(--biel); }
.kp-btn-primary:hover { background: var(--granat-m); color: var(--biel); }
.kp-btn-gold { background: var(--zloty); color: var(--granat); }
.kp-btn-gold:hover { background: var(--zloty-d); color: var(--biel); }
.kp-btn-outline { background: transparent; color: var(--granat-c); border: 1.5px solid var(--granat-c); }
.kp-btn-outline:hover { background: var(--granat-c); color: var(--biel); }
.kp-btn svg { width: 14px; height: 14px; fill: currentColor; }

/* ── TABLA HORARIO ───────────────────────────────────────── */
.kp-horario { width: 100%; border-collapse: collapse; font-family: var(--ui); font-size: .85rem; margin: .75rem 0; }
.kp-horario tr { border-bottom: 1px solid var(--szary-m); }
.kp-horario td { padding: .4rem .5rem; }
.kp-horario td:first-child { color: var(--szary-t); font-size: .78rem; width: 110px; }
.kp-horario td:last-child { font-weight: 600; color: var(--czarny); }
.kp-horario .cerrado { color: #C53030; }

/* ── TRAMITES LISTA ──────────────────────────────────────── */
.kp-tramites-lista { list-style: none; padding: 0; margin: 0; }
.kp-tramites-lista li { border-bottom: 1px solid var(--szary-m); }
.kp-tramites-lista li:last-child { border-bottom: none; }
.kp-tramites-lista a { display: flex; align-items: center; justify-content: space-between; padding: .65rem .5rem; font-family: var(--ui); font-size: .88rem; color: var(--granat); font-weight: 500; transition: all var(--trans); }
.kp-tramites-lista a:hover { color: var(--granat-c); padding-left: .85rem; }
.kp-tramites-lista a svg { width: 14px; height: 14px; fill: var(--zloty); flex-shrink: 0; }

/* ── OTRAS UBICACIONES ───────────────────────────────────── */
.kp-lista { list-style: none; padding: 0; }
.kp-lista li { border-bottom: 1px solid var(--szary-m); }
.kp-lista li:last-child { border-bottom: none; }
.kp-lista a { display: flex; align-items: center; justify-content: space-between; padding: .55rem .4rem; font-family: var(--ui); font-size: .86rem; color: var(--granat); transition: all var(--trans); }
.kp-lista a:hover { color: var(--granat-c); padding-left: .75rem; }
.kp-lista a svg { width: 12px; height: 12px; fill: var(--zloty); }

/* ── ADSENESE ────────────────────────────────────────────── */
.kp-ads { margin: 1.75rem 0; text-align: center; }

/* ── CAJA/ALERTA ─────────────────────────────────────────── */
.kp-box { background: #EBF4FF; border-left: 4px solid var(--granat-c); border-radius: 0 var(--radio) var(--radio) 0; padding: .9rem 1.1rem; margin: 1.25rem 0; font-family: var(--ui); font-size: .9rem; color: var(--granat); }
.kp-box strong { display: block; margin-bottom: .3rem; }
.kp-alerta { background: #FFFBEB; border-left: 4px solid var(--zloty); border-radius: 0 var(--radio) var(--radio) 0; padding: .9rem 1.1rem; margin: 1.25rem 0; font-family: var(--ui); font-size: .88rem; color: #7C4F00; }
.kp-alerta strong { display: block; margin-bottom: .3rem; }
.kp-descargo { background: var(--szary-f); border: 1px solid var(--szary-m); border-radius: var(--radio); padding: .9rem 1.1rem; margin: 1.5rem 0; font-family: var(--ui); font-size: .82rem; color: var(--szary-t); font-style: italic; }

/* ── TABS LETRAS (home) ──────────────────────────────────── */
.kp-tabs { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: 1.25rem; }
.kp-tab { font-family: var(--ui); font-size: .82rem; font-weight: 600; padding: .3rem .65rem; border-radius: var(--radio); background: var(--szary-f); border: 1.5px solid var(--szary-m); color: var(--szary-t); cursor: pointer; transition: all var(--trans); }
.kp-tab:hover { background: var(--granat-m); color: var(--biel); border-color: var(--granat-m); }
.kp-tab.kp-activa { background: var(--granat); color: var(--biel); border-color: var(--granat); }
.kp-panel { display: none; }
.kp-panel.kp-activo { display: block; }

/* Grid de tarjetas de país */
.kp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .75rem; }
.kp-card { background: var(--szary-f); border: 1.5px solid var(--szary-m); border-radius: var(--radio-l); padding: 1rem 1.1rem; text-decoration: none; display: block; transition: all var(--trans); }
.kp-card:hover { border-color: var(--granat-c); background: var(--biel); box-shadow: var(--cien-m); transform: translateY(-2px); }
.kp-card-flag { font-size: 1.4rem; margin-bottom: .35rem; }
.kp-card-nom { font-family: var(--ui); font-weight: 700; font-size: .95rem; color: var(--granat); margin-bottom: .2rem; }
.kp-card-info { font-family: var(--ui); font-size: .75rem; color: var(--szary-t); }
.kp-card-lnk { font-family: var(--ui); font-size: .72rem; color: var(--granat-c); margin-top: .4rem; font-weight: 600; display: flex; align-items: center; gap: .2rem; }

/* ── GRID CONSULADOS (zona) ──────────────────────────────── */
.kp-consulados-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.kp-consulado-card { background: var(--biel); border: 1.5px solid var(--szary-m); border-radius: var(--radio-l); padding: 1.1rem; transition: all var(--trans); text-decoration: none; display: block; }
.kp-consulado-card:hover { border-color: var(--granat-c); box-shadow: var(--cien-m); }
.kp-consulado-card .tipo { font-family: var(--ui); font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; padding: .15rem .5rem; border-radius: 100px; display: inline-block; margin-bottom: .5rem; }
.kp-consulado-card .tipo.ambasada { background: #FEF3C7; color: #92400E; }
.kp-consulado-card .tipo.konsulat { background: #DBEAFE; color: #1E40AF; }
.kp-consulado-card .tipo.honorowy { background: var(--szary-f); color: var(--szary-t); }
.kp-consulado-card h3 { font-size: .95rem; margin: 0 0 .4rem; color: var(--granat); }
.kp-consulado-card .dir { font-family: var(--ui); font-size: .8rem; color: var(--szary-t); display: flex; align-items: flex-start; gap: .3rem; }
.kp-consulado-card .dir svg { width: 12px; height: 12px; fill: var(--granat-c); flex-shrink: 0; margin-top: 2px; }

/* ── MAPA EMBED ──────────────────────────────────────────── */
.kp-mapa { width: 100%; height: 220px; border: none; border-radius: var(--radio-l); margin: 1rem 0; }

/* ── FOOTER ──────────────────────────────────────────────── */
#kp-footer { background: var(--granat); color: rgba(255,255,255,.75); padding: 2.5rem 0 1rem; margin-top: 3rem; font-family: var(--ui); font-size: .85rem; }
.kp-footer-in { max-width: 1200px; margin: 0 auto; padding: 0 1.25rem; }
.kp-footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 2rem; padding-bottom: 1.75rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.kp-footer-logo { display: flex; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.kp-footer-logo-icon { width: 32px; height: 32px; background: var(--zloty); border-radius: 7px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.kp-footer-logo-icon svg { width: 18px; height: 18px; fill: var(--granat); }
.kp-footer-logo-text .marca { font-family: var(--ui); font-weight: 800; font-size: .9rem; color: var(--biel); }
.kp-footer-logo-text .marca span { color: var(--zloty); }
.kp-footer-desc { font-size: .82rem; line-height: 1.6; color: rgba(255,255,255,.6); max-width: 280px; }
.kp-footer-col h4 { font-family: var(--ui); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--zloty); margin-bottom: .85rem; }
.kp-footer-col ul { list-style: none; padding: 0; }
.kp-footer-col ul li { margin-bottom: .45rem; }
.kp-footer-col ul a { color: rgba(255,255,255,.7); font-size: .83rem; transition: color var(--trans); }
.kp-footer-col ul a:hover { color: var(--biel); }
.kp-footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; padding-top: 1.25rem; font-size: .78rem; color: rgba(255,255,255,.45); }
.kp-footer-bottom a { color: rgba(255,255,255,.5); }
.kp-footer-bottom a:hover { color: var(--biel); }

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media (max-width: 900px) {
    .kp-layout { grid-template-columns: 1fr; }
    .kp-sidebar { position: static; }
    .kp-footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
    .kp-header-in { height: 56px; }
    .kp-logo-text .sub { display: none; }
    .kp-logo-text .marca { font-size: .9rem; }
    .kp-nav { display: none; flex-direction: column; position: fixed; inset: 56px 0 0 0; background: var(--granat); padding: 1.5rem 1.25rem; overflow-y: auto; gap: .25rem; z-index: 999; }
    .kp-nav.open { display: flex; }
    .kp-nav a { font-size: .95rem; padding: .75rem 1rem; border-radius: var(--radio); width: 100%; }
    .kp-nav .cta { margin-left: 0; margin-top: .5rem; text-align: center; justify-content: center; }
    .kp-toggle { display: block; }
    .kp-hero { padding: 1.75rem 0 1.5rem; }
    .kp-hero h1 { font-size: 1.5rem; }
    .kp-layout { padding: 1.5rem 1.25rem; }
    .kp-grid { grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: .5rem; }
    .kp-card { padding: .85rem .9rem; }
    .kp-consulados-grid { grid-template-columns: 1fr; }
    .kp-btns { flex-direction: column; }
    .kp-btn { justify-content: center; }
    .kp-footer-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .kp-footer-bottom { flex-direction: column; text-align: center; }
    .kp-tabs { gap: .25rem; }
    .kp-tab { font-size: .75rem; padding: .28rem .55rem; }
    .kp-info-label { min-width: 70px; }
    .kp-mapa { height: 180px; }
}
