/* ============================================================
   Accounting Creative — style współdzielone przez wszystkie podstrony
   ============================================================ */

:root{
  --white:#FFFFFF;
  --mint:#EFF7F2;          /* jasny zielonkawy odcień tła sekcji */
  --mint-line:#D3E6DA;      /* linie / obramowania */
  --line:#DCE7E0;
  --green-ink:#0C3A24;      /* główny kolor tekstu — ciemna zieleń */
  --green-mid:#44594E;      /* tekst drugorzędny */
  --brand:#00693A;          /* zieleń marki — przyciski, linki, akcenty */
  --brand-dark:#054E2B;     /* stan hover */
  --brand-light:#DFF1E6;    /* jasnozielone tło odznak/tagów */
  --brand-deep:#062E1C;     /* bardzo ciemna zieleń — stopka, kontrast */
  --radius:3px;
  --maxw:1180px;
  --font-display:-apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --font-mono:ui-monospace, "SFMono-Regular", "Cascadia Mono", "Segoe UI Mono", Consolas, "Liberation Mono", Menlo, monospace;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--white);
  color:var(--green-ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--font-display); font-weight:700; margin:0; letter-spacing:-0.02em; }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }

.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--green-ink); color:var(--white);
  padding:12px 20px; z-index:1000; font-family:var(--font-mono); font-size:14px;
}
.skip-link:focus{ left:12px; top:12px; }

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

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }

.eyebrow{
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--brand); display:flex; align-items:center; gap:10px; margin-bottom:18px;
}
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--brand); border-radius:2px; }

.rule{ border:none; border-top:1px solid var(--line); margin:0; }

/* ---------- HEADER ---------- */
header.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,0.92);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--mint-line);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding:14px 28px; max-width:var(--maxw); margin:0 auto; }
.brand{ display:flex; align-items:center; text-decoration:none; color:var(--green-ink); }
.brand-logo{ height:38px; width:auto; flex:none; }

nav.main-nav{ display:flex; align-items:center; gap:4px; }
nav.main-nav a{
  text-decoration:none; color:var(--green-mid); font-size:14.5px; font-weight:500;
  padding:10px 14px; border-radius:var(--radius); transition:color .15s ease, background .15s ease;
  position:relative;
}
nav.main-nav a:hover{ color:var(--green-ink); background:var(--mint); }
nav.main-nav a[aria-current="page"]{ color:var(--brand); font-weight:700; }
nav.main-nav a[aria-current="page"]::after{
  content:""; position:absolute; left:14px; right:14px; bottom:6px; height:2px; background:var(--brand); border-radius:2px;
}
.nav-cta{ background:var(--brand) !important; color:#fff !important; font-weight:600 !important; margin-left:8px; }
.nav-cta:hover{ background:var(--brand-dark) !important; }
.nav-cta[aria-current="page"]::after{ display:none; }

.nav-toggle{ display:none; background:none; border:1px solid var(--green-ink); border-radius:var(--radius); width:42px; height:42px; align-items:center; justify-content:center; cursor:pointer; color:var(--green-ink); }
.nav-toggle svg{ width:20px; height:20px; }

@media (max-width: 860px){
  /* backdrop-filter on the header creates a new "containing block" for any
     position:fixed descendant (same effect as transform/filter) — this traps
     the mobile nav dropdown inside the header's box instead of letting it
     cover the full viewport as an opaque panel, making it look transparent
     and the text hard to read. Removing the filter on mobile (where the
     fixed dropdown is used) fixes this; the frosted-glass effect is kept on
     desktop where there's no fixed nav to interfere with. */
  header.site-header{ backdrop-filter:none; background:var(--white); }

  nav.main-nav{
    position:fixed; inset:64px 0 0 0; background:var(--white);
    flex-direction:column; align-items:stretch; padding:12px 20px;
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
    border-top:1px solid var(--mint-line);
  }
  nav.main-nav.open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  nav.main-nav a{ padding:16px 8px; font-size:17px; border-bottom:1px solid var(--mint-line); border-radius:0; }
  nav.main-nav a[aria-current="page"]::after{ display:none; }
  .nav-cta{ margin-left:0; margin-top:8px; text-align:center; border-radius:var(--radius); }
  .nav-toggle{ display:flex; }
}

/* ---------- HERO / PAGE HEADER ---------- */
.page-hero{ padding:64px 0 56px; position:relative; overflow:hidden; }
.page-hero .wrap{ position:relative; z-index:1; }
.page-hero h1{ font-size:clamp(30px, 4vw, 46px); line-height:1.12; margin-bottom:18px; max-width:18ch; }
.page-hero .lede{ font-size:17.5px; color:var(--green-mid); max-width:58ch; }

.hero-swoosh{ position:absolute; top:-60px; right:-80px; width:560px; height:560px; opacity:0.09; z-index:0; pointer-events:none; }
@media (max-width: 640px){
  .hero-swoosh{ width:320px; height:320px; right:-60px; top:-40px; }
}

.home-hero{ padding:76px 0 60px; position:relative; overflow:hidden; }
.home-hero-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center; position:relative; z-index:1; }
.home-hero h1{ font-size:clamp(34px, 4.6vw, 54px); line-height:1.1; margin-bottom:22px; max-width:none; }
.home-hero h1 em{ font-style:normal; color:var(--brand); }
.home-hero .lede{ font-size:18px; color:var(--green-mid); max-width:54ch; margin-bottom:32px; }
.cta-row{ display:flex; flex-wrap:wrap; gap:14px; }

