/* IMMFIMA – Startseite. Alle Regeln sind gekapselt. */
.access-page {
    --gold:#b99146; --gold-dark:#826126; --gold-soft:#f5ead4;
    --ink:#24272b; --copy:#5f646b; --line:rgba(36,39,43,.11);
    margin:0; min-height:100vh; color:var(--ink);
    font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background:linear-gradient(105deg,rgba(250,248,244,.98),rgba(250,248,244,.93) 52%,rgba(250,248,244,.77)),url("/static/assets/hintergrund/back-bg.jpg") center/cover fixed;
}
.access-page a { color:inherit; }
.access-shell { width:min(1240px,calc(100% - 48px)); min-height:100vh; margin:auto; display:flex; flex-direction:column; }

.access-nav { min-height:94px; display:flex; align-items:center; justify-content:space-between; gap:32px; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:13px; text-decoration:none; }
.brand-mark { width:43px; height:43px; display:grid; place-items:center; border-radius:50%; color:#fff; background:linear-gradient(145deg,#cba75e,#8e692b); box-shadow:0 8px 22px rgba(130,97,38,.22); font:700 1.35rem "Playfair Display",serif; }
.brand-mark.brand-logo { overflow:hidden; border-radius:11px; background:#fff; box-shadow:0 8px 22px rgba(11,53,104,.18); }
.brand-logo img { width:100%; height:100%; display:block; object-fit:cover; }
.brand-copy { display:flex; flex-direction:column; line-height:1.05; }
.brand-copy strong { font:700 1.35rem "Playfair Display",serif; letter-spacing:.09em; }
.brand-copy small { margin-top:5px; color:var(--copy); font-size:.69rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.access-links { display:flex; align-items:center; gap:10px; }
.access-links a { padding:10px 13px; border-radius:999px; color:var(--copy); font-size:.82rem; font-weight:600; text-decoration:none; transition:.18s ease; }
.access-links a:hover { color:var(--ink); background:rgba(255,255,255,.7); }
.access-links .document-link { border:1px solid rgba(185,145,70,.35); color:var(--gold-dark); }

.access-main { flex:1; padding:clamp(50px,7vw,92px) 0 clamp(44px,6vw,76px); }
.access-intro { max-width:780px; }
.eyebrow,.section-kicker { display:inline-flex; align-items:center; gap:10px; color:var(--gold-dark); font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.eyebrow::before { content:""; width:28px; height:1px; background:var(--gold); }
.access-intro h1 { margin:16px 0 18px; font:600 clamp(2.55rem,5.2vw,4.8rem)/1.02 "Playfair Display",serif; letter-spacing:-.035em; }
.access-intro h1 span { color:var(--gold-dark); }
.access-intro>p { max-width:680px; margin:0; color:var(--copy); font-size:clamp(1rem,1.4vw,1.15rem); line-height:1.75; }
.trust-line { display:flex; align-items:center; gap:9px; margin-top:24px; color:#4f545a; font-size:.86rem; font-weight:500; }
.trust-icon { width:21px; height:21px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--gold); font-size:.7rem; }

.login-section { margin-top:clamp(24px,2.5vw,36px); }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.section-heading h2 { margin:7px 0 0; font:600 clamp(1.55rem,2.7vw,2.25rem)/1.2 "Playfair Display",serif; }
.section-heading>p { margin:0 0 4px; color:var(--copy); font-size:.86rem; }
.login-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.login-card { position:relative; min-height:300px; padding:28px; display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(255,255,255,.86); border-radius:22px; color:var(--ink); background:rgba(255,255,255,.92); box-shadow:0 18px 48px rgba(45,41,32,.09); text-decoration:none; transition:.22s ease; }
.login-card::after { content:""; position:absolute; right:-68px; bottom:-82px; width:180px; height:180px; border-radius:50%; background:rgba(185,145,70,.08); transition:.25s ease; }
.login-card:hover,.login-card:focus-visible { transform:translateY(-6px); border-color:rgba(185,145,70,.42); box-shadow:0 25px 65px rgba(45,41,32,.14); outline:none; }
.login-card:hover::after { transform:scale(1.18); }
.card-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:16px; background:var(--gold-soft); }
.card-icon img { width:36px; height:36px; margin:0; object-fit:contain; }
.card-number { position:absolute; top:30px; right:28px; color:rgba(36,39,43,.2); font:700 1rem "Playfair Display",serif; }
.card-content { display:flex; flex-direction:column; gap:9px; margin-top:30px; }
.card-content strong { font:600 1.45rem/1.2 "Playfair Display",serif; }
.card-content>span { max-width:290px; color:var(--copy); font-size:.9rem; line-height:1.65; }
.card-action { position:relative; z-index:1; margin-top:auto; display:flex; align-items:center; justify-content:space-between; color:var(--gold-dark); font-size:.83rem; font-weight:700; }
.card-action b { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--gold); font-size:1rem; transition:.18s ease; }
.login-card:hover .card-action b { transform:translateX(3px); }

.access-footer { min-height:72px; display:flex; align-items:center; gap:14px; border-top:1px solid var(--line); color:#72767b; font-size:.76rem; }
.footer-separator { width:3px; height:3px; border-radius:50%; background:var(--gold); }

@media(max-width:900px) { .login-grid{grid-template-columns:1fr}.login-card{min-height:260px} }
@media(max-width:680px) {
    .access-shell{width:min(100% - 30px,1240px)} .access-nav{min-height:82px}
    .brand-copy small,.access-links>a:first-child{display:none}
    .access-links a{padding:9px 11px;font-size:.75rem}
    .access-main{padding-top:44px}.section-heading{align-items:flex-start;flex-direction:column}
    .section-heading>p{display:none}.login-section{margin-top:30px}
    .login-card{min-height:250px;padding:24px}
    .access-footer{align-items:flex-start;flex-direction:column;justify-content:center;gap:3px;padding:16px 0}
    .footer-separator{display:none}
}
@media(prefers-reduced-motion:reduce) { .login-card,.login-card::after,.card-action b{transition:none} }
