@charset "UTF-8";
/* ============================================================================
   PRAXIS THUNERT — Warm Modern
   Design system + layout + components
   Brand colours (lime / amber) carried over 1:1 from the live site;
   surfaces rebuilt on a warm neutral field (cream / oat / sand / walnut).
   ========================================================================== */

/* ---------------------------------------------------------------------------
   1. FONTS — self-hosted (no third-party request, DSGVO-konform)
   ------------------------------------------------------------------------ */
@font-face{
  font-family:'Fraunces';
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
  src:url('../fonts/fraunces-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Fraunces';
  font-style:italic;
  font-weight:300 600;
  font-display:swap;
  src:url('../fonts/fraunces-italic.woff2') format('woff2');
}
@font-face{
  font-family:'Figtree';
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
  src:url('../fonts/figtree-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Figtree';
  font-style:italic;
  font-weight:300 900;
  font-display:swap;
  src:url('../fonts/figtree-italic.woff2') format('woff2');
}

/* ---------------------------------------------------------------------------
   2. TOKENS
   ------------------------------------------------------------------------ */
:root{
  /* — Brand: unchanged hex values from the live site — */
  --pt-lime:        #A8E800;
  --pt-lime-600:    #82B800;
  --pt-lime-700:    #5C8500;
  --pt-lime-ink:    #4A6B00;   /* AA text on warm light (5.8:1) */
  --pt-lime-wash:   #EFF7D9;
  --pt-amber:       #E37D00;
  --pt-amber-ink:   #8A4B00;   /* AA text on warm light (6.4:1) */
  --pt-amber-wash:  #FBEEDC;

  /* — Warm neutral field — */
  --pt-cream:       #FBF8F2;
  --pt-oat:         #F3EDE1;
  --pt-sand:        #E8DFCC;
  --pt-clay:        #D8CBB2;
  --pt-paper:       #FFFFFF;
  --pt-bark:        #1E1B17;
  --pt-bark-soft:   #2B2721;

  /* — Ink — */
  --pt-ink:         #211E19;
  --pt-ink-muted:   #5C554A;
  --pt-ink-faint:   #6B6357;
  --pt-on-bark:     #F6F1E7;
  --pt-on-bark-mut: #B9B1A2;

  /* — Lines — */
  --pt-line:        #E3DAC6;
  --pt-line-soft:   #EFE9DC;
  --pt-line-strong: #CFC2A8;

  /* — Semantic — */
  --pt-success:     #3F6B2A;
  --pt-success-bg:  #EDF4E4;
  --pt-warning:     #9A5A0B;
  --pt-warning-bg:  #FBEEDC;
  --pt-error:       #A02820;
  --pt-error-bg:    #FBEAE8;
  --pt-focus:       #3E5C00;

  /* — Type — */
  --pt-sans: 'Figtree', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --pt-serif:'Fraunces', ui-serif, Georgia, 'Iowan Old Style', 'Times New Roman', serif;

  --pt-display: clamp(2.7rem, 1.8rem + 3.4vw, 4.4rem);
  --pt-h1:      clamp(2.35rem, 1.5rem + 3.2vw, 3.85rem);
  --pt-h2:      clamp(1.95rem, 1.35rem + 2.1vw, 2.95rem);
  --pt-h3:      clamp(1.35rem, 1.1rem + 0.9vw, 1.72rem);
  --pt-h4:      clamp(1.08rem, 1rem + 0.35vw, 1.22rem);
  --pt-lead:    clamp(1.08rem, 1rem + 0.5vw, 1.28rem);
  --pt-body:    1.0625rem;
  --pt-small:   0.9375rem;
  --pt-micro:   0.8125rem;

  /* — Rhythm — */
  --pt-gutter:  clamp(20px, 5vw, 56px);
  --pt-max:     1240px;
  --pt-measure: 66ch;
  --pt-section: clamp(72px, 9vw, 132px);
  --pt-block:   clamp(36px, 4.5vw, 64px);

  /* — Material — */
  --pt-r-xs: 4px;
  --pt-r-sm: 8px;
  --pt-r-md: 14px;
  --pt-r-lg: 24px;
  --pt-r-xl: 34px;
  --pt-r-pill: 999px;

  --pt-sh-1: 0 1px 2px rgba(70,56,32,.05), 0 3px 10px -2px rgba(70,56,32,.06);
  --pt-sh-2: 0 2px 4px rgba(70,56,32,.05), 0 14px 34px -12px rgba(70,56,32,.18);
  --pt-sh-3: 0 4px 8px rgba(70,56,32,.06), 0 28px 64px -20px rgba(70,56,32,.28);

  /* — Motion — */
  --pt-ease:     cubic-bezier(.2,.7,.3,1);
  --pt-ease-out: cubic-bezier(.16,1,.3,1);
  --pt-fast: 170ms;
  --pt-mid:  320ms;
  --pt-slow: 620ms;

  --pt-header-h: 76px;
  --pt-nav-h:    76px;
}

/* ---------------------------------------------------------------------------
   3. RESET & BASE
   ------------------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--pt-header-h) + 24px)}
body{
  margin:0;
  background:var(--pt-cream);
  color:var(--pt-ink);
  font-family:var(--pt-sans);
  font-size:var(--pt-body);
  font-weight:400;
  line-height:1.65;
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{max-width:100%;height:auto;display:block}
img{border-radius:inherit}
h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--pt-serif);font-weight:400;line-height:1.1;letter-spacing:-.015em;color:var(--pt-ink);text-wrap:balance}
h1{font-size:var(--pt-h1)}
h2{font-size:var(--pt-h2)}
h3{font-size:var(--pt-h3);line-height:1.2}
h4{font-size:var(--pt-h4);font-family:var(--pt-sans);font-weight:600;letter-spacing:-.005em;line-height:1.35}
p{margin:0 0 1.1em;text-wrap:pretty}
p:last-child{margin-bottom:0}
a{color:var(--pt-lime-ink);text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb, var(--pt-lime-ink) 38%, transparent);transition:color var(--pt-fast) var(--pt-ease), text-decoration-color var(--pt-fast) var(--pt-ease)}
a:hover{color:var(--pt-lime-700);text-decoration-color:currentColor}
strong,b{font-weight:600;color:var(--pt-ink)}
ul,ol{margin:0 0 1.1em;padding-left:1.25em}
li{margin-bottom:.4em}
hr{border:0;border-top:1px solid var(--pt-line);margin:var(--pt-block) 0}
blockquote{margin:0;padding:0}
figure{margin:0}
table{border-collapse:collapse;width:100%}
::selection{background:var(--pt-lime);color:var(--pt-ink)}

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--pt-focus);
  outline-offset:3px;
  border-radius:var(--pt-r-xs);
}

.pt-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{
  position:fixed;top:10px;left:10px;z-index:9999;
  transform:translateY(-160%);
  background:var(--pt-ink);color:var(--pt-on-bark);
  padding:12px 20px;border-radius:var(--pt-r-pill);
  font-size:var(--pt-small);font-weight:600;text-decoration:none;
  transition:transform var(--pt-mid) var(--pt-ease-out);
}
.skip-link:focus{transform:translateY(0)}

/* ---------------------------------------------------------------------------
   4. LAYOUT PRIMITIVES
   ------------------------------------------------------------------------ */
.pt-wrap{width:100%;max-width:var(--pt-max);margin-inline:auto;padding-inline:var(--pt-gutter)}
.pt-wrap--narrow{max-width:820px}
.pt-section{padding-block:var(--pt-section)}
.pt-section--tight{padding-block:clamp(48px,6vw,84px)}
.pt-section--oat{background:var(--pt-oat)}
.pt-section--sand{background:var(--pt-sand)}
.pt-section--bark{background:var(--pt-bark);color:var(--pt-on-bark)}
.pt-section--bark h1,.pt-section--bark h2,.pt-section--bark h3,.pt-section--bark h4{color:var(--pt-on-bark)}
.pt-measure{max-width:var(--pt-measure)}
.pt-stack > * + *{margin-top:var(--pt-block)}

/* Section opener: eyebrow + rule + heading. Used everywhere instead of a card. */
.pt-opener{display:grid;gap:14px;max-width:56ch}
.pt-opener--wide{max-width:none}
.pt-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:var(--pt-micro);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--pt-lime-ink);margin:0;
}
.pt-eyebrow::before{
  content:"";width:26px;height:2px;background:var(--pt-lime);border-radius:2px;flex:none;
}
.pt-section--bark .pt-eyebrow{color:var(--pt-lime)}
.pt-section--bark .pt-eyebrow::before{background:var(--pt-lime)}
.pt-opener p{color:var(--pt-ink-muted);font-size:var(--pt-lead);line-height:1.55;max-width:52ch}
.pt-section--bark .pt-opener p{color:var(--pt-on-bark-mut)}

/* ---------------------------------------------------------------------------
   5. BUTTONS & CONTROLS
   ------------------------------------------------------------------------ */
