/* --------------------------------------------------------------
   q.beyond – Corporate Design (style.css)
   --------------------------------------------------------------
   • Primary colour   : #2A5D9F  (q‑beyond Blau)
   • Secondary colour : #00A3E0 (Türkis‑Akzent)
   • Light grey       : #F4F7FA
   • Dark grey        : #4A4A4A
   • Font family      : "Open Sans", Arial, sans-serif
   • Border radius    : 4px
   -------------------------------------------------------------- */

/* ==== 1. Grundlegende Variablen ==== */
:root {
    --color-primary:   #2A5D9F;
    --color-secondary:#00A3E0;
    --color-light:    #F4F7FA;
    --color-dark:     #4A4A4A;
    --color-success:  #28A745;
    --color-warning:  #FFC107;
    --font-base:      'Open Sans', Arial, Helvetica, sans-serif;
    --radius:         4px;
    --spacing:        0.75rem;
}

/* ==== 2. Reset & Basis ==== */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
html {
    font-size: 100%;               /* 1 rem = 16 px */
}
body {
    font-family: var(--font-base);
    line-height: 1.5;
    color: var(--color-dark);
    background-color: var(--color-light);
    padding: var(--spacing);
}

/* ==== 3. Überschriften ==== */
h1, h2, h3, h4 {
    color: var(--color-primary);
    margin-bottom: calc(var(--spacing) * 0.5);
}
h1 { font-size: 2rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.25rem; }

/* ==== 4. Formulare ==== */
form {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: var(--radius);
    padding: calc(var(--spacing) * 2);
    max-width: 800px;
    margin: 0 auto;
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

/* Feldgruppen */
fieldset {
    border: none;
    margin-bottom: calc(var(--spacing) * 1.5);
    padding: 0;
}
legend {
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--color-primary);
    margin-bottom: var(--spacing);
}

/* Checkbox‑Reihe */
.subproduct {
    display: flex;
    align-items: center;
    margin-bottom: var(--spacing);
}
.subproduct input[type="checkbox"] {
    width: 1.2rem;
    height: 1.2rem;
    margin-right: 0.6rem;
    accent-color: var(--color-primary);
}
.subproduct label {
    font-size: 0.95rem;
}

/* Text‑Inputs (Kundendaten) */
label {
    display: block;
    margin-top: calc(var(--spacing) * 0.5);
    margin-bottom: 0.2rem;
    font-weight: 500;
}
input[type="text"],
input[type="date"] {
    width: 100%;
    max-width: 300px;
    padding: 0.45rem 0.6rem;
    border: 1px solid #ccc;
    border-radius: var(--radius);
    font-size: 0.95rem;
    transition: border-color 0.2s;
}
input[type="text"]:focus,
input[type="date"]:focus {
    outline: none;
    border-color: var(--color-primary);
}

/* Button */
button {
    display: inline-block;
    margin-top: calc(var(--spacing) * 1.5);
    padding: 0.6rem 1.4rem;
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
    background-color: var(--color-primary);
    border: none;
    border-radius: var(--radius);
    cursor: pointer;
    transition: background-color 0.2s, transform 0.1s;
}
button:hover {
    background-color: var(--color-secondary);
}
button:active {
    transform: translateY(1px);
}

/* ==== 5. Angebots‑Tabelle ==== */
section table {
    width: 100%;
    border-collapse: collapse;
    margin-top: var(--spacing);
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
section th,
section td {
    padding: calc(var(--spacing) * 0.8) var(--spacing);
    text-align: left;
    font-size: 0.95rem;
}
section th {
    background-color: var(--color-primary);
    color: #fff;
    font-weight: 600;
}
section tr:nth-child(even) td {
    background-color: #fafafa;
}
section .total td {
    background-color: var(--color-secondary);
    color: #fff;
    font-weight: 600;
}

/* ==== 6. Responsives Layout ==== */
@media (max-width: 600px) {
    form { padding: var(--spacing); }
    input[type="text"],
    input[type="date"] { max-width: 100%; }
    button { width: 100%; text-align: center; }
    section th,
    section td { padding: var(--spacing); }
}

/* ==== 7. Hilfsklassen (optional) ==== */
.text-center { text-align: center; }
.mt-1 { margin-top: var(--spacing); }
.mb-1 { margin-bottom: var(--spacing); }