/*
 * Agent Franz Markenstil.
 * Traegt die selbst gehosteten Schriften, die Farbrollen und die zwei
 * Darstellungen (Navy als Vorgabe, Papier bei heller Systemeinstellung).
 * Quelle der Werte: das aktive Novamira Design System "agent-franz".
 * Schriften liegen lokal, es wird bewusst kein Fremdanbieter geladen.
 */

@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('/wp-content/uploads/agentfranz-fonts/playfair-700.woff2') format('woff2');}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url('/wp-content/uploads/agentfranz-fonts/source-serif-400.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url('/wp-content/uploads/agentfranz-fonts/source-sans-400.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url('/wp-content/uploads/agentfranz-fonts/source-sans-600.woff2') format('woff2');}

:root{
  --af-bg:#112233;
  --af-surface:#15324C;
  --af-ink:#DCE6EF;
  --af-heading:#FFFFFF;
  --af-accent:#E0A526;
  --af-muted:#8AA4BD;
  --af-rule:rgba(138,164,189,.4);
  --af-badge-border:rgba(138,164,189,.35);
  --af-serif:'Source Serif 4',Georgia,'Times New Roman',serif;
  --af-display:'Playfair Display',Georgia,serif;
  --af-sans:'Source Sans 3',-apple-system,system-ui,sans-serif;
}

@media (prefers-color-scheme:light){
  :root{
    --af-bg:#FFFFFF;
    --af-surface:#EFF4F8;
    --af-ink:#1B232C;
    --af-heading:#1A3C5D;
    --af-muted:#586571;
    --af-rule:#E2E7EC;
    --af-badge-border:#E2E7EC;
  }
}

/* Grundflaeche der Marken-Seiten */
body.af-brand{
  background:var(--af-bg);
  background-image:radial-gradient(120% 100% at 50% -8%,var(--af-surface) 0%,var(--af-bg) 58%);
  background-attachment:fixed;
  color:var(--af-ink);
  font-family:var(--af-serif);
  -webkit-font-smoothing:antialiased;
}

body.af-brand h1,body.af-brand h2{font-family:var(--af-display);font-weight:700;color:var(--af-heading);line-height:1.05;}
body.af-brand p{font-family:var(--af-serif);line-height:1.62;}
body.af-brand a{color:var(--af-muted);text-decoration:none;}
body.af-brand a:hover{color:var(--af-accent);}

/* Portraet-Marke: zwei Schnitte, je nach Darstellung */
.af-portrait img{width:clamp(6.5rem,21vw,9.75rem);height:auto;}
.af-portrait-light{display:block;}
.af-portrait-navy{display:none;}
@media (prefers-color-scheme:light){
  .af-portrait-light{display:none;}
  .af-portrait-navy{display:block;}
}

/* Status-Kennzeichen: das einzige runde Element der Seite.
 * Die sichtbaren Regeln stehen weiter unten bei den Elementor-Anpassungen,
 * weil der Text dort in einem inneren Element sitzt. Hier steht nur die
 * Bewegung des Punktes. */
@keyframes af-pulse{
  0%{box-shadow:0 0 0 0 rgba(224,165,38,.5);}
  70%{box-shadow:0 0 0 .55rem rgba(224,165,38,0);}
  100%{box-shadow:0 0 0 0 rgba(224,165,38,0);}
}

/* Fusszeile und Sprachwahl */
.af-foot,.af-langs{font-family:var(--af-sans);letter-spacing:.05em;color:var(--af-muted);}
.af-foot{font-size:.85rem;}
.af-langs{font-size:.78rem;letter-spacing:.08em;}
.af-langs .current-lang,.af-langs [aria-current]{color:var(--af-ink);font-weight:600;}

/* Rechtstexte: lesbarer Fliesstext auf derselben Flaeche */
.af-legal{max-width:44rem;margin:0 auto;}
.af-legal h2{font-size:clamp(1.25rem,3.2vw,1.5rem);margin:2.6rem 0 .8rem;}
.af-legal h3{font-family:var(--af-sans);font-weight:600;color:var(--af-ink);font-size:1.02rem;letter-spacing:.02em;margin:1.6rem 0 .4rem;}
.af-legal p,.af-legal ul{color:var(--af-ink);}
.af-legal ul{margin:0 0 1rem 1.3rem;}
.af-legal li{margin-bottom:.4rem;}
.af-legal a{color:var(--af-accent);}
/* Der Bestandstext bringt die Klasse "stand" mit, nicht "af-stand". */
.af-legal .stand,body.af-brand .af-legal .stand{font-family:var(--af-sans);font-size:.82rem;color:var(--af-muted);letter-spacing:.04em;margin-bottom:2.4rem;display:block;}

/* Elementor haengt die Klassen an den aeusseren Rahmen des Widgets, nicht an
 * den Text. Die folgenden Regeln zielen deshalb auf die inneren Elemente und
 * setzen sich mit hoeherer Spezifitaet gegen die Vorgaben des Elementor-Kits
 * durch. Ohne sie klebt der Punkt am Kennzeichen und die Fusszeile erbt die
 * Serifenschrift. */

body.af-brand .af-badge .elementor-heading-title{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.375rem .9rem;border:1px solid var(--af-badge-border);border-radius:9999px;
  font-family:var(--af-sans);font-weight:600;font-size:.78rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--af-ink);
  line-height:1.4;
}
body.af-brand .af-badge .elementor-heading-title::before{
  content:"";flex:0 0 auto;width:.5rem;height:.5rem;border-radius:9999px;
  background:var(--af-accent);animation:af-pulse 2.4s ease-out infinite;
}

body.af-brand .af-foot,
body.af-brand .af-foot p,
body.af-brand .af-langs,
body.af-brand .af-langs p{
  font-family:var(--af-sans);color:var(--af-muted);margin:0;
}
body.af-brand .af-foot,body.af-brand .af-foot p{font-size:.85rem;letter-spacing:.05em;}
body.af-brand .af-langs,body.af-brand .af-langs p{font-size:.78rem;letter-spacing:.08em;}
body.af-brand .af-langs a[aria-current]{color:var(--af-ink);font-weight:600;}

body.af-brand .af-lead,
body.af-brand .af-lead p{
  font-family:var(--af-serif);color:var(--af-ink);
  font-size:clamp(1.05rem,2.4vw,1.18rem);line-height:1.62;margin:0;
}

body.af-brand .af-brandname .elementor-heading-title{
  font-family:var(--af-display);font-weight:700;color:var(--af-heading);
  font-size:clamp(2.5rem,7vw,3.5rem);line-height:1.05;letter-spacing:.005em;
}

/* Rechtstexte: die Klasse sitzt am Widget, der Text liegt darin */
body.af-brand .af-legal h1{font-family:var(--af-display);color:var(--af-heading);font-size:clamp(1.9rem,5vw,2.5rem);line-height:1.1;margin-bottom:.4rem;}
body.af-brand .af-legal h2{font-family:var(--af-display);color:var(--af-heading);}
body.af-brand .af-legal p,body.af-brand .af-legal li{font-family:var(--af-serif);}

@media (prefers-reduced-motion:reduce){
  body.af-brand .af-badge .elementor-heading-title::before{animation:none;}
}
