/* Tausendschön – Kontaktbereich Startseite: Head/Text/Formular über volle Breite
   Einfügen unter: Design > Customizer > Zusätzliches CSS
   oder: Design > Editor > Styles > Zusätzliches CSS
*/

:root {
  --ts-logo-red: #a43a50;
  --ts-logo-red-soft: rgba(164, 58, 80, .11);
  --ts-logo-red-line: rgba(164, 58, 80, .18);
}

/* Kontaktbereich insgesamt feiner und auf Contentbreite zentriert */
#kontakt.ts-contact-panel,
.ts-contact-panel#kontakt {
  width: min(1120px, calc(100vw - 42px)) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;

  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: clamp(1.05rem, 2.2vw, 1.8rem) !important;

  padding: clamp(1.7rem, 4vw, 3.2rem) !important;
  border-radius: clamp(28px, 4vw, 48px) !important;
  border: 1px solid var(--ts-logo-red-line) !important;

  background:
    radial-gradient(circle at 94% 8%, rgba(164,58,80,.105) 0 12rem, transparent 12.1rem),
    radial-gradient(circle at 6% 96%, rgba(241,223,228,.62) 0 15rem, transparent 15.1rem),
    linear-gradient(135deg, rgba(255,250,247,.94), rgba(255,255,255,.78)) !important;

  box-shadow: 0 18px 52px rgba(76,57,65,.075) !important;
  color: var(--ts-ink, #4c3941) !important;
}

/* alle direkten Bereiche laufen über die volle Breite */
#kontakt.ts-contact-panel > *,
.ts-contact-panel#kontakt > * {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
}

/* Head/Intro nicht als schmale Spalte, sondern fein über die Fläche */
#kontakt.ts-contact-panel > .wp-block-group:first-child,
.ts-contact-panel#kontakt > .wp-block-group:first-child {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
}

#kontakt .ts-kicker,
#kontakt .ts-eyebrow {
  color: var(--ts-logo-red) !important;
  letter-spacing: .14em !important;
  font-size: .78rem !important;
  margin-bottom: .55rem !important;
}

#kontakt h2,
#kontakt .ts-section-title {
  max-width: 980px !important;
  margin-bottom: .75rem !important;
  color: var(--ts-ink, #4c3941) !important;
  font-size: clamp(2.25rem, 4.6vw, 4.35rem) !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
}

#kontakt .ts-text,
#kontakt p {
  max-width: 980px !important;
  color: rgba(76,57,65,.72) !important;
}

/* Der alte Mail-Button darf bleiben, wirkt aber feiner */
#kontakt .ts-button-row {
  margin-top: 1.15rem !important;
}

#kontakt .wp-block-button__link {
  min-height: 2.95rem !important;
  padding: .78rem 1.25rem !important;
  border-radius: 999px !important;
  font-size: .92rem !important;
  box-shadow: 0 12px 28px rgba(164,58,80,.12) !important;
}

/* Kontaktdaten als ruhige Zeile unter dem Intro */
#kontakt .ts-contact-details {
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .85rem !important;
  padding: 0 !important;
  margin: .25rem 0 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#kontakt .ts-contact-details span {
  display: block !important;
  min-height: 100% !important;
  padding: 1rem 1.1rem !important;
  border-radius: 22px !important;
  border: 1px solid var(--ts-logo-red-line) !important;
  background: rgba(255,255,255,.64) !important;
  box-shadow: 0 10px 24px rgba(76,57,65,.045) !important;
}

#kontakt .ts-contact-details strong {
  display: block !important;
  margin-bottom: .25rem !important;
  color: var(--ts-logo-red) !important;
  font-size: .82rem !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

