:root {
    --portal-bg: #f5f7fa;
    --portal-surface: #ffffff;
    --portal-text: #172033;
    --portal-text-soft: #4b5565;
    --portal-border: #dbe4ee;
    --portal-primary: #2a6fdb;
    --portal-primary-dark: #1f58b5;
    --portal-success: #1f9d63;
    --portal-danger: #d93b3b;
    --portal-shadow: 0 10px 30px rgba(16, 24, 40, 0.08);
    --portal-shadow-hover: 0 18px 40px rgba(16, 24, 40, 0.12);
    --portal-radius-lg: 26px;
    --portal-radius: 20px;
    --portal-container: 1180px;
    --portal-max-content: 1120px;
    --portal-btn-height: 52px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--portal-bg);
    color: var(--portal-text);
    font-family: Inter, Arial, sans-serif;
    line-height: 1.55;
}

a {
    color: inherit;
    text-decoration: none;
}

.portal-container {
    width: min(var(--portal-container), calc(100% - 32px));
    margin: 0 auto;
}

.portal-main {
    min-height: calc(100vh - 78px);
}

.portal-topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(219, 228, 238, 0.9);
}

.portal-topbar-inner {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.portal-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.portal-brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #2a6fdb, #4d8fff);
    color: #fff;
    font-weight: 800;
    box-shadow: 0 10px 20px rgba(42, 111, 219, 0.22);
}

.portal-brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.portal-brand-text strong {
    font-size: 1rem;
    color: #111827;
}

.portal-brand-text small {
    font-size: 0.76rem;
    color: var(--portal-text-soft);
}

.portal-nav {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.portal-nav a {
    padding: 10px 14px;
    border-radius: 10px;
    font-weight: 600;
    color: #223047;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.portal-nav a:hover {
    background: #eef4ff;
    color: var(--portal-primary);
    transform: translateY(-1px);
}

.portal-nav-cta {
    background: var(--portal-primary);
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(42, 111, 219, 0.22);
}

.portal-nav-cta:hover {
    background: var(--portal-primary-dark) !important;
    color: #fff !important;
}

.portal-shell {
    padding: 38px 0 60px;
}

.portal-page {
    color: var(--portal-text);
}

.portal-badge,
.portal-mini-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 999px;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.portal-badge {
    background: #eaf2ff;
    color: var(--portal-primary);
    padding: 8px 14px;
    font-size: 13px;
    margin-bottom: 14px;
}

.portal-mini-badge {
    background: #eef4ff;
    color: var(--portal-primary);
    padding: 7px 12px;
    font-size: 12px;
    margin-bottom: 12px;
}

.portal-hero-card,
.portal-auth-copy-card,
.portal-auth-form-card,
.portal-feature-card,
.portal-step-card,
.portal-trust-card,
.portal-info-card,
.portal-cta-card {
    background: var(--portal-surface);
    border: 1px solid rgba(219, 228, 238, 0.9);
    box-shadow: var(--portal-shadow);
}

.portal-hero-card,
.portal-auth-copy-card,
.portal-auth-form-card {
    border-radius: var(--portal-radius-lg);
    padding: 30px;
}

.portal-hero-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 24px;
    align-items: stretch;
}

.portal-auth-layout {
    max-width: var(--portal-max-content);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.06fr 0.94fr;
    gap: 24px;
    align-items: stretch;
}

.portal-side-stack,
.portal-trust-list,
.portal-stack-actions {
    display: grid;
    gap: 16px;
}

.portal-hero-copy h1,
.portal-auth-copy-card h1 {
    font-size: clamp(2.15rem, 4vw, 3.3rem);
    line-height: 1.08;
    margin: 0 0 16px;
    color: #101828;
}

.portal-lead {
    font-size: 1.07rem;
    color: var(--portal-text-soft);
    max-width: 760px;
    margin: 0 0 22px;
}

.portal-action-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.portal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--portal-btn-height);
    padding: 12px 18px;
    border-radius: 12px;
    border: 1px solid transparent;
    font-weight: 700;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, border-color 0.18s ease;
    cursor: pointer;
}

