/* ============================================================
   QUENTIN TREUHAND GmbH — Site Stylesheet v2
   Premium-Redesign: Navy-950-Chrome, Gold, Playfair + Inter.
   Ersetzt site.css — alle Komponentenklassen bleiben kompatibel.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* Navy */
  --navy-950:#060F1D; --navy-900:#0B1F3A; --navy-800:#0E2A47; --navy-700:#14375B; --navy-600:#1C466F; --navy-500:#2E5C87;
  /* Gold */
  --gold-700:#8E7340; --gold-600:#A08853; --gold-500:#B89968; --gold-400:#CCAE82; --gold-300:#E2CBA6; --gold-100:#F3E9D6;
  --gold-text:#7E6836; /* AA-konformer Goldton für kleinen Text auf hellem Grund (≥5:1) */
  /* Ink */
  --ink-900:#111419; --ink-800:#1D2128; --ink-700:#363B44; --ink-600:#525862; --ink-500:#636A73;
  --ink-400:#9AA0AA; --ink-300:#C4C8CF; --ink-200:#DFE2E7; --ink-100:#ECEEF1; --ink-50:#F6F7F9;
  /* Paper */
  --paper:#FBFAF7; --paper-2:#F4F1EA; --paper-3:#EBE6DA; --white:#FFFFFF; --cream:#F6F2E9;
  /* Semantic */
  --success:#3F7A4B; --warning:#B07A1E; --danger:#8B2A2A; --info:var(--navy-600);

  --fg-1:var(--ink-900); --fg-2:var(--ink-700); --fg-3:var(--ink-500);
  --fg-on-dark:#F6F2E9; --fg-on-dark-muted:rgba(246,242,233,0.62);
  --bg-1:var(--paper); --bg-2:var(--paper-2); --bg-3:var(--white); --bg-dark:var(--navy-900);
  --brand:var(--navy-800); --brand-ink:var(--navy-900); --accent:var(--gold-500); --accent-strong:var(--gold-600);
  --border-1:#E4E0D5; --border-2:#D3CEC0; --border-strong:var(--navy-800);
  --ring:color-mix(in oklab, var(--gold-500) 50%, transparent);

  --font-serif:'Playfair Display','Cormorant Garamond','Georgia',serif;
  --font-sans:'Inter','Helvetica Neue','Arial',system-ui,sans-serif;
  --font-mono:'JetBrains Mono','SFMono-Regular','Menlo',monospace;

  --fs-display:clamp(2.75rem,4.5vw,4.25rem);
  --fs-h1:clamp(2rem,3.2vw,3rem);
  --fs-h2:clamp(1.7rem,2.6vw,2.4rem);
  --fs-h3:1.375rem; --fs-h4:1.125rem; --fs-lg:1.125rem; --fs-base:1rem;
  --fs-sm:0.9375rem; --fs-xs:0.8125rem; --fs-micro:0.6875rem;

  --lh-tight:1.12; --lh-snug:1.3; --lh-normal:1.55; --lh-loose:1.7;
  --ls-tight:-0.018em; --ls-normal:0; --ls-eyebrow:0.22em;

  --radius-xs:2px; --radius-sm:3px; --radius-md:6px; --radius-lg:10px; --radius-xl:16px; --radius-pill:999px;

  --shadow-hairline:0 0 0 1px var(--border-1);
  --shadow-sm:0 1px 2px rgba(14,42,71,0.06),0 1px 1px rgba(14,42,71,0.04);
  --shadow-md:0 10px 30px -8px rgba(11,31,58,0.14),0 2px 8px rgba(11,31,58,0.06);
  --shadow-lg:0 32px 70px -20px rgba(6,15,29,0.45),0 8px 24px -8px rgba(6,15,29,0.25);
  --shadow-gold:0 0 0 1px var(--gold-400),0 8px 24px rgba(184,153,104,0.25);

  --ease:cubic-bezier(0.22,0.61,0.36,1);
  --ease-in-out:cubic-bezier(0.65,0.05,0.36,1);
  --t-fast:140ms; --t-med:220ms; --t-slow:360ms;

  --container:1240px; --container-narrow:880px; --nav-h:78px;
}