.pt-btn{
  --_bg:var(--pt-lime); --_fg:var(--pt-ink); --_bd:transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:50px;padding:13px 26px;
  font-family:var(--pt-sans);font-size:var(--pt-small);font-weight:600;letter-spacing:.005em;
  line-height:1.2;text-decoration:none;white-space:nowrap;
  color:var(--_fg);background:var(--_bg);
  border:1.5px solid var(--_bd);border-radius:var(--pt-r-pill);
  cursor:pointer;
  transition:transform var(--pt-fast) var(--pt-ease),
             box-shadow var(--pt-mid) var(--pt-ease),
             background-color var(--pt-fast) var(--pt-ease),
             color var(--pt-fast) var(--pt-ease),
             border-color var(--pt-fast) var(--pt-ease);
}
.pt-btn svg{flex:none}
.pt-btn:hover{transform:translateY(-2px)}
.pt-btn:active{transform:translateY(0) scale(.985);transition-duration:80ms}
.pt-btn[disabled],.pt-btn[aria-disabled="true"]{opacity:.5;pointer-events:none}

.pt-btn--primary{--_bg:var(--pt-lime);--_fg:var(--pt-ink);box-shadow:0 2px 0 0 var(--pt-lime-600)}
.pt-btn--primary:hover{--_bg:#B4F008;box-shadow:0 8px 22px -8px rgba(92,133,0,.7), 0 2px 0 0 var(--pt-lime-600)}

.pt-btn--ink{--_bg:var(--pt-ink);--_fg:var(--pt-on-bark)}
.pt-btn--ink:hover{--_bg:#332E27;box-shadow:var(--pt-sh-2)}

.pt-btn--ghost{--_bg:transparent;--_fg:var(--pt-ink);--_bd:var(--pt-line-strong)}
.pt-btn--ghost:hover{--_bd:var(--pt-ink);--_bg:rgba(33,30,25,.04)}

.pt-btn--onbark{--_bg:transparent;--_fg:var(--pt-on-bark);--_bd:rgba(246,241,231,.32)}
.pt-btn--onbark:hover{--_bd:var(--pt-lime);--_fg:var(--pt-lime);--_bg:rgba(168,232,0,.08)}

.pt-btn--sm{min-height:42px;padding:10px 20px;font-size:var(--pt-micro)}

/* Text link with arrow */
.pt-link{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:600;font-size:var(--pt-small);text-decoration:none;
  color:var(--pt-lime-ink);
}
.pt-link .pt-link__arrow{transition:transform var(--pt-mid) var(--pt-ease-out)}
.pt-link:hover .pt-link__arrow{transform:translateX(5px)}

/* ---------------------------------------------------------------------------
   6. ANNOUNCEMENT BAR
   ------------------------------------------------------------------------ */
.pt-announce{
  position:relative;z-index:60;
  background:var(--pt-ink);color:var(--pt-on-bark);
  font-size:var(--pt-micro);
}
.pt-announce--info{background:var(--pt-ink)}
.pt-announce--warning{background:var(--pt-warning);color:#fff}
.pt-announce--urlaub{background:var(--pt-amber-ink);color:#fff}
.pt-announce__inner{
  display:flex;align-items:center;justify-content:center;gap:12px;
  min-height:44px;padding:9px var(--pt-gutter);
  text-align:center;line-height:1.4;
}
.pt-announce__inner svg{flex:none;opacity:.85}
.pt-announce b{color:inherit;font-weight:700}
.pt-announce a{color:inherit;text-decoration-color:currentColor}
.pt-announce__close{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  width:36px;height:36px;display:grid;place-items:center;
  background:none;border:0;color:inherit;opacity:.6;cursor:pointer;border-radius:var(--pt-r-pill);
}
.pt-announce__close:hover{opacity:1;background:rgba(255,255,255,.12)}

/* ---------------------------------------------------------------------------
   7. HEADER / NAVIGATION
   Human-scaled: a floating warm "rail" rather than a full-bleed chrome bar.
   ------------------------------------------------------------------------ */
.pt-header{position:sticky;top:0;z-index:80}
.pt-nav{
  padding:14px var(--pt-gutter);
  transition:padding var(--pt-mid) var(--pt-ease);
}
.pt-nav__rail{
  position:relative;
  max-width:var(--pt-max);margin-inline:auto;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(12px,2vw,28px);
  padding:9px 9px 9px 20px;
  background:color-mix(in srgb, var(--pt-cream) 86%, transparent);
  -webkit-backdrop-filter:saturate(1.6) blur(16px);
  backdrop-filter:saturate(1.6) blur(16px);
  border:1px solid var(--pt-line);
  border-radius:var(--pt-r-pill);
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, var(--pt-sh-1);
  transition:box-shadow var(--pt-mid) var(--pt-ease), background-color var(--pt-mid) var(--pt-ease), border-color var(--pt-mid) var(--pt-ease);
}
.is-scrolled .pt-nav{padding-top:8px;padding-bottom:8px}
.is-scrolled .pt-nav__rail{
  background:color-mix(in srgb, var(--pt-cream) 94%, transparent);
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, var(--pt-sh-2);
  border-color:var(--pt-line-strong);
}

.pt-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;padding:4px 0}
.pt-brand:hover{color:inherit}
.pt-brand__mark{
  width:38px;height:38px;flex:none;border-radius:12px;
  display:grid;place-items:center;
  background:linear-gradient(150deg,var(--pt-lime) 0%,var(--pt-lime-600) 100%);
  color:var(--pt-ink);
  font-family:var(--pt-serif);font-weight:600;font-size:1.05rem;line-height:1;
  box-shadow:0 2px 8px -2px rgba(92,133,0,.55);
}
.pt-brand__mark img{width:100%;height:100%;object-fit:contain;border-radius:inherit}
.pt-brand__text{display:grid;line-height:1.15}
.pt-brand__name{font-family:var(--pt-serif);font-size:1.06rem;font-weight:500;letter-spacing:-.01em;color:var(--pt-ink)}
.pt-brand__sub{font-size:.6875rem;letter-spacing:.075em;text-transform:uppercase;color:var(--pt-ink-faint);font-weight:500}

.pt-nav__links{display:flex;align-items:center;justify-content:center;gap:2px;flex-wrap:nowrap}
.pt-nav__links a{
  position:relative;
  padding:9px 13px;border-radius:var(--pt-r-pill);
  font-size:var(--pt-small);font-weight:500;color:var(--pt-ink-muted);text-decoration:none;
  white-space:nowrap;
  transition:color var(--pt-fast) var(--pt-ease), background-color var(--pt-fast) var(--pt-ease);
}
.pt-nav__links a:hover{color:var(--pt-ink);background:rgba(33,30,25,.05)}
.pt-nav__links a.is-active,
.pt-nav__links a.current-menu-item{color:var(--pt-ink);font-weight:600}
.pt-nav__links a.is-active::after,
.pt-nav__links a.current-menu-item::after{
  content:"";position:absolute;left:13px;right:13px;bottom:3px;height:2px;
  background:var(--pt-lime);border-radius:2px;
}
.pt-nav__end{display:flex;align-items:center;gap:8px}

.pt-nav__burger{
  display:none;width:46px;height:46px;flex:none;
  background:var(--pt-paper);border:1px solid var(--pt-line);border-radius:var(--pt-r-pill);
  cursor:pointer;padding:0;place-items:center;
  transition:border-color var(--pt-fast) var(--pt-ease), background-color var(--pt-fast) var(--pt-ease);
}
.pt-nav__burger:hover{border-color:var(--pt-line-strong)}
.pt-nav__burger span{display:block;width:19px;height:1.8px;background:var(--pt-ink);border-radius:2px;transition:transform var(--pt-mid) var(--pt-ease-out), opacity var(--pt-fast) linear}
.pt-nav__burger span + span{margin-top:5px}
.pt-nav__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.8px) rotate(45deg)}
.pt-nav__burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.pt-nav__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.8px) rotate(-45deg)}

/* Mobile drawer */
.pt-drawer{
  position:fixed;inset:0;z-index:90;
  display:grid;grid-template-rows:auto 1fr;
  background:var(--pt-cream);
  opacity:0;visibility:hidden;
  transition:opacity var(--pt-mid) var(--pt-ease), visibility var(--pt-mid);
}
.pt-drawer.is-open{opacity:1;visibility:visible}
.pt-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px var(--pt-gutter);border-bottom:1px solid var(--pt-line)}
.pt-drawer__close{
  width:46px;height:46px;flex:none;display:grid;place-items:center;
  background:var(--pt-paper);border:1px solid var(--pt-line);border-radius:var(--pt-r-pill);
  color:var(--pt-ink);cursor:pointer;
  transition:border-color var(--pt-fast) var(--pt-ease), background-color var(--pt-fast) var(--pt-ease);
}
.pt-drawer__close:hover{border-color:var(--pt-line-strong);background:var(--pt-oat)}
.pt-drawer__body{padding:clamp(20px,5vw,40px) var(--pt-gutter) 40px;overflow-y:auto}
.pt-drawer__links{display:grid}
.pt-drawer__links a{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 4px;border-bottom:1px solid var(--pt-line-soft);
  font-family:var(--pt-serif);font-size:1.5rem;font-weight:400;color:var(--pt-ink);text-decoration:none;
  opacity:0;transform:translateY(10px);
}
.pt-drawer.is-open .pt-drawer__links a{animation:pt-drawer-in .45s var(--pt-ease-out) forwards}
.pt-drawer__links a::after{content:"→";font-family:var(--pt-sans);font-size:1rem;color:var(--pt-lime-ink);transform:translateX(-4px);opacity:0;transition:all var(--pt-mid) var(--pt-ease-out)}
.pt-drawer__links a:hover::after,.pt-drawer__links a:focus-visible::after{transform:translateX(0);opacity:1}
@keyframes pt-drawer-in{to{opacity:1;transform:none}}
.pt-drawer__foot{margin-top:32px;display:grid;gap:12px}
.pt-drawer__contact{display:grid;gap:10px;padding:22px;background:var(--pt-oat);border-radius:var(--pt-r-lg);font-size:var(--pt-small)}
.pt-drawer__contact a{display:flex;align-items:center;gap:10px;color:var(--pt-ink);text-decoration:none;font-weight:500}

