/* AllPrint — Canonical Brand Shapes Stylesheet (/brand-shapes.css)
   Designer-finalized shape tokens: controls 12px, cards 20px, photo frames 28px, section transitions 48px.
   Preserves established palette, typography, circular logo, and truthful rectangular print preview. */

:root {
  --ap-radius-control: 12px;
  --ap-radius-card: 20px;
  --ap-radius-photo: 28px;
  --ap-radius-feature: 48px;
  --ap-radius-feature-sm: 28px;
  --ap-radius-asym: 48px 16px;
  --ap-radius-asym-sm: 28px 12px;
}

/* 1. Core invariants: preserve circular logo byte-for-byte and rectangular print proofs */
.sim-paper,
.sim-photo,
.photo-preview-canvas {
  border-radius: 0 !important;
}

.photo-preview-stage {
  border-radius: 4px;
}

/* 2. Interactive controls (12px, touch target >= 48px preserved) */
.btn,
body.review-build .btn,
.order-page .btn,
.button,
.filter-tab,
.nav-toggle,
.skip-link,
.skip,
.dialog-close-btn,
.qty-step-btn,
.btn-quick-qty,
.batch-picker input::file-selector-button,
.photo-remove,
body.review-build .btn-remove,
.sidebar nav button,
.order-page .help-link {
  border-radius: var(--ap-radius-control, 12px);
}

.radio-card-body,
.radio-tile-body {
  border-radius: var(--ap-radius-control, 12px);
}

.qty-input-field,
body.review-build select,
body.review-build input[type="text"],
body.review-build input[type="email"],
body.review-build input[type="number"],
body.review-build textarea,
.photo-row select,
.photo-row input:not([type="radio"]):not([type="checkbox"]),
.workspace-main select,
.workspace-main textarea,
.workspace-main input:not([type="radio"]):not([type="checkbox"]),
.access-card input:not([type="radio"]):not([type="checkbox"]),
.defaults select,
.defaults input:not([type="radio"]):not([type="checkbox"]) {
  border-radius: var(--ap-radius-control, 12px);
}

.photo-card select,
.photo-card input:not([type="radio"]):not([type="checkbox"]) {
  border-radius: var(--ap-radius-control, 12px);
}

/* 3. Cards, panels, and surfaces (20px) */
.product-card,
.step-card,
.faq-item,
.selection-dialog,
.simulation-panel,
body.review-build .card,
.batch-picker,
.order-page .card,
.order-page .access-card,
.access-card,
.panel,
fieldset.panel,
.stats article,
.dropzone {
  border-radius: var(--ap-radius-card, 20px);
}

.hero-path,
body.review-build .line-row,
body.review-build .alert-box,
.print-settings-details,
.device-progress-details,
.notes-details,
.submission-status,
body.review-build .readiness-item,
.order-page .staff-review-note,
.order-page .approval-notice,
.order-page .page-error,
.notice {
  border-radius: var(--ap-radius-control, 12px);
}

.dialog-sample-box,
.dialog-fieldset,
.review-card,
body.review-build .form-fieldset,
.photo-card {
  border-radius: 16px;
}

/* 4. Purposeful rounded photo framing (28px) */
.hero-img,
.story-img {
  border-radius: var(--ap-radius-photo, 28px);
}

.photo-thumb {
  border-radius: 8px;
}

/* 5. Architectural section transitions and deliberate asymmetric accents */
.values-section,
.faqs-section,
#our-story {
  border-top: 1px solid var(--color-border);
  border-top-left-radius: var(--ap-radius-feature, 48px);
  border-top-right-radius: var(--ap-radius-feature, 48px);
  margin-top: -1px;
}

.preview-notice-box,
body.review-build .readiness-card {
  border-radius: var(--ap-radius-asym, 48px 16px);
}

/* 6. Shared contact widget (panel 20px, options 12px, desktop launcher 12px) */
.ap-contact-panel {
  border-radius: var(--ap-radius-card, 20px);
}

.ap-contact-launcher,
.ap-contact-messenger,
.ap-contact-option,
.ap-contact-inline-chat {
  border-radius: var(--ap-radius-control, 12px);
}

/* 7. Fine rules & table ledgers remain strictly rectangular */
.order-page .quote-items-wrapper table,
.order-page .quote-items-wrapper th,
.order-page .quote-items-wrapper td,
.table-wrap table,
.table-wrap th,
.table-wrap td,
.order-page .details-list,
.payment-details,
.review-list {
  border-radius: 0;
}

/* 8. Responsive tuning across breakpoints */
@media (max-width: 768px) {
  :root {
    --ap-radius-feature: 28px;
    --ap-radius-asym: 28px 12px;
  }
  .values-section,
  .faqs-section,
  #our-story {
    border-top-left-radius: var(--ap-radius-feature, 28px);
    border-top-right-radius: var(--ap-radius-feature, 28px);
  }
  .preview-notice-box,
  body.review-build .readiness-card {
    border-radius: var(--ap-radius-asym, 28px 12px);
  }
  .hero-img,
  .story-img {
    border-radius: var(--ap-radius-photo, 20px);
  }
}

@media (max-width: 600px) {
  /* Strictly preserve mobile 56px circular chat launcher geometry */
  .ap-contact-launcher {
    border-radius: 50% !important;
  }
}
