@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900&display=swap");

:root{
  --blue:#071b78;
  --blue2:#087eea;
  --dark-blue:#052c8f;
  --green:#32a92d;
  --orange:#ff4d12;
  --pink:#ed1673;
  --ink:#0a216f;
  --soft-blue:#edf8ff;
  --soft-green:#f0faef;
  --soft-orange:#fff4ed;
  --soft-pink:#fff0f6;
  --line:#cfe9ff;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:#fff url("assets/site-background.png") center top / cover fixed no-repeat;
  font-family:"Nunito","Arial Rounded MT Bold",Arial,sans-serif;
  font-weight:500;
  line-height:1.45;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 48px));margin:auto}
.site-header{
  position:relative;
  z-index:20;
  background:rgba(255,255,255,.86);
}
.header-inner{
  min-height:122px;
  display:flex;
  align-items:center;
  gap:34px;
}
.logo{width:270px;flex:0 0 270px}
.logo img{width:100%}
.nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  flex:1;
  font-weight:700;
  font-size:16px;
}
.nav a{padding:14px 0;border-bottom:3px solid transparent;white-space:nowrap}
.nav a:hover,.nav a.active{color:var(--blue2);border-bottom-color:var(--blue2)}
.cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  border:0;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  font-weight:700;
  font-size:18px;
  padding:14px 27px;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 5px 14px rgba(255,77,18,.15);
  transition:.2s transform,.2s box-shadow;
}
.cta:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(255,77,18,.22)}
.cta.blue{background:#087eea}
.cta.outline{background:#fff;color:var(--ink);border:2px solid #a7d9ff;box-shadow:none}
.icon{font-size:22px;line-height:1}
.menu-toggle{
  display:none;border:0;background:#eef8ff;color:var(--blue);
  width:46px;height:46px;border-radius:50%;font-size:24px;cursor:pointer;
}
.hero{
  position:relative;
  overflow:hidden;
  min-height:355px;
  padding:18px 0 0;
  background:#fff;
}
.hero-grid{overflow:visible;
  position:relative;z-index:2;
  display:grid;grid-template-columns:1fr 1.1fr;align-items:center;
}
.hero-copy{padding:15px 0 30px}
.eyebrow{font-size:18px;font-weight:700;color:#087eea}
h1,h2,h3{margin:0;color:var(--blue);line-height:1.1}
.hero h1{font-size:52px;max-width:610px;letter-spacing:-1px}
.hero h1 .orange{color:var(--orange)}
.hero h1 .green{color:var(--green)}
.hero h1 .blue{color:var(--blue2)}
.hero p{font-size:20px;max-width:570px;margin:20px 0 18px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.page-hero .hero-art{padding-top:18px}
.hero-art{align-self:end;justify-self:center;width:min(410px,100%);margin-top:8px}
.hero-art img{width:100%}
.hero-note{
  position:absolute;right:1%;top:105px;z-index:3;
  color:var(--blue2);font-size:20px;font-style:italic;transform:rotate(-7deg);
  max-width:190px;text-align:center;
}
.hero-note .heart{font-size:40px;display:block}
.section{padding:20px 0}
.section-title{text-align:center;font-size:32px;margin:0 0 20px}
.section-title:after{
  content:"";display:block;width:50px;height:4px;border-radius:10px;
  background:var(--green);margin:10px auto 0;
}
.page-title:after{
  content:"";display:block;width:100%;height:5px;border-radius:5px;
  background:linear-gradient(to right,
    var(--orange) 0 33.33%,
    var(--green) 33.33% 66.66%,
    var(--blue2) 66.66% 100%);
  margin:12px 0 0;
}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.card{
  border-radius:18px;padding:26px 22px 25px;text-align:center;
  min-height:270px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
}
.card.bluebg{background:var(--soft-blue)}
.card.greenbg{background:var(--soft-green)}
.card.orangebg{background:var(--soft-orange)}
.card.pinkbg{background:var(--soft-pink)}
.card h3{font-size:20px;margin:13px 0 12px}
.card p{font-size:17px;margin:0;color:#0b2a82}
.circle-icon{
  width:78px;height:78px;border-radius:50%;
  display:grid;place-items:center;font-size:38px;
  background:#d9efff;color:#087eea;
}
.greenbg .circle-icon{background:#dff4df;color:var(--green)}
.orangebg .circle-icon{background:#ffeadc;color:var(--orange)}
.pinkbg .circle-icon{background:#ffe1ef;color:var(--pink)}
.info-strip{
  display:grid;grid-template-columns:repeat(4,1fr);
  background:#edf8ff;border-radius:18px;padding:18px 22px;gap:8px;
}
.info-item{
  display:flex;align-items:center;gap:14px;padding:4px 14px;
  border-right:1px solid #b9dcf6;
}
.info-item:last-child{border-right:0}
.info-item .circle-icon{width:62px;height:62px;min-width:62px;font-size:28px}
.info-item strong{display:block;color:var(--blue);font-size:16px}
.info-item span{display:block;font-size:14px;color:#1634ae}
.band{
  border-radius:18px;padding:26px 30px;margin-top:16px;
  background:linear-gradient(110deg,#edf8ff,#f7fcff);
}
.band.green{background:linear-gradient(110deg,#f1faef,#f9fffa)}
.band.orange{background:linear-gradient(110deg,#fff4ed,#fff9f5)}
.band-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}
.band h2{font-size:30px;margin-bottom:12px}
.band p{font-size:17px;margin:8px 0;color:#1a1d27}
.page-hero{overflow:visible;padding:34px 0 12px;transform:none;text-align:center}
.page-hero > .container > div{max-width:900px;margin:0 auto}
.page-title{font-size:54px;display:table;margin:0 auto}
.page-title{white-space:nowrap}
.page-lead{font-size:19px;max-width:800px;margin:15px auto 10px;text-align:center}
.two-col{display:grid;grid-template-columns:1.25fr .75fr;gap:20px;align-items:center}
.orthosis{justify-self:center;max-width:260px}
.map{max-width:410px;justify-self:center}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.price-card{border-radius:18px;padding:28px 24px;text-align:center;min-height:285px}
.price{font-size:42px;font-weight:700;color:var(--blue);margin-top:auto;padding-top:15px}
.price-card h3{font-size:21px;margin:12px 0}
.price-card p{font-size:16px;margin:0}
.offer-orthosis-band .band-grid{
  width:min(920px,100%);
  margin:0 auto;
  grid-template-columns:1.15fr .65fr;
  gap:48px;
}
.offer-orthosis-band .band-grid > div:first-child{
  padding-left:18px;
}
.offer-orthosis-band .orthosis{
  max-width:245px;
  margin:0 auto;
}

.notice{
  background:var(--soft-green);border-radius:18px;padding:22px 28px;
  display:grid;grid-template-columns:240px 1fr;align-items:center;gap:20px;
}
.notice h3{font-size:22px}
.notice ul{margin:0;padding-left:22px;color:#123077}
.notice li{margin:5px 0}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.contact-card{
  border-radius:18px;padding:30px 22px;text-align:center;min-height:340px;
}
.contact-card h2{font-size:29px;margin:13px 0}
.contact-card .big{font-size:30px;font-weight:700;margin:12px 0;color:var(--blue)}
.contact-card p{font-size:18px;margin:10px 0 20px}
.parent-step{border-radius:18px;padding:20px 25px;margin:14px 0}
.step-head{display:flex;align-items:center;gap:20px}
.step-num{
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  color:#fff;background:#4ca7ed;font-size:32px;font-weight:700;min-width:56px;
}
.parent-step.green .step-num{background:#63bb5b}
.parent-step.orange .step-num{background:#ff651d}
.step-head h2{font-size:27px}
.step-head p{margin:3px 0 0;font-size:16px}
.step-items{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:20px}
.step-item{text-align:center}
.step-item .circle-icon{margin:auto}
.step-item h3{font-size:17px;margin:10px 0}
.step-item p{font-size:15px;color:#0b2a82;margin:0}
.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px}
.check{display:flex;gap:12px;align-items:flex-start}
.check .circle-icon{width:52px;height:52px;min-width:52px;font-size:25px}
.check strong{color:var(--blue);display:block}
.check span{font-size:14px;color:#123077}
.experience-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.experience-card{border-radius:18px;padding:24px 20px;text-align:center;min-height:270px}
.experience-card h3{font-size:19px;margin:14px 0}
.experience-card p{font-size:15px;margin:0}
.experience-card:last-child{text-align:left}
.site-footer{
  position:relative;
  width:100%;
  margin-top:32px;
  overflow:hidden;
  line-height:0;
  background:#063a98;
}
.footer-banner{
  display:block;
  width:100%;
  height:auto;
  margin:0;
}
.mobile-menu{display:none}
.small-note{text-align:center;color:#244078;font-size:13px;margin-top:10px}
@media(max-width:1000px){
  .header-inner{min-height:92px;gap:15px}
  .logo{width:220px;flex-basis:220px}
  .nav{gap:17px;font-size:14px}
  .cta{font-size:15px;padding:12px 18px}
  .hero h1{font-size:43px}
  .hero p{font-size:18px}
  .cards,.experience-grid{grid-template-columns:repeat(2,1fr)}
  .price-grid{grid-template-columns:repeat(2,1fr)}
  .info-strip{grid-template-columns:repeat(2,1fr)}
  .info-item:nth-child(2){border-right:0}
  .info-item{padding:10px}
}
@media(max-width:760px){
  .container{width:min(100% - 28px,var(--max))}
  .header-inner{justify-content:space-between}
  .logo{width:200px;flex-basis:200px}
  .nav,.header-cta{display:none}
  .menu-toggle{display:block}
  .mobile-menu{
    position:absolute;left:0;right:0;top:92px;background:#fff;
    padding:8px 18px 18px;border-bottom:1px solid #d8ebfa;
    box-shadow:0 8px 20px rgba(0,0,0,.07)
  }
  .mobile-menu.open{display:block}
  .mobile-menu a{display:block;padding:14px 8px;font-weight:700;color:var(--blue)}
  .mobile-menu .cta{display:flex;margin-top:8px}
  .hero{min-height:0;padding-top:5px}
  .hero-grid{overflow:visible;grid-template-columns:1fr}
  .page-hero{overflow:visible;transform:none;padding-top:24px}
  .hero-copy{padding-bottom:8px}
  .hero h1,.page-title{font-size:38px;display:table}
  .hero p,.page-lead{font-size:17px}
  .hero-art{width:min(365px,100%);margin-top:12px}
  .hero-note{display:none}
  .section-title{font-size:28px}
  .cards,.experience-grid,.price-grid,.contact-grid,.check-grid{grid-template-columns:1fr}
  .card{min-height:0}
  .info-strip{grid-template-columns:1fr;padding:12px}
  .info-item{border-right:0;border-bottom:1px solid #c9e3f8}
  .info-item:last-child{border-bottom:0}
  .band-grid,.two-col{grid-template-columns:1fr}
  .notice{grid-template-columns:1fr}
  .step-items{grid-template-columns:1fr 1fr}
  .step-head{align-items:flex-start}
  .step-head h2{font-size:23px}
  .site-footer{margin-top:22px}
  .footer-links{
    left:43%;
    right:2%;
    bottom:13%;
    height:15%;
    gap:3px;
  }
  .footer-links a{flex:1 1 0}

}
@media(max-width:440px){
  .step-items{grid-template-columns:1fr}
  .hero h1{font-size:34px}
  .page-title{font-size:32px;display:table;white-space:nowrap}
  .cta{width:100%}
  .hero-actions{flex-direction:column}
}

/* V9 adjustments */
.home-page .hero{
  background:#fff;
}

/* Fale i nieregularne, miękkie kształty w kolorach marki */
.hero, .page-hero, .section{
  position:relative;
  isolation:isolate;
  overflow:visible;
  background:
    radial-gradient(ellipse 42% 34% at 2% 18%, rgba(8,126,234,.075), transparent 72%),
    radial-gradient(ellipse 38% 30% at 98% 82%, rgba(50,169,45,.065), transparent 72%),
    radial-gradient(ellipse 28% 24% at 84% 12%, rgba(255,77,18,.045), transparent 72%),
    #fff;
}
.hero::before, .page-hero::before, .section::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:min(430px,34vw);
  height:min(220px,26vw);
  border-radius:67% 33% 58% 42% / 45% 62% 38% 55%;
  background:rgba(8,126,234,.095);
  top:5%;
  left:1%;
  transform:rotate(-7deg);
  pointer-events:none;
}
.hero::after, .page-hero::after, .section::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:min(500px,38vw);
  height:min(205px,24vw);
  right:1%;
  bottom:4%;
  border-radius:42% 58% 36% 64% / 62% 40% 60% 38%;
  background:rgba(50,169,45,.075);
  transform:rotate(6deg);
  pointer-events:none;
}
.home-page .hero{
  background:
    radial-gradient(ellipse 30% 36% at 3% 24%, rgba(8,126,234,.075), transparent 72%),
    radial-gradient(ellipse 18% 28% at 97% 76%, rgba(255,77,18,.055), transparent 72%),
    #fff;
}
/* Na stronie głównej środkowa część pozostaje czysta pod grafiką dzieci. */
.home-page .hero::before{
  width:min(390px,28vw);
  height:min(205px,25vw);
  left:1%;
  top:6%;
  border-radius:70% 30% 60% 40% / 44% 64% 36% 56%;
  background:rgba(8,126,234,.095);
  transform:rotate(-8deg);
}
.home-page .hero::after{
  width:min(250px,18vw);
  height:min(180px,22vw);
  right:1%;
  bottom:2%;
  border-radius:38% 62% 48% 52% / 58% 42% 62% 38%;
  background:rgba(255,77,18,.07);
  transform:rotate(8deg);
}
.page-hero::before{
  width:min(470px,36vw);
  height:min(225px,27vw);
  top:7%;
  left:1%;
  border-radius:62% 38% 68% 32% / 48% 58% 42% 52%;
  background:rgba(255,77,18,.075);
  transform:rotate(-6deg);
}
.page-hero::after{
  width:min(520px,39vw);
  height:min(210px,25vw);
  right:1%;
  bottom:3%;
  border-radius:58% 42% 35% 65% / 44% 64% 36% 56%;
  background:rgba(8,126,234,.075);
  transform:rotate(7deg);
}
.section::before{
  width:min(360px,30vw);
  height:min(190px,23vw);
  left:2%;
  top:8%;
  border-radius:65% 35% 46% 54% / 55% 40% 60% 45%;
  background:rgba(50,169,45,.065);
  transform:rotate(-5deg);
}
.section::after{
  width:min(430px,34vw);
  height:min(180px,22vw);
  right:2%;
  bottom:6%;
  border-radius:48% 52% 64% 36% / 60% 42% 58% 40%;
  background:rgba(255,77,18,.065);
  transform:rotate(5deg);
}

/* Nieco cięższy tekst opisowy */
.hero p,
.page-lead,
.card p,
.band p,
.price-card p,
.contact-card p,
.step-head p,
.step-item p,
.check span,
.experience-card p,
.notice,
.small-note{
  font-weight:600;
}

.notice{margin-top:32px}


@media(max-width:760px){
  .hero, .page-hero, .section{
    background:
      radial-gradient(ellipse 55% 28% at 3% 18%, rgba(8,126,234,.07), transparent 72%),
      radial-gradient(ellipse 50% 26% at 97% 82%, rgba(50,169,45,.06), transparent 72%),
      radial-gradient(ellipse 35% 22% at 90% 10%, rgba(255,77,18,.04), transparent 72%),
      #fff;
  }
  .hero::before,.page-hero::before,.section::before{
    width:240px;height:125px;left:1%;top:5%;
  }
  .hero::after,.page-hero::after,.section::after{
    width:270px;height:120px;right:1%;bottom:4%;
  }
  .home-page .hero::before{width:215px;height:120px;left:1%;top:7%;}
  .home-page .hero::after{width:145px;height:105px;right:1%;bottom:3%;}
  .offer-orthosis-band .band-grid{grid-template-columns:1fr;gap:18px;}
  .offer-orthosis-band .band-grid > div:first-child{padding-left:0;}
  .offer-orthosis-band .orthosis{max-width:220px;}
}


/* V20 — wspólne, zaprojektowane tło całej strony */
body{
  background-color:#fff;
  background-image:url("assets/site-background.png");
  background-position:center top;
  background-size:cover;
  background-attachment:fixed;
  background-repeat:no-repeat;
}
.site-header{background:rgba(255,255,255,.86);}
.hero,.page-hero,.section{background:transparent !important;}
.hero::before,.hero::after,.page-hero::before,.page-hero::after,.section::before,.section::after{display:none !important;}
/* Logo bez białego prostokąta — tło strony może być widoczne wokół znaków. */
.logo img{content:url("assets/logo-transparent.png");}
@media(max-width:760px){
  body{background-attachment:scroll;background-size:auto 100vh;background-position:center top;}
  .site-header{background:rgba(255,255,255,.92);}
}

/* V22 — tło widoczne również w nagłówku i nad stopką */
.site-header{
  background:transparent !important;
}
.site-footer{
  background:transparent !important;
}
/* Pasek menu mobilnego zachowuje delikatną czytelność, ale nie tworzy pełnego białego bloku. */
@media(max-width:760px){
  .mobile-menu{
    background:rgba(255,255,255,.90);
  }
}


/* v26 – mobile page headings: one line */
@media (max-width: 760px) {
  .page-title {
    white-space: nowrap !important;
    font-size: 30px !important;
  }
}

@media (max-width: 440px) {
  .page-title {
    white-space: nowrap !important;
    font-size: 26px !important;
    letter-spacing: -0.3px;
  }
}


/* v27 – desktop page headings */
@media (min-width: 761px) {
  .page-title {
    font-size: 46px !important;
    white-space: nowrap !important;
  }
}

/* v30 — desktop: menu fits within the screen without horizontal overflow */
@media (min-width: 761px) {
  .header-inner {
    gap: 18px;
  }
  .logo {
    width: 245px;
    flex-basis: 245px;
  }
  .nav {
    gap: 20px;
    min-width: 0;
  }
  .nav a {
    font-size: 15px;
  }
  .header-cta {
    padding-left: 20px;
    padding-right: 20px;
    font-size: 17px;
  }
}
