    /* ===== RESET & BASE ===== */
    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    :root {
      --navy:       #1a2f4e;
      --navy-dark:  #112240;
      --navy-mid:   #1e3a5f;
      --gold:       #C9A84C;
      --gold-light: #e2c06a;
      --gold-dark:  #a8882d;
      --white:      #FAFAF8;
      --gray-light: #F0F4F8;
      --gray-mid:   #d1dce8;
      --text-dark:  #1a2f4e;
      --text-muted: #4a6080;
      --text-light: #8aa0bb;
      --radius:     12px;
      --radius-lg:  20px;
      --shadow-sm:  0 2px 8px rgba(26,47,78,.08);
      --shadow-md:  0 8px 32px rgba(26,47,78,.14);
      --shadow-lg:  0 16px 56px rgba(26,47,78,.18);
      --transition: .28s cubic-bezier(.4,0,.2,1);
    }

    html {
      scroll-behavior: smooth;
      font-size: 16px;
    }

    body {
      font-family: 'Inter', sans-serif;
      background: var(--white);
      color: var(--text-dark);
      line-height: 1.65;
      -webkit-font-smoothing: antialiased;
    }

    img { display: block; max-width: 100%; }

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

    ul { list-style: none; }

    /* ===== SCROLL ANIMATION ===== */
    .fade-up {
      opacity: 0;
      transform: translateY(36px);
      transition: opacity .65s ease, transform .65s ease;
    }
    .fade-up.visible {
      opacity: 1;
      transform: translateY(0);
    }
    .fade-up.delay-1 { transition-delay: .1s; }
    .fade-up.delay-2 { transition-delay: .2s; }
    .fade-up.delay-3 { transition-delay: .3s; }
    .fade-up.delay-4 { transition-delay: .4s; }
    .fade-up.delay-5 { transition-delay: .5s; }
    .fade-up.delay-6 { transition-delay: .6s; }

    /* ===== LAYOUT HELPERS ===== */
    .container {
      width: 100%;
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 24px;
    }

    .section-label {
      display: inline-block;
      font-size: .75rem;
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 12px;
    }

    .section-title {
      font-size: clamp(1.75rem, 4vw, 2.75rem);
      font-weight: 800;
      line-height: 1.2;
      color: var(--navy);
      margin-bottom: 16px;
    }

    .section-subtitle {
      font-size: 1.05rem;
      color: var(--text-muted);
      max-width: 560px;
      line-height: 1.7;
    }

    /* ===== BUTTONS ===== */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 14px 28px;
      border-radius: var(--radius);
      font-family: 'Inter', sans-serif;
      font-size: .95rem;
      font-weight: 600;
      cursor: pointer;
      border: 2px solid transparent;
      transition: var(--transition);
      white-space: nowrap;
      text-decoration: none;
    }

    .btn-gold {
      background: var(--gold);
      color: var(--navy-dark);
      border-color: var(--gold);
    }
    .btn-gold:hover {
      background: var(--gold-light);
      border-color: var(--gold-light);
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(201,168,76,.35);
    }

    .btn-outline-white {
      background: transparent;
      color: #fff;
      border-color: rgba(255,255,255,.6);
    }
    .btn-outline-white:hover {
      background: rgba(255,255,255,.1);
      border-color: #fff;
      transform: translateY(-2px);
    }

    .btn-navy {
      background: var(--navy);
      color: #fff;
      border-color: var(--gold);
    }
    .btn-navy:hover {
      background: var(--navy-mid);
      transform: translateY(-2px);
      box-shadow: var(--shadow-md);
    }

    .btn-outline-navy {
      background: transparent;
      color: var(--navy);
      border-color: var(--navy);
    }
    .btn-outline-navy:hover {
      background: var(--navy);
      color: #fff;
      transform: translateY(-2px);
    }

    .btn-dark {
      background: var(--navy-dark);
      color: #fff;
      border-color: var(--navy-dark);
    }
    .btn-dark:hover {
      background: var(--navy);
      transform: translateY(-2px);
      box-shadow: var(--shadow-md);
    }

    /* ===== NAVIGATION ===== */
    #navbar {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: rgba(26, 47, 78, 0.97);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid rgba(201,168,76,.2);
      transition: box-shadow var(--transition);
    }
    #navbar.scrolled {
      box-shadow: 0 4px 24px rgba(0,0,0,.25);
    }

    .nav-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      height: 68px;
      gap: 24px;
    }

    .nav-logo {
      font-size: 1.15rem;
      font-weight: 800;
      color: #fff;
      letter-spacing: -.01em;
      flex-shrink: 0;
    }
    .nav-logo span {
      color: var(--gold);
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 4px;
    }
    .nav-links a {
      color: rgba(255,255,255,.8);
      font-size: .9rem;
      font-weight: 500;
      padding: 8px 14px;
      border-radius: 8px;
      transition: var(--transition);
      white-space: nowrap;
    }
    .nav-links a:hover {
      color: #fff;
      background: rgba(255,255,255,.08);
    }

    .nav-cta {
      flex-shrink: 0;
    }

    .hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      padding: 6px;
      border: none;
      background: none;
      border-radius: 8px;
      transition: var(--transition);
    }
    .hamburger:hover { background: rgba(255,255,255,.1); }
    .hamburger span {
      display: block;
      width: 24px;
      height: 2px;
      background: #fff;
      border-radius: 2px;
      transition: var(--transition);
    }
    .hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity: 0; }
    .hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    .mobile-menu {
      display: none;
      flex-direction: column;
      gap: 4px;
      padding: 12px 24px 20px;
      border-top: 1px solid rgba(201,168,76,.15);
    }
    .mobile-menu.open { display: flex; }
    .mobile-menu a {
      color: rgba(255,255,255,.85);
      font-size: 1rem;
      font-weight: 500;
      padding: 12px 16px;
      border-radius: 8px;
      transition: var(--transition);
    }
    .mobile-menu a:hover {
      background: rgba(255,255,255,.08);
      color: #fff;
    }
    .mobile-menu .btn {
      margin-top: 8px;
      justify-content: center;
    }

    /* ===== HERO ===== */
    #hero {
      position: relative;
      min-height: 90vh;
      display: flex;
      align-items: center;
      background: linear-gradient(135deg, #0d1d30 0%, #1a2f4e 45%, #1e3a5f 100%);
      overflow: hidden;
    }

    /* Geometric CSS pattern */
    #hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image:
        linear-gradient(rgba(201,168,76,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,168,76,.06) 1px, transparent 1px);
      background-size: 60px 60px;
      pointer-events: none;
    }

    /* Decorative circles */
    #hero::after {
      content: '';
      position: absolute;
      top: -20%;
      right: -10%;
      width: 600px;
      height: 600px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(201,168,76,.12) 0%, transparent 70%);
      pointer-events: none;
    }

    .hero-deco {
      position: absolute;
      bottom: -15%;
      left: -8%;
      width: 480px;
      height: 480px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(30,58,95,.6) 0%, transparent 70%);
      pointer-events: none;
    }

    .hero-content {
      position: relative;
      z-index: 1;
      padding: 80px 0;
    }

    .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(201,168,76,.15);
      border: 1px solid rgba(201,168,76,.35);
      border-radius: 100px;
      padding: 6px 16px;
      font-size: .8rem;
      font-weight: 600;
      color: var(--gold-light);
      letter-spacing: .06em;
      text-transform: uppercase;
      margin-bottom: 28px;
    }
    .hero-badge::before {
      content: '';
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--gold);
      flex-shrink: 0;
    }

    .hero-headline {
      font-size: clamp(2.2rem, 6vw, 4rem);
      font-weight: 900;
      line-height: 1.1;
      color: #fff;
      letter-spacing: -.02em;
      margin-bottom: 24px;
      max-width: 780px;
    }
    .hero-headline em {
      font-style: normal;
      color: var(--gold);
    }

    .hero-subline {
      font-size: clamp(1rem, 2.5vw, 1.2rem);
      color: rgba(255,255,255,.72);
      max-width: 600px;
      line-height: 1.7;
      margin-bottom: 40px;
    }

    .hero-ctas {
      display: flex;
      flex-wrap: wrap;
      gap: 16px;
      margin-bottom: 64px;
    }

    .hero-stats {
      display: flex;
      flex-wrap: wrap;
      gap: 16px;
    }

    .stat-badge {
      display: flex;
      align-items: center;
      gap: 10px;
      background: rgba(255,255,255,.07);
      border: 1px solid rgba(255,255,255,.12);
      border-radius: 100px;
      padding: 10px 20px;
      backdrop-filter: blur(8px);
    }

    .stat-badge-icon {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      background: rgba(201,168,76,.2);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1rem;
      flex-shrink: 0;
    }

    .stat-badge-text {
      font-size: .9rem;
      font-weight: 600;
      color: #fff;
    }

    /* ===== USP STRIP ===== */
    #usp {
      background: var(--gray-light);
      padding: 80px 0;
    }

    .usp-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
    }

    .usp-card {
      background: #fff;
      border-radius: var(--radius-lg);
      padding: 36px 32px;
      box-shadow: var(--shadow-sm);
      border: 1px solid rgba(26,47,78,.06);
      transition: var(--transition);
    }
    .usp-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-md);
    }

    .usp-icon {
      font-size: 2.4rem;
      margin-bottom: 20px;
      display: block;
      line-height: 1;
    }

    .usp-title {
      font-size: 1.15rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 10px;
    }

    .usp-text {
      font-size: .93rem;
      color: var(--text-muted);
      line-height: 1.7;
    }

    /* ===== SORTIMENT ===== */
    #sortiment {
      padding: 100px 0;
      background: var(--white);
    }

    .section-header {
      margin-bottom: 56px;
    }

    .categories-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }

    .category-card {
      background: #fff;
      border: 2px solid var(--gray-mid);
      border-radius: var(--radius-lg);
      padding: 36px 28px;
      cursor: pointer;
      transition: var(--transition);
      position: relative;
      overflow: hidden;
    }
    .category-card::after {
      content: '→';
      position: absolute;
      bottom: 24px;
      right: 24px;
      font-size: 1.1rem;
      color: var(--gold);
      opacity: 0;
      transform: translateX(-8px);
      transition: var(--transition);
    }
    .category-card:hover {
      border-color: var(--gold);
      transform: translateY(-5px);
      box-shadow: var(--shadow-md);
    }
    .category-card:hover::after {
      opacity: 1;
      transform: translateX(0);
    }

    .category-emoji {
      font-size: 2.8rem;
      margin-bottom: 18px;
      display: block;
      line-height: 1;
    }

    .category-name {
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 8px;
    }

    .category-desc {
      font-size: .88rem;
      color: var(--text-muted);
      line-height: 1.65;
    }

    /* ===== SHOWROOM ===== */
    #showroom {
      padding: 100px 0;
      background: var(--gray-light);
    }

    .showroom-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: center;
    }

    .showroom-text .section-label { margin-bottom: 8px; }

    .showroom-text p {
      color: var(--text-muted);
      font-size: 1rem;
      line-height: 1.75;
      margin-bottom: 28px;
    }

    .showroom-bullets {
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin-bottom: 36px;
    }

    .showroom-bullet {
      display: flex;
      align-items: center;
      gap: 12px;
      font-size: .95rem;
      font-weight: 500;
      color: var(--text-dark);
    }

    .showroom-bullet::before {
      content: '✓';
      display: flex;
      align-items: center;
      justify-content: center;
      width: 26px;
      height: 26px;
      border-radius: 50%;
      background: rgba(201,168,76,.15);
      color: var(--gold-dark);
      font-weight: 700;
      font-size: .85rem;
      flex-shrink: 0;
    }

    .showroom-visual {
      position: relative;
      border-radius: var(--radius-lg);
      overflow: hidden;
      min-height: 420px;
      background: linear-gradient(135deg, #1a2f4e 0%, #2a4a6e 40%, #1e3a5f 100%);
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: flex-end;
      padding: 36px;
    }

    .showroom-visual::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image:
        linear-gradient(rgba(201,168,76,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,168,76,.04) 1px, transparent 1px);
      background-size: 40px 40px;
    }

    .showroom-visual-deco {
      position: absolute;
      top: 40px;
      right: 40px;
      font-size: 7rem;
      opacity: .12;
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }

    .showroom-visual-tag {
      position: relative;
      z-index: 1;
      background: rgba(201,168,76,.18);
      border: 1px solid rgba(201,168,76,.4);
      border-radius: 100px;
      padding: 6px 16px;
      font-size: .8rem;
      font-weight: 600;
      color: var(--gold-light);
      letter-spacing: .06em;
      text-transform: uppercase;
      margin-bottom: 16px;
    }

    .showroom-visual-title {
      position: relative;
      z-index: 1;
      font-size: 1.6rem;
      font-weight: 800;
      color: #fff;
      line-height: 1.3;
      margin-bottom: 8px;
    }

    .showroom-visual-sub {
      position: relative;
      z-index: 1;
      font-size: .9rem;
      color: rgba(255,255,255,.6);
    }

    /* ===== NUMBERS/TRUST ===== */
    #numbers {
      background: var(--navy-dark);
      padding: 80px 0;
    }

    .numbers-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 32px;
      text-align: center;
    }

    .number-item {
      padding: 32px 16px;
      border-right: 1px solid rgba(255,255,255,.1);
    }
    .number-item:last-child { border-right: none; }

    .number-value {
      font-size: clamp(2rem, 5vw, 3.2rem);
      font-weight: 900;
      color: var(--gold);
      letter-spacing: -.02em;
      line-height: 1.1;
      margin-bottom: 10px;
    }

    .number-label {
      font-size: .9rem;
      color: rgba(255,255,255,.6);
      font-weight: 500;
      line-height: 1.4;
    }

    /* ===== KATALOGE ===== */
    #kataloge {
      padding: 100px 0;
      background: #fff;
    }

    .kataloge-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px;
    }

    .katalog-card {
      border-radius: var(--radius-lg);
      overflow: hidden;
      box-shadow: var(--shadow-sm);
      transition: var(--transition);
      display: flex;
      flex-direction: column;
    }
    .katalog-card:hover {
      transform: translateY(-5px);
      box-shadow: var(--shadow-lg);
    }

    .katalog-header {
      padding: 40px 32px 32px;
      position: relative;
      overflow: hidden;
    }
    .katalog-header.k1 { background: linear-gradient(135deg, #1a2f4e, #2a4a6e); }
    .katalog-header.k2 { background: linear-gradient(135deg, #1a3a2e, #2a5a40); }
    .katalog-header.k3 { background: linear-gradient(135deg, #3a1a2e, #5a2a40); }

    .katalog-header::before {
      content: '';
      position: absolute;
      bottom: -30px;
      right: -30px;
      width: 120px;
      height: 120px;
      border-radius: 50%;
      background: rgba(255,255,255,.06);
    }

    .katalog-emoji {
      font-size: 2.5rem;
      margin-bottom: 16px;
      display: block;
    }

    .katalog-title {
      font-size: 1.15rem;
      font-weight: 700;
      color: #fff;
      margin-bottom: 6px;
    }

    .katalog-sub {
      font-size: .85rem;
      color: rgba(255,255,255,.6);
    }

    .katalog-body {
      padding: 28px 32px;
      background: #fff;
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      gap: 20px;
      border: 1px solid var(--gray-mid);
      border-top: none;
      border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    }

    .katalog-desc {
      font-size: .9rem;
      color: var(--text-muted);
      line-height: 1.65;
    }

    /* ===== ÜBER UNS ===== */
    #ueber-uns {
      padding: 100px 0;
      background: var(--gray-light);
    }

    .ueber-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 72px;
      align-items: start;
    }

    .ueber-text p {
      color: var(--text-muted);
      font-size: 1rem;
      line-height: 1.78;
      margin-bottom: 20px;
    }

    .ueber-text p:last-child { margin-bottom: 0; }

    .ueber-facts {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }

    .fact-item {
      display: flex;
      align-items: flex-start;
      gap: 16px;
      background: #fff;
      border-radius: var(--radius);
      padding: 20px 22px;
      box-shadow: var(--shadow-sm);
      border: 1px solid rgba(26,47,78,.06);
      transition: var(--transition);
    }
    .fact-item:hover {
      box-shadow: var(--shadow-md);
      transform: translateX(4px);
    }

    .fact-icon {
      font-size: 1.5rem;
      flex-shrink: 0;
      margin-top: 2px;
      line-height: 1;
    }

    .fact-content strong {
      display: block;
      font-size: .95rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 3px;
    }

    .fact-content span {
      font-size: .85rem;
      color: var(--text-muted);
    }

    /* ===== CTA BANNER ===== */
    #cta-banner {
      background: linear-gradient(135deg, var(--gold-dark) 0%, var(--gold) 50%, var(--gold-light) 100%);
      padding: 80px 0;
    }

    .cta-banner-inner {
      text-align: center;
    }

    .cta-banner-inner h2 {
      font-size: clamp(1.8rem, 4vw, 2.8rem);
      font-weight: 900;
      color: var(--navy-dark);
      margin-bottom: 16px;
      letter-spacing: -.02em;
    }

    .cta-banner-inner p {
      font-size: 1.05rem;
      color: rgba(26,47,78,.75);
      max-width: 560px;
      margin: 0 auto 36px;
      line-height: 1.7;
    }

    /* ===== FOOTER ===== */
    #footer {
      background: var(--navy-dark);
      color: rgba(255,255,255,.65);
      padding: 72px 0 0;
    }

    .footer-top {
      display: grid;
      grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
      gap: 48px;
      padding-bottom: 56px;
      border-bottom: 1px solid rgba(255,255,255,.1);
    }

    .footer-brand .nav-logo {
      font-size: 1.2rem;
      margin-bottom: 14px;
      display: block;
    }

    .footer-brand p {
      font-size: .88rem;
      line-height: 1.7;
      color: rgba(255,255,255,.5);
      max-width: 240px;
    }

    .footer-col h4 {
      font-size: .82rem;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 20px;
    }

    .footer-col ul {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .footer-col ul li a {
      font-size: .88rem;
      color: rgba(255,255,255,.55);
      transition: var(--transition);
    }
    .footer-col ul li a:hover {
      color: #fff;
      padding-left: 4px;
    }

    .footer-contact-item {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      margin-bottom: 14px;
    }

    .footer-contact-item .icon {
      font-size: 1rem;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .footer-contact-item span {
      font-size: .88rem;
      color: rgba(255,255,255,.55);
      line-height: 1.55;
    }

    .footer-bottom {
      padding: 24px 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 12px;
    }

    .footer-bottom p {
      font-size: .82rem;
      color: rgba(255,255,255,.35);
    }

    .footer-bottom-links {
      display: flex;
      gap: 24px;
    }

    .footer-bottom-links a {
      font-size: .82rem;
      color: rgba(255,255,255,.35);
      transition: var(--transition);
    }
    .footer-bottom-links a:hover { color: rgba(255,255,255,.7); }

    /* ===== RESPONSIVE ===== */
    @media (max-width: 1024px) {
      .footer-top {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
      }
    }

    @media (max-width: 900px) {
      .nav-links, .nav-cta, #navbar .cart-badge, #navbar .nav-inner > .btn-gold { display: none; }
      .hamburger { display: flex; }

      .usp-grid { grid-template-columns: 1fr; gap: 20px; }
      .categories-grid { grid-template-columns: repeat(2, 1fr); }
      .showroom-grid { grid-template-columns: 1fr; gap: 48px; }
      .numbers-grid { grid-template-columns: repeat(2, 1fr); }
      .number-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.1); }
      .number-item:nth-child(2n) { border-bottom: 1px solid rgba(255,255,255,.1); }
      .number-item:nth-last-child(-n+2) { border-bottom: none; }
      .kataloge-grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
      .ueber-grid { grid-template-columns: 1fr; gap: 48px; }
      .footer-top { grid-template-columns: 1fr 1fr; }
    }

    @media (max-width: 600px) {
      .categories-grid { grid-template-columns: 1fr; }
      .numbers-grid { grid-template-columns: repeat(2, 1fr); }
      .hero-ctas { flex-direction: column; }
      .hero-ctas .btn { width: 100%; justify-content: center; }
      .hero-stats { flex-direction: column; gap: 10px; }
      .footer-top { grid-template-columns: 1fr; }
      .footer-bottom { flex-direction: column; text-align: center; }
      .footer-bottom-links { justify-content: center; }
      .showroom-visual { min-height: 300px; }
    }

    /* ===== PRINT ===== */
    @media print {
      #navbar, #footer { display: none !important; }
      .fade-up { opacity: 1 !important; transform: none !important; }
      #hero {
        min-height: auto;
        padding: 40px 0;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
    }


/* ============================================================
   PHASE 2 — AUTH + ADMIN (append-only, 2026-04-16)
   ============================================================ */

:root {
  /* Semantische Status-Farben */
  --error:        #b3261e;
  --error-bg:     #fdecea;
  --success:      #2e7d52;
  --success-bg:   #e6f4ec;
  --warning:      #a6670a;
  --warning-bg:   #fcf2e0;

  /* Form-spezifische Tokens */
  --field-border:        var(--gray-mid);
  --field-border-focus:  var(--navy);
  --field-border-error:  var(--error);
  --field-bg:            #ffffff;
  --field-bg-disabled:   var(--gray-light);
  --field-text:          var(--text-dark);
  --field-placeholder:   var(--text-light);

  /* Admin-Kontext */
  --admin-stripe-bg:     var(--navy-dark);
  --admin-stripe-accent: var(--gold);

  /* Container-Breiten */
  --container-auth:      440px;
  --container-auth-wide: 560px;
}

/* ===== FOCUS-VISIBLE (global) ===== */
:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 2px;
  border-radius: 4px;
}
.btn-gold:focus-visible { outline-color: var(--navy-dark); }

/* ===== SKIP-LINK ===== */
.skip-link {
  position: absolute; top: -40px; left: 8px; z-index: 9999;
  background: var(--navy); color: var(--white);
  padding: 8px 16px; border-radius: var(--radius);
  text-decoration: none; font-weight: 700;
  transition: top 0.15s;
}
.skip-link:focus { top: 8px; }

/* ===== AUTH SHELL & CARD ===== */
.auth-shell {
  min-height: calc(100vh - 68px);
  display: flex; align-items: center; justify-content: center;
  padding: 48px 24px;
}
.auth-card {
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  padding: 32px;
  width: 100%;
  max-width: var(--container-auth);
}
.auth-card--wide { max-width: var(--container-auth-wide); }
.auth-card__header { margin-bottom: 24px; }
.auth-card__title {
  font-size: clamp(1.5rem, 3.5vw, 2rem);
  font-weight: 700; line-height: 1.25;
  color: var(--navy); margin: 0;
}
.auth-card__lead {
  font-size: 1rem; line-height: 1.6;
  color: var(--text-muted); margin-top: 8px;
}
.auth-card__footer {
  margin-top: 24px; padding-top: 16px;
  border-top: 1px solid var(--gray-mid);
  text-align: center; font-size: 14px;
}
.auth-card__footer a {
  color: var(--navy); text-decoration: underline;
}
.auth-card__footer a:hover { color: var(--gold-dark); }

/* ===== FORM ===== */
.form-row { margin-bottom: 16px; }
.form-row:last-of-type { margin-bottom: 0; }
.form-row--double {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 600px) {
  .form-row--double { grid-template-columns: 1fr; }
}
.form-label {
  display: block; font-size: 14px; font-weight: 700;
  color: var(--navy); margin-bottom: 8px;
}
.form-label__required {
  color: var(--error); margin-left: 2px;
}
.form-input, .form-textarea {
  width: 100%;
  height: 44px;
  padding: 10px 14px;
  border-radius: var(--radius);
  border: 1px solid var(--field-border);
  background: var(--field-bg);
  color: var(--field-text);
  font-size: 16px;
  font-family: inherit;
  transition: border-color 0.15s, outline-color 0.15s;
  box-sizing: border-box;
}
.form-textarea { height: auto; min-height: 96px; resize: vertical; padding: 12px 14px; }
.form-input:focus, .form-textarea:focus {
  outline: 2px solid var(--field-border-focus);
  outline-offset: 2px;
  border-color: var(--field-border-focus);
}
.form-input--error, .form-textarea--error {
  border-color: var(--field-border-error);
}
.form-input--error:focus { outline-color: var(--field-border-error); }
.form-help { font-size: 13px; color: var(--text-muted); margin-top: 4px; line-height: 1.5; }
.form-error { font-size: 13px; color: var(--error); margin-top: 4px; line-height: 1.5; }
.form-honeypot {
  position: absolute; left: -9999px;
  width: 1px; height: 1px; overflow: hidden;
}

/* ===== BUTTON VARIANTS (Phase 2) ===== */
.btn--block { width: 100%; justify-content: center; display: inline-flex; align-items: center; }
.btn--sm { padding: 8px 16px; font-size: 14px; }
.btn[disabled], .btn:disabled {
  opacity: 0.5; cursor: not-allowed;
  transform: none !important;
}
.btn--loading { position: relative; color: transparent !important; pointer-events: none; }
.btn--loading::after {
  content: ''; position: absolute; inset: 0; margin: auto;
  width: 16px; height: 16px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin .6s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .btn--loading::after { animation: none; }
  .btn:hover { transform: none; }
}
.btn-text-danger {
  display: inline-block;
  font-weight: 600;
  color: var(--error);
  background: none;
  border: none;
  padding: 8px 12px;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
}
.btn-text-danger:hover { text-decoration: underline; }

/* ===== ALERT ===== */
.alert {
  padding: 12px 16px;
  border-radius: var(--radius);
  font-size: 14px; line-height: 1.5;
  border: 1px solid;
  margin-bottom: 16px;
}
.alert--error {
  background: var(--error-bg); border-color: var(--error); color: var(--error);
}
.alert--success {
  background: var(--success-bg); border-color: var(--success); color: var(--success);
}
.alert--info {
  background: var(--gray-light); border-color: var(--gray-mid); color: var(--text-muted);
}
.alert--warning {
  background: var(--warning-bg); border-color: var(--warning); color: var(--warning);
}

/* ===== ADMIN ===== */
.admin-stripe {
  background: var(--admin-stripe-bg);
  color: var(--white);
  padding: 12px 0;
  border-bottom: 2px solid var(--admin-stripe-accent);
  font-size: 14px;
}
.admin-stripe__label {
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 12px;
}
.admin-stripe__tabs {
  display: flex; gap: 24px; margin-left: auto; list-style: none;
}
.admin-stripe__tab {
  color: rgba(255,255,255,.7);
  padding: 4px 0;
  border-bottom: 2px solid transparent;
  text-decoration: none;
  transition: var(--transition);
}
.admin-stripe__tab:hover { color: var(--white); }
.admin-stripe__tab--active {
  color: var(--gold);
  border-bottom-color: var(--gold);
}
.admin-stripe__tab:focus-visible { outline-color: var(--gold); }

.admin-page { padding: 48px 0 64px; }
.admin-page__header {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; margin-bottom: 24px;
}
.admin-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.admin-table thead {
  background: var(--gray-light);
}
.admin-table th {
  text-align: left;
  padding: 14px 16px;
  font-size: 14px;
  font-weight: 700;
  color: var(--text-dark);
}
.admin-table td {
  padding: 16px;
  border-top: 1px solid var(--gray-mid);
  font-size: 16px;
  font-weight: 400;
}
.admin-table tbody tr:hover { background: rgba(240, 244, 248, 0.4); transition: background 0.15s; }
.admin-table__actions { text-align: right; white-space: nowrap; }
.admin-table__actions form { display: inline-block; margin-left: 8px; }
.admin-empty {
  padding: 48px 24px; text-align: center;
  background: var(--gray-light);
  border-radius: var(--radius);
  color: var(--text-muted);
}
.admin-empty h2 { margin-top: 0; color: var(--navy); }

.status-pill {
  display: inline-flex; align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 13px; font-weight: 700;
  gap: 6px;
}
.status-pill--pending { background: var(--warning-bg); color: var(--warning); }
.status-pill--approved { background: var(--success-bg); color: var(--success); }
.status-pill--rejected { background: var(--error-bg); color: var(--error); }

/* ===== MOBILE TABLE → CARD LIST ===== */
@media (max-width: 640px) {
  .admin-table thead { display: none; }
  .admin-table, .admin-table tbody, .admin-table tr, .admin-table td {
    display: block; width: 100%;
  }
  .admin-table tr {
    margin-bottom: 16px;
    background: #fff;
    border: 1px solid var(--gray-mid);
    border-radius: var(--radius);
    padding: 16px;
  }
  .admin-table td { border: none; padding: 4px 0; }
  .admin-table td::before {
    content: attr(data-label);
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-muted);
    margin-bottom: 2px;
  }
  .admin-table__actions { margin-top: 12px; }
}