@media (max-width: 860px){ .home-hero-grid{ grid-template-columns:1fr; } .home-hero{ padding:44px 0 40px; } }

.btn{
  display:inline-flex; align-items:center; gap:8px; padding:14px 24px; font-size:15px; font-weight:600;
  text-decoration:none; border-radius:var(--radius); border:1.5px solid transparent; cursor:pointer;
  transition:transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
}
.btn:hover{ transform:translateY(-1px); }
.btn-primary{ background:var(--brand); color:#fff; }
.btn-primary:hover{ background:var(--brand-dark); }
.btn-outline{ border-color:var(--green-ink); color:var(--green-ink); }
.btn-outline:hover{ background:var(--green-ink); color:var(--white); }

.ledger-card{ background:var(--mint); border:1px solid var(--mint-line); padding:26px 26px 10px; position:relative; }
.ledger-card::before{
  content:"KARTA INFORMACYJNA"; position:absolute; top:-11px; left:22px; background:var(--mint);
  padding:0 10px; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em; color:var(--green-mid);
}
.ledger-row{ display:flex; justify-content:space-between; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--mint-line); gap:16px; }
.ledger-row:last-child{ border-bottom:none; }
.ledger-row .lr-label{ font-size:13.5px; color:var(--green-mid); }
.ledger-row .lr-value{ font-family:var(--font-mono); font-weight:600; font-size:15px; text-align:right; color:var(--brand); }

/* ---------- SECTION GENERIC ---------- */
section{ padding:70px 0; scroll-margin-top:76px; }
.section-head{ max-width:640px; margin-bottom:44px; }
.section-head h2{ font-size:clamp(25px, 3vw, 36px); line-height:1.15; }
.alt{ background:var(--mint); border-top:1px solid var(--mint-line); border-bottom:1px solid var(--mint-line); }
.deep{ background:var(--brand-deep); color:var(--white); }
.deep .eyebrow{ color:#8FCBA9; }
.deep .eyebrow::before{ background:#8FCBA9; }

/* ---------- BENEFITS ---------- */
.benefits-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:1px solid var(--line); }
.benefit{ display:grid; grid-template-columns:64px 1fr; gap:18px; padding:28px 22px; border-bottom:1px solid var(--line); }
.benefit:nth-child(odd){ border-right:1px solid var(--line); }
.benefit .num{ font-family:var(--font-mono); font-size:24px; color:var(--mint-line); font-weight:600; }
.benefit h3{ font-size:18px; margin-bottom:8px; font-family:var(--font-display); }
.benefit p{ color:var(--green-mid); font-size:15px; }

@media (max-width: 700px){ .benefits-list{ grid-template-columns:1fr; } .benefit:nth-child(odd){ border-right:none; } }

/* ---------- SERVICES LEDGER TABLE ---------- */
.ledger-table{ border-top:2px solid var(--green-ink); }
.lt-row{ display:grid; grid-template-columns:56px 160px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); align-items:start; }
.lt-row .lt-idx{ font-family:var(--font-mono); color:var(--brand); font-weight:600; }
.lt-row .lt-tag{ font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--green-mid); padding-top:2px; }
.lt-row h3{ font-family:var(--font-display); font-weight:600; font-size:17px; margin:0 0 4px; }
.lt-row p{ color:var(--green-mid); font-size:14.5px; }

