/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

.glsr-summary-wrap {
	margin-top: -1.5em;
}

/* Portalberater Card */
/* Header-Container */
.pb-adv-header{
}

.pb-adv-headtext{
  min-width:0;
}

/* Titel-Zeile: Profilbild links, Name + Rating rechts */
.pb-adv-title-row{
  display:flex;
  align-items:center;
  gap:15px;
  margin-bottom: -20px;
}

/* Profilbild (rund) im Titel-Bereich */
.pb-adv-title-row .pb-adv-photo{
  flex:0 0 auto;
  width:30%;
  max-width: 120px;
  height:auto;
  border-radius:50%;
  overflow:hidden;
}

.pb-adv-title-row .pb-adv-photo picture{
  display:block;
  width:100%;
  height:100%;
}

.pb-adv-title-row .pb-adv-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* Textbereich rechts neben dem Bild */
.pb-adv-title-text{
  display:flex;
  flex-direction:column;
  justify-content:center; 
}
.pb-adv-title{
  font-size: 1.5em;
}
/* Sternebewertung direkt unter dem Namen etwas dichter ran */
.pb-adv-title-rating .glsr-summary-wrap{
	margin-top:-10px;
	transform: scale(0.85);
	transform-origin: left top;
}

.pb-adv-callbox{
    flex:1 1 auto;
	z-index: 2;
	text-align: center;
	border-radius:.5rem;
	padding:12px;
	background:#fefefe;
	box-sizing:border-box;
	box-shadow: 0 6px 12px rgba(11,11,11,0.08);
}
/* Label über den Telefonnummern im [advisor]-Header */
.pb-adv-phones-label{
  font-weight:600;
  font-size:.95rem;
  text-align:center;
  margin: 10px 0 4px;
}

.pb-adv-callbox .pb-adv-statusbar { margin: 0 0 10px 0; }
.pb-adv-callbox .pb-adv-phones--header { margin: 0; }

.pb-adv-phones--header {
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin:0 0 6px;
    justify-items: center;
    text-align: center;
}
.pb-adv-phone {
    border: 0;
    background: transparent;
    padding: 4px 0;
    border-radius: 0;
}

.pb-adv-phone-line{
	display:flex;
	align-items:center;
	justify-content: center;
	text-align: center;
	gap:6px;
	font-size:1.4rem;
}
/* Basis für Telefon- und Sprach-Flaggen (SVG/PNG), skalieren mit Schriftgröße */
.pb-adv-phone-flag {
	display:inline-block;
	width: 1em;
	height: .9em;
	background-position:center;
	background-repeat:no-repeat;
	background-size:contain;
	line-height:1;
	border-radius: .2rem;
}
/* Sprach-Emoji-Flaggen */
.pb-adv-lang-flag {
    background: none !important;
    width: auto !important;
    height: auto !important;
    font-size: 1.2em;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

/* Länder-Varianten – Telefon + Sprachen nutzen dieselben Grafiken */
.pb-adv-phone-flag--de,
.pb-adv-lang-flag--de {
  background-image:url("/bilder/flags/flag-de.png");
}

.pb-adv-phone-flag--at,
.pb-adv-lang-flag--at {
  background-image:url("/bilder/flags/flag-at.png");
}

.pb-adv-phone-flag--ch,
.pb-adv-lang-flag--ch {
  background-image:url("/bilder/flags/flag-ch.png");
}


.pb-adv-phone-number{ font-weight:800; text-decoration:none; display:inline-block; }
.pb-adv-phone-number:hover{ text-decoration:none; }
.pb-adv-phone-price{ font-size:.85rem; margin-top:-6px; text-align:center; width:100%; opacity:.7;}
.pb-adv-pin{ font-weight: 600; margin-left:.25rem; }
.pb-adv-sticky-pin{ font-weight: 600; margin-left: .1rem; }

.pb-adv-short{ margin:10px 0 8px; font-size:1rem; line-height:1.5; }
.pb-adv-intro{
  margin: 30px 0;
  font-family:var(--gp-font--platypi);
  font-weight:600;
  letter-spacing:.2px;
  font-size:1.2rem;
  font-style: italic;
  line-height:1.6rem;
  text-align: center;
}

/* USP-Bereich: */
.pb-adv-reasons{
  margin: 20px 0;
  padding: 10px 12px;
}
.pb-adv-reasons-list{
	margin:0;
	padding-left:1rem;
	list-style: none;
	list-style-type: "✨ ";
}
.pb-adv-reasons-item{
  margin: 4px 0;
  font-size:.95rem;
  line-height:1.4;
}

/* Skills-Block mit Label */
.pb-adv-skills{
  margin: 10px 0 10px;
}
.pb-adv-skills-label{
  font-weight:600;
  margin-bottom:4px;
  font-size: .95rem;
}
.pb-adv-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:4px 0 0;
}
.pb-adv-tag{
  border:1px solid #e5e7eb;
  background:#f9fafb;
  padding:4px 10px;
  border-radius: .2rem;
  font-size:.9rem;
}