/* ===== CATALOG ===== */
/* Appended Phase 3 — 2026-04-16 */

:root {
  --catalog-sidebar-width: 260px;
  --catalog-gap:           24px;
  --card-img-ratio:        4 / 3;
  --chip-bg:     rgba(26, 47, 78, 0.08);
  --chip-color:  var(--navy);
  --chip-border: rgba(26, 47, 78, 0.18);
  --cta-box-bg:     rgba(201, 168, 76, 0.08);
  --cta-box-border: var(--gold);
  --drawer-overlay: rgba(26, 47, 78, 0.55);
  --page-btn-size: 40px;
}

/* --- Catalog-Page-Shell --- */
.catalog-page { padding: 48px 0 64px; }
.catalog-page__header {
  display: flex; gap: 16px; align-items: center;
  flex-wrap: wrap; margin-bottom: 32px;
}
.catalog-page__title {
  font-size: clamp(1.5rem, 3.5vw, 2rem); font-weight: 700;
  color: var(--navy); line-height: 1.25; margin: 0;
}
.catalog-layout {
  display: grid; grid-template-columns: var(--catalog-sidebar-width) 1fr;
  gap: var(--catalog-gap); align-items: start;
}
.catalog-sidebar {
  position: sticky; top: 88px; width: var(--catalog-sidebar-width);
}
.catalog-content { min-width: 0; }