#kontakt .ts-contact-details a {
  color: var(--ts-ink, #4c3941) !important;
  font-size: clamp(1rem, 1.4vw, 1.18rem) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

/* Fluent-Form-Bereich über komplette Breite */
#kontakt .ts-contact-form-slot {
  width: 100% !important;
  max-width: none !important;
  margin-top: .5rem !important;
  padding: clamp(1.15rem, 2.7vw, 2rem) !important;
  border-radius: clamp(24px, 3vw, 34px) !important;
  border: 1px solid var(--ts-logo-red-line) !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.72), rgba(255,250,247,.84)) !important;
  box-shadow: 0 18px 42px rgba(76,57,65,.06) !important;
}

#kontakt .ts-contact-form-slot > p:first-child {
  margin: 0 0 .85rem !important;
  max-width: none !important;
  color: rgba(76,57,65,.58) !important;
  font-size: .9rem !important;
}

/* Fluent Forms: volle Breite, feine Inputs */
#kontakt .ts-contact-form-slot .fluentform,
#kontakt .ts-contact-form-slot .frm-fluent-form,
#kontakt .ts-contact-form-slot form {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

#kontakt .ts-contact-form-slot .ff-el-group {
  margin-bottom: 1rem !important;
}

#kontakt .ts-contact-form-slot input,
#kontakt .ts-contact-form-slot textarea,
#kontakt .ts-contact-form-slot select {
  width: 100% !important;
  min-height: 3rem !important;
  border-radius: 18px !important;
  border: 1px solid rgba(164,58,80,.18) !important;
  background: rgba(255,255,255,.78) !important;
  box-shadow: none !important;
}

#kontakt .ts-contact-form-slot textarea {
  min-height: 8.5rem !important;
}

#kontakt .ts-contact-form-slot input:focus,
#kontakt .ts-contact-form-slot textarea:focus,
#kontakt .ts-contact-form-slot select:focus {
  border-color: rgba(164,58,80,.42) !important;
  box-shadow: 0 0 0 3px rgba(164,58,80,.09) !important;
}

#kontakt .ts-contact-form-slot button,
#kontakt .ts-contact-form-slot .ff-btn-submit,
#kontakt .ts-contact-form-slot input[type="submit"] {
  min-height: 3rem !important;
  padding: .82rem 1.45rem !important;
  border-radius: 999px !important;
  border-color: var(--ts-logo-red) !important;
  background: var(--ts-logo-red) !important;
  color: #fff !important;
  font-weight: 800 !important;
  box-shadow: 0 14px 30px rgba(164,58,80,.18) !important;
}

#kontakt .ts-contact-form-slot button:hover,
#kontakt .ts-contact-form-slot .ff-btn-submit:hover,
#kontakt .ts-contact-form-slot input[type="submit"]:hover {
  transform: translateY(-1px);
  filter: brightness(.97);
}

/* Tablet */
@media (max-width: 860px) {
  #kontakt.ts-contact-panel,
  .ts-contact-panel#kontakt {
    width: min(100% - 28px, 720px) !important;
    padding: 1.4rem !important;
  }

  #kontakt .ts-contact-details {
    grid-template-columns: 1fr !important;
  }
}

/* Smartphone */
@media (max-width: 520px) {
  #kontakt.ts-contact-panel,
  .ts-contact-panel#kontakt {
    width: min(100% - 22px, 480px) !important;
    border-radius: 28px !important;
  }

  #kontakt h2,
  #kontakt .ts-section-title {
    font-size: clamp(2.05rem, 13vw, 3.15rem) !important;
  }

  #kontakt .ts-contact-form-slot {
    padding: 1rem !important;
    border-radius: 22px !important;
  }
}
/* =========================================================
   HERO – Lesbarkeit verbessern
   ========================================================= */

/* Großer roséfarbener Hintergrundkreis weicher / transparenter */
.ts-hero-2026::before {
  background: rgba(229, 205, 216, 0.24) !important;
}

.ts-hero-2026::after {
  background: rgba(255, 255, 255, 0.32) !important;
  border-color: rgba(154, 118, 133, 0.06) !important;
}

