/* PFALLER campaign surfaces. The illustrations keep their existing proportions. */
:root {
    --pf-field:#e8ece5;
    --pf-field-green:#e3eae0;
    --pf-field-warm:#f0e9dc;
}

.pf-front, .pf-overview-band, .service-intro-band {
    position:relative;
    isolation:isolate;
    background-color:#192f43;
    background-image:linear-gradient(128deg,#192f43 12%,#223e54 73%,#2b465b 100%);
}
.pf-front::before, .pf-overview-band::before, .service-intro-band::before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:url("/assets/pfaller-diagonale.svg") center right / auto 140% no-repeat;
    opacity:.43;
}
.pf-front-grid { padding-block:clamp(25px,3.7vw,51px); }
.pf-front h1 { font-size:clamp(49px,6vw,86px); }
.pf-front-copy > p:not(.pf-front-tag) { margin-bottom:1.03rem; }
.pf-front-audience { margin-bottom:clamp(14px,1.7vw,23px); }
.pf-front-choices a {
    background:#29455a;
    border-color:#a0b3be;
    box-shadow:inset 0 -2px #192f43;
}
.pf-front-choices a:hover { box-shadow:inset 0 -2px #ad8a5e; }
.pf-front-photo { background:#29465a; box-shadow:0 0 0 1px #6a7e8c; }
.pf-front-photo figcaption { padding-left:8px; }
.pf-front-area { border-top-color:#e1c392; box-shadow:0 10px 26px #15263858; }
.pf-front-area-link { display:flex; align-items:center; justify-content:space-between; gap:0 8px; flex-wrap:wrap; }
.pf-front-area-link small { color:#4e626d; font-size:.72rem; }
.pf-map-art { position:relative; }
.pf-map-pin {
    position:absolute;
    left:var(--pin-left);
    top:var(--pin-y);
    transform:translateY(-50%);
    display:grid;
    place-items:center;
    width:var(--pin-width);
    height:30px;
    border-radius:4px;
    touch-action:manipulation;
}
.pf-map-pin:hover { box-shadow:inset 0 0 0 1px #547184; background:#f9f7ed35; }
.pf-map-pin:focus-visible { outline:2px solid #223f56; outline-offset:1px; }

.pf-spotlight {
    background:linear-gradient(116deg,#e4ebe2 56%,#d8e4d9 56%);
    padding-block:clamp(30px,5vw,74px);
}
.pf-spotlight-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.14fr); align-items:center; gap:clamp(21px,5vw,69px); }
.pf-spotlight-copy h2, .pf-process h2, .pf-examples h2 {
    color:#20384b;
    font-size:clamp(32px,4.7vw,61px);
    line-height:1.01;
    text-transform:none;
    margin:0 0 .9rem;
}
.pf-spotlight-copy > p:not(.pf-section-label) { color:#425b68; line-height:1.6; max-width:48ch; margin:0; }
.pf-spotlight-links { display:flex; flex-wrap:wrap; gap:1px 20px; margin-top:1.05rem; }
.pf-spotlight-links a, .pf-examples li a { display:inline-flex; min-height:44px; align-items:center; gap:.5rem; color:#20384b; font-weight:600; text-decoration:underline; text-underline-offset:.24em; }
.pf-spotlight figure { margin:0; position:relative; border:1px solid #b3c2bd; }
.pf-spotlight figure img { display:block; width:100%; height:auto; }
.pf-spotlight figcaption { position:absolute; right:0; bottom:0; padding:3px 10px; background:#192f43; color:#faf7ee; font-size:.73rem; }

.pf-process { padding-block:clamp(36px,5.6vw,75px); }
.pf-process-heading { max-width:45rem; }
.pf-process ol, .pf-examples ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:clamp(19px,3vw,35px) 0 0; padding:0; list-style:none; border-block:1px solid #b6c4be; counter-reset:pf-index; }
.pf-process li, .pf-examples li { counter-increment:pf-index; padding:clamp(14px,2.3vw,29px); min-width:0; }
.pf-process li + li, .pf-examples li + li { border-left:1px solid #b6c4be; }
.pf-process li::before, .pf-examples li::before { content:"0" counter(pf-index); display:block; font-size:.79rem; letter-spacing:.08em; color:#516a78; font-weight:600; margin-bottom:.55rem; }
.pf-process li strong { display:block; color:#20384b; font-size:1.08rem; margin-bottom:.27rem; }
.pf-process li p, .pf-examples li p { color:#4b6470; font-size:.94rem; line-height:1.55; margin:0; }
.pf-front-contact { border-top:1px solid #b6c4be; }
.pf-front-contact-links { display:flex; flex-wrap:wrap; align-items:center; gap:2px 15px; }
.pf-front-contact-links a:last-child { font-size:.96rem; }

.pf-overview-band { color:#f7f5ee; margin-bottom:clamp(25px,4vw,55px); }
.pf-overview-band[data-audience="privatkunden"] { background-image:linear-gradient(132deg,#192f43,#284454 74%,#36584e); }
.pf-overview-band[data-audience="immobilien"] { background-image:linear-gradient(135deg,#192f43,#27475b 80%,#385464); }
.pf-overview-inner { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.8fr); align-items:end; gap:clamp(18px,5vw,69px); padding-block:clamp(20px,3.15vw,43px); }
.pf-overview-band .breadcrumb { display:inline-flex; align-items:center; min-height:35px; color:#e3ebec; margin:0 0 .7rem; }
.pf-overview-band .pf-section-label { color:#eedbc0; margin-bottom:.5rem; }
.pf-overview-band .pf-section-label::before { background:#d3ac78; }
.pf-overview-band h1 { color:#f8f4e9; font-size:clamp(42px,5.25vw,73px); line-height:.99; text-transform:none; margin:0; letter-spacing:-.023em; }
.pf-overview-lead p { color:#e5eceb; font-size:clamp(.98rem,1.35vw,1.17rem); line-height:1.55; max-width:51ch; margin:0 0 .85rem; }
.pf-overview-actions { display:flex; align-items:center; flex-wrap:wrap; gap:2px 18px; }
.pf-overview-actions .button { min-height:44px; background:#dfc49a; color:#192f43; }
.pf-overview-actions .button:hover { background:#f2dfc3; color:#192f43; }
.pf-overview-jump { display:inline-flex; min-height:44px; align-items:center; gap:.45rem; color:#f8f4e9; font-size:.91rem; text-decoration:underline; text-underline-offset:.22em; }
.pf-overview-jump:hover { color:#f1d4a7; }
.site-explorer-head { align-items:center; }
.site-explorer-head h2 { font-size:clamp(32px,4.4vw,57px); }
.site-view-switch { background:#edf0e8; }
.site-scene-bar { color:#f6f3e9; background:#2b465a; }
.site-scene-bar span:last-child { color:#f1dcc0; }
.site-choice { border-left:3px solid transparent; padding-left:.7rem; min-height:54px; }
.site-choice.is-selected { border-left-color:#2e4a66; box-shadow:none; }
.site-choice strong { font-size:1.03rem; }
.site-choice small { font-size:.81rem; }
.pf-scene-preview { color:#dce7e8; font-size:.88rem; margin:0; }
.site-inspector a { text-underline-offset:.25em; }
.pf-examples { background:var(--pf-field); padding-block:clamp(30px,5vw,64px); }
body:has([data-audience="privatkunden"]) .pf-examples { background:var(--pf-field-warm); }
body:has([data-audience="immobilien"]) .pf-examples { background:var(--pf-field-green); }
.pf-examples li h3 { color:#20384b; font-family:Barlow,Arial,sans-serif; font-size:1.1rem; line-height:1.28; margin:0 0 .5rem; text-transform:none; letter-spacing:0; }
.pf-examples li a { margin-top:.3rem; }
.pf-examples details { max-width:56rem; margin:1.25rem 0 0; border-bottom:1px solid #b6c4be; }
.pf-examples details summary { min-height:44px; padding:.6rem 0; cursor:pointer; color:#20384b; font-weight:600; }
.pf-examples details p { color:#425b68; padding:0 0 .65rem 1rem; margin:0; }
#welt-gewerbe,#welt-privatkunden,#welt-immobilien { scroll-margin-top:110px; }

.service-detail-page .service-intro-band { background-color:#192f43; }
.service-detail-page :is(.fit-visual-head,.green-visual-head,.clean-visual-head) { color:#2d4b63; }
.service-detail-page :is(.fit-figure,.green-figure,.clean-figure) figcaption { border-top:2px solid #c0cec5; }
.service-detail-page :is(.fit-service,.green-service,.clean-service) > summary { min-height:55px; }
.service-detail-page :is(.fit-next,.green-next,.clean-next) { background:#e2eae2; }

.pf-form-intro, .pf-form-fallback { color:#405b68; }
.pf-form-fallback { padding:1rem; border-left:3px solid #2e4a66; background:#e7ede5; }
.pf-form-fallback[hidden], #request-form[hidden], #property-request[hidden] { display:none!important; }
:is(#request-result,#p-request-result):focus { outline:2px solid #2e4a66; outline-offset:4px; }
:is(#request-result,#p-request-result) { scroll-margin-top:145px; }

@media (max-width:960px) {
    .pf-front h1 { font-size:clamp(46px,6.4vw,67px); }
}
@media (max-width:800px) {
    .pf-front h1 { font-size:clamp(40px,9.85vw,73px); }
    .pf-front::before,.pf-overview-band::before { background-position:35% center; opacity:.3; }
    .pf-overview-inner { grid-template-columns:minmax(0,1fr); gap:15px; }
    .site-explorer-head { align-items:start; }
}
@media (max-width:760px) {
    .pf-spotlight-inner { grid-template-columns:minmax(0,1fr); }
    .pf-spotlight { background:var(--pf-field-green); }
    .pf-process ol,.pf-examples ul { grid-template-columns:minmax(0,1fr); }
    .pf-process li + li,.pf-examples li + li { border-left:0; border-top:1px solid #b6c4be; }
    .pf-process li,.pf-examples li { padding-inline:0; }
}
@media (max-width:520px) {
    .pf-front h1 { font-size:clamp(36px,10.8vw,52px); }
    .pf-front-area-link small { font-size:.69rem; }
    .pf-map-pin { height:27px; }
    .pf-overview-band h1 { font-size:clamp(37px,10.7vw,53px); }
    .pf-overview-inner { padding-top:19px; }
    .pf-overview-band .breadcrumb { margin-bottom:.45rem; }
    .pf-front-primary { padding-inline:13px; }
    .pf-front-actions { gap:0 15px; }
    .pf-front-actions a { font-size:.88rem; }
}
@media (prefers-reduced-motion:no-preference) {
    .pf-front-choices a, .pf-spotlight-links a, .pf-overview-jump, .site-choice { transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
    .pf-appearing { animation:pf-arrive .42s cubic-bezier(.2,.75,.3,1) both; }
    @keyframes pf-arrive { from { opacity:.87; transform:translateY(9px); } to { opacity:1; transform:none; } }
}
/* Inquiries keep the form first in reading and visual order. */
.pf-contact-band {
    background:#192f43 url("/assets/pfaller-diagonale.svg") right center / auto 140% no-repeat;
    color:#f7f4eb;
}
.pf-contact-band .contact-heading { padding-block:clamp(23px,3vw,44px); }
.pf-contact-band .contact-heading .eyebrow { color:#eddbbe; margin:0 0 .6rem; }
.pf-contact-band .contact-heading h1 { color:#faf6eb; font-size:clamp(39px,5.9vw,76px); line-height:.98; margin:0 0 .75rem; }
.pf-contact-band .contact-heading .sub-intro { color:#e3ebe8; margin:0; font-size:clamp(.97rem,1.35vw,1.12rem); line-height:1.5; }
.pf-contact-actions { display:flex; align-items:center; flex-wrap:wrap; gap:0 22px; margin-top:.55rem; }
.pf-contact-actions a { display:inline-flex; align-items:center; min-height:44px; color:#f7f4eb; font-weight:600; font-size:.92rem; text-decoration:underline; text-underline-offset:.24em; }
.pf-contact-actions a:hover { color:#dfc49a; }
.contact-grid:has(#anfrageformular), .p-request-grid:has(.pf-property-form-wrap) {
    grid-template-columns:minmax(0,1.4fr) minmax(235px,.72fr);
    gap:clamp(24px,6vw,78px);
    align-items:start;
}
.contact-grid:has(#anfrageformular) { padding-top:clamp(24px,3.6vw,45px); }
.contact-grid:has(#anfrageformular) .request-box { padding:clamp(16px,3vw,34px); background:#e8ede7; border:1px solid #c0cdc6; }
.contact-grid:has(#anfrageformular) .contact-aside, .p-request-grid:has(.pf-property-form-wrap) .p-contact-panel { padding-top:clamp(8px,1.5vw,20px); }
#anfrageformular { scroll-margin-top:145px; min-width:0; }
.pf-property-form-wrap { min-width:0; }
:is(#request-form,#property-request) :is(.form-grid,.p-form-grid) label { color:#29465b; font-size:.89rem; }
:is(#request-form,#property-request) :is(.form-grid,.p-form-grid) :is(input,select,textarea) { min-height:44px; font-size:.95rem; }
:is(#request-form,#property-request) :is(.form-grid,.p-form-grid) textarea { min-height:108px; }
.pf-form-extra { grid-column:1/-1; border-top:1px solid #adbfba; }
.pf-form-extra summary { min-height:44px; padding:.5rem 0; cursor:pointer; font-size:.88rem; font-weight:600; color:#20384b; }
.pf-form-extra summary span { color:#4e626d; font-weight:400; }
.pf-form-extra > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding-bottom:5px; }
.pf-form-extra .full, .pf-form-extra .p-full { grid-column:auto; }
@media (max-width:820px) {
    .contact-grid:has(#anfrageformular), .p-request-grid:has(.pf-property-form-wrap) { grid-template-columns:minmax(0,1fr); gap:19px; }
    #anfrageformular { scroll-margin-top:112px; }
}
@media (max-width:540px) {
    .pf-form-extra > div { grid-template-columns:minmax(0,1fr); }
}

/* Calling and opening the main menu are separate, spacious targets. */
.pf-header-actions { display:none; }
@media (max-width:820px) {
    .pf-header-actions { display:flex; align-items:center; gap:7px; flex-shrink:0; }
    .site-header .nav-wrap { gap:12px; }
    .site-header .brand, .site-header .brand img { width:clamp(126px,44vw,175px); }
    .site-header .menu-button, .site-header .pf-mobile-call { min-height:44px; }
    .site-header .menu-button { gap:9px; padding-inline:9px; }
    .pf-mobile-call { display:grid; place-items:center; width:44px; background:#e7ede6; color:#20384b; border:1px solid #bdcbc4; }
    .pf-mobile-call:hover { background:#d7e4d8; }
}

.pf-scene-list-link { display:none; }
[id^="leistungswahl-"] { scroll-margin-top:110px; }
.pf-prefill-note { color:#304c60; font-size:.85rem; font-weight:600; margin:.35rem 0 1rem; }
@media (max-width:800px) {
    .pf-scene-list-link { display:inline-flex; align-items:center; gap:.4rem; min-height:44px; margin:-3px 0 .5rem; color:#20384b; font-size:.9rem; font-weight:600; text-decoration:underline; text-underline-offset:.22em; }
}
@media (min-width:821px) and (max-width:1100px) { .w-home .site-header nav { gap:20px; font-size:13px; } }