@media (max-width:480px){
  .pt-brand__sub{display:none}
  .pt-brand__name{font-size:1rem}
}
@media (max-width:1080px){
  .pt-nav__links{display:none}
  .pt-nav__burger{display:grid}
  .pt-nav__rail{grid-template-columns:1fr auto}
  .pt-nav__cta{display:none}
}
@media (min-width:1081px){
  .pt-drawer{display:none}
}

/* ---------------------------------------------------------------------------
   8. HERO — full-bleed photograph with a warm scrim
   The image runs edge to edge and continues up behind the navigation rail; a
   warm gradient carries it into the cream field so the copy stays readable
   without a grey scrim sitting on top of the photo.
   ------------------------------------------------------------------------ */
.pt-hero{
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:stretch;
  overflow:clip;
  margin-top:calc(var(--pt-nav-h) * -1);
  padding-block:calc(var(--pt-nav-h) + clamp(36px,5vw,76px)) clamp(52px,6.5vw,92px);
  min-height:clamp(620px, 92svh, 900px);
  background:var(--pt-cream);
}

.pt-hero__bg{
  position:absolute;inset:0;z-index:-2;
  background:var(--pt-sand);
}
.pt-hero__bg img{
  width:100%;height:100%;
  object-fit:cover;
  /* Vertical anchor sits above centre so faces survive a wide, short crop. */
  object-position:var(--pt-hero-focus, 20%) var(--pt-hero-focus-y, 12%);
}

/* Warm scrim: opaque cream on the reading side, clear glass over the subject. */
.pt-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    /* The stops are anchored to the centre line, not to the viewport width, so
       the opaque reading field always ends just right of the text column —
       on a 1180 px laptop and on a 2560 px display alike. */
    linear-gradient(97deg,
      var(--pt-cream)          0,
      rgba(251,248,242,.985)   calc(50% - 200px),
      rgba(251,248,242,.88)    calc(50% - 40px),
      rgba(251,248,242,.45)    calc(50% + 150px),
      rgba(251,248,242,.07)    calc(50% + 360px),
      rgba(30,27,23,.10)       100%),
    linear-gradient(180deg, rgba(251,248,242,.62) 0%, rgba(251,248,242,0) 24%),
    linear-gradient(0deg,  rgba(251,248,242,.5)  0%, rgba(251,248,242,0) 16%);
}
/* A whisper of the brand colour in the top-right corner, over the photo. */
.pt-hero::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(58% 46% at 96% 2%, rgba(168,232,0,.16) 0%, transparent 64%);
}

/* Copy floats in the middle of the field, the hours shelf sits on the floor. */
.pt-hero > .pt-wrap{position:relative;z-index:1;display:flex;flex-direction:column}
.pt-hero__copy{max-width:44ch;margin-block:auto}
.pt-hero__title{
  font-size:var(--pt-display);font-weight:300;line-height:.98;letter-spacing:-.028em;
  margin:18px 0 0;max-width:14ch;
}
.pt-hero__title em{
  display:block;font-style:italic;font-weight:400;
  color:var(--pt-lime-700);
  letter-spacing:-.03em;
}
.pt-hero__lead{
  margin:26px 0 0;font-size:var(--pt-lead);line-height:1.6;color:var(--pt-ink-muted);
  max-width:40ch;
}
.pt-hero__sig{
  display:flex;align-items:center;gap:14px;margin-top:22px;
  font-size:var(--pt-small);color:var(--pt-ink);
}
.pt-hero__sig::before{content:"";width:34px;height:1px;background:var(--pt-line-strong);flex:none}
.pt-hero__sig strong{font-family:var(--pt-serif);font-weight:500;font-size:1.05rem}
.pt-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}

/* Practice signals under the copy — a rail, not cards */
.pt-hero__signals{
  display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:32px;padding-top:22px;
  border-top:1px solid var(--pt-line);
  font-size:var(--pt-micro);color:var(--pt-ink-muted);font-weight:500;
}
.pt-hero__signals span{display:inline-flex;align-items:center;gap:7px}
.pt-hero__signals svg{color:var(--pt-lime-700)}

/* ── Hours shelf: the hero's floor ─────────────────────────────────────────
   A horizontal rail rather than a floating card, so nothing is ever placed
   over the subject's face however the photograph crops. */
.pt-hours-bar{
  margin-top:clamp(36px,5vw,64px);
  display:flex;flex-wrap:wrap;align-items:center;
  gap:clamp(14px,2vw,22px) clamp(16px,2vw,28px);
  padding:clamp(15px,1.6vw,19px) clamp(18px,2.2vw,26px);
  background:color-mix(in srgb, var(--pt-paper) 88%, transparent);
  -webkit-backdrop-filter:blur(14px) saturate(1.3);
  backdrop-filter:blur(14px) saturate(1.3);
  border:1px solid rgba(255,255,255,.75);
  border-radius:var(--pt-r-lg);
  box-shadow:var(--pt-sh-2);
}
.pt-hours-bar__head{display:flex;align-items:center;gap:12px;flex:none}
.pt-hours-bar__title{
  font-family:var(--pt-serif);font-size:1.12rem;font-weight:500;letter-spacing:-.01em;
  margin:0;white-space:nowrap;
}
.pt-hours-bar__times{
  display:flex;flex-wrap:wrap;align-items:center;
  gap:6px clamp(14px,1.8vw,26px);
  margin:0;flex:0 1 auto;min-width:0;
  font-variant-numeric:tabular-nums;
}
.pt-hours-bar__times > div{
  display:flex;align-items:baseline;gap:9px;
  padding-left:clamp(14px,1.8vw,26px);
  border-left:1px solid var(--pt-line);
}
.pt-hours-bar__times > div:first-child{padding-left:0;border-left:0}
.pt-hours-bar__times dt{font-size:var(--pt-micro);font-weight:600;color:var(--pt-ink-muted);white-space:nowrap}
.pt-hours-bar__times dd{margin:0;font-size:var(--pt-small);font-weight:500;color:var(--pt-ink);white-space:nowrap}
.pt-hours-bar__times dd.is-closed{color:var(--pt-ink-faint);font-weight:400}
.pt-hours-bar__times .is-today dt{color:var(--pt-ink)}
.pt-hours-bar__times .is-today dt::before{
  content:"";display:inline-block;width:5px;height:5px;border-radius:50%;
  background:var(--pt-lime);margin-right:7px;vertical-align:middle;
}
.pt-hours-bar__times .is-today dd{font-weight:700}
.pt-hours-bar__call{flex:none;margin-left:auto}

/* Between tablet and desktop the shelf wraps; without this the call button
   would sit alone on a second line with a hole beside it. */
@media (max-width:1080px){
  .pt-hours-bar__call{margin-left:0}
}
@media (max-width:760px){
  .pt-hours-bar{align-items:stretch;gap:14px}
  .pt-hours-bar__times{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .pt-hours-bar__times > div{
    justify-content:space-between;
    padding:9px 0 0;border-left:0;border-top:1px solid var(--pt-line-soft);
  }
  .pt-hours-bar__times > div:first-child{padding-top:0;border-top:0}
  .pt-hours-bar__call{margin-left:0;width:100%}
}

/* Hours card — still used on the contact and 404 pages */
.pt-hours-card{
  position:relative;z-index:2;
  width:min(100%,352px);
  padding:24px 26px;
  background:var(--pt-paper);
  border:1px solid var(--pt-line);
  border-radius:var(--pt-r-lg);
  box-shadow:var(--pt-sh-3);
}
.pt-hours-card__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.pt-hours-card__head h2,.pt-hours-card__head h3{font-size:1.18rem;font-weight:500}
.pt-status{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 10px;border-radius:var(--pt-r-pill);
}
.pt-status--open{background:var(--pt-success-bg);color:var(--pt-success)}
.pt-status--closed{background:var(--pt-oat);color:var(--pt-ink-faint)}
.pt-status__dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.pt-status--open .pt-status__dot{animation:pt-pulse 2.4s var(--pt-ease) infinite}
@keyframes pt-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.82)}}