/* Hamburg-Altona-Karte etwas transparenter und optisch leichter */
.ts-hero-2026__door-card {
  background: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.74),
    rgba(251, 246, 248, 0.62)
  ) !important;
  box-shadow:
    0 14px 34px rgba(80, 63, 69, 0.08),
    0 1px 0 rgba(255, 255, 255, 0.82) inset !important;
  border-color: rgba(156, 112, 129, 0.14) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  z-index: 3 !important;
}

/* Bild in der Hamburg-Altona-Karte etwas ruhiger */
.ts-hero-2026__door-card img {
  opacity: 0.92;
}

/* Die Textkarte "Zeit für Dich ..." klar nach vorne holen */
.ts-hero-2026__note {
  z-index: 6 !important;
  background: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.96),
    rgba(250, 244, 247, 0.93)
  ) !important;
  box-shadow:
    0 20px 52px rgba(80, 63, 69, 0.14),
    0 1px 0 rgba(255, 255, 255, 0.96) inset !important;
  border-color: rgba(156, 112, 129, 0.18) !important;
}

/* Text in der Note noch besser lesbar */
.ts-hero-2026__note span {
  text-shadow:
    0 1px 0 rgba(255,255,255,0.96),
    0 0 10px rgba(255,255,255,0.42);
}

/* Optional: Hamburg-Altona-Karte leicht weiter nach unten/links,
   damit sie die Note weniger "schneidet" */
@media (min-width: 1100px) {
  .ts-hero-2026__door-card {
    left: -4% !important;
    bottom: 1% !important;
    width: min(88%, 430px) !important;
  }

  .ts-hero-2026__note {
    right: 2% !important;
    bottom: 23% !important;
  }
}

/* =========================================================
   TAUSENDSCHÖN OPTIMIERT 2.1
   Einheitliche Breiten, Abstände, zentrierte Karten und Anker
   ========================================================= */

:root {
  --ts-content-width: 1128px;
  --ts-page-gutter: clamp(1rem, 3vw, 1.5rem);
  --ts-section-gap: clamp(4.25rem, 7.2vw, 7rem);
  --ts-section-gap-mobile: clamp(3.25rem, 12vw, 4.75rem);
  --ts-header-offset: 96px;
}

html {
  scroll-padding-top: var(--ts-header-offset);
}

body.admin-bar {
  --ts-header-offset: 128px;
}

/* Hero und sämtliche Inhaltsbereiche bekommen exakt dieselbe Außenbreite. */
.ts-hero-2026 {
  --ts-wide: var(--ts-content-width) !important;
}

.ts-hero-2026__inner,
.ts-section,
.ts-header-inner,
.ts-footer-inner,
.ts-header > .alignwide,
.ts-header .ts-header-fine-inner,
.ts-header .wp-block-group.alignwide {
  width: min(var(--ts-content-width), calc(100% - (2 * var(--ts-page-gutter)))) !important;
  max-width: var(--ts-content-width) !important;
  margin-inline: auto !important;
}

/* Verlässlicher Ankerabstand unter dem sticky Header. */
#leistungen,
#wellness-verschenken,
#maren,
#team,
#kontakt,
.ts-anchor-target {
  scroll-margin-top: calc(var(--ts-header-offset) + 18px) !important;
}

.ts-anchor-target {
  display: block;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  pointer-events: none;
}

/* Einheitlicher Rhythmus zwischen allen Startseitenblöcken. */
.ts-page-shell > .ts-section,
.ts-page-shell > section.ts-section {
  margin-block: 0 !important;
}

.ts-page-shell > .ts-section + .ts-section,
.ts-page-shell > .ts-hero-2026 + .ts-section,
.ts-page-shell > .ts-hero + .ts-section {
  margin-top: var(--ts-section-gap) !important;
}

/* Ruhiger Innenabstand für Überschrift und Karten. */
.ts-section-head {
  margin-bottom: clamp(1.65rem, 3.1vw, 2.75rem) !important;
  gap: clamp(1.25rem, 3vw, 3.25rem) !important;
}