* { box-sizing:border-box; }
html { font-family:var(--font-sans); color:var(--fg-1); background:var(--bg-1); scroll-behavior:smooth; }
body { font-size:var(--fs-base); line-height:var(--lh-normal); color:var(--fg-2); margin:0; -webkit-font-smoothing:antialiased; }

h1,h2,h3,h4 { color:var(--fg-1); font-family:var(--font-serif); font-weight:600; line-height:var(--lh-snug); letter-spacing:var(--ls-tight); margin:0; }
h1 { font-size:var(--fs-h1); line-height:var(--lh-tight); }
h1,h2,h3 { text-wrap:balance; }
:focus-visible { outline:2px solid var(--gold-500); outline-offset:3px; border-radius:2px; }
h2 { font-size:var(--fs-h2); }
h3 { font-size:var(--fs-h3); }
h4 { font-size:var(--fs-h4); font-family:var(--font-sans); font-weight:600; letter-spacing:0; }

.display { font-family:var(--font-serif); font-size:var(--fs-display); line-height:1.05; letter-spacing:-0.025em; font-weight:600; color:var(--fg-1); }
p { margin:0 0 1em; line-height:var(--lh-loose); color:var(--fg-2); text-wrap:pretty; }
p.lead { font-size:var(--fs-lg); color:var(--fg-2); }
small,.text-sm { font-size:var(--fs-sm); }
code { font-family:var(--font-mono); font-size:0.9em; background:var(--ink-100); padding:0.1em 0.35em; border-radius:var(--radius-sm); }
hr { border:0; border-top:1px solid var(--border-1); margin:32px 0; }
::selection { background:var(--gold-300); color:var(--navy-900); }
img { max-width:100%; display:block; }

a { color:var(--navy-700); text-decoration:none; border-bottom:1px solid transparent; transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease); }
a:hover { color:var(--navy-900); border-bottom-color:var(--gold-500); }

/* ---------- Layout ---------- */
.container { max-width:var(--container); margin:0 auto; padding:0 36px; }
.container-narrow { max-width:var(--container-narrow); margin:0 auto; padding:0 36px; }
.section { padding:104px 0; }
.section.tight { padding:72px 0; }
.section.alt { background:var(--paper-2); }
.section.dark { background:linear-gradient(180deg, var(--navy-900) 0%, var(--navy-950) 100%); color:var(--fg-on-dark-muted); }
.section.dark h1,.section.dark h2,.section.dark h3 { color:var(--cream); }
.section.dark p { color:var(--fg-on-dark-muted); }

/* ---------- Eyebrow ---------- */
.eyebrow { display:inline-flex; align-items:center; gap:14px; white-space:nowrap; font-family:var(--font-sans);
  font-size:11.5px; letter-spacing:var(--ls-eyebrow); text-transform:uppercase;
  color:var(--gold-text); font-weight:600; margin-bottom:16px; }
.eyebrow::before { content:""; width:34px; height:1px; background:var(--gold-500); }
.eyebrow.center::before { display:none; }
.eyebrow.center { justify-content:center; }
.section.dark .eyebrow, .page-hero .eyebrow, .hero .eyebrow { color:var(--gold-400); }

.section-head { margin-bottom:60px; max-width:680px; }
.section-head.center { text-align:center; margin-left:auto; margin-right:auto; }
.section-head.center .eyebrow { justify-content:center; }
.section-head h2 { margin-bottom:16px; }
.section-head p { color:var(--ink-600); max-width:640px; font-size:16.5px; }
.section-head.center p { margin-left:auto; margin-right:auto; }
.section.dark .section-head p { color:var(--fg-on-dark-muted); }

