.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-area-workspaces { display: grid; gap: 18px; margin: 18px 0 4px; }
.tc-area-editor-list, .tc-ready-files { display: grid; gap: 18px; }
.tc-area-workspaces .tc-design-editor { margin-top: 0; border: 1px solid #c8a45d; }
.tc-area-workspaces .tc-ready-file { margin-top: 0; }
.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; }
}

/* v1.3 — medida livre para lonas */
.tc-custom-size{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(150px,.7fr));gap:14px;align-items:end;margin-top:16px;padding:18px;border:1px solid #c8a45d;background:#15120e}
.tc-custom-size[hidden]{display:none!important}.tc-custom-size>div{display:grid;gap:5px;align-self:center}.tc-custom-size strong{color:#fff;font:400 20px Georgia,serif}.tc-custom-size small{color:#aaa298;font-size:11px;line-height:1.45}.tc-custom-size p{grid-column:1/-1;margin:0;padding-top:11px;border-top:1px solid #3a332a;color:#aaa298;font-size:11px}.tc-custom-size p b{color:#c8a45d;font-size:15px}
@media(max-width:680px){.tc-custom-size{grid-template-columns:1fr}.tc-custom-size p{grid-column:1}}


/* v1.7 Saal cards — consistent with the textile configurator */
.tc-saal-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tc-saal-option-card{display:grid!important;gap:8px;padding:14px!important;border:1px solid #d6cdbf;background:#fff}.tc-saal-option-card>span{font-size:10px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#71685d}.tc-saal-option-card select{width:100%;min-height:48px;padding:0 12px;border:1px solid #c9c0b4;background:#faf8f4;color:#111}.tc-saal-option-card:focus-within{border-color:#c8a45d;box-shadow:0 0 0 2px rgba(200,164,93,.14)}.tc-saal-file-method{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tc-saal-file-method label{display:flex;align-items:center;min-height:64px;padding:12px 14px;border:1px solid #d6cdbf;background:#fff;cursor:pointer}.tc-saal-file-method label:has(input:checked){border-color:#c8a45d;box-shadow:inset 0 0 0 1px #c8a45d}.tc-saal-file-method input{margin-right:10px}@media(max-width:700px){.tc-saal-option-grid,.tc-saal-file-method{grid-template-columns:1fr}}


/* v2.0.1 — dynamic adhesive/film dimensions and live pricing */
.tc-pricing-dimensions{border:1px solid #d6cdbf;background:#fffaf2}.tc-pricing-dimensions[hidden]{display:none!important}.tc-pricing-dimensions>p{margin:0 0 14px;color:#6e665d}.tc-dimension-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tc-dimension-grid label{display:grid;gap:7px;color:#5f584f;font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.tc-dimension-grid input{width:100%;min-height:48px;padding:0 12px;border:1px solid #c9c0b4;background:#fff;color:#111;font:inherit}.tc-dimension-grid input:focus{border-color:#c8a45d;box-shadow:0 0 0 2px rgba(200,164,93,.14);outline:0}.tc-dimension-note{margin:12px 0 0!important;padding:10px 12px;background:#111;color:#c8a45d!important;font-size:11px!important;font-weight:800}.tc-product-option-grid select[data-custom-quantity],.tc-simple-choice select[data-custom-quantity]{min-height:48px}
@media(max-width:680px){.tc-dimension-grid{grid-template-columns:1fr}}

/* v2.0.1 — adhesive configurator guidance */
.tc-production-guidance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tc-production-guidance-grid>div{padding:14px 15px;border:1px solid #ddd5c9;background:#fff}.tc-production-guidance-grid b,.tc-production-guidance-grid small{display:block}.tc-production-guidance-grid b{margin-bottom:4px;color:#111}.tc-production-guidance-grid small{color:#70695f;line-height:1.45}.tc-pricing-dimensions input,.tc-simple-choice select{min-height:48px}.tc-product-configurator select option:disabled{color:#aaa}.summary p.price[data-tc-price-mode="configured-total"]::after{content:" · total configurado";font-size:10px;font-weight:700;color:#756d61;text-transform:uppercase;letter-spacing:.05em}@media(max-width:700px){.tc-production-guidance-grid{grid-template-columns:1fr}}


/* v2.5.0 — Textile Studio */
.tc-textile-studio-head{
  display:flex;justify-content:space-between;gap:24px;align-items:flex-end;
  padding:28px;border:1px solid #e4ded3;background:linear-gradient(135deg,#fff 0%,#faf7f1 100%);
  margin:0 0 14px;border-radius:18px
}
.tc-textile-studio-head h2{font-size:clamp(1.8rem,3vw,2.65rem);margin:.2rem 0 .35rem;line-height:1}
.tc-textile-studio-head p{margin:0;max-width:700px;color:#655f56}
.tc-studio-eyebrow{font-size:.72rem;letter-spacing:.14em;font-weight:900;color:#9a773b}
.tc-studio-benefits{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.tc-studio-benefits span{border:1px solid #d8c7a8;background:#fff;padding:7px 10px;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap}
.tc-studio-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;position:sticky;top:84px;z-index:25;background:#fff;padding:8px 0 10px;margin-bottom:10px}
.tc-studio-steps a{display:flex;align-items:center;gap:9px;border:1px solid #e4ded3;padding:10px 12px;border-radius:12px;color:#191713;text-decoration:none;font-weight:800;background:#fff}
.tc-studio-steps b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#111;color:#fff;font-size:.72rem}
.tc-studio-steps a:hover{border-color:#c7a25e;background:#fffaf0}
.tc-volume-discount{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #d7c295;background:#fffaf0;padding:16px 18px;border-radius:14px;margin-bottom:14px}
.tc-volume-discount small{display:block;color:#6f675c;margin-top:2px}
.tc-volume-tiers{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.tc-volume-tiers span{min-width:74px;padding:8px 9px;border:1px solid #e2d8c5;border-radius:10px;background:#fff;text-align:center;font-size:.72rem;line-height:1.15}
.tc-volume-tiers span b{display:block;margin-top:3px}
.tc-volume-tiers span.is-active{border-color:#b28a43;background:#171512;color:#fff;box-shadow:0 0 0 2px #d4b16b33}
.tc-product-configurator[data-tc-configurator] .tc-config-section{scroll-margin-top:170px}
.tc-product-configurator .tc-variant-row{border:1px solid #e4ded3;background:#fff;border-radius:12px;padding:12px}
.tc-product-configurator .tc-choice-cards label,
.tc-product-configurator .tc-placement-grid label{border-radius:13px;transition:.18s ease}
.tc-product-configurator .tc-choice-cards label:has(input:checked),
.tc-product-configurator .tc-placement-grid label:has(input:checked){border-color:#b28a43;box-shadow:0 0 0 2px #d4b16b26;background:#fffaf0}
.tc-designer-grid{grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr)}
.tc-designer-grid canvas{width:100%;height:auto;border-radius:16px;background:#f7f5f0}
.tc-designer-tools{position:sticky;top:154px;align-self:start}
.tc-live-summary{position:sticky;bottom:10px;z-index:20;border:1px solid #c8a45d;box-shadow:0 14px 40px rgba(25,20,10,.16);border-radius:16px;background:rgba(255,255,255,.97);backdrop-filter:blur(12px)}
.tc-summary-saving strong{color:#687a2f}
.tc-summary-unit{background:#fffaf0}
@media(max-width:900px){
  .tc-textile-studio-head{display:block;padding:20px}
  .tc-studio-benefits{justify-content:flex-start;margin-top:14px}
  .tc-studio-steps{top:70px;overflow-x:auto;grid-template-columns:repeat(4,minmax(118px,1fr))}
  .tc-volume-discount{display:block}
  .tc-volume-tiers{justify-content:flex-start;margin-top:12px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .tc-designer-grid{grid-template-columns:1fr}
  .tc-designer-tools{position:static}
  .tc-live-summary{position:static}
}
@media(max-width:600px){
  .tc-studio-steps a{padding:9px;font-size:.78rem}
  .tc-studio-steps b{width:22px;height:22px}
  .tc-volume-tiers span{min-width:68px}
}

/* v3.0 final configurator corrections */
.tc-studio-steps{display:none!important}
.tc-live-summary{position:static!important;bottom:auto!important;z-index:auto!important;box-shadow:none!important;backdrop-filter:none!important}
.tc-row-colour{display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;gap:8px!important;align-items:center!important;position:relative!important}
.tc-row-colour i{position:static!important;transform:none!important;width:18px!important;height:18px!important;margin:0!important}
.tc-row-colour select{padding-left:10px!important;width:100%!important}