.pt-hours{display:grid;gap:0;font-size:var(--pt-small);font-variant-numeric:tabular-nums}
.pt-hours__row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0;border-bottom:1px solid var(--pt-line-soft)}
.pt-hours__row:last-child{border-bottom:0}
.pt-hours__row.is-today{font-weight:600}
.pt-hours__row.is-today .pt-hours__day::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--pt-lime);margin-right:8px;vertical-align:middle}
.pt-hours__day{color:var(--pt-ink-muted)}
.pt-hours__row.is-today .pt-hours__day{color:var(--pt-ink)}
.pt-hours__time{color:var(--pt-ink);white-space:nowrap}
.pt-hours__time--closed{color:var(--pt-ink-faint);font-weight:400}
.pt-hours-note{
  margin-top:14px;padding:11px 13px;border-radius:var(--pt-r-sm);
  background:var(--pt-amber-wash);color:var(--pt-amber-ink);
  font-size:var(--pt-micro);line-height:1.45;
  display:flex;gap:9px;
}
.pt-hours-note svg{flex:none;margin-top:1px}
.pt-hours-card__contact{display:grid;gap:2px;margin-top:16px;padding-top:16px;border-top:1px solid var(--pt-line)}
.pt-hours-card__contact a{
  display:flex;align-items:center;gap:10px;padding:7px 0;
  font-size:var(--pt-small);font-weight:500;color:var(--pt-ink);text-decoration:none;
}
.pt-hours-card__contact a svg{color:var(--pt-lime-700);flex:none}
.pt-hours-card__contact a:hover{color:var(--pt-lime-ink)}

/* Tablet and phone: a 16:9 photograph stretched over a tall, narrow hero would
   zoom to a nose. So the image becomes a fixed band across the top and the copy
   sits on cream below it — a cleaner layout, not a squeezed desktop one. */
@media (max-width:960px){
  .pt-hero{
    --pt-hero-band:clamp(200px, 48vw, 330px);
    /* The image no longer runs behind the navigation on small screens: her
       face sits in the top fifth of the frame and the rail would cover it. */
    margin-top:0;
    min-height:0;
    align-items:flex-start;
    padding-block:calc(var(--pt-hero-band) - 10px) clamp(44px,7vw,64px);
  }
  .pt-hero__bg,
  .pt-hero::before,
  .pt-hero::after{inset:0 0 auto 0;height:var(--pt-hero-band)}
  .pt-hero__bg img{object-position:var(--pt-hero-focus-mobile, 58%) center}
  .pt-hero::before{
    background:linear-gradient(180deg,
      rgba(251,248,242,.20)   0%,
      rgba(251,248,242,.26)  44%,
      rgba(251,248,242,.86)  84%,
      var(--pt-cream)       100%);
  }
  .pt-hero::after{background:radial-gradient(64% 60% at 92% 4%, rgba(168,232,0,.20) 0%, transparent 72%)}
  .pt-hero__copy{max-width:none;margin-block:0}
}
@media (max-width:560px){
  .pt-hero{--pt-hero-band:clamp(180px, 54vw, 260px)}
}

/* ---------------------------------------------------------------------------
   9. TRUST RAIL — hairline-separated band, no cards
   ------------------------------------------------------------------------ */
.pt-rail{background:var(--pt-bark);color:var(--pt-on-bark)}
.pt-rail__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
.pt-rail__item{
  display:flex;align-items:flex-start;gap:13px;
  padding:26px clamp(16px,2.4vw,32px);
  border-left:1px solid rgba(246,241,231,.13);
}
.pt-rail__item:first-child{border-left:0;padding-left:0}
.pt-rail__item svg{color:var(--pt-lime);flex:none;margin-top:2px}
.pt-rail__item b{display:block;font-size:var(--pt-small);font-weight:600;color:var(--pt-on-bark);margin-bottom:2px}
.pt-rail__item span{display:block;font-size:var(--pt-micro);color:var(--pt-on-bark-mut);line-height:1.45}
@media (max-width:720px){
  .pt-rail__item{border-left:0;border-top:1px solid rgba(246,241,231,.13);padding-inline:0}
  .pt-rail__item:first-child{border-top:0}
}

/* ---------------------------------------------------------------------------
   10. SPLIT — image stack + copy (Die Praxis)
   ------------------------------------------------------------------------ */
.pt-split{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(36px,6vw,88px);align-items:center}
.pt-split--flip{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}
.pt-split--flip .pt-split__media{order:2}
@media (max-width:900px){
  .pt-split,.pt-split--flip{grid-template-columns:1fr;gap:40px}
  .pt-split--flip .pt-split__media{order:0}
}

.pt-imgstack{position:relative;padding:0 0 clamp(30px,3.6vw,52px) clamp(18px,2.6vw,40px)}
.pt-imgstack__main{
  border-radius:var(--pt-r-xl);overflow:hidden;aspect-ratio:4/5;
  max-height:clamp(380px,46vw,600px);
  box-shadow:var(--pt-sh-2);background:var(--pt-sand);
}
.pt-imgstack__main img{width:100%;height:100%;object-fit:cover}
.pt-imgstack__accent{
  position:absolute;left:0;bottom:0;width:clamp(150px,34%,224px);aspect-ratio:1;
  border-radius:var(--pt-r-lg);overflow:hidden;
  border:6px solid var(--pt-cream);
  box-shadow:var(--pt-sh-3);
  background:var(--pt-sand);
}
.pt-section--oat .pt-imgstack__accent{border-color:var(--pt-oat)}
.pt-imgstack__accent img{width:100%;height:100%;object-fit:cover}
.pt-imgstack__tag{
  position:absolute;right:clamp(-8px,-1vw,0px);top:clamp(20px,4vw,44px);
  background:var(--pt-lime);color:var(--pt-ink);
  padding:11px 18px;border-radius:var(--pt-r-pill);
  font-size:var(--pt-micro);font-weight:700;letter-spacing:.03em;
  box-shadow:var(--pt-sh-2);
}

/* Condition list — hairline rows, two columns, no pills */
.pt-terms{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:0 clamp(20px,3vw,40px);margin:26px 0 0;padding:0;list-style:none;
}
.pt-terms li{
  display:flex;align-items:center;gap:11px;margin:0;
  padding:11px 0;border-top:1px solid var(--pt-line);
  font-size:var(--pt-small);color:var(--pt-ink);
}
.pt-terms li svg{color:var(--pt-lime-700);flex:none}

/* Inline notes — left rule, not boxes */
.pt-notes{display:grid;gap:22px;margin-top:30px}
.pt-note{padding-left:20px;border-left:2px solid var(--pt-lime)}
.pt-note h4{margin:0 0 4px;font-size:var(--pt-body)}
.pt-note p{margin:0;font-size:var(--pt-small);color:var(--pt-ink-muted);line-height:1.55;max-width:52ch}
@media (min-width:640px){.pt-notes{grid-template-columns:1fr 1fr}}

/* ---------------------------------------------------------------------------
   11. SERVICE ROWS — numbered editorial rail (replaces card grid)
   ------------------------------------------------------------------------ */
.pt-rows{margin-top:clamp(36px,5vw,60px);border-top:1px solid var(--pt-line)}
.pt-row{
  display:grid;grid-template-columns:auto minmax(0,.9fr) minmax(0,1.25fr);
  gap:clamp(16px,3vw,44px);align-items:start;
  padding:clamp(22px,3vw,34px) clamp(8px,1.6vw,20px);
  border-bottom:1px solid var(--pt-line);
  position:relative;
  transition:background-color var(--pt-mid) var(--pt-ease);
}
.pt-row::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--pt-lime);transform:scaleY(0);transform-origin:top;
  transition:transform var(--pt-mid) var(--pt-ease-out);
}
.pt-row:hover{background:color-mix(in srgb, var(--pt-lime-wash) 55%, transparent)}
.pt-row:hover::before{transform:scaleY(1)}
.pt-row__num{
  font-family:var(--pt-serif);font-size:1rem;font-weight:500;
  font-variant-numeric:tabular-nums;
  color:var(--pt-lime-700);padding-top:.25em;min-width:2.2ch;
}
.pt-row__title{display:flex;align-items:flex-start;gap:13px}
.pt-row__title svg{color:var(--pt-ink);flex:none;margin-top:3px;opacity:.55}
.pt-row__title h3{font-size:1.32rem;font-weight:400;letter-spacing:-.012em}
.pt-row__body{color:var(--pt-ink-muted);font-size:var(--pt-small);line-height:1.62;max-width:58ch}
@media (max-width:820px){
  .pt-row{grid-template-columns:auto 1fr;gap:6px 16px}
  .pt-row__body{grid-column:2}
}

/* ---------------------------------------------------------------------------
   12. DOCTOR — portrait plate + pull quote + timeline
   ------------------------------------------------------------------------ */