/* ---------- Buttons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 28px; border-radius:var(--radius-sm);
  font-family:var(--font-sans); font-size:14.5px; font-weight:500; cursor:pointer; border:1px solid transparent;
  transition:all var(--t-med) var(--ease); white-space:nowrap; line-height:1; }
.btn:hover { border-bottom-color:transparent; }
.btn-primary { background:var(--navy-800); color:var(--paper); border-color:var(--navy-800); }
.btn-primary:hover { background:var(--navy-700); color:var(--paper); transform:translateY(-1px); }
.btn-gold { background:var(--gold-500); color:var(--navy-950); border-color:var(--gold-500); }
.btn-gold:hover { background:var(--gold-400); border-color:var(--gold-400); color:var(--navy-950); transform:translateY(-1px); }
.btn-ghost { background:transparent; color:var(--navy-800); border-color:var(--border-2); }
.btn-ghost:hover { border-color:var(--gold-500); color:var(--navy-900); }
.section.dark .btn-ghost, .page-hero .btn-ghost, .hero .btn-ghost, .cta-band .btn-ghost { color:var(--cream); border-color:rgba(246,242,233,0.35); background:transparent; }
.section.dark .btn-ghost:hover, .page-hero .btn-ghost:hover, .hero .btn-ghost:hover, .cta-band .btn-ghost:hover { border-color:var(--gold-400); color:var(--gold-300); background:transparent; }
.section.dark .btn-primary, .cta-band .btn-primary { background:var(--gold-500); color:var(--navy-950); border-color:var(--gold-500); }
.section.dark .btn-primary:hover, .cta-band .btn-primary:hover { background:var(--gold-400); border-color:var(--gold-400); }
.btn-link { background:transparent; color:var(--navy-800); border:none; border-bottom:1px solid var(--gold-500);
  padding:2px 0; border-radius:0; font-weight:500; }
.btn-link:hover { color:var(--navy-900); border-bottom-color:var(--gold-text); }
.section.dark .btn-link { color:var(--gold-300); border-bottom-color:var(--gold-500); }

/* ---------- Cards ---------- */
.card { background:#fff; border:1px solid var(--border-1); border-radius:var(--radius-md); padding:36px;
  box-shadow:var(--shadow-sm); transition:all var(--t-med) var(--ease); }
.card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--border-2); }
.num-badge { width:38px; height:38px; border-radius:999px; border:1.5px solid var(--gold-500); color:var(--gold-text);
  font-family:var(--font-serif); font-weight:600; font-size:16px; display:flex; align-items:center; justify-content:center; }

/* ---------- Forms ---------- */
.field { display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
.field label { font-size:var(--fs-sm); font-weight:500; color:var(--ink-800); }
.field input,.field textarea,.field select { font-family:var(--font-sans); font-size:15px; color:var(--ink-900);
  background:#fff; border:1px solid var(--border-2); border-radius:var(--radius-sm); padding:13px 15px;
  transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease); width:100%; }
.field input:focus,.field textarea:focus,.field select:focus { outline:none; border-color:var(--gold-500);
  box-shadow:0 0 0 3px var(--ring); }
.field textarea { resize:vertical; min-height:120px; }

/* ---------- Skip-Link ---------- */
.skip-link { position:absolute; left:-9999px; top:0; z-index:200; background:var(--gold-500); color:var(--navy-950); padding:12px 20px; font-weight:600; font-size:14px; border:none; }
.skip-link:focus { left:12px; top:12px; }

