/* MietKalle: single-source, mobile-first brand stylesheet. */
body.portal-theme--mietkalle{--mk-yellow:#ffbf00;--mk-ink:#081426;background:#f3f5f7;color:var(--mk-ink)}
body.portal-theme--mietkalle .portal-page,body.portal-theme--mietkalle .portal-shell,body.portal-theme--mietkalle .portal-main{max-width:none;width:100%;margin:0;padding:0}
.mk-page{background:#fff;min-height:100vh}.mk-page *,.mk-header *{box-sizing:border-box}
.mk-header{max-width:1280px;width:calc(100% - 32px);margin:16px auto 0;min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:9px 22px;background:#fff;border-radius:17px 17px 0 0;position:sticky;top:0;z-index:100;background:rgba(255,255,255,.98);transition:background .2s ease,box-shadow .2s ease,backdrop-filter .2s ease}
.mk-header--scrolled{background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(18px) saturate(1.35);backdrop-filter:blur(18px) saturate(1.35);box-shadow:0 8px 30px rgba(6,22,36,.14);border-radius:0 0 16px 16px}
.mk-logo{display:flex;align-items:center;gap:7px;font-size:clamp(25px,2.4vw,35px);font-weight:950;letter-spacing:-.065em;text-decoration:none!important;color:var(--mk-ink)!important;white-space:nowrap}
.mk-logo>span:last-child>span{color:#f3a800}.mk-logo-symbol{display:grid;place-items:center;background:#ffeba8;border-radius:50%;height:44px;width:44px;font-size:29px}
.mk-header nav{display:flex;gap:clamp(10px,1.8vw,26px)}.mk-header nav a{font-size:13px;font-weight:800;text-decoration:none;color:var(--mk-ink)}
.mk-header-tools{display:flex;align-items:center;gap:12px}.mk-location{display:flex;align-items:center;gap:6px;padding:10px 12px;border:1px solid #e4e8ed;border-radius:22px;text-decoration:none;color:var(--mk-ink);font-size:12px;font-weight:700;white-space:nowrap}.mk-location svg{height:16px;width:16px}.mk-location svg:last-child{height:12px;width:12px}
.mk-header-icon{width:32px;height:36px;display:grid;place-items:center;color:var(--mk-ink)}.mk-header-icon svg{width:23px;height:23px}
.mk-header-cta,.mk-search button,.mk-offer-action{background:var(--mk-yellow);color:var(--mk-ink)!important;border:0;border-radius:10px;font-weight:850;text-decoration:none!important;cursor:pointer}.mk-header-cta{padding:13px 15px;font-size:12px;white-space:nowrap}
.mk-hero{position:relative;isolation:isolate;overflow:hidden;min-height:505px;background:#e7eef4}
.mk-hero-art{position:absolute;inset:0;z-index:0;pointer-events:none;background-position:center center;background-size:cover;background-repeat:no-repeat}

.mk-hero:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(243,247,249,.83) 0%,rgba(243,247,249,.48) 28%,rgba(243,247,249,.08) 53%,transparent 75%)}
.mk-hero-inner{position:relative;z-index:2;max-width:1280px;margin:auto;padding:42px 32px 20px}
.mk-eyebrow{font-size:12px;letter-spacing:.15em;font-weight:900;margin:0}
.mk-hero h1{font-size:clamp(42px,4.4vw,68px);line-height:1.03;letter-spacing:-.07em;font-weight:950;margin:16px 0 12px;max-width:790px}
.mk-hero mark{background:var(--mk-yellow);padding:.01em .12em .06em;border-radius:8px;box-decoration-break:clone;-webkit-box-decoration-break:clone;display:inline-block;transform:rotate(-1deg)}
.mk-hero-inner>p:not(.mk-eyebrow){font-size:17px;line-height:1.4;margin:0;max-width:500px}
.mk-search{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:8px;margin-top:36px;background:white;padding:10px;border-radius:16px;box-shadow:0 12px 30px #07142625}
.mk-search label{min-width:0;padding:9px 12px;background:#fafafa;border:1px solid #e5e8ed;border-radius:10px;font-size:12px;font-weight:850}
.mk-search-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:0;border:1px solid #e5e8ed;background:#fafafa;border-radius:10px;margin:0;padding:5px 7px 6px}
.mk-search-dates legend{font-size:12px;font-weight:850;padding:0 4px}
.mk-search-dates label{border:0;background:transparent;padding:0 2px;font-size:10px;color:#556276}
.mk-search-dates input{padding:4px 0 0;font-size:11px;max-width:100%;min-width:0}

.mk-search input{display:block;width:100%;min-width:0;border:0;background:transparent;padding:5px 0 0;outline:0;font:500 13px system-ui;color:#17253a}
.mk-search button{padding:13px 20px;white-space:nowrap}
.mk-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}
.mk-benefits>span{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;column-gap:11px;align-content:center;min-height:56px;padding:4px 8px;background:rgba(255,255,255,.47);border-radius:40px}
.mk-benefits svg{grid-row:1/3;align-self:center;background:#061c27;color:#fff;width:48px;height:48px;padding:12px;border-radius:50%;stroke-width:1.8}
.mk-benefits strong{font-size:14px;align-self:end}.mk-benefits small{font-size:12px;align-self:start}
.mk-content-width{max-width:1280px;margin-inline:auto}.mk-section{padding:18px 28px}
.mk-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.mk-category-nav{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;gap:8px;align-items:center}
.mk-category-arrow{border:0;background:#f2f2f0;border-radius:50%;height:32px;width:32px;cursor:pointer;font-size:27px;line-height:1;color:#101b2c}
.mk-categories{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
.mk-categories::-webkit-scrollbar{display:none}
.mk-category{flex:0 0 calc((100% - 36px)/5);scroll-snap-align:start;min-height:85px;background:#f3f3f2;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;color:var(--mk-ink)!important;text-decoration:none!important}
.mk-category.is-active{background:var(--mk-yellow)}.mk-category strong{font-size:13px}.mk-category-icon{width:31px;height:31px}.mk-category-icon svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mk-section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:0 0 14px}.mk-section-heading h2,.mk-landlord h2{font-size:clamp(24px,2.5vw,34px);font-weight:950;letter-spacing:-.05em;line-height:1.1;margin:0}.mk-section-heading p{margin:5px 0 0;font-size:13px}.mk-section-heading>a{font-size:13px;color:#e56a00;text-decoration:none;white-space:nowrap}
.mk-heading-rays{color:#ffbd00;font-size:25px;display:inline-block;margin-left:8px;vertical-align:top;transform:rotate(-18deg)}
.mk-offers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}
.mk-offer{min-width:0;border:1px solid #e6e8eb;border-radius:11px;overflow:hidden;display:flex;flex-direction:column;background:white;box-shadow:0 2px 8px #11182708}
.mk-offer-image{width:100%;height:auto;aspect-ratio:1.88;overflow:hidden;background:#f4f4f4;flex:none}.mk-offer-image img{display:block;width:100%;height:100%;max-height:100%;object-fit:cover}.mk-offer-no-image{height:100%;display:grid;place-items:center;color:#a2aab5}.mk-offer-no-image svg{width:44px;height:44px}
.mk-offer-body{padding:10px;display:flex;flex-direction:column;flex:1;gap:9px}.mk-offer h3{font-size:15px;font-weight:850;line-height:1.25;margin:0;min-height:1.25em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mk-offer-provider{display:flex;align-items:center;gap:7px;min-width:0}.mk-offer-avatar{display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:50%;background:#e5edf0;color:#1c3a46;font-size:12px;font-weight:850}.mk-offer-provider>span:last-child{display:flex;flex-direction:column;min-width:0}.mk-offer-provider strong{font-size:11px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mk-offer-provider small{font-size:10px;color:#677184}.mk-offer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px;margin-top:auto}.mk-offer-price{font-size:15px;font-weight:900;white-space:nowrap}.mk-offer-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;font-size:11px;padding:9px 11px;white-space:nowrap}.mk-offer-action--disabled{background:#eceff1;color:#555!important;white-space:normal}.mk-empty{grid-column:1/-1;padding:24px;background:#f6f7f8;border-radius:10px}
/* Three-stage rental process: one compact strip below offer cards. */
.mk-process{padding-top:2px;padding-bottom:7px}
.mk-process-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;list-style:none;margin:0;padding:0;background:#f5f5f3;border-radius:12px;overflow:hidden}
.mk-process-step{display:flex;align-items:center;gap:13px;min-width:0;padding:12px 15px;position:relative}
.mk-process-step:not(:last-child){border-right:1px solid #e7e9eb}
.mk-process-number{display:grid;place-items:center;background:#0d192e;color:#fff;font-size:14px;font-weight:850;width:34px;height:34px;flex:0 0 34px;border-radius:50%}
.mk-process-icon{width:28px;height:28px;flex:0 0 28px;color:#071629}
.mk-process-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.mk-process-copy strong{font-size:13px;font-weight:850;line-height:1.2}
.mk-process-copy small{font-size:11px;color:#576275;line-height:1.25}
.mk-process-next{margin-left:auto;color:#edaa00;width:22px;height:22px;flex:0 0 22px}
/* Vermieter promotion is informational until a real onboarding flow exists. */
.mk-landlord-section{padding-top:1px;padding-bottom:15px}
.mk-landlord{position:relative;isolation:isolate;display:grid;grid-template-columns:140px minmax(0,1fr) auto 95px;align-items:center;gap:15px;min-height:100px;margin:0;padding:7px 17px 7px 0;border-radius:13px;background:linear-gradient(95deg,#fff0ce 0%,#fff8e9 48%,#ffebbe 100%);overflow:hidden}
.mk-landlord-art{align-self:end;width:140px;height:99px;display:flex;align-items:end;justify-content:center}
.mk-landlord-art svg{width:135px;max-height:98px}
.mk-landlord-copy{min-width:0}
.mk-landlord h2{margin:0;font-size:clamp(22px,2.15vw,30px);line-height:1.08;font-weight:950;letter-spacing:-.055em}
.mk-landlord p{font-size:12px;line-height:1.4;margin:6px 0 0;color:#384052}
.mk-landlord-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:#ffbf00;color:#111827;border-radius:11px;padding:14px 18px;font-weight:850;font-size:12px;white-space:nowrap}
.mk-landlord-cta span{font-size:19px}
.mk-landlord-decoration{width:95px;overflow:hidden;align-self:end}
.mk-landlord-decoration svg{display:block;width:100px;height:95px}
.mk-footer{max-width:1280px;margin:auto;padding:22px 28px;display:flex;justify-content:space-between;border-top:1px solid #eee}.mk-footer strong{font-size:23px}.mk-footer strong span{color:#e9a000}
@media(max-width:1120px){.mk-header nav{gap:10px}.mk-header-icon{display:none}.mk-location{display:none}.mk-header{gap:10px}.mk-header nav a{font-size:12px}}
@media(max-width:760px){.mk-header{width:100%;margin:0;border-radius:0;padding:8px 13px;min-height:59px}.mk-header nav,.mk-header-tools{display:none}.mk-logo{font-size:26px}.mk-logo-symbol{height:37px;width:37px;font-size:25px}.mk-hero{min-height:0}.mk-hero-art{height:295px;background-position:65% center;background-size:auto 100%}.mk-hero:before{background:linear-gradient(90deg,rgba(246,250,252,.91),rgba(246,250,252,.46) 62%,rgba(246,250,252,.03)),linear-gradient(0deg,#fff 0%,transparent 52%)}.mk-hero-inner{padding:24px 14px 16px}.mk-hero h1{font-size:clamp(33px,8.6vw,48px);max-width:100%}.mk-hero-inner>p:not(.mk-eyebrow){font-size:14px;max-width:76%}.mk-search{grid-template-columns:1fr;margin-top:20px;gap:7px;padding:9px}.mk-search button{grid-column:auto}.mk-benefits{display:none}.mk-section{padding:15px 12px}.mk-category-nav{grid-template-columns:22px minmax(0,1fr) 22px;gap:3px}.mk-category-arrow{width:22px;height:30px;font-size:23px}.mk-category{flex:0 0 115px;min-height:82px}.mk-offers{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.mk-offer-image{aspect-ratio:1.45}.mk-offer-body{padding:8px;gap:7px}.mk-offer h3{font-size:13px}.mk-offer-provider strong{font-size:10px}.mk-offer-provider small{font-size:10px}.mk-offer-price{font-size:13px}.mk-offer-bottom{display:block}.mk-offer-action{width:100%;margin-top:7px}.mk-section-heading h2{font-size:24px}.mk-section-heading>a{font-size:11px}.mk-process-list{grid-template-columns:1fr}.mk-process-step{padding:10px 13px}.mk-process-step:not(:last-child){border-right:0;border-bottom:1px solid #e7e9eb}.mk-process-next{display:none}.mk-landlord{grid-template-columns:70px minmax(0,1fr);padding:12px;gap:9px;min-height:0}.mk-landlord-art{width:70px;height:75px;grid-row:1/3}.mk-landlord-art svg{width:80px;height:75px}.mk-landlord-copy h2{font-size:21px}.mk-landlord-cta{grid-column:2;justify-self:start;white-space:normal;padding:10px 12px;font-size:11px}.mk-landlord-decoration{display:none}.mk-footer{display:block;padding:18px}}



/* MietKalle reveal footer: reuse the Portal Core page/content/footer shell. */
body.portal-theme--mietkalle .portal-page{position:relative;isolation:isolate;background:#081621}
body.portal-theme--mietkalle .portal-page__content{position:relative;z-index:2;min-height:100vh;background:#fff;border-radius:0 0 25px 25px;box-shadow:0 20px 55px #030d1940}
body.portal-theme--mietkalle .portal-page__footer{position:sticky;bottom:0;z-index:1;background:#081621}
.mk-reveal-footer{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 82% 10%,#344d4a77,transparent 44%),linear-gradient(145deg,#091927,#09131e 70%,#142b30);color:#f7f8f6;font-family:Inter,ui-sans-serif,system-ui,sans-serif}
.mk-reveal-footer *{box-sizing:border-box}
.mk-reveal-footer a{color:inherit;text-decoration:none}
.mk-reveal-footer a:focus-visible{outline:3px solid #ffbf00;outline-offset:5px}
.mk-reveal-footer__glow{position:absolute;right:-140px;top:-180px;width:550px;height:550px;border-radius:50%;background:#f4bc1720;filter:blur(75px);pointer-events:none;z-index:-1}
.mk-reveal-footer__container{position:relative;max-width:1280px;margin-inline:auto;padding:46px 30px 24px}
.mk-reveal-footer__hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(310px,.8fr);align-items:center;gap:34px;border-bottom:1px solid #ffffff2b;padding-bottom:28px}
.mk-reveal-footer__eyebrow{display:inline-flex;align-items:center;gap:10px;letter-spacing:.16em;color:#f4bd3a;font-size:12px;font-weight:850}
.mk-reveal-footer__eyebrow>span{width:8px;height:8px;border-radius:50%;background:#ffc928;box-shadow:0 0 0 6px #ffc9281c}
.mk-reveal-footer h2{color:#fff;font-weight:950;font-size:clamp(40px,5.7vw,72px);line-height:1;letter-spacing:-.07em;margin:17px 0}
.mk-reveal-footer h2 em{color:#ffbf00;font-style:normal}
.mk-reveal-footer__message>p{color:#bec9cf;font-size:16px;line-height:1.6;max-width:555px;margin:0}
.mk-reveal-footer__actions{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:25px}
.mk-reveal-footer__button{display:inline-flex;align-items:center;justify-content:center;gap:18px;background:#ffbf00;color:#111827!important;border-radius:12px;padding:14px 20px;font-size:14px;font-weight:850;min-height:48px;transition:transform .2s,box-shadow .2s}
.mk-reveal-footer__text-link{display:inline-flex;align-items:center;gap:10px;border:1px solid #ffffff55;padding:13px 18px;border-radius:12px;font-size:14px;font-weight:750}
.mk-reveal-footer__scene{position:relative;display:grid;place-items:center;min-height:260px}
.mk-reveal-footer__scene-orbit{position:absolute;inset:6% 12% 8%;border:1px solid #f0c35830;border-radius:50%;background:radial-gradient(circle,#f5b91c24 0,transparent 66%)}
.mk-reveal-footer__scene svg{position:relative;z-index:1;width:min(100%,410px);max-height:270px;filter:drop-shadow(0 15px 16px #0008)}
.mk-reveal-footer__scene-label{position:absolute;right:10px;bottom:0;font-size:11px;font-weight:850;letter-spacing:.13em;color:#f7c957;border:1px solid #f7c95740;padding:9px 12px;border-radius:30px;background:#0d222e}
.mk-reveal-footer__navigation{display:grid;grid-template-columns:1.6fr repeat(3,minmax(0,1fr));gap:25px;padding:28px 0 16px}
.mk-reveal-footer__logo{font-size:32px;font-weight:950;letter-spacing:-.06em}
.mk-reveal-footer__logo>span:first-child{color:#ffbf00}
.mk-reveal-footer__logo-dot{color:#fff}
.mk-reveal-footer__brand p{font-size:13px;color:#aebbc3;margin:6px 0 0}
.mk-reveal-footer__navigation nav{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.mk-reveal-footer__navigation h3{font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.11em;color:#ffcc58;margin:0 0 5px}
.mk-reveal-footer__navigation nav a{font-size:13px;color:#dbe3e6;line-height:1.4}
.mk-reveal-footer__navigation nav a:hover,.mk-reveal-footer__bottom a:hover{color:#ffbf00}
.mk-reveal-footer__wordmark{margin:6px 0 0;white-space:nowrap;overflow:hidden;color:#d5e2ea1b;font-size:clamp(54px,10vw,130px);font-weight:950;line-height:1;letter-spacing:-.07em;user-select:none}
.mk-reveal-footer__wordmark span{color:#ffbf002c}
.mk-reveal-footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #ffffff25;padding-top:18px;margin-top:14px;font-size:12px;color:#aab8bf}
.mk-reveal-footer__bottom a{font-weight:700;color:#f7fafb}
@media(hover:hover){.mk-reveal-footer__button:hover{transform:translateY(-2px);box-shadow:0 10px 30px #ffbf0032}}
@media(max-width:850px){.mk-reveal-footer__hero{grid-template-columns:1fr;gap:8px}.mk-reveal-footer__scene{min-height:175px}.mk-reveal-footer__scene svg{max-height:185px}.mk-reveal-footer__navigation{grid-template-columns:repeat(3,minmax(0,1fr))}.mk-reveal-footer__brand{grid-column:1/-1}}
@media(max-width:600px){body.portal-theme--mietkalle .portal-page__content{border-radius:0 0 17px 17px}.mk-reveal-footer__container{padding:33px 18px 26px}.mk-reveal-footer h2{font-size:clamp(37px,10vw,52px)}.mk-reveal-footer__message>p{font-size:14px}.mk-reveal-footer__actions{align-items:stretch}.mk-reveal-footer__button,.mk-reveal-footer__text-link{width:100%;justify-content:center}.mk-reveal-footer__scene{min-height:145px}.mk-reveal-footer__scene svg{max-height:150px}.mk-reveal-footer__scene-label{font-size:9px}.mk-reveal-footer__navigation{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 16px}.mk-reveal-footer__navigation h3{font-size:11px}.mk-reveal-footer__wordmark{font-size:15vw}.mk-reveal-footer__bottom{align-items:flex-start;flex-wrap:wrap;gap:12px}.mk-reveal-footer__bottom>span{display:none}}
@media(prefers-reduced-motion:reduce){.mk-reveal-footer__button{transition:none}}

/* Dedicated mobile web navigation; native portal apps retain their own bar. */
.mk-mobile-nav{display:none}
@media(max-width:760px){
  body.portal-theme--mietkalle.portal-is-web .mk-mobile-nav{
    position:fixed;left:0;right:0;bottom:0;z-index:150;
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;
    min-height:64px;padding:7px 8px max(7px,env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96);border-top:1px solid #e6e9ed;
    -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
    box-shadow:0 -8px 26px #07152316;
  }
  .mk-mobile-nav a{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:47px;color:#122033;text-decoration:none;font-size:10px;font-weight:750}
  .mk-mobile-nav svg{width:22px;height:22px}
  .mk-mobile-nav a.is-active{color:#c88b00}
  .mk-mobile-nav a:focus-visible{outline:2px solid #d79d00;outline-offset:-2px;border-radius:7px}
  body.portal-theme--mietkalle.portal-is-web .portal-page__footer{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  body.portal-theme--mietkalle.portal-is-web .mk-page{padding-bottom:10px}
  body.portal-theme--mietkalle #kategorien,body.portal-theme--mietkalle #angebote,body.portal-theme--mietkalle #vermieter{scroll-margin-top:72px}
}

/* Active search and pagination controls. */
.mk-search-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff8e6;border:1px solid #ffe2a0;border-radius:10px;padding:11px 14px;margin-bottom:13px;font-size:13px}
.mk-search-summary>span{display:flex;flex-wrap:wrap;gap:5px 12px}.mk-search-summary strong{margin-right:4px}
.mk-search-summary a,.mk-empty a{font-weight:800;color:#9b6800;text-decoration:underline;text-underline-offset:3px}
.mk-search-note{background:#f4f7f9;color:#34485c;padding:10px 14px;border-radius:9px;font-size:12px;margin:0 0 12px}
.mk-empty{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.mk-empty strong{font-size:16px}.mk-empty p{margin:0;font-size:13px;color:#526173}
.mk-pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:18px}
.mk-pagination a,.mk-pagination span{padding:10px 15px;border-radius:10px;font-size:13px;font-weight:800}
.mk-pagination a{background:#ffbf00;color:#101827;text-decoration:none}.mk-pagination span{background:#f2f4f6;color:#81909b}
#angebote{scroll-margin-top:85px}

/* Shared Portal Core location dialog with MietKalle colors. */
body.portal-theme--mietkalle{--portal-location-accent:#aa7800;--portal-location-ink:#081426;--portal-location-border:#dfe5eb}
body.portal-theme--mietkalle .mk-location{background:#fff;cursor:pointer;font-family:inherit}
body.portal-theme--mietkalle .mk-location:hover{background:#fff8e6;border-color:#ffc928}
body.portal-theme--mietkalle .sk-location-result:hover{background:#fff8e6}
body.portal-theme--mietkalle .sk-location-result__pin{background:#fff4cf}
body.portal-theme--mietkalle .sk-location-dialog__gps{background:#fff9e9;border-color:#ffe6a2}
body.portal-theme--mietkalle .sk-location-dialog__search:focus-within{border-color:#edb40a;box-shadow:0 0 0 3px #ffc92820}
@media(max-width:760px){
  body.portal-theme--mietkalle .mk-header-tools{display:flex;align-items:center;margin-left:auto}
  body.portal-theme--mietkalle .mk-location{display:flex;padding:7px 9px;max-width:145px;min-width:0;gap:5px}
  body.portal-theme--mietkalle .mk-location span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  body.portal-theme--mietkalle .mk-header-cta,body.portal-theme--mietkalle .mk-header-icon{display:none}
}

/* MietKalle rental detail page: standalone within existing theme shell */
.mk-detail-shell{max-width:1280px;margin-inline:auto;padding:25px 28px 70px}
.mk-detail-crumbs{display:flex;flex-wrap:wrap;gap:9px;align-items:center;color:#667283;font-size:13px;margin-bottom:21px}
.mk-detail-crumbs a{color:#35465a;text-decoration:none}.mk-detail-crumbs a:hover{text-decoration:underline}
.mk-detail-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:35px;align-items:start}
.mk-detail-main{min-width:0}
.mk-detail-info{position:sticky;top:92px;align-self:start;max-height:calc(100vh - 105px);overflow:auto;scrollbar-width:thin;scrollbar-color:#d9dfe6 transparent}
.mk-detail-media{aspect-ratio:1.28;border-radius:18px;overflow:hidden;background:#f3f4f5;border:1px solid #e7e8eb}
.mk-detail-media img{width:100%;height:100%;object-fit:contain;display:block}
.mk-detail-media-placeholder{height:100%;display:grid;place-items:center;color:#79848d}
.mk-detail-info{padding-top:10px}
.mk-detail-kicker{letter-spacing:.15em;color:#a97900;font-weight:900;font-size:12px}
.mk-detail-info h1{font-size:clamp(32px,3.7vw,52px);letter-spacing:-.06em;line-height:1.08;margin:12px 0 23px;color:#081426}
.mk-detail-provider{display:flex;align-items:center;gap:10px;margin:0 0 22px}
.mk-detail-provider .mk-offer-avatar{width:40px;height:40px;font-size:16px}
.mk-detail-provider>span:last-child{display:flex;flex-direction:column;gap:3px}
.mk-detail-provider strong{font-size:15px}.mk-detail-provider small{color:#5b6877;font-size:13px}
.mk-detail-price{padding:17px 20px;background:#fff7dd;border-radius:13px;display:flex;flex-direction:column;gap:4px;border:1px solid #ffe7aa}
.mk-detail-price small{color:#5b5e62;font-size:12px}.mk-detail-price strong{font-weight:950;color:#091625;font-size:29px}
.mk-detail-disclaimer{font-size:13px;line-height:1.55;color:#5d6873;margin:16px 0}
.mk-detail-cta{display:flex;justify-content:center;align-items:center;gap:14px;width:100%;padding:16px 20px;border-radius:12px;background:#ffbf00;color:#071624;text-decoration:none;font-size:15px;font-weight:900}
.mk-detail-cta--inactive{background:#ebedf0;color:#636a73}.mk-detail-back{display:inline-block;margin-top:17px;color:#354a59;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.mk-detail-description,.mk-detail-variants{padding-top:26px;margin-top:29px;border-top:1px solid #e4e6e9;max-width:850px}
.mk-detail-description h2,.mk-detail-variants h2{font-size:26px;letter-spacing:-.045em;margin:0 0 14px;font-weight:900}
.mk-detail-description>div{color:#283747;line-height:1.65;overflow-wrap:anywhere}.mk-detail-description>div p{margin:0 0 12px}
.mk-detail-variant-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mk-detail-variant{border:1px solid #e6e8ed;padding:13px 16px;border-radius:10px;display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px}
.mk-detail-variant strong{font-weight:800}.mk-detail-variant span{font-weight:900;white-space:nowrap}
.mk-detail-variants>p{font-size:12px;color:#657180}
@media(max-width:760px){.mk-detail-shell{padding:18px 13px 95px}.mk-detail-layout{grid-template-columns:1fr;gap:20px}.mk-detail-media{aspect-ratio:1.35}.mk-detail-info h1{font-size:36px;margin-bottom:16px}.mk-detail-variant-grid{grid-template-columns:1fr}.mk-detail-description h2,.mk-detail-variants h2{font-size:23px}}

/* Detail refinement: content hierarchy, genuine variants and contained inquiry panel. */
.mk-detail-description,.mk-detail-variants{max-width:none;margin-top:24px;padding-top:22px}
.mk-detail-prose{font-size:14px;line-height:1.7;color:#26374b}
.mk-detail-prose h3{font-size:17px;font-weight:900;letter-spacing:-.025em;margin:21px 0 9px;color:#0c1c30}
.mk-detail-prose h3:first-child{margin-top:4px}
.mk-detail-prose p{margin:0 0 12px}
.mk-detail-prose ul,.mk-detail-prose ol{margin:9px 0 15px;padding-left:22px}
.mk-detail-prose li{padding:2px 0}
.mk-detail-prose a{color:#996b00;text-decoration:underline}
.mk-detail-variants-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:15px}
.mk-detail-variants-heading h2{margin:0}
.mk-detail-variants-heading>span{font-size:11px;font-weight:750;color:#58667b}
.mk-detail-variant-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.mk-detail-variant{display:grid;grid-template-columns:27px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:3px 8px;min-height:80px;padding:12px;background:#fcfcfb;border:1px solid #dfe5eb;border-radius:12px}
.mk-detail-variant-icon{grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#fff0c5;color:#9b6d00}
.mk-detail-variant-icon svg{width:16px;height:16px}
.mk-detail-variant strong{font-size:12px;line-height:1.35;font-weight:850;overflow-wrap:anywhere}
.mk-detail-variant-price{grid-column:2;font-size:15px;font-weight:950;white-space:normal}
.mk-detail-trust{display:flex;align-items:flex-start;gap:9px;margin-top:25px;padding:14px;border-top:1px solid #e5e8eb;color:#617081;font-size:11px;line-height:1.45}
.mk-detail-trust svg{width:19px;height:19px;flex:0 0 19px;color:#12664b}
@media(max-width:760px){.mk-detail-info{position:static;max-height:none;overflow:visible}.mk-detail-prose{font-size:14px}.mk-detail-variants-heading{align-items:start;flex-direction:column;gap:5px}.mk-detail-variant-grid{grid-template-columns:1fr}.mk-detail-variant{min-height:65px}}
@media(prefers-reduced-motion:reduce){.mk-detail-info{scroll-behavior:auto}}

/* MietKalle image gallery — single image zoom, optional multi-image filmstrip. */
.mk-detail-gallery{min-width:0}
.mk-gallery-open{position:relative;width:100%;height:100%;display:block;border:0;padding:0;background:transparent;cursor:zoom-in;color:inherit}
.mk-gallery-open img{display:block;width:100%;height:100%;object-fit:contain}
.mk-gallery-zoom-hint{position:absolute;right:13px;bottom:13px;display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:10px;background:#fffef5ed;color:#142130;font-size:12px;font-weight:800;box-shadow:0 3px 14px #0716242c}
.mk-gallery-zoom-hint svg{width:18px;height:18px}
.mk-gallery-thumbs{display:flex;gap:10px;overflow-x:auto;padding:12px 2px 5px;scrollbar-width:thin}
.mk-gallery-thumb{flex:0 0 82px;width:82px;height:67px;display:block;overflow:hidden;border:2px solid #e0e5eb;border-radius:9px;background:#f4f6f7;padding:0;cursor:pointer}
.mk-gallery-thumb.is-active{border-color:#eda900;box-shadow:0 0 0 2px #ffcf5373}
.mk-gallery-thumb img{width:100%;height:100%;display:block;object-fit:cover}
.mk-detail-gallery dialog.mk-gallery-dialog:modal{position:fixed;inset:0;margin:auto;box-sizing:border-box;}
.mk-gallery-dialog{width:min(1120px,96vw);max-width:96vw;height:min(850px,92dvh);max-height:92dvh;border:1px solid #34465b;border-radius:16px;background:#101820;color:white;box-shadow:0 20px 80px #0009;padding:13px 15px;overscroll-behavior:contain}
.mk-gallery-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:7px}
.mk-gallery-dialog::backdrop{background:#07111de8}
.mk-gallery-dialog-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#d5dbe1;font-weight:700}
.mk-gallery-dialog-head button{width:37px;height:37px;border:0;background:#263342;border-radius:50%;color:white;font-size:27px;cursor:pointer}
.mk-gallery-dialog-stage{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;height:100%;overflow:hidden}
.mk-gallery-dialog-stage>button{position:absolute;top:50%;transform:translateY(-50%);z-index:2;height:46px;width:40px;border:0;border-radius:25px;background:#344151;color:white;font-size:32px;cursor:pointer}.mk-gallery-dialog-stage>button:first-child{left:0}.mk-gallery-dialog-stage>button:last-child{right:0}
.mk-gallery-dialog-stage>button[hidden]{visibility:hidden}
.mk-gallery-dialog-stage img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;transition:transform .18s ease;cursor:zoom-in}
.mk-gallery-dialog-stage img.is-zoomed{transform:scale(1.8);cursor:zoom-out;object-fit:contain}
.mk-gallery-dialog-zoom{display:block;margin:7px auto 0;padding:10px 17px;border:1px solid #516071;border-radius:9px;color:white;background:#273543;font-weight:750;font-size:12px;cursor:pointer}
.mk-gallery-open:focus-visible,.mk-gallery-thumb:focus-visible,.mk-gallery-dialog button:focus-visible{outline:3px solid #ffbf00;outline-offset:3px}
@media(max-width:760px){.mk-gallery-thumb{flex-basis:68px;width:68px;height:57px}.mk-gallery-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;padding:10px}.mk-gallery-dialog-stage>button{width:30px;height:42px;font-size:23px}.mk-gallery-zoom-hint{padding:8px 10px}}
@media(prefers-reduced-motion:reduce){.mk-gallery-dialog-stage img{transition:none}}

/* MietKalle merkliste: compact heart controls and server-backed saved offers. */
.mk-offer-image{position:relative}
.mk-favorite-toggle{display:inline-grid;place-items:center;border:1px solid #e7eaf0;background:#fff;border-radius:50%;width:36px;height:36px;padding:0;color:#f05a4d;cursor:pointer;transition:transform .15s ease,background .15s ease}
.mk-favorite-toggle svg{width:20px;height:20px;flex:none;fill:none;transition:fill .15s}
.mk-favorite-toggle.is-active svg{fill:#f05a4d}
.mk-favorite-toggle:focus-visible{outline:3px solid #ffbd00;outline-offset:3px}
.mk-offer-image>.mk-favorite-toggle{position:absolute;right:10px;top:10px;z-index:2;box-shadow:0 2px 9px #06142324}
.mk-detail-favorite{display:inline-flex;gap:9px;align-items:center;justify-content:center;width:auto;max-width:100%;height:auto;border-radius:24px;padding:9px 14px;margin:0 0 15px;font-size:12px;font-weight:850;color:#b54237}
.mk-detail-favorite svg{width:18px;height:18px}
.mk-favorites-link{position:relative}
.mk-favorites-count{position:absolute;top:-4px;right:-7px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:20px;background:#ffbf00;color:#091625;font-size:10px;font-weight:950}
.mk-favorites-count[hidden],.mk-favorites-grid[hidden],.mk-favorites-empty[hidden]{display:none!important}
.mk-favorites-page{padding:32px 28px 90px;min-height:60vh}
.mk-favorites-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:30px 0 27px}
.mk-favorites-heading h1{font-size:clamp(33px,4vw,52px);line-height:1.05;letter-spacing:-.06em;margin:12px 0 10px;font-weight:950}
.mk-favorites-heading p{margin:0;color:#5b6776;font-size:14px}
.mk-favorites-heading>a{flex:none;font-size:13px;font-weight:800;color:#af7900;text-decoration:none}
.mk-favorites-empty{max-width:520px;margin:40px auto 100px;padding:40px 25px;text-align:center;border:1px solid #e8e9ed;border-radius:16px;background:#fbfcfd}
.mk-favorites-empty svg{width:44px;height:44px;color:#ce7b77}
.mk-favorites-empty h2{margin:15px 0 8px;font-size:25px;font-weight:900}
.mk-favorites-empty p{color:#5f6c7a;font-size:14px}
.mk-favorites-empty a{display:inline-flex;padding:13px 18px;background:#ffbf00;border-radius:10px;font-size:13px;font-weight:850;text-decoration:none;color:#0a192a;margin-top:15px}
@media(max-width:760px){.mk-favorites-page{padding:24px 12px 95px}.mk-favorites-heading{display:block;margin:22px 0}.mk-favorites-heading>a{display:inline-block;margin-top:15px}.mk-offer-image>.mk-favorite-toggle{top:7px;right:7px;width:32px;height:32px}.mk-favorite-toggle svg{width:17px;height:17px}}
@media(prefers-reduced-motion:reduce){.mk-favorite-toggle,.mk-favorite-toggle svg{transition:none}}

/* Unverbindliche Mietanfrage: date selection is not an availability check. */
.mk-detail-period{border:1px solid #e1e6ec;background:#fbfcfd;border-radius:13px;padding:17px;margin-top:18px}
.mk-detail-period-title{display:flex;align-items:center;gap:9px;margin-bottom:12px;font-size:14px}
.mk-detail-period-title svg{width:21px;height:21px;color:#997000}
.mk-detail-period-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mk-detail-period-fields label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:800}
.mk-detail-period-fields input{box-sizing:border-box;min-width:0;width:100%;border:1px solid #ccd4dd;border-radius:8px;padding:10px 9px;background:white;color:#081426;font:500 13px system-ui,sans-serif}
.mk-detail-period-feedback{font-size:11px;line-height:1.5;color:#5d6877;margin:10px 0}
.mk-detail-period-feedback.is-invalid{color:#a12525}
.mk-detail-copy{width:100%;border:1px solid #e8b62c;border-radius:9px;background:#fff6db;padding:10px 12px;color:#4d3800;font:800 12px system-ui,sans-serif;cursor:pointer}
.mk-detail-copy:disabled{cursor:not-allowed;opacity:.55}
.mk-detail-copy:focus-visible{outline:3px solid #edb800;outline-offset:2px}
@media(max-width:760px){.mk-search-dates{grid-template-columns:repeat(2,minmax(0,1fr))}.mk-search-dates input{font-size:14px}.mk-detail-period-fields input{font-size:14px}}

/* ZwergiJump server-confirmed calendar state; never implies a binding booking. */
.mk-detail-check{width:100%;border:1px solid #192d40;background:#182c3e;color:#fff;border-radius:9px;padding:12px;font:850 13px system-ui,sans-serif;cursor:pointer;margin:2px 0 10px}
.mk-detail-check:hover{background:#284259}
.mk-detail-check:disabled{opacity:.5;cursor:not-allowed}
.mk-detail-check:focus-visible{outline:3px solid #ffbf00;outline-offset:3px}
.mk-availability-result{border:1px solid #cbd5df;border-radius:9px;background:#f0f4f8;color:#29425b;font-size:12px;line-height:1.55;padding:11px 12px;margin:0 0 12px}
.mk-availability-result[hidden]{display:none}
.mk-availability-result[data-status="free"]{border-color:#badcba;background:#eff9ef;color:#205e31}
.mk-availability-result[data-status="partial"],.mk-availability-result[data-status="draft"]{border-color:#e5d098;background:#fff9e7;color:#665012}
.mk-availability-result[data-status="full"]{border-color:#e3b7b7;background:#fff1f0;color:#933d37}

/* MietKalle mobile finishing: separate header menu, bottom navigation, floating portal switcher. */
.mk-mobile-menu{display:none}
@media(max-width:760px){
  body.portal-theme--mietkalle .mk-header{overflow:visible}
  body.portal-theme--mietkalle .mk-header-tools{gap:8px}
  body.portal-theme--mietkalle .mk-mobile-menu{display:block;position:relative;flex:0 0 auto}
  body.portal-theme--mietkalle .mk-mobile-menu summary{display:grid;place-items:center;width:38px;height:38px;cursor:pointer;border-radius:11px;border:1px solid #e1e6eb;background:white;color:#0e1b2c;list-style:none}
  body.portal-theme--mietkalle .mk-mobile-menu summary::-webkit-details-marker{display:none}
  body.portal-theme--mietkalle .mk-mobile-menu summary svg{height:23px;width:23px}
  body.portal-theme--mietkalle .mk-mobile-menu .mk-menu-close{display:none}
  body.portal-theme--mietkalle .mk-mobile-menu[open] .mk-menu-bars{display:none}
  body.portal-theme--mietkalle .mk-mobile-menu[open] .mk-menu-close{display:block}
  body.portal-theme--mietkalle .mk-mobile-menu summary:focus-visible{outline:3px solid #f9bb11;outline-offset:2px}
  body.portal-theme--mietkalle .mk-header nav.mk-mobile-menu-panel{display:flex;position:absolute;right:0;top:calc(100% + 9px);width:min(285px,calc(100vw - 24px));flex-direction:column;gap:0;padding:7px;background:#fff;border:1px solid #e4e8ed;border-radius:14px;box-shadow:0 18px 42px #12233a35;z-index:1100}
  body.portal-theme--mietkalle .mk-mobile-menu:not([open]) .mk-mobile-menu-panel{display:none}
  body.portal-theme--mietkalle .mk-mobile-menu-panel a{display:block;color:#122033;text-decoration:none;font-size:14px;font-weight:800;padding:14px 12px;border-radius:9px}
  body.portal-theme--mietkalle .mk-mobile-menu-panel a:hover,body.portal-theme--mietkalle .mk-mobile-menu-panel a:focus-visible{background:#fff3cd}
  /* Keep flower clearly above the fixed 64px bottom bar including safe-area inset. */
  body.portal-theme--mietkalle.portal-is-web .portal-flower{
    right:17px;
    bottom:calc(64px + env(safe-area-inset-bottom) + 22px);
  }
}

/* Mobile saved-rentals indicator: count appears only when favorites exist. */
@media(max-width:760px){
  body.portal-theme--mietkalle .mk-mobile-favorites-label{display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}
  body.portal-theme--mietkalle .mk-mobile-favorites-count:not([hidden]){display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:#ffbf00;color:#142232;font-size:10px;font-weight:900;line-height:1}
  body.portal-theme--mietkalle .mk-mobile-favorites-count[hidden]{display:none!important}
}
