/* =====================================================================
   GIAZZO Vereins-Cashback – seitenspezifische Regeln für /vereine
   Basis (Farben, Schriften, Buttons, Menü, Footer, FAQ): /assets/giazzo.css
   ===================================================================== */

/* ---------- Hero der Übersicht ---------- */
#vc-top{position:relative;padding:48px 0 72px;overflow:hidden;}
.vc-top-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;}
#vc-top h1{font-size:clamp(46px,7.4vw,96px);line-height:.92;margin-bottom:14px;}
#vc-top h1 span{color:var(--red);display:block;}
.vc-top-copy > p{color:var(--ink-soft);font-size:17px;line-height:1.65;max-width:540px;margin-bottom:20px;}
.vc-highlight{display:inline-flex;align-items:center;gap:10px;font-size:15px;color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:14px;padding:10px 16px;margin-bottom:26px;box-shadow:5px 5px 0 var(--red);transform:rotate(-1deg);}
.vc-highlight .i{color:var(--red);}
.vc-highlight b{color:var(--red-dark);}
.vc-top-copy .top-ctas{justify-content:flex-start;}
.vc-top-visual{position:relative;aspect-ratio:1;max-width:480px;width:100%;margin-left:auto;}
.vc-top-visual::before{content:"";position:absolute;inset:5%;border-radius:50%;background:radial-gradient(circle at 50% 40%,#F0675E,var(--red) 70%);}
.vc-top-visual::after{content:"";position:absolute;inset:9%;border-radius:50%;background:radial-gradient(circle,#fff 62%,#F4EEE6 63%,#fff 66%,#FBF8F4 100%);box-shadow:0 30px 46px -24px rgba(58,20,10,.55);}
.vc-top-visual img{position:absolute;inset:9.5%;width:81%;height:81%;object-fit:cover;clip-path:circle(46.5% at 50% 50%);z-index:1;animation:spin 90s linear infinite;}
.vc-top-visual.is-photo::before,.vc-top-visual.is-photo::after{display:none;}
.vc-top-visual.is-photo img{inset:0;width:100%;height:100%;clip-path:none;border-radius:28px;animation:none;border:2px solid var(--ink);box-shadow:8px 8px 0 var(--red);}
.vc-seal{position:absolute;z-index:2;top:2%;right:0;width:126px;height:126px;border-radius:50%;background:var(--ink);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(10deg);box-shadow:0 14px 30px -14px rgba(0,0,0,.5);line-height:.95;border:3px solid #fff;}
.vc-seal .i{width:24px;height:24px;color:#FF8B80;margin-bottom:4px;}
.vc-seal b{font-family:var(--f-display);font-weight:400;font-size:20px;text-transform:uppercase;letter-spacing:.02em;}

/* ---------- So funktioniert's ---------- */
#so-funktionierts{padding:88px 0;background:var(--surface);}
.vc-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:step;}
.vc-card{position:relative;border:1.5px solid var(--line);border-radius:var(--radius);padding:30px 26px;background:var(--card);display:flex;flex-direction:column;gap:10px;transition:.25s ease;}
.vc-steps .vc-card:hover{border-color:var(--ink);transform:translateY(-6px);box-shadow:var(--shadow);}
.vc-steps .vc-card::after{counter-increment:step;content:counter(step);position:absolute;right:20px;top:8px;font-family:var(--f-display);font-size:72px;line-height:1;color:var(--red-tint);}
.vc-icon{width:54px;height:54px;border-radius:16px;background:var(--red-tint);color:var(--red);display:grid;place-items:center;margin-bottom:6px;transform:rotate(-4deg);}
.vc-icon .i{width:27px;height:27px;}
.vc-step-no{font-family:var(--f-mono);font-size:11.5px;font-weight:600;color:var(--red-dark);text-transform:uppercase;letter-spacing:.1em;}
.vc-card h3{font-size:20px;font-weight:800;}
.vc-card p{font-size:14.5px;line-height:1.6;color:var(--ink-soft);}
.vc-example{display:grid;grid-template-columns:repeat(4,1fr);margin-top:30px;border:2px solid var(--ink);border-radius:20px;background:#fff;overflow:hidden;}
.vc-example div{display:flex;flex-direction:column;gap:6px;padding:20px 22px;border-right:1.5px dashed var(--line-strong);}
.vc-example div:last-child{border-right:0;}
.vc-example span{font-size:13px;color:var(--ink-soft);font-weight:600;}
.vc-example b{font-family:var(--f-display);font-weight:400;font-size:34px;line-height:1;}
.vc-example .hl{background:var(--red);color:#fff;}
.vc-example .hl span{color:#FFE3DF;}
.vc-fine{font-size:12px;color:#9C8F82;text-align:center;margin-top:14px;line-height:1.6;}

/* ---------- Vereinsübersicht ---------- */
#vereine{padding:88px 0;}
.vc-search{position:relative;max-width:460px;margin:0 auto 34px;}
.vc-search .i{position:absolute;left:18px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--ink-soft);}
.vc-search input{width:100%;padding:15px 20px 15px 48px;border-radius:100px;border:2px solid var(--line-strong);font-family:var(--f-body);font-size:15px;color:var(--ink);background:#fff;}
.vc-search input:focus{outline:none;border-color:var(--ink);}
.club-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.club-card{border:1.5px solid var(--line);border-radius:22px;padding:28px 22px 22px;background:var(--card);display:flex;flex-direction:column;text-align:center;transition:.25s ease;position:relative;overflow:hidden;}
.club-card::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:var(--checker);background-size:8px 8px;opacity:0;transition:opacity .25s ease;}
.club-card:hover{border-color:var(--ink);transform:translateY(-6px);box-shadow:var(--shadow);}
.club-card:hover::before{opacity:1;}
.club-card[hidden]{display:none;}
.club-card-link{display:block;}
.crest{height:104px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.crest img{max-height:104px;max-width:130px;object-fit:contain;transition:transform .3s ease;}
.club-card:hover .crest img{transform:scale(1.06) rotate(-3deg);}
.crest-fallback{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--red-tint);color:var(--red-dark);font-family:var(--f-display);font-size:32px;}
.club-card h3{font-size:18px;font-weight:800;}
.slogan{font-size:13px;color:var(--ink-soft);margin-top:4px;}
.club-stats{margin:18px 0 20px;border-top:1.5px dashed var(--line-strong);}
.club-stats div{display:flex;justify-content:space-between;padding:9px 2px;border-bottom:1.5px dashed var(--line-strong);font-size:13.5px;}
.club-stats dt{color:var(--ink-soft);}
.club-stats dd{margin:0;font-family:var(--f-mono);font-weight:600;color:var(--ink);}
.club-code-mini{margin:18px 0 20px;font-size:13.5px;color:var(--ink-soft);}
.club-code-mini b{font-family:var(--f-mono);color:var(--red-dark);background:var(--red-tint);padding:4px 11px;border-radius:100px;margin-left:4px;border:1.5px dashed var(--red);}
.club-card .btn{margin-top:auto;}
.vc-empty{text-align:center;color:var(--ink-soft);font-size:15px;padding:20px 0;}
.vc-empty a{color:var(--red-dark);text-decoration:underline;font-weight:600;}

/* ---------- Vorteile ---------- */
#vorteile{padding:0 0 88px;}
.vc-benefits{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.vc-benefits .vc-card{padding:34px 30px;}
.vc-benefits .vc-card:last-child{background:var(--ink);color:#fff;border-color:var(--ink);}
.vc-benefits .vc-card:last-child .eyebrow{color:#FF8B80;}
.vc-benefits .vc-card:last-child .checks li{color:#CDBFB1;}
.vc-benefits .vc-card:last-child .checks li b{color:#fff;}
.vc-benefits .vc-card:last-child .checks .i{background:var(--red);color:#fff;}
.vc-benefits .eyebrow{margin-bottom:0;}
.vc-benefits h3{font-family:var(--f-display);font-weight:400;text-transform:uppercase;font-size:36px;line-height:1;margin-bottom:10px;}

/* ---------- FAQ ---------- */
#faq{padding:88px 0;background:var(--surface);}

/* ---------- Mitmachen ---------- */
#mitmachen{padding:88px 0;}
.vc-join{position:relative;max-width:880px;margin:0 auto;text-align:center;background:var(--red);color:#fff;border-radius:28px;padding:52px 40px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(196,54,45,.7);}
.vc-join::before{content:"";position:absolute;inset:auto -60px -110px auto;width:240px;height:240px;border-radius:50%;border:32px solid rgba(255,255,255,.08);}
.vc-join .eyebrow{color:#fff;}
.vc-join .eyebrow::before{background:repeating-conic-gradient(#fff 0 25%,transparent 0 50%) 0 0/8px 8px;}
.vc-join h2{font-size:clamp(34px,5vw,54px);margin-bottom:12px;}
.vc-join p{font-size:16px;color:#FFE3DF;line-height:1.65;margin:0 auto 26px;max-width:560px;}
.vc-join .btn-solid{background:var(--ink);box-shadow:none;}
.vc-join .btn-outline{border-color:#fff;color:#fff;}
.vc-join .btn-outline:hover{background:#fff;color:var(--red-dark);}
.vc-join .top-ctas,#vc-cta .top-ctas,.vc-error .top-ctas{justify-content:center;}

/* ---------- Abschluss-CTA ---------- */
#vc-cta{padding:20px 0 88px;}
#vc-cta .sec-head{margin-bottom:22px;}

/* ---------- Vereinsseite: dunkler Hero mit Wappen & Kennzahlen ---------- */
.club-hero{position:relative;color:#fff;background:
  radial-gradient(circle at 85% 20%,rgba(232,68,58,.35),transparent 45%),
  radial-gradient(circle at 10% 90%,rgba(232,68,58,.18),transparent 40%),
  var(--night);padding:26px 0 104px;overflow:hidden;}
.club-hero.has-photo{background:linear-gradient(90deg,rgba(27,20,17,.92) 0%,rgba(27,20,17,.66) 55%,rgba(27,20,17,.4) 100%),var(--hero) center/cover no-repeat;}
.club-back{margin-bottom:22px;}
.club-back a{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:rgba(255,255,255,.8);padding:7px 14px 7px 10px;border:1.5px solid rgba(255,255,255,.2);border-radius:100px;transition:.18s ease;}
.club-back a .i{width:16px;height:16px;}
.club-back a:hover{color:#fff;border-color:#fff;}
.club-hero-inner{display:flex;align-items:center;gap:40px;}
.club-hero-crest{flex:0 0 auto;width:180px;height:180px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.14);}
.club-hero-crest img{max-width:136px;max-height:136px;object-fit:contain;filter:drop-shadow(0 10px 26px rgba(0,0,0,.45));}
.crest-fallback--lg{width:150px;height:150px;font-size:52px;background:transparent;color:#fff;}
.club-hero .eyebrow{color:#FF8B80;}
.club-hero h1{font-size:clamp(42px,6.4vw,80px);line-height:.95;}
.club-slogan{font-family:var(--f-hand);font-weight:700;font-size:30px;color:#FFB4AC;margin-top:8px;transform:rotate(-2deg);transform-origin:left;}
.club-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:34px 0 0;}
.club-kpis div{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:16px 18px;}
.club-kpis .i{grid-row:span 2;width:42px;height:42px;padding:10px;border-radius:12px;background:var(--red);color:#fff;}
.club-kpis dd{margin:0;font-family:var(--f-display);font-size:clamp(24px,3vw,34px);line-height:1;font-variant-numeric:tabular-nums;}
.club-kpis dt{font-family:var(--f-mono);font-size:11.5px;color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;}

.club-main{padding:0 0 72px;}
.club-action{position:relative;margin-top:-64px;background:var(--card);border:2px solid var(--ink);border-radius:24px;box-shadow:10px 10px 0 var(--red);padding:34px;display:grid;grid-template-columns:1.25fr .75fr;gap:34px;align-items:center;}
.club-action h2{font-size:clamp(26px,3.4vw,38px);margin-bottom:22px;}
.num-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px;}
.num-steps li{display:flex;gap:14px;align-items:flex-start;}
.num-steps li > span{flex:0 0 40px;height:40px;border-radius:12px;background:var(--red-tint);color:var(--red);display:grid;place-items:center;}
.num-steps li > span .i{width:21px;height:21px;}
.num-steps b{display:block;font-size:15.5px;padding-top:2px;}
.num-steps small{display:block;color:var(--ink-soft);font-size:13.5px;margin-top:2px;}
.code-panel{border:2px dashed var(--red);background:var(--red-tint);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:12px;}
.code-label{display:flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--red-dark);}
.code-label .i{width:17px;height:17px;}
.code-row{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:8px 8px 8px 16px;}
.code-row code{flex:1;font-family:var(--f-display);font-size:38px;line-height:1.1;color:var(--ink);letter-spacing:.04em;text-align:center;}
.copy-btn{width:46px;height:46px;border-radius:12px;border:1.5px solid var(--line);background:#fff;cursor:pointer;display:grid;place-items:center;color:var(--ink);transition:.18s ease;}
.copy-btn:hover{border-color:var(--ink);background:var(--ink);color:#fff;}
.copy-btn .i{width:20px;height:20px;}
.code-hint{font-size:12.5px;color:var(--ink-soft);text-align:center;}

/* Teilen: kompakte, breite Leiste */
.share-strip{display:grid;grid-template-columns:auto 1fr auto;gap:26px;align-items:center;margin-top:24px;background:var(--card);border:1.5px solid var(--line);border-radius:22px;padding:18px 22px;}
.share-strip .qr{width:112px;padding:6px;border:1.5px solid var(--line);border-radius:14px;background:#fff;}
.share-strip .qr svg{display:block;width:100%;height:auto;}
.share-copy .eyebrow{margin-bottom:6px;}
.share-copy h2{font-size:clamp(22px,2.6vw,28px);}
.share-copy p{font-size:14px;color:var(--ink-soft);margin-top:4px;line-height:1.55;max-width:460px;}
.share-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.share-actions .btn{padding:12px 18px;font-size:14px;}
.btn-wa{background:#25D366;color:#fff;}
.btn-wa:hover{background:#1EB257;transform:translateY(-2px);}

.progress-card{margin-top:20px;border:1.5px solid var(--line);border-radius:20px;padding:18px 22px;background:var(--card);}
.progress-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:15px;margin-bottom:12px;}
.progress-head span{display:inline-flex;align-items:center;gap:8px;font-weight:700;}
.progress-head span .i{color:var(--red);}
.progress-head b{font-family:var(--f-mono);font-weight:600;}
.progress-bar{height:14px;border-radius:100px;background:var(--red-tint);overflow:hidden;}
.progress-bar span{display:block;height:100%;border-radius:100px;background:repeating-linear-gradient(-45deg,var(--red) 0 10px,#EF5A50 10px 20px);}

.club-about{margin-top:40px;max-width:780px;}
.club-about h2{font-size:clamp(28px,3.6vw,40px);margin-bottom:14px;}
.club-about p{font-size:16px;line-height:1.75;color:var(--ink-soft);margin-bottom:12px;}

/* ---------- Werbematerial (Vereinsseite) ---------- */
.mk-public{padding:88px 0;background:var(--surface);}
.mk-title{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:800;margin:40px 0 16px;}
.mk-title .i{width:24px;height:24px;padding:4px;border-radius:8px;background:var(--ink);color:#fff;}
.mk-title:first-of-type{margin-top:0;}
.mk-hint{font-size:14px;color:var(--ink-soft);margin:-6px 0 16px;line-height:1.6;max-width:780px;}
.mk-print{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.mk-file{display:flex;align-items:center;gap:14px;border:1.5px solid var(--line);border-radius:18px;background:var(--card);padding:16px 18px;transition:.2s ease;}
.mk-file:hover{border-color:var(--ink);transform:translateY(-3px);box-shadow:var(--shadow);}
.mk-file > span:nth-child(2){flex:1;}
.mk-file-icon{flex:0 0 52px;height:52px;border-radius:14px;background:var(--red-tint);color:var(--red);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;}
.mk-file-icon .i{width:22px;height:22px;}
.mk-file-icon small{font-family:var(--f-mono);font-size:10px;font-weight:600;color:var(--red-dark);}
.mk-file b{display:block;font-size:15px;}
.mk-file small{display:block;font-size:13px;color:var(--ink-soft);margin-top:2px;line-height:1.4;}
.mk-dl-icon{color:var(--ink-soft);transition:transform .2s ease,color .2s ease;}
.mk-file:hover .mk-dl-icon{color:var(--red);transform:translateY(2px);}
.mk-social{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end;}
.mk-item{margin:0;border:1.5px solid var(--line);border-radius:18px;background:var(--card);padding:12px;}
.mk-canvas{background:repeating-linear-gradient(45deg,#F1E6D5 0 10px,#EEE1CD 10px 20px);border-radius:12px;padding:12px;display:flex;justify-content:center;}
.mk-canvas canvas{display:block;width:auto;max-width:100%;height:auto;max-height:340px;border-radius:6px;box-shadow:0 10px 24px rgba(0,0,0,.2);}
.mk-item figcaption{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:14.5px;}
.mk-item figcaption small{color:var(--ink-soft);font-family:var(--f-mono);font-size:11px;}
.mk-error{color:var(--red-dark);font-size:14px;grid-column:1/-1;}
.mk-banners{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;align-items:start;}
.mk-banner{border:1.5px solid var(--line);border-radius:18px;background:var(--card);padding:16px;display:flex;flex-direction:column;gap:12px;}
.mk-banner-head{display:flex;align-items:center;gap:8px;font-size:14.5px;}
.mk-banner-head .i{color:var(--red);}
.mk-banner-preview{background:repeating-linear-gradient(45deg,#F1E6D5 0 10px,#EEE1CD 10px 20px);border-radius:12px;padding:14px;display:flex;justify-content:center;overflow:hidden;}
.mk-banner-preview img{max-width:100%;height:auto;}
.mk-code{width:100%;font-family:var(--f-mono);font-size:11.5px;line-height:1.5;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:10px;resize:vertical;}
.mk-banner .btn{align-self:flex-start;}

.vc-error{text-align:center;padding:72px 0;min-height:45vh;}
.vc-error h1{font-size:clamp(40px,6vw,72px);}

/* ---------- Responsiv ---------- */
@media (max-width:980px){
  .share-strip{grid-template-columns:auto 1fr;}
  .share-actions{grid-column:1/-1;justify-content:flex-start;}
}
@media (max-width:900px){
  .mk-print,.mk-banners{grid-template-columns:1fr;}
  .club-grid{grid-template-columns:repeat(2,1fr);}
  .vc-example{grid-template-columns:repeat(2,1fr);}
  .vc-example div:nth-child(2){border-right:0;}
  .vc-example div:nth-child(-n+2){border-bottom:1.5px dashed var(--line-strong);}
  .club-action{grid-template-columns:1fr;box-shadow:6px 6px 0 var(--red);}
}
@media (max-width:760px){
  #vc-top{padding:24px 0 56px;}
  .vc-top-grid{grid-template-columns:1fr;gap:8px;text-align:center;}
  .vc-top-visual{order:-1;max-width:320px;margin:0 auto;}
  .vc-seal{width:96px;height:96px;}
  .vc-seal b{font-size:15px;}
  .vc-top-copy > p{margin-left:auto;margin-right:auto;}
  .vc-top-copy .top-ctas{justify-content:center;}
  .vc-steps,.vc-benefits{grid-template-columns:1fr;}
  .club-hero-inner{flex-direction:column;text-align:center;gap:16px;}
  .club-hero-crest{width:132px;height:132px;}
  .club-hero-crest img{max-width:96px;max-height:96px;}
  .crest-fallback--lg{width:110px;height:110px;font-size:38px;}
  .club-slogan{font-size:24px;transform-origin:center;}
  .club-kpis{grid-template-columns:1fr;gap:8px;}
  .club-kpis div{padding:12px 14px;}
  .club-action{padding:22px;margin-top:-60px;}
  .code-row code{font-size:32px;}
  .share-strip{grid-template-columns:84px 1fr;gap:12px 14px;padding:14px;}
  .share-strip .qr{width:84px;padding:4px;}
  .share-copy h2{font-size:20px;}
  .share-copy p{font-size:12.5px;}
  .share-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
  .share-actions .btn{padding:10px 6px;font-size:12.5px;gap:6px;white-space:normal;line-height:1.15;}
  .share-actions .btn .i{width:16px;height:16px;}
}
@media (max-width:600px){
  .mk-social{grid-template-columns:1fr;}
  .club-grid{grid-template-columns:1fr;}
  .vc-join{padding:40px 22px;}
}