/* --- Search field --- */
.search-wrap { position: relative; flex: 1 1 320px; max-width: 480px; }
.search-input {
  width: 100%; padding: 10px 44px 10px 44px; min-height: 44px;
  font-size: 1rem; border: 1px solid var(--gray-mid);
  border-radius: var(--radius); background: #fff;
}
.search-input__icon {
  position: absolute; left: 12px; top: 50%;
  transform: translateY(-50%); width: 20px; height: 20px;
  color: var(--text-muted); pointer-events: none;
}
.search-clear {
  position: absolute; right: 12px; top: 50%;
  transform: translateY(-50%); width: 20px; height: 20px;
  color: var(--text-muted); background: none; border: none; cursor: pointer;
}

/* --- Catalog meta (count line) --- */
.catalog-meta {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 16px; font-size: 14px; color: var(--text-muted);
}
.catalog-meta__count { font-variant-numeric: tabular-nums; }

/* --- Produkt-Grid + Karte --- */
.produkt-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
.produkt-karte {
  background: #fff; border: 1px solid var(--gray-mid);
  border-radius: var(--radius-lg); overflow: hidden;
  transition: var(--transition); display: flex; flex-direction: column;
  color: inherit; text-decoration: none;
}
.produkt-karte:hover {
  transform: translateY(-4px); box-shadow: var(--shadow-md);
}
.produkt-karte:focus-within {
  outline: 2px solid var(--navy); outline-offset: 2px;
}
.produkt-karte__img-wrap {
  aspect-ratio: var(--card-img-ratio); overflow: hidden;
  background: var(--gray-light);
}
.produkt-karte__img { width: 100%; height: 100%; object-fit: cover; }
.produkt-karte__placeholder {
  width: 100%; height: 100%; display: flex;
  align-items: center; justify-content: center;
  background: var(--gray-light);
}
.produkt-karte__body {
  padding: 16px; flex: 1; display: flex; flex-direction: column; gap: 8px;
}
.produkt-karte__name {
  font-size: 1rem; font-weight: 700; color: var(--navy);
  line-height: 1.4; margin: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.produkt-karte__artnr {
  font-size: 13px; color: var(--text-muted); margin-top: auto; margin-bottom: 0;
}

/* --- Kategorie-Chip --- */
.kat-chip {
  display: inline-flex; align-items: center;
  padding: 4px 8px; border-radius: 999px;
  font-size: 13px; font-weight: 400;
  background: var(--chip-bg); color: var(--chip-color);
  border: 1px solid var(--chip-border); white-space: nowrap;
}
.kat-chip--active {
  background: var(--navy); color: #fff; border-color: var(--navy); font-weight: 700;
}

/* --- Filter-Sidebar --- */
.filter-sidebar {
  background: #fff; border: 1px solid var(--gray-mid);
  border-radius: var(--radius-lg); padding: 24px; box-shadow: var(--shadow-sm);
}
.filter-sidebar__title {
  font-size: 14px; font-weight: 700; color: var(--navy);
  text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 16px;
}
.filter-sidebar__list {
  display: flex; flex-direction: column; gap: 4px;
  list-style: none; padding: 0; margin: 0;
}
.filter-sidebar__item { list-style: none; }
.filter-sidebar__label {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-radius: var(--radius);
  cursor: pointer; transition: background 0.15s; font-size: 14px;
}
.filter-sidebar__label:hover { background: var(--gray-light); }
.filter-sidebar__checkbox {
  width: 18px; height: 18px; accent-color: var(--navy);
  cursor: pointer; flex-shrink: 0;
}
.filter-sidebar__count {
  margin-left: auto; font-size: 13px;
  color: var(--text-muted); font-weight: 400;
}
.filter-sidebar__reset {
  display: block; margin-top: 16px; font-size: 14px;
  color: var(--navy); text-decoration: underline; text-align: center;
}
.filter-sidebar__apply { margin-top: 16px; }

/* --- Filter-Trigger (Mobile only) --- */
.filter-trigger {
  display: none; /* overridden at mobile breakpoint */
  align-items: center; gap: 8px; padding: 8px 16px; min-height: 44px;
  border: 1px solid var(--gray-mid); border-radius: var(--radius);
  background: #fff; font-size: 14px; font-weight: 700; cursor: pointer;
}
.filter-trigger__count {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--navy); color: #fff;
  font-size: 13px; font-weight: 700;
}

