/*
Theme Name: Anne Hecker
Theme URI: https://anne-hecker.de
Author: Anne Hecker
Description: Individuelles Block-Theme für Anne Hecker – Coaching, Beratung & Psychotherapie (HeilprG). Alle Texte und Bilder sind im Block-Editor bzw. Website-Editor bearbeitbar. Schriften (Fraunces, Figtree) sind lokal eingebunden (DSGVO-freundlich, keine Google-Server).
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: anne-hecker
*/

/* ---------- Grundlagen ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3 { font-variation-settings: "SOFT" 60, "WONK" 0; text-wrap: balance; }
p { text-wrap: pretty; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
::selection { background: var(--wp--preset--color--accent-soft); }
a:focus-visible, button:focus-visible, .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent); outline-offset: 3px;
}
img { height: auto; }

/* ---------- Kopfbereich ---------- */
.ah-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--wp--preset--color--base) 88%, transparent);
	backdrop-filter: saturate(140%) blur(10px);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 10%, transparent);
}
.admin-bar .ah-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ah-header { top: 0; } }
.ah-header .wp-block-site-title a { text-decoration: none; color: var(--wp--preset--color--primary-dark); }
.ah-brand-sub { margin: 0 !important; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.ah-header .wp-block-navigation a { text-decoration: none; }
.ah-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent); }
.ah-header .wp-block-navigation .current-menu-item > a { color: var(--wp--preset--color--accent); }
.ah-header .wp-block-button__link { padding: 0.6rem 1.25rem; font-size: 0.9375rem; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--base) !important; padding: 2rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.1rem; font-size: 1.25rem; }
@media (max-width: 599px) { .ah-header-cta { display: none !important; } }
@media (max-width: 480px) { .ah-brand-sub { display: none; } }
@media (min-width: 1101px) { .ah-header .ah-nav-contact { display: none !important; } }
/* Hamburger-Menü bis 1100px, damit die Navigation nie gequetscht wird */
@media (max-width: 1100px) {
	.ah-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ah-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.ah-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
	.ah-header .wp-block-navigation__responsive-container.is-menu-open { position: fixed; inset: 0; display: flex; flex-direction: column; }
	.ah-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: flex-start; }
}

