// ──────────────────────────────────────────────────────────────── // Widget · Host-Karten + QR + Kartenraster // Aus j3-landing uebernommen, auf Tokens umgestellt. // ──────────────────────────────────────────────────────────────── .hosts { justify-self: start; align-self: center; display: flex; flex-direction: column; gap: clamp(10px, 1.4vw, 16px); width: 100%; max-width: 600px; } .host-card { display: flex; align-items: center; gap: 18px; padding: 22px 26px; font-family: var(--font-mono); color: var(--dim); text-align: left; border: 1px solid var(--line); border-radius: var(--r-lg); background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 5%, transparent), transparent 60%), color-mix(in srgb, var(--bg) 50%, transparent); cursor: pointer; transition: transform var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease); &:hover, &:focus-visible { outline: none; transform: translateY(-3px); border-color: color-mix(in srgb, var(--accent) 42%, var(--line)); box-shadow: var(--shadow-lg), 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent); } &__icon { flex: 0 0 auto; width: 64px; height: 64px; object-fit: contain; opacity: .95; filter: brightness(1.18) drop-shadow(0 0 8px color-mix(in srgb, var(--accent) 40%, transparent)); } &__body { flex: 1 1 auto; min-width: 0; } &__title { display: block; font-size: var(--fs-lg); letter-spacing: .18em; text-transform: uppercase; color: var(--fg); white-space: nowrap; } &__addr { display: block; font-size: var(--fs-base); letter-spacing: .06em; color: var(--accent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } &__desc { display: -webkit-box; margin-top: 7px; overflow: hidden; font-size: var(--fs-md); line-height: 1.45; color: var(--muted); -webkit-line-clamp: 2; -webkit-box-orient: vertical; } &__chev { flex: 0 0 auto; font-size: 28px; line-height: 1; color: var(--ember); opacity: .8; transition: transform var(--dur-base) var(--ease); } &:hover .host-card__chev { transform: translateX(3px); } } // QR-Karte: diese Seite auf dem Handy oeffnen .qr-card { display: flex; align-items: center; gap: 18px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r-lg); background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 5%, transparent), transparent 60%), color-mix(in srgb, var(--bg) 50%, transparent); &__code { flex: 0 0 auto; display: block; width: clamp(112px, 10vw, 150px); height: auto; border-radius: var(--r-sm); } &__body { display: flex; flex-direction: column; gap: 5px; min-width: 0; } &__title { font-size: var(--fs-base); letter-spacing: .18em; text-transform: uppercase; color: var(--fg); } &__addr { font-size: var(--fs-md); letter-spacing: .06em; color: var(--accent); } &__hint { font-size: var(--fs-sm); line-height: 1.45; color: var(--muted); } } // Generisches Kartenraster: Karten oder schlichte
-Kinder. .host_cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(216px, 1fr)); gap: clamp(12px, 1.6vw, 20px); width: 100%; min-width: 0; > article { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r-lg); background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 5%, transparent), transparent 60%), color-mix(in srgb, var(--bg) 50%, transparent); h3, h4 { font-size: var(--fs-md); font-weight: var(--fw-medium); letter-spacing: .14em; text-transform: uppercase; color: var(--fg); } p { font-size: var(--fs-sm); line-height: 1.5; color: var(--muted); } } }