/* === from: bestellen-server.json === */
/* =======================================================================
       OS – Order-Server 77 Premium Redesign
       Scoped under #pd-order-new. Prefix: os-
       ======================================================================= */

    /* -- Page background -------------------------------------------------- */
    #pd-order-new { background: #F5F8FC; }

    /* -- Hero / Header ---------------------------------------------------- */
    .pd-form-header {
      background: #F5F8FC;
      padding: 80px 0 40px;
      margin-bottom: 0;
    }
    /* ISSUE #5: Hero H1 – max-width so it doesn't stretch too wide */
    .pd-form-header h1 {
      color: #0A2443;
      margin-bottom: 12px;
      max-width: 500px;
    }
    /* ISSUE #5: Subtitle – tighter, controlled */
    .pd-form-header p {
      color: #4A5568;
      font-size: var(--type-base);
      line-height: var(--lh-relaxed);
      max-width: 440px;
      margin: 0;
    }

    /* -- Stepper ---------------------------------------------------------- */
    .pd-stepper-new { margin-bottom: 28px; }
    .pd-stepper-track-new {
      display: flex;
      align-items: center;
      padding: 0;
    }
    /* ISSUE #6: Stepper – circles 36px, precise vertical centering */
    .pd-step-new {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
    }
    .pd-step-number {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: var(--type-sm);
      font-weight: 700;
      background: #fff;
      color: #8899AA;
      border: 2px solid #C4D0DC;
      transition: all .3s ease;
    }
    /* ISSUE #6: Active circle shadow refined */
    .pd-step-new.is-active .pd-step-number {
      background: linear-gradient(135deg, #0D4E88 0%, #083A66 100%);
      color: #fff;
      border-color: transparent;
      box-shadow: 0 2px 8px rgba(13,78,136,0.3);
    }
    .pd-step-new.is-complete .pd-step-number {
      background: #146C43;
      border-color: #146C43;
      color: #fff;
      font-size: 0;
    }
    .pd-step-new.is-complete .pd-step-number::after {
      content: '\2713';
      font-size: var(--type-sm);
      font-weight: 700;
    }
    /* ISSUE #6: Labels refined */
    .pd-step-label {
      font-size: var(--type-sm);
      font-weight: 600;
      color: #42566E;
      margin-top: 6px;
    }
    .pd-step-new.is-active .pd-step-label { color: #0D4E88; font-weight: 700; }
    .pd-step-new.is-complete .pd-step-label { color: #146C43; }
    /* ISSUE #6: Connector lines lighter */
    .pd-step-connector {
      flex: 1;
      height: 2px;
      background: #E8EFF7;
      margin: 0 14px;
      align-self: flex-start;
      margin-top: 18px;
    }
    .pd-step-connector.is-complete { background: #146C43; }

    /* ISSUE #12: Stepper mobile – 32px circles */
    @media (max-width: 575px) {
      .pd-step-label { display: none; }
      .pd-step-number { width: 32px; height: 32px; font-size: var(--type-xs); }
      .pd-step-new.is-active .pd-step-number { box-shadow: 0 2px 8px rgba(13,78,136,.3); }
      .pd-step-connector { margin: 0 8px; margin-top: 16px; }
    }

    /* -- Price Preview / Summary Box -------------------------------------- */
    /* ISSUE #7: solid border, white bg, refined typography */
    .pd-price-preview {
      background: linear-gradient(135deg, #F7FAFD 0%, #EDF3F9 100%);
      border-radius: 16px;
      border: 1px solid #C4D0DC;
      box-shadow: 0 2px 8px rgba(10,36,67,0.06);
      padding: 22px 28px;
      margin-bottom: 28px;
      display: flex;
      justify-content: space-between;
      align-items: center;
    }
    .pd-price-preview:not(.is-empty) {
      background: linear-gradient(135deg, #0D4E88 0%, #083A66 100%);
      color: #fff;
      border-color: transparent;
      box-shadow: 0 4px 16px rgba(13,78,136,.25);
    }
    .pd-price-preview.is-empty {
      background: linear-gradient(135deg, #F7FAFD 0%, #EDF3F9 100%);
      border: 1px solid #C4D0DC;
      box-shadow: 0 2px 8px rgba(10,36,67,0.06);
    }
    .pd-price-preview.is-empty .pd-price-preview-label {
      color: #42566E;
    }
    .pd-price-preview.is-empty .pd-price-preview-amount {
      color: #0D4E88;
      font-style: normal;
      font-weight: 600;
    }
    /* Label and amount typography */
    .pd-price-preview-label {
      font-size: var(--type-sm);
      font-weight: 700;
      color: #42566E;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }
    .pd-price-preview:not(.is-empty) .pd-price-preview-label {
      color: rgba(255,255,255,0.85);
    }
    .pd-price-preview-amount {
      font-size: var(--type-md);
      font-weight: 700;
      color: #122033;
      letter-spacing: -.01em;
    }
    .pd-price-preview:not(.is-empty) .pd-price-preview-amount {
      font-size: var(--type-lg);
      font-weight: 800;
      color: #fff;
    }

    /* -- Form Card / Panel ------------------------------------------------ */
    /* ISSUE #8: Panel padding 36px desktop, 24px mobile */
    .pd-panel,
    .pd-panel-new {
      display: none;
      background: #fff;
      padding: 36px;
      border-radius: 22px;
      border: 1px solid #DCE4EC;
      box-shadow: 0 2px 20px rgba(10,36,67,.07);
      animation: pdFadeIn .3s ease;
    }
    .pd-panel.is-current,
    .pd-panel-new.is-current { display: block; }

    /* ISSUE #8: Title styling */
    .pd-panel-title {
      font-size: var(--type-md);
      font-weight: 700;
      color: #122033;
      margin-bottom: 1.75rem;
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .pd-panel-title .iconfa {
      color: #0D4E88;
      fill: currentColor;
      width: 22px;
      height: 22px;
    }

    /* -- Form Controls ---------------------------------------------------- */
    .pd-panel .form-label,
    .pd-panel-new .form-label {
      font-size: var(--type-sm);
      font-weight: 600;
      color: #2A3A4E;
      margin-bottom: .4rem;
    }
    /* ISSUE #9: Select/input field – height 52px, refined border/radius */
    .pd-panel .form-control,
    .pd-panel .form-select,
    .pd-panel-new .form-control,
    .pd-panel-new .form-select,
    #pd-order-new .form-select-lg {
      font-size: var(--type-base);
      padding: 14px 18px;
      min-height: 52px;
      border: 1px solid #C4D0DC;
      border-radius: 12px;
      transition: all .2s ease;
      box-shadow: 0 1px 3px rgba(10,36,67,.04);
      background-color: #fff;
    }
    /* ISSUE #9: Focus state */
    .pd-panel .form-control:focus,
    .pd-panel .form-select:focus,
    .pd-panel-new .form-control:focus,
    .pd-panel-new .form-select:focus,
    #pd-order-new .form-select-lg:focus {
      border-color: #0D4E88;
      box-shadow: 0 0 0 3px rgba(13,78,136,0.1);
      outline: none;
    }
    .pd-panel .form-control:hover,
    .pd-panel .form-select:hover,
    .pd-panel-new .form-control:hover,
    .pd-panel-new .form-select:hover {
      border-color: #8899AA;
    }
    #pd-order-new .form-select-lg {
      padding: 14px 18px;
      min-height: 52px;
      border-radius: 12px;
      font-weight: 500;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2342566E' d='M1.41.59L6 5.17 10.59.59 12 2 6 8 0 2z'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 16px center;
      background-size: 12px 8px;
      padding-right: 40px;
    }

    /* -- Maintenance Options ---------------------------------------------- */
    /* ISSUE #10: All 4 cards equal visual weight */
    .pd-maintenance-options {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
      margin-top: 8px;
    }
    /* ISSUE #12: Mobile – 2x2 grid with 10px gap */
    @media (max-width: 767px) {
      .pd-maintenance-options {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
      }
      .pd-maintenance-card { height: 80px; }
      .pd-maintenance-badge { font-size: var(--type-xs); top: -8px; left: 50%; transform: translateX(-50%); right: auto; }
    }
    .pd-maintenance-option { min-width: 0; }
    .pd-maintenance-option input { display: none; }
    .pd-maintenance-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 18px 14px;
      border: 2px solid #DCE4EC;
      border-radius: 14px;
      cursor: pointer;
      transition: all .25s ease;
      text-align: center;
      position: relative;
      background: #fff;
      height: 88px;
      justify-content: center;
      overflow: visible;
      box-sizing: border-box;
    }
    .pd-maintenance-card:hover {
      border-color: #8899AA;
      box-shadow: 0 2px 8px rgba(10,36,67,.06);
    }
    /* ISSUE #10: Selected card styling */
    .pd-maintenance-option input:checked + .pd-maintenance-card {
      border: 2px solid #0D4E88;
      background: rgba(13,78,136,0.03);
      box-shadow: 0 0 0 3px rgba(13,78,136,.08);
    }
    /* ISSUE #10: Years text */
    .pd-maintenance-years {
      font-size: var(--type-md);
      font-weight: 700;
      color: #122033;
    }
    /* ISSUE #10: Discount text */
    .pd-maintenance-discount {
      font-size: var(--type-sm);
      color: #6A7C93;
      margin-top: 4px;
    }
    /* ISSUE #10: "Empfohlen" badge */
    .pd-maintenance-badge {
      position: absolute;
      top: -12px;
      left: 50%;
      transform: translateX(-50%);
      background: linear-gradient(135deg, #0D4E88, #083A66);
      color: #fff;
      font-size: var(--type-xs);
      font-weight: 700;
      padding: 3px 12px;
      border-radius: 999px;
      white-space: nowrap;
      letter-spacing: .03em;
      text-transform: uppercase;
      z-index: 1;
      box-shadow: 0 2px 6px rgba(13,78,136,0.3);
    }
    .pd-maintenance-recommended { border-color: #0D4E88; overflow: visible; padding-top: 22px; }
    /* "Ohne" card: match font-weight, fit "Nicht empfohlen" within fixed height */
    .pd-maintenance-option:first-child .pd-maintenance-years { font-weight: 700; }
    .pd-maintenance-option:first-child .pd-maintenance-discount { color: #B0543A; font-size: var(--type-xs); line-height: var(--lh-normal); white-space: nowrap; }

    /* -- Cost Panel ------------------------------------------------------- */
    .pd-cost-panel {
      background: #F5F8FC;
      border-radius: 16px;
      padding: 18px;
      margin-top: 24px;
      border: 1px solid #E8EDF2;
    }
    .pd-cost-row {
      display: flex;
      justify-content: space-between;
      padding: 8px 0;
      border-bottom: 1px solid #E8EDF2;
      font-size: var(--type-sm);
      color: #42566E;
    }
    .pd-cost-row:last-of-type { border-bottom: none; }
    .pd-cost-row span:last-child { font-weight: 600; color: #122033; }
    .pd-cost-total {
      font-weight: 700;
      font-size: var(--type-md);
      border-top: 2px solid #122033;
      margin-top: 8px;
      padding-top: 12px;
      color: #122033;
    }
    .pd-cost-total span:last-child { font-weight: 800; }

    /* -- Nav Buttons ------------------------------------------------------ */
    /* ISSUE #11: Weiter button – full width or right-aligned, pill style */
    .pd-nav-new {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      margin-top: 28px;
      padding-top: 24px;
      border-top: 1px solid #E8EDF2;
      gap: 12px;
    }
    .pd-nav-new:has(.btn-outline-secondary) {
      justify-content: space-between;
    }
    #pd-order-new .pd-nav-new .button-primary,
    #pd-order-new .os-btn-primary {
      background: linear-gradient(135deg, #0D4E88 0%, #083A66 100%);
      color: #fff;
      border: none;
      border-radius: 999px;
      padding: 16px 48px;
      font-size: var(--type-md);
      font-weight: 700;
      box-shadow: 0 4px 14px rgba(13,78,136,.3);
      transition: all .25s ease;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }
    #pd-order-new .pd-nav-new .button-primary:hover,
    #pd-order-new .os-btn-primary:hover {
      box-shadow: 0 6px 20px rgba(13,78,136,.4);
      transform: translateY(-1px);
    }
    #pd-order-new .pd-nav-new .btn-outline-secondary {
      border: 2px solid #C4D0DC;
      color: #42566E;
      background: #fff;
      border-radius: 999px;
      padding: 14px 28px;
      font-size: var(--type-sm);
      font-weight: 600;
      transition: all .2s ease;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      cursor: pointer;
    }
    #pd-order-new .pd-nav-new .btn-outline-secondary:hover {
      border-color: #8899AA;
      background: #F5F8FC;
    }

    /* -- Submit Button (orange accent) ------------------------------------ */
    /* ISSUE #11: Gradient pill, shadow on hover */

    /* -- Summary ---------------------------------------------------------- */
    .pd-summary {
      background: #FAFCFE;
      border-radius: 16px;
      padding: 20px;
      margin-bottom: 24px;
      border: none;
    }
    .pd-summary-section {
      padding-bottom: 14px;
      margin-bottom: 14px;
      border-bottom: 1px solid #E8EDF2;
    }
    .pd-summary-section:last-child {
      border-bottom: none;
      margin-bottom: 0;
      padding-bottom: 0;
    }
    .pd-summary-row {
      display: flex;
      justify-content: space-between;
      padding: 6px 0;
    }
    .pd-summary-label { color: #6B7B8D; font-size: var(--type-sm); text-transform: uppercase; letter-spacing: 0.04em; }
    .pd-summary-value { color: #122033; font-weight: 600; font-size: var(--type-sm); text-align: right; }
    .pd-summary-subtotal {
      font-weight: 700;
      padding-top: 12px;
      margin-top: 8px;
      border-top: 1px solid #C4D0DC;
    }
    .pd-summary-total { font-weight: 800; font-size: var(--type-md); }

    .pd-edit-link {
      font-size: var(--type-xs);
      color: #0D4E88;
      margin-left: 6px;
      text-decoration: none;
      font-weight: 600;
    }
    .pd-edit-link:hover { text-decoration: underline; }

    /* -- Next Steps -------------------------------------------------------- */
    .pd-next-steps {
      background: #F0F4F8;
      border-radius: 16px;
      padding: 18px 20px;
      border: 1px solid #E8EDF2;
    }
    .pd-next-steps strong {
      display: block;
      margin-bottom: 6px;
      font-size: var(--type-sm);
      color: #122033;
    }
    .pd-next-steps small { color: #6B7B8D; font-size: var(--type-sm); line-height: var(--lh-normal); }

    /* -- Info Sidebar ------------------------------------------------------ */
    /* ISSUE #2: Overall sidebar padding 32px */
    .pd-info-sidebar {
      background: #fff;
      border-radius: 22px;
      border: 1px solid #DCE4EC;
      box-shadow: 0 2px 20px rgba(10,36,67,.07);
      padding: 32px;
      position: sticky;
      top: 100px;
      height: auto;
      min-height: auto;
    }
    .pd-info-sidebar-inner { max-width: 100%; }
    /* ISSUE #2: Sidebar heading */
    .pd-info-sidebar h2 {
      font-size: var(--type-lg);
      font-weight: 800;
      color: #122033;
      margin-bottom: 28px;
    }
    /* ISSUE #2: Benefit items – gap 16px */
    .pd-info-item {
      display: flex;
      gap: 16px;
      margin-bottom: 20px;
    }
    /* ISSUE #2: Benefit title and description */
    .pd-info-content h3 {
      font-size: var(--type-base);
      font-weight: 700;
      color: #122033;
      margin-bottom: 4px;
    }
    .pd-info-content p {
      font-size: var(--type-sm);
      color: #42566E;
      margin: 0;
      line-height: var(--lh-normal);
    }

    /* -- Trust Badges ----------------------------------------------------- */
    /* ISSUE #3: Equal height, consistent padding, uniform chips */
    .pd-trust-badges {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
    .pd-trust-badge {
      background: #F0F5FA;
      border: 1px solid #DCE4EC;
      padding: 8px 14px;
      border-radius: 999px;
      font-size: var(--type-sm);
      font-weight: 600;
      color: #2a3a4e;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      line-height: var(--lh-normal);
      white-space: normal;
    }
    .pd-trust-badge .iconfa {
      color: #0D4E88;
      fill: currentColor;
      width: 13px;
      height: 13px;
      flex-shrink: 0;
    }

    /* -- Contact Box ------------------------------------------------------ */
    /* ISSUE #4: More inner padding, better alignment, clear hierarchy */
    .pd-contact-box {
      background: linear-gradient(135deg, #0D4E88 0%, #083A66 100%);
      border: none;
      border-radius: 16px;
      padding: 20px 24px;
      margin-top: 24px;
      display: flex;
      align-items: center;
      gap: 14px;
      color: #fff;
    }
    .pd-contact-box .iconfa {
      color: #fff;
      fill: currentColor;
      width: 24px;
      height: 24px;
      opacity: .9;
      flex-shrink: 0;
    }
    .pd-contact-box strong {
      display: block;
      font-size: var(--type-xs);
      letter-spacing: 0.03em;
      text-transform: uppercase;
      opacity: 0.7;
      color: #fff;
      margin-bottom: 2px;
    }
    /* ISSUE #4: Phone number prominent */
    .pd-contact-box a {
      font-size: var(--type-md);
      font-weight: 700;
      color: #fff;
      text-decoration: none;
    }
    .pd-contact-box a:hover { text-decoration: underline; }

    /* -- Mobile Info ------------------------------------------------------- */
    .pd-mobile-info {
      background: #F5F8FC;
      border-top: 1px solid #E8EDF2;
    }
    .pd-mobile-info-card {
      display: flex;
      gap: 14px;
      align-items: flex-start;
      background: #fff;
      border-radius: 16px;
      padding: 18px;
      border: 1px solid #DCE4EC;
      box-shadow: 0 2px 10px rgba(10,36,67,.05);
    }
    .pd-mobile-info-card .iconfa { color: #0D4E88; fill: currentColor; flex-shrink: 0; margin-top: 2px; width: 20px; height: 20px; }
    .pd-mobile-info-card strong { display: block; font-size: var(--type-sm); color: #122033; margin-bottom: 3px; }
    .pd-mobile-info-card p { font-size: var(--type-sm); color: #6B7B8D; margin: 0; }

    /* -- Form wrapper ----------------------------------------------------- */
    .pd-form-wrapper {
      max-width: 720px;
      margin: 0 auto;
      padding: 0 24px 56px;
    }
    @media (min-width: 1200px) {
      .pd-form-wrapper { padding: 0 48px 64px; }
    }

    /* -- Sidebar column spacing ------------------------------------------- */
    @media (min-width: 992px) {
      .os-sidebar-col { padding-left: 32px; padding-top: 40px; }
    }

    /* -- Alerts scoped ---------------------------------------------------- */
    #pd-order-new .alert {
      border-radius: 16px;
      border: none;
    }
    #pd-order-new .alert-success {
      background: linear-gradient(135deg, #0D4E88 0%, #083A66 100%);
      color: #fff;
      box-shadow: 0 4px 14px rgba(13,78,136,.2);
    }
    #pd-order-new .alert-success p,
    #pd-order-new .alert-success strong {
      color: #fff;
    }
    #pd-order-new .alert-success .btn {
      background: #fff;
      color: #0D4E88;
      border-color: #fff;
    }
    #pd-order-new .alert-success .btn:hover {
      background: #e8eef5;
      color: #083A66;
    }

    /* -- Step 4 submit bar ------------------------------------------------ */
    .os-submit-bar {
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: 16px;
      padding-top: 20px;
      border-top: 1px solid #E8EDF2;
    }

    /* -- ISSUE #10: Maintenance explanation text ----------------------------- */
    #pd-order-new .pd-maintenance-explain {
      font-size: var(--type-sm);
      color: #6A7C93;
      line-height: var(--lh-normal);
      max-width: 600px;
    }

    /* -- Mobile adjustments ----------------------------------------------- */
    /* ISSUE #12: Comprehensive mobile refinements */
    @media (max-width: 575px) {
      .pd-form-header { padding: 48px 0 24px; }
      .pd-form-header h1 { max-width: 100%; }
      .pd-form-header p { max-width: 100%; }
      /* ISSUE #8/#12: Panel padding mobile */
      .pd-panel, .pd-panel-new { padding: 24px; border-radius: 16px; }
      .pd-price-preview { padding: 14px 16px; border-radius: 12px; }
      .pd-price-preview-amount { font-size: var(--type-base); }
      /* ISSUE #12: Maintenance cards compact */
      .pd-maintenance-card { padding: 16px 12px; border-radius: 12px; height: 78px; }
      .pd-info-sidebar { padding: 24px 20px; border-radius: 16px; }
      .os-submit-bar { flex-direction: column; align-items: stretch; text-align: center; }
      .os-submit-bar .btn-white { width: 100%; justify-content: center; }
      /* ISSUE #11/#12: Full-width buttons on mobile */
      #pd-order-new .pd-nav-new .button-primary,
      #pd-order-new .os-btn-primary {
        padding: 14px 32px;
        font-size: var(--type-base);
        width: 100%;
        justify-content: center;
      }
      .pd-nav-new {
        flex-direction: column;
        gap: 10px;
      }
      .pd-nav-new .btn-outline-secondary,
      .pd-nav-new .btn-outline-secondary {
        width: 100%;
        justify-content: center;
        order: 2;
      }
    }

    /* -- Footer transition spacing ---------------------------------------- */
    #pd-order-new { padding-bottom: 48px; }

    /* -- Typography body text --------------------------------------------- */
    #pd-order-new { color: #42566E; font-family: 'Inter', var(--font-base), sans-serif; }
    #pd-order-new h1, #pd-order-new h2, #pd-order-new h3, #pd-order-new h4 {
      color: #122033;
      font-family: 'Inter', var(--font-titles), sans-serif;
    }

    /* -- Required field note ---------------------------------------------- */
    .os-required-note {
      font-size: var(--type-sm);
      color: #8899AA;
      margin-bottom: 20px;
    }
    .os-required-note .text-danger { color: #dc3545; }

/* Sidebar divider */
.pd-sidebar-divider { border-top: 1px solid #E8EFF7; margin: 24px 0; }