.portal-btn:hover {
    transform: translateY(-1px);
}

.portal-btn-primary {
    background: var(--portal-primary);
    color: #ffffff;
    box-shadow: 0 10px 22px rgba(42, 111, 219, 0.22);
}

.portal-btn-primary:hover {
    background: var(--portal-primary-dark);
}

.portal-btn-secondary {
    background: #ffffff;
    color: var(--portal-text);
    border-color: var(--portal-border);
}

.portal-btn-secondary:hover,
.portal-btn-ghost:hover {
    box-shadow: var(--portal-shadow);
}

.portal-btn-ghost {
    background: transparent;
    color: var(--portal-text);
    border-color: var(--portal-border);
}

.portal-btn-block {
    width: 100%;
}

.portal-proof-strip {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin: 24px 0 0;
}

.portal-proof-item {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--portal-border);
    border-radius: 999px;
    padding: 10px 14px;
    font-size: 14px;
    color: var(--portal-text);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.portal-proof-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(16, 24, 40, 0.08);
}

.portal-info-card,
.portal-feature-card,
.portal-step-card,
.portal-trust-card {
    border-radius: 20px;
    padding: 22px;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.portal-info-card:hover,
.portal-feature-card:hover,
.portal-step-card:hover,
.portal-trust-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--portal-shadow-hover);
}

.portal-info-row {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px solid #edf2f7;
    font-size: 14px;
}

.portal-info-row:last-child {
    border-bottom: none;
}

.portal-info-row span {
    color: var(--portal-text-soft);
}

.is-open {
    color: var(--portal-primary);
}

.is-success {
    color: var(--portal-success);
}

.portal-section-block {
    max-width: var(--portal-max-content);
    margin: 26px auto 0;
}

.portal-section-head {
    text-align: center;
    max-width: 860px;
    margin: 0 auto 24px;
}

.portal-section-head h2 {
    margin: 0 0 10px;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    color: #101828;
}

.portal-section-head p {
    margin: 0;
    color: var(--portal-text-soft);
}

.portal-card-grid {
    display: grid;
    gap: 18px;
}

.portal-card-grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

.portal-card-grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.portal-feature-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    font-size: 24px;
    background: #eef4ff;
    margin-bottom: 16px;
}

.portal-feature-card h3,
.portal-step-card h3,
.portal-trust-card strong {
    color: #111827;
    margin-top: 0;
}

.portal-feature-card p,
.portal-step-card p,
.portal-trust-card p,
.portal-auth-form-card p,
.portal-auth-copy-card p {
    color: var(--portal-text-soft);
    margin-bottom: 0;
}

.portal-step-number {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--portal-primary);
    color: #fff;
    font-weight: 800;
    margin-bottom: 14px;
}

.portal-check-list {
    list-style: none;
    padding: 0;
    margin: 18px 0 22px;
}

.portal-check-list li {
    position: relative;
    padding-left: 26px;
    margin-bottom: 12px;
    color: var(--portal-text);
}

.portal-check-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--portal-success);
    font-weight: 800;
}

