/* Public service catalog, shared by the home page and price page. */
.prices-main { padding-top: 35px; }
.home-prices { margin-top: 48px; padding-top: 32px; border-top: 1px solid #d4d4d4; }
.prices-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 24px; }
.prices-heading h2 { font-size: clamp(28px, 4vw, 42px); letter-spacing: -1px; margin: 0; }
.price-category { margin-bottom: 30px; min-width: 0; }
.price-category > h2, .price-category > h3 { margin: 0 0 14px; }
.price-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.price-card { background: white; border: 1px solid #ddd; border-radius: 16px; padding: 24px; min-width: 0; }
.price-card-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 12px; }
.price-card-heading h3, .price-card-heading h4 { margin: 0; font-size: 18px; overflow-wrap: anywhere; }
.price-amount { justify-self: end; text-align: right; font-size: 21px; font-weight: 750; white-space: nowrap; }
.price-description { white-space: pre-line; overflow-wrap: anywhere; color: #555; margin-bottom: 10px; }
.price-duration { color: #646464; font-size: 14px; margin: 12px 0 0; }
.prices-cta { border-top: 1px solid #d4d4d4; padding: 24px 0; }
.home-prices #price-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.home-prices .price-cards { grid-template-columns: 1fr; }
@media (max-width: 760px) {
  .price-cards, .home-prices #price-list { grid-template-columns: 1fr; }
  .prices-heading { align-items: flex-start; flex-direction: column; }
  .price-card { padding: 20px; }
}

* {
    box-sizing: border-box
}

:root {
    font-family: Inter, system-ui, -apple-system, sans-serif;
    color: #171717;
    background: #f5f5f5;
    font-synthesis: none
}

body {
    margin: 0
}

header {
    background: #ffffff;
    border-bottom: 1px solid #dddddd;
    padding: 20px max(20px, calc((100vw - 1120px)/2));
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px
}

a {
    color: inherit
}

.brand {
    font-size: 24px;
    font-weight: 850;
    letter-spacing: -1px;
    text-decoration: none
}

header nav {
    display: flex;
    gap: 20px;
    align-items: center
}

main {
    overflow-wrap: anywhere;
    max-width: 1120px;
    margin: 36px auto;
    padding: 0 20px 60px
}

h1 {
    font-size: clamp(28px, 5vw, 40px);
    letter-spacing: -1px;
    margin: 0 0 10px
}

h2 {
    font-size: 22px;
    margin: 0 0 20px
}

h3 {
    font-size: 17px
}

p {
    line-height: 1.6
}

.muted,
small {
    color: #646464
}

.intro {
    margin-bottom: 28px
}

.card {
    background: white;
    border: 1px solid #dddddd;
    border-radius: 14px;
    padding: 26px;
    margin-bottom: 20px
}

.layout {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr);
    gap: 24px
}

.row {
    display: flex;
    align-items: end;
    gap: 14px;
    flex-wrap: wrap
}

.row>* {
    flex: 1;
    min-width: 130px
}

.row>.compact {
    flex: 0;
    min-width: auto
}

label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 16px
}

input,
select,
textarea,
button {
    font: inherit
}

input,
select,
textarea {
    display: block;
    width: 100%;
    margin-top: 7px;
    padding: 12px;
    border: 1px solid #bbbbbb;
    border-radius: 7px;
    background: #ffffff;
    color: #171717
}

input[type=checkbox] {
    width: auto;
    display: inline;
    margin-right: 7px
}

textarea {
    resize: vertical
}

button,
.button {
    display: inline-block;
    background: #171717;
    color: white;
    padding: 11px 17px;
    border: 1px solid #171717;
    border-radius: 7px;
    cursor: pointer;
    text-decoration: none;
    font-weight: 600
}

button.secondary {
    background: white;
    color: #171717;
    border-color: #cecece
}

button.danger {
    background: white;
    color: #3a3a3a;
    border-color: #bebebe
}

button:disabled {
    cursor: not-allowed;
    opacity: .42
}

button:hover:not(:disabled) {
    filter: brightness(.9)
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid #737373;
    outline-offset: 3px
}

.days,
.slots {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 14px 0 24px
}

.days button,
.slots button {
    background: white;
    color: #171717;
    border-color: #cccccc
}

.days button[aria-pressed=true],
.slots button[aria-pressed=true] {
    background: #171717;
    color: #ffffff
}

.days button {
    min-width: 90px;
    white-space: pre-line
}

.days button:disabled {
    background: #eeeeee;
    text-decoration: line-through
}

.notice {
    padding: 14px 18px;
    background: #eeeeee;
    border: 1px solid #c9c9c9;
    border-radius: 8px;
    margin-bottom: 20px;
    white-space: pre-line
}

.notice.error {
    background: #f3f3f3;
    border-color: #bcbcbc;
    color: #3a3a3a
}

.notice.success {
    background: #f3f3f3;
    border-color: #c7c7c7;
    color: #444444
}

[hidden] {
    display: none !important
}

.tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 24px 0
}

