.atpc {
  --navy: #071b43;
  --navy2: #102d63;
  --teal: #078fa5;
  --violet: #6b3ab6;
  --paper: #f7f4ed;
  --ink: #172238;
  --muted: #68717e;
  --line: #d9dbe2;
  max-width: 1440px;
  margin: 32px auto;
  color: var(--ink);
  font-family:
    Inter,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
}
.atpc * {
  box-sizing: border-box;
}
.atpc button,
.atpc input,
.atpc select {
  font: inherit;
}
.atpc button {
  cursor: pointer;
}
.atpc-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: end;
  padding: 54px clamp(24px, 5vw, 74px);
  color: #fff;
  background:
    radial-gradient(circle at 88% 0, #6b3ab688, transparent 33%),
    radial-gradient(circle at 60% 120%, #078fa566, transparent 34%),
    linear-gradient(125deg, var(--navy), var(--navy2));
  border-bottom: 5px solid var(--teal);
}
.atpc-hero:after {
  content: "";
  position: absolute;
  right: 5%;
  top: -110px;
  width: 310px;
  height: 310px;
  border: 1px solid #66dce94d;
  border-radius: 50%;
  box-shadow:
    0 0 0 42px #ffffff05,
    0 0 0 84px #6b3ab614;
}
.atpc-hero > div {
  position: relative;
  z-index: 1;
}
.atpc-kicker {
  color: #75e1ea;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
}
.atpc-hero h2 {
  max-width: 760px;
  margin: 10px 0;
  color: #fff;
  font:
    600 clamp(38px, 5vw, 67px) / 1.02 Georgia,
    serif;
}
.atpc-hero p {
  max-width: 750px;
  margin: 0;
  color: #d7e4e2;
  font:
    16px/1.6 Georgia,
    serif;
}
.atpc-steps {
  display: flex;
  gap: 8px;
  white-space: nowrap;
}
.atpc-steps span {
  padding: 8px 10px;
  border: 1px solid #ffffff38;
  border-radius: 20px;
  color: #a9b8c8;
  font-size: 10px;
  font-weight: 800;
}
.atpc-steps span.active {
  color: #fff;
  border-color: #38c5d1;
  background: #078fa555;
}
.atpc-section {
  padding: 44px clamp(20px, 4vw, 62px);
  border: 1px solid var(--line);
  border-top: 0;
  background: var(--paper);
}

:root {
  --atpc-workflow-scroll-offset: 118px;
}

.atpc [data-wizard-step],
.atpc .atpc-section-head,
.atpc [data-product-setup] {
  scroll-margin-top: var(--atpc-workflow-scroll-offset);
}

.atpc-section-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
  margin-bottom: 22px;
}
.atpc-section-head span {
  color: var(--violet);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.14em;
}
.atpc-section-head h3 {
  margin: 4px 0 0;
  color: var(--navy);
  font:
    600 clamp(27px, 3vw, 39px) Georgia,
    serif;
}
.atpc-rights-pill {
  padding: 9px 13px;
  border: 1px solid #b4dcd7;
  border-radius: 20px;
  color: #176759;
  background: #ecf7f4;
  font-size: 10px;
  font-weight: 800;
}
.atpc-search {
  display: grid;
  grid-template-columns: 1fr auto;
  padding: 6px;
  border: 1px solid #cdd2dc;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 12px 35px #071b4311;
}
.atpc-search input {
  min-width: 0;
  padding: 14px 16px;
  border: 0;
  background: #fff;
  color: var(--ink);
  font-size: 14px;
}
.atpc-search input:focus {
  outline: 0;
}
.atpc-search button,
.atpc-order button {
  padding: 13px 20px;
  border: 0;
  border-radius: 4px;
  color: #fff;
  background: linear-gradient(135deg, var(--teal), var(--violet));
  font-size: 11px;
  font-weight: 900;
}
.atpc-filterbar {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 12px;
  align-items: end;
  margin: 16px 0;
}
.atpc-filterbar label {
  color: #586476;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.atpc-filterbar select {
  display: block;
  width: 100%;
  min-width: 170px;
  margin-top: 5px;
  padding: 9px;
  border: 1px solid #ccd0d8;
  border-radius: 4px;
  color: var(--ink);
  background: #fff;
  text-transform: none;
}
.atpc-page {
  display: flex;
  align-items: center;
  gap: 8px;
}
.atpc-page button {
  padding: 10px;
  border: 1px solid #bec5d0;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  font-size: 10px;
  font-weight: 800;
}
.atpc-page strong {
  padding: 0 5px;
  font-size: 10px;
}
.atpc-status {
  margin: 12px 0;
  padding: 11px 14px;
  border-left: 4px solid var(--teal);
  color: #385160;
  background: #eaf5f3;
  font-size: 11px;
}
.atpc-status.error {
  border-color: #b73f52;
  background: #fae9ec;
}
.atpc-results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.atpc-art-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: 3px solid var(--violet);
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 9px 26px #071b430d;
}
.atpc-art-card.selected {
  outline: 3px solid #6b3ab642;
  border-color: var(--violet);
}
.atpc-art-image {
  position: relative;
  height: 265px;
  overflow: hidden;
  background: #e7e5df;
}
.atpc-art-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.atpc-art-image > span {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 6px 8px;
  border-radius: 3px;
  color: #fff;
  background: #071b43e8;
  font-size: 9px;
  font-weight: 800;
}
.atpc-art-copy {
  padding: 18px;
}
.atpc-art-copy > small {
  color: var(--teal);
  font-size: 9px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.atpc-art-copy h4 {
  min-height: 48px;
  margin: 7px 0;
  color: var(--navy);
  font:
    600 21px/1.1 Georgia,
    serif;
}
.atpc-art-copy > p {
  min-height: 34px;
  margin: 0;
  color: var(--muted);
  font:
    italic 12px/1.45 Georgia,
    serif;
}
.atpc-proof {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 13px 0;
  padding: 10px 0;
  border-top: 1px solid #e8e6e1;
}
.atpc-proof > b {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  flex: none;
  border-radius: 50%;
  color: #fff;
  background: var(--teal);
  font-size: 11px;
}
.atpc-proof span,
.atpc-proof strong,
.atpc-proof small {
  display: block;
}
.atpc-proof strong {
  font-size: 9px;
}
.atpc-proof small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 8px;
}
.atpc-art-copy button {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--violet);
  border-radius: 4px;
  color: #fff;
  background: var(--violet);
  font-size: 10px;
  font-weight: 850;
}
.atpc-art-card.selected button {
  background: linear-gradient(135deg, var(--navy), var(--violet));
}
.atpc-loader,
.atpc-empty {
  grid-column: 1/-1;
  padding: 45px;
  border: 1px dashed #bfc5ce;
  text-align: center;
  background: #fff;
}
.atpc-loader i {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 4px;
  border-radius: 50%;
  background: var(--teal);
  animation: atpc-pulse 0.9s infinite alternate;
}
.atpc-loader i:nth-child(2) {
  animation-delay: 0.2s;
}
.atpc-loader i:nth-child(3) {
  animation-delay: 0.4s;
}
@keyframes atpc-pulse {
  to {
    opacity: 0.25;
    transform: translateY(-7px);
  }
}
.atpc-product-step {
  background: #fff;
}
.atpc-products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.atpc-product {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 13px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--ink);
  background: #fff;
  text-align: left;
}
.atpc-product {
  cursor: pointer;
}
.atpc-product:hover,
.atpc-product:focus-visible,
.atpc-product.selected {
  border-color: var(--teal);
  box-shadow: 0 6px 20px #078fa51c;
}
.atpc-product:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 2px;
}
.atpc-product.selected {
  outline: 2px solid #078fa533;
  background: #edf8f6;
}
.atpc-product img {
  width: 82px;
  height: 72px;
  object-fit: cover;
  border-radius: 3px;
}
.atpc-product span,
.atpc-product strong,
.atpc-product small {
  display: block;
}
.atpc-product strong {
  color: var(--navy);
  font:
    600 15px Georgia,
    serif;
}
.atpc-product small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 9px;
}
.atpc-preview-step {
  background: linear-gradient(135deg, #f4f8f7, var(--paper));
}
.atpc-resolution {
  padding: 10px 14px;
  border: 1px solid #c7d9dd;
  border-radius: 4px;
  color: #526574;
  background: #fff;
  font-size: 10px;
}
.atpc-studio {
  display: grid;
  grid-template-columns: minmax(350px, 1.35fr) minmax(280px, 0.65fr);
  gap: 26px;
}
.atpc-stage {
  min-height: 520px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid #d4d7de;
  background: radial-gradient(
    circle at center,
    #fff 0,
    #f1f0ed 55%,
    #e4e4e2 100%
  );
  box-shadow: inset 0 0 45px #071b430e;
}
.atpc-mockup {
  position: relative;
  width: 360px;
  height: 390px;
  filter: drop-shadow(0 22px 18px #071b4330);
}
.atpc-print-area {
  position: absolute;
  overflow: hidden;
  background: #d8d9dc;
}
.atpc-print-area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center;
  transition: transform 0.08s linear;
}
.atpc-product-label {
  position: absolute;
  left: 50%;
  bottom: -30px;
  transform: translateX(-50%);
  color: var(--navy);
  font:
    600 14px Georgia,
    serif;
  white-space: nowrap;
}
.atpc-mockup.flat .atpc-print-area,
.atpc-mockup.canvas .atpc-print-area {
  inset: 25px;
  border: 11px solid #26303b;
  box-shadow: inset 0 0 0 3px #b89a62;
}
.atpc-mockup.tumbler {
  width: 300px;
  height: 380px;
}
.atpc-mockup.tumbler:after {
  content: "";
  position: absolute;
  left: 80px;
  top: 28px;
  width: 140px;
  height: 290px;
  border-radius: 18px 18px 34px 34px;
  background: var(--shirt-color, #f4f4f5);
  box-shadow:
    inset 15px 0 24px #0004,
    inset -15px 0 24px #fff5;
  z-index: 0;
}
.atpc-mockup.tumbler .atpc-print-area {
  left: 80px;
  top: 112px;
  width: 140px;
  height: 123px;
  border-radius: 7px 7px 12px 12px;
  background: transparent;
  box-shadow: none;
  z-index: 1;
}
.atpc-mockup.tumbler:before {
  content: "";
  position: absolute;
  left: 77px;
  top: 15px;
  width: 146px;
  height: 31px;
  border-radius: 50%;
  background: #202a38;
  z-index: 2;
}
.atpc-mockup.tumbler .atpc-product-label {
  bottom: 0;
}
.atpc-mockup.mug .atpc-print-area {
  left: 58px;
  top: 70px;
  width: 230px;
  height: 220px;
  border-radius: 12px 12px 25px 25px;
  box-shadow:
    inset 22px 0 30px #0004,
    inset -22px 0 30px #fff7;
}
.atpc-mockup.mug:after {
  content: "";
  position: absolute;
  right: 16px;
  top: 112px;
  width: 92px;
  height: 125px;
  border: 22px solid #e8e8e8;
  border-left: 0;
  border-radius: 0 55px 55px 0;
}
.atpc-mockup.shirt:before {
  content: "";
  position: absolute;
  inset: 15px;
  background: #f4f4f5;
  clip-path: polygon(
    25% 4%,
    39% 0,
    44% 10%,
    56% 10%,
    61% 0,
    75% 4%,
    100% 22%,
    82% 43%,
    74% 34%,
    76% 100%,
    24% 100%,
    26% 34%,
    18% 43%,
    0 22%
  );
}
.atpc-mockup.shirt .atpc-print-area {
  left: 107px;
  top: 112px;
  width: 146px;
  height: 185px;
}
.atpc-mockup.tote:before {
  content: "";
  position: absolute;
  left: 55px;
  top: 90px;
  width: 250px;
  height: 270px;
  background: #eee8db;
  clip-path: polygon(8% 0, 92% 0, 100% 100%, 0 100%);
}
.atpc-mockup.tote:after {
  content: "";
  position: absolute;
  left: 115px;
  top: 22px;
  width: 130px;
  height: 120px;
  border: 22px solid #d7cdb9;
  border-bottom: 0;
  border-radius: 70px 70px 0 0;
}
.atpc-mockup.tote .atpc-print-area {
  left: 100px;
  top: 135px;
  width: 160px;
  height: 170px;
  z-index: 2;
}
.atpc-controls {
  padding: 24px;
  border: 1px solid var(--line);
  background: #fff;
}
.atpc-selection {
  padding-bottom: 17px;
  border-bottom: 1px solid #e5e6ea;
}
.atpc-selection strong,
.atpc-selection small {
  display: block;
}
.atpc-selection strong {
  color: var(--navy);
  font:
    600 19px Georgia,
    serif;
}
.atpc-selection small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 10px;
}
.atpc-controls label {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px;
  margin-top: 19px;
  color: #526070;
  font-size: 9px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.atpc-controls input {
  grid-column: 1/-1;
  width: 100%;
  accent-color: var(--violet);
}
.atpc-controls output {
  color: var(--violet);
}
.atpc-reset {
  width: 100%;
  margin-top: 18px;
  padding: 9px;
  border: 1px solid var(--teal);
  border-radius: 4px;
  color: var(--teal);
  background: #fff;
  font-size: 9px;
  font-weight: 850;
}
.atpc-license-box {
  display: grid;
  gap: 4px;
  margin-top: 20px;
  padding: 13px;
  border-left: 4px solid var(--teal);
  color: #425565;
  background: #edf7f5;
  font-size: 9px;
}
.atpc-license-box strong {
  color: #176759;
}
.atpc-license-box a {
  color: var(--violet);
  font-weight: 800;
}
.atpc-order {
  display: flex;
  justify-content: flex-end;
  align-items: end;
  gap: 12px;
  margin-top: 18px;
}
.atpc-order label {
  color: #596478;
  font-size: 9px;
  font-weight: 850;
  text-transform: uppercase;
}
.atpc-order input[type="number"] {
  display: block;
  width: 80px;
  margin-top: 5px;
  padding: 11px;
  border: 1px solid #c5cad2;
  border-radius: 4px;
}
.atpc-order button {
  min-width: 220px;
}
.atpc-order button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.atpc-disclaimer {
  padding: 14px 22px;
  border: 1px solid var(--line);
  border-top: 0;
  color: #68717e;
  background: #fff;
  font-size: 9px;
  text-align: center;
}
.atpc-source-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 0 0 20px;
}
.atpc-source-tabs button {
  display: grid;
  gap: 4px;
  padding: 15px;
  border: 1px solid #cdd3dc;
  border-radius: 6px;
  color: var(--navy);
  background: #fff;
  text-align: left;
  font-size: 12px;
  font-weight: 900;
}
.atpc-source-tabs button small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 600;
}
.atpc-source-tabs button.active {
  color: #fff;
  border-color: var(--violet);
  background: linear-gradient(135deg, var(--navy), var(--violet));
  box-shadow: 0 8px 22px #6b3ab62b;
}
.atpc-source-tabs button.active small {
  color: #dce6ec;
}
.atpc-source-panel {
  display: none;
}
.atpc-source-panel.active {
  display: block;
}
.atpc-design-intro {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 14px;
  padding: 12px 15px;
  border-left: 4px solid var(--violet);
  color: #526070;
  background: #f2edf8;
  font-size: 10px;
}
.atpc-design-intro strong {
  color: var(--navy);
}
.atpc-design-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.atpc-upload-box {
  display: grid;
  grid-template-columns: 55px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 25px;
  border: 2px dashed #9bcbd0;
  border-radius: 8px;
  background: linear-gradient(135deg, #eff9f7, #f5f0fa);
}
.atpc-upload-icon {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, var(--teal), var(--violet));
  font-size: 25px;
  font-weight: 900;
}
.atpc-upload-box strong,
.atpc-upload-box span {
  display: block;
}
.atpc-upload-box strong {
  color: var(--navy);
  font:
    600 20px Georgia,
    serif;
}
.atpc-upload-box span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
}
.atpc-upload-button {
  padding: 11px 16px;
  border-radius: 4px;
  color: #fff;
  background: var(--violet);
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
}
.atpc-upload-button input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.atpc-upload-details {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 20px;
  align-items: center;
  margin-top: 15px;
  padding: 18px;
  border: 1px solid var(--line);
  background: #fff;
}
.atpc-upload-preview {
  height: 145px;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #79828c;
  background: #ecebe7;
  font-size: 9px;
}
.atpc-upload-preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.atpc-upload-preview img:not([src]) {
  display: none;
}
.atpc-upload-name {
  display: block;
  color: var(--navy);
  font:
    600 18px Georgia,
    serif;
}
.atpc-upload-quality {
  margin: 5px 0 14px;
  color: var(--muted);
  font-size: 10px;
}
.atpc-attestation {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  color: #465568;
  font-size: 10px;
  line-height: 1.5;
}
.atpc-attestation input {
  flex: none;
  margin-top: 2px;
  accent-color: var(--violet);
}
@media (max-width: 980px) {
  .atpc-results,
  .atpc-products,
  .atpc-design-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .atpc-studio {
    grid-template-columns: 1fr;
  }
  .atpc-steps {
    display: none;
  }
}
@media (max-width: 680px) {
  .atpc {
    margin: 10px;
  }
  .atpc-hero {
    grid-template-columns: 1fr;
    padding: 35px 22px;
  }
  .atpc-section {
    padding: 30px 16px;
  }
  .atpc-section-head {
    display: block;
  }
  .atpc-rights-pill,
  .atpc-resolution {
    display: inline-block;
    margin-top: 12px;
  }
  .atpc-source-tabs {
    grid-template-columns: 1fr;
  }
  .atpc-search {
    grid-template-columns: 1fr;
  }
  .atpc-filterbar {
    grid-template-columns: 1fr;
  }
  .atpc-results,
  .atpc-products,
  .atpc-design-grid {
    grid-template-columns: 1fr;
  }
  .atpc-upload-box,
  .atpc-upload-details {
    grid-template-columns: 1fr;
  }
  .atpc-upload-button {
    text-align: center;
  }
  .atpc-stage {
    min-height: 440px;
  }
  .atpc-mockup {
    transform: scale(0.78);
  }
  .atpc-order {
    display: grid;
    grid-template-columns: 90px 1fr;
  }
  .atpc-order button {
    min-width: 0;
  }
  .atpc-art-copy h4 {
    min-height: 0;
  }
}

.atpc-test-mode-banner {
  display: flex;
  justify-content: center;
  gap: 12px;
  padding: 10px 18px;
  color: #fff;
  background: #7a4b00;
  font-size: 12px;
  letter-spacing: 0.02em;
}
.atpc-test-mode-banner strong {
  letter-spacing: 0.1em;
}
.atpc-native-customer {
  margin-top: 18px;
  padding: 20px;
  border: 1px solid #cddfe2;
  border-top: 4px solid var(--teal);
  border-radius: 6px;
  background: #f4fafb;
}
.atpc-native-customer h4,
.atpc-native-customer p {
  margin: 0 0 8px;
}
.atpc-native-customer > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}
.atpc-native-customer label {
  display: grid;
  gap: 5px;
  color: var(--navy);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}
.atpc-native-customer label.wide {
  grid-column: 1 / -1;
}
.atpc-native-customer input,
.atpc-native-customer textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid #bccbd0;
  border-radius: 4px;
  color: var(--ink);
  background: #fff;
  font-size: 14px;
  font-weight: 500;
  text-transform: none;
}
.atpc-live-total {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 24px;
  align-items: center;
  margin: 24px 0 0;
  padding: 18px 22px;
  border: 1px solid #d7dee5;
  border-left: 5px solid var(--violet);
  color: var(--navy);
  background: #f7f4fc;
}
.atpc-live-total > span {
  font-weight: 800;
}
.atpc-live-total > strong {
  grid-row: span 2;
  font: 600 26px Georgia, serif;
}
.atpc-live-total > small {
  color: #5e6876;
}
.atpc-confirmation {
  min-height: 70vh;
  padding: 60px 20px;
  color: #172238;
  background: #f3f6f7;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.atpc-confirmation section {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(24px, 5vw, 50px);
  border: 1px solid #d7dee5;
  border-top: 6px solid #078fa5;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 20px 55px #071b431a;
}
.atpc-confirmation section > span {
  color: #8a4f00;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
}
.atpc-confirmation h1 {
  margin: 10px 0;
  color: #071b43;
  font: 600 clamp(34px, 6vw, 52px) Georgia, serif;
}
.atpc-confirmation dl {
  margin: 28px 0;
  border-top: 1px solid #e0e5e9;
}
.atpc-confirmation dl div {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 20px;
  padding: 12px 0;
  border-bottom: 1px solid #e0e5e9;
}
.atpc-confirmation dt {
  font-weight: 800;
}
.atpc-confirmation dd {
  margin: 0;
}
.atpc-confirmation img {
  display: block;
  max-width: 420px;
  width: 100%;
  margin: 24px auto;
  border: 1px solid #d7dee5;
}
.atpc-confirmation a {
  color: #078fa5;
  font-weight: 800;
}
@media (max-width: 680px) {
  .atpc-test-mode-banner,
  .atpc-native-customer > div,
  .atpc-live-total {
    display: grid;
    grid-template-columns: 1fr;
  }
  .atpc-live-total > strong {
    grid-row: auto;
  }
}

