/*
Theme Name: Pinfinium Hörbuchwelt
Theme URI: https://pinfinium.de
Author: Helge Muth / Pinfinium
Description: Ruhiges, responsives WordPress-Theme für die Pinfinium Hörbuchwelt. WooCommerce-kompatibel und mit Einrichtungsassistent für Seiten und Produkte.
Version: 1.2.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: pinfinium
License: GNU General Public License v2 or later
*/

:root {
  --pfd-ink: #3a2d6e;
  --pfd-ink-soft: #5a4a8a;
  --pfd-violet: #7c6bc4;
  --pfd-violet-dark: #5a4a9a;
  --pfd-lavender: #f7f4ff;
  --pfd-lavender-2: #ede8ff;
  --pfd-peach: #fde8db;
  --pfd-mint: #e0f5ed;
  --pfd-white: #ffffff;
  --pfd-line: #ddd6f8;
  --pfd-radius: 22px;
  --pfd-shadow: 0 18px 55px rgba(58,45,110,.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--pfd-ink);
  background: #fefcff;
  font-family: "Almarai", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--pfd-violet-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--pfd-ink); }
h1,h2,h3,h4 {
  margin: 0 0 .65em;
  color: var(--pfd-ink);
  font-family: "Libre Baskerville", Georgia, serif;
  line-height: 1.2;
  text-wrap: balance;
}
h1 { font-size: clamp(2.25rem, 5.6vw, 5.3rem); letter-spacing: -.045em; }
h2 { font-size: clamp(1.8rem, 3.6vw, 3.45rem); letter-spacing: -.035em; }
h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); }
p { margin: 0 0 1.2em; }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.pfd-wrap { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.pfd-narrow { width: min(820px, calc(100% - 40px)); margin-inline: auto; }
.pfd-section { padding: clamp(72px, 9vw, 130px) 0; }
.pfd-kicker { margin-bottom: 14px; color: var(--pfd-violet); font-weight: 800; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; }
.pfd-lead { max-width: 760px; color: var(--pfd-ink-soft); font-size: clamp(1.05rem, 1.6vw, 1.28rem); }

.site-header { position: sticky; z-index: 100; top: 0; border-bottom: 1px solid rgba(124,107,196,.12); background: rgba(254,252,255,.93); backdrop-filter: blur(16px); }
.site-header__inner { min-height: 84px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-brand img { width: 205px; max-height: 62px; object-fit: contain; }
.site-title { color: var(--pfd-ink); font-family: "Libre Baskerville", Georgia, serif; font-size: 1.2rem; font-weight: 700; text-decoration: none; }
.site-nav ul { display:flex; align-items:center; gap:26px; margin:0; padding:0; list-style:none; }
.site-nav a { color: var(--pfd-ink); font-size:.93rem; font-weight:700; text-decoration:none; }
.site-nav a:hover { color: var(--pfd-violet); }
.site-cart { display:inline-flex; align-items:center; padding:10px 16px; border:1px solid var(--pfd-line); border-radius:999px; }
.menu-toggle { display:none; padding:10px 13px; color:var(--pfd-ink); border:1px solid var(--pfd-line); border-radius:12px; background:#fff; font-weight:700; }

.pfd-hero { overflow:hidden; padding: clamp(70px, 9vw, 128px) 0; background: linear-gradient(135deg,#f7f4ff 0%,#fff8f0 55%,#fdf7ff 100%); }
.pfd-hero__grid { display:grid; grid-template-columns: 1.05fr .95fr; align-items:center; gap: clamp(44px,7vw,96px); }
.pfd-hero__copy p { max-width:680px; color:var(--pfd-ink-soft); font-size:clamp(1.08rem,1.8vw,1.34rem); }
.pfd-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }
.pfd-button, .wp-element-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
  display:inline-flex; min-height:52px; align-items:center; justify-content:center; padding:13px 24px; border:1px solid var(--pfd-violet-dark); border-radius:999px; color:#fff !important; background:var(--pfd-violet-dark) !important; box-shadow:none; font-weight:800; line-height:1.2; text-decoration:none;
}
.pfd-button:hover, .woocommerce a.button:hover { color:#fff !important; background:var(--pfd-ink) !important; }
.pfd-button--ghost { color:var(--pfd-ink) !important; background:transparent !important; }
.pfd-hero__visual { position:relative; }
.pfd-hero__visual::before { content:""; position:absolute; inset:7% -4% -5% 9%; border-radius:38% 62% 58% 42% / 48% 34% 66% 52%; background:var(--pfd-lavender-2); }
.pfd-hero__visual img { position:relative; width:100%; max-height:610px; object-fit:contain; filter:drop-shadow(0 22px 34px rgba(58,45,110,.18)); }
.pfd-trust { display:grid; grid-template-columns:repeat(3,1fr); margin-top:62px; border-top:1px solid var(--pfd-line); }
.pfd-trust div { padding:24px 24px 0 0; }
.pfd-trust strong { display:block; margin-bottom:4px; }
.pfd-trust span { color:var(--pfd-ink-soft); font-size:.9rem; }

.pfd-worlds { background:#fff; }
.pfd-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:42px; }
.pfd-card { position:relative; overflow:hidden; min-height:300px; padding:34px; border:1px solid var(--pfd-line); border-radius:var(--pfd-radius); background:var(--pfd-lavender); box-shadow:0 8px 30px rgba(58,45,110,.06); }
.pfd-card:nth-child(2) { background:var(--pfd-mint); }
.pfd-card:nth-child(3) { background:var(--pfd-peach); }
.pfd-card__number { display:block; margin-bottom:44px; color:var(--pfd-violet); font-size:.82rem; font-weight:900; letter-spacing:.15em; }
.pfd-card p { color:var(--pfd-ink-soft); }
.pfd-card a { font-weight:800; }

.pfd-featured { background:var(--pfd-lavender); }
.pfd-products { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:42px; }
.pfd-product { overflow:hidden; border:1px solid rgba(124,107,196,.18); border-radius:18px; background:#fff; box-shadow:0 8px 28px rgba(58,45,110,.08); }
.pfd-product__image { display:block; aspect-ratio:2/3; overflow:hidden; padding:10px; background:#fff; }
.pfd-product__image img { width:100%; height:100%; object-fit:contain; transition:transform .35s ease; }
.pfd-product:hover img { transform:scale(1.025); }
.pfd-product__body { padding:22px; }
.pfd-product__tag { display:block; margin-bottom:8px; color:var(--pfd-violet); font-size:.72rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.pfd-product h3 { min-height:3.6em; font-size:1.04rem; }
.pfd-product p { color:var(--pfd-ink-soft); font-size:.9rem; }
.pfd-product a { font-weight:800; }

.pfd-values { background:#fff; }
.pfd-values__grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:start; }
.pfd-value-list { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.pfd-value { padding:24px; border-top:2px solid var(--pfd-line); }
.pfd-value p { color:var(--pfd-ink-soft); font-size:.93rem; }
.pfd-author { background:linear-gradient(145deg,#f7f4ff,#fff); }
.pfd-author__grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(42px,7vw,90px); align-items:center; }
.pfd-author img { width:100%; border-radius:var(--pfd-radius); box-shadow:var(--pfd-shadow); }

.pfd-club { color:#fff; background:var(--pfd-ink); }
.pfd-club h2,.pfd-club h3 { color:#fff; }
.pfd-club .pfd-kicker { color:#c8bcf0; }
.pfd-plans { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:42px; }
.pfd-plan { padding:36px; border:1px solid rgba(255,255,255,.18); border-radius:var(--pfd-radius); background:rgba(255,255,255,.07); }
.pfd-plan--featured { background:var(--pfd-violet-dark); }
.pfd-price { margin:12px 0 22px; font-family:"Libre Baskerville",Georgia,serif; font-size:3rem; font-weight:700; }
.pfd-plan ul { margin:0 0 28px; padding-left:1.2em; }
.pfd-quote { padding:58px 0; text-align:center; background:var(--pfd-peach); }
.pfd-quote blockquote { margin:0; font-family:"Libre Baskerville",Georgia,serif; font-size:clamp(1.45rem,3vw,2.7rem); font-style:italic; }

.site-main--inner { min-height:55vh; padding:72px 0 110px; }
.entry-header { margin-bottom:32px; }
.entry-content > * { max-width:820px; }
.entry-content > .alignwide { max-width:1180px; }
.entry-content img { border-radius:16px; }
.post-card { margin-bottom:24px; padding:28px; border:1px solid var(--pfd-line); border-radius:18px; background:#fff; }
.site-footer { padding:54px 0 34px; color:#e8e0ff; background:#261d4d; }
.site-footer a { color:#fff; }
.site-footer__grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:42px; }
.site-footer h2,.site-footer h3 { color:#fff; }
.site-footer ul { margin:0; padding:0; list-style:none; }
.site-footer__bottom { margin-top:42px; padding-top:24px; border-top:1px solid rgba(255,255,255,.15); font-size:.86rem; }

.pfd-shop-hero { position:relative; overflow:hidden; padding:clamp(62px,8vw,112px) 0 48px; color:#fff; background:radial-gradient(circle at 86% 14%,rgba(205,177,108,.24),transparent 30%),linear-gradient(135deg,#211a49,#3a2d6e 62%,#514391); }
.pfd-shop-hero::after { content:""; position:absolute; right:-80px; bottom:-180px; width:440px; height:440px; border:1px solid rgba(255,255,255,.13); border-radius:50%; }
.pfd-shop-hero h1 { max-width:850px; color:#fff; font-size:clamp(2.45rem,5vw,4.9rem); }
.pfd-shop-hero .pfd-kicker { color:#e7ce91; }
.pfd-shop-hero__lead { max-width:720px; color:#eee9ff; font-size:clamp(1.06rem,1.6vw,1.28rem); }
.pfd-shop-trust { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:42px; border:1px solid rgba(255,255,255,.15); border-radius:18px; background:rgba(255,255,255,.15); overflow:hidden; }
.pfd-shop-trust div { padding:17px 20px; background:rgba(26,20,61,.42); }
.pfd-shop-trust strong { display:block; color:#fff; font-size:.92rem; }
.pfd-shop-trust span { color:#dcd5f4; font-size:.78rem; }
.pfd-shop-categories { padding:28px 0 8px; background:#f8f3e9; }
.pfd-shop-categories__inner { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.pfd-shop-categories strong { margin-right:6px; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; }
.pfd-shop-chip { display:inline-flex; padding:9px 15px; border:1px solid rgba(58,45,110,.2); border-radius:999px; color:var(--pfd-ink); background:#fff; font-size:.86rem; font-weight:800; text-decoration:none; }
.pfd-shop-chip:hover,.pfd-shop-chip.is-active { color:#fff; background:var(--pfd-ink); }
.pfd-shop-main { background:#f8f3e9; }
.pfd-shop-main.site-main--inner { padding-top:42px; }
.woocommerce .woocommerce-result-count { color:var(--pfd-ink-soft); font-size:.9rem; }
.woocommerce .woocommerce-ordering select { min-height:44px; padding:8px 36px 8px 13px; border:1px solid rgba(58,45,110,.2); border-radius:12px; color:var(--pfd-ink); background:#fff; }
.woocommerce ul.products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; clear:both; padding-top:26px; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product { display:flex; width:auto !important; min-width:0; margin:0 !important; flex-direction:column; overflow:hidden; border:1px solid rgba(58,45,110,.13); border-radius:22px; background:#fff; box-shadow:0 12px 38px rgba(38,29,77,.08); transition:transform .25s ease,box-shadow .25s ease; }
.woocommerce ul.products li.product:hover { transform:translateY(-4px); box-shadow:0 20px 48px rgba(38,29,77,.14); }
.pfd-shop-card__cover { position:relative; display:block; padding:14px; background:linear-gradient(145deg,#eee8fb,#fbf7ef); }
.pfd-shop-card__cover img { width:100% !important; aspect-ratio:2/3; margin:0 !important; border-radius:12px; object-fit:contain; background:#fff; box-shadow:0 10px 24px rgba(38,29,77,.12); transition:transform .3s ease; }
.woocommerce li.product:hover .pfd-shop-card__cover img { transform:scale(1.012); }
.pfd-shop-card__badge { position:absolute; z-index:1; top:26px; left:26px; padding:6px 10px; border-radius:999px; color:#342956; background:#efd894; font-size:.7rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.pfd-shop-card__body { display:flex; padding:22px; flex:1; flex-direction:column; }
.pfd-shop-card__category { margin-bottom:8px; color:var(--pfd-violet-dark); font-size:.7rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.pfd-shop-card__title { margin-bottom:10px !important; padding:0 !important; color:var(--pfd-ink); font-family:"Libre Baskerville",Georgia,serif; font-size:1.12rem !important; line-height:1.35; }
.pfd-shop-card__excerpt { display:-webkit-box; overflow:hidden; min-height:4.5em; margin-bottom:14px; color:#665d7d; font-size:.88rem; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.pfd-shop-card__meta { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:15px; }
.pfd-shop-card__meta span { padding:5px 9px; border-radius:999px; color:#655a7d; background:#f5f1fb; font-size:.72rem; font-weight:700; }
.pfd-shop-card__price { margin-top:auto; margin-bottom:16px; color:var(--pfd-ink); font-size:1.28rem; font-weight:900; }
.pfd-shop-card__price del { color:#9189a2; font-size:.78rem; font-weight:500; }
.pfd-shop-card__price ins { text-decoration:none; }
.pfd-shop-card__actions { display:grid; grid-template-columns:1fr auto; gap:8px; }
.pfd-shop-card__actions .button { min-height:46px; padding:10px 16px; font-size:.82rem; }
.pfd-shop-card__preview { display:inline-flex; min-width:46px; align-items:center; justify-content:center; border:1px solid rgba(58,45,110,.23); border-radius:999px; color:var(--pfd-ink); text-decoration:none; }
.pfd-shop-card__preview:hover { color:#fff; background:var(--pfd-ink); }
.woocommerce div.product { display:block; }
.woocommerce div.product div.images img { width:100%; max-height:780px; padding:16px; border-radius:18px; object-fit:contain; background:linear-gradient(145deg,#eee8fb,#fbf7ef); }
.woocommerce div.product div.summary { padding:clamp(20px,3vw,38px); border:1px solid rgba(58,45,110,.13); border-radius:22px; background:#fff; box-shadow:0 12px 38px rgba(38,29,77,.07); }
.woocommerce div.product p.price,.woocommerce div.product span.price { color:var(--pfd-ink); font-size:1.6rem; font-weight:900; }
.woocommerce div.product .product_meta { padding-top:18px; border-top:1px solid var(--pfd-line); color:var(--pfd-ink-soft); font-size:.85rem; }
.woocommerce-message,.woocommerce-info { border-top-color:var(--pfd-violet); background:var(--pfd-lavender); }
.pfd-audio-preview { scroll-margin-top:110px; margin:22px 0; padding:20px; border:1px solid var(--pfd-line); border-radius:16px; background:linear-gradient(135deg,#f3effc,#fbf5e8); }
.pfd-audio-preview strong { display:block; margin-bottom:10px; }
.pfd-audio-preview audio { width:100%; }
.pfd-product-pending { margin:20px 0; padding:16px 18px; border-left:4px solid var(--pfd-violet); background:var(--pfd-lavender); }

@media (max-width: 960px) {
  .menu-toggle { display:block; }
  .site-nav { display:none; position:absolute; top:84px; left:0; right:0; padding:20px; background:#fff; border-bottom:1px solid var(--pfd-line); }
  .site-nav.is-open { display:block; }
  .site-nav ul { align-items:flex-start; flex-direction:column; gap:14px; }
  .pfd-hero__grid,.pfd-values__grid,.pfd-author__grid { grid-template-columns:1fr; }
  .pfd-hero__visual { max-width:620px; margin-inline:auto; }
  .pfd-grid-3 { grid-template-columns:1fr; }
  .pfd-products { grid-template-columns:repeat(2,1fr); }
  .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  body { font-size:16px; }
  .pfd-wrap,.pfd-narrow { width:min(100% - 28px,1180px); }
  .site-header__inner { min-height:72px; }
  .site-brand img { width:154px; }
  .site-nav { top:72px; }
  .pfd-hero { padding-top:54px; }
  .pfd-trust,.pfd-products,.pfd-value-list,.pfd-plans,.site-footer__grid { grid-template-columns:1fr; }
  .pfd-trust div { padding-top:18px; }
  .pfd-card { min-height:0; }
  .pfd-product h3 { min-height:0; }
  .pfd-shop-trust,.woocommerce ul.products { grid-template-columns:1fr; }
  .pfd-shop-hero { padding-top:52px; }
  .pfd-shop-categories__inner { align-items:flex-start; flex-direction:column; }
  .pfd-shop-chip { width:100%; }
  .woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering { float:none; }
  .woocommerce .woocommerce-ordering select { width:100%; }
}
