/* ============================================================
   wizard.css — CSS Design Token System + Base Styles
   Phase 1: Foundation
   ============================================================ */

/* ---- @font-face: Inter (self-hosted, OFL license) --------- */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/Inter-Regular.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../assets/fonts/Inter-SemiBold.woff2') format('woff2');
}

/* ---- CSS Design Tokens ------------------------------------ */

:root {
  /* Colors */
  --color-surface: #FFFFFF;
  --color-surface-secondary: #F5F5F7;
  --color-primary: #e4003a;
  --color-text: #111827;
  --color-text-muted: #6B7280;
  --color-border: #E5E7EB;
  --color-destructive: #DC2626;
  --color-skeleton: #E5E7EB;
  --color-skeleton-highlight: #F3F4F6;

  /* Spacing */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;
  --space-3xl: 64px;

  /* Typography */
  --font-family: 'Inter', system-ui, -apple-system, sans-serif;
  --font-size-body: 16px;
  --font-size-label: 14px;
  --font-size-heading: 20px;
  --font-size-display: 28px;
  --font-weight-regular: 400;
  --font-weight-semibold: 600;
  --line-height-body: 1.5;
  --line-height-heading: 1.2;

  /* Layout */
  --sidebar-width: 240px;
  --card-radius: 12px;
  --card-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
}

/* ---- Base Reset ------------------------------------------- */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ---- Base Body -------------------------------------------- */

body {
  font-family: var(--font-family);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  background: var(--color-surface);
}

/* ---- Skeleton Loading ------------------------------------- */

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

.skeleton {
  background: linear-gradient(
    90deg,
    var(--color-skeleton) 25%,
    var(--color-skeleton-highlight) 50%,
    var(--color-skeleton) 75%
  );
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite linear;
}

@media (prefers-reduced-motion: reduce) {
  .skeleton {
    animation: none;
  }
}

/* ============================================================
   Wizard Shell Layout (D-01)
   ============================================================ */

.wizard-shell {
  display: flex;
  min-height: 100vh;
  /* Phase 08.4.2 (BUG-101): Reserve space so the sticky edit banner
     never permanently obscures the last line of content. 80px > banner height
     (~50px) plus a safety margin for line-wrapping. Harmless when banner is hidden. */
  padding-bottom: 80px;
}

.wizard-sidebar {
  width: var(--sidebar-width);
  background: var(--color-surface-secondary);
  display: flex;
  flex-direction: column;
  padding: var(--space-lg);
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  z-index: 10;
  overflow-y: auto;
}

.wizard-content {
  margin-left: var(--sidebar-width);
  flex: 1;
  padding: var(--space-2xl) var(--space-xl);
  min-width: 0;
  overflow-y: auto;
}

/* ============================================================
   Sidebar Components
   ============================================================ */

.sidebar-header {
  margin-bottom: var(--space-lg);
}

.wizard-title {
  font-size: var(--font-size-display);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
  color: var(--color-text);
}

.progress-bar {
  height: 4px;
  background: var(--color-border);
  border-radius: 2px;
  margin-top: var(--space-md);
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  background: var(--color-primary);
  transition: width 300ms ease;
  border-radius: 2px;
}

/* ============================================================
   Step List (Desktop Stepper)
   ============================================================ */

.step-list {
  list-style: none;
  padding: 0;
  margin-top: var(--space-lg);
}

.step-item {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-sm);
  min-height: 44px;
  cursor: pointer;
  border-radius: 8px;
  transition: background-color 150ms;
}

.step-item:not(.step-locked):hover {
  background: rgba(0, 0, 0, 0.04);
}

.step-number {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  flex-shrink: 0;
  background: var(--color-border);
  color: var(--color-text-muted);
}

.step-label {
  font-size: var(--font-size-label);
  line-height: var(--line-height-heading);
  color: var(--color-text-muted);
}

/* ============================================================
   Step States (UI-SPEC Interaction States)
   ============================================================ */

.step-completed {
  cursor: pointer;
}

.step-completed .step-number {
  background: var(--color-primary);
  color: #FFFFFF;
}

.step-completed .step-label {
  color: var(--color-primary);
}

.step-active .step-number {
  background: var(--color-primary);
  color: #FFFFFF;
}

.step-active .step-label {
  color: var(--color-text);
  font-weight: var(--font-weight-semibold);
}

.step-locked .step-number {
  background: var(--color-border);
  color: var(--color-text-muted);
}

.step-locked .step-label {
  color: var(--color-text-muted);
}

.step-locked {
  cursor: not-allowed;
  pointer-events: none;
}

.step-greyed {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

/* ============================================================
   Card Styles (D-02)
   ============================================================ */

.card {
  background: var(--color-surface);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  padding: var(--space-lg);
}

/* ============================================================
   Step Content
   ============================================================ */

.step-panel {
  min-height: 300px;
}

.step-heading {
  font-size: var(--font-size-heading);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
  margin-bottom: var(--space-md);
  color: var(--color-text);
}

.step-body {
  color: var(--color-text-muted);
  line-height: var(--line-height-body);
}

/* ============================================================
   Step Transitions (D-03, UI-SPEC Animation Contract)
   ============================================================ */

.step-enter {
  transition: opacity 200ms ease-out, transform 200ms ease-out;
}

.step-enter-start {
  opacity: 0;
  transform: translateX(8px);
}

.step-enter-end {
  opacity: 1;
  transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
  .step-enter-start {
    transform: none;
  }
  .step-enter-end {
    transform: none;
  }
}

/* ============================================================
   Navigation Buttons
   ============================================================ */

.nav-buttons {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--space-lg);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border);
}