/* ---------- Typo-Stile ---------- */
.is-style-eyebrow {
	font-size: 0.8125rem !important; font-weight: 650; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--wp--preset--color--accent);
}
.is-style-lead { font-size: var(--wp--preset--font-size--large) !important; line-height: 1.6; color: var(--wp--preset--color--muted); }
.has-primary-background-color .is-style-lead,
.has-primary-dark-background-color .is-style-lead { color: color-mix(in srgb, #fff 82%, transparent); }
.has-primary-background-color .is-style-eyebrow,
.has-primary-dark-background-color .is-style-eyebrow { color: var(--wp--preset--color--accent-soft); }
.has-primary-background-color :is(h1,h2,h3,h4),
.has-primary-dark-background-color :is(h1,h2,h3,h4) { color: #fff; }
.has-primary-background-color a:not(.wp-block-button__link),
.has-primary-dark-background-color a:not(.wp-block-button__link) { color: #fff; }
.ah-claim em { color: var(--wp--preset--color--accent); font-style: italic; font-variation-settings: "SOFT" 100, "WONK" 1; }

/* ---------- Karten ---------- */
.wp-block-group.is-style-card,
.wp-block-column.is-style-card {
	background: var(--wp--preset--color--white);
	border-radius: 24px;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	box-shadow: 0 1px 2px rgba(31,52,44,.04), 0 12px 32px -12px rgba(31,52,44,.12);
}
.wp-block-group.is-style-card-soft,
.wp-block-column.is-style-card-soft {
	background: var(--wp--preset--color--surface);
	border-radius: 24px;
	padding: clamp(1.5rem, 3vw, 2.25rem);
}
.has-surface-background-color .is-style-card-soft { background: var(--wp--preset--color--base); }
.wp-block-group.is-style-card > :first-child, .wp-block-group.is-style-card-soft > :first-child,
.wp-block-column.is-style-card > :first-child, .wp-block-column.is-style-card-soft > :first-child { margin-top: 0; }
.wp-block-columns.ah-equal > .wp-block-column { display: flex; flex-direction: column; }
.is-style-card .wp-block-buttons:last-child,
.is-style-card-soft .wp-block-buttons:last-child { margin-top: auto; padding-top: 0.75rem; }
.ah-card-link { margin-top: auto !important; padding-top: .5rem; font-weight: 600; }
.ah-card-link a { text-decoration: none; color: var(--wp--preset--color--accent); }
.ah-card-link a::after { content: " →"; transition: margin .2s; }
.ah-card-link a:hover::after { margin-left: 4px; }

/* Nummer / Icon-Kreis */
.is-style-number {
	display: inline-flex; align-items: center; justify-content: center;
	width: 3rem; height: 3rem; border-radius: 50%;
	background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem !important; font-weight: 500;
}

/* Kleines Label/Tag */
.is-style-tag {
	display: inline-block; width: fit-content;
	padding: .3rem .8rem; border-radius: 999px;
	background: var(--wp--preset--color--sage); color: var(--wp--preset--color--primary-dark);
	font-size: .8125rem !important; font-weight: 600; letter-spacing: .02em;
}

/* ---------- Bilder ---------- */
.wp-block-image.is-style-arch img { border-radius: 24px; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.wp-block-image.is-style-soft img { border-radius: 28px; }
.wp-block-image.is-style-circle img { border-radius: 50%; aspect-ratio: 1; object-fit: cover; }
.ah-hero-media { position: relative; }
.ah-hero-media::before {
	content: ""; position: absolute; inset: 8% -6% -4% 10%;
	background: var(--wp--preset--color--sage); border-radius: 28px; z-index: 0;
}
.ah-hero-media > * { position: relative; z-index: 1; }

/* ---------- Listen ---------- */
ul.is-style-check { list-style: none; padding-left: 0 !important; }
ul.is-style-check li { position: relative; padding-left: 2rem; margin-bottom: .55rem; }
ul.is-style-check li::before {
	content: ""; position: absolute; left: 0; top: .35em; width: 1.2rem; height: 1.2rem; border-radius: 50%;
	background: var(--wp--preset--color--sage) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F4C40' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 70% no-repeat;
}
ul.is-style-dots { list-style: none; padding-left: 0 !important; }
ul.is-style-dots li { position: relative; padding-left: 1.25rem; margin-bottom: .4rem; }
ul.is-style-dots li::before { content: ""; position: absolute; left: 0; top: .7em; width: .45rem; height: .45rem; border-radius: 50%; background: var(--wp--preset--color--accent); }

/* Zeitstrahl */
ul.is-style-timeline { list-style: none; padding-left: 0 !important; position: relative; margin-left: .5rem; }
ul.is-style-timeline::before { content: ""; position: absolute; left: 0; top: .5rem; bottom: .5rem; width: 2px; background: var(--wp--preset--color--sage); }
ul.is-style-timeline li { position: relative; padding: 0 0 1.6rem 2rem; }
ul.is-style-timeline li:last-child { padding-bottom: 0; }
ul.is-style-timeline li::before {
	content: ""; position: absolute; left: -6px; top: .45rem; width: 14px; height: 14px; border-radius: 50%;
	background: var(--wp--preset--color--base); border: 3px solid var(--wp--preset--color--accent);
}
ul.is-style-timeline li strong:first-child {
	display: block; font-size: .875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--accent); margin-bottom: .15rem;
}

/* ---------- Zitat ---------- */
.wp-block-quote.is-style-large-centered { text-align: center; margin-inline: auto; padding: 0; }
.wp-block-quote.is-style-large-centered::before {
	content: "“"; display: block; font-family: var(--wp--preset--font-family--heading); font-size: 5rem; line-height: .6; color: var(--wp--preset--color--accent); margin-bottom: .5rem;
}
.wp-block-quote cite { font-family: var(--wp--preset--font-family--body); font-style: normal; font-size: 1rem; color: var(--wp--preset--color--muted); }

/* ---------- Akkordeon (Details) ---------- */
.wp-block-details summary { cursor: pointer; font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--primary-dark); list-style: none; position: relative; padding-right: 2.5rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: .25rem; top: -.1rem; font-size: 1.6rem; color: var(--wp--preset--color--accent); transition: transform .2s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details[open] > summary { margin-bottom: 1rem; }

/* ---------- Tabelle Preise ---------- */
.wp-block-table.is-style-prices table { border-collapse: collapse; width: 100%; background: var(--wp--preset--color--white); border-radius: 20px; overflow: hidden; box-shadow: 0 12px 32px -16px rgba(31,52,44,.18); }
.wp-block-table.is-style-prices :is(th,td) { border: 0; border-bottom: 1px solid var(--wp--preset--color--surface); padding: 1rem 1.25rem; text-align: left; vertical-align: top; }
.wp-block-table.is-style-prices thead th { background: var(--wp--preset--color--primary); color: #fff; font-weight: 600; }
.wp-block-table.is-style-prices td:last-child, .wp-block-table.is-style-prices th:last-child { text-align: right; white-space: nowrap; font-weight: 600; }
.wp-block-table.is-style-prices tr:last-child td { border-bottom: 0; }
.wp-block-table.is-style-prices thead { border: 0; }

/* ---------- Buttons ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--primary); border: 1.5px solid currentColor; padding: calc(0.85rem - 1.5px) calc(1.6rem - 1.5px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: #fff; border-color: var(--wp--preset--color--primary); }
.has-primary-background-color .wp-block-button.is-style-outline > .wp-block-button__link,
.has-primary-dark-background-color .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }
.has-primary-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.has-primary-dark-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--primary-dark); }
.has-primary-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
.has-primary-dark-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: var(--wp--preset--color--accent); }
.wp-block-button__link { transition: background-color .2s, color .2s, transform .2s; }
.wp-block-button__link:hover { transform: translateY(-1px); }

/* ---------- Dekor ---------- */
.ah-wave { position: relative; }
.ah-trust p { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: .9375rem; font-weight: 550; color: var(--wp--preset--color--primary-dark); }
.ah-trust p::before { content: ""; flex: 0 0 .5rem; height: .5rem; border-radius: 50%; background: var(--wp--preset--color--accent); }

/* ---------- Fußbereich ---------- */
.ah-footer a { color: #fff; text-decoration: none; }
.ah-footer a:hover { color: var(--wp--preset--color--accent-soft); text-decoration: underline; }
.ah-footer p { color: color-mix(in srgb, #fff 80%, transparent); }
.ah-footer .ah-footer-title { color: #fff; font-family: var(--wp--preset--font-family--heading); font-size: 1.75rem; }
.ah-footer .is-style-eyebrow { color: var(--wp--preset--color--accent-soft); }
.ah-footer .wp-block-separator { border-color: rgba(255,255,255,.15); opacity: 1; }

/* ---------- Responsiv ---------- */
@media (max-width: 781px) {
	.ah-hero .wp-block-columns { flex-direction: column-reverse; }
	.ah-hero-media { max-width: 420px; margin-inline: auto; }
	.wp-block-table.is-style-prices :is(th,td) { padding: .8rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* Vollbreite Sektionen nahtlos aneinander */
.wp-block-post-content > .alignfull { margin-block: 0 !important; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 0 !important; }
main.ah-main { margin-top: 0; }
