:root {
    --inv-bg: #0E1A2A;
    /* granat */
    --inv-accent: #1EC28B;
    /* zielony akcent */
    --inv-text: #1F2937;
    /* tekst */
    --inv-muted: #6B7280;
    /* opis */
    --inv-surface: #FFFFFF;
    /* biel */
    --inv-page: #F5F7FA;
    /* tło */
    --inv-radius: 16px;
    --inv-shadow: 0 8px 24px rgba(14, 26, 42, .12);
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    color: var(--inv-text);
    background: var(--inv-page);
    line-height: 1.6;
}

a {
    color: inherit;
    text-decoration: none
}

img {
    max-width: 100%;
    height: auto;
    display: block
}

.container {
    width: min(1160px, 92%);
    margin-inline: auto;
}

/* ===== HEADER (sticky) ===== */
header#invifin-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(255, 255, 255, .86);
    backdrop-filter: saturate(180%) blur(10px);
    border-bottom: 1px solid rgba(14, 26, 42, .06);
    transition: box-shadow .2s ease, background .2s ease;
}

header#invifin-header.is-scrolled {
    box-shadow: var(--inv-shadow);
    background: #fff;
}

.nav-bar {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 14px 0;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 190px;
}

.brand-logo {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--inv-bg), #1B2B44);
    display: grid;
    place-items: center;
    box-shadow: 0 6px 14px rgba(14, 26, 42, .18);
}

.brand-logo svg {
    width: 24px;
    height: 24px
}

.brand-title {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.brand-title strong {
    font-weight: 700;
    letter-spacing: .2px
}

.mini-claim {
    font-size: .78rem;
    color: var(--inv-muted);
}

.nav-links {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 18px;
}

.nav-links a {
    padding: 8px 10px;
    border-radius: 10px;
    font-weight: 500;
    color: #0f172a;
}

.nav-links a:hover {
    background: #eef2f7
}

.cta-primary {
    margin-left: 6px;
    padding: 10px 14px;
    border-radius: 12px;
    background: var(--inv-accent);
    color: #063d2a;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(30, 194, 139, .24);
}

.cta-primary:hover {
    filter: brightness(.95)
}

/* Burger */
.burger {
    display: none;
    margin-left: auto;
    cursor: pointer;
    border: 0;
    background: transparent;
    padding: 8px
}

.burger span {
    display: block;
    width: 24px;
    height: 2px;
    background: #0f172a;
    margin: 5px 0;
    border-radius: 2px
}

/* Mobile menu */
@media (max-width: 980px) {
    .nav-links {
        display: none;
        position: fixed;
        inset: auto 0 0 0;
        top: 64px;
        background: #ffffff;
        padding: 18px 4%;
        border-top: 1px solid rgba(14, 26, 42, .06);
        box-shadow: 0 -10px 30px rgba(14, 26, 42, .08);
        flex-direction: column;
        align-items: flex-start;
        gap: 10px
    }

    .nav-links.open {
        display: flex
    }

    .burger {
        display: block
    }

    .mini-claim {
        display: none
    }
}

/* ===== HERO ===== */
section#invifin-hero {
    padding: 72px 0 32px;
    background:
        radial-gradient(1200px 500px at 80% -10%, rgba(30, 194, 139, .12), transparent 60%),
        radial-gradient(800px 400px at -10% 0%, rgba(14, 26, 42, .10), transparent 60%);
}

.hero-wrap {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 36px;
    align-items: center;
}

@media (max-width: 980px) {
    .hero-wrap {
        grid-template-columns: 1fr;
        gap: 22px
    }
}

.hero-title {
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.12;
    margin: 0 0 12px;
    letter-spacing: .2px;
    color: #0b1320;
}

.hero-sub {
    font-size: clamp(16px, 2.1vw, 18px);
    color: #374151;
    margin: 0 0 18px;
}

.hero-points {
    display: grid;
    gap: 10px;
    margin: 18px 0 22px;
    padding: 0;
    list-style: none;
}

.hero-points li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #fff;
    border: 1px solid #e8ecf2;
    border-radius: 14px;
    padding: 10px 12px;
    box-shadow: 0 8px 18px rgba(14, 26, 42, .04);
}

.hero-points svg {
    flex: 0 0 18px;
    margin-top: 2px
}

.hero-ctas {
    display: flex;
    gap: 12px;
    flex-wrap: wrap
}

