/* Viewport-sized slides; only studio, gallery and the contact form may scroll. */
:root {
    --screen-height: 100vh;
    --slide-gutter: clamp(12px, 2vw, 32px);
}
@supports (height: 100dvh) { :root { --screen-height: 100dvh; } }
html, body, #track { height: var(--screen-height); }
#track > .section { height: var(--screen-height) !important; min-height: 0; flex: 0 0 100vw; }
.hero-content, .studio-inner, .studio-content, .studio-masonry,
.kuenstler-inner, .kuenstler-text, .kuenstler-circle-wrap,
.impr-inner, .sonne-inner, .sonne-video-col, .sonne-content-col,
.sonne-text-box, .kontakt-inner, .kontakt-body, .kontakt-col, .form-wrapper {
    min-width: 0;
    min-height: 0;
}

/* Splash has long strokes outside its letters. Leave space for them on every edge. */
[data-page-heading] {
    max-width: 100%;
    line-height: 1.35;
    padding: .12em .18em .25em;
    overflow: visible;
    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
    text-wrap: balance;
}
.heading-word { white-space: nowrap; }

/* The share control stays on the right edge, halfway down the visible viewport. */
.page-share-button {
    position: fixed;
    top: 50vh;
    top: 50dvh;
    right: 0;
    z-index: 1100;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(35, 213, 171, .45);
    border-right: 0;
    border-radius: 12px 0 0 12px;
    background: rgba(17, 24, 28, .96);
    color: var(--accent-green);
    font-size: 1.25rem;
    box-shadow: -3px 3px 16px rgba(0, 0, 0, .3);
    cursor: pointer;
    transition: background-color .2s, color .2s;
}
.page-share-button:hover { background: #173c34; color: #fff; }
.page-share-button:focus-visible { outline: 2px solid #fff; outline-offset: -5px; }
.page-share-button:disabled { cursor: wait; }
.page-share-status {
    position: fixed;
    top: 50vh;
    top: 50dvh;
    right: 56px;
    z-index: 1100;
    transform: translateY(-50%);
    max-width: calc(100vw - 76px);
    margin: 0;
    padding: .65rem .9rem;
    border: 1px solid rgba(35, 213, 171, .35);
    border-radius: 10px;
    background: #11181c;
    color: #fff;
    font-size: .9rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .3);
    pointer-events: none;
}
.page-share-status[hidden] { display: none; }
.page-share-dialog {
    width: min(420px, calc(100vw - 32px));
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    margin: auto;
    padding: 28px 24px 20px;
    border: 1px solid rgba(35, 213, 171, .4);
    border-radius: 16px;
    background: #11181c;
    color: #fff;
    box-shadow: 0 16px 60px rgba(0, 0, 0, .5);
}
.page-share-dialog::backdrop { background: rgba(0, 0, 0, .7); }
.page-share-dialog h2 { padding-right: 24px; font-size: 1.35rem; }
.page-share-dialog p { font-size: .95rem; line-height: 1.5; }
.page-share-dialog label { display: block; margin-bottom: 6px; font-size: .85rem; }
.page-share-dialog input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #647078;
    border-radius: 8px;
    background: #1a2329;
    color: #fff;
    font: inherit;
    font-size: .9rem;
}
.page-share-close {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 1.7rem;
    cursor: pointer;
}
.page-share-copy {
    min-height: 44px;
    margin-top: 14px;
    padding: 10px 16px;
    border: 0;
    border-radius: 8px;
    background: var(--accent-green);
    color: #101719;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.page-share-dialog :focus-visible { outline: 2px solid var(--accent-green); outline-offset: 3px; }
.page-share-copy-status { margin: 12px 0 0; }
.page-share-copy-status:empty { display: none; }
@media (prefers-reduced-motion: reduce) {
    .page-share-button { transition: none; }
}

.studio-content, .kuenstler-text, .sonne-text-box, .form-wrapper, .impr-header {
    container-type: inline-size;
}
.studio-content .fluid-h2 { font-size: clamp(1.5rem, 6.4cqi, 4.4rem) !important; }
.kuenstler-text .fluid-h2 { font-size: clamp(1.45rem, 6.5cqi, 3.6rem) !important; }
.impr-header .fluid-h2 { font-size: clamp(1.5rem, 5.2cqi, 3.8rem) !important; }
.form-wrapper > .fluid-h2 { font-size: clamp(1.4rem, 7cqi, 3.4rem) !important; }

.hero-content { min-height: 0; height: 100%; padding: calc(var(--nav-h) + 12px) 16px 24px; }
.hero-text-box { max-width: 100%; padding: clamp(16px, 3vh, 40px) clamp(16px, 4vw, 64px); }
.hero-content .hero-logo { width: min(24vh, 250px, 36vw); margin-bottom: clamp(8px, 2vh, 24px); }
.hero-content .fluid-h1 { font-size: clamp(1.6rem, 5.2vw, 4.6rem); line-height: 1.2; margin-bottom: 0; }
.hero-subtitle { max-width: 54ch; margin: clamp(8px, 2vh, 20px) auto 0 !important; }
.hero-btns { margin-top: clamp(12px, 2.4vh, 28px) !important; gap: clamp(8px, 1vw, 16px); }
.hero-btns .btn, .studio-content .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
    min-height: 42px;
}
.studio-content .btn { padding: .65rem 1.5rem !important; }
.studio-inner { height: 100%; }
.studio-content { overflow-y: auto; overflow-x: hidden; }