/* Status-Badge */
.pb-adv-statusbar{
	position: relative;
	display:inline-flex;
	align-items:center;
	gap:6px;
	border:1px solid #e5e7eb;
	background:#f9fafb;
	border-radius: .2rem;
	padding:6px 10px;
	margin:4px 0 10px 0;
	font-size:1rem;
	line-height:1;
	font-family:var(--gp-font--archivo-narrow);
	letter-spacing: .3px;
	font-weight:600;
}
.pb-adv-status-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  background:#9ca3af;
  display:inline-block;
}
.pb-adv-status-text{
  font-weight:600;
  color:inherit;
}
.pb-adv-statusbar[data-state="loading"]{
  border-color:#e5e7eb;
  background:#f9fafb;
  color:#6b7280;
}
.pb-adv-statusbar[data-state="loading"] .pb-adv-status-dot{
  background:#9ca3af;
}

/* Status-Farben */
.pb-adv-statusbar.is-offline{
  background:#f3f4f6;
  border-color:#ccc;
  color:#6b7280;
  opacity:0.7;
}
.pb-adv-statusbar.is-offline .pb-adv-status-dot{
  background:#9ca3af;
}
.pb-adv-statusbar.is-pause{
  background:#effdff;
  border-color:#bbeaf1;
  color:#1da1d8;
}
.pb-adv-statusbar.is-pause .pb-adv-status-dot{
  background:#3bbbf6;
}
.pb-adv-statusbar.is-online{
  background:#ecfdf5;
  border-color:#afe6c4;
  color:#15803d;
}
.pb-adv-statusbar.is-online .pb-adv-status-dot{
  background:#22c55e;
}
@keyframes pb-adv-online-blink{
  0%,100% { opacity:1; }
  50%     { opacity:0.2; }
}

.pb-adv-statusbar.is-online .pb-adv-status-text{
	animation: pb-adv-online-blink 1.2s ease-in-out infinite;
	text-transform: uppercase;
}
.pb-adv-statusbar.is-busy{
  background:#fff7ed;
  border-color:#f4dfc4;
  color:#c2410c;
}
.pb-adv-statusbar.is-busy .pb-adv-status-dot{
  background:#f97316;
}

/* Sticky-Status-Badge im Stil der großen Statusbar */
.pb-adv-statusbar--sticky{
  margin: 0;
  padding: 4px 10px;
  font-size: .8rem;
}

/* Farben vom großen Status-Badge übernehmen, gesteuert über .pb-adv-sticky */
.pb-adv-sticky.is-offline .pb-adv-statusbar--sticky{
  background:#f3f4f6;
  border-color:#ccc;
  color:#6b7280;
}
.pb-adv-sticky.is-pause .pb-adv-statusbar--sticky{
  background:#effdff;
  border-color:#bbeaf1;
  color:#1da1d8;
}
.pb-adv-sticky.is-online .pb-adv-statusbar--sticky{
  background:#ecfdf5;
  border-color:#afe6c4;
  color:#15803d;
}
.pb-adv-sticky.is-busy .pb-adv-statusbar--sticky{
  background:#fff7ed;
  border-color:#f4dfc4;
  color:#c2410c;
}

/* Fremdsprachen-Block mit Label „Neben Deutsch spreche ich:“ */
.pb-adv-languages{
  margin:20px 0 20px;
}
.pb-adv-flaglabel{
  font-weight:600;
  margin-bottom:4px;
}
.pb-adv-flags-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.pb-adv-flag{
  display:inline-flex;
  align-items:center;
  gap: 5px;
  padding: 0;
  font-size:.9rem;
  line-height:1;
}

