/* Listopadowe korekty po oględzinach — w obrębie istniejącego systemu. */
.contact{background:#faf7f2}
.contact-inner{grid-template-columns:1fr 1fr;align-items:center;gap:110px;padding-block:70px}
.contact-copy .eyebrow{margin-bottom:18px}.contact-copy h2{font-size:43px;line-height:1.18;max-width:460px;margin-bottom:22px}.contact-copy>p:not(.eyebrow){max-width:440px;font-size:17px;line-height:1.75;margin-bottom:0}.contact-copy .button{margin-top:27px}
.contact-direct{background:#e8dfe8;border:1px solid #d5c3d3;border-radius:24px;padding:30px 34px;color:#493547;container-type:inline-size}
.contact-direct h3{font:400 27px/1.3 var(--serif);letter-spacing:-.02em;margin-bottom:23px}
.contact-channel+.contact-channel{margin-top:19px}.contact-direct .contact-label{font:400 12px/1.6 var(--sans);color:#695166;margin:0 0 4px}
.contact-call{display:inline-flex;align-items:center;gap:22px;font:500 30px/1.5 var(--sans);letter-spacing:-.02em;min-height:48px;width:fit-content}.contact-call svg{width:25px;height:25px;flex:none}
.contact-direct .contact-email{font-size:clamp(16px,1.3vw,19px);line-height:1.6;gap:12px;max-width:100%;min-height:44px;align-items:center;margin:0}
.contact-direct .contact-more{font-size:14px;margin-top:20px;gap:16px}.about-figure figcaption{justify-content:flex-end}
.full-footer{background:#695265;color:#fff9f6;border-top:0}
.full-footer h3{color:#fff9f6}.full-footer .footer-brand>p,.full-footer .footer-office p,.full-footer .footer-office address{color:#f0e5ed}
.full-footer .footer-grid nav a,.full-footer .footer-demo,.full-footer .footer-office>a,.full-footer .footer-social a,.full-footer .footer-social button,.full-footer .footer-legal,.full-footer .footer-legal a{color:#f4eaf0}
.full-footer .footer-office,.full-footer .footer-legal{border-color:#9c8496}.full-footer .footer-legal{color:#eadde6}
/* Stała krzywa jest odsłaniana od lewej; nie rozciąga się w trakcie animacji.
   ::before pozostawia istniejące ::after dla strzałek i oznaczenia bieżącej strony. */
a:not(.button):not(.care-card):not(.brand):not(.skip-link),.footer-demo,.footer-social button,.review-expand,.post-read{position:relative;--pen-curve:url('icons/pen-stroke.svg');--pen-curve-light:url('icons/pen-stroke-light.svg');--pen-image:var(--pen-curve);--pen-bottom:3px;background-image:none;text-decoration:none;transition:color .16s ease}
a:not(.button):not(.care-card):not(.brand):not(.skip-link)::before,.footer-demo::before,.footer-social button::before,.review-expand::before,.post-read::before{content:'';position:absolute;inset:auto 0 var(--pen-bottom,3px) clamp(2px,1.5%,6px);height:7px;background-image:var(--pen-image);background-position:left center;background-size:100% 7px;background-repeat:no-repeat;clip-path:inset(0 100% 0 0);transition:clip-path .253s cubic-bezier(.25,.65,.3,1);pointer-events:none}
a:not(.button):not(.care-card):not(.brand):not(.skip-link):is(:hover,:focus-visible),.footer-demo:is(:hover,:focus-visible),.footer-social button:is(:hover,:focus-visible),.review-expand:is(:hover,:focus-visible),.post-read:is(:hover,:focus-visible){color:#51374b;text-decoration:none}
a:not(.button):not(.care-card):not(.brand):not(.skip-link):is(:hover,:focus-visible)::before,.footer-demo:is(:hover,:focus-visible)::before,.footer-social button:is(:hover,:focus-visible)::before,.review-expand:is(:hover,:focus-visible)::before,.post-read:is(:hover,:focus-visible)::before{clip-path:inset(0 0 0 0)}
.full-footer a:not(.button):not(.care-card):not(.brand):not(.skip-link),.full-footer .footer-demo,.full-footer .footer-social button{--pen-image:var(--pen-curve-light)}
.full-footer a:not(.button):not(.care-card):not(.brand):not(.skip-link):is(:hover,:focus-visible),.full-footer .footer-demo:is(:hover,:focus-visible),.full-footer .footer-social button:is(:hover,:focus-visible){color:#fff}
/* Trzy powtarzalne warianty gestu: lekkie różnice krzywej i odstępu. */
a:not(.button):not(.care-card):not(.brand):not(.skip-link):nth-child(3n+2),.footer-demo:nth-child(3n+2),.footer-social button:nth-child(3n+2),.review-expand:nth-child(3n+2),.post-read:nth-child(3n+2){--pen-curve:url('icons/pen-stroke-soft.svg');--pen-curve-light:url('icons/pen-stroke-soft-light.svg');--pen-bottom:5px}
a:not(.button):not(.care-card):not(.brand):not(.skip-link):nth-child(3n),.footer-demo:nth-child(3n),.footer-social button:nth-child(3n),.review-expand:nth-child(3n),.post-read:nth-child(3n){--pen-curve:url('icons/pen-stroke-rise.svg');--pen-curve-light:url('icons/pen-stroke-rise-light.svg');--pen-bottom:2px}
.button{transition:background .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s}.button:hover{background:#52374e;border-color:#52374e;box-shadow:0 7px 18px #553c4b20;transform:translateY(-2px)}.button.secondary:hover{background:#73566e;border-color:#73566e;color:#fff}
.care-card:hover{border-color:#9a7892;background:#f2e9f1;box-shadow:0 10px 25px #73566e13}.care-card .care-more{background:url('icons/pen-stroke.svg') left bottom/0% 6px no-repeat;transition:background-size .18s}.care-card:is(:hover,:focus-visible) .care-more{background-size:100% 6px}
.brand{transition:filter .18s}.brand:hover{filter:contrast(1.25)}
/* Osobny, wznoszący gest pod pierwszym odnośnikiem nawigacji. */
html .site-header .header-inner .main-nav a:is([href="#kim-jestem"],[href="index.html#kim-jestem"]){--pen-curve:url('icons/pen-stroke-kim-rise.svg')}
/* E-mail i telefon mają tę samą formę, ikonografię i wagę. */
#kontakt .contact-direct .contact-email{display:inline-flex;width:fit-content;max-width:100%;min-height:48px;align-items:center;gap:14px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;font:500 24px/1.5 var(--sans);font-size:clamp(16px,6.2cqi,30px);letter-spacing:-.02em;color:inherit;overflow-wrap:normal;transition:color .16s ease}
#kontakt .contact-direct .contact-email span{min-width:0;flex:0 1 auto;font:inherit;overflow-wrap:anywhere}
#kontakt .contact-direct .contact-email svg{width:25px;height:25px;flex:none}
#kontakt .contact-direct .contact-email:is(:hover,:focus-visible){color:#51374b}
#kontakt .contact-direct .contact-email::before{left:clamp(2px,1.5%,6px);right:0;bottom:var(--pen-bottom,3px)}
@media(min-width:701px) and (max-width:760px){#kontakt .contact-inner{display:block}#kontakt .contact-direct{margin-top:34px}}
@media(max-width:1100px){.contact-inner{gap:55px}.contact-direct{padding:28px}.contact-copy h2{font-size:38px}}
@media(max-width:700px){.contact-inner{display:block;padding-block:52px}.contact-copy h2{font-size:34px}.contact-copy h2 br{display:none}.contact-copy>p:not(.eyebrow){font-size:16px}.contact-direct{margin-top:34px;padding:27px 24px}.contact-direct h3{font-size:25px;margin-bottom:22px}.contact-call{font-size:29px;gap:20px}.contact-direct .contact-email{font-size:16px;gap:10px}.contact-direct .contact-more{margin-top:17px}.full-footer .footer-office{border-color:#9c8496}}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) a,html:not([data-motion=on]) button,html:not([data-motion=on]) .care-card{transition:none!important}html:not([data-motion=on]) .button:hover{transform:none}}
[data-motion=off] a,[data-motion=off] button,[data-motion=off] .care-card{transition:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) a::before,html:not([data-motion=on]) button::before{transition:none!important}}
[data-motion=off] a::before,[data-motion=off] button::before{transition:none!important}
.hero{position:relative}.hero-scroll{display:none}
@media(min-width:1500px) and (min-height:850px){.hero{padding-block:44px 112px}.hero-photo{height:540px}.hero h1{font-size:66px}.mission{padding-top:24px}.hero-scroll{position:absolute;left:0;bottom:21px;display:inline-flex;align-items:center;gap:18px;min-height:44px;font-size:11px;letter-spacing:.13em;color:#765b71}.hero-scroll .arrow-icon{width:18px;height:18px}}
/* Kroki zachowują wspólną szerokość .wrap, z jednorazowym akcentem numerów. */
.process>.section-heading{margin-bottom:44px}
.process .steps{gap:38px}.process .steps h3{font-size:23px;line-height:1.4}.process .steps p{max-width:330px;font-size:16px;line-height:1.75}.process .step-number{width:49px;height:49px;font-size:15px;background:#efe7ef;color:#74556d}
.step-number[data-reveal]{opacity:1;transform:none;transition:none}
.steps li:nth-child(2) .step-number{--step-reveal-delay:320ms}.steps li:nth-child(3) .step-number{--step-reveal-delay:640ms}.steps li:nth-child(4) .step-number{--step-reveal-delay:960ms}
.step-number[data-reveal].is-visible{animation:step-in 1.15s cubic-bezier(.2,.7,.25,1) var(--step-reveal-delay,0ms) forwards}
@keyframes step-in{0%{opacity:.45;transform:translateY(12px) scale(.8);background:#73566e;color:#fff;box-shadow:0 0 0 0 #a78ca440}60%{opacity:1;transform:translateY(-3px) scale(1.09);background:#d5bfd0;color:#493547;box-shadow:0 0 0 5px #a78ca426}100%{opacity:1;transform:none;background:#efe7ef;color:#74556d;box-shadow:0 0 0 0 #a78ca400}}
[data-motion=off] .step-number{animation:none!important}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .step-number{animation:none!important}}
@media(max-width:900px){.process .steps{gap:28px}.process .steps h3{font-size:21px}.process .steps p{font-size:16px}}
@media(max-width:700px){.process>.section-heading{margin-bottom:33px}.process .steps{gap:25px}.process .step-number{width:43px;height:43px;font-size:14px;--step-reveal-delay:0ms!important}.process .steps h3{font-size:21px}.process .steps p{max-width:100%}}
/* Opinie pozostają jednocześnie dostępne — bez karuzeli. */
.testimonials{background:#f3eee6;padding-block:76px}.testimonials-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:60px;align-items:start}
.testimonials-intro{position:sticky;top:calc(var(--header-offset) + 10px);display:block;margin:0}.testimonials-intro .eyebrow{margin-bottom:17px}.testimonials-intro h2{font-size:39px;line-height:1.2;margin-bottom:20px}.testimonials-intro>p:not(.eyebrow){font-size:16px;line-height:1.7;max-width:270px}.testimonials-intro .button{max-width:100%;margin-top:24px;padding:13px 22px;gap:18px;font-size:14px;line-height:1.5;text-align:left}
.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.review-column{display:grid;gap:20px;align-content:start;min-width:0}
.review-card{background:#fffdfa;border:1px solid #e2d9cc;border-radius:18px;padding:25px;min-width:0}.review-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:13px;margin-bottom:18px}.review-card h3{font:500 17px/1.3 var(--sans);letter-spacing:0;margin:0 0 5px}.review-byline{font:400 11.5px/1.6 var(--sans);color:#7b6b70;margin:0}
.review-card .review-stars{display:flex;gap:2px;color:#c5962d;margin:2px 0 0;flex:none}.review-card .review-stars svg{width:16px;height:16px;fill:currentColor}
.review-body blockquote{margin:0;padding:0}.review-body p{font:400 16px/1.75 var(--sans);color:#544950;margin:0;letter-spacing:0}.review-expand{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:12px;border:0;padding:6px 0;background-color:transparent;color:#73566e;font-size:14px;cursor:pointer}.review-expand[hidden]{display:none}.review-expand .arrow-icon{width:18px;height:18px}
@media(max-width:1100px){.testimonials-layout{grid-template-columns:245px minmax(0,1fr);gap:38px}.review-card{padding:22px}.review-card-head{display:block}.review-card .review-stars{margin-top:11px}}
@media(max-width:900px){.testimonials-layout{display:block}.testimonials-intro{position:static;margin-bottom:27px}.testimonials-intro h2{font-size:35px;margin-bottom:16px}.testimonials-intro>p:not(.eyebrow){max-width:500px}.testimonials-intro .button{margin-top:18px}.review-card-head{display:flex}.review-card .review-stars{margin-top:2px}}
@media(max-width:700px){.testimonials{padding-block:52px}.testimonials-intro h2{font-size:32px}.testimonials-intro .eyebrow{margin-bottom:13px}.testimonials-intro>p:not(.eyebrow){font-size:16px}.testimonials-intro .button{padding:11px 19px;font-size:13px;gap:15px;margin-top:17px}.review-grid{display:block}.review-column{gap:16px}.review-column+.review-column{margin-top:16px}.review-card{padding:23px}.review-card-head{margin-bottom:15px}.review-body p{font-size:16px;line-height:1.7}.review-expand{margin-top:10px}.review-byline{font-size:11.5px}}
.faq summary{transition:background-color .16s,color .16s}.faq .faq-list summary{padding:24px 66px 24px 20px;border-radius:6px}.faq .faq-list summary:after{right:20px;top:50%;transform:translateY(-50%)}.faq .faq-answer{padding:16px 20px 26px}.faq summary:hover{background-color:#f1eaf0}.faq summary:hover h3{color:#51374b}.faq .faq-list summary:hover:after{background:#80607a;color:#fff}
@media(max-width:700px){.faq .faq-list summary{padding:22px 60px 22px 16px}.faq .faq-list summary:after{right:16px}.faq .faq-answer{padding:14px 16px 24px}}
.menu-toggle:hover,.topic-control:hover,.demo-close:hover{background-color:#eadfe8;border-color:#9a7892;color:#51374b}

@media(max-width:900px){html:not(.js){scroll-padding-top:24px}html:not(.js) .site-header{position:relative}}

/* Statyczny pasek pozostaje pełnym, wycentrowanym zestawem tematów. */
[data-motion=off] .topics{padding-block:12px;gap:0}
[data-motion=off] .topic-window{width:100%;padding-block:6px;mask:none}
[data-motion=off] .topic-track{display:block;width:100%;transform:none}
[data-motion=off] .topic-list{width:100%;max-width:1200px;margin-inline:auto;justify-content:center;align-items:center;gap:12px 26px;padding:0 24px}
[data-motion=off] .topic-list li{gap:26px}
[data-motion=off] .topic-list li:last-child::after{display:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .topics{padding-block:12px;gap:0}html:not([data-motion=on]) .topic-window{width:100%;padding-block:6px;mask:none}html:not([data-motion=on]) .topic-track{display:block;width:100%;transform:none}html:not([data-motion=on]) .topic-list{width:100%;max-width:1200px;margin-inline:auto;justify-content:center;align-items:center;gap:12px 26px;padding:0 24px}html:not([data-motion=on]) .topic-list li{gap:26px}html:not([data-motion=on]) .topic-list li:last-child::after{display:none}}

html[data-motion=off]{scroll-behavior:auto}

/* Kreska obejmuje numer, a cały wiersz pozostaje wygodnym celem kliknięcia. */
#gabinet .location-phone>a::before{display:none}
#gabinet .location-phone-number{position:relative;display:inline-block;font:inherit}
#gabinet .location-phone-number::before{content:"";position:absolute;left:2px;right:0;bottom:1px;height:7px;background:var(--pen-image) left center/100% 7px no-repeat;clip-path:inset(0 100% 0 0);transition:clip-path .253s cubic-bezier(.25,.65,.3,1);pointer-events:none}
#gabinet .location-phone>a:is(:hover,:focus-visible) .location-phone-number::before{clip-path:inset(0 0 0 0)}

/* Pudrowe zaznaczenie z czytelnym tekstem także na ciemnym tle. */
::selection{background:#efd7df;color:#493547;text-shadow:none}

.review-load-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Kolejne opinie pojawiają się po pierwszych sześciu także w porządku mobilnym. */
.review-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px;align-items:start}
.review-more-grid[hidden]{display:none}
#opinie .review-summary-source a{display:inline-flex;align-items:center;min-height:32px;color:inherit}
@media(max-width:700px){.review-more-grid{grid-template-columns:1fr;gap:16px;margin-top:16px}#opinie .review-summary-source a{min-height:44px}}

.review-load-more{scroll-margin-top:calc(var(--header-offset) + 12px);scroll-margin-bottom:16px}

.review-card .review-date{display:block;margin-top:2px;font:400 11.5px/1.6 var(--sans);color:#7b6b70}