.btn {
  font-family: var(--font-family);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  padding: var(--space-sm) var(--space-lg);
  border-radius: 8px;
  border: none;
  cursor: pointer;
  min-height: 44px;
  transition: background-color 150ms, color 150ms;
}

.btn-primary {
  background: var(--color-primary);
  color: #FFFFFF;
}

.btn-primary:hover {
  filter: brightness(1.1);
}

.btn-ghost {
  background: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-border);
}

.btn-ghost:hover {
  background: var(--color-surface-secondary);
}

/* ============================================================
   Mobile Stepper (D-04)
   ============================================================ */

.step-mobile-label {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  text-align: center;
  padding: var(--space-md);
}

.wizard-reset-btn {
  margin-top: auto;
  padding: var(--space-sm) var(--space-md);
  font-family: var(--font-family);
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  background: none;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}
.wizard-reset-btn:hover {
  color: var(--color-destructive);
  border-color: var(--color-destructive);
}

@media (max-width: 767px) {
  .wizard-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: auto;
    width: 100%;
    z-index: 10;
    padding: var(--space-md);
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    overflow-y: visible;
  }

  .wizard-content {
    margin-left: 0;
    margin-top: 60px;
    padding: var(--space-md);
  }

  .sidebar-header {
    margin-bottom: 0;
  }

  .wizard-title {
    font-size: var(--font-size-heading);
  }
}

/* ============================================================
   Skeleton Loading Placeholders (D-10)
   ============================================================ */

.skeleton-text {
  height: 16px;
  margin-bottom: var(--space-sm);
  width: 100%;
}

.skeleton-heading {
  height: 24px;
  width: 60%;
  margin-bottom: var(--space-md);
}

/* ============================================================
   Phase 2: Entry Step Components
   ============================================================ */

/* ---- Step intro text -------------------------------------- */

.step-intro {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  margin-bottom: var(--space-sm);
  line-height: var(--line-height-body);
}

/* ---- Type card grid --------------------------------------- */

.type-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-sm);
  margin-top: var(--space-md);
}

/* ---- Type card -------------------------------------------- */

.type-card {
  padding: var(--space-sm) var(--space-md);
  background: var(--color-surface-secondary);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 2px;
  transition: border-color 150ms, background-color 150ms;
  text-align: center;
  align-items: center;
}

.type-card:hover {
  background: #F0F4FF;
  border-color: var(--color-primary);
}

.type-card--selected {
  background: #EFF6FF;
  border: 2px solid var(--color-primary);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.type-card:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* ---- Type card inner elements ----------------------------- */

.type-card__icon {
  font-size: 18px;
  line-height: 1;
}

.type-card__title {
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-semibold);
  white-space: nowrap;
}

.type-card__desc {
  font-size: 12px;
  color: var(--color-text-muted);
  line-height: 1.3;
}

/* ---- Progressive disclosure reveal transitions ------------ */

.reveal-enter {
  transition: opacity 200ms ease-out, transform 200ms ease-out;
}

.reveal-enter-start {
  opacity: 0;
  transform: translateY(-8px);
}

.reveal-enter-end {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal-enter-start {
    transform: none;
  }
  .reveal-enter-end {
    transform: none;
  }
}

/* ---- Section separator (between progressive sections) ----- */

.step-section-separator {
  margin-top: var(--space-xl);
  padding-top: var(--space-xl);
  border-top: 1px solid var(--color-border);
}

/* ---- Name input field ------------------------------------- */

.wizard-input {
  width: 100%;
  max-width: 480px;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-family: var(--font-family);
  font-size: var(--font-size-body);
  height: 44px;
}

.wizard-input:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.wizard-label {
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  margin-bottom: var(--space-xs);
  display: block;
}

.wizard-hint {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

/* ---- Goal option rows ------------------------------------- */

.goal-list {
  max-width: 480px;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.goal-option {
  min-height: 44px;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  cursor: pointer;
  font-size: var(--font-size-body);
  display: flex;
  align-items: center;
  transition: border-color 150ms, background-color 150ms;
}

.goal-option:hover {
  border-color: var(--color-primary);
}

.goal-option--selected {
  background: #EFF6FF;
  border: 2px solid var(--color-primary);
}

.goal-option:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* ---- Motivational hint ------------------------------------ */

.motivational-hint {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  margin-bottom: var(--space-md);
}

/* ---- Disabled button state -------------------------------- */

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ---- Textarea for "Etwas anderes" freetext ---------------- */

.wizard-textarea {
  width: 100%;
  max-width: 480px;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-family: var(--font-family);
  font-size: var(--font-size-body);
  min-height: 60px;
  resize: vertical;
}

.wizard-textarea:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

/* ---- Mobile responsive type grid -------------------------- */

@media (max-width: 767px) {
  .type-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Phase 2: Step 2 Analysis Components
   ============================================================ */

/* ---- Analysis card ---------------------------------------- */

.analysis-card {
  background: var(--color-surface-secondary);
  border-radius: var(--card-radius);
  padding: var(--space-lg);
  box-shadow: var(--card-shadow);
}

.analysis-card__label {
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
  margin-bottom: var(--space-sm);
}

.analysis-card__industry {
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
}

.analysis-card__topics {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  margin-top: var(--space-sm);
}

/* ---- Skeleton question variant ---------------------------- */

.skeleton-question {
  height: 44px;
  width: 100%;
  border-radius: 8px;
  margin-bottom: var(--space-sm);
}

/* ---- Loading message -------------------------------------- */

.loading-message {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  margin-top: var(--space-md);
}

/* ---- Question block --------------------------------------- */

.question-block {
  margin-bottom: var(--space-xl);
}

.question-label {
  font-size: var(--font-size-body);
  color: var(--color-text);
  margin-bottom: var(--space-sm);
}

/* ---- Yes/No button group ---------------------------------- */

.yes-no-group {
  display: flex;
  gap: var(--space-sm);
}

.yes-no-btn {
  min-width: 100px;
  min-height: 44px;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
  cursor: pointer;
  font-family: var(--font-family);
  font-size: var(--font-size-label);
  transition: border-color 150ms, background-color 150ms;
}

.yes-no-btn:hover {
  border-color: var(--color-primary);
}

.yes-no-btn--selected {
  background: #EFF6FF;
  border: 2px solid var(--color-primary);
}

/* ---- Checkbox list ---------------------------------------- */

.checkbox-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.checkbox-row {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  min-height: 44px;
  padding: var(--space-xs) var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-body);
}

.checkbox-row input[type="checkbox"] {
  width: 20px;
  height: 20px;
  accent-color: var(--color-primary);
  cursor: pointer;
}

/* ---- USP chips -------------------------------------------- */

.usp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs) var(--space-sm);
}