.ts-section-head .ts-section-title,
.ts-section-head h2 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.ts-section-head .ts-text,
.ts-section-head > p {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Leistungen: auf Breitbild als geschlossene, exakt zentrierte Kartengruppe. */
#leistungen .ts-service-grid,
.ts-service-grid,
.wp-block-group.ts-service-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 340px)) !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: clamp(1.1rem, 2.2vw, 1.65rem) !important;
  width: 100% !important;
  max-width: var(--ts-content-width) !important;
  margin-inline: auto !important;
}

#leistungen .ts-service-card,
.ts-service-card,
.wp-block-group.ts-service-card {
  width: 100% !important;
  max-width: 340px !important;
  margin: 0 auto !important;
}

.ts-service-card .ts-card-body {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.ts-service-card .ts-card-body > p:last-child {
  margin-top: auto !important;
  padding-top: .75rem !important;
}

/* Teamkarten folgen demselben visuellen Raster. */
.ts-team-grid,
.wp-block-group.ts-team-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 340px)) !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: clamp(1.1rem, 2.2vw, 1.65rem) !important;
  width: 100% !important;
}

.ts-team-card,
.wp-block-group.ts-team-card {
  width: 100% !important;
  max-width: 340px !important;
  margin-inline: auto !important;
}

/* Kontaktpanel ebenfalls exakt auf Inhaltsbreite. */
#kontakt.ts-contact-panel,
.ts-contact-panel#kontakt {
  width: min(var(--ts-content-width), calc(100% - (2 * var(--ts-page-gutter)))) !important;
  max-width: var(--ts-content-width) !important;
}

/* Standardseiten: gleiche vertikale Grundabstände. */
.ts-main-template {
  width: min(var(--ts-content-width), calc(100% - (2 * var(--ts-page-gutter))));
  margin-inline: auto;
  padding-block: clamp(3rem, 6vw, 5.5rem);
}

.ts-main-template > *:first-child {
  margin-top: 0 !important;
}

.ts-main-template > *:last-child {
  margin-bottom: 0 !important;
}

/* Dezenter Fokuszustand für Tastaturnutzung. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid rgba(164, 58, 80, .22);
  outline-offset: 3px;
}

@media (max-width: 980px) {
  :root {
    --ts-header-offset: 88px;
  }

  body.admin-bar {
    --ts-header-offset: 134px;
  }

  #leistungen .ts-service-grid,
  .ts-service-grid,
  .wp-block-group.ts-service-grid,
  .ts-team-grid,
  .wp-block-group.ts-team-grid {
    grid-template-columns: repeat(2, minmax(0, 340px)) !important;
  }

  /* Bei drei Karten sitzt die letzte Karte sauber mittig. */
  #leistungen .ts-service-grid > :last-child:nth-child(odd),
  .ts-service-grid > :last-child:nth-child(odd),
  .ts-team-grid > :last-child:nth-child(odd) {
    grid-column: 1 / -1 !important;
    justify-self: center !important;
  }
}

@media (max-width: 680px) {
  :root {
    --ts-page-gutter: .875rem;
    --ts-header-offset: 82px;
  }

  .ts-page-shell > .ts-section + .ts-section,
  .ts-page-shell > .ts-hero-2026 + .ts-section,
  .ts-page-shell > .ts-hero + .ts-section {
    margin-top: var(--ts-section-gap-mobile) !important;
  }

  #leistungen .ts-service-grid,
  .ts-service-grid,
  .wp-block-group.ts-service-grid,
  .ts-team-grid,
  .wp-block-group.ts-team-grid {
    grid-template-columns: minmax(0, 390px) !important;
  }

  #leistungen .ts-service-grid > :last-child:nth-child(odd),
  .ts-service-grid > :last-child:nth-child(odd),
  .ts-team-grid > :last-child:nth-child(odd) {
    grid-column: auto !important;
  }

  .ts-service-card,
  .wp-block-group.ts-service-card,
  .ts-team-card,
  .wp-block-group.ts-team-card {
    max-width: 390px !important;
  }
}