.btn-primary {
    background: var(--inv-accent);
    color: #063d2a;
    border: 0;
    padding: 12px 16px;
    border-radius: 14px;
    font-weight: 800;
    box-shadow: 0 10px 22px rgba(30, 194, 139, .25);
    cursor: pointer;
}

.btn-primary:hover {
    filter: brightness(.96)
}

.btn-ghost {
    background: #ffffff;
    border: 1px solid #dbe3ee;
    color: #0f172a;
    padding: 12px 16px;
    border-radius: 14px;
    font-weight: 700;
}

.hero-art {
    background: #ffffff;
    border: 1px solid #e8ecf2;
    border-radius: 18px;
    padding: 18px;
    box-shadow: var(--inv-shadow);
}

.hero-art figcaption {
    font-size: .82rem;
    color: var(--inv-muted);
    text-align: center;
    margin-top: 10px;
}

/* Accessibility helpers */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0
}
/* ===== Invifin: O nas + USP ===== */

  
  .inv-container{width:min(1160px,92%);margin-inline:auto}
  
  #invifin-usps{
    padding:56px 0 40px;
    background:
      radial-gradient(900px 380px at 100% 0%, rgba(30,194,139,.10), transparent 60%),
      radial-gradient(700px 320px at 0% 20%, rgba(14,26,42,.06), transparent 55%);
  }
  
  .inv-usps__head{
    max-width:860px;
    margin:0 auto 26px;
    text-align:center;
  }
  .inv-usps__title{
    margin:0 0 10px;
    font-size:clamp(24px, 3.4vw, 34px);
    line-height:1.15;
    color:#0b1320;
    letter-spacing:.2px;
  }
  .inv-usps__lede{
    margin:0 auto;
    color:var(--inv-muted);
    font-size:clamp(15px, 2vw, 17px);
  }
  
  /* Karty USP */
  .inv-usps__grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:16px;
    margin-top:22px;
  }
  @media (max-width: 1080px){
    .inv-usps__grid{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width: 620px){
    .inv-usps__grid{grid-template-columns:1fr}
  }
  
  .inv-usps__card{
    background:var(--inv-surface);
    border:1px solid #e8ecf2;
    border-radius:18px;
    padding:16px;
    box-shadow:0 10px 22px rgba(14,26,42,.06);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .inv-usps__card:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 32px rgba(14,26,42,.10);
    border-color:#dce5f1;
  }
  .inv-usps__icon{
    width:40px;height:40px;border-radius:12px;
    display:grid;place-items:center;
    background:linear-gradient(135deg, var(--inv-accent), #6de0bb);
    box-shadow:0 8px 18px rgba(30,194,139,.28);
    margin-bottom:10px;
  }
  .inv-usps__icon svg{width:22px;height:22px}
  
  .inv-usps__card-title{
    margin:0 0 8px;
    font-size:1.08rem;
    line-height:1.25;
    color:#0f172a;
  }
  .inv-usps__card-text{
    margin:0;
    font-size:.96rem;
    color:#334155;
  }
  
  /* Mini-metryki */
  .inv-usps__stats{
    margin-top:24px;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:12px;
  }
  @media (max-width: 620px){
    .inv-usps__stats{grid-template-columns:1fr}
  }
  .inv-usps__stat{
    background:#ffffff;
    border:1px solid #e8ecf2;
    border-radius:16px;
    padding:14px;
    text-align:center;
    box-shadow:0 8px 20px rgba(14,26,42,.05);
  }
  .inv-usps__stat-value{
    font-weight:800;
    font-size:clamp(20px, 3vw, 28px);
    color:var(--inv-bg);
    letter-spacing:.2px;
  }
  .inv-usps__stat-label{
    font-size:.9rem;
    color:var(--inv-muted);
  }
/* ===== Invifin: Metodyka / Jak to działa (4 kroki) ===== */

  
  .inv-container{width:min(1160px,92%);margin-inline:auto}
  
  #invifin-process{
    padding:56px 0 40px;
    background:
      radial-gradient(900px 380px at 100% 0%, rgba(30,194,139,.10), transparent 60%),
      radial-gradient(700px 320px at 0% 20%, rgba(14,26,42,.05), transparent 55%);
  }
  
  /* Head */
  .inv-process__head{
    text-align:center;
    max-width:860px;
    margin:0 auto 28px;
  }
  .inv-process__title{
    margin:0 0 10px;
    font-size:clamp(24px,3.4vw,34px);
    line-height:1.15;
    color:#0b1320;
    letter-spacing:.2px;
  }
  .inv-process__lede{
    margin:0 auto;
    color:var(--inv-muted);
    font-size:clamp(15px,2vw,17px);
  }
  
  /* Timeline */
  .inv-process__timeline{
    position:relative;
    list-style:none;
    margin:26px 0 0;
    padding:0;
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px;
  }
  @media (max-width: 860px){
    .inv-process__timeline{grid-template-columns:1fr}
  }
  
  /* Pozioma/pozioma linia (dekor) nie jest potrzebna przy gridzie — zachowamy czytelność kart */
  .inv-process__step{
    position:relative;
    background:var(--inv-surface);
    border:1px solid #e8ecf2;
    border-radius:18px;
    padding:16px 16px 16px 64px;
    box-shadow:0 10px 22px rgba(14,26,42,.06);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    min-height:120px;
  }
  .inv-process__step:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 32px rgba(14,26,42,.10);
    border-color:#dce5f1;
  }
  
  /* Numer kroku */
  .inv-process__badge{
    position:absolute; left:14px; top:14px;
    width:36px; height:36px; border-radius:12px;
    display:grid; place-items:center;
    background:linear-gradient(135deg, var(--ac2, #1EC28B), #6de0bb);
    color:#063d2a; font-weight:800;
    box-shadow:0 8px 18px rgba(30,194,139,.28);
  }
  
  /* Ikona */
  .inv-process__icon{
    position:absolute; left:12px; bottom:12px;
    width:40px; height:40px; border-radius:12px;
    display:grid; place-items:center;
    background:#F2FBF7; border:1px solid #d7f2e6;
  }
  .inv-process__icon svg{width:22px; height:22px}
  
  /* Treść */
  .inv-process__content{display:block}
  .inv-process__step-title{
    margin:0 0 6px;
    font-size:1.08rem; line-height:1.25; color:#0f172a;
  }
  .inv-process__step-text{
    margin:0 0 8px;
    color:#334155; font-size:.97rem;
  }
  .inv-process__bullets{
    margin:0; padding-left:18px; color:#42526b; font-size:.95rem;
  }
  .inv-process__bullets li{margin:2px 0}
  
  /* Wyróżnik */
  .inv-process__note{
    margin-top:22px;
    display:flex; gap:10px; align-items:flex-start;
    background:#ffffff; border:1px solid #e8ecf2;
    border-radius:16px; padding:12px 14px;
    box-shadow:0 8px 20px rgba(14,26,42,.05);
  }
  .inv-process__note svg{width:22px;height:22px;flex:0 0 22px}
  .inv-process__note p{margin:0; color:#0f172a; font-size:.98rem}
  .inv-process__note strong{font-weight:800; color:#0E1A2A}
/* ===== Invifin: Oferta / Plany cenowe ===== */

  
  .inv-container{width:min(1160px,92%);margin-inline:auto}
  
  #invifin-offer{
    padding:56px 0 42px;
    background:
      radial-gradient(900px 380px at 100% 0%, rgba(30,194,139,.10), transparent 60%),
      radial-gradient(700px 320px at 0% 20%, rgba(14,26,42,.06), transparent 55%);
  }
  
  /* Head */
  .inv-offer__head{ text-align:center; max-width:860px; margin:0 auto 26px; }
  .inv-offer__title{
    margin:0 0 10px; font-size:clamp(24px,3.4vw,34px); line-height:1.15; color:#0b1320; letter-spacing:.2px;
  }
  .inv-offer__lede{ margin:0 auto; color:var(--inv-muted); font-size:clamp(15px,2vw,17px); }
  
  /* Grid */
  .inv-offer__grid{
    display:grid; gap:16px; margin-top:22px;
    grid-template-columns:repeat(3, 1fr);
  }
  @media (max-width: 980px){ .inv-offer__grid{ grid-template-columns:1fr; } }
  
  /* Card */
  .inv-offer__card{
    position:relative;
    background:var(--inv-surface);
    border:1px solid #e8ecf2;
    border-radius:20px;
    padding:18px 16px 16px;
    box-shadow:0 10px 22px rgba(14,26,42,.06);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .inv-offer__card:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 32px rgba(14,26,42,.10);
    border-color:#dce5f1;
  }
  
  /* Highlight for middle card */
  .inv-offer__card--pro{
    border-color:#cfeee3;
    box-shadow:0 16px 36px rgba(30,194,139,.18);
  }
  
  /* Badge */
  .inv-offer__badge{
    position:absolute; top:12px; right:12px;
    padding:6px 10px; border-radius:999px;
    background:#eef2f7; color:#0f172a; font-weight:700; font-size:.8rem;
  }
  .inv-offer__badge--accent{
    background:linear-gradient(135deg, var(--inv-accent), #6de0bb);
    color:#063d2a; box-shadow:0 10px 22px rgba(30,194,139,.28);
  }
  
  /* Name & desc */
  .inv-offer__name{ margin:8px 0 4px; font-size:1.2rem; line-height:1.2; color:#0f172a; }
  .inv-offer__desc{ margin:0 0 10px; color:#374151; font-size:.98rem; }
  
  /* Price */
  .inv-offer__price{
    display:flex; align-items:baseline; gap:8px;
    margin:6px 0 12px; padding:8px 10px;
    background:#F8FAFD; border:1px solid #e7edf6; border-radius:14px;
  }
  .inv-offer__amount{ font-weight:800; font-size:1.4rem; color:#0E1A2A; letter-spacing:.2px; }
  .inv-offer__period{ color:var(--inv-muted); font-size:.92rem; }
  
  /* List */
  .inv-offer__list{ margin:0 0 14px; padding-left:18px; color:#334155; font-size:.96rem; }
  .inv-offer__list li{ margin:6px 0; }
  
  /* CTA */
  .inv-offer__cta{
    display:inline-block; text-align:center;
    padding:12px 16px; border-radius:14px; font-weight:800;
    background:var(--inv-accent); color:#063d2a; box-shadow:0 10px 22px rgba(30,194,139,.25);
  }
  .inv-offer__cta:hover{ filter:brightness(.96); }
  
  /* Tagline under highlighted */
  #plan-smart .inv-offer__tagline{
    margin-top:10px; text-align:center; color:#0E1A2A; font-weight:700; font-size:.9rem;
  }
  
  /* Tooltip (mini-FAQ) — CSS only */
  .inv-tip{ position:relative; display:inline-flex; vertical-align:middle; margin-left:6px; }
  .inv-tip__btn{
    appearance:none; border:0; cursor:help; line-height:1;
    width:18px; height:18px; border-radius:999px;
    display:inline-grid; place-items:center;
    background:#0E1A2A; color:#fff; font-weight:800; font-size:.78rem;
  }
  .inv-tip__btn:focus{ outline:2px solid #9ee8cf; outline-offset:2px; }
  .inv-tip__bubble{
    position:absolute; left:50%; transform:translateX(-50%); bottom:calc(100% + 8px);
    min-width:220px; max-width:280px;
    background:#0E1A2A; color:#e8fff8; padding:10px 12px; border-radius:10px;
    box-shadow:0 14px 30px rgba(14,26,42,.3);
    border:1px solid #18304b;
    font-size:.86rem; line-height:1.35;
    opacity:0; visibility:hidden; transition:opacity .15s ease, visibility .15s ease;
    z-index:20;
  }
  .inv-tip__bubble::after{
    content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%);
    border:8px solid transparent; border-top-color:#0E1A2A;
  }
  .inv-tip:hover .inv-tip__bubble,
  .inv-tip__btn:focus + .inv-tip__bubble{ opacity:1; visibility:visible; }
  
  /* Footer note */
  .inv-offer__note{
    margin-top:22px; text-align:center;
    background:#ffffff; border:1px solid #e8ecf2; border-radius:16px; padding:12px 14px;
    box-shadow:0 8px 20px rgba(14,26,42,.05);
  }
  .inv-offer__note p{ margin:6px 0; }
  .inv-offer__fineprint{ color:var(--inv-muted); font-size:.9rem; }
/* ===== Invifin: Case studies + Opinie ===== */

  
  .inv-container{width:min(1160px,92%);margin-inline:auto}
  
  /* ===== CASES ===== */
  #invifin-cases{
    padding:56px 0 40px;
    background:
      radial-gradient(900px 380px at 100% 0%, rgba(30,194,139,.10), transparent 60%),
      radial-gradient(700px 320px at 0% 20%, rgba(14,26,42,.05), transparent 55%);
  }
  
  .inv-cases__head{
    text-align:center; max-width:860px; margin:0 auto 26px;
  }
  .inv-cases__title{
    margin:0 0 10px; font-size:clamp(24px,3.4vw,34px); line-height:1.15; color:#0b1320; letter-spacing:.2px;
  }
  .inv-cases__lede{ margin:0 auto; color:var(--inv-muted); font-size:clamp(15px,2vw,17px); }
  
  .inv-cases__grid{
    display:grid; gap:16px; margin-top:22px;
    grid-template-columns:repeat(3,1fr);
  }
  @media (max-width: 980px){ .inv-cases__grid{ grid-template-columns:1fr; } }
  
  .inv-cases__card{
    background:var(--inv-surface);
    border:1px solid #e8ecf2;
    border-radius:20px;
    padding:16px;
    box-shadow:0 10px 22px rgba(14,26,42,.06);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .inv-cases__card:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 32px rgba(14,26,42,.10);
    border-color:#dce5f1;
  }
  .inv-cases__card--focus{
    border-color:#cfeee3;
    box-shadow:0 16px 36px rgba(30,194,139,.18);
  }
  
  .inv-cases__name{
    margin:4px 0 6px; font-size:1.14rem; line-height:1.2; color:#0f172a;
  }
  .inv-cases__pill{
    font-size:.8rem; font-weight:700; margin-left:8px; padding:.2rem .5rem; border-radius:999px;
    background:#eef2f7; color:#0f172a;
  }
  .inv-cases__pill--accent{
    background:linear-gradient(135deg, var(--inv-accent), #6de0bb);
    color:#063d2a; box-shadow:0 10px 22px rgba(30,194,139,.28);
  }
  .inv-cases__desc{ margin:0 0 10px; color:#374151; font-size:.97rem; }
  
  /* Pasek alokacji — linear-gradient ze zmiennych % */
  .inv-cases__alloc{
    height:14px; border-radius:10px; overflow:hidden; margin:8px 0 10px;
    background:
      linear-gradient(to right,
        #1EC28B 0%, #1EC28B calc(var(--akcje,0)*1%), 
        #3b82f6 calc(var(--akcje,0)*1%) calc((var(--akcje,0)+var(--obligacje,0))*1%),
        #a855f7 calc((var(--akcje,0)+var(--obligacje,0))*1%) calc((var(--akcje,0)+var(--obligacje,0)+var(--alternatywy,0))*1%),
        #94a3b8 calc((var(--akcje,0)+var(--obligacje,0)+var(--alternatywy,0))*1%) 100%
      );
    border:1px solid #e4eaf3;
  }
  .inv-cases__alloc-list{
    display:flex; flex-wrap:wrap; gap:10px 14px; margin:0 0 10px; padding:0; list-style:none; color:#334155; font-size:.92rem;
  }
  .dot{display:inline-block; width:10px; height:10px; border-radius:999px; margin-right:6px; vertical-align:middle}
  .dot--stocks{background:#1EC28B}
  .dot--bonds{background:#3b82f6}
  .dot--alts{background:#a855f7}
  .dot--cash{background:#94a3b8}
  
  .inv-cases__bullets{ margin:0; padding-left:18px; color:#334155; font-size:.95rem; }
  .inv-cases__bullets li{ margin:6px 0; }
  
  .inv-cases__note{
    margin-top:22px; text-align:center;
    background:#ffffff; border:1px solid #e8ecf2; border-radius:16px; padding:12px 14px;
    box-shadow:0 8px 20px rgba(14,26,42,.05);
  }
  .inv-cases__note p{ margin:0; }
  
  /* ===== REVIEWS ===== */
  #invifin-reviews{
    padding:56px 0 42px;
    background:
      radial-gradient(900px 380px at 100% 0%, rgba(30,194,139,.10), transparent 60%),
      radial-gradient(700px 320px at 0% 20%, rgba(14,26,42,.06), transparent 55%);
  }
  
  .inv-reviews__head{
    text-align:center; max-width:860px; margin:0 auto 16px;
  }
  .inv-reviews__title{
    margin:0 0 10px; font-size:clamp(24px,3.4vw,34px); line-height:1.15; color:#0b1320; letter-spacing:.2px;
  }
  
  /* Summary rating */
  .inv-reviews__summary{
    display:flex; align-items:center; justify-content:center; gap:12px;
    background:#ffffff; border:1px solid #e8ecf2; border-radius:16px; padding:10px 12px;
    box-shadow:0 10px 22px rgba(14,26,42,.06);
  }
  .stars{ display:flex; gap:4px; }
  .star{ width:18px; height:18px; fill:#F5C51C; filter: drop-shadow(0 2px 6px rgba(0,0,0,.08)); }
  .inv-reviews__numbers{ display:flex; align-items:baseline; gap:6px; color:#0f172a; }
  .inv-reviews__avg{ font-size:1.3rem; font-weight:800; }
  .inv-reviews__slash{ color:#94a3b8; }
  .inv-reviews__count{ color:var(--inv-muted); font-size:.92rem; }
  
  /* Grid of reviews */
  .inv-reviews__grid{
    display:grid; gap:14px; margin-top:18px;
    grid-template-columns:repeat(2, 1fr);
  }
  @media (max-width: 820px){ .inv-reviews__grid{ grid-template-columns:1fr; } }
  
  .inv-reviews__card{
    background:#ffffff; border:1px solid #e8ecf2; border-radius:16px; padding:14px;
    box-shadow:0 8px 20px rgba(14,26,42,.05);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .inv-reviews__card:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 32px rgba(14,26,42,.10);
    border-color:#dce5f1;
  }
  .inv-reviews__stars{ color:#F5C51C; font-size:1rem; line-height:1; margin-bottom:6px; }
  .stars-inline{ letter-spacing:1px; }
  .inv-reviews__text{ margin:0 0 8px; color:#334155; font-size:.98rem; }
  .inv-reviews__author{ margin:0; color:#0f172a; font-weight:700; font-size:.95rem; }
  
  /* Accessibility helper */
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* ===== Invifin: FAQ (akordeony) ===== */

  
  .inv-container{width:min(1160px,92%);margin-inline:auto}
  
  #invifin-faq{
    padding:56px 0 42px;
    background:
      radial-gradient(900px 380px at 100% 0%, rgba(30,194,139,.10), transparent 60%),
      radial-gradient(700px 320px at 0% 20%, rgba(14,26,42,.06), transparent 55%);
  }
  
  .inv-faq__head{
    text-align:center; max-width:860px; margin:0 auto 26px;
  }
  .inv-faq__title{
    margin:0 0 10px; font-size:clamp(24px,3.4vw,34px); line-height:1.15; color:#0b1320; letter-spacing:.2px;
  }
  .inv-faq__lede{ margin:0 auto; color:var(--inv-muted); font-size:clamp(15px,2vw,17px); }
  
  /* Lista FAQ */
  .inv-faq__list{ display:grid; gap:12px; margin-top:22px; }
  .inv-faq__item{
    background:var(--inv-surface);
    border:1px solid #e8ecf2;
    border-radius:16px;
    padding:0;
    overflow:hidden;
    box-shadow:0 10px 22px rgba(14,26,42,.06);
    transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
  }
  .inv-faq__item:hover{
    border-color:#dce5f1;
    box-shadow:0 16px 32px rgba(14,26,42,.10);
    transform:translateY(-1px);
  }
  
  /* Pytanie (summary) */
  .inv-faq__q{
    cursor:pointer;
    display:flex; align-items:center; gap:12px;
    padding:14px 16px;
    list-style:none; /* ukryj marker */
    font-weight:700; color:#0f172a;
  }
  .inv-faq__q::-webkit-details-marker{ display:none; }
  
  .inv-faq__q .chev{
    margin-left:auto; width:18px; height:18px; color:#0f172a;
    transition:transform .18s ease;
  }
  
  /* Odpowiedź */
  .inv-faq__a{
    padding:0 16px 16px 16px;
    color:#334155; font-size:.98rem; line-height:1.55;
    border-top:1px dashed #e6edf6;
  }
  .inv-faq__a a{ color:#0E1A2A; text-decoration:underline; }
  .inv-faq__a a:hover{ text-decoration:none; }
  
  /* Stan otwarty — obróć strzałkę i pogrub pytanie */
  .inv-faq__item[open] .chev{ transform:rotate(180deg); }
  .inv-faq__item[open] .inv-faq__q{ color:#0b1320; }
  
  /* Nota */
  .inv-faq__note{
    margin-top:20px; text-align:center;
    background:#ffffff; border:1px solid #e8ecf2; border-radius:16px; padding:12px 14px;
    box-shadow:0 8px 20px rgba(14,26,42,.05);
  }
/* ===== Invifin: Formularz kontaktowy ===== */
:root{

    --inv-border:#e8ecf2;
  }
  
  .inv-container{width:min(1160px,92%);margin-inline:auto}
  
  #invifin-contact{
    padding:56px 0 44px;
    background:
      radial-gradient(900px 380px at 100% 0%, rgba(30,194,139,.10), transparent 60%),
      radial-gradient(700px 320px at 0% 20%, rgba(14,26,42,.06), transparent 55%);
  }
  
  /* Head */
  .inv-contact__head{ text-align:center; max-width:860px; margin:0 auto 22px; }
  .inv-contact__title{
    margin:0 0 8px; font-size:clamp(24px,3.4vw,34px); line-height:1.15; color:#0b1320; letter-spacing:.2px;
  }
  .inv-contact__lede{ margin:0 auto; color:var(--inv-muted); font-size:clamp(15px,2vw,17px); }
  
  /* Form wrapper */
  .inv-contact__form{
    background:var(--inv-surface);
    border:1px solid var(--inv-border);
    border-radius:20px;
    box-shadow:0 12px 28px rgba(14,26,42,.08);
    padding:16px;
  }
  
  /* HoneyPot (ukryte) */
  .inv-contact__hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  
  /* Grid pól */
  .inv-contact__grid{
    display:grid; gap:14px;
    grid-template-columns:repeat(2,1fr);
  }
  @media (max-width: 860px){
    .inv-contact__grid{ grid-template-columns:1fr; }
  }
  .inv-field{ display:flex; flex-direction:column; }
  .inv-field--full{ grid-column:1 / -1; }
  
  .inv-label{
    font-weight:700; color:#0f172a;
    margin-bottom:6px;
  }
  .req{ color:#1EC28B; margin-left:4px; }
  
  .inv-input, .inv-select{
    appearance:none; background:#fff;
    border:1px solid var(--inv-border);
    border-radius:12px;
    padding:12px 12px;
    font-size:1rem; color:#0f172a;
    transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .inv-input::placeholder{ color:#94a3b8; }
  .inv-input:focus, .inv-select:focus{
    outline:none;
    border-color:#cfeee3;
    box-shadow:0 0 0 4px rgba(30,194,139,.18);
    background:#F8FFFC;
  }
  .inv-hint{ color:var(--inv-muted); font-size:.86rem; margin-top:6px; }
  
  /* Radio group (risk) */
  .inv-radio-group{
    display:flex; gap:8px; flex-wrap:wrap;
  }
  .inv-radio{
    position:relative;
    display:inline-flex; align-items:center;
    border:1px solid var(--inv-border);
    border-radius:999px;
    padding:8px 12px;
    cursor:pointer; user-select:none;
    background:#ffffff;
    transition:border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .15s ease;
  }
  .inv-radio input{
    position:absolute; opacity:0; pointer-events:none;
  }
  .inv-radio span{ font-weight:700; color:#0f172a; font-size:.96rem; }
  .inv-radio:hover{ transform:translateY(-1px); box-shadow:0 8px 18px rgba(14,26,42,.06); }
  .inv-radio:has(input:checked){
    border-color:#cfeee3; background:linear-gradient(135deg,#F2FBF7,#ffffff);
    box-shadow:0 10px 22px rgba(30,194,139,.16);
  }
  @supports not (selector(:has(*))){
    /* Fallback: zaznaczenie przez outline elementu wewnętrznego */
    .inv-radio input:checked + span{ outline:3px solid rgba(30,194,139,.25); outline-offset:2px; border-radius:6px; }
  }
  
  /* Consent */
  .inv-consent{
    margin-top:12px;
    background:#F8FAFD; border:1px dashed #dbe3ee; border-radius:12px;
    padding:12px;
  }
  .inv-check{ display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
  .inv-check input{ position:absolute; opacity:0; }
  .inv-check__box{
    width:18px; height:18px; border-radius:4px; border:2px solid #0E1A2A; margin-top:2px; flex:0 0 18px;
    display:inline-block; background:#fff; position:relative;
  }
  .inv-check input:checked + .inv-check__box{
    border-color:#1EC28B; background:#1EC28B;
  }
  .inv-check input:checked + .inv-check__box::after{
    content:""; position:absolute; left:4px; top:0px; width:6px; height:10px; border:2px solid #063d2a;
    border-top:none; border-left:none; transform:rotate(45deg);
  }
  .inv-check__text{ color:#334155; font-size:.95rem; }
  .inv-check__text a{ color:#0E1A2A; text-decoration:underline; }
  .inv-check__text a:hover{ text-decoration:none; }
  
  /* Actions */
  .inv-actions{ margin-top:14px; }
  .inv-btn{
    display:inline-block; border:0; cursor:pointer;
    padding:12px 16px; border-radius:14px; font-weight:800; font-size:1rem;
  }
  .inv-btn--primary{
    background:var(--inv-accent); color:#063d2a;
    box-shadow:0 12px 26px rgba(30,194,139,.25);
    transition:filter .15s ease, transform .1s ease;
  }
  .inv-btn--primary:hover{ filter:brightness(.96); transform:translateY(-1px); }
  
  /* Nota */
  .inv-contact__note{
    margin:12px 2px 0; color:var(--inv-muted); font-size:.92rem;
  }
  
  /* Walidacja HTML5 (delikatne) */
  .inv-input:required:invalid, .inv-select:required:invalid{
    border-color:#ffd2d2;
  }
  .inv-input:required:invalid:focus, .inv-select:required:invalid:focus{
    box-shadow:0 0 0 4px rgba(255, 0, 0, .08);
  }
/* ===== Invifin: Footer ===== */

  
  .inv-container{width:min(1160px,92%);margin-inline:auto}
  
  #invifin-footer.inv-footer{
    padding:36px 0 18px;
    color:#E8F2FF;
    background:
      radial-gradient(900px 380px at 100% 0%, rgba(30,194,139,.10), transparent 60%),
      linear-gradient(180deg, #0E1A2A 0%, #0B1524 100%);
    border-top:1px solid rgba(255,255,255,.06);
  }
  
  /* Top grid */
  .inv-footer__top{
    display:grid; gap:22px;
    grid-template-columns:2fr 1fr 1fr 1.6fr;
    align-items:start;
  }
  @media (max-width: 980px){
    .inv-footer__top{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width: 640px){
    .inv-footer__top{ grid-template-columns:1fr; }
  }
  
  .inv-footer__col{}
  .inv-footer__heading{
    margin:0 0 10px;
    font-size:1rem; letter-spacing:.2px;
    color:#EAF2FF; font-weight:800;
  }
  
  /* Brand */
  .inv-footer__logo{
    display:inline-flex; align-items:center; gap:10px;
    margin-bottom:10px;
  }
  .inv-footer__logo svg{
    width:36px; height:36px; border-radius:10px; box-shadow:0 6px 14px rgba(0,0,0,.35);
  }
  .inv-footer__brandname{
    font-weight:800; letter-spacing:.3px; color:#ffffff;
  }
  .inv-footer__about{
    margin:6px 0 10px; color:var(--inv-muted); line-height:1.55; max-width:52ch;
  }
  
  /* Social */
  .inv-footer__social{ display:flex; gap:10px; margin-top:8px; }
  .inv-social{
    width:34px; height:34px; display:grid; place-items:center; border-radius:999px;
    background:#13263C; border:1px solid var(--inv-border);
    transition:transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
  }
  .inv-social svg{ width:18px; height:18px; fill:#CFE7F9; }
  .inv-social:hover{
    transform:translateY(-2px);
    background:linear-gradient(135deg, var(--inv-accent), #6de0bb);
    border-color:#2ad3a2;
    box-shadow:0 10px 22px rgba(30,194,139,.25);
  }
  .inv-social:hover svg{ fill:#063d2a; }
  
  /* Lists */
  .inv-footer__list{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
  .inv-footer__list a{
    color:#E6F0FF; text-decoration:none;
    border-bottom:1px dashed transparent;
    transition:color .15s ease, border-color .15s ease, transform .1s ease;
  }
  .inv-footer__list a:hover{
    color:#c8ffe9; border-color:#2ad3a2; transform:translateX(2px);
  }
  
  /* Kontakt */
  .inv-footer__address{ font-style:normal; color:#D7E4FF; line-height:1.55; }
  .inv-footer__link{ color:#E6F0FF; text-decoration:none; }
  .inv-footer__link:hover{ color:#c8ffe9; text-decoration:underline; }
  .inv-footer__hours{ color:var(--inv-muted); margin:8px 0 0; }
  
  /* Bottom bar */
  .inv-footer__bottom{
    display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; justify-content:space-between;
    margin-top:20px; padding-top:14px;
    border-top:1px solid var(--inv-border);
  }
  .inv-footer__copy{ margin:0; color:#EAF2FF; font-weight:700; }
  .inv-footer__disclaimer{ margin:0; color:var(--inv-muted); max-width:70ch; font-size:.92rem; }
  
  @media (max-width: 640px){
    .inv-footer__disclaimer{ max-width:unset; }
  }
  
  /* Accessibility helper */
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
    
          