.kuenstler-inner {
    width: min(100%, 1760px);
    margin-inline: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: var(--slide-gutter);
    padding: calc(var(--nav-h) + var(--slide-gutter)) var(--slide-gutter) var(--slide-gutter);
}
.kuenstler-text { order: 1; width: 100%; max-width: 850px; padding: 0 1rem; text-align: left; }
.kuenstler-circle-wrap { order: 2; width: 100%; padding: 12px; margin: 0; display: flex; justify-content: flex-start; }
.kuenstler-circle { width: min(42vw, calc((var(--screen-height) - var(--nav-h) - 2 * var(--slide-gutter)) * .88), 800px); max-width: 100%; }
.kuenstler-text .fluid-lead { font-size: clamp(1rem, 1.5vw, 1.7rem); }
.kuenstler-text .fluid-p { font-size: clamp(.95rem, 1.1vw, 1.25rem); line-height: 1.55; }
.kuenstler-text .btn { font-size: 1rem; padding: .65rem 1.3rem; }

/* Equal-height video and text on desktop; centered text below the video in portrait. */
.sonne-section {
    --sonne-height: min(calc((var(--screen-height) - var(--nav-h) - 2 * var(--slide-gutter)) * .88), calc((100vw - 3 * var(--slide-gutter)) * 9 / 32));
    justify-content: center;
}
.sonne-inner {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-content: center;
    align-items: stretch;
    gap: var(--slide-gutter);
    padding: calc(var(--nav-h) + var(--slide-gutter)) var(--slide-gutter) var(--slide-gutter);
    overflow: hidden;
}
.sonne-video-col, .sonne-content-col {
    width: 100%;
    height: var(--sonne-height);
    padding: 0;
    margin: 0;
    align-self: center;
    overflow: visible;
    background: transparent;
}
.sonne-video-col { display: block; }
.sonne-video-col #sonnenstudio, .sonne-video-col .video-wrapper { width: 100%; height: 100%; }
.sonne-section .video-wrapper { border-radius: 16px; }
.sonne-section .video-wrapper video {
    width: 100% !important;
    height: 100% !important;
    max-height: 100%;
    object-fit: contain;
    aspect-ratio: 16 / 9;
}
.sonne-content-col { display: flex; justify-content: center; align-items: center; }
.sonne-text-box {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(4px, .65vh, 9px);
    padding: clamp(10px, 1.5vh, 24px) clamp(14px, 2vw, 32px) !important;
    text-align: center;
}
.sonne-text-box > * { flex: 0 0 auto; margin: 0 !important; max-width: 100%; }
.sonne-text-box .sonne-megasun-logo { height: clamp(26px, 4.5vh, 120px); width: auto; }
.sonne-text-box .fluid-h2 { width: 100%; font-size: clamp(1.35rem, 6.1cqi, 5.2rem) !important; }
.sonne-text-box .fluid-lead { font-size: clamp(1rem, 1.4vw, 2.2rem) !important; line-height: 1.3; }
.sonne-text-box .fluid-p { font-size: clamp(.95rem, 1.05vw, 1.6rem) !important; line-height: 1.45; max-width: 56ch; }
.sonne-text-box .sonne-age-note { font-size: clamp(.75rem, .85vw, 1.1rem); line-height: 1.35; color: rgba(255,255,255,.6); }
.sonne-section .sound-button { bottom: 12px; right: 12px; padding: 8px 12px; font-size: .85rem; }
.video-caption { position: absolute; top: 10px; left: 10px; max-width: calc(100% - 20px); margin: 0; padding: 5px 9px; border-radius: 6px; background: rgba(0,0,0,.65); color: #fff; font-size: .8rem; line-height: 1.3; }

/* Keep the contact card and footer visible. The middle form keeps its own scrollbar. */
.kontakt-inner { height: 100%; min-height: 0; }
.kontakt-body {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    height: auto !important;
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden !important;
}
.kontakt-heading { grid-column: 2; grid-row: 1; min-width: 0; container-type: inline-size; padding: 12px clamp(16px, 2vw, 40px) 0; }
.kontakt-heading .fluid-h2 { margin: 0; font-size: clamp(1.4rem, 7cqi, 3.4rem); }
.kontakt-body > .kontakt-map-col { grid-column: 1; grid-row: 1 / -1; }
.kontakt-body > .kontakt-form-col { grid-column: 2; grid-row: 2; }
.kontakt-body > .kontakt-info-col { grid-column: 3; grid-row: 1 / -1; }
.kontakt-body > .kontakt-col { width: auto !important; max-width: none !important; min-width: 0 !important; min-height: 0; }
.kontakt-map-col { height: 100% !important; min-height: 0 !important; max-height: none !important; overflow: hidden; }
.kontakt-map-col #custom-google-map { min-height: 0 !important; height: 100% !important; }
.kontakt-form-col { overflow-y: auto; overflow-x: hidden; padding: 16px clamp(16px, 2vw, 40px) 24px; }
.kontakt-info-col { overflow: hidden; padding: clamp(12px, 2vh, 32px) clamp(12px, 1.5vw, 32px); align-items: stretch; }
.kontakt-info-card { height: 100%; min-height: 0; justify-content: space-between; gap: clamp(8px, 1.5vh, 24px) !important; }
.kontakt-details { min-width: 0; }
.kontakt-details ul { min-width: 0; flex: 1; }
.kontakt-details a { overflow-wrap: anywhere; }
.kontakt-info-card li, .kontakt-info-card .text-decoration-none { font-size: inherit !important; line-height: inherit !important; }
.kontakt-info-card .kontakt-logo { width: clamp(48px, 5vw, 90px) !important; }
.kontakt-info-card .fluid-p { font-size: clamp(.9rem, 1.05vw, 1.25rem) !important; line-height: 1.4 !important; }
.kontakt-info-card .fluid-h5 { font-size: clamp(.95rem, 1.4vw, 1.5rem) !important; margin-bottom: 8px !important; }
.kontakt-hours > .d-flex { gap: clamp(8px, 1.4vw, 24px) !important; }
.kontakt-hours .pt-3 { padding-top: 0 !important; }
.contact-btn-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px !important; }
.kontakt-info-card .contact-btn-grid > * { min-width: 0; font-size: .9rem !important; line-height: 1.25; padding: .6rem .35rem !important; }
.kontakt-socials { margin-top: 0 !important; }
.kontakt-info-card .social-icon-large { font-size: clamp(1.6rem, 2.1vw, 2.4rem) !important; }
.footer-bar { padding-top: .75rem; padding-bottom: .75rem; }
.footer-main { column-gap: .7rem; }

