.tc-product-configurator { display: grid; gap: 14px; margin: 28px 0 22px; color: #111; }
.tc-product-configurator[hidden], .tc-product-configurator [hidden] { display: none !important; }
.tc-config-section { padding: 20px; border: 1px solid #d8d0c4; background: #fff; }
.tc-config-section h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 13px; font: 400 22px/1.2 Georgia, serif; }
.tc-config-section h2 > span { width: 26px; height: 26px; display: inline-grid; place-items: center; flex: 0 0 auto; background: #111; color: #c8a45d; font: 800 10px/1 sans-serif; }
.tc-config-section > p { margin: 5px 0 15px; color: #706960; font-size: 12px; }
.tc-config-section label { display: grid; gap: 7px; color: #4d4842; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.tc-config-section input:not([type="radio"]):not([type="checkbox"]):not([type="range"]):not([type="color"]),
.tc-config-section select, .tc-config-section textarea { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid #c9c1b6; border-radius: 0; background: #fff; color: #111; font: 500 13px/1.4 sans-serif; letter-spacing: 0; text-transform: none; }
.tc-config-section textarea { min-height: 110px; resize: vertical; }
.tc-choice-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tc-choice-cards.tc-three-choices { grid-template-columns: repeat(3, 1fr); }
.tc-choice-cards label { position: relative; display: block; cursor: pointer; }
.tc-choice-cards input { position: absolute; opacity: 0; pointer-events: none; }
.tc-choice-cards label > span { min-height: 76px; display: grid; align-content: center; gap: 4px; padding: 13px; border: 1px solid #d5cdc2; background: #faf8f4; text-transform: none; transition: .18s ease; }
.tc-choice-cards input:checked + span { border-color: #c8a45d; box-shadow: inset 0 0 0 1px #c8a45d; background: #fffaf0; }
.tc-choice-cards b { color: #111; font-size: 12px; }
.tc-choice-cards small { color: #777067; font-size: 10px; font-weight: 500; letter-spacing: 0; }
.tc-simple-choice, .tc-product-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tc-colour-swatches { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 7px; }
.tc-colour-swatches button { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; padding: 5px 8px; border: 1px solid #d5cdc2; background: #fff; color: #111; font-size: 10px; cursor: pointer; }
.tc-colour-swatches button.is-active { border-color: #c8a45d; box-shadow: inset 0 0 0 1px #c8a45d; }
.tc-colour-swatches i, .tc-row-colour i { width: 19px; height: 19px; display: block; flex: 0 0 auto; border: 1px solid rgba(0,0,0,.18); }
.tc-variant-rows { display: grid; gap: 8px; }
.tc-variant-row { display: grid; grid-template-columns: 1.35fr 1fr .7fr 36px; align-items: end; gap: 7px; padding: 10px; border: 1px solid #e0d9ce; background: #faf8f4; }
.tc-variant-row label > span:first-child { font-size: 9px; }
.tc-row-colour { position: relative; display: block; }
.tc-row-colour i { position: absolute; z-index: 2; top: 50%; left: 10px; margin: 0; transform: translateY(-50%); pointer-events: none; }
.tc-row-colour select { display: block; padding-left: 42px; }
.tc-variant-row [data-remove-row] { width: 36px; height: 44px; border: 1px solid #d4ccc0; background: transparent; color: #8e3e31; font-size: 20px; cursor: pointer; }
.tc-config-secondary { margin-top: 10px; padding: 8px 0; border: 0; border-bottom: 1px solid #c8a45d; background: transparent; color: #8c6927; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; }
.tc-placement-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 15px; }
.tc-placement-grid label { position: relative; display: block; cursor: pointer; }
.tc-placement-grid input { position: absolute; opacity: 0; }
.tc-placement-grid span { min-height: 68px; display: grid; align-content: center; gap: 3px; padding: 11px; border: 1px solid #d8d0c4; background: #faf8f4; text-transform: none; }
.tc-placement-grid input:checked + span { border-color: #c8a45d; box-shadow: inset 0 0 0 1px #c8a45d; background: #fffaf0; }
.tc-placement-grid b { color: #111; font-size: 11px; }
.tc-placement-grid small { color: #8c6927; font-size: 10px; }
.tc-full-label { margin-top: 14px; }
.tc-check-line { align-self: end; min-height: 44px; display: flex !important; grid-template-columns: auto 1fr; align-items: center; gap: 10px !important; padding: 9px 11px; border: 1px solid #d8d0c4; background: #faf8f4; cursor: pointer; }
.tc-check-line input { accent-color: #c8a45d; }
.tc-check-line span { display: grid; gap: 1px; text-transform: none; }
.tc-check-line b { color: #111; font-size: 11px; }
.tc-check-line small { color: #736c63; font-size: 9px; }
.tc-ready-file, .tc-design-revisions { margin-top: 13px; padding: 13px; border: 1px dashed #c8a45d; background: #fffaf0; }
.tc-file-status { margin: 8px 0 0 !important; font-size: 10px !important; }
.tc-file-status.is-error { color: #a32922 !important; font-weight: 800; }
.tc-design-editor { margin-top: 15px; }
.tc-designer-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 13px; background: #111; color: #fff; }
.tc-designer-head div { display: grid; gap: 2px; }
.tc-designer-head b { font-size: 12px; }
.tc-designer-head small { color: #aaa39a; font-size: 9px; }
.tc-designer-head button, .tc-designer-tools button { min-height: 35px; padding: 7px 10px; border: 1px solid #c8a45d; background: #c8a45d; color: #111; font-size: 9px; font-weight: 800; cursor: pointer; }
.tc-designer-grid { display: grid; grid-template-columns: 1.25fr .75fr; border: 1px solid #d8d0c4; border-top: 0; }
.tc-designer-grid canvas { width: 100%; height: auto; display: block; background: #fff; touch-action: none; }
.tc-designer-tools { display: grid; align-content: start; gap: 13px; padding: 14px; border-left: 1px solid #d8d0c4; background: #faf8f4; }
.tc-designer-tools label { display: grid; gap: 5px; }
.tc-designer-tools label:first-child { grid-template-columns: 1fr auto; }
.tc-designer-tools label:first-child::first-line { grid-column: 1 / -1; }
.tc-designer-tools input[type="color"] { width: 100%; height: 42px; padding: 3px; border: 1px solid #c8c0b5; background: #fff; }
.tc-designer-tools > div { display: flex; flex-wrap: wrap; gap: 5px; }
.tc-designer-tools > small { color: #746e65; font-size: 9px; }
.tc-live-summary { padding: 18px 20px; border: 1px solid #111; background: #111; color: #fff; }
.tc-live-summary > div { display: flex; justify-content: space-between; gap: 18px; padding: 7px 0; border-bottom: 1px solid #312c26; font-size: 11px; }
.tc-live-summary strong { color: #c8a45d; }
.tc-live-summary .tc-live-total { align-items: end; margin-top: 7px; padding-top: 13px; border: 0; }
.tc-live-total span { font-weight: 750; }
.tc-live-total strong { font: 400 27px Georgia, serif; }
.tc-live-summary > p { margin: 5px 0 0; color: #958e84; font-size: 9px; }
.tc-configured-cart > .quantity { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; }
.tc-configured-cart .single_add_to_cart_button { width: 100%; margin-top: 2px; }
.tc-quote-only { margin: 25px 0; padding: 18px; border: 1px solid #c8a45d; background: #fffaf0; }
.tc-quote-only p { color: #665f56; }
.tc-spec-list { columns: 2; gap: 35px; }
.tc-spec-list li { break-inside: avoid; margin-bottom: 7px; }
.tc-table-wrap { overflow-x: auto; }
.tc-table-wrap table { width: 100%; border-collapse: collapse; }
.tc-table-wrap th, .tc-table-wrap td { padding: 11px; border: 1px solid #ded7cc; text-align: left; }
.tc-admin-files { margin-top: 7px; }

@media (max-width: 620px) {
  .tc-choice-cards, .tc-choice-cards.tc-three-choices, .tc-simple-choice, .tc-product-option-grid, .tc-placement-grid { grid-template-columns: 1fr; }
  .tc-variant-row { grid-template-columns: 1fr 1fr; }
  .tc-variant-row label:first-child { grid-column: 1 / -1; }
  .tc-variant-row [data-remove-row] { align-self: end; }
  .tc-designer-grid { grid-template-columns: 1fr; }
  .tc-designer-tools { border-left: 0; border-top: 1px solid #d8d0c4; }
  .tc-spec-list { columns: 1; }
}