.pt-portrait{position:relative}
.pt-portrait__img{
  border-radius:var(--pt-r-xl);overflow:hidden;aspect-ratio:4/5;
  background:var(--pt-sand);box-shadow:var(--pt-sh-2);
}
.pt-portrait__img img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.pt-portrait__plaque{
  position:absolute;left:clamp(-4px,-1vw,0px);bottom:clamp(18px,3vw,32px);
  max-width:min(88%,320px);
  padding:16px 20px;
  background:var(--pt-paper);border:1px solid var(--pt-line);
  border-radius:var(--pt-r-md);box-shadow:var(--pt-sh-2);
}
.pt-portrait__plaque b{display:block;font-family:var(--pt-serif);font-size:1.08rem;font-weight:500;letter-spacing:-.01em}
.pt-portrait__plaque span{display:block;font-size:var(--pt-micro);color:var(--pt-ink-muted);margin-top:2px;line-height:1.4}

.pt-quote{
  margin:0;padding:0 0 0 clamp(20px,3vw,32px);
  border-left:2px solid var(--pt-lime);
}
.pt-quote p{
  font-family:var(--pt-serif);font-size:clamp(1.25rem,1.05rem + .8vw,1.62rem);
  font-weight:300;font-style:italic;line-height:1.42;letter-spacing:-.015em;color:var(--pt-ink);
  max-width:34ch;
}
.pt-quote cite{
  display:block;margin-top:14px;font-style:normal;
  font-size:var(--pt-micro);letter-spacing:.09em;text-transform:uppercase;color:var(--pt-ink-faint);font-weight:600;
}

/* Timeline: warm chapter rail */
.pt-timeline{position:relative;margin-top:clamp(28px,4vw,44px);padding-left:30px}
.pt-timeline::before{
  content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;
  background:linear-gradient(180deg,var(--pt-lime) 0%, var(--pt-line-strong) 22%, var(--pt-line) 100%);
}
.pt-timeline__item{position:relative;padding-bottom:26px}
.pt-timeline__item:last-child{padding-bottom:0}
.pt-timeline__item::before{
  content:"";position:absolute;left:-30px;top:7px;width:11px;height:11px;border-radius:50%;
  background:var(--pt-cream);border:2px solid var(--pt-line-strong);
  transition:border-color var(--pt-mid) var(--pt-ease), background-color var(--pt-mid) var(--pt-ease);
}
.pt-section--oat .pt-timeline__item::before{background:var(--pt-oat)}
.pt-timeline__item:hover::before{border-color:var(--pt-lime-700);background:var(--pt-lime)}
.pt-timeline__year{
  font-size:var(--pt-micro);font-weight:700;letter-spacing:.075em;text-transform:uppercase;
  color:var(--pt-lime-ink);font-variant-numeric:tabular-nums;
}
.pt-timeline__item h4{margin:4px 0 3px;font-size:var(--pt-body)}
.pt-timeline__item p{margin:0;font-size:var(--pt-small);color:var(--pt-ink-muted);line-height:1.55;max-width:54ch}

/* Focus / value list */
.pt-qualifications{
  display:flex;align-items:flex-start;gap:10px;
  margin-top:22px;padding-top:18px;border-top:1px solid var(--pt-line);
  font-size:var(--pt-micro);line-height:1.5;color:var(--pt-lime-ink);font-weight:600;
  max-width:34ch;
}
.pt-qualifications svg{flex:none;margin-top:2px}
.pt-values{margin-top:clamp(30px,4vw,44px);padding:clamp(22px,3vw,30px);background:var(--pt-paper);border:1px solid var(--pt-line);border-radius:var(--pt-r-lg)}
.pt-section--oat .pt-values{background:var(--pt-cream)}
.pt-values h3{font-size:var(--pt-h4);font-family:var(--pt-sans);font-weight:600;margin-bottom:14px}
.pt-values ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px 26px;margin:0;padding:0;list-style:none}
.pt-values li{display:flex;align-items:flex-start;gap:10px;margin:0;padding:7px 0;font-size:var(--pt-small);color:var(--pt-ink-muted)}
.pt-values li svg{color:var(--pt-lime-700);flex:none;margin-top:4px}

/* ---------------------------------------------------------------------------
   13. GALLERY — editorial mosaic on an explicit, gap-free grid
   ------------------------------------------------------------------------ */
.pt-mosaic{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-template-rows:repeat(4, clamp(112px,13.5vw,196px));
  grid-template-areas:
    "a a a a b b"
    "a a a a c c"
    "d d e e f f"
    "d d e e g g";
  gap:clamp(10px,1.3vw,16px);
  margin-top:clamp(32px,4vw,52px);
}
.pt-mosaic__item{
  position:relative;overflow:hidden;border-radius:var(--pt-r-md);
  background:var(--pt-sand);
}
.pt-mosaic__item:nth-child(1){grid-area:a}
.pt-mosaic__item:nth-child(2){grid-area:b}
.pt-mosaic__item:nth-child(3){grid-area:c}
.pt-mosaic__item:nth-child(4){grid-area:d}
.pt-mosaic__item:nth-child(5){grid-area:e}
.pt-mosaic__item:nth-child(6){grid-area:f}
.pt-mosaic__item:nth-child(7){grid-area:g}
.pt-mosaic__item img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 900ms var(--pt-ease-out), filter var(--pt-mid) var(--pt-ease);
  filter:saturate(.94);
}
.pt-mosaic__item::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(30,27,23,.26), transparent 55%);
  opacity:0;transition:opacity var(--pt-mid) var(--pt-ease);
}
.pt-mosaic__item:hover img{transform:scale(1.045);filter:saturate(1.04)}
.pt-mosaic__item:hover::after{opacity:1}

@media (max-width:900px){
  .pt-mosaic{
    grid-template-columns:repeat(4,1fr);
    grid-template-rows:repeat(5, clamp(96px,17vw,150px));
    grid-template-areas:
      "a a a a"
      "a a a a"
      "b b c c"
      "d d e e"
      "f f g g";
  }
}
@media (max-width:520px){
  .pt-mosaic{
    grid-template-columns:repeat(2,1fr);
    grid-template-rows:repeat(6, 30vw);
    grid-template-areas:
      "a a"
      "a a"
      "b c"
      "d e"
      "f g"
      "f g";
  }
}

/* ---------------------------------------------------------------------------
   14. CONTACT BAND — "a room", not a centred CTA
   ------------------------------------------------------------------------ */
.pt-band{position:relative;background:var(--pt-bark);color:var(--pt-on-bark);overflow:clip}
.pt-band::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 100% at 92% 0%, rgba(168,232,0,.14), transparent 62%);
}
.pt-band__grid{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);
  gap:clamp(36px,5vw,72px);align-items:center;
}
.pt-band h2,.pt-band h3{color:var(--pt-on-bark)}
.pt-band h2{font-size:var(--pt-h2);font-weight:300;letter-spacing:-.022em;line-height:1.08;max-width:20ch}
.pt-band h2 em{display:block;font-style:italic;color:var(--pt-lime)}
.pt-band p{color:var(--pt-on-bark-mut);max-width:46ch;margin-top:18px}
.pt-band__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

.pt-contact-card{
  background:rgba(246,241,231,.045);
  border:1px solid rgba(246,241,231,.14);
  border-radius:var(--pt-r-lg);
  padding:clamp(22px,3vw,32px);
  backdrop-filter:blur(2px);
}
.pt-contact-card dl{margin:0;display:grid;gap:0}
.pt-contact-card div{display:flex;gap:16px;padding:13px 0;border-bottom:1px solid rgba(246,241,231,.11)}
.pt-contact-card div:last-child{border-bottom:0;padding-bottom:0}
.pt-contact-card div:first-child{padding-top:0}
.pt-contact-card dt{
  flex:none;width:84px;font-size:var(--pt-micro);letter-spacing:.08em;text-transform:uppercase;
  color:var(--pt-on-bark-mut);font-weight:600;padding-top:2px;
}
.pt-contact-card dd{margin:0;font-size:var(--pt-small);color:var(--pt-on-bark);line-height:1.5}
.pt-contact-card dd a{color:var(--pt-lime);text-decoration-color:rgba(168,232,0,.4)}
.pt-contact-card dd a:hover{color:#C1F53C}
@media (max-width:900px){.pt-band__grid{grid-template-columns:1fr;gap:38px}}

/* ---------------------------------------------------------------------------
   15. PAGE HERO (inner pages)
   ------------------------------------------------------------------------ */
.pt-pagehero{
  position:relative;background:var(--pt-oat);overflow:clip;
  padding-block:clamp(52px,7vw,92px) clamp(44px,6vw,76px);
}
.pt-pagehero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(80% 120% at 96% 0%, rgba(168,232,0,.2), transparent 58%);
}
.pt-pagehero + .pt-section{padding-top:clamp(44px,5.5vw,76px)}
.pt-pagehero__inner{position:relative;display:grid;gap:16px;max-width:62ch}
.pt-pagehero h1{font-size:var(--pt-h1);font-weight:300;letter-spacing:-.025em;line-height:1.02}
.pt-pagehero h1 em{font-style:italic;color:var(--pt-lime-700)}
.pt-pagehero p{font-size:var(--pt-lead);color:var(--pt-ink-muted);max-width:52ch;margin:0}