@media (min-width: 992px) and (max-width: 1279px) {
    .kontakt-info-card .contact-btn-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kontakt-info-card .btn-email { grid-column: 1 / -1; }
}
@media (max-width: 991px) {
    .kuenstler-inner { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 8px; }
    .kuenstler-text { text-align: center; padding: 0 12px; max-width: 600px; justify-self: center; }
    .kuenstler-text .fluid-p { margin-bottom: 12px !important; font-size: 1.1rem; }
    .kuenstler-text .fluid-lead { font-size: 1.15rem; }
    .kuenstler-circle-wrap { padding: 8px; margin: 0; height: 100%; container-type: size; align-self: stretch; align-items: center; justify-content: center; }
    .kuenstler-circle { width: min(68vw, 92cqh, calc((var(--screen-height) - var(--nav-h) - 70px) * .4), 460px); }
    .sonne-section { --sonne-height: min(calc((var(--screen-height) - var(--nav-h)) * .4), calc((100vw - 2 * var(--slide-gutter)) * 9 / 16)); }
    .sonne-inner { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 12px; }
    .sonne-video-col { width: min(100%, 680px); justify-self: center; }
    .sonne-content-col { width: min(100%, 560px); height: 100%; justify-self: center; }
    .sonne-text-box { height: auto; max-height: 100%; padding: clamp(22px, 3.5vh, 40px) 20px !important; gap: 8px; }
    .sonne-text-box .fluid-h2 { font-size: clamp(1.35rem, 7cqi, 2rem) !important; }
    .sonne-text-box .sonne-megasun-logo { height: clamp(26px, 4vh, 42px); }
    .sonne-text-box .fluid-p { font-size: 1.1rem !important; line-height: 1.45; }
    .sonne-text-box .fluid-lead { font-size: 1.2rem !important; }
    .kontakt-body { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) minmax(60px, 20%); }
    .kontakt-heading { grid-column: 1; grid-row: 1; padding: 12px 18px 0; text-align: center; }
    .kontakt-heading .fluid-h2 { font-size: clamp(1.5rem, 7cqi, 2.3rem); }
    .kontakt-body > .kontakt-info-col { grid-column: 1; grid-row: 2; }
    .kontakt-body > .kontakt-map-col { grid-column: 1; grid-row: 3; }
    .kontakt-info-col { order: 1; padding: 12px 18px; height: auto !important; }
    .kontakt-form-col { display: none !important; }
    .kontakt-map-col { order: 2; width: 100% !important; margin: 0 !important; border-radius: 0 !important; }
    .kontakt-info-card { max-width: 600px; margin: 0 auto; justify-content: center !important; gap: 14px !important; }
    .kontakt-info-card .kontakt-logo { width: clamp(60px, 18vw, 84px) !important; }
    .kontakt-hours { margin-block: 0; }
    .kontakt-info-card .fluid-p { font-size: 1.1rem !important; }
    .kontakt-info-card .contact-btn-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kontakt-info-card .btn-email { grid-column: auto; }
    .footer-main { column-gap: .6rem; row-gap: .15rem; }
}
@media (max-height: 560px) {
    :root { --nav-h: 52px; --slide-gutter: 10px; }
    .navbar-brand { height: var(--nav-h); }
    .hero-content { padding: calc(var(--nav-h) + 8px) 12px 12px; }
    .hero-text-box { padding: 12px 20px; }
    .hero-content .hero-logo { width: min(17vh, 82px); margin-bottom: 6px; }
    .hero-content .fluid-h1 { font-size: clamp(1.5rem, 4vw, 2.8rem); }
    .hero-subtitle { margin-top: 6px !important; line-height: 1.3; font-size: 1rem; }
    .hero-btns { margin-top: 8px !important; }
    .hero-btns .btn { min-height: 34px; padding: .4rem .65rem !important; }
    .kuenstler-inner { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
    .kuenstler-text { text-align: left; padding: 0 8px; }
    .kuenstler-text .fluid-h2 { font-size: clamp(1.3rem, 6cqi, 2.2rem) !important; }
    .kuenstler-text .fluid-lead { font-size: .95rem; }
    .kuenstler-text .fluid-p { font-size: .9rem; line-height: 1.4; margin-bottom: 8px !important; }
    .kuenstler-circle { width: min(33vw, calc(var(--screen-height) - var(--nav-h) - 40px)); }
    .kuenstler-text .btn { padding: .4rem .9rem !important; font-size: .9rem; }
    .sonne-section { --sonne-height: min(calc((var(--screen-height) - var(--nav-h) - 20px) * .9), calc((100vw - 30px) * 9 / 32)); }
    .sonne-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); gap: 10px; }
    .sonne-video-col, .sonne-content-col, .sonne-text-box { height: var(--sonne-height); }
    .sonne-text-box { gap: 3px; padding: 8px 12px !important; }
    .sonne-text-box .sonne-megasun-logo { height: 20px; }
    .sonne-text-box .fluid-h2 { font-size: clamp(1.15rem, 5.3cqi, 1.7rem) !important; }
    .sonne-text-box .fluid-lead { font-size: .95rem !important; }
    .sonne-text-box .fluid-p { font-size: .9rem !important; line-height: 1.25; }
    .sonne-text-box .sonne-age-note { font-size: .72rem; }
    .sonne-section .sound-button { bottom: 8px; right: 8px; padding: 5px 8px; font-size: .8rem; }
    .kontakt-info-card { gap: 7px !important; }
    .kontakt-info-col { padding: 8px 12px; }
    .kontakt-info-card .kontakt-logo { width: 60px !important; }
    .kontakt-info-card .fluid-p { font-size: .9rem !important; }
    .kontakt-details li { margin-bottom: 4px !important; }
    .kontakt-info-card .fluid-h5 { font-size: .95rem !important; margin-bottom: 4px !important; }
    .kontakt-info-card .contact-btn-grid > * { padding: .4rem .3rem !important; font-size: .85rem !important; }
    .kontakt-info-card .social-icon-large { font-size: 1.6rem !important; }
    .footer-bar { padding-top: .6rem; padding-bottom: .6rem; }
}
@media (max-width: 991px) and (max-height: 560px) and (orientation: landscape) {
    .kontakt-body { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
    .kontakt-heading { grid-column: 1; grid-row: 1; padding-top: 4px; }
    .kontakt-body > .kontakt-info-col { grid-column: 1; grid-row: 2; }
    .kontakt-body > .kontakt-map-col { grid-column: 2; grid-row: 1 / -1; }
    .kontakt-info-card { max-width: none; }
    .kontakt-info-card .contact-btn-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .kontakt-info-card .contact-btn-grid > * { font-size: .8rem !important; }
}
@media (max-width: 599px) and (max-height: 560px) and (orientation: portrait) {
    .kuenstler-inner { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 4px; }
    .kuenstler-text { text-align: center; }
    .kuenstler-circle { width: min(40vw, 25vh); }
    .sonne-section { --sonne-height: min(calc((var(--screen-height) - var(--nav-h)) * .32), calc((100vw - 20px) * 9 / 16)); }
    .sonne-inner { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 6px; }
    .sonne-video-col { height: var(--sonne-height); }
    .sonne-content-col { height: 100%; }
    .sonne-text-box { height: auto; }
}
@media (max-width: 991px) {
    .social-sidebar { display: none !important; }
    .navbar-brand { order: 1; }
    .navbar-socials { order: 2; display: flex; align-items: center; gap: 8px; margin: 0 auto; padding: 0; }
    .navbar-socials a { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; text-decoration: none; font-size: 1rem; }
    .navbar-toggler { order: 3; }
    .navbar-collapse { order: 4; }
    .studio-content { overflow: visible; }
    .studio-masonry { min-height: clamp(280px, 40vh, 400px); flex-shrink: 0; }
    .studio-inner, .impr-inner, .kuenstler-inner, .sonne-inner { padding-top: calc(var(--nav-h) + 70px); }
}
@media (max-width: 991px) and (max-height: 700px) and (orientation: portrait) {
    .sonne-section { --sonne-height: min(calc((var(--screen-height) - var(--nav-h) - 94px) * .23), calc((100vw - 24px) * 9 / 16)); }
    .sonne-text-box { padding: 18px 16px !important; gap: 5px; }
    .sonne-text-box .fluid-p { font-size: 1.05rem !important; }
    .sonne-text-box .fluid-lead { font-size: 1.1rem !important; }
    .kontakt-info-card { gap: 7px !important; }
    .kontakt-info-card .fluid-p { font-size: 1rem !important; }
    .kontakt-details li { margin-bottom: 4px !important; }
    .kontakt-info-card .contact-btn-grid > * { padding: .4rem .3rem !important; }
}

/* Mobile contact: an exact footer height and a larger map, with distinct content groups. */
@media (max-width: 991px) {
    .kontakt-section { --kontakt-map-height: clamp(120px, 27dvh, 300px); }
    .kontakt-body { grid-template-rows: auto minmax(0, 1fr) var(--kontakt-map-height); }
    .kontakt-heading { padding-top: 70px; }
    .kontakt-info-col { padding: 12px 18px; }
    .kontakt-info-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: repeat(4, auto);
        align-content: center;
        justify-content: stretch !important;
        gap: 0 !important;
    }
    .kontakt-details, .kontakt-hours, .kontakt-info-card .contact-btn-grid { margin-bottom: 20px !important; }
    .kontakt-socials { margin-top: 0 !important; }
    .kontakt-section .footer-bar {
        height: 50px;
        min-height: 50px;
        max-height: 50px;
        flex: 0 0 50px;
        display: grid;
        align-content: center;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}
@media (max-width: 991px) and (max-height: 700px) and (orientation: portrait) {
    .kontakt-section { --kontakt-map-height: clamp(80px, 22dvh, 170px); }
    .kontakt-body { grid-template-rows: auto auto minmax(0, 1fr); }
    .kontakt-info-col { padding: 8px 14px; }
    .kontakt-info-card { height: auto; gap: 0 !important; }
}
@media (max-width: 991px) and (max-height: 600px) {
    .kontakt-heading .fluid-h2 { font-size: 1.3rem; }
    .kontakt-info-card {
        grid-template-columns: minmax(0, 1fr) 62px;
        grid-template-rows: auto auto auto;
        grid-template-areas: 'details details' 'hours socials' 'buttons buttons';
        gap: 0 10px !important;
    }
    .kontakt-details { grid-area: details; }
    .kontakt-hours { grid-area: hours; }
    .kontakt-socials {
        grid-area: socials;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: center;
        justify-items: center;
        gap: 6px;
    }
    .kontakt-info-card .contact-btn-grid { grid-area: buttons; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px !important; }
    .kontakt-info-card .fluid-p { font-size: .9rem !important; }
    .kontakt-info-card .fluid-h5 { font-size: .95rem !important; margin-bottom: 4px !important; }
    .kontakt-info-card .social-icon-large { font-size: 1.6rem !important; }
    .kontakt-details li { margin-bottom: 4px !important; }
    .kontakt-info-card .contact-btn-grid > * {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
        min-height: 44px;
        font-size: .8rem !important;
        padding: 4px 2px !important;
    }
    .kontakt-info-col { padding: 4px 12px; }
}
@media (max-width: 991px) and (max-height: 520px) and (orientation: portrait) {
    .kontakt-section { --kontakt-map-height: 80px; }
}
@media (max-width: 991px) and (max-height: 560px) and (orientation: landscape) {
    .kontakt-body { grid-template-columns: minmax(0, 2.8fr) minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
    .kontakt-info-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto auto; grid-template-areas: 'details hours' 'buttons socials'; }
    .kontakt-info-card .fluid-p { font-size: .85rem !important; }
}

/* On desktop, place the address and logo 70px below the navbar's bottom edge. */
@media (min-width: 992px) {
    .kontakt-body > .kontakt-info-col { padding-top: 70px; }
}
