/* Extend the original theme without changing its palette. */
html { scroll-padding-top: 100px; }
#tm-main {font-size:16px;line-height:1.7;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid currentColor; outline-offset:4px; }
#tm-main .uk-text-lead { line-height:1.7; }
#tm-main .uk-card-body { line-height:1.65; }
#tm-main .uk-card-title,#tm-main h1,#tm-main h2 { overflow-wrap:break-word; }
.contact-form { max-width:960px; }
.contact-form label { display:block; font-size:16px; margin-bottom:8px; }
.contact-form input,.contact-form textarea { font-size:16px; }
.contact-form .uk-checkbox { margin-right:8px; }
.contact-trap { position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden; }
.map-placeholder { min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:#f5f5f5;text-align:center; }
.map-placeholder iframe { width:100%;height:360px;border:0; }
.cookie-banner { position:fixed;bottom:16px;left:16px;right:16px;z-index:99999;max-width:1040px;margin:auto;box-sizing:border-box;background:rgba(42,48,58,.98);color:#fff;padding:20px 24px;border-radius:8px;box-shadow:0 6px 28px rgba(0,0,0,.2); }
.cookie-banner[hidden], .cookie-panel[hidden] { display:none!important; }
.cookie-banner h3 { font-size:18px;color:#fff;margin:0 0 8px; }
.cookie-banner p { font-size:14px;line-height:1.5;margin:0 0 14px; }
.cookie-actions { display:flex;gap:10px;flex-wrap:wrap; }
.cookie-actions .uk-button { min-height:42px;line-height:1.4;padding:10px 18px; }
.cookie-actions .uk-button-default { color:#fff;border-color:#fff;background:transparent; }
.cookie-panel { padding-top:14px; }
.cookie-reopen { position:fixed;bottom:12px;left:12px;z-index:1000;background:rgba(42,48,58,.95);color:#fff;border:0;border-radius:4px;padding:8px 12px;font-size:12px;cursor:pointer; }
@media(max-width:640px) {
 .therapy-split__link { min-height:0; }
 .therapy-split__image { object-position:center 55%; }
 .therapy-split__label { padding:16px!important; }
 .therapy-split__label h1,.therapy-split__label h2 { font-size:clamp(26px,7vw,38px)!important; }
 .therapy-split__cta { top:12px!important;min-height:44px!important; }
 .therapy-split__brand { width:min(240px,72vw)!important;min-height:68px!important;padding:12px 20px!important; }
 .tm-header-mobile .uk-logo img { max-width:230px;width:60vw; }
 #tm-main .uk-section-xlarge { padding-top:48px;padding-bottom:48px; }
 #tm-main .uk-heading-xlarge { font-size:clamp(32px,9vw,48px); }
 #tm-main .uk-heading-small { font-size:28px; }
 #tm-main .uk-text-lead { font-size:17px; }
 .uk-card-body { padding:24px; }
 .cookie-banner { padding:14px;bottom:8px;left:8px;right:8px;max-height:45svh;overflow:auto; }
 .cookie-banner p { font-size:14px; }
 .cookie-actions .uk-button { flex:1;min-width:130px;font-size:12px; }
 .map-placeholder { min-height:260px; }.map-placeholder iframe {height:300px;}
 .contact-form .uk-button { width:100%; }
 footer .uk-list .uk-text-truncate { white-space:normal; }
 a[href*="doctolib.de"][style*="position:fixed"] { top:auto!important;bottom:128px!important;width:78px!important;font-size:12px!important; }
}
@media(prefers-reduced-motion:reduce) { html {scroll-behavior:auto!important;} *,*::before,*::after {animation-duration:.01ms!important;transition-duration:.01ms!important;} }

/* Professional motion system shared by every page. */
@media(prefers-reduced-motion:no-preference){
 html{scroll-behavior:smooth;}
 html.motion-enabled .reveal-item{opacity:0;filter:blur(9px);transform:translate3d(0,68px,0) scale(.965);transition:opacity .82s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),transform 1s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),filter .8s ease var(--reveal-delay,0ms);will-change:opacity,transform,filter;}
 html.motion-enabled .reveal-item.reveal-from-left{transform:translate3d(-92px,0,0) scale(.955);}
 html.motion-enabled .reveal-item.reveal-from-right{transform:translate3d(92px,0,0) scale(.955);}
 html.motion-enabled .reveal-item.is-visible{opacity:1;filter:blur(0);transform:translate3d(0,0,0) scale(1);will-change:auto;}
 html.motion-enabled .reveal-item.reveal-initial,
 html.motion-enabled .reveal-item.reveal-initial::after,
 html.motion-enabled .erg-service-row__content.reveal-item.reveal-initial>*{transition:none!important;}
 html.motion-enabled .reveal-item.text-reveal{transform:translate3d(0,48px,0) scale(.94);letter-spacing:.055em;transition:opacity .78s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),transform .94s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),filter .74s ease var(--reveal-delay,0ms),letter-spacing .9s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms);}
 html.motion-enabled .reveal-item.text-reveal.is-visible{transform:translate3d(0,0,0) scale(1);letter-spacing:normal;}
 html.motion-enabled .uk-divider-small.reveal-item::after{transform:scaleX(0);transform-origin:left center;transition:transform .8s cubic-bezier(.16,1,.3,1) calc(var(--reveal-delay,0ms) + 180ms);}
 html.motion-enabled .uk-divider-small.reveal-item.is-visible::after{transform:scaleX(1);}

 .site-scroll-progress{position:fixed;z-index:100001;top:0;left:0;width:100%;height:4px;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,#52b83f,#a7df75,#52b83f);box-shadow:0 1px 10px rgba(114,205,77,.5);pointer-events:none;will-change:transform;}

 .uk-logo{transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .3s ease;}
 .uk-logo:hover{transform:translateY(-2px);}
 .uk-navbar-nav>li>a{transition:color .25s ease,transform .25s ease;}
 .uk-navbar-nav>li>a:hover{transform:translateY(-1px);}
 .theme-toggle{transition:transform .35s cubic-bezier(.22,1,.36,1),background-color .35s ease,border-color .35s ease,color .35s ease;}
 .theme-toggle:hover{transform:rotate(18deg) scale(1.1);}
 .theme-toggle svg{transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .25s ease;}
 html.theme-changing .theme-toggle svg{transform:rotate(360deg) scale(.72);}

 .uk-button{position:relative;overflow:hidden;isolation:isolate;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,background-color .3s ease,border-color .3s ease,color .3s ease;}
 .uk-button::after{content:"";position:absolute;z-index:1;top:-60%;bottom:-60%;left:-55%;width:35%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-22deg) translateX(-220%);transition:transform .72s cubic-bezier(.16,1,.3,1);pointer-events:none;}
 .uk-button:hover,.uk-button:focus-visible{transform:translateY(-5px) scale(1.025);box-shadow:0 16px 34px rgba(18,52,33,.26);}
 .uk-button:hover::after,.uk-button:focus-visible::after{transform:skewX(-22deg) translateX(620%);}
 .uk-button:active{transform:translateY(0) scale(.98);}
 footer a:not(.uk-button){display:inline-block;transition:color .24s ease,transform .24s ease;}
 footer a:not(.uk-button):hover{transform:translateX(3px);}
 #topBtn a{animation:topButtonPulse 2.8s ease-in-out infinite;}

 .uk-card{transition:transform .34s cubic-bezier(.22,1,.36,1),box-shadow .34s ease,background-color .35s ease;}
 .uk-card:hover{transform:translateY(-10px) scale(1.012);box-shadow:0 24px 52px rgba(16,45,28,.22);}
 .uk-card img{transition:transform .55s cubic-bezier(.22,1,.36,1);}
 .uk-card:hover img{transform:scale(1.035);}
 .erg-service-row__image{transition:transform .48s cubic-bezier(.22,1,.36,1);}
 .erg-service-row:hover .erg-service-row__image{transform:translateY(-12px) scale(1.025);}
 .erg-service-row__image img{transition:transform .6s cubic-bezier(.22,1,.36,1),box-shadow .4s ease,border-color .4s ease;}
 .erg-service-row:hover .erg-service-row__image img{transform:scale(1.045) rotate(.45deg);box-shadow:0 28px 62px rgba(12,48,27,.32),0 0 0 7px rgba(91,185,70,.1);}
 [data-theme="dark"] .erg-service-row:hover .erg-service-row__image img{box-shadow:0 26px 58px rgba(0,0,0,.58),0 0 0 6px rgba(130,200,106,.1);}
 .erg-service-row__content h2{transition:color .3s ease,transform .35s cubic-bezier(.22,1,.36,1);}
 .erg-service-row:hover .erg-service-row__content h2{transform:translateX(9px);}
 .erg-service-row--reverse:hover .erg-service-row__content h2{transform:translateX(-9px);}
 html.motion-enabled .erg-service-row__content.reveal-item>*{opacity:0;filter:blur(6px);transform:translateY(32px);transition:opacity .65s ease,transform .78s cubic-bezier(.16,1,.3,1),filter .65s ease;}
 html.motion-enabled .erg-service-row__content.reveal-item.is-visible>*{opacity:1;filter:blur(0);transform:translateY(0);}
 html.motion-enabled .erg-service-row__content.reveal-item.is-visible>p:first-child{transition-delay:220ms;}
 html.motion-enabled .erg-service-row__content.reveal-item.is-visible>h2{transition-delay:330ms;}
 html.motion-enabled .erg-service-row__content.reveal-item.is-visible>.uk-divider-small{transition-delay:440ms;}
 html.motion-enabled .erg-service-row__content.reveal-item.is-visible>p:last-child{transition-delay:540ms;}
 html.motion-enabled .erg-service-row__content .uk-divider-small::after{transform:scaleX(0);transform-origin:left center;transition:transform .85s cubic-bezier(.16,1,.3,1) 500ms;}
 html.motion-enabled .erg-service-row__content.is-visible .uk-divider-small::after{transform:scaleX(1);}
 html.motion-enabled .erg-service-row:hover .erg-service-row__content.reveal-item.is-visible h2{transform:translateX(9px);}
 html.motion-enabled .erg-service-row--reverse:hover .erg-service-row__content.reveal-item.is-visible h2{transform:translateX(-9px);}

 .therapy-entry .therapy-split__cta{overflow:hidden;}
 .therapy-entry .therapy-split__cta::before{content:"";position:absolute;z-index:2;top:-70%;bottom:-70%;left:-45%;width:28%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);transform:skewX(-22deg) translateX(-240%);pointer-events:none;}

 #tm-main>.uk-section-primary{position:relative;overflow:hidden;isolation:isolate;}
 #tm-main>.uk-section-primary::after{content:"";position:absolute;z-index:-1;inset:-120% -30%;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.14) 48%,transparent 58%);transform:translateX(-55%) rotate(4deg);animation:sectionLightSweep 5.8s ease-in-out 1.1s infinite;pointer-events:none;}

 body,.tm-page,.uk-section-default,.uk-section-muted,.uk-section-secondary,.uk-tile,.uk-card,.uk-navbar-container,footer{transition:background-color .42s ease,color .34s ease,border-color .34s ease;}
 @keyframes siteHeaderIn{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}
 @keyframes heroImageSettle{from{opacity:.72;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
 @keyframes heroCopyIn{from{opacity:0;filter:blur(7px);transform:translateY(52px) scale(.94)}to{opacity:1;filter:blur(0);transform:none}}
 @keyframes heroTitleFocus{from{opacity:0;filter:blur(10px);letter-spacing:.09em;transform:scale(.88)}to{opacity:1;filter:blur(0);letter-spacing:normal;transform:scale(1)}}
 @keyframes heroBrandIn{from{opacity:0;filter:blur(7px);transform:translate(-50%,-43%) scale(.86)}to{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}}
 @keyframes welcomeNavIn{from{opacity:0;filter:blur(6px);transform:translateY(-38px) scale(.97)}to{opacity:1;filter:blur(0);transform:none}}
 @keyframes pageTitleIn{from{opacity:0;filter:blur(8px);transform:translateX(-54px)}to{opacity:1;filter:blur(0);transform:none}}
 @keyframes sectionLightSweep{0%,52%{transform:translateX(-60%) rotate(4deg)}76%,100%{transform:translateX(60%) rotate(4deg)}}
 @keyframes welcomeButtonShine{from{transform:skewX(-22deg) translateX(-240%)}to{transform:skewX(-22deg) translateX(720%)}}
 @keyframes topButtonPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
}

@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
 .therapy-entry .therapy-split__cta:hover::before{animation:welcomeButtonShine .85s cubic-bezier(.16,1,.3,1) both;}
}

@media(max-width:767px) and (prefers-reduced-motion:no-preference){
 html.motion-enabled .reveal-item.reveal-from-left,html.motion-enabled .reveal-item.reveal-from-right{transform:translate3d(0,54px,0) scale(.965);}
 html.motion-enabled .reveal-item.is-visible{transform:translate3d(0,0,0);}
 .erg-service-row:hover .erg-service-row__content h2,.erg-service-row--reverse:hover .erg-service-row__content h2{transform:none;}
 html.motion-enabled .erg-service-row:hover .erg-service-row__content.reveal-item.is-visible h2,html.motion-enabled .erg-service-row--reverse:hover .erg-service-row__content.reveal-item.is-visible h2{transform:none;}
}
