/* ===========================================================
   dr Piotr Czajkowski — tłumacz przysięgły
   Paleta: głęboka zieleń (pine) + mosiądz + kość słoniowa
   =========================================================== */

:root{
    --green:      #0b2c4d;
    --green-700:  #082138;
    --green-500:  #12395f;
    --green-100:  #e9eef4;
    --brass:      #c8973f;
    --brass-600:  #b3822f;
    --brass-100:  #f6ecd8;
    --ivory:      #f5f6f8;
    --surface:    #ffffff;
    --text:       #2b333d;
    --muted:      #5c6773;
    --border:     #e6e9ee;
    --shadow:     0 8px 28px rgba(11,44,77,.08);
    --shadow-lg:  0 22px 60px rgba(11,44,77,.16);
    --radius:     16px;
    --radius-sm:  12px;
    --maxw:       1120px;
    --ease:       cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
    margin:0;
    font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    background:var(--ivory);
    color:var(--text);
    line-height:1.75;
    -webkit-font-smoothing:antialiased;
}

h1,h2,h3{ font-family:"Playfair Display",Georgia,serif; line-height:1.2; font-weight:600; }
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--brass-600); text-decoration:none; transition:color .2s var(--ease); }
a:hover{ color:var(--green); }

.eyebrow{
    display:inline-block;
    font-family:"Inter",sans-serif;
    font-size:.76rem;
    font-weight:600;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--brass-600);
    margin-bottom:.7rem;
}

/* reveal on scroll */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }

/* ---------- BUTTONS ---------- */
.btn{
    display:inline-flex; align-items:center; gap:.55rem;
    font-weight:600; font-size:.98rem;
    padding:.85rem 1.5rem;
    border-radius:999px;
    border:1.5px solid transparent;
    cursor:pointer;
    transition:transform .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.btn svg{ width:18px; height:18px; }
.btn-primary{ background:var(--brass); color:#fff; box-shadow:0 8px 20px rgba(184,134,59,.32); }
.btn-primary:hover{ background:var(--brass-600); color:#fff; transform:translateY(-2px); box-shadow:0 12px 26px rgba(184,134,59,.4); }
.btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.45); }
.btn-ghost:hover{ background:rgba(255,255,255,.12); color:#fff; transform:translateY(-2px); }

/* ---------- HERO ---------- */
.hero{
    position:relative;
    color:#fff;
    text-align:center;
    padding:4.5rem 1.25rem 5rem;
    overflow:hidden;
    background:
        radial-gradient(900px 380px at 50% -60px, rgba(200,151,63,.26), transparent 60%),
        linear-gradient(165deg, var(--green) 0%, var(--green-700) 100%);
}
.hero::after{
    content:""; position:absolute; inset:0;
    background-image:radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px);
    background-size:22px 22px;
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent 70%);
            mask-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent 70%);
    pointer-events:none;
}
.hero-inner{ position:relative; z-index:1; max-width:760px; margin:0 auto; }
.hero img.badge{
    height:150px; width:150px; object-fit:cover;
    border-radius:50%; margin:0 auto 1.4rem;
    border:4px solid rgba(255,255,255,.9);
    box-shadow:0 14px 36px rgba(0,0,0,.4);
}
.hero .eyebrow{ color:var(--brass-100); }
.hero h1{ margin:.2rem 0 .5rem; font-size:clamp(2.1rem,5vw,3.3rem); }
.hero .subtitle{ margin:0 auto 1.1rem; max-width:560px; font-size:1.12rem; color:rgba(255,255,255,.88); }
.hero-cta{ display:flex; gap:.85rem; justify-content:center; flex-wrap:wrap; margin-top:1.6rem; }
.hero-trust{
    display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap;
    margin-top:2rem;
}
.hero-trust span{
    font-size:.82rem; color:rgba(255,255,255,.82);
    padding:.4rem .9rem; border:1px solid rgba(255,255,255,.22);
    border-radius:999px; background:rgba(255,255,255,.05);
}

/* ---------- NAV ---------- */
nav{
    position:sticky; top:0; z-index:30;
    background:rgba(250,247,241,.9);
    backdrop-filter:saturate(180%) blur(10px);
    border-bottom:1px solid var(--border);
    text-align:center; padding:.9rem 1rem;
}
nav a{ position:relative; color:var(--green); font-weight:600; font-size:.98rem; margin:0 1.05rem; padding:.25rem 0; }
nav a::after{ content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--brass); transform:scaleX(0); transform-origin:center; transition:transform .25s var(--ease); }
nav a:hover{ color:var(--brass-600); }
nav a:hover::after,nav a.active::after{ transform:scaleX(1); }
nav a.active{ color:var(--brass-600); }

/* ---------- LAYOUT ---------- */
.section{ scroll-margin-top:84px; padding:4.5rem 1.25rem; }
.container{ max-width:var(--maxw); margin:0 auto; }
.section-head{ max-width:720px; }
.section-head.center{ margin:0 auto; text-align:center; }
h2{ color:var(--green); font-size:clamp(1.7rem,3vw,2.2rem); margin:0 0 1rem; }
.section p{ color:var(--text); }
.muted{ color:var(--muted); }

.section-alt{ background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }

/* ---------- O MNIE ---------- */
.about-grid{ display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:center; }
.about-media img{ border-radius:var(--radius); box-shadow:var(--shadow-lg); width:100%; }
.about-media{ position:relative; }
.about-media::before{
    content:""; position:absolute; inset:auto -14px -14px auto;
    width:70%; height:70%; border-radius:var(--radius);
    border:2px solid var(--brass); z-index:-1;
}
.about-body p{ margin:0 0 1rem; }
@media(min-width:860px){
    .about-grid{ grid-template-columns:0.9fr 1.1fr; gap:3.5rem; }
}

