/* Loaded last so page themes cannot undo shared accessibility defaults. */
/* Covers all shared customer/admin layouts; print documents use separate styles. */
:is(.front-body, .admin-body) {
  --bs-secondary-color: #526174;
  --bs-secondary-color-rgb: 82, 97, 116;
}
.admin-body { --bs-link-color: #174e89; --bs-link-hover-color: #123c69; }
:is(.front-body, .admin-body) :is(button, summary, .page-link) {
  min-height: 44px;
  min-width: 44px;
}
:is(.front-body, .admin-body) summary { padding-block: 10px; }
:is(.front-body, .admin-body) :is(.form-control, .form-select) { min-height: 44px; }
:is(.front-body, .admin-body) :is(input, textarea)::placeholder { color: #626873; opacity: 1; }
:is(.front-body, .admin-body) :is(.text-muted, .text-secondary, .form-text) { color: #526174 !important; }
:is(.front-body, .admin-body) :is(.small, small, .form-text) { font-size: .875rem; line-height: 1.75; }
:is(.front-body, .admin-body) :is(h1, h2, h3, p, td, dd) { overflow-wrap: anywhere; }
:is(.front-body, .admin-body) :is(.form-label, legend) { line-height: 1.6; }
:is(.front-body, .admin-body) :is(.form-check, label:has(> input[type="checkbox"]), label:has(> input[type="radio"])) {
  min-height: 44px;
}
:is(.front-body, .admin-body) :is(.customer-nav, .content-tabs, .admin-inline-actions, .admin-form-actions, .account-order-filters) { gap: 8px; }
:is(.front-body, .admin-body) :is(.customer-nav a, .content-tabs a, .account-order-filters button, .admin-nav a, .admin-account-panel a, .admin-store-link, .backend-location a) {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding-block: 10px;
}
.front-body :is(.header-account a, .header-account summary, .ux-breadcrumb a, .front-job-card h2 a, .front-back-top, .studio-service-link) {
  min-height: 44px;
  min-width: 44px;
  display: inline-flex;
  align-items: center;
}
/* Specific studio themes have ID selectors, so generic rules alone do not win. */
.front-body #keychain { --kc-muted: #526174; --kc-accent: #5842b0; }
.front-body #keychain :is(button, summary, .kc-primary-link) { min-height: 44px; min-width: 44px; }
.front-body #keychain :is(.kc-note, .kc-card small, .kc-template strong, .kc-tone strong, .kc-tone small, #kc-count, .eyebrow, .kc-overline) {
  font-size: 14px;
  line-height: 1.75;
}
.front-body .art-toy-page { --toy-muted: #58556b; --toy-accent: #6535c5; }
.front-body .toy-studio-heading h1 span:first-child { color: #946400; }
.front-body .toy-studio-heading h1 span:last-child { color: #16705c; }
.front-body .art-toy-page :is(.toy-upload-hint, .toy-package-description, .toy-packages dl, .toy-package-number, .toy-package-price small, #toy-upload-help, .toy-pick, .toy-studio-heading p) {
  font-size: 14px;
  line-height: 1.8;
}
.front-body .art-toy-page .toy-packages dt { display: block; font-weight: 600; }
.front-body .art-toy-page .toy-reference > legend { display: block; float: none; width: auto; font-size: 18px; font-weight: 650; }
.front-body .art-toy-page .toy-photo-tips { display: block; font-size: 14px; line-height: 1.8; }
.front-body .art-toy-page :is(.toy-upload-badge, .toy-package-number, .toy-package-price strong) { color: #6535c5; }
.front-body .art-toy-page .toy-upload-trigger { min-height: 44px; }
.front-body :is(.calculator-tip, .calculator-notice, .calculator-footnote, .preview-help, .front-job-meta) {
  font-size: 14px;
  line-height: 1.8;
  color: #526174;
}
.admin-body :is(.metric-label, .metric-more, .reference-empty, .backend-location, .admin-nav-group-title, .admin-nav-search small, .admin-footer) {
  color: #526174;
  font-size: 14px;
  line-height: 1.75;
}
.admin-body :is(.card, .reference-panel) :is(h2, h3) { line-height: 1.6; }
.admin-body .table :is(th, td) { line-height: 1.7; vertical-align: middle; }
.admin-body :is(.recent-order time, .recent-total, .status-pill, .stock-note, .stock-badge, .sales-period, .sales-stat > span, .dashboard-review-link) {
  font-size: 14px; line-height: 1.75;
}
.admin-body .reference-stock-table { font-size: 14px; }
.admin-body :is(.quote-more, .quote-column-heading a, .reference-panel header a, .recent-order, .sales-summary > a, .dashboard-review-link, .reference-stock-table td a) {
  min-height: 44px; min-width: 44px; display: flex; align-items: center;
}
.admin-body .stock-badge { color: #9c3215; }
.admin-body :is(.stock-note, .sales-stat small) { color: #526174; }
.admin-body .admin-content a:where(:not(.btn, .reference-metric, .recent-order, .quote-card, [data-lightbox])) { color: #174e89; }
:is(.front-body, .admin-body) .text-danger { color: #ad2030 !important; }
:is(.front-body, .admin-body) .btn-outline-danger {
  --bs-btn-color: #ad2030; --bs-btn-border-color: #ad2030;
  --bs-btn-hover-bg: #ad2030; --bs-btn-hover-border-color: #ad2030;
  --bs-btn-active-bg: #ad2030; --bs-btn-active-border-color: #ad2030;
}
.admin-body .reference-panel header a { color: #b73508; }
.admin-body .quote-column-heading a { color: #334155; }
.admin-body .quote-column-heading span { background: #334155; color: #fff; }
.admin-body .tone-purple .quote-column-heading span { background: #6535c5; }
.admin-body .tone-blue .quote-column-heading span { background: #0867ad; }
.admin-body .tone-orange .quote-column-heading span { background: #b73508; }
.admin-body :is(.recent-customer small, .recent-order time, .quote-card small, .quote-card time) { color: #526174; }
.admin-body #product-option-editor :is(small, .option-panel-heading p, .option-workflow span) { color: #526174; }
.admin-body .sales-summary > a { color: #b73508; }
.admin-body .admin-content a:where(:not(.btn, .reference-metric, .recent-order, .quote-card, [data-lightbox])),
.admin-body .admin-sidebar-bottom a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding-block: 6px; }
.admin-body .admin-skip:focus { min-height: 44px; padding: 12px 20px; background: #fff; color: #101b33; z-index: 2000; }
.admin-body.pos-page :is(.pos-unit-price, .pos-selection, .pos-quantity-hint, .pos-help, .pos-optional) { font-size: 14px; line-height: 1.75; }
.front-body .content-story-body { white-space: pre-line; }
.front-body :is(.front-back, .front-help-note, .front-job-bottom p, .front-job-bottom small, .front-order-summary small, .front-payment-steps li, .journey-steps li) {
  color: #526174; font-size: 14px; line-height: 1.75;
}
.front-body .front-back { display: inline-flex; align-items: center; min-height: 44px; }
.front-body .front-status.completed { color: #176447; }
.front-body .front-status.cancelled { color: #59524d; }
.front-body .front-status.printing { color: #b73508; }
.front-body .front-amount > span { color: #526174; }
.front-body .journey-steps li[aria-current="step"] { background: #b73508; color: #fff; }
.front-body .calculator-dimensions .axis-x b { color: #b73508; }
.front-body .calculator-dimensions .axis-y b { color: #176447; }
.front-body .calculator-dimensions .axis-z b { color: #0867ad; }
.front-body .front-progress li:not(.current) > span { color: #526174; }
.front-body .front-progress li.done > span { color: #176447; }
.front-body .front-payment-steps li b { color: #b73508; }
.front-body :is(.product-price small, .product-detail-price small) { color: #526174; }
.front-body .product-price-panel > span { color: #526174; font-size: 14px; }
.admin-body .admin-content .btn-primary,
.admin-body .admin-sidebar nav a.active { background: #b73508; border-color: #b73508; color: #fff; }
.admin-body .admin-sidebar :is(.admin-nav-group-title, .admin-nav-search small) { color: #bac9df; }
.admin-body .admin-sidebar input::placeholder { color: #bac9df; }
.front-body .front-header .front-brand { min-height: 44px; display: inline-flex; align-items: center; }
.front-body .front-main :is(a:not([class]), .shop-product-title),
.front-body .content-story h1 + a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
.front-body[data-page="calculator"] .calculator-workspace { min-width: 0; }
.front-body[data-page="calculator"] :is(.calculator-preview, .calculator-sidebar, .calculator-settings) { min-width: 0; }
.front-body[data-page="calculator"] .viewer-tool { min-height: 44px; min-width: 44px; }
.front-body[data-page="calculator"] .calculator-material .color-choice {
  min-width: 44px; min-height: 44px; width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
}
.front-body[data-page="calculator"] .calculator-add { min-height: 44px; display: inline-flex; align-items: center; background: #b73508; }
@media (max-width: 767px) {
  .front-body[data-page="calculator"] .calculator-workspace { grid-template-columns: minmax(0, 1fr); }
  .front-body[data-page="calculator"] :is(.calculator-options, .calculator-material) { flex-wrap: wrap; }
  .front-body[data-page="calculator"] .calculator-options button { flex: 1 1 44px; }
  .front-body #keychain :is(input:not([type="checkbox"]):not([type="range"]), select, textarea),
  .front-body .calculator-page :is(input, select),
  :is(.front-body, .admin-body) :is(.form-control, .form-select) { font-size: 16px; }
  :is(.front-body, .admin-body) :is(.input-group, .admin-filter-actions, .toy-submit-actions) { flex-wrap: wrap; gap: 8px; }
  .front-body .toy-studio-steps { flex-wrap: wrap; gap: 12px; margin-inline: 0; }
  .front-body .toy-studio-steps a { white-space: normal; min-height: 44px; }
}
.front-body {
  --ux-primary: #b73508;
  --ux-muted: #59524d;
  --bs-link-color: #b73508;
  --bs-link-hover-color: #912a06;
}
/* White on #b73508 is 5.96:1; #59524d on #fffaf6 is 7.40:1. */
.front-body .btn-primary,
.front-body .reference-search button,
.front-body .studio-button.orange {
  color: #fff;
  background: #b73508 !important;
  border-color: #b73508 !important;
}
.front-body .btn-primary:hover,
.front-body .reference-search button:hover,
.front-body .studio-button.orange:hover {
  color: #fff;
  background: #912a06 !important;
  border-color: #912a06 !important;
}
.front-body .reference-section-heading > a,
.front-body .studio-product-price,
.front-body .reference-orange h2,
.front-body .reference-hero h1 em {
  color: #b73508;
}
.front-body .front-header-audit .audit-nav [aria-current],
.front-body .audit-menu-group[open] > summary { color: #b73508 !important; }
.front-body .front-header-audit .header-account-panel a[aria-current="page"] {
  background: #163b60 !important;
  color: #fff !important;
  font-weight: 700;
}
.front-body .front-header-audit .header-account-panel a[aria-current="page"] :is(span, small) {
  color: #fff !important;
}
.front-body .front-header-audit .header-account-panel a[aria-current="page"]:hover,
.front-body .front-header-audit .header-account-panel a[aria-current="page"]:focus-visible {
  background: #0d2d4c !important;
  color: #fff !important;
}
.front-body .reference-blue h2 { color: #0867ad; }
.front-body .reference-purple h2 { color: #6535c5; }
.front-body .reference-blue .reference-arrow { color: #0867ad; }
.front-body .reference-orange .reference-arrow { color: #b73508; }
.front-body #password-toggle { color: #59524d; }
.front-body .calculator-options small { color: #526174; }
.front-body .toy-studio-steps a { color: #58556b; }
.front-body .art-toy-page .toy-upload-badge { background: #eee7ff; color: #6535c5; }
.front-body .art-toy-page .toy-upload-card:first-child .toy-upload-badge { background: #6535c5; color: #fff; }
.front-body .art-toy-page :is(.toy-stepper button, .toy-quantity button) { color: #6535c5; }
.front-body .illustrated-service p,
.front-body .reference-service p,
.front-body .preview-help,
.front-body .studio-product-stock { color: #59524d; }

/* A 44px target also applies to compact and icon-only controls. */
:is(.front-body, .admin-body) :is(.btn, .studio-button, .viewer-tool, .page-link, .btn-close) {
  min-height: 44px;
  min-width: 44px;
}
:is(.front-body, .admin-body) .btn-close {
  box-sizing: border-box;
  background-size: 16px;
}
.front-body :is(.footer-social, .portfolio-carousel-controls button, .lightbox-close, .lightbox-prev, .lightbox-next) {
  min-width: 44px;
  min-height: 44px;
}
.front-body :is(.reference-section-heading > a, .content-back, .studio-product h3 a, .portfolio-project-copy h3 a) {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-block: 6px;
}
.front-body .studio-footer-grid a:not(.front-brand) {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
:is(.front-body, .admin-body) .form-check-label { min-height: 44px; padding-block: 10px; cursor: pointer; }
.review-star span { min-height: 44px; min-width: 44px; padding: 10px; text-align: center; }
.review-star input:focus-visible + span { outline: 3px solid #0867ad; outline-offset: 3px; }
:is(.front-body, .admin-body) :is(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #0867ad !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #fff;
}
.front-body .front-skip:focus { background: #fff; color: #09132d; z-index: 2000; padding: 12px 20px; }

/* Give product names, prices and availability their own readable hierarchy. */
.home-page .studio-products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.home-page .studio-product-copy { padding: 16px; gap: 8px; }
.front-body.home-page .studio-product h3 {
  display: block;
  overflow: visible;
  min-height: 0;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.65;
}
.home-page .studio-product-price { font-size: 18px; }
.home-page .studio-product-stock { font-size: 14px; line-height: 1.65; }
.home-page .portfolio-project-copy h3 { font-size: 16px; line-height: 1.65; }
.front-body .illustrated-service p { font-size: 14px; line-height: 1.85; }
.front-body .content-story-body { max-width: 65ch; margin-inline: auto; line-height: 1.9; }
.front-body .content-story-body a { text-decoration: underline; text-underline-offset: 3px; }
.front-body .reference-section-heading { flex-wrap: wrap; margin-bottom: 20px; }
@media (max-width: 767px) {
  .home-page .studio-products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .home-page .studio-product-copy { padding: 12px; }
  :is(.front-body, .admin-body) :is(.form-control, .form-select) { font-size: 16px; }
}
@media (max-width: 380px) {
  .home-page .studio-products { grid-template-columns: 1fr; }
  .front-body .illustrated-service-copy { max-width: 100%; }
  .front-body .illustrated-service-art { position: static; display: block; width: 100%; height: 120px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.front-body, .admin-body) *,
  :is(.front-body, .admin-body) *::before,
  :is(.front-body, .admin-body) *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