/* ---------- Topbar ---------- */
.topbar { background:var(--navy-950); color:rgba(246,242,233,0.6); font-size:12.5px; }
.topbar .inner { max-width:var(--container); margin:0 auto; padding:9px 36px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.topbar a { color:rgba(246,242,233,0.8); border:none; }
.topbar a:hover { color:var(--gold-300); }
.topbar .left { display:flex; gap:26px; }
.topbar .left span { display:inline-flex; align-items:center; gap:7px; }
.topbar .left svg { opacity:.55; }
@media (max-width:1080px){ .topbar { display:none; } }

/* ---------- Nav (v2, dunkel) ---------- */
.site-nav { position:sticky; top:0; z-index:80; background:rgba(8,18,33,0.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(184,153,104,0.22); }
.site-nav .nav-inner { max-width:var(--container); margin:0 auto; padding:0 36px; height:var(--nav-h);
  display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:flex; align-items:center; gap:14px; border:none; }
.brand:hover { border:none; }
.brand .mark { width:42px; height:42px; flex:none; }
.brand .word { display:flex; flex-direction:column; line-height:1; }
.brand .word b { font-family:var(--font-serif); font-size:22px; font-weight:600; color:var(--cream); letter-spacing:0.03em; }
.brand .word span { font-size:8px; letter-spacing:0.24em; text-transform:uppercase; color:var(--gold-400); font-weight:600; margin-top:5px; }
.nav-links { display:flex; gap:30px; align-items:center; }
.nav-links a { font-size:14px; font-weight:500; color:rgba(246,242,233,0.78); padding:6px 0; position:relative; border:none; }
.nav-links a::after { content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--gold-400); transition:right .3s var(--ease); }
.nav-links a:hover { color:var(--cream); }
.nav-links a:hover::after { right:0; }
.nav-links a.active { color:var(--cream); }
.nav-links a.active::after { right:0; }
.nav-cta { display:flex; align-items:center; gap:14px; }
.nav-portal { font-size:13.5px; font-weight:500; color:rgba(246,242,233,0.75); display:inline-flex; align-items:center; gap:7px; border:none; }
.nav-portal:hover { color:var(--gold-300); border:none; }
.nav-cta .btn { padding:12px 22px; }
.nav-toggle { display:none; background:none; border:none; cursor:pointer; padding:8px; color:var(--cream); }

.mobile-menu { display:none; flex-direction:column; background:var(--navy-950); border-top:1px solid rgba(184,153,104,0.18); padding:8px 24px 22px; }
.mobile-menu.open { display:flex; }
.mobile-menu a { padding:14px 4px; font-size:15px; font-weight:500; color:rgba(246,242,233,0.82); border-bottom:1px solid rgba(246,242,233,0.08); }
.mobile-menu a:hover { color:var(--gold-300); }

/* ---------- Footer (v2) ---------- */
.site-footer { background:var(--navy-950); color:var(--fg-on-dark-muted); padding:84px 0 0; }
.site-footer a { color:rgba(246,242,233,0.62); border:none; }
.site-footer a:hover { color:var(--gold-300); border:none; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:52px; padding-bottom:62px; border-bottom:1px solid rgba(246,242,233,0.1); }
.footer-col h5 { font-family:var(--font-sans); font-size:11px; letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--gold-400); font-weight:600; margin:0 0 22px; }
.footer-col ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.footer-col ul a { font-size:14px; }
.footer-about { font-size:14px; line-height:1.75; color:var(--fg-on-dark-muted); max-width:300px; margin:20px 0 0; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:26px 0 34px; flex-wrap:wrap; }
.footer-bottom small { color:rgba(246,242,233,0.5); font-size:13px; }
.footer-legal { display:flex; gap:24px; }
.footer-legal a { font-size:13px; }

/* ---------- Reveal ---------- */
.reveal, .rv { opacity:0; transform:translateY(22px); transition:opacity 750ms var(--ease),transform 750ms var(--ease); }
.reveal.in, .rv.in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal,.rv{opacity:1;transform:none;transition:none;} }

/* ---------- Utility ---------- */
.gold-line { width:48px; height:2px; background:var(--gold-500); border:none; margin:0 0 24px; }
.tag { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:500; letter-spacing:0.02em;
  background:var(--paper-2); color:var(--gold-text); padding:5px 12px; border-radius:var(--radius-pill); border:1px solid var(--border-1); }
