/*
Theme Name: Spell and Sense
Theme URI: https://spellandsense.de
Author: Spell and Sense
Description: Maßgeschneidertes Theme für Spell and Sense – Lektorat, Korrektorat, Buchsatz und Styled Edges für Belletristik. Von Romance und Romantasy über Fantasy und Krimi bis zu literarischer Prosa. Enthält fertig gestaltete Seitenvorlagen für Startseite, Leistungen, Ablauf, Über uns, Preise, Autorenförderung und Kontakt. Schriften sind lokal eingebunden, es werden keine Google Fonts von externen Servern geladen.
Version: 2.3.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: spell-and-sense
Tags: blog, e-commerce, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, right-sidebar
*/



:root{
  --bg:#F2EBDF; --bg-alt:#EAE0CF; --bg-deep:#1F4E5F; --surface:#FBF7F0;
  --ink:#1F4E5F; --ink-soft:#6B6156; --ink-invert:#F2EBDF;
  --accent:#B3372C; --accent-soft:#C75A4B; --accent-wash:#F3E2DC;
  --line:#DCD1BF; --gold:#B9945F;
  --font-display:'EB Garamond',Georgia,serif;
  --font-serif:'EB Garamond',Georgia,serif;
  --font-body:'Karla',system-ui,-apple-system,sans-serif;
  --radius:14px; --radius-sm:8px;
  --shadow:0 2px 4px rgba(31,78,95,.04),0 12px 30px rgba(31,78,95,.07);
  --shadow-lg:0 4px 8px rgba(31,78,95,.05),0 24px 56px rgba(31,78,95,.11);
  --btn-radius:999px; --sec-pad:clamp(72px,9vw,124px);
}
@font-face{font-family:'EB Garamond';font-style:normal;font-display:swap;font-weight:400 800;src:url(assets/fonts/ebgaramond-latin.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'EB Garamond';font-style:normal;font-display:swap;font-weight:400 800;src:url(assets/fonts/ebgaramond-latin-ext.woff2) format('woff2-variations');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'EB Garamond';font-style:italic;font-display:swap;font-weight:400 800;src:url(assets/fonts/ebgaramond-latin-italic.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'EB Garamond';font-style:italic;font-display:swap;font-weight:400 800;src:url(assets/fonts/ebgaramond-latin-ext-italic.woff2) format('woff2-variations');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Karla';font-style:normal;font-display:swap;font-weight:400;src:url(assets/fonts/karla-latin-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Karla';font-style:normal;font-display:swap;font-weight:400;src:url(assets/fonts/karla-latin-ext-400.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Karla';font-style:normal;font-display:swap;font-weight:500;src:url(assets/fonts/karla-latin-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Karla';font-style:normal;font-display:swap;font-weight:600;src:url(assets/fonts/karla-latin-600.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-serif);font-size:19px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.005em;line-height:1.15;margin:0}
h1{font-size:clamp(2.3rem,4.6vw,3.7rem)}
h2{font-size:clamp(1.8rem,3.3vw,2.7rem)}
h3{font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.25}
h4{font-size:1.05rem}
p{margin:0 0 1.1em}
.wrap{width:min(1180px,92vw);margin-inline:auto}
.narrow{width:min(760px,92vw);margin-inline:auto}
section{padding-block:var(--sec-pad)}
.center{text-align:center}
.eyebrow{font-family:var(--font-body);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 18px;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--accent);opacity:.6;flex:none}
.center .eyebrow{justify-content:center}
.lead{font-size:clamp(1.05rem,1.5vw,1.2rem);color:var(--ink-soft);line-height:1.65}
.alt{background:var(--bg-alt)}

.btn{display:inline-flex;align-items:center;gap:.6em;justify-content:center;font-family:var(--font-body);font-size:.95rem;font-weight:500;padding:15px 30px;border-radius:var(--btn-radius);text-decoration:none;border:1px solid transparent;transition:transform .18s,background .18s,color .18s,border-color .18s;cursor:pointer}
.btn-primary{background:var(--accent);color:var(--ink-invert);box-shadow:var(--shadow)}
.btn-primary:hover{transform:translateY(-2px);background:var(--accent-soft)}
.btn-ghost{border-color:var(--line);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-sm{padding:11px 22px;font-size:.87rem}
.btn-lg{padding:18px 38px;font-size:1.02rem}
.arrow{transition:transform .18s}
.btn:hover .arrow{transform:translateX(4px)}
.txtlink{color:var(--accent);text-decoration:none;font-weight:500;font-size:.95rem;display:inline-flex;align-items:center;gap:.45em;border-bottom:1px solid transparent}
.txtlink:hover{border-bottom-color:var(--accent)}

header{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:22px;padding-block:14px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand img{height:44px;width:auto}
.brand span{font-family:var(--font-display);font-size:1.2rem;white-space:nowrap}
.menu{display:flex;gap:15px;list-style:none;margin:0;padding:0}
.menu a{text-decoration:none;font-size:.88rem;color:var(--ink-soft);position:relative;padding-block:4px}
.menu a:hover,.menu a.active{color:var(--ink)}
.menu a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .2s}
.menu a:hover::after,.menu a.active::after{width:100%}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 12px;color:var(--ink);font-size:1rem;cursor:pointer}

/* Hero Startseite */
.hero{position:relative;padding-block:clamp(64px,7vw,110px) clamp(52px,6vw,84px);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(36px,5vw,72px);align-items:center}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero h1{margin-bottom:22px}
.hero .lead{max-width:52ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.hero-note{margin-top:20px;font-size:.85rem;color:var(--ink-soft)}
.hero-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:32px 30px}
.hero-card h3{margin-bottom:6px;font-size:1.3rem}
.hero-card .sub{font-size:.88rem;color:var(--ink-soft);margin-bottom:22px}
.checklist{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.checklist li{display:flex;gap:12px;font-size:.94rem;line-height:1.5;align-items:flex-start}
.tick{flex:none;width:21px;height:21px;border-radius:50%;background:var(--accent-wash);color:var(--accent);display:grid;place-items:center;font-size:.72rem;margin-top:2px;font-weight:600}
.hero-card .btn{width:100%;margin-top:26px}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;z-index:-1;pointer-events:none}
.blob-1{width:520px;height:520px;background:var(--accent-wash);top:-160px;right:-140px}
.blob-2{width:400px;height:400px;background:var(--bg-alt);bottom:-180px;left:-160px}

/* Unterseiten-Hero */
.phero{background:var(--bg-alt);border-bottom:1px solid var(--line);padding-block:clamp(44px,5vw,72px) clamp(44px,5vw,68px)}
.crumbs{font-size:.8rem;color:var(--ink-soft);margin-bottom:16px}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--accent)}
.phero h1{margin-bottom:18px;max-width:20ch}
.phero .lead{max-width:60ch}
.phero-cta{display:flex;gap:13px;flex-wrap:wrap;margin-top:28px}
.phero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,4vw,60px);align-items:end}
.facts{display:grid;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;box-shadow:var(--shadow)}
.fact{display:flex;justify-content:space-between;gap:14px;font-size:.9rem;padding-bottom:11px;border-bottom:1px solid var(--line)}
.fact:last-child{border-bottom:none;padding-bottom:0}
.fact span:first-child{color:var(--ink-soft)}
.fact b{font-weight:600;text-align:right}

