/*
Theme Name: Natur Energie Portal
Theme URI: https://www.natur-energie.org/
Author: Natur Energie
Author URI: https://www.natur-energie.org/
Description: Ein modernes, schnelles Gutenberg-Block-Theme für ein redaktionelles Wissensportal zu erneuerbaren Energien. Mit Themenwelten, Solar-Schnellcheck, AdSense-Plätzen, Schema.org und dynamischer llms.txt.
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
Version: 1.2.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: naturenergie
Tags: block-patterns, full-site-editing, wide-blocks, accessibility-ready, blog, news
*/

:root {
  --ne-ink: #12352e;
  --ne-forest: #0b5c49;
  --ne-leaf: #70b66b;
  --ne-sun: #f4bd49;
  --ne-mint: #dff1e6;
  --ne-cream: #f6f3e9;
  --ne-line: #d9e4dd;
  --ne-muted: #5e746d;
  --ne-shadow: 0 18px 60px rgba(20, 59, 49, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
a { text-underline-offset: .18em; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid var(--ne-sun);
  outline-offset: 3px;
}

.wp-site-blocks { min-height: 100vh; }
.ne-main { min-height: 55vh; }

.ne-header {
  position: sticky;
  top: 0;
  z-index: 30;
  border-bottom: 1px solid rgba(18, 53, 46, .08);
  background: rgba(253, 252, 247, .92);
  backdrop-filter: blur(16px);
}
.admin-bar .ne-header { top: 32px; }
.ne-header-inner { width: 100%; }
.ne-header-actions { flex: 1 1 auto; gap: .55rem !important; min-width: 0; }
.ne-primary-nav { min-width: 0; }
.ne-brand .wp-block-site-title { letter-spacing: -.035em; }
.ne-brand-mark {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 50% 50% 45% 55%;
  color: #fff;
  background: linear-gradient(145deg, var(--ne-leaf), var(--ne-forest));
  font-weight: 800;
  margin: 0;
  transform: rotate(-8deg);
}
.wp-block-navigation .wp-block-navigation-item__content { text-decoration: none; }
.wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--ne-forest); }
.ne-header-search { flex: 0 0 auto; margin: 0; }
.ne-header-search.wp-block-search__button-only { min-width: 44px; }
.ne-header-search .wp-block-search__inside-wrapper {
  min-height: 44px;
  border: 0;
  border-radius: 999px;
  padding: 0;
  background: transparent;
  overflow: visible;
}
.ne-header-search .wp-block-search__button {
  width: 44px;
  height: 44px;
  display: grid;
  flex: 0 0 44px;
  place-items: center;
  margin: 0;
  border: 1px solid rgba(11,92,73,.14);
  border-radius: 50%;
  padding: 0;
  color: var(--ne-forest);
  background: #fff;
}
.ne-header-search .wp-block-search__button:hover { background: var(--ne-mint); }
.ne-header-search .wp-block-search__input {
  min-width: min(260px, 34vw);
  border: 1px solid var(--ne-line);
  border-radius: 999px;
  padding-inline: 1rem;
  background: #fff;
}

