/*
Theme Name: Silvia Ament
Theme URI: https://ament.biz
Author: getSichtbar
Author URI: https://getsichtbar.com
Description: Maßgeschneidertes Block-Theme für Silvia Ament — Yoga & Gesundheit mit medizinischem Fundament, Owen & Kirchheim unter Teck. Richtung "Warm & Persönlich".
Version: 0.5.6
Requires at least: 6.5
Tested up to: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: silvia-ament
*/

/* ---------- Basis ---------- */
@media (prefers-reduced-motion: no-preference) {
  :root { scroll-behavior: smooth; }
}
a { text-underline-offset: 0.18em; }

/* Fokus-Ring (Barrierefreiheit) — alle interaktiven Elemente */
:where(a, button, input, textarea, select, summary, .wp-element-button, .wp-block-button__link,
  .wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close):focus-visible {
  outline: 2px solid var(--wp--preset--color--beere);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Sanfte, einheitliche Übergänge (Premium-Gefühl statt hartem Umspringen) */
:where(a, .wp-element-button, .wp-block-button__link, .wp-block-navigation-item__content) {
  transition: color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

/* ---------- Bilder ---------- */
/* Warmer Bild-Grade (Klammer über alle Fotos) */
.wp-block-image img,
.is-graded img,
.wp-block-cover.is-graded .wp-block-cover__image-background {
  filter: sepia(0.20) saturate(1.10) brightness(1.02) contrast(0.97) hue-rotate(-8deg);
}
/* Stärkerer warmer Grade für das kühl-blaue See-Bild */
.wp-block-cover.is-graded-cool .wp-block-cover__image-background,
.is-graded-cool img {
  filter: sepia(0.34) saturate(0.82) brightness(1.05) contrast(0.98) hue-rotate(-16deg);
}
/* Bogen-Rahmen für Porträts (Design-Signatur Richtung C) */
.silvia-arch img {
  border-radius: 999px 999px 18px 18px;
  display: block; width: 100%; height: auto; object-fit: cover;
}

/* ---------- Typografie-Feinschliff ---------- */
/* Lesbare Zeilenlänge für Fließtext */
main p:not(.has-text-align-center):not(.has-custom-font-size):not([class*="has-"]) { max-width: 68ch; }
main .has-text-align-center { max-width: 62ch; margin-inline: auto; }
/* Eyebrow klebt an der folgenden Headline */
.has-rosa-color.has-text-color + .wp-block-heading { margin-top: 0.4rem; }
/* Schreibschrift sauber tracken */
.has-hand-font-family { letter-spacing: -0.01em; }

/* ---------- Header / Navigation ---------- */
header.wp-block-group { box-shadow: 0 1px 0 rgba(110, 74, 85, 0.07); }
/* Seitentitel nie unterstrichen */
.wp-block-site-title a, .wp-block-site-title a:hover { text-decoration: none; }

/* Hero-Porträt: maßvolle Größe (nicht riesig) */
.hero-portrait { max-width: 340px; margin-inline: auto; }
.hero-portrait img { border-radius: 999px 999px 18px 18px; display:block; width:100%; height:auto; filter: none; }  /* Foto ist bereits warm — kein Zusatz-Grade */
.wp-block-navigation .wp-block-navigation-item__content {
  text-decoration-line: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.35em;
}
.wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-navigation-item__content[aria-current="page"] {
  color: var(--wp--preset--color--beere);
  text-decoration-color: var(--wp--preset--color--rosa);
}

/* ---------- Buttons: sanfter Lift ---------- */
.wp-element-button:hover, .wp-block-button__link:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(110, 74, 85, 0.18);
}

/* ---------- Links: lesbarer Hover (Kontrast AA), nie unsichtbar ---------- */
.wp-block-group:not(footer) a:hover { color: #9E5340; }

/* ---------- Footer ---------- */
footer.wp-block-group a,
footer.wp-block-group .wp-block-list a,
footer.wp-block-group li a {
  color: var(--wp--preset--color--creme) !important;
  opacity: 0.92;
}
footer.wp-block-group a:hover { color: #EBC069 !important; opacity: 1; }
footer.wp-block-group h2,
footer.wp-block-group h3 { color: var(--wp--preset--color--creme); }

/* ---------- Angebots-Karten ---------- */
.sa-card {
  position: relative; height: 100%;
  border: 1px solid rgba(110, 74, 85, 0.12);
  display: flex; flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.sa-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(110, 74, 85, 0.12); }
.sa-card .sa-card__icon { display: block; margin-bottom: 0.9rem; color: var(--wp--preset--color--rosa); }
.sa-card p:last-child { margin-top: auto; }      /* "Mehr erfahren" bündig unten */
.sa-card a.sa-more { font-weight: 500; letter-spacing: 0.01em; color: var(--wp--preset--color--rosa); display: inline-block; }
.sa-card a[href^="/angebote"]::after { content: ""; position: absolute; inset: 0; }  /* ganze Karte klickbar */
.sa-card:hover a.sa-more { transform: translateX(3px); }
@media (prefers-reduced-motion: no-preference) {
  .sa-card .wp-block-image img { transition: transform 0.35s ease; }
  .sa-card:hover .wp-block-image img { transform: scale(1.02); }
}

/* ---------- Kontaktformular (Contact Form 7) ---------- */
.wpcf7-form p { margin: 0 0 1.1rem; line-height: 1.5; }
.wpcf7-form label { display: block; font-size: 0.95rem; color: var(--wp--preset--color--beere); }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="url"],
.wpcf7-form textarea {
  width: 100%; box-sizing: border-box; margin-top: 0.4rem;
  padding: 0.72rem 0.95rem;
  border: 1px solid rgba(110, 74, 85, 0.22); border-radius: 10px;
  background: var(--wp--preset--color--weiss);
  font-family: var(--wp--preset--font-family--sans); font-size: 1rem;
  color: var(--wp--preset--color--tinte);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.wpcf7-form input:focus, .wpcf7-form textarea:focus {
  outline: none; border-color: var(--wp--preset--color--rosa);
  box-shadow: 0 0 0 3px rgba(201, 139, 122, 0.18);
}
.wpcf7-form textarea { min-height: 140px; resize: vertical; }
.wpcf7-form .wpcf7-list-item { margin: 0.3rem 0 0; display: block; }
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label,
.wpcf7-form .wpcf7-acceptance { font-size: 0.85rem; line-height: 1.55; color: var(--wp--preset--color--tinte); }
.wpcf7-form input[type="checkbox"] { margin-right: 0.5rem; accent-color: var(--wp--preset--color--beere); }
.wpcf7-form input[type="submit"] {
  background: var(--wp--preset--color--beere); color: var(--wp--preset--color--creme);
  border: none; border-radius: 999px; padding: 0.85rem 2.1rem; margin-top: 0.4rem;
  font-family: var(--wp--preset--font-family--sans); font-weight: 500; font-size: 1rem; cursor: pointer;
  transition: background-color 0.2s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.wpcf7-form input[type="submit"]:hover { background: #9E5340; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(110, 74, 85, 0.18); }
.wpcf7-form .wpcf7-response-output { border-radius: 10px; margin: 1.1rem 0 0 !important; padding: 0.7rem 1rem !important; font-size: 0.95rem; }
.wpcf7-not-valid-tip { color: #A32D2D; font-size: 0.82rem; margin-top: 0.25rem; }
.wpcf7-spinner { margin: 0 0 0 0.5rem; }

/* Karte: eingefasst statt drangeklatscht */
.sa-map { border-radius: 14px; overflow: hidden; border: 1px solid rgba(110, 74, 85, 0.14); line-height: 0; }
.sa-map iframe { display: block; width: 100%; }
/* Cookie-Consent-Platzhalter der Karte freundlicher */
.borlabs-cookie .brlbs-cmpnt-container, .borlabs-cookie { border-radius: 12px; }

/* ---------- Zitate / Testimonials (waren flach) ---------- */
.wp-block-quote {
  position: relative; border: none !important;
  margin: 1.75rem 0; padding: 0.4rem 0 0.4rem 2.4rem;
}
.wp-block-quote::before {
  content: "\201C"; position: absolute; left: -0.4rem; top: -0.7rem;
  font-family: var(--wp--preset--font-family--serif); font-size: 4rem; line-height: 1;
  color: var(--wp--preset--color--rosa); opacity: 0.55;
}
.wp-block-quote p {
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.3rem; font-style: italic; line-height: 1.55;
  color: var(--wp--preset--color--beere);
}
.wp-block-quote cite, .wp-block-quote .wp-block-quote__citation {
  display: block; margin-top: 0.7rem; font-style: normal;
  font-family: var(--wp--preset--font-family--sans);
  font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--wp--preset--color--salbei);
}

/* ---------- Bild-Banner (Retreats etc.) ---------- */
/* Bild-Banner: sauber auf Inhaltsbreite, gerundet */
.sa-banner { border-radius: 16px; overflow: hidden; }
.sa-banner .wp-block-cover__inner-container { width: 100%; }

/* ---------- Service-Karten-Icons etwas präsenter ---------- */
.sa-card .sa-card__icon { width: 34px; height: 34px; }

/* ---------- Blog-Liste ---------- */
.wp-block-post-excerpt__more-link {
  display: inline-block; margin-top: 0.5rem; font-weight: 500;
  letter-spacing: 0.01em; color: var(--wp--preset--color--rosa);
}
.wp-block-query .wp-block-post-title a { color: var(--wp--preset--color--beere); }

/* ---------- FAQ-Akkordeon (GEO + Nutzer) ---------- */
.sa-faq { max-width: 820px; margin: 2.5rem auto 0; }
.sa-faq > h2 { font-size: 1.7rem; margin-bottom: 1rem; }
.sa-faq__item {
  border: 1px solid rgba(110, 74, 85, 0.14); border-radius: 12px;
  background: var(--wp--preset--color--weiss); margin-bottom: 0.7rem; padding: 0 1.2rem;
}
.sa-faq__item summary {
  list-style: none; cursor: pointer; padding: 1rem 0; font-weight: 500;
  color: var(--wp--preset--color--beere); font-size: 1.05rem;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
}
.sa-faq__item summary::-webkit-details-marker { display: none; }
.sa-faq__item summary::after { content: "+"; font-size: 1.4rem; color: var(--wp--preset--color--rosa); transition: transform 0.2s ease; }
.sa-faq__item[open] summary::after { transform: rotate(45deg); }
.sa-faq__a { padding: 0 0 1.1rem; line-height: 1.7; color: var(--wp--preset--color--tinte); }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
  .sa-header-cta { display: none; }            /* "Stundenplan" steckt im Burger-Menü */
}
@media (max-width: 600px) {
  h1.wp-block-heading { font-size: clamp(2rem, 9vw, 2.75rem); }
  .wp-block-buttons .wp-block-button { width: 100%; }
  .wp-block-buttons .wp-block-button__link { display: block; text-align: center; }
  /* Stundenplan-Tabelle als Karten-Stapel */
  .sa-stundenplan table, .sa-stundenplan thead, .sa-stundenplan tbody,
  .sa-stundenplan tr, .sa-stundenplan td { display: block; width: 100%; }
  .sa-stundenplan thead { display: none; }
  .sa-stundenplan tr {
    margin-bottom: 1rem; border: 1px solid rgba(110, 74, 85, 0.15);
    border-radius: 12px; padding: 0.9rem 1.1rem; background: var(--wp--preset--color--weiss);
  }
  .sa-stundenplan td { border: none !important; padding: 0.2rem 0; text-align: left !important; font-size: 0.95rem; line-height: 1.45; }
  .sa-stundenplan td::before {
    display: block; font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--wp--preset--color--rosa); margin-bottom: 0.1rem;
  }
  .sa-stundenplan td:nth-of-type(1)::before { content: "Tag"; }
  .sa-stundenplan td:nth-of-type(2)::before { content: "Uhrzeit"; }
  .sa-stundenplan td:nth-of-type(3)::before { content: "Kurs"; }
  .sa-stundenplan td:nth-of-type(4)::before { content: "Ort"; }
  .sa-stundenplan td:nth-of-type(1) { font-weight: 500; color: var(--wp--preset--color--beere); }
}
@media (max-width: 782px) {
  .sa-card a.sa-more { padding: 0.4rem 0; min-height: 40px; }
}


/* ---------- Schwebender WhatsApp-Button (auf jeder Seite) ---------- */
.sa-whatsapp {
  position: fixed; z-index: 990;
  right: max(1.15rem, env(safe-area-inset-right));
  bottom: max(1.15rem, env(safe-area-inset-bottom));
  display: inline-flex; align-items: center; gap: 0.55rem;
  width: 58px; height: 58px; padding: 0;
  border-radius: 999px; overflow: hidden;
  background: #5E7A5A;            /* sattes Salbeigrün — auf Palette, klar als WhatsApp lesbar */
  color: #FFFFFF; text-decoration: none;
  box-shadow: 0 8px 24px rgba(58, 47, 48, 0.26);
  transition: width 0.28s ease, transform 0.18s ease, box-shadow 0.18s ease, background-color 0.2s ease;
}
.sa-whatsapp svg { width: 30px; height: 30px; flex: 0 0 58px; margin: 0 auto; }
.sa-whatsapp__text {
  white-space: nowrap; font-family: var(--wp--preset--font-family--sans);
  font-weight: 600; font-size: 0.98rem; letter-spacing: 0.01em;
  opacity: 0; transition: opacity 0.2s ease; padding-right: 1.1rem;
}
/* Desktop: bei Hover/Fokus zur Pille ausklappen + Label zeigen */
@media (hover: hover) and (min-width: 700px) {
  .sa-whatsapp:hover, .sa-whatsapp:focus-visible {
    width: 188px; transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(58, 47, 48, 0.32); background: #54704F;
  }
  .sa-whatsapp:hover .sa-whatsapp__text,
  .sa-whatsapp:focus-visible .sa-whatsapp__text { opacity: 1; }
}
@media (max-width: 600px) {
  .sa-whatsapp { width: 52px; height: 52px; }
  .sa-whatsapp svg { flex-basis: 52px; width: 27px; height: 27px; }
  .sa-whatsapp__text { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .sa-whatsapp, .sa-whatsapp__text { transition: none; }
}


/* ---------- Übungsvideos (YouTube-Grid) ---------- */
.sa-videos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem 1.75rem; }
.sa-videos figure.wp-block-embed { margin: 0; }
.sa-videos .wp-block-embed__wrapper { border-radius: 12px; overflow: hidden; }
.sa-videos .wp-element-caption { margin-top: 0.55rem; font-size: 0.95rem; line-height: 1.4; color: var(--wp--preset--color--beere); text-align: left; }
@media (max-width: 640px) { .sa-videos { grid-template-columns: 1fr; } }
