/* Reiseberatung — Bento Grid */

/* ===================== REISEBERATUNG — Bento Grid (Featured RECHTS) ===================== */
.reiseberatung {
    padding: 7rem 5% 6rem;
    background: var(--cream-warm);
    position: relative;
    overflow: hidden;
}
.reiseberatung::before {
    content: '';
    position: absolute; top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--border), transparent);
}
.rb-header { max-width: 1200px; margin: 0 auto 3rem; }
.rb-header h2 { font-size: clamp(2rem, 4vw, 2.6rem); margin-bottom: 0.5rem; }
.rb-header h2 em { color: var(--red); font-style: normal; }
.rb-header p { font-size: 1.05rem; color: var(--text-muted); max-width: 520px; }

.rb-bento {
    max-width: 1200px; margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr 2fr;
    grid-template-rows: 1fr 1fr;
    gap: 1.25rem;
}
.rb-bcard {
    background: #fff; border: 1px solid var(--border);
    border-radius: 14px; padding: 2.2rem;
    transition: transform 0.4s ease, box-shadow 0.4s ease, background 0.4s ease;
    position: relative; overflow: hidden; cursor: pointer;
}
.rb-bcard:hover { transform: translateY(-4px); box-shadow: 0 20px 48px rgba(0,0,0,0.08); }
.rb-bcard .rb-small { display: block; }
.rb-bcard .rb-feat { display: none; }
.rb-bcard.active {
    grid-column: 3 / 4; grid-row: 1 / 3;
    display: flex; flex-direction: column; justify-content: flex-end;
    background: var(--dark); border-color: transparent;
    padding: 0; cursor: default;
}
.rb-bcard.active:hover { transform: none; box-shadow: none; }
.rb-bcard.active .rb-small { display: none; }
.rb-bcard.active .rb-feat { display: flex; flex-direction: column; height: 100%; }
.rb-feat-img { flex: 1; min-height: 140px; overflow: hidden; border-radius: 14px 14px 0 0; }
.rb-feat-img img { width: 100%; height: 100%; object-fit: cover; }
.rb-feat-body { padding: 2rem 2.2rem 2.2rem; }
.rb-feat-body h3, .rb-feat-body .bento-feat-title { font-size: 1.5rem; color: var(--text-on-dark); margin-bottom: 0.5rem; }
.rb-feat-body p { font-size: 0.95rem; color: var(--text-on-dark-soft); line-height: 1.6; margin-bottom: 1.5rem; }
.rb-feat-stats { display: flex; gap: 2rem; }
.rb-feat-stat .stat-num { font-family: 'DM Serif Display', serif; font-size: 1.8rem; color: var(--text-on-dark); line-height: 1.1; }
.rb-feat-stat .stat-label { font-size: 0.78rem; color: var(--text-on-dark-muted); font-weight: 600; letter-spacing: 0.04em; margin-top: 0.15rem; }