/* --- Drawer --- */
.drawer-overlay {
  position: fixed; inset: 0; z-index: 1001;
  background: var(--drawer-overlay);
  opacity: 0; visibility: hidden;
  transition: opacity 0.25s, visibility 0.25s;
}
.drawer-overlay.open { opacity: 1; visibility: visible; }
.drawer {
  position: fixed; top: 0; left: 0;
  width: min(320px, 90vw); height: 100vh; z-index: 1002;
  background: #fff; overflow-y: auto; padding: 24px;
  transform: translateX(-100%);
  transition: transform 0.28s cubic-bezier(.4,0,.2,1);
}
.drawer.open { transform: translateX(0); }
.drawer__header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 24px;
}
.drawer__close {
  width: 44px; height: 44px; display: flex;
  align-items: center; justify-content: center;
  background: none; border: 1px solid var(--gray-mid);
  border-radius: var(--radius); cursor: pointer;
}
.drawer__footer {
  position: sticky; bottom: 0; background: #fff;
  padding: 16px 0 0; border-top: 1px solid var(--gray-mid);
  margin-top: 24px;
}

/* --- Preis-CTA-Box --- */
.preis-cta-box {
  background: var(--cta-box-bg); border: 2px solid var(--cta-box-border);
  border-radius: var(--radius-lg); padding: 24px; margin-top: 24px;
}
.preis-cta-box__label {
  font-size: 14px; color: var(--text-muted); margin: 0 0 16px;
}
.preis-cta-box__headline {
  font-size: 1rem; font-weight: 700; color: var(--navy); margin: 0 0 16px;
}
.preis-cta-box__btn { width: 100%; }

