/* GOFAST — «Собери свою футболку / худи» */
.gfc { margin: 0 0 18px; font-size: 15px; }
.gfc-stage-wrap { opacity: 1 !important; }
.gfc-stage { width: 100%; }
.gfc-pic { position: relative; background: #f1f1ef; border-radius: 12px; overflow: hidden; user-select: none; -webkit-user-select: none; }
.gfc-svg { width: 100%; height: auto; display: block; }
.gfc-photo { position: relative; }
.gfc-photo .gfc-base { width: 100%; display: block; pointer-events: none; }
/* место печати (left/top/width) задаётся из CRM для каждого фасона */
.gfc-ov { position: absolute; pointer-events: none; transform: translateX(-50%); height: auto; }
.gfc-ov.mul { mix-blend-mode: multiply; }
.gfc-views { display: flex; gap: 8px; justify-content: center; margin-top: 10px; }
.gfc-v { border: 1px solid #ccc; background: #fff; color: #222; border-radius: 20px; padding: 6px 16px; cursor: pointer; font-size: 14px; }
.gfc-v.on { border-color: #e2312f; box-shadow: 0 0 0 1px #e2312f; }
.gfc-note { font-size: 12px; color: #888; margin-top: 6px; text-align: center; }
#gfc-stage-inline { max-width: 320px; margin: 0 auto 16px; }
.gfc-label { margin: 14px 0 6px; font-weight: 600; }
.gfc-opts > .gfc-label:first-child { margin-top: 0; }
.gfc-row { display: flex; flex-wrap: wrap; gap: 8px; }
.gfc-opt { border: 1px solid #ccc; background: #fff; color: #222; border-radius: 8px; padding: 8px 14px; cursor: pointer; line-height: 1.2; font-size: 14px; }
.gfc-opt small { display: block; font-size: 11px; color: #888; }
.gfc-opt.on { border-color: #e2312f; box-shadow: 0 0 0 1px #e2312f; }
.gfc-opt.na, .gfc-print.na { opacity: .35; cursor: not-allowed; }
.gfc-opt.na { text-decoration: line-through; }
.gfc-size { min-width: 48px; text-align: center; }
.gfc-sw { width: 38px; height: 38px; border-radius: 50%; border: 2px solid #ddd; cursor: pointer; padding: 0; }
.gfc-sw.melange { background-image: radial-gradient(rgba(255,255,255,.45) 1px, transparent 1.5px), radial-gradient(rgba(0,0,0,.25) 1px, transparent 1.5px); background-size: 4px 4px, 5px 5px; }
.gfc-sw.acid { background-image: radial-gradient(circle at 30% 30%, rgba(255,255,255,.55), transparent 45%), radial-gradient(circle at 70% 75%, rgba(255,255,255,.35), transparent 40%); }
.gfc-sw.on { outline: 2px solid #e2312f; outline-offset: 2px; }
.gfc-sw.na { opacity: .3; cursor: not-allowed; }
.gfc-prints { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 8px; max-height: 360px; overflow-y: auto; padding: 2px; }
.gfc-print { border: 1px solid #ddd; background: #fff; border-radius: 8px; padding: 4px; cursor: pointer; text-align: center; color: #333; }
.gfc-print img { width: 100%; aspect-ratio: 3/4; object-fit: contain; border-radius: 5px; display: block; background: #f1f1ef; pointer-events: none; }
.gfc-print span { display: block; font-size: 11px; line-height: 1.2; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gfc-print.on { border-color: #e2312f; box-shadow: 0 0 0 1px #e2312f; }
.gfc-logos { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); max-height: 240px; }
.gfc-logos img { aspect-ratio: 2/1; padding: 6px; box-sizing: border-box; }
.gfc-logos.dk img { background: #3b3e44; }
.gfc-nologo i { display: flex; align-items: center; justify-content: center; aspect-ratio: 2/1; border-radius: 5px; background: #f1f1ef; font-style: normal; font-size: 22px; color: #999; }
.gfc-total { margin-top: 16px; font-size: 22px; font-weight: 700; }
.gfc-total span { display: block; font-size: 13px; font-weight: 400; color: #666; margin-top: 2px; }
.single_add_to_cart_button.disabled { opacity: .5; }