.trustbar{border-block:1px solid var(--line);background:var(--bg-alt)}
.trustbar .wrap{display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:space-between;padding-block:20px}
.trust-item{display:flex;align-items:center;gap:10px;font-size:.87rem;color:var(--ink-soft)}
.trust-item b{color:var(--ink);font-weight:600}
.trust-ic{color:var(--accent)}

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:48px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:48px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.card h3{margin-bottom:12px}
.card p{font-size:.95rem;color:var(--ink-soft)}
.card .q{font-family:var(--font-display);font-size:1.14rem;line-height:1.35;margin-bottom:12px;display:block}
.svc:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--accent-soft)}
.svc{transition:transform .22s,box-shadow .22s,border-color .22s;padding-top:34px}
.svc-num{font-family:var(--font-display);font-size:.8rem;letter-spacing:.2em;color:var(--accent);margin-bottom:18px}
.tags{display:flex;flex-wrap:wrap;gap:7px;margin:4px 0 22px}
.tag{font-size:.73rem;padding:5px 11px;border-radius:999px;background:var(--accent-wash);color:var(--accent)}
.card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:20px;border-top:1px solid var(--line)}
.price{font-family:var(--font-display);font-size:1.32rem}
.price small{font-family:var(--font-body);font-size:.72rem;color:var(--ink-soft);display:block;letter-spacing:.04em}