.legal-cite { font-family:var(--font-mono); font-size:0.85em; color:var(--navy-700); background:var(--gold-100); padding:1px 7px; border-radius:3px; white-space:nowrap; }

/* ---------- Page hero (v2, dunkel mit Ringen) ---------- */
.page-hero { background:radial-gradient(900px 480px at 75% 0%, #11304F 0%, var(--navy-900) 50%, var(--navy-950) 100%);
  color:var(--fg-on-dark); padding:88px 0 78px; position:relative; overflow:hidden; }
.page-hero::before { content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(246,242,233,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(246,242,233,0.03) 1px, transparent 1px);
  background-size:88px 88px; mask-image:radial-gradient(700px 420px at 72% 20%, #000 0%, transparent 75%); pointer-events:none; }
.page-hero::after { content:""; position:absolute; width:480px; height:480px; border-radius:50%; border:1px solid rgba(184,153,104,0.2); right:-130px; top:-180px; pointer-events:none; }
.page-hero .container { position:relative; z-index:2; }
.page-hero h1 { color:var(--cream); font-size:clamp(2.1rem,3.6vw,3.1rem); margin:0 0 18px; max-width:820px; letter-spacing:-0.02em; }
.page-hero h1 em { font-style:italic; font-weight:500; color:var(--gold-300); }
.page-hero p { color:var(--fg-on-dark-muted); font-size:17.5px; font-weight:300; max-width:660px; margin:0; line-height:1.7; }
.breadcrumb { display:flex; gap:8px; align-items:center; font-size:12.5px; color:rgba(246,242,233,0.72); margin-bottom:26px; letter-spacing:0.04em; }
.breadcrumb a { color:rgba(246,242,233,0.78); border:none; }
.breadcrumb a:hover { color:var(--gold-300); }
.breadcrumb span { opacity:0.75; }

.prose { max-width:760px; }
.prose h2 { font-size:var(--fs-h2); margin:44px 0 16px; }
.prose h3 { font-size:var(--fs-h3); margin:32px 0 12px; }
.prose p { font-size:16px; }
.prose ul { padding-left:0; list-style:none; margin:0 0 24px; }
.prose ul li { position:relative; padding-left:28px; margin-bottom:12px; line-height:1.6; }
.prose ul li::before { content:""; position:absolute; left:6px; top:10px; width:6px; height:6px; background:var(--gold-500); transform:rotate(45deg); }

/* feature list (checks) */
.feature-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:15px; }
.feature-list li { display:flex; gap:13px; align-items:flex-start; font-size:15px; color:var(--ink-700); line-height:1.55; }
.feature-list li svg { flex:none; margin-top:2px; color:var(--gold-text); }

/* detail block */
.detail-block { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; padding:84px 0; border-bottom:1px solid var(--border-1); scroll-margin-top:96px; }
.detail-block:last-child { border-bottom:none; }
.detail-block .visual { aspect-ratio:4/3; border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--border-1); box-shadow:var(--shadow-md); background:var(--navy-900); }
.detail-block .visual image-slot, .detail-block .visual img { width:100%; height:100%; object-fit:cover; }
.detail-block.flip .text { order:2; } .detail-block.flip .visual { order:1; }
.detail-block .num-tag { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; border:1.5px solid var(--gold-500); color:var(--gold-text); font-family:var(--font-serif); font-weight:600; font-size:18px; margin-bottom:18px; }
.detail-block h2 { font-size:1.95rem; margin:0 0 14px; }

/* accordion */
.accordion { border-top:1px solid var(--border-1); }
.acc-item { border-bottom:1px solid var(--border-1); }
.acc-q { width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:24px 0; display:flex; justify-content:space-between; align-items:center; gap:20px; font-family:var(--font-serif); font-size:19px; font-weight:600; color:var(--navy-900); }
.acc-q .ic { flex:none; width:24px; height:24px; transition:transform var(--t-med) var(--ease); color:var(--gold-text); }
.acc-item.open .acc-q .ic { transform:rotate(45deg); }
.acc-a { max-height:0; overflow:hidden; transition:max-height var(--t-med) var(--ease); }
.acc-a-inner { padding:0 0 24px; color:var(--ink-700); font-size:15px; line-height:1.65; max-width:680px; }

/* team detail cards */
.team-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.tperson { display:grid; grid-template-columns:140px 1fr; gap:26px; background:#fff; border:1px solid var(--border-1); border-radius:var(--radius-md); padding:26px; box-shadow:var(--shadow-sm); transition:all var(--t-med) var(--ease); }
.tperson:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); }
.tperson img { width:140px; height:172px; object-fit:cover; object-position:50% 20%; border-radius:var(--radius-sm); }
.tperson .pname { font-family:var(--font-serif); font-size:21px; font-weight:600; color:var(--navy-900); margin:2px 0 4px; }
.tperson .prole { font-size:11.5px; letter-spacing:0.12em; color:var(--gold-text); text-transform:uppercase; font-weight:600; margin-bottom:12px; }
.tperson .pbio { font-size:14px; color:var(--ink-600); line-height:1.6; margin:0 0 12px; }
.tperson .pcontact { font-size:13px; color:var(--ink-500); display:flex; flex-direction:column; gap:4px; }
.tperson .pcontact a { color:var(--navy-700); border:none; }
.tperson .pcontact a:hover { border-bottom:1px solid var(--gold-500); }

