.pf-front { color:#f8f6ee; background:#192f43; }
.pf-front-grid { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,1fr); align-items:center; gap:clamp(25px,4.7vw,67px); padding-block:clamp(28px,4vw,57px) clamp(28px,4vw,55px); }
.pf-front-copy { min-width:0; }
.pf-front-tag { display:flex; flex-wrap:wrap; align-items:center; gap:5px 12px; color:#f0dec1; font-size:.77rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin:0 0 clamp(13px,2vw,25px); }
.pf-front-tag span { border-left:1px solid #a28f74; color:#d3dfe2; padding-left:12px; }
.pf-front h1 { color:#faf7ee; font-size:clamp(53px,6.25vw,89px); line-height:.93; text-transform:none; letter-spacing:-.025em; margin:0 0 clamp(18px,2.4vw,32px); }
.pf-front h1 span { color:#dfc49a; }
.pf-front-copy > p:not(.pf-front-tag) { color:#e1e8e7; font-size:clamp(1rem,1.35vw,1.2rem); line-height:1.54; margin:0 0 1.25rem; max-width:44ch; }
.pf-front-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 22px; }
.pf-front-actions a { display:inline-flex; align-items:center; gap:10px; min-height:47px; font-size:.93rem; font-weight:600; }
.pf-front-primary { padding:0 15px; color:#192f43; background:#e2c69c; clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%); }
.pf-front-primary:focus-visible { box-shadow:inset 0 0 0 3px #192f43; }
.pf-front-primary:hover { color:#192f43; background:#f0dfc0; }
.pf-front-secondary { color:#faf7ee; text-decoration:underline; text-underline-offset:.3em; }
.pf-front-secondary:hover { color:#f3dbae; }
.pf-front-media { position:relative; min-width:0; padding:0 0 23px; }
.pf-front-photo { position:relative; margin:0; }
.pf-front-photo img { display:block; width:100%; height:clamp(305px,31vw,439px); object-fit:cover; object-position:center 36%; filter:saturate(.77); }
.pf-front-photo figcaption { position:absolute; left:0; bottom:0; background:#192f43; color:#e1e8e7; padding:6px 10px 3px 0; font-size:.72rem; }
.pf-front-photo figcaption a { color:inherit; display:inline-flex; min-height:28px; align-items:center; text-decoration:underline; text-underline-offset:.2em; }
.pf-front-area { position:absolute; right:-1px; bottom:0; margin:0; width:clamp(249px,26.5vw,350px); background:#f9f7ed; color:#20384b; border:1px solid #bfc9c5; border-top:3px solid #d8bb8f; }
.pf-front-area figcaption { padding:8px 10px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0 9px; }
.pf-front-area figcaption strong { font-size:.95rem; line-height:1.3; }
.pf-front-area figcaption span { color:#4b626d; font-size:.78rem; }
.pf-front-area img { display:block; width:100%; height:auto; border-block:1px solid #cbd5ce; }
.pf-front-area-link { padding-inline:10px; }
.pf-front-area-link a { display:inline-flex; min-height:40px; align-items:center; gap:.4rem; color:#20384b; text-decoration:underline; text-underline-offset:.23em; font-size:.82rem; font-weight:600; }
.pf-index { display:grid; grid-template-columns:minmax(210px,.74fr) minmax(0,1.26fr); gap:clamp(25px,7vw,105px); padding-block:clamp(34px,4.9vw,70px); }
.pf-section-label { display:flex; align-items:center; gap:.65rem; font-size:.75rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:#526674; margin:0 0 .7rem; }
.pf-section-label::before { content:""; width:18px; height:2px; background:#9b7751; }
.pf-index h2, .pf-front-contact h2 { font-size:clamp(36px,5vw,65px); text-transform:none; color:#20384b; line-height:.99; margin:0 0 .8rem; letter-spacing:-.02em; }
.pf-index-intro > p:last-child, .pf-front-contact p:last-child { margin:0; color:#526674; font-size:1rem; }
.pf-index-list { border-top:1px solid #bfc9c5; }
.pf-home-service { border-bottom:1px solid #bfc9c5; }
.pf-home-service > summary { display:grid; grid-template-columns:1.8rem minmax(0,1fr) 1.1rem; align-items:center; gap:12px; min-height:68px; padding:9px 10px; list-style:none; cursor:pointer; color:#20384b; }
.pf-home-service > summary::-webkit-details-marker { display:none; }
.pf-home-service > summary:hover, .pf-home-service[open] { background:#e8ece5; }
.pf-home-service > summary strong, .pf-home-service > summary small { display:block; line-height:1.25; }
.pf-home-service > summary strong { font-size:clamp(1.03rem,1.55vw,1.25rem); font-weight:600; }
.pf-home-service > summary small { color:#526674; font-size:.86rem; margin-top:3px; }
.pf-index-no { font-variant-numeric:tabular-nums; font-size:.78rem; color:#536978; }
.pf-index-toggle { width:15px; height:15px; position:relative; }
.pf-index-toggle::before,.pf-index-toggle::after { content:""; position:absolute; background:#2e4a66; }
.pf-index-toggle::before { width:13px; height:2px; top:6px; left:1px; }
.pf-index-toggle::after { width:2px; height:13px; left:6px; top:1px; }
.pf-home-service[open] .pf-index-toggle::after { display:none; }
.pf-index-content { padding:0 20px 10px 50px; color:#425b69; font-size:.95rem; line-height:1.6; }
.pf-index-content p { margin:0 0 .35rem; max-width:59ch; }
.pf-index-content a { display:inline-flex; align-items:center; min-height:44px; color:#243e55; text-decoration:underline; text-underline-offset:.2em; font-weight:600; }
.pf-front-contact { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:1rem 2rem; padding-block:clamp(32px,5vw,65px); }
.pf-front-contact a { display:inline-flex; align-items:center; gap:12px; min-height:45px; color:#243e55; font-size:1.25rem; font-weight:600; text-decoration:underline; text-underline-offset:.25em; }
#leistungen,#bereiche { scroll-margin-top:116px; }
@media (max-width:960px) { .pf-front-grid { gap:24px; } .pf-front h1 { font-size:clamp(49px,6.45vw,69px); } .pf-front-area { width:min(75%,305px); } }
@media (max-width:800px) {
  .pf-front-grid { grid-template-columns:minmax(0,1fr); gap:21px; }
  .pf-front h1 { font-size:clamp(49px,10vw,77px); }
  .pf-front-media { padding-bottom:0; }
  .pf-front-photo img { height:clamp(210px,55vw,345px); }
  .pf-front-area { width:min(84%,335px); right:auto; position:relative; margin:-54px 10px 0 auto; }
  .pf-front-photo figcaption { bottom:57px; }
  .pf-index { grid-template-columns:minmax(0,1fr); gap:17px; }
  .pf-index-intro h2 { margin-bottom:.55rem; }
  #leistungen,#bereiche { scroll-margin-top:95px; }
}
@media (max-width:520px) {
  .pf-front h1 { font-size:clamp(38px,10.8vw,55px); }
  .pf-front-tag { font-size:.7rem; }
  .pf-front-area { width:calc(100% - 20px); }
}
@media (min-width:801px) and (max-width:950px) { .pf-front-photo figcaption { bottom:auto; top:0; padding:3px 9px; } }

.pf-front-audience { display:block; margin:0 0 clamp(15px,2vw,24px); }
.pf-front-audience > p { margin:0 0 .48rem; color:#f0dec1; font-size:.8rem; font-weight:600; letter-spacing:.075em; }
.pf-front-choices { display:grid; grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr)); gap:7px; max-width:34rem; }
.pf-front-choices a { display:flex; align-items:center; justify-content:space-between; gap:5px; min-height:46px; padding:7px 10px; border:1px solid #8195a3; background:#29455a; color:#faf7ee; font-size:clamp(.88rem,1.16vw,1rem); font-weight:600; line-height:1.22; text-decoration:none; }
.pf-front-choices a:hover { border-color:#dfc49a; background:#dfc49a; color:#192f43; }
.pf-front-choices a:focus-visible { outline:2px solid #f1d4a7; outline-offset:3px; }
.pf-front-choices a span { color:#e4c89b; flex:none; }
.pf-front-choices a:hover span { color:inherit; }
@media (max-width:950px) { .pf-front-choices a { padding-inline:8px; } .pf-front-choices a span { display:none; } }
@media (max-width:365px) {
  .pf-front-choices { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .pf-front-choices a:first-child { grid-column:1/-1; }
}
