/* TRAUKLAR public profile detail, 1.0.0 */
body:has(.tk-profile-detail) { background: #fff; }
.tk-profile-detail {
    --green: #2b2e33;
    --green-dark: #24272b;
    --green-soft: #f6f7f8;
    --paper: #fff;
    --white: #fff;
    --ink: #292c31;
    --muted: #656970;
    --peach: #a6533f;
    --line: #e3e5e8;
    --shadow: 0 5px 20px rgba(30, 34, 40, .035);
    --tk-profile-header-offset: 80px;
    --tk-profile-nav-height: 58px;
    background: #fff;
    color: var(--ink);
    padding: 26px 0 64px;
    font-size: 1rem;
    line-height: 1.7;
}
.tk-profile-detail *, .tk-profile-detail *::before, .tk-profile-detail *::after { box-sizing: border-box; }
.tk-profile-detail [hidden] { display: none !important; }
.tk-profile-container { width: min(1220px, calc(100% - 48px)); margin-inline: auto; }
.tk-profile-detail h1, .tk-profile-detail h2, .tk-profile-detail h3 { color: var(--ink); overflow-wrap: anywhere; }
.tk-profile-detail a { text-underline-offset: 3px; }
.tk-profile-detail button, .tk-profile-detail a { -webkit-tap-highlight-color: transparent; }
.tk-profile-detail button:focus-visible, .tk-profile-detail a:focus-visible,
.tk-profile-detail input:focus-visible, .tk-profile-detail textarea:focus-visible,
.tk-profile-detail select:focus-visible { outline: 2px solid var(--peach); outline-offset: 4px; }
.tk-profile-gallery { position: relative; overflow: hidden; border-radius: 10px; background: #f3f4f5; }
.tk-profile-photo-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 192px 192px; gap: 5px; }
.tk-profile-photo { display: block; min-width: 0; overflow: hidden; background: #f3f4f5; }
.tk-profile-photo:first-child { grid-row: 1 / span 2; }
.tk-profile-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 43%; transition: transform .18s ease; }
.tk-profile-photo:hover img { transform: scale(1.015); }
.tk-profile-gallery-count-1 .tk-profile-photo-grid { display: block; height: 390px; }
.tk-profile-gallery-count-1 .tk-profile-photo { height: 100%; }
.tk-profile-gallery-count-2 .tk-profile-photo-grid { grid-template-columns: 1.5fr 1fr; grid-template-rows: 390px; }
.tk-profile-gallery-count-2 .tk-profile-photo:first-child { grid-row: auto; }
.tk-profile-gallery-count-3 .tk-profile-photo-grid { grid-template-columns: 1.65fr 1fr; }
.tk-profile-gallery-count-4 .tk-profile-photo:last-child { grid-column: 2 / span 2; }
.tk-profile-gallery-open { display: inline-flex; align-items: center; gap: 8px; position: absolute; left: 18px; bottom: 18px; min-height: 42px; padding: 9px 14px; border: 1px solid rgba(30, 34, 40, .16); border-radius: 6px; background: #fff; color: #292c31; font-size: .8rem; font-weight: 650; text-decoration: none; box-shadow: 0 2px 8px rgba(0, 0, 0, .08); }
.tk-profile-gallery-open:hover { background: #f6f7f8; }
.tk-profile-photo-links { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 18px; background: #fff; }
.tk-profile-heading { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 28px 0; }
.tk-profile-identity { display: flex; align-items: center; gap: 22px; min-width: 0; }
.tk-profile-title-copy { min-width: 0; }
.tk-profile-logo { display: grid; place-items: center; width: 92px; height: 92px; padding: 10px; flex: 0 0 92px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.tk-profile-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.tk-profile-initial { font-family: Georgia, serif; font-size: 2rem; font-weight: 400; color: #70757c; }
.tk-profile-logo-small { width: 52px; height: 52px; flex-basis: 52px; padding: 6px; border-radius: 7px; }
.tk-profile-logo-small .tk-profile-initial { font-size: 1.35rem; }
.tk-profile-categories { margin: 0 0 7px; color: var(--muted); font-size: .72rem; font-weight: 650; text-transform: uppercase; letter-spacing: .08em; }
.tk-profile-detail h1 { margin: 0; font-size: clamp(2rem, 3.6vw, 3.05rem); line-height: 1.15; letter-spacing: -.025em; }
.tk-profile-place { display: flex; align-items: center; gap: 7px; margin: 11px 0 0; color: var(--muted); font-size: .86rem; }
.tk-profile-place svg { flex-shrink: 0; }
.tk-profile-action { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; min-height: 45px; max-width: 310px; padding: 10px 20px; border: 1px solid var(--line); border-radius: 6px; font-size: .86rem; font-weight: 650; line-height: 1.5; text-align: center; text-decoration: none; }
.tk-profile-action-primary { background: var(--peach); color: #fff; border-color: var(--peach); }
.tk-profile-action-primary:hover { background: #914531; border-color: #914531; }
.tk-profile-action-muted { color: var(--muted); background: #f8f9fa; }
.tk-profile-jumps { position: sticky; top: var(--tk-profile-header-offset); z-index: 18; display: flex; flex-wrap: wrap; gap: 0 27px; padding: 0 3px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.tk-profile-jumps:empty { display: none; }
.tk-profile-jumps a { display: inline-flex; align-items: center; min-height: 54px; padding: 13px 0 11px; border-bottom: 2px solid transparent; color: var(--muted); font-size: .85rem; font-weight: 500; line-height: 1.5; text-decoration: none; }
.tk-profile-jumps a:hover, .tk-profile-jumps a[aria-current="location"] { color: var(--ink); border-bottom-color: var(--peach); }
.tk-profile-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, 330px); align-items: start; gap: clamp(28px, 4vw, 56px); padding-top: 32px; }
.tk-profile-main { min-width: 0; }
.tk-profile-section { margin: 0 0 30px; padding: 0 0 32px; border: 0; border-bottom: 1px solid var(--line); background: transparent; box-shadow: none; border-radius: 0; }
.tk-profile-section:last-child { margin-bottom: 0; }
.tk-profile-section h2 { margin: 0 0 20px; font-size: clamp(1.55rem, 2.3vw, 1.9rem); line-height: 1.25; }
.tk-profile-section h3 { margin: 0; font-family: inherit; font-size: .98rem; font-weight: 650; line-height: 1.55; }
.tk-profile-section p { color: var(--muted); }
.tk-profile-intro { margin: 0 0 23px; color: var(--ink) !important; font-size: 1.08rem; line-height: 1.8; overflow-wrap: anywhere; }
.tk-profile-description { color: var(--muted); font-size: 1rem; line-height: 1.85; overflow-wrap: anywhere; }
.tk-profile-description p { margin: 0 0 18px; }
.tk-profile-description p:last-child { margin-bottom: 0; }
.tk-profile-description ul, .tk-profile-description ol { padding-left: 22px; }
.tk-profile-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 23px 30px; margin: 0; }
.tk-profile-facts > div { min-width: 0; }
.tk-profile-facts dt { margin-bottom: 6px; color: var(--muted); font-size: .78rem; line-height: 1.5; }
.tk-profile-facts dd { margin: 0; color: var(--ink); font-size: .98rem; line-height: 1.65; overflow-wrap: anywhere; }
.tk-profile-detail .tk-location-amenities { margin-top: 24px; gap: 15px; }
.tk-profile-detail .tk-location-amenity { padding: 17px 18px; border: 1px solid var(--line); border-radius: 7px; background: #fafafb; box-shadow: none; }
.tk-profile-detail .tk-location-amenity-heading, .tk-profile-detail .tk-location-amenity-heading h3 { color: var(--ink); }
.tk-profile-detail .tk-location-amenity-heading::before { background: #f0f1f3; color: #646970; }
.tk-profile-detail .tk-location-amenity-summary, .tk-profile-detail .tk-location-amenity-body { color: var(--muted); }
.tk-profile-detail .tk-price-cards { display: grid; grid-template-columns: 1fr; gap: 13px; margin: 0; }
.tk-profile-detail .tk-price-card { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 20px; border: 1px solid var(--line); border-radius: 7px; background: #fff; box-shadow: none; }
.tk-profile-detail .tk-price-card > div { min-width: 0; }
.tk-profile-detail .tk-price-card h3 { color: var(--ink); }
.tk-profile-detail .tk-price-value { flex-shrink: 0; margin: 0; color: var(--ink); font-family: inherit; font-size: .96rem; font-weight: 650; line-height: 1.6; }
.tk-profile-detail .tk-price-description { margin: 9px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.7; white-space: pre-line; }
.tk-profile-price-hint { margin: 0; font-size: 1rem; }
.tk-profile-detail .tk-area-summary { padding: 16px 18px; border: 1px solid var(--line); border-radius: 7px; background: #fafafb; color: var(--ink); font-size: .96rem; }
.tk-profile-detail .tk-area-extra, .tk-profile-detail .tk-area-notes { margin-top: 13px; color: var(--muted); font-size: .94rem; line-height: 1.75; }
.tk-profile-aside { min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.tk-profile-aside.tk-profile-aside-is-sticky { position: sticky; top: calc(var(--tk-profile-header-offset) + var(--tk-profile-nav-height) + 20px); }
.tk-profile-contact-brand { display: flex; align-items: center; gap: 13px; padding-bottom: 19px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.tk-profile-contact-brand p { margin: 0; color: var(--ink); font-size: .94rem; font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; }
.tk-profile-detail .lead-inquiry-card { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.tk-profile-detail .lead-inquiry-card .eyebrow { margin: 0 0 10px; color: var(--muted); font-size: .66rem; }
.tk-profile-detail .lead-inquiry-card h2 { margin: 0; font-size: 1.5rem; line-height: 1.3; }
.tk-profile-detail .lead-inquiry-card h3 { margin: 0 0 9px; font-family: inherit; font-size: .98rem; font-weight: 650; line-height: 1.5; }
.tk-profile-detail .lead-inquiry-intro { margin-top: 14px; font-size: .88rem; line-height: 1.75; }
.tk-profile-detail .lead-access-box { margin-top: 20px; padding: 0; background: transparent; border-radius: 0; }
.tk-profile-detail .lead-access-box p { margin: 10px 0 0; font-size: .86rem; line-height: 1.75; }
.tk-profile-detail .lead-button-row { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 20px; }
.tk-profile-detail .button { min-height: 44px; padding: 10px 15px; border-radius: 6px; font-size: .84rem; font-weight: 650; line-height: 1.5; text-align: center; white-space: normal; box-shadow: none; }
.tk-profile-detail .button-primary { background: var(--peach); color: #fff; }
.tk-profile-detail .button-primary:hover { background: #914531; }
.tk-profile-detail .button-secondary { border: 1px solid var(--line); background: #fff; color: var(--ink); }
.tk-profile-detail .button-secondary:hover { border-color: #b4b8be; background: #f6f7f8; color: var(--ink); }
.tk-profile-detail .lead-form-grid { grid-template-columns: 1fr; gap: 15px; }
.tk-profile-detail .lead-inquiry-form { margin-top: 20px; }
.tk-profile-detail .lead-field { color: var(--ink); font-size: .8rem; }
.tk-profile-detail .lead-field input, .tk-profile-detail .lead-field select, .tk-profile-detail .lead-field textarea { min-width: 0; border: 1px solid #d5d8dc; border-radius: 6px; padding: 10px 11px; background: #fff; color: var(--ink); font-size: 1rem; }
.tk-profile-detail .lead-field textarea { min-height: 170px; }
.tk-profile-detail .lead-readonly-value { padding: 10px 11px; background: #f6f7f8; border: 1px solid var(--line); border-radius: 6px; overflow-wrap: anywhere; }
.tk-profile-detail .lead-consent { margin-top: 18px; font-size: .74rem; line-height: 1.7; color: var(--muted); }
.tk-profile-detail .lead-consent a { color: var(--ink); }
.tk-profile-detail .lead-submit-row { display: block; margin-top: 20px; }
.tk-profile-detail .lead-submit-row button { width: 100%; }
.tk-profile-detail .lead-alert { padding: 12px 13px; font-size: .8rem; line-height: 1.65; }
.tk-profile-detail #profil-uebernehmen { margin-top: 0; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.tk-profile-detail #profil-uebernehmen h2 { font-size: 1.65rem; }
.tk-profile-detail #profil-uebernehmen .lead-button-row { display: flex; }
.tk-profile-detail .trauklar-partner-website { margin-top: 21px; }
.tk-profile-preview-note { font-size: .87rem; line-height: 1.75; color: var(--muted); }
.tk-profile-detail :is(#beschreibung, #kurzbeschreibung, #eckdaten, #leistungen-preise, #einsatzgebiet, #anfrage, #profil-uebernehmen, #galerie) { scroll-margin-top: calc(var(--tk-profile-header-offset) + var(--tk-profile-nav-height) + 20px); }
.tk-profile-lightbox { width: min(1120px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 1px solid #dddfe2; border-radius: 10px; background: #fff; color: #292c31; box-shadow: 0 20px 70px rgba(0, 0, 0, .22); }
.tk-profile-lightbox::backdrop { background: rgba(19, 23, 29, .79); }
.tk-profile-lightbox-inner { padding: 20px; }
.tk-profile-lightbox-top { display: flex; align-items: center; justify-content: space-between; gap: 18px; font-size: .88rem; line-height: 1.55; }
.tk-profile-lightbox-top > span { min-width: 0; overflow-wrap: anywhere; }
.tk-profile-lightbox button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 42px; padding: 9px 13px; border: 1px solid #dfe1e4; border-radius: 6px; background: #fff; color: #292c31; font: inherit; font-size: .84rem; cursor: pointer; }
.tk-profile-lightbox button:hover { background: #f5f6f7; }
.tk-profile-lightbox-top button { flex-shrink: 0; }
.tk-profile-lightbox-top button span { font-size: 1.4rem; line-height: 1; }
.tk-profile-lightbox figure { margin: 20px 0; }
.tk-profile-lightbox figure img { display: block; max-width: 100%; width: auto; height: auto; max-height: 65dvh; margin: auto; object-fit: contain; }
.tk-profile-lightbox figcaption { margin-top: 12px; color: #656970; font-size: .84rem; line-height: 1.65; text-align: center; white-space: pre-line; }
.tk-profile-image-error { padding: 45px 18px; color: #656970; text-align: center; }
.tk-profile-lightbox-controls { display: flex; justify-content: space-between; align-items: center; gap: 15px; font-size: .82rem; }
.tk-profile-lightbox-controls > span { color: #656970; text-align: center; }
@media (max-width: 960px) {
    .tk-profile-container { width: calc(100% - 40px); }
    .tk-profile-columns { grid-template-columns: minmax(0, 1fr) 295px; gap: 27px; }
    .tk-profile-heading { gap: 20px; }
    .tk-profile-action { max-width: 240px; }
    .tk-profile-identity { gap: 17px; }
    .tk-profile-logo { width: 78px; height: 78px; flex-basis: 78px; }
    .tk-profile-logo-small { width: 48px; height: 48px; flex-basis: 48px; }
    .tk-profile-aside { padding: 21px; }
    .tk-profile-detail .tk-price-card { display: block; }
    .tk-profile-detail .tk-price-value { margin-top: 13px; }
}
@media (max-width: 780px) {
    .tk-profile-columns { grid-template-columns: 1fr; gap: 30px; }
    .tk-profile-aside.tk-profile-aside-is-sticky { position: static; }
    .tk-profile-heading { align-items: start; flex-direction: column; }
    .tk-profile-action { max-width: 100%; }
    .tk-profile-photo-grid { grid-template-rows: 160px 160px; }
    .tk-profile-gallery-count-1 .tk-profile-photo-grid { height: 325px; }
    .tk-profile-gallery-count-2 .tk-profile-photo-grid { grid-template-rows: 325px; }
    .tk-profile-detail .tk-price-card { display: flex; }
    .tk-profile-detail .tk-price-value { margin-top: 0; }
}
@media (max-width: 600px) {
    .tk-profile-detail { padding: 18px 0 40px; }
    .tk-profile-container { width: calc(100% - 30px); }
    .tk-profile-photo-grid, .tk-profile-gallery-count-1 .tk-profile-photo-grid, .tk-profile-gallery-count-2 .tk-profile-photo-grid { display: block; height: 285px; }
    .tk-profile-photo { height: 100%; }
    .tk-profile-photo:nth-child(n+2) { display: none; }
    .tk-profile-gallery-open { left: 12px; bottom: 12px; min-height: 44px; padding: 9px 12px; }
    .tk-profile-heading { padding: 22px 0; gap: 18px; }
    .tk-profile-identity { gap: 14px; }
    .tk-profile-logo { width: 68px; height: 68px; flex-basis: 68px; padding: 7px; border-radius: 7px; }
    .tk-profile-logo-small { width: 48px; height: 48px; flex-basis: 48px; padding: 5px; }
    .tk-profile-detail h1 { font-size: clamp(1.65rem, 6.5vw, 2.1rem); }
    .tk-profile-categories { font-size: .64rem; letter-spacing: .04em; margin-bottom: 6px; }
    .tk-profile-place { font-size: .78rem; margin-top: 8px; }
    .tk-profile-jumps { gap: 0 19px; padding: 0; }
    .tk-profile-jumps a { min-height: 44px; padding: 11px 0 9px; font-size: .76rem; }
    .tk-profile-columns { padding-top: 25px; gap: 26px; }
    .tk-profile-section { padding-bottom: 26px; margin-bottom: 26px; }
    .tk-profile-section h2 { font-size: 1.55rem; margin-bottom: 17px; }
    .tk-profile-intro { font-size: 1rem; }
    .tk-profile-description { font-size: .96rem; line-height: 1.8; }
    .tk-profile-facts { grid-template-columns: 1fr; gap: 18px; }
    .tk-profile-detail .tk-price-card { display: block; padding: 18px; }
    .tk-profile-detail .tk-price-value { margin-top: 12px; }
    .tk-profile-aside { padding: 21px; }
    .tk-profile-detail #profil-uebernehmen .lead-button-row { display: grid; }
    .tk-profile-lightbox { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
    .tk-profile-lightbox-inner { padding: 14px; }
    .tk-profile-lightbox figure img { max-height: 58dvh; }
    .tk-profile-lightbox-controls { gap: 8px; }
    .tk-profile-lightbox button { padding: 9px 10px; min-height: 44px; font-size: .76rem; }
    .tk-profile-lightbox-controls > span { font-size: .74rem; }
}
@media (prefers-reduced-motion: reduce) { .tk-profile-photo img { transition: none; } }