/* Kalender */
.pb-adv-week{ 
  margin-top:12px; 
}
.pb-adv-subtitle{
}

.pb-adv-central-fallback {
    margin-top: 0.75rem;
}

.pb-adv-central-number {
    font-weight: 800;
}
.pb-adv-central-number a,
.pb-adv-central-number a:link {
    text-decoration: none;
}
.pb-adv-central-number a:hover {
    text-decoration: underline;
}
.pb-adv-central-price-small {
    display: inline-block;
    margin-left: 0.35rem;
    font-size: 0.8rem;
    opacity: 0.8;
    font-weight: 400;
}


/* Mobile / Basis: einspaltig untereinander */
.pb-adv-weeklist{
  display:grid;
  grid-template-columns: 1fr;
  gap:8px;
}
.pb-adv-day{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:6px;
  padding:6px 10px;
  border:1px solid #e5e7eb;
  border-radius: 0 .2rem .2rem 0;
  background:#fcfcfc;
  position:relative;
  overflow:hidden;
}
.pb-adv-day::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg,var(--accent),var(--contrast));
  opacity:.8;
}
.pb-adv-weeklist .pb-adv-day:nth-child(1)::before{
  background:linear-gradient(180deg,#325f97,#6090cc);
  opacity:.8;
}
.pb-adv-dayname{
  font-weight:600;
  font-size:.95rem;
  min-width:0;
  flex:0 0 auto;
}
.pb-adv-daytimes{
  flex:1 1 auto;
  display:flex;
  flex-direction: column;
  flex-wrap: nowrap; 
  gap:4px;
  justify-content:flex-start;
  align-items: flex-end;
  text-align:right;
  font-size:.85rem;
  line-height:1.3;
}
.pb-adv-time{
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
	margin: 0 -0.4em;
	padding: 0.1em 0.4em;
	border-radius: 0.8em 0.3em;
	background: transparent;
	background-image: linear-gradient(
		to right,
		rgba(255, 225, 0, 0.1),
		rgba(255, 225, 0, 0.3) 4%,
		rgba(255, 225, 0, 0.1)
	);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
.pb-adv-sep{ display:none; }
.pb-adv-none{
  color:#9ca3af;
  background:#f6f7f9;
  border-color:#eceef3;
  padding:.15rem .4rem;
  border-radius:.5rem;
}
.pb-adv-day.is-weekend{ 
  background:#f6f8ff; 
}
.pb-adv-no-times {
}

@media (min-width: 640px){
  .pb-adv-title{
	  font-size:42px;
	}
}
/* Mobile */
@media (max-width: 640px){
  /* Header bleibt spaltenweise (Intro oben, darunter Foto + Callbox) */
  .pb-adv-header{
    align-items:stretch;
  }

  .pb-adv-callrow{
    flex-direction:column;
    align-items:center;
  }
  .pb-adv-callrow .pb-adv-photo{
    height:auto;        /* nicht mehr an Callbox-Höhe gebunden */
    width:160px;        /* fixe Größe für Handy */
    max-height:none;
  }
  .pb-adv-headtext{ width:100%; }

  /* Fremdsprachen: Label oben, Liste darunter */
  .pb-adv-flags{
    flex-direction:column;
    align-items:flex-start;
  }
  .pb-adv-flaglabel{
    min-width:0;
  }
  .pb-adv-flags-list{
    width:100%;
  }
}

/* Tablet: 2 Spalten
   Zeile 1: Heute allein links
   Zeile 2: Tag 2 links, Tag 3 rechts
   Zeile 3: Tag 4 links, Tag 5 rechts
   Zeile 4: Tag 6 links, Tag 7 rechts
*/
@media (min-width: 769px){
  .pb-adv-weeklist{
    grid-template-columns: repeat(2, 1fr);
  }

  /* Default zurücksetzen */
  .pb-adv-weeklist .pb-adv-day{
    grid-column:auto;
    grid-row:auto;
  }

  .pb-adv-weeklist .pb-adv-day:nth-child(1){
    grid-column:1;
    grid-row:1;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(2){
    grid-column:1;
    grid-row:2;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(3){
    grid-column:2;
    grid-row:2;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(4){
    grid-column:1;
    grid-row:3;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(5){
    grid-column:2;
    grid-row:3;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(6){
    grid-column:1;
    grid-row:4;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(7){
    grid-column:2;
    grid-row:4;
  }
  
  .pb-adv-callbox{
    flex: 1 0 auto;
    border-radius: 1rem;
  }

  .pb-adv-phone-line{
    font-size:1.7rem;
  }
  .pb-adv-reasons-list{
    padding-left:3rem;
  }
  .pb-adv-reasons-item{
    font-size:1.1rem;
  }
	.pb-adv-title-row{
		margin-bottom: 0;
	}
}

/* Desktop: 3 Spalten
   Zeile 1: Heute allein in Spalte 1
   Zeile 2: Tag 2, 3, 4
   Zeile 3: Tag 5, 6, 7
*/
@media (min-width: 1025px){
  .pb-adv-weeklist{
    grid-template-columns: repeat(3, 1fr);
  }

  /* Default zurücksetzen */
  .pb-adv-weeklist .pb-adv-day{
    grid-column:auto;
    grid-row:auto;
  }

  .pb-adv-weeklist .pb-adv-day:nth-child(1){
    grid-column:1;
    grid-row:1;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(2){
    grid-column:1;
    grid-row:2;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(3){
    grid-column:2;
    grid-row:2;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(4){
    grid-column:3;
    grid-row:2;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(5){
    grid-column:1;
    grid-row:3;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(6){
    grid-column:2;
    grid-row:3;
  }
  .pb-adv-weeklist .pb-adv-day:nth-child(7){
    grid-column:3;
    grid-row:3;
  }
}

/* = Sticky Call Element (mobil)
-------------------------------------------------------------- */

.pb-adv-sticky{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  transform: translateY(100%);
  opacity: 0;
  pointer-events: none;
  transition: transform .25s ease-out, opacity .25s ease-out;
}

/* Nur anzeigen, wenn JS es erlaubt */
.pb-adv-sticky.is-visible{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

/* Grundlayout */
.pb-adv-sticky-inner{
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--base-3, #fff);
  box-shadow: 0 0 10px rgba(0,0,0,0.05);
  padding: 10px;
}

.pb-adv-sticky-photo{
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
}
.pb-adv-sticky-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pb-adv-sticky-box{
  flex: 1 1 auto;
  min-width: 0;
}

.pb-adv-sticky-row1{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  margin-bottom:2px;
  flex-wrap:wrap; /* falls Name + Badge zu lang werden */
}

.pb-adv-sticky-name{
	font-weight: 700;
	font-size: 1rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-family: var(--gp-font--platypi);
}
.pb-adv-sticky-status-text{
  font-size: .8rem;
  font-weight: 600;
  white-space: nowrap;
}
.pb-adv-statusbar--sticky .pb-adv-status-dot {
	transform: scale(0.85);
}

/* Status-Farben übernehmen wir über Klassen (wie bei Statusbar) */
.pb-adv-sticky.is-online .pb-adv-sticky-status-text{
  color:#15803d;
}
.pb-adv-sticky.is-busy .pb-adv-sticky-status-text{
  color:#c2410c;
}
.pb-adv-sticky.is-pause .pb-adv-sticky-status-text{
  color:#1da1d8;
}
.pb-adv-sticky.is-offline .pb-adv-sticky-status-text{
  color:#6b7280;
}

.pb-adv-sticky-row2{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.9rem;
}

/* Phone-Zeile im Sticky leicht schlanker als im Header */
.pb-adv-sticky-phone-line{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:1rem;
  white-space:nowrap; 
}
/* Nummer im Sticky niemals umbrechen */
.pb-adv-sticky-phone{
  white-space:nowrap;
}
/* Preis im Sticky rechts ausrichten und Breite aus globalem Stil überschreiben */
.pb-adv-sticky-price{
  font-size:.75rem;
  margin-left:auto;
  width:auto;                  /* überschreibt width:100% aus .pb-adv-phone-price */
  text-align:right;
  padding-top: 10px;
}

/* Nur auf Mobil zeigen */
@media (min-width: 769px){
  .pb-adv-sticky{
    display: none;
  }
}

/* = CountryCall
-------------------------------------------------------------- */
.flags-out {
	position: relative;
	padding: 0;
	width: 1100px;
	margin: 0 auto;
	text-align: right;
}
.flags:before { content: 'Sie rufen an aus: '; }
.flags {
  display:flex;
  gap:.3rem;
  align-items:center;
  margin: 0;
  padding: 5px 0 5px 0;
  z-index: 90;
  font-size: .8em;
  justify-content: right;
}
.flags button {
  padding: .4rem .6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, border-color 0.2s, transform 0.2s;
  will-change: transform;
  opacity: .4;
	border-radius: .2rem;
}
.flags button:hover {
  transform: scale(1.1);
}
.flag-btn {
	width:19px; height:16px;
	border: 0;
	border-radius:0;
	background:none center/cover no-repeat;
	padding: 0;
	cursor:pointer;
}
.flag-btn:hover { background-color: rgba(0, 0, 0, 0); opacity: 1; }
.flag-btn[aria-pressed="true"] { opacity: 1; }
.flag-de { background-image:url("/bilder/flags/flag-de.png"); }
.flag-at { background-image:url("/bilder/flags/flag-at.png"); }
.flag-ch { background-image:url("/bilder/flags/flag-ch.png"); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hidden { display:none !important; }
.no-js { display:block; }

/* ===== Advisor Big List ===== */

.pb-adv-big{
  margin: 20px 0;
}

.pb-adv-big-list{
    display:grid;
    grid-template-columns: 1fr;
    gap:16px;
    max-width:100%;
    align-items:stretch; /* <<< sorgt dafür, dass ALLE Boxen die gleiche Höhe bekommen */
}
.pb-adv-big-card{
	display:flex;
	flex-direction:column;
	gap:8px;
	border-radius:.5rem;
	padding:12px;
	background:#fefefe;
	width:100%;              /* Karte darf nicht breiter werden als Spalte */
    height:100%;     /* <<< Karte füllt die volle Grid-Höhe */
	box-sizing:border-box;   /* Padding + Border in Breite einrechnen */
	box-shadow: 0 6px 12px rgba(11,11,11,0.08);
	position: relative;              /* Referenz für das Badge */
}
/* Top-Online-Berater in advisor_big besonders hervorheben */
.pb-adv-big-card--top {
    border: 2px solid var(--accent);
	transition: transform .2s ease;
	box-shadow: 0 6px 20px rgba(11,11,11,0.2);
}
@media (min-width: 1025px) {
	.pb-adv-big-card{
		transition: transform .2s ease, box-shadow .3s ease;
	}
	.pb-adv-big-card:hover {
		transform: scale(1.04);
		box-shadow: 0 6px 16px rgba(11,11,11,0.1);
	}
	
}
/* Badge */
.pb-adv-top-badge {
    position: absolute;
    top: -12px;
    left: .5rem;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: .3rem;
    background: var(--accent);
	color: #fff;
	text-transform: uppercase;
	font-family:var(--gp-font--archivo-narrow);
	letter-spacing:.2px;
}

.pb-adv-top-badge::before {
    content: '\f005';
	font-family: "Font Awesome 7 Free";
	margin-right: 5px;
}
.pb-adv-big-top{
    display:flex;
    gap:12px;
    flex-wrap:nowrap;          /* kein Zeilenumbruch mehr */
    align-items:center;        /* vertikal zum Bild zentriert */
}

.pb-adv-big-top-content{
    display:flex;
    flex-direction:column;
    justify-content:center;       /* Inhalt zentrieren */
    flex:1 1 auto;
    min-width:0;
}
.pb-adv-big-photo{
  flex:0 0 80px; /* Bildspalte schmal halten */
}
.pb-adv-big-photo .pb-adv-photo {
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}
.pb-adv-big-photo img{
	display:block;
    width:80px;
    height:80px;
	object-fit:cover;
	border-radius: 50%;
}
.pb-adv-big-photo-link{
  display:block;
}
.pb-adv-big-bottom{
  margin-top:4px;
  flex:1 1 auto;     /* nimmt den restlichen Platz in der Karte ein */
  display:flex;      /* damit der Content darin gestreckt werden kann */
}

.pb-adv-big-content{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;   /* alles untereinander */
}

.pb-adv-big-row{
  margin-bottom:6px;
}

.pb-adv-big-row--name{
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:12px;
}

.pb-adv-big-name{
	font-weight:700;
	font-size:1.3rem;
	flex:1 1 auto;
	min-width:0;
	overflow-wrap:break-word;
	word-break:break-word;
	font-family: var(--gp-font--platypi);
}

.pb-adv-big-name a{
  text-decoration:none;
}

.pb-adv-big-name a:hover{
  text-decoration:none;
}

/* Status-Badge rechtsbündig */
.pb-adv-big-status{
  flex:0 0 auto;
  display:flex;
  justify-content:flex-end;
}
.pb-adv-big-status .pb-adv-statusbar{
  transform: scale(0.8);
  transform-origin: right center;
}
.pb-adv-big-row--rating{
    margin-top: 0;
}
.pb-adv-big-rating .glsr-summary-wrap{
    margin-top: -6px !important;   /* rückt optisch nach oben */
    transform: scale(0.85);
    transform-origin: left center;
}

.pb-adv-big-intro{
  margin: 0 0 10px;
  font-size:.95rem;
  line-height:1.5;
  font-family: var(--gp-font--platypi);
  font-style: italic;
}

/* Mobile Verfügbarkeitszeile */
.pb-adv-big-mobile-availability {
    font-weight:600;
    font-size:.90rem;
    margin-top:10px;
    margin-bottom:6px;
    text-align:center;
    display:none; /* mobile-only */
}
.pb-adv-avail-time{
    font-weight: normal;
    font-style: italic;
}

.pb-adv-big-row--phone{
  display:flex;
  flex-direction:column;
  gap:0;
  margin-top:auto;         /* schiebt Nummer/Preis ans untere Ende der Box */
  align-items:center;        /* HIERMIT WIRD ZENTRIERT */
  text-align:center;         /* sorgt für schöne Textmitte */
  border-top: 1px solid var(--base);
}

.pb-adv-big-phones-label{
  font-weight:600;
  font-size:.95rem;
  text-align: center;
  margin-top: 15px;
  margin-bottom: -8px;
}

.pb-adv-big-phones .pb-adv-phones--header{
  margin:0;
}
.pb-adv-big-phones{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:center;       /* Nummer zentrieren */
    justify-content:center;
    text-align:center;
}

.pb-adv-big-row--skills .pb-adv-skills{
  margin:0;
}

.pb-adv-big-call-cta{
  display:none;              /* Desktop/Tablet: unsichtbar */
}

.pb-adv-big-call-btn{
  width:100%;
  padding:8px 10px;
  margin-bottom: -5px;
  border-radius:.35rem;
  border:0;
  background:#15803d;
  color:#fff;
  font-weight:600;
  font-size:.95rem;
  text-align:center;
  cursor:pointer;
  transition: opacity .25s ease, transform .25s ease, background-color .15s ease;
}
/* Loading-Zustand mit Spinner */
.pb-adv-big-call-btn.is-loading{
  position:relative;
  cursor:default;
  opacity:0.8;
  color:transparent;        /* Text ausblenden, nur Spinner zeigen */
}

/* Spinner */
.pb-adv-big-call-btn.is-loading::before{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:16px;
  height:16px;
  margin:-8px 0 0 -8px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.4);
  border-top-color:#ffffff;
  animation: pbAdvSpin .6s linear infinite;
}

/* Spin-Animation */
@keyframes pbAdvSpin{
  from { transform:rotate(0deg); }
  to   { transform:rotate(360deg); }
}
/* Wenn echter Status gesetzt wurde (online / busy / zentral) */
.pb-adv-big-call-btn.is-ready{
  opacity:1;
  animation: pbAdvBtnFadeIn .25s ease-out;
}

/* kleiner Pop/Fade-In */
@keyframes pbAdvBtnFadeIn{
  from{
    opacity:0;
    transform:translateY(4px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.pb-adv-big-call-btn:hover{
  background:#166534;
  color: #fff;
}
/* wenn Leitung frei (online) – Styles bleiben grün */
.pb-adv-big-call-btn.is-online{
  background:#15803d;
}
.pb-adv-big-call-btn.is-online:hover{
  background:#166534;
}

/* wenn busy: deaktiviert, grau */
.pb-adv-big-call-btn.is-disabled,
.pb-adv-big-call-btn.is-busy{
  background:#e5e7eb;
  color:#9ca3af;
  cursor:default;
}
.pb-adv-big-call-btn.is-disabled:hover,
.pb-adv-big-call-btn.is-busy:hover{
  background:#e5e7eb;
}

/* wenn offline/pause: Termin über Zentrale – z.B. blau */
.pb-adv-big-call-btn.is-central{
  background:var(--accent);
}
.pb-adv-big-call-btn.is-central:hover{
  background:var(--accent);
  opacity: .75;
}

.pb-adv-big-languages{
  font-size:.95rem;
  display:flex;
    align-items:center;   /* Label + Flags perfekt vertikal ausrichten */
    gap:6px;
}

.pb-adv-big-languages-label{
	font-weight:600;
	display:flex;
	align-items:center;   /* Label vertikal mittig */
	line-height:1.2;      /* minimale Anpassung, verhindert leichtes „Abhängen“ */
}

.pb-adv-big-languages-flags{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-items:center;    /* Flags selbst vertikal zentriert */
}

.pb-adv-flag,
.pb-adv-lang-flag,
.pb-adv-lang-flag--compact{
    display:inline-flex !important;
    align-items:center !important;
    line-height:1;          /* verhindert Hoch-/Tiefstand */
}

/* kompakte Sprach-Flaggen für Big-List */
.pb-adv-lang-flag--compact{
  font-size:1.1em;
}

/* Button "Weitere Berater laden" */
.pb-adv-big-loadmore{
  margin-top:16px;
  padding:8px 16px;
  border-radius:.3rem;
  border:1px solid #e5e7eb;
  background:#f9fafb;
  cursor:pointer;
  font-size:.95rem;
}

.pb-adv-big-loadmore:hover{
  background:#f3f4f6;
}

/* Fallback-Box bei keinen Beratern */
.pb-adv-big-empty{
  border:1px solid #e5e7eb;
  border-radius:.5rem;
  padding:12px;
  background:#fff;
  font-size:.95rem;
}

.pb-adv-big-empty p{
  margin:0 0 6px;
}

/* Mobile: Bild oben, Text darunter; Intro kürzen */
@media (max-width: 768px){
  .pb-adv-big-card{
    flex-direction:column;
    padding-top: 30px;          /* Platz für das Badge oben schaffen */
  }
  .pb-adv-big-top{
    flex-direction:row;
    align-items:center;   /* auch mobil mittig zum Bild */
    flex-wrap:nowrap;     /* sicherheitshalber hier nochmal */
  }

  .pb-adv-big-photo{
    flex:0 0 auto;
  }

  /* Name soll die ganze Zeile rechts vom Bild nutzen */
  .pb-adv-big-row--name{
    justify-content:flex-start;
    align-items:flex-start;
  }

  .pb-adv-big-name{
    max-width:100%;
  }

  /* LIVE-Status-Badge: fest oben rechts, außerhalb des Flows */
  .pb-adv-big-status{
    position:absolute;
    top:8px;
    right:10px;
    display:flex;
    justify-content:flex-end;
  }

  .pb-adv-big-status .pb-adv-statusbar{
    transform: scale(0.8);
    transform-origin: top right;
  }

  .pb-adv-big-intro{
    display:-webkit-box;
    -webkit-line-clamp:4;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  
  .pb-adv-big-mobile-availability{
    display:block;
  }

  /* Label nur Desktop/Tablet sichtbar */
  .pb-adv-big-phones-label{
    display:none;
  }

  /* CTA-Button nur mobil */
  .pb-adv-big-call-cta{
    display:block;
	width: 100%;
    margin-top:6px;
  }
}

@media (min-width: 769px) and (max-width: 1024px){
  .pb-adv-big-list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items:stretch;
  }
}

@media (min-width: 769px){
	.pb-adv-big-row--rating{
		margin-top: -5px !important;
	}
}
@media (min-width: 1025px){
  .pb-adv-big-list{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items:stretch;
  }
}
/* ===== Advisor Big – Filterzeile ===== */

.pb-adv-big-filter{
  margin-bottom:20px;
}

.pb-adv-big-filter-toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius: .3rem;
  border:0;
  font-size:.85rem;
  cursor:pointer;
  background-color: var(--bg-color-1);
  color: var(--contrast);
}
.pb-adv-big-filter-toggle:hover{
  background-color: var(--accent);
  color: #fff;
}
.pb-adv-filter-icon{
  font-size: 0.9rem;     /* leicht kleiner als Text */
  opacity: 0.9;
  transition: transform .2s ease;
}

/* Optional: kleine Bewegung, wenn Filter geöffnet ist */
.pb-adv-big-filter-toggle.is-open .pb-adv-filter-icon{
  transform: rotate(0deg); /* oder z.B. rotate(10deg) für Effekt */
}

.pb-adv-big-filter-toggle.is-open{
  background-color: var(--accent);
  color: #fff;
}

.pb-adv-big-filter-panel{
  margin-top:8px;
  margin-bottom:20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #ddd;
}

.pb-adv-big-filter-panel.is-collapsed{
  display:none;
}

.pb-adv-big-filter-inner{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  align-items:flex-start;
}

.pb-adv-big-filter-group{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}

.pb-adv-big-filter-group--skills {
	margin-bottom: 10px;
}

.pb-adv-big-filter-label{
  font-weight:600;
  font-size:.9rem;
}

.pb-adv-big-filter-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.pb-adv-big-filter-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 8px;
  border-radius: .3rem;
  background:#ffffff;
  border:1px solid #e5e7eb;
  font-size:.85rem;
  cursor:pointer;
}

.pb-adv-big-filter-chip input{
  margin:0;
}

.pb-adv-big-filter-reset{
  margin-left:auto;
  padding:4px 10px;
  font-size:.85rem;
  cursor:pointer;
  white-space:nowrap;
  color: var(--contrast);
  background-color: var(--bg-color-1);
}

.pb-adv-big-filter-reset:hover{
}

/* Mobil: Filter in 2 Reihen umbrechen */
@media (max-width: 768px){
  .pb-adv-big-filter-inner{
    flex-direction:column;
    align-items:flex-start;
  }

  .pb-adv-big-filter-reset{
    margin-left:0;
  }
}


/* = Votebox Unterseite
-------------------------------------------------------------- */
.glsr-review-author {
	font-style: italic;
}
.glsr-review-author:before {
	content: '~ ';
}
span.vtitle {
	display: block;
	font-weight: 600;
	font-size: 1.2em;
	margin-bottom: 15px;
}
@media only screen and (max-width: 960px) {
	.sidebar_b {
        display: flex;
	}
}
@media (max-width: 900px) {
	.sidebar_b {
		flex-direction: row;
	}

    .site-content {
        flex-direction: column
    }

    .container .site-content .content-area {
        width: auto
    }

    .is-left-sidebar.sidebar,.is-right-sidebar.sidebar {
        width: auto;
        order: initial
    }

    .is-left-sidebar+.is-right-sidebar .inside-right-sidebar {
        margin-top: 0
    }

    .both-left .inside-left-sidebar,.both-left .inside-right-sidebar,.both-right .inside-left-sidebar,.both-right .inside-right-sidebar {
        margin-right: 0;
        margin-left: 0
    }

    #main {
        margin-left: 0;
        margin-right: 0
    }

    body:not(.no-sidebar) #main {
        margin-bottom: 0
    }

    .alignleft,.alignright {
        float: none;
        display: block;
        margin-left: auto;
        margin-right: auto
    }

    .comment .children {
        padding-left: 10px;
        margin-left: 0
    }

    .entry-meta {
        font-size: inherit
    }

    .entry-meta a {
        line-height: 1.8em
    }
	.widget-area .widget {
		padding: 30px 0;
	}
}
@media only screen and (max-width: 480px) {
	.sidebar_b {
		flex-direction: column;
	}
}
@media (max-width: 768px) { }
@media (min-width: 769px) and (max-width: 1024px) { }
@media (min-width: 1025px) { }
@media only screen and (max-width: 1024px) {
	.flags-out { width: 100%; }
	.flags { padding-right: 10px; }
}
