/*
Theme Name: Fortuna Aurea
Theme URI: https://fortuna-aurea.eu
Author: Kedar & Partner
Author URI: https://kedar-partner.de
Description: Individuelles WooCommerce-Theme für Fortuna Aurea Numismatics.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: fortuna-aurea
*/

:root{
  --ink:#1c1712;
  --ink-2:#120e0a;
  --ivory:#f7f2e7;
  --ivory-2:#fbf8f1;
  --gold:#a67c3d;
  --gold-light:#c9a25c;
  --gold-pale:#f3dfa9;
  --verd:#4b6358;
  --muted:#8a7a63;
  --line:#e5dac2;
  --shadow:0 20px 60px -20px rgba(20,15,8,0.35);
  --serif:'Cormorant Garamond',serif;
  --serif-sc:'Cormorant SC',serif;
  --sans:'Inter',sans-serif;
  --mono:'Space Mono',monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%;}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-wrap:break-word;}
h1,h2,h3,h4,p,span,a,td,li{overflow-wrap:break-word;}
img,svg{display:block;max-width:100%;}
a{color:inherit;}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:600;}
p{margin:0;}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}

.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:12px;}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--gold);display:inline-block;}
.eyebrow.center{justify-content:center;}
.eyebrow.on-dark{color:var(--gold-light);}

/* ---------- header ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:100;padding:26px 0;transition:.4s cubic-bezier(.2,.7,.2,1);}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;}
header.solid{padding:14px 0;background:rgba(28,23,18,.92);backdrop-filter:blur(10px);box-shadow:0 8px 30px -12px rgba(0,0,0,.4);}
.logo{display:flex;flex-direction:column;line-height:1;color:var(--ivory);text-decoration:none;}
.logo b{font-family:var(--serif-sc);font-size:22px;letter-spacing:2px;}
.logo span{font-family:var(--mono);font-size:9px;letter-spacing:4px;color:var(--gold-light);margin-top:4px;}
nav.mainnav{display:flex;align-items:center;gap:24px;}
nav.mainnav a.navlink{color:var(--ivory);text-decoration:none;font-size:13px;letter-spacing:.2px;white-space:nowrap;position:relative;padding:4px 0;}
nav.mainnav a.navlink::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold-light);transition:.3s;}
nav.mainnav a.navlink:hover::after{width:100%;}
.hdr-actions{display:flex;align-items:center;gap:18px;}
.searchbox{display:flex;align-items:center;gap:8px;background:rgba(247,242,231,.08);border:1px solid rgba(247,242,231,.28);border-radius:30px;padding:8px 16px;min-width:180px;transition:.3s;}
.searchbox:focus-within{border-color:var(--gold-light);background:rgba(247,242,231,.14);}
.searchbox input{background:none;border:none;outline:none;color:var(--ivory);font-family:var(--sans);font-size:13.5px;width:100%;}
.searchbox input::placeholder{color:rgba(247,242,231,.5);}
.searchbox svg{width:15px;height:15px;flex-shrink:0;color:var(--gold-light);}
.search-wrap{position:relative;}
.search-preview{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;min-width:320px;background:var(--ivory);border-radius:8px;box-shadow:0 20px 50px -12px rgba(0,0,0,.4);border:1px solid var(--line);overflow:hidden;z-index:200;}
.search-preview.open{display:block;}
.search-preview-item{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);}
.search-preview-item:hover{background:var(--ivory-2);}
.search-preview-item img{width:40px;height:40px;object-fit:contain;border-radius:4px;background:var(--ivory-2);flex-shrink:0;}
.spi-info{min-width:0;flex:1;display:flex;flex-direction:column;}
.spi-title{font-size:13px;font-weight:600;color:var(--ink);white-space:normal;line-height:1.4;}
.spi-meta{font-size:10.5px;color:var(--muted);font-family:var(--mono);margin-top:2px;}
.spi-price{font-family:var(--mono);font-size:12.5px;color:var(--gold);flex-shrink:0;}
.search-preview-all{display:block;text-align:center;padding:11px;font-family:var(--mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--gold);text-decoration:none;background:var(--ivory-2);}
.search-preview-all:hover{color:var(--gold-light);}
.search-preview-empty{padding:16px;text-align:center;font-size:13px;color:var(--muted);}
.icon-btn{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ivory);border:1px solid rgba(247,242,231,.28);background:rgba(247,242,231,.06);cursor:pointer;transition:.3s;}
.icon-btn:hover{border-color:var(--gold-light);color:var(--gold-light);}
.icon-btn svg{width:17px;height:17px;}
.burger{display:none;}

/* ---------- language switcher (TranslatePress shortcode_only output) ---------- */
.lang-switch ul{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0;}
.lang-switch li{list-style:none;}
.lang-switch a{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:30px;font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(247,242,231,.65);text-decoration:none;border:1px solid transparent;background:rgba(247,242,231,.06);transition:.25s;}
.lang-switch a:hover{color:var(--gold-light);border-color:rgba(201,162,92,.4);}
.lang-switch a.trp-ls-current-language,.lang-switch a[data-trp-current]{color:var(--gold-light);border-color:rgba(201,162,92,.5);background:rgba(201,162,92,.12);}
.lang-switch img{width:15px;height:auto;border-radius:2px;display:inline-block;}
.lang-switch-mobile{margin-top:24px;padding-top:20px;border-top:1px solid rgba(247,242,231,.1);}
.lang-switch-mobile ul{flex-wrap:wrap;}
.lang-switch-mobile a{color:var(--ivory);background:rgba(247,242,231,.06);}
@media(max-width:640px){.lang-switch:not(.lang-switch-mobile){display:none;}}
/* TranslatePress bringt eigene Farben mit — ein heller Kasten auf weißem Grund. Im dunklen
   Kopfbereich sticht das heraus. Die Regeln oben greifen nur, wenn das Plugin eine Liste
   ausgibt; je nach Version und Einstellung sind es stattdessen verschachtelte <div> mit
   eigenen trp-Klassen. Deshalb hier beide Formen abgedeckt.
   !important ist hier ausnahmsweise richtig: Das Plugin setzt seine Farben teils direkt am
   Element, dagegen kommt eine normale Regel nicht an. Alles bleibt auf .lang-switch
   begrenzt, wirkt also nur im Kopfbereich und im mobilen Menü. */
.lang-switch .trp-language-switcher,
.lang-switch .trp-language-switcher>div{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;}
.lang-switch .trp-language-switcher a,
.lang-switch .trp-ls-shortcode-current-language>a,
.lang-switch .trp-ls-shortcode-language>a{display:flex;align-items:center;gap:6px;padding:6px 12px!important;border-radius:30px!important;font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;background:rgba(247,242,231,.06)!important;color:rgba(247,242,231,.7)!important;border:1px solid transparent!important;transition:.25s;}
.lang-switch .trp-language-switcher a:hover{color:var(--gold-light)!important;border-color:rgba(201,162,92,.4)!important;}
/* aufgeklappte Auswahl: dunkler Kasten statt weißem Rechteck */
.lang-switch .trp-ls-shortcode-language{background:var(--ink-2)!important;border:1px solid var(--line)!important;border-radius:8px!important;overflow:hidden;min-width:0!important;}
.lang-switch .trp-ls-shortcode-language>a{border-radius:0!important;background:transparent!important;}
.lang-switch .trp-ls-shortcode-language>a:hover{background:rgba(201,162,92,.12)!important;}
.lang-switch .trp-flag-image{width:15px;height:auto;border-radius:2px;}
/* Sprachnamen erschienen blau: Das Plugin legt den Text je nach Version in ein <span>
   INNERHALB des Links. Die Farbe am <a> vererbt sich dann nicht, und der Browser nimmt
   sein Standard-Linkblau. Deshalb hier auf alle Elemente im Umschalter — bewusst pauschal,
   aber streng auf .lang-switch begrenzt, also nur Kopfbereich und mobiles Menü.
   Die Sonderfälle stehen dahinter, damit sie gewinnen. */
