/*
Theme Name: Seelen Anker
Description: Modernes, responsives Block-Theme für Seelen Anker – Energie, Ausgleich, Harmonie.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: seelenanker
*/

/* ---- Seelen Anker design ---- */
:root { --sa-gold: #b8862b; --sa-navy: #0f1b4d; --sa-rose: #fde9f1; }
body { background: linear-gradient(180deg, #fff8fb 0%, #fde9f1 100%) fixed; }
.wp-block-post-title { text-align: center; color: var(--sa-navy); margin-bottom: 1.5rem; }
.wp-block-post-title::after { content: ""; display: block; width: 90px; height: 2px; margin: 1rem auto 0; background: linear-gradient(90deg, transparent, var(--sa-gold), transparent); }
img { max-width: 100%; height: auto; }
.wp-block-image img, .entry-content img { border-radius: 16px; }
main hr, .wp-block-separator { border: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--sa-gold), transparent); opacity: 1; }
.wp-block-post-content p.has-large-font-size { font-family: var(--wp--preset--font-family--heading); color: var(--sa-navy); font-weight: 600; }
.wp-block-post-content > .grids-section, .wp-block-post-content .wp-block-image { margin-block: 1.5rem; }

/* Imported "Grids" layout (plugin not installed) */
.grids-section .grids-s-w_i { display: grid; grid-template-columns: repeat(var(--_gs-columns, 12), minmax(0, 1fr)); grid-auto-rows: auto; gap: 1.5rem; align-items: center; }
.grids-section .grids-area { grid-column: var(--_ga-column); grid-row: var(--_ga-row); display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 1rem; border-radius: 20px; }
.grids-section .grids-area:has(p, h2, h3) { background: rgba(255, 255, 255, .6); }
@media (max-width: 781px) {
	.grids-section .grids-s-w_i { display: flex; flex-direction: column; }
	.grids-section .grids-area { grid-column: auto; grid-row: auto; }
}

/* Cards: WooCommerce category/product grids */
.wc-block-grid__product, .product-category, ul.products li.product, .wc-block-product { background: #fff; border-radius: 20px; padding: 1rem; box-shadow: 0 8px 28px rgba(184, 134, 43, .12); transition: transform .2s, box-shadow .2s; }
.wc-block-grid__product:hover, .wc-block-product:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(184, 134, 43, .22); }
.wc-block-grid__product-title, .woocommerce-loop-category__title { font-family: var(--wp--preset--font-family--heading); color: var(--sa-navy); }
.wp-block-button__link, .wc-block-components-button { border-radius: 999px; }
.wp-block-button.is-style-outline .wp-block-button__link { border: 2px solid var(--sa-navy); }

/* ---- Powered by bytesmash (wordmark style from bytesmash.at) ---- */
.powered-by { display: flex; align-items: center; justify-content: center; gap: .7rem; margin: .75rem 0 0; font-size: .85rem; opacity: .95; }
.powered-by .wordmark { position: relative; display: inline-block; font: 800 1.1rem/1 "Courier New", Courier, ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 2px; color: #f5f5f7; text-decoration: none; isolation: isolate; }
.powered-by .wordmark b { color: #ff5ec0; font-weight: 800; }
.powered-by .wordmark::before, .powered-by .wordmark::after { content: attr(data-text); position: absolute; inset: 0; z-index: -1; opacity: .85; }
.powered-by .wordmark::before { color: #ff2d55; transform: translate(-.07em, .03em); }
.powered-by .wordmark::after { color: #00e5ff; transform: translate(.07em, -.03em); }
.powered-by .wordmark:hover { color: #f5f5f7; }

/* ---- Einheitliche, linksbündige Blöcke (Bild links, Text rechts) ---- */
.sa-blocks { display: flex; flex-direction: column; gap: 2rem; margin-block: 2rem; }
.sa-block { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2rem; align-items: start; background: #fff; border-radius: 20px; padding: 1.75rem; box-shadow: 0 8px 28px rgba(184, 134, 43, .12); text-align: left; }
.sa-block--single { display: block; }
.sa-block__media { display: flex; flex-direction: column; gap: 1rem; }
.sa-block__media figure, .sa-block__text figure { margin: 0; }
.sa-block__media img { width: 100%; height: auto; display: block; }
.sa-block__text { min-width: 0; text-align: left; }
.sa-block__text > :first-child { margin-top: 0; }
.sa-block__text h2, .sa-block__text h3 { margin-top: 0; text-align: left; }
.sa-block__text p { margin-block: .75em; text-align: left; }
.sa-block__text figure { margin-block: 1rem; }
@media (max-width: 781px) { .sa-block { grid-template-columns: 1fr; padding: 1.25rem; } }

/* ---- Terminanfrage-Formular & Hinweisbox ---- */
.sa-notice { background: #fff; border-left: 4px solid var(--sa-gold); border-radius: 12px; padding: 1rem 1.25rem; margin: 1.5rem auto; max-width: 820px; box-shadow: 0 6px 20px rgba(184, 134, 43, .12); text-align: left; }
.sa-notice strong { color: var(--sa-navy); }
.sa-form { --sa-field-border: #e6d3a8; max-width: 820px; margin: 1.5rem auto; background: #fff; border-radius: 20px; padding: 2rem 2rem 1.5rem; box-shadow: 0 10px 34px rgba(184, 134, 43, .14); border-top: 5px solid transparent; border-image: linear-gradient(90deg, #b8862b, #f6a5c4, #b8862b) 1; text-align: left; position: relative; }
.sa-form p { margin: 0 0 1.1rem; }
.sa-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25rem; }
.sa-form label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: .4rem; color: var(--sa-navy); letter-spacing: .01em; }
.sa-form label small { font-weight: 400; color: #5d6285; }
.sa-form label span[aria-hidden] { color: var(--sa-gold); }

/* Alle Eingabefelder identisch */
.sa-form input[type=text], .sa-form input[type=email], .sa-form input[type=tel], .sa-form input[type=date], .sa-form input[type=time], .sa-form select, .sa-form textarea {
	display: block; width: 100%; box-sizing: border-box; margin: 0; min-height: 3.1rem; padding: .75rem 1rem;
	font: inherit; font-size: 1rem; line-height: 1.4; color: var(--sa-navy); background-color: #fffdfb;
	border: 1.5px solid var(--sa-field-border); border-radius: 12px; box-shadow: none;
	-webkit-appearance: none; appearance: none; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.sa-form textarea { min-height: 9rem; resize: vertical; }
.sa-form select { padding-right: 2.6rem; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23b8862b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1.1rem center; }
.sa-form input[type=date], .sa-form input[type=time] { cursor: text; }
.sa-form input[type=date]::-webkit-calendar-picker-indicator, .sa-form input[type=time]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .7; }
.sa-form ::placeholder { color: #9aa0bd; opacity: 1; }
.sa-form input:hover, .sa-form select:hover, .sa-form textarea:hover { border-color: #d3b574; }
.sa-form input:focus, .sa-form select:focus, .sa-form textarea:focus { outline: none; border-color: var(--sa-gold); box-shadow: 0 0 0 4px rgba(184, 134, 43, .18); background-color: #fff; }
.sa-form input:user-invalid, .sa-form select:user-invalid, .sa-form textarea:user-invalid { border-color: #d6456b; }

.sa-form__check label { display: flex; gap: .7rem; align-items: flex-start; font-weight: 400; font-size: .95rem; }
.sa-form__check input[type=checkbox] { flex: none; width: 1.25rem; height: 1.25rem; margin-top: .15rem; accent-color: var(--sa-gold); }
.sa-form__hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.sa-form__hint { font-size: .92rem; color: #5d6285; background: var(--sa-rose); border-radius: 10px; padding: .7rem .9rem; }
.sa-form button[type=submit] { background: var(--sa-navy); color: #fff; border: 0; border-radius: 999px; padding: .95rem 2.2rem; font: inherit; font-weight: 600; cursor: pointer; transition: background-color .15s, transform .15s; }
.sa-form button[type=submit]:hover { background: var(--sa-gold); transform: translateY(-1px); }
.sa-form__msg { border-radius: 12px; padding: .9rem 1.1rem; margin-bottom: 1.25rem; font-weight: 600; }
.sa-form__msg--ok { background: #eaf7ee; color: #1d5c32; border: 1px solid #b9e0c5; }
.sa-form__msg--error { background: #fdecef; color: #8a1c35; border: 1px solid #f2b8c6; }
@media (max-width: 600px) { .sa-form { padding: 1.4rem 1.2rem 1rem; } .sa-form__row { grid-template-columns: 1fr; } }

/* Formulare füllen ihren Bereich; keine Karte in der Karte */
.grids-area .sa-form { width: 100%; box-sizing: border-box; margin-inline: auto; }
.grids-section .grids-area:has(.sa-form) { background: none; padding: 0; }

/* Überschrift über dem Formular: ohne Karte, zentriert (wie "Termin anfragen") */
.grids-section .grids-area:has(> .wp-block-separator + h2) { background: none; padding: 0 1rem; }
.grids-area > .wp-block-separator + h2 { text-align: center; margin: 1rem 0 .5rem; }

.grids-area > .wp-block-separator:has(+ h2) { height: 1px; border: 0; background: linear-gradient(90deg, transparent, var(--sa-gold), transparent) !important; opacity: 1; }

/* ---- Shop-Karten: Preis + Button immer am Kartenende, gleiche Ausrichtung ---- */
.wc-block-product-template { align-items: stretch; }
.wc-block-product, .wc-block-grid__product { display: flex; flex-direction: column; height: 100%; box-sizing: border-box; }
.wc-block-product .wp-block-post-title, .wc-block-grid__product-title { flex: 0 0 auto; }
.wc-block-product .wp-block-woocommerce-product-price,
.wc-block-grid__product .wc-block-grid__product-price { margin-top: auto !important; margin-bottom: 1rem !important; text-align: center; }
.wc-block-product .wp-block-woocommerce-product-button, .wc-block-product .wp-block-button,
.wc-block-grid__product .wp-block-button { margin-top: 0; margin-bottom: 0; text-align: center; align-self: center; display: flex; justify-content: center; width: 100%; }
.wc-block-product .wp-block-button__link, .wc-block-grid__product .wp-block-button__link { min-width: min(12rem, 100%); max-width: 100%; box-sizing: border-box; text-align: center; }
@media (max-width: 600px) {
  .wc-block-product .wp-block-button__link, .wc-block-grid__product .wp-block-button__link,
  .wc-block-product .wc-block-components-product-button__button { min-width: 0; width: 100%; padding-left: .5rem; padding-right: .5rem; font-size: .85rem; white-space: normal; }
}
ul.products li.product { display: flex; flex-direction: column; }
ul.products li.product .price { margin-top: auto; }
ul.products li.product .button { align-self: center; }

/* Startseite "Neu im Shop" (älterer WooCommerce-Block): gleich hohe Karten, Button am Kartenende */
.wc-block-grid__products { align-items: stretch; }
.wc-block-grid__products > .wc-block-grid__product { height: auto; align-self: stretch; }
.wc-block-grid__product-link { display: flex; flex-direction: column; text-decoration: none; }
.wc-block-grid__product-title { text-decoration: none; color: var(--sa-navy); text-align: center; margin-bottom: .5rem; }
.wc-block-grid__product .wp-block-button.wc-block-grid__product-add-to-cart { margin-top: 0; padding-bottom: 0; }
.wc-block-grid.has-4-columns .wc-block-grid__product { flex: 0 0 calc(25% - 1.25rem); max-width: calc(25% - 1.25rem); margin: 0 .625rem 1.25rem; }
.wc-block-grid.has-3-columns .wc-block-grid__product { flex: 0 0 calc(33.333% - 1.25rem); max-width: calc(33.333% - 1.25rem); margin: 0 .625rem 1.25rem; }
@media (max-width: 781px) {
  .wc-block-grid .wc-block-grid__products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; }
  .wc-block-grid .wc-block-grid__product { flex: none !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: .75rem; }
}

/* ---- Kategorie-Navigation im Shop ---- */
.sa-cats { max-width: 1200px; margin: 1rem auto 1.5rem; }
.sa-cats__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.sa-cats__list li { margin: 0; }
.sa-cats__pill { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem 1rem; border-radius: 999px; background: #fff; color: var(--sa-navy); border: 1.5px solid #e6d3a8; font-size: .95rem; font-weight: 500; text-decoration: none; transition: background-color .15s, border-color .15s, color .15s, transform .15s; }
.sa-cats__pill:hover, .sa-cats__pill:focus-visible { border-color: var(--sa-gold); background: #fff8ec; transform: translateY(-1px); }
.sa-cats__pill.is-active { background: var(--sa-navy); border-color: var(--sa-navy); color: #fff; }
.sa-cats__count { font-size: .78rem; font-weight: 600; background: var(--sa-rose); color: var(--sa-navy); border-radius: 999px; padding: .1rem .5rem; }
.sa-cats__pill.is-active .sa-cats__count { background: rgba(255, 255, 255, .2); color: #fff; }
.wp-block-term-description { text-align: left; color: #5d6285; max-width: 1200px; margin-inline: auto; }

/* ---- Produktsuche ---- */
.sa-search { display: flex; gap: .6rem; max-width: 1200px; margin: 1.25rem auto 0; }
.sa-search__input { flex: 1 1 auto; min-width: 0; min-height: 3.1rem; box-sizing: border-box; padding: .75rem 1.1rem .75rem 2.9rem; font: inherit; font-size: 1rem; color: var(--sa-navy); background: #fffdfb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23b8862b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 1rem center; border: 1.5px solid #e6d3a8; border-radius: 999px; -webkit-appearance: none; appearance: none; transition: border-color .15s, box-shadow .15s; }
.sa-search__input:hover { border-color: #d3b574; }
.sa-search__input:focus { outline: none; border-color: var(--sa-gold); box-shadow: 0 0 0 4px rgba(184, 134, 43, .18); background-color: #fff; }
.sa-search__input::-webkit-search-cancel-button { cursor: pointer; }
.sa-search__button { flex: none; padding: 0 1.6rem; border: 0; border-radius: 999px; background: var(--sa-navy); color: #fff; font: inherit; font-weight: 600; cursor: pointer; transition: background-color .15s; }
.sa-search__button:hover { background: var(--sa-gold); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 520px) { .sa-search__button { padding: 0 1.1rem; } }

/* Kontakt: Öffnungszeiten-Bild füllt die Kartenbreite (wie das Kontaktformular) */
.grids-area > figure.wp-block-image img { display: block; width: 100%; height: auto; }
.grids-area > figure.wp-block-image { max-width: 820px; width: 100%; margin-inline: auto; }
/* Kontakt: Adress-Karte mit Öffnungszeiten-Bild hat dieselbe Breite wie das Kontaktformular */
.grids-section .grids-area:has(> figure.wp-block-image) { max-width: 820px; width: 100%; margin-inline: auto; box-sizing: border-box; padding: 1.5rem; }
.grids-area > figure.wp-block-image { max-width: 100%; }

/* Captcha (Sicherheitsfrage) */
.sa-form__captcha input[type="text"] { max-width: 8rem; }

/* Hinweisband Adresswechsel (Startseite) */
.sa-move-banner p { margin: 0; font-size: 1rem; }
.sa-move-banner strong { color: #f3d98f; }
.sa-move-banner + .wp-block-group, .wp-site-blocks > .sa-move-banner { margin-block-start: 0; }
.wp-site-blocks > .sa-move-banner + * { margin-block-start: 0; }

/* ---- Mobil: Seiteninhalt zentrieren ---- */
@media (max-width: 781px) {
  .sa-block, .sa-block__text, .sa-block__text p, .sa-block__text h2, .sa-block__text h3,
  .sa-notice, .grids-section .grids-area { text-align: center; }
  .sa-block__text ul, .sa-block__text ol { display: inline-block; text-align: center; list-style-position: inside; padding-left: 0; }
  .grids-section .grids-area { align-items: center; }
  .grids-section .grids-area p, .grids-section .grids-area h2, .grids-section .grids-area h3, .grids-section .grids-area li { text-align: center; }
  .sa-block__media figure, .grids-section figure.wp-block-image { margin-inline: auto; }
  .sa-form__submit, .sa-form .wp-block-button { text-align: center; }
  .sa-form h2, .sa-form h3 { text-align: center; }
}

/* ---- Mobiles Menü (Overlay): volle Breite, zentriert ---- */
.wp-block-navigation__responsive-container.is-menu-open { position: fixed; inset: 0; width: auto; max-width: 100vw; padding: 0; box-sizing: border-box; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  width: 100%; padding: 4.5rem 1.5rem 2rem; box-sizing: border-box; justify-content: center; align-items: center; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
  width: 100%; align-items: stretch; justify-content: center; text-align: center; gap: .25rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; justify-content: center; text-align: center; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  display: block; width: 100%; padding: .9rem 0; text-align: center; font-size: 1.25rem; border-bottom: 1px solid rgba(184, 134, 43, .25); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child .wp-block-navigation-item__content { border-bottom: 0; }

/* Startseite "Neu im Shop": gleiche Karten wie im Shop, mobil immer 2 pro Reihe */
@media (max-width: 781px) {
  .sa-home-products .wc-block-product-template { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .75rem; }
  .sa-home-products .wc-block-product { width: auto !important; max-width: none !important; margin: 0 !important; padding: .75rem; }
}