.tabs button {
    background: white;
    color: #333333;
    border-color: #cccccc
}

.tabs button[aria-current=true] {
    background: #171717;
    color: #ffffff
}

.table-wrap {
    overflow: auto
}

table {
    border-collapse: collapse;
    width: 100%;
    font-size: 14px
}

th,
td {
    padding: 13px 10px;
    text-align: left;
    border-bottom: 1px solid #e5e5e5;
    vertical-align: top
}

td {
    white-space: pre-line
}

td button {
    padding: 7px 10px;
    font-size: 13px;
    margin: 0 6px 6px 0
}

th {
    color: #666666;
    font-weight: 500
}

.actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap
}

.hours-row {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 10px
}

.hours-row label {
    margin: 0
}

.hours-row button {
    margin-bottom: 1px
}

.summary-line {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 12px 0;
    border-bottom: 1px solid #eeeeee
}

.summary-line span:last-child {
    text-align: right
}

.login {
    max-width: 440px;
    margin: 50px auto
}

.status {
    min-height: 24px
}

.service-item {
    padding: 14px 0;
    border-bottom: 1px solid #eeeeee
}

.service-item p {
    margin: 4px 0
}

.check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 400
}

.check input {
    margin: 0
}

.section-note {
    margin-top: 0;
    color: #666666
}

footer {
    padding: 25px;
    text-align: center;
    font-size: 13px;
    color: #666666
}

@media(max-width:760px) {
    .layout {
        grid-template-columns: 1fr
    }

    .card {
        padding: 18px
    }

    header {
        padding: 17px 20px
    }

    header nav {
        gap: 12px;
        font-size: 14px
    }

    main {
        margin-top: 24px
    }

    .hours-row {
        grid-template-columns: 1fr 1fr
    }

    .hours-row label:first-child {
        grid-column: 1/-1
    }

    th,
    td {
        min-width: 110px
    }
}

fieldset {
    margin: 24px 0;
    padding: 20px 0 0;
    border: 0;
    border-top: 1px solid #dddddd;
    min-width: 0
}

legend {
    font-size: 19px;
    font-weight: 700;
    padding: 0 0 10px
}

fieldset:disabled {
    opacity: .5
}

.calendar,
.calendar-week {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 7px;
    margin: 12px 0
}

.calendar-week span {
    text-align: center;
    color: #666666;
    font-size: 13px
}

.calendar button {
    padding: 13px 2px;
    background: #ffffff;
    color: #111111;
    border: 1px solid #bbbbbb
}

.calendar button:disabled {
    background: #e9e9e9;
    color: #666666;
    text-decoration: line-through;
    opacity: .65
}

.calendar button[aria-pressed=true] {
    background: #171717;
    color: #ffffff
}

header nav {
    flex-wrap: wrap
}

@media(max-width:600px) {
    header {
        align-items: flex-start;
        flex-direction: column
    }

    header nav {
        gap: 14px
    }

    .calendar,
    .calendar-week {
        gap: 5px
    }
}

/* =========================================
   ADMIN - WOCHENKALENDER
   ========================================= */

.week-scroll {
  width: 100%;
  overflow-x: auto;
  margin-top: 20px;
  padding-bottom: 10px;
}

.week-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(170px, 1fr));
  gap: 12px;
  min-width: 1250px;
  align-items: start;
}

.week-day {
  background: #f8f8f8;
  border: 1px solid #dddddd;
  border-radius: 12px;
  padding: 12px;
  min-height: 260px;
}

.week-day-title {
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #dddddd;
  font-size: 16px;
  text-align: center;
}