/* brand tile */
.brandtile { position:relative; overflow:hidden; background:var(--navy-900); display:flex; align-items:center; justify-content:center; }
.brandtile::before { content:""; position:absolute; right:-16px; bottom:-16px; width:62%; height:auto; aspect-ratio:1; background:url(emblem-mark.svg) right bottom / contain no-repeat; opacity:0.16; }
.brandtile::after { content:""; position:absolute; inset:14px; border:1px solid rgba(184,153,104,0.28); border-radius:var(--radius-md); pointer-events:none; }
.brandtile .bt-inner { position:relative; z-index:2; text-align:center; padding:28px; max-width:88%; }
.brandtile .bt-ic { color:var(--gold-400); margin-bottom:14px; display:flex; justify-content:center; }
.brandtile .bt-title { font-family:var(--font-serif); font-size:1.4rem; color:#fff; font-weight:600; line-height:1.2; margin:0 0 8px; }
.brandtile .bt-cap { font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-400); font-weight:600; }
.brandtile.paper { background:var(--paper-2); }
.brandtile.paper::after { border-color:var(--border-2); }
.brandtile.paper .bt-title { color:var(--navy-900); }
.brandtile.paper .bt-cap { color:var(--gold-text); }
.brandtile.paper .bt-ic { color:var(--gold-text); }

/* photo tile */
.photo-tile { position:relative; overflow:hidden; background:var(--navy-900); display:block; }
.photo-tile img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease); }
.photo-tile.frame::after { content:""; position:absolute; inset:14px; border:1px solid rgba(184,153,104,0.42); border-radius:var(--radius-md); pointer-events:none; z-index:3; }
.photo-tile .pt-cap { position:absolute; left:0; right:0; bottom:0; z-index:2; padding:18px 20px; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-300); font-weight:600; }
.photo-tile .pt-cap::before { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(6,15,29,0.88), rgba(6,15,29,0)); z-index:-1; }