/* --- Pagination --- */
.pagination {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; flex-wrap: wrap; margin-top: 32px;
}
.pagination__btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: var(--page-btn-size); height: var(--page-btn-size);
  border-radius: var(--radius); font-size: 14px; font-weight: 700;
  border: 1px solid var(--gray-mid); background: #fff;
  color: var(--navy); text-decoration: none; transition: var(--transition);
}
.pagination__btn:hover {
  background: var(--gray-light); border-color: var(--navy);
}
.pagination__btn--active {
  background: var(--navy); color: #fff; border-color: var(--navy); cursor: default;
}
.pagination__btn--disabled {
  opacity: 0.4; cursor: not-allowed; pointer-events: none;
}
.pagination__ellipsis {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; color: var(--text-muted);
}
.pagination__info {
  font-size: 14px; color: var(--text-muted);
  text-align: center; margin-top: 12px;
}

/* --- Empty-States --- */
.catalog-empty {
  padding: 64px 24px; text-align: center;
  background: var(--gray-light); border-radius: var(--radius-lg);
}
.catalog-empty__icon {
  width: 64px; height: 64px; margin: 0 auto 24px; color: var(--text-muted);
}
.catalog-empty__title {
  font-size: 1rem; font-weight: 700; color: var(--navy); margin: 0 0 8px;
}
.catalog-empty__body {
  font-size: 1rem; color: var(--text-muted);
  max-width: 400px; margin: 0 auto 24px; line-height: 1.65;
}
.catalog-empty__action { display: inline-block; }