/* ---------- OFERTA (cards) ---------- */
.cards{ display:grid; grid-template-columns:1fr; gap:1.5rem; margin-top:2.5rem; }
@media(min-width:700px){ .cards{ grid-template-columns:repeat(3,1fr); } }
.card{
    background:var(--surface); border:1px solid var(--border);
    border-radius:var(--radius); padding:2rem 1.6rem;
    box-shadow:var(--shadow);
    transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--brass-100); }
.card-icon{
    width:56px; height:56px; border-radius:14px;
    display:grid; place-items:center; margin-bottom:1.1rem;
    background:var(--green-100); color:var(--green);
}
.card:hover .card-icon{ background:var(--brass-100); color:var(--brass-600); }
.card-icon svg{ width:28px; height:28px; }
.card h3{ color:var(--green); font-size:1.28rem; margin:0 0 .5rem; }
.card p{ margin:0; color:var(--muted); font-size:.98rem; }
.offer-note{
    margin-top:2rem; text-align:center; color:var(--muted);
    max-width:680px; margin-left:auto; margin-right:auto;
}

/* ---------- OFERTA (image + text) ---------- */
.offer-list{ list-style:none; padding:0; margin:0 0 1.1rem; }
.offer-list li{ position:relative; padding-left:1.75rem; margin-bottom:.55rem; }
.offer-list li::before{
    content:""; position:absolute; left:0; top:.62em;
    width:8px; height:8px; background:var(--brass); border-radius:50%;
}
@media(min-width:860px){
    .oferta-grid .about-media{ order:2; }
    .oferta-grid .about-body{ order:1; }
    .oferta-grid .about-media::before{ inset:-14px auto auto -14px; }
}

/* ---------- CERTYFIKAT ---------- */
#certyfikat{ text-align:center; }
#certyfikat .cert-frame{
    display:inline-block; margin-top:1.5rem; padding:14px;
    background:var(--surface); border:1px solid var(--border);
    border-radius:var(--radius); box-shadow:var(--shadow-lg);
}
#certyfikat img{ max-width:400px; width:100%; border-radius:8px; }

/* ---------- KONTAKT ---------- */
#kontakt .kontakt-wrap{
    display:grid;
    grid-template-columns:minmax(320px,380px) 1fr;
    gap:1.5rem;
    align-items:stretch;
    margin-top:2.5rem;
}

.kontakt-overlay{
    order:1;
    display:flex; flex-direction:column; justify-content:center;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:1.9rem 1.7rem;
}
.kontakt-overlay .oh{ display:flex; align-items:center; gap:1rem; margin-bottom:1.3rem; }
.kontakt-overlay .oh img{ width:64px; height:64px; border-radius:50%; object-fit:cover; border:3px solid var(--brass-100); flex-shrink:0; }
.kontakt-overlay .oh h3{ color:var(--green); margin:0; font-size:1.15rem; }
.kontakt-overlay .oh p{ margin:.15rem 0 0; font-size:.85rem; color:var(--muted); }

.contact-list{ list-style:none; margin:0 0 1.4rem; padding:0; }
.contact-list li{ display:flex; align-items:flex-start; gap:.85rem; padding:.75rem 0; border-top:1px solid var(--border); }
.contact-list li:first-child{ border-top:0; padding-top:0; }
.contact-list .ci{
    width:38px; height:38px; flex-shrink:0; border-radius:10px;
    display:grid; place-items:center;
    background:var(--green-100); color:var(--green);
}
.contact-list .ci svg{ width:19px; height:19px; }
.contact-list .ct{ font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin-bottom:.15rem; }
.contact-list .cv{ font-weight:600; color:var(--text); font-size:.97rem; line-height:1.45; word-break:break-word; }
a.cv{ color:var(--text); }
a.cv[href^="mailto:"]{ font-size:.86rem; letter-spacing:-.1px; }
a.cv:hover{ color:var(--brass-600); }
.cv-hint{ font-weight:400; color:var(--muted); font-size:.85em; }

.overlay-actions{ display:grid; gap:.6rem; margin-top:.2rem; }
.overlay-actions .btn{ width:100%; justify-content:center; }
.btn-line{ background:var(--green); color:#fff; }
.btn-line:hover{ background:var(--green-500); color:#fff; transform:translateY(-2px); }

.kontakt-map{
    order:2;
    height:100%; min-height:440px;
    border-radius:var(--radius); overflow:hidden;
    border:1px solid var(--border); box-shadow:var(--shadow);
}
.kontakt-map iframe{ width:100%; height:100%; border:0; display:block; }

@media(max-width:820px){
    #kontakt .kontakt-wrap{ grid-template-columns:1fr; }
    .kontakt-map{ min-height:320px; }
}

/* ---------- FOOTER ---------- */
footer{
    background:var(--green-700); color:rgba(255,255,255,.78);
    text-align:center; padding:2.2rem 1rem; font-size:.92rem;
}
footer .fname{ font-family:"Playfair Display",serif; color:#fff; font-size:1.05rem; }
footer .dot{ color:var(--brass); margin:0 .4rem; }
footer .foot-sub{ margin-top:.35rem; }

@media(max-width:520px){
    .section{ padding:3.2rem 1.1rem; }
    nav a{ margin:0 .55rem; font-size:.9rem; }
    .hero{ padding:3.5rem 1.1rem 4rem; }
}
