/* v3 labels / artwork blocks in the buy box. Uses the theme tokens (style.css :root). */
.ib-tiers, .ib-lblbox, .ib-artbox, .ib-bundle { margin-top: 18px; }
.ib-lblbox, .ib-artbox { border: 0; padding: 0; min-width: 0; }
.ib-lblgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ib-lblbox label, .ib-artmore label { display: grid; gap: 5px; font: 600 12.5px/1.3 var(--f-body, inherit); color: var(--ink, #0d0d0d); }
.ib-lblbox small, .ib-artmore small { font-weight: 500; color: var(--muted, #6b6661); }
.ib-lblbox input[type=text], .ib-lblbox textarea, .ib-artmore textarea {
  width: 100%; min-height: 44px; border: 1px solid var(--line-strong, #d6d2cb); border-radius: var(--r-ctl, 8px); padding: 8px 10px; font: 500 15px/1.3 var(--f-body, inherit); background: #fff; color: var(--ink, #0d0d0d); }
.ib-lblbox input[type=file], .ib-artmore input[type=file] { font-size: 13px; max-width: 100%; }
.ib-each { margin: 0 0 8px; font: 700 14px/1.35 var(--f-body, inherit); color: var(--ink, #0d0d0d); }
.ib-each span { font-weight: 500; color: var(--muted, #6b6661); }
.ib-tiers__t { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.ib-tiers__t caption { text-align: left; font: 700 13px/1.3 var(--f-body, inherit); color: var(--ink, #0d0d0d); margin-bottom: 6px; }
.ib-tiers__t th { text-align: left; font: 600 11.5px/1 var(--f-body, inherit); letter-spacing: .04em; text-transform: uppercase; color: var(--muted, #6b6661); padding: 0 8px 6px; }
.ib-tiers__t td { padding: 7px 8px; border-top: 1px solid var(--line, #e8e5e0); }
.ib-tiers__t tbody tr { cursor: pointer; }
.ib-tiers__t tbody tr:hover td { background: var(--tint, #f4f3f0); }
.ib-tiers__t tbody tr.is-on td { background: var(--brand-soft, #fdecee); color: var(--brand-dark, #a8141f); font-weight: 700; }
.ib-tiers__t td:nth-child(2), .ib-tiers__t td:nth-child(3), .ib-tiers__t th:nth-child(2), .ib-tiers__t th:nth-child(3) { text-align: right; }
.ib-lbllayout { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 10px 0 0; }
.ib-lbllayout label { display: flex !important; align-items: center; gap: 6px !important; font-weight: 600; }
.ib-lblextra { margin-top: 10px; }
.ib-lblbox p, .ib-artnote { margin: 8px 0 0; }
.ib-artopts { display: grid; gap: 6px; }
.ib-artopt { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--line-strong, #d6d2cb); border-radius: var(--r-ctl, 8px); cursor: pointer; background: #fff; }
.ib-artopt input { accent-color: var(--brand, #d1202f); width: 18px; height: 18px; margin: 0; }
.ib-artopt__t { font: 700 14px/1.3 var(--f-body, inherit); color: var(--ink, #0d0d0d); }
.ib-artopt__t small { display: block; font-weight: 500; font-size: 12px; color: var(--muted, #6b6661); margin-top: 2px; }
.ib-artopt b { font-size: 14px; }
.ib-artopt:has(input:checked) { border-color: var(--brand, #d1202f); background: var(--brand-soft, #fdecee); box-shadow: inset 0 0 0 1px var(--brand, #d1202f); }
.ib-artmore { display: grid; gap: 10px; margin-top: 10px; }
.ib-artsd { display: flex; gap: 8px; align-items: center; margin-top: 8px; font-weight: 600; font-size: 13.5px; }
.ib-artfee { font-weight: 700; color: var(--ink, #0d0d0d); }
.ib-bundle__t { width: 100%; border-collapse: collapse; font-size: 14px; }
.ib-bundle__t td, .ib-bundle__t th { padding: 8px 6px; border-top: 1px solid var(--line, #e8e5e0); text-align: left; vertical-align: top; }
.ib-bundle__t td:last-child, .ib-bundle__t th + td { text-align: right; white-space: nowrap; }
.ib-bundle__t small { display: block; color: var(--muted, #6b6661); font-size: 12px; }
.ib-bundle__t tfoot th { font-weight: 600; }
.ib-bundle__t tr.is-pack th, .ib-bundle__t tr.is-pack td { font-weight: 800; font-size: 16px; color: var(--ink, #0d0d0d); }
.ib-bundle__save { margin: 8px 0 0; font-weight: 700; color: var(--ok, #1e7b34); }
@media (max-width: 520px) {
  .ib-lblgrid { grid-template-columns: 1fr; }
}
/* section rhythm inside the buy box (theme fieldset reset wins over plain class margins) */
.buybox .ib-lblbox, .buybox .ib-artbox, .buybox .ib-bundle { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line, #e8e5e0); }
.buybox .ib-tiers { margin-top: 14px; }
.buybox .ib-lblbox > legend, .buybox .ib-artbox > legend { float: left; width: 100%; margin-bottom: 10px; }
.buybox .ib-lblbox > legend + *, .buybox .ib-artbox > legend + * { clear: both; }
.ib-lblgrid { align-items: end; }
/* compact artwork list: the note shows for the chosen option only */
.ib-artopt { padding: 9px 12px; }
.ib-artopt__t small { display: none; }
.ib-artopt:has(input:checked) .ib-artopt__t small { display: block; }
.buybox .ib-bundle { margin-top: 0; padding-top: 0; border-top: 0; }
/* v3 fix round 1: registration + logo fields line up (labels of different lengths; inputs sit on one baseline) */
.ib-lblgrid > label { align-content: end; }
.ib-lblgrid input[type=file] { min-height: 42px; padding: 8px 10px; border: 1px dashed var(--line-strong, #d6d1ca); border-radius: var(--r-ctl, 8px); background: #fff; box-sizing: border-box; width: 100%; }
/* v4: design brief for paid artwork options (typesetting, design, logo redraw, new logo) */
.ib-awb { margin-top: 12px; padding: 16px; border: 1px solid var(--line, #e8e5e0); border-radius: var(--r-ctl, 8px); background: var(--paper, #faf9f7); }
.ib-awb__head { display: grid; gap: 3px; margin-bottom: 14px; }
.ib-awb__head b { font: 700 15px/1.3 var(--f-body, inherit); color: var(--ink, #0d0d0d); }
.ib-awb__head span { font-size: 13px; line-height: 1.45; color: var(--ink-soft, #3d3a38); }
.ib-awb__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ib-awb__f { display: grid; gap: 5px; align-content: start; font: 600 12.5px/1.3 var(--f-body, inherit); color: var(--ink, #0d0d0d); }
.ib-awb__f--wide { grid-column: 1 / -1; }
.ib-awb__f em { font-style: normal; font-weight: 600; font-size: 11px; color: var(--muted, #6b6661); display: none; }
.ib-awb__f small { font-weight: 500; color: var(--muted, #6b6661); }
.ib-awb__f.is-req em { display: inline; }
.ib-awb__f.is-req .ib-awb__opt { display: none; }
.ib-awb__f input:not([type=file]), .ib-awb__f textarea { width: 100%; min-height: 44px; border: 1px solid var(--line-strong, #d6d2cb); border-radius: var(--r-ctl, 8px); padding: 9px 11px; font: 500 15px/1.35 var(--f-body, inherit); background: #fff; color: var(--ink, #0d0d0d); box-sizing: border-box; }
.ib-awb__f textarea { resize: vertical; }
.ib-awb__f input:focus, .ib-awb__f textarea:focus { outline: 2px solid var(--ink, #0d0d0d); outline-offset: 1px; }
.ib-awb__f input[type=file] { min-height: 44px; padding: 9px 10px; border: 1px dashed var(--line-strong, #d6d1ca); border-radius: var(--r-ctl, 8px); background: #fff; box-sizing: border-box; width: 100%; font-size: 13px; }
.ib-awb__err { font-weight: 600; font-size: 12.5px; color: var(--brand-dark, #a8141f); }
.ib-awb__err:empty { display: none; }
.ib-awb__f.is-bad input, .ib-awb__f.is-bad textarea { border-color: var(--brand, #d1202f); box-shadow: inset 0 0 0 1px var(--brand, #d1202f); }
.ib-awb__foot { margin: 12px 0 0; font-size: 12.5px; color: var(--muted, #6b6661); }
@media (max-width: 520px) { .ib-awb { padding: 14px 12px; } .ib-awb__grid { grid-template-columns: 1fr; } }
.ib-artbox [hidden], .ib-awb[hidden] { display: none !important; } /* label rules set display:grid, which beat the hidden attribute */
.ib-awb__f textarea { min-height: 76px; }

/* v4 fix 1: file inputs as drop zones (same look as the designer's "Upload your logo") */
.ib-dz { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 4px 10px; min-height: 52px; padding: 10px 14px; border: 1.5px dashed var(--line-strong, #d6d1ca); border-radius: var(--r-ctl, 8px); background: #fff; color: var(--ink-soft, #3d3a38); font: 500 13px/1.4 var(--f-body, inherit); cursor: pointer; transition: border-color .15s, background .15s; }
.ib-dz:hover, .ib-dz.is-over, .ib-dz:focus-within { border-color: var(--ink, #0d0d0d); background: var(--paper, #faf9f7); }
.ib-dz__ico { color: var(--brand, #d1202f); display: grid; }
.ib-dz__t b { color: var(--ink, #0d0d0d); text-decoration: underline; text-underline-offset: 2px; }
.ib-dz__in { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; opacity: 0; cursor: pointer; min-height: 0 !important; border: 0 !important; padding: 0 !important; }
.ib-dz__chips { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.ib-dz__chips:empty { display: none; }
.ib-dz__chip { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 3px 4px 3px 10px; border-radius: 999px; background: var(--tint, #f4f3f0); color: var(--ink, #0d0d0d); font-weight: 600; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ib-dz__chip button { width: 22px; height: 22px; border: 0; border-radius: 50%; background: transparent; font-size: 16px; line-height: 1; cursor: pointer; color: var(--muted, #6b6661); }
.ib-dz__chip button:hover { background: #e8e5e0; color: var(--ink, #0d0d0d); }
.ib-awb > .ib-artfile { display: grid; gap: 5px; margin-top: 12px; font: 600 12.5px/1.3 var(--f-body, inherit); color: var(--ink, #0d0d0d); }
.ib-awb > .ib-artnote { margin: 10px 0 0; }
