/*
Theme Name: Praxis Busch Child
Description: Lokale Lenis-Integration für Praxis Busch.
Template: praxis-busch
Version: 1.4.0
Author: Praxis Busch
Text Domain: praxis-busch-child
*/

.footer-refined .footer-bottom{font-size:1rem}
.site-main img,main img,.hp-page img{background:#f1f4f8}
.hp-page .hp-service img{aspect-ratio:1}
.hp-page .hp-portrait img{position:absolute;max-width:1264px;left:50%;transform:translateX(-50%)}

/* Native details remain usable without JavaScript; the pseudo-element animates
   height in browsers that support the new details-content transition API. */
#main details{border-color:#DEE5EC}
#main details>summary{list-style:none;position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;padding-right:2.25rem;font-family:Jost,sans-serif;font-size:clamp(1.125rem,1rem + .2vw,1.25rem);font-weight:400;line-height:1.5}
#main details>summary::-webkit-details-marker{display:none}
#main details>summary::marker{content:""}
#main details>summary::after{content:"+";position:absolute;right:.25rem;top:50%;transform:translateY(-50%);color:#1D5FA8;font:400 1.5rem/1 Jost,sans-serif}
#main details[open]>summary::after{content:"−"}
@supports (interpolate-size:allow-keywords) and selector(details::details-content){
  details{interpolate-size:allow-keywords}
  details::details-content{height:0;opacity:0;overflow:clip;transition:height 260ms ease,opacity 200ms ease,content-visibility 260ms allow-discrete}
  details[open]::details-content{height:auto;opacity:1}
}
@media(prefers-reduced-motion:reduce){details::details-content{transition:none!important}}

/* Simple grid numbers replace the decorative dots in the home process list. */
.hp-page .hp-steps{counter-reset:busch-step}
.hp-page .hp-steps li{counter-increment:busch-step;padding-top:3.2rem}
.hp-page .hp-steps li::before{content:counter(busch-step);top:.8rem;left:0;width:auto;height:auto;border-radius:0;background:none;color:#1D5FA8;font:400 1.5rem/1.2 Jost,sans-serif}
@media(max-width:899px){.hp-page .hp-steps li{padding:3.2rem 0 2rem 24px}.hp-page .hp-steps li::before{top:.8rem;left:24px}}

/* Mark today's schedule row in both the contact card and footer. */
.hours>div.is-today{font-weight:700}
.hours>div.is-today dt,.hours>div.is-today dd{font-weight:700}
.busch-today-marker{display:inline-block;margin-left:.45rem;font:600 .875rem/1.3 Jost,sans-serif;white-space:nowrap}
.site-footer .busch-today-marker{color:#fff}

/* Fallback animation for browsers without the details-content transition API. */
details[data-busch-accordion-fallback] .busch-details-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows 260ms ease,opacity 200ms ease}
details[data-busch-accordion-fallback][open] .busch-details-panel{grid-template-rows:1fr;opacity:1}
details[data-busch-accordion-fallback].is-closing[open] .busch-details-panel{grid-template-rows:0fr;opacity:0}
details[data-busch-accordion-fallback] .busch-details-inner{min-height:0;overflow:hidden}
@media(prefers-reduced-motion:reduce){details[data-busch-accordion-fallback] .busch-details-panel{transition:none}}


/* Homepage service hover expand: full-width rows with an image reveal on fine pointers. */
.hp-page .hp-service-copy{min-width:0}
.hp-page .hp-service-copy h3{margin:0}
.hp-page .hp-service-copy p{font-size:1rem;line-height:1.4}
.hp-page .hp-services{display:grid;grid-template-columns:1fr;gap:0}
.hp-page .hp-service{border-top:1px solid #DEE5EC}
.hp-page .hp-service:last-child{border-bottom:1px solid #DEE5EC}
.hp-page .hp-service a{display:grid;grid-template-columns:120px minmax(0,1fr) 24px;align-items:center;gap:24px;min-height:136px;width:100%;padding:16px 0;border-radius:16px;background:transparent}
.hp-page .hp-service a:hover{background:#F1F4F8}
.hp-page .hp-service img{width:120px;height:104px;aspect-ratio:auto;object-fit:cover;border-radius:16px;transition:opacity 240ms ease,transform 280ms cubic-bezier(.22,1,.36,1)}
.hp-page .hp-service .hp-arrow{justify-self:end}
@media (hover:hover) and (pointer:fine) and (min-width:768px){
  .hp-page .hp-band{padding-block:48px}
  .hp-page .hp-heading{margin-bottom:24px}
  .hp-page .hp-services{display:flex;flex-direction:column;gap:0}
  .hp-page .hp-service{height:72px;overflow:hidden;border-top:0;border-bottom:1px solid #DEE5EC;transition:height 280ms cubic-bezier(.22,1,.36,1)}
  .hp-page .hp-service:first-child{border-top:1px solid #DEE5EC}
  .hp-page .hp-service.is-active,
  .hp-page .hp-services:not(.has-hover-expand)>.hp-service:first-child,
  .hp-page .hp-services:not(.has-keyboard-focus)>.hp-service:hover,
  .hp-page .hp-service:focus-within{height:280px}
  .hp-page .hp-service a,
  .hp-page .hp-service a:hover{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:24px;align-items:center;height:100%;min-height:0;padding:24px;border-radius:16px;background:transparent;overflow:hidden}
  .hp-page .hp-service img{position:absolute;z-index:0;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:0;transform:scale(1.03);border-radius:16px}
  .hp-page .hp-service.is-active img,
  .hp-page .hp-services:not(.has-keyboard-focus)>.hp-service:hover img,
  .hp-page .hp-service:focus-within img,
  .hp-page .hp-services:not(.has-hover-expand)>.hp-service:first-child img{opacity:1;transform:scale(1)}
  .hp-page .hp-service a::before{content:"";position:absolute;z-index:1;inset:0;border-radius:16px;background:linear-gradient(90deg,rgba(9,29,66,.88),rgba(9,29,66,.76) 58%,rgba(9,29,66,.72));opacity:0;transition:opacity 240ms ease}
  .hp-page .hp-service.is-active a::before,
  .hp-page .hp-services:not(.has-keyboard-focus)>.hp-service:hover a::before,
  .hp-page .hp-service:focus-within a::before,
  .hp-page .hp-services:not(.has-hover-expand)>.hp-service:first-child a::before{opacity:1}
  .hp-page .hp-service-copy,.hp-page .hp-service .hp-arrow{position:relative;z-index:2}
  .hp-page .hp-service-copy{display:grid;grid-template-columns:minmax(12rem,.8fr) minmax(14rem,1fr);align-items:center;gap:24px}
  .hp-page .hp-service h3,.hp-page .hp-service p,.hp-page .hp-service .hp-arrow{color:#091d42}
  .hp-page .hp-service.is-active h3,.hp-page .hp-service.is-active p,.hp-page .hp-service.is-active .hp-arrow,
  .hp-page .hp-services:not(.has-keyboard-focus)>.hp-service:hover h3,.hp-page .hp-services:not(.has-keyboard-focus)>.hp-service:hover p,.hp-page .hp-services:not(.has-keyboard-focus)>.hp-service:hover .hp-arrow,
  .hp-page .hp-service:focus-within h3,.hp-page .hp-service:focus-within p,.hp-page .hp-service:focus-within .hp-arrow,
  .hp-page .hp-services:not(.has-hover-expand)>.hp-service:first-child h3,.hp-page .hp-services:not(.has-hover-expand)>.hp-service:first-child p,.hp-page .hp-services:not(.has-hover-expand)>.hp-service:first-child .hp-arrow{color:#fff}
  .hp-page .hp-service h3{font-size:clamp(1.5rem,2.2vw,2rem);margin:0}
  .hp-page .hp-service p{font-size:1.125rem}
  .hp-page .hp-service .hp-arrow{font-size:2rem;transition:transform 180ms ease}
  .hp-page .hp-services:not(.has-keyboard-focus)>.hp-service:hover .hp-arrow,.hp-page .hp-service:focus-within .hp-arrow{transform:translateX(4px)}
}
@media (max-width:767px){
  .hp-page .hp-service a{grid-template-columns:100px minmax(0,1fr) 20px;gap:20px;min-height:148px;padding:24px 0}
  .hp-page .hp-service img{width:100px;height:100px;aspect-ratio:1}
  .hp-page .hp-service h3{font-size:1.5rem}
  .hp-page .hp-service p{font-size:1rem}
}
@media (max-width:400px){
  .hp-page .hp-service a{grid-template-columns:76px minmax(0,1fr) 16px;gap:12px;min-height:124px}
  .hp-page .hp-service img{width:76px;height:76px}
  .hp-page .hp-service h3{font-size:1.25rem}
}
@media (max-width:899px){
  .hp-page .hp-hero-grid>div{background:#fff;border-radius:20px;padding:24px}
  .hp-page .hp-portrait img{object-position:75% 80%}
}
@media (prefers-reduced-motion:reduce){
  .hp-page .hp-service,.hp-page .hp-service img,.hp-page .hp-service a::before,.hp-page .hp-service .hp-arrow{transition:none!important}
  .hp-page .hp-service:hover .hp-arrow,.hp-page .hp-service:focus-within .hp-arrow{transform:none}
}

/* Desktop navigation: one shared surface moves and resizes behind the open list. */
@media (min-width:1101px) and (hover:hover) and (pointer:fine){
  #primary-navigation.busch-dropdown-open{position:relative;z-index:60}
  #primary-navigation.busch-dropdown-open::before{content:"";position:absolute;z-index:0;left:var(--dropdown-x,0px);top:var(--dropdown-y,100%);width:var(--dropdown-width,0px);height:var(--dropdown-height,0px);pointer-events:none;opacity:0;background:#fff;border:1px solid #DEE5EC;border-radius:16px;transform:translateY(-4px) scale(.985);transform-origin:top left;transition:left 280ms cubic-bezier(.22,1,.36,1),top 280ms cubic-bezier(.22,1,.36,1),width 280ms cubic-bezier(.22,1,.36,1),height 280ms cubic-bezier(.22,1,.36,1),opacity 140ms ease,transform 280ms cubic-bezier(.22,1,.36,1)}
  #primary-navigation.busch-dropdown-open.busch-dropdown-visible::before{opacity:1;transform:translateY(0) scale(1)}
  #primary-navigation .nav-list{position:relative;z-index:1}
  #primary-navigation .nav-item.has-submenu.is-dropdown-active{z-index:2}
  #primary-navigation .submenu-toggle{border-radius:999px;transition:background-color 160ms ease,color 160ms ease}
  #primary-navigation .submenu-toggle:hover{background:#F1F4F8;text-decoration:none}
  #primary-navigation .submenu-toggle[aria-expanded="true"]{background:#F1F4F8;text-decoration:none}
  #primary-navigation .nav-list .sub-menu,
  #primary-navigation .submenu-toggle[aria-expanded="true"]+.sub-menu{display:none;position:absolute;z-index:3;top:calc(100% + 8px);left:0;width:300px;min-width:0;max-width:min(448px,calc(100vw - 32px));max-height:calc(100vh - 150px);overflow:auto;overscroll-behavior:contain;list-style:none;margin:0;padding:14px;background:transparent;border:0;border-radius:16px}
  #primary-navigation .submenu-toggle[aria-expanded="true"]+.sub-menu{display:block}
  #primary-navigation .nav-list .sub-menu.is-services-menu{width:min(448px,calc(100vw - 32px));padding:12px}
  #primary-navigation .nav-list .sub-menu li,
  #primary-navigation .nav-list .sub-menu li+li{margin:0;padding:0}
  #primary-navigation .nav-list .sub-menu a{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 12px;border-radius:10px;color:var(--navy);text-decoration:none;white-space:normal;transition:background-color 140ms ease}
  #primary-navigation .nav-list .sub-menu a:hover,
  #primary-navigation .nav-list .sub-menu a:focus-visible{background:#F1F4F8;text-decoration:none}
  #primary-navigation .nav-list .sub-menu .submenu-all-link{margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid #DEE5EC}
  #primary-navigation .nav-list .sub-menu .submenu-all-link a{min-height:44px;color:var(--accent);font-weight:600}
  #primary-navigation .submenu-service-image{display:block;flex:0 0 48px;width:48px;height:48px;object-fit:cover;border-radius:10px;background:#F1F4F8}
  #primary-navigation .submenu-service-copy{display:grid;gap:1px;min-width:0}
  #primary-navigation .submenu-service-title{font:500 1rem/1.35 Jost,sans-serif}
  #primary-navigation .submenu-service-description{margin:0;color:var(--muted);font:400 1rem/1.35 'Source Sans 3',sans-serif}
}
@media (prefers-reduced-motion:reduce){
  #primary-navigation.busch-dropdown-open::before,
  #primary-navigation .submenu-toggle,
  #primary-navigation .nav-list .sub-menu a{transition:none!important;transform:none!important}
}