/* full-bleed image band */
.img-band { position:relative; overflow:hidden; height:clamp(240px,34vw,440px); background:var(--navy-900); }
.img-band img { width:100%; height:100%; object-fit:cover; display:block; }
.img-band .ib-cap { position:absolute; left:0; right:0; bottom:0; padding:34px 0; z-index:2; }
.img-band .ib-cap::before { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(6,15,29,0.82), rgba(6,15,29,0)); z-index:-1; }
.img-band .ib-cap .e { font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold-300); font-weight:600; margin-bottom:8px; }
.img-band .ib-cap .t { font-family:var(--font-serif); font-size:clamp(1.2rem,2vw,1.7rem); color:#fff; font-weight:600; max-width:640px; line-height:1.25; }

/* contact / form layout */
.contact-grid { display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px; align-items:start; }
.info-row { display:flex; gap:14px; padding:18px 0; border-bottom:1px solid var(--border-1); }
.info-row:last-child { border-bottom:none; }
.info-row .ic { flex:none; width:40px; height:40px; border-radius:50%; background:var(--paper-2); border:1px solid var(--border-1); display:flex; align-items:center; justify-content:center; color:var(--gold-text); }
.info-row .k { font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-500); font-weight:600; margin-bottom:3px; }
.info-row .v { font-size:15px; color:var(--ink-900); }
.info-row .v a { color:var(--navy-800); }

/* CTA band (v2: dunkler Gradient mit Ringen) */
.cta-band { background:linear-gradient(135deg, var(--navy-800), var(--navy-950)); border:none; position:relative; overflow:hidden; }
.cta-band::before { content:""; position:absolute; right:-130px; top:-130px; width:420px; height:420px; border-radius:50%; border:1px solid rgba(184,153,104,0.25); }
.cta-band::after { content:""; position:absolute; right:-60px; top:-60px; width:260px; height:260px; border-radius:50%; border:1px solid rgba(184,153,104,0.16); }
.cta-band .container { position:relative; z-index:2; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.cta-inner h2 { font-size:clamp(1.7rem,2.6vw,2.4rem); margin:0 0 10px; color:var(--cream); }
.cta-inner p { margin:0; color:var(--fg-on-dark-muted); max-width:520px; }

/* alte Logo-Lockup-Klassen (Portal) */
.logo-lockup { display:inline-flex; flex-direction:column; align-items:center; border:none; line-height:1; }
.logo-lockup:hover { border:none; }
.logo-lockup .lg-word { font-family:var(--font-serif); font-size:24px; font-weight:600; letter-spacing:0.04em; color:var(--navy-800); line-height:1; }
.logo-lockup .lg-sub { font-family:var(--font-sans); font-size:8.5px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-text); border-top:1px solid var(--gold-500); padding-top:5px; margin-top:5px; white-space:nowrap; }
.logo-lockup.on-dark .lg-word { color:var(--cream); }
.logo-lockup.on-dark .lg-sub { color:var(--gold-300); }

@media (max-width:900px){
  .detail-block{ grid-template-columns:1fr; gap:36px; padding:56px 0; }
  .detail-block.flip .text{ order:1; } .detail-block.flip .visual{ order:2; }
  .team-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; gap:40px; }
}
@media (max-width:560px){
  .tperson{ grid-template-columns:1fr; } .tperson img{ width:120px; height:140px; }
}
@media (max-width:1080px){
  .nav-links{ display:none; }
  .nav-toggle{ display:block; }
  .nav-cta .btn{ display:none; }
}
@media (max-width:960px){
  .footer-grid{ grid-template-columns:1fr 1fr; gap:36px; }
  .section{ padding:72px 0; }
  .page-hero{ padding:64px 0 56px; }
}
@media (max-width:560px){
  .container,.container-narrow{ padding:0 22px; }
  .footer-grid{ grid-template-columns:1fr; }
  .section{ padding:56px 0; }
}

/* ---------- Print ---------- */
@media print {
  .topbar, .site-nav, .site-footer, .cta-band, .mobile-menu { display:none !important; }
  .page-hero { background:none !important; color:var(--ink-900); padding:24px 0; }
  .page-hero h1 { color:var(--ink-900); }
  .page-hero p, .breadcrumb, .breadcrumb a { color:var(--ink-600); }
  .page-hero::before, .page-hero::after { display:none; }
  .section { padding:24px 0; }
  .reveal, .rv { opacity:1 !important; transform:none !important; }
  a { color:inherit; border:none; }
}