@media (max-width: 700px){ .lt-row{ grid-template-columns:30px 1fr; } .lt-row .lt-tag{ grid-column:2; order:-1; } }

.forwho{ margin-top:36px; padding:22px 24px; background:var(--mint); border-left:3px solid var(--brand); font-size:15px; }
.forwho strong{ color:var(--brand); }

/* ---------- PRICING ---------- */
.pricing-grid{ display:grid; grid-template-columns:1fr 1.3fr; gap:52px; align-items:start; }
.price-card{ background:var(--white); border:2px solid var(--green-ink); padding:34px; position:relative; }
.price-card .tag{ font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--green-mid); }
.price-figure{ font-family:var(--font-mono); font-weight:600; font-size:clamp(36px,5vw,50px); color:var(--brand); margin:14px 0 6px; line-height:1; }
.price-figure span{ font-size:16px; color:var(--green-mid); font-weight:500; }
.price-note{ font-size:14px; color:var(--green-mid); margin-bottom:22px; }
.price-card ul{ display:flex; flex-direction:column; gap:10px; margin-bottom:24px; }
.price-card li{ display:flex; gap:10px; font-size:14.5px; align-items:flex-start; }
.check{ flex:none; width:18px; height:18px; margin-top:2px; color:var(--brand); }

.factor{ display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }
.factor:first-child{ padding-top:0; }
.factor .num{ font-family:var(--font-mono); font-weight:600; color:var(--mint-line); font-size:22px; }
.factor h3{ font-size:16.5px; margin-bottom:6px; font-family:var(--font-display); font-weight:600; }
.factor p{ color:var(--green-mid); font-size:14.5px; }

@media (max-width: 860px){ .pricing-grid{ grid-template-columns:1fr; } }

/* ---------- ABOUT ---------- */
.about-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center; }
.avatar-badge{
  width:160px; height:160px; border-radius:50%; border:2px solid var(--brand);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-display);
  font-size:48px; font-weight:600; color:var(--brand); background:var(--brand-light); margin-bottom:20px;
}
.about-facts{ display:grid; grid-template-columns:1fr 1fr; gap:16px 24px; margin-top:28px; }
.fact{ border-top:1px solid var(--line); padding-top:12px; }
.fact .fk{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--green-mid); display:block; margin-bottom:4px; }
.fact .fv{ font-weight:600; font-size:15px; }
.about-copy p{ margin-bottom:16px; color:var(--green-mid); font-size:16px; }
.about-copy p:last-child{ margin-bottom:0; }

@media (max-width: 860px){ .about-grid{ grid-template-columns:1fr; } }