.dark{background:var(--bg-deep);color:var(--ink-invert)}
.dark h2,.dark h3{color:var(--ink-invert)}
.dark .lead,.dark p{color:var(--ink-invert);opacity:.74}
.dark .eyebrow{color:var(--gold)}
.dark .eyebrow::before{background:var(--gold)}
.dark .btn-ghost{border-color:rgba(255,255,255,.28);color:var(--ink-invert)}
.dark .btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:52px}
.step{padding:0 26px;position:relative}
.step:not(:last-child)::after{content:"";position:absolute;right:0;top:14px;bottom:10px;width:1px;background:currentColor;opacity:.14}
.step-n{width:44px;height:44px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);display:grid;place-items:center;font-family:var(--font-display);font-size:1.05rem;margin-bottom:20px}
.step h3{font-size:1.1rem;margin-bottom:9px}
.step p{font-size:.9rem;margin:0}
.mid-cta{margin-top:50px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap}

.split{display:grid;grid-template-columns:1fr .62fr;gap:clamp(34px,5vw,68px);align-items:start}
.prose h3{margin:38px 0 12px}
.prose h3:first-child{margin-top:0}
.prose p{color:var(--ink-soft)}
.prose .pull{font-family:var(--font-display);font-size:clamp(1.25rem,2.2vw,1.6rem);line-height:1.4;color:var(--ink);border-left:2px solid var(--accent);padding-left:24px;font-style:italic;margin:30px 0}
.sticky{position:sticky;top:96px}
.side-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px;box-shadow:var(--shadow)}
.side-card h4{margin-bottom:8px;font-family:var(--font-display);font-size:1.2rem}
.side-card p{font-size:.88rem;color:var(--ink-soft)}
.side-card .btn{width:100%;margin-top:8px}
.side-card .fact{font-size:.86rem}

.duo{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.person{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;text-align:center;box-shadow:var(--shadow)}
.avatar{width:88px;height:88px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;font-family:var(--font-display);font-size:1.9rem;color:var(--accent);background:var(--accent-wash);border:1px solid var(--line)}
.person h3{font-size:1.15rem;margin-bottom:4px}
.person .role{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:12px}
.person p{font-size:.88rem;color:var(--ink-soft);margin:0}

.ptable{margin-top:44px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.prow{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:16px;padding:19px 28px;align-items:center;border-top:1px solid var(--line)}
.prow:first-child{border-top:none;background:var(--accent-wash)}
.prow.head span{font-size:.73rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}
.prow strong{font-weight:600;font-size:1rem}
.prow .desc{display:block;font-size:.83rem;color:var(--ink-soft);font-weight:400;margin-top:3px}
.prow .p{font-family:var(--font-display);font-size:1.18rem}
.prow .p small{font-family:var(--font-body);font-size:.73rem;color:var(--ink-soft);display:block}
.ptitle{margin:56px 0 0;font-size:1.5rem}
.pnote{margin-top:20px;font-size:.85rem;color:var(--ink-soft)}

.grant-box{background:var(--surface);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:clamp(32px,4vw,56px);display:grid;grid-template-columns:1.35fr .65fr;gap:44px;align-items:center;box-shadow:var(--shadow-lg)}
.badge{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--ink-invert);font-size:.73rem;letter-spacing:.13em;text-transform:uppercase;padding:7px 16px;border-radius:999px;margin-bottom:20px}
.slots{text-align:center;border-left:1px solid var(--line);padding-left:40px}
.slots .big{font-family:var(--font-display);font-size:clamp(3.2rem,6vw,5rem);line-height:1;color:var(--accent)}
.slots .cap{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px}
.slots .btn{margin-top:22px;width:100%}

.v-card p{font-family:var(--font-display);font-size:1.05rem;line-height:1.5;color:var(--ink)}
.stars{color:var(--gold);letter-spacing:.15em;font-size:.9rem;margin-bottom:16px}
.v-who{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}
.v-av{width:38px;height:38px;border-radius:50%;background:var(--accent-wash);color:var(--accent);display:grid;place-items:center;font-size:.85rem;font-weight:600;flex:none}
.v-who b{display:block;font-size:.9rem;font-weight:600}
.v-who span{font-size:.78rem;color:var(--ink-soft)}
.hint{margin-top:24px;text-align:center}
.hint span{font-size:.82rem;color:var(--ink-soft);border:1px dashed var(--line);border-radius:var(--radius-sm);padding:11px 18px;display:inline-block}

.faq-list{margin-top:40px;border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:21px 44px 21px 0;position:relative;font-family:var(--font-display);font-size:clamp(1.02rem,1.6vw,1.2rem);line-height:1.35}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:1.4rem;color:var(--accent);transition:transform .2s;font-family:var(--font-body);font-weight:300}
details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
details p{padding:0 44px 24px 0;color:var(--ink-soft);font-size:.96rem;margin:0}