.portal-cta-card {
    border-radius: 28px;
    padding: 28px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    background: linear-gradient(135deg, #ffffff, #f4f8ff);
}

.portal-cta-card h2 {
    margin: 0 0 10px;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    color: #101828;
}

.portal-cta-card p {
    margin: 0;
    color: var(--portal-text-soft);
}

.portal-auth-card-head {
    margin-bottom: 18px;
}

.portal-auth-card-head h2 {
    margin: 0 0 8px;
    color: #111827;
    font-size: 1.9rem;
}

.portal-auth-card-head p {
    margin: 0;
    color: var(--portal-text-soft);
}

.portal-form {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.portal-form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.portal-form-group label {
    font-weight: 700;
    color: #1f2937;
    font-size: 14px;
}

.portal-form-group input,
.portal-form-group select,
.portal-form-group textarea {
    width: 100%;
    border: 1px solid #cfd9e5;
    border-radius: 14px;
    min-height: 54px;
    padding: 14px 16px;
    font-size: 15px;
    color: #172033;
    background: #ffffff;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.portal-form-group input::placeholder,
.portal-form-group textarea::placeholder {
    color: #94a3b8;
}

.portal-form-group input:hover,
.portal-form-group select:hover,
.portal-form-group textarea:hover {
    border-color: #b9cce2;
    background: #fcfdff;
}

.portal-form-group input:focus,
.portal-form-group select:focus,
.portal-form-group textarea:focus {
    outline: none;
    border-color: #9ec0ff;
    box-shadow: 0 0 0 4px rgba(42, 111, 219, 0.12);
    transform: translateY(-1px);
}

.portal-auth-footer {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #edf2f7;
}

.portal-auth-footer-text {
    margin: 0 0 12px;
    color: var(--portal-text-soft);
    font-weight: 600;
}

.portal-alert {
    border-radius: 12px;
    padding: 12px 14px;
    font-size: 14px;
    margin-bottom: 16px;
}

.portal-alert-danger {
    background: #fff0f0;
    color: #a52828;
    border: 1px solid #f2c4c4;
}

.portal-alert-success {
    background: #ebf9f1;
    color: #176843;
    border: 1px solid #b9e7cb;
}

.portal-trust-card {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.portal-trust-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #eaf2ff;
    color: var(--portal-primary);
    display: grid;
    place-items: center;
    font-weight: 800;
    flex: 0 0 38px;
}

.portal-auth-side-note {
    background: #eef6ff;
    border: 1px solid #cfe0ff;
    border-radius: 16px;
    padding: 16px;
    margin-top: 22px;
}

.portal-auth-side-note strong {
    display: block;
    margin-bottom: 6px;
    color: #12325f;
}

.portal-auth-side-note p {
    margin: 0;
    color: #36506f;
}

.portal-fade-up {
    opacity: 0;
    transform: translateY(18px);
    animation: portalFadeUp 0.55s ease forwards;
}

.portal-delay-1 {
    animation-delay: 0.08s;
}

.portal-delay-2 {
    animation-delay: 0.16s;
}

.portal-delay-3 {
    animation-delay: 0.24s;
}

@keyframes portalFadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 1024px) {
    .portal-hero-grid,
    .portal-auth-layout,
    .portal-card-grid-3,
    .portal-card-grid-2 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .portal-topbar-inner {
        flex-direction: column;
        align-items: flex-start;
        padding: 14px 0;
    }

    .portal-nav {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .portal-container {
        width: min(100% - 20px, var(--portal-container));
    }

    .portal-hero-card,
    .portal-auth-copy-card,
    .portal-auth-form-card,
    .portal-cta-card {
        padding: 20px;
    }

    .portal-proof-strip,
    .portal-action-row,
    .portal-nav {
        flex-direction: column;
        align-items: stretch;
    }

    .portal-btn,
    .portal-btn-block,
    .portal-nav a {
        width: 100%;
    }
}
/* Phase 28 – einheitliches Fahrgast-Webportal */
.public-top{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--portal-border)}
.public-nav{width:min(1180px,calc(100% - 32px));min-height:72px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.public-brand{display:flex;align-items:center;gap:9px;font-weight:800}.public-brand span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--portal-primary);color:#fff}.public-brand small{color:var(--portal-text-soft);font-weight:600}.public-nav nav{display:flex;gap:8px;flex-wrap:wrap}.public-nav nav a{padding:9px 12px;border-radius:10px;font-weight:700}.public-nav nav a:hover,.public-nav nav a.active{background:#eef4ff;color:var(--portal-primary)}
.public-page{padding-top:28px;padding-bottom:60px}.public-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#fff,#f3f7ff);border:1px solid var(--portal-border);border-radius:26px;padding:30px;box-shadow:var(--portal-shadow);margin-bottom:20px}.public-hero h1{font-size:clamp(2rem,4vw,3rem);margin:5px 0 8px}.public-hero p{margin:0;color:var(--portal-text-soft);max-width:720px}.public-kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--portal-primary);font-weight:850}.public-section-head{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:18px}.public-section-head h2{margin:3px 0 0}.ride-list{display:grid;gap:14px}.ride-card{display:flex;justify-content:space-between;gap:22px;padding:20px;border:1px solid var(--portal-border);border-radius:18px;background:#fff}.ride-card h3{margin:6px 0 10px}.ride-card p{margin:0;color:var(--portal-text-soft)}.ride-id{font-size:.8rem;color:var(--portal-primary);font-weight:800}.ride-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:10px}.status-chip{display:inline-flex;padding:7px 11px;border-radius:999px;background:#edf4ff;color:#245fab;font-size:.82rem;font-weight:800}.public-btn.secondary{background:#eef4ff;color:var(--portal-primary)}.public-empty{text-align:center;padding:35px 18px;border:1px dashed var(--portal-border);border-radius:18px}.public-empty p{color:var(--portal-text-soft)}
@media(max-width:720px){.public-nav,.public-hero,.ride-card{align-items:stretch;flex-direction:column}.public-nav{padding:12px 0}.public-nav nav{width:100%}.public-nav nav a{padding-left:0}.ride-actions{align-items:flex-start}.public-hero .public-btn{width:100%}}

/* Phase 40: Landingpage-Showcase für individuelle Fahrdienst-Buchungsseiten */
.portal-showcase-block{
  scroll-margin-top: 32px;
}

.portal-booking-showcase{
  margin: 0 auto 28px;
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(37,99,235,.14);
  background: linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  box-shadow: 0 24px 60px rgba(15,23,42,.12);
}

.portal-booking-showcase img{
  display: block;
  width: 100%;
  height: auto;
}

.portal-brand-preview-grid{
  margin-top: 4px;
}

.portal-brand-preview{
  position: relative;
  overflow: hidden;
}

.portal-brand-preview::before{
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 8px;
  background: var(--brand-accent, #2563eb);
}

.portal-brand-preview__topline{
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(37,99,235,.08);
  color: #35507c;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .02em;
  margin-bottom: 18px;
}

.portal-brand-preview__brand{
  font-size: 1.45rem;
  line-height: 1.15;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 10px;
}

.portal-brand-preview__copy{
  margin: 0 0 14px;
}

.portal-brand-preview__url{
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(148,163,184,.12);
  color: #0f172a;
  font-weight: 700;
  font-size: .95rem;
  word-break: break-word;
}

.portal-brand-preview-green{ --brand-accent: #22a05b; }
.portal-brand-preview-blue{ --brand-accent: #1f6fe5; }
.portal-brand-preview-red{ --brand-accent: #e34141; }

.portal-brand-preview-green .portal-brand-preview__topline{
  background: rgba(34,160,91,.11);
  color: #17663c;
}
.portal-brand-preview-blue .portal-brand-preview__topline{
  background: rgba(31,111,229,.11);
  color: #1e4fa0;
}
.portal-brand-preview-red .portal-brand-preview__topline{
  background: rgba(227,65,65,.11);
  color: #9f2727;
}

@media (max-width: 900px){
  .portal-booking-showcase{
    border-radius: 22px;
  }
  .portal-brand-preview__brand{
    font-size: 1.28rem;
  }
}

/* Phase 42: Einrichtungsbeispiele */
.portal-facility-showcase img{width:100%;display:block}.portal-facility-preview{--brand-accent:#1769e0}.portal-facility-preview-gold{--brand-accent:#d89a00}.portal-facility-preview-teal{--brand-accent:#0aa89a}.portal-facility-preview-purple{--brand-accent:#7c3cc8}.portal-facility-preview-gold .portal-brand-preview__topline{background:rgba(216,154,0,.11);color:#8e6500}.portal-facility-preview-teal .portal-brand-preview__topline{background:rgba(10,168,154,.11);color:#087a70}.portal-facility-preview-purple .portal-brand-preview__topline{background:rgba(124,60,200,.11);color:#60309c}

/* Phase 47: App-Showcase auf der öffentlichen TiXA-Landingpage */
.portal-app-showcase-section{scroll-margin-top:28px}
.portal-app-showcase-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:28px;align-items:stretch}
.portal-app-showcase-visual{display:flex;align-items:center;justify-content:center;min-height:460px;padding:20px;border:1px solid #dce7f5;border-radius:30px;background:linear-gradient(160deg,#eef6ff 0%,#ffffff 55%,#f7fbff 100%);box-shadow:0 24px 60px rgba(15,23,42,.10);overflow:hidden}
.portal-app-showcase-visual img{display:block;width:100%;height:auto;max-height:620px;object-fit:contain;border-radius:22px}
.portal-app-benefits{display:grid;gap:14px}
.portal-app-benefit{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:20px;border:1px solid #dce7f5;border-radius:24px;background:linear-gradient(180deg,#fff 0%,#f9fbff 100%);box-shadow:0 14px 34px rgba(15,23,42,.07)}
.portal-app-benefit__icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#eff6ff;color:#1d4ed8;font-size:22px;font-weight:900}
.portal-app-benefit span{display:block;margin-bottom:4px;color:#2563eb;font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.portal-app-benefit h3{margin:0 0 7px;color:#0f172a;font-size:1.16rem}.portal-app-benefit p{margin:0 0 10px;color:#64748b;line-height:1.55}.portal-app-benefit a{color:#1d4ed8;font-weight:850;text-decoration:none}.portal-app-benefit a:hover{text-decoration:underline}
.portal-app-install-note{margin-top:18px;padding:15px 18px;border:1px solid #bfdbfe;border-radius:18px;background:#eff6ff;color:#334155;text-align:center}.portal-app-install-note strong{color:#1d4ed8}
@media(max-width:980px){.portal-app-showcase-grid{grid-template-columns:1fr}.portal-app-showcase-visual{min-height:0}.portal-app-benefits{grid-template-columns:repeat(3,1fr)}.portal-app-benefit{grid-template-columns:1fr}.portal-app-benefit__icon{width:44px;height:44px}}
@media(max-width:720px){.portal-app-showcase-visual{padding:10px;border-radius:22px}.portal-app-benefits{grid-template-columns:1fr}.portal-app-benefit{grid-template-columns:auto 1fr;padding:17px}.portal-app-install-note{text-align:left}}

/* Phase 57: klare Rollenwahl, Zielgruppen-Landingpages und Rechtliches */
.portal-role-section{padding-top:38px}.portal-role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.portal-role-card{display:flex;flex-direction:column;padding:26px;border:1px solid #dce7f5;border-radius:26px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);box-shadow:0 16px 40px rgba(15,23,42,.07)}.portal-role-card-highlight{border-color:#93c5fd;box-shadow:0 20px 48px rgba(37,99,235,.12)}.portal-role-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#eff6ff;font-size:28px;margin-bottom:18px}.portal-role-kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.055em;font-weight:900;color:#2563eb}.portal-role-card h3{font-size:1.45rem;margin:7px 0 9px;color:#0f172a}.portal-role-card p{color:#64748b;line-height:1.6}.portal-role-actions{margin-top:auto;padding-top:18px;display:grid;gap:12px}.portal-text-link{font-weight:850;color:#1d4ed8;text-decoration:none}.portal-audience-hero{margin-bottom:28px}.portal-public-footer{margin-top:46px;border-top:1px solid #dce7f5;background:#f8fafc;color:#475569}.portal-public-footer-grid{display:flex;justify-content:space-between;gap:30px;padding-top:32px;padding-bottom:20px}.portal-public-footer p{margin:6px 0}.portal-public-footer nav{display:flex;gap:18px;flex-wrap:wrap}.portal-public-footer a{color:#334155;font-weight:750;text-decoration:none}.portal-public-footer a:hover{text-decoration:underline}.portal-public-footer-bottom{padding:14px 0 28px;border-top:1px solid #e2e8f0;font-size:.9rem}.portal-legal-card{max-width:940px;margin:0 auto;padding:34px;border:1px solid #dce7f5;border-radius:28px;background:#fff;box-shadow:0 18px 48px rgba(15,23,42,.07)}.portal-legal-card h1{font-size:clamp(2rem,5vw,3.3rem);margin:10px 0 26px;color:#0f172a}.portal-legal-card h2{margin:30px 0 8px;color:#0f172a;font-size:1.25rem}.portal-legal-card p{color:#475569;line-height:1.7}.portal-legal-warning{margin-top:24px;padding:16px 18px;border:1px solid #f5d58b;border-radius:16px;background:#fff8e6;color:#6b4b00;line-height:1.55}@media(max-width:900px){.portal-role-grid{grid-template-columns:1fr}.portal-public-footer-grid{flex-direction:column}.portal-legal-card{padding:22px}}

/* Phase 58: klarere Rollenführung */
.portal-role-helper{margin:18px 0 24px;padding:15px 18px;border:1px solid #dbeafe;border-radius:16px;background:#eff6ff;color:#1e3a5f;text-align:center;line-height:1.55}.portal-role-card .portal-role-kicker{font-weight:800}.portal-role-card h3{margin-top:8px}


/* Phase 87: Public pricing + footer polish */
.portal-btn,
.portal-btn:link,
.portal-btn:visited {
    text-decoration: none;
}

.portal-btn-primary,
.portal-btn-primary:link,
.portal-btn-primary:visited {
    color: #ffffff !important;
}

.portal-pricing-grid {
    align-items: stretch;
}

.portal-pricing-card {
    position: relative;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
    border: 1px solid #dce7f5;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.07);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.portal-pricing-card-basic {
    border-top: 5px solid #cbd5e1;
}

.portal-pricing-card-featured {
    border-top: 5px solid #2563eb;
    background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%);
    box-shadow: 0 20px 48px rgba(37, 99, 235, 0.12);
}

.portal-pricing-card-advanced {
    border-top: 5px solid #1e3a8a;
    background: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%);
}

.portal-pricing-card-head {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 2px;
}

.portal-pricing-card-head h3 {
    margin-bottom: 0;
}

.portal-price-tag {
    margin: 0;
    font-size: 1.75rem;
    line-height: 1.15;
    font-weight: 800;
    color: #0f172a;
}

.portal-pricing-subtitle {
    color: #0f172a;
    font-weight: 700;
    margin: 0;
}

.portal-pricing-kicker {
    font-size: 0.95rem;
    margin: 0 0 4px;
    color: #64748b;
}

.portal-pricing-card .portal-check-list {
    margin-top: 6px;
    margin-bottom: 8px;
}

.portal-pricing-footnote {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid #e2e8f0;
    color: #64748b;
    font-size: 0.92rem;
}

.portal-public-footer-grid {
    align-items: center;
}

.portal-public-footer nav {
    display: flex !important;
    align-items: center;
    gap: 0;
    flex-wrap: wrap;
}

.portal-public-footer nav a {
    display: inline-flex;
    align-items: center;
    padding: 8px 0;
}

.portal-public-footer nav a + a {
    position: relative;
    margin-left: 18px;
    padding-left: 18px;
}

.portal-public-footer nav a + a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 1px;
    height: 15px;
    background: #cbd5e1;
    transform: translateY(-50%);
}

@media (max-width: 900px) {
    .portal-public-footer nav {
        gap: 10px;
    }

    .portal-public-footer nav a + a {
        margin-left: 0;
        padding-left: 0;
    }

    .portal-public-footer nav a + a::before {
        display: none;
    }
}


/* Phase 88: finale visuelle Staffelung der Preismodule */
.portal-pricing-section {
    position: relative;
}

.portal-pricing-path {
    max-width: 980px;
    margin: 0 auto 22px;
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    align-items: center;
    gap: 10px;
}

.portal-pricing-path-item {
    min-height: 88px;
    display: grid;
    grid-template-columns: 42px 1fr;
    grid-template-rows: auto auto;
    column-gap: 12px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid #dce7f5;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .05);
}

.portal-pricing-path-item > span {
    grid-row: 1 / 3;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: #f1f5f9;
    color: #475569;
    font-weight: 900;
}

.portal-pricing-path-item strong {
    color: #0f172a;
    font-size: .98rem;
}

.portal-pricing-path-item small {
    color: #64748b;
    font-weight: 700;
}

.portal-pricing-path-item-featured {
    border-color: #bfdbfe;
    background: #f8fbff;
}

.portal-pricing-path-item-featured > span {
    background: #dbeafe;
    color: #1d4ed8;
}

.portal-pricing-path-item-advanced {
    border-color: #c7d2fe;
    background: #f8faff;
}

.portal-pricing-path-item-advanced > span {
    background: #e0e7ff;
    color: #3730a3;
}

.portal-pricing-path-arrow {
    color: #94a3b8;
    font-size: 1.35rem;
    font-weight: 900;
}

.portal-pricing-card {
    overflow: visible;
    padding-top: 24px;
}

.portal-pricing-card-featured {
    transform: translateY(-7px);
}

.portal-pricing-card-featured:hover {
    transform: translateY(-11px);
}

.portal-pricing-card-top {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 2px;
}

.portal-pricing-step {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #f1f5f9;
    color: #475569;
    font-size: .8rem;
    font-weight: 900;
}

.portal-pricing-card-featured .portal-pricing-step {
    background: #dbeafe;
    color: #1d4ed8;
}

.portal-pricing-card-advanced .portal-pricing-step {
    background: #e0e7ff;
    color: #3730a3;
}

.portal-pricing-label {
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .055em;
    font-size: .76rem;
    font-weight: 900;
}

.portal-pricing-recommendation {
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    padding: 7px 13px;
    border-radius: 999px;
    background: #2563eb;
    color: #ffffff;
    font-size: .76rem;
    font-weight: 900;
    box-shadow: 0 10px 22px rgba(37, 99, 235, .22);
}

.portal-price-tag {
    display: flex;
    align-items: baseline;
    gap: 7px;
}

.portal-price-tag strong {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    color: #0f172a;
}

.portal-price-tag span {
    color: #64748b;
    font-size: .9rem;
    font-weight: 700;
}

.portal-pricing-status {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    min-height: 32px;
    padding: 6px 10px;
    border-radius: 10px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: .82rem;
    font-weight: 850;
}

.portal-pricing-status-free {
    background: #ecfdf3;
    color: #167447;
}

.portal-pricing-status-network {
    background: #eef2ff;
    color: #4338ca;
}

.portal-pricing-card-action {
    margin-top: auto;
    padding-top: 8px;
}

.portal-pricing-card-action + .portal-pricing-footnote {
    margin-top: 10px;
}

.portal-pricing-combine-note {
    margin-top: 22px;
    padding: 18px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    border: 1px solid #dce7f5;
    border-radius: 18px;
    background: #ffffff;
    color: #475569;
}

.portal-pricing-combine-note strong {
    color: #0f172a;
    margin-right: 4px;
}

.portal-pricing-combine-note span {
    padding: 7px 10px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    font-size: .86rem;
    font-weight: 750;
}

.portal-pricing-commission-note {
    max-width: 980px;
    margin: 14px auto 0;
    padding: 14px 18px;
    border-radius: 16px;
    background: #f8fafc;
    color: #64748b;
    text-align: center;
    font-size: .9rem;
    line-height: 1.55;
}

.portal-pricing-commission-note strong {
    color: #334155;
}

@media (max-width: 1024px) {
    .portal-pricing-path {
        grid-template-columns: 1fr;
    }

    .portal-pricing-path-arrow {
        display: none;
    }

    .portal-pricing-card-featured,
    .portal-pricing-card-featured:hover {
        transform: none;
    }
}

/* TiXA Brand Logo – Phase 109 */
.tixa-brand-link{display:inline-flex!important;align-items:center!important;text-decoration:none!important;min-width:0;}
.tixa-brand-logo{display:block;width:auto;max-width:100%;object-fit:contain;object-position:left center;}
.tixa-brand-logo-public{height:72px;max-width:230px;}
.tixa-brand-logo-internal{height:64px;max-width:205px;}
.tixa-footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:7px;}
.tixa-footer-brand img{width:150px;height:auto;display:block;}
.portal-footer-brand img{width:170px;height:auto;display:block;margin-bottom:8px;}
@media(max-width:760px){.tixa-brand-logo-public{height:58px;max-width:185px}.tixa-brand-logo-internal{height:54px;max-width:175px}.portal-footer-brand img{width:150px}}

.public-brand-logo-link{display:inline-flex!important;align-items:center!important;text-decoration:none!important}.public-brand-logo{display:block;width:170px;height:auto;max-height:64px;object-fit:contain;object-position:left center}@media(max-width:650px){.public-brand-logo{width:145px;max-height:54px}}

/* Phase 133: kompakter, visueller Hero */
.portal-hero-v2{overflow:hidden;background:linear-gradient(135deg,#fff 0%,#f8fbff 62%,#eef6ff 100%)}
.portal-hero-v2 .portal-hero-copy h1{max-width:720px;letter-spacing:-.045em;line-height:.98}.portal-hero-v2 .portal-hero-copy h1 span{color:#2472df}
.portal-hero-v2 .portal-lead{max-width:720px;font-size:1.08rem;line-height:1.62}.portal-hero-login{display:inline-flex;align-items:center;padding:12px 2px;font-weight:800}
.portal-trust-line{display:flex;gap:10px 18px;flex-wrap:wrap;margin-top:24px;padding-top:18px;border-top:1px solid #dce8f5;color:#52667d;font-size:.82rem;font-weight:750}
.portal-dispo-preview{background:#fff;border:1px solid #d8e5f3;border-radius:24px;padding:18px;box-shadow:0 22px 55px rgba(24,62,104,.12);align-self:center}
.portal-preview-head,.portal-preview-vehicle,.portal-preview-ride,.portal-preview-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.portal-preview-head{padding:2px 2px 15px}.portal-preview-head small{display:block;color:#7a8da3;font-size:.65rem;font-weight:900;letter-spacing:.12em}.portal-preview-head strong{display:block;margin-top:2px;color:#13243b;font-size:1.15rem}.portal-preview-live{padding:6px 9px;border-radius:999px;background:#eaf8ef;color:#16834f;font-size:.72rem;font-weight:900}.portal-preview-vehicle{padding:10px 12px;border-radius:12px;background:#f2f7fd;color:#3d5875;font-size:.76rem}.portal-preview-vehicle b{color:#1d65bd}.portal-preview-ride{padding:14px 4px;border-bottom:1px solid #edf2f7}.portal-preview-ride time{min-width:46px;color:#13243b;font-size:.94rem;font-weight:900}.portal-preview-ride div{display:grid;gap:2px;flex:1}.portal-preview-ride strong{color:#172b44;font-size:.84rem}.portal-preview-ride span{color:#71839a;font-size:.72rem}.portal-preview-ride em{font-style:normal;padding:5px 8px;border-radius:999px;background:#eef2f6;color:#52667d;font-size:.66rem;font-weight:850}.portal-preview-ride em.is-success{background:#e8f8ef;color:#13824d}.portal-preview-ride em.is-open{background:#eaf2ff;color:#1e68c5}.portal-preview-gap{display:flex;justify-content:space-between;align-items:center;margin:7px 46px 0;padding:6px 9px;border:1px dashed #b9cce1;border-radius:10px;color:#6a8097;font-size:.68rem}.portal-preview-gap button{border:0;background:transparent;color:#1769c8;font:inherit;font-weight:900}.portal-preview-foot{margin-top:13px;padding:10px 12px;border-radius:12px;background:#142238;color:#fff;font-size:.69rem}.portal-preview-foot span:last-child{color:#b9d8ff}
@media(max-width:760px){.portal-trust-line{gap:8px 12px}.portal-preview-gap{margin-left:0;margin-right:0}.portal-dispo-preview{padding:14px;border-radius:19px}.portal-hero-v2 .portal-hero-copy h1{font-size:clamp(2.35rem,12vw,3.7rem)}}
