@import url("./fonts.css");
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:#FFFFFF; color:#242424; font-family:'Gill Sans Light',sans-serif; overflow-x:hidden; }
::selection { background:#FAC31E; color:#242424; }
a { color:#00AFC2; text-decoration:none; }
a:hover { color:#EC6625; }
img { max-width:100%; }
@keyframes fadeUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@keyframes blink { 0%,100% { opacity:1; } 50% { opacity:0.25; } }

.wrap { max-width:1440px; margin:0 auto; padding:0 clamp(24px,5vw,72px); }
.eyebrow { font-family:'Roboto',sans-serif; font-size:13px; letter-spacing:0.12em; color:#00AFC2; margin-bottom:22px; text-transform:uppercase; }
h1,h2,h3 { font-family:'Roboto',sans-serif; text-transform:uppercase; font-weight:900; margin:0; }
.accent { color:#EC6625; }

/* header */
.page-header { display:grid; grid-template-columns:72px 1fr; column-gap:24px; max-width:1440px; margin:0 auto; padding:32px clamp(24px,5vw,72px) 0; }
.page-header img.logo { height:72px; width:auto; display:block; }
.page-header h1 { grid-column:2; font-size:clamp(36px,5vw,56px); line-height:1.05; margin:0 0 22px; }
@media (max-width:700px) { .page-header { grid-template-columns:1fr; } .page-header img.logo { grid-column:1; margin-bottom:20px; } .page-header h1 { grid-column:1; } }

/* buttons */
.btn { display:inline-block; font-family:'Roboto',sans-serif; font-weight:900; font-size:15px; letter-spacing:0.03em; color:#FFFFFF; background:#EC6625; padding:17px 32px; text-decoration:none; border:0; cursor:pointer; }
.btn:hover { background:#00AFC2; color:#FFFFFF; }
.btn.cta-round { position:absolute; top:110px; right:0; width:100px; height:100px; border-radius:50%; background:#E73358; display:none; align-items:center; justify-content:center; text-align:center; font-size:11px; padding:14px; box-shadow:0 16px 30px -12px rgba(231,51,88,0.5); transform:rotate(30deg); transition:transform 0.2s ease; z-index:5; }
.btn.cta-round:hover { transform:rotate(30deg) scale(1.15); background:#00AFC2; }
@media (min-width:1000px) { .btn.cta-round { display:flex; } }

/* hero */
.hero-grid { display:grid; grid-template-columns:1.05fr 0.95fr; gap:48px; align-items:start; padding-top:clamp(28px,4vw,48px); padding-bottom:clamp(70px,8vw,110px); }
@media (max-width:800px) { .hero-grid { grid-template-columns:1fr; } }
.hero-photo { position:relative; animation:fadeUp 1s ease 0.1s both; display:inline-flex; width:fit-content; max-width:100%; margin:0 auto; }
.hero-photo img { width:auto; height:auto; max-width:100%; max-height:clamp(420px,52vw,640px); object-fit:contain; display:block; }
.corner { position:absolute; width:34px; height:34px; z-index:2; }
.corner.tl { top:-2px; left:-2px; border-top:4px solid #FAC31E; border-left:4px solid #FAC31E; }
.corner.tr { top:-2px; right:-2px; border-top:4px solid #EC6625; border-right:4px solid #EC6625; }
.corner.bl { bottom:-2px; left:-2px; border-bottom:4px solid #50AF32; border-left:4px solid #50AF32; }
.corner.br { bottom:-2px; right:-2px; border-bottom:4px solid #00AFC2; border-right:4px solid #00AFC2; }

/* strength cards */
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; }
.card { padding:clamp(30px,3vw,40px); border-radius:16px; transition:transform 0.2s ease; }
.card:hover { transform:translateY(-6px); }
.pill { display:inline-block; font-family:'Roboto',sans-serif; font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:#FFFFFF; padding:6px 14px; border-radius:100px; margin-bottom:18px; }
.card h3 { font-weight:600; font-size:21px; margin:0 0 14px; color:#242424; }
.card p { font-size:16px; line-height:1.6; color:#575757; margin:0; }

/* tag cloud w/ tooltip */
.tag-cloud { display:flex; flex-wrap:wrap; gap:12px; }
.tag { position:relative; display:inline-block; }
.tag span.label { cursor:default; font-family:'Roboto',sans-serif; text-transform:uppercase; font-size:clamp(12px,1.1vw,14px); letter-spacing:0.04em; color:#FFFFFF; padding:9px 18px; border-radius:100px; display:inline-block; }
.tag .tip { position:absolute; top:calc(100% + 10px); left:0; width:230px; background:#242424; color:#FFFFFF; padding:14px 16px; border-radius:6px; font-family:'Gill Sans Light',sans-serif; font-size:14px; line-height:1.5; box-shadow:0 16px 30px -10px rgba(36,36,36,0.4); z-index:40; opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity 0.15s ease, transform 0.15s ease; }
.tag:hover .tip, .tag:focus-within .tip { opacity:1; pointer-events:auto; transform:translateY(0); }

/* logos */
.logo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:34px; align-items:center; justify-items:center; }
.logo-grid img { width:132px; height:58px; object-fit:contain; filter:grayscale(1) contrast(1.3); opacity:0.9; }

/* principle cards */
.principle-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:36px 28px; }
.principle { position:relative; padding:26px 24px 24px; aspect-ratio:1; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 14px 26px -12px rgba(36,36,36,0.28); transition:transform 0.2s ease; color:#FFFFFF; }
.principle:hover { transform:rotate(0deg) scale(1.03); }
.principle .num { font-family:'Roboto',sans-serif; font-size:28px; font-weight:900; margin-bottom:8px; }
.principle h3 { font-weight:700; font-size:19px; margin:0 0 10px; color:#FFFFFF; }
.principle p { font-size:17px; line-height:1.4; opacity:0.95; margin:0; }

/* footer */
footer.site-footer { background:#242424; color:#FFFFFF; padding:clamp(70px,8vw,110px) clamp(24px,5vw,72px) 36px; }
footer.site-footer .wrap { padding-left:0; padding-right:0; }
footer.site-footer h2 { font-size:clamp(30px,5vw,66px); margin:0 0 50px; letter-spacing:-0.01em; }
.blink-cursor { color:#FAC31E; animation:blink 1.4s step-start infinite; }
.footer-row { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; padding-top:28px; border-top:1px solid rgba(255,255,255,0.16); max-width:1440px; margin:0 auto; }
.footer-logo img { height:24px; width:auto; filter:brightness(0) invert(1); opacity:0.85; display:block; }
.footer-nav { display:flex; flex-wrap:wrap; gap:26px; font-family:'Roboto',sans-serif; font-size:13px; text-transform:uppercase; }
.footer-nav a { color:#FFFFFF; opacity:0.7; text-decoration:none; }
.footer-nav a:hover { opacity:1; color:#FAC31E; }

/* impressum */
.legal-block { border-top:4px solid #00AFC2; padding-top:22px; margin-bottom:48px; }
.legal-block h2 { font-size:clamp(18px,1.8vw,22px); margin:0 0 18px; }
.legal-block p { font-size:17px; line-height:1.7; color:#575757; margin:0; }
.legal-block p + p { margin-top:8px; }
.legal-block strong { color:#242424; }

/* CXD page */
.cxd-section { border-top:4px solid #EC6625; padding-top:22px; margin-bottom:48px; }
.cxd-wheel { position:relative; width:min(760px,96vw); aspect-ratio:1; margin:0 auto 56px; }
.cxd-wheel svg { position:absolute; inset:0; width:100%; height:100%; }
.cxd-wheel .center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:120px; height:120px; border-radius:50%; background:#242424; color:#FFFFFF; display:flex; align-items:center; justify-content:center; text-align:center; font-family:'Roboto',sans-serif; font-weight:900; font-size:17px; text-transform:uppercase; z-index:2; box-shadow:0 14px 26px -10px rgba(36,36,36,0.4); }
.cxd-wheel .node { position:absolute; transform:translate(-50%,-50%); width:min(38%,250px); z-index:1; }
.cxd-wheel .node .box { padding:14px 14px 12px; border-radius:14px; box-shadow:0 10px 20px -12px rgba(36,36,36,0.3); min-height:112px; }
.cxd-wheel .node .box .tag-label { display:inline-block; font-family:'Roboto',sans-serif; font-size:11px; letter-spacing:0.05em; text-transform:uppercase; color:#FFFFFF; padding:4px 10px; border-radius:100px; margin-bottom:8px; }
.cxd-wheel .node .box p { font-size:12.5px; line-height:1.4; color:#242424; margin:0; }
.dark-box { background:#242424; color:#FFFFFF; border-radius:16px; padding:clamp(28px,4vw,44px); }
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:24px; margin:0 0 28px; }
.stat-num { font-family:'Roboto',sans-serif; font-weight:900; font-size:clamp(30px,3.6vw,44px); line-height:1; }
.stat-label { font-size:13.5px; color:rgba(255,255,255,0.7); margin-top:8px; }

.dim-grid { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.dim-line { position:absolute; top:32px; left:12.5%; right:12.5%; height:2px; background:repeating-linear-gradient(to right, rgba(36,36,36,0.25) 0 8px, transparent 8px 14px); z-index:0; }
.dim { position:relative; z-index:1; }
.dim .circ { width:64px; height:64px; border-radius:50%; color:#FFFFFF; display:flex; align-items:center; justify-content:center; font-family:'Roboto',sans-serif; font-weight:900; font-size:22px; margin:0 auto 18px; box-shadow:0 10px 20px -10px rgba(36,36,36,0.35); }
.dim h3 { font-weight:700; font-size:17px; margin:0 0 10px; text-align:center; }
.dim .quote { font-size:13.5px; line-height:1.45; color:#242424; opacity:0.85; margin:0 0 16px; font-style:italic; text-align:center; }
.dim ul { display:grid; gap:7px; border-top:1px solid rgba(36,36,36,0.12); padding-top:14px; margin:0; list-style:none; }
.dim li { font-size:12.5px; color:#575757; padding-left:13px; position:relative; line-height:1.35; }
.dim li::before { content:"–"; position:absolute; left:0; }
@media (max-width:1100px) { .dim-grid { grid-template-columns:repeat(2,1fr); } .dim-line { display:none; } }

table.roles-table { width:100%; border-collapse:collapse; font-size:15px; min-width:680px; }
table.roles-table th { text-align:left; padding:14px 16px; border-bottom:3px solid #242424; font-family:'Roboto',sans-serif; text-transform:uppercase; font-size:13px; letter-spacing:0.04em; }
table.roles-table td { padding:18px 16px; border-bottom:1px solid rgba(36,36,36,0.12); color:#575757; }
table.roles-table td.role { font-family:'Roboto',sans-serif; font-weight:700; color:#242424; }
table.roles-table td.role .avatar-wrap { display:grid; grid-template-columns:40px 1fr; align-items:center; gap:12px; }
table.roles-table td.role img { object-fit:contain; justify-self:center; }
table.roles-table td.dont { text-decoration:line-through; text-decoration-color:#00AFC2; }
table.roles-table td.become { color:#EC6625; font-weight:700; }
.table-scroll { overflow-x:auto; }

.field-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; }
.field { border:2px solid; border-radius:14px; padding:20px; }
.field .name { font-family:'Roboto',sans-serif; text-transform:uppercase; font-weight:700; font-size:15px; margin-bottom:6px; color:#242424; }
.field .desc { font-size:14px; color:#575757; }

details.book-cat { border-bottom:2px solid rgba(36,36,36,0.15); margin-bottom:24px; }
details.book-cat summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; padding-bottom:16px; font-family:'Roboto',sans-serif; text-transform:uppercase; font-weight:700; font-size:17px; color:#242424; }
details.book-cat summary::-webkit-details-marker { display:none; }
details.book-cat summary::after { content:"+"; font-size:22px; font-weight:700; color:#00AFC2; transition:transform 0.2s ease; }
details.book-cat[open] summary::after { transform:rotate(45deg); }
.book-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:24px; padding-bottom:24px; }
.book-card { display:flex; gap:16px; background:#F5F4F1; border-radius:12px; padding:16px; }
.book-card img { width:70px; height:104px; object-fit:cover; border-radius:4px; flex-shrink:0; }
.book-card .title { font-family:'Roboto',sans-serif; font-weight:700; font-size:14.5px; color:#242424; margin-bottom:2px; line-height:1.3; }
.book-card .author { font-size:13px; color:#575757; margin-bottom:8px; }
.book-card .desc { font-size:13px; color:#575757; margin-bottom:10px; line-height:1.4; }
.book-card a { font-family:'Roboto',sans-serif; font-size:12.5px; font-weight:700; }

.link-pill-row { display:flex; flex-wrap:wrap; gap:12px; padding-bottom:24px; }
.link-pill { font-family:'Roboto',sans-serif; text-transform:uppercase; font-size:12.5px; letter-spacing:0.03em; font-weight:700; color:#FFFFFF; padding:10px 18px; border-radius:100px; }

.disc-two-col { border-top:4px solid #50AF32; padding-top:22px; margin-bottom:48px; display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:40px; }
.disc-two-col h3 { text-transform:uppercase; font-weight:900; font-size:20px; margin:0 0 14px; }
.disc-two-col p { font-size:15.5px; line-height:1.6; color:#575757; margin:0; }

.iframe-card { position:relative; border-top:4px solid #00AFC2; background:#FFFFFF; box-shadow:0 20px 40px -20px rgba(36,36,36,0.25); padding:4px; }
.iframe-card iframe { width:100%; height:900px; border:0; display:block; }

.dolini-row { display:flex; align-items:flex-start; gap:24px; margin-bottom:24px; flex-wrap:wrap; }
.dolini-row img { width:110px; height:110px; object-fit:contain; flex-shrink:0; margin-top:-32px; }
.icon-btn { cursor:pointer; display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; border:none; color:#FFFFFF; }
pre.prompt-box { background:#242424; color:#e5e5e5; font-family:monospace; font-size:12.5px; line-height:1.6; padding:24px; border-radius:8px; white-space:pre-wrap; max-height:520px; overflow-y:auto; margin:0; }

@media (max-width:700px) { .page-grid { grid-template-columns:1fr !important; } .logo-col, .content-col { grid-column:1 !important; } }
@media (max-width:800px) { .principle-grid, .disc-grid { grid-template-columns:1fr !important; } }