/* Formular */
.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(28px,3.5vw,44px);box-shadow:var(--shadow-lg)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
label{font-size:.85rem;font-weight:500}
label .opt{color:var(--ink-soft);font-weight:400}
input,select,textarea{font-family:var(--font-body);font-size:.95rem;padding:13px 15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
textarea{min-height:120px;resize:vertical}
.drop{border:1.5px dashed var(--line);border-radius:var(--radius-sm);padding:26px;text-align:center;color:var(--ink-soft);font-size:.9rem;background:var(--bg)}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:.84rem;color:var(--ink-soft);margin-top:4px}
.consent input{margin-top:3px}
.form .btn{margin-top:6px}
.form-note{font-size:.82rem;color:var(--ink-soft);text-align:center;margin:14px 0 0}

.cta-band{background:var(--bg-deep);color:var(--ink-invert);text-align:center}
.cta-band h2{color:var(--ink-invert);margin-bottom:18px}
.cta-band .lead{color:var(--ink-invert);opacity:.75;max-width:58ch;margin-inline:auto}
.cta-band .eyebrow{color:var(--gold);justify-content:center}
.cta-band .eyebrow::before{background:var(--gold)}
.cta-band .row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:32px}
.cta-band .btn-ghost{border-color:rgba(255,255,255,.3);color:var(--ink-invert)}
.cta-note{margin-top:24px;font-size:.85rem;opacity:.6}

footer{background:var(--bg);border-top:1px solid var(--line);padding-block:54px 28px;font-size:.9rem}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.f-brand img{height:52px;margin-bottom:16px}
.f-brand p{color:var(--ink-soft);font-size:.88rem;max-width:34ch}
footer h4{font-family:var(--font-body);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 16px;font-weight:600}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
footer a{text-decoration:none;color:var(--ink-soft)}
footer a:hover{color:var(--accent)}
.f-bottom{margin-top:42px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--ink-soft);font-size:.82rem}

.rv{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}

@media (max-width:1000px){
  .hero-grid,.phero-grid,.split,.grant-box{grid-template-columns:1fr}
  .sticky{position:static}
  .slots{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:28px}
  .steps{grid-template-columns:1fr 1fr;gap:36px 0}
  .step:nth-child(2)::after{display:none}
  .grid3{grid-template-columns:1fr 1fr}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  body{font-size:16px}
  .menu{display:none}
  .burger{display:block}
  .nav .btn{display:none}
  .grid3,.grid2,.duo,.fgrid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .step{padding:0}
  .step::after{display:none}
  .prow{grid-template-columns:1fr;gap:5px;padding:17px 20px}
  .prow.head{display:none}
  .f-grid{grid-template-columns:1fr}
}


/* ---------- WordPress-Anpassungen ---------- */
body.admin-bar header{top:32px}
@media screen and (max-width:782px){body.admin-bar header{top:46px}}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;top:12px;left:12px;z-index:999;background:var(--accent);color:#fff;padding:12px 20px;border-radius:var(--radius-sm);width:auto;height:auto;clip:auto}
.menu li{position:relative}
/* Untermenue: kein Abstand zum Elternlink, sonst reisst der Hover ab.
   Der Abstand entsteht ueber transparentes padding-top, das mit ueberfahren wird. */
.menu li.menu-item-has-children,.menu li:has(>.sub-menu){position:relative}
.menu li.menu-item-has-children{padding-bottom:16px;margin-bottom:-16px}
.menu .sub-menu{
  position:absolute;top:100%;left:-18px;min-width:250px;
  list-style:none;margin:0;padding:10px 0;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-sm);box-shadow:var(--shadow);
  display:none;z-index:70;
}
.menu li:hover>.sub-menu,
.menu li:focus-within>.sub-menu,
.menu li.sas-open>.sub-menu{display:block}
.menu .sub-menu li{position:relative}
.menu .sub-menu a{display:block;padding:10px 22px;font-size:.9rem;white-space:normal;line-height:1.4}
.menu .sub-menu a::after{display:none}
.menu .sub-menu a:hover{color:var(--accent);background:var(--accent-wash)}
/* Elternlink bekommt einen Pfeil, damit man sieht, dass es weitergeht */
.menu li.menu-item-has-children>a::before{
  content:"";position:absolute;right:-13px;top:calc(50% - 1px);
  width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-1px);opacity:.55;
}
.menu li.menu-item-has-children>a{margin-right:12px}
.menu .current-menu-item>a,.menu .current_page_item>a{color:var(--ink)}
.menu .current-menu-item>a::after,.menu .current_page_item>a::after{width:100%}