.usp-chip {
  padding: var(--space-xs) var(--space-sm);
  border-radius: 20px;
  font-size: var(--font-size-label);
  border: 1px solid var(--color-border);
  background: var(--color-surface-secondary);
  color: var(--color-text-muted);
  cursor: pointer;
  transition: border-color 150ms, background-color 150ms, color 150ms;
  font-family: var(--font-family);
}

.usp-chip:hover {
  border-color: var(--color-primary);
  color: var(--color-text);
}

.usp-chip--selected {
  background: #EFF6FF;
  border-color: var(--color-primary);
  color: var(--color-primary);
  font-weight: var(--font-weight-semibold);
}

.usp-add-input {
  padding: var(--space-xs) var(--space-sm);
  border: 1px dashed var(--color-border);
  border-radius: 20px;
  font-family: var(--font-family);
  font-size: var(--font-size-label);
  max-width: 300px;
  height: 36px;
  background: transparent;
}

.usp-add-input:focus {
  border-color: var(--color-primary);
  outline: none;
}

.usp-add-input::placeholder {
  color: var(--color-text-muted);
}

/* ---- Analysis section spacing ----------------------------- */

.analysis-section {
  margin-top: var(--space-xl);
}

.analysis-section__heading {
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  margin-bottom: var(--space-md);
}

.analysis-section__help {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  margin-bottom: var(--space-md);
}

/* ---- External tool rows ----------------------------------- */

.tool-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.tool-row {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.tool-info {
  flex: 1;
  min-width: 150px;
}

.tool-name {
  font-size: var(--font-size-body);
}

.tool-desc {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
}

.tool-buttons {
  display: flex;
  gap: var(--space-xs);
  flex-wrap: wrap;
}

.tool-btn {
  font-size: var(--font-size-label);
  padding: var(--space-xs) var(--space-md);
  border-radius: 6px;
  border: 1px solid var(--color-border);
  background: transparent;
  cursor: pointer;
  font-family: var(--font-family);
  transition: background-color 150ms, border-color 150ms, color 150ms;
  white-space: nowrap;
}

.tool-btn:hover {
  border-color: var(--color-primary);
}

.tool-btn--selected {
  background: var(--color-primary);
  color: #FFFFFF;
  border-color: var(--color-primary);
}

.tool-url-input {
  width: 100%;
  max-width: 400px;
  margin-top: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-family: var(--font-family);
  font-size: var(--font-size-body);
  height: 44px;
}

.tool-url-input:focus {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.tool-footnote {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-top: var(--space-md);
}

/* ---- Error state ------------------------------------------ */

.error-block {
  padding: var(--space-lg);
  text-align: center;
}

.error-message {
  color: var(--color-text);
  margin-bottom: var(--space-md);
}

.btn-retry {
  background: transparent;
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
  border-radius: 8px;
  padding: var(--space-sm) var(--space-lg);
  cursor: pointer;
  font-family: var(--font-family);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  min-height: 44px;
}

.btn-retry:hover {
  background: #EFF6FF;
}

/* ============================================================
   Phase 3: Design System — Step 3 Components
   ============================================================ */

/* ---- Brand Board scoped custom properties (D-19) ---------- */

@property --preview-primary {
  syntax: '<color>';
  inherits: true;
  initial-value: #6B7280;
}

@property --preview-secondary {
  syntax: '<color>';
  inherits: true;
  initial-value: #9CA3AF;
}

@property --preview-accent {
  syntax: '<color>';
  inherits: true;
  initial-value: #D1D5DB;
}

.brand-board {
  --preview-primary: #6B7280;
  --preview-secondary: #9CA3AF;
  --preview-accent: #D1D5DB;
  --preview-bg: #FFFFFF;
  --preview-font-heading: 'Inter', sans-serif;
  --preview-font-body: 'Inter', sans-serif;
}

/* ---- Style Card (component 1) ----------------------------- */

.style-card-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-md);
  max-width: 680px;
}

.style-card {
  min-height: 140px;
  border-radius: 12px;
  border: 1px solid var(--color-border);
  padding: var(--space-lg);
  cursor: pointer;
  transition: border-color 200ms ease, box-shadow 200ms ease;
  background: var(--color-surface);
}

