/*
Theme Name: Psychologische Energetik
Theme URI: https://www.psychologischeenergetik.eu
Author: akademie bios
Description: Schlankes Block-Theme für Psychologische Energetik. Schrift DM Sans liegt im Theme, keine externen Aufrufe.
Version: 0.1.6
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: energetik
*/

:root {
	--en-petrol: #204147; --en-ink: #3b3b3b; --en-green: #587f1b; --en-olive: #7a6f2c;
	--en-gold: #8a6f1f; --en-gold-deep: #6f5a18; --en-link: #0a6fb8; --en-creme: #fbf7ef;
	--en-gray: #f5f5f5; --en-line: #e6e6e6; --en-wide: 72rem; --en-header-h: 4.5rem;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--en-header-h) + 1rem); }
body { margin: 0; }
img { max-width: 100%; height: auto; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid var(--en-link); outline-offset: 2px; }
.screen-reader-text, .skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 200; background: #fff; color: var(--en-ink); padding: .75rem 1rem; }
html.nav-locked { overflow: hidden; }

/* Kopf */
.site-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 90; background: #fff; border-bottom: 1px solid var(--en-line); transition: transform .2s ease, box-shadow .2s ease; }
.site-header.is-scrolled { box-shadow: 0 2px 10px rgb(0 0 0 / .08); }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header__inner { position: relative; width: min(var(--en-wide), 100% - 2rem); margin-inline: auto; display: flex; align-items: center; gap: 1.25rem; min-height: 4.5rem; }
.site-logo { display: block; flex: none; }
.site-logo img { height: 44px; width: auto; display: block; }
.nav-toggle { display: none; margin-left: auto; align-items: center; gap: .55rem; min-height: 2.75rem; padding: .4rem .9rem; background: transparent; color: var(--en-petrol); border: 1px solid var(--en-line); border-radius: 4px; font: inherit; font-weight: 600; font-size: .95rem; cursor: pointer; }
.nav-toggle__icon { position: relative; width: 1.1rem; height: 2px; background: currentColor; display: block; transition: background .15s; }
.nav-toggle__icon::before, .nav-toggle__icon::after { content: ""; position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; transition: transform .2s; }
.nav-toggle__icon::before { top: -6px; } .nav-toggle__icon::after { top: 6px; }
.site-header.is-open .nav-toggle__icon { background: transparent; }
.site-header.is-open .nav-toggle__icon::before { transform: translateY(6px) rotate(45deg); }
.site-header.is-open .nav-toggle__icon::after { transform: translateY(-6px) rotate(-45deg); }
.site-nav { margin-left: auto; display: flex; align-items: center; gap: 1.25rem; }
.site-nav .site-search { order: 2; }
.site-nav .lang-dd { order: 3; }
.site-nav__list, .site-nav__list ul { list-style: none; margin: 0; padding: 0; }
.site-nav__list { display: flex; gap: clamp(1rem, 2vw, 2rem); }
.site-nav__list > li { position: relative; }
.site-nav a { color: #0a0a0a; text-decoration: none; font-weight: 600; font-size: .875rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; display: block; padding: .9rem 0; border-bottom: 2px solid transparent; }
.site-nav__list > li > a:hover, .site-nav__list > li.current-menu-item > a, .site-nav__list > li.current-menu-ancestor > a { color: var(--en-green); border-bottom-color: currentColor; }
.site-nav .sub-toggle { display: none; }
.site-nav .sub-menu { display: none; position: absolute; left: -1rem; top: 100%; min-width: 16rem; background: #fff; box-shadow: 0 8px 24px rgb(0 0 0 / .15); padding: .5rem 1rem; z-index: 60; border-radius: 0 0 6px 6px; }
.site-nav .sub-menu a { text-transform: none; letter-spacing: 0; font-size: 1rem; font-weight: 500; padding: .4rem 0; }
.site-nav .sub-menu a:hover { color: var(--en-green); text-decoration: underline; }
.site-nav li:hover > .sub-menu, .site-nav li:focus-within > .sub-menu { display: block; }
.site-search { display: flex; align-items: center; background: var(--en-gray); border-radius: 999px; border: 1px solid var(--en-line); padding-right: 2px; }
.site-search input { border: 0; padding: .35rem .3rem .35rem .9rem; font: inherit; font-size: .95rem; width: 6rem; color: var(--en-ink); background: transparent; }
.site-search input:focus-visible { outline-offset: 6px; }
.site-search button { border: 0; background: transparent; color: var(--en-gold); width: 2rem; height: 2rem; padding: 0; display: grid; place-items: center; border-radius: 50%; cursor: pointer; }
.lang-dd { position: relative; }
.lang-dd__btn { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.75rem; padding: 0 .5rem; background: transparent; color: var(--en-ink); border: 0; border-radius: 4px; cursor: pointer; }
.lang-dd img { display: block; width: 24px; height: 16px; object-fit: cover; box-shadow: 0 0 0 1px rgb(0 0 0 / .25); }
.lang-dd__chev { transition: transform .15s; }
.lang-dd.is-open .lang-dd__chev { transform: rotate(180deg); }
.lang-dd__list { display: none; list-style: none; margin: 0; padding: .4rem; position: absolute; right: 0; top: 100%; z-index: 60; background: #fff; border-radius: 0 0 6px 6px; box-shadow: 0 8px 24px rgb(0 0 0 / .15); }
.lang-dd.is-open .lang-dd__list { display: block; }
@media (hover: hover) { .lang-dd:hover .lang-dd__list { display: block; } }
.lang-dd__list a { display: flex; align-items: center; justify-content: center; gap: .6rem; min-width: 2.75rem; min-height: 2.75rem; padding: 0 .5rem; border-bottom: 0; }
.lang-dd__name { display: none; }
.lang-dd__list a:hover { background: var(--en-gray); }

/* Mega-Menü (nur Desktop) */
.site-nav__list > li.menu-item-mega { position: static; }
.mega { display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 70; background: #fff; box-shadow: 0 10px 28px rgb(0 0 0 / .18); border-radius: 0 0 8px 8px; }
.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -2rem; height: 2rem; }
.menu-item-mega:hover > .mega, .menu-item-mega:focus-within > .mega { display: flex; }
.mega__list { flex: 0 0 15.5rem; background: var(--en-petrol); padding: 1.25rem 0; border-radius: 0 0 0 8px; }
.site-nav .mega__cat { display: block; color: #fff; text-transform: none; font-size: 1rem; font-weight: 500; white-space: normal; padding: .55rem 1.5rem; border-bottom: 0; letter-spacing: 0; }
.site-nav .mega__cat:hover, .site-nav .mega__cat.is-active { background: var(--en-green); }
.mega__panels { flex: 1; padding: 1.5rem; min-height: 20rem; }
.mega__panel { display: none; grid-template-columns: repeat(4, 1fr); gap: 1.25rem 1rem; align-content: start; }
.mega__panel.is-active { display: grid; }
.site-nav .mega__item { display: block; color: var(--en-petrol); text-transform: none; white-space: normal; font-size: .92rem; font-weight: 600; line-height: 1.35; padding: 0; border-bottom: 0; letter-spacing: 0; }
.site-nav .mega__item:hover span { text-decoration: underline; }
.mega__item img { display: block; width: 100%; height: auto; aspect-ratio: 5 / 2; object-fit: cover; border-radius: 4px; margin-bottom: .4rem; }

/* Mobiles Menü */
.menu-item-mega > .sub-menu { display: none !important; }
.nav-backdrop { position: fixed; inset: 0; background: rgb(15 30 30 / .5); z-index: 80; }
.nav-backdrop[hidden] { display: none; }
@media (max-width: 62rem) {
	.nav-toggle { display: inline-flex; flex: none; }
	.site-logo img { height: 34px; }
	.site-header__inner { gap: .75rem; min-height: 4rem; }
	.site-nav .mega__cat.is-active { background: transparent; }
	.site-nav { display: none; position: fixed; left: 0; right: 0; bottom: 0; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--en-header-h)); background: #fff; z-index: 95; overflow-y: auto; flex-direction: column; align-items: stretch; gap: 0; padding: 1rem 1.25rem 2rem; margin: 0; }
	.site-header.is-open .site-nav { display: flex; }
	.site-search { order: -1; margin-bottom: 1rem; }
	.site-search input { width: 100%; padding: .75rem 1rem; }
	.site-nav__list { flex-direction: column; gap: 0; }
	.site-nav__list > li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--en-line); }
	.site-nav a { padding: 1rem 0; font-size: 1rem; flex: 1 1 0; min-height: 3rem; }
	.site-nav__list > li > a { border-bottom: 0; }
	.site-nav__list > li.current-menu-item > a, .site-nav__list > li.current-menu-ancestor > a { border-left: 3px solid var(--en-gold); padding-left: .75rem; color: var(--en-petrol); }
	.site-nav .sub-toggle { display: grid; place-items: center; flex: none; width: 3rem; height: 3rem; background: transparent; border: 0; color: var(--en-petrol); cursor: pointer; }
	.site-nav .sub-toggle svg { transition: transform .2s; }
	.site-nav li.is-expanded > .sub-toggle svg { transform: rotate(180deg); }
	.site-nav .sub-menu, .site-nav .mega { position: static; display: none; width: 100%; box-shadow: none; padding: 0 0 .75rem 1rem; min-width: 0; border-radius: 0; background: transparent; }
	.site-nav li:hover > .sub-menu, .site-nav li:focus-within > .sub-menu, .menu-item-mega:hover > .mega, .menu-item-mega:focus-within > .mega { display: none; }
	.site-nav li.is-expanded > .sub-menu, .site-nav li.is-expanded > .mega { display: block; }
	.mega::before { display: none; }
	.mega__list { background: transparent; padding: 0; flex: none; }
	.mega__panels { display: none; }
	.site-nav .mega__cat { color: var(--en-petrol); padding: .65rem 0; font-size: 1rem; }
	.site-nav .mega__cat:hover { background: transparent; color: var(--en-green); }
	.site-nav .sub-menu a { padding: .65rem 0; }
	.lang-dd { margin-top: 1.25rem; }
	.lang-dd__btn { display: none; }
	.lang-dd__list { display: flex !important; flex-wrap: wrap; gap: .5rem; position: static; box-shadow: none; padding: 0; background: transparent; }
	.lang-dd__list a { border: 1px solid var(--en-line); border-radius: 4px; padding: 0 .9rem; }
	.lang-dd__name { display: inline; font-size: .95rem; text-transform: none; letter-spacing: 0; }
}
@media (min-width: 40rem) and (max-width: 62rem) {
	.site-nav { left: auto; width: 26rem; box-shadow: -8px 0 24px rgb(0 0 0 / .2); }
}

/* Inhalt */
.site-main { max-width: var(--en-wide); margin: 0 auto; padding: 2rem 1rem 3rem; }
.site-main--full { max-width: none; padding: 0; }
.site-main > .wp-block-post-title, .site-main > .crumbs { max-width: 46rem; margin-inline: auto; }
.crumbs { font-size: .9rem; color: #555; margin-bottom: 1rem; }
.crumbs a { color: #555; }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.crumbs li + li::before { content: "›"; margin-right: .5rem; }
.entry-meta { max-width: 46rem; margin: 0 auto 1.5rem; color: #555; font-size: .95rem; align-items: center; }
.entry-meta .entry-cat { margin-left: auto; }
.wp-block-post-terms a { display: inline-block; background: var(--en-creme); border: 1px solid #e3d8b8; border-radius: 999px; padding: .1rem .8rem; color: var(--en-gold-deep); text-decoration: none; font-weight: 600; font-size: .85rem; }
.wp-block-post-terms__separator { display: none; }
.wp-block-post-featured-image img { border-radius: 10px; }
.site-main > .wp-block-post-featured-image { max-width: 46rem; margin-inline: auto; }
blockquote, .wp-block-quote { background: var(--en-creme); border-left: 4px solid var(--en-gold); margin: 1.6rem 0; padding: 1rem 1.4rem; font-size: 1rem; line-height: 1.8; }
.entry-content img, .wp-block-post-content img { border-radius: 6px; }
.wp-block-post-content table, .entry-content table { width: 100%; border-collapse: collapse; }
.wp-block-post-content td, .wp-block-post-content th { padding: 10px; border: 1px solid var(--en-line); vertical-align: top; }
.wp-block-button__link { padding: 1.05rem 1.6rem; }
.band { background: linear-gradient(120deg, #1f6f5e, #3f7f1b); color: #fff; }
.band h2, .band h3, .band p, .band a:not(.wp-block-button__link) { color: #fff; }
.is-style-hero { color: #fff; }
.is-style-hero h1, .is-style-hero h2, .is-style-hero p { color: #fff; }

/* Blog */
.blog-menu { max-width: var(--en-wide); margin: 0 0 2rem; }
.blog-menu ul { list-style: none; margin: 0 0 .6rem; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.blog-menu a { display: block; padding: .45rem 1.1rem; border: 1px solid var(--en-green); color: var(--en-green); border-radius: 999px; text-decoration: none; font-weight: 600; font-size: .95rem; }
.blog-menu a:hover { background: var(--en-gray); }
.blog-menu a.is-current { background: var(--en-green); color: #fff; }
.blog-menu__sub a { border-color: var(--en-line); color: var(--en-ink); font-size: .9rem; }
.blog-menu__sub a.is-current { background: var(--en-petrol); border-color: var(--en-petrol); color: #fff; }
.wp-block-post-template.is-layout-grid { gap: 1.6rem; align-items: stretch; }
.wp-block-post-template.is-layout-grid > li { display: flex; }
.wp-block-post-template.is-layout-grid > li > .post-card { width: 100%; }
.post-card { background: #fff; border-radius: 10px; box-shadow: 0 6px 22px rgb(32 65 71 / .12); overflow: hidden; padding: 0; margin: 0; }
.post-card .wp-block-post-featured-image { margin: 0; }
.post-card .wp-block-post-featured-image img { border-radius: 0; width: 100%; }
.post-card__body { padding: 1.2rem 1.4rem 1.5rem; }
.post-card .wp-block-post-title { font-size: 1.25rem; line-height: 1.35; margin: 0 0 .5rem; }
.post-card .wp-block-post-title a { color: var(--en-petrol); text-decoration: none; }
.post-card .wp-block-post-title a:hover { color: var(--en-green); }
.post-card .wp-block-post-excerpt, .post-card .wp-block-post-excerpt__excerpt { font-size: .95rem; line-height: 1.6; margin: 0; }
.post-card .wp-block-post-excerpt__more-link { display: inline-block; margin-top: .5rem; font-weight: 700; font-size: .9rem; }
.wp-block-query-pagination { margin-top: 2rem; gap: .5rem; }
.wp-block-query-pagination .page-numbers, .wp-block-query-pagination a { padding: .35rem .8rem; border: 1px solid var(--en-line); border-radius: 4px; text-decoration: none; }
.wp-block-query-pagination .current { background: var(--en-green); color: #fff; border-color: var(--en-green); }
.notfound-text { font-size: 1.2rem; }

/* Kommentare */
#comments, .comments-area { max-width: 46rem; margin: 3rem auto 0; }
.comment-list { list-style: none; padding: 0; } .comment-list .children { list-style: none; padding-left: 1.25rem; }
.comment-body { background: var(--en-gray); border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 1rem; }
.comment-respond input[type=text], .comment-respond input[type=email], .comment-respond input[type=url], .comment-respond textarea { width: 100%; padding: .75rem 1rem; border: 1px solid #bbb; border-radius: 6px; font: inherit; }
.comment-respond .submit { background: var(--en-gold); color: #fff; border: 0; border-radius: 4px; padding: 1rem 1.5rem; font: 700 1rem inherit; letter-spacing: .06em; cursor: pointer; }
.comment-respond .submit:hover { background: var(--en-gold-deep); }


/* Startseite und Karten */
.card { background: #fff; border-radius: 10px; box-shadow: 0 6px 22px rgb(32 65 71 / .12); }
.icon-card { text-align: center; padding: 2rem 1.5rem; border-top: 4px solid var(--en-gold); height: 100%; }
.icon-card .icon-card__title, .icon-card h3 { color: var(--en-petrol); font-size: 1.25rem; margin: 0 0 .6rem; }
.icon-card p { margin: 0; font-size: 1rem; line-height: 1.7; }
.home-hero { padding: 4rem 1rem; }
.home-hero .wp-block-cover__inner-container { width: min(var(--en-wide), 100%); margin-inline: auto; }
.home-hero__book img { max-width: 16rem; height: auto; filter: drop-shadow(0 12px 24px rgb(0 0 0 / .35)); }
.home-section { padding: 4rem 1rem; }
.home-section > .wp-block-heading { margin-bottom: 2rem; }
.cat-head { align-items: baseline; margin-bottom: 1.4rem; }
.cat-head h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2rem); }
.cat-head p { margin: 0; font-weight: 700; }
.home-band { padding: 4rem 1rem; }
.home-hero a, .band a:not(.wp-block-button__link) { color: #fff; text-decoration: underline; }

/* Newsletter-Formulare (Fluent Forms) */
.fluentform .ff-el-form-control { border: 0; border-radius: 999px; padding: .9rem 1.3rem; font: inherit; font-size: 1rem; color: var(--en-ink); background: #fff; min-height: 3rem; }
.fluentform .ff-el-group { margin-bottom: .9rem; }
.fluentform .ff-el-tc, .fluentform .ff_t_c, .fluentform .ff-el-tc * { font-size: .95rem !important; font-weight: 400 !important; line-height: 1.5; color: #fff; }
.fluentform .ff-el-tc a, .fluentform .ff_t_c a { color: #fff; }
.fluentform .ff_submit_btn_wrapper { text-align: left; }
.fluentform .ff-btn-submit, .fluentform button.ff-btn { background: var(--en-gold) !important; color: #fff !important; border: 0; border-radius: 4px; padding: 1rem 1.6rem; font: 700 1rem inherit; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.fluentform .ff-btn-submit:hover { background: var(--en-gold-deep) !important; }
.fluentform .ff-btn-submit, .fluentform button.ff-btn { white-space: normal; max-width: 100%; }
.wp-block-post-content a { overflow-wrap: anywhere; }
.fluentform .ff-el-is-error .error { color: #fff; background: rgb(150 20 20 / .85); padding: .2rem .6rem; border-radius: 4px; }

/* Fuß */
.site-footer { background: var(--en-gold); color: #fff; font-size: 1rem; line-height: 1.7; }
.site-footer__inner { max-width: var(--en-wide); margin-inline: auto; padding: 3rem 1rem 1.5rem; }
.site-footer a { color: #fff; }
.site-footer h2 { color: inherit; font-size: .85rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 .75rem; line-height: 1.4; }
.site-footer__grid { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: .35rem; }
.site-footer p { margin: 0 0 .75rem; }
.site-footer__legal { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgb(255 255 255 / .4); font-size: .875rem; }
@media (max-width: 48rem) { .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr !important; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .site-header, .nav-toggle__icon, .nav-toggle__icon::before, .nav-toggle__icon::after, .sub-toggle svg { transition: none; } }