/* Redaktioneller Inhalt (Blog, Impressum, Shop, alle normalen Seiten) */
.prose>*:first-child{margin-top:0}
.prose h2{font-size:clamp(1.5rem,2.6vw,2rem);margin:44px 0 14px}
.prose h4,.prose h5,.prose h6{margin:30px 0 10px;font-family:var(--font-display)}
.prose ul,.prose ol{color:var(--ink-soft);padding-left:1.3em;margin:0 0 1.2em}
.prose li{margin-bottom:.5em}
.prose ul{list-style:none;padding-left:0}
.prose ul li{position:relative;padding-left:1.5em}
.prose ul li::before{content:"◆";position:absolute;left:0;color:var(--accent);font-size:.7em;top:.45em}
.prose a:not(.btn){color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.prose img,.prose figure{border-radius:var(--radius);margin:28px 0}
.prose figcaption{font-size:.84rem;color:var(--ink-soft);text-align:center;margin-top:10px}
.prose blockquote{font-family:var(--font-display);font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.4;font-style:italic;border-left:2px solid var(--accent);padding-left:24px;margin:30px 0;color:var(--ink)}
.prose blockquote p:last-child{margin-bottom:0}
.prose table{width:100%;border-collapse:collapse;margin:26px 0;font-size:.94rem}
.prose th,.prose td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:left}
.prose th{background:var(--accent-wash);color:var(--accent);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}
.prose hr{border:none;border-top:1px solid var(--line);margin:40px 0}
.prose code,.prose pre{background:var(--bg-alt);border-radius:var(--radius-sm);font-size:.9em}
.prose code{padding:2px 6px}
.prose pre{padding:20px;overflow:auto}
.alignwide{width:min(1100px,94vw);margin-inline:auto}
.alignfull{width:100vw;margin-left:calc(50% - 50vw)}
.aligncenter{margin-inline:auto}
.wp-caption{max-width:100%}

/* Blog */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:48px}
.post-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:transform .22s,box-shadow .22s}
.post-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.post-card .thumb{aspect-ratio:16/10;overflow:hidden;background:var(--bg-alt)}
.post-card .thumb img{width:100%;height:100%;object-fit:cover}
.post-card .body{padding:26px 26px 24px;display:flex;flex-direction:column;flex:1}
.post-card .meta{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.post-card h3{font-size:1.2rem;margin-bottom:10px}
.post-card h3 a{text-decoration:none}
.post-card p{font-size:.92rem;color:var(--ink-soft);flex:1}
.post-card .more{margin-top:16px}
.pagination{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:52px}
.pagination .page-numbers{padding:11px 17px;border:1px solid var(--line);border-radius:var(--radius-sm);text-decoration:none;font-size:.9rem;color:var(--ink-soft)}
.pagination .page-numbers.current,.pagination .page-numbers:hover{background:var(--accent);color:var(--ink-invert);border-color:var(--accent)}
.entry-meta{font-size:.85rem;color:var(--ink-soft);margin-top:16px}
.post-thumb{border-radius:var(--radius);overflow:hidden;margin-bottom:40px;box-shadow:var(--shadow)}

/* Kommentare */
.comments{margin-top:60px;padding-top:40px;border-top:1px solid var(--line)}
.comments ol{list-style:none;padding:0;margin:24px 0 0}
.comments li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-bottom:16px}
.comments .comment-meta{font-size:.82rem;color:var(--ink-soft);margin-bottom:8px}
.comment-form{display:grid;gap:16px;margin-top:24px}
.comment-form label{font-size:.85rem;font-weight:500}
.comment-form input[type=submit]{justify-self:start;background:var(--accent);color:var(--ink-invert);border:none;padding:15px 30px;border-radius:var(--btn-radius);font-family:var(--font-body);font-size:.95rem;cursor:pointer}

