/* Startseite: Fertiger Entwurf mit den vorhandenen Tokens aus main.css. */
.home-page { background:#fff; color:#474746; font-size:15px; line-height:1.6; }
.home-page * { box-sizing:border-box; }
.home-page #wrapper,.home-page #content { background:#fff; }
.home-page #content > .inside { max-width:none; padding:0; }
.home-page a { color:inherit; text-decoration:none; }
.home-page a:hover { color:var(--accent-strong); }
.home-page p { margin:0; }
.home-page button { font:inherit; cursor:pointer; }
.home-page :focus-visible { outline:3px solid var(--accent-soft); outline-offset:5px; }
.home-page h1,.home-page h2,.home-page h3 { margin:0; color:inherit; }
.home-page h1,.home-page h2 { font-family:inherit; font-weight:700; letter-spacing:-.035em; }
.home-page h2 { font-size:clamp(29px,3.2vw,42px); line-height:1.12; }
.home-page .button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 18px; border-radius:var(--radius-btn); font-size:14px; font-weight:600; text-decoration:none; transition:filter .12s ease, transform .12s ease; }
.home-page .button:not(.btn-ghost) { color:#fff; }
.home-skip { position:fixed; top:-80px; left:16px; z-index:100; padding:12px; background:#fff; }
.home-skip:focus { top:8px; }

.home-hero { position:relative; isolation:isolate; width:calc(100% - 24px); max-width:1360px; margin:0 auto; height:480px; overflow:hidden; border-radius:var(--radius); background:#474746; color:#fff; }
.home-hero-photo { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:66% 48%; z-index:-2; }
.home-hero-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.25) 63%,rgba(0,0,0,.06)); }
.home-hero-copy { position:absolute; top:54px; left:26px; right:24px; }
.home-eyebrow { font-size:11px; font-weight:bold; letter-spacing:.13em; text-transform:uppercase; line-height:1.5; }
.home-hero-copy .home-eyebrow { margin-bottom:18px; }
.home-page h1 { font-size:clamp(44px,5.6vw,70px); line-height:1.04; }
.home-hero-copy > p:not(.home-eyebrow) { margin-top:23px; max-width:510px; font-size:15px; line-height:1.65; }
.home-desktop-break { display:none; }
.home-photo-credit:hover { color:#fff !important; }
.home-photo-credit { position:absolute; bottom:82px; left:26px; display:flex; align-items:center; gap:8px; font-size:11px; }
.home-photo-credit .fa-arrow-up { transform:rotate(45deg); }
.home-search { position:relative; z-index:4; width:calc(100% - 48px); max-width:1180px; margin:-48px auto 0; padding:12px; background:#fff; border:1px solid var(--border-soft); border-radius:var(--radius); box-shadow:var(--shadow-card); }
.home-search .search-box { display:grid; grid-template-columns:minmax(100px,.75fr) minmax(0,1.25fr); gap:8px; margin:0; width:100%; max-width:none; border:0; border-radius:var(--radius); box-shadow:none; background:#fff; padding:0; }
#content .inside .home-search form.search-box { margin:0; }
.home-search .search-box-field { min-height:64px; height:64px; padding:10px 14px; border:1px solid transparent; border-radius:var(--radius-control); background:var(--accent-tint); }
.home-search .search-box-ziel,.home-search .search-box-range { grid-column:1/-1; }
.home-search .search-box-field label { padding-left:24px; font-size:11px; line-height:14px; margin-bottom:4px; letter-spacing:0; text-transform:none; color:var(--accent-strong); }
.home-search .search-box-control { min-height:24px; gap:9px; }
.home-search .search-box-control > i { width:15px; font-size:15px; }
.home-search .search-box-control > select,.home-search .search-box-control > input,.home-search .search-range-trigger { height:24px; line-height:24px; font-size:15px; font-weight:400; }
.home-search .search-box-field:not(.search-box-submit):hover,.home-search .search-box-field:not(.search-box-submit):focus-within { background:var(--accent-tint); border-color:var(--accent-soft); }
.home-search .search-box-submit { display:flex; justify-content:center; border:0; padding:0; background:transparent; }
.home-search .search-box-submit button { width:100%; height:64px; min-height:64px; padding:0 24px; font-size:16px; font-weight:600; }
.home-section { width:calc(100% - 48px); max-width:1180px; margin:56px auto 0; scroll-margin-top:24px; }
.home-discovery { display:grid; gap:24px; }
.home-discovery-copy .home-eyebrow { color:var(--accent-strong); margin-bottom:13px; }
.home-discovery-copy > p:not(.home-eyebrow) { margin-top:18px; max-width:360px; font-size:14px; }
.home-region-options { display:flex; flex-wrap:wrap; gap:7px; margin:22px 0; }
.home-region { display:flex; align-items:center; gap:7px; border:1px solid var(--border-soft); background:#fff; border-radius:var(--radius-btn); padding:8px 11px; color:inherit; font-size:11px !important; line-height:1.3; font-weight:600; }
.home-region span { font-size:10px; min-width:17px; text-align:center; border-radius:var(--radius-btn); background:var(--accent-tint); color:var(--accent-strong); padding:1px 4px; }
.home-page .home-region.is-active { border-color:var(--accent); background:var(--accent); color:#fff; }
.home-region:hover { border-color:var(--accent); background:var(--accent-tint); }
.home-map-link { margin-top:2px; }
.home-map-panel { overflow:hidden; border:1px solid var(--border-soft); border-radius:var(--radius); min-width:0; box-shadow:var(--shadow-surface); }
#home-map { width:100%; height:320px; background:var(--accent-tint); position:relative; }
.home-map-loading { position:absolute; inset:0; margin:0; display:flex; align-items:center; justify-content:center; padding:30px; text-align:center; background:var(--accent-tint); z-index:1; }
.home-map-caption { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:14px 16px; background:#fff; font-size:11px; line-height:1.5; }
.home-map-caption > span:first-child { font-weight:bold; }
.home-map-caption > span:last-child { text-align:right; opacity:.65; }
.home-page .home-pin { display:flex; justify-content:center; align-items:center; min-width:35px; height:35px; padding:0 8px; border:2px solid #fff; border-radius:var(--radius-btn); background:var(--accent); color:#fff; box-shadow:var(--shadow-card); font-size:12px !important; font-weight:bold !important; }
.home-page .home-pin:hover,.home-page .home-pin:focus-visible { color:#fff; background:var(--accent-strong); z-index:10; }
.home-pin.is-region { width:40px; height:40px; font-size:15px !important; }
.home-pin.is-region-match { background:var(--accent-strong); }
.home-stay.is-region-match .home-stay-photo { box-shadow:0 0 0 3px var(--accent); }
.home-section-heading { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:18px; margin-bottom:25px; }
.home-section-heading .home-eyebrow { margin-bottom:12px; color:var(--accent-strong); }
.home-section-heading > a.button { font-size:12px; }
.home-section-heading > a .fa { margin-left:7px; }
.home-destination-grid { display:flex; flex-wrap:wrap; gap:12px; }
.home-destination { display:flex; flex:1 1 calc((100% - 12px)/2); flex-direction:column; min-width:0; overflow:hidden; border:1px solid var(--border-soft); border-radius:var(--radius); background:#fff; }
.home-destination img { display:block; width:100%; height:100px; object-fit:cover; }
.home-destination-name { display:flex; flex:1; align-items:center; justify-content:space-between; gap:8px; padding:12px; font-size:13px; font-weight:bold; line-height:1.4; overflow-wrap:anywhere; }
.home-destination-name .fa { flex-shrink:0; font-size:12px; color:var(--accent-strong); }
.home-destination:hover { border-color:var(--accent); }
.home-stay-grid { display:grid; gap:32px; }
.home-stay { display:flex; flex-direction:column; min-width:0; }
.home-stay:nth-child(n+4) { display:none; }
.home-stay-photo { display:block; flex-shrink:0; position:relative; height:260px; overflow:hidden; border-radius:var(--radius); }
.home-stay-photo img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.home-stay-photo:hover img { transform:scale(1.025); }
.home-stay-body { display:flex; flex:1; flex-direction:column; padding:17px 0 0; }
.home-stay-location { font-size:11px; color:var(--accent-strong); margin-bottom:7px !important; }
.home-stay h3 { font-family:inherit; font-size:23px; font-weight:700; line-height:1.2; letter-spacing:-.02em; }
.home-stay-description { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; flex:1; min-height:66.3px; margin-top:11px !important; font-size:13px; line-height:1.7; }
.home-stay-facts { margin-top:6px !important; font-size:10px; opacity:.72; }
.home-stay-facts span { margin:0 3px; }
.home-stay-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; padding-top:14px; border-top:1px solid var(--border-soft); }
.home-stay-bottom strong { font-size:14px; font-weight:normal; }
.home-stay-bottom small { display:block; font-size:10px; opacity:.7; }
.home-stay-bottom > a.button { flex-shrink:0; gap:6px; min-height:36px; padding:7px 12px; font-size:12px; }
.home-direct { display:grid; gap:25px; padding:30px 24px; background:var(--accent-tint); border-radius:var(--radius); }
.home-direct > div > .home-eyebrow { color:var(--accent-strong); margin-bottom:14px; }
.home-direct-steps { display:grid; gap:22px; }
.home-direct-steps > div > span { display:block; color:var(--accent); font-size:24px; margin-bottom:10px; }
.home-direct-steps h3 { font-size:14px; font-weight:bold; margin-bottom:9px; }
.home-direct-steps p { font-size:12px; line-height:1.7; }
.home-owner { padding:0 0 40px; }
.home-owner-banner { display:block; position:relative; width:100%; height:200px; overflow:hidden; border-radius:var(--radius); box-shadow:var(--shadow-surface); }
.home-owner-background { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.home-owner-logo { position:absolute; right:5%; top:34%; transform:translateY(-50%); display:block; width:52%; max-width:420px; height:auto; }
.home-page .home-owner-cta { position:absolute; right:5%; bottom:24px; max-width:90%; font-size:12px; }
.home-owner-banner:hover .home-owner-cta { background:var(--accent-strong); }

@media (max-width:640px) {
    #header .header-login-text { display:none; }
    #header .header-login-link { justify-content:center; min-width:40px; width:40px; padding:0; }
    #header .header-nav { gap:3px; }
    #header .header-logo { flex-basis:140px; }
    #header .header-logo img { width:140px; }
    #header .header-nav .header-cta { padding-right:10px; padding-left:10px; }
    .home-hero { height:300px; }
    .home-hero-copy { left:22px; right:20px; top:27px; }
    .home-hero-copy .home-eyebrow { margin-bottom:12px; font-size:10px; }
    .home-page h1 { font-size:clamp(32px,9.5vw,50px); }
    .home-hero-copy > p:not(.home-eyebrow) { font-size:14px; line-height:1.5; margin-top:15px; }
    .home-photo-credit { bottom:61px; left:22px; font-size:10px; }
    .home-search { width:calc(100% - 36px); margin-top:-38px; padding:12px; }
    .home-section { margin-top:40px; }
    .home-discovery-copy > p:not(.home-eyebrow) { margin-top:13px; }
}
@media (max-width:360px) {
    .home-destination-name { padding:10px 8px; font-size:12px; }
    .home-destination-name .fa { display:none; }
    #header .header-nav .header-cta { gap:5px; padding-right:8px; padding-left:8px; }
    .home-hero-copy { left:18px; right:16px; top:23px; }
}
@media (min-width:641px) {
    .home-stay-bottom { min-height:64px; align-items:flex-start; }
    .home-owner-banner { height:300px; }
    .home-owner-logo { right:7%; width:44%; top:40%; }
    .home-page .home-owner-cta { right:7%; bottom:45px; font-size:14px; }
    .home-hero { width:calc(100% - 48px); height:490px; }
    .home-hero-copy { top:84px; left:52px; }
    .home-photo-credit { bottom:90px; left:auto; right:30px; }
    .home-search { margin-top:-48px; width:calc(100% - 80px); }
    .home-search .search-box { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-search .search-box-ziel,.home-search .search-box-range { grid-column:auto; }
    .home-section { margin-top:70px; width:calc(100% - 80px); }
    .home-discovery { grid-template-columns:minmax(250px,.9fr) minmax(0,1.4fr); gap:24px 42px; align-items:start; }
    #home-map { height:400px; }
    .home-stay-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
    .home-destination-grid { gap:18px; }
    .home-destination { flex-basis:calc((100% - 36px)/3); }
    .home-destination img { height:150px; }
    .home-destination-name { padding:12px; font-size:14px; gap:6px; }
    .home-stay-photo { height:220px; }
    .home-stay h3 { font-size:22px; }
    .home-direct { grid-template-columns:1fr 2fr; gap:45px; padding:40px; }
    .home-direct-steps { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
}
@media (min-width:1000px) {
    .home-hero { height:500px; }
    .home-hero-copy { left:80px; top:96px; }
    .home-hero-copy > p:not(.home-eyebrow) { font-size:17px; }
    .home-desktop-break { display:initial; }
    .home-search .search-box { grid-template-columns:minmax(0,1.35fr) minmax(0,1.65fr) minmax(110px,.65fr) 140px; }
    .home-search .search-box-submit button { padding:0 18px; }
    .home-stay-photo { height:265px; }
    #home-map { height:430px; }
}
@media (min-width:1200px) {
    .home-destination-name { padding:15px; font-size:15px; gap:8px; }
    .home-stay-grid.has-four { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .home-stay:nth-child(n+4) { display:flex; }
}
@media (prefers-reduced-motion:reduce) {
    .home-page .button,.home-search .search-box-submit button { transition:none; }
    .home-stay-photo img { transition:none; }
    .home-stay-photo:hover img { transform:none; }
}
