/* Inspire Clothing – realistic customizer */
.builder-page{max-width:1500px;margin:auto;padding:24px 24px 70px}
.builder-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}
.builder-heading h1{font-size:42px;line-height:1.05;margin:4px 0 7px}
.heading-actions{display:flex;gap:8px;flex-wrap:wrap}
.muted{color:var(--muted);font-size:13px}
.builder-grid{display:grid;grid-template-columns:190px minmax(0,1fr) 390px;gap:18px;align-items:start}
.sticker-rail{background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px;position:sticky;top:14px;max-height:calc(100vh - 30px);overflow:auto}
.rail-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 12px;border-bottom:1px solid var(--line)}
.rail-head strong{display:block;font-size:13px;margin-top:3px}
.rail-kicker{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--muted)}
.rail-head>span:last-child{background:#f2f5f3;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900}
.pack-stickers{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-top:12px}
.sticker-choice{border:1px solid var(--line);border-radius:14px;background:#fff;padding:7px;cursor:pointer;transition:.18s;min-width:0}
.sticker-choice:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(0,0,0,.07)}
.sticker-choice.active{border:2px solid var(--accent);padding:6px;background:#f0f7f4}
.sticker-choice img{display:block;width:100%;height:65px;object-fit:contain;background:#fafaf8;border-radius:9px}
.sticker-choice span{display:block;text-align:center;font-size:8px;font-weight:800;color:var(--muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail-tip{font-size:9px;color:var(--muted);line-height:1.5;margin:12px 2px 2px}
.realistic-viewer{min-height:735px;border-radius:30px;background:radial-gradient(circle at 50% 38%,#fff 0,#f3f4f1 48%,#e7e9e5 100%);position:relative;display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.045)}
.viewer-badge{position:absolute;top:16px;left:16px;z-index:20;background:#fff;border:1px solid var(--line);padding:8px 11px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.08em}
.mockup-stage{width:min(600px,86%);height:650px;position:relative;display:grid;place-items:center;perspective:1400px}
.shirt-mockup{position:absolute;width:min(500px,94%);height:auto;max-height:620px;object-fit:contain;filter:drop-shadow(0 32px 24px rgba(0,0,0,.19));user-select:none;pointer-events:none;transform-origin:center;transition:opacity .08s,transform .12s}
.print-zone{position:absolute;z-index:5;left:50%;top:51%;width:235px;height:235px;transform:translate(-50%,-50%);display:grid;place-items:center;pointer-events:none}
.print-zone img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 4px rgba(0,0,0,.16));transition:width .18s,height .18s}
.rotation-indicator{position:absolute;bottom:52px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.86);backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.06);padding:8px 13px;border-radius:999px;font-size:10px;color:#5c625d;z-index:15;white-space:nowrap}
.rotation-indicator span{font-weight:900;margin-right:5px}
.angle-controls{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:16}
.angle-controls button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-size:10px;font-weight:900;box-shadow:0 4px 12px rgba(0,0,0,.05)}
.angle-controls button:hover{border-color:var(--accent)}
.mockup-caption{padding:10px 3px 0;display:flex;justify-content:space-between;gap:10px}
.mockup-caption span{font-size:13px;font-weight:900}
.mockup-caption small{font-size:10px;color:var(--muted)}
.config-panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px;position:sticky;top:14px;box-shadow:0 15px 45px rgba(0,0,0,.06)}
.config-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:900;font-size:15px;margin-bottom:18px}
.config-title small{display:block;color:#4f806c;font-size:9px;margin-top:5px}
.qty-box-mini{display:none}
.config-section{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.config-section>label{display:block;font-weight:900;font-size:11px;margin-bottom:12px}
.swatches{display:flex;gap:15px;flex-wrap:wrap;padding-bottom:12px}
.swatch{width:34px;height:34px;border-radius:50%;border:3px solid #fff;outline:1px solid var(--line);position:relative;cursor:pointer}
.swatch.active{outline:2px solid var(--accent);transform:scale(1.06)}
.swatch span{position:absolute;left:50%;top:calc(100% + 6px);transform:translateX(-50%);font-size:8px;white-space:nowrap;color:var(--muted)}
.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.option{border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px;text-align:left;cursor:pointer}
.option strong{display:block;font-size:11px}
.option span{display:none}
.option[data-place="plain"] em{display:none}
.option.active{border-color:var(--accent);background:#f0f7f4}
.option:disabled{opacity:.4;cursor:not-allowed}
.quantity-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:2px 0 18px}
.quantity-row strong{display:block;font-size:11px}
.quantity-row small{display:block;font-size:8px;color:var(--muted);margin-top:3px}
.quantity-control{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.quantity-control button{border:0;background:#f5f6f4;width:32px;height:34px;font-size:18px;cursor:pointer}
.quantity-control input{border:0;width:40px;height:34px;text-align:center;font-weight:900;font-size:12px;outline:0}
.price-box{background:#15191b;color:#fff;border-radius:18px;padding:16px;margin:0 0 13px;display:grid;gap:6px}
.price-box span,.price-box small{font-size:9px;opacity:.7}
.price-box>strong{font-size:25px}
.price-line,.price-total-line{display:flex;justify-content:space-between;align-items:center;font-size:10px;padding-top:5px;border-top:1px solid rgba(255,255,255,.1)}
.price-total-line{font-size:12px}
.price-total-line strong{font-size:18px}
.order-notes{list-style:none;display:grid;gap:6px;margin:0 0 12px;padding:10px 12px;background:#f0f7f4;border-left:3px solid #18c84a;border-radius:8px}
.order-notes li{display:flex;align-items:center;gap:8px;color:#183a2c;font-size:10px;font-weight:800;line-height:1.4}
.order-notes li::before{content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#18a957}
.order-notes li:nth-child(2)::before{background:#dc5b4f}
.order-notes li:nth-child(3)::before{background:#1674c8}
.change{display:block;text-align:center;margin-top:12px;font-size:10px;font-weight:800;color:var(--muted)}
.size-chart-dialog{width:min(720px,calc(100% - 24px));border:0;border-radius:22px;padding:0;box-shadow:0 30px 100px rgba(0,0,0,.28)}
.size-chart-dialog::backdrop{background:rgba(0,0,0,.55)}
.modal-inner{padding:22px;position:relative}
.modal-inner h2{margin:4px 0 14px;font-size:25px}
.modal-inner img{width:100%;height:auto;display:block;border-radius:14px;border:1px solid var(--line)}
.chart-note{font-size:10px;color:var(--muted);margin:10px 0 0}
dialog{border:0;border-radius:24px;width:min(650px,calc(100% - 24px));padding:0;box-shadow:0 30px 100px rgba(0,0,0,.25)}
dialog::backdrop{background:rgba(0,0,0,.5)}
dialog form{padding:28px;position:relative}
.dialog-close{position:absolute;right:16px;top:15px;border:0;background:#f2f1ed;border-radius:50%;width:34px;height:34px;font-size:20px;cursor:pointer}
.dialog-intro{color:var(--muted);font-size:12px}
.summary{margin:16px 0;padding:14px;border-radius:14px;background:#f6f5f0;font-size:11px;line-height:1.7}
.brand-image{height:48px;width:145px;display:flex!important;align-items:center}
.brand-image img{max-width:145px;max-height:46px;object-fit:contain}
@media(max-width:1180px){
 .builder-grid{grid-template-columns:165px minmax(0,1fr) 350px}
 .realistic-viewer{min-height:650px}
 .mockup-stage{height:570px}
 .shirt-mockup{max-height:545px}
 .print-zone{width:205px;height:205px}
}
@media(max-width:980px){
 .builder-grid{grid-template-columns:minmax(0,1fr)}
 .sticker-rail,.mockup-column,.config-panel,.pack-stickers{min-width:0}
 .sticker-rail{position:static;max-height:none;overflow:visible;order:2}
 .mockup-column{order:1}
 .config-panel{position:static;order:3}
 .pack-stickers{display:flex;overflow-x:auto;gap:10px;padding-bottom:6px}
 .sticker-choice{min-width:92px}
 .sticker-choice img{height:78px}
 .realistic-viewer{min-height:650px}
}
@media(max-width:600px){
 .builder-page{padding:13px 10px 45px}
 .builder-heading{align-items:start;display:block}
 .builder-heading h1{font-size:31px}
 .heading-actions{margin-top:12px}
 .heading-actions .btn{flex:1}
 .builder-grid{display:flex;flex-direction:column;gap:10px}
 .mockup-column{display:contents}
 .realistic-viewer{width:100%;min-height:510px;border-radius:22px}
 .realistic-viewer{order:1}
 .sticker-rail{order:2;width:100%}
 .mockup-stage{height:440px;width:100%}
 .shirt-mockup{width:92%;max-height:420px}
 .print-zone{width:155px;height:155px;top:50%}
 .rotation-indicator{bottom:48px;font-size:8px}
 .angle-controls button{padding:7px 9px;font-size:9px}
 .mockup-caption{display:block;padding:8px 2px}
 .mockup-caption{order:3}
 .mockup-caption small{display:block;margin-top:4px}
 #colours{order:4}
 .benefits{display:none !important}
 .sticker-rail{border-radius:18px;padding:12px}
 .sticker-choice{min-width:86px}
 .sticker-choice img{height:68px}
 .config-panel{order:6;align-self:stretch;width:100%;border-radius:18px;padding:15px}
 .option-grid{grid-template-columns:1fr 1fr}
 .swatches{gap:14px}
 .qty-box-mini{display:flex;align-items:center;gap:6px;font-size:9px}
 .qty-box-mini input{width:42px;height:30px;border:1px solid var(--line);border-radius:8px;text-align:center}
 .quantity-row{padding-top:3px}
 .form-grid{grid-template-columns:1fr}
}








/* =========================================================
   INSPIRE CLOTHING
   DTF PRINT SIZE + POSITION CONTROL
   EDIT VALUES BELOW ONLY
   ========================================================= */

#stickerImg {
    --print-scale: 1;
    --print-x: 0px;
    --print-y: 0px;

    transform:
        translate(
            var(--print-x),
            var(--print-y)
        )
        scale(var(--print-scale));

    transform-origin: center center;

    transition: transform 0.25s ease;
}


/* =========================================================
   CHEST
   Option 2
   ========================================================= */

.builder-grid:has(#placements .option:nth-child(2).active) #stickerImg {
    --print-scale: 0.50 !important;
    --print-x: 0px !important;
    --print-y: 0px !important;

    transform: translate(-15px, 0px) scale(1.60) !important;
}


/* =========================================================
   A4
   Option 3
   ========================================================= */

.builder-grid:has(#placements .option:nth-child(3).active) #stickerImg {
    --print-scale: 0.95 !important;
    --print-x: 0px !important;
    --print-y: 10px !important;

    transform: translate(0px, 10px) scale(1.20) !important;
}


/* =========================================================
   A3
   Option 4
   ========================================================= */

.builder-grid:has(#placements .option:nth-child(4).active) #stickerImg {
    --print-scale: 0.65 !important;
    --print-x: -60px !important;
    --print-y: -60px !important;

    transform: translate(-60px, -50px) scale(0.65) !important;
}

@media(max-width:600px){
    .builder-grid:has(#placements .option:nth-child(4).active) #stickerImg {
        --print-scale: 0.72 !important;
        transform: translate(-60px, -50px) scale(0.72) !important;
    }
}

/* =========================================================
   A2
   Option 5
   ========================================================= */

.builder-grid:has(#placements .option:nth-child(5).active) #stickerImg {
    --print-scale: 0.60 !important;
    --print-x: 0px !important;
    --print-y: -95px !important;

    transform: translate(-60px, -100px) scale(0.60) !important;
}


/* =========================================================
   PRINT POSITION
   ========================================================= */

/*
   LEFT  = negative X
   RIGHT = positive X

   UP   = negative Y
   DOWN = positive Y
*/










/* =========================================================
   T-SHIRT SIZE BASED PRINT SCALE
   S / M / L / XL / 2XL / 3XL
   ========================================================= */

/* S */
.builder-grid:has(#sizes .option:nth-child(1).active) #stickerImg {
    transform: translate(var(--print-x), var(--print-y))
               scale(calc(var(--print-scale) * 0.90));
}

/* M */
.builder-grid:has(#sizes .option:nth-child(2).active) #stickerImg {
    transform: translate(var(--print-x), var(--print-y))
               scale(calc(var(--print-scale) * 1.00));
}

/* L */
.builder-grid:has(#sizes .option:nth-child(3).active) #stickerImg {
    transform: translate(var(--print-x), var(--print-y))
               scale(calc(var(--print-scale) * 1.08));
}

/* XL */
.builder-grid:has(#sizes .option:nth-child(4).active) #stickerImg {
    transform: translate(var(--print-x), var(--print-y))
               scale(calc(var(--print-scale) * 1.16));
}

/* 2XL */
.builder-grid:has(#sizes .option:nth-child(5).active) #stickerImg {
    transform: translate(var(--print-x), var(--print-y))
               scale(calc(var(--print-scale) * 1.24));
}

/* 3XL */
.builder-grid:has(#sizes .option:nth-child(6).active) #stickerImg {
    transform: translate(var(--print-x), var(--print-y))
               scale(calc(var(--print-scale) * 1.32));
}









/* =========================================================
   PREMIUM T-SHIRT COLOUR STUDIO
   ========================================================= */

.mockup-caption{
    padding:18px 4px 12px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.mockup-caption span{
    display:flex;
    align-items:center;
    gap:7px;
    font-size:14px;
    font-weight:800;
    letter-spacing:.1px;
    color:#17212b;
}

.mockup-caption span::before{
    content:"";
    width:7px;
    height:7px;
    border-radius:50%;
    background:#08AFC1;
    box-shadow:0 0 0 4px rgba(8,175,193,.10);
}

.mockup-caption b{
    color:#08AFC1;
    font-weight:900;
}

.mockup-caption small{
    font-size:10px;
    font-weight:600;
    color:#7b8490;
    letter-spacing:.3px;
}


/* COLOUR AREA */

#colours.swatches{
    position:relative;
    display:flex !important;
    align-items:flex-start;
    gap:12px;
    flex-wrap:nowrap;
    width:100%;
    min-height:94px;
    padding:14px 14px 18px;
    margin:0;
    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #f8fafc 55%,
            #f2f6f8 100%
        );
    border:1px solid rgba(20,45,75,.08);
    border-radius:18px;
    box-sizing:border-box;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
}

#colours.swatches::-webkit-scrollbar{
    display:none;
}


/* INDIVIDUAL COLOUR */

#colours .swatch{
    position:relative;
    flex:0 0 76px;
    width:76px;
    height:70px;
    min-width:76px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;

    padding:0;
    margin:0;

    border:1px solid transparent;
    outline:none;
    border-radius:14px;

    background:rgba(255,255,255,.72);

    cursor:pointer;

    transition:
        transform .22s ease,
        background .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}


/* COLOUR CIRCLE */

#colours .swatch i{
    display:block;

    width:42px;
    height:42px;

    margin-top:5px;

    border-radius:50%;

    border:3px solid #ffffff;

    outline:1px solid rgba(20,45,75,.14);

    box-shadow:
        0 5px 12px rgba(20,35,50,.14),
        inset 0 0 0 1px rgba(255,255,255,.35);

    box-sizing:border-box;

    transition:
        transform .22s ease,
        box-shadow .22s ease;
}


/* NAME */

#colours .swatch span{
    position:static;

    display:block;

    width:100%;

    margin-top:7px;

    transform:none;

    text-align:center;

    white-space:nowrap;

    font-size:9px;
    line-height:1;

    color:#66717d;

    font-weight:600;

    transition:
        color .22s ease,
        font-weight .22s ease;
}


/* HOVER */

#colours .swatch:hover{
    transform:translateY(-3px);

    background:#ffffff;

    border-color:rgba(8,175,193,.16);

    box-shadow:
        0 8px 20px rgba(20,45,75,.08);
}

#colours .swatch:hover i{
    transform:scale(1.07);

    box-shadow:
        0 7px 16px rgba(20,35,50,.18),
        inset 0 0 0 1px rgba(255,255,255,.35);
}

#colours .swatch:hover span{
    color:#17212b;
}


/* ACTIVE / SELECTED */

#colours .swatch.active{
    transform:translateY(-2px);

    background:#ffffff;

    border:1px solid rgba(8,175,193,.38);

    outline:none;

    box-shadow:
        0 8px 22px rgba(8,175,193,.12);
}

#colours .swatch.active i{
    transform:scale(1.08);

    outline:2px solid #08AFC1;
    outline-offset:3px;

    box-shadow:
        0 7px 16px rgba(8,175,193,.18),
        inset 0 0 0 1px rgba(255,255,255,.4);
}

#colours .swatch.active span{
    color:var(--selected-colour, #08AFC1);
    font-weight:800;
}

/* ACTIVE CHECK */

#colours .swatch.active::after{
    content:"✓";

    position:absolute;

    top:1px;
    right:7px;

    width:16px;
    height:16px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:#08AFC1;
    color:#ffffff;

    font-size:9px;
    font-weight:900;

    border:2px solid #ffffff;

    box-shadow:
        0 3px 8px rgba(8,175,193,.25);
}


/* PREMIUM SELECTED LABEL */

#colourName{
    transition:
        color .25s ease,
        opacity .25s ease;
}


/* MOBILE */

@media(max-width:600px){

    .mockup-caption{
        padding:14px 2px 10px;
    }

    .mockup-caption span{
        font-size:12px;
    }

    .mockup-caption small{
        font-size:9px;
    }

    #colours.swatches{
        gap:9px;
        min-height:90px;
        padding:12px 10px 16px;
        border-radius:15px;
    }

    #colours .swatch{
        flex-basis:68px;
        width:68px;
        min-width:68px;
        height:66px;
    }

    #colours .swatch i{
        width:38px;
        height:38px;
    }

    #colours .swatch span{
        font-size:8px;
    }

}











/* =========================================================
   HIDE CUSTOMIZER PACK / STICKER TEXT
   ========================================================= */

/* Hide main sticker / pack title */
#crumbName,
#titleName {
    display: none !important;
}

/* Hide sticker names under pack thumbnails */
.sticker-choice span {
    display: none !important;
}

@media(max-width:600px){
    .builder-grid:has(#placements .option:nth-child(4).active) #stickerImg{
        transform:translate(-40px,-40px) scale(.60) !important;
    }

    .builder-grid:has(#placements .option:nth-child(3).active) #stickerImg{
        transform:translate(0px,10px) scale(1.28) !important;
    }

    .builder-grid:has(#placements .option:nth-child(5).active) #stickerImg{
        transform:translate(-30px,-65px) scale(.60) !important;
    }
}