.style-card:hover {
  border-color: var(--color-primary);
}

.style-card--selected {
  border: 2px solid var(--color-primary);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.style-card:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.style-card__swatches {
  display: flex;
  gap: var(--space-xs);
  margin-bottom: var(--space-sm);
}

.style-card__swatch {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,0.1);
}

.style-card__name {
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--space-xs);
}

.style-card__heading-specimen {
  font-size: var(--font-size-heading);
  font-weight: var(--font-weight-semibold);
  line-height: 1.2;
  margin-bottom: var(--space-xs);
}

.style-card__body-specimen {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  line-height: 1.4;
}

/* ---- Style Card Skeleton (component 6) -------------------- */

.style-card-skeleton {
  min-height: 140px;
  border-radius: 12px;
  border: 1px solid var(--color-border);
}

/* ---- Brand Board (component 2) ---------------------------- */

.brand-board {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  min-width: 280px;
  max-width: 320px;
  position: sticky;
  top: var(--space-lg);
}

.brand-board__label {
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
  margin-bottom: var(--space-sm);
}

.brand-board__colors {
  display: flex;
  gap: var(--space-sm);
}

.brand-board__color-swatch {
  flex: 1;
  height: 80px;
  border-radius: 12px;
  transition: background-color 150ms ease;
}

.brand-board__color-label {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
  text-align: center;
}

.brand-board__design-card {
  border-radius: 12px;
  box-shadow: var(--card-shadow);
  overflow: hidden;
}

.brand-board__design-card-header {
  height: 48px;
  background: var(--preview-primary);
  transition: background-color 150ms ease;
}

.brand-board__design-card-body {
  padding: var(--space-lg);
}

.brand-board__heading {
  font-family: var(--preview-font-heading);
  font-size: var(--font-size-heading);
  font-weight: var(--font-weight-semibold);
  line-height: 1.2;
  margin-bottom: var(--space-sm);
}

.brand-board__body-text {
  font-family: var(--preview-font-body);
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  line-height: 1.5;
}

.brand-board__button {
  display: inline-block;
  padding: var(--space-sm) var(--space-md);
  background: var(--preview-accent);
  color: white;
  border-radius: 8px;
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  margin-top: var(--space-md);
  transition: background-color 150ms ease;
}

.brand-board__font-showcase {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.brand-board__font-heading {
  font-family: var(--preview-font-heading);
  font-size: var(--font-size-display);
  font-weight: var(--font-weight-semibold);
  line-height: 1.2;
}

.brand-board__font-body {
  font-family: var(--preview-font-body);
  font-size: var(--font-size-body);
  line-height: 1.5;
}

.brand-board__font-name {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  margin-bottom: var(--space-xs);
}

/* ---- Color Picker Row (component 3) ----------------------- */

.color-picker-row {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}

.color-picker-field {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.color-picker-field__label {
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  min-width: 100px;
}

.color-picker-field__swatch {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid var(--color-border);
  cursor: pointer;
}

.color-picker-field__hex-input {
  max-width: 120px;
  font-size: var(--font-size-body);
  padding: var(--space-sm);
  border: 1px solid var(--color-border);
  border-radius: 8px;
}

.color-harmony-chips {
  display: flex;
  gap: var(--space-xs);
  margin-top: var(--space-xs);
}

.color-harmony-chip {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,0.1);
  cursor: pointer;
  transition: transform 200ms ease;
}

.color-harmony-chip:hover {
  transform: scale(1.2);
}

.color-contrast-warning {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  color: #B45309;
  font-size: var(--font-size-label);
  margin-top: var(--space-xs);
}

/* ---- Font Dropdown Row (component 4) ---------------------- */

.font-dropdown-row {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}

.font-dropdown-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.font-dropdown-field__label {
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
}

.font-dropdown-field__select {
  min-height: 44px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-size: var(--font-size-body);
  padding: var(--space-sm) var(--space-md);
  background: var(--color-surface);
}

.font-dropdown-field__select:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
  outline: none;
}

/* ---- Custom Font Picker (BUG-44/45/46) -------------------- */

.font-picker-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: var(--space-sm) var(--space-md);
  margin-top: var(--space-md);
  align-items: start;
}

/* Left column: heading picker (row 1) and body picker (row 2) */
.font-picker-col {
  grid-column: 1;
  position: relative;
  overflow: visible;
}

/* Right column: preview spans both rows */
.font-picker-preview {
  grid-column: 2;
  grid-row: 1 / 3;
  padding: var(--space-md);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  position: sticky;
  top: var(--space-md);
}

.font-picker-label {
  display: block;
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  margin-bottom: 4px;
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.font-picker-trigger {
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 1rem;
  text-align: left;
  color: var(--color-text);
  transition: border-color 0.15s ease;
}

.font-picker-trigger:hover {
  border-color: var(--color-primary);
}

.font-picker-trigger:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.font-picker-trigger svg {
  flex-shrink: 0;
  color: var(--color-text-muted);
  transition: transform 0.15s ease;
}

.font-picker-dropdown {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(100% + 4px);
  z-index: 100;
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  max-height: 420px;
  overflow: hidden;
}

.font-picker-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 10px 10px 6px;
  border-bottom: 1px solid var(--color-border);
  flex-shrink: 0;
}