.pt-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:var(--pt-micro);color:var(--pt-ink-faint);margin:0 0 4px}
.pt-crumbs a{color:var(--pt-ink-faint);text-decoration:none}
.pt-crumbs a:hover{color:var(--pt-lime-ink)}
.pt-crumbs li{margin:0;display:flex;align-items:center;gap:8px}
.pt-crumbs ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.pt-crumbs li + li::before{content:"/";opacity:.45}

/* ---------------------------------------------------------------------------
   16. TREATMENT CARDS (Selbstzahler) — disciplined, single level
   ------------------------------------------------------------------------ */
.pt-treatments{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:clamp(14px,2vw,22px);margin-top:clamp(32px,4vw,48px)}
.pt-treatment{
  position:relative;display:grid;gap:11px;align-content:start;
  padding:clamp(24px,3vw,30px);
  background:var(--pt-paper);border:1px solid var(--pt-line);border-radius:var(--pt-r-lg);
  transition:transform var(--pt-mid) var(--pt-ease-out), box-shadow var(--pt-mid) var(--pt-ease), border-color var(--pt-mid) var(--pt-ease);
}
.pt-section--oat .pt-treatment{background:var(--pt-cream)}
.pt-treatment:hover{transform:translateY(-4px);box-shadow:var(--pt-sh-2);border-color:var(--pt-line-strong)}
.pt-treatment__idx{
  font-family:var(--pt-serif);font-size:.9rem;font-weight:600;color:var(--pt-lime-700);
  font-variant-numeric:tabular-nums;letter-spacing:.05em;
}
.pt-treatment h3{font-size:1.22rem;font-weight:400}
.pt-treatment p{margin:0;font-size:var(--pt-small);color:var(--pt-ink-muted);line-height:1.6}
.pt-treatment__rule{width:30px;height:2px;background:var(--pt-lime);border-radius:2px}

/* Q&A rail (Rehabilitation) */
.pt-qa{display:grid;gap:0;margin-top:clamp(32px,4vw,48px);border-top:1px solid var(--pt-line)}
.pt-qa__item{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);
  gap:clamp(18px,3vw,52px);
  padding:clamp(26px,3.4vw,40px) 0;border-bottom:1px solid var(--pt-line);
}
.pt-qa__q{display:grid;gap:12px;align-content:start}
.pt-qa__q h2,.pt-qa__q h3{font-size:clamp(1.3rem,1.1rem + .7vw,1.62rem);font-weight:400;letter-spacing:-.015em;max-width:22ch}
.pt-qa__q .pt-qa__mark{
  display:grid;place-items:center;width:34px;height:34px;border-radius:var(--pt-r-sm);
  background:var(--pt-lime-wash);color:var(--pt-lime-ink);
  font-family:var(--pt-serif);font-weight:600;font-size:.95rem;
}
.pt-qa__a{color:var(--pt-ink-muted);font-size:var(--pt-body);line-height:1.68;max-width:60ch}
.pt-qa__a > *:first-child{margin-top:0}
@media (max-width:820px){.pt-qa__item{grid-template-columns:1fr;gap:14px}}

/* Benefit chips list */
.pt-benefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 clamp(20px,3vw,40px);margin:22px 0 0;padding:0;list-style:none}
.pt-benefits li{display:flex;align-items:flex-start;gap:11px;margin:0;padding:12px 0;border-top:1px solid var(--pt-line);font-size:var(--pt-small)}
.pt-benefits li svg{color:var(--pt-lime-700);flex:none;margin-top:4px}

/* ---------------------------------------------------------------------------
   16b. FAQ — native <details>, hairline rows, no card chrome
   ------------------------------------------------------------------------ */