/* ---------- CONTACT ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:56px; }
.contact-cards{ display:flex; flex-direction:column; gap:16px; }
.ccard{ display:flex; gap:16px; align-items:flex-start; padding:20px; border:1px solid var(--line); text-decoration:none; color:inherit; transition:border-color .15s ease, background .15s ease; }
.ccard:hover{ border-color:var(--brand); background:var(--mint); }
.ccard .ci{ flex:none; width:22px; height:22px; margin-top:2px; color:var(--brand); }
.ccard h3{ font-size:16px; margin-bottom:4px; font-family:var(--font-display); }
.ccard p{ color:var(--green-mid); font-size:14px; }

.checklist{ margin-top:20px; padding:20px; background:var(--mint); border-left:3px solid var(--brand); }
.checklist p{ font-weight:600; margin-bottom:10px; font-size:14.5px; }
.checklist ul{ display:flex; flex-direction:column; gap:8px; }
.checklist li{ font-size:14px; color:var(--green-mid); display:flex; gap:8px; }
.checklist li::before{ content:"—"; color:var(--brand); flex:none; }

form.contact-form{ display:flex; flex-direction:column; gap:18px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-size:13.5px; font-weight:600; }
.field .opt{ font-weight:400; color:var(--green-mid); font-size:12.5px; }
.field input, .field select, .field textarea{
  font-family:var(--font-body); font-size:15px; padding:12px 14px; border:1px solid var(--mint-line);
  background:var(--white); color:var(--green-ink); border-radius:var(--radius);
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--brand); }
.field textarea{ resize:vertical; min-height:110px; }
.check-row{ display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:var(--green-mid); }
.check-row input{ margin-top:3px; }
.form-status{ font-size:14px; padding:10px 0; min-height:1.4em; }
.form-status.ok{ color:var(--brand); font-weight:600; }
.form-status.err{ color:#8A2E22; font-weight:600; }

@media (max-width: 860px){ .contact-grid{ grid-template-columns:1fr; } }

/* ---------- FAQ ---------- */
.faq-list{ border-top:1px solid var(--line); }
.faq-item{ padding:24px 0; border-bottom:1px solid var(--line); }
.faq-item h3{ font-family:var(--font-display); font-size:17px; font-weight:700; margin-bottom:8px; }
.faq-item p{ color:var(--green-mid); font-size:15px; }

/* ---------- CTA BANNER ---------- */
.cta-banner{ padding:64px 0; background:var(--brand-deep); color:var(--white); text-align:center; }
.cta-banner h2{ font-size:clamp(24px,3vw,34px); margin-bottom:16px; }
.cta-banner p{ color:#BFE0CC; max-width:52ch; margin:0 auto 28px; font-size:16px; }
.cta-banner .cta-row{ justify-content:center; }
.cta-banner .btn-outline{ border-color:var(--white); color:var(--white); }
.cta-banner .btn-outline:hover{ background:var(--white); color:var(--brand-deep); }

/* ---------- FOOTER ---------- */
footer{ background:var(--brand-deep); color:var(--white); padding:56px 0 28px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; margin-bottom:40px; }
.footer-tag{ margin-top:14px; color:#A9CDB8; font-size:14.5px; max-width:32ch; }
footer h5{ font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:#8FCBA9; margin-bottom:16px; }
footer .flist{ display:flex; flex-direction:column; gap:10px; }
footer .flist a{ text-decoration:none; color:#DCEFE2; font-size:14.5px; }
footer .flist a:hover{ color:#fff; }
.footer-bottom{ border-top:1px solid #12523092; padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; color:#7FAE91; font-family:var(--font-mono); }
.footer-brand-mark{ height:30px; width:auto; margin-bottom:14px; filter:brightness(0) invert(1); }

@media (max-width: 700px){ .footer-grid{ grid-template-columns:1fr; } }

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

/* ---------- COOKIE BAR ---------- */
.cookie-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:200;
  background:var(--brand-deep); color:var(--white);
  border-top:1px solid #12523092;
  box-shadow:0 -6px 24px rgba(6,46,28,0.25);
}
.cookie-bar[hidden]{ display:none; }
.cookie-bar-inner{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:18px 28px; flex-wrap:wrap;
}
.cookie-bar p{ font-size:14px; color:#CFE9DA; max-width:70ch; margin:0; }
.cookie-bar .btn-primary{ flex:none; }

@media (max-width:600px){
  .cookie-bar-inner{ flex-direction:column; align-items:stretch; text-align:left; }
  .cookie-bar .btn-primary{ width:100%; justify-content:center; }
}