.font-picker-tab {
  padding: 4px 10px;
  border: 1px solid var(--color-border);
  border-radius: 20px;
  background: transparent;
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--color-text-muted);
  white-space: nowrap;
  transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.font-picker-tab:hover {
  background: var(--color-surface-hover, #f3f4f6);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.font-picker-tab--active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.font-picker-grid {
  overflow-y: auto;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px;
}

.font-picker-item {
  padding: 10px 12px;
  border: none;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  font-size: 1.05rem;
  line-height: 1.3;
  min-height: 40px;
  display: flex;
  align-items: center;
  text-align: left;
  color: var(--color-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background 0.1s ease;
  position: relative;
  flex-shrink: 0;
}

.font-picker-item:hover {
  background: var(--color-surface-hover, #f3f4f6);
}

.font-picker-item--selected {
  background: color-mix(in srgb, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
  font-weight: 600;
}

.font-picker-item--highlight {
  padding-left: 20px;
}

.font-picker-item--highlight::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 60%;
  background: var(--color-primary);
  border-radius: 2px;
  opacity: 0.5;
}

/* Preview column */
.font-picker-preview__heading {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.2;
}

.font-picker-preview__body {
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--color-text-muted);
}

.font-picker-preview__meta {
  font-size: 0.75rem;
  color: var(--color-text-muted);
  border-top: 1px solid var(--color-border);
  padding-top: var(--space-xs);
  margin-top: auto;
  font-style: italic;
}

/* Responsive: stack to 1 column on mobile */
@media (max-width: 640px) {
  .font-picker-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .font-picker-col {
    grid-column: 1;
  }

  .font-picker-preview {
    grid-column: 1;
    grid-row: auto;
    position: static;
  }
}

/* ---- Accordion (component 5) ------------------------------ */

.design-accordion__section {
  border-bottom: 1px solid var(--color-border);
  padding: var(--space-md) 0;
}

/* BUG-42: Open sections with simple titles */
.design-section__title {
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-semibold, 600);
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--color-border, #e2e8f0);
  margin-bottom: var(--space-md);
}

.design-accordion__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  cursor: pointer;
  background: none;
  border: none;
  padding: var(--space-sm) 0;
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
}

.design-accordion__summary {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  font-weight: 400;
}

.design-accordion__edit-link {
  font-size: var(--font-size-label);
  color: var(--color-primary);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

.design-accordion__edit-link:hover {
  text-decoration: underline;
}

/* ---- Step 3 Layout ---------------------------------------- */

.step3-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: var(--space-xl);
  align-items: start;
}

@media (max-width: 768px) {
  .step3-layout {
    grid-template-columns: 1fr;
  }

  .brand-board {
    position: static;
  }
}

/* ---- Ghost Button (harmony AI button) --------------------- */

.btn-ghost {
  background: none;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: var(--space-sm) var(--space-md);
  font-size: var(--font-size-label);
  color: var(--color-text);
  cursor: pointer;
  transition: border-color 200ms ease;
}

.btn-ghost:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* ---- prefers-reduced-motion (animation contract) ---------- */

@media (prefers-reduced-motion: reduce) {
  .style-card,
  .brand-board__color-swatch,
  .brand-board__design-card-header,
  .brand-board__button,
  .color-harmony-chip {
    transition-duration: 0ms;
  }
}

/* ============================================================
   Structure Board (Step 4)
   Phase 4: Page Structure
   ============================================================ */

/* BUG-38: vertical card layout */
.structure-board {
  padding: var(--space-sm) 0;
}

