.catalog-section {
  padding-top: 100px;
}

.product-help,.product-related { margin-top: 56px; padding-top: 32px; border-top: 1px solid #dfe5eb; }
.product-help h2,.product-related h2 { margin: 0 0 22px; font-size: clamp(24px, 3vw, 32px); line-height: 1.2; }
.product-help-answers { margin-bottom: 20px; border: 1px solid #dfe5eb; border-radius: 16px; overflow: hidden; background: #fff; }
.product-help details + details { border-top: 1px solid #dfe5eb; }
.product-help summary { padding: 20px; color: #18263a; font-weight: 750; line-height: 1.5; cursor: pointer; }
.product-help summary:focus-visible { outline: 3px solid #f06a38; outline-offset: -4px; }
.product-help details[open] summary { background: #f5f7fa; }
.product-help details > div { padding: 0 20px 22px; }
.product-help details p { color: #43536a; line-height: 1.7; overflow-wrap: anywhere; }
.product-related .catalog-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
@media (max-width: 560px) {
  .product-help,.product-related { margin-top: 36px; padding-top: 24px; }
  .product-help summary { padding: 16px; }
  .product-help details > div { padding: 0 16px 18px; }
}

.catalog-heading {
  margin-bottom: 32px;
}

.catalog-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.catalog-page-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 28px; }
.catalog-page-nav:empty { display: none; }

.catalog-card {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-height: 290px;
  padding: 20px;
  border: 1px solid #e7eaf0;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 26px #14223a09;
}

.catalog-icon {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 16px;
  background: #eef2ff;
  color: #3564ff;
  font-size: 38px;
  font-weight: 800;
}

.catalog-card-photo {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: cover;
  object-position: center;
  border-radius: 12px;
  background: #edf2f7;
}
.catalog-card-photo[src$=".png"] { object-fit: contain; background: #eef2f4; }

.catalog-card small {
  display: block;
  color: #798492;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 800;
}

.catalog-card h3 {
  margin: 9px 0;
  font-size: 21px;
  line-height: 1.1;
  letter-spacing: -.05em;
}

.catalog-card p {
  color: #78828e;
  font-size: 12px;
  line-height: 1.5;
}

.catalog-link {
  margin-top: auto;
  color: #3564ff;
  font-size: 12px;
  font-weight: 800;
}

.catalog-error {
  color: #8a5360;
  font-size: 13px;
}

.product-page {
  min-height: calc(100vh - 79px);
  padding-top: 50px;
  padding-bottom: 90px;
}

.product-detail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 65px;
  margin-top: 28px;
}

.product-page-dtf { padding-top: 30px; }
.product-page-dtf .product-detail { gap: 46px; margin-top: 20px; }
.product-page-dtf .product-info h1 { margin-bottom: 12px; }
.product-page-dtf .hero-lead { margin-bottom: 14px; }
.product-page-dtf .product-fact { padding: 8px 0; margin-bottom: 10px; }
.product-page-dtf .product-price { margin: 14px 0 4px; font-size: 18px; }
.product-page-dtf .add-to-cart { margin-top: 14px; }
.dtf-order-note { margin: 0 0 12px; padding: 9px 12px; border-left: 3px solid #2871bf; border-radius: 0 8px 8px 0; background: #e9f3fc; color: #294862; font-size: 13px; line-height: 1.45; }
.dtf-jump-upload { display: none; }

.product-visual {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  place-items: center;
  height: 520px;
  min-height: 520px;
  border-radius: 24px;
  background: linear-gradient(135deg, #151d29, #3564ff);
  color: #fff;
  font-size: clamp(60px, 9vw, 120px);
  font-weight: 900;
  letter-spacing: -.1em;
  text-shadow: 0 16px 30px #0c143d50;
  margin: 0;
  overflow: hidden;
}

.product-visual[data-preview-type="dimension_guide"] { background: #11263d; }
.product-visual[data-preview-type="photo_position"] { background: #eef2f4; }
.product-visual[data-preview-type="dimension_guide"] img[src^="/assets/"] { object-fit: cover; }

.product-visual img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  border-radius: inherit;
}
.product-visual-placeholder { padding: 32px; font-size: clamp(24px, 4vw, 42px); line-height: 1.15; letter-spacing: -.04em; text-align: center; text-shadow: none; overflow-wrap: anywhere; }
.product-visual figcaption { align-self: end; width: 100%; padding: 12px 18px; background: #142539; color: #e8f2fc; font-size: 12px; font-weight: 700; letter-spacing: 0; text-align: center; text-shadow: none; }

.add-to-cart { margin: 24px 0 12px; }
.artwork-upload { display: grid; gap: 8px; margin: 0 0 18px; padding: 16px; border: 1px dashed #9bb7d3; border-radius: 10px; background: #f7fbff; }
.artwork-upload label { font-size: 14px; }
.artwork-upload label span { color: #62758a; font-weight: 500; }
.artwork-upload input { width: 100%; max-width: 100%; font-size: 13px; }
.artwork-upload p { margin: 0; color: #526173; font-size: 12px; line-height: 1.5; }
.artwork-upload #removeArtwork { justify-self: start; min-height: auto; padding: 0; border: 0; background: none; color: #1769ae; font-size: 12px; font-weight: 800; cursor: pointer; }
.artwork-upload #removeArtwork[hidden] { display: none; }
.dtf-upload { gap: 14px; padding: clamp(16px, 2.5vw, 24px); border-style: solid; border-radius: 16px; }
.dtf-pdf-list { display: grid; gap: 10px; }
.dtf-pdf-row { display: grid; grid-template-columns: minmax(0, 1fr) 132px auto; align-items: end; gap: 12px; padding: 12px; border: 1px solid #d4e4f1; border-radius: 10px; background: #fff; }
.dtf-pdf-row > span { min-width: 0; overflow-wrap: anywhere; color: #18344d; font-size: 13px; line-height: 1.45; font-weight: 700; }
.dtf-pdf-row label { display: grid; gap: 5px; font-size: 11px; font-weight: 800; }
.dtf-pdf-row input[type="number"] { width: 100%; min-height: 43px; }
.dtf-pdf-row button { min-height: 43px; padding: 8px 12px; border: 1px solid #d6e0e9; border-radius: 8px; background: #f4f7fa; color: #30485f; font-weight: 800; cursor: pointer; }
.dtf-meter-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.dtf-meter-summary > div { display: grid; gap: 5px; min-width: 0; padding: 12px; border-radius: 10px; background: #eaf4fd; }
.dtf-meter-summary span { color: #52687c; font-size: 11px; line-height: 1.3; font-weight: 700; }
.dtf-meter-summary strong { color: #143654; font-size: clamp(18px, 2vw, 25px); line-height: 1.1; }
.product-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; margin-bottom: 16px; }
.product-options .artwork-placement-field[hidden] { display: none; }
.product-options .artwork-placement-field { padding: 10px; border: 1px solid #cde3f5; border-radius: 8px; background: #f2f8fe; }
.product-order-row { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.add-to-cart label { display: grid; gap: 6px; color: #334155; font-size: 13px; font-weight: 800; }
.textile-color-picker { display: grid; gap: 8px; }
.textile-color-swatches { display: flex; flex-wrap: wrap; gap: 9px; }
.add-to-cart .textile-color-swatch { display: grid; place-items: center; width: 38px; height: 38px; min-height: 38px; padding: 4px; border: 1px solid #cbd4de; border-radius: 50%; background: #fff; cursor: pointer; }
.textile-color-swatch span { display: block; width: 28px; height: 28px; overflow: hidden; border: 1px solid #0002; border-radius: 50%; background: #fff; }
.textile-color-swatch svg { display: block; width: 100%; height: 100%; }
.textile-color-swatch[aria-checked="true"] { border: 2px solid #18263a; box-shadow: 0 0 0 2px #fff, 0 0 0 4px #f06a38; }
.textile-color-swatch:focus-visible { outline: 3px solid #ff8a55; outline-offset: 3px; }
.add-to-cart select, .product-options input:not([type="checkbox"]) { width: 100%; min-height: 45px; padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 7px; background: #fff; color: #172a40; font: inherit; }
.product-options .config-check { display: flex; align-items: center; gap: 9px; align-self: end; min-height: 45px; }
.product-options .config-check input { width: 18px; height: 18px; }
.add-to-cart input, .cart-item-controls input { width: 92px; min-height: 45px; padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 7px; font: inherit; }
.add-to-cart .artwork-upload input[type="file"] { width: 100%; max-width: 100%; min-height: auto; padding: 0; border: 0; }
.add-to-cart button { min-height: 45px; }
.add-to-cart button:disabled { opacity: .55; cursor: wait; }
.cart-feedback { min-height: 24px; margin: 0 0 18px; color: #526173; font-size: 13px; line-height: 1.5; }
.cart-feedback a { color: #087be9; font-weight: 800; }
.cart-page { max-width: 1000px; }
.cart-items { display: grid; gap: 14px; margin: 30px 0; }
.cart-item { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px; border: 1px solid #dfe6ee; border-radius: 12px; background: #fff; }
.cart-item-preview { width: 110px; height: 110px; object-fit: contain; border-radius: 9px; background: #edf2f7; flex: 0 0 auto; }
.cart-item-title { color: #172a40; font-size: 20px; font-weight: 800; }
.cart-item-price { color: #526173; font-size: 13px; margin: 8px 0 0; }
.cart-item-configuration { color: #526173; font-size: 12px; line-height: 1.5; margin: 7px 0 0; overflow-wrap: anywhere; }
.cart-item-warning { color: #a24f1b; font-size: 12px; margin: 8px 0 0; }
.cart-item-controls { display: flex; align-items: end; gap: 9px; flex-wrap: wrap; }
.cart-item-controls label { display: grid; gap: 5px; font-size: 12px; font-weight: 800; }
.cart-item-controls button { min-height: 45px; padding: 10px 14px; border-radius: 7px; background: #e9f3fe; color: #0b65b3; font-size: 12px; font-weight: 800; }
.cart-item-controls .cart-remove { background: #f4f5f7; color: #526173; }
.cart-summary { padding: 24px; border-radius: 12px; background: #eaf4fe; color: #334155; }
.cart-summary p:first-child { font-size: 20px; font-weight: 800; margin: 0 0 6px; }
.cart-summary p:nth-child(2) { font-size: 13px; line-height: 1.55; margin-bottom: 18px; }
.checkout-readiness { margin: 20px 0; padding: 16px; border: 1px solid #d7e0e8; border-radius: 12px; background: #fff; }
.checkout-readiness h2 { margin: 0 0 8px; color: #26384d; font-size: 16px; }
.checkout-readiness p { margin: 0; color: #536277; font-size: 13px; line-height: 1.55; }
.checkout-readiness ul { margin: 10px 0 0; padding-left: 20px; color: #754517; font-size: 12px; line-height: 1.6; }
.cart-empty, .cart-error { padding: 22px; border-radius: 12px; background: #fff; }

.product-info h1 {
  font-size: clamp(42px, 5vw, 68px);
  margin-bottom: 20px;
}

.subpage .hero-lead { max-width: 760px; color: #526173; font-size: 16px; line-height: 1.6; }

.faq-page { max-width: 1060px; }
.faq-page h1 { max-width: 900px; font-size: clamp(38px, 5vw, 62px); line-height: 1.08; letter-spacing: -.05em; }
.faq-search { display: grid; gap: 9px; max-width: 760px; margin: 30px 0 46px; font-size: 14px; font-weight: 800; color: #304257; }
.faq-search > div { display: flex; gap: 10px; }
.faq-search input { flex: 1; min-width: 0; min-height: 50px; padding: 12px 15px; border: 1px solid #cbd5e1; border-radius: 9px; background: #fff; color: #172a40; font: inherit; font-weight: 500; }
.faq-search button { min-height: 50px; }
.faq-section { margin: 36px 0 54px; }
.faq-section h2 { margin: 0 0 18px; font-size: clamp(24px, 3vw, 34px); letter-spacing: -.04em; }
.faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.faq-grid > :only-child { grid-column: 1 / -1; }
.faq-card { display: flex; flex-direction: column; gap: 12px; padding: 24px; border: 1px solid #e0e8f1; border-radius: 16px; background: #fff; box-shadow: 0 10px 26px #14223a09; }
.faq-card h3 { margin: 0; font-size: 21px; line-height: 1.25; letter-spacing: -.025em; }
.faq-card h3 a { color: #16283d; }
.faq-card p { margin: 0; color: #526173; font-size: 15px; line-height: 1.6; }
.faq-card .text-link { margin-top: auto; font-size: 13px; font-weight: 800; }
.faq-answer { max-width: 820px; margin: 24px 0 34px; padding: clamp(24px, 4vw, 44px); border: 1px solid #e0e8f1; border-radius: 18px; background: #fff; box-shadow: 0 10px 26px #14223a09; }
.faq-answer p { color: #41556a; font-size: 17px; line-height: 1.75; }
.faq-empty { padding: 24px; border-radius: 14px; background: #f4f8fc; color: #526173; }

.product-fact {
  padding: 12px 0;
  border-top: 1px solid #dfe4eb;
  border-bottom: 1px solid #dfe4eb;
  color: #5d6875;
  font-size: 13px;
}

.product-price {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -.05em;
  margin: 25px 0;
}

@media (max-width: 900px) {
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-detail { grid-template-columns: 1fr; gap: 30px; }
  .product-page-dtf .product-detail { gap: 24px; }
  .product-visual { min-height: 370px; height: 370px; }
}

@media (max-width: 560px) {
  .catalog-grid { grid-template-columns: 1fr; }
  .catalog-section { padding-top: 70px; }
  .product-page-dtf { padding-top: 24px; }
  .dtf-jump-upload { display: flex; align-items: center; justify-content: center; min-height: 48px; margin-top: 14px; padding: 10px 16px; border-radius: 10px; background: #2564d6; color: #fff; font-size: 14px; font-weight: 800; }
  .dtf-jump-upload:focus-visible { outline: 3px solid #ff8d58; outline-offset: 3px; }
  .product-page-dtf .product-detail { gap: 18px; margin-top: 18px; }
  .product-visual { min-height: 260px; height: 300px; }
  .product-page-dtf .product-visual { min-height: 260px; height: 260px; }
  .cart-item { align-items: stretch; flex-direction: column; }
  .cart-item-controls { justify-content: flex-start; }
  .product-options { grid-template-columns: 1fr; }
  .dtf-pdf-row { grid-template-columns: minmax(0, 1fr) auto; }
  .dtf-pdf-row > span { grid-column: 1 / -1; }
  .dtf-meter-summary { grid-template-columns: 1fr; }
  .dtf-meter-summary > div { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .faq-grid { grid-template-columns: 1fr; }
  .faq-search > div { flex-direction: column; }
}
.textile-multi-artwork { display: grid; gap: 12px; }
.textile-decoration-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.textile-decoration-list { display: grid; gap: 8px; }
.textile-decoration-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid #d8e0e8; border-radius: 10px; background: #fff; }
.textile-decoration-row strong,.textile-decoration-row small { display: block; }
.textile-decoration-row small { margin-top: 3px; color: #5b697a; }
.textile-decoration-adjustments { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 8px 16px; }
.textile-decoration-adjustments label { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.textile-decoration-adjustments input { width: min(150px, 24vw); accent-color: #f06a38; }
.textile-decoration-adjustments output { min-width: 40px; font-size: 12px; font-weight: 700; }
.textile-decoration-row button { flex: 0 0 auto; }
@media (max-width: 560px) { .textile-decoration-controls { grid-template-columns: 1fr; } .textile-decoration-row { align-items: flex-start; flex-wrap: wrap; } .textile-decoration-adjustments { flex-basis: 100%; } .textile-decoration-adjustments input { width: min(180px, 48vw); } }
.module-unavailable{padding:14px 16px;border:1px solid #f1d4a5;border-radius:10px;background:#fff8e9;color:#674612;font-weight:650}
.faq-feedback{margin:32px 0;padding:22px 24px;border:1px solid #d8e0e8;border-radius:16px;background:#f6f8fa}.faq-feedback h2{margin:0 0 14px;font-size:1.15rem}.faq-feedback>div{display:flex;flex-wrap:wrap;gap:10px}.faq-feedback button{min-height:44px;padding:10px 18px;border:1px solid #c8d2df;border-radius:10px;background:#fff;color:#172033;font:inherit;font-weight:650;cursor:pointer}.faq-feedback button:hover{border-color:#0b805f;background:#edf8f3}.faq-feedback button:focus-visible{outline:3px solid #167a62;outline-offset:2px}.faq-feedback button:disabled{opacity:.55;cursor:wait}.faq-feedback [role=status]{min-height:1.5em;margin:12px 0 0;color:#344154}@media(max-width:600px){.faq-feedback{padding:18px}.faq-feedback>div{display:grid;grid-template-columns:1fr}.faq-feedback button{width:100%}}
.cart-shipping { margin: 28px 0; padding: 24px; border: 1px solid #dfe5eb; border-radius: 16px; background: #fff; }
.cart-shipping fieldset { min-width: 0; margin: 16px 0; padding: 0; border: 0; }
.cart-shipping legend { font-weight: 750; margin-bottom: 12px; }
.cart-shipping-method { display: flex; gap: 12px; align-items: flex-start; padding: 16px 12px; border: 1px solid #dfe5eb; border-radius: 10px; margin-bottom: 10px; cursor: pointer; }
.cart-shipping-method input { width: 18px; height: 18px; margin-top: 3px; accent-color: #f06a38; flex: 0 0 auto; }
.cart-shipping-method strong,.cart-shipping-method small { display: block; line-height: 1.65; }
.cart-shipping-method small,.cart-shipping-note { color: #536277; }
.cart-shipping-note { font-size: 13px; line-height: 1.7; }
.cart-shipping button:disabled { cursor: wait; opacity: .6; }
.cart-estimate { padding: 1.5rem; margin: 1.5rem 0; border: 1px solid #dce2e9; border-radius: 18px; background: #fff; }
.cart-estimate h2 { font-size: 1.3rem; }
.cart-estimate-lines { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .65rem 1rem; }
.cart-estimate-lines dt { overflow-wrap: anywhere; }
.cart-estimate-lines dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.cart-estimate-total { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-top: 1rem; border-top: 1px solid #dce2e9; font-size: 1.2rem; }
.legal-footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 1.5rem; padding-top: 2rem; padding-bottom: 2rem; border-top: 1px solid #dce2e9; }
.legal-footer a { color: inherit; font-size: .9rem; text-underline-offset: 3px; }
.legal-page { max-width: 900px; }
.legal-content { overflow-wrap: anywhere; line-height: 1.85; }
.legal-content p { margin: 1.25rem 0; }

.seo-breadcrumbs{margin:0 0 1rem;font-size:.9rem;color:#465360}.seo-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.35rem .5rem;padding:0;margin:0;list-style:none}.seo-breadcrumbs li{display:inline-flex;align-items:baseline;gap:.5rem;min-width:0;max-width:100%;overflow-wrap:anywhere}.seo-breadcrumbs a{color:inherit;text-underline-offset:3px}.seo-breadcrumbs [aria-current=page]{font-weight:600}.seo-breadcrumbs a:focus-visible{outline:3px solid #163e1a;outline-offset:3px}

.product-information{margin:36px 0;padding:24px;border:1px solid #dde5ee;border-radius:16px;overflow-wrap:anywhere}.product-information dl{margin:16px 0}.product-information dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:16px;border-bottom:1px solid #dde5ee;padding:12px 0}.product-information dt{font-weight:700}.product-information dd{margin:0}@media(max-width:620px){.product-information dl>div{grid-template-columns:minmax(0,1fr);gap:6px}}

.product-live-price{margin:22px 0;padding:20px;border:1px solid #cbd9e6;border-radius:14px;background:#f4f8fc;overflow-wrap:anywhere}.product-live-price h2{font-size:1.1rem;margin:0 0 12px}.product-live-price p{line-height:1.55}.product-live-price .tier-savings{font-weight:700;color:#245b30}.product-live-price .next-tier{padding-top:12px;border-top:1px solid #cbd9e6}.product-live-price small{display:block;line-height:1.55;color:#42546a}

.product-documents{margin:36px 0;padding:24px;border:1px solid #dde5ee;border-radius:16px;overflow-wrap:anywhere}.product-documents ul{padding-left:22px}.product-documents li{margin:14px 0}.product-documents li span{color:#526277;font-size:.9rem}
.product-availability { margin: 1rem 0; padding: 1.1rem; border: 1px solid #d6e1d3; border-radius: 1rem; background: #f6f9f3; }
.product-availability[hidden] { display: none; }
.product-availability h2 { margin: 0 0 .65rem; font-size: 1rem; }
.product-availability p { margin: .65rem 0 0; font-size: .9rem; color: #425746; }
.availability-badge { display: inline-block; border-radius: 2rem; padding: .4rem .8rem; color: #174322; background: #d7f3c5; }
.product-availability[data-state="made_to_order"] .availability-badge { color: #174f6a; background: #dceef8; }
.product-availability[data-state="on_request"] .availability-badge { color: #74430c; background: #fff0d2; }

.product-visual[data-preview-type="flat_product"] {height:auto;min-height:0;display:block;background:#f3f7fa;}
.product-visual[data-preview-type="flat_product"] img {width:100%;height:auto;min-height:0;object-fit:contain;}