/* Optional customer typography with proof and production-review metadata. */
.atpc .atpc-text-layer {
  position: absolute;
  z-index: 5;
  left: 50%;
  top: 50%;
  max-width: 96%;
  transform: translate(-50%, -50%);
  cursor: move;
  touch-action: none;
  white-space: nowrap;
  text-align: center;
  text-shadow: 0 1px 1px #fff8;
  outline: 1px dashed transparent;
  line-height: 1.05;
}
.atpc .atpc-text-layer:hover,
.atpc .atpc-text-layer:focus {
  outline-color: var(--teal);
}
.atpc .atpc-text-layer[hidden] {
  display: none !important;
}
.atpc .atpc-proof-text-layer {
  cursor: default;
  pointer-events: none;
}
.atpc .atpc-text-controls {
  margin-top: 20px;
  padding: 15px;
  border: 1px solid #d5d9e5;
  border-top: 4px solid var(--violet);
  border-radius: 7px;
  background: linear-gradient(145deg, #fff, #f7f3fb);
}
.atpc .atpc-text-heading {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}
.atpc .atpc-text-heading strong {
  color: var(--navy);
  font:
    600 15px Georgia,
    serif;
}
.atpc .atpc-text-heading span {
  color: var(--violet);
  font-size: 7px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.atpc .atpc-text-controls label {
  display: block;
  margin-top: 12px;
}
.atpc .atpc-text-controls input[type="text"],
.atpc .atpc-text-controls input[type="number"],
.atpc .atpc-text-controls select {
  width: 100%;
  margin-top: 5px;
  padding: 9px;
  border: 1px solid #c5cad4;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  text-transform: none;
}
.atpc .atpc-text-controls input[type="color"] {
  display: block;
  width: 100%;
  height: 39px;
  margin-top: 5px;
  padding: 3px;
  border: 1px solid #c5cad4;
  border-radius: 4px;
  background: #fff;
}
.atpc .atpc-text-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
}
.atpc .atpc-text-grid label span {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 5px;
}
.atpc .atpc-text-grid label span input {
  margin-top: 0;
}
.atpc .atpc-text-position {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.atpc .atpc-text-controls button {
  width: 100%;
  margin-top: 12px;
  padding: 8px;
  border: 1px solid var(--teal);
  border-radius: 4px;
  color: var(--teal);
  background: #fff;
  font-size: 8px;
  font-weight: 900;
}
.atpc .atpc-text-controls p {
  margin: 11px 0 0;
  padding: 9px;
  border-left: 3px solid var(--teal);
  color: #5b6875;
  background: #edf7f5;
  font-size: 8px;
  line-height: 1.45;
}
@media (max-width: 680px) {
  .atpc .atpc-text-grid,
  .atpc .atpc-text-position {
    grid-template-columns: 1fr;
  }
  .atpc .atpc-text-heading {
    display: block;
  }
  .atpc .atpc-text-heading span {
    display: block;
    margin-top: 4px;
  }
}

/* Search progress and pagination emphasis. */
.atpc .atpc-results,
.atpc .atpc-filterbar,
.atpc .atpc-page-bottom {
  transition:
    opacity 0.2s ease,
    filter 0.2s ease;
}
.atpc.atpc-searching .atpc-results,
.atpc.atpc-searching .atpc-filterbar,
.atpc.atpc-searching .atpc-page-bottom {
  opacity: 0.38;
  filter: grayscale(0.65);
  pointer-events: none;
}
.atpc.atpc-searching .atpc-search {
  border-color: var(--teal);
  box-shadow:
    0 0 0 3px #1f8f8630,
    0 12px 35px #071b4311;
}
.atpc .atpc-search button:disabled {
  cursor: wait;
  background: linear-gradient(135deg, #557678, #725f8d);
  opacity: 0.9;
}
.atpc .atpc-loader strong {
  display: block;
  margin-top: 13px;
  color: var(--navy);
  font:
    600 16px Georgia,
    serif;
}
.atpc .atpc-page {
  gap: 10px;
  padding: 7px;
  border: 1px solid #b9c2d0;
  border-radius: 8px;
  background: #f5f7fb;
  box-shadow: 0 5px 16px #071b4312;
}
.atpc .atpc-page button {
  min-width: 92px;
  padding: 11px 14px;
  border-color: var(--violet);
  color: #fff;
  background: linear-gradient(135deg, var(--navy), var(--violet));
  font-size: 11px;
  box-shadow: 0 3px 8px #071b4320;
}
.atpc .atpc-page button:disabled {
  cursor: not-allowed;
  color: #8993a2;
  border-color: #d2d7df;
  background: #e4e7ec;
  box-shadow: none;
}
.atpc .atpc-page strong {
  min-width: 64px;
  color: var(--navy);
  font-size: 11px;
  text-align: center;
}
.atpc .atpc-page-bottom {
  justify-content: center;
  width: max-content;
  max-width: 100%;
  margin: 26px auto 0;
}
.atpc .atpc-wizard-step[hidden] {
  display: none !important;
}
.atpc .atpc-wizard-step.active {
  animation: atpc-step-in 0.24s ease-out;
}
.atpc .atpc-wizard-nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.atpc .atpc-wizard-nav > span {
  margin-right: auto;
  color: var(--muted);
  font-size: 10px;
}
.atpc .atpc-wizard-nav button {
  min-width: 185px;
  padding: 13px 19px;
  border: 1px solid var(--violet);
  border-radius: 5px;
  color: #fff;
  background: linear-gradient(135deg, var(--teal), var(--violet));
  font-size: 11px;
  font-weight: 900;
  box-shadow: 0 5px 14px #071b4320;
}
.atpc .atpc-wizard-nav button.secondary {
  color: var(--navy);
  border-color: #aeb8c7;
  background: #fff;
  box-shadow: none;
}
.atpc .atpc-wizard-nav button:disabled {
  cursor: not-allowed;
  color: #8b95a3;
  border-color: #d1d6de;
  background: #e4e7ec;
  box-shadow: none;
}
.atpc .atpc-preview-nav {
  justify-content: flex-start;
}
.atpc .atpc-preview-nav > span {
  margin: 0;
}
@keyframes atpc-step-in {
  from {
    opacity: 0.25;
    transform: translateY(7px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (max-width: 680px) {
  .atpc .atpc-page {
    justify-content: space-between;
  }
  .atpc .atpc-page button {
    min-width: 0;
    flex: 1;
  }
}
@media (max-width: 680px) {
  .atpc .atpc-wizard-nav {
    display: grid;
    grid-template-columns: 1fr;
  }
  .atpc .atpc-wizard-nav > span {
    order: -1;
    margin: 0;
  }
  .atpc .atpc-wizard-nav button {
    width: 100%;
    min-width: 0;
  }
  .atpc .atpc-page-bottom {
    width: 100%;
  }
}

/* ArtToProduct master-logo and live product showcase hero. */
.atpc .atpc-hero {
  isolation: isolate;
  grid-template-columns: minmax(360px, 0.95fr) minmax(430px, 1.05fr);
  align-items: center;
  gap: 38px;
  padding: 38px clamp(24px, 4vw, 58px);
  color: var(--ink);
  border-bottom: 5px solid var(--teal);
  background: linear-gradient(118deg, #fff 0, #fbfaf6 48%, #f1edf8 100%);
}
.atpc .atpc-hero:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: -90px;
  bottom: -150px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    #078fa526 0,
    #078fa50a 48%,
    transparent 70%
  );
}
.atpc .atpc-hero:after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -80px;
  top: -145px;
  width: 360px;
  height: 360px;
  border: 1px solid #6b3ab62b;
  border-radius: 50%;
  background: radial-gradient(circle, #6b3ab61d, transparent 67%);
  box-shadow:
    0 0 0 45px #078fa508,
    0 0 0 90px #6b3ab607;
}
.atpc .atpc-hero-brand {
  padding: 20px;
  border: 1px solid #dcdfe7;
  border-radius: 12px;
  background: #ffffffeb;
  box-shadow: 0 18px 48px #071b4312;
}
.atpc .atpc-master-logo {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 7px;
  background: #fff;
}
.atpc .atpc-hero p {
  max-width: 630px;
  margin: 14px 9px 17px;
  color: #46566d;
  font:
    14px/1.55 Georgia,
    serif;
}
.atpc .atpc-steps {
  display: flex;
  margin: 0 8px;
  flex-wrap: wrap;
}
.atpc .atpc-steps span {
  color: #657188;
  border-color: #c9cfda;
  background: #fff;
}
.atpc .atpc-steps span.active {
  color: #fff;
  border-color: var(--teal);
  background: linear-gradient(135deg, var(--teal), var(--violet));
}
.atpc .atpc-hero-showcase {
  position: relative;
  padding: 22px 20px 25px;
  border: 1px solid #d8d7e2;
  border-radius: 16px;
  background: linear-gradient(145deg, #f7fbfa, #eee8f7);
  box-shadow: 0 20px 55px #071b4318;
}
.atpc .atpc-hero-showcase:before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid #ffffffc7;
  border-radius: 11px;
  pointer-events: none;
}
.atpc .atpc-showcase-heading {
  position: relative;
  z-index: 2;
  text-align: center;
}
.atpc .atpc-showcase-heading span,
.atpc .atpc-showcase-heading strong {
  display: block;
}
.atpc .atpc-showcase-heading span {
  color: var(--teal);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.14em;
}
.atpc .atpc-showcase-heading strong {
  margin-top: 5px;
  color: var(--navy);
  font:
    600 18px/1.2 Georgia,
    serif;
}
.atpc .atpc-showcase-products {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
  margin-top: 17px;
  padding: 5px;
}
.atpc .atpc-showcase-card {
  overflow: hidden;
  border: 5px solid #fff;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 25px #071b4325;
  transform: rotate(-2deg);
  transition: transform 0.2s ease;
}
.atpc .atpc-showcase-card:nth-child(2) {
  z-index: 2;
  transform: translateY(-9px) scale(1.04);
}
.atpc .atpc-showcase-card:nth-child(3) {
  transform: rotate(2deg);
}
.atpc .atpc-showcase-card:hover {
  z-index: 3;
  transform: translateY(-8px) scale(1.04);
}
.atpc .atpc-showcase-card img {
  display: block;
  width: 100%;
  height: 145px;
  object-fit: cover;
  border-radius: 5px;
}
.atpc .atpc-showcase-card span {
  display: block;
  overflow: hidden;
  padding: 8px 5px 6px;
  color: var(--navy);
  font-size: 9px;
  font-weight: 850;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.atpc .atpc-showcase-fallback {
  grid-column: 1/-1;
  max-width: 300px;
  margin: auto;
  transform: none;
}
.atpc .atpc-showcase-fallback img {
  height: 190px;
  object-position: center 36%;
}
@media (max-width: 980px) {
  .atpc .atpc-hero {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .atpc .atpc-master-logo {
    max-width: 650px;
    margin: auto;
  }
  .atpc .atpc-hero p {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }
  .atpc .atpc-steps {
    justify-content: center;
  }
}
@media (max-width: 680px) {
  .atpc .atpc-hero {
    padding: 24px 15px;
  }
  .atpc .atpc-hero-brand {
    padding: 10px;
  }
  .atpc .atpc-hero-showcase {
    padding: 18px 12px;
  }
  .atpc .atpc-showcase-products {
    gap: 6px;
  }
  .atpc .atpc-showcase-card {
    border-width: 3px;
  }
  .atpc .atpc-showcase-card img {
    height: 105px;
  }
  .atpc .atpc-showcase-card span {
    font-size: 8px;
  }
  .atpc .atpc-steps span {
    flex: 1;
    text-align: center;
  }
}

/* Source icons and ArtToProduct design categories. */
.atpc .atpc-source-tabs button {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
}
.atpc .atpc-source-tabs button > span {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.atpc .atpc-source-tabs button strong {
  font-size: 12px;
}
.atpc .atpc-source-tabs button small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 600;
}
.atpc .atpc-source-tabs button.active small {
  color: #dce6ec;
}
.atpc .atpc-source-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid #6b3ab638;
  border-radius: 50%;
  color: var(--violet);
  background: linear-gradient(145deg, #fff, #eee8f7);
  font:
    900 19px/1 Georgia,
    serif;
  box-shadow: 0 5px 12px #071b4312;
}
.atpc .atpc-source-tabs button.active .atpc-source-icon {
  color: #fff;
  border-color: #ffffff70;
  background: #ffffff18;
  box-shadow: none;
}
.atpc .atpc-source-icon.upload {
  font-family: Arial, sans-serif;
  font-size: 22px;
}
.atpc .atpc-design-toolbar {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 16px;
}
.atpc .atpc-design-toolbar label {
  color: #586476;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.atpc .atpc-design-toolbar select {
  display: block;
  min-width: 245px;
  margin-top: 5px;
  padding: 10px 12px;
  border: 1px solid #c9cfda;
  border-radius: 5px;
  color: var(--navy);
  background: #fff;
  text-transform: none;
}
.atpc .atpc-design-card[hidden] {
  display: none !important;
}
@media (max-width: 680px) {
  .atpc .atpc-design-toolbar {
    display: block;
  }
  .atpc .atpc-design-toolbar select {
    width: 100%;
    min-width: 0;
  }
}

/* Cart request feedback. */
.atpc .atpc-order-message {
  display: none;
  margin: 12px 0 0;
  padding: 12px 14px;
  border-left: 4px solid var(--teal);
  color: #3e5264;
  background: #edf7f5;
  font-size: 10px;
}
.atpc .atpc-order-message.working,
.atpc .atpc-order-message.success,
.atpc .atpc-order-message.error {
  display: block;
}
.atpc .atpc-order-message.success {
  color: #176759;
  border-color: #17866f;
  background: #e8f6f1;
}
.atpc .atpc-order-message.error {
  color: #8e2437;
  border-color: #b73f52;
  background: #fae9ec;
}

/* Focused artwork-selection state. */
.atpc.atpc-archive-locked [data-source-panel="archive"] .atpc-search,
.atpc.atpc-archive-locked [data-source-panel="archive"] .atpc-filterbar,
.atpc.atpc-archive-locked [data-source-panel="archive"] .atpc-status,
.atpc.atpc-archive-locked [data-source-panel="archive"] .atpc-page-bottom {
  display: none;
}
.atpc.atpc-archive-locked .atpc-results {
  grid-template-columns: minmax(280px, 420px);
  justify-content: center;
}
.atpc.atpc-archive-locked .atpc-art-card {
  width: 100%;
  box-shadow: 0 16px 40px #071b4318;
}
.atpc.atpc-archive-locked .atpc-art-card.selected {
  outline: 3px solid #6b3ab642;
}

/* Full-artwork viewing, precision composition, colors, and customer proof approval. */
.atpc .atpc-art-image {
  cursor: pointer;
}
.atpc .atpc-art-image img {
  object-fit: contain;
  background: #f3f1eb;
}
.atpc .atpc-art-image em {
  position: absolute;
  right: 10px;
  top: 10px;
  padding: 6px 8px;
  border-radius: 4px;
  color: #fff;
  background: #6b3ab6e8;
  font:
    800 8px/1 Arial,
    sans-serif;
  font-style: normal;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(-3px);
  transition: 0.18s ease;
}
.atpc .atpc-art-image:hover em {
  opacity: 1;
  transform: none;
}
.atpc .atpc-design-card .atpc-art-image:after {
  content: "View full design";
  position: absolute;
  right: 10px;
  top: 10px;
  padding: 6px 8px;
  border-radius: 4px;
  color: #fff;
  background: #6b3ab6e8;
  font:
    800 8px/1 Arial,
    sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0;
  transition: 0.18s ease;
}
.atpc .atpc-design-card .atpc-art-image:hover:after {
  opacity: 1;
}
.atpc .atpc-print-area {
  background: repeating-conic-gradient(#e5e6e9 0 25%, #f6f6f4 0 50%) 50%/16px
    16px;
}
.atpc .atpc-print-area:after {
  content: "";
  position: absolute;
  inset: 3px;
  z-index: 3;
  border: 1px dashed #ffffffcc;
  box-shadow: 0 0 0 1px #071b4340;
  pointer-events: none;
}
.atpc .atpc-print-area img {
  object-fit: contain;
  cursor: zoom-in;
}
.atpc .atpc-mockup.shirt:before {
  background: var(--shirt-color, #f4f4f5);
  transition: background 0.2s ease;
}
.atpc .atpc-fit-control,
.atpc .atpc-color-control > label {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px !important;
}
.atpc .atpc-fit-control select,
.atpc .atpc-color-control select {
  width: 100%;
  padding: 10px;
  border: 1px solid #c5cad2;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  text-transform: none;
}
.atpc .atpc-color-control {
  margin-top: 18px;
  padding: 13px;
  border: 1px solid #dcd7e7;
  border-radius: 5px;
  background: #f7f4fa;
}
.atpc .atpc-color-control[hidden] {
  display: none !important;
}
.atpc .atpc-color-control > label {
  margin-top: 0;
}
.atpc .atpc-color-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  max-height: 146px;
  margin-top: 10px;
  padding: 3px;
  overflow-y: auto;
}
.atpc .atpc-color-swatches[hidden] {
  display: none !important;
}
.atpc .atpc-color-swatches button {
  width: 27px;
  height: 27px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--swatch);
  box-shadow: 0 0 0 1px #aeb5c1;
  cursor: pointer;
}
.atpc .atpc-color-swatches button.selected {
  box-shadow: 0 0 0 3px var(--violet);
}
.atpc .atpc-color-swatches button.provider-matched {
  box-shadow:
    0 0 0 1px #aeb5c1,
    inset 0 0 0 1px #ffffff70;
}
.atpc .atpc-color-swatches button.provider-matched.selected {
  box-shadow:
    0 0 0 3px var(--violet),
    inset 0 0 0 1px #ffffff70;
}
.atpc .atpc-color-control > small {
  display: block;
  margin-top: 9px;
  color: #256b68;
  font-size: 8px;
  font-weight: 750;
  line-height: 1.35;
}
.atpc .atpc-color-control > small.unconfirmed {
  color: #7a5a2b;
}
.atpc .atpc-precision-control {
  display: block !important;
}
.atpc .atpc-precision-control > span {
  display: grid;
  grid-template-columns: minmax(90px, 1fr) 72px 48px;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
}
.atpc .atpc-precision-control input {
  grid-column: auto;
  width: 100%;
  margin: 0;
}
.atpc .atpc-precision-control input[type="number"] {
  padding: 7px;
  border: 1px solid #c7ccd4;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  font-size: 11px;
}
.atpc .atpc-precision-control output {
  text-align: right;
  font-size: 10px;
}
.atpc .atpc-nudge-controls {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-top: 16px;
}
.atpc .atpc-nudge-controls button {
  padding: 8px 5px;
  border: 1px solid #c3c9d3;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  font-size: 9px;
  font-weight: 800;
}
.atpc .atpc-nudge-controls [data-center-art] {
  grid-column: 1/-1;
  border-color: var(--teal);
  color: var(--teal);
}
.atpc-lightbox[hidden] {
  display: none !important;
}
.atpc-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  place-items: center;
  padding: 35px;
  background: #07162eea;
  backdrop-filter: blur(7px);
}
.atpc-lightbox > div {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto auto;
  gap: 9px;
  width: min(100%, 1050px);
  height: min(88vh, 900px);
  padding: 20px;
  border: 1px solid #ffffff40;
  border-radius: 10px;
  background: #fbfaf7;
  box-shadow: 0 28px 90px #0008;
  text-align: center;
}
.atpc-lightbox img {
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.atpc-lightbox strong {
  color: var(--navy);
  font:
    600 18px Georgia,
    serif;
}
.atpc-lightbox small {
  color: var(--muted);
  font-size: 9px;
}
.atpc-lightbox-close {
  position: absolute;
  right: 24px;
  top: 20px;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid #ffffff80;
  border-radius: 50%;
  color: #fff;
  background: #6b3ab6;
  font-size: 27px;
  line-height: 1;
  cursor: pointer;
}
.atpc-lightbox-open {
  overflow: hidden;
}
.atpc .atpc-proof-step {
  background: linear-gradient(135deg, #f4f8f7, #f3eef8);
}
.atpc .atpc-proof-layout {
  display: grid;
  grid-template-columns: minmax(380px, 1.1fr) minmax(310px, 0.9fr);
  gap: 28px;
}
.atpc .atpc-proof-stage {
  min-height: 530px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid #d1d6de;
  border-radius: 7px;
  background: radial-gradient(circle, #fff, #ecebe8);
  box-shadow: inset 0 0 50px #071b4310;
}
.atpc .atpc-proof-panel {
  padding: 27px;
  border: 1px solid #d8d7df;
  border-top: 4px solid var(--violet);
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 14px 35px #071b4310;
}
.atpc .atpc-proof-panel h4 {
  margin: 0;
  color: var(--navy);
  font:
    600 24px Georgia,
    serif;
}
.atpc .atpc-proof-panel > p {
  margin: 8px 0 18px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.55;
}
.atpc .atpc-proof-summary {
  margin: 0;
}
.atpc .atpc-proof-summary > div {
  display: grid;
  grid-template-columns: 105px 1fr;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid #e6e7ea;
}
.atpc .atpc-proof-summary dt {
  color: #657187;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.atpc .atpc-proof-summary dd {
  margin: 0;
  color: var(--navy);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
}
.atpc .atpc-approval-card {
  margin-top: 20px;
  padding: 16px;
  border: 1px solid #a9d5ce;
  border-left: 5px solid var(--teal);
  border-radius: 5px;
  background: #eef8f6;
}
.atpc .atpc-proof-check {
  display: flex;
  gap: 10px;
  color: #314b55;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.5;
}
.atpc .atpc-proof-check input {
  flex: none;
  margin-top: 2px;
  accent-color: var(--violet);
}
.atpc .atpc-proof-name {
  display: block;
  margin-top: 14px;
  color: #425665;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.atpc .atpc-proof-name input {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 11px;
  border: 1px solid #aebbc1;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  font-size: 12px;
  text-transform: none;
}
.atpc .atpc-approval-card small {
  display: block;
  margin-top: 11px;
  color: #68757e;
  font-size: 8px;
  line-height: 1.45;
}
.atpc .atpc-proof-nav {
  justify-content: flex-start;
}
.atpc .atpc-proof-nav > span {
  margin: 0;
}
.atpc .atpc-proof-step .atpc-order {
  padding: 18px;
  border: 1px solid #d8d7df;
  border-radius: 6px;
  background: #fff;
}
.atpc .atpc-proof-step .atpc-order button {
  background: linear-gradient(135deg, var(--teal), var(--violet));
}
@media (max-width: 980px) {
  .atpc .atpc-proof-layout {
    grid-template-columns: 1fr;
  }
  .atpc .atpc-proof-stage {
    min-height: 480px;
  }
}
@media (max-width: 680px) {
  .atpc .atpc-precision-control > span {
    grid-template-columns: 1fr 68px;
  }
  .atpc .atpc-precision-control output {
    grid-column: 1/-1;
    text-align: left;
  }
  .atpc-lightbox {
    padding: 62px 12px 18px;
  }
  .atpc-lightbox-close {
    right: 12px;
    top: 10px;
  }
  .atpc .atpc-proof-layout {
    display: block;
  }
  .atpc .atpc-proof-stage {
    min-height: 420px;
  }
  .atpc .atpc-proof-panel {
    margin-top: 18px;
    padding: 19px;
  }
  .atpc .atpc-proof-summary > div {
    grid-template-columns: 88px 1fr;
  }
  .atpc .atpc-proof-step .atpc-order {
    grid-template-columns: 1fr;
  }
  .atpc .atpc-proof-step .atpc-order label,
  .atpc .atpc-proof-step .atpc-order input[type="number"] {
    width: 100%;
  }
}

/* Direct-manipulation design surface and physical-inch controls. */
.atpc .atpc-print-area {
  overflow: visible;
  background: transparent;
}
.atpc .atpc-print-area:after {
  inset: 0;
  z-index: 6;
}
.atpc .atpc-art-layer {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  touch-action: none;
  cursor: move;
  outline: 1px solid transparent;
  transition: outline-color 0.15s ease;
}
.atpc .atpc-art-layer:hover,
.atpc .atpc-art-layer:focus,
.atpc .atpc-art-layer.moving,
.atpc .atpc-art-layer.resizing {
  outline: 1px solid #43d6c8;
  box-shadow: 0 0 0 1px #071b4350;
}
.atpc .atpc-art-layer img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  transform: none;
}
.atpc .atpc-proof-art-layer {
  cursor: zoom-in;
}
.atpc .atpc-proof-art-layer:hover {
  outline-color: transparent;
  box-shadow: none;
}
.atpc .atpc-resize-handle {
  position: absolute;
  z-index: 7;
  width: 9px;
  height: 9px;
  border: 1px solid #fff;
  border-radius: 50%;
  background: var(--violet);
  box-shadow: 0 1px 3px #0006;
  opacity: 0;
  transition: opacity 0.15s;
}
.atpc .atpc-art-layer:hover .atpc-resize-handle,
.atpc .atpc-art-layer:focus .atpc-resize-handle,
.atpc .atpc-art-layer.moving .atpc-resize-handle,
.atpc .atpc-art-layer.resizing .atpc-resize-handle {
  opacity: 1;
}
.atpc .atpc-resize-handle.nw {
  left: -5px;
  top: -5px;
}
.atpc .atpc-resize-handle.ne {
  right: -5px;
  top: -5px;
}
.atpc .atpc-resize-handle.sw {
  left: -5px;
  bottom: -5px;
}
.atpc .atpc-resize-handle.se {
  right: -5px;
  bottom: -5px;
}
.atpc .atpc-ruler {
  position: absolute;
  z-index: 5;
  color: #fff;
  background: #071b43a8;
  font:
    700 6px/1 Arial,
    sans-serif;
  pointer-events: none;
}
.atpc .atpc-ruler span {
  position: absolute;
  white-space: nowrap;
}
.atpc .atpc-ruler-x {
  left: 0;
  right: 0;
  top: -13px;
  height: 11px;
  border-bottom: 1px solid #fff;
}
.atpc .atpc-ruler-x:after {
  content: "";
  position: absolute;
  inset: 5px 0 0;
  background: repeating-linear-gradient(90deg, #fff 0 1px, transparent 1px 10%);
}
.atpc .atpc-ruler-x span:first-child {
  left: 0;
  top: -1px;
}
.atpc .atpc-ruler-x span:last-child {
  right: 0;
  top: -1px;
}
.atpc .atpc-ruler-y {
  top: 0;
  bottom: 0;
  left: -17px;
  width: 14px;
  border-right: 1px solid #fff;
}
.atpc .atpc-ruler-y:after {
  content: "";
  position: absolute;
  inset: 0 0 0 7px;
  background: repeating-linear-gradient(
    180deg,
    #fff 0 1px,
    transparent 1px 10%
  );
}
.atpc .atpc-ruler-y span:first-child {
  left: 1px;
  top: 1px;
}
.atpc .atpc-ruler-y span:last-child {
  left: 0;
  bottom: 1px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}
.atpc .atpc-size-control > label {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px !important;
}
.atpc .atpc-size-control {
  margin-top: 18px;
  padding: 13px;
  border: 1px solid #dcd7e7;
  border-radius: 5px;
  background: #f7f4fa;
}
.atpc .atpc-size-control[hidden] {
  display: none !important;
}
.atpc .atpc-size-control > label {
  margin-top: 0;
}
.atpc .atpc-size-control select {
  width: 100%;
  padding: 10px;
  border: 1px solid #c5cad2;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  text-transform: none;
}
.atpc .atpc-size-control small {
  display: block;
  margin-top: 7px;
  color: #6a5a7e;
  font-size: 8px;
  line-height: 1.4;
}
.atpc .atpc-dimension-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #e2e3e7;
}
.atpc .atpc-dimension-head strong {
  color: var(--navy);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.atpc .atpc-dimension-head label {
  display: flex;
  grid-template-columns: none;
  align-items: center;
  gap: 6px;
  margin: 0;
  color: #5b6878;
  font-size: 8px;
  text-transform: none;
  letter-spacing: 0;
}
.atpc .atpc-dimension-head input {
  grid-column: auto;
  width: auto;
}
.atpc .atpc-dimension-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.atpc .atpc-dimension-grid label {
  display: block;
  margin-top: 12px;
  color: #526070;
  font-size: 8px;
  font-weight: 850;
  text-transform: uppercase;
}
.atpc .atpc-dimension-grid span {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 5px;
  color: var(--muted);
  font-size: 9px;
  text-transform: none;
}
.atpc .atpc-dimension-grid input {
  width: 100%;
  padding: 9px;
  border: 1px solid #c7ccd4;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  font-size: 11px;
}
.atpc .atpc-direct-hint {
  margin: 12px 0 0;
  padding: 10px;
  border-left: 3px solid var(--violet);
  color: #5c6977;
  background: #f4f0f8;
  font-size: 8px;
  line-height: 1.45;
}
.atpc.atpc-no-interact .atpc-direct-hint {
  display: none;
}
.atpc-lightbox > div {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.atpc-lightbox img {
  background: transparent;
  filter: drop-shadow(0 20px 38px #0008);
}
.atpc-lightbox strong {
  color: #fff;
}
.atpc-lightbox small {
  color: #d8deea;
}
@media (max-width: 680px) {
  .atpc .atpc-dimension-head {
    display: block;
  }
  .atpc .atpc-dimension-head label {
    margin-top: 8px;
  }
  .atpc .atpc-dimension-grid {
    grid-template-columns: 1fr;
  }
  .atpc .atpc-ruler {
    display: none;
  }
}
.atpc .atpc-print-area {
  overflow: hidden;
}
.atpc .atpc-ruler-x {
  top: 0;
}
.atpc .atpc-ruler-y {
  left: 0;
}

/* Visual artwork-source cards inspired by the ArtToProduct homepage. */
.atpc .atpc-source-tabs {
  gap: 14px;
  padding: 18px;
  border: 1px solid #d9e0e9;
  border-radius: 20px;
  background: linear-gradient(135deg, #f8ffff, #f5f1fb);
  box-shadow: 0 18px 45px #071b4312;
}
.atpc .atpc-source-tabs button {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid #d6dce6;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 20px #071b430d;
  transition:
    transform 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}
.atpc .atpc-source-tabs button:hover {
  transform: translateY(-4px);
  border-color: var(--teal);
  box-shadow: 0 15px 30px #071b4319;
}
.atpc .atpc-source-tabs button.active {
  color: var(--navy);
  border: 2px solid var(--violet);
  background: #fff;
  box-shadow: 0 15px 32px #6b3ab622;
}
.atpc .atpc-source-tabs button > span {
  display: grid;
  gap: 5px;
  padding: 14px 15px 16px;
}
.atpc .atpc-source-tabs button strong {
  color: var(--navy);
  font-size: 14px;
  line-height: 1.1;
}
.atpc .atpc-source-tabs button small,
.atpc .atpc-source-tabs button.active small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}
.atpc .atpc-source-tabs button em {
  margin-top: 5px;
  color: #718096;
  font-size: 8px;
  font-style: normal;
  font-weight: 750;
}
.atpc .atpc-source-visual {
  position: relative;
  display: grid;
  place-items: center;
  height: 145px;
  overflow: hidden;
  border-radius: 12px 12px 0 0;
  background: #e9ecef;
}
.atpc .atpc-source-visual:before,
.atpc .atpc-source-visual:after {
  content: "";
  position: absolute;
}
.atpc .atpc-source-visual i {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 4px solid #fff;
  border-radius: 13px;
  color: #fff;
  background: linear-gradient(135deg, var(--teal), var(--violet));
  font:
    900 23px/1 Arial,
    sans-serif;
  box-shadow: 0 8px 18px #071b4345;
}
.atpc .atpc-source-visual.archive {
  background: linear-gradient(
    145deg,
    #b36d43 0,
    #dfb879 42%,
    #386f62 43%,
    #183d45 100%
  );
}
.atpc .atpc-source-visual.archive:before {
  inset: 15px 22px 20px;
  border: 8px solid #f0d8a9;
  background:
    radial-gradient(circle at 58% 35%, #e9c55d 0 7%, transparent 8%),
    radial-gradient(circle at 40% 60%, #ce6951 0 9%, transparent 10%),
    radial-gradient(circle at 67% 65%, #eee0bc 0 8%, transparent 9%), #31594d;
  transform: rotate(-3deg);
  box-shadow: 0 12px 22px #071b4350;
}
.atpc .atpc-source-visual.design {
  background: linear-gradient(145deg, #e5f5f3, #d8cdea);
}
.atpc .atpc-source-visual.design:before {
  left: 20%;
  right: 20%;
  top: 17px;
  bottom: 15px;
  border-radius: 12px;
  background: linear-gradient(135deg, #fff, #eee8f7);
  box-shadow: 0 10px 25px #071b4325;
  transform: rotate(4deg);
}
.atpc .atpc-source-visual.upload {
  background: linear-gradient(145deg, #fff4c8, #d7eff4);
}
.atpc .atpc-source-visual.upload:before {
  left: 22px;
  bottom: 18px;
  width: 48px;
  height: 70px;
  border-radius: 45% 45% 25% 25%;
  background: #6b3ab6;
  box-shadow:
    68px 8px 0 #078fa5,
    132px -2px 0 #e2bd3c;
}
.atpc .atpc-source-visual.upload:after {
  left: 18px;
  right: 18px;
  bottom: 14px;
  height: 25px;
  border-radius: 50%;
  background: #fff8;
}

/* Larger product-gallery cards with clear choices and option counts. */
.atpc .atpc-products {
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 22px;
}
.atpc .atpc-product {
  display: block;
  overflow: hidden;
  padding: 0;
  border: 1px solid #d6dce6;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 28px #071b430d;
  transition:
    transform 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}
.atpc .atpc-product:hover {
  transform: translateY(-5px);
  border-color: var(--teal);
  box-shadow: 0 18px 38px #071b431b;
}
.atpc .atpc-product.selected {
  outline: 3px solid #078fa53b;
  border-color: var(--teal);
  background: #fff;
  box-shadow: 0 18px 40px #078fa522;
}
.atpc .atpc-product-image {
  position: relative;
  display: block;
  height: 210px;
  overflow: hidden;
  background: linear-gradient(145deg, #f7f7f3, #e8edf1);
  cursor: zoom-in;
}
.atpc .atpc-product-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 0;
  transition: transform 0.25s ease;
}
.atpc .atpc-product:hover .atpc-product-image img {
  transform: scale(1.035);
}
.atpc .atpc-product-image b {
  position: absolute;
  left: 12px;
  top: 12px;
  padding: 6px 9px;
  border-radius: 20px;
  color: #fff;
  background: #071b43de;
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.atpc .atpc-product-image > em {
  position: absolute;
  right: 12px;
  bottom: 12px;
  padding: 7px 9px;
  border-radius: 4px;
  color: #fff;
  background: #6b3ab6e8;
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(3px);
  transition:
    opacity 0.18s ease,
    transform 0.18s ease;
}
.atpc .atpc-product-image:hover > em,
.atpc .atpc-product-image:focus-visible > em {
  opacity: 1;
  transform: none;
}
.atpc .atpc-product-image:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: -3px;
}
.atpc .atpc-product-copy {
  display: block;
  padding: 17px 18px 18px;
}
.atpc .atpc-product-copy strong {
  min-height: 42px;
  color: var(--navy);
  font:
    600 19px/1.15 Georgia,
    serif;
}
.atpc .atpc-product-copy small {
  margin-top: 7px;
  color: var(--muted);
  font-size: 10px;
}
.atpc .atpc-product-copy .atpc-product-price {
  display: flex !important;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 3px 9px;
  color: var(--teal);
  font-size: 14px;
  font-weight: 850;
}
.atpc .atpc-product-price del,
.atpc .atpc-product-price ins {
  display: inline-flex !important;
  align-items: baseline;
  white-space: nowrap;
}
.atpc .atpc-product-price ins {
  text-decoration: none;
}
.atpc .atpc-product-price .woocommerce-Price-amount,
.atpc .atpc-product-price .woocommerce-Price-currencySymbol,
.atpc .atpc-product-price bdi {
  display: inline !important;
  white-space: nowrap;
}
.atpc .atpc-product-options {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 13px;
}
.atpc .atpc-product-options em {
  padding: 5px 7px;
  border-radius: 14px;
  color: #46566d;
  background: #eef2f5;
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
}
.atpc .atpc-product-copy > i,
.atpc .atpc-product-copy > .atpc-product-select {
  display: block;
  width: 100%;
  margin-top: 15px;
  padding: 12px 0 0;
  border: 0;
  border-top: 1px solid #e3e7eb;
  color: var(--violet);
  background: transparent;
  text-align: left;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  cursor: pointer;
}
.atpc .atpc-product-copy > .atpc-product-select:hover,
.atpc .atpc-product-copy > .atpc-product-select:focus-visible {
  color: var(--teal);
}
.atpc .atpc-product.selected .atpc-product-copy > i,
.atpc .atpc-product.selected .atpc-product-copy > .atpc-product-select {
  color: var(--teal);
}

.atpc .atpc-material-control {
  margin-top: 18px;
  padding: 13px;
  border: 1px solid #d7e2df;
  border-radius: 5px;
  background: #f1f8f6;
}
.atpc .atpc-material-control[hidden] {
  display: none !important;
}
.atpc .atpc-material-control label {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px !important;
  margin-top: 0;
}
.atpc .atpc-material-control select {
  width: 100%;
  padding: 10px;
  border: 1px solid #bfcac8;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  text-transform: none;
}
.atpc .atpc-material-control [data-product-material-display] {
  display: block;
  width: 100%;
  padding: 10px;
  border: 1px solid #bfcac8;
  border-radius: 4px;
  color: var(--navy);
  background: #fff;
  font-size: 10px;
  line-height: 1.4;
}
.atpc .atpc-material-control [data-product-material-display][hidden] {
  display: none !important;
}
.atpc .atpc-material-control small {
  display: block;
  margin-top: 7px;
  color: #61716f;
  font-size: 8px;
  line-height: 1.4;
}
@media (max-width: 980px) {
  .atpc .atpc-products {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }
}
@media (max-width: 680px) {
  .atpc .atpc-source-tabs {
    padding: 11px;
  }
  .atpc .atpc-source-visual {
    height: 125px;
  }
  .atpc .atpc-products {
    grid-template-columns: 1fr;
  }
  .atpc .atpc-product-image {
    height: 240px;
  }
}

/* Guided compose controls: size, available color, automatic fit, and position. */
.atpc .atpc-choice-panel {
  position: relative;
  margin-top: 16px;
  padding: 15px;
  border: 1px solid #d6dee5;
  border-left: 4px solid var(--teal);
  border-radius: 7px;
  background: #f8fafb;
}
.atpc .atpc-choice-panel[hidden] {
  display: none !important;
}
.atpc .atpc-choice-heading {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}
.atpc .atpc-choice-heading > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, var(--teal), var(--violet));
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}
.atpc .atpc-choice-heading strong,
.atpc .atpc-choice-heading small {
  display: block;
}
.atpc .atpc-choice-heading strong {
  color: var(--navy);
  font:
    600 15px/1.2 Georgia,
    serif;
}
.atpc .atpc-choice-heading small {
  margin-top: 4px;
  color: #637182;
  font-size: 8px;
  line-height: 1.4;
}
.atpc .atpc-choice-panel > label {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px !important;
  margin-top: 13px !important;
}
.atpc .atpc-choice-panel select {
  min-height: 42px;
  font-size: 12px;
  font-weight: 750;
}
.atpc .atpc-size-control,
.atpc .atpc-color-control {
  padding: 15px;
  border-color: #d6dee5;
  border-left-color: var(--teal);
  background: #f8fafb;
}
.atpc .atpc-color-swatches {
  gap: 9px;
  max-height: 154px;
  padding: 5px;
}
.atpc .atpc-color-swatches button {
  position: relative;
  width: 31px;
  height: 31px;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}
.atpc .atpc-color-swatches button:hover,
.atpc .atpc-color-swatches button:focus-visible {
  z-index: 1;
  transform: scale(1.1);
}
.atpc .atpc-color-swatches button.preview-unavailable {
  background: repeating-linear-gradient(
    135deg,
    #d8dde5 0 5px,
    #f3f5f7 5px 10px
  );
}
.atpc .atpc-fit-step {
  border-left-color: var(--violet);
  background: #faf8fd;
}
.atpc .atpc-art-zoom-control {
  margin-top: 15px !important;
  padding: 12px;
  border: 1px solid #d6dee5;
  border-radius: 6px;
  background: #fff;
}
.atpc .atpc-art-zoom-control > span {
  color: var(--navy);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.atpc .atpc-art-zoom-control input[type="range"] {
  width: 100%;
  min-height: 28px;
  margin: 0;
  padding: 0;
  accent-color: var(--teal);
  cursor: ew-resize;
}
.atpc .atpc-art-zoom-control small {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 8px;
  align-items: center;
  color: #637182;
  font-size: 8px;
  font-weight: 750;
}
.atpc .atpc-art-zoom-control small span:last-child {
  text-align: right;
}
.atpc .atpc-art-zoom-control output {
  color: var(--teal);
  font-weight: 850;
  text-align: center;
}
.atpc .atpc-center-art-button,
.atpc .atpc-position-step .atpc-reset {
  width: 100%;
  min-height: 42px;
  margin-top: 10px;
  border: 1px solid var(--teal);
  border-radius: 6px;
  color: var(--teal);
  background: #fff;
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
}
.atpc .atpc-direction-pad {
  display: grid;
  grid-template-columns: repeat(3, minmax(62px, 1fr));
  grid-template-areas:
    ". up ."
    "left center right"
    ". down .";
  gap: 7px;
  margin-top: 14px;
}
.atpc .atpc-direction-pad .up {
  grid-area: up;
}
.atpc .atpc-direction-pad .left {
  grid-area: left;
}
.atpc .atpc-direction-pad .center {
  grid-area: center;
}
.atpc .atpc-direction-pad .right {
  grid-area: right;
}
.atpc .atpc-direction-pad .down {
  grid-area: down;
}
.atpc .atpc-direction-pad button {
  display: grid;
  min-height: 52px;
  padding: 5px;
  place-items: center;
  gap: 0;
  border: 1px solid #bdc9d3;
  border-radius: 6px;
  color: var(--navy);
  background: #fff;
  cursor: pointer;
  box-shadow: 0 2px 7px #071b430d;
}
.atpc .atpc-direction-pad button:hover,
.atpc .atpc-direction-pad button:focus-visible {
  border-color: var(--teal);
  color: var(--teal);
  background: #f0faf8;
}
.atpc .atpc-direction-pad button b {
  font-size: 21px;
  line-height: 1;
}
.atpc .atpc-direction-pad button span {
  font-size: 8px;
  font-weight: 850;
  letter-spacing: 0.03em;
}
.atpc .atpc-direction-pad button.center {
  border-color: var(--teal);
  color: #fff;
  background: var(--teal);
}
.atpc .atpc-direction-pad button.center:hover,
.atpc .atpc-direction-pad button.center:focus-visible {
  color: #fff;
  background: #087c90;
}
.atpc .atpc-position-step .atpc-reset {
  margin-top: 11px;
  background: #fff;
}
@media (max-width: 420px) {
  .atpc .atpc-direction-pad {
    grid-template-columns: repeat(3, minmax(54px, 1fr));
  }
}

/* More natural apparel preview while preserving the provider print area. */
.atpc .atpc-mockup.shirt:before {
  z-index: 0;
  background:
    radial-gradient(
      ellipse at 50% 12%,
      #fff5 0 5%,
      transparent 16%
    ),
    linear-gradient(
      83deg,
      #0003 0,
      transparent 16%,
      #fff3 42%,
      transparent 63%,
      #0003 100%
    ),
    linear-gradient(
      176deg,
      transparent 0 18%,
      #00000012 36%,
      transparent 58%,
      #0000001f 100%
    ),
    var(--shirt-color, #f4f4f5);
  box-shadow:
    inset 18px 0 24px #00000024,
    inset -18px 0 24px #0000001f,
    inset 0 -28px 30px #00000014,
    inset 0 2px 8px #ffffff5c;
  filter: drop-shadow(0 20px 16px #071b4330);
  transition:
    background 0.2s ease,
    filter 0.2s ease;
}
.atpc .atpc-mockup.shirt:after {
  content: "";
  position: absolute;
  z-index: 1;
  left: 142px;
  top: 48px;
  width: 76px;
  height: 29px;
  border: 5px solid #1114;
  border-top: 0;
  border-radius: 0 0 48px 48px;
  box-shadow:
    0 2px 1px #fff5,
    inset 0 -2px 3px #0002;
  pointer-events: none;
}

/* Provider-aware apparel families. Product type still drives fulfillment;
   these classes only make the customer preview match the selected blank. */
.atpc .atpc-mockup.shirt.long-sleeve:before,
.atpc .atpc-mockup.shirt.pocket-long-sleeve:before,
.atpc .atpc-mockup.shirt.sweatshirt:before,
.atpc .atpc-mockup.shirt.hoodie:before,
.atpc .atpc-mockup.shirt.jacket:before {
  clip-path: polygon(
    25% 4%, 39% 0, 44% 10%, 56% 10%, 61% 0, 75% 4%,
    98% 16%, 92% 73%, 78% 70%, 75% 35%, 76% 100%,
    24% 100%, 25% 35%, 22% 70%, 8% 73%, 2% 16%
  );
}
.atpc .atpc-mockup.shirt.hoodie:before {
  z-index: 1;
  background:
    radial-gradient(ellipse at 50% 12%, #fff5 0 5%, transparent 16%),
    linear-gradient(83deg, #0003 0, transparent 16%, #fff3 42%, transparent 63%, #0003 100%),
    linear-gradient(176deg, transparent 0 18%, #00000012 36%, transparent 58%, #0000001f 100%),
    var(--shirt-color, #f4f4f5);
}
.atpc .atpc-mockup.shirt.hoodie:after {
  z-index: 0;
  left: 119px;
  top: -5px;
  width: 122px;
  height: 118px;
  border: 0;
  border-radius: 58% 58% 35% 35%;
  background: linear-gradient(105deg, #0003, #fff3 48%, #0002), var(--shirt-color, #f4f4f5);
  clip-path: polygon(18% 0, 82% 0, 100% 58%, 88% 100%, 66% 79%, 50% 95%, 34% 79%, 12% 100%, 0 58%);
  box-shadow:
    inset 10px 2px 14px #0002,
    inset -10px 2px 14px #0002,
    0 4px 7px #0002;
}
.atpc .atpc-mockup.shirt.hoodie .atpc-print-area {
  left: 111px;
  top: 122px;
  width: 138px;
  height: 166px;
}
.atpc .atpc-mockup.shirt.pocket-tee:after,
.atpc .atpc-mockup.shirt.pocket-long-sleeve:after {
  left: 222px;
  top: 126px;
  width: 39px;
  height: 44px;
  border: 1px solid #0005;
  border-top-color: #fff4;
  border-radius: 2px 2px 8px 8px;
  background: linear-gradient(135deg, #fff3, transparent 55%, #0002), var(--shirt-color, #f4f4f5);
  box-shadow: inset 0 1px 2px #fff3, 0 1px 2px #0002;
}
.atpc .atpc-mockup.shirt.jacket:before {
  background:
    linear-gradient(90deg, transparent 49.1%, #1118 49.4% 50.6%, transparent 50.9%),
    linear-gradient(83deg, #0003 0, transparent 16%, #fff3 42%, transparent 63%, #0003 100%),
    var(--shirt-color, #f4f4f5);
}
.atpc .atpc-mockup.shirt.jacket:after {
  left: 177px;
  top: 64px;
  width: 6px;
  height: 298px;
  border: 0;
  border-radius: 3px;
  background: linear-gradient(90deg, #fff4, #17213a99, #fff3);
  box-shadow: none;
}
.atpc .atpc-mockup.shirt.tank:before {
  clip-path: polygon(
    31% 5%, 41% 0, 45% 11%, 55% 11%, 59% 0, 69% 5%,
    74% 25%, 77% 100%, 23% 100%, 26% 25%
  );
}
.atpc .atpc-mockup.shirt.tank .atpc-print-area {
  left: 111px;
  top: 108px;
  width: 138px;
  height: 192px;
}
.atpc .atpc-mockup.shirt.women-tee:before {
  clip-path: polygon(
    27% 5%, 40% 0, 44% 10%, 56% 10%, 60% 0, 73% 5%,
    98% 22%, 82% 41%, 73% 33%, 69% 72%, 78% 100%,
    22% 100%, 31% 72%, 27% 33%, 18% 41%, 2% 22%
  );
}
.atpc .atpc-mockup.shirt.youth-tee:before {
  clip-path: polygon(
    29% 6%, 41% 1%, 45% 11%, 55% 11%, 59% 1%, 71% 6%,
    95% 23%, 80% 42%, 72% 35%, 74% 98%, 26% 98%,
    28% 35%, 20% 42%, 5% 23%
  );
}
.atpc .atpc-mockup.shirt.infant:before {
  clip-path: polygon(
    31% 8%, 41% 2%, 45% 12%, 55% 12%, 59% 2%, 69% 8%,
    92% 24%, 78% 43%, 71% 36%, 70% 76%, 62% 100%,
    50% 91%, 38% 100%, 30% 76%, 29% 36%, 22% 43%, 8% 24%
  );
}
.atpc .atpc-mockup.shirt.infant .atpc-print-area {
  left: 119px;
  top: 118px;
  width: 122px;
  height: 148px;
}
.atpc .atpc-mockup.shirt .atpc-print-area {
  z-index: 2;
  background: transparent;
  box-shadow: 0 1px 2px #00000018;
}
.atpc .atpc-mockup.shirt.location-left_chest .atpc-print-area,
.atpc .atpc-mockup.shirt.location-front_left .atpc-print-area,
.atpc .atpc-mockup.shirt.location-front_left_chest .atpc-print-area,
.atpc .atpc-mockup.shirt.location-chest_left .atpc-print-area,
.atpc .atpc-mockup.shirt.location-embroidery_left_chest .atpc-print-area,
.atpc .atpc-mockup.shirt.location-embroidery_chest_left .atpc-print-area {
  left: 188px;
  top: 104px;
  width: 64px;
  height: 74px;
}
.atpc .atpc-mockup.shirt.location-right_chest .atpc-print-area {
  left: 108px;
  top: 104px;
  width: 64px;
  height: 74px;
}
.atpc .atpc-mockup.shirt.location-left_sleeve .atpc-print-area,
.atpc .atpc-mockup.shirt.location-sleeve_left .atpc-print-area {
  left: 110px;
  top: 126px;
  width: 140px;
  height: 124px;
  transform: none;
}
.atpc .atpc-mockup.shirt.location-right_sleeve .atpc-print-area,
.atpc .atpc-mockup.shirt.location-sleeve_right .atpc-print-area {
  left: 110px;
  top: 126px;
  width: 140px;
  height: 124px;
  transform: none;
}
.atpc .atpc-mockup.shirt.location-left_sleeve:before,
.atpc .atpc-mockup.shirt.location-sleeve_left:before,
.atpc .atpc-mockup.shirt.location-right_sleeve:before,
.atpc .atpc-mockup.shirt.location-sleeve_right:before {
  inset: auto;
  left: 54px;
  top: 32px;
  width: 252px;
  height: 330px;
  clip-path: polygon(16% 0, 84% 0, 100% 18%, 78% 100%, 22% 100%, 0 18%);
  border-radius: 18px 18px 52px 52px;
}
.atpc .atpc-mockup.shirt.location-left_sleeve:after,
.atpc .atpc-mockup.shirt.location-sleeve_left:after,
.atpc .atpc-mockup.shirt.location-right_sleeve:after,
.atpc .atpc-mockup.shirt.location-sleeve_right:after {
  display: none;
}
.atpc .atpc-mockup.shirt.location-inside_label .atpc-print-area,
.atpc .atpc-mockup.shirt.location-outside_label .atpc-print-area {
  left: 150px;
  top: 60px;
  width: 60px;
  height: 42px;
}
.atpc .atpc-mockup.shirt .atpc-art-layer img {
  filter: drop-shadow(0 1px 0 #0003);
}
.atpc .atpc-proof-mockup.shirt .atpc-print-area {
  box-shadow: none;
}
.atpc .atpc-proof-mockup.shirt .atpc-print-area:after {
  display: none;
}

/* Product-family surfaces for non-apparel blanks. */
.atpc .atpc-mockup.tumbler .atpc-print-area {
  background: linear-gradient(90deg, #0003 0, transparent 22%, #fff4 49%, transparent 76%, #0003 100%);
}
.atpc .atpc-mockup.mug .atpc-print-area {
  background:
    linear-gradient(90deg, #0004 0, transparent 22%, #fff4 49%, transparent 76%, #0003 100%),
    var(--shirt-color, #f4f4f5);
}
.atpc .atpc-mockup.tumbler.bottle .atpc-print-area {
  left: 116px;
  top: 54px;
  width: 128px;
  height: 292px;
  border-radius: 28px 28px 42px 42px;
}
.atpc .atpc-mockup.tumbler.bottle:before {
  left: 132px;
  top: 19px;
  width: 96px;
  height: 53px;
  border-radius: 10px 10px 20px 20px;
  background: linear-gradient(90deg, #111, #4c5665, #111);
}
.atpc .atpc-mockup.tote:before {
  background: linear-gradient(100deg, #0002, #fff3 48%, #0001), var(--shirt-color, #eee8db);
}
.atpc .atpc-mockup.tote.drawstring:before {
  left: 76px;
  width: 208px;
  clip-path: polygon(8% 0, 92% 0, 100% 12%, 91% 100%, 9% 100%, 0 12%);
}
.atpc .atpc-mockup.tote.drawstring:after {
  left: 82px;
  top: 72px;
  width: 196px;
  height: 28px;
  border: 5px solid #17213a77;
  border-left: 0;
  border-right: 0;
  border-radius: 0;
}
.atpc .atpc-mockup.canvas.panel .atpc-print-area,
.atpc .atpc-mockup.flat.panel .atpc-print-area {
  inset: 30px;
  border: 3px solid #9da4ad;
  box-shadow: 8px 10px 14px #071b4338;
}
.atpc .atpc-mockup.canvas.poster .atpc-print-area,
.atpc .atpc-mockup.flat.poster .atpc-print-area {
  inset: 20px;
  border: 0;
  box-shadow: 7px 10px 18px #071b4330;
}
.atpc .atpc-mockup.canvas.framed .atpc-print-area,
.atpc .atpc-mockup.flat.framed .atpc-print-area {
  inset: 22px;
  border: 16px solid #26303b;
  box-shadow: inset 0 0 0 3px #b89a62, 8px 10px 18px #071b4338;
}

/* Customer-friendly print boundary: a quiet dotted guide, never production art. */
.atpc .atpc-preview-step .atpc-ruler {
  display: none !important;
}
.atpc .atpc-preview-step .atpc-print-area:after {
  inset: 0;
  border: 2px dotted #078fa5cc;
  border-radius: 3px;
  box-shadow: 0 0 0 1px #ffffff8c;
}
.atpc .atpc-proof-step .atpc-print-area:after {
  display: none;
}

/* Direct artwork selection frame: drag inside to move; hover an edge or corner to resize. */
.atpc .atpc-preview-step .atpc-print-area,
.atpc .atpc-proof-step .atpc-print-area {
  overflow: hidden;
}
.atpc .atpc-preview-step .atpc-art-layer,
.atpc .atpc-proof-step .atpc-proof-art-layer {
  overflow: hidden;
}
.atpc .atpc-preview-step .atpc-art-layer img,
.atpc .atpc-proof-step .atpc-proof-art-layer img {
  max-width: none;
  max-height: none;
}
.atpc .atpc-preview-step .atpc-art-layer.has-art {
  outline: 0;
  box-shadow: none;
  cursor: grab;
}
.atpc .atpc-preview-step .atpc-art-layer.has-art.moving {
  cursor: grabbing;
}
.atpc .atpc-preview-step .atpc-art-controls {
  position: absolute;
  z-index: 7;
  transform: translate(-50%, -50%);
  outline: 2px dotted #ffffffde;
  box-shadow:
    0 0 0 1px #078fa5,
    0 2px 8px #071b4326;
  pointer-events: none;
}
.atpc .atpc-preview-step .atpc-art-controls.resizing {
  outline-color: #43d6c8;
}
.atpc .atpc-preview-step .atpc-resize-handle {
  position: absolute;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  opacity: 0;
  pointer-events: none;
  touch-action: none;
}
.atpc .atpc-preview-step .atpc-resize-handle:before,
.atpc .atpc-preview-step .atpc-resize-handle:after {
  content: none;
}
.atpc .atpc-preview-step .atpc-art-controls.has-art .atpc-resize-handle {
  opacity: 1;
  pointer-events: auto;
}
.atpc .atpc-preview-step .atpc-resize-handle.n,
.atpc .atpc-preview-step .atpc-resize-handle.s {
  left: 16px;
  right: 16px;
  width: auto;
  min-width: 0;
  height: 12px;
  min-height: 12px;
  cursor: ns-resize;
}
.atpc .atpc-preview-step .atpc-resize-handle.n {
  top: 0;
}
.atpc .atpc-preview-step .atpc-resize-handle.s {
  bottom: 0;
}
.atpc .atpc-preview-step .atpc-resize-handle.e,
.atpc .atpc-preview-step .atpc-resize-handle.w {
  top: 16px;
  bottom: 16px;
  width: 12px;
  min-width: 12px;
  height: auto;
  min-height: 0;
  cursor: ew-resize;
}
.atpc .atpc-preview-step .atpc-resize-handle.e {
  right: 0;
}
.atpc .atpc-preview-step .atpc-resize-handle.w {
  left: 0;
}
.atpc .atpc-preview-step .atpc-resize-handle.nw,
.atpc .atpc-preview-step .atpc-resize-handle.ne,
.atpc .atpc-preview-step .atpc-resize-handle.sw,
.atpc .atpc-preview-step .atpc-resize-handle.se {
  width: 16px;
  min-width: 16px;
  height: 16px;
  min-height: 16px;
}
.atpc .atpc-preview-step .atpc-resize-handle.nw {
  left: 0;
  top: 0;
  cursor: nwse-resize;
}
.atpc .atpc-preview-step .atpc-resize-handle.ne {
  right: 0;
  top: 0;
  cursor: nesw-resize;
}
.atpc .atpc-preview-step .atpc-resize-handle.sw {
  left: 0;
  bottom: 0;
  cursor: nesw-resize;
}
.atpc .atpc-preview-step .atpc-resize-handle.se {
  right: 0;
  bottom: 0;
  cursor: nwse-resize;
}
.atpc .atpc-preview-step .atpc-resize-handle:focus-visible {
  outline: 0;
  box-shadow: inset 0 0 0 2px var(--violet);
}

/* Give the product and artwork more of the compose canvas on larger screens. */
@media (min-width: 981px) {
  .atpc .atpc-preview-step .atpc-stage {
    min-height: 720px;
  }
  .atpc .atpc-preview-step .atpc-mockup {
    transform: scale(1.46);
    transform-origin: center;
  }
}
@media (min-width: 681px) and (max-width: 980px) {
  .atpc .atpc-preview-step .atpc-stage {
    min-height: 630px;
  }
  .atpc .atpc-preview-step .atpc-mockup {
    transform: scale(1.26);
    transform-origin: center;
  }
}

/* Compact, searchable product catalog designed for large provider inventories. */
.atpc .atpc-product-browser {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 360px);
  gap: 12px 18px;
  align-items: end;
  margin-bottom: 18px;
  padding: 15px;
  border: 1px solid #dbe2e9;
  border-radius: 10px;
  background: #f7fafb;
}
.atpc .atpc-product-types {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 9px;
}
.atpc .atpc-product-type-intro {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  font-size: 10px;
}
.atpc .atpc-product-types button {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 68px;
  padding: 7px;
  border: 1px solid #cad5df;
  border-radius: 9px;
  color: var(--navy);
  background: #fff;
  font-size: 10px;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}
.atpc .atpc-product-types button img {
  width: 52px;
  height: 52px;
  border-radius: 6px;
  object-fit: cover;
  background: #eef2f4;
}
.atpc .atpc-product-types button span,
.atpc .atpc-product-types button strong,
.atpc .atpc-product-types button small {
  display: block;
}
.atpc .atpc-product-types button strong {
  font-size: 12px;
}
.atpc .atpc-product-types button small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 700;
}
.atpc .atpc-product-types button:hover,
.atpc .atpc-product-types button:focus-visible {
  border-color: var(--teal);
  color: var(--teal);
}
.atpc .atpc-product-types button.active,
.atpc .atpc-product-types button[aria-pressed="true"] {
  border-color: var(--teal);
  color: #fff;
  background: linear-gradient(100deg, var(--teal), var(--violet));
}
.atpc .atpc-product-types button.active small,
.atpc .atpc-product-types button[aria-pressed="true"] small {
  color: #e8f5f5;
}
.atpc .atpc-product-search {
  display: grid;
  gap: 5px;
  margin: 0;
  color: var(--navy);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.atpc .atpc-product-setup {
  margin: 18px 0;
  padding: 15px;
  border: 1px solid #cbd8de;
  border-top: 4px solid var(--teal);
  border-radius: 9px;
  background: #f6faf9;
}
.atpc .atpc-product-setup[hidden] {
  display: none !important;
}
.atpc .atpc-product-setup-head span,
.atpc .atpc-product-setup-head strong,
.atpc .atpc-product-setup-head small {
  display: block;
}
.atpc .atpc-product-setup-head span {
  color: var(--teal);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.1em;
}
.atpc .atpc-product-setup-head strong {
  margin-top: 3px;
  color: var(--navy);
  font: 600 17px/1.2 Georgia, serif;
}
.atpc .atpc-product-setup-head small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 9px;
}
.atpc .atpc-product-setup-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 10px;
  margin-top: 12px;
  align-items: start;
}
.atpc .atpc-product-setup .atpc-choice-panel {
  margin-top: 0;
  padding: 11px;
}
.atpc .atpc-product-setup .atpc-choice-heading {
  grid-template-columns: 25px minmax(0, 1fr);
  gap: 7px;
}
.atpc .atpc-product-setup .atpc-choice-heading > span {
  width: 24px;
  height: 24px;
  font-size: 10px;
}
.atpc .atpc-product-setup .atpc-choice-heading strong {
  font-size: 13px;
}
.atpc .atpc-product-setup .atpc-choice-panel > label {
  margin-top: 8px !important;
}
.atpc .atpc-product-setup .atpc-choice-panel select {
  min-height: 36px;
  font-size: 10px;
}
.atpc .atpc-product-setup .atpc-color-swatches {
  max-height: 90px;
  gap: 6px;
}
.atpc .atpc-product-setup .atpc-color-swatches button {
  width: 26px;
  height: 26px;
}
.atpc .atpc-product-setup .atpc-location-options {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 680px) {
  .atpc .atpc-product-setup-grid {
    grid-template-columns: 1fr;
  }
  .atpc .atpc-product-setup .atpc-location-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.atpc .atpc-product-search input {
  width: 100%;
  min-height: 40px;
  padding: 9px 12px;
  border: 1px solid #bfcbd6;
  border-radius: 5px;
  color: var(--navy);
  background: #fff;
  font-size: 12px;
  text-transform: none;
}
.atpc .atpc-product-search input:focus {
  border-color: var(--teal);
  outline: 3px solid #078fa51f;
}
.atpc .atpc-product-count {
  grid-column: 1 / -1;
  margin: -2px 0 0;
  color: var(--muted);
  font-size: 9px;
}
.atpc [data-product-search-wrap][hidden],
.atpc [data-product-count][hidden],
.atpc [data-product-results][hidden] {
  display: none !important;
}
.atpc .atpc-products {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.atpc .atpc-product {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  min-height: 132px;
  overflow: hidden;
  border-radius: 9px;
  box-shadow: 0 6px 18px #071b430b;
}
.atpc .atpc-product[hidden] {
  display: none !important;
}
.atpc .atpc-product:hover {
  transform: translateY(-2px);
  box-shadow: 0 11px 24px #071b4317;
}
.atpc .atpc-product.selected {
  outline: 2px solid #078fa548;
  outline-offset: 1px;
  box-shadow: 0 10px 24px #078fa51c;
}
.atpc .atpc-product-image {
  height: 100%;
  min-height: 132px;
  border-right: 1px solid #e1e6ea;
}
.atpc .atpc-product-image b {
  left: 7px;
  top: 7px;
  max-width: calc(100% - 14px);
  padding: 4px 6px;
  overflow: hidden;
  font-size: 6px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.atpc .atpc-product-image > em {
  right: 6px;
  bottom: 6px;
  padding: 5px 6px;
  font-size: 6px;
}
.atpc .atpc-product-copy {
  display: flex;
  min-width: 0;
  padding: 12px 13px;
  flex-direction: column;
}
.atpc .atpc-product-copy strong {
  display: block;
  min-height: 0;
  overflow: hidden;
  font-size: 15px;
  line-height: 1.18;
  text-overflow: ellipsis;
}
.atpc .atpc-product-copy small {
  display: block;
  margin-top: 4px;
  font-size: 8px;
  line-height: 1.35;
}
.atpc .atpc-product-options {
  max-height: 22px;
  margin-top: 7px;
  overflow: hidden;
  gap: 4px;
}
.atpc .atpc-product-options em {
  padding: 3px 5px;
  font-size: 6px;
}
.atpc .atpc-product-copy > .atpc-product-select {
  margin-top: auto;
  padding-top: 8px;
  font-size: 8px;
}
.atpc .atpc-product-empty {
  display: grid;
  gap: 5px;
  justify-items: center;
  margin: 18px 0;
  padding: 28px;
  border: 1px dashed #bdc9d4;
  border-radius: 8px;
  color: var(--muted);
  background: #f8fafb;
  text-align: center;
}
.atpc .atpc-product-empty[hidden],
.atpc .atpc-product-more[hidden] {
  display: none !important;
}
.atpc .atpc-product-empty strong {
  color: var(--navy);
  font: 700 18px/1.2 Georgia, serif;
}
.atpc .atpc-product-more {
  display: flex;
  justify-content: center;
  margin: 18px 0 4px;
}
.atpc .atpc-product-more button {
  min-width: 190px;
  padding: 11px 18px;
  border: 1px solid var(--teal);
  border-radius: 5px;
  color: var(--teal);
  background: #fff;
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}
.atpc .atpc-product-more button:hover,
.atpc .atpc-product-more button:focus-visible {
  color: #fff;
  background: var(--teal);
}
@media (max-width: 760px) {
  .atpc .atpc-product-browser {
    grid-template-columns: 1fr;
  }
  .atpc .atpc-product-count {
    grid-column: 1;
  }
}
@media (max-width: 480px) {
  .atpc .atpc-products {
    grid-template-columns: 1fr;
  }
  .atpc .atpc-product {
    grid-template-columns: 92px minmax(0, 1fr);
    min-height: 120px;
  }
  .atpc .atpc-product-image {
    height: 100%;
    min-height: 120px;
  }
}

.atpc .atpc-location-options {
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 8px 0 6px;
}
.atpc .atpc-location-options button {
  display: grid;
  min-width: 0;
  min-height: 38px;
  padding: 6px 7px;
  border: 1px solid #bec9d6;
  border-radius: 6px;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  column-gap: 4px;
  color: var(--navy);
  background: #fff;
  text-align: left;
  cursor: pointer;
}
.atpc .atpc-location-options button b {
  color: var(--teal);
  font-size: 13px;
}
.atpc .atpc-location-options button span {
  font-size: 9px;
  font-weight: 900;
  line-height: 1.15;
}
.atpc .atpc-location-options button small {
  display: none;
}
.atpc .atpc-location-options button.selected {
  border-color: var(--teal);
  background: #f1fbfc;
}
.atpc .atpc-location-options button.active {
  outline: 3px solid #6740c733;
  border-color: var(--purple);
}
.atpc .atpc-location-art-control {
  border-left-color: var(--purple);
  background: #faf8fd;
}
.atpc .atpc-location-art-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 13px;
}
.atpc .atpc-location-art-actions button {
  min-height: 42px;
  padding: 8px;
  border: 1px solid var(--teal);
  border-radius: 6px;
  color: var(--teal);
  background: #fff;
  font-size: 9px;
  font-weight: 850;
  cursor: pointer;
}
.atpc .atpc-location-art-actions button:disabled {
  border-color: #cdd5df;
  color: #728093;
  background: #eef2f5;
  cursor: default;
}
.atpc .atpc-location-art-control > strong {
  display: block;
  margin-top: 10px;
  color: var(--navy);
  font-size: 10px;
  line-height: 1.35;
}
.atpc .atpc-location-rights {
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) !important;
  align-items: start;
  color: #38485c;
  font-size: 9px;
  line-height: 1.45;
}
.atpc .atpc-location-rights[hidden] {
  display: none !important;
}
.atpc .atpc-remove-location {
  width: 100%;
  margin-top: 9px;
  padding: 8px;
  border: 1px solid #b44155;
  border-radius: 5px;
  color: #9c2f43;
  background: #fff;
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
}
.atpc .atpc-remove-compose-location {
  margin-top: 10px;
}
.atpc .atpc-remove-location-note {
  display: block;
  margin-top: 4px;
  color: #74525a;
  font-size: 7px;
  line-height: 1.35;
  text-align: center;
}
.atpc .atpc-remove-location-note[hidden] {
  display: none !important;
}
.atpc .atpc-proof-location-tabs {
  display: flex;
  gap: 7px;
  margin: 12px 0;
  flex-wrap: wrap;
}
.atpc .atpc-proof-location-tabs[hidden] {
  display: none;
}
.atpc .atpc-proof-location-tabs button {
  padding: 8px 12px;
  border: 1px solid var(--teal);
  border-radius: 999px;
  color: var(--teal);
  background: #fff;
  font-size: 9px;
  font-weight: 900;
  cursor: pointer;
}
.atpc .atpc-proof-location-tabs button.active {
  color: #fff;
  background: var(--teal);
}
.atpc-confirmation-proofs {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  margin-top: 28px;
}
.atpc-confirmation-proofs figure {
  margin: 0;
}
.atpc-confirmation-proofs figure img {
  width: 100%;
}
.atpc-confirmation-proofs figcaption {
  padding: 9px;
  color: #fff;
  background: #071b43;
  text-align: center;
  font-weight: 800;
}

/* Alpha 2.24: explanatory progress, compact location editing, and phone-safe compose. */
.atpc .atpc-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  margin: 12px 0 0;
  white-space: normal;
}
.atpc .atpc-steps:before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 11px;
  right: 11px;
  top: 14px;
  height: 2px;
  background: #c8d2dc;
}
.atpc .atpc-steps > span,
.atpc .atpc-steps > span.active {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 1px 7px;
  min-width: 0;
  padding: 0 7px 0 0;
  border: 0;
  border-radius: 0;
  color: #657188;
  background: transparent;
  box-shadow: none;
  text-align: left;
  pointer-events: none;
}
.atpc .atpc-steps > span b {
  display: grid;
  grid-row: 1 / span 2;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 2px solid #aeb9c6;
  border-radius: 50%;
  color: #657188;
  background: #fff;
  font-size: 10px;
  line-height: 1;
}
.atpc .atpc-steps > span strong,
.atpc .atpc-steps > span small {
  display: block;
  min-width: 0;
}
.atpc .atpc-steps > span strong {
  padding-top: 1px;
  color: var(--navy);
  font-size: 9px;
  font-weight: 900;
  line-height: 1.15;
}
.atpc .atpc-steps > span small {
  color: #627084;
  font-size: 7px;
  font-weight: 650;
  line-height: 1.25;
}
.atpc .atpc-steps > span.complete b {
  color: #fff;
  border-color: var(--teal);
  background: var(--teal);
}
.atpc .atpc-steps > span.current b {
  color: #fff;
  border-color: var(--violet);
  background: linear-gradient(135deg, var(--teal), var(--violet));
  box-shadow: 0 0 0 3px #6b3ab619;
}
.atpc .atpc-steps > span.current strong {
  color: var(--violet);
}

.atpc .atpc-compose-location-nav {
  margin-top: 10px;
  padding: 10px;
  border: 1px solid #cbd9df;
  border-left: 4px solid var(--teal);
  border-radius: 7px;
  background: #f4faf9;
}
.atpc .atpc-compose-location-nav[hidden] {
  display: none !important;
}
.atpc .atpc-compose-location-nav > div:first-child strong,
.atpc .atpc-compose-location-nav > div:first-child small {
  display: block;
}
.atpc .atpc-compose-location-nav > div:first-child strong {
  color: var(--navy);
  font: 600 14px/1.15 Georgia, serif;
}
.atpc .atpc-compose-location-nav > div:first-child small {
  margin-top: 3px;
  color: #607080;
  font-size: 7px;
  line-height: 1.35;
}
.atpc .atpc-compose-location-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  margin-top: 8px;
}
.atpc .atpc-compose-location-tabs button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 5px;
  align-items: center;
  min-width: 0;
  min-height: 34px;
  padding: 5px 7px;
  border: 1px solid #b9c8d5;
  border-radius: 5px;
  color: var(--navy);
  background: #fff;
  text-align: left;
}
.atpc .atpc-compose-location-tabs button b {
  color: var(--teal);
  font-size: 6px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.atpc .atpc-compose-location-tabs button span {
  overflow: hidden;
  font-size: 8px;
  font-weight: 900;
  line-height: 1.15;
  text-overflow: ellipsis;
}
.atpc .atpc-compose-location-tabs button.active {
  color: #fff;
  border-color: var(--teal);
  background: linear-gradient(120deg, var(--teal), var(--navy2));
}
.atpc .atpc-compose-location-tabs button.active b {
  color: #dff7f4;
}

.atpc .atpc-preview-step .atpc-controls {
  min-width: 0;
  padding: 14px;
}
.atpc .atpc-preview-step .atpc-selection {
  padding-bottom: 10px;
}
.atpc .atpc-preview-step .atpc-choice-panel {
  margin-top: 10px;
  padding: 11px;
}
.atpc .atpc-preview-step .atpc-choice-heading {
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 8px;
}
.atpc .atpc-preview-step .atpc-choice-heading > span {
  width: 25px;
  height: 25px;
  font-size: 11px;
}
.atpc .atpc-preview-step .atpc-choice-heading strong {
  font-size: 13px;
}
.atpc .atpc-preview-step .atpc-choice-heading small {
  margin-top: 2px;
  font-size: 7px;
}
.atpc .atpc-preview-step .atpc-choice-panel > label {
  margin-top: 9px !important;
}
.atpc .atpc-preview-step .atpc-choice-panel select {
  min-height: 36px;
  padding: 7px 9px;
  font-size: 10px;
}

@media (max-width: 680px) {
  .atpc {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    overflow-x: clip;
  }
  .atpc .atpc-hero {
    gap: 12px;
    padding: 16px 10px;
  }
  .atpc .atpc-hero-brand,
  .atpc .atpc-hero-showcase {
    min-width: 0;
  }
  .atpc .atpc-hero-showcase {
    display: none;
  }
  .atpc .atpc-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 5px;
    margin-top: 10px;
  }
  .atpc .atpc-steps:before {
    display: none;
  }
  .atpc .atpc-steps > span,
  .atpc .atpc-steps > span.active {
    grid-template-columns: 23px minmax(0, 1fr);
    padding: 0;
  }
  .atpc .atpc-steps > span b {
    width: 23px;
    height: 23px;
    font-size: 8px;
  }
  .atpc .atpc-steps > span strong {
    font-size: 8px;
  }
  .atpc .atpc-steps > span small {
    font-size: 6.5px;
  }
  .atpc .atpc-section {
    min-width: 0;
    padding: 19px 9px;
  }
  .atpc .atpc-section-head {
    gap: 8px;
    margin-bottom: 13px;
  }
  .atpc .atpc-section-head h3 {
    font-size: clamp(24px, 8vw, 31px);
    line-height: 1.05;
  }
  .atpc .atpc-studio {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 11px;
  }
  .atpc .atpc-studio > *,
  .atpc .atpc-stage,
  .atpc .atpc-controls {
    min-width: 0;
    max-width: 100%;
  }
  .atpc .atpc-preview-step .atpc-stage {
    min-height: 395px;
  }
  .atpc .atpc-preview-step .atpc-mockup {
    transform: scale(0.76);
    transform-origin: center;
  }
  .atpc .atpc-preview-step .atpc-controls {
    padding: 10px;
  }
  .atpc .atpc-compose-location-nav {
    margin-top: 8px;
    padding: 8px;
  }
  .atpc .atpc-compose-location-tabs button {
    min-height: 38px;
  }
  .atpc .atpc-wizard-nav {
    gap: 7px;
    margin-top: 15px;
    padding-top: 12px;
  }
  .atpc .atpc-wizard-nav button {
    padding: 11px 13px;
  }
  .atpc .atpc-preview-step .atpc-resize-handle.n,
  .atpc .atpc-preview-step .atpc-resize-handle.s {
    left: 24px;
    right: 24px;
    height: 20px;
    min-height: 20px;
  }
  .atpc .atpc-preview-step .atpc-resize-handle.e,
  .atpc .atpc-preview-step .atpc-resize-handle.w {
    top: 24px;
    bottom: 24px;
    width: 20px;
    min-width: 20px;
  }
  .atpc .atpc-preview-step .atpc-resize-handle.nw,
  .atpc .atpc-preview-step .atpc-resize-handle.ne,
  .atpc .atpc-preview-step .atpc-resize-handle.sw,
  .atpc .atpc-preview-step .atpc-resize-handle.se {
    width: 24px;
    min-width: 24px;
    height: 24px;
    min-height: 24px;
  }
}

@media (max-width: 380px) {
  .atpc .atpc-preview-step .atpc-stage {
    min-height: 350px;
  }
  .atpc .atpc-preview-step .atpc-mockup {
    transform: scale(0.66);
  }
  .atpc .atpc-compose-location-tabs button {
    grid-template-columns: 1fr;
    gap: 1px;
  }
}

/* Alpha 2.26: begin at Step 1 with compact, premium raster source choices. */
.atpc .atpc-art-step {
  border-top: 5px solid var(--teal);
}
.atpc .atpc-step-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}
.atpc .atpc-inline-test-mode {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid #d6b56e;
  border-radius: 999px;
  color: #704300;
  background: #fff7e6;
  font-size: 8px;
  line-height: 1.2;
}
.atpc .atpc-inline-test-mode strong {
  letter-spacing: 0.08em;
}
.atpc .atpc-source-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 14px;
  padding: 8px;
  border: 1px solid #d9e0e9;
  border-radius: 11px;
  background: linear-gradient(135deg, #f8ffff, #f7f4fb);
  box-shadow: 0 9px 24px #071b430d;
}
.atpc .atpc-source-tabs button,
.atpc .atpc-source-tabs button.active {
  display: grid;
  grid-template-columns: minmax(105px, 42%) minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
  min-width: 0;
  min-height: 94px;
  overflow: hidden;
  padding: 0;
  border: 1px solid #cdd6df;
  border-radius: 8px;
  color: var(--navy);
  background: #fff;
  box-shadow: 0 5px 14px #071b430b;
  text-align: left;
  transform: none;
}
.atpc .atpc-source-tabs button:hover,
.atpc .atpc-source-tabs button:focus-visible {
  border-color: var(--teal);
  box-shadow: 0 8px 19px #071b4317;
  transform: none;
}
.atpc .atpc-source-tabs button.active {
  border: 2px solid var(--violet);
  box-shadow: 0 7px 20px #6b3ab61b;
}
.atpc .atpc-source-tabs button > span {
  display: grid;
  align-content: center;
  gap: 3px;
  min-width: 0;
  padding: 9px 10px;
}
.atpc .atpc-source-tabs button strong {
  color: var(--navy);
  font-size: 14px;
  line-height: 1.15;
}
.atpc .atpc-source-tabs button small,
.atpc .atpc-source-tabs button.active small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 650;
  line-height: 1.3;
}
.atpc .atpc-source-tabs button em {
  margin-top: 3px;
  color: var(--teal);
  font-size: 9px;
  font-style: normal;
  font-weight: 850;
}
.atpc .atpc-source-visual,
.atpc .atpc-source-visual.archive,
.atpc .atpc-source-visual.design,
.atpc .atpc-source-visual.upload {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 92px;
  overflow: hidden;
  border-radius: 6px 0 0 6px;
  background: #edf1f3;
}
.atpc .atpc-source-visual:before,
.atpc .atpc-source-visual:after,
.atpc .atpc-source-visual.archive:before,
.atpc .atpc-source-visual.design:before,
.atpc .atpc-source-visual.upload:before,
.atpc .atpc-source-visual.upload:after {
  content: none;
}
.atpc .atpc-source-visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 92px;
  object-fit: cover;
}
.atpc .atpc-source-visual.design img {
  box-sizing: border-box;
  padding: 7px;
  object-fit: contain;
  object-position: center;
  background: linear-gradient(135deg, #dce4ed, #edf1f5);
  filter: saturate(1.08) contrast(1.03);
}

.atpc .atpc-catalog-loading {
  grid-column: 1 / -1;
  padding: 18px;
  border: 1px dashed #b8c6d2;
  border-radius: 8px;
  color: var(--muted);
  background: #fff;
  font-size: 10px;
  font-weight: 750;
  text-align: center;
}

/* Use the compose page horizontally on desktop instead of producing a long
   control column beside unused canvas space. */
@media (min-width: 981px) {
  .atpc .atpc-preview-step .atpc-studio {
    grid-template-columns: minmax(540px, 1.35fr) minmax(430px, 0.95fr);
    gap: 16px;
    align-items: start;
  }
  .atpc .atpc-preview-step .atpc-stage {
    min-height: 620px;
    position: sticky;
    top: 18px;
  }
  .atpc .atpc-preview-step .atpc-mockup {
    transform: scale(1.4);
  }
  .atpc .atpc-preview-step .atpc-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    align-content: start;
    padding: 10px;
  }
  .atpc .atpc-preview-step .atpc-controls > * {
    min-width: 0;
    margin-top: 0;
  }
  .atpc .atpc-preview-step .atpc-selection,
  .atpc .atpc-preview-step .atpc-compose-location-nav,
  .atpc .atpc-preview-step .atpc-location-art-control,
  .atpc .atpc-preview-step .atpc-text-controls,
  .atpc .atpc-preview-step .atpc-license-box {
    grid-column: 1 / -1;
  }
}
.atpc .atpc-source-visual.design:after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, #071b4355, transparent 32%, transparent 72%, #6b3ab616);
  pointer-events: none;
}
.atpc .atpc-source-visual i {
  position: absolute;
  z-index: 2;
  right: 4px;
  bottom: 4px;
  display: block;
  width: auto;
  height: auto;
  padding: 3px 5px;
  border: 0;
  border-radius: 3px;
  color: #fff;
  background: #071b43cc;
  box-shadow: none;
  font: 600 5.5px/1.2 Inter, sans-serif;
  letter-spacing: 0.01em;
}

.atpc .atpc-filterbar {
  grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) minmax(220px, 1.25fr) auto;
}
.atpc .atpc-artworthy-filter {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 43px;
  padding: 7px 10px;
  border: 1px solid #c8d7d5;
  border-radius: 5px;
  color: #40515d;
  background: #f3f9f7;
  cursor: pointer;
  letter-spacing: 0;
  text-transform: none;
}
.atpc .atpc-artworthy-filter input {
  flex: none;
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: var(--teal);
}
.atpc .atpc-artworthy-filter span,
.atpc .atpc-artworthy-filter strong,
.atpc .atpc-artworthy-filter small {
  display: block;
}
.atpc .atpc-search-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 7px 0 11px;
}
.atpc .atpc-search-summary span {
  padding: 6px 9px;
  border: 1px solid #d9e3e7;
  border-radius: 999px;
  color: #536174;
  background: #fff;
  font-size: 8px;
  font-weight: 650;
}
.atpc .atpc-search-summary strong {
  color: var(--navy);
  font-size: 10px;
}
.atpc .atpc-search-total-note {
  display: block;
  margin: -4px 0 11px;
  color: #68758a;
  font-size: 7px;
}
.atpc .atpc-artworthy-filter strong {
  color: var(--navy);
  font-size: 8px;
}
.atpc .atpc-artworthy-filter small {
  margin-top: 2px;
  color: #64737d;
  font-size: 6.5px;
  font-weight: 600;
  line-height: 1.3;
}

@media (max-width: 980px) {
  .atpc .atpc-source-tabs {
    grid-template-columns: 1fr;
  }
  .atpc .atpc-source-tabs button,
  .atpc .atpc-source-tabs button.active {
    grid-template-columns: 150px minmax(0, 1fr);
    min-height: 82px;
  }
  .atpc .atpc-source-visual,
  .atpc .atpc-source-visual.archive,
  .atpc .atpc-source-visual.design,
  .atpc .atpc-source-visual.upload,
  .atpc .atpc-source-visual img {
    min-height: 80px;
  }
  .atpc .atpc-filterbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .atpc .atpc-filterbar .atpc-page {
    justify-self: end;
  }
}

@media (max-width: 680px) {
  .atpc .atpc-art-step {
    border-top-width: 4px;
  }
  .atpc .atpc-step-badges {
    justify-content: flex-start;
    margin-top: 9px;
  }
  .atpc .atpc-source-tabs {
    gap: 6px;
    padding: 6px;
  }
  .atpc .atpc-source-tabs button,
  .atpc .atpc-source-tabs button.active {
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 78px;
  }
  .atpc .atpc-source-visual,
  .atpc .atpc-source-visual.archive,
  .atpc .atpc-source-visual.design,
  .atpc .atpc-source-visual.upload,
  .atpc .atpc-source-visual img {
    height: 76px;
    min-height: 76px;
  }
  .atpc .atpc-source-tabs button > span {
    padding: 7px 8px;
  }
  .atpc .atpc-source-tabs button strong {
    font-size: 12px;
  }
  .atpc .atpc-source-tabs button small {
    font-size: 9px;
  }
  .atpc .atpc-source-tabs button em {
    font-size: 8px;
  }
  .atpc .atpc-filterbar {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .atpc .atpc-filterbar .atpc-page {
    justify-self: stretch;
    justify-content: space-between;
  }
  .atpc .atpc-filterbar select {
    min-width: 0;
  }
}

/* Keep compact tumbler mockups and their labels fully inside the preview/proof stage. */
.atpc .atpc-preview-step .atpc-mockup.tumbler,
.atpc .atpc-proof-step .atpc-mockup.tumbler {
  margin-bottom: 18px;
}

/* -------------------------------------------------------------------------
 * Alpha 2.34 — Customer Experience / Design Engine v2 foundation
 * ---------------------------------------------------------------------- */
.atpc {
  --atpc-text-small: 14px;
  --atpc-text-base: 16px;
  --atpc-text-large: 20px;
  --atpc-touch: 44px;
}

/* Customer-facing readability floor. Tiny helper/meta text from earlier alphas
   is deliberately promoted; the interface should not require zooming to read. */
.atpc small,
.atpc .atpc-status,
.atpc .atpc-product small,
.atpc .atpc-art-copy p,
.atpc .atpc-proof-summary dt,
.atpc .atpc-proof-summary dd,
.atpc .atpc-wizard-nav span,
.atpc .atpc-choice-heading small,
.atpc .atpc-text-controls p,
.atpc .atpc-selection small {
  font-size: var(--atpc-text-small) !important;
  line-height: 1.45 !important;
}
.atpc button,
.atpc select,
.atpc input:not([type="range"]):not([type="color"]) {
  min-height: var(--atpc-touch);
  font-size: 15px !important;
}
.atpc button {
  padding-block: 10px;
}
.atpc .atpc-product,
.atpc .atpc-art-card,
.atpc [data-product-template] {
  cursor: pointer;
}

.atpc .atpc-art-quick-actions,
.atpc .atpc-editor-view-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.atpc .atpc-art-quick-actions button,
.atpc .atpc-editor-view-toggle button {
  min-width: 78px;
  min-height: 44px;
}
.atpc .atpc-editor-view-toggle {
  position: absolute;
  z-index: 20;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  justify-content: center;
  padding: 5px;
  border-radius: 999px;
  background: #fffef8ee;
  box-shadow: 0 5px 18px #071b4322;
}
.atpc .atpc-editor-view-toggle[hidden] {
  display: none !important;
}
.atpc .atpc-editor-view-toggle button {
  border-radius: 999px;
  background: transparent;
  color: var(--navy);
}
.atpc .atpc-editor-view-toggle button.active {
  background: var(--navy);
  color: #fff;
}

.atpc .atpc-print-quality {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #cdd4df;
  border-radius: 10px;
  background: #fff;
}
.atpc .atpc-print-quality strong,
.atpc .atpc-print-quality small {
  display: block;
}
.atpc .atpc-print-quality[data-level="excellent"],
.atpc .atpc-print-quality[data-level="good"] {
  border-color: #6f9a7a;
  background: #f5fbf6;
}
.atpc .atpc-print-quality[data-level="warning"] {
  border-color: #c69a42;
  background: #fffaf0;
}
.atpc .atpc-print-quality[data-level="low"] {
  border-color: #ba5b5b;
  background: #fff6f6;
}

/* Cylindrical products have two explicitly different views. Design Surface is
   the mathematically correct flat wrap; Product Preview applies visual cylinder
   shading only as an overlay, never by distorting the artwork pixels. */
.atpc .atpc-mockup.tumbler .atpc-print-area::after,
.atpc .atpc-proof-mockup.tumbler .atpc-print-area::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 12;
  background: linear-gradient(90deg, #07111e4d 0%, transparent 18%, #ffffff30 48%, transparent 76%, #07111e55 100%);
}
.atpc .atpc-mockup.tumbler.atpc-design-surface {
  width: min(680px, 92%);
  height: 390px;
  filter: none;
}
.atpc .atpc-mockup.tumbler.atpc-design-surface::before,
.atpc .atpc-mockup.tumbler.atpc-design-surface::after {
  display: none;
}
.atpc .atpc-mockup.tumbler.atpc-design-surface .atpc-print-area {
  left: 50%;
  top: 52%;
  width: min(82%, 570px);
  height: auto;
  aspect-ratio: var(--atpc-print-aspect, 1.134);
  transform: translate(-50%, -50%);
  border: 2px dashed #7b8797;
  border-radius: 8px;
  background: #f7f8fa;
  box-shadow: 0 8px 26px #071b4318;
}
.atpc .atpc-mockup.tumbler.atpc-design-surface .atpc-print-area::after {
  display: none;
}
.atpc .atpc-mockup.tumbler.atpc-design-surface .atpc-product-label {
  bottom: 4px;
}
.atpc .atpc-preview-step .atpc-mockup.tumbler:not(.atpc-design-surface),
.atpc .atpc-proof-step .atpc-mockup.tumbler {
  width: 280px;
  height: 350px;
  margin: 10px auto 34px;
}
.atpc .atpc-preview-step .atpc-mockup.tumbler:not(.atpc-design-surface) .atpc-product-label,
.atpc .atpc-proof-step .atpc-mockup.tumbler .atpc-product-label {
  bottom: -24px;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 980px) {
  .atpc {
    --atpc-text-small: 14px;
    --atpc-text-base: 16px;
  }
  .atpc .atpc-mockup.tumbler.atpc-design-surface {
    width: 94%;
    height: 360px;
  }
}

@media (max-width: 680px) {
  .atpc {
    --atpc-text-small: 15px;
    --atpc-text-base: 17px;
  }
  .atpc .atpc-wizard-nav {
    gap: 10px;
  }
  .atpc .atpc-wizard-nav button,
  .atpc .atpc-art-quick-actions button {
    width: 100%;
    min-height: 48px;
  }
  .atpc .atpc-art-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .atpc .atpc-editor-view-toggle {
    width: calc(100% - 24px);
    top: 8px;
  }
  .atpc .atpc-editor-view-toggle button {
    flex: 1 1 0;
    min-height: 46px;
  }
  .atpc .atpc-mockup.tumbler.atpc-design-surface {
    width: 100%;
    height: 330px;
  }
  .atpc .atpc-mockup.tumbler.atpc-design-surface .atpc-print-area {
    width: 90%;
  }
}


/* -------------------------------------------------------------------------
 * Alpha 2.35 — catalog clarity, full-resolution art, and customizer polish
 * ---------------------------------------------------------------------- */
.atpc .atpc-product-image {
  background: #d5dde5 !important;
}
.atpc .atpc-product-image img {
  object-fit: contain;
  mix-blend-mode: multiply;
}
.atpc .atpc-product.selected {
  max-width: 720px;
  margin-inline: auto;
  border-width: 2px;
}
.atpc .atpc-products.atpc-product-selection-locked {
  grid-template-columns: minmax(0, 720px);
  justify-content: center;
}
.atpc .atpc-product[hidden] {
  display: none !important;
}
.atpc .atpc-source-visual.design {
  background: linear-gradient(135deg, #b9c8d6, #9fb5c4);
}
.atpc .atpc-source-visual.design img {
  padding: 5px;
  background: transparent;
  mix-blend-mode: multiply;
}
.atpc .atpc-source-visual.upload img {
  object-position: 92% 70%;
  transform: scale(1.35);
}
.atpc .atpc-preview-step .atpc-stage {
  min-height: 720px;
  overflow: visible;
  padding-bottom: 64px;
}
.atpc .atpc-preview-step .atpc-product-label,
.atpc .atpc-proof-step .atpc-product-label {
  width: min(92vw, 560px);
  max-width: 560px !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  text-align: center;
  line-height: 1.25;
}
@media (min-width: 981px) {
  .atpc .atpc-preview-step .atpc-stage {
    min-height: 760px;
  }
  .atpc .atpc-preview-step .atpc-mockup:not(.tumbler) {
    transform: scale(1.5);
  }
}
/* Product-view cylinder is an approximate front crop of the mathematically
   exact flat wrap. Keep editing on Design Area; do not show the editor frame
   over the physical preview. */
.atpc .atpc-preview-step .atpc-mockup.tumbler:not(.atpc-design-surface) .atpc-art-layer,
.atpc .atpc-preview-step .atpc-mockup.tumbler:not(.atpc-design-surface) .atpc-art-layer:hover,
.atpc .atpc-preview-step .atpc-mockup.tumbler:not(.atpc-design-surface) .atpc-art-layer:focus,
.atpc .atpc-proof-step .atpc-mockup.tumbler .atpc-art-layer {
  outline: none !important;
  box-shadow: none !important;
}
.atpc .atpc-preview-step .atpc-mockup.tumbler:not(.atpc-design-surface) .atpc-print-area,
.atpc .atpc-proof-step .atpc-mockup.tumbler .atpc-print-area {
  left: 94px;
  width: 112px;
  overflow: hidden;
}
.atpc .atpc-preview-step .atpc-mockup.tumbler:not(.atpc-design-surface) .atpc-art-layer img,
.atpc .atpc-proof-step .atpc-mockup.tumbler .atpc-art-layer img {
  object-fit: cover !important;
}
.atpc .atpc-preview-step .atpc-mockup.tumbler:not(.atpc-design-surface) .atpc-ruler,
.atpc .atpc-proof-step .atpc-mockup.tumbler .atpc-ruler {
  display: none !important;
}
.atpc .atpc-print-quality[data-level="warning"],
.atpc .atpc-print-quality[data-level="low"] {
  border-color: #7c91aa;
  background: #f4f7fa;
}
@media (max-width: 680px) {
  .atpc .atpc-preview-step .atpc-stage {
    min-height: 560px;
    padding-bottom: 74px;
  }
}

.atpc .atpc-art-quick-actions .atpc-smart-layout {
  min-width: 132px;
  font-weight: 800;
}
.atpc .atpc-smart-layout-status {
  display: block;
  margin: 8px 0 12px;
  font-size: 14px;
  line-height: 1.45;
}

/* -------------------------------------------------------------------------
 * Alpha 2.36 — artwork-first product ideas + optional customization
 * ---------------------------------------------------------------------- */
.atpc .atpc-section-head p { max-width: 780px; margin: 8px 0 0; font-size: 16px; line-height: 1.5; }
.atpc .atpc-products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.atpc .atpc-product-idea { min-width: 0; overflow: hidden; }
.atpc .atpc-product-idea .atpc-product-image { position: relative; min-height: 210px; background: #c7d0da !important; overflow: hidden; }
.atpc .atpc-product-idea .atpc-product-base-image { width: 100%; height: 100%; object-fit: contain; }
.atpc .atpc-product-art-sample { position: absolute; inset: 22% 25% 20%; display: grid; place-items: center; pointer-events: none; overflow: hidden; border-radius: 2px; }
.atpc .atpc-product-art-sample img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: normal !important; }
.atpc .category-wall-art .atpc-product-art-sample { inset: 10% 12%; }
.atpc .category-drinkware .atpc-product-art-sample { inset: 26% 33% 20%; border-radius: 10px; }
.atpc .category-apparel .atpc-product-art-sample { inset: 29% 30% 22%; }
.atpc .category-bag .atpc-product-art-sample { inset: 28% 27% 18%; }
.atpc .atpc-product-idea-actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 12px; }
.atpc .atpc-product-idea-actions button { min-height: 46px; width: 100%; font-size: 15px; font-weight: 800; }
.atpc .atpc-primary-cart { background: #5b35c9 !important; color: #fff !important; border-color: #5b35c9 !important; }
.atpc .atpc-product-customize { background: #fff; color: #071b43; border: 1px solid #9badc0; border-radius: 7px; }
.atpc .atpc-controls, .atpc .atpc-choice-panel { min-width: 0; }
.atpc .atpc-choice-heading, .atpc .atpc-choice-heading > div, .atpc .atpc-choice-panel label, .atpc .atpc-choice-panel small { min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: normal; }
.atpc .atpc-art-zoom-control small { display: grid !important; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: start; }
.atpc .atpc-art-zoom-control small span:last-child { text-align: right; }
.atpc .atpc-preview-step .atpc-editor { grid-template-columns: minmax(0, 1.6fr) minmax(360px, .9fr); }
.atpc .atpc-preview-step .atpc-stage { min-width: 0; }
.atpc .atpc-source-visual.upload img { object-position: center; transform: none; width: 100%; height: 100%; object-fit: cover; }

/* Lightweight deterministic 3D cylinder. The same exact artwork texture is
   sliced around a CSS 3D cylinder; no generative rendering changes the art. */
.atpc .atpc-cylinder3d[hidden] { display: none !important; }
.atpc .atpc-mockup.atpc-has-3d-cylinder > .atpc-print-area,
.atpc .atpc-mockup.atpc-has-3d-cylinder > .atpc-product-label { visibility: hidden; }
.atpc .atpc-cylinder3d { position: absolute; inset: 0; display: grid; place-items: center; perspective: 900px; cursor: grab; touch-action: none; z-index: 8; }
.atpc .atpc-cylinder3d:active { cursor: grabbing; }
.atpc .atpc-cylinder3d-body { position: relative; width: 18px; height: 260px; transform-style: preserve-3d; transform: rotateX(-5deg) rotateY(0deg); transition: transform .05s linear; }
.atpc .atpc-cylinder3d-panel { position: absolute; left: 0; top: 0; width: 18px; height: 260px; overflow: hidden; transform: rotateY(var(--panel-angle)) translateZ(68px); transform-origin: center center; backface-visibility: hidden; background: #e7e7e4; }
.atpc .atpc-cylinder3d-panel img { position: absolute; top: 0; height: 100%; max-width: none !important; object-fit: cover; }
.atpc .atpc-cylinder3d-hint { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); width: max-content; max-width: 90%; padding: 7px 12px; border-radius: 999px; background: rgba(7,27,67,.88); color: #fff; font-size: 14px; }
@media (max-width: 980px) { .atpc .atpc-products { grid-template-columns: repeat(2, minmax(0,1fr)); } .atpc .atpc-preview-step .atpc-editor { grid-template-columns: 1fr; } }
@media (max-width: 680px) { .atpc .atpc-products { grid-template-columns: 1fr; } .atpc .atpc-product-idea .atpc-product-image { min-height: 250px; } }

/* -------------------------------------------------------------------------
 * Alpha 2.37 — approved artwork-first marketplace concept
 * ---------------------------------------------------------------------- */
.atpc .atpc-product-step {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  transform: none;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid #dce3ea;
  border-radius: 14px;
  background: #f8fafc;
  box-shadow: 0 18px 48px rgba(7, 27, 67, .10);
}
.atpc .atpc-market-layout {
  display: grid;
  width: 100%;
  max-width: 100%;
  grid-template-columns: 170px 280px minmax(0, 1fr);
  min-height: 760px;
  overflow: hidden;
}
.atpc .atpc-market-rail {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 12px;
  background: #0d2948;
}
.atpc .atpc-market-rail button {
  display: grid;
  grid-template-columns: 28px minmax(0,1fr);
  align-items: center;
  min-height: 48px;
  padding: 9px 11px;
  border: 0;
  border-radius: 9px;
  color: #fff;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.atpc .atpc-market-rail button span {
  font-size: 18px;
  text-align: center;
}
.atpc .atpc-market-rail button strong {
  font-size: 15px;
  font-weight: 750;
}
.atpc .atpc-market-rail button:hover,
.atpc .atpc-market-rail button:focus-visible,
.atpc .atpc-market-rail button.active {
  background: linear-gradient(135deg, #6b37d8, #5d31c4);
}
.atpc .atpc-market-art {
  min-width: 0;
  padding: 22px 18px;
  border-right: 1px solid #e0e6ed;
  background: #fff;
}
.atpc .atpc-market-art-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 13px;
}
.atpc .atpc-market-art-head > strong { font-size: 18px; color: var(--navy); }
.atpc .atpc-market-art-head > span {
  padding: 5px 9px;
  border-radius: 999px;
  color: #28683a;
  background: #e7f5e9;
  font-size: 13px;
  font-weight: 800;
}
.atpc .atpc-market-art-image {
  display: grid;
  place-items: center;
  aspect-ratio: 1.06;
  overflow: hidden;
  border-radius: 9px;
  background: #e9edf1;
}
.atpc .atpc-market-art-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.atpc .atpc-market-art h4 {
  margin: 13px 0 5px;
  color: var(--navy);
  font: 700 17px/1.25 Georgia, serif;
  overflow-wrap: anywhere;
}
.atpc .atpc-market-art > p {
  min-height: 22px;
  margin: 0 0 13px;
  color: #526275;
  font-size: 14px;
  line-height: 1.45;
}
.atpc .atpc-market-art-actions {
  display: grid;
  gap: 8px;
}
.atpc .atpc-market-art-actions button,
.atpc .atpc-market-upload-promo button {
  width: 100%;
  border: 1px solid #a9b7c6;
  border-radius: 7px;
  color: var(--navy);
  background: #fff;
  font-weight: 800;
}
.atpc .atpc-market-art-actions button:last-child,
.atpc .atpc-market-upload-promo button {
  border-color: #6b37d8;
  color: #5f31c9;
}
.atpc .atpc-market-upload-promo {
  display: grid;
  gap: 9px;
  margin-top: 22px;
  padding: 12px;
  border: 1px dashed #adb9ca;
  border-radius: 10px;
  text-align: center;
}
.atpc .atpc-market-upload-promo > strong { font-size: 14px; }
.atpc .atpc-market-upload-promo img {
  width: 100%;
  height: 90px;
  object-fit: cover;
  border-radius: 7px;
}
.atpc .atpc-market-upload-promo small { color: #5a6879; font-size: 13px !important; }
.atpc .atpc-market-main {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 22px 22px 18px;
  background: #fbfcfe;
}
.atpc .atpc-market-head {
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  background: transparent;
}
.atpc .atpc-market-head h3 { font-size: clamp(27px, 2.3vw, 36px); }
.atpc .atpc-market-head p { max-width: 900px; color: #33465b; }
.atpc .atpc-product-browser {
  display: block !important;
  padding: 0;
  border: 0;
  background: transparent;
}
.atpc .atpc-product-type-intro {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 10px;
  color: var(--navy);
}
.atpc .atpc-product-type-intro strong { font-size: 16px; }
.atpc .atpc-product-type-intro span { color: #667587; font-size: 14px; }
.atpc .atpc-product-types {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
}
.atpc .atpc-product-types button {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 42px !important;
  padding: 8px 14px !important;
  gap: 7px;
  align-items: center;
  border: 1px solid #c9d3de !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--navy) !important;
  box-shadow: none !important;
}
.atpc .atpc-product-types button img { display: none !important; }
.atpc .atpc-product-types button strong { font-size: 14px !important; }
.atpc .atpc-product-types button small {
  display: inline-flex !important;
  margin: 0 !important;
  padding: 2px 6px;
  border-radius: 999px;
  background: #eef2f6;
  color: #526275 !important;
  font-size: 12px !important;
}
.atpc .atpc-product-types button.active,
.atpc .atpc-product-types button[aria-pressed="true"] {
  border-color: #6333cc !important;
  background: #6333cc !important;
  color: #fff !important;
}
.atpc .atpc-product-types button.active small,
.atpc .atpc-product-types button[aria-pressed="true"] small {
  background: rgba(255,255,255,.18);
  color: #fff !important;
}
.atpc .atpc-product-search {
  display: grid !important;
  grid-template-columns: minmax(0, 360px);
  margin: 8px 0 14px;
}
.atpc .atpc-product-search span { font-size: 13px; color: #5b697a; }
.atpc .atpc-product-count { margin: 4px 0 12px; color: #5b697a; font-size: 14px !important; }
.atpc .atpc-market-products-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin: 14px 0 10px;
}
.atpc .atpc-market-products-head strong { color: var(--navy); font-size: 19px; }
.atpc .atpc-market-products-head span { color: #647386; font-size: 14px; }
.atpc .atpc-products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 14px !important;
}
.atpc .atpc-product-idea {
  display: flex !important;
  min-width: 0;
  min-height: 0 !important;
  flex-direction: column;
  border: 1px solid #d8e0e8 !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(7,27,67,.06) !important;
  transform: none;
}
.atpc .atpc-product-idea:hover,
.atpc .atpc-product-idea:focus-visible {
  transform: translateY(-3px);
  border-color: #b9c8d7 !important;
  box-shadow: 0 14px 30px rgba(7,27,67,.12) !important;
}
.atpc .atpc-product-idea .atpc-product-image {
  position: relative;
  display: grid;
  min-height: 255px !important;
  height: 255px !important;
  padding: 8px;
  overflow: hidden;
  border-right: 0 !important;
  border-bottom: 1px solid #e3e8ee;
  background: #d2d7dc !important;
}
.atpc .atpc-product-idea .atpc-product-base-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: contrast(.98) saturate(.92);
}
.atpc .atpc-product-art-sample {
  position: absolute;
  display: grid;
  place-items: center;
  overflow: hidden;
  pointer-events: none;
  border-radius: 2px;
}
.atpc .atpc-product-art-sample img { width: 100%; height: 100%; object-fit: cover; }
.atpc .category-wall-art .atpc-product-art-sample { inset: 14% 16% 13%; }
.atpc .category-apparel .atpc-product-art-sample { inset: 31% 32% 21%; }
.atpc .category-drinkware .atpc-product-art-sample { inset: 25% 31% 16%; border-radius: 8px; }
.atpc .category-home .atpc-product-art-sample { inset: 21% 21%; }
.atpc .category-accessories .atpc-product-art-sample { inset: 27% 28% 20%; }
.atpc .atpc-product-image > b,
.atpc .atpc-product-image > em { display: none !important; }
.atpc .atpc-best-match,
.atpc .atpc-card-3d {
  position: absolute;
  z-index: 7;
  top: 10px;
  padding: 6px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 850;
  box-shadow: 0 4px 14px rgba(7,27,67,.12);
}
.atpc .atpc-best-match { left: 10px; color: #246b38; background: #e6f6e9; }
.atpc .atpc-card-3d { right: 10px; color: #5530bf; background: rgba(255,255,255,.94); }
.atpc .atpc-product-idea .atpc-product-copy {
  display: flex !important;
  flex: 1;
  min-width: 0;
  padding: 14px !important;
  flex-direction: column;
}
.atpc .atpc-product-idea .atpc-product-copy > strong {
  display: block;
  color: var(--navy);
  font-size: 17px !important;
  line-height: 1.2 !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
}
.atpc .atpc-product-idea .atpc-product-copy > small {
  min-height: 38px;
  margin-top: 5px;
  color: #536275;
  font-size: 13px !important;
}
.atpc .atpc-product-price-note {
  display: block;
  margin: 5px 0 2px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 800;
}
.atpc .atpc-product-idea-actions {
  display: grid;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
}
.atpc .atpc-product-idea-actions button {
  min-height: 45px !important;
  width: 100%;
  border-radius: 7px !important;
  font-size: 14px !important;
  font-weight: 850 !important;
}
.atpc .atpc-primary-cart {
  border-color: #6333cc !important;
  background: #6333cc !important;
  color: #fff !important;
}
.atpc .atpc-product-customize {
  border: 1px solid #aab8c7 !important;
  background: #fff !important;
  color: var(--navy) !important;
}
.atpc .atpc-product-selection-locked .atpc-product.selected {
  grid-column: span 2;
  max-width: 720px;
}
.atpc .atpc-product-setup {
  margin-top: 16px;
  border-radius: 12px;
  background: #fff;
}
.atpc .atpc-market-trust {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 10px;
  margin-top: 18px;
  padding: 12px;
  border: 1px solid #e0e6ec;
  border-radius: 10px;
  background: #fff;
}
.atpc .atpc-market-trust > span {
  display: grid;
  grid-template-columns: 30px minmax(0,1fr);
  column-gap: 8px;
  align-items: center;
}
.atpc .atpc-market-trust b { grid-row: span 2; font-size: 21px; color: #5d35c8; text-align: center; }
.atpc .atpc-market-trust strong { color: var(--navy); font-size: 13px; }
.atpc .atpc-market-trust small { color: #637185; font-size: 12px !important; }
.atpc .atpc-market-nav { margin-top: 14px; }

@media (max-width: 1240px) {
  .atpc .atpc-market-layout { grid-template-columns: 72px 240px minmax(0,1fr); }
  .atpc .atpc-market-rail button { grid-template-columns: 1fr; justify-items: center; padding-inline: 5px; }
  .atpc .atpc-market-rail button strong { font-size: 11px; text-align: center; }
  .atpc .atpc-products { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
}
@media (max-width: 980px) {
  .atpc .atpc-product-step { width: min(980px, 98vw); }
  .atpc .atpc-market-layout { grid-template-columns: 1fr; }
  .atpc .atpc-market-rail {
    position: sticky;
    z-index: 25;
    top: 0;
    display: flex;
    overflow-x: auto;
    padding: 8px;
    flex-direction: row;
  }
  .atpc .atpc-market-rail button {
    display: inline-flex;
    grid-template-columns: none;
    min-width: max-content;
    gap: 6px;
    padding: 7px 10px;
  }
  .atpc .atpc-market-rail button strong { font-size: 13px; }
  .atpc .atpc-market-art {
    display: grid;
    grid-template-columns: 150px minmax(0,1fr);
    column-gap: 14px;
    align-items: start;
    border-right: 0;
    border-bottom: 1px solid #e0e6ed;
  }
  .atpc .atpc-market-art-head { grid-column: 1 / -1; }
  .atpc .atpc-market-art-image { grid-row: span 4; }
  .atpc .atpc-market-upload-promo { display: none; }
  .atpc .atpc-products { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .atpc .atpc-market-trust { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .atpc .atpc-product-step { width: 100%; margin-left: 0; transform: none; border-radius: 0; }
  .atpc .atpc-market-main { padding: 17px 12px 14px; }
  .atpc .atpc-market-art { grid-template-columns: 110px minmax(0,1fr); padding: 14px 12px; }
  .atpc .atpc-market-art h4 { font-size: 15px; }
  .atpc .atpc-product-type-intro { display: grid; gap: 2px; }
  .atpc .atpc-product-types { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .atpc .atpc-product-types button { flex: 0 0 auto; }
  .atpc .atpc-market-products-head { display: grid; gap: 2px; }
  .atpc .atpc-products { grid-template-columns: 1fr !important; }
  .atpc .atpc-product-idea .atpc-product-image { height: 310px !important; min-height: 310px !important; }
  .atpc .atpc-market-trust { grid-template-columns: 1fr; }
  .atpc .atpc-market-nav { position: sticky; bottom: 0; z-index: 20; background: #fff; }
}

/* -------------------------------------------------------------------------
 * Alpha 2.39 — Gallery Rendering Quality Gate
 * Controlled product scenes replace arbitrary provider lifestyle composites.
 * ---------------------------------------------------------------------- */
.atpc .atpc-market-rail button[hidden] {
  display: none !important;
}
.atpc .atpc-product-idea .atpc-product-image {
  place-items: center;
  background: linear-gradient(145deg, #c5ced6 0%, #aeb9c4 100%) !important;
}
.atpc .atpc-gallery-preview {
  position: relative;
  display: grid;
  width: 100%;
  height: 100%;
  min-width: 0;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
}
.atpc .atpc-gallery-preview::before {
  content: "";
  position: absolute;
  inset: 10% 8% 5%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.58), rgba(255,255,255,0) 68%);
  filter: blur(8px);
  pointer-events: none;
}
.atpc .atpc-gallery-object,
.atpc .atpc-gallery-object * {
  box-sizing: border-box;
}
.atpc .atpc-gallery-object {
  position: relative;
  z-index: 2;
  display: block;
}
.atpc .atpc-gallery-surface {
  position: absolute;
  display: block;
  overflow: hidden;
  background: #f7f5ef;
}
.atpc .atpc-gallery-art {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  border-radius: 0 !important;
  mix-blend-mode: normal !important;
  object-position: center;
}
.atpc .atpc-gallery-art-contain { object-fit: contain !important; }
.atpc .atpc-gallery-art-cover { object-fit: cover !important; }
.atpc .atpc-gallery-art-missing,
.atpc .atpc-gallery-unsupported {
  display: grid;
  width: min(84%, 260px);
  min-height: 90px;
  padding: 16px;
  place-items: center;
  border: 1px dashed #718096;
  border-radius: 10px;
  color: #263b54;
  background: rgba(255,255,255,.72);
  font-size: 14px;
  font-weight: 750;
  text-align: center;
}

/* Controlled wall-art scenes. */
.atpc .atpc-gallery-frame {
  width: 70%;
  height: 80%;
  padding: 8px;
  border: 2px solid #171a1f;
  border-radius: 2px;
  background: linear-gradient(135deg, #24272c, #07090b);
  box-shadow: 0 18px 24px rgba(7,27,67,.28), inset 0 0 0 1px rgba(255,255,255,.16);
}
.atpc .atpc-gallery-frame .atpc-gallery-mat {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 9%;
  background: #f6f3ea;
  box-shadow: inset 0 0 0 1px #ddd8cc;
}
.atpc .atpc-gallery-frame .atpc-gallery-surface { inset: 9%; }
.atpc .atpc-gallery-canvas {
  width: 70%;
  height: 80%;
  border: 5px solid #ede8dc;
  background: #f4f0e7;
  box-shadow: 10px 12px 0 #848e98, 0 20px 26px rgba(7,27,67,.24);
  transform: translate(-4px, -5px);
}
.atpc .atpc-gallery-canvas .atpc-gallery-surface { inset: 0; }
.atpc .atpc-gallery-poster {
  width: 68%;
  height: 82%;
  padding: 7px;
  background: #fff;
  box-shadow: 0 16px 25px rgba(7,27,67,.27);
}
.atpc .atpc-gallery-poster .atpc-gallery-surface { inset: 7px; }
.atpc .atpc-gallery-panel {
  width: 70%;
  height: 80%;
  padding: 4px;
  border: 1px solid rgba(255,255,255,.75);
  background: linear-gradient(135deg, #eef3f5, #858f98);
  box-shadow: 7px 9px 0 #78838d, 0 19px 28px rgba(7,27,67,.27);
}
.atpc .atpc-gallery-panel::after {
  content: "";
  position: absolute;
  inset: 4px;
  z-index: 3;
  background: linear-gradient(125deg, rgba(255,255,255,.28), transparent 34%, transparent 72%, rgba(255,255,255,.14));
  pointer-events: none;
}
.atpc .atpc-gallery-panel .atpc-gallery-surface { inset: 4px; }

/* Controlled single-product drinkware scenes. */
.atpc .atpc-gallery-mug {
  width: 76%;
  height: 64%;
  transform: translateX(-3%);
  filter: drop-shadow(0 18px 17px rgba(7,27,67,.27));
}
.atpc .atpc-gallery-mug-body {
  position: absolute;
  inset: 0 19% 0 5%;
  overflow: hidden;
  border: 1px solid #aeb4bb;
  border-radius: 8% 8% 16% 16% / 9% 9% 12% 12%;
  background: #f7f8f8;
  box-shadow: inset 18px 0 18px rgba(0,0,0,.10), inset -12px 0 14px rgba(255,255,255,.55);
}
.atpc .atpc-gallery-mug-body::after,
.atpc .atpc-gallery-tumbler-body::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  background: linear-gradient(90deg, rgba(4,14,26,.25), transparent 20%, rgba(255,255,255,.20) 48%, transparent 73%, rgba(4,14,26,.28));
  pointer-events: none;
}
.atpc .atpc-gallery-mug .atpc-gallery-surface { inset: 11% 0 8%; }
.atpc .atpc-gallery-mug-handle {
  position: absolute;
  z-index: 0;
  top: 18%;
  right: 0;
  width: 31%;
  height: 58%;
  border: 12px solid #f5f6f6;
  border-left-width: 8px;
  border-radius: 45%;
  box-shadow: 2px 3px 5px rgba(7,27,67,.18), inset 0 0 0 1px #aeb4bb;
}
.atpc .atpc-gallery-tumbler {
  width: 43%;
  height: 88%;
  filter: drop-shadow(0 19px 17px rgba(7,27,67,.28));
}
.atpc .atpc-gallery-tumbler-lid {
  position: absolute;
  z-index: 4;
  top: 0;
  left: 1%;
  width: 98%;
  height: 9%;
  border: 1px solid #79828a;
  border-radius: 50%;
  background: linear-gradient(#eef1f2, #6d767e 55%, #d9dcde);
  box-shadow: 0 3px 4px rgba(7,27,67,.22);
}
.atpc .atpc-gallery-tumbler-body {
  position: absolute;
  inset: 4% 5% 2%;
  overflow: hidden;
  border: 1px solid #858e96;
  border-radius: 8% 8% 14% 14% / 4% 4% 7% 7%;
  background: #dfe3e4;
  box-shadow: inset 14px 0 16px rgba(0,0,0,.11), inset -12px 0 16px rgba(255,255,255,.48);
}
.atpc .atpc-gallery-tumbler .atpc-gallery-surface { inset: 7% 0 4%; }

/* Controlled flat-lay shirt scene: never a model photograph. */
.atpc .atpc-gallery-shirt {
  width: 84%;
  height: 78%;
  clip-path: polygon(21% 4%, 37% 0, 43% 10%, 57% 10%, 63% 0, 79% 4%, 100% 23%, 86% 43%, 75% 35%, 78% 100%, 22% 100%, 25% 35%, 14% 43%, 0 23%);
  background: linear-gradient(100deg, #e8e4dc 0%, #fbfaf6 47%, #ded9d1 100%);
  box-shadow: 0 19px 25px rgba(7,27,67,.24);
}
.atpc .atpc-gallery-shirt::after {
  content: "";
  position: absolute;
  inset: 2%;
  clip-path: inherit;
  border: 1px solid rgba(112,107,99,.3);
  pointer-events: none;
}
.atpc .atpc-gallery-shirt-neck {
  position: absolute;
  z-index: 4;
  top: -1%;
  left: 42%;
  width: 16%;
  height: 14%;
  border: 5px solid #d4cfc7;
  border-top: 0;
  border-radius: 0 0 50% 50%;
  background: #b4bec7;
}
.atpc .atpc-gallery-shirt .atpc-gallery-surface {
  top: 25%;
  left: 31%;
  width: 38%;
  height: 50%;
  background: transparent;
}

/* Controlled tote scene. */
.atpc .atpc-gallery-tote {
  width: 65%;
  height: 82%;
  filter: drop-shadow(0 18px 18px rgba(7,27,67,.24));
}
.atpc .atpc-gallery-tote-handles {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 21%;
  width: 58%;
  height: 35%;
  border: 9px solid #d6c9b4;
  border-bottom: 0;
  border-radius: 48% 48% 0 0;
}
.atpc .atpc-gallery-tote-body {
  position: absolute;
  inset: 19% 0 0;
  overflow: hidden;
  border: 1px solid #b9ad9a;
  border-radius: 3% 3% 8% 8%;
  background: linear-gradient(110deg, #e5dac7, #f5ecdc 47%, #d2c4af);
}
.atpc .atpc-gallery-tote-body::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  background: linear-gradient(90deg, rgba(75,60,40,.12), transparent 20%, transparent 78%, rgba(75,60,40,.10));
  pointer-events: none;
}
.atpc .atpc-gallery-tote .atpc-gallery-surface {
  top: 12%;
  left: 10%;
  width: 80%;
  height: 74%;
  background: transparent;
}

/* Controlled phone-case scene. */
.atpc .atpc-gallery-phone {
  width: 43%;
  height: 88%;
  overflow: hidden;
  border: 7px solid #21262c;
  border-radius: 16% / 8%;
  background: #181c21;
  box-shadow: 0 18px 24px rgba(7,27,67,.34), inset 0 0 0 2px rgba(255,255,255,.12);
}
.atpc .atpc-gallery-phone .atpc-gallery-surface { inset: 0; }
.atpc .atpc-gallery-phone-camera {
  position: absolute;
  z-index: 5;
  top: 5%;
  left: 8%;
  width: 27%;
  height: 15%;
  border-radius: 24%;
  background: radial-gradient(circle at 30% 35%, #111 0 16%, #69737d 18% 25%, transparent 27%), radial-gradient(circle at 70% 65%, #111 0 16%, #69737d 18% 25%, transparent 27%), #d9dde0;
  box-shadow: 0 1px 5px rgba(0,0,0,.35);
}

.atpc .atpc-product-specific-name {
  min-height: 0 !important;
  margin-top: 5px !important;
  color: #33485f !important;
  font-size: 13px !important;
  font-weight: 700;
  line-height: 1.35 !important;
}
.atpc .atpc-product-readiness-note {
  display: block;
  margin-top: 8px;
  padding: 7px 9px;
  border-radius: 7px;
  color: #584316;
  background: #fff7dc;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}
.atpc .atpc-product-idea.readiness-customize_only {
  border-style: dashed !important;
}
.atpc .atpc-customize-only-primary {
  border-color: #6333cc !important;
  color: #fff !important;
  background: #6333cc !important;
}

/* The editor must fit its container; mockups may never widen the page. */
.atpc .atpc-preview-step {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: clip !important;
}
.atpc .atpc-preview-step .atpc-studio {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
  align-items: start;
  gap: clamp(14px, 2vw, 26px);
}
.atpc .atpc-preview-step .atpc-studio > *,
.atpc .atpc-preview-step .atpc-stage,
.atpc .atpc-preview-step .atpc-controls,
.atpc .atpc-preview-step .atpc-choice-panel,
.atpc .atpc-preview-step .atpc-selection {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.atpc .atpc-preview-step .atpc-stage {
  min-height: 650px;
  padding: 56px 18px 72px;
  overflow: hidden !important;
}
.atpc .atpc-preview-step .atpc-mockup {
  max-width: 100%;
  transform-origin: center;
}
.atpc .atpc-preview-step .atpc-controls {
  overflow-wrap: anywhere;
  word-break: normal;
}
.atpc .atpc-preview-step .atpc-choice-heading,
.atpc .atpc-preview-step .atpc-choice-heading > div,
.atpc .atpc-preview-step .atpc-choice-panel label,
.atpc .atpc-preview-step .atpc-choice-panel small,
.atpc .atpc-preview-step .atpc-art-zoom-control,
.atpc .atpc-preview-step .atpc-art-zoom-control small {
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}
.atpc .atpc-preview-step .atpc-art-zoom-control small {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
}
.atpc .atpc-preview-step .atpc-art-zoom-control small span {
  min-width: 0;
  white-space: normal;
}

@media (min-width: 981px) {
  .atpc .atpc-preview-step .atpc-mockup:not(.tumbler) {
    transform: scale(1.18) !important;
  }
}
@media (max-width: 1180px) {
  .atpc .atpc-preview-step .atpc-studio {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 350px);
  }
  .atpc .atpc-products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 980px) {
  .atpc .atpc-preview-step .atpc-studio {
    grid-template-columns: minmax(0, 1fr);
  }
  .atpc .atpc-preview-step .atpc-stage {
    min-height: 600px;
  }
  .atpc .atpc-preview-step .atpc-mockup:not(.tumbler) {
    transform: scale(1.05) !important;
  }
}
@media (max-width: 680px) {
  .atpc .atpc-product-idea .atpc-product-image {
    height: 300px !important;
    min-height: 300px !important;
  }
  .atpc .atpc-preview-step .atpc-stage {
    min-height: 480px;
    padding: 54px 8px 68px;
  }
  .atpc .atpc-preview-step .atpc-mockup:not(.tumbler) {
    transform: scale(.82) !important;
  }
}
@media (max-width: 390px) {
  .atpc .atpc-gallery-frame,
  .atpc .atpc-gallery-canvas,
  .atpc .atpc-gallery-poster,
  .atpc .atpc-gallery-panel { width: 75%; }
  .atpc .atpc-preview-step .atpc-stage { min-height: 440px; }
  .atpc .atpc-preview-step .atpc-mockup:not(.tumbler) { transform: scale(.72) !important; }
}

/* Alpha 2.40: wall-art scenes follow the SELECTED ARTWORK orientation, not
   the provider's arbitrary primary variant. Use the artwork aspect ratio where
   practical so portrait, landscape, and square ideas do not acquire large
   artificial bands of white space. */
.atpc .atpc-gallery-preview.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.renderer-wall_panel .atpc-gallery-panel {
  width: auto;
  height: 82%;
  max-width: 86%;
  max-height: 86%;
  aspect-ratio: var(--atpc-preview-aspect, 1);
}
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_panel .atpc-gallery-panel {
  width: 86%;
  height: auto;
}
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_panel .atpc-gallery-panel {
  width: 76%;
  height: auto;
}

/* Flex cards inherit a centered alignment from the legacy product tile. The
   controlled scene and copy must stretch across the full marketplace card. */
.atpc .atpc-product-idea {
  align-items: stretch !important;
}
.atpc .atpc-product-idea .atpc-product-image,
.atpc .atpc-product-idea .atpc-product-copy {
  width: 100% !important;
}

/* Preserve the marketplace's mobile column reductions after the 2.39 laptop
   containment rules, which appear later in the cascade. */
@media (max-width: 980px) {
  .atpc .atpc-products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 680px) {
  .atpc .atpc-products { grid-template-columns: minmax(0, 1fr) !important; }
}

/* When the legacy 360px mockup is wider than a narrow stage, CSS grid's safe
   alignment falls back to the left edge before transform scaling. Center the
   unscaled coordinate box explicitly so the scaled visual remains centered. */
@media (max-width: 680px) {
  .atpc .atpc-preview-step .atpc-stage .atpc-mockup {
    justify-self: start;
    left: 50%;
    margin-left: -180px;
  }
  .atpc .atpc-preview-step .atpc-stage .atpc-mockup.tumbler {
    margin-left: -150px;
  }
}

/* Keep the legacy mockup's fixed internal coordinate system intact on phones;
   scale the complete 360px/300px scene rather than shrinking its CSS width. */
@media (max-width: 680px) {
  .atpc .atpc-preview-step .atpc-stage .atpc-mockup {
    width: 360px !important;
    max-width: none !important;
  }
  .atpc .atpc-preview-step .atpc-stage .atpc-mockup.tumbler {
    width: 300px !important;
  }
}


/* Alpha 2.40 — WordPress content-boundary containment. */
.atpc,
.atpc .atpc-section,
.atpc .atpc-product-step,
.atpc .atpc-market-layout,
.atpc .atpc-market-main,
.atpc .atpc-product-browser,
.atpc .atpc-products {
  box-sizing: border-box;
  max-width: 100%;
}
.atpc .atpc-product-step {
  overflow-x: clip;
}
.atpc .atpc-market-main,
.atpc .atpc-products,
.atpc .atpc-product-idea {
  min-width: 0;
}
@supports not (overflow: clip) {
  .atpc .atpc-product-step { overflow-x: hidden; }
}

/* -------------------------------------------------------------------------
 * Alpha 2.41 — Placement Accuracy and Renderer Realism
 * Product templates keep their own physical proportions. Artwork placement is
 * anchored to product-specific surfaces and uses the same anchors on desktop
 * and mobile; only the complete scene is scaled for the viewport.
 * ---------------------------------------------------------------------- */
.atpc .atpc-gallery-art {
  object-position: var(--atpc-art-position, 50% 50%) !important;
}

/* A product scene may become smaller inside a card, but it may never be
   stretched to inherit the card's width/height ratio. */
.atpc .atpc-gallery-object {
  width: auto !important;
  max-width: 88% !important;
  max-height: 88% !important;
}
.atpc .atpc-gallery-mug {
  height: 62% !important;
  aspect-ratio: 1.48 / 1;
  transform: translateX(-3%);
}
.atpc .atpc-gallery-tumbler {
  height: 84% !important;
  aspect-ratio: .43 / 1;
}
.atpc .atpc-gallery-shirt {
  height: 78% !important;
  aspect-ratio: .94 / 1;
}
.atpc .atpc-gallery-tote {
  height: 80% !important;
  aspect-ratio: .74 / 1;
}
.atpc .atpc-gallery-phone {
  height: 84% !important;
  aspect-ratio: .51 / 1;
}

/* Wall-art objects deliberately take their ratio from the selected artwork. */
.atpc .atpc-gallery-preview.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.renderer-wall_panel .atpc-gallery-panel {
  width: auto !important;
  height: min(82%, 270px) !important;
  aspect-ratio: var(--atpc-preview-aspect, 1) !important;
  max-width: 86% !important;
  max-height: 86% !important;
}
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_panel .atpc-gallery-panel {
  width: min(86%, 300px) !important;
  height: auto !important;
}
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_panel .atpc-gallery-panel {
  width: min(76%, 255px) !important;
  height: auto !important;
}

/* Shirt: the artwork lives on the upper chest, not the vertical midpoint of
   the garment. This exact zone is intentionally viewport-independent. */
.atpc .atpc-gallery-shirt .atpc-gallery-surface {
  top: 19% !important;
  left: 31% !important;
  width: 38% !important;
  height: 38% !important;
  background: transparent;
}
.atpc .atpc-gallery-shirt {
  background:
    radial-gradient(ellipse at 50% 13%, rgba(255,255,255,.72) 0 7%, transparent 20%),
    linear-gradient(92deg, rgba(54,50,44,.13), transparent 19%, rgba(255,255,255,.42) 49%, transparent 76%, rgba(54,50,44,.12)),
    linear-gradient(176deg, #eeeae2 0 25%, #faf8f3 51%, #ddd8cf 100%);
  filter: drop-shadow(0 17px 16px rgba(7,27,67,.22));
}
.atpc .atpc-gallery-shirt .atpc-gallery-surface::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  box-shadow: inset 0 0 10px rgba(20,24,30,.04);
}

/* The interactive front-print shirt uses the same upper-chest anchor at every
   breakpoint. The whole 360px mockup may scale, but this coordinate never
   changes independently on iPhone. */
.atpc .atpc-mockup.shirt.location-front .atpc-print-area,
.atpc .atpc-proof-mockup.shirt.location-front .atpc-print-area {
  left: 111px !important;
  top: 90px !important;
  width: 138px !important;
  height: 164px !important;
}

/* Tote: enlarge the useful face while keeping safe space around seams and
   handle attachments. Near-matching art can fill this surface; very different
   orientations remain proportional. */
.atpc .atpc-gallery-tote .atpc-gallery-surface {
  top: 7% !important;
  left: 7% !important;
  width: 86% !important;
  height: 82% !important;
}
.atpc .atpc-gallery-tote-body {
  background:
    repeating-linear-gradient(96deg, rgba(104,82,54,.035) 0 1px, transparent 1px 4px),
    linear-gradient(110deg, #ded0ba, #f4ead8 47%, #cdbda5);
  box-shadow: inset 0 0 0 1px rgba(112,91,61,.10), inset 9px 0 16px rgba(77,60,39,.07), inset -9px 0 16px rgba(77,60,39,.06);
}

/* Phone case: when a square/landscape image needs contain behavior, use a
   softly blurred copy behind it rather than hard cropping the subject or
   leaving an empty case. The foreground artwork remains undistorted. */
.atpc .atpc-gallery-phone-surface {
  isolation: isolate;
  background: #20262c;
}
.atpc .atpc-gallery-phone .atpc-gallery-art-backdrop {
  position: absolute !important;
  inset: -5% !important;
  z-index: 0 !important;
  width: 110% !important;
  height: 110% !important;
  opacity: .42;
  filter: blur(7px) saturate(.88) brightness(.76);
  transform: scale(1.06);
}
.atpc .atpc-gallery-phone .atpc-gallery-art-foreground {
  position: relative;
  z-index: 1;
}
.atpc .atpc-gallery-phone::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(105deg, rgba(255,255,255,.19), transparent 19%, transparent 72%, rgba(0,0,0,.18));
  box-shadow: inset 7px 0 10px rgba(0,0,0,.13), inset -6px 0 9px rgba(0,0,0,.12);
}

/* More dimensional controlled wall-art materials without changing artwork. */
.atpc .atpc-gallery-frame {
  box-shadow: 0 17px 25px rgba(7,27,67,.30), inset 2px 2px 1px rgba(255,255,255,.20), inset -2px -2px 2px rgba(0,0,0,.38) !important;
}
.atpc .atpc-gallery-canvas {
  box-shadow: 8px 9px 0 #89929a, 10px 13px 18px rgba(7,27,67,.22) !important;
}
.atpc .atpc-gallery-canvas::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(80,72,58,.15), inset -4px -3px 5px rgba(54,48,38,.08);
}
.atpc .atpc-gallery-poster {
  box-shadow: 0 15px 22px rgba(7,27,67,.25), 0 1px 0 rgba(255,255,255,.7) !important;
}

/* Cylindrical scenes keep fixed physical ratios while surface lighting adds
   curvature. The artwork itself remains a normal proportional image layer. */
.atpc .atpc-gallery-tumbler-body,
.atpc .atpc-gallery-mug-body {
  box-shadow: inset 13px 0 18px rgba(0,0,0,.14), inset -13px 0 17px rgba(255,255,255,.50), 0 1px 1px rgba(255,255,255,.5) !important;
}
.atpc .atpc-gallery-tumbler-body::after,
.atpc .atpc-gallery-mug-body::after {
  background: linear-gradient(90deg, rgba(4,14,26,.28), transparent 18%, rgba(255,255,255,.19) 45%, transparent 69%, rgba(4,14,26,.31)) !important;
}

/* Keep the marketplace inside its WordPress owner even when product titles or
   buttons become wider than expected. */
.atpc .atpc-product-step,
.atpc .atpc-market-layout,
.atpc .atpc-market-main,
.atpc .atpc-product-browser,
.atpc .atpc-products,
.atpc .atpc-product-idea,
.atpc .atpc-product-image,
.atpc .atpc-product-copy {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.atpc .atpc-product-step { overflow-x: hidden !important; }
.atpc .atpc-product-copy,
.atpc .atpc-product-copy * { overflow-wrap: anywhere; }

@media (max-width: 680px) {
  /* Mobile changes scene scale only; all product anchors above remain intact. */
  .atpc .atpc-gallery-mug { height: 60% !important; }
  .atpc .atpc-gallery-tumbler { height: 82% !important; }
  .atpc .atpc-gallery-shirt { height: 76% !important; }
  .atpc .atpc-gallery-tote { height: 78% !important; }
  .atpc .atpc-gallery-phone { height: 82% !important; }
}

/* -------------------------------------------------------------------------
 * Alpha 2.42 — Product discovery, orientation reliability, and large previews
 * ---------------------------------------------------------------------- */

/* Make pagination explicit: Recommended is a curated page of the larger
   customer-ready catalog, not an implication that only nine products exist. */
.atpc .atpc-product-more {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 18px;
  margin: 20px 0 6px;
  padding: 13px 15px;
  border: 1px solid #d6e0e9;
  border-radius: 10px;
  background: #f5f8fb;
}
.atpc .atpc-product-more > span {
  color: #42556d;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
}
.atpc .atpc-product-page-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.atpc .atpc-product-page-actions button {
  min-width: 0;
  min-height: 44px;
  padding: 10px 15px;
  font-size: 14px;
}
.atpc .atpc-product-page-actions button[hidden] { display: none !important; }
@media (max-width: 680px) {
  .atpc .atpc-product-more { grid-template-columns: 1fr; }
  .atpc .atpc-product-page-actions { justify-content: stretch; }
  .atpc .atpc-product-page-actions button { flex: 1 1 150px; }
}

/* Size controlled product scenes from WIDTH rather than forcing height into a
   narrow card. This keeps the complete shirt, mug, tote, and case inside the
   preview instead of clipping the right edge or distorting the object. */
.atpc .atpc-gallery-mug {
  width: 76% !important;
  height: auto !important;
  aspect-ratio: 1.48 / 1 !important;
  max-width: 82% !important;
  max-height: 72% !important;
  transform: none !important;
}
.atpc .atpc-gallery-tumbler {
  width: 36% !important;
  height: auto !important;
  aspect-ratio: .43 / 1 !important;
  max-width: 42% !important;
  max-height: 86% !important;
}
.atpc .atpc-gallery-shirt {
  width: 82% !important;
  height: auto !important;
  aspect-ratio: .94 / 1 !important;
  max-width: 86% !important;
  max-height: 84% !important;
}
.atpc .atpc-gallery-tote {
  width: 62% !important;
  height: auto !important;
  aspect-ratio: .74 / 1 !important;
  max-width: 68% !important;
  max-height: 84% !important;
}
.atpc .atpc-gallery-phone {
  width: 41% !important;
  height: auto !important;
  aspect-ratio: .51 / 1 !important;
  max-width: 46% !important;
  max-height: 86% !important;
}

/* Tote art uses more of the safe face. */
.atpc .atpc-gallery-tote .atpc-gallery-surface {
  top: 5% !important;
  left: 5% !important;
  width: 90% !important;
  height: 88% !important;
}

/* Phone cases are a full-bleed surface. Landscape artwork is reformatted by a
   deterministic portrait crop rather than letterboxed into the case. */
.atpc .atpc-gallery-phone-surface {
  inset: 0 !important;
  background: #161a1f !important;
}
.atpc .atpc-gallery-phone .atpc-gallery-art-cover {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.atpc .atpc-gallery-phone .atpc-gallery-art-backdrop { display: none !important; }

/* Portrait artwork on a mug should read as a centered front design rather than
   a severely cropped wrap. The ceramic body remains visible around it. */
.atpc .atpc-gallery-preview.renderer-cylinder_mug.fit-contain .atpc-gallery-surface {
  background: #f8f8f6 !important;
}
.atpc .atpc-gallery-preview.renderer-cylinder_mug.fit-contain .atpc-gallery-art {
  object-fit: contain !important;
  transform: scale(.90);
}

/* Large product preview. Clicking a customer-ready product now previews it;
   Add to Cart and Customize remain explicit actions. */
.atpc-product-preview-modal[hidden] { display: none !important; }
.atpc-product-preview-modal {
  position: fixed;
  inset: 0;
  z-index: 1000000;
  display: grid;
  place-items: center;
  padding: clamp(16px, 4vw, 42px);
  background: rgba(5, 18, 39, .88);
  backdrop-filter: blur(8px);
}
.atpc-product-preview-dialog {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr);
  width: min(1120px, 100%);
  max-height: min(90vh, 900px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 16px;
  background: #fbfcfd;
  box-shadow: 0 30px 100px rgba(0,0,0,.48);
}
.atpc-product-preview-close {
  position: fixed;
  top: 18px;
  right: 22px;
  z-index: 2;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 50%;
  color: #fff;
  background: #6333cc;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}
.atpc-product-preview-visual {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 600px;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(145deg, #d8e0e7, #aebbc7);
}
.atpc-product-preview-visual .atpc-gallery-preview {
  width: 100%;
  height: 100%;
  min-height: 600px;
}
.atpc-product-preview-visual .atpc-gallery-object {
  max-width: 76% !important;
  max-height: 78% !important;
}
.atpc-product-preview-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  padding: clamp(24px, 4vw, 42px);
  color: #071b43;
  background: #fff;
}
.atpc-product-preview-copy > span {
  color: #6333cc;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .08em;
}
.atpc-product-preview-copy > strong {
  font: 700 clamp(25px, 3vw, 38px)/1.08 Georgia, serif;
}
.atpc-product-preview-copy > small {
  color: #526275;
  font-size: 16px;
  line-height: 1.55;
}
.atpc-product-preview-actions {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.atpc-product-preview-actions button {
  min-height: 48px;
  padding: 12px 16px;
  border: 1px solid #6333cc;
  border-radius: 7px;
  color: #6333cc;
  background: #fff;
  font-size: 15px;
  font-weight: 850;
  cursor: pointer;
}
.atpc-product-preview-actions .atpc-primary-cart {
  color: #fff;
  background: #6333cc;
}
.atpc-product-preview-open { overflow: hidden; }

/* Standalone rotatable tumbler for the large preview. */
.atpc-large-cylinder3d {
  position: relative;
  display: grid;
  width: min(520px, 88%);
  height: min(650px, 78vh);
  place-items: center;
  perspective: 1250px;
  cursor: grab;
  touch-action: none;
}
.atpc-large-cylinder3d:active { cursor: grabbing; }
.atpc-large-cylinder3d-body {
  position: relative;
  width: 16px;
  height: 430px;
  transform-style: preserve-3d;
  transform: rotateX(-4deg) rotateY(0deg);
}
.atpc-large-cylinder3d-panel {
  position: absolute;
  left: 0;
  top: 0;
  width: 16px;
  height: 430px;
  overflow: hidden;
  transform: rotateY(var(--panel-angle)) translateZ(104px);
  transform-origin: center;
  backface-visibility: hidden;
  background: #d9dddf;
}
.atpc-large-cylinder3d-panel img {
  position: absolute;
  top: 0;
  height: 100%;
  max-width: none !important;
  object-fit: cover;
}
.atpc-large-cylinder3d-lid {
  position: absolute;
  z-index: 5;
  top: calc(50% - 231px);
  left: 50%;
  width: 220px;
  height: 34px;
  transform: translateX(-50%);
  border: 1px solid #69737d;
  border-radius: 50%;
  background: linear-gradient(#f4f6f7, #8b959d 52%, #e0e4e6);
  box-shadow: 0 7px 12px rgba(7,27,67,.28);
}
.atpc-large-cylinder3d-hint {
  position: absolute;
  bottom: 20px;
  left: 50%;
  width: max-content;
  max-width: 92%;
  transform: translateX(-50%);
  padding: 8px 13px;
  border-radius: 999px;
  color: #fff;
  background: rgba(7,27,67,.88);
  font-size: 14px;
  text-align: center;
}

@media (max-width: 780px) {
  .atpc-product-preview-dialog {
    grid-template-columns: 1fr;
    max-height: 92vh;
    overflow-y: auto;
  }
  .atpc-product-preview-visual,
  .atpc-product-preview-visual .atpc-gallery-preview { min-height: 430px; }
  .atpc-product-preview-copy { padding: 22px; }
  .atpc-large-cylinder3d { height: 430px; }
  .atpc-large-cylinder3d-body,
  .atpc-large-cylinder3d-panel { height: 300px; }
  .atpc-large-cylinder3d-panel { transform: rotateY(var(--panel-angle)) translateZ(76px); }
  .atpc-large-cylinder3d-lid { top: calc(50% - 165px); width: 162px; height: 28px; }
}
.atpc-large-cylinder3d-panel canvas {
  display: block;
  width: 100%;
  height: 100%;
}
.atpc .atpc-card-preview-hint {
  position: absolute;
  right: 10px;
  bottom: 9px;
  z-index: 8;
  padding: 5px 8px;
  border-radius: 999px;
  color: #fff;
  background: rgba(7,27,67,.82);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  opacity: .88;
  pointer-events: none;
}
.atpc .atpc-product-image:hover .atpc-card-preview-hint,
.atpc .atpc-product-image:focus-within .atpc-card-preview-hint { opacity: 1; }

/* -------------------------------------------------------------------------
 * Alpha 2.43 — Gallery Trust and Card Layout
 * Three-column desktop cards give controlled product scenes enough room to
 * preserve their silhouettes. Ready-to-order phone cases are full bleed and
 * mugs use a natural body/handle ratio rather than a flattened wide scene.
 * ---------------------------------------------------------------------- */

/* The marketplace is a storefront, not a dense provider matrix. Three cards
   per desktop row leave enough width for trustworthy product proportions. */
.atpc .atpc-products {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(14px, 1.6vw, 20px) !important;
}
.atpc .atpc-product-idea .atpc-product-image {
  height: clamp(285px, 27vw, 330px) !important;
  min-height: 285px !important;
  padding: 16px !important;
}
.atpc .atpc-gallery-preview {
  box-sizing: border-box;
  padding: 12px;
}
.atpc .atpc-gallery-object {
  max-width: calc(100% - 24px) !important;
  max-height: calc(100% - 24px) !important;
}

/* Natural mug geometry. The body is approximately as tall as it is wide;
   the handle occupies the remaining width instead of flattening the cup. */
.atpc .atpc-gallery-mug {
  width: min(70%, 250px) !important;
  height: auto !important;
  aspect-ratio: 1.28 / 1 !important;
  max-width: 74% !important;
  max-height: 80% !important;
  transform: none !important;
}
.atpc .atpc-gallery-mug-body {
  inset: 4% 23% 4% 3% !important;
  border-radius: 9% 9% 16% 16% / 8% 8% 13% 13%;
}
.atpc .atpc-gallery-mug-handle {
  top: 22% !important;
  right: 1% !important;
  width: 31% !important;
  height: 54% !important;
  border-width: 9px !important;
  border-left-width: 6px !important;
}
.atpc .atpc-gallery-mug .atpc-gallery-surface {
  inset: 11% 0 9% !important;
}
.atpc .atpc-gallery-mug-body::before {
  content: "";
  position: absolute;
  z-index: 4;
  top: -1%;
  left: 1%;
  width: 98%;
  height: 9%;
  border: 1px solid rgba(104,112,120,.55);
  border-radius: 50%;
  background: linear-gradient(#ffffff, #dfe3e5 62%, #fafafa);
  box-shadow: 0 2px 4px rgba(7,27,67,.16);
  pointer-events: none;
}
.atpc .atpc-gallery-preview.renderer-cylinder_mug.fit-contain .atpc-gallery-art {
  transform: scale(1.02);
}

/* Keep every controlled silhouette comfortably inside its card. */
.atpc .atpc-gallery-shirt {
  width: min(80%, 275px) !important;
  max-width: 84% !important;
}
.atpc .atpc-gallery-tote {
  width: min(66%, 225px) !important;
  max-width: 70% !important;
}
.atpc .atpc-gallery-tumbler {
  width: min(42%, 138px) !important;
  max-width: 46% !important;
}
.atpc .atpc-gallery-phone {
  width: min(45%, 148px) !important;
  max-width: 49% !important;
}

/* A ready-to-order phone case must look fully designed. The blurred texture
   fills transparent/source-border gaps; the foreground remains the exact
   proportional cover crop used when the customer opens Customize. */
.atpc .atpc-gallery-phone-surface {
  inset: 0 !important;
  background: #15191e !important;
}
.atpc .atpc-gallery-phone .atpc-gallery-art-backdrop {
  display: block !important;
  position: absolute !important;
  inset: -8% !important;
  z-index: 0 !important;
  width: 116% !important;
  height: 116% !important;
  object-fit: cover !important;
  opacity: .78 !important;
  filter: blur(8px) saturate(.95) brightness(.76) !important;
  transform: scale(1.08) !important;
}
.atpc .atpc-gallery-phone .atpc-gallery-art-foreground {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transform-origin: 50% 50%;
}
.atpc .atpc-gallery-preview.renderer-case_phone .atpc-gallery-art-foreground {
  transform: scale(var(--atpc-art-zoom, 1)) !important;
}

/* Card text/actions stay aligned, so a rendered product reads like a finished
   retail choice rather than a compressed technical preview. */
.atpc .atpc-product-idea .atpc-product-copy {
  padding: 16px !important;
}
.atpc .atpc-product-idea .atpc-product-copy > small:not(.atpc-product-specific-name) {
  min-height: 42px;
}
.atpc .atpc-product-idea-actions button {
  min-height: 48px !important;
}

@media (max-width: 980px) {
  .atpc .atpc-products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .atpc .atpc-product-idea .atpc-product-image {
    height: 310px !important;
    min-height: 310px !important;
  }
}
@media (max-width: 680px) {
  .atpc .atpc-products {
    grid-template-columns: 1fr !important;
  }
  .atpc .atpc-product-idea .atpc-product-image {
    height: 330px !important;
    min-height: 330px !important;
  }
  .atpc .atpc-gallery-preview { padding: 16px; }
}

/* -------------------------------------------------------------------------
 * Alpha 2.44 — Source clarity, repeat-selection recovery, and centered
 * edge-to-edge product presentation.
 * ---------------------------------------------------------------------- */

/* Purpose-built source artwork fills each card without the old logo padding,
   panoramic slicing, blend mode, or enlargement distortion. */
.atpc .atpc-source-visual.archive,
.atpc .atpc-source-visual.design,
.atpc .atpc-source-visual.upload {
  background: #eef2f5 !important;
}
.atpc .atpc-source-visual.archive img,
.atpc .atpc-source-visual.design img,
.atpc .atpc-source-visual.upload img {
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 92px !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: none !important;
  mix-blend-mode: normal !important;
  filter: none !important;
  background: #fff !important;
}
.atpc .atpc-source-visual.archive img { object-position: 50% 44% !important; }
.atpc .atpc-source-visual.design img { object-position: 50% 47% !important; }
.atpc .atpc-source-visual.upload img { object-position: 50% 50% !important; }

/* A single centering contract now owns every controlled product card. Older
   provider-tile offsets and image hover zooms may not shift or crop the scene. */
.atpc .atpc-product-idea .atpc-product-image {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  padding: 22px !important;
}
.atpc .atpc-product-idea .atpc-gallery-preview {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 10px !important;
  overflow: hidden !important;
}
.atpc .atpc-product-idea .atpc-gallery-object {
  position: relative !important;
  inset: auto !important;
  flex: 0 0 auto !important;
  margin: auto !important;
  translate: none !important;
  transform: none !important;
  transform-origin: center center !important;
  box-sizing: border-box !important;
  max-width: calc(100% - 36px) !important;
  max-height: calc(100% - 36px) !important;
}
.atpc .atpc-product-idea .atpc-gallery-art {
  transition: none !important;
}
.atpc .atpc-product-idea:hover .atpc-gallery-art {
  transform: none !important;
}
.atpc .atpc-product-idea .renderer-case_phone .atpc-gallery-art-foreground,
.atpc .atpc-product-idea:hover .renderer-case_phone .atpc-gallery-art-foreground {
  transform: scale(var(--atpc-art-zoom, 1)) !important;
}
.atpc .atpc-product-idea .renderer-case_phone .atpc-gallery-art-backdrop,
.atpc .atpc-product-idea:hover .renderer-case_phone .atpc-gallery-art-backdrop {
  transform: scale(1.08) !important;
}

/* Wall art follows the selected artwork ratio and fills the printable face.
   The frame/canvas/panel structure remains visible, but there is no artificial
   white letterbox around the artwork. */
.atpc .atpc-gallery-preview.renderer-wall_framed .atpc-gallery-art,
.atpc .atpc-gallery-preview.renderer-wall_canvas .atpc-gallery-art,
.atpc .atpc-gallery-preview.renderer-wall_poster .atpc-gallery-art,
.atpc .atpc-gallery-preview.renderer-wall_panel .atpc-gallery-art {
  object-fit: cover !important;
  object-position: var(--atpc-art-position, 50% 50%) !important;
}
.atpc .atpc-gallery-preview.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.renderer-wall_panel .atpc-gallery-panel {
  margin: auto !important;
  translate: none !important;
  transform: none !important;
  max-width: calc(100% - 44px) !important;
  max-height: calc(100% - 44px) !important;
}
.atpc .atpc-gallery-frame {
  padding: 7px !important;
  box-shadow: 0 16px 24px rgba(7,27,67,.30), inset 2px 2px 1px rgba(255,255,255,.20), inset -2px -2px 2px rgba(0,0,0,.38) !important;
}
.atpc .atpc-gallery-frame .atpc-gallery-mat {
  padding: 0 !important;
  background: #11151a !important;
  box-shadow: none !important;
}
.atpc .atpc-gallery-frame .atpc-gallery-surface {
  inset: 0 !important;
}
.atpc .atpc-gallery-canvas {
  border-width: 3px !important;
  box-shadow: 0 16px 24px rgba(7,27,67,.25), 0 0 0 1px rgba(90,99,108,.22) !important;
}
.atpc .atpc-gallery-canvas .atpc-gallery-surface { inset: 0 !important; }
.atpc .atpc-gallery-poster {
  padding: 0 !important;
  box-shadow: 0 16px 24px rgba(7,27,67,.25), 0 0 0 1px rgba(90,99,108,.18) !important;
}
.atpc .atpc-gallery-poster .atpc-gallery-surface { inset: 0 !important; }
.atpc .atpc-gallery-panel {
  padding: 0 !important;
  box-shadow: 0 16px 24px rgba(7,27,67,.26), 0 0 0 1px rgba(255,255,255,.72) !important;
}
.atpc .atpc-gallery-panel .atpc-gallery-surface,
.atpc .atpc-gallery-panel::after { inset: 0 !important; }

/* Keep non-wall products centered and entirely inside their stage. */
.atpc .atpc-gallery-mug {
  width: min(72%, 250px) !important;
  height: auto !important;
  max-width: 76% !important;
  max-height: 80% !important;
  transform: none !important;
}
.atpc .atpc-gallery-tumbler {
  width: min(42%, 145px) !important;
  height: auto !important;
  max-width: 46% !important;
  max-height: 88% !important;
}
.atpc .atpc-gallery-shirt {
  width: min(94%, 330px) !important;
  height: auto !important;
  max-width: 94% !important;
  max-height: 94% !important;
}
.atpc .atpc-gallery-shirt .atpc-gallery-surface {
  top: 18% !important;
  left: 27% !important;
  width: 46% !important;
  height: 44% !important;
}
.atpc .atpc-gallery-tote {
  width: min(72%, 245px) !important;
  height: auto !important;
  max-width: 76% !important;
  max-height: 88% !important;
}
.atpc .atpc-gallery-phone {
  width: min(45%, 155px) !important;
  height: auto !important;
  max-width: 49% !important;
  max-height: 88% !important;
}
.atpc .atpc-gallery-mug,
.atpc .atpc-gallery-tumbler,
.atpc .atpc-gallery-shirt,
.atpc .atpc-gallery-tote,
.atpc .atpc-gallery-phone {
  margin: auto !important;
  translate: none !important;
  transform-origin: center center !important;
}

@media (max-width: 680px) {
  .atpc .atpc-product-idea .atpc-product-image { padding: 18px !important; }
  .atpc .atpc-product-idea .atpc-gallery-preview { padding: 8px !important; }
  .atpc .atpc-gallery-shirt { width: min(90%, 315px) !important; }
}

/* Final 2.44 size contract. Use one safe-margin layer rather than padding the
   card, preview, and object independently. This keeps the entire silhouette
   centered while allowing shirts and smaller products to look substantial in
   a narrow three-column WordPress content area. */
.atpc .atpc-product-idea .atpc-product-image {
  padding: 0 !important;
}
.atpc .atpc-product-idea .atpc-gallery-preview {
  padding: clamp(10px, 4%, 16px) !important;
}
.atpc .atpc-product-idea .atpc-gallery-object {
  max-width: 100% !important;
  max-height: 100% !important;
}

.atpc .atpc-gallery-preview.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.renderer-wall_panel .atpc-gallery-panel {
  height: min(90%, 300px) !important;
  max-width: 92% !important;
  max-height: 90% !important;
}
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_panel .atpc-gallery-panel {
  width: min(92%, 340px) !important;
  height: auto !important;
}
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_panel .atpc-gallery-panel {
  width: min(84%, 285px) !important;
  height: auto !important;
}

.atpc .atpc-gallery-mug {
  width: min(82%, 270px) !important;
  max-width: 84% !important;
  max-height: 84% !important;
}
.atpc .atpc-gallery-tumbler {
  width: min(48%, 155px) !important;
  max-width: 50% !important;
  max-height: 90% !important;
}
.atpc .atpc-gallery-shirt {
  width: min(96%, 330px) !important;
  max-width: 96% !important;
  max-height: 94% !important;
}
.atpc .atpc-gallery-tote {
  width: min(76%, 250px) !important;
  max-width: 78% !important;
  max-height: 90% !important;
}
.atpc .atpc-gallery-phone {
  width: min(52%, 170px) !important;
  max-width: 54% !important;
  max-height: 90% !important;
}

@media (max-width: 680px) {
  .atpc .atpc-product-idea .atpc-gallery-preview { padding: 12px !important; }
}
.atpc .atpc-source-visual.design::after {
  content: none !important;
}

/* Alpha 2.44 final containment correction. The preview uses zero-minimum grid
   tracks so a product can never enlarge the track beyond the visible card.
   Every tall object is then sized from the available inline space with a
   physical aspect ratio, allowing narrow WordPress columns to shrink both
   dimensions together instead of cropping or distorting the right edge. */
.atpc .atpc-product-idea .atpc-gallery-preview {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: minmax(0, 1fr) !important;
}
.atpc .atpc-product-idea .atpc-gallery-object {
  min-width: 0 !important;
  min-height: 0 !important;
  justify-self: center !important;
  align-self: center !important;
}

.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_panel .atpc-gallery-panel {
  width: min(82%, 200px) !important;
  height: auto !important;
  max-width: 82% !important;
  max-height: 90% !important;
}
.atpc .atpc-product-idea .atpc-gallery-tumbler {
  width: min(46%, 120px) !important;
  height: auto !important;
  aspect-ratio: .43 / 1 !important;
  max-width: 46% !important;
  max-height: 88% !important;
}
.atpc .atpc-product-idea .atpc-gallery-shirt {
  width: min(90%, 260px) !important;
  height: auto !important;
  aspect-ratio: .94 / 1 !important;
  max-width: 90% !important;
  max-height: 90% !important;
}
.atpc .atpc-product-idea .atpc-gallery-tote {
  width: min(76%, 205px) !important;
  height: auto !important;
  aspect-ratio: .74 / 1 !important;
  max-width: 76% !important;
  max-height: 88% !important;
}
.atpc .atpc-product-idea .atpc-gallery-phone {
  width: min(52%, 142px) !important;
  height: auto !important;
  aspect-ratio: .51 / 1 !important;
  max-width: 52% !important;
  max-height: 88% !important;
}

/* -------------------------------------------------------------------------
 * Alpha 2.46 — Product Truth and Mockup Fidelity
 * Exact renderer variants preserve provider-described color, transparency,
 * neckline, construction, and cylindrical container identity.
 * ---------------------------------------------------------------------- */

/* Gallery candle: a true cylindrical vessel with a bounded front label. */
.atpc .atpc-gallery-candle {
  width: min(54%, 180px) !important;
  height: auto !important;
  aspect-ratio: .86 / 1 !important;
  max-height: 82% !important;
  filter: drop-shadow(0 18px 17px rgba(7,27,67,.28));
}
.atpc .atpc-gallery-candle-body {
  position: absolute;
  inset: 10% 4% 2%;
  overflow: hidden;
  border: 1px solid rgba(78,68,55,.42);
  border-radius: 8% 8% 13% 13% / 5% 5% 8% 8%;
  background: linear-gradient(90deg, #6c3a18, #b86f35 28%, #d89a5f 52%, #8a4b24 100%);
  box-shadow: inset 14px 0 18px rgba(0,0,0,.18), inset -10px 0 15px rgba(255,255,255,.25);
}
.atpc .atpc-gallery-candle-lid {
  position: absolute;
  z-index: 4;
  top: 2%; left: 3%; width: 94%; height: 14%;
  border-radius: 50%;
  background: linear-gradient(#30343a, #0e1115 58%, #5b6269);
  box-shadow: 0 3px 5px rgba(7,27,67,.32);
}
.atpc .atpc-gallery-candle-wax {
  position: absolute;
  z-index: 1;
  top: 2%; left: 5%; width: 90%; height: 10%;
  border-radius: 50%;
  background: #f3ead8;
}
.atpc .atpc-gallery-candle .atpc-gallery-surface {
  z-index: 2;
  left: 16%; top: 30%; width: 68%; height: 42%;
  border-radius: 3px;
  background: #f7f2e8;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.atpc .atpc-gallery-candle.variant-candle_clear_glass .atpc-gallery-candle-body {
  background: linear-gradient(90deg, rgba(210,224,229,.45), rgba(255,255,255,.72) 48%, rgba(165,188,198,.48));
}
.atpc .atpc-gallery-candle.variant-candle_metal_tin .atpc-gallery-candle-body {
  background: linear-gradient(90deg, #858d94, #e5e8ea 48%, #707980);
}
.atpc .atpc-gallery-candle.variant-candle_jar .atpc-gallery-candle-body {
  background: linear-gradient(90deg, #ddd3c1, #f5efe4 48%, #bfb3a0);
}

/* Provider-described mug body and finish. */
.atpc .atpc-gallery-mug.variant-mug_black_glossy .atpc-gallery-mug-body {
  border-color: #050608;
  background: linear-gradient(90deg, #050608, #24272b 45%, #050608);
  box-shadow: inset 15px 0 18px rgba(0,0,0,.8), inset -10px 0 14px rgba(255,255,255,.15);
}
.atpc .atpc-gallery-mug.variant-mug_black_glossy .atpc-gallery-mug-handle {
  border-color: #111418;
  box-shadow: 2px 3px 5px rgba(7,27,67,.28), inset 0 0 0 1px #4d5257;
}
.atpc .atpc-gallery-mug.variant-mug_black_glossy .atpc-gallery-mug-body::before {
  background: linear-gradient(#393d42, #050608 62%, #2b2f33);
}
.atpc .atpc-gallery-mug.variant-mug_enamel .atpc-gallery-mug-body,
.atpc .atpc-gallery-mug.variant-mug_enamel .atpc-gallery-mug-handle {
  border-color: #17202b;
}
.atpc .atpc-gallery-mug.variant-mug_latte { aspect-ratio: 1.12 / 1 !important; }
.atpc .atpc-gallery-mug.variant-mug_latte .atpc-gallery-mug-body { border-radius: 22% 22% 9% 9% / 8% 8% 6% 6%; }
.atpc .atpc-gallery-mug.variant-mug_color_inside .atpc-gallery-mug-body {
  background: linear-gradient(90deg, #eef0f1, #fff 48%, #e5e8ea);
}
.atpc .atpc-gallery-mug.variant-mug_color_inside .atpc-gallery-mug-handle {
  border-color: #6550a8;
}
.atpc .atpc-gallery-mug.variant-mug_color_inside .atpc-gallery-mug-body::before {
  background: linear-gradient(#7763b5, #4e3c89 58%, #9586c8);
}

/* Transparent vinyl tote versus opaque fabric totes. */
.atpc .atpc-gallery-tote.variant-tote_clear .atpc-gallery-tote-body {
  border: 2px solid rgba(150,181,193,.76);
  background:
    linear-gradient(110deg, rgba(221,242,247,.28), rgba(255,255,255,.62) 48%, rgba(164,205,219,.27));
  backdrop-filter: blur(1px);
  box-shadow: inset 10px 0 18px rgba(255,255,255,.38), inset -8px 0 15px rgba(75,120,137,.12);
}
.atpc .atpc-gallery-tote.variant-tote_clear .atpc-gallery-tote-handles {
  border-color: rgba(150,181,193,.7);
}
.atpc .atpc-gallery-tote.variant-tote_fabric_black .atpc-gallery-tote-body {
  border-color: #20252b;
  background: linear-gradient(110deg, #15181c, #393e44 48%, #111419);
}
.atpc .atpc-gallery-tote.variant-tote_fabric_black .atpc-gallery-tote-handles { border-color: #20252b; }

/* V-neck shirt is physically distinct from the standard crew-neck blank. */
.atpc .atpc-gallery-shirt.variant-shirt_vneck .atpc-gallery-shirt-neck {
  top: 0; left: 41%; width: 18%; height: 17%;
  border: 0;
  border-radius: 0;
  background: #aeb9c4;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.atpc .atpc-gallery-shirt.variant-shirt_vneck::before {
  content: "";
  position: absolute;
  z-index: 5;
  top: 4%; left: 43%; width: 14%; height: 12%;
  border-left: 3px solid rgba(90,90,90,.42);
  border-right: 3px solid rgba(90,90,90,.42);
  transform: rotate(0deg);
  clip-path: polygon(0 0, 50% 100%, 100% 0, 82% 0, 50% 72%, 18% 0);
  background: rgba(180,180,180,.22);
}

/* Exact case and tumbler constructions. */
.atpc .atpc-gallery-phone.variant-case_clear {
  border-color: rgba(210,225,232,.82);
  background: rgba(255,255,255,.18);
  box-shadow: 0 18px 24px rgba(7,27,67,.28), inset 0 0 0 2px rgba(255,255,255,.5);
}
.atpc .atpc-gallery-phone.variant-case_tough { border-width: 10px; border-color: #11161c; }
.atpc .atpc-gallery-tumbler.variant-tumbler_clear_plastic .atpc-gallery-tumbler-body {
  background: linear-gradient(90deg, rgba(170,205,218,.32), rgba(255,255,255,.65) 48%, rgba(120,175,195,.3));
}
.atpc .atpc-gallery-tumbler[class*="tumbler_tapered"] .atpc-gallery-tumbler-body {
  clip-path: polygon(4% 0, 96% 0, 86% 100%, 14% 100%);
}

/* Editor/proof variants use the same product-truth profile. */
.atpc .atpc-mockup.mug.variant-mug_black_glossy .atpc-print-area {
  background: #111418;
  box-shadow: inset 22px 0 30px #0009, inset -22px 0 30px #fff2;
}
.atpc .atpc-mockup.mug.variant-mug_black_glossy:after { border-color: #111418; }
.atpc .atpc-mockup.mug.variant-mug_color_inside .atpc-print-area {
  background:
    linear-gradient(90deg, #0003 0, transparent 22%, #fff4 49%, transparent 76%, #0002 100%),
    #f5f6f7;
}
.atpc .atpc-mockup.mug.variant-mug_color_inside:after { border-color: var(--shirt-color, #6550a8); }
.atpc .atpc-mockup.mug.variant-mug_color_inside:before {
  content: "";
  position: absolute;
  z-index: 3;
  left: 61px;
  top: 61px;
  width: 224px;
  height: 31px;
  border-radius: 50%;
  background: var(--shirt-color, #6550a8);
  box-shadow: inset 0 4px 5px #0003;
  pointer-events: none;
}
.atpc .atpc-mockup.tote.variant-tote_clear:before {
  background: linear-gradient(110deg, rgba(214,239,247,.28), rgba(255,255,255,.57), rgba(151,205,221,.28));
  outline: 2px solid rgba(133,183,199,.7);
}
.atpc .atpc-mockup.tote.variant-tote_clear:after { border-color: rgba(133,183,199,.62); }
.atpc .atpc-mockup.shirt.variant-shirt_vneck:after {
  left: 147px; top: 43px; width: 66px; height: 48px;
  border: 0;
  border-left: 5px solid #1114;
  border-right: 5px solid #1114;
  border-radius: 0;
  clip-path: polygon(0 0, 50% 100%, 100% 0, 80% 0, 50% 70%, 20% 0);
  background: #b9c2cc;
}
.atpc .atpc-mockup.candle {
  width: 300px;
  height: 390px;
}
.atpc .atpc-mockup.candle:before {
  content: "";
  position: absolute;
  left: 74px; top: 28px; width: 152px; height: 300px;
  border: 1px solid rgba(80,57,39,.48);
  border-radius: 18px 18px 30px 30px;
  background: linear-gradient(90deg, #713d1b, #c77b3f 48%, #78401d);
  box-shadow: inset 15px 0 24px #0004, inset -13px 0 20px #fff4;
}
.atpc .atpc-mockup.candle:after {
  content: "";
  position: absolute;
  left: 70px; top: 17px; width: 160px; height: 34px;
  border-radius: 50%;
  background: linear-gradient(#343a40, #0c0f12 58%, #606970);
  z-index: 2;
}
.atpc .atpc-mockup.candle .atpc-print-area {
  left: 98px; top: 142px; width: 104px; height: 104px;
  z-index: 3;
  border-radius: 3px;
  background: #f5efe4;
  box-shadow: 0 2px 8px #0004;
}
.atpc .atpc-mockup.candle.variant-candle_clear_glass:before {
  background: linear-gradient(90deg, rgba(185,218,228,.38), rgba(255,255,255,.7), rgba(130,188,207,.36));
}
.atpc .atpc-mockup.candle.variant-candle_metal_tin:before {
  background: linear-gradient(90deg, #818990, #e2e6e8 48%, #70787f);
}

/* Alpha 2.46 final product-truth refinements. */
.atpc .atpc-gallery-candle.variant-candle_black_tin .atpc-gallery-candle-body {
  border-color: #11161b;
  background: linear-gradient(90deg, #090b0e, #30363d 48%, #080a0d);
  box-shadow: inset 14px 0 18px rgba(0,0,0,.72), inset -10px 0 15px rgba(255,255,255,.12);
}
.atpc .atpc-gallery-candle.variant-candle_black_tin .atpc-gallery-candle-lid {
  background: linear-gradient(#282d32, #050608 58%, #30363c);
}
.atpc .atpc-mockup.candle.variant-candle_black_tin:before {
  border-color: #0b0f13;
  background: linear-gradient(90deg, #080a0d, #343a40 48%, #07090b);
  box-shadow: inset 15px 0 24px #000a, inset -13px 0 20px #fff2;
}
.atpc .atpc-mockup.candle.variant-candle_black_tin:after {
  background: linear-gradient(#343a40, #040506 58%, #3a4148);
}

/* -------------------------------------------------------------------------
 * Alpha 2.47 — Subtype Integrity and Ready-State Safety
 * Provider-described wall constructions use distinct controlled scenes.
 * ---------------------------------------------------------------------- */
.atpc .atpc-gallery-poster.variant-poster_with_hanger {
  overflow: visible;
  padding: 0 !important;
  background: #fff;
  box-shadow: 0 14px 24px rgba(7,27,67,.24);
}
.atpc .atpc-gallery-poster.variant-poster_with_hanger::before,
.atpc .atpc-gallery-poster.variant-poster_with_hanger::after {
  content: "";
  position: absolute;
  z-index: 5;
  left: -5%;
  width: 110%;
  height: 7%;
  border-radius: 999px;
  background: linear-gradient(90deg, #5b331c, #a76d3b 42%, #d5a36c 54%, #734321);
  box-shadow: 0 3px 6px rgba(7,27,67,.3);
  pointer-events: none;
}
.atpc .atpc-gallery-poster.variant-poster_with_hanger::before { top: -4%; }
.atpc .atpc-gallery-poster.variant-poster_with_hanger::after { bottom: -4%; }
.atpc .atpc-gallery-poster.variant-poster_with_hanger .atpc-gallery-surface { inset: 0 !important; }

.atpc .atpc-gallery-frame.variant-framed_canvas {
  padding: 9px;
  border-color: #18130f;
  background: linear-gradient(135deg, #3b2a20, #110d0a 70%, #5d4231);
}
.atpc .atpc-gallery-frame.variant-framed_canvas .atpc-gallery-mat {
  padding: 4px !important;
  background: #ded7ca;
  box-shadow: inset 0 0 0 1px rgba(80,65,48,.38);
}
.atpc .atpc-gallery-frame.variant-framed_canvas .atpc-gallery-surface { inset: 4px !important; }
.atpc .atpc-gallery-frame.variant-framed_canvas .atpc-gallery-surface::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  border: 1px solid rgba(90,76,58,.28);
  box-shadow: inset -7px -6px 10px rgba(70,55,38,.12);
  pointer-events: none;
}

.atpc .atpc-mockup.canvas.poster.variant-poster_with_hanger .atpc-print-area,
.atpc .atpc-mockup.flat.poster.variant-poster_with_hanger .atpc-print-area {
  inset: 35px 30px 32px !important;
  overflow: visible;
  border: 0;
  box-shadow: 7px 10px 18px #071b4330;
}
.atpc .atpc-mockup.canvas.poster.variant-poster_with_hanger .atpc-print-area::before,
.atpc .atpc-mockup.canvas.poster.variant-poster_with_hanger .atpc-print-area::after,
.atpc .atpc-mockup.flat.poster.variant-poster_with_hanger .atpc-print-area::before,
.atpc .atpc-mockup.flat.poster.variant-poster_with_hanger .atpc-print-area::after {
  content: "";
  position: absolute;
  z-index: 8;
  left: -4%;
  width: 108%;
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(90deg, #5a321c, #b47b46 50%, #6f4024);
  box-shadow: 0 2px 4px #0004;
  pointer-events: none;
}
.atpc .atpc-mockup.canvas.poster.variant-poster_with_hanger .atpc-print-area::before,
.atpc .atpc-mockup.flat.poster.variant-poster_with_hanger .atpc-print-area::before { top: -7px; }
.atpc .atpc-mockup.canvas.poster.variant-poster_with_hanger .atpc-print-area::after,
.atpc .atpc-mockup.flat.poster.variant-poster_with_hanger .atpc-print-area::after { bottom: -7px; }

.atpc .atpc-mockup.canvas.framed.variant-framed_canvas .atpc-print-area,
.atpc .atpc-mockup.flat.framed.variant-framed_canvas .atpc-print-area {
  inset: 22px;
  border: 18px solid #2c211a;
  box-shadow: inset 0 0 0 4px #d4c9b7, 8px 10px 18px #071b4338;
}

/* -------------------------------------------------------------------------
 * Alpha 2.48 — Canonical Product Families and Guided Selection
 * Customers choose a broad product type, then a customer-friendly style, then
 * only the real provider-available options. Provider records stay hidden.
 * ---------------------------------------------------------------------- */
.atpc[data-native-storefront="yes"] .atpc-market-rail {
  display: none !important;
}
.atpc[data-native-storefront="yes"] .atpc-market-layout {
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr) !important;
}
.atpc[data-native-storefront="yes"] .atpc-market-main {
  min-width: 0;
}
.atpc .atpc-guided-breadcrumb {
  display: flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  gap: 9px;
  padding: 8px 12px;
  overflow-x: auto;
  border: 1px solid #d7e0e9;
  border-radius: 9px;
  color: #617084;
  background: #fff;
  scrollbar-width: thin;
}
.atpc .atpc-guided-breadcrumb > span {
  display: inline-flex;
  min-width: max-content;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 760;
}
.atpc .atpc-guided-breadcrumb > span b {
  display: inline-grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #9ba9b8;
  font-size: 12px;
}
.atpc .atpc-guided-breadcrumb > span.current {
  color: var(--navy);
}
.atpc .atpc-guided-breadcrumb > span.current b {
  background: #6333cc;
}
.atpc .atpc-guided-breadcrumb > i {
  color: #a2afbd;
  font-style: normal;
}
.atpc .atpc-guided-breadcrumb > button {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 7px 11px;
  border: 1px solid #6333cc;
  border-radius: 7px;
  color: #5b2bc7;
  background: #fff;
  font-size: 13px;
  font-weight: 820;
}
.atpc .atpc-products.atpc-guided-family-grid,
.atpc .atpc-products.atpc-guided-style-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.atpc .atpc-product-family,
.atpc .atpc-product-style {
  cursor: pointer;
}
.atpc .atpc-product-family .atpc-product-image {
  height: clamp(270px, 25vw, 325px) !important;
  min-height: 270px !important;
}
.atpc .atpc-family-art-label {
  position: absolute;
  z-index: 8;
  right: 10px;
  bottom: 10px;
  max-width: calc(100% - 20px);
  padding: 6px 9px;
  border-radius: 999px;
  color: #fff;
  background: rgba(7, 27, 67, .88);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  text-align: center;
}
.atpc .atpc-family-eyebrow {
  min-height: 0 !important;
  margin: 0 0 4px !important;
  color: #6333cc !important;
  font-size: 11px !important;
  font-weight: 900;
  letter-spacing: .08em;
}
.atpc .atpc-family-count {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  margin-top: 7px;
  padding: 5px 8px;
  border-radius: 999px;
  color: #30475d;
  background: #edf2f6;
  font-size: 12px;
  font-weight: 800;
}
.atpc .atpc-family-select,
.atpc .atpc-style-select {
  min-height: 48px !important;
  border-color: #6333cc !important;
  color: #fff !important;
  background: #6333cc !important;
}
.atpc .atpc-product-style.selected {
  grid-column: span 2;
  max-width: 760px;
  cursor: default;
}
.atpc .atpc-guided-option-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #d8e1e9;
  border-radius: 10px;
  background: #f8fafc;
}
.atpc .atpc-guided-option-actions > span {
  color: #4d5e72;
  font-size: 14px;
  line-height: 1.45;
}
.atpc .atpc-guided-option-actions > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
}
.atpc .atpc-guided-option-actions button {
  min-height: 48px;
  padding: 11px 16px;
  border-radius: 7px;
  font-size: 15px;
  font-weight: 850;
}
.atpc .atpc-guided-cart {
  border: 1px solid #6333cc;
  color: #fff;
  background: #6333cc;
}
.atpc .atpc-guided-customize {
  border: 1px solid #9eacbb;
  color: var(--navy);
  background: #fff;
}
.atpc .atpc-guided-option-actions button:disabled {
  cursor: not-allowed;
  opacity: .5;
}

/* Portrait art on a black glossy mug remains surrounded by the mug's black
   ceramic color—not a white letterbox—while preserving the whole portrait. */
.atpc .atpc-gallery-preview.variant-mug_black_glossy.fit-contain .atpc-gallery-surface,
.atpc .atpc-gallery-mug.variant-mug_black_glossy .atpc-gallery-surface {
  background: #050608 !important;
}
.atpc .atpc-gallery-preview.variant-mug_black_glossy.fit-contain .atpc-gallery-art {
  background: transparent !important;
}

@media (max-width: 1120px) {
  .atpc[data-native-storefront="yes"] .atpc-market-layout {
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr) !important;
  }
  .atpc .atpc-products.atpc-guided-family-grid,
  .atpc .atpc-products.atpc-guided-style-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 820px) {
  .atpc[data-native-storefront="yes"] .atpc-market-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .atpc[data-native-storefront="yes"] .atpc-market-art {
    border-right: 0;
    border-bottom: 1px solid #e0e6ed;
  }
  .atpc .atpc-guided-option-actions {
    grid-template-columns: minmax(0, 1fr);
  }
  .atpc .atpc-guided-option-actions > div {
    justify-content: stretch;
  }
  .atpc .atpc-guided-option-actions button {
    flex: 1 1 220px;
  }
}
@media (max-width: 680px) {
  .atpc .atpc-products.atpc-guided-family-grid,
  .atpc .atpc-products.atpc-guided-style-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .atpc .atpc-guided-breadcrumb {
    padding: 7px 8px;
  }
  .atpc .atpc-guided-breadcrumb > span {
    font-size: 13px;
  }
  .atpc .atpc-product-style.selected {
    grid-column: auto;
  }
  .atpc .atpc-guided-option-actions > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
}


/* -------------------------------------------------------------------------
 * Alpha 2.49 — Guided Family Card Visual Hierarchy
 * Product-type and style choices use normal retail cards: a large preview on
 * top, concise copy below, and responsive columns based on available width.
 * ---------------------------------------------------------------------- */
.atpc .atpc-products.atpc-guided-family-grid,
.atpc .atpc-products.atpc-guided-style-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important;
  align-items: stretch;
  gap: clamp(16px, 2vw, 22px) !important;
}

.atpc .atpc-product-family,
.atpc .atpc-product-style {
  display: flex !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  flex-direction: column !important;
  overflow: hidden !important;
  border: 1px solid #d5dee7 !important;
  border-radius: 13px !important;
  background: #fff !important;
  box-shadow: 0 10px 28px rgba(7, 27, 67, .08) !important;
}
.atpc .atpc-product-family:hover,
.atpc .atpc-product-family:focus-visible,
.atpc .atpc-product-style:hover,
.atpc .atpc-product-style:focus-visible {
  transform: translateY(-3px) !important;
  border-color: #aebed0 !important;
  box-shadow: 0 16px 34px rgba(7, 27, 67, .14) !important;
}

/* The image is the visual decision—not a narrow icon beside the copy. */
.atpc .atpc-product-family .atpc-product-image,
.atpc .atpc-product-style .atpc-product-image {
  display: grid !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 3 !important;
  place-items: center !important;
  overflow: hidden !important;
  border-right: 0 !important;
  border-bottom: 1px solid #e0e6ed !important;
  background: linear-gradient(145deg, #dbe3ea 0%, #bcc8d3 100%) !important;
}
.atpc .atpc-product-family .atpc-gallery-preview,
.atpc .atpc-product-style .atpc-gallery-preview {
  width: 100% !important;
  height: 100% !important;
  padding: clamp(14px, 5%, 22px) !important;
}
.atpc .atpc-product-family .atpc-gallery-object,
.atpc .atpc-product-style .atpc-gallery-object {
  max-width: 94% !important;
  max-height: 94% !important;
}

.atpc .atpc-product-family .atpc-product-copy,
.atpc .atpc-product-style .atpc-product-copy {
  display: flex !important;
  min-width: 0 !important;
  padding: 17px 18px 18px !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
}
.atpc .atpc-product-family .atpc-product-copy > strong,
.atpc .atpc-product-style .atpc-product-copy > strong {
  min-height: 0 !important;
  font-size: 20px !important;
  line-height: 1.15 !important;
}
.atpc .atpc-product-family .atpc-product-copy > small:not(.atpc-family-eyebrow),
.atpc .atpc-product-style .atpc-product-copy > small:not(.atpc-product-specific-name) {
  display: -webkit-box !important;
  min-height: 0 !important;
  margin-top: 7px !important;
  overflow: hidden !important;
  color: #536275 !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.atpc .atpc-family-eyebrow {
  font-size: 12px !important;
}
.atpc .atpc-family-count {
  margin-top: 10px !important;
  font-size: 13px !important;
}
.atpc .atpc-product-family .atpc-product-price-note,
.atpc .atpc-product-style .atpc-product-price-note {
  margin-top: 10px !important;
  font-size: 14px !important;
}
.atpc .atpc-product-family .atpc-product-idea-actions,
.atpc .atpc-product-style .atpc-product-idea-actions {
  margin-top: auto !important;
  padding-top: 14px !important;
}
.atpc .atpc-family-select,
.atpc .atpc-style-select {
  width: 100% !important;
  min-height: 50px !important;
  font-size: 15px !important;
}
.atpc .atpc-family-art-label {
  right: 12px !important;
  bottom: 12px !important;
  max-width: calc(100% - 24px) !important;
  font-size: 12px !important;
}

/* Give representative family products a strong presence in the larger stage. */
.atpc .atpc-product-family .atpc-gallery-shirt { width: min(92%, 300px) !important; }
.atpc .atpc-product-family .atpc-gallery-mug { width: min(76%, 260px) !important; }
.atpc .atpc-product-family .atpc-gallery-tumbler { width: min(43%, 145px) !important; }
.atpc .atpc-product-family .atpc-gallery-tote { width: min(72%, 235px) !important; }
.atpc .atpc-product-family .atpc-gallery-phone { width: min(44%, 150px) !important; }
.atpc .atpc-product-family .atpc-gallery-candle { width: min(46%, 150px) !important; }

@media (min-width: 1280px) {
  .atpc .atpc-products.atpc-guided-family-grid,
  .atpc .atpc-products.atpc-guided-style-grid {
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)) !important;
  }
}
@media (max-width: 680px) {
  .atpc .atpc-products.atpc-guided-family-grid,
  .atpc .atpc-products.atpc-guided-style-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .atpc .atpc-product-family .atpc-product-image,
  .atpc .atpc-product-style .atpc-product-image {
    aspect-ratio: 16 / 11 !important;
  }
}


/* -------------------------------------------------------------------------
 * Alpha 2.50 — Full-Width Proof Review
 * The final product proof is the hero of the approval screen. The product
 * image occupies the full content width, and all details, approval fields,
 * pricing, and ordering actions follow beneath it in a predictable stack.
 * ---------------------------------------------------------------------- */
.atpc .atpc-proof-layout.atpc-proof-layout-stacked {
  display: flex !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex-direction: column !important;
  gap: clamp(18px, 2.4vw, 28px) !important;
}
.atpc .atpc-proof-hero,
.atpc .atpc-proof-details {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.atpc .atpc-proof-hero { order: 1; }
.atpc .atpc-proof-details { order: 2; }
.atpc .atpc-proof-hero .atpc-proof-stage {
  display: grid !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: clamp(620px, 62vw, 900px) !important;
  place-items: center !important;
  padding: clamp(34px, 5vw, 68px) clamp(14px, 3vw, 42px) clamp(58px, 6vw, 82px) !important;
  overflow: hidden !important;
  border: 1px solid #cfd8e0;
  border-radius: 14px;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.98) 0%, rgba(248,248,246,.96) 44%, rgba(228,232,234,.94) 100%);
  box-shadow:
    inset 0 0 70px rgba(7,27,67,.08),
    0 18px 42px rgba(7,27,67,.08);
}
.atpc .atpc-proof-hero .atpc-proof-mockup {
  margin: auto !important;
  transform-origin: center center !important;
}
@media (min-width: 1181px) {
  .atpc .atpc-proof-hero .atpc-proof-mockup:not(.tumbler) {
    transform: scale(1.58) !important;
  }
  .atpc .atpc-proof-hero .atpc-proof-mockup.tumbler {
    transform: scale(1.42) !important;
  }
}
@media (min-width: 821px) and (max-width: 1180px) {
  .atpc .atpc-proof-hero .atpc-proof-mockup:not(.tumbler) {
    transform: scale(1.34) !important;
  }
  .atpc .atpc-proof-hero .atpc-proof-mockup.tumbler {
    transform: scale(1.22) !important;
  }
}
.atpc .atpc-proof-details .atpc-proof-panel {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  padding: clamp(22px, 3.5vw, 40px) !important;
  border: 1px solid #d8dfe6;
  border-top: 5px solid var(--violet);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(7,27,67,.08);
}
.atpc .atpc-proof-details .atpc-proof-panel > h4 {
  margin: 0 !important;
  font-size: clamp(28px, 3vw, 40px) !important;
  line-height: 1.08 !important;
}
.atpc .atpc-proof-details .atpc-proof-panel > p {
  max-width: 960px;
  margin: 10px 0 22px !important;
  font-size: 16px !important;
  line-height: 1.58 !important;
}
.atpc .atpc-proof-details .atpc-proof-location-tabs { margin-bottom: 18px; }
.atpc .atpc-proof-details .atpc-proof-summary {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
  margin: 0 !important;
}
.atpc .atpc-proof-details .atpc-proof-summary > div {
  display: block !important;
  min-width: 0 !important;
  padding: 14px 16px !important;
  border: 1px solid #dfe5ea !important;
  border-radius: 9px;
  background: #f8fafc;
}
.atpc .atpc-proof-details .atpc-proof-summary dt {
  margin-bottom: 6px;
  font-size: 11px !important;
  line-height: 1.25 !important;
}
.atpc .atpc-proof-details .atpc-proof-summary dd {
  margin: 0 !important;
  overflow-wrap: anywhere;
  font-size: 15px !important;
  line-height: 1.45 !important;
}
.atpc .atpc-proof-details .atpc-approval-card,
.atpc .atpc-proof-details .atpc-native-customer {
  width: 100%;
  max-width: 100%;
  margin-top: 22px;
}
.atpc .atpc-proof-step > .atpc-live-total,
.atpc .atpc-proof-step > .atpc-order,
.atpc .atpc-proof-step > .atpc-order-message,
.atpc .atpc-proof-step > .atpc-proof-nav {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.atpc .atpc-proof-step > .atpc-order {
  display: grid !important;
  grid-template-columns: minmax(120px, .25fr) minmax(240px, .75fr) !important;
  align-items: end !important;
  gap: 14px !important;
}
.atpc .atpc-proof-step > .atpc-order button {
  width: 100%;
  min-height: 52px;
}
@media (max-width: 1120px) {
  .atpc .atpc-proof-details .atpc-proof-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 820px) {
  .atpc .atpc-proof-hero .atpc-proof-stage {
    min-height: 560px !important;
    padding: 30px 10px 60px !important;
  }
  .atpc .atpc-proof-hero .atpc-proof-mockup,
  .atpc .atpc-proof-hero .atpc-proof-mockup:not(.tumbler),
  .atpc .atpc-proof-hero .atpc-proof-mockup.tumbler {
    transform: scale(1.06) !important;
  }
  .atpc .atpc-proof-details .atpc-proof-summary {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .atpc .atpc-proof-step > .atpc-order {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .atpc .atpc-proof-step > .atpc-order label,
  .atpc .atpc-proof-step > .atpc-order input[type="number"] {
    width: 100% !important;
  }
}
@media (max-width: 520px) {
  .atpc .atpc-proof-hero .atpc-proof-stage {
    min-height: 480px !important;
    padding: 24px 6px 54px !important;
    border-radius: 10px;
  }
  .atpc .atpc-proof-hero .atpc-proof-mockup,
  .atpc .atpc-proof-hero .atpc-proof-mockup:not(.tumbler),
  .atpc .atpc-proof-hero .atpc-proof-mockup.tumbler {
    transform: scale(.94) !important;
  }
  .atpc .atpc-proof-details .atpc-proof-panel {
    padding: 18px 14px !important;
  }
}

/* -------------------------------------------------------------------------
 * Alpha 2.51 — Orientation Fidelity and Live Option Preview
 * Product-family previews use product-specific physical proportions, the
 * selected artwork summary follows the full source orientation, and changing a
 * shirt color updates the selected style mockup before proof.
 * ---------------------------------------------------------------------- */

/* Show the whole selected artwork at its real orientation. The fixed square-ish
   summary box used by earlier releases could crop or visually compress portrait
   museum works even though the full source had already loaded. */
.atpc .atpc-market-art-image {
  width: 100% !important;
  height: auto !important;
  max-height: 430px !important;
  aspect-ratio: var(--atpc-art-summary-aspect, 1) !important;
  padding: 0 !important;
  background: #edf1f4 !important;
}
.atpc .atpc-market-art-image img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 430px !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

/* Family cards use one common stage, but the object inside that stage must keep
   the proportions of the physical product. */
.atpc .atpc-product-family .atpc-gallery-preview {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: minmax(0, 1fr) !important;
  place-items: center !important;
}
.atpc .atpc-product-family .atpc-gallery-object {
  justify-self: center !important;
  align-self: center !important;
  margin: auto !important;
  transform: none !important;
}

/* Wall art follows the selected source ratio rather than a generic square. */
.atpc .atpc-product-family .atpc-gallery-preview.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-product-family .atpc-gallery-preview.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-product-family .atpc-gallery-preview.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-product-family .atpc-gallery-preview.renderer-wall_panel .atpc-gallery-panel {
  aspect-ratio: var(--atpc-preview-aspect, 1) !important;
  max-width: 90% !important;
  max-height: 90% !important;
}
.atpc .atpc-product-family .atpc-gallery-preview.orientation-portrait.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-product-family .atpc-gallery-preview.orientation-portrait.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-product-family .atpc-gallery-preview.orientation-portrait.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-product-family .atpc-gallery-preview.orientation-portrait.renderer-wall_panel .atpc-gallery-panel {
  width: auto !important;
  height: 88% !important;
}
.atpc .atpc-product-family .atpc-gallery-preview.orientation-landscape.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-product-family .atpc-gallery-preview.orientation-landscape.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-product-family .atpc-gallery-preview.orientation-landscape.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-product-family .atpc-gallery-preview.orientation-landscape.renderer-wall_panel .atpc-gallery-panel {
  width: 90% !important;
  height: auto !important;
}
.atpc .atpc-product-family .atpc-gallery-preview.orientation-square.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-product-family .atpc-gallery-preview.orientation-square.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-product-family .atpc-gallery-preview.orientation-square.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-product-family .atpc-gallery-preview.orientation-square.renderer-wall_panel .atpc-gallery-panel {
  width: auto !important;
  height: 82% !important;
  aspect-ratio: 1 / 1 !important;
}

/* Product-family silhouettes: tuned independently instead of inheriting the
   same percentage width from the card. */
.atpc .atpc-product-family .atpc-gallery-tote {
  width: min(54%, 190px) !important;
  height: auto !important;
  aspect-ratio: .72 / 1 !important;
  max-width: 58% !important;
  max-height: 90% !important;
}
.atpc .atpc-product-family .atpc-gallery-mug {
  width: min(58%, 210px) !important;
  height: auto !important;
  aspect-ratio: 1.24 / 1 !important;
  max-width: 62% !important;
  max-height: 74% !important;
}
.atpc .atpc-product-family .atpc-gallery-tumbler {
  width: min(31%, 108px) !important;
  height: auto !important;
  aspect-ratio: .42 / 1 !important;
  max-width: 34% !important;
  max-height: 90% !important;
}
.atpc .atpc-product-family .atpc-gallery-phone {
  width: min(31%, 108px) !important;
  height: auto !important;
  aspect-ratio: .49 / 1 !important;
  max-width: 34% !important;
  max-height: 90% !important;
  border-radius: 16% / 8% !important;
}

/* The chosen T-shirt color must be visible before the customer reaches proof. */
.atpc .atpc-product.selected .atpc-gallery-shirt,
.atpc .atpc-product-style.selected .atpc-gallery-shirt {
  background:
    radial-gradient(ellipse at 50% 13%, rgba(255,255,255,.56) 0 7%, transparent 20%),
    linear-gradient(92deg, rgba(0,0,0,.18), transparent 19%, rgba(255,255,255,.30) 49%, transparent 76%, rgba(0,0,0,.16)),
    var(--shirt-color, var(--atpc-selected-product-color, #f4f4f5)) !important;
}
.atpc .atpc-product.selected .atpc-gallery-shirt-neck,
.atpc .atpc-product-style.selected .atpc-gallery-shirt-neck {
  border-color: rgba(90, 96, 104, .55) !important;
  background: var(--shirt-color, var(--atpc-selected-product-color, #d5d9de)) !important;
  filter: brightness(.82);
}

@media (max-width: 680px) {
  .atpc .atpc-market-art-image { max-height: 520px !important; }
  .atpc .atpc-market-art-image img { max-height: 520px !important; }
}


/* -------------------------------------------------------------------------
 * Alpha 2.52 — Unified Tote Renderer
 * Guided style cards, selected option previews, the customizer, and the proof
 * use one consistent tote silhouette and print-surface proportion.
 * ---------------------------------------------------------------------- */

/* Scale tote scenes from the visual stage rather than a fixed pixel cap. This
   keeps the tote the same relative size before and after a style is selected. */
.atpc .atpc-product-style .atpc-gallery-tote,
.atpc .atpc-product-style.selected .atpc-gallery-tote {
  width: auto !important;
  height: 80% !important;
  aspect-ratio: .74 / 1 !important;
  max-width: 72% !important;
  max-height: 84% !important;
  margin-inline: auto !important;
}
.atpc .atpc-product-style .atpc-gallery-tote-body,
.atpc .atpc-product-style.selected .atpc-gallery-tote-body {
  inset: 19% 0 0 !important;
}
.atpc .atpc-product-style .atpc-gallery-tote .atpc-gallery-surface,
.atpc .atpc-product-style.selected .atpc-gallery-tote .atpc-gallery-surface {
  top: 5% !important;
  left: 5% !important;
  width: 90% !important;
  height: 88% !important;
}

/* Match the interactive editor and proof to the same controlled tote shape.
   The older legacy shape was too tall and used a much smaller print window. */
.atpc .atpc-mockup.tote:before {
  left: 52px !important;
  top: 103px !important;
  width: 256px !important;
  height: 244px !important;
  border: 1px solid #b9ad9a;
  border-radius: 8px 8px 18px 18px;
  clip-path: polygon(4% 0, 96% 0, 100% 100%, 0 100%) !important;
  background: linear-gradient(110deg, #e5dac7, #f5ecdc 48%, #d2c4af);
  box-shadow: inset 12px 0 20px rgba(75,60,40,.10), inset -10px 0 18px rgba(75,60,40,.08);
}
.atpc .atpc-mockup.tote:after {
  left: 112px !important;
  top: 29px !important;
  width: 136px !important;
  height: 116px !important;
  border-width: 16px !important;
  border-color: #d7cdb9;
  border-bottom: 0 !important;
  border-radius: 74px 74px 0 0 !important;
}
.atpc .atpc-mockup.tote .atpc-print-area {
  left: 77px !important;
  top: 126px !important;
  width: 206px !important;
  height: 198px !important;
  border-radius: 3px;
  background: transparent;
  z-index: 2;
}
.atpc .atpc-mockup.tote.variant-tote_clear:before {
  border-color: rgba(133,183,199,.72) !important;
  background: linear-gradient(110deg, rgba(214,239,247,.25), rgba(255,255,255,.60), rgba(151,205,221,.25)) !important;
  box-shadow: inset 12px 0 20px rgba(255,255,255,.34), inset -10px 0 18px rgba(75,120,137,.10) !important;
}
.atpc .atpc-mockup.tote.variant-tote_clear:after {
  border-color: rgba(133,183,199,.62) !important;
}
.atpc .atpc-mockup.tote.variant-tote_fabric_black:before {
  border-color: #20252b !important;
  background: linear-gradient(110deg, #15181c, #393e44 48%, #111419) !important;
}
.atpc .atpc-mockup.tote.variant-tote_fabric_black:after {
  border-color: #20252b !important;
}

/* The proof hero previously enlarged a tote as though it were a flat poster.
   Use a product-specific scale so the complete bag remains believable. */
@media (min-width: 1181px) {
  .atpc .atpc-proof-hero .atpc-proof-mockup.tote {
    transform: scale(1.30) !important;
  }
}
@media (min-width: 821px) and (max-width: 1180px) {
  .atpc .atpc-proof-hero .atpc-proof-mockup.tote {
    transform: scale(1.16) !important;
  }
}
@media (max-width: 820px) {
  .atpc .atpc-proof-hero .atpc-proof-mockup.tote {
    transform: scale(.98) !important;
  }
}

/* -------------------------------------------------------------------------
 * Alpha 2.53 — Search Quality and Predictable Navigation
 * Museum search defaults to wall-art-ready images, clearly advertises
 * additional pages, and keeps transitions anchored at the top of each step.
 * ---------------------------------------------------------------------- */
.atpc .atpc-search-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 12px 0 16px;
  padding: 13px 14px;
  border: 1px solid #b9d9d5;
  border-left: 5px solid var(--teal);
  border-radius: 8px;
  color: #304b5b;
  background: #eef8f6;
}
.atpc .atpc-search-more[hidden] { display: none !important; }
.atpc .atpc-search-more span,
.atpc .atpc-search-more strong,
.atpc .atpc-search-more small { display: block; }
.atpc .atpc-search-more strong {
  color: var(--navy);
  font-size: 16px;
  line-height: 1.25;
}
.atpc .atpc-search-more small {
  margin-top: 2px;
  color: #506878;
  font-size: 14px !important;
}
.atpc .atpc-search-more button {
  flex: none;
  min-height: var(--atpc-touch, 44px);
  padding: 10px 16px;
  border: 1px solid #6333cc;
  border-radius: 7px;
  color: #fff;
  background: #6333cc;
  font-weight: 850;
  cursor: pointer;
}
.atpc .atpc-page button {
  white-space: normal;
  line-height: 1.25;
}
.atpc .atpc-artworthy-filter {
  align-items: flex-start;
}
.atpc .atpc-artworthy-filter strong {
  font-size: 14px !important;
}
.atpc .atpc-artworthy-filter small {
  font-size: 13px !important;
  line-height: 1.35 !important;
}
.atpc .atpc-search-total-note {
  font-size: 13px !important;
  line-height: 1.4 !important;
}
.atpc .atpc-search-summary span {
  font-size: 13px !important;
}
.atpc .atpc-search-summary strong {
  font-size: 14px !important;
}
.atpc .atpc-art-card.selected {
  outline: 3px solid rgba(99, 51, 204, .25);
  box-shadow: 0 14px 34px rgba(7, 27, 67, .12);
}
@media (max-width: 680px) {
  .atpc .atpc-search-more {
    align-items: stretch;
    flex-direction: column;
  }
  .atpc .atpc-search-more button { width: 100%; }
  .atpc .atpc-page button { min-width: 0; }
}


/* -------------------------------------------------------------------------
 * Alpha 2.53 — Product-Ready Artwork Search and Predictable Navigation
 * ---------------------------------------------------------------------- */
.atpc .atpc-wizard-step,
.atpc .atpc-results,
.atpc .atpc-product-step {
  overflow-anchor: none;
}
.atpc .atpc-wizard-step { scroll-margin-top: 118px; }
.atpc .atpc-search-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 16px 0 18px;
  padding: 14px 16px;
  border: 1px solid #b8ccd8;
  border-radius: 10px;
  color: #071b43;
  background: #eef9fa;
}
.atpc .atpc-search-more[hidden] { display: none !important; }
.atpc .atpc-search-more span { display: grid; gap: 2px; min-width: 0; }
.atpc .atpc-search-more strong { color: #6333cc; font-size: 16px; }
.atpc .atpc-search-more small { color: #526275; font-size: 14px; line-height: 1.4; }
.atpc .atpc-search-more button {
  flex: 0 0 auto;
  min-height: 46px;
  padding: 11px 16px;
  border: 1px solid #6333cc;
  border-radius: 7px;
  color: #fff;
  background: #6333cc;
  font-weight: 850;
}
.atpc .atpc-page button[data-page="next"] { min-width: 190px; }
@media (max-width: 680px) {
  .atpc .atpc-search-more { display: grid; }
  .atpc .atpc-search-more button { width: 100%; }
  .atpc .atpc-page button[data-page="next"] { min-width: 0; }
}

/* -------------------------------------------------------------------------
 * Alpha 2.54 — UX Stabilization and Design-System Freeze
 * Supporting explanations move into one accessible information-popover
 * component. Search controls stay compact, consistent, and relevant.
 * ---------------------------------------------------------------------- */
.atpc {
  --atpc-text-xs: 14px;
  --atpc-text-sm: 15px;
  --atpc-text-base: 16px;
  --atpc-control-height: 48px;
  --atpc-touch-target: 44px;
  --atpc-radius-control: 8px;
  --atpc-radius-card: 12px;
  --atpc-shadow-popover: 0 18px 48px rgba(7, 27, 67, .24);
}

/* One information component for hover, keyboard focus, click, and tap. */
.atpc .atpc-info {
  position: relative;
  z-index: 40;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
}
.atpc .atpc-info-button {
  position: relative;
  display: inline-grid;
  width: var(--atpc-touch-target);
  min-width: var(--atpc-touch-target);
  height: var(--atpc-touch-target);
  min-height: var(--atpc-touch-target);
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: transparent;
  background: transparent;
  box-shadow: none;
  font-size: 0;
  line-height: 1;
}
.atpc .atpc-info-button::before {
  content: "i";
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid #8da0b5;
  border-radius: 50%;
  color: #32516c;
  background: #fff;
  font: 800 14px/1 Georgia, serif;
  transition: border-color .15s ease, color .15s ease, background .15s ease, transform .15s ease;
}
.atpc .atpc-info-button:hover::before,
.atpc .atpc-info-button:focus-visible::before,
.atpc .atpc-info.is-open .atpc-info-button::before {
  border-color: #6333cc;
  color: #fff;
  background: #6333cc;
  transform: scale(1.04);
}
.atpc .atpc-info-button:focus-visible {
  outline: 3px solid rgba(7, 143, 165, .28);
  outline-offset: 1px;
}
.atpc .atpc-info-popover {
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  z-index: 1000;
  width: min(320px, calc(100vw - 34px));
  padding: 13px 14px;
  border: 1px solid #c8d3df;
  border-radius: 10px;
  color: #26394e !important;
  background: #fff !important;
  box-shadow: var(--atpc-shadow-popover);
  font-size: var(--atpc-text-xs) !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  text-align: left;
  text-transform: none !important;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  pointer-events: none;
  transition: opacity .14s ease, visibility .14s ease, transform .14s ease;
}
.atpc .atpc-info-popover.align-right {
  right: 0;
  left: auto;
}
.atpc .atpc-info:hover .atpc-info-popover,
.atpc .atpc-info.is-focus .atpc-info-popover,
.atpc .atpc-info.is-open .atpc-info-popover {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

/* Compact, balanced archive controls. */
.atpc .atpc-filterbar {
  grid-template-columns: minmax(165px, 1fr) minmax(165px, 1fr) auto auto !important;
  gap: 10px !important;
  align-items: end !important;
}
.atpc .atpc-filterbar > label {
  min-width: 0;
  font-size: 12px !important;
}
.atpc .atpc-filterbar select {
  min-height: var(--atpc-control-height);
  margin-top: 5px;
  padding: 10px 38px 10px 12px;
  border-radius: var(--atpc-radius-control);
  font-size: var(--atpc-text-sm);
}
.atpc .atpc-artworthy-control {
  position: relative;
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 0;
}
.atpc .atpc-artworthy-filter {
  min-height: var(--atpc-control-height) !important;
  padding: 7px 10px !important;
  align-items: center !important;
  gap: 8px !important;
  border-radius: var(--atpc-radius-control) !important;
  white-space: nowrap;
}
.atpc .atpc-artworthy-filter input {
  width: 18px;
  height: 18px;
}
.atpc .atpc-artworthy-filter > span {
  color: var(--navy) !important;
  font-size: var(--atpc-text-sm) !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}
.atpc .atpc-artworthy-control .atpc-info-button {
  margin-left: -4px;
}

.atpc .atpc-page {
  display: inline-grid !important;
  grid-template-columns: minmax(104px, auto) auto minmax(88px, auto);
  min-height: var(--atpc-control-height);
  align-items: center;
  gap: 6px !important;
  padding: 4px;
  border: 1px solid #c7d2de;
  border-radius: var(--atpc-radius-control);
  background: #f7f9fb;
}
.atpc .atpc-page[hidden],
.atpc .atpc-search-summary[hidden] {
  display: none !important;
}
.atpc .atpc-page button {
  min-width: 0 !important;
  min-height: 40px;
  padding: 8px 12px !important;
  border-radius: 6px !important;
  white-space: nowrap !important;
  font-size: var(--atpc-text-xs) !important;
  line-height: 1.2 !important;
}
.atpc .atpc-page strong {
  min-width: 58px;
  padding: 0 5px !important;
  color: var(--navy);
  font-size: var(--atpc-text-xs) !important;
  text-align: center;
  white-space: nowrap;
}
.atpc .atpc-page-bottom {
  width: max-content;
  max-width: 100%;
  margin: 22px auto 0 !important;
}

.atpc .atpc-search-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 14px;
}
.atpc .atpc-search-summary > span {
  display: inline-flex;
  min-height: 36px;
  padding: 7px 11px !important;
  align-items: center;
  gap: 4px;
  border-radius: 999px;
  font-size: var(--atpc-text-xs) !important;
}
.atpc .atpc-search-summary strong {
  font-size: var(--atpc-text-xs) !important;
}
.atpc .atpc-search-provider-total .atpc-info-button {
  width: 34px;
  min-width: 34px;
  height: 34px;
  min-height: 34px;
  margin: -6px -7px -6px 0;
}
.atpc .atpc-search-provider-total .atpc-info-button::before {
  width: 22px;
  height: 22px;
  font-size: 13px;
}
.atpc .atpc-search-total-note { display: none !important; }

.atpc .atpc-search-more {
  min-height: 54px;
  margin: 14px 0 18px !important;
  padding: 8px 10px 8px 14px !important;
  align-items: center !important;
  border-left: 4px solid var(--teal) !important;
}
.atpc .atpc-search-more strong {
  font-size: var(--atpc-text-base) !important;
}
.atpc .atpc-search-more button {
  min-width: 96px;
  min-height: 42px;
  padding: 9px 14px !important;
  white-space: nowrap;
}

/* Supporting explanations on later steps use the same compact pattern. */
.atpc .atpc-product-type-intro,
.atpc .atpc-market-products-head,
.atpc .atpc-proof-panel-title,
.atpc .atpc-product-setup-head > div {
  display: flex !important;
  min-width: 0;
  align-items: center;
  gap: 4px;
}
.atpc .atpc-product-type-intro {
  justify-content: flex-start !important;
}
.atpc .atpc-market-products-head {
  justify-content: space-between;
  overflow: visible;
}
.atpc .atpc-market-products-head .atpc-info,
.atpc .atpc-proof-panel-title .atpc-info {
  margin-left: auto;
}
.atpc .atpc-product-setup-head {
  overflow: visible;
}
.atpc .atpc-product-setup-head > span {
  display: block;
}
.atpc .atpc-product-setup-head > div > strong {
  font-size: 20px !important;
}
.atpc .atpc-proof-panel-title h4 {
  margin: 0;
}
.atpc .atpc-proof-instruction {
  margin: 8px 0 16px !important;
  color: #526275;
  font-size: var(--atpc-text-sm) !important;
}
.atpc .atpc-product-type-intro .atpc-info-popover,
.atpc .atpc-market-products-head .atpc-info-popover,
.atpc .atpc-product-setup-head .atpc-info-popover,
.atpc .atpc-proof-panel-title .atpc-info-popover {
  font-size: var(--atpc-text-xs) !important;
}

/* Baseline component consistency for the frozen customer UI. */
.atpc .atpc-status,
.atpc .atpc-empty,
.atpc .atpc-product-count,
.atpc .atpc-wizard-nav > span,
.atpc .atpc-order-message {
  font-size: var(--atpc-text-sm) !important;
  line-height: 1.45;
}
.atpc .atpc-search button,
.atpc .atpc-wizard-nav button,
.atpc .atpc-guided-option-actions button,
.atpc .atpc-product-idea-actions button,
.atpc .atpc-order button {
  min-height: var(--atpc-control-height);
  border-radius: var(--atpc-radius-control);
}

@media (max-width: 1180px) {
  .atpc .atpc-filterbar {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .atpc .atpc-artworthy-control { justify-self: start; }
  .atpc .atpc-page-top { justify-self: end; }
}
@media (max-width: 680px) {
  .atpc .atpc-filterbar {
    grid-template-columns: 1fr !important;
  }
  .atpc .atpc-artworthy-control,
  .atpc .atpc-artworthy-filter,
  .atpc .atpc-page-top {
    width: 100%;
  }
  .atpc .atpc-artworthy-control .atpc-info { margin-left: auto; }
  .atpc .atpc-page {
    grid-template-columns: 1fr auto 1fr;
    width: 100%;
  }
  .atpc .atpc-page button { width: 100%; }
  .atpc .atpc-info-popover,
  .atpc .atpc-info-popover.align-right {
    position: fixed;
    top: auto;
    right: 16px;
    bottom: 16px;
    left: 16px;
    width: auto;
    max-width: none;
    transform: translateY(10px);
  }
  .atpc .atpc-info:hover .atpc-info-popover,
  .atpc .atpc-info.is-focus .atpc-info-popover,
  .atpc .atpc-info.is-open .atpc-info-popover {
    transform: translateY(0);
  }
  .atpc .atpc-market-products-head,
  .atpc .atpc-product-setup-head > div,
  .atpc .atpc-proof-panel-title {
    align-items: flex-start;
  }
}

/* Alpha 2.54 compact help refinements for editor headings. */
.atpc .atpc-choice-title-row,
.atpc .atpc-text-heading {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 4px;
}
.atpc .atpc-choice-title-row > strong,
.atpc .atpc-text-heading > strong {
  min-width: 0;
}
.atpc .atpc-choice-title-row .atpc-info,
.atpc .atpc-text-heading .atpc-info {
  margin-left: 2px;
}
.atpc .atpc-choice-title-row .atpc-info-popover,
.atpc .atpc-text-heading .atpc-info-popover {
  font-size: var(--atpc-text-xs) !important;
  font-weight: 600 !important;
}
.atpc .atpc-text-heading > span:not(.atpc-info) {
  margin-left: auto;
}
@media (max-width: 680px) {
  .atpc .atpc-text-heading {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .atpc .atpc-text-heading > span:not(.atpc-info) {
    width: 100%;
    margin-left: 0;
  }
}


/* Final Alpha 2.54 information-popover refinements. */
.atpc .atpc-print-quality-head,
.atpc .atpc-native-customer-title {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.atpc .atpc-print-quality-head > strong,
.atpc .atpc-native-customer-title > h4 {
  min-width: 0;
  margin: 0 !important;
}
.atpc .atpc-print-quality .atpc-info,
.atpc .atpc-native-customer-title .atpc-info {
  margin-left: auto;
}
.atpc .atpc-native-customer-title {
  margin-bottom: 14px;
}
.atpc .atpc-native-customer > p {
  display: none !important;
}
.atpc .atpc-print-quality .atpc-info-popover {
  width: min(360px, calc(100vw - 34px));
}

/* -------------------------------------------------------------------------
 * Alpha 2.55 — Unified Render Contract and Provider Proofs
 * One contract controls orientation, silhouette, fit and focal placement from
 * product family through style/options, editor and final proof.
 * ---------------------------------------------------------------------- */

/* Consolidated search results + navigation bar. */
.atpc .atpc-search-resultsbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 18px;
  margin: 12px 0 18px;
  padding: 10px 12px;
  border: 1px solid #c8d5df;
  border-left: 4px solid var(--teal);
  border-radius: var(--atpc-radius-control, 8px);
  background: linear-gradient(135deg, #f5f9fb, #eef7f5);
}
.atpc .atpc-search-resultsbar[hidden] { display: none !important; }
.atpc .atpc-search-resultsbar .atpc-search-summary {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin: 0 !important;
}
.atpc .atpc-search-resultsbar .atpc-search-summary > span {
  min-height: 0;
  padding: 0 !important;
  border-radius: 0;
  color: #42586b;
  background: transparent;
  white-space: nowrap;
}
.atpc .atpc-search-resultsnav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.atpc .atpc-search-resultsnav > strong {
  color: #23685f;
  font-size: var(--atpc-text-xs, 14px);
  white-space: nowrap;
}
.atpc .atpc-search-resultsbar .atpc-page {
  flex: none;
  margin: 0 !important;
}

/* All guided preview levels honor the same contract geometry. */
.atpc .atpc-gallery-preview {
  --atpc-object-aspect: var(--atpc-preview-aspect, 1);
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: minmax(0, 1fr) !important;
  place-items: center !important;
}
.atpc .atpc-gallery-preview .atpc-gallery-object {
  justify-self: center !important;
  align-self: center !important;
  margin: auto !important;
  transform: none !important;
  aspect-ratio: var(--atpc-object-aspect, 1) !important;
}
.atpc .atpc-gallery-preview .atpc-gallery-art {
  object-position: var(--atpc-art-position, 50% 50%) !important;
}

/* Wall art: actual artwork orientation at family, style and selected-option levels. */
.atpc .atpc-gallery-preview.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.renderer-wall_panel .atpc-gallery-panel,
.atpc .atpc-gallery-preview.renderer-wall_poster_hanger .atpc-gallery-poster,
.atpc .atpc-gallery-preview.renderer-wall_framed_canvas .atpc-gallery-frame {
  aspect-ratio: var(--atpc-object-aspect, 1) !important;
  max-width: 90% !important;
  max-height: 90% !important;
}
.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_panel .atpc-gallery-panel,
.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_poster_hanger .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-portrait.renderer-wall_framed_canvas .atpc-gallery-frame {
  width: auto !important;
  height: 88% !important;
}
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_panel .atpc-gallery-panel,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_poster_hanger .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-landscape.renderer-wall_framed_canvas .atpc-gallery-frame {
  width: 90% !important;
  height: auto !important;
}
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_framed .atpc-gallery-frame,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_canvas .atpc-gallery-canvas,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_poster .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_panel .atpc-gallery-panel,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_poster_hanger .atpc-gallery-poster,
.atpc .atpc-gallery-preview.orientation-square.renderer-wall_framed_canvas .atpc-gallery-frame {
  width: auto !important;
  height: 82% !important;
  aspect-ratio: 1 / 1 !important;
}

/* Contract-locked non-wall silhouettes. */
.atpc .atpc-gallery-preview.renderer-bag_tote .atpc-gallery-tote {
  width: auto !important;
  height: 82% !important;
  aspect-ratio: .74 / 1 !important;
  max-width: 72% !important;
  max-height: 86% !important;
}
.atpc .atpc-gallery-preview.renderer-bag_tote .atpc-gallery-art {
  object-fit: cover !important;
  transform: none !important;
}
.atpc .atpc-gallery-preview.renderer-case_phone .atpc-gallery-phone {
  width: auto !important;
  height: 86% !important;
  aspect-ratio: .50 / 1 !important;
  max-width: 50% !important;
  max-height: 90% !important;
}
.atpc .atpc-gallery-preview.renderer-cylinder_tumbler .atpc-gallery-tumbler {
  width: auto !important;
  height: 87% !important;
  aspect-ratio: var(--atpc-object-aspect, .43) !important;
  max-width: 48% !important;
}
.atpc .atpc-gallery-preview.renderer-cylinder_mug .atpc-gallery-mug {
  width: min(70%, 250px) !important;
  height: auto !important;
  aspect-ratio: var(--atpc-object-aspect, 1.28) !important;
  max-height: 78% !important;
}
.atpc .atpc-gallery-preview.renderer-cylinder_candle .atpc-gallery-candle {
  width: auto !important;
  height: 84% !important;
  aspect-ratio: var(--atpc-object-aspect, .72) !important;
  max-width: 55% !important;
}
.atpc .atpc-gallery-preview.renderer-garment_flatlay .atpc-gallery-shirt {
  width: auto !important;
  height: 80% !important;
  aspect-ratio: var(--atpc-object-aspect, .94) !important;
  max-width: 88% !important;
}

/* The customizer and deterministic proof also carry the contract orientation. */
.atpc .atpc-mockup.orientation-portrait.canvas .atpc-print-area,
.atpc .atpc-mockup.orientation-portrait.flat.framed .atpc-print-area,
.atpc .atpc-mockup.orientation-portrait.flat.poster .atpc-print-area,
.atpc .atpc-mockup.orientation-portrait.flat.panel .atpc-print-area {
  width: 190px !important;
  height: 285px !important;
  left: 85px !important;
  top: 50px !important;
}
.atpc .atpc-mockup.orientation-landscape.canvas .atpc-print-area,
.atpc .atpc-mockup.orientation-landscape.flat.framed .atpc-print-area,
.atpc .atpc-mockup.orientation-landscape.flat.poster .atpc-print-area,
.atpc .atpc-mockup.orientation-landscape.flat.panel .atpc-print-area {
  width: 300px !important;
  height: 205px !important;
  left: 30px !important;
  top: 90px !important;
}
.atpc .atpc-mockup.orientation-square.canvas .atpc-print-area,
.atpc .atpc-mockup.orientation-square.flat.framed .atpc-print-area,
.atpc .atpc-mockup.orientation-square.flat.poster .atpc-print-area,
.atpc .atpc-mockup.orientation-square.flat.panel .atpc-print-area {
  width: 250px !important;
  height: 250px !important;
  left: 55px !important;
  top: 68px !important;
}

/* Provider-generated product proof + exact flat production design. */
.atpc .atpc-proof-viewbar {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid #c8d5df;
  border-radius: 9px 9px 0 0;
  background: #f7fafc;
}
.atpc .atpc-proof-viewbar > div {
  display: inline-flex;
  gap: 6px;
}
.atpc .atpc-proof-viewbar button {
  min-height: 44px;
  padding: 9px 14px;
  border: 1px solid #8b72cf;
  border-radius: 7px;
  color: #5632a6;
  background: #fff;
  font-weight: 800;
  cursor: pointer;
}
.atpc .atpc-proof-viewbar button.active {
  color: #fff;
  background: #6333cc;
}
.atpc .atpc-proof-viewbar > span {
  min-width: 0;
  color: #526275;
  font-size: var(--atpc-text-xs, 14px);
  line-height: 1.35;
  text-align: right;
}
.atpc .atpc-provider-proof-image {
  display: block;
  width: min(100%, 1100px);
  max-height: 760px;
  object-fit: contain;
  object-position: center;
  border-radius: 8px;
}
.atpc .atpc-provider-proof-image[hidden],
.atpc .atpc-proof-flat-stage[hidden],
.atpc [data-proof-product-stage][hidden] { display: none !important; }
.atpc .atpc-proof-flat-stage {
  display: grid;
  min-height: 520px;
  padding: clamp(20px, 4vw, 46px);
  place-items: center;
  gap: 14px;
  border: 1px solid #b9c6d2;
  border-top: 0;
  border-radius: 0 0 12px 12px;
  background: repeating-conic-gradient(#eef2f5 0 25%, #fff 0 50%) 50% / 24px 24px;
}
.atpc .atpc-proof-flat-stage img {
  display: block;
  width: auto;
  max-width: min(100%, 1050px);
  max-height: 660px;
  object-fit: contain;
  box-shadow: 0 12px 32px rgba(7,27,67,.18);
}
.atpc .atpc-proof-flat-stage p {
  margin: 0;
  padding: 7px 11px;
  border-radius: 999px;
  color: #29475b;
  background: rgba(255,255,255,.92);
  font-size: var(--atpc-text-xs, 14px);
  font-weight: 700;
}

@media (max-width: 900px) {
  .atpc .atpc-search-resultsbar { grid-template-columns: 1fr; }
  .atpc .atpc-search-resultsnav { justify-content: space-between; }
  .atpc .atpc-proof-viewbar {
    align-items: flex-start;
    flex-direction: column;
  }
  .atpc .atpc-proof-viewbar > span { text-align: left; }
}
@media (max-width: 680px) {
  .atpc .atpc-search-resultsnav {
    align-items: stretch;
    flex-direction: column;
  }
  .atpc .atpc-search-resultsbar .atpc-page { width: 100%; }
  .atpc .atpc-proof-viewbar > div {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .atpc .atpc-proof-viewbar button { width: 100%; }
  .atpc .atpc-proof-flat-stage { min-height: 390px; }
}


/* Alpha 2.55 search completion is announced to assistive technology while the
   visible result totals and navigation live in the consolidated results bar. */
.atpc .atpc-status.atpc-status-complete {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* -------------------------------------------------------------------------
 * Alpha 2.57 — Provider Proof Diagnostics & Deterministic Fallback
 * The locally generated product proof is a first-class fallback when the
 * asynchronous Printful image is unavailable or delayed.
 * ---------------------------------------------------------------------- */
.atpc .atpc-deterministic-proof-image,
.atpc .atpc-provider-proof-image {
  display: block;
  width: min(92%, 920px);
  max-width: 92%;
  max-height: min(78vh, 860px);
  height: auto;
  object-fit: contain;
  object-position: center;
  margin: auto;
}
.atpc .atpc-deterministic-proof-image[hidden],
.atpc .atpc-provider-proof-image[hidden] { display: none !important; }


/* -------------------------------------------------------------------------
 * Alpha 3.0.4 — Proof Presentation Polish + Branded Activity Lightbox
 * Provider photography answers “what will it look like?”, Layout Proof answers
 * “where will it print?”, and Flat Print Design answers “what file is used?”.
 * ---------------------------------------------------------------------- */
.atpc .atpc-layout-proof .atpc-proof-print-area {
  background: rgba(255,255,255,.10) !important;
  outline: 2px dashed rgba(0,147,167,.72) !important;
  outline-offset: 3px;
  box-shadow: none !important;
}
.atpc .atpc-layout-proof .atpc-proof-print-area::after {
  content: "PRINT AREA";
  position: absolute;
  right: 5px;
  bottom: 5px;
  z-index: 8;
  padding: 3px 6px;
  border-radius: 999px;
  color: #006f7d;
  background: rgba(255,255,255,.88);
  font: 800 8px/1.2 Arial, sans-serif;
  letter-spacing: .08em;
  pointer-events: none;
}
.atpc .atpc-layout-proof .atpc-art-layer {
  z-index: 4;
}
.atpc .atpc-layout-proof-meta {
  position: absolute;
  left: 50%;
  bottom: -52px;
  transform: translateX(-50%);
  width: max-content;
  max-width: 320px;
  padding: 4px 9px;
  border: 1px solid #c7dfe3;
  border-radius: 999px;
  color: #075f6b;
  background: rgba(243,252,252,.96);
  font: 700 10px/1.25 Arial, sans-serif;
  text-align: center;
  white-space: normal;
}
.atpc .atpc-proof-flat-stage {
  min-height: clamp(380px, 52vw, 650px);
  padding: clamp(16px, 2.5vw, 30px);
}
.atpc .atpc-proof-flat-stage img {
  width: auto;
  max-width: min(92%, 900px);
  max-height: clamp(330px, 48vw, 590px);
}

.atpc-activity-lightbox[hidden] { display: none !important; }
.atpc-activity-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(7,27,67,.62);
  backdrop-filter: blur(5px);
}
.atpc-activity-dialog {
  display: flex;
  width: min(92vw, 440px);
  min-height: 280px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 30px 28px 28px;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 20px;
  outline: none;
  background: rgba(255,255,255,.97);
  box-shadow: 0 28px 90px rgba(7,27,67,.34);
  text-align: center;
}
.atpc-activity-dialog img {
  display: block;
  width: min(290px, 78vw);
  max-height: 120px;
  object-fit: contain;
}
.atpc-activity-dialog strong {
  color: #071b43;
  font: 700 24px/1.15 Georgia, serif;
}
.atpc-activity-dialog > span {
  min-height: 42px;
  color: #42566e;
  font: 600 15px/1.45 Arial, sans-serif;
}
.atpc-activity-spinner {
  display: flex;
  height: 24px;
  align-items: center;
  gap: 7px;
}
.atpc-activity-spinner i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0093a7, #6b35d4);
  animation: atpcActivityPulse 1.05s infinite ease-in-out;
}
.atpc-activity-spinner i:nth-child(2) { animation-delay: .14s; }
.atpc-activity-spinner i:nth-child(3) { animation-delay: .28s; }
@keyframes atpcActivityPulse {
  0%, 70%, 100% { transform: translateY(0) scale(.82); opacity: .45; }
  35% { transform: translateY(-6px) scale(1); opacity: 1; }
}
body.atpc-activity-open { overflow: hidden; }
.atpc .atpc-smart-layout-warnings { display: grid; gap: 4px; color: #765000; }
.atpc .atpc-smart-layout-warnings small { display: block; font-weight: 700; }
@media (prefers-reduced-motion: reduce) {
  .atpc-activity-spinner i { animation: none; opacity: .8; }
}
@media (max-width: 600px) {
  .atpc-activity-lightbox { padding: 14px; }
  .atpc-activity-dialog { min-height: 240px; padding: 24px 18px; }
  .atpc-activity-dialog strong { font-size: 21px; }
  .atpc .atpc-layout-proof-meta { bottom: -48px; max-width: 250px; }
}