.board-columns {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.page-col {
  width: 100%;
  background: var(--color-bg-card, #f8f9fa);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.page-col--add {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border-style: dashed;
  color: var(--color-text-muted, #94a3b8);
  padding: var(--space-md);
  transition: border-color 0.15s, color 0.15s;
}

/* BUG-39: pencil edit icon */
.page-col__edit-icon {
  opacity: 0;
  transition: opacity 0.15s;
  margin-left: var(--space-xs);
  font-size: 0.85em;
  color: var(--color-text-muted);
  cursor: pointer;
}
.page-col__name:hover .page-col__edit-icon {
  opacity: 1;
}
.page-col--add:hover {
  border-color: var(--color-primary, #2563eb);
  color: var(--color-primary, #2563eb);
}

.page-col__header {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  padding-bottom: var(--space-xs);
  border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.page-col__name {
  font-weight: 600;
  cursor: pointer;
  flex: 1;
}

.page-col__name-input {
  font-weight: 600;
  flex: 1;
  border: 1px solid var(--color-primary, #2563eb);
  border-radius: var(--radius-sm, 4px);
  padding: 2px 4px;
  font-size: inherit;
}

.page-col__delete {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text-muted, #94a3b8);
  padding: 2px;
}
.page-col__delete:hover {
  color: var(--color-danger, #ef4444);
}

.page-col__confirm {
  background: var(--color-bg-warning, #fef3c7);
  border-radius: var(--radius-sm, 4px);
  padding: var(--space-xs);
  font-size: 0.85em;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  align-items: center;
}

/* BUG-38: compact topic layout */
.topic-list {
  min-height: 40px;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
}

.topic-card {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  padding: var(--space-xs) var(--space-sm);
  background: var(--color-bg, #ffffff);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-sm, 4px);
  cursor: grab;
  transition: box-shadow 0.15s;
}
.topic-card:hover {
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
.topic-card:active {
  cursor: grabbing;
}

.topic-card--ghost {
  opacity: 0.4;
  background: var(--color-primary-light, #dbeafe);
}

.topic-card--chosen {
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.topic-card__label {
  flex: 1;
}

.topic-card__remove {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text-muted, #94a3b8);
  padding: 4px;
  font-size: 1.1em;
  line-height: 1;
}
.topic-card__remove:hover {
  color: var(--color-danger, #ef4444);
}
.topic-card__actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.topic-card__move {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text-muted, #94a3b8);
  padding: 4px;
  font-size: 1em;
  line-height: 1;
  opacity: 0;
  transition: opacity 0.15s;
}
.topic-card:hover .topic-card__move {
  opacity: 1;
}
.topic-card__move:hover {
  color: var(--color-primary, #2563EB);
}
.topic-move__menu {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 50;
  background: white;
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
  min-width: 140px;
  padding: 4px 0;
}
.topic-move__menu--open {
  display: block;
}
.topic-move__option {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  padding: 6px 12px;
  font-size: 13px;
  cursor: pointer;
  color: var(--color-text);
}
.topic-move__option:hover {
  background: var(--color-bg-subtle, #f1f5f9);
  color: var(--color-primary, #2563EB);
}

.topic-add {
  display: flex;
  gap: var(--space-xs);
  margin-top: var(--space-xs);
}

.topic-add__input {
  flex: 1;
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-sm, 4px);
  padding: 4px 8px;
  font-size: 0.9em;
}

.topic-add__btn {
  background: var(--color-primary, #2563eb);
  color: white;
  border: none;
  border-radius: var(--radius-sm, 4px);
  padding: 4px 10px;
  cursor: pointer;
  font-weight: 600;
}

.recommendation-card {
  background: var(--color-bg-card, #f8f9fa);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  padding: var(--space-md);
  margin-bottom: var(--space-md);
}

.recommendation-type {
  font-size: 1.25em;
  font-weight: 700;
  margin-bottom: var(--space-xs);
}

.recommendation-rationale {
  margin-bottom: var(--space-sm);
  color: var(--color-text-muted, #64748b);
}

.recommendation-actions {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
}

/* skeleton-card: loading placeholder container */
.skeleton-card {
  padding: var(--space-md);
  background: var(--color-bg-card, #f8f9fa);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  margin-bottom: var(--space-md);
}

/* btn-sm: compact button used in confirmation dialogs */
.btn-sm {
  background: var(--color-bg, #ffffff);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-sm, 4px);
  padding: 2px 10px;
  cursor: pointer;
  font-size: 0.85em;
}
.btn-sm:hover {
  background: var(--color-primary, #2563eb);
  color: white;
  border-color: var(--color-primary, #2563eb);
}

/* ---- Font combo cards (D-09) -------------------------------- */

.font-combo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--space-sm);
}

.font-combo-card {
  border: 2px solid var(--color-border);
  border-radius: 12px;
  padding: var(--space-md);
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  text-align: center;
}

.font-combo-card:hover {
  border-color: var(--color-primary);
}

.font-combo-card--selected {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px var(--color-primary);
  background: var(--color-bg-subtle);
}

.font-combo-card__heading {
  font-size: 1.5rem;
  line-height: 1.2;
  margin-bottom: var(--space-xs);
}

.font-combo-card__body {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  margin-bottom: var(--space-sm);
}

.font-combo-card__label {
  font-size: 0.75rem;
  color: var(--color-text-muted);
  font-weight: 500;
}

/* ---- Disabled accordion header (D-10) ---------------------- */

.design-accordion__header--disabled {
  cursor: default;
  opacity: 0.5;
}

.design-accordion__hint {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  font-weight: 400;
  margin-left: var(--space-sm);
}

/* ---- Business description textarea (D-02) ----------------- */

.business-description-textarea {
  width: 100%;
  min-height: 80px;
  max-height: 160px;
  resize: vertical;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--card-radius);
  font-family: inherit;
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-body);
  color: var(--color-text);
  background: var(--color-surface);
}
.business-description-textarea:focus {
  border-color: var(--color-primary);
  outline: none;
}

/* Brand Board preview button is decorative only (D-10) */
.brand-board__button {
  pointer-events: none;
  cursor: default;
}

/* Mandatory page columns — Impressum/Datenschutz (D-15) */
.page-column--mandatory {
  opacity: 0.6;
  background: var(--color-surface-secondary);
  border: 1px dashed var(--color-border);
  border-radius: var(--card-radius);
}
.page-column--mandatory .page-col__header {
  cursor: default;
}
.page-column--mandatory .page-col__delete,
.page-column--mandatory .page-col__name-input,
.page-column--mandatory .topic-add {
  display: none;
}
.mandatory-badge {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  background: var(--color-border);
  border-radius: 4px;
  padding: 2px 6px;
  white-space: nowrap;
}

/* Section name technical term (D-14 display support) */
.section-name__technical {
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-regular);
  color: var(--color-text-muted);
}

/* Social media section (D-09) */
.social-media-section {
  margin-top: var(--space-lg);
}
.social-row {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-sm);
}
.social-row__label {
  flex: 0 0 100px;
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
}
.social-url-input {
  flex: 1;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--card-radius);
  font-size: var(--font-size-body);
  font-family: inherit;
  color: var(--color-text);
  background: var(--color-surface);
}
.social-url-input:focus {
  border-color: var(--color-primary);
  outline: none;
}
.social-row__remove {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text-muted);
  font-size: 18px;
  padding: var(--space-xs);
}

/* Tool hint text (D-06) */
.tool-hint {
  font-size: var(--font-size-label);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
  margin-bottom: 0;
}

/* Content suggestion cards (Phase 04.1.2 Redesign) */
.content-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--space-sm);
  margin-top: var(--space-sm);
}
.content-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: var(--space-sm) var(--space-md);
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  cursor: pointer;
  background: var(--color-surface);
  transition: border-color 0.15s, background 0.15s;
  user-select: none;
}
.content-card:hover { border-color: var(--color-primary); }
.content-card--selected {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 8%, white);
}
.content-card__label-row {
  display: flex;
  align-items: center;
  gap: 4px;
}
.content-card__label {
  font-weight: 600;
  font-size: var(--font-size-label, 14px);
  color: var(--color-text);
}
.content-card__edit-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 12px;
  color: var(--color-text-muted);
  opacity: 0;
  transition: opacity 0.15s;
  padding: 0 2px;
  line-height: 1;
}
.content-card:hover .content-card__edit-btn {
  opacity: 0.6;
}
.content-card__edit-btn:hover {
  opacity: 1 !important;
  color: var(--color-primary, #2563EB);
}
.content-card__edit-input {
  font-weight: 600;
  font-size: var(--font-size-label, 14px);
  color: var(--color-text);
  border: 1px solid var(--color-primary, #2563EB);
  border-radius: 4px;
  padding: 1px 4px;
  width: 100%;
  outline: none;
}
.content-card__desc {
  font-size: var(--font-size-small, 12px);
  color: var(--color-text-muted);
}
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); border: 0;
}

/* ============================================================
   Step 7: Export / Finish Screen
   ============================================================ */

.finish-message {
  margin-bottom: var(--space-xl);
  line-height: 1.6;
}
.finish-message p + p {
  margin-top: var(--space-md);
}
.mockup-section {
  margin-bottom: var(--space-xl);
}
.mockup-section h3 {
  margin-bottom: var(--space-md);
}
.mockup-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--space-md);
}
.mockup-thumb {
  margin: 0;
  text-align: center;
}
.mockup-thumb img {
  width: 100%;
  border-radius: var(--radius-md, 8px);
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.mockup-thumb figcaption {
  margin-top: var(--space-xs);
  font-size: 0.875rem;
  color: var(--color-text-muted);
}
.export-actions {
  text-align: center;
  margin-top: var(--space-xl);
}
.export-hint {
  margin-top: var(--space-sm);
  font-size: 0.875rem;
}
.btn-lg {
  padding: var(--space-md) var(--space-xl);
  font-size: 1.125rem;
}

/* ==================== Step 5: Page Actions (BUG-69, BUG-68) ==================== */
.page-actions-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: var(--space-sm);
}

.mockup-disclaimer {
  font-size: 0.85rem;
  color: var(--color-text-muted);
  margin: 0.5rem 0;
}

.page-next-action {
  margin-top: 1.5rem;
  text-align: center;
}

/* --- Contact Fields (BUG-72) --- */
.contact-fields {
  max-width: 480px;
}
.contact-row {
  margin-bottom: var(--space-sm);
}
.contact-row--two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-sm);
}
@media (max-width: 600px) {
  .contact-row--two-col {
    grid-template-columns: 1fr;
  }
}
.contact-field--full {
  width: 100%;
}
.contact-label {
  display: block;
  font-size: var(--font-size-label, 0.85rem);
  color: var(--color-text-muted, #6b7280);
  margin-bottom: 4px;
  font-weight: var(--font-weight-medium, 500);
}
.contact-optional {
  font-weight: var(--font-weight-regular, 400);
  font-style: italic;
  color: var(--color-text-muted, #9ca3af);
  font-size: 0.8em;
}

/* Italic placeholders for contact fields */
.contact-fields input::placeholder {
  font-style: italic;
  color: var(--color-text-muted, #9ca3af);
}

/* Phone row: country code + number side by side */
.contact-phone-row {
  display: flex;
  gap: 0.5rem;
}
.contact-country-code {
  width: 4.5rem;
  flex-shrink: 0;
  text-align: center;
}
.contact-phone-number {
  flex: 1;
}

/* Pre-fill hint — shown next to label when AI detected value */
.contact-prefill-hint {
  font-weight: var(--font-weight-regular, 400);
  font-style: italic;
  color: var(--color-primary, #e4003a);
  font-size: 0.8em;
  margin-left: 0.5em;
}

/* --- Hours template cards & group editor --- */
.hours-template-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-xs, 0.5rem);
  margin-bottom: var(--space-sm);
}
@media (max-width: 600px) {
  .hours-template-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.hours-template-card {
  padding: var(--space-xs, 0.5rem) var(--space-sm, 0.75rem);
  background: var(--color-surface-secondary);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: center;
  align-items: center;
  transition: border-color 150ms, background-color 150ms;
  font-family: inherit;
  font-size: inherit;
}
.hours-template-card:hover {
  background: #F0F4FF;
  border-color: var(--color-primary);
}
.hours-template-card--selected {
  background: #EFF6FF;
  border: 2px solid var(--color-primary);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}
.hours-template-card__icon { font-size: 18px; line-height: 1; }
.hours-template-card__title {
  font-size: var(--font-size-body, 0.9rem);
  font-weight: var(--font-weight-semibold, 600);
  white-space: nowrap;
}
.hours-template-card__desc {
  font-size: 11px;
  color: var(--color-text-muted);
  line-height: 1.3;
}

/* Hours group editor */
.hours-editor {
  margin-top: var(--space-sm);
}
.hours-row {
  display: flex;
  align-items: center;
  gap: var(--space-xs, 0.5rem);
  margin-bottom: 6px;
}
.hours-row__day {
  min-width: 3.5rem;
  font-size: var(--font-size-label, 0.85rem);
  font-weight: var(--font-weight-medium, 500);
  color: var(--color-text);
}
.hours-time-input {
  width: 7rem;
  padding: 6px 8px;
  font-size: var(--font-size-label, 0.85rem);
}
.hours-row__sep {
  font-size: var(--font-size-label, 0.85rem);
  color: var(--color-text-muted);
}
.hours-row--closed .hours-time-input {
  opacity: 0.35;
  background: var(--color-surface-secondary, #f3f4f6);
}
.hours-row__closed-label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: var(--font-size-label, 0.85rem);
  color: var(--color-text-muted);
  cursor: pointer;
  white-space: nowrap;
}
/* Second time block — inline with "und" connector */
.hours-block2 {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding-left: 0.5rem;
  margin-top: 0.25rem;
}
.hours-block2__und {
  color: var(--color-text-muted, #6b7280);
  font-style: italic;
  min-width: 2rem;
  text-align: right;
}
.hours-block2__remove {
  background: none;
  border: none;
  color: var(--color-text-muted, #9ca3af);
  font-size: 1.2rem;
  cursor: pointer;
  padding: 0 0.3rem;
  line-height: 1;
}
.hours-block2__remove:hover {
  color: var(--color-danger, #ef4444);
}
.hours-add-block2 {
  background: none;
  border: 1px dashed var(--color-border, #d1d5db);
  border-radius: 4px;
  color: var(--color-text-muted, #6b7280);
  font-size: 1rem;
  cursor: pointer;
  padding: 0.1rem 0.6rem;
  margin: 0.2rem 0 0 0.5rem;
  font-family: inherit;
  line-height: 1.4;
}
.hours-add-block2:hover {
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.hours-row-wrap {
  margin-bottom: 0.35rem;
}

.hours-expand-link {
  background: none;
  border: none;
  color: var(--color-primary);
  font-size: var(--font-size-label, 0.85rem);
  cursor: pointer;
  padding: var(--space-xs) 0;
  text-decoration: underline;
  font-family: inherit;
}
.hours-expand-link:hover {
  color: var(--color-primary-dark, #1d4ed8);
}
@media (max-width: 480px) {
  .hours-row {
    flex-wrap: wrap;
  }
  .hours-row__day {
    min-width: 100%;
    margin-bottom: 2px;
  }
  .hours-time-input {
    width: 5.5rem;
  }
}

/* --- Footer Contact Preview (BUG-73) --- */
.footer-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-sm, 0.5rem);
  padding: var(--space-md, 1rem);
  background: var(--color-surface-secondary, #f8fafc);
  border-radius: var(--radius-md, 8px);
  border: 1px dashed var(--color-border, #e2e8f0);
  margin-bottom: var(--space-sm);
}
@media (max-width: 600px) {
  .footer-contact-grid {
    grid-template-columns: 1fr;
  }
}
.footer-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: var(--color-text, #374151);
}
.footer-contact-icon {
  flex-shrink: 0;
  font-size: 1.1rem;
}

/* ============================================================
   Splash Screen — Language Selection (Phase 08: i18n)
   ============================================================ */

[x-cloak] { display: none !important; }

.splash-screen {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg, #f8f9fa);
  z-index: 1000;
}
.splash-content {
  text-align: center;
  max-width: 480px;
  padding: 2rem;
}
.splash-heading {
  font-size: 1.75rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--color-text, #1a1a2e);
}
.splash-subheading {
  font-size: 1.1rem;
  color: var(--color-muted, #6c757d);
  margin-bottom: 2rem;
}
.lang-buttons {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  flex-wrap: wrap;
}
.lang-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.5rem 2rem;
  border: 2px solid var(--color-border, #dee2e6);
  border-radius: 12px;
  background: white;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
  font-size: 1.1rem;
  font-weight: 500;
  min-width: 120px;
}
.lang-btn:hover {
  border-color: var(--color-accent, #e4003a);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.lang-btn img {
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}

/* ============================================================
   Phase 08.3: Guard dialog (D-04, D-05)
   ============================================================ */
.guard-dialog__overlay {
  position: fixed;
  inset: 0;
  background: rgba(17, 24, 39, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: var(--space-md, 1rem);
}
.guard-dialog__card {
  background: #fff;
  border-radius: var(--radius-lg, 12px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
  max-width: 480px;
  width: 100%;
  padding: var(--space-lg, 1.5rem);
}
.guard-dialog__title {
  font-size: var(--font-size-h3, 1.25rem);
  font-weight: 600;
  margin: 0 0 var(--space-sm, 0.5rem) 0;
}
.guard-dialog__body {
  color: var(--color-text, #1f2937);
  margin: 0 0 var(--space-lg, 1.5rem) 0;
  line-height: 1.5;
}
.guard-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-sm, 0.5rem);
}

/* Phase 08.4 — Edit-Banner: non-blocking hint above the Weiter button on dirty completed steps.
   Phase 08.4.2 (BUG-101): position:sticky an Viewport-Unterkante, voller Rand, kraeftigere Alpha
   damit der Banner auf langen Step-Panels (z.B. Step 2) nicht unter den Fold scrollt. */
.wizard-edit-banner {
  position: sticky;
  bottom: 0;
  z-index: 10;
  margin: var(--space-md, 1rem) auto 0;
  padding: var(--space-sm, 0.5rem) var(--space-md, 1rem);
  max-width: 60ch;
  background: rgba(228, 0, 58, 0.15);
  border: 2px solid var(--color-accent, #e4003a);
  border-radius: 4px;
  color: var(--color-text, #333);
  font-size: 0.9375rem;
  line-height: 1.4;
  text-align: left;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
}