.week-day .muted {
  font-size: 13px;
  text-align: center;
  margin-top: 30px;
}

.week-booking {
  display: block;
  width: 100%;
  margin-bottom: 10px;
  padding: 12px;
  text-align: left;

  background: #ffffff;
  color: #171717;

  border: 1px solid #cecece;
  border-radius: 8px;

  font-size: 13px;
  line-height: 1.45;

  cursor: pointer;
}

.week-booking strong {
  display: inline-block;
  margin-bottom: 3px;
  font-size: 14px;
}

.week-booking:hover {
  background: #eeeeee;
  filter: none;
}

.week-booking:focus-visible {
  outline: 3px solid #737373;
  outline-offset: 2px;
}

@media (max-width: 760px) {

    .home-hero {
    grid-template-columns: 1fr;
    gap: 35px;
}

.hero-video {
    width: 100%;
    max-width: none;
    height: 600px;
    justify-self: stretch;
}

  .week-calendar {
    grid-template-columns: repeat(7, minmax(155px, 1fr));
    min-width: 1120px;
  }

  .week-day {
    min-height: 220px;
  }

}

/* =========================================
   ADMIN - KALENDER ANSICHTEN
   ========================================= */

.calendar-view-switch {
  display: flex;
  gap: 8px;
  margin: 15px 0 20px;
  flex-wrap: wrap;
}

.calendar-view-switch button {
  min-width: 90px;
}


/* =========================================
   TAGESANSICHT
   ========================================= */

.day-calendar {
  width: 100%;
  margin-top: 20px;
}

.day-view-column {
  width: 100%;
  max-width: 650px;
  margin: 0 auto;
  padding: 15px;

  background: #f8f8f8;

  border: 1px solid #dddddd;
  border-radius: 12px;
}

.day-view-column .week-booking {
  margin-bottom: 10px;
  padding: 15px;
}


/* =========================================
   MONATSANSICHT
   ========================================= */

.month-calendar {
  display: grid;

  grid-template-columns:
    repeat(7, minmax(130px, 1fr));

  gap: 8px;

  min-width: 950px;

  margin-top: 20px;
}

.month-weekday {
  padding: 10px;

  text-align: center;
  font-weight: 700;

  background: #eeeeee;

  border-radius: 8px;
}

.month-day {
  min-height: 145px;

  padding: 8px;

  background: #f8f8f8;

  border: 1px solid #dddddd;
  border-radius: 10px;
}

.month-day-empty {
  background: transparent;
  border: none;
}

.month-day-number {
  display: block;

  margin-bottom: 8px;

  font-size: 14px;
}

.month-booking {
  padding: 7px 8px;

  margin-bottom: 6px;

  font-size: 12px;
  line-height: 1.25;
}

.month-booking strong {
  font-size: 12px;
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 760px) {

  .calendar-view-switch {
    width: 100%;
  }

  .calendar-view-switch button {
    flex: 1;
    min-width: 80px;
  }

  .month-calendar {
    grid-template-columns:
      repeat(7, minmax(115px, 1fr));

    min-width: 850px;
  }

  .month-day {
    min-height: 120px;
  }

}

.month-day-clickable {
  cursor: pointer;
  transition: background 0.15s ease,
              border-color 0.15s ease;
}

.month-day-clickable:hover {
  background: #eeeeee;
  border-color: #c5c5c5;
}

.month-day-clickable:focus-visible {
  outline: 3px solid #737373;
  outline-offset: 2px;
}

/* =========================================
   HEUTIGER TAG IM MONATSKALENDER
   ========================================= */

.month-day-today {
  background: #efefef;
  border: 2px solid #737373;
}

.month-day-today .month-day-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 30px;
  height: 30px;
  padding: 0 7px;

  background: #737373;
  color: white;

  border-radius: 999px;
  font-weight: 700;
}