/* WooCommerce */
.woocommerce-page main{padding-block:var(--sec-pad)}
.woocommerce ul.products li.product{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.woocommerce ul.products li.product .price{font-family:var(--font-display);color:var(--ink)}
.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit.alt,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{
  background:var(--accent);color:var(--ink-invert);border-radius:var(--btn-radius);padding:14px 28px;font-family:var(--font-body);font-weight:500}
.woocommerce #respond input#submit:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background:var(--accent-soft);color:var(--ink-invert)}
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info{border-top-color:var(--accent)}
.woocommerce .woocommerce-message::before,.woocommerce .woocommerce-info::before{color:var(--accent)}

/* Formular-Plugins (CF7, WPForms, Forminator) im Theme-Look */
.wpcf7 label,.wpforms-field-label{font-size:.85rem;font-weight:500}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 select,.wpcf7 textarea,
.wpforms-container input,.wpforms-container select,.wpforms-container textarea{
  width:100%;font-family:var(--font-body);font-size:.95rem;padding:13px 15px;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--bg);color:var(--ink)}
.wpcf7 input[type=submit],.wpforms-submit{
  background:var(--accent);color:var(--ink-invert);border:none;padding:16px 32px;border-radius:var(--btn-radius);
  font-family:var(--font-body);font-size:.98rem;font-weight:500;cursor:pointer}
.wpcf7 input[type=submit]:hover,.wpforms-submit:hover{background:var(--accent-soft)}

@media (max-width:1000px){.post-grid{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.post-grid{grid-template-columns:1fr}}

/* ---------- Karla für Bedienelemente und Auszeichnungen ---------- */
.menu a,.crumbs,.trust-item,.fact,.tag,.hero-note,.pnote,.cta-note,.form-note,
.v-who,.post-card .meta,.svc-num,.step-n,.prow .p small,.price small,.slots .cap,
.badge,.stars,.entry-meta,.pagination .page-numbers,.hint span,.side-card .fact,
.prow.head span,.prow .desc,.hero-card .sub,.person .role,.checklist li{
  font-family:var(--font-body);
}
.crumbs,.trust-item,.fact,.hero-note,.pnote,.cta-note,.form-note,.hint span{font-size:.84rem}
.checklist li{font-size:.9rem;line-height:1.55}
.hero-card .sub{font-size:.87rem}
.prow .desc{font-size:.8rem}
.lead{font-family:var(--font-serif)}
.prose p,.prose li,.card p,.step p,.person p,.v-card p{font-family:var(--font-serif)}
.svc-num,.step-n{font-weight:500}
.price,.prow .p{font-family:var(--font-display);font-weight:600}
input,select,textarea{font-family:var(--font-body);font-size:.92rem}
label{font-family:var(--font-body)}
summary{font-family:var(--font-display);font-weight:600}
.btn{font-family:var(--font-body);letter-spacing:.005em}
footer{font-family:var(--font-body);font-size:.88rem}
.f-brand p{font-family:var(--font-serif);font-size:.95rem}

/* Petrol-Flächen: helle Schrift, warmes Sand als Akzent */
.dark .step-n{border-color:var(--gold);color:var(--gold)}
.dark .lead,.dark p{opacity:.82}
.cta-band .lead{opacity:.82}
.stars{color:var(--gold)}
.tick{background:var(--accent-wash);color:var(--accent)}
.avatar{background:var(--accent-wash);color:var(--accent)}
.v-av{background:var(--accent-wash);color:var(--accent)}
.eyebrow{font-weight:600}
.brand span{font-family:var(--font-display);font-weight:600}

/* ---------- Kopfzeile: acht Menuepunkte brauchen frueher Platz ---------- */
.menu a{white-space:nowrap}
.nav{flex-wrap:nowrap}
@media (max-width:1600px){
  .nav{gap:22px}
  .menu{gap:16px}
  .menu a{font-size:.89rem}
}
@media (max-width:1400px){
  .nav{gap:18px}
  .menu{gap:13px}
  .menu a{font-size:.85rem}
  .brand span{font-size:1.08rem}
}
@media (max-width:1240px){
  .nav{gap:16px}
  .menu{gap:11px}
  .menu a{font-size:.82rem}
  .brand img{height:38px}
  .brand span{font-size:1rem}
}
@media (max-width:1120px){
  .menu{gap:10px}
  .menu a{font-size:.79rem}
  .brand span{display:none}
}
@media (max-width:1000px){
  .menu{display:none}
  .burger{display:block}
  .nav .btn{display:none}
  .brand span{display:inline}
}
.menu.is-open{white-space:normal}
.menu.is-open a{white-space:normal;font-size:.95rem}

/* ---------- Footer-Menues: untereinander, nicht wie die Kopfnavigation ---------- */
footer .footer-menu,
footer ul{
  list-style:none;margin:0;padding:0;display:grid;gap:10px;
}
footer .footer-menu li{margin:0}
footer .footer-menu a{
  display:inline;text-decoration:none;color:var(--ink-soft);
  font-family:var(--font-body);font-size:.88rem;position:static;padding:0;
}
footer .footer-menu a::after{display:none}
footer .footer-menu a:hover{color:var(--accent)}
footer .sub-menu{position:static;display:grid;box-shadow:none;border:none;background:none;padding:6px 0 0 14px;margin:0}

/* ---------- Foto-Abschnitte ---------- */
.photo{margin:0}
.photo img{
  width:100%;height:auto;display:block;border-radius:var(--radius);
  box-shadow:var(--shadow-lg);object-fit:cover;
}
.photo figcaption{
  font-family:var(--font-body);font-size:.82rem;color:var(--ink-soft);
  text-align:center;margin-top:16px;
}
.photo-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:center}
.photo-split .photo img{aspect-ratio:4/3;object-position:center}
@media (max-width:860px){.photo-split{grid-template-columns:1fr}}

