:root { --paper:#f7f9f8; --muted:#52605b; --green-deep:#196936; --green:#267d42; }
[hidden] { display:none !important; }
html { scroll-padding-top:108px; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #267d42; outline-offset:5px; }
.site-header { height:80px; background:rgba(248,250,249,.97); }
.brand-word { font-size:32px; }
.nav a { font-size:15px; font-weight:700; padding:12px; }
.button { gap:12px; border-radius:4px; min-height:46px; }
.button img { flex:0 0 20px; width:20px; height:20px; filter:invert(1); }
.button.primary { box-shadow:none; }
.hero { min-height:auto; padding:144px 48px 80px; }
.hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; max-width:1200px; }
.hero h1 { font-size:64px; line-height:1.08; }
.hero-lead { font-size:19px; text-align:left; line-height:1.65; max-width:550px; }
.hero-actions { margin-top:28px; }
.control-panel { padding:0 18px; }
.panel-row { padding:10px 0; border-bottom:1px solid rgba(255,255,255,.3); }
.panel-row strong { font-size:17px; }
.panel-row span { font-size:15px; }
.falling-chart { height:230px; padding:30px 0 20px; }
.control-panel > p { font-size:13px; font-weight:500; }
.process-embedded { margin-top:64px; }
.process-band { padding:48px; background:#20382c; color:white; }
.process-band .process-embedded { margin:0 auto; padding:0; max-width:1204px; border:0; }
.process-title { font-size:14px; }
.process-lead { font-size:28px; white-space:normal; }
.process-steps article { min-height:140px; }
.process-steps span { width:40px; height:40px; margin-bottom:14px; box-shadow:none; }
.section { max-width:1300px; padding:64px 48px; }
#obszary { margin-top:0; }
.section-heading { margin-bottom:32px; }
.section-heading .eyebrow,.about-band .eyebrow,.related-services .eyebrow { color:var(--green-deep); }
.section-heading h2 { font-size:36px; line-height:1.2; }
.section-note { margin-top:14px; font-size:17px; max-width:650px; }
.service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.service-card { display:flex; flex-direction:column; min-width:0; min-height:290px; padding:26px; border:1px solid #dce4df; border-radius:6px; background-color:#fff; background-image:linear-gradient(135deg,#dcf3df 0%,#edf9ef 32%,#fff 60%); background-size:300% 300%; background-position:100% 100%; color:var(--ink); transition:background-position 650ms ease,transform 180ms ease,border-color 180ms ease,box-shadow 180ms ease; }
.service-card:hover,.service-card:focus-visible,.service-card:active { background-position:0% 0%; border-color:#9cccaa; box-shadow:0 8px 24px rgba(24,51,36,.07); transform:translateY(-3px); }
.service-card:active { border-color:#66a97c; }
.service-card-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; }
.service-card-top img { width:28px; height:28px; }
.service-number { font-size:12px; color:#63736a; font-variant-numeric:tabular-nums; }
.service-card h3 { font-size:22px; font-weight:650; line-height:1.25; margin:0 0 12px; overflow-wrap:anywhere; }
.service-card p { font-size:15px; line-height:1.65; margin-bottom:24px; }
.service-card-link { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; color:var(--green-deep); font-weight:650; font-size:14px; }
.service-card-link img { width:20px; height:20px; }
.service-card-top .service-number { text-align:right; overflow-wrap:anywhere; }
.about-band { max-width:1204px; margin:0 auto; padding:40px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1.2fr; gap:64px; }
.about-band h2 { font-size:28px; margin:0; line-height:1.3; }
.about-band p { font-size:17px; color:var(--muted); margin:0; line-height:1.75; }
.cta-banner { max-width:none; margin:40px 0 0; padding:60px 24px; border:0; }
.cta-banner h2 { font-size:36px; }
.footer { max-width:1300px; padding:32px 48px; flex-wrap:wrap; font-size:14px; }
.footer-link { padding:0; text-align:left; font-size:14px; }
.service-page { padding:80px 0 0; }
.service-hero { padding:38px 48px 54px; color:#fff; background:linear-gradient(90deg,rgba(9,28,20,.96),rgba(9,28,20,.88) 62%,rgba(9,28,20,.68)),url('/assets/technology-hero.webp') center 35% / cover; }
.service-hero-inner { max-width:1204px; margin:0 auto; }
.breadcrumbs { display:flex; gap:12px; align-items:center; margin-bottom:38px; font-size:13px; color:#d0ddd5; }
.breadcrumbs img { width:14px; height:14px; filter:invert(1); }
.breadcrumbs a:hover { color:white; text-decoration:underline; }
.service-hero .eyebrow { color:#9ddeaf; font-size:12px; margin-bottom:14px; }
.service-hero h1 { max-width:850px; font-size:44px; line-height:1.15; margin:0; font-weight:650; overflow-wrap:break-word; }
.service-intro { max-width:730px; font-size:19px; line-height:1.65; color:#dfe9e2; margin:22px 0 26px; }
.service-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:80px; max-width:1300px; margin:0 auto; padding:52px 48px 64px; align-items:start; }
.service-content { min-width:0; }
.service-section { padding:0 0 32px; margin-bottom:32px; border-bottom:1px solid #dce4df; }
.section-progress { display:block; width:28px; height:28px; border-radius:50%; margin-bottom:16px; border:1px solid var(--green-deep); background:conic-gradient(var(--green-deep) var(--step-fill), #e1ebe4 0); }
.service-section h2,.service-faq h2 { font-size:27px; line-height:1.3; margin:0 0 20px; }
.service-section p,.service-faq p { font-size:17px; line-height:1.8; color:#46564d; margin:0 0 16px; }
.scope-list { padding:0 0 0 20px; margin:24px 0 0; }
.scope-list li { padding:6px 0 6px 4px; line-height:1.6; font-size:16px; }
.scope-list li::marker { color:var(--green-deep); }
.service-sidebar { position:sticky; top:112px; border-left:1px solid var(--line); padding-left:24px; }
.sidebar-title { margin:0 0 16px; font-size:12px; color:var(--muted); text-transform:uppercase; font-weight:700; }
.service-sidebar nav { display:grid; gap:5px; }
.service-sidebar nav a { display:flex; align-items:center; gap:12px; padding:12px; border-radius:4px; font-size:14px; line-height:1.35; }
.service-sidebar nav img { width:18px; height:18px; flex-shrink:0; }
.service-sidebar nav a:hover { background:#ebf0ed; }
.service-sidebar nav a[aria-current] { background:#e3eee6; color:#14572a; font-weight:700; }
.sidebar-phone { display:block; border-top:1px solid var(--line); padding-top:24px; margin-top:24px; font-weight:700; font-size:21px; }
.sidebar-address { font-size:13px; color:var(--muted); }
.service-faq details { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.service-faq summary { cursor:pointer; padding:18px 0; font-size:16px; line-height:1.5; font-weight:650; }
.service-faq details p { margin-bottom:22px; }
.related-services { padding:48px; background:#edf2ef; }
.related-services > * { max-width:1204px; margin-left:auto; margin-right:auto; }
.related-services h2 { font-size:30px; margin-top:0; margin-bottom:28px; }
.service-contact { display:flex; align-items:center; justify-content:space-between; gap:48px; max-width:1300px; margin:0 auto; padding:60px 48px; }
.service-contact .eyebrow { color:var(--green-deep); }
.service-contact h2 { font-size:28px; line-height:1.3; margin:0 0 14px; max-width:500px; }
.service-contact p { color:var(--muted); max-width:550px; }
.service-contact .contact-actions { margin:0; flex-direction:column; align-items:center; flex-shrink:0; }
.contact-phone { font-size:20px; font-weight:700; }
.cookie-consent { padding:12px 20px; background:transparent; max-height:min(460px,75dvh); overflow-y:auto; }
.cookie-card { width:min(1040px,100%); padding:16px 20px; gap:12px 24px; grid-template-columns:minmax(0,1fr) auto; align-items:center; border-radius:6px; border:1px solid #cfdad3; box-shadow:0 5px 30px rgba(10,35,20,.15); }
.cookie-copy strong { font-size:14px; }
.cookie-copy p { font-size:13px; line-height:1.5; margin:3px 0; max-width:500px; }
.cookie-copy > a { color:var(--green-deep); text-decoration:underline; font-size:12px; }
.cookie-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; justify-content:flex-start; }
.cookie-choice { min-height:40px; background:#fff; color:#174d2a; border:1px solid #9fb8a7; border-radius:4px; padding:8px 12px; font-size:13px; font-weight:650; cursor:pointer; }
.cookie-choice:hover { background:#eaf2ec; }
.cookie-settings-icon { display:grid; place-items:center; width:40px; height:40px; padding:8px; border:1px solid #9fb8a7; background:#fff; border-radius:4px; cursor:pointer; }
.cookie-settings-icon img { width:18px; height:18px; }
.cookie-options { gap:8px; }
.cookie-options label { min-height:40px; padding:8px 12px; border-radius:4px; font-size:13px; }
.cookie-options input { width:16px; height:16px; }
.modal-target { overflow-y:auto; }
.contact-form { max-height:calc(100dvh - 40px); overflow-y:auto; border-radius:6px; }
.contact-form h2 { font-size:28px; padding-right:38px; }
.privacy-dialog { border-radius:6px; }
.privacy-dialog h2 { font-size:28px; padding-right:30px; }
body:has(.modal-target:target),body:has(.privacy-panel:target) { overflow:hidden; }
@media (max-width:1100px) {
  .hero h1 { font-size:54px; }
  .hero-grid { gap:32px; }
  .service-layout { gap:40px; grid-template-columns:minmax(0,1fr) 250px; }
  .about-band { margin:0 48px; }
  .cookie-card { grid-template-columns:1fr; }
}
@media (max-width:800px) {
  .hero { padding:120px 24px 48px; }
  .hero-grid { grid-template-columns:1fr; }
  .hero h1 { font-size:48px; }
  .control-panel { display:none; }
  .hero::after { height:36px; }
  .process-embedded { margin-top:48px; }
  .process-steps { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .process-steps article { padding:0 6px; min-height:0; text-align:left; border:0; }
  .process-steps article::after { display:none; }
  .process-steps h3 { font-size:14px; }
  .process-steps p { font-size:12px; }
  .section { padding:44px 24px; }
  .process-band { padding:40px 24px; }
  #obszary { margin-top:0; }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .service-card { padding:22px; min-height:290px; }
  .service-card h3 { font-size:20px; }
  .about-band { margin:0 24px; grid-template-columns:1fr; gap:20px; }
  .service-hero { padding:28px 24px 40px; }
  .service-hero h1 { font-size:36px; }
  .service-intro { font-size:18px; }
  .service-layout { display:flex; flex-direction:column; padding:36px 24px; gap:36px; }
  .service-sidebar { position:static; padding:24px 0 0; border-left:0; border-top:1px solid var(--line); width:100%; }
  .service-sidebar nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .related-services { padding:40px 24px; }
  .related-services .service-grid { grid-template-columns:1fr; }
  .related-services .service-card { min-height:auto; }
  .related-services .service-card-top { margin-bottom:18px; }
  .service-contact { padding:40px 24px; flex-direction:column; align-items:flex-start; gap:12px; }
  .service-contact .contact-actions { flex-direction:row; flex-wrap:wrap; }
  .footer { padding:28px 24px; }
  .cookie-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .site-header { height:94px; padding:7px 16px; }
  .brand-word { font-size:25px; min-height:45px; }
  .nav { display:flex; width:100%; max-width:100%; justify-content:space-between; gap:4px; }
  .nav a { font-size:12px; padding:8px 0; }
  .hero { padding-top:124px; }
  .hero h1 { font-size:40px; }
  .hero-lead { font-size:17px; }
  .hero-actions { gap:10px; }
  .hero-actions .button { font-size:14px; }
  .process-lead { font-size:24px; }
  .process-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 12px; }
  .process-steps article { padding:0; }
  .process-steps span { width:32px; height:32px; font-size:13px; }
  .process-steps article:last-child { grid-column:1 / -1; }
  .section-heading h2 { font-size:29px; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:0; padding:24px; }
  .service-card-top { margin-bottom:20px; }
  .service-card h3 { font-size:22px; }
  .service-card p { margin-bottom:20px; }
  .service-page { padding-top:94px; }
  .service-hero h1 { font-size:32px; }
  .service-hero .button { font-size:14px; padding:12px; }
  .breadcrumbs { margin-bottom:28px; }
  .service-section h2,.service-faq h2 { font-size:24px; }
  .service-sidebar nav { grid-template-columns:1fr; }
  .related-services h2,.service-contact h2,.about-band h2,.cta-banner h2 { font-size:28px; }
  .cookie-consent { padding:8px; }
  .cookie-card { padding:12px; gap:10px; }
  .cookie-copy p { font-size:12px; }
  .cookie-copy > a { font-size:11px; }
  .cookie-actions { gap:6px; }
  .cookie-choice { padding:8px; min-height:36px; font-size:12px; }
  .cookie-settings-icon { width:36px; height:36px; }
  .cookie-options { grid-template-columns:1fr; }
  .cookie-options label { min-height:34px; padding:5px 10px; }
  .contact-form { padding:24px 18px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .service-card { transition:none; } }