.pt-faq{
  display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  gap:clamp(28px,4vw,64px);align-items:start;
}
.pt-faq__list{border-top:1px solid var(--pt-line)}
.pt-faq__item{border-bottom:1px solid var(--pt-line)}
.pt-faq__q{
  display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  padding:clamp(16px,2vw,22px) 0;
  font-family:var(--pt-serif);font-size:clamp(1.08rem,1rem + .35vw,1.28rem);
  font-weight:500;letter-spacing:-.01em;line-height:1.35;color:var(--pt-ink);
  cursor:pointer;list-style:none;
  transition:color var(--pt-fast) var(--pt-ease);
}
.pt-faq__q::-webkit-details-marker{display:none}
.pt-faq__q:hover{color:var(--pt-lime-ink)}
.pt-faq__q:focus-visible{outline:3px solid var(--pt-focus);outline-offset:3px;border-radius:var(--pt-r-xs)}
.pt-faq__marker{
  position:relative;flex:none;width:20px;height:20px;margin-top:4px;
}
.pt-faq__marker::before,
.pt-faq__marker::after{
  content:"";position:absolute;left:50%;top:50%;
  width:13px;height:1.8px;border-radius:2px;background:var(--pt-lime-700);
  transform:translate(-50%,-50%);
  transition:transform var(--pt-mid) var(--pt-ease-out), opacity var(--pt-fast) linear;
}
.pt-faq__marker::after{transform:translate(-50%,-50%) rotate(90deg)}
.pt-faq__item[open] .pt-faq__marker::after{transform:translate(-50%,-50%) rotate(0deg);opacity:0}
.pt-faq__answer{
  padding:0 clamp(24px,3vw,40px) clamp(18px,2.4vw,26px) 0;
  color:var(--pt-ink-muted);font-size:var(--pt-small);line-height:1.68;max-width:62ch;
}
.pt-faq__answer p{margin:0 0 .85em}
.pt-faq__answer p:last-child{margin-bottom:0}
.pt-faq__answer ul{margin:.85em 0 0}
@media (prefers-reduced-motion:no-preference){
  .pt-faq__item[open] .pt-faq__answer{animation:pt-faq-open .32s var(--pt-ease-out)}
}
@keyframes pt-faq-open{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (max-width:820px){
  .pt-faq{grid-template-columns:1fr;gap:24px}
}

/* ---------------------------------------------------------------------------
   17. FORMS — labels above inputs, inline validation, real states
   ------------------------------------------------------------------------ */
.pt-form{display:grid;gap:18px}
.pt-field{display:grid;gap:7px}
.pt-field--half{grid-column:span 1}
@media (min-width:620px){
  .pt-form__row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
}
.pt-label{
  font-size:var(--pt-small);font-weight:600;color:var(--pt-ink);
  display:flex;align-items:baseline;gap:6px;
}
.pt-label .pt-req{color:var(--pt-amber-ink);font-weight:700}
.pt-help{font-size:var(--pt-micro);color:var(--pt-ink-faint);line-height:1.45}
.pt-input,.pt-textarea,.pt-select{
  width:100%;font-family:inherit;font-size:var(--pt-body);color:var(--pt-ink);
  background:var(--pt-paper);
  border:1.5px solid var(--pt-line-strong);border-radius:var(--pt-r-md);
  padding:13px 16px;min-height:52px;
  transition:border-color var(--pt-fast) var(--pt-ease), box-shadow var(--pt-fast) var(--pt-ease), background-color var(--pt-fast) var(--pt-ease);
}
.pt-textarea{min-height:150px;resize:vertical;line-height:1.6}
.pt-input::placeholder,.pt-textarea::placeholder{color:#9B9285}
.pt-input:hover,.pt-textarea:hover{border-color:var(--pt-ink-faint)}
.pt-input:focus,.pt-textarea:focus,.pt-select:focus{
  outline:none;border-color:var(--pt-lime-700);
  box-shadow:0 0 0 4px rgba(168,232,0,.28);
}
.pt-input:focus-visible,.pt-textarea:focus-visible{outline:none}
.pt-field.has-error .pt-input,.pt-field.has-error .pt-textarea{border-color:var(--pt-error);background:var(--pt-error-bg)}
.pt-field.has-error .pt-input:focus,.pt-field.has-error .pt-textarea:focus{box-shadow:0 0 0 4px rgba(160,40,32,.18)}
.pt-error-text{display:none;font-size:var(--pt-micro);color:var(--pt-error);font-weight:500;align-items:center;gap:6px}
.pt-field.has-error .pt-error-text{display:flex}

.pt-checkbox{display:flex;align-items:flex-start;gap:12px;font-size:var(--pt-small);color:var(--pt-ink-muted);line-height:1.5;cursor:pointer}
.pt-checkbox input{
  appearance:none;flex:none;width:22px;height:22px;margin-top:1px;
  border:1.5px solid var(--pt-line-strong);border-radius:6px;background:var(--pt-paper);
  cursor:pointer;display:grid;place-content:center;
  transition:background-color var(--pt-fast) var(--pt-ease), border-color var(--pt-fast) var(--pt-ease);
}
.pt-checkbox input::before{
  content:"";width:11px;height:11px;transform:scale(0);transform-origin:center;
  background:var(--pt-ink);
  clip-path:polygon(14% 44%,0 60%,40% 100%,100% 18%,84% 4%,38% 68%);
  transition:transform 140ms var(--pt-ease-out);
}
.pt-checkbox input:checked{background:var(--pt-lime);border-color:var(--pt-lime-600)}
.pt-checkbox input:checked::before{transform:scale(1)}
.pt-field.has-error .pt-checkbox input{border-color:var(--pt-error)}

.pt-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

.pt-form__submit{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:4px}
.pt-btn.is-loading{pointer-events:none;position:relative;color:transparent}
.pt-btn.is-loading::after{
  content:"";position:absolute;width:18px;height:18px;border-radius:50%;
  border:2px solid rgba(33,30,25,.28);border-top-color:var(--pt-ink);
  animation:pt-spin .7s linear infinite;
}
@keyframes pt-spin{to{transform:rotate(360deg)}}

.pt-formmsg{
  display:none;gap:12px;align-items:flex-start;
  padding:16px 18px;border-radius:var(--pt-r-md);font-size:var(--pt-small);line-height:1.5;
}
.pt-formmsg.is-visible{display:flex}
.pt-formmsg svg{flex:none;margin-top:2px}
.pt-formmsg--success{background:var(--pt-success-bg);color:var(--pt-success);border:1px solid rgba(63,107,42,.22)}
.pt-formmsg--error{background:var(--pt-error-bg);color:var(--pt-error);border:1px solid rgba(160,40,32,.22)}
.pt-formmsg b{display:block;color:inherit;margin-bottom:2px}

/* ---------------------------------------------------------------------------
   18. MAP CONSENT GATE (DSGVO)
   ------------------------------------------------------------------------ */
.pt-map{position:relative;border-radius:var(--pt-r-lg);overflow:hidden;border:1px solid var(--pt-line);background:var(--pt-oat);min-height:340px}
.pt-map__canvas{width:100%;height:100%;min-height:340px}
.pt-map__gate{
  position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;
  text-align:center;padding:32px;background:var(--pt-oat);
  background-image:linear-gradient(135deg, rgba(216,203,178,.5) 25%, transparent 25%, transparent 50%, rgba(216,203,178,.5) 50%, rgba(216,203,178,.5) 75%, transparent 75%);
  background-size:22px 22px;
}
.pt-map__gate-inner{background:var(--pt-paper);border:1px solid var(--pt-line);border-radius:var(--pt-r-lg);padding:26px 28px;max-width:400px;box-shadow:var(--pt-sh-2);display:grid;gap:12px;justify-items:center}
.pt-map__gate h3{font-size:var(--pt-h4);font-family:var(--pt-sans);font-weight:600}
.pt-map__gate p{font-size:var(--pt-small);color:var(--pt-ink-muted);margin:0}

/* Leaflet, themed. Loaded from the theme's own vendor folder, never a CDN. */
.pt-map .leaflet-container{font-family:var(--pt-sans);background:var(--pt-oat)}
.pt-map .leaflet-bar a{
  color:var(--pt-ink);border-bottom-color:var(--pt-line);
  width:34px;height:34px;line-height:34px;
}
.pt-map .leaflet-bar a:hover{background:var(--pt-oat)}
.pt-map .leaflet-bar{border-radius:var(--pt-r-sm);box-shadow:var(--pt-sh-1);border:1px solid var(--pt-line)}
.pt-map .leaflet-popup-content-wrapper{
  border-radius:var(--pt-r-md);box-shadow:var(--pt-sh-2);
  font-size:var(--pt-small);color:var(--pt-ink);
}
.pt-map .leaflet-popup-content{margin:14px 18px;line-height:1.5}
.pt-map .leaflet-control-attribution{
  background:color-mix(in srgb, var(--pt-cream) 88%, transparent);
  font-size:11px;color:var(--pt-ink-faint);
}
.pt-map .leaflet-control-attribution a{color:var(--pt-lime-ink)}

.pt-map__withdraw{
  display:flex;justify-content:flex-end;
  margin:12px 0 0;font-size:var(--pt-micro);color:var(--pt-ink-muted);
}

/* ---------------------------------------------------------------------------
   19. COOKIE BANNER
   ------------------------------------------------------------------------ */
.pt-cookie{
  position:fixed;left:var(--pt-gutter);right:var(--pt-gutter);bottom:var(--pt-gutter);z-index:200;
  max-width:520px;margin-inline:auto;
  background:var(--pt-paper);border:1px solid var(--pt-line-strong);border-radius:var(--pt-r-lg);
  box-shadow:var(--pt-sh-3);padding:24px 26px;
  display:grid;gap:14px;
  transform:translateY(140%);opacity:0;visibility:hidden;
  transition:transform var(--pt-slow) var(--pt-ease-out), opacity var(--pt-mid) var(--pt-ease), visibility var(--pt-slow);
}
.pt-cookie.is-visible{transform:none;opacity:1;visibility:visible}
.pt-cookie h2{font-size:var(--pt-h4);font-family:var(--pt-sans);font-weight:600}
.pt-cookie p{font-size:var(--pt-small);color:var(--pt-ink-muted);margin:0}
.pt-cookie__actions{display:flex;flex-wrap:wrap;gap:10px}
.pt-cookie__actions .pt-btn{flex:1 1 auto}

/* ---------------------------------------------------------------------------
   20. LEGAL / PROSE
   ------------------------------------------------------------------------ */
.pt-prose{max-width:72ch;font-size:var(--pt-body);line-height:1.72;color:var(--pt-ink-muted)}
.pt-prose > *:first-child{margin-top:0}
.pt-prose h2{font-size:clamp(1.4rem,1.2rem + .7vw,1.78rem);color:var(--pt-ink);margin:2.2em 0 .55em;font-weight:400}
.pt-prose h3{font-size:1.16rem;color:var(--pt-ink);margin:1.8em 0 .45em;font-weight:500}
.pt-prose h2:first-child,.pt-prose h3:first-child{margin-top:0}
.pt-prose strong{color:var(--pt-ink)}
.pt-prose ul,.pt-prose ol{padding-left:1.3em}
.pt-prose li::marker{color:var(--pt-lime-700)}
.pt-prose hr{margin:2.4em 0}
.pt-prose address{font-style:normal}
.pt-toc{
  padding:20px 24px;background:var(--pt-oat);border-radius:var(--pt-r-lg);margin-bottom:2.5em;
  font-size:var(--pt-small);
}
.pt-toc h2{font-size:var(--pt-micro)!important;letter-spacing:.1em;text-transform:uppercase;color:var(--pt-ink-faint)!important;margin:0 0 10px!important;font-family:var(--pt-sans);font-weight:700}
.pt-toc ol{margin:0;padding-left:1.2em;columns:2;column-gap:28px}
.pt-toc li{margin-bottom:5px;break-inside:avoid}
@media (max-width:560px){.pt-toc ol{columns:1}}

/* Data table (e.g. legal / hours on inner pages) */
.pt-table{font-size:var(--pt-small);font-variant-numeric:tabular-nums}
.pt-table th,.pt-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--pt-line)}
.pt-table th{font-weight:600;color:var(--pt-ink);font-size:var(--pt-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--pt-ink-faint)}
.pt-table tr:last-child td{border-bottom:0}
.pt-table td:last-child{text-align:right;white-space:nowrap}

/* ---------------------------------------------------------------------------
   21. FOOTER
   ------------------------------------------------------------------------ */
.pt-footer{background:var(--pt-bark);color:var(--pt-on-bark-mut);font-size:var(--pt-small)}
.pt-footer a{color:var(--pt-on-bark-mut);text-decoration:none}
.pt-footer a:hover{color:var(--pt-lime)}
.pt-footer__top{
  display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));
  gap:clamp(28px,4vw,52px);
  padding-block:clamp(52px,6vw,78px) clamp(36px,4vw,52px);
}
.pt-footer__brand .pt-brand__name{color:var(--pt-on-bark)}
.pt-footer__brand .pt-brand__sub{color:var(--pt-on-bark-mut)}
.pt-footer__about{margin-top:18px;max-width:36ch;line-height:1.6}
.pt-footer h3{
  font-family:var(--pt-sans);font-size:var(--pt-micro);font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--pt-on-bark);margin-bottom:14px;
}
.pt-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.pt-footer li{margin:0}
.pt-footer address{font-style:normal;display:grid;gap:9px;line-height:1.55}
.pt-footer__bottom{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;
  padding-block:22px;border-top:1px solid rgba(246,241,231,.13);
  font-size:var(--pt-micro);
}
.pt-footer__legal{display:flex;flex-wrap:wrap;gap:18px}
.pt-footer__badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 14px;border-radius:var(--pt-r-pill);
  background:rgba(168,232,0,.12);color:var(--pt-lime);
  font-weight:600;font-size:var(--pt-micro);
}
@media (max-width:900px){.pt-footer__top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pt-footer__top{grid-template-columns:1fr;gap:32px}}

.pt-totop{
  position:fixed;right:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);z-index:70;
  width:48px;height:48px;display:grid;place-items:center;
  background:var(--pt-ink);color:var(--pt-on-bark);border:0;border-radius:50%;
  cursor:pointer;box-shadow:var(--pt-sh-2);
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity var(--pt-mid) var(--pt-ease), transform var(--pt-mid) var(--pt-ease-out), visibility var(--pt-mid), background-color var(--pt-fast) var(--pt-ease);
}
.pt-totop.is-visible{opacity:1;visibility:visible;transform:none}
.pt-totop:hover{background:var(--pt-lime);color:var(--pt-ink)}