/* ---------- Vertrauensleiste: nie ein einzelnes Element in Zeile zwei ---------- */
.trustbar .wrap{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:9px 24px;padding-block:19px;width:min(1240px,94vw);
}
.trust-item{font-size:.78rem;gap:7px;white-space:nowrap}
.trust-item b{white-space:nowrap}
.trustbar .trust-ic{font-size:.72rem}
@media (max-width:1180px){
  .trustbar .wrap{gap:9px 18px}
  .trust-item{font-size:.73rem}
  .trustbar .trust-ic{font-size:.62rem}
}
@media (max-width:1060px){
  .trustbar .wrap{gap:10px 22px;max-width:720px}
  .trust-item{font-size:.76rem}
}
@media (max-width:860px){
  .trustbar .wrap{flex-direction:column;align-items:flex-start;gap:11px;padding-block:22px}
  .trust-item{font-size:.82rem;white-space:normal}
}


/* ================= Contact Form 7 im Theme-Look ================= */
.form .wpcf7{margin:0}
.form .wpcf7 .screen-reader-response{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.wpcf7-form fieldset,.wpcf7-form .hidden-fields-container{border:none;padding:0;margin:0;min-inline-size:auto}
.wpcf7-form p{margin:0 0 18px}
.wpcf7-form p:last-child{margin-bottom:0}

.wpcf7-form .sas-intro{
  font-family:var(--font-serif);font-size:1rem;line-height:1.6;
  color:var(--ink-soft);margin-bottom:30px;
}

.wpcf7-form h4{
  font-family:var(--font-body);font-size:.73rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
  margin:38px 0 18px;padding-top:26px;border-top:1px solid var(--line);
}
.wpcf7-form h4:first-of-type{margin-top:6px;padding-top:0;border-top:none}

.wpcf7-form label{
  display:flex;flex-direction:column;gap:7px;
  font-family:var(--font-body);font-size:.84rem;font-weight:500;color:var(--ink);
}

.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form input[type=url],
.wpcf7-form input[type=number],
.wpcf7-form input[type=date],
.wpcf7-form select,
.wpcf7-form textarea{
  width:100%;font-family:var(--font-body);font-size:.92rem;
  padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--bg);color:var(--ink);transition:border-color .15s,box-shadow .15s;
}
.wpcf7-form input:focus,.wpcf7-form select:focus,.wpcf7-form textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);
}
.wpcf7-form textarea{min-height:120px;resize:vertical}
.wpcf7-form ::placeholder{color:var(--ink-soft);opacity:.75}

/* Zwei Spalten fuer kurze Felder */
.wpcf7-form .sas-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.wpcf7-form .sas-grid>p{margin-bottom:18px}
@media (max-width:720px){.wpcf7-form .sas-grid{grid-template-columns:1fr}}

