.ff {--ink:#19363d;--sub:#4e6266;--line:#dce2df;--accent:#ba302a;color:var(--ink);background:#faf9f6;font:400 15px/1.5 Inter,Arial,sans-serif}
.ff *, .ff *::before {box-sizing:border-box}
.ff :focus-visible {outline:3px solid #297878;outline-offset:3px}
.ff-heading {position:relative;isolation:isolate;background:#23424c;overflow:hidden;color:white}
.ff-heading img,.ff-heading::before {position:absolute;inset:0;width:100%;height:100%;z-index:-2;object-fit:cover;object-position:center 53%}
.ff-heading::before {content:"";background:linear-gradient(90deg,#102d39dd,#142d35a6 38%,#172d340f 85%);z-index:-1}
.ff-heading-inner,.ff-body {max-width:1280px;margin:auto;padding-inline:32px}
.ff-heading-inner {padding-block:34px 56px}
.ff-back {display:inline-flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:11px;color:white}
.ff-back::before {content:"";width:26px;height:2px;background:#ed9a88}
.ff-heading h1 {color:white;font:550 clamp(24px,2.45vw,39px)/1.08 Inter,Arial,sans-serif;letter-spacing:-.045em;margin:14px 0 15px}
.ff-heading h1 strong {display:block;font-size:1.85em;line-height:.99;font-weight:750;letter-spacing:-.065em}
.ff-heading nav {display:flex;gap:21px}
.ff-heading nav a {padding:2px 0;color:#fff;font-weight:550;font-size:14px}
.ff-heading nav [aria-current],.ff-heading nav a:hover {text-decoration:underline;text-underline-offset:5px}
.ff-body {padding-bottom:42px}
.ff-form {position:relative;margin:-30px 0 0;padding:17px 20px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 9px 30px -21px #152f3a80}
.ff--house .ff-form {margin:0}
.ff-trip summary {color:var(--ink);font-size:18px;font-weight:720;cursor:pointer}
.ff-trip summary span {margin-left:8px;font-size:13px;font-weight:450;color:var(--sub)}
.ff-trip[open] summary span {display:none}
.ff-main-fields {display:grid;grid-template-columns:minmax(180px,1.55fr) repeat(4,minmax(0,1fr)) auto;align-items:end;gap:10px;margin-top:10px}
.ff--house .ff-main-fields,.ff--region .ff-main-fields {grid-template-columns:minmax(150px,1.65fr) repeat(3,minmax(0,1fr)) auto}
.ff-form label {display:block;min-width:0;margin:0}
.ff-form label>span:first-child {display:block;color:var(--sub);font-size:12px;font-weight:650;margin-bottom:4px}
.ff-form input:not([type=checkbox]),.ff select {font:500 14px/1.3 Inter,Arial,sans-serif;color:var(--ink);background:#f6f7f5;border:1px solid #d3dad6;border-radius:9px;padding:0 11px;min-width:0;width:100%;height:44px}
.ff input[type=date] {appearance:none;-webkit-appearance:none}
.ff button {cursor:pointer;font-family:inherit}
.ff-submit,.ff-more,.ff-reset {border:0;border-radius:9px;background:var(--accent);color:white;font-weight:650;font-size:14px;min-height:44px;padding:8px 16px}
.ff-submit:hover,.ff-more:hover,.ff-reset:hover {background:#982620}
.ff-filterbar,.ff-quick,.ff-chips,.ff-applied {display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ff-filterbar {margin-top:15px;padding-top:13px;border-top:1px solid #e5e8e4;gap:12px}
.ff-quick button,.ff-opener,.ff-chips label span,.ff-applied button {display:inline-flex;align-items:center;gap:7px;border:1px solid #d1d9d4;border-radius:22px;background:white;color:var(--ink);min-height:38px;padding:6px 14px;font-size:14px;font-weight:520;cursor:pointer}
.ff-quick button::before,.ff-chips label span::before {content:"+";font-size:17px;line-height:1}
.ff-quick [aria-pressed=true],.ff-chips input:checked+span {background:#20464a;border-color:#20464a;color:white}
.ff-quick [aria-pressed=true]::before,.ff-chips input:checked+span::before {content:"✓"}
.ff-opener {margin-left:auto;border-color:#688083;font-weight:700}
.ff-opener span:not(:empty) {padding:0 6px;border-radius:10px;background:#e7efec;font-size:12px}
.ff-dialog {position:fixed;inset:0;margin:auto;padding:0;width:min(560px,calc(100% - 28px));max-height:85dvh;overflow:hidden;border:0;border-radius:18px;color:var(--ink);background:white;box-shadow:0 20px 70px #12273155}
.ff-dialog:not([open]) {display:none!important}
.ff-dialog[open] {display:flex;flex-direction:column}
.ff-dialog::backdrop {background:#0e252cb3}
body:has(.ff-dialog[open]) {overflow:hidden}
.ff-dialog header,.ff-dialog footer {flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 22px;background:white}
.ff-dialog header {border-bottom:1px solid var(--line)}
.ff-dialog footer {border-top:1px solid var(--line);padding-bottom:max(16px,env(safe-area-inset-bottom))}
.ff-dialog h2,.ff-tools h2,.ff-card h3,.ff-empty h3 {margin:0;color:var(--ink);font:700 25px/1.18 Inter,Arial,sans-serif;letter-spacing:-.045em}
.ff-dialog [data-close] {height:38px;width:38px;border-radius:50%;background:#f2f4f1;font-size:25px;line-height:1}
.ff-dialog-content {padding:18px 22px;overflow:auto;overscroll-behavior:contain}
.ff-dialog h3,.ff-dialog legend {color:var(--ink);font:680 16px/1.3 Inter,Arial,sans-serif;margin:0 0 10px}
.ff-extra-fields {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.ff-dialog fieldset {border:0;padding:0;margin:22px 0 0;min-width:0}
.ff-chips label {position:relative}
.ff-chips input {position:absolute;opacity:0;width:1px;height:1px}
.ff-chips input:focus-visible+span {outline:3px solid #297878}
.ff-dialog [data-reset-extra],.ff-applied .ff-clear,.ff-expand {font-size:13px;font-weight:650;color:#344e53;text-decoration:underline;text-underline-offset:3px;background:transparent;border:0}
.ff-dialog [disabled] {opacity:.45;cursor:default}
.ff-results {padding:0!important;margin-top:26px}
.ff-tools {display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.ff-tools h2 {scroll-margin-top:90px}
.ff-tools label {margin:0;display:flex;align-items:center;gap:9px;font-size:13px;color:var(--sub)}
.ff-tools select {width:auto;background:white;height:40px}
.ff-applied:not(:empty) {margin-bottom:14px}
.ff-applied button {min-height:32px;background:#eaf0ec;border-color:transparent;font-size:13px}
.ff-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ff-card {display:flex;flex-direction:column;background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden;min-width:0;color:var(--ink)}
.ff-card:hover {border-color:#849c98;box-shadow:0 5px 20px #17303912}
.ff-card img {width:100%;aspect-ratio:1.85;object-fit:cover;background:#e4e7de}
.ff-card-body {display:flex;flex:1;flex-direction:column;padding:16px 18px}
.ff-card small {font-weight:680;color:#765348;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.ff-card h3 {margin:5px 0 7px;font-size:clamp(19px,1.5vw,24px)}
.ff-facts,.ff-amenities,.ff-source,.ff-note {font-size:14px;color:var(--sub);margin:0 0 4px}
.ff-amenities {font-size:13px;margin-bottom:13px}
.ff-card-bottom {display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;margin-top:auto;font-size:13px}
.ff-card-bottom strong {font-size:19px}
.ff-arrow {margin-left:auto;color:var(--accent);font-size:19px}
.ff-empty {grid-column:1/-1;background:white;padding:22px;border:1px dashed #b9c8be;border-radius:13px}
.ff-empty p {margin:9px 0 16px}
.ff-source,.ff-note {margin:14px 0;font-size:13px}
.ff-more:not([hidden]) {display:block;margin:20px auto}
.ff--house .ff-body {padding:0;background:white}
@media(max-width:980px) {
 .ff-main-fields,.ff--region .ff-main-fields,.ff--house .ff-main-fields {grid-template-columns:repeat(3,minmax(0,1fr))}
 .ff-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
}
@media(max-width:680px) {
 .ff-body,.ff-heading-inner {padding-inline:16px}
 .ff-heading-inner {padding-block:20px 37px}
 .ff-heading h1 {margin:9px 0 12px}
 .ff-form {padding:13px;margin-top:-18px}
 .ff-main-fields,.ff--region .ff-main-fields,.ff--house .ff-main-fields {grid-template-columns:repeat(2,minmax(0,1fr))}
 .ff-filterbar {gap:8px;padding-top:10px;margin-top:10px}
 .ff-quick {gap:5px}
 .ff-quick button,.ff-opener {font-size:12px;min-height:38px;padding:5px 9px}
 .ff-opener {margin-left:0}
 .ff-grid {grid-template-columns:1fr}
 .ff-tools label {font-size:0}
 .ff-tools select {font-size:12px}
 .ff-results {margin-top:18px}
 .ff-tools h2 {font-size:22px}
 .ff-dialog {margin:auto 0 0;width:100%;max-width:100%;max-height:88dvh;border-radius:17px 17px 0 0}
 .ff-dialog header,.ff-dialog footer,.ff-dialog-content {padding-inline:16px}
 .ff-extra-fields {grid-template-columns:repeat(2,minmax(0,1fr))}
 .ff-chips label span {min-height:44px}
}

.ff--region .ff-ort-intro {max-width:54ch;color:white;line-height:1.5;margin:0 0 12px;text-wrap:pretty}
.ff--region .ff-heading nav {flex-wrap:wrap;gap:4px 18px}
.ff--region .ff-heading::before {background:linear-gradient(90deg,#102d39eb,#142d35bd 55%,#172d3455)}

.ff-ortswechsel {max-width:1216px;margin:24px auto 50px;padding:16px 20px;border-top:1px solid #cad6d2;display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px;color:#22484b}
.ff-ortswechsel strong {flex-basis:100%}.ff-ortswechsel a {padding:9px 0;text-decoration:underline;text-underline-offset:3px}
.ff--region .ff-heading h1 strong {overflow-wrap:break-word}
@media(max-width:420px){
 .ff-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,44%);gap:6px}
 .ff-tools label,.ff-tools select{min-width:0;width:100%;max-width:100%}
 .ff-tools select{padding-inline:7px}
}
