
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@1,500&display=swap');
:root{--navy:#12395f;--teal:#009ca4;--green:#a8c83b;--muted:#61778c;--line:#dbe9ed;--mint:#effafa}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,Arial,sans-serif;color:var(--navy);background:#fff}a{text-decoration:none;color:inherit}
.container{width:min(1240px,calc(100% - 64px));margin:auto}
header{height:94px;background:#fff;border-bottom:1px solid #edf2f4;position:sticky;top:0;z-index:20}.nav{height:100%;display:flex;align-items:center;gap:28px}.brand img{display:block;width:215px}.links{display:flex;gap:29px;align-items:center;justify-content:center;flex:1;font-size:12px;font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 22px;border-radius:7px;font-size:12px;font-weight:800}.primary{background:var(--teal);color:#fff;box-shadow:0 8px 20px rgba(0,156,164,.15)}.outline{background:#fff;border:1px solid #8ccfd2;color:#008f98}
.hero{background:linear-gradient(110deg,#fff 0%,#fbfefe 44%,#eafafa 100%);overflow:hidden}.hero-inner{min-height:610px;display:grid;grid-template-columns:42% 58%;align-items:center}.copy{padding:70px 0 70px 18px;position:relative;z-index:2}.eyebrow{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#008f98;font-weight:800}.copy h1{font-size:clamp(48px,4.3vw,70px);line-height:1.03;letter-spacing:-.05em;margin:25px 0 23px}.copy h1 em{display:block;font-family:"Playfair Display",serif;font-weight:500;color:#0799a1;letter-spacing:-.02em}.copy:after{content:"";display:block;width:36px;height:2px;background:#0aa4a8;position:absolute;top:330px}.lead{font-size:14px;line-height:1.8;color:var(--muted);max-width:500px;margin-top:58px}.actions{display:flex;gap:14px;margin-top:27px}
.art{height:610px;position:relative;display:flex;align-items:center;justify-content:center}.art svg{width:118%;height:118%;overflow:visible}.fine{fill:none;stroke:#66c8cc;stroke-width:1;opacity:.33}.mol{fill:none;stroke:#35aaa8;stroke-width:3.4}.node{fill:#a6ca3d}.dna1{fill:none;stroke:url(#dg);stroke-width:12;stroke-linecap:round}.dna2{fill:none;stroke:#a4c940;stroke-width:5;stroke-linecap:round}.rung{stroke:#65bdb9;stroke-width:2.2}.arrow{fill:url(#ag)}
.services-wrap{margin-top:-28px;position:relative;z-index:5;padding-bottom:44px}.services{background:#fff;border-radius:18px;box-shadow:0 13px 38px rgba(18,57,95,.08);display:grid;grid-template-columns:repeat(5,1fr);padding:27px 18px 18px}.svc{text-align:center;padding:0 18px;border-right:1px solid #dfeaec}.svc:nth-child(5){border:0}.ico{height:57px;display:grid;place-items:center;color:#009ba3}.ico svg{width:45px;height:45px;fill:none;stroke:currentColor;stroke-width:2}.svc h3{font-size:13px;margin:7px 0 7px}.svc p{font-size:10px;line-height:1.65;color:var(--muted);margin:0}.more{grid-column:1/-1;text-align:center;padding-top:23px;font-size:11px;font-weight:800;color:#008f98}.more b{display:inline-grid;place-items:center;width:20px;height:20px;border:1px solid #009ba3;border-radius:50%;margin-right:7px}
.strip{background:#153e66;color:#fff}.strip .container{display:grid;grid-template-columns:repeat(3,1fr);padding:24px 0}.strip .item{padding:0 34px;border-right:1px solid rgba(255,255,255,.2)}.strip .item:first-child{padding-left:0}.strip .item:last-child{border:0}.strip strong,.strip span{display:block}.strip strong{font-size:13px}.strip span{font-size:10px;color:#aec0d0}
.section{padding:100px 0}.split{display:grid;grid-template-columns:.5fr 1.5fr;gap:70px}.tag{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#008f98;font-weight:800}.section h2{font-size:52px;line-height:1.06;letter-spacing:-.05em;margin:12px 0 24px}.section h2 em{font-style:normal;color:#0799a1}.section p{font-size:14px;line-height:1.75;color:var(--muted)}.quote{border-left:3px solid #00a3a8;padding-left:18px;color:var(--navy)!important;font-size:16px!important}.tint{background:var(--mint)}.head{display:flex;justify-content:space-between;align-items:end;margin:14px 0 38px}.head h2{margin:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:25px}.card h3{font-size:20px;margin:0 0 7px}.card p{font-size:12px;margin:0}.parents{display:grid;grid-template-columns:1fr 1fr;gap:20px}.parents div{border-top:1px solid var(--line);padding-top:18px}.parents b{font-size:11px;color:#009ba3}.parents h3{margin:8px 0}.prices{display:grid;gap:11px}.price{background:#fff;border:1px solid var(--line);border-radius:14px;padding:19px 23px;display:flex;justify-content:space-between;gap:20px;font-size:14px}.price strong{color:#008f98}
.clinic{background:#f7fbfc}.clinic-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:65px;align-items:center}.clinic-photo{height:530px;border-radius:20px;overflow:hidden;margin:0}.clinic-photo img{width:100%;height:100%;object-fit:cover}.contact{padding:30px 0 65px}.contactbox{background:#e9f8f7;border-radius:19px;padding:28px 40px;display:flex;align-items:center;justify-content:space-between}.contactbox h2{font-size:27px;margin:0 0 4px}.contactbox p{font-size:12px;color:var(--muted);margin:0}
footer{background:#12395f;color:#fff;padding:44px 0}.foot{display:grid;grid-template-columns:2fr 1fr 1fr;gap:45px}.foot img{width:210px;filter:brightness(0) invert(1)}.foot div{display:flex;flex-direction:column;gap:7px}.foot p,.foot a,.foot span{font-size:11px;color:#aec0cf}
@media(max-width:850px){.links,.nav>.primary{display:none}.hero-inner{grid-template-columns:1fr}.copy{padding-left:0}.copy:after{display:none}.lead{margin-top:25px}.art{height:480px}.services{grid-template-columns:1fr 1fr}.svc{border:0;border-bottom:1px solid var(--line);padding:18px}.split,.clinic-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.strip .container{grid-template-columns:1fr}.strip .item{border-right:0;border-bottom:1px solid rgba(255,255,255,.2);padding:12px 0}.foot{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.container{width:calc(100% - 28px)}.copy h1{font-size:48px}.art{height:380px}.services,.cards,.parents{grid-template-columns:1fr}.price,.contactbox{display:grid}.clinic-photo{height:310px}.foot{grid-template-columns:1fr}}

/* v2.x.4 — zatwierdzona grafika hero pobrana bezpośrednio z zaakceptowanej wizualizacji */
.approved-art{height:610px;display:flex;align-items:stretch;justify-content:stretch;overflow:hidden}
.approved-art img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
@media(max-width:850px){.approved-art{height:480px}.approved-art img{object-fit:contain}}
@media(max-width:520px){.approved-art{height:380px}}

/* v2.x.5 — high-resolution approved hero asset */
.approved-art img{
  image-rendering:auto;
  -ms-interpolation-mode:bicubic;
  transform:translateZ(0);
}

/* v2.x.6 — hero graphic shown in full, no cropping */
.approved-art{
  height:610px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.approved-art img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center center !important;
  image-rendering:auto;
  display:block;
}
@media(max-width:850px){
  .approved-art{height:480px}
  .approved-art img{object-fit:contain !important}
}
@media(max-width:520px){
  .approved-art{height:380px}
}

/* v2.x.8 — header proportions restored from v2.0_FINAL_FIXED */
@media(min-width:851px){
  header{height:100px !important}
  .nav{height:100% !important}
  .brand img{width:270px !important;height:auto !important}
  .links{gap:34px !important;font-size:14px !important;font-weight:600 !important;white-space:nowrap}
  .nav>.primary{font-size:14px !important;padding:14px 23px !important;min-width:170px}
}
/* decorative line must sit clearly below “spokojniej.” */
.copy:after{top:350px !important}
.price-details{
  margin:10px 0 2px 22px;
  padding:10px 0 0 16px;
  border-left:2px solid #dbe9ed;
  font-size:12px;
  line-height:1.65;
  color:var(--muted);
}
.price-details summary{cursor:pointer;color:#008f98;font-weight:700;list-style:none;margin-bottom:8px}
.price-details summary::-webkit-details-marker{display:none}
.price-details summary:after{content:" ↓"}
.price-details[open] summary:after{content:" ↑"}
.price-obesity{display:block}
.price-obesity .price-main{display:flex;justify-content:space-between;gap:20px}
@media(max-width:520px){
  .price-obesity .price-main{display:grid}
  .price-details{margin-left:8px}
}


/* v2.x.9 accumulated refinements */

/* Sticky header must not cover anchored sections. */
#o-mnie,#pomagam,#podejscie,#rodzice,#cennik,#gabinet,#kontakt{
  scroll-margin-top:120px;
}

/* Footer logo: transparent asset and sane proportions. */
.foot img{
  width:200px !important;
  height:auto !important;
  max-width:100%;
  filter:none !important;
  object-fit:contain;
  display:block;
}

/* Podejście section. */
.approach{background:#f7f6f1}
.approach-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:90px;align-items:start}
.approach-left h2{
  font-size:clamp(48px,4.8vw,72px);
  line-height:1.02;
  letter-spacing:-.055em;
  margin:14px 0 0;
  color:var(--navy)
}
.approach-left h2 em{font-style:normal;color:#7da47b}
.approach-list{border-top:1px solid #d7e1df}
.approach-item{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:20px;
  padding:28px 0;
  border-bottom:1px solid #d7e1df
}
.approach-item>span{font-size:12px;color:#7aa5a6;font-weight:800}
.approach-item h3{font-size:20px;margin:0 0 7px;color:var(--navy)}
.approach-item p{margin:0;font-size:13px;line-height:1.7;color:var(--muted)}

/* Additional menu item: retain comfortable type and collapse earlier. */
@media(max-width:1180px){
  .links{gap:18px !important;font-size:13px !important}
}
@media(max-width:1040px){
  .links{display:none !important}
  .nav>.primary{display:none !important}
}

/* Move decorative line below 'spokojniej.' lower so it cannot touch the letters. */
.copy:after{top:362px !important}

@media(max-width:850px){
  .approach-grid{grid-template-columns:1fr;gap:38px}
  .approach-item{grid-template-columns:38px 1fr}
}


/* v2.A.10 — Podejście fully integrated with current EndoVibe palette */
.approach{
  background:#f4fbfc !important;
  overflow:hidden;
}
.approach-grid{
  grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr) !important;
  gap:72px !important;
  width:min(1240px,calc(100% - 64px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.approach-left h2{
  color:var(--navy) !important;
}
.approach-left h2 em{
  color:var(--teal) !important;
}
.approach-list{
  min-width:0;
  width:100%;
  border-top:1px solid #cfe7e9 !important;
}
.approach-item{
  min-width:0;
  width:100%;
  border-bottom:1px solid #cfe7e9 !important;
}
.approach-item>span{
  color:var(--teal) !important;
}
.approach-item h3{
  color:var(--navy) !important;
}
.approach-item p{
  color:var(--muted) !important;
  max-width:100%;
  overflow-wrap:anywhere;
}
@media(max-width:850px){
  .approach-grid{
    width:min(100% - 28px,1240px) !important;
    grid-template-columns:1fr !important;
    gap:38px !important;
  }
}

/* v2.A.11 collected fixes */
.foot>div:first-child{display:inline-flex;flex-direction:column;align-items:flex-start}
.foot>div:first-child img{
  width:200px!important;height:auto!important;box-sizing:content-box;
  background:#fff!important;padding:12px 16px!important
}
.brand{
  height:100px!important;overflow:hidden!important;
  display:flex!important;align-items:flex-start!important
}
.brand img{
  width:270px!important;height:auto!important;display:block!important;
  margin-top:0!important;clip-path:inset(0 0 12px 0)
}
#pomagam,#obszary{scroll-margin-top:120px}

/* v2.A.12 */
.brand img{transform:translateY(-8px)!important}
#pomagam,#obszary{scroll-margin-top:120px!important}


/* v2.A.13 — mobile navigation + smartphone polish */
.menu-toggle{
  display:none;
  width:46px;
  height:46px;
  padding:10px;
  margin-left:auto;
  border:0;
  border-radius:10px;
  background:transparent;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  color:var(--navy);
}
.menu-toggle span{
  display:block;
  width:25px;
  height:2px;
  border-radius:2px;
  background:currentColor;
  transition:transform .22s ease, opacity .22s ease;
}
.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.is-open span:nth-child(2){opacity:0}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:1040px){
  header{
    height:76px !important;
    z-index:100 !important;
  }
  .nav{
    height:76px !important;
    position:relative;
    gap:14px;
  }

  /* Logo stays large enough to read, but is contained inside mobile header. */
  .brand{
    height:76px !important;
    width:205px !important;
    overflow:hidden !important;
    display:flex !important;
    align-items:flex-start !important;
    flex:none;
  }
  .brand img{
    width:205px !important;
    height:auto !important;
    transform:translateY(-5px) !important;
    clip-path:inset(0 0 9px 0) !important;
  }

  .menu-toggle{
    display:flex;
    position:relative;
    z-index:102;
  }

  .links{
    display:none !important;
    position:absolute !important;
    top:76px;
    left:0;
    right:0;
    width:100%;
    margin:0;
    padding:12px 18px 18px;
    background:#fff;
    border-top:1px solid #edf2f4;
    border-bottom:1px solid #dce9ed;
    box-shadow:0 15px 30px rgba(18,57,95,.12);
    flex-direction:column;
    align-items:stretch !important;
    gap:0 !important;
    font-size:15px !important;
    font-weight:600 !important;
    z-index:101;
  }
  .links.mobile-open{
    display:flex !important;
  }
  .links a{
    display:flex;
    align-items:center;
    min-height:48px;
    padding:11px 4px !important;
    border-bottom:1px solid #edf3f4;
  }
  .links a:last-child{border-bottom:0}

  .nav>.primary{
    display:none !important;
  }

  /* Booking CTA inside opened mobile menu. */
  .links.mobile-open::after{
    content:"Umów wizytę ↗";
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    margin-top:12px;
    border-radius:9px;
    background:var(--teal);
    color:#fff;
    font-size:14px;
    font-weight:800;
    pointer-events:none;
  }

  #o-mnie,#pomagam,#podejscie,#rodzice,#cennik,#gabinet,#kontakt{
    scroll-margin-top:88px !important;
  }

  .hero-inner{
    min-height:auto !important;
    grid-template-columns:1fr !important;
  }
  .copy{
    padding:48px 0 12px !important;
  }
  .copy h1{
    font-size:clamp(46px,11vw,62px) !important;
    max-width:640px;
  }
  .lead{
    font-size:15px !important;
    max-width:620px;
  }
  .approved-art{
    height:440px !important;
    margin-top:0;
  }
  .approved-art img{
    object-fit:contain !important;
    object-position:center !important;
  }

  .services-wrap{
    margin-top:-8px !important;
    padding-bottom:30px !important;
  }

  .section{
    padding:76px 0 !important;
  }
  .section h2{
    font-size:clamp(38px,8vw,52px) !important;
  }

  .clinic-photo{
    height:430px !important;
  }
}

@media(max-width:600px){
  .container{
    width:calc(100% - 28px) !important;
  }

  .brand{
    width:188px !important;
  }
  .brand img{
    width:188px !important;
    transform:translateY(-3px) !important;
  }

  .hero{
    overflow:hidden;
  }
  .copy{
    padding-top:38px !important;
  }
  .copy h1{
    font-size:48px !important;
    line-height:1.01 !important;
    margin:18px 0 20px !important;
  }
  .eyebrow{
    font-size:10px !important;
  }
  .lead{
    margin-top:24px !important;
    font-size:14px !important;
    line-height:1.7 !important;
  }
  .actions{
    display:grid !important;
    grid-template-columns:1fr 1fr;
    gap:10px !important;
    margin-top:22px !important;
  }
  .actions .btn{
    padding:13px 12px !important;
  }

  .approved-art{
    height:355px !important;
  }

  .services{
    grid-template-columns:1fr 1fr !important;
    padding:14px !important;
    gap:0;
  }
  .svc{
    padding:16px 8px !important;
    border-right:0 !important;
    border-bottom:1px solid var(--line) !important;
  }
  .svc:nth-child(odd){
    border-right:1px solid var(--line) !important;
  }
  .svc:nth-child(5){
    grid-column:1/-1;
    border-right:0 !important;
  }
  .more{
    padding:18px 0 4px !important;
  }

  .strip .container{
    padding:15px 0 !important;
  }

  .split,.clinic-grid,.approach-grid{
    gap:30px !important;
  }
  .cards{
    grid-template-columns:1fr !important;
  }
  .parents{
    grid-template-columns:1fr !important;
  }

  .price{
    display:block !important;
    padding:17px 18px !important;
  }
  .price strong{
    display:block;
    margin-top:8px;
  }
  .price-obesity .price-main{
    display:block !important;
  }
  .price-details{
    margin-left:0 !important;
    padding-left:12px !important;
  }

  .clinic-photo{
    height:300px !important;
  }

  .contactbox{
    display:grid !important;
    gap:18px;
    padding:24px !important;
  }

  .foot{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
  .foot>div:first-child img{
    width:180px !important;
  }
}

@media(max-width:380px){
  .copy h1{font-size:43px !important}
  .actions{grid-template-columns:1fr !important}
  .services{grid-template-columns:1fr !important}
  .svc:nth-child(odd){border-right:0 !important}
  .svc:nth-child(5){grid-column:auto}
}


/* v2.A.15 — keep the EndoVibe design consistent in light/dark browser profiles */
:root{
  color-scheme:only light;
}

html,
body{
  background:#ffffff !important;
  color:var(--navy) !important;
}

/* Explicitly pin authored surfaces so dark-preference browsers do not recolor them. */
header,
.nav,
.links,
.services,
.card,
.price,
.contactbox,
.foot>div:first-child img{
  background-color:#ffffff;
}

.hero{
  background:linear-gradient(110deg,#fff 0%,#fbfefe 44%,#eafafa 100%) !important;
}

.tint{
  background:var(--mint) !important;
}

.approach{
  background:#f4fbfc !important;
}

.clinic{
  background:#f7fbfc !important;
}

.strip,
footer{
  background:#12395f !important;
  color:#ffffff !important;
}

.contact{
  background:#ffffff !important;
}

/* If the user agent reports dark preference, retain the authored light EndoVibe palette. */
@media (prefers-color-scheme: dark){
  :root{
    color-scheme:only light;
  }

  html,
  body{
    background:#ffffff !important;
    color:var(--navy) !important;
  }

  header,
  .nav,
  .links,
  .services,
  .card,
  .price,
  .contact,
  .foot>div:first-child img{
    background:#ffffff !important;
  }

  .hero{
    background:linear-gradient(110deg,#fff 0%,#fbfefe 44%,#eafafa 100%) !important;
  }

  .tint{
    background:var(--mint) !important;
  }

  .approach{
    background:#f4fbfc !important;
  }

  .clinic{
    background:#f7fbfc !important;
  }

  .contactbox{
    background:#e9f8f7 !important;
  }

  .strip,
  footer{
    background:#12395f !important;
    color:#ffffff !important;
  }

  .links a,
  .copy h1,
  .section h2,
  .card h3,
  .price span,
  .contactbox h2,
  .approach-item h3{
    color:var(--navy) !important;
  }

  .copy h1 em,
  .section h2 em,
  .approach-left h2 em,
  .more,
  .tag,
  .eyebrow{
    color:var(--teal) !important;
  }

  .lead,
  .section p,
  .card p,
  .contactbox p,
  .approach-item p{
    color:var(--muted) !important;
  }
}

/* v2.A.16 — final optical alignment of desktop header logo */
@media(min-width:1041px){
  .brand img{
    transform:translateY(-12px) !important;
  }
}