.ne-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 85% 10%, rgba(244,189,73,.40), transparent 26%),
    radial-gradient(circle at 10% 85%, rgba(112,182,107,.28), transparent 30%),
    linear-gradient(135deg, #f8f6ec 0%, #eef7ef 58%, #dcefe5 100%);
}
.ne-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -9vw;
  bottom: -26vw;
  width: min(62vw, 760px);
  aspect-ratio: 1;
  border: clamp(24px, 5vw, 70px) solid rgba(255,255,255,.42);
  border-radius: 50%;
}
.ne-kicker {
  display: inline-block;
  margin-bottom: 1rem;
  color: var(--ne-forest);
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.ne-hero h1 { max-width: 940px; text-wrap: balance; }
.ne-hero-lead { max-width: 730px; color: #385a51; font-size: clamp(1.08rem, 1.5vw, 1.3rem); }
.ne-topic-links { gap: .65rem !important; }
.ne-topic-links a {
  display: inline-block;
  border: 1px solid rgba(11,92,73,.15);
  border-radius: 999px;
  padding: .56rem .9rem;
  color: var(--ne-ink);
  background: rgba(255,255,255,.67);
  font-size: .9rem;
  font-weight: 650;
  text-decoration: none;
}

.ne-section { padding-block: clamp(3.5rem, 8vw, 7rem); }
.ne-section-title { max-width: 760px; margin-bottom: 2.25rem; }
.ne-section-title p { color: var(--ne-muted); font-size: 1.08rem; }
.ne-eyebrow { color: var(--ne-forest); font-size: .78rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }

.ne-card-grid { align-items: stretch !important; }
.ne-card-grid > .wp-block-column,
.ne-card {
  position: relative;
  border: 1px solid var(--ne-line);
  border-radius: 22px;
  padding: clamp(1.25rem, 2.5vw, 2rem);
  background: #fff;
  box-shadow: 0 8px 30px rgba(20,59,49,.055);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ne-card-grid > .wp-block-column:hover,
.ne-card:hover { transform: translateY(-5px); border-color: #b3d2bd; box-shadow: var(--ne-shadow); }
.ne-card-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  margin-bottom: 1.25rem;
  border-radius: 16px;
  color: var(--ne-forest);
  background: var(--ne-mint);
  font-size: 1.45rem;
}
.ne-card p { color: var(--ne-muted); }
.ne-card a::after { content: " →"; }

.ne-tool-wrap {
  border-radius: 30px;
  background: var(--ne-ink);
  color: #fff;
  box-shadow: var(--ne-shadow);
}
.ne-tool-wrap h2, .ne-tool-wrap h3 { color: #fff; }
.ne-tool-wrap p { color: #cbe0d8; }
.ne-calculator {
  border-radius: 20px;
  padding: clamp(1.25rem, 3vw, 2rem);
  color: var(--ne-ink);
  background: #fff;
}
.ne-calculator label { display: block; margin-bottom: .4rem; font-size: .9rem; font-weight: 700; }
.ne-calculator input, .ne-calculator select {
  width: 100%;
  min-height: 48px;
  margin-bottom: 1rem;
  border: 1px solid #bfd1c7;
  border-radius: 10px;
  padding: .7rem .8rem;
  color: var(--ne-ink);
  background: #fff;
  font: inherit;
}
.ne-result { margin-top: .5rem; border-radius: 14px; padding: 1rem; background: var(--ne-mint); }
.ne-result strong { display: block; color: var(--ne-forest); font-size: 1.65rem; }
.ne-fineprint { color: #71877f !important; font-size: .78rem !important; }

.ne-ad {
  width: 100%;
  min-height: 120px;
  display: grid;
  place-items: center;
  margin-block: 2.5rem;
  border: 1px solid #dfe6e1;
  border-radius: 14px;
  padding: 1rem;
  color: #7a8983;
  background: #fafbf9;
  text-align: center;
}
.ne-ad-label { display: block; margin-bottom: .5rem; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.ne-ad[data-ad-status="configured"] { display: block; min-height: 0; }

.ne-query-grid .wp-block-post { height: 100%; border: 1px solid var(--ne-line); border-radius: 20px; overflow: hidden; background: #fff; }
.ne-query-grid .wp-block-post-featured-image { margin: 0; aspect-ratio: 16/9; overflow: hidden; background: var(--ne-mint); }
.ne-query-grid .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ne-query-grid .wp-block-post:hover img { transform: scale(1.035); }
.ne-post-card-content { padding: 1.25rem 1.35rem 1.5rem; }
.wp-block-post-title a { text-decoration: none; }
.wp-block-post-title a:hover { color: var(--ne-forest); }
.wp-block-post-date, .wp-block-post-author-name { color: var(--ne-muted); font-size: .82rem; }

.ne-breadcrumbs { color: var(--ne-muted); font-size: .84rem; }
.ne-breadcrumbs a { color: inherit; }
.ne-article-header { max-width: 900px; }
.ne-article-header h1 { text-wrap: balance; }
.ne-article-meta { color: var(--ne-muted); font-size: .9rem; }
.ne-content { font-size: 1.075rem; }
.ne-content > p:first-of-type { font-size: 1.2rem; color: #3b5b53; }
.ne-content h2 { margin-top: 2.4em; }
.ne-content h3 { margin-top: 1.9em; }
.ne-content blockquote { border-left: 4px solid var(--ne-leaf); padding-left: 1.25rem; color: #395b51; }
.ne-content img { border-radius: 18px; }
.ne-content table { border-collapse: collapse; }
.ne-content th, .ne-content td { border: 1px solid var(--ne-line); padding: .75rem; text-align: left; }
.ne-content th { background: var(--ne-mint); }
.single .ne-main > .wp-block-post-content.ne-content,
.page:not(.home) .ne-main > .wp-block-post-content.ne-content {
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
}
.ne-trust-box { border: 1px solid #cfe0d5; border-radius: 16px; padding: 1rem 1.2rem; background: #f4faf5; color: #47655d; font-size: .86rem; }
.ne-tag-list a { border-radius: 999px; padding: .35rem .65rem; background: var(--ne-mint); text-decoration: none; }

.ne-comparison-table {
  overflow-x: auto;
  border: 1px solid var(--ne-line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(20,59,49,.055);
}
.ne-comparison-table table { min-width: 760px; border-collapse: collapse; }
.ne-comparison-table th,
.ne-comparison-table td { border: 0; border-bottom: 1px solid var(--ne-line); padding: 1rem 1.1rem; text-align: left; vertical-align: top; }
.ne-comparison-table th { color: var(--ne-forest); background: var(--ne-mint); font-size: .84rem; letter-spacing: .04em; text-transform: uppercase; }
.ne-comparison-table tr:last-child td { border-bottom: 0; }

.ne-faq-columns { align-items: stretch !important; }
.ne-faq-columns .wp-block-column { display: flex; flex-direction: column; gap: .85rem; }
.ne-faq-columns .wp-block-details {
  margin: 0;
  border: 1px solid var(--ne-line);
  border-radius: 16px;
  padding: 1rem 1.15rem;
  background: #fff;
}
.ne-faq-columns summary { cursor: pointer; color: var(--ne-ink); font-weight: 750; }
.ne-faq-columns details[open] { box-shadow: 0 10px 34px rgba(20,59,49,.08); }
.ne-faq-columns details p { margin-bottom: .25rem; color: var(--ne-muted); }

.ne-footer { margin-top: auto; background: var(--ne-ink); color: #d4e3dd; }
.ne-footer a { color: #fff; }
.ne-footer .wp-block-site-title { color: #fff; }
.ne-footer-note { color: #a9c1b8; font-size: .85rem; }

.wp-block-button__link { transition: transform .2s ease, box-shadow .2s ease; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(11,92,73,.18); }
.wp-block-search__inside-wrapper { border-radius: 999px; overflow: hidden; }

@media (max-width: 781px) {
  .admin-bar .ne-header { top: 46px; }
  .ne-header { position: sticky; top: 0; }
  .ne-brand-mark { width: 38px; height: 38px; }
  .ne-brand .wp-block-site-title { font-size: 1.05rem !important; white-space: nowrap; }
  .ne-header-actions { gap: .3rem !important; }
  .ne-header-search .wp-block-search__button { width: 40px; height: 40px; flex-basis: 40px; }
  .ne-header-search.wp-block-search__button-only { min-width: 40px; }
  .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed;
    top: 76px;
    right: 1rem;
    bottom: auto;
    left: auto;
    width: min(360px, calc(100vw - 2rem));
    height: auto;
    min-height: 0;
    max-height: calc(100vh - 92px);
    overflow: auto;
    border: 1px solid var(--ne-line);
    border-radius: 20px;
    padding: 1rem 1.15rem 1.2rem;
    background: #fdfcf7 !important;
    box-shadow: 0 20px 70px rgba(18,53,46,.22);
  }
  .admin-bar .wp-block-navigation__responsive-container.is-menu-open { top: 122px; max-height: calc(100vh - 138px); }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    top: .85rem;
    right: .85rem;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--ne-mint);
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    align-items: stretch;
    padding-top: 2.75rem;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    width: 100%;
    align-items: stretch;
    gap: .2rem;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100%;
    align-items: stretch;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    width: 100%;
    border-radius: 10px;
    padding: .65rem .75rem;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover { background: var(--ne-mint); }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    width: 100% !important;
    padding-left: .65rem !important;
  }
  .ne-hero { text-align: left; }
  .ne-card-grid > .wp-block-column { flex-basis: 100% !important; }
  .ne-section { padding-block: 3.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
