/* ===== ABWESENHEITSVERWALTUNG – ORANGE CALENDAR THEME ===== */

    /* HERO: Dark with giant year calendar visualization */
    .ab-hero {
      background: #0c0400;
      min-height: 100vh;
      padding: 120px 0 80px;
      position: relative;
      overflow: hidden;
    }
    .ab-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 50% 60% at 20% 40%, rgba(249,115,22,.12) 0%, transparent 70%),
        radial-gradient(ellipse 35% 40% at 85% 60%, rgba(245,158,11,.08) 0%, transparent 60%);
    }
    .ab-hero-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
      position: relative;
      z-index: 1;
    }
    .ab-badge {
      display: inline-flex; align-items: center; gap: .5rem;
      background: rgba(249,115,22,.12);
      border: 1px solid rgba(249,115,22,.25);
      color: #fb923c;
      border-radius: 99px;
      padding: .4rem 1rem;
      font-size: .8rem; font-weight: 700; letter-spacing: .04em;
      margin-bottom: 1.5rem;
    }
    .ab-title { font-size: clamp(2rem, 3.8vw, 3rem); font-weight: 800; color: #fff; line-height: 1.1; margin-bottom: 1.25rem; }
    .ab-grad { background: linear-gradient(135deg, #fb923c, #f97316, #fbbf24); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
    .ab-sub { font-size: 1.05rem; color: rgba(255,255,255,.6); line-height: 1.7; margin-bottom: 2rem; }
    .ab-cta { display: flex; gap: 1rem; flex-wrap: wrap; }
    .ab-btn-p {
      background: linear-gradient(135deg, #f97316, #f59e0b);
      color: #fff; border: none; border-radius: 10px;
      padding: .85rem 2rem; font-size: .95rem; font-weight: 700;
      text-decoration: none; display: inline-block;
      box-shadow: 0 0 30px rgba(249,115,22,.3);
    }
    .ab-btn-g {
      background: rgba(255,255,255,.07);
      color: rgba(255,255,255,.85);
      border: 1px solid rgba(255,255,255,.25);
      border-radius: 10px; padding: .85rem 2rem;
      font-size: .95rem; font-weight: 600;
      text-decoration: none; display: inline-block;
      transition: background .2s, border-color .2s;
    }
    .ab-btn-g:hover {
      background: rgba(255,255,255,.12);
      border-color: rgba(255,255,255,.4);
    }

    /* Year Calendar visualization */
    .ab-calendar-wrap { }
    .ab-cal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
    .ab-cal-year { font-size: 1.1rem; font-weight: 800; color: #fff; }
    .ab-cal-legend { display: flex; gap: 1rem; }
    .ab-cal-legend-item { display: flex; align-items: center; gap: .3rem; font-size: .65rem; color: rgba(255,255,255,.5); }
    .ab-cal-legend-dot { width: 8px; height: 8px; border-radius: 2px; }
    .ab-cal-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: .75rem;
    }
    .ab-cal-month {
      background: rgba(255,255,255,.04);
      border: 1px solid rgba(255,255,255,.06);
      border-radius: 12px;
      padding: .75rem;
    }
    .ab-cal-month-name { font-size: .65rem; font-weight: 800; color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .05em; margin-bottom: .5rem; }
    .ab-cal-days { display: grid; grid-template-columns: repeat(7,1fr); gap: 2px; }
    .ab-cal-day {
      width: 100%;
      aspect-ratio: 1;
      border-radius: 2px;
      font-size: .45rem;
      display: flex;
      align-items: center;
      justify-content: center;
      color: rgba(255,255,255,.35);
    }
    .ab-d-normal { background: rgba(255,255,255,.04); }
    .ab-d-weekend { background: rgba(255,255,255,.02); color: rgba(255,255,255,.2); }
    .ab-d-urlaub { background: rgba(249,115,22,.4); color: #fff; font-weight: 700; }
    .ab-d-krank { background: rgba(239,68,68,.35); color: #fff; }
    .ab-d-sonder { background: rgba(139,92,246,.4); color: #fff; }
    .ab-d-feiertag { background: rgba(34,197,94,.25); color: rgba(255,255,255,.6); }
    .ab-d-empty { background: transparent; }

    /* Stats strip */
    .ab-stats { background: #1a0800; border-top: 1px solid rgba(249,115,22,.1); border-bottom: 1px solid rgba(249,115,22,.1); padding: 2.5rem 0; }
    .ab-stats-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 2rem; text-align: center; }
    .ab-stat-num { font-size: 2.4rem; font-weight: 800; background: linear-gradient(135deg,#fb923c,#f97316); -webkit-background-clip:text; -webkit-text-fill-color:transparent; display: block; margin-bottom: .25rem; }
    .ab-stat-lbl { font-size: .83rem; color: rgba(255,255,255,.5); }

    /* Absence types */
    .ab-types { padding: 6rem 0; background: #f8fafc; }
    .ab-sec-label { display: block; text-align: center; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: #f97316; margin-bottom: .75rem; }
    .ab-sec-title { text-align: center; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 800; color: #0f172a; margin-bottom: .5rem; }
    .ab-sec-sub { text-align: center; color: #64748b; max-width: 560px; margin: 0 auto 3.5rem; font-size: .95rem; line-height: 1.7; }
    .ab-types-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
    .ab-type-card {
      background: #fff;
      border-radius: 20px;
      padding: 1.75rem;
      border: 1px solid #e2e8f0;
      position: relative;
      overflow: hidden;
    }
    .ab-type-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0;
      width: 6px;
      height: 100%;
    }
    .ab-tc-urlaub::before { background: linear-gradient(180deg, #f97316, #fb923c); }
    .ab-tc-krank::before { background: linear-gradient(180deg, #ef4444, #f87171); }
    .ab-tc-sonder::before { background: linear-gradient(180deg, #8b5cf6, #a78bfa); }
    .ab-tc-eltern::before { background: linear-gradient(180deg, #ec4899, #f9a8d4); }
    .ab-tc-fortbildung::before { background: linear-gradient(180deg, #14b8a6, #2dd4bf); }
    .ab-tc-unbezahlt::before { background: linear-gradient(180deg, #94a3b8, #cbd5e1); }
    .ab-type-icon { width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; margin-bottom: .75rem; background: rgba(249,115,22,.1); border: 1px solid rgba(249,115,22,.15); }
    .ab-type-card h3 { font-size: 1rem; font-weight: 800; color: #0f172a; margin-bottom: .25rem; }
    .ab-type-sub { font-size: .75rem; color: #94a3b8; margin-bottom: .75rem; }
    .ab-type-card p { font-size: .83rem; color: #64748b; line-height: 1.55; margin-bottom: 1rem; }
    .ab-type-features { display: flex; flex-direction: column; gap: .3rem; }
    .ab-type-feature { font-size: .78rem; color: #475569; display: flex; align-items: center; gap: .4rem; }
    .ab-type-feature::before { content: '→'; color: #f97316; font-weight: 700; flex-shrink: 0; }
    .ab-tc-krank .ab-type-feature::before { color: #ef4444; }
    .ab-tc-sonder .ab-type-feature::before { color: #8b5cf6; }
    .ab-tc-eltern .ab-type-feature::before { color: #ec4899; }
    .ab-tc-fortbildung .ab-type-feature::before { color: #14b8a6; }
    .ab-tc-unbezahlt .ab-type-feature::before { color: #94a3b8; }

    /* Leave balance visualization */
    .ab-balance { padding: 6rem 0; background: #0c0400; }
    .ab-balance-title { text-align: center; color: #fff; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 800; margin-bottom: .5rem; }
    .ab-balance-sub { text-align: center; color: rgba(255,255,255,.5); max-width: 560px; margin: 0 auto 3.5rem; font-size: .95rem; }
    .ab-balance-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
    .ab-balance-left { display: flex; flex-direction: column; gap: .85rem; }
    .ab-employee-row {
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.08);
      border-radius: 14px;
      padding: 1.25rem;
    }
    .ab-emp-header { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
    .ab-emp-avatar { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .7rem; font-weight: 700; color: #fff; flex-shrink: 0; }
    .ab-emp-name { font-size: .85rem; font-weight: 700; color: #fff; }
    .ab-emp-role { font-size: .7rem; color: rgba(255,255,255,.4); }
    .ab-emp-days { margin-left: auto; text-align: right; }
    .ab-emp-days-num { font-size: 1rem; font-weight: 800; color: #fb923c; display: block; }
    .ab-emp-days-lbl { font-size: .65rem; color: rgba(255,255,255,.35); }
    .ab-emp-bar-wrap { height: 8px; background: rgba(255,255,255,.08); border-radius: 99px; overflow: hidden; }
    .ab-emp-bar { height: 100%; border-radius: 99px; transition: width .3s; }
    .ab-balance-right { }
    .ab-balance-right h3 { font-size: 1rem; font-weight: 700; color: #fff; margin-bottom: 1.25rem; }
    .ab-summary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
    .ab-summary-box {
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.08);
      border-radius: 14px;
      padding: 1.25rem;
      text-align: center;
    }
    .ab-summary-icon { width: 44px; height: 44px; border-radius: 12px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); display: flex; align-items: center; justify-content: center; margin: 0 auto .5rem; }
    .ab-summary-num { font-size: 1.4rem; font-weight: 800; display: block; margin-bottom: .2rem; }
    .ab-summary-lbl { font-size: .75rem; color: rgba(255,255,255,.4); }
    .ab-rules { margin-top: 1.75rem; background: rgba(249,115,22,.08); border: 1px solid rgba(249,115,22,.2); border-radius: 14px; padding: 1.25rem; }
    .ab-rules-title { font-size: .8rem; font-weight: 700; color: #fb923c; margin-bottom: .85rem; }
    .ab-rule { display: flex; align-items: flex-start; gap: .5rem; font-size: .78rem; color: rgba(255,255,255,.6); margin-bottom: .5rem; }
    .ab-rule::before { content: '✓'; color: #22c55e; font-weight: 700; flex-shrink: 0; }

    /* Workflow & Integration */
    .ab-workflow { padding: 6rem 0; background: #fff; }
    .ab-workflow-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
    .ab-workflow-left h2 { font-size: clamp(1.7rem, 2.5vw, 2.2rem); font-weight: 800; color: #0f172a; margin-bottom: 1rem; }
    .ab-workflow-left p { font-size: .95rem; color: #64748b; line-height: 1.7; margin-bottom: 2rem; }
    .ab-workflow-steps { display: flex; flex-direction: column; gap: 0; }
    .ab-wf-step { display: flex; gap: 1.25rem; align-items: flex-start; }
    .ab-wf-left { display: flex; flex-direction: column; align-items: center; }
    .ab-wf-dot { width: 40px; height: 40px; border-radius: 50%; border: 3px solid #f97316; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: #fff; position: relative; z-index: 1; }
    .ab-wf-line { width: 2px; flex: 1; background: linear-gradient(180deg, #f97316, #fbbf24); min-height: 30px; }
    .ab-wf-content { padding-bottom: 1.5rem; }
    .ab-wf-content h4 { font-size: .9rem; font-weight: 700; color: #0f172a; margin-bottom: .25rem; margin-top: .4rem; }
    .ab-wf-content p { font-size: .82rem; color: #64748b; line-height: 1.5; }
    .ab-wf-tag { display: inline-block; font-size: .7rem; font-weight: 700; border-radius: 6px; padding: .2rem .6rem; margin-top: .35rem; }
    .ab-workflow-right {
      background: #fef3c7;
      border-radius: 24px;
      padding: 2rem;
      border: 1px solid #fde68a;
    }
    .ab-workflow-right h3 { font-size: .9rem; font-weight: 700; color: #92400e; margin-bottom: 1.25rem; }
    .ab-integration-list { display: flex; flex-direction: column; gap: .75rem; }
    .ab-integration-item { display: flex; align-items: center; gap: .75rem; background: #fff; border-radius: 12px; padding: 1rem; border: 1px solid #fde68a; }
    .ab-integration-icon { width: 38px; height: 38px; border-radius: 10px; background: rgba(249,115,22,.1); border: 1px solid rgba(249,115,22,.2); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .ab-integration-text h4 { font-size: .82rem; font-weight: 700; color: #0f172a; margin-bottom: .15rem; }
    .ab-integration-text p { font-size: .73rem; color: #64748b; line-height: 1.4; }
    .ab-integration-status { margin-left: auto; font-size: .7rem; font-weight: 700; color: #16a34a; white-space: nowrap; }

    /* Benefits */
    .ab-benefits { padding: 6rem 0; background: #f8fafc; }
    .ab-ben-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
    .ab-ben-card { background: #fff; border-radius: 16px; padding: 1.75rem; border: 1px solid #e2e8f0; }
    .ab-ben-icon { width: 46px; height: 46px; border-radius: 12px; background: rgba(249,115,22,.1); display: flex; align-items: center; justify-content: center; color: #f97316; margin-bottom: 1rem; }
    .ab-ben-card h3 { font-size: .95rem; font-weight: 700; color: #0f172a; margin-bottom: .4rem; }
    .ab-ben-card p { font-size: .83rem; color: #64748b; line-height: 1.6; }

    /* Steps */
    .ab-steps { padding: 6rem 0; background: #0c0400; }
    .ab-steps-title { text-align: center; color: #fff; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 800; margin-bottom: .5rem; }
    .ab-steps-sub { text-align: center; color: rgba(255,255,255,.5); max-width: 560px; margin: 0 auto 3.5rem; font-size: .95rem; }
    .ab-steps-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
    .ab-step {
      background: rgba(255,255,255,.04);
      border: 1px solid rgba(249,115,22,.15);
      border-radius: 20px;
      padding: 2rem;
      position: relative;
      overflow: hidden;
    }
    .ab-step-num { position: absolute; top: -8px; right: 1rem; font-size: 5rem; font-weight: 900; color: rgba(249,115,22,.08); line-height: 1; }
    .ab-step-icon { width: 52px; height: 52px; border-radius: 14px; background: rgba(249,115,22,.15); border: 1px solid rgba(249,115,22,.3); display: flex; align-items: center; justify-content: center; margin-bottom: 1.25rem; position: relative; z-index: 1; }
    .ab-step h3 { font-size: 1rem; font-weight: 700; color: #fff; margin-bottom: .4rem; position: relative; z-index: 1; }
    .ab-step p { font-size: .83rem; color: rgba(255,255,255,.5); line-height: 1.6; position: relative; z-index: 1; }

    /* CTA */
    .ab-cta { padding: 6rem 0; }
    .ab-cta-inner { text-align: center; }
    .ab-cta-inner h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 800; color: #0f172a; margin-bottom: .75rem; }
    .ab-cta-inner p { color: #64748b; margin-bottom: 2rem; }
    .ab-cta-btns { display: flex; gap: 1rem; justify-content: center; }
    .ab-cta-w { background: linear-gradient(135deg, #f97316, #f59e0b); color: #fff; border-radius: 10px; padding: .85rem 2rem; font-weight: 700; text-decoration: none; box-shadow: 0 4px 16px rgba(249,115,22,.3); }
    .ab-cta-o { background: transparent; color: #475569; border: 1.5px solid #e2e8f0; border-radius: 10px; padding: .85rem 2rem; font-weight: 600; text-decoration: none; }

    @media (max-width:900px) {
      .ab-hero-inner { grid-template-columns: 1fr; gap: 2.5rem; }
      .ab-cal-grid { grid-template-columns: repeat(2,1fr); }
      .ab-stats-row { grid-template-columns: 1fr 1fr; gap: 1.25rem; }
      .ab-types-grid { grid-template-columns: 1fr 1fr; }
      .ab-balance-inner { grid-template-columns: 1fr; gap: 2.5rem; }
      .ab-workflow-inner { grid-template-columns: 1fr; gap: 2.5rem; }
      .ab-ben-grid { grid-template-columns: 1fr 1fr; }
      .ab-steps-row { grid-template-columns: 1fr; }
      .ab-cta-btns { flex-wrap: wrap; }
    }
    @media (max-width:600px) {
      .ab-hero { padding: 100px 0 60px; min-height: auto; }
      .ab-title { font-size: clamp(1.5rem, 6vw, 2rem); }
      .ab-sub { font-size: .95rem; }
      .ab-cta { flex-direction: column; }
      .ab-cta a { text-align: center; width: 100%; }
      .ab-types-grid { grid-template-columns: 1fr; }
      .ab-ben-grid { grid-template-columns: 1fr; }
      .ab-stats-row { grid-template-columns: 1fr 1fr; gap: 1rem; }
      .ab-stat-num { font-size: 1.8rem; }
      .ab-stat-lbl { font-size: .75rem; }
      .ab-summary-grid { grid-template-columns: 1fr 1fr; gap: .625rem; }
      .ab-cta-btns { flex-direction: column; align-items: center; }
      .ab-cta-btns a { width: 100%; max-width: 320px; text-align: center; }
    }
    @media (max-width: 374px) {
      .ab-cal-grid { grid-template-columns: 1fr; }
      .ab-stats-row { grid-template-columns: 1fr; }
    }
    @media (max-width: 768px) { footer .container > div:first-child { grid-template-columns: 1fr !important; } }