/* ---------------------------------------------------------------------------
   22. 404 / SEARCH / EMPTY STATES
   ------------------------------------------------------------------------ */
.pt-empty{display:grid;gap:18px;justify-items:start;max-width:56ch}
.pt-empty__code{
  font-family:var(--pt-serif);font-size:clamp(4rem,3rem + 8vw,9rem);font-weight:300;line-height:.85;
  letter-spacing:-.05em;color:var(--pt-lime-700);
}
.pt-empty__code em{font-style:italic;color:var(--pt-ink)}
.pt-searchform{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;max-width:520px;width:100%}
.pt-searchform .pt-input{flex:1 1 220px}
.pt-suggest{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px}
.pt-suggest a{
  padding:8px 16px;border-radius:var(--pt-r-pill);border:1px solid var(--pt-line-strong);
  font-size:var(--pt-micro);font-weight:500;color:var(--pt-ink);text-decoration:none;
  transition:border-color var(--pt-fast) var(--pt-ease), background-color var(--pt-fast) var(--pt-ease);
}
.pt-suggest a:hover{background:var(--pt-lime-wash);border-color:var(--pt-lime-600);color:var(--pt-lime-ink)}

.pt-results{display:grid;gap:0;margin-top:clamp(28px,4vw,44px);border-top:1px solid var(--pt-line)}
.pt-result{padding:clamp(20px,2.6vw,28px) 0;border-bottom:1px solid var(--pt-line);display:grid;gap:8px}
.pt-result h2{font-size:1.3rem;font-weight:400}
.pt-result h2 a{color:var(--pt-ink);text-decoration:none}
.pt-result h2 a:hover{color:var(--pt-lime-ink)}
.pt-result__meta{font-size:var(--pt-micro);letter-spacing:.07em;text-transform:uppercase;color:var(--pt-ink-faint);font-weight:600}
.pt-result p{margin:0;font-size:var(--pt-small);color:var(--pt-ink-muted);max-width:66ch}
.pt-result mark{background:var(--pt-lime-wash);color:var(--pt-ink);padding:1px 3px;border-radius:3px}

.pt-pagination{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(28px,4vw,44px)}
.pt-pagination .page-numbers{
  min-width:44px;height:44px;display:inline-grid;place-items:center;padding:0 14px;
  border:1px solid var(--pt-line-strong);border-radius:var(--pt-r-pill);
  font-size:var(--pt-small);font-weight:600;color:var(--pt-ink);text-decoration:none;
  transition:background-color var(--pt-fast) var(--pt-ease), border-color var(--pt-fast) var(--pt-ease);
}
.pt-pagination .page-numbers:hover{background:var(--pt-oat)}
.pt-pagination .page-numbers.current{background:var(--pt-lime);border-color:var(--pt-lime-600)}

/* Skeleton (loading) */
.pt-skeleton{background:linear-gradient(100deg,var(--pt-oat) 30%,var(--pt-sand) 50%,var(--pt-oat) 70%);background-size:220% 100%;animation:pt-shimmer 1.4s linear infinite;border-radius:var(--pt-r-sm)}
@keyframes pt-shimmer{to{background-position:-120% 0}}

/* ---------------------------------------------------------------------------
   23. MOTION — sectional scroll reveal (not a global fade-up on everything)
   ------------------------------------------------------------------------ */
[data-pt-reveal]{opacity:0;transform:translateY(18px);transition:opacity var(--pt-slow) var(--pt-ease-out), transform var(--pt-slow) var(--pt-ease-out)}
[data-pt-reveal].is-in{opacity:1;transform:none}
[data-pt-reveal="wipe"]{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 900ms var(--pt-ease-out)}
[data-pt-reveal="wipe"].is-in{clip-path:inset(0 0 0 0)}
[data-pt-reveal="right"]{transform:translateX(22px)}
[data-pt-reveal="right"].is-in{transform:none}
[data-pt-stagger] > *{opacity:0;transform:translateY(14px);transition:opacity var(--pt-slow) var(--pt-ease-out), transform var(--pt-slow) var(--pt-ease-out)}
[data-pt-stagger].is-in > *{opacity:1;transform:none}
[data-pt-stagger].is-in > *:nth-child(1){transition-delay:0ms}
[data-pt-stagger].is-in > *:nth-child(2){transition-delay:70ms}
[data-pt-stagger].is-in > *:nth-child(3){transition-delay:140ms}
[data-pt-stagger].is-in > *:nth-child(4){transition-delay:210ms}
[data-pt-stagger].is-in > *:nth-child(5){transition-delay:280ms}
[data-pt-stagger].is-in > *:nth-child(6){transition-delay:350ms}
[data-pt-stagger].is-in > *:nth-child(n+7){transition-delay:410ms}

/* Hero entrance */
.pt-hero__copy > *{opacity:0;transform:translateY(16px);animation:pt-rise .9s var(--pt-ease-out) forwards}
.pt-hero__copy > *:nth-child(1){animation-delay:60ms}
.pt-hero__copy > *:nth-child(2){animation-delay:150ms}
.pt-hero__copy > *:nth-child(3){animation-delay:240ms}
.pt-hero__copy > *:nth-child(4){animation-delay:320ms}
.pt-hero__copy > *:nth-child(5){animation-delay:400ms}
.pt-hero__copy > *:nth-child(n+6){animation-delay:470ms}
@keyframes pt-rise{to{opacity:1;transform:none}}
.pt-hours-bar{animation:pt-plate 1.1s var(--pt-ease-out) both;animation-delay:320ms}
@keyframes pt-plate{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  [data-pt-reveal],[data-pt-stagger] > *,.pt-hero__copy > *,.pt-hours-bar{opacity:1!important;transform:none!important;clip-path:none!important}
}

/* Utility paragraphs never carry the prose bottom margin — their spacing is
   owned by the layout that contains them. */
.pt-eyebrow,.pt-empty__code,.pt-hero__signals,.pt-hero__sig,.pt-hours-note,
.pt-row__num,.pt-row__body,.pt-treatment__idx,.pt-timeline__year,
.pt-result__meta,.pt-crumbs,.pt-footer__badge,.pt-imgstack__tag,.pt-qualifications,
.pt-portrait__plaque,.pt-note p,.pt-help,.pt-announce__inner{margin-block:0}
.pt-hero__signals{margin-top:32px}
.pt-hero__sig{margin-top:22px}
.pt-hours-note{margin-top:14px}
.pt-footer__badge{margin-top:18px}
.pt-qualifications{margin-top:22px}

/* ---------------------------------------------------------------------------
   24. UTILITIES
   ------------------------------------------------------------------------ */
.pt-hide{display:none!important}
.pt-nowrap{white-space:nowrap}
.pt-tnum{font-variant-numeric:tabular-nums}
.pt-mt-0{margin-top:0}
.pt-center{text-align:center}
.pt-flow > * + *{margin-top:1.1em}
.pt-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------------------------------------------------------------------------
   25. BLOCK EDITOR OUTPUT (hybrid theme: core blocks inside pt-prose)
   ------------------------------------------------------------------------ */
.pt-prose .wp-block-image{margin-block:2em}
.pt-prose .wp-block-image img{border-radius:var(--pt-r-md)}
.pt-prose .wp-block-quote{border-left:2px solid var(--pt-lime);padding-left:22px;margin-block:2em;font-family:var(--pt-serif);font-style:italic;font-size:1.2rem;color:var(--pt-ink)}
.pt-prose .wp-block-table td,.pt-prose .wp-block-table th{border:1px solid var(--pt-line);padding:10px 14px}
.pt-prose .wp-block-separator{border-top:1px solid var(--pt-line);border-bottom:0;margin-block:2.4em}
.wp-block-button__link{border-radius:var(--pt-r-pill);font-weight:600;padding:13px 26px}
.is-style-pt-outline .wp-block-button__link,
.wp-block-button.is-style-pt-outline .wp-block-button__link{background:transparent;color:var(--pt-ink);border:1.5px solid var(--pt-line-strong)}
.is-style-pt-soft{background:var(--pt-oat);border-radius:var(--pt-r-lg);padding:clamp(20px,3vw,32px)}
.is-style-pt-rule{border-top:2px solid var(--pt-lime);width:56px;margin-inline:0}

/* Alignment support for hybrid templates */
.pt-prose .alignwide{width:min(100%, 1000px);max-width:none;margin-inline:auto}
.pt-prose .alignfull{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}

/* ---------------------------------------------------------------------------
   26. PRINT
   ------------------------------------------------------------------------ */
@media print{
  .pt-header,.pt-drawer,.pt-cookie,.pt-totop,.pt-band,.pt-announce,.pt-map,.pt-form{display:none!important}
  body{background:#fff;color:#000;font-size:11pt}
  .pt-section{padding-block:12pt}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
}