/* Icons — 5 gradient styles */
.rb-icon {
    width: 52px; height: 52px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1.25rem;
}
.rb-icon svg { width: 24px; height: 24px; }
.rb-icon.ic-blue { background: linear-gradient(135deg, #EBF0FA, #D6E2F5); box-shadow: 0 2px 8px rgba(43,94,167,0.1); }
.rb-icon.ic-blue svg { fill: #2B5EA7; }
.rb-icon.ic-red { background: linear-gradient(135deg, #FDE8EA, #F5CDD0); box-shadow: 0 2px 8px rgba(196,30,42,0.1); }
.rb-icon.ic-red svg { fill: #C41E2A; }
.rb-icon.ic-teal { background: linear-gradient(135deg, #E6F5F0, #CCE8DF); box-shadow: 0 2px 8px rgba(16,137,100,0.1); }
.rb-icon.ic-teal svg { fill: #108964; }
.rb-icon.ic-amber { background: linear-gradient(135deg, #FEF3E2, #FADDAF); box-shadow: 0 2px 8px rgba(180,120,20,0.1); }
.rb-icon.ic-amber svg { fill: #B47814; }
.rb-icon.ic-violet { background: linear-gradient(135deg, #F0E8FA, #DDD0F5); box-shadow: 0 2px 8px rgba(120,60,180,0.1); }
.rb-icon.ic-violet svg { fill: #7C3CB4; }

.rb-bcard h3 { font-size: 1.2rem; margin-bottom: 0.5rem; }
.rb-bcard p { font-size: 0.9rem; color: var(--text-muted); margin: 0; line-height: 1.6; }
/* Defensive override: falls jemand .rb-bcard.active mit Text befüllt,
   muss er auf dunklem Grund ueber das Token laufen, nicht --text-muted. */
.rb-bcard.active p { color: var(--text-on-dark-soft); }
.rb-bcard::after {
    content: ''; position: absolute; bottom: 0; left: 0;
    width: 0; height: 3px;
    background: linear-gradient(90deg, var(--red), #2B5EA7);
    transition: width 0.4s ease;
}
.rb-bcard:not(.active):hover::after { width: 100%; }
.rb-bcard.active::after { display: none; }

/* Contact card */
.rb-contact {
    background: var(--dark); border-radius: 20px;
    padding: 2.5rem; position: relative; overflow: hidden;
}
.rb-contact::before {
    content: ''; position: absolute; top: -60px; right: -60px;
    width: 200px; height: 200px;
    background: radial-gradient(circle, rgba(196,30,42,0.12), transparent 70%);
    border-radius: 50%;
}
.rb-contact-label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--red); margin-bottom: 1.25rem; }
.rb-contact h3 { font-size: 1.5rem; color: #FFFFFF; margin-bottom: 0.75rem; }
.rb-contact > p { color: var(--text-on-dark-soft); line-height: 1.7; margin-bottom: 1.5rem; font-size: 0.9rem; }
.rb-team { display: flex; gap: 1.5rem; margin-bottom: 1.5rem; }
.rb-team-member { display: flex; align-items: center; gap: 0.75rem; }
.rb-avatar { width: 44px; height: 44px; border-radius: 50%; background: rgba(196,30,42,0.15); display: flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 700; color: #FFFFFF; }
.rb-name { font-size: 0.85rem; font-weight: 600; color: var(--text-on-dark); }
.rb-role { font-size: 0.75rem; color: var(--text-on-dark-muted); }
.rb-cta-btn {
    display: inline-flex; align-items: center; gap: 0.75rem;
    padding: 0.9rem 1.75rem; background: var(--red); color: #fff;
    border: none; border-radius: 10px; font-size: 0.95rem; font-weight: 700;
    cursor: pointer; transition: all 0.3s; text-decoration: none;
}
.rb-cta-btn:hover { background: var(--red-dark); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(196,30,42,0.3); }
.rb-links { display: flex; gap: 1rem; margin-top: 1rem; flex-wrap: wrap; }
.rb-link { font-size: 0.82rem; color: var(--text-on-dark-soft); text-decoration: none; display: flex; align-items: center; gap: 0.4rem; transition: color 0.2s; }
.rb-link:hover { color: #FFFFFF; }

/* Full-width split contact card */
.rb-contact-full {
    max-width: 1200px; margin: 2.5rem auto 0;
    display: grid; grid-template-columns: 1fr 1fr; gap: 0;
    border-radius: 20px; overflow: hidden;
}
.rb-contact-full .rb-contact { border-radius: 0; }
.rb-contact-full .rb-contact-img { overflow: hidden; }
.rb-contact-full .rb-contact-img img { width: 100%; height: 100%; object-fit: cover; object-position: top; }

@media (max-width: 1024px) {
    .rb-bento { grid-template-columns: 1fr 1fr; }
    .rb-bcard.active { grid-column: 1 / -1; grid-row: auto; }
}
@media (max-width: 768px) {
    .reiseberatung { padding: 4rem 5% 3.5rem; }
    .rb-bento { grid-template-columns: 1fr; }
    .rb-bcard.active { min-height: 340px; }
    .rb-team { flex-direction: column; gap: 1rem; }
    .rb-contact-full { grid-template-columns: 1fr; }
    .rb-contact-full .rb-contact-img { height: auto; aspect-ratio: 3/4; }
    .rb-contact-full .rb-contact-img img { object-position: center; }
}