.lang-switch,.lang-switch *{color:#f7f2e7!important;}
.lang-switch a:hover,.lang-switch a:hover *{color:var(--gold-light)!important;}
.lang-switch .trp-ls-shortcode-current-language>a,
.lang-switch .trp-ls-shortcode-current-language>a *,
.lang-switch a.trp-ls-current-language,
.lang-switch a.trp-ls-current-language *{color:var(--gold-light)!important;}
.mobile-menu{display:flex;position:fixed;top:0;right:0;bottom:0;width:min(78vw,320px);background:var(--ink-2);z-index:200;padding:100px 30px 30px;flex-direction:column;gap:8px;box-shadow:-20px 0 50px rgba(0,0,0,.4);transform:translateX(100%);transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu a{color:var(--ivory);text-decoration:none;font-family:var(--serif);font-size:20px;padding:14px 0;border-bottom:1px solid rgba(247,242,231,.1);}
.menu-scrim{display:none;position:fixed;inset:0;background:rgba(10,8,5,.55);z-index:150;opacity:0;transition:opacity .3s;}
.menu-scrim.open{opacity:1;}
.menu-close{position:absolute;top:26px;right:26px;background:none;border:1px solid rgba(247,242,231,.3);color:var(--ivory);width:38px;height:38px;border-radius:50%;font-size:18px;cursor:pointer;}

/* ---------- buttons ---------- */
.btn{font-family:var(--sans);font-size:14.5px;font-weight:600;letter-spacing:.3px;padding:15px 32px;border-radius:2px;cursor:pointer;display:inline-flex;align-items:center;gap:10px;text-decoration:none;border:1px solid transparent;transition:.35s cubic-bezier(.2,.7,.2,1);}
.btn-gold{background:linear-gradient(135deg,var(--gold-light),var(--gold));color:#241a0d;box-shadow:0 14px 30px -12px rgba(166,124,61,.55);}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 20px 36px -12px rgba(166,124,61,.65);}
.btn-ghost{border-color:rgba(247,242,231,.4);color:var(--ivory);background:transparent;}
.btn-ghost:hover{border-color:var(--gold-light);color:var(--gold-light);}
.btn-dark{border-color:var(--ink);color:var(--ink);}
.btn-dark:hover{background:var(--ink);color:var(--ivory);}
/* WhatsApp-Anfrage: bewusst als Zweitbutton neben dem goldenen Haupt-CTA — nur konturiert,
   damit er die Preisanfrage per E-Mail nicht überstrahlt. Das WhatsApp-Grün macht ihn
   trotzdem auf einen Blick erkennbar. */
/* Satt gruen gefuellt statt nur umrandet: Der Button soll auf der Kontaktseite sofort ins
   Auge fallen. Das Gruen ist die offizielle WhatsApp-Farbe (#25D366) und damit auch ohne
   Lesen als WhatsApp erkennbar. */
.btn-whatsapp{background:#25D366;border-color:#25D366;color:#fff;}
.btn-whatsapp:hover{background:#1DA851;border-color:#1DA851;color:#fff;}
/* Zwei Buttons nebeneinander sollen auf schmalen Fenstern sauber umbrechen statt zu quetschen. */
.price-row{flex-wrap:wrap;gap:12px;}
.btn svg{width:15px;height:15px;transition:.3s;}
.btn:hover svg{transform:translateX(3px);}

/* ---------- hero ---------- */
.hero{position:relative;background:radial-gradient(120% 100% at 50% -10%,#2a2118 0%,var(--ink) 45%,var(--ink-2) 100%);color:var(--ivory);padding:190px 0 130px;overflow:hidden;}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(247,242,231,.06) 1px,transparent 1.4px);background-size:26px 26px;opacity:.5;pointer-events:none;}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;}
.hero h1{font-size:clamp(40px,5.6vw,68px);line-height:1.05;color:var(--ivory);margin:20px 0 26px;letter-spacing:.2px;}
.hero h1 em{font-style:italic;color:var(--gold-light);}
.hero p.lead{font-size:18px;color:#d8cdb8;max-width:460px;margin-bottom:38px;}
.hero .ctas{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:36px;}
.hero .subline{font-family:var(--mono);font-size:12px;letter-spacing:1.5px;color:var(--muted);display:flex;align-items:center;gap:10px;}
.hero .subline svg{width:14px;height:14px;color:var(--gold-light);}

.medallion-stage{position:relative;display:flex;align-items:center;justify-content:center;height:460px;}
.medallion-stage svg.rays{position:absolute;width:120%;height:120%;max-width:600px;animation:spin 60s linear infinite;}
.medallion-stage svg.coin-hero{position:relative;width:min(300px,78vw);height:min(300px,78vw);filter:drop-shadow(0 30px 50px rgba(0,0,0,.5));}
@keyframes spin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion: reduce){.medallion-stage svg.rays{animation:none;}}

/* ---------- trust bar ---------- */
.trustbar{background:var(--ivory-2);border-bottom:1px solid var(--line);padding:34px 0;}
#highlights,#testimonials{background:var(--ivory-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.trustbar .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.trust-item{display:flex;align-items:center;gap:14px;}
.trust-item>div:last-child{min-width:0;}
.trust-item .ic{width:42px;height:42px;border-radius:50%;background:var(--ivory);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0;}
.trust-item .ic svg{width:20px;height:20px;}
.trust-item b{display:block;font-size:14.5px;font-family:var(--sans);font-weight:600;}
.trust-item span{font-size:12.5px;color:var(--muted);}

/* ---------- section shell ---------- */
section.block{padding:104px 0;}
section.block.tight{padding:88px 0;}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:56px;flex-wrap:wrap;}
.sec-head h2{font-size:clamp(28px,3.4vw,42px);margin-top:14px;}
.sec-head p.sub{color:var(--muted);max-width:440px;font-size:15px;margin-top:14px;}
.sec-link{font-family:var(--mono);font-size:12.5px;letter-spacing:1px;color:var(--gold);text-decoration:none;display:flex;align-items:center;gap:8px;white-space:nowrap;padding-bottom:6px;border-bottom:1px solid transparent;}
.sec-link:hover{border-color:var(--gold);}
.sec-link svg{width:13px;height:13px;}

/* ---------- product grid ---------- */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;}
.card{background:var(--ivory-2);border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:.4s cubic-bezier(.2,.7,.2,1);position:relative;}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold-light);}
.card-media{position:relative;aspect-ratio:1/1;min-height:230px;display:flex;align-items:center;justify-content:center;background:var(--ivory-2);overflow:hidden;}
.card-media svg.coin{width:64%;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.card-media svg.note-svg{width:82%;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.card:hover .card-media svg{transform:scale(1.08) rotate(-4deg);}
.card-media::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);transition:.7s;}
.card:hover .card-media::after{left:130%;}
.card-media-back{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .4s ease;}
.card:hover .card-media-back{opacity:1;}
.tag{position:absolute;top:12px;left:12px;background:var(--ink);color:var(--gold-light);font-family:var(--mono);font-size:10px;letter-spacing:1px;padding:5px 10px;border-radius:20px;z-index:2;}
.card-body{padding:12px 20px 20px;}
.card-body .country{font-family:var(--mono);font-size:12.5px;letter-spacing:1.5px;color:var(--gold);text-transform:uppercase;margin-bottom:8px;display:block;}
.card-body h3{font-size:21px;line-height:1.3;margin-bottom:6px;}
.card-body .catalog{font-family:var(--mono);font-size:13px;color:var(--muted);margin-bottom:14px;display:block;}
.card-foot{display:flex;align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid var(--line);}
.price{font-family:var(--mono);font-size:21px;font-weight:700;color:var(--ink);}
.price del{color:var(--muted);font-weight:400;opacity:.7;text-decoration:line-through;margin-right:8px;}
.price ins{color:#b03a2e;font-weight:700;text-decoration:none;}
.addbtn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--ivory);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.3s;color:var(--ink);}
.addbtn:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.addbtn:disabled{opacity:.5;cursor:default;pointer-events:none;}
.addbtn svg{width:16px;height:16px;}

/* ---------- countries ---------- */
.countries-band{background:var(--ink);color:var(--ivory);padding:104px 0;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
/* Pyramide: fuenf Kacheln als 3 + 2, die unteren beiden mittig darunter.
   Trick: sechs Spalten statt drei, jede Kachel belegt zwei davon. Die ersten drei fuellen
   die obere Reihe genau aus; die vierte startet eine Spalte weiter innen, die fuenfte
   schliesst an — beide sitzen damit mittig, ohne feste Breiten oder Randabstaende.

   Die Regel greift nur bei GENAU fuenf Kacheln (:nth-last-child(2) prueft das). Kaeme ein
   Sammlungsbereich dazu oder fiele einer weg, ordnet sich das Raster wieder normal an,
   statt schief zu stehen. */
.grid-pyramide{grid-template-columns:repeat(6,1fr);}
.grid-pyramide > *{grid-column:span 2;}
.grid-pyramide > *:nth-child(4):nth-last-child(2){grid-column:2 / span 2;}
.ctile{position:relative;border-radius:6px;overflow:hidden;display:flex;flex-direction:column;background:var(--ivory-2);border:1px solid rgba(247,242,231,.14);cursor:pointer;transition:.3s;}
.ctile:hover{border-color:var(--gold-light);transform:translateY(-3px);box-shadow:0 20px 40px -20px rgba(0,0,0,.4);}
.ctile .flag-frame{width:100%;aspect-ratio:3/2;background:var(--ivory-2);display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;overflow:hidden;}
.ctile .flag-frame img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.ctile .flag-frame.no-image{background:linear-gradient(135deg,#2a2118,#1c1712);}
.ctile .tcontent{position:relative;z-index:2;padding:16px 18px 20px;text-align:center;border-top:1px solid rgba(0,0,0,.06);width:100%;}
.ctile h3{font-family:var(--serif-sc);font-size:20px;color:var(--ink);letter-spacing:1px;}
.ctile span{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:1px;}
.flag-de::before{background:linear-gradient(180deg,#1a1a1a 33%,#a6272d 33%,#a6272d 66%,#c9a534 66%);}
.flag-fr::before{background:linear-gradient(90deg,#223a70 33%,#eee 33%,#eee 66%,#a6272d 66%);}
.flag-it::before{background:linear-gradient(90deg,#2f5c46 33%,#eee 33%,#eee 66%,#a6272d 66%);}
.flag-at::before{background:linear-gradient(180deg,#a6272d 33%,#eee 33%,#eee 66%,#a6272d 66%);}
.flag-es::before{background:linear-gradient(180deg,#a6272d 25%,#e7be5a 25%,#e7be5a 75%,#a6272d 75%);}
.flag-nl::before{background:linear-gradient(180deg,#a6272d 33%,#eee 33%,#eee 66%,#223a70 66%);}

/* ---------- sachverstaendige ---------- */
.expert{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center;}
.expert-frame{position:relative;display:flex;align-items:center;justify-content:center;}
.expert-frame svg.rays{position:absolute;width:135%;animation:spin 90s linear infinite;opacity:.8;}
@media (prefers-reduced-motion: reduce){.expert-frame svg.rays{animation:none;}}
.expert-frame svg.coin-big{width:78%;filter:drop-shadow(0 24px 40px rgba(28,23,18,.25));}
.expert-badges{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 30px;}
.badge{display:flex;align-items:center;gap:8px;background:var(--ivory-2);border:1px solid var(--line);padding:9px 14px;border-radius:30px;font-size:12.5px;color:var(--ink);}
.badge svg{width:14px;height:14px;color:var(--gold);}
.expert h2{font-size:clamp(26px,3vw,36px);margin-bottom:18px;}
.expert p{color:#4a4136;font-size:16px;max-width:540px;margin-bottom:16px;}
.expert p.quote{font-family:var(--serif);font-style:italic;font-size:21px;color:var(--ink);border-left:2px solid var(--gold);padding-left:20px;margin:26px 0;}

/* ---------- why us dark ---------- */
.whyus{background:var(--ink-2);color:var(--ivory);padding:104px 0;}
.grid-4-why{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:56px;}
.why-item .ic{width:52px;height:52px;border-radius:50%;border:1px solid rgba(201,162,92,.4);display:flex;align-items:center;justify-content:center;color:var(--gold-light);margin-bottom:22px;}
.why-item .ic svg{width:23px;height:23px;}
.why-item h3{color:var(--ivory);font-size:19px;margin-bottom:10px;}
.why-item p{color:#a89a80;font-size:14.5px;}

/* ---------- faq ---------- */
.faq-list{max-width:820px;margin:0 auto;}
details.faq-item{border-bottom:1px solid var(--line);padding:22px 0;}
details.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:18.5px;font-family:var(--serif);font-weight:600;color:var(--ink);}
details.faq-item summary::-webkit-details-marker{display:none;}
details.faq-item summary .plus{width:26px;height:26px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;margin-left:20px;}
details.faq-item summary .plus::before,details.faq-item summary .plus::after{content:"";position:absolute;background:var(--gold);transition:.3s;}
details.faq-item summary .plus::before{width:10px;height:1.4px;}
details.faq-item summary .plus::after{width:1.4px;height:10px;}
details.faq-item[open] summary .plus::after{transform:rotate(90deg);opacity:0;}
details.faq-item .faq-a{padding:16px 46px 0 0;color:#524a3d;font-size:15px;max-width:680px;}
details.faq-item .faq-a p{margin:0 0 10px;}
details.faq-item .faq-a ul{margin:0 0 14px;padding-left:20px;}
details.faq-item .faq-a li{margin-bottom:4px;}

/* ---------- newsletter ---------- */
.newsletter{background:linear-gradient(120deg,#8a6530,var(--gold) 45%,var(--gold-light));padding:70px 0;color:#241a0d;}
.newsletter .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.newsletter h2{color:#241a0d;font-size:28px;max-width:420px;}
.newsletter p{color:#3d2c14;margin-top:8px;font-size:14.5px;}
.nform{display:flex;gap:10px;flex-wrap:wrap;}
.nform input{padding:15px 18px;border-radius:2px;border:1px solid rgba(36,26,13,.3);min-width:260px;font-family:var(--sans);font-size:14px;background:rgba(255,255,255,.55);}
.nform input::placeholder{color:#5a4526;}
.nform button{background:var(--ink);color:var(--ivory);border:none;padding:15px 26px;font-family:var(--sans);font-weight:600;font-size:14.5px;border-radius:2px;cursor:pointer;transition:.3s;}
.nform button:hover{background:var(--ink-2);}

/* ---------- footer ---------- */
footer{background:var(--ink-2);color:#b7ac95;padding:80px 0 30px;}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:32px;padding-bottom:56px;border-bottom:1px solid rgba(247,242,231,.1);}
.foot-brand .logo b{color:var(--ivory);}
.foot-brand p{margin-top:16px;font-size:13.5px;color:#8a7f68;max-width:280px;}
.foot-col h4{font-family:var(--mono);font-size:11.5px;letter-spacing:2px;color:var(--gold-light);text-transform:uppercase;margin-bottom:18px;}
.foot-col a{display:block;color:#b7ac95;text-decoration:none;font-size:14px;margin-bottom:12px;transition:.25s;}
.foot-col a:hover{color:var(--gold-light);padding-left:4px;}
.partner-logos{display:flex;flex-direction:column;align-items:flex-start;gap:18px;}
.partner-logo{display:flex;align-items:center;opacity:.82;transition:.3s;}
.partner-logo:hover{opacity:1;}
.partner-logo img{max-height:32px;max-width:140px;width:auto;height:auto;display:block;filter:brightness(0) invert(1);}
.partner-logo-text{font-family:var(--serif-sc);font-size:15px;letter-spacing:.3px;color:#fff;}
.partner-logo:hover .partner-logo-text{color:var(--gold-light);}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;flex-wrap:wrap;gap:14px;}
.foot-bottom span{font-size:12.5px;color:#786c56;}
.soc{display:flex;gap:10px;}
.soc a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(247,242,231,.16);display:flex;align-items:center;justify-content:center;color:#b7ac95;text-decoration:none;transition:.3s;}
.soc a:hover{border-color:var(--gold-light);color:var(--gold-light);}
.soc svg{width:15px;height:15px;}

/* ---------- reveal (progressive enhancement: hidden only once JS confirms it can animate) ---------- */
.reveal{opacity:1;}
html.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
html.js .reveal.in-view{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){html.js .reveal{opacity:1;transform:none;transition:none;}}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .hero{padding:150px 0 60px;}
  .hero .wrap{grid-template-columns:1fr;}
  .medallion-stage{height:300px;order:-1;margin-bottom:10px;}
  .grid-4,.grid-4-why,.grid-5{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(2,1fr);}
  /* Ab hier kein Platz mehr fuer die Pyramide: normales Raster, Kacheln wieder einspaltig. */
  .grid-pyramide{grid-template-columns:repeat(2,1fr);}
  .grid-pyramide > *,
  .grid-pyramide > *:nth-child(4):nth-last-child(2){grid-column:auto;}
  .expert{grid-template-columns:1fr;}
  .expert-frame{height:280px;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  nav.mainnav{display:none;}
  .burger{display:flex;}
  .searchbox{min-width:120px;}
  .land-banner{min-height:320px;}
}
@media(max-width:640px){
  .hero{padding:120px 0 50px;}
  .trustbar .wrap{grid-template-columns:1fr 1fr;}
  .grid-4,.grid-4-why,.grid-3,.grid-5{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .sec-head{align-items:flex-start;}
  header .wrap{gap:10px;}
  .searchbox{display:none;}
  .land-banner{min-height:220px;padding:36px 24px;}
  .land-banner.fa-hero-slider{aspect-ratio:1654/910;min-height:0;height:auto;padding:16px 18px;}
  /* Preis linksbündig, Warenkorb-Button daneben statt darunter.
     text-align wird ausdrücklich gesetzt, weil das WooCommerce-Stylesheet den Preis
     auf schmalen Ansichten zentriert — unser eigenes CSS tut das nirgends. */
  .price-row{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;text-align:left;gap:12px;padding:18px 0;}
  .price-row .price{font-size:24px;text-align:left;flex:0 0 auto;}
  .fa-addtocart{width:auto;flex:1 1 auto;}
  .fa-addtocart .cart{width:auto;flex-wrap:nowrap;gap:8px;}
  .fa-addtocart .quantity .qty{width:44px;}
  .fa-addtocart button.single_add_to_cart_button{padding:13px 18px;font-size:13.5px;flex:1 1 auto;box-shadow:none;}
  /* Reicht die Breite nicht (langer Preis, langer Button-Text), rutscht der Warenkorb
     in die nächste Zeile — bleibt dort aber linksbündig statt zentriert. */
  .fa-addtocart p.stock{width:100%;}
}
@media(max-width:420px){
  .logo span{display:none;}
}

/* ---------- Kasse ----------
   1) Kontaktinformationen (E-Mail) unter die Lieferadresse.

   Der erste Versuch griff nicht, weil die Reihenfolge am falschen Element gesetzt war:
   Die Abschnitte liegen nicht im "fields-block", sondern direkt im Formular der Kasse.
   Deshalb jetzt beide moeglichen Elternelemente, und die Abschnitte ueber ZWEI Klassennamen
   angesprochen — WooCommerce vergibt sowohl "wp-block-woocommerce-*" als auch
   "wc-block-checkout__*". Faellt eine Schreibweise bei einem Update weg, traegt die andere.

   Umgesetzt ueber die Reihenfolge im Layout, nicht ueber den Aufbau: Die Bloecke liefert
   WooCommerce selbst, ein Eingriff in ihren Aufbau wuerde bei jedem Update brechen.

   WAS NICHT GEHT: Die E-Mail laesst sich nicht ZWISCHEN Telefon und die Ankreuzbox schieben.
   "Kontaktinformationen" ist ein eigener Abschnitt mit eigener Ueberschrift; verschoben wird
   immer der ganze Abschnitt, nie ein einzelnes Feld daraus. */
.wc-block-checkout__form,
.wp-block-woocommerce-checkout-fields-block{display:flex;flex-direction:column;}

.wp-block-woocommerce-checkout-express-payment-block,
.wc-block-checkout__express-payment{order:1;}

.wp-block-woocommerce-checkout-shipping-address-block,
.wc-block-checkout__shipping-fields,
.wp-block-woocommerce-checkout-billing-address-block,
.wc-block-checkout__billing-fields{order:2;}

.wp-block-woocommerce-checkout-contact-information-block,
.wc-block-checkout__contact-fields{order:3;}

.wp-block-woocommerce-checkout-shipping-method-block,
.wc-block-checkout__shipping-option,
.wp-block-woocommerce-checkout-pickup-options-block{order:4;}

.wp-block-woocommerce-checkout-payment-block,
.wc-block-checkout__payment-method{order:5;}

.wp-block-woocommerce-checkout-additional-information-block,
.wp-block-woocommerce-checkout-order-note-block,
.wc-block-checkout__add-note{order:6;}

.wp-block-woocommerce-checkout-terms-block,
.wc-block-checkout__terms{order:7;}

.wp-block-woocommerce-checkout-actions-block,
.wc-block-checkout__actions{order:8;}

/* 2) Auswahl-Tor ueber der Kasse: anmelden, registrieren oder als Gast.
   WooCommerce bietet die Wahl erst weiter unten an der E-Mail-Adresse an — zu spaet und zu
   unauffaellig. Das Tor steht deshalb VOR der Kasse und laesst sie erst frei, wenn gewaehlt
   wurde.

   WICHTIG zum Ausfallverhalten: Die Kasse wird per JavaScript verborgen, NICHT per
   Formatierung. Faellt JavaScript aus, ist die Kasse ganz normal bedienbar und lediglich das
   Tor steht darueber. Andersherum waere der Shop bei einem Skriptfehler unbenutzbar. */
.fa-kasse-tor{border:1px solid var(--line);border-radius:6px;background:var(--ivory-2);
  padding:28px 30px;margin:0 0 30px;}
.fa-kasse-tor h3{font-family:var(--serif);font-size:22px;margin:0 0 6px;}
.fa-kasse-tor .fa-tor-sub{font-size:14px;color:var(--muted);margin:0 0 22px;}
.fa-kasse-tor-optionen{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.fa-tor-option{display:flex;flex-direction:column;gap:6px;text-align:left;padding:18px 20px;
  border:1px solid var(--line);border-radius:4px;background:var(--ivory);cursor:pointer;
  font-family:inherit;transition:.25s;text-decoration:none;color:inherit;}
.fa-tor-option:hover{border-color:var(--gold);transform:translateY(-2px);
  box-shadow:0 10px 26px -18px rgba(20,15,8,.5);}
.fa-tor-option b{font-family:var(--sans);font-size:15px;font-weight:600;}
.fa-tor-option span{font-size:12.5px;color:var(--muted);line-height:1.45;}
.fa-tor-option-haupt{border-color:var(--gold);background:#fff;}
/* Kasse verborgen, solange nicht gewaehlt wurde. Die Klasse setzt ausschliesslich das
   Skript — siehe Begruendung oben. */
body.fa-kasse-gesperrt .wp-block-woocommerce-checkout{display:none;}
@media(max-width:760px){
  .fa-kasse-tor{padding:20px 18px;}
  .fa-kasse-tor-optionen{grid-template-columns:1fr;}
}

/* ---------- Widerrufsbelehrung ----------
   Das Muster-Formular ist ein amtliches Formular zum Ausdrucken und Ausfuellen. Die leeren
   Zeilen sind deshalb echte Schreiblinien und keine Absaetze — auf Papier muss man dort
   etwas eintragen koennen. */
.fa-widerruf-anschrift{background:var(--ivory-2);border-left:2px solid var(--gold);
  padding:14px 18px;margin:14px 0;line-height:1.7;}
.fa-widerruf-trenner{border:0;border-top:1px solid var(--line);margin:46px 0 38px;}
.fa-widerruf-formular{border:1px solid var(--line);border-radius:6px;padding:26px 28px;margin-top:22px;}
.fa-widerruf-linie{border-bottom:1px solid var(--line);height:34px;margin:0 0 4px;}
.fa-widerruf-feldname{font-family:var(--mono);font-size:11.5px;letter-spacing:.5px;
  color:var(--muted);margin:0 0 22px;}
.fa-widerruf-fussnote{font-size:13px;color:var(--muted);margin-top:26px;}
@media(max-width:640px){.fa-widerruf-formular{padding:18px 16px;}}

/* ---------- marquee ticker ---------- */
.marquee{background:var(--ink-2);border-top:1px solid rgba(247,242,231,.08);border-bottom:1px solid rgba(247,242,231,.08);overflow:hidden;padding:14px 0;white-space:nowrap;}
.marquee-track{display:inline-flex;gap:48px;animation:marquee 32s linear infinite;padding-left:48px;}
.marquee span{font-family:var(--mono);font-size:12.5px;letter-spacing:2px;color:var(--gold-light);display:inline-flex;align-items:center;gap:14px;}
.marquee span::after{content:"\2726";color:var(--muted);margin-left:14px;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.marquee-track{animation:none;}}

/* clickable card/tile resets */
a.card,a.ctile{text-decoration:none;color:inherit;display:block;}

/* ---------- Unterkategorie-Kacheln (Antike-Perioden / Zubehör-Kategorien) ---------- */
.subcat-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin:26px 0 10px;}
@media(max-width:640px){.subcat-tiles-land{grid-template-columns:repeat(2,1fr);gap:10px;}}
/* Kontinente + Testbanknoten: immer 7 Kacheln in einer Reihe (nicht 2 Reihen, da 7
   ungerade ist und ein Umbruch unsymmetrisch aussehen würde). */
.subcat-tiles-kontinente{grid-template-columns:repeat(7,1fr);}
@media(max-width:900px){.subcat-tiles-kontinente{grid-template-columns:repeat(4,1fr);gap:10px;}}
@media(max-width:640px){.subcat-tiles-kontinente{grid-template-columns:repeat(2,1fr);gap:10px;}}
/* Übersichtsseiten Antike/Kunst: wenige, dafür große Bildkacheln — drei je Reihe, bei sechs
   Kategorien also 2x3. Das Foto füllt die ganze Kachel (Hintergrundbild, nicht das kleine
   Flaggen-Bildchen), der Verlauf beginnt erst auf halber Höhe, damit oben möglichst viel
   vom Motiv sichtbar bleibt und der Name unten trotzdem lesbar ist.
   Hinter .subcat-tiles einsortiert, weil beide Klassen gleich stark wiegen und sonst die
   automatische Spaltenbreite der Grundregel gewinnen würde. */
.subcat-tiles-gross{grid-template-columns:repeat(3,1fr);gap:22px;}
.subcat-tiles-gross .subcat-tile{min-height:320px;padding:24px 26px;}
.subcat-tiles-gross .subcat-tile::before{background:linear-gradient(180deg,rgba(18,14,10,0) 45%,rgba(18,14,10,.55) 72%,rgba(18,14,10,.88) 100%);}
.subcat-tiles-gross .subcat-tile-name{font-size:20px;}
.subcat-tiles-gross .subcat-tile-count{font-size:11px;}
@media(max-width:900px){.subcat-tiles-gross{grid-template-columns:repeat(2,1fr);gap:16px;}.subcat-tiles-gross .subcat-tile{min-height:260px;}}
@media(max-width:640px){.subcat-tiles-gross{grid-template-columns:1fr;}.subcat-tiles-gross .subcat-tile{min-height:220px;}.subcat-tiles-gross .subcat-tile-name{font-size:19px;}}
.subcat-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:130px;border-radius:6px;overflow:hidden;background-color:var(--ink);background-position:center;background-size:cover;padding:16px 18px;text-decoration:none;color:var(--ivory);border:1px solid var(--line);transition:.3s;isolation:isolate;}
.subcat-tile::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,14,10,.1),rgba(18,14,10,.85));z-index:-1;}
.subcat-tile:hover{transform:translateY(-3px);border-color:var(--gold-light);box-shadow:0 20px 40px -20px rgba(0,0,0,.4);}
.subcat-tile-name{font-family:var(--serif-sc);font-size:16.5px;letter-spacing:.5px;}
.subcat-tile-count{font-family:var(--mono);font-size:10.5px;color:var(--gold-light);margin-top:5px;letter-spacing:.5px;}
.fa-back-link{display:inline-block;margin-top:18px;font-family:var(--mono);font-size:12px;color:var(--muted);text-decoration:none;}
.fa-back-link:hover{color:var(--gold);}

/* Länder-Kacheln mit echter Flagge (Banknoten-Kontinent/Land-Navigation) */
.fa-flag-tile{background-color:var(--ivory) !important;background-image:none !important;align-items:center;justify-content:center;text-align:center;color:var(--ink);gap:8px;padding:22px 14px;}
.fa-flag-tile::before{display:none;}
.fa-flag-tile:hover{border-color:var(--gold);}
.fa-flag-tile-img{width:56px;height:auto;border-radius:3px;border:1px solid var(--line);box-shadow:0 4px 10px -4px rgba(0,0,0,.25);}
.fa-flag-tile .subcat-tile-name{color:var(--ink);}
.fa-flag-tile .subcat-tile-count{color:var(--gold);}

/* ---------- breadcrumb ---------- */
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--muted);padding:110px 0 0;}
.crumb a{color:var(--muted);text-decoration:none;}
.crumb a:hover{color:var(--gold);}
.crumb .sep{opacity:.5;}
.crumb .current{color:var(--ink);}

/* ---------- shop layout ---------- */
.land-banner{position:relative;width:100%;max-width:100%;border-radius:6px;overflow:hidden;padding:70px 44px;margin:22px 0 44px;isolation:isolate;color:#fff;min-height:420px;display:flex;flex-direction:column;justify-content:flex-end;box-sizing:border-box;}
.land-banner::before{content:"";position:absolute;inset:0;opacity:.5;z-index:-2;}
.land-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,14,10,.15),rgba(18,14,10,.88));z-index:-1;}
.land-banner h1{font-size:clamp(30px,4vw,46px);color:#fff;}
.land-banner p{color:#d8cdb8;margin-top:8px;max-width:520px;font-size:15px;}
@media(min-width:641px){.land-banner.fa-hero-slider{width:764px;max-width:100%;margin-left:0;margin-right:auto;aspect-ratio:1654/910;min-height:0;}}
.fa-hero-slides{position:absolute;inset:0;z-index:-3;}
.fa-hero-slide{position:absolute;inset:0;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:var(--ink);opacity:0;transition:opacity .6s ease;}
.fa-hero-slide.active{opacity:1;}
.fa-hero-credit{display:block;margin-top:10px;font-size:11.5px;color:#a89a80;}
.fa-news-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px;}
.fa-news-tile{border-radius:6px;overflow:hidden;border:1px solid var(--line);aspect-ratio:3/2;background:var(--ivory-2);transition:.3s;}
.fa-news-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.fa-news-tile img{width:100%;height:100%;object-fit:contain;display:block;}
.fa-news-credit{margin-top:14px;font-size:12px;color:var(--muted);}
@media(max-width:760px){.fa-news-grid{grid-template-columns:repeat(2,1fr);}}

.shop-layout{display:grid;grid-template-columns:250px 1fr;gap:40px;align-items:start;margin-top:10px;}
.filter-panel{background:var(--ivory-2);border:1px solid var(--line);border-radius:6px;padding:26px 22px;position:sticky;top:110px;}
.filter-panel h4{font-family:var(--serif);font-size:18px;margin-bottom:18px;}
.filter-group{border-top:1px solid var(--line);padding:16px 0;}
.filter-group:first-of-type{border-top:none;padding-top:0;}
.fa-continent-block{margin-bottom:6px;}
.fa-continent-block .filter-row{font-weight:600;color:var(--ink);}
.filter-subgroup{margin:2px 0 10px 25px;}
.filter-subgroup summary{cursor:pointer;font-family:var(--sans);font-size:11.5px;color:var(--muted);list-style:none;margin-bottom:4px;display:flex;justify-content:space-between;align-items:center;}
.filter-subgroup summary::-webkit-details-marker{display:none;}
.filter-subgroup .filter-row{font-size:13px;padding:4px 0;}
.filter-group summary{cursor:pointer;font-family:var(--mono);font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);list-style:none;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.filter-group summary::-webkit-details-marker{display:none;}
.filter-row{display:flex;align-items:center;gap:10px;font-size:13.5px;color:#4a4136;padding:6px 0;cursor:pointer;}
.filter-row input{accent-color:var(--gold);width:15px;height:15px;cursor:pointer;}
.filter-row-text{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);padding:8px 0 4px;}
.filter-row-text input{display:block;width:100%;margin-top:6px;padding:9px 12px;border:1px solid var(--line);border-radius:2px;background:var(--ivory);font-family:var(--sans);font-size:13.5px;text-transform:none;letter-spacing:normal;color:var(--ink);}
.filter-row-text input:focus{outline:none;border-color:var(--gold);}
.price-slider{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.price-slider input[type=range]{accent-color:var(--gold);width:100%;}
.price-slider .pv{font-family:var(--mono);font-size:12px;color:var(--muted);display:flex;justify-content:space-between;}
.filter-reset{margin-top:18px;font-family:var(--mono);font-size:11.5px;color:var(--muted);text-decoration:underline;cursor:pointer;background:none;border:none;padding:0;}

.shop-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:14px;}
.result-count{font-size:14px;color:var(--muted);}
.result-count b{color:var(--ink);}
.sortsel{font-family:var(--sans);font-size:13.5px;padding:10px 16px;border:1px solid var(--line);border-radius:2px;background:var(--ivory-2);color:var(--ink);cursor:pointer;}
.filter-toggle{display:none;align-items:center;gap:8px;font-family:var(--sans);font-size:13.5px;font-weight:600;padding:10px 18px;border:1px solid var(--line);border-radius:2px;background:var(--ivory-2);color:var(--ink);cursor:pointer;}
.filter-toggle svg{width:15px;height:15px;color:var(--gold);}
.filter-toggle.active{border-color:var(--gold);color:var(--gold);}
.pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:56px;}
.pagination .page-numbers{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--ivory-2);cursor:pointer;font-family:var(--mono);font-size:13px;color:var(--ink);display:flex;align-items:center;justify-content:center;text-decoration:none;flex-shrink:0;}
.pagination .page-numbers.current{background:var(--ink);color:var(--ivory);border-color:var(--ink);}
.pagination .page-numbers.dots{border:none;background:none;width:auto;}
.no-results{padding:60px 20px;text-align:center;color:var(--muted);font-size:15px;display:none;}

/* ---------- product detail page ---------- */
.product-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;margin-top:26px;}
.gallery-main{background:var(--ivory-2);border-radius:6px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;margin-bottom:16px;position:relative;overflow:hidden;cursor:zoom-in;}
.zoom-btn{position:absolute;bottom:16px;right:16px;width:44px;height:44px;border-radius:50%;background:rgba(251,248,241,.92);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);transition:.25s;z-index:3;}
.zoom-btn:hover{background:var(--gold);color:#fff;border-color:var(--gold);}
.zoom-btn svg{width:19px;height:19px;}
.fa-lightbox{position:fixed;inset:0;background:rgba(10,8,5,.92);z-index:400;display:none;align-items:center;justify-content:center;padding:40px;cursor:zoom-out;}
.fa-lightbox.open{display:flex;}
.fa-lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.5);}
.fa-lightbox-close{position:absolute;top:26px;right:26px;background:rgba(247,242,231,.1);border:1px solid rgba(247,242,231,.3);color:var(--ivory);width:42px;height:42px;border-radius:50%;font-size:18px;cursor:pointer;z-index:2;}
.fa-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(247,242,231,.1);border:1px solid rgba(247,242,231,.3);color:var(--ivory);width:48px;height:48px;border-radius:50%;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;transition:.25s;}
.fa-lightbox-nav:hover{background:rgba(247,242,231,.22);border-color:rgba(247,242,231,.5);}
.fa-lightbox-nav svg{width:22px;height:22px;}
.fa-lightbox-prev{left:20px;}
.fa-lightbox-prev svg{transform:rotate(180deg);}
.fa-lightbox-next{right:20px;}
@media(max-width:640px){.fa-lightbox-nav{width:40px;height:40px;}.fa-lightbox-prev{left:8px;}.fa-lightbox-next{right:8px;}}
.gallery-main svg{width:56%;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.gallery-main.note svg{width:78%;}
.gallery-thumbs{display:flex;gap:12px;}
.gthumb{width:74px;height:74px;border-radius:4px;border:1.5px solid var(--line);background:var(--ivory-2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.25s;}
.gthumb.active{border-color:var(--gold);}
.gthumb svg{width:60%;}
.pinfo .country{font-family:var(--mono);font-size:11.5px;letter-spacing:2px;color:var(--gold);text-transform:uppercase;}
.pinfo h1{font-size:clamp(26px,3vw,36px);margin:12px 0 14px;}
.pinfo .catalog-line{font-family:var(--mono);font-size:15.5px;color:var(--muted);margin-bottom:22px;display:block;}
/* Artikelnummer: eine Stufe kleiner und blasser als die Katalogzeile — soll erkennbar,
   aber nicht auffällig sein. Folgt sie direkt auf die Katalogzeile, rückt diese enger
   heran, damit beide als eine zusammengehörige Zeilengruppe wirken. */
.pinfo .fa-artnr{font-family:var(--mono);font-size:11px;letter-spacing:.4px;color:var(--muted);opacity:.7;display:block;margin-bottom:22px;}
/* Seriennummer steht zwischen Katalogzeile und Artikelnummer. Sie ist eine echte Eigenschaft
   des Stücks — deshalb eine Stufe größer und kräftiger als die interne Artikelnummer, aber
   klar unter der Katalogzeile. */
/* Fett und in der Textfarbe, nicht im gedämpften Grau: Die Seriennummer bezeichnet genau
   dieses eine Stück und soll sich deutlich vom erklärenden Satz darunter abheben. */
.pinfo .fa-seriennr{font-family:var(--mono);font-size:12.5px;letter-spacing:.6px;font-weight:700;
  color:var(--ink);display:block;margin-bottom:22px;}
/* Einschränkung direkt unter der Nummer: gleiche Schrift und Größe, damit beide als eine
   Angabe zusammengehören — aber normal statt fett und im gedämpften Grau. Die Nummer ist
   die Aussage, dieser Satz nur ihre Einschränkung. */
.pinfo .fa-seriennr-hinweis{display:block;font-family:var(--mono);font-size:12.5px;letter-spacing:.6px;
  color:var(--muted);line-height:1.5;max-width:52ch;margin-top:4px;margin-bottom:22px;}
/* Nummer und Hinweis rücken zu einer Gruppe zusammen; der Abstand nach unten sitzt am Hinweis. */
.pinfo .fa-seriennr:has(+ .fa-seriennr-hinweis){margin-bottom:0;}
.pinfo .fa-seriennr-hinweis:has(+ .fa-artnr){margin-bottom:5px;}
.pinfo .catalog-line:has(+ .fa-artnr),
.pinfo .catalog-line:has(+ .fa-seriennr),
.pinfo .fa-seriennr:has(+ .fa-artnr){margin-bottom:5px;}
.eckdaten-block{background:var(--ivory-2);border:1px solid var(--line);border-radius:6px;padding:24px 26px 8px;margin:22px 0;}
.eckdaten-head{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.spec-table{width:100%;border-collapse:collapse;}
.spec-table tr{border-bottom:1px solid var(--line);}
.spec-table tr:last-child{border-bottom:none;}
.spec-table td{padding:11px 0;font-size:14px;}
.spec-table td:first-child{color:var(--muted);width:40%;}
.spec-table td:last-child{font-family:var(--mono);color:var(--ink);}
.price-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:22px 0;}
.price-row .price{font-size:30px;}
/* Bestandhinweis unter dem Preisblock.
   Der Rand oben war bis zum 31.08.2026 -14px. Das stimmte, solange die Zeile unmittelbar
   unter .price-row stand und dessen Abstand von 22px ausgleichen musste. Seit dem
   Steuerhinweis (§6 PAngV) dazwischen sitzt, zog derselbe negative Rand die Zeile ueber
   den Steuerhinweis — zwei Texte uebereinander. Kein negativer Rand mehr. */
/* Wird seit dem 31.08.2026 nicht mehr ausgegeben (WooCommerce zeigt den Bestand schon
   neben der Mengenauswahl). Die Regel bleibt, damit die Zeile beim Zurueckholen nicht
   unformatiert dasteht. */
.fa-stock-hint{font-size:12.5px;color:var(--verd);margin:6px 0 18px;}
.qty-buy{display:flex;gap:14px;align-items:stretch;}
.qty-box{display:flex;align-items:center;border:1px solid var(--line);border-radius:2px;}
.qty-box button{width:38px;background:none;border:none;font-size:17px;cursor:pointer;color:var(--ink);}
.qty-box span{width:34px;text-align:center;font-family:var(--mono);}
.trust-strip{display:flex;align-items:center;gap:12px;background:var(--ivory-2);border:1px solid var(--line);border-radius:4px;padding:14px 18px;margin:18px 0;font-size:13px;color:#4a4136;}
.trust-strip svg{width:20px;height:20px;color:var(--gold);flex-shrink:0;}
.desc-tabs{margin-top:20px;}
.tab-head{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--line);}
.tab-head button{background:none;border:none;padding:12px 22px 14px;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;}
.tab-head button.active{color:var(--ink);border-color:var(--gold);}
.tab-panel{display:none;padding:22px 2px;color:#4a4136;font-size:14.5px;line-height:1.7;}
.tab-panel.active{display:block;}
.tab-panel .layman{margin-bottom:14px;}
.tab-panel .tech{font-family:var(--mono);font-size:12.5px;color:var(--muted);background:var(--ivory-2);padding:14px 16px;border-radius:4px;}
.fa-shipping-rates{list-style:none;margin:14px 0;padding:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;}
.fa-shipping-rates li{display:flex;justify-content:space-between;gap:16px;padding:10px 16px;font-size:13.5px;}
.fa-shipping-rates li:not(:last-child){border-bottom:1px solid var(--line);}
.fa-shipping-rates li span:first-child{font-weight:600;color:var(--ink);}
.fa-shipping-rates li span:last-child{color:#4a4136;text-align:right;}
.fa-shipping-note{font-size:13px;color:var(--muted);margin:10px 0;}
.fa-image-caption{font-size:12.5px;color:var(--muted);line-height:1.5;margin:10px 2px 0;font-style:italic;}
/* ---------- Bestaetigungsfenster "Zum Warenkorb hinzugefuegt" ---------- */
.fa-cart-dialog{position:fixed;inset:0;z-index:400;display:flex;align-items:center;
  justify-content:center;padding:20px;background:rgba(20,15,8,.55);
  opacity:0;pointer-events:none;transition:opacity .25s;}
.fa-cart-dialog.open{opacity:1;pointer-events:auto;}
.fa-cart-dialog[hidden]{display:none;}
.fa-cart-dialog-box{position:relative;background:var(--ivory);border:1px solid var(--line);
  border-radius:8px;padding:38px 40px 32px;max-width:440px;width:100%;text-align:center;
  box-shadow:var(--shadow);transform:translateY(12px);transition:transform .25s;}
.fa-cart-dialog.open .fa-cart-dialog-box{transform:translateY(0);}
.fa-cart-dialog-close{position:absolute;top:12px;right:14px;background:none;border:0;
  font-size:18px;line-height:1;color:var(--muted);cursor:pointer;padding:6px;}
.fa-cart-dialog-close:hover{color:var(--ink);}
.fa-cart-dialog-haken{width:52px;height:52px;margin:0 auto 16px;border-radius:50%;
  border:1.5px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;}
.fa-cart-dialog-haken svg{width:24px;height:24px;}
.fa-cart-dialog h3{font-family:var(--serif);font-size:23px;margin:0 0 6px;}
.fa-cart-dialog-name{font-size:14px;color:var(--muted);margin:0 0 24px;min-height:1px;}
.fa-cart-dialog-aktionen{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.fa-cart-dialog-aktionen .btn{flex:1 1 160px;justify-content:center;}
/* .btn-ghost ist fuer DUNKLE Flaechen gebaut: elfenbeinfarbene Schrift auf durchsichtigem
   Grund. Im hellen Fenster war "Weiter einkaufen" dadurch erst beim Ueberfahren zu sehen.
   Hier deshalb dunkle Schrift und ein sichtbarer Rahmen. */
.fa-cart-dialog .btn-ghost{border-color:var(--gold);color:var(--ink);background:transparent;}
.fa-cart-dialog .btn-ghost:hover{border-color:var(--gold);background:var(--gold);color:#241a0d;}
@media(max-width:520px){
  .fa-cart-dialog-box{padding:30px 22px 26px;}
  .fa-cart-dialog-aktionen{flex-direction:column;}
}

.added-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--ivory);padding:14px 26px;border-radius:30px;font-size:14px;display:flex;align-items:center;gap:10px;opacity:0;pointer-events:none;transition:.4s;z-index:300;}
.added-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.added-toast svg{width:16px;height:16px;color:var(--gold-light);}

nav.mainnav a.navlink.active{color:var(--gold-light);}
nav.mainnav a.navlink.active::after{width:100%;}

#coinTilt{position:relative;transition:transform .3s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d;}
.coin-emblem{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64%;aspect-ratio:1065/803;background-repeat:no-repeat;background-position:center top;background-size:100% auto;pointer-events:none;z-index:2;}
/* Schimmernder (nicht schwer-metallischer) Glanz NUR auf Frau + Füllhorn + Münzen (linke/
   mittlere Bildhälfte, kein Hintergrund-Sonnenkreis, kein Monogramm-Kreis unten) — heller,
   luftiger Verlauf statt dunkler Bronze-Töne. Da die PNG keine Ebenen hat, wird der Bereich
   über eine weiche, unsichtbare Verlaufsform eingegrenzt statt einer harten Kante. Statisch,
   keine Animation. */
.coin-emblem::after{content:"";position:absolute;inset:0;background-image:linear-gradient(135deg,#fffbe8 0%,#fff3c4 18%,#f5d98a 32%,#fffbe8 48%,#f0deac 62%,#fffbe8 78%,#f5d98a 92%,#fffbe8 100%);
  -webkit-mask-image:url('assets/img/logo.png'),radial-gradient(ellipse 40% 34% at 40% 38%,#000 55%,transparent 100%);
  mask-image:url('assets/img/logo.png'),radial-gradient(ellipse 40% 34% at 40% 38%,#000 55%,transparent 100%);
  -webkit-mask-repeat:no-repeat,no-repeat;mask-repeat:no-repeat,no-repeat;
  -webkit-mask-position:center top,center top;mask-position:center top,center top;
  -webkit-mask-size:100% auto,100% 100%;mask-size:100% auto,100% 100%;
  -webkit-mask-composite:source-in;mask-composite:intersect;}
#coinTilt svg{filter:drop-shadow(0 30px 50px rgba(0,0,0,.5));}

/* ---------- contact form ---------- */
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;margin-top:10px;}
.form-field{margin-bottom:20px;}
.form-field label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;margin-bottom:8px;}
.form-field input,.form-field textarea,.form-field select{width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:2px;background:var(--ivory-2);font-family:var(--sans);font-size:14.5px;color:var(--ink);}
.form-field textarea{resize:vertical;min-height:130px;}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--gold);}

/* ---------- Contact Form 7 styling ---------- */
.fa-cf7 form.wpcf7-form p{margin-bottom:20px;}
.fa-cf7 form.wpcf7-form label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;margin-bottom:8px;}
.fa-cf7 form.wpcf7-form .wpcf7-form-control-wrap{display:block;margin-top:4px;}
.fa-cf7 form.wpcf7-form input.wpcf7-form-control,
.fa-cf7 form.wpcf7-form textarea.wpcf7-form-control,
.fa-cf7 form.wpcf7-form select.wpcf7-form-control{width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:2px;background:var(--ivory-2);font-family:var(--sans);font-size:14.5px;color:var(--ink);transition:border-color .2s;}
.fa-cf7 form.wpcf7-form textarea.wpcf7-form-control{resize:vertical;min-height:130px;}
.fa-cf7 form.wpcf7-form input.wpcf7-form-control:focus,
.fa-cf7 form.wpcf7-form textarea.wpcf7-form-control:focus,
.fa-cf7 form.wpcf7-form select.wpcf7-form-control:focus{outline:none;border-color:var(--gold);}
.fa-cf7 form.wpcf7-form input[type="submit"].wpcf7-submit{font-family:var(--sans);font-size:14.5px;font-weight:600;letter-spacing:.3px;padding:15px 32px;border-radius:2px;cursor:pointer;border:1px solid transparent;background:linear-gradient(135deg,var(--gold-light),var(--gold));color:#241a0d;box-shadow:0 14px 30px -12px rgba(166,124,61,.55);transition:.35s cubic-bezier(.2,.7,.2,1);margin-top:6px;}
.fa-cf7 form.wpcf7-form input[type="submit"].wpcf7-submit:hover{transform:translateY(-2px);box-shadow:0 20px 36px -12px rgba(166,124,61,.65);}
.fa-cf7 form.wpcf7-form input[type="submit"].wpcf7-submit:disabled{opacity:.6;cursor:default;transform:none;}
.fa-cf7 .wpcf7-not-valid-tip{color:#b23b3b;font-size:12.5px;margin-top:6px;display:block;}
.fa-cf7 .wpcf7-response-output{border-radius:4px;padding:14px 18px;font-size:13.5px;margin-top:20px;border:1px solid var(--line);}
.fa-cf7 form.wpcf7-form.invalid .wpcf7-response-output{border-color:#b23b3b;color:#b23b3b;}
.fa-cf7 form.wpcf7-form.sent .wpcf7-response-output{border-color:var(--verd);color:var(--verd);}
.fa-cf7 .wpcf7-spinner{margin:0 0 0 10px;}
.fa-cf7 form.wpcf7-form .wpcf7-list-item{margin:0 12px 0 0;}
.fa-cf7 form.wpcf7-form .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:8px;font-family:var(--sans);font-size:13.5px;letter-spacing:0;text-transform:none;color:#4a4136;}
.fa-cf7 form.wpcf7-form .wpcf7-acceptance input{margin-top:3px;}

/* Ab Tablet/Desktop: kurze Einzelzeilen-Felder (Text/E-Mail/Auswahl) zu zweit
   nebeneinander, Textfelder/Absenden/Meldungen bleiben volle Breite. Mobil
   bewusst unverändert einspaltig. */
@media(min-width:641px){
  .fa-cf7 form.wpcf7-form{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;align-items:start;}
  .fa-cf7 form.wpcf7-form>.wpcf7-response-output{grid-column:1/-1;}
  .fa-cf7 form.wpcf7-form p:has(textarea),
  .fa-cf7 form.wpcf7-form p:has(input[type="submit"]),
  .fa-cf7 form.wpcf7-form p:has(input[type="checkbox"]),
  .fa-cf7 form.wpcf7-form p:has(input[type="radio"]),
  .fa-cf7 form.wpcf7-form p:has(input[type="file"]){grid-column:1/-1;}
}
.contact-info-block{background:var(--ivory-2);border:1px solid var(--line);border-radius:6px;padding:30px;}
.contact-info-block h3{font-size:19px;margin-bottom:18px;}
.contact-row{display:flex;gap:14px;margin-bottom:18px;align-items:flex-start;}
.contact-row>div:last-child{min-width:0;}
.contact-row svg{width:19px;height:19px;color:var(--gold);flex-shrink:0;margin-top:2px;}
.contact-row .label{font-size:11px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:3px;}
.contact-row .value{font-size:15px;color:var(--ink);}
/* WhatsApp-Schaltfläche im Kontaktkasten. Volle Breite, damit sie als zweiter Weg neben
   dem Formular erkennbar ist — aber in der zurückhaltenden Umrandungs-Variante, damit sie
   dem goldenen "Nachricht senden" nicht die Rolle als Hauptweg streitig macht. */
.contact-info-block .fa-wa-kontakt{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:4px;}
.contact-info-block .fa-wa-kontakt svg{width:18px;height:18px;flex-shrink:0;}
.contact-info-block .fa-wa-hinweis{font-size:12px;color:var(--muted);margin:8px 0 0;text-align:center;}
.contact-info-block .subhead{font-size:11px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin:20px 0 8px;padding-top:16px;border-top:1px solid var(--line);}
.location-row{display:flex;gap:14px;align-items:flex-start;padding:12px 0;}
.location-row:last-child{padding-bottom:0;}
.location-row svg{width:19px;height:19px;color:var(--gold);flex-shrink:0;margin-top:2px;}
.location-row .city{font-size:15px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.location-row .country{font-size:13.5px;color:var(--muted);margin-top:2px;}
.location-tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--gold);background:var(--gold-pale);padding:3px 8px;border-radius:20px;}
.hours-row{display:flex;justify-content:space-between;font-size:14px;padding:7px 0;border-bottom:1px solid var(--line);}
.hours-row:last-child{border-bottom:none;}

/* ---------- gutachten section ---------- */
.fa-divider{display:flex;align-items:center;justify-content:center;margin:0 0 60px;}
.fa-divider span{position:relative;width:100%;max-width:220px;height:1px;background:linear-gradient(90deg,transparent,var(--line) 20%,var(--gold) 50%,var(--line) 80%,transparent);}
.fa-divider span::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg);width:7px;height:7px;background:var(--gold);}
.abgrenzung-note{background:#EFF3F0;border-left:3px solid var(--verd);padding:16px 20px;border-radius:0 4px 4px 0;font-size:14px;color:#3a4a42;margin:22px 0;}
.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:30px 0;}
.step-item{text-align:center;position:relative;}
.step-item .num{width:40px;height:40px;border-radius:50%;border:2px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;background:var(--ivory);}
.step-item .num svg{width:17px;height:17px;}
.step-item p{font-size:13px;color:#4a4136;}
.step-item:not(:last-child)::after{content:"";position:absolute;top:20px;left:calc(50% + 30px);width:calc(100% - 40px);height:1px;background:var(--line);}
@media(max-width:640px){
  .stepper{grid-template-columns:1fr 1fr;}
}

/* ---------- timeline (werdegang) ---------- */
.timeline{margin:26px 0;}
.tl-item{display:grid;grid-template-columns:90px 1fr;gap:20px;padding-bottom:22px;position:relative;}
.tl-item::before{content:"";position:absolute;left:38px;top:22px;bottom:-4px;width:1px;background:var(--line);}
.tl-item:last-child::before{display:none;}
.tl-item .dot{position:absolute;left:33px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--gold);}
.tl-item .year{font-family:var(--mono);font-size:13px;color:var(--gold);}
.tl-item p{font-size:14.5px;color:#4a4136;}

/* ---------- legal pages ---------- */
.legal-content{max-width:760px;margin:0;}
.legal-content h2{font-size:22px;margin-top:44px;margin-bottom:14px;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p{color:#4a4136;font-size:15px;margin-bottom:14px;}
.legal-content ul{color:#4a4136;font-size:15px;margin:0 0 14px;padding-left:22px;}
.legal-note{background:var(--ivory-2);border-left:3px solid var(--gold);padding:16px 20px;font-size:13.5px;color:var(--muted);border-radius:0 4px 4px 0;margin-bottom:40px;}

/* ---------- testimonials ---------- */
.testimonial-card{background:var(--ivory-2);border:1px solid var(--line);border-radius:8px;padding:32px 30px;transition:.3s;}
.testimonial-card:hover{border-color:var(--gold-light);box-shadow:0 20px 40px -24px rgba(28,23,18,.3);}
.testimonial-card .stars{color:var(--gold);font-size:15px;letter-spacing:2px;margin-bottom:16px;}
.testimonial-card .quote{font-family:var(--serif);font-style:italic;font-size:16.5px;color:var(--ink);line-height:1.55;margin-bottom:20px;}
.testimonial-card .author{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:14px;}
.testimonial-card .author .name{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink);}
.testimonial-card .author .role{font-family:var(--mono);font-size:11px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;margin-top:3px;}

/* ---------- payment badges ---------- */
.payment-badges{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.pay-badge{display:flex;align-items:center;justify-content:center;height:34px;padding:0 16px;background:#fff;border:1px solid var(--line);border-radius:4px;}
.pay-badge img{height:16px;width:auto;display:block;}
.pay-badge-text{font-family:var(--sans);font-size:12.5px;color:#4a4136;font-weight:600;}

/* ---------- search page ---------- */
.search-empty{text-align:center;padding:80px 20px;color:var(--muted);}
.search-empty svg{width:48px;height:48px;color:var(--line);margin-bottom:18px;}

/* ---------- WooCommerce: Warenkorb, Kasse, Mein Konto (page.php) ---------- */
.wc-page-content{max-width:1000px;}
.wc-page-content .woocommerce-notices-wrapper:empty{display:none;}
.wc-page-content .woocommerce-message,.wc-page-content .woocommerce-error,.wc-page-content .woocommerce-info{list-style:none;margin:0 0 24px;padding:16px 20px;border-radius:4px;font-size:14px;background:var(--ivory-2);border-left:3px solid var(--gold);color:var(--ink);}
.wc-page-content .woocommerce-error{border-left-color:#b23b3b;}

.wc-page-content table.shop_table{width:100%;border-collapse:collapse;margin-bottom:30px;}
.wc-page-content table.shop_table th{text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:0 10px 14px;border-bottom:1px solid var(--line);}
.wc-page-content table.shop_table td{padding:18px 10px;border-bottom:1px solid var(--line);font-size:14.5px;vertical-align:middle;}
.wc-page-content .product-thumbnail img{width:64px;height:64px;object-fit:contain;border-radius:4px;}
.wc-page-content .product-remove a{color:var(--muted);font-size:18px;text-decoration:none;}
.wc-page-content .product-remove a:hover{color:#b23b3b;}
.wc-page-content .quantity .qty{width:60px;padding:10px;border:1px solid var(--line);border-radius:2px;background:var(--ivory-2);font-family:var(--mono);text-align:center;}
.wc-page-content .product-subtotal,.wc-page-content .amount{font-family:var(--mono);color:var(--ink);}

.wc-page-content .coupon{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.wc-page-content .coupon input#coupon_code{padding:13px 16px;border:1px solid var(--line);border-radius:2px;background:var(--ivory-2);font-family:var(--sans);font-size:14px;}

.wc-page-content .cart_totals{background:var(--ivory-2);border:1px solid var(--line);border-radius:6px;padding:28px 30px;max-width:420px;margin-left:auto;}
.wc-page-content .cart_totals h2{font-size:19px;margin-bottom:18px;font-family:var(--serif);}
.wc-page-content .cart_totals table{width:100%;}
.wc-page-content .cart_totals table th{font-weight:600;color:var(--ink);text-align:left;padding:10px 0;font-family:var(--sans);font-size:14px;border-bottom:1px solid var(--line);}
.wc-page-content .cart_totals table td{text-align:right;padding:10px 0;border-bottom:1px solid var(--line);font-family:var(--mono);}
.wc-page-content .cart_totals .order-total .amount{font-size:19px;font-weight:700;}

.wc-page-content .button,.wc-page-content input.button,.wc-page-content button.button{font-family:var(--sans);font-size:14.5px;font-weight:600;letter-spacing:.3px;padding:15px 32px;border-radius:2px;cursor:pointer;display:inline-flex;align-items:center;gap:10px;text-decoration:none;border:1px solid transparent;transition:.35s cubic-bezier(.2,.7,.2,1);background:linear-gradient(135deg,var(--gold-light),var(--gold));color:#241a0d;box-shadow:0 14px 30px -12px rgba(166,124,61,.55);}
.wc-page-content .button:hover,.wc-page-content input.button:hover,.wc-page-content button.button:hover{transform:translateY(-2px);box-shadow:0 20px 36px -12px rgba(166,124,61,.65);}
.wc-page-content .button.disabled,.wc-page-content .button:disabled{opacity:.6;cursor:default;transform:none;}

.wc-page-content .woocommerce-billing-fields h3,
.wc-page-content #order_review_heading{font-size:19px;margin:0 0 20px;font-family:var(--serif);}
.wc-page-content .form-row{margin-bottom:18px;}
.wc-page-content .form-row label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.wc-page-content .form-row input.input-text,
.wc-page-content .form-row select,
.wc-page-content .form-row textarea{width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:2px;background:var(--ivory-2);font-family:var(--sans);font-size:14.5px;color:var(--ink);}
.wc-page-content .form-row input.input-text:focus,
.wc-page-content .form-row select:focus{outline:none;border-color:var(--gold);}
.wc-page-content .select2-container .select2-selection--single{height:48px;border:1px solid var(--line);border-radius:2px;background:var(--ivory-2);}
.wc-page-content .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:48px;padding-left:16px;}
.wc-page-content .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px;}

.wc-page-content #order_review{background:var(--ivory-2);border:1px solid var(--line);border-radius:6px;padding:28px 30px;}

.wc-page-content ul.wc_payment_methods{list-style:none;margin:0 0 20px;padding:0;}
.wc-page-content ul.wc_payment_methods li{border:1px solid var(--line);border-radius:4px;padding:14px 16px;margin-bottom:10px;background:var(--ivory-2);}
.wc-page-content ul.wc_payment_methods li label{font-weight:600;margin-left:8px;}
.wc-page-content .payment_box{font-size:13.5px;color:#4a4136;padding:14px 4px 4px;}

.wc-page-content .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;background:var(--ivory-2);border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.wc-page-content .woocommerce-MyAccount-navigation a{display:block;padding:14px 20px;text-decoration:none;color:var(--ink);font-size:14px;border-bottom:1px solid var(--line);}
.wc-page-content .woocommerce-MyAccount-navigation li:last-child a{border-bottom:none;}
.wc-page-content .woocommerce-MyAccount-navigation li.is-active a{color:var(--gold);font-weight:600;background:var(--ivory);}
.wc-page-content .woocommerce-MyAccount-content{margin-top:30px;}
.wc-page-content .woocommerce-form-login,.wc-page-content .woocommerce-form-register{max-width:420px;}
.wc-page-content .woocommerce-form-row,.wc-page-content p.form-row{margin-bottom:18px;}
.wc-page-content .woocommerce-form-login__rememberme{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#4a4136;}

@media(max-width:760px){
  .wc-page-content .cart_totals{margin-left:0;max-width:none;}
  .wc-page-content table.shop_table thead{display:none;}
  .wc-page-content table.shop_table tr{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:14px 0;}
  .wc-page-content table.shop_table td{display:flex;justify-content:space-between;align-items:center;border-bottom:none;padding:6px 0;width:100%;}
}

@media(max-width:900px){
  .contact-grid{grid-template-columns:1fr;}
  .stepper{grid-template-columns:1fr 1fr;}
  .shop-layout{grid-template-columns:1fr;}
  .filter-panel{position:static;margin-bottom:30px;display:none;}
  .filter-panel.open{display:block;}
  .filter-toggle{display:inline-flex;}
  .product-layout{grid-template-columns:1fr;gap:36px;}
}

/* ---------- cart count badge (WooCommerce live count) ---------- */
.icon-btn{position:relative;}
.cart-count{position:absolute;top:-4px;right:-4px;background:var(--gold);color:#fff;font-size:10px;font-weight:700;width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);}

/* ---------- product gallery swap animation ---------- */
#galleryMainImg.spin-in{animation:spinIn .5s cubic-bezier(.2,.7,.2,1);}
@keyframes spinIn{from{transform:rotateY(90deg);opacity:0;}to{transform:rotateY(0);opacity:1;}}
.gallery-main img,.card-media img,.fa-product-photo{width:100%;height:100%;object-fit:contain;border-radius:inherit;}
.gthumb img{width:100%;height:100%;object-fit:contain;border-radius:3px;}

/* ---------- Absicherung: WooCommerce-Standardblöcke (z. B. ein "Produkte"-Block, der direkt
   im Seiteneditor auf einer Seite wie dem Warenkorb eingefügt wurde) nutzen sonst WooCommerce's
   hart quadratisch zugeschnittene Standard-Vorschaubilder — dadurch wirken breite Banknoten-/
   Münzfotos "gezoomt" (nur ein Ausschnitt statt des ganzen Bildes sichtbar). Zeigt das Bild
   überall dort stattdessen vollständig, mit hellem Rahmen passend zum restlichen Design. */
.woocommerce ul.products img,
.wc-block-grid__product-image img,
.wc-block-components-product-image img,
.wp-block-woocommerce-product-collection img,
.wp-block-woocommerce-product-image img {
  aspect-ratio: 1/1;
  object-fit: contain;
  background: var(--ivory-2);
  border-radius: 4px;
}

/* ---------- WooCommerce add-to-cart form restyled to match design ---------- */
/* flex-column auf dem Wrapper: falls ein Zahlungs-Plugin zusätzliche Elemente
   (z. B. Google-Pay/Apple-Pay-Express-Button) neben dem Formular einfügt, werden
   diese untereinander statt übereinander/überlappend angezeigt. */
.fa-addtocart{display:flex;flex-direction:column;gap:12px;min-width:0;}
.fa-addtocart .cart{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch;}
.fa-addtocart .quantity{display:flex;align-items:center;border:1px solid var(--line);border-radius:2px;}
.fa-addtocart .quantity .qty{width:56px;border:none;text-align:center;font-family:var(--mono);font-size:14px;padding:12px 0;background:transparent;}
.fa-addtocart button.single_add_to_cart_button{font-family:var(--sans);font-size:14.5px;font-weight:600;letter-spacing:.3px;padding:15px 32px;border-radius:2px;cursor:pointer;border:none;background:linear-gradient(135deg,var(--gold-light),var(--gold));color:#241a0d;box-shadow:0 14px 30px -12px rgba(166,124,61,.55);transition:.35s cubic-bezier(.2,.7,.2,1);}
.fa-addtocart button.single_add_to_cart_button:hover{transform:translateY(-2px);}
.fa-addtocart .woocommerce-variation-add-to-cart{margin-top:14px;}
.fa-addtocart p.stock{font-size:13px;color:var(--muted);margin-top:8px;width:100%;}

/* Sprachumschalter blieb blau: Der Browser faerbt besuchte Links ueber a:visited, und
   diese Regel ist spezifischer als ".lang-switch *". Deshalb hier alle Linkzustaende
   ausdruecklich benennen — inklusive der Elemente darin, weil TranslatePress den
   Sprachnamen je nach Fassung in ein <span> legt. Streng auf .lang-switch begrenzt. */
.lang-switch a:link, .lang-switch a:visited, .lang-switch a:active,
.lang-switch a:link *, .lang-switch a:visited *, .lang-switch a:active *,
.lang-switch span, .lang-switch li { color: #f7f2e7 !important; text-decoration: none !important; }
.lang-switch a:hover, .lang-switch a:hover *,
.lang-switch a:focus, .lang-switch a:focus * { color: var(--gold-light) !important; }
.lang-switch .trp-ls-shortcode-current-language > a,
.lang-switch .trp-ls-shortcode-current-language > a *,
.lang-switch a.trp-ls-current-language,
.lang-switch a.trp-ls-current-language * { color: var(--gold-light) !important; }

/* ===========================================================================
   Kopfbereich: echtes Produkt statt Münzgrafik + Reihe "Neu eingetroffen"
   Eingebaut 24.08.2026. Autor: Kedar & Partner.
   =========================================================================== */

/* Das Schaufensterstück rechts im Kopfbereich. Als ganze Fläche anklickbar —
   auf dem Handy trifft man einen kleinen Textlink zu leicht daneben. */
.hero-produkt{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:22px;border-radius:10px;
  background:rgba(247,242,231,.04);border:1px solid rgba(201,162,92,.28);text-decoration:none;
  box-shadow:0 18px 50px rgba(0,0,0,.35);transition:border-color .25s,transform .25s;max-width:420px;margin-left:auto;}
.hero-produkt:hover{border-color:rgba(201,162,92,.6);transform:translateY(-3px);}
.hero-produkt-marke{font-family:var(--mono);font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--gold-light);}
.hero-produkt-bild{display:block;width:100%;background:rgba(247,242,231,.05);border-radius:6px;overflow:hidden;}
.hero-produkt-bild img{display:block;width:100%;height:auto;}
.hero-produkt-name{font-family:var(--serif);font-size:21px;line-height:1.25;color:var(--ivory);}
.hero-produkt-preis{font-size:18px;color:var(--gold-light);}
.hero-produkt-preis del{opacity:.5;font-size:15px;margin-right:6px;}
.hero-produkt-btn{display:inline-flex;align-items:center;gap:8px;margin-top:4px;font-family:var(--mono);font-size:12px;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--ivory);}
.hero-produkt-btn svg{width:14px;height:14px;fill:currentColor;}

@media (max-width:820px){
  /* Auf dem Handy sitzt das Schaufensterstück unter dem Text, nicht daneben. */
  .hero-produkt{max-width:none;margin-left:0;}
}

/* Slider im Kopfbereich: alle Stuecke liegen uebereinander, nur das aktive ist
   sichtbar. Ueberblendung statt Verschieben — das kommt ohne Umrechnung von Breiten
   aus und bleibt dadurch auf jeder Bildschirmgroesse stabil. */
.hero-slider{position:relative;max-width:420px;margin-left:auto;}
.hero-slider-buehne{display:grid;}
/* Alle Kacheln in dieselbe Rasterzelle: Die Buehne ist damit automatisch so hoch wie
   das groesste Stueck, und es entsteht kein Springen beim Wechsel. */
.hero-slider-buehne > .hero-produkt{grid-area:1/1;opacity:0;visibility:hidden;
  transform:translateY(8px);transition:opacity .5s ease,transform .5s ease,visibility .5s;
  max-width:none;margin-left:0;pointer-events:none;}
.hero-slider-buehne > .hero-produkt.ist-aktiv{opacity:1;visibility:visible;transform:none;pointer-events:auto;}
.hero-slider-punkte{display:flex;gap:8px;justify-content:center;margin-top:16px;}
.hero-slider-punkte button{width:9px;height:9px;padding:0;border-radius:50%;cursor:pointer;
  border:1px solid rgba(201,162,92,.55);background:transparent;transition:background .25s,transform .25s;}
.hero-slider-punkte button:hover{transform:scale(1.25);}
.hero-slider-punkte button.ist-aktiv{background:var(--gold-light);border-color:var(--gold-light);}
@media (max-width:820px){
  .hero-slider{max-width:none;margin-left:0;}
}
/* Wer Bewegung im System abgestellt hat, bekommt keine Ueberblendung. Der Wechsel
   findet trotzdem statt, nur ohne Animation. */
@media (prefers-reduced-motion:reduce){
  .hero-slider-buehne > .hero-produkt{transition:none;transform:none;}
}

/* ---------- Kopfbereich ab 24.08.2026: Stuecke links, Muenze rechts ---------- */
/* Der Slider stand vorher rechts und war deshalb nach rechts ausgerichtet
   (margin-left:auto). Links im Textbereich muss er buendig zur Ueberschriftenkante
   beginnen, sonst haengt er zwischen den Schaltflaechen in der Luft. */
/* Eine gemeinsame Breite fuer Kachel UND Schaltflaechen — an einer Stelle gepflegt,
   damit die beiden nie auseinanderlaufen. */
/* 470 statt 400 Punkte: Bei 400 blieben je Schaltflaeche nur rund 190 Punkte, und
   "Sammlung bewerten lassen" braucht mehr — der Text brach um oder die zweite Schaltflaeche
   rutschte in die naechste Zeile. 470 ist die Breite, bei der beide nebeneinander stehen,
   ohne dass Luft entsteht. Die Kachel darueber uebernimmt denselben Wert. */
.hero-copy{--fa-hero-breite:470px;}
.hero-copy .hero-slider{margin-left:0;margin-right:auto;max-width:var(--fa-hero-breite);margin-bottom:34px;}
/* Die Schaltflaechen sind normalerweise so breit wie ihr Text — "Sammlung entdecken" ist
   kuerzer als "Sammlung bewerten lassen", die Reihe endete also schief unter der Kachel.
   Jetzt teilen sich beide die Kachelbreite zu gleichen Teilen (flex:1), der Abstand
   dazwischen bleibt. Damit schliessen Kachel und Schaltflaechenreihe exakt buendig ab. */
/* nowrap an beiden Stellen: Die Reihe darf nicht umbrechen, und innerhalb einer
   Schaltflaeche darf der Text nicht auf zwei Zeilen springen. Beides zusammen haelt die
   Reihe genau eine Zeile hoch. */
.hero-copy .ctas{max-width:var(--fa-hero-breite);flex-wrap:nowrap;}
.hero-copy .ctas .btn{flex:1 1 0;min-width:0;justify-content:center;text-align:center;
  padding-left:18px;padding-right:18px;white-space:nowrap;}
/* Bildhoehe begrenzt: Ein hochformatiger Schein wuerde die Kachel sonst so weit nach
   unten ziehen, dass die Schaltflaechen aus dem sichtbaren Bereich rutschen. */
.hero-copy .hero-produkt-bild img{max-height:210px;width:auto;max-width:100%;margin:0 auto;}
.hero-copy .hero-produkt-bild{display:flex;align-items:center;justify-content:center;min-height:150px;}
/* Punkte links statt mittig — sie gehoeren optisch zur linken Kante. */
.hero-copy .hero-slider-punkte{justify-content:flex-start;}

/* Ueberschrift nur fuer Suchmaschinen und Vorleseprogramme.
   Bewusst NICHT display:none: Das wuerde sie auch fuer Vorleser unsichtbar machen.
   Stattdessen wird sie auf einen Punkt zusammengezogen und weggeschnitten. */
.fa-nur-vorleser{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;}

@media(max-width:900px){
  /* Einspaltig: erst die Stuecke, dann die Muenze — die Ware zuerst.
     Die gemeinsame Breite faellt weg, beide nehmen die volle Spaltenbreite. */
  .hero-copy{--fa-hero-breite:none;}
  .hero-copy .hero-slider,
  .hero-copy .ctas{max-width:none;}
  .medallion-stage{height:340px;}
}
@media(max-width:520px){
  /* Erst auf wirklich schmalen Geraeten untereinander — dort passen 470 Punkte nicht mehr
     nebeneinander, und ein abgeschnittener Text waere schlimmer als zwei Zeilen. */
  .hero-copy .ctas{flex-wrap:wrap;}
  .hero-copy .ctas .btn{flex:1 1 100%;}
}

/* ---------- Zertifikatsnummer auf der Produktseite (24.08.2026) ---------- */
/* Der Streifen richtet seine Teile normalerweise mittig aus. Mit zwei Zeilen im Text muss
   das Sinnbild oben stehen, sonst rutscht es in die Mitte zwischen die Zeilen. */
.trust-strip-zert{align-items:flex-start;}
.trust-strip-zert svg{margin-top:2px;}
.zert-nummer{display:block;margin-top:8px;font-family:var(--mono);font-size:12px;
  letter-spacing:1px;text-transform:uppercase;color:var(--muted);}
.zert-nummer b{display:inline-block;margin-left:6px;padding:3px 9px;border-radius:3px;
  background:rgba(201,162,92,.14);border:1px solid rgba(201,162,92,.35);
  color:var(--ink);font-size:13px;letter-spacing:1.4px;
  /* Ein Klick markiert die ganze Nummer — sie wird zum Nachschlagen kopiert. */
  user-select:all;-webkit-user-select:all;}

/* Kategoriekachel ohne lieferbare Stuecke: Die Null bleibt sichtbar — sie ist eine
   ehrliche Angabe —, tritt aber zurueck, damit die Kachel nicht wie ein Fehler wirkt. */
.ctile-leer{opacity:.55;}

/* ---------- Sprachwahl ohne Flaggen (25.08.2026) ----------
   Die Flaggenbilder entfernt ein Filter in functions.php aus der Ausgabe des
   Uebersetzungs-Plugins. Hier wird nachgezogen, was ohne sie noch stoert: Das Plugin haelt
   ueber eigene Variablen Platz fuer die Flagge frei und setzt einen Abstand daneben. Beides
   wuerde als Loch neben dem Wort stehen bleiben. */
.lang-switch .trp-shortcode-switcher__wrapper{
  --flag-size:0 !important;
  --font-size:11px !important;
}
.lang-switch .trp-language-item{gap:0 !important;}
.lang-switch .trp-language-item img{display:none !important;}

/* Schrift wie bei den uebrigen Kopfzeilen-Elementen: schmale Versalien in der
   Festbreitenschrift. Ohne Flagge traegt allein das Wort — dann soll es auch zur Seite
   passen und nicht wie ein Fremdkoerper aus dem Plugin wirken. */
.lang-switch .trp-language-item-name{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  line-height:1;
}
/* Etwas mehr Luft links und rechts, weil die Flagge als optischer Anfang wegfaellt. */
.lang-switch .trp-language-item{padding:7px 14px !important;}
.lang-switch .trp-shortcode-arrow{margin-left:2px;}

/* Steuer- und Versandhinweis unter dem Preis (Pflichtangabe nach PAngV).
   Bewusst klein und zurueckhaltend: Er muss lesbar beim Preis stehen, darf ihm aber nicht
   die Aufmerksamkeit nehmen. */
.fa-steuerhinweis{margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--muted);}
.fa-steuerhinweis a{color:var(--muted);text-decoration:underline;}
.fa-steuerhinweis a:hover{color:var(--gold);}

/* ---------- Produktbilder: immer vollstaendig, nie beschnitten (27.08.2026) ----------
   Gemeldet: Auf Kategorieseiten wirkten Muenzfotos seitlich angeschnitten, obwohl die
   Bilddatei rundum Rand hat (nachgemessen: alle vier Bildkanten hell). Im Theme steht
   ueberall "contain" — es muss also eine fremde Regel gewinnen, vermutlich aus dem
   WooCommerce-Stylesheet, das auf Kategorieseiten mitgeladen wird.

   Statt lange zu suchen, welche Regel es ist: Hier wird die Darstellung fuer die
   Produktkachel festgeschrieben. "!important" ist sonst ein schlechtes Mittel — an dieser
   Stelle ist es das richtige, weil die Aussage eindeutig ist: Ein Sammlerstueck wird nie
   beschnitten gezeigt. Ein angeschnittener Muenzrand sieht nach Fehler aus und verdeckt
   genau das Merkmal, auf das ein Sammler zuerst schaut.

   Die feste Hoehe ueber aspect-ratio haelt die Flaeche quadratisch, damit alle Kacheln
   einer Reihe gleich hoch bleiben - unabhaengig davon, ob eine breite Banknote oder eine
   runde Muenze darin liegt. */
.card-media{aspect-ratio:1/1 !important;overflow:hidden;}
.card-media img,
.card-media .fa-product-photo,
.card-media-back{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  /* Ein heller Grund fuellt den Platz, der bei querformatigen Scheinen oben und unten
     frei bleibt - sonst entstuende ein sichtbarer Absatz zur Kachel. */
  background:var(--ivory-2);
}