/* Auswahl-Listen */
.wpcf7-form .wpcf7-list-item{display:block;margin:0 0 9px}
.wpcf7-form .wpcf7-list-item:last-child{margin-bottom:0}
.wpcf7-form .wpcf7-list-item label{
  flex-direction:row;align-items:flex-start;gap:11px;
  font-weight:400;font-size:.88rem;line-height:1.5;cursor:pointer;
  border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:11px 14px;background:var(--bg);transition:border-color .15s,background .15s;
}
.wpcf7-form .wpcf7-list-item label:hover{border-color:var(--accent-soft)}
.wpcf7-form .wpcf7-list-item input{margin-top:3px;accent-color:var(--accent);flex:none}
.wpcf7-form .wpcf7-list-item-label{color:var(--ink)}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item label{
  border:none;background:none;padding:0;font-size:.83rem;color:var(--ink-soft);
}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label{color:var(--ink-soft)}

/* Absenden */
.wpcf7-form .wpcf7-submit{
  background:var(--accent);color:var(--ink-invert);border:none;cursor:pointer;
  font-family:var(--font-body);font-size:1rem;font-weight:500;
  padding:17px 38px;border-radius:var(--btn-radius);box-shadow:var(--shadow);
  transition:transform .18s,background .18s;margin-top:8px;
}
.wpcf7-form .wpcf7-submit:hover{background:var(--accent-soft);transform:translateY(-2px)}
.wpcf7-spinner{margin-left:12px}

/* Meldungen */
.wpcf7-not-valid-tip{
  color:var(--accent);font-family:var(--font-body);font-size:.78rem;margin-top:6px;
}
.wpcf7-form input.wpcf7-not-valid,
.wpcf7-form select.wpcf7-not-valid,
.wpcf7-form textarea.wpcf7-not-valid{border-color:var(--accent)}
.wpcf7-response-output{
  display:none;
  font-family:var(--font-body);font-size:.88rem;line-height:1.55;
  border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:var(--radius-sm);padding:14px 18px;margin:22px 0 0;background:var(--surface);
}
.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output{display:block}
.wpcf7 form.sent .wpcf7-response-output{border-left-color:#2E7D5B}

/* Kontaktseite: Formularspalte breiter */
.split.split-form{grid-template-columns:1.42fr .58fr}
@media (max-width:1000px){.split.split-form{grid-template-columns:1fr}}

/* Kopfzeilen-Button: immer einzeilig, kompakt, ohne schweren Schatten */
.nav .btn{white-space:nowrap;flex:0 0 auto;padding:11px 21px;font-size:.85rem;line-height:1.1;box-shadow:none}
.nav .btn:hover{box-shadow:var(--shadow)}
@media (max-width:1180px){.nav .btn{padding:10px 17px;font-size:.8rem}}

/* Formular: Pflichtfeld-Stern, Feldbeschriftungen, Hinweise, Datei-Upload */
.wpcf7-form .req{color:var(--accent);font-weight:600}
.wpcf7-form .lbl{display:block}
.wpcf7-form .sas-fieldlabel{
  font-family:var(--font-body);font-size:.84rem;font-weight:500;color:var(--ink);margin:0 0 9px;
}
.wpcf7-form .sas-hint{
  display:block;font-family:var(--font-body);font-size:.78rem;font-weight:400;
  line-height:1.5;color:var(--ink-soft);
}
.wpcf7-form .sas-note{
  font-family:var(--font-body);font-size:.78rem;line-height:1.55;color:var(--ink-soft);margin-top:18px;
}
.wpcf7-form input[type=file]{
  width:100%;font-family:var(--font-body);font-size:.86rem;
  padding:11px 14px;border:1px dashed var(--line);border-radius:var(--radius-sm);
  background:var(--bg);color:var(--ink-soft);cursor:pointer;
}
.wpcf7-form input[type=file]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.wpcf7-form input[type=file]::file-selector-button{
  font-family:var(--font-body);font-size:.82rem;margin-right:12px;padding:7px 15px;
  border:1px solid var(--line);border-radius:999px;background:var(--surface);
  color:var(--ink);cursor:pointer;transition:border-color .15s,color .15s;
}
.wpcf7-form input[type=file]::file-selector-button:hover{border-color:var(--accent);color:var(--accent)}

/* ================= Eingebettete Werkzeuge ================= */
.tool-rahmen{width:100%;margin:0;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  box-shadow:0 18px 40px -30px rgba(31,78,95,.35)}
.tool-rahmen iframe{width:100%;height:1180px;border:0;display:block;background:var(--surface)}
@media (max-width:960px){.tool-rahmen iframe{height:2400px}}
.pnote a{color:var(--accent)}