/* Customer-facing navigation and brand */
header { max-width:none; padding:22px max(24px,calc((100vw - 1180px)/2)); background:#f5f5f5; border:0; gap:24px; }
.brand {font-size:29px; font-weight:900; letter-spacing:-1.6px; white-space:nowrap;}
.brand span {display:inline-block; font-size:21px; margin-left:5px; vertical-align:top;}
header nav {gap:7px; padding:6px; background:#e8e8e8; border:1px solid #dcdcdc; border-radius:18px;}
header nav a {padding:12px 17px; min-height:44px; text-decoration:none; border-radius:12px; font-size:13px; font-weight:650; transition:background .16s,color .16s;}
header nav a:hover {background:#ffffff;}
header nav a[aria-current="page"] {background:#ffffff; box-shadow:0 2px 5px #0000000a;}
header nav a[href="/termine"] {background:#171717; color:#ffffff;}
header nav a[href="/termine"]:hover {background:#393939;}
header nav a[href="/team"] {color:#575757;}
.skip-link {position:absolute;top:-100px;left:20px;z-index:5;background:#ffffff;padding:14px;}
.skip-link:focus {top:10px;}
.blend-main {max-width:1228px; margin:10px auto 0; padding:0 24px 30px;}
.blend-hero {background:#1a1a1a; color:#f4f4f4; border-radius:22px; padding:30px 42px 44px; overflow:hidden;}
.hero-topline {display:flex; justify-content:space-between; gap:20px; font-size:10px; font-weight:600; letter-spacing:1.8px; color:#bdbdbd;}
.hero-wordmark {font-size:clamp(70px,12.4vw,151px); font-weight:900; letter-spacing:-.085em; line-height:1.25; white-space:nowrap; padding:30px 0 42px; border-bottom:1px solid #444444;}
.hero-wordmark span {font-size:.48em; vertical-align:top; display:inline-block; margin:12px 0 0 12px; color:#dddddd; letter-spacing:0;}
.hero-bottom {display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:40px; padding-top:40px;}
.eyebrow {display:block; font-size:10px; font-weight:700; letter-spacing:1.6px; margin:0 0 18px;}
.blend-hero .eyebrow {color:#bdbdbd;}
.hero-bottom h1 {font-size:clamp(40px,5.2vw,64px); line-height:1.03; letter-spacing:-3px; margin:0;}
.hero-bottom h1 span {color:#dddddd;}
.hero-detail {max-width:360px; justify-self:end; width:100%;}
.hero-detail p {color:#c5c5c5; font-size:17px; margin:0 0 22px;}
.blend-primary {display:flex; justify-content:space-between; align-items:center; gap:24px; padding:17px 22px; border-radius:12px; background:#dddddd; color:#1a1a1a; border:1px solid #dddddd; font-size:15px; min-height:54px;}
.blend-primary:hover {background:#eaeaea; border-color:#eaeaea;}
.blend-primary span {font-size:23px; line-height:1;}
.hero-location {display:flex; justify-content:space-between; padding:17px 0 0; color:#c5c5c5; font-size:12px; text-decoration:none;}
.hero-location:hover {color:white;}
.blend-links {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:36px 0 0;}
.blend-links>a {display:block; padding:12px 28px 20px; text-decoration:none; border-right:1px solid #d4d4d4;}
.blend-links>a:first-child {padding-left:0;}
.blend-links>a:last-child {border-right:0; padding-right:0;}
.blend-links .eyebrow {color:#676767; margin-bottom:24px;}
.blend-links h2 {font-size:27px; line-height:1.15; letter-spacing:-1px; margin-bottom:25px;}
.blend-links a>span:last-child {display:flex; align-items:center; justify-content:space-between; font-size:13px; gap:10px;}
.blend-links b {font-size:23px; font-weight:400;}
.blend-links>a:hover h2 {text-decoration:underline; text-underline-offset:5px;}
footer {padding:26px 20px; font-size:12px;}
footer a {text-decoration:none;}
footer a:hover {text-decoration:underline;}
footer span {margin:0 10px;}
.location-main {padding-top:35px;}
.location-heading {margin-bottom:36px;}
.location-heading .eyebrow {color:#676767;}
.location-heading h1 {font-size:clamp(43px,5.8vw,70px); line-height:1.04; letter-spacing:-3px;}
.location-heading>p:last-child {color:#616161; margin-bottom:0;}
.location-grid {display:grid; grid-template-columns:1fr 1fr; border:1px solid #dbdbdb; border-radius:22px; overflow:hidden; background:#ffffff;}
.address-panel {background:#1a1a1a; color:#f4f4f4; padding:36px; display:flex; flex-direction:column; justify-content:space-between;}
.address-top {display:flex; justify-content:space-between; font-size:11px; letter-spacing:1.5px; color:#bdbdbd;}
.address-number {font-size:clamp(130px,17vw,220px); font-weight:850; line-height:1.15; letter-spacing:-14px; padding:20px 0;}
.address-number span {font-size:.36em; color:#dddddd; vertical-align:top; letter-spacing:0; margin-left:20px;}
.address-panel .eyebrow {color:#bdbdbd; margin-bottom:10px;}
.address-panel h2 {font-size:32px; letter-spacing:-1px; margin:0;}
.address-panel p:last-child {color:#bdbdbd; margin-bottom:0;}
.directions-panel {padding:36px;}
.directions-panel h2 {font-size:37px; letter-spacing:-1.5px; line-height:1.1; margin-bottom:16px;}
.directions-panel>p:not(.eyebrow) {color:#616161; font-size:15px;}
.directions-panel .blend-primary {margin-top:24px;}
.map-options {display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:14px;}
.map-options a {font-size:13px; padding:10px 0; text-underline-offset:4px;}
.directions-panel .route-note {font-size:12px!important; line-height:1.6;}
.location-contact {border-top:1px solid #dddddd; margin-top:26px; padding-top:15px;}
.location-contact h3 {margin:8px 0;}
.location-contact p {font-size:13px; color:#616161;}
.location-contact a {display:block; padding:9px 0; font-size:14px; text-underline-offset:4px;}
@media(max-width:1000px) {header {flex-direction:column;align-items:stretch;gap:16px;} header .brand {align-self:flex-start;} header nav {justify-content:center;} .hero-wordmark {font-size:12vw;} .hero-bottom {gap:25px;} }
@media(max-width:600px) {header {padding:20px 16px 10px;} header nav {display:grid;grid-template-columns:1fr 1fr;gap:5px;width:100%;border-radius:16px;} header nav a {text-align:center;padding:12px 8px;font-size:12px;} .brand {font-size:27px;} .blend-main {padding:0 16px 15px;} .blend-hero {padding:24px 22px 28px;border-radius:18px;} .hero-topline {font-size:9px;letter-spacing:1px;} .hero-topline span:last-child {display:none;} .hero-wordmark {font-size:12.2vw; padding:28px 0; letter-spacing:-.085em;} .hero-wordmark span {margin:5px 0 0 6px;} .hero-bottom {grid-template-columns:1fr;gap:28px;padding-top:28px;} .hero-bottom h1 {font-size:48px;letter-spacing:-2.5px;} .hero-detail {justify-self:stretch;max-width:none;} .hero-detail p {font-size:16px;} .blend-links {grid-template-columns:1fr;margin-top:18px;} .blend-links>a,.blend-links>a:first-child,.blend-links>a:last-child {padding:24px 4px;border-right:0;border-bottom:1px solid #d4d4d4;} .blend-links .eyebrow {margin-bottom:14px;} .blend-links h2 {font-size:25px;line-height:1.25;margin-bottom:16px;} .location-main {padding-top:25px;} .location-heading h1 {font-size:46px;letter-spacing:-2px;} .location-grid {grid-template-columns:1fr;} .address-panel,.directions-panel {padding:26px;} .address-number {font-size:160px;} .directions-panel h2 {font-size:34px;} }
@media(prefers-reduced-motion:reduce) {header nav a {transition:none;}}

/* Monochrome identity; the supplied logo remains the original image. */
:root,header {background:#fff;color:#111;}
.logo-crop {position:relative;display:block;width:100%;aspect-ratio:4.95;overflow:hidden;}
.logo-crop img {position:absolute;width:116%;max-width:none;height:auto;left:-7.6%;top:-93%;filter:grayscale(1) contrast(2);}
.brand {display:block;width:172px;flex-shrink:0;}
.brand .logo-crop {margin:0;font-size:inherit;}
.hero-wordmark {white-space:normal;padding:25px 0 40px;}
.hero-wordmark .logo-crop {width:100%;font-size:inherit;letter-spacing:0;margin:0;}
.hero-wordmark img {filter:grayscale(1) contrast(2) invert(1);}
.blend-hero {background:#000;color:#fff;}
.hero-bottom h1 span {color:#fff;}
.blend-primary,.directions-panel .blend-primary {background:#fff;color:#000;border-color:#000;}
.blend-primary:hover {background:#e9e9e9;border-color:#777;}
.directions-panel .blend-primary {background:#000;color:#fff;}
.directions-panel .blend-primary:hover {background:#333;}
.social-links {display:flex;justify-content:center;gap:12px;margin-bottom:25px;flex-wrap:wrap;}
.social-links a {display:inline-flex;align-items:center;gap:10px;border:1px solid #ccc;border-radius:12px;min-height:46px;padding:10px 17px;color:#000;font-weight:650;}
.social-links a:hover {background:#000;color:#fff;text-decoration:none;}
.social-links svg {width:21px;height:21px;}
.social-links span {margin:0;}
.map-panel {position:relative;min-height:450px;display:flex;flex-direction:column;background:#f3f3f3;}
.map-panel iframe {border:0;width:100%;height:100%;min-height:380px;flex:1;filter:grayscale(1);}
.map-address {padding:22px 28px;background:#fff;border-top:1px solid #ddd;}
.map-address h2 {font-size:25px;margin:0;}
.map-address p {margin:7px 0 0;color:#555;}
.booking-progress {display:flex;gap:6px;flex-wrap:wrap;margin:20px 0;}
.booking-progress a {padding:10px 12px;border:1px solid #ddd;border-radius:9px;text-decoration:none;font-size:13px;min-height:42px;}
.booking-progress a:hover {background:#eee;}
.booking-page fieldset,.booking-page #dayStep {scroll-margin-top:22px;}
.admin-page header nav {display:flex;}
.admin-page .calendar-toolbar {align-items:center;}
.admin-page th,
.admin-page td {
  overflow-wrap: break-word;
  word-break: normal;
}
.admin-page th {white-space:nowrap;}
.admin-page #servicesTable td:nth-child(4) {font-variant-numeric:tabular-nums;}
.admin-page #servicesTable td:last-child > div {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.admin-page #servicesTable td:last-child button {margin:0;white-space:nowrap;}
@media(min-width:761px){
 .admin-page #servicesTable table {min-width:940px;}
 .admin-page #servicesTable th,
 .admin-page #servicesTable td {vertical-align:middle;padding:16px 12px;}
 .admin-page #servicesTable th:first-child,
 .admin-page #servicesTable td:first-child {min-width:155px;}
 .admin-page #servicesTable td:nth-child(2),
 .admin-page #servicesTable td:nth-child(3),
 .admin-page #servicesTable td:nth-child(4),
 .admin-page #servicesTable td:nth-child(6) {white-space:nowrap;}
 .admin-page #servicesTable td:nth-child(5) {width:100%;min-width:150px;max-width:300px;}
 .admin-page #servicesTable td:last-child {min-width:200px;}
 .admin-page #servicesTable td:last-child > div {flex-wrap:nowrap;}
}
@media(max-width:760px){
 .booking-page main,.admin-page main {padding-left:16px;padding-right:16px;}
 .booking-page input,.booking-page select,.booking-page textarea,.admin-page input,.admin-page select,.admin-page textarea {font-size:16px;min-height:46px;}
 .booking-page input[type=checkbox],.admin-page input[type=checkbox] {min-height:0;}
 .booking-page .calendar button {min-height:44px;}
 .booking-page fieldset:disabled {display:none;}
 .booking-page .slots {display:grid;grid-template-columns:repeat(3,1fr);}
 .booking-page .slots button {min-height:48px;}
 .booking-page #confirm {width:100%;min-height:52px;}
 .booking-page .booking-progress {gap:5px;}
 .booking-progress a {flex:1;text-align:center;font-size:11px;padding:11px 5px;}
 .booking-page fieldset:focus {outline:none;}
 .booking-page fieldset:focus legend {text-decoration:underline;text-underline-offset:5px;}
 .admin-page .tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
 .admin-page .tabs button {min-height:46px;font-size:13px;padding:10px 8px;}
 .admin-page .row {display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;}
 .admin-page .row>* {min-width:0;}
 .admin-page .calendar-toolbar {grid-template-columns:1fr 1fr;gap:10px;}
 .admin-page .calendar-toolbar>label,.admin-page .calendar-toolbar>div {grid-column:1/-1;}
 .admin-page .calendar-toolbar>div {grid-row:2;text-align:center;padding:10px 0;}
 .admin-page .calendar-toolbar>button {font-size:12px;min-height:45px;}
 .admin-page .week-calendar {grid-template-columns:minmax(0,1fr);min-width:0;}
 .admin-page .week-day {min-height:0;}
 .admin-page .week-day .muted {margin:12px 0;}
 .admin-page .day-view-column {padding:0;border:0;background:transparent;}
 .admin-page .table-wrap {overflow:visible;}
 .admin-page .table-wrap table,.admin-page .table-wrap tbody {display:block;}
 .admin-page .table-wrap thead {position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;}
 .admin-page .table-wrap tr {display:block;border:1px solid #ccc;border-radius:12px;padding:14px;margin:0 0 14px;}
 .admin-page .table-wrap td {display:block;min-width:0;border:0;padding:8px 0;white-space:pre-line;font-size:14px;}
 .admin-page .table-wrap td::before {content:attr(data-label);display:block;font-size:11px;color:#666;font-weight:700;margin-bottom:5px;}
 .admin-page td button {min-height:44px;padding:10px 12px;}
 .admin-page .month-calendar {min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;}
 .admin-page .month-day {min-height:66px;padding:4px;overflow:hidden;}
 .admin-page .month-weekday {font-size:10px;padding:8px 0;}
 .admin-page .month-booking {font-size:0;padding:3px 1px;margin:2px 0;}
 .admin-page .month-booking strong {font-size:9px;}
 .admin-page .month-day-number {font-size:12px;}
 .admin-page .month-day-today .month-day-number {min-width:22px;height:22px;}
 .admin-page .hours-row {padding:15px 0;border-bottom:1px solid #ddd;}
 .admin-page .salon-hours-day {grid-column:1/-1;font-weight:700;}
 .admin-page .salon-closed {grid-column:1/-1;}
 .admin-page h1 {font-size:29px;}
}
@media(max-width:600px){.hero-wordmark {padding:20px 0 30px;}.map-panel {min-height:0;}.map-panel iframe {height:280px;min-height:280px;}.map-address {padding:20px;}.brand{width:160px;}}

/* The header wordmark has its own alpha channel; no backdrop blending. */
.logo-filter-defs { position:absolute; overflow:hidden; pointer-events:none; }
header .brand { background:transparent; mix-blend-mode:normal; line-height:0; text-decoration:none; }
header .brand .logo-crop { display:block; background:transparent; aspect-ratio:1534 / 316; isolation:auto; }
header .brand .logo-crop img { position:static; display:block; width:100%; height:auto; max-width:100%; filter:none; mix-blend-mode:normal; }

/* =========================================
   BUCHUNG · SERVICE-MEHRFACHAUSWAHL
   ========================================= */

.service-choices {
  display: grid;
  gap: 22px;
  margin-top: 18px;
}

.service-group {
  display: grid;
  gap: 10px;
}

.service-group-title {
  margin: 0 0 4px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  color: #666;
}

.service-choice {
  display: flex;
  align-items: flex-start;
  gap: 14px;

  padding: 16px 17px;

  border: 1px solid #d8d8d8;
  border-radius: 14px;

  background: #fff;

  cursor: pointer;

  transition:
    border-color .15s ease,
    background .15s ease,
    box-shadow .15s ease;
}

.service-choice:hover {
  border-color: #999;
  background: #fafafa;
}

.service-choice:has(input:checked) {
  border-color: #111;
  background: #f3f3f3;
  box-shadow: 0 0 0 1px #111;
}

.service-choice:has(input:disabled) {
  cursor: not-allowed;
  opacity: .48;
}

.service-choice input[type="checkbox"] {
  width: 20px;
  height: 20px;

  margin: 2px 0 0;

  flex: 0 0 auto;

  accent-color: #111;
}

.service-choice-content {
  display: grid;
  gap: 4px;

  min-width: 0;
  width: 100%;
}

.service-choice-content strong {
  display: block;

  font-size: 15px;
  line-height: 1.35;
}

.service-choice-content span {
  display: block;

  font-size: 13px;
  line-height: 1.45;
}

#serviceInfo {
  margin-top: 18px;

  padding: 13px 15px;

  background: #f3f3f3;
  border-radius: 10px;

  font-weight: 650;
}

#serviceInfo:empty {
  display: none;
}


@media (min-width: 760px) {
  .service-group {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .service-group-title {
    grid-column: 1 / -1;
  }
}


@media (max-width: 760px) {
  .service-choices {
    gap: 18px;
  }

  .service-choice {
    padding: 15px;
    border-radius: 12px;
  }

  .service-choice input[type="checkbox"] {
    width: 22px;
    height: 22px;

    min-height: 0;
  }

  .service-choice-content strong {
    font-size: 15px;
  }

  .service-choice-content span {
    font-size: 12px;
  }
}

/* Four visit links stay within the existing page width. */
@media (min-width: 1001px) {
  .blend-links { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .blend-links > a { padding-left: 22px; padding-right: 22px; }
  .blend-links h2 { font-size: 25px; }
}
@media (min-width: 601px) and (max-width: 1000px) {
  .blend-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 0; }
  .blend-links > a:nth-child(2n) { border-right: 0; }
  .blend-links > a:nth-child(3) { padding-left: 0; }
}
.blend-links > a { min-width: 0; }
.admin-page #serviceForm, .admin-page .service-choice-content { min-width: 0; }
.admin-page .service-choice-content { overflow-wrap: anywhere; }
.admin-page #servicesTable { margin-top: 28px; }
@media (max-width: 760px) {
  .admin-page section.card { padding: 18px; }
  .admin-page #serviceForm input:not([type=checkbox]),
  .admin-page #serviceForm select, .admin-page #serviceForm textarea { min-width: 0; max-width: 100%; }
  .admin-page #serviceForm .actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .admin-page #serviceForm .actions button { width: 100%; min-height: 46px; }
  .admin-page #serviceForm .check { min-height: 44px; display: flex; align-items: center; gap: 8px; }
  .admin-page #serviceForm input[type=checkbox] { width: 22px; height: 22px; flex: 0 0 22px; }
}

@media (max-width:760px) {
  .admin-page .calendar-view-switch { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
  .admin-page .calendar-view-switch button { min-width:0; padding:11px 4px; min-height:44px; }
}

/* Google Maps is only inserted after consent. */
.map-panel [hidden] { display:none !important; }
.map-consent { padding:32px; flex:1; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:16px; }
.map-consent h2 { margin:0; font-size:28px; }
.map-consent p { margin:0; color:#444; font-size:14px; line-height:1.65; }
.map-consent a { text-decoration:underline; text-underline-offset:3px; font-size:14px; }
.map-consent .button { margin-top:4px; white-space:normal; text-align:left; }
.map-embed { display:flex; flex:1; min-height:380px; }
.map-consent-controls { padding:18px 28px; background:#fff; border-top:1px solid #ddd; }
.map-consent-controls button { background:#fff; color:#111; border:1px solid #777; border-radius:8px; padding:12px 16px; font:inherit; cursor:pointer; text-align:left; }
.map-consent-controls p { margin:10px 0 0; font-size:12px; color:#555; }
@media(max-width:600px){.map-consent {padding:24px;}.map-consent h2 {font-size:24px;}.map-embed {min-height:280px;}.map-consent-controls {padding:18px 20px;}}

/* Permanent deletion is deliberately distinct from reversible deactivation. */
.admin-page button.permanent-danger { color:#a32121; border-color:#a32121; }
#permanentStaffDialog { width:min(520px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:26px; border:1px solid #ccc; border-radius:14px; overflow:auto; }
#permanentStaffDialog::backdrop { background:#0008; }
#permanentStaffDialog .actions { flex-wrap:wrap; }
#permanentStaffDialog .permanent-danger { background:#a32121; color:#fff; }
#permanentStaffName { font-weight:700; overflow-wrap:anywhere; }
.admin-page #staffTable td:last-child > div { display:flex; flex-wrap:wrap; gap:8px; }
.admin-page #staffTable td:last-child button { margin:0; }
@media(max-width:760px) {
  #permanentStaffDialog { padding:20px; }
  #permanentStaffDialog .actions { display:grid; grid-template-columns:1fr; }
  .admin-page #editBooking .calendar button,.admin-page #newBookingForm .calendar button { min-height:44px; }
  .admin-page #editSlots button,.admin-page #newSlots button { min-height:44px; }
  .admin-page #editBooking select { min-width:0; width:100%; }
  .admin-page .row.availability-toolbar { grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:8px; }
  .admin-page .availability-toolbar h3 { margin:0; text-align:center; font-size:16px; }
}