/* --- Breadcrumb --- */
.breadcrumb { margin-bottom: 16px; }
.breadcrumb__list {
  display: flex; flex-wrap: wrap; gap: 4px;
  list-style: none; padding: 0; margin: 0;
  font-size: 13px; color: var(--text-muted);
}
.breadcrumb__separator { color: var(--gray-mid); }
.breadcrumb__link { color: var(--text-muted); text-decoration: underline; }
.breadcrumb__current { color: var(--navy); font-weight: 700; }

/* --- Produktdetail-Hero --- */
.produkt-hero {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 32px; align-items: start;
}
.produkt-hero__image {
  aspect-ratio: var(--card-img-ratio); overflow: hidden;
  border-radius: var(--radius-lg); background: var(--gray-light);
}
.produkt-hero__info > * + * { margin-top: 16px; }

/* --- Responsive: Mobile/Tablet overrides --- */
@media (max-width: 1024px) {
  .catalog-layout { grid-template-columns: 1fr; }
  .catalog-sidebar { display: none; }
  .catalog-sidebar.drawer-open { display: block; }
  .filter-trigger { display: inline-flex; }
}
@media (max-width: 767px) {
  .produkt-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .produkt-hero { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 479px) {
  .produkt-grid { grid-template-columns: 1fr; gap: 12px; }
}

/* --- Motion reduction --- */
@media (prefers-reduced-motion: reduce) {
  .produkt-karte:hover { transform: none; }
  .drawer { transition: none; }
  .drawer-overlay { transition: none; }
}

/* ───────────────────────────────────────────────────────────────────────
   PHASE 4 — B2B-SHOP (append-only, 2026-04-16)
   Aus 04-UI-SPEC §Komponenten-Inventar §1, §2, §3, §4.
   ─────────────────────────────────────────────────────────────────────── */

/* §1 Produktliste-Erweiterung */
.produkt-karte__preis-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.produkt-karte__preis     { font-size: 1.1rem; font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; }
.produkt-karte__ust-hint  { font-size: 13px; color: var(--text-muted, #6b6b6b); display: block; margin-top: 2px; }
.produkt-karte__add-form  { margin: 0; display: inline-flex; }
.produkt-karte__link      { display: block; color: inherit; text-decoration: none; }
.produkt-karte__link:hover .produkt-karte__name,
.produkt-karte__link:focus .produkt-karte__name { color: var(--gold); }

/* §2 Produktdetail Add-Box (für Plan 04-03) */
.shop-add-box             { background: var(--cta-box-bg, #faf5e6); border: 2px solid var(--gold); border-radius: var(--radius-lg, 20px); padding: 24px; margin: 24px 0; }
.shop-add-box__preis      { font-size: 1.5rem; font-weight: 700; color: var(--navy); margin: 0; font-variant-numeric: tabular-nums; }
.shop-add-box__ust        { font-size: 13px; color: var(--text-muted, #6b6b6b); margin-top: 4px; }
.shop-add-box__menge-row  { display: flex; gap: 8px; align-items: center; margin: 16px 0; flex-wrap: wrap; }

/* §2/§4 Mengen-Stepper */
.menge-stepper            { display: inline-flex; border: 1px solid var(--gray-mid, #d0d0d0); border-radius: var(--radius, 12px); overflow: hidden; }
.menge-stepper__btn       { width: 44px; height: 44px; background: #fff; border: none; cursor: pointer; font-size: 18px; line-height: 1; }
.menge-stepper__btn:disabled { opacity: 0.4; cursor: not-allowed; }
.menge-stepper__input     { width: 56px; height: 44px; text-align: center; font-size: 16px; border: none; border-left: 1px solid var(--gray-mid, #d0d0d0); border-right: 1px solid var(--gray-mid, #d0d0d0); }

/* §3 Mini-Cart-Badge im Header */
.cart-badge               { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; color: rgba(255,255,255,.85); text-decoration: none; }
.cart-badge:hover         { color: #fff; }
.cart-badge__count        { position: absolute; top: -4px; right: -4px; background: var(--gold); color: var(--navy); border-radius: 999px; min-width: 20px; height: 20px; font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; line-height: 1; }
@media (max-width: 767px) {
  .nav-cart-link__label { display: none; }
}

/* §4 Warenkorb-Seite */
.cart-page                { padding: 48px 0 64px; }
.cart-table               { width: 100%; border-collapse: collapse; margin-top: 24px; }
.cart-table__img          { width: 60px; height: 60px; object-fit: cover; border-radius: var(--radius, 12px); display: block; }
.cart-table__name         { font-weight: 700; font-size: 1rem; color: var(--navy); margin-top: 6px; }
.cart-table__artnr        { font-size: 13px; color: var(--text-muted, #6b6b6b); }
.cart-table__menge        { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.cart-table__preis        { text-align: right; font-variant-numeric: tabular-nums; }
.cart-table__remove       { text-align: right; }

.cart-summary             { margin-top: 32px; max-width: 360px; margin-left: auto; background: var(--gray-light, #f0f4f8); padding: 20px; border-radius: var(--radius-lg, 20px); }
.cart-summary__row        { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--gray-mid, #d0d0d0); }
.cart-summary__row--total { font-weight: 700; font-size: 1.1rem; border-bottom: none; padding-top: 16px; }
.cart-summary__actions    { margin-top: 24px; display: flex; flex-direction: column; gap: 12px; }

/* Flash */
.flash                    { padding: 12px 16px; border-radius: var(--radius, 12px); margin: 16px 0; }
.flash--success           { background: #e8f5e9; color: #2e7d52; }
.flash--error             { background: #fdecea; color: var(--error, #b3261e); }
.flash--warning           { background: #fff8e1; color: #8a6d00; }

/* §7 Lieferadressen-Verwaltung (Plan 04-04) */
.addr-page                      { padding: 48px 0 64px; }
.addr-page__intro               { margin-bottom: 24px; }
.address-list                   { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; list-style: none; padding: 0; margin: 0; }
.address-card                   { background: #fff; border: 1px solid var(--gray-mid, #d0d0d0); border-radius: var(--radius-lg, 20px); padding: 20px; position: relative; }
.address-card--default          { border-color: var(--gold); border-width: 2px; }
.address-card__default-badge    { position: absolute; top: 12px; right: 12px; font-size: 13px; }
.address-card__name             { font-size: 1rem; font-weight: 700; color: var(--navy); margin: 0 0 8px; }
.address-card__lines            { font-size: 14px; color: var(--text-muted, #6b6b6b); line-height: 1.65; font-style: normal; }
.address-card__actions          { margin-top: 16px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

.confirm-inline                 { display: inline-block; }
.confirm-inline > summary       { cursor: pointer; list-style: none; }
.confirm-inline > summary::-webkit-details-marker { display: none; }
.confirm-inline[open]           { background: #fdecea; padding: 12px; border-radius: var(--radius, 12px); }

.required-mark                  { color: var(--error, #b3261e); }
.form-help                      { display: block; font-size: 13px; color: var(--text-muted, #6b6b6b); margin-top: 4px; }
.form-error                     { display: block; font-size: 13px; color: var(--error, #b3261e); margin-top: 4px; }
/* Adress-Kontext: PLZ (schmal) / Ort (breit) — nur auf der Lieferadressen-Seite */
.addr-page .form-row--double    { grid-template-columns: 1fr 2fr; }
@media (max-width: 540px) {
  .addr-page .form-row--double  { grid-template-columns: 1fr; }
}
.checkbox-label                 { display: flex; gap: 8px; align-items: center; cursor: pointer; }
.back-link                      { display: inline-block; margin: 0 0 24px; color: var(--navy); text-decoration: none; font-size: 14px; }
.back-link:hover                { text-decoration: underline; }

/* §5 One-Page-Checkout (Plan 04-05) — UI-SPEC §Komponenten-Inventar §5 */
.checkout-page                  { padding: 48px 0 64px; }
.checkout-layout                { display: grid; grid-template-columns: 1fr 1.2fr; gap: 32px; align-items: start; }
.checkout-summary               { background: var(--gray-light, #f0f4f8); border-radius: var(--radius-lg, 20px); padding: 24px; position: sticky; top: 88px; }
.checkout-summary__title        { font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gold); margin: 0 0 16px; }
.checkout-summary__items        { list-style: none; padding: 0; margin: 0 0 16px; }
.checkout-summary__items li     { padding: 12px 0; border-bottom: 1px solid var(--gray-mid, #d0d0d0); display: flex; flex-direction: column; gap: 4px; }
.checkout-form                  { padding: 24px; }
.checkout-section               { margin-bottom: 32px; }
.checkout-section__title        { font-size: 14px; font-weight: 700; color: var(--navy); text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 16px; padding-bottom: 8px; border-bottom: 2px solid var(--gold); }
.checkout-verbindlich           { background: var(--cta-box-bg, #faf5e6); border: 2px solid var(--gold); border-radius: var(--radius, 12px); padding: 20px; margin: 24px 0; }
.checkout-verbindlich legend    { font-weight: 700; color: var(--navy); padding: 0 8px; }
.checkout-verbindlich label     { display: flex; gap: 12px; align-items: flex-start; font-weight: 700; cursor: pointer; }
.checkout-verbindlich input[type="checkbox"] { width: 20px; height: 20px; flex-shrink: 0; margin-top: 4px; accent-color: var(--navy); }
.checkout-disclaimer            { margin-top: 12px; color: var(--text-muted, #6b6b6b); }

/* §6 Bestätigungsseite + Detail-Boxen (auch wiederverwendbar für Plan 04-06) */
.bestaetigung-page              { padding: 48px 0 64px; }
.bestaetigung-page__lead        { font-size: 1.1rem; margin: 16px 0 24px; }
.bestaetigung-page__meta        { display: grid; grid-template-columns: max-content 1fr; gap: 8px 16px; margin: 16px 0 32px; }
.bestaetigung-page__meta dt     { font-weight: 700; color: var(--text-muted, #6b6b6b); }
.bestaetigung-page__meta dd     { margin: 0; }
.order-detail__grid             { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 24px 0; }
.order-detail__box              { background: var(--gray-light, #f0f4f8); border-radius: var(--radius, 12px); padding: 20px; }
.order-detail__box-title        { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted, #6b6b6b); margin: 0 0 12px; }

@media (max-width: 768px) {
  .checkout-layout              { grid-template-columns: 1fr; }
  .checkout-summary             { position: static; }
  .order-detail__grid           { grid-template-columns: 1fr; }
}

/* ─── PHASE 4 §6 Bestellhistorie + Bestelldetail (Plan 04-06) ───────── */
.orders-page                    { padding: 48px 0 64px; }
.order-list                     { display: flex; flex-direction: column; gap: 12px; list-style: none; padding: 0; margin: 24px 0 0; }
.order-card                     { background: #fff; border: 1px solid var(--gray-mid, #d0d0d0); border-radius: var(--radius-lg, 20px); padding: 20px 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; text-decoration: none; color: inherit; transition: var(--transition, all 0.15s ease); }
.order-card:hover               { box-shadow: var(--shadow-md, 0 4px 12px rgba(0,0,0,0.08)); transform: translateY(-2px); }
.order-card__number             { font-size: 1rem; font-weight: 700; color: var(--navy); }
.order-card__date               { font-size: 13px; color: var(--text-muted, #6b6b6b); }
.order-card__total              { font-size: 1rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.order-card__meta               { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.order-detail                   { padding: 48px 0 64px; }
.order-detail__header           { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 32px; }
.order-detail__box--danger      { border: 2px solid var(--error, #b3261e); background: #fdecea; }
@media (max-width: 640px) {
  .order-card                   { flex-direction: column; align-items: flex-start; }
}

/* ─── PHASE 4 §8 Admin-Bestellungen (Plan 04-06) ─────────────────────── */
.order-status-filter            { display: flex; gap: 8px; flex-wrap: wrap; margin: 16px 0 24px; }
.admin-order-detail .order-detail__header { padding-bottom: 24px; border-bottom: 1px solid var(--gray-mid, #d0d0d0); }
.storno-form                    { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--gray-mid, #d0d0d0); }
.storno-form__label             { color: var(--error, #b3261e); }

/* ─── PHASE 4 Konto-Profilseite (Plan 04-06 Task 6.3) ────────────────── */
.konto-links                    { list-style: none; padding: 0; margin: 16px 0 24px; display: flex; flex-direction: column; gap: 8px; max-width: 400px; }
.konto-links .btn               { width: 100%; text-align: center; }

/* ─── Detailseite: Art.-Nr. / EAN als Definition-List mit Mono-Pille ─── */
.produkt-hero__meta             { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 16px 0 24px; align-items: center; }
.produkt-hero__meta dt          { font-size: 13px; font-weight: 700; color: var(--text-muted, #6b6b6b); text-transform: uppercase; letter-spacing: 0.06em; margin: 0; }
.produkt-hero__meta dd          { margin: 0; }
.produkt-hero__id               { display: inline-block; padding: 3px 10px; background: var(--gray-light, #f0f4f8); border-radius: 6px; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 14px; color: var(--navy); font-weight: 600; }

/* ============================================================ */
/* PHASE 5 — Mobile Touch-Target-Fixes + GSAP Fallback         */
/* Appended Phase 5 — 2026-04-17                               */
/* ============================================================ */

/* --- Touch-Target Minimum: 44px (WCAG 2.5.5, per D-07) --- */

/* Hamburger: 6px padding (Zeile 236) ergibt ~36px → 10px ergibt >=44px */
.hamburger { padding: 10px; }

/* Pagination-Buttons: Custom Property von 40px auf 44px */
:root { --page-btn-size: 44px; }

/* btn--sm: nur padding definiert, kein height → min-height wirkt */
.btn--sm { min-height: 44px; display: inline-flex; align-items: center; }

/* Footer-Links: kein explizites height → min-height + flex fuer Touch-Compliance */
.footer-col ul li a {
  display: flex;
  align-items: center;
  min-height: 44px;
}

/* --- Warenkorb-Tabelle: gestapelt auf Mobile (<=600px) --- */
/* Verhindert horizontales Scrolling (D-07). data-label auf <td> bereits in EJS. */
@media (max-width: 600px) {
  .cart-table,
  .cart-table thead,
  .cart-table tbody,
  .cart-table tr,
  .cart-table td {
    display: block;
    width: 100%;
  }
  .cart-table thead {
    display: none;
  }
  .cart-table tr {
    padding: 16px 0;
    border-bottom: 1px solid var(--gray-light, #F0F4F8);
  }
  .cart-table td {
    padding: 4px 0;
    text-align: left;
  }
  .cart-table td::before {
    content: attr(data-label);
    font-weight: 700;
    font-size: 12px;
    color: var(--text-muted, #4a6080);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: block;
    margin-bottom: 4px;
  }
  /* Entferne-Button: volle Breite fuer einfacheres Tippen */
  .cart-table__remove form {
    display: flex;
  }
  .cart-table__remove .btn--sm {
    width: 100%;
    justify-content: center;
  }
}

/* --- prefers-reduced-motion: CSS-Fallback (ergaenzt JS-Guard in main.js) --- */
/* Primaerer Mechanismus ist der JS-Guard in Phase-5-IIFE.                    */
/* Dieser CSS-Block ist Defence-in-Depth fuer den Fall dass JS nicht laedt.   */
@media (prefers-reduced-motion: reduce) {
  .fade-up {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* --- MOBILE AUDIT FIXES (Phase 5, Plan 03) --- */

/* Fix 1: filter-sidebar__label Touch-Target < 44px
   Berechnung: padding 8px + 12px = 16px vertikal + font-size 14px * 1.5 = ~37px
   Ursache: Kein min-height gesetzt, padding allein reicht nicht.
   Korrektur: min-height 44px auf dem flexiblen Label-Container */
.filter-sidebar__label {
  min-height: 44px;
}

/* --- MOBILE AUDIT LOG (Phase 5, Plan 03) ---
 * Audited: 16 Seiten + 4 Partials
 * Kriterien: kein h-scroll, keine Abschneidung, Touch>=44px, Schrift>=13px, Forms bedienbar
 * Ergebnis: 1 Issue gefunden, 1 gefixt
 * Details:
 *   FIX-1: filter-sidebar__label min-height: 44px (berechnete Hoehe war ~37px)
 *   OK: Alle Frontpage-Grids collapen auf 1-Spalte bei 600px / 900px
 *   OK: hero-ctas + hero-stats: column bei 600px
 *   OK: form-row--double: 1-Spalte bei 600px (Phase 2)
 *   OK: cart-table: gestapelt bei 600px (Phase 5, Plan 02) -- gilt fuer warenkorb, bestaetigung, bestelldetail
 *   OK: checkout-layout: 1-Spalte bei 768px (Phase 4)
 *   OK: order-detail__grid: 1-Spalte bei 768px (Phase 4)
 *   OK: address-list: auto-fill minmax(280px,1fr) -- kein overflow-Risiko
 *   OK: form-input / menge-stepper: font-size 16px, height 44px -- kein iOS-Zoom
 *   OK: Hamburger: padding 10px (Phase 5, Plan 02)
 *   OK: btn--sm: min-height 44px (Phase 5, Plan 02)
 *   OK: Footer-Links: min-height 44px (Phase 5, Plan 02)
 *   OK: filter-trigger: min-height 44px bereits in Definition
 *   OK: checkout-verbindlich checkbox: 20x20px + label-padding
 *   OK: konto.ejs konto-links: width 100% auf alle Buttons
 *   OK: auth-card: width 100%, max-width, keine fixen Breiten > 375px
 *   OK: catalog-layout: 1-Spalte bei 1024px (Sidebar-Drawer), filter-trigger sichtbar
 *   HINWEIS: confirm-inline summary.btn-text-danger.btn--sm -- min-height 44px via Plan-02-Fix
 * ───
 */

/* ============================================================
   PHASE 6 -- Interaktive Produktwelt (append-only, 2026-04-17)
   ============================================================ */

/* Bild-Card: override weissen Hintergrund + Padding, keep position/overflow */
.category-card {
  background: transparent;
  padding: 0;
  min-height: 240px;
  border: 2px solid transparent;
}

/* Image wrapper fills entire card via absolute positioning */
.category-card__img-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: var(--radius-lg);
}

/* Image fills wrapper, GPU-accelerated zoom on hover */
.category-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

/* Overlay gradient: navy-dark bottom-heavy for text legibility */
.category-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(17, 34, 64, 0.82) 0%,
    rgba(17, 34, 64, 0.30) 55%,
    rgba(17, 34, 64, 0.00) 100%
  );
  border-radius: var(--radius-lg);
  z-index: 1;
}

/* Text content sits above overlay */
.category-card__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24px 20px;
  z-index: 2;
}

.category-card__name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  display: block;
}

/* Fix Pitfall 3: ::after arrow must sit above overlay */
.category-card::after {
  z-index: 3;
}

/* Hover: image zoom + gold border (per D-02) */
.category-card:hover .category-card__img {
  transform: scale(1.05);
}

/* Override existing translateY(-5px), replace with gold border + shadow only */
.category-card:hover {
  transform: translateY(0);
  border-color: var(--gold);
  box-shadow: var(--shadow-md);
}

/* Responsive card min-height (matches existing grid breakpoints) */
@media (max-width: 900px) {
  .category-card {
    min-height: 200px;
  }
}

@media (max-width: 600px) {
  .category-card {
    min-height: 180px;
  }
}

/* prefers-reduced-motion: disable image zoom transition (per D-05) */
@media (prefers-reduced-motion: reduce) {
  .category-card__img {
    transition: none;
  }
}
