/* Instant quote tool. Ported from gyroid.com.au and re-themed to the Industrial Printworks palette.
   The engine in /static/js/quote.js needs every id and class in here, so change colours and sizes
   but keep the selectors. Tokens: charcoal ink, cream paper, amber accents, Saira Condensed headings. */

.quote-sec{padding:40px 0 84px;background:var(--paper)}
.quote-sec .wrap{max-width:1440px}
@media (max-width:640px){.quote-sec{padding:24px 0 56px}.quote-sec .wrap{padding:0 10px}}

#gq{
  --ink-2:var(--oil);--ink-soft:#4e4a4b;--mute:#5B5758;
  --card:var(--white);--line:var(--concrete-light);--line-2:var(--concrete);
  --biro:var(--amber);--cond:var(--display);
}
#gq{--ok:#2F7D4F;--warn:#9A5A08;--bad:#B3261E;font-family:var(--body);font-size:15px;line-height:1.5;color:var(--ink);background:var(--concrete-light);border:2px solid var(--ink);border-radius:var(--radius);text-align:left;scroll-margin-top:84px}
#gq *,#gq *::before,#gq *::after{box-sizing:border-box}
#gq h2,#gq h3,#gq p{margin:0}
#gq button,#gq input,#gq select,#gq textarea{font:inherit;color:inherit;margin:0}
#gq .hd{background:var(--ink);color:var(--paper);padding:22px 24px 18px;display:flex;flex-wrap:wrap;gap:14px 28px;align-items:flex-end;justify-content:space-between;border-radius:var(--radius) var(--radius) 0 0}
#gq .hd h2{font-family:var(--cond);font-weight:700;font-size:36px;line-height:1;letter-spacing:.02em;text-transform:uppercase;color:var(--paper)}
#gq .hd h2 span{color:var(--amber)}
#gq .hd p{color:#CFCCC6;font-size:15px;margin-top:6px;max-width:58ch}
#gq .steps{display:flex;gap:6px;list-style:none;margin:0;padding:0}
#gq .steps li{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:14px;padding:6px 12px 5px;border:2px solid #6A6566;color:#B9B4AA;border-radius:var(--radius);margin:0}
#gq .steps li.on{border-color:var(--amber);color:var(--ink);background:var(--amber)}
#gq .body{display:grid;grid-template-columns:minmax(0,1fr) 350px;grid-template-areas:"main side" "guide guide";gap:20px;padding:20px 22px 24px;align-items:start}
#gq .main{grid-area:main;min-width:0}#gq .side{grid-area:side}#gq .guide{grid-area:guide}
@media (min-width:1280px){#gq .body{grid-template-columns:290px minmax(0,1fr) 350px;grid-template-areas:"guide main side"}}
#gq .guide{background:var(--card);border:1.5px solid var(--line-2);border-radius:var(--radius);padding:16px 16px 6px}
#gq .guide h3{font-family:var(--cond);font-weight:700;font-size:21px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
#gq .guide > p{font-size:13.5px;color:var(--mute);margin-bottom:8px}
#gq .guide details{border-top:1px solid var(--line);padding:9px 0}
#gq .guide summary{cursor:pointer;font-weight:600;font-size:15px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:8px}
#gq .guide summary::-webkit-details-marker{display:none}
#gq .guide summary::after{content:"+";font-family:var(--cond);font-weight:700;color:var(--ink);font-size:21px;line-height:1}
#gq .guide details[open] summary::after{content:"\2212"}
#gq .guide dl{margin:8px 0 2px;font-size:13.5px;line-height:1.45}
#gq .guide dt{font-weight:600;margin-top:7px}
#gq .guide dd{margin:1px 0 0;color:var(--ink-soft)}
#gq .guide .eg{margin-top:9px;font-size:13px;background:var(--paper);border-left:3px solid var(--ink);padding:7px 9px;border-radius:0 var(--radius) var(--radius) 0}
@media (min-width:1280px){#gq .guide{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow-y:auto}}
@media (max-width:900px){#gq .body{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "side" "guide";padding:14px}#gq .hd{padding:18px 16px 16px}#gq .hd h2{font-size:30px}}
#gq .drop{border:2.5px dashed var(--ink);border-radius:var(--radius);background:var(--card);padding:28px 18px;text-align:center;cursor:pointer;transition:background .15s}
#gq .drop:hover,#gq .drop.over{background:#FFF3EA;border-style:solid;border-color:var(--amber)}
#gq .drop:focus-visible{outline:3px solid var(--biro);outline-offset:2px}
#gq .drop strong{display:block;font-family:var(--cond);font-size:26px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
#gq .drop small{display:block;color:var(--mute);font-size:13.5px;margin-top:4px}
#gq .drop .ico{width:56px;height:56px;margin:0 auto 8px;display:block}
#gq .note{font-size:13px;color:var(--mute);margin-top:10px}
#gq .msg{margin-top:10px;padding:10px 12px;border-radius:var(--radius);font-size:14px;background:#fbeaea;color:var(--bad);border:1px solid #efc6c3}
#gq .msg.info{background:#F3F1EC;color:var(--ink);border-color:var(--concrete)}
#gq .payhint{margin-top:6px;text-align:center}
#gq [hidden]{display:none!important}
#gq .parts{display:flex;flex-direction:column;gap:14px;margin-top:16px}
#gq .part{background:var(--card);border:1.5px solid var(--line-2);border-radius:var(--radius);display:grid;grid-template-columns:200px minmax(0,1fr)}
#gq .part .thumb{border-radius:var(--radius) 0 0 var(--radius);overflow:hidden}
@media (max-width:620px){#gq .part{grid-template-columns:minmax(0,1fr)}#gq .part .thumb{border-radius:var(--radius) var(--radius) 0 0}}
#gq .thumb{background:linear-gradient(160deg,#F2F0EB,#D6D2CA);position:relative;min-height:170px;cursor:grab;touch-action:none}
#gq .thumb canvas{width:100%;height:100%;display:block;position:absolute;inset:0}
#gq .thumb .hint{position:absolute;left:8px;bottom:6px;font-size:11.5px;color:var(--mute);font-family:var(--cond);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
#gq .thumb .ext{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--cond);font-size:32px;font-weight:700;color:#8F8A82}
#gq .pinfo{padding:14px 16px;display:flex;flex-direction:column;gap:12px;min-width:0}
#gq .ptop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
#gq .pname{font-weight:600;font-size:16px;overflow-wrap:anywhere}
#gq .specs{font-size:13px;color:var(--mute);margin-top:2px;display:flex;flex-wrap:wrap;gap:4px 14px;font-variant-numeric:tabular-nums}
#gq .rm{background:none;border:0;color:var(--mute);cursor:pointer;font-size:13px;padding:2px 4px;text-decoration:underline;white-space:nowrap}
#gq .rm:hover{color:var(--bad)}
#gq .opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:1060px){#gq .opts{grid-template-columns:repeat(2,minmax(0,1fr))}}
#gq label.f{display:flex;flex-direction:column;gap:3px;font-family:var(--cond);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
#gq select,#gq input[type=text],#gq input[type=email],#gq input[type=tel],#gq input[type=number],#gq textarea{width:100%;border:1.5px solid var(--line-2);border-radius:var(--radius);background:#fff;padding:8px 9px;font-family:var(--body);font-size:15px;text-transform:none;letter-spacing:normal;font-weight:400;color:var(--ink);min-height:40px}
#gq select:focus,#gq input:focus,#gq textarea:focus{outline:2px solid var(--ink);outline-offset:0;border-color:var(--ink)}
#gq .cpick{position:relative;display:flex;flex-direction:column;gap:3px}
#gq .flabel{font-family:var(--cond);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
#gq .csel{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;border:1.5px solid var(--line-2);border-radius:var(--radius);background:#fff;padding:6px 9px;cursor:pointer;text-align:left;font-size:15px}
#gq .csel:focus-visible,#gq .csel[aria-expanded=true]{outline:2px solid var(--ink);border-color:var(--ink)}
#gq .csel .cname{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gq .csel svg{flex:none;width:12px;height:12px}
#gq .tile{display:inline-block;width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.3);flex:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
#gq .clist{position:absolute;z-index:30;left:0;top:100%;min-width:100%;width:max-content;max-width:280px;max-height:264px;overflow-y:auto;margin:4px 0 0;padding:4px;list-style:none;background:#fff;border:1.5px solid var(--ink);border-radius:var(--radius);box-shadow:0 10px 26px rgba(35,31,32,.2)}
#gq .clist li{display:flex;align-items:center;gap:9px;padding:6px 8px;margin:0;border-radius:var(--radius);cursor:pointer;font-size:14px;line-height:1.3}
#gq .clist li:hover,#gq .clist li:focus{background:var(--paper);outline:none}
#gq .clist li[aria-selected=true]{font-weight:600;background:var(--concrete-light)}
#gq .skubox{display:flex;flex-direction:column;gap:3px;min-width:0}
#gq .skubox[hidden]{display:none}
#gq .skubox input{min-height:40px}
#gq .skumsg{font-size:12.5px;line-height:1.35;color:var(--mute)}
#gq .skumsg .good{color:var(--ok);font-weight:600}
#gq .skumsg .bad{color:var(--warn);font-weight:600}
.tile-sku{background:repeating-linear-gradient(45deg,#d8d2c6 0 3px,#fff 3px 6px)}
.mat .cols.out{color:var(--warn)}
#gq .qty{display:flex;align-items:stretch;border:1.5px solid var(--line-2);border-radius:var(--radius);overflow:hidden;background:#fff;height:40px}
#gq .qty button{border:0;background:var(--paper);width:38px;cursor:pointer;font-size:19px;line-height:1}
#gq .qty button:hover{background:var(--paper)}
#gq .qty input{border:0!important;min-height:0!important;text-align:center;border-radius:0!important;-moz-appearance:textfield;appearance:textfield;padding:0 4px!important}
#gq .qty input::-webkit-inner-spin-button{-webkit-appearance:none}
#gq .pfoot{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
#gq .flag{font-size:13px;padding:3px 8px;border-radius:var(--radius);background:#FBEFD9;color:var(--warn);font-weight:500;display:inline-block}
#gq .flag.ok{background:#E5F1E8;color:var(--ok)}
#gq .pprice{text-align:right;font-variant-numeric:tabular-nums}
#gq .pprice b{font-family:var(--cond);font-size:26px;font-weight:700;letter-spacing:.01em}
#gq .pprice small{display:block;color:var(--mute);font-size:12.5px}
#gq .pprice.est b{opacity:.5}
#gq .tune{margin-top:10px;border:1.5px dashed var(--line-2);border-radius:var(--radius);padding:0 12px}
#gq .tune summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:9px 0;font-family:var(--cond);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
#gq .tune summary::-webkit-details-marker{display:none}
#gq .tune summary::before{content:"+";font-weight:700;width:18px;display:inline-block}
#gq .tune[open] summary::before{content:"\2212"}
#gq .tune summary small{font-family:var(--body);font-weight:400;font-size:13px;letter-spacing:0;text-transform:none;color:var(--mute)}
#gq .tune summary .flag{font-family:var(--body);letter-spacing:0;text-transform:none}
#gq .tune .opts{padding-bottom:10px}
#gq .tune .qty .unit{display:flex;align-items:center;padding:0 10px;background:var(--paper);color:var(--mute);font-size:14px}
#gq .turns{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:10px}
#gq .tbtn{border:1.5px solid var(--ink);background:#fff;color:var(--ink);border-radius:var(--radius);padding:7px 11px;font-family:var(--cond);font-weight:700;font-size:14px;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
#gq .tbtn:hover{background:var(--paper)}
#gq .tune .note{margin:0 0 10px!important}
#gq .pstat{flex:1 1 220px;min-width:0}
#gq .prog{width:100%}
#gq .prog-bar{height:10px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--paper);overflow:hidden}
#gq .prog-bar i{display:block;height:100%;width:3%;background:var(--ink) repeating-linear-gradient(-45deg,rgba(255,253,248,.22) 0 6px,transparent 6px 12px);background-size:17px 17px;animation:gq-prog .7s linear infinite;transition:width .25s linear}
#gq .prog-t{display:flex;justify-content:space-between;gap:10px;margin-top:5px;font-size:13px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
#gq .prog-t span:last-child{color:var(--mute);white-space:nowrap}
#gq .side .prog{margin:4px 0 12px}
@keyframes gq-prog{to{background-position:17px 0}}
#gq .side{position:sticky;top:84px;display:flex;flex-direction:column;gap:14px}
@media (max-width:900px){#gq .side{position:static}}
#gq .panel{scroll-margin-top:84px;background:var(--card);border:1.5px solid var(--line-2);border-radius:var(--radius);padding:16px}
#gq .panel h3{font-family:var(--cond);font-weight:700;font-size:21px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}
#gq .lead{display:flex;flex-direction:column;gap:8px}
#gq .lead label{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:var(--radius);padding:9px 10px;cursor:pointer}
#gq .lead label:has(input:checked){border-color:var(--ink);background:var(--paper)}
#gq .lead input{accent-color:var(--ink);margin-top:4px}
#gq .lead b{display:block;font-weight:600}
#gq .lead span{font-size:13px;color:var(--mute)}
#gq .ship{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
#gq .ship .lead label{padding:7px 10px}
#gq .ship .lead label > div{flex:1}
#gq .ship .lead b{display:flex;justify-content:space-between;gap:10px}
#gq .ship .lead b em{font-style:normal;font-weight:600;font-variant-numeric:tabular-nums}
#gq table.sum{width:100%;border-collapse:collapse;font-size:14.5px;margin:0}
#gq table.sum td{padding:5px 0;border:0;vertical-align:top}
#gq table.sum td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:10px;font-weight:500}
#gq table.sum tr.tot td{border-top:2px solid var(--ink);padding-top:10px;font-family:var(--cond);font-size:20px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
#gq table.sum tr.tot td:last-child{font-size:30px;letter-spacing:0;line-height:1}
#gq table.sum .m{color:var(--mute);font-size:13.5px;font-weight:400}
#gq .btn{display:block;width:100%;border:2px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:var(--paper);font-family:var(--cond);font-weight:700;font-size:21px;text-transform:uppercase;letter-spacing:.08em;padding:12px 14px 11px;cursor:pointer;margin-top:12px;box-shadow:none}
#gq .btn:hover{background:var(--ink-2)}
#gq .btn:active{transform:translate(1px,1px)}
#gq .btn:disabled{background:#A9A6A0;border-color:#A9A6A0;box-shadow:none;cursor:not-allowed;transform:none}
#gq .btn.ghost{background:transparent;color:var(--ink);font-size:17px;box-shadow:none}
#gq .form{display:flex;flex-direction:column;gap:10px}
#gq .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#gq .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#gq .done{text-align:center;padding:6px 4px}
#gq .done img{width:120px;display:block;margin:0 auto 6px;transform:rotate(-8deg)}
#gq .done .ref{font-family:var(--cond);font-weight:700;font-size:30px;letter-spacing:.06em;margin:4px 0 8px}
#gq .done p{font-size:14.5px}
#gq .fine{font-size:12.5px;color:var(--mute);margin-top:10px;line-height:1.45}
#gq .empty{margin-top:16px;padding:18px;border:1.5px solid var(--line-2);border-radius:var(--radius);background:var(--card);color:var(--ink-soft);font-size:14.5px}
#gq .empty strong{color:var(--ink);font-family:var(--cond);font-weight:700;font-size:18px;text-transform:uppercase;letter-spacing:.05em}
#gq .empty ul{margin:8px 0 0 18px;padding:0}
#gq .empty li{margin:2px 0}
/* Resets for store-wide classes that share a name with the engine's markup (.steps, .btn, .opts, .tile, .form, .qty) */
#gq .steps{counter-reset:none}
#gq .steps li{display:inline-block;grid-template-columns:none;padding-top:5px;line-height:1.2}
#gq .steps li::before{content:none;display:none}
#gq .opts{margin-top:0}
#gq .tile{position:static;flex-direction:row;overflow:visible;background:none}
#gq .form{max-width:none}
#gq .qty{display:flex}
#gq .btn{min-height:0;line-height:1.15;transition:background .12s,color .12s}
#gq .btn.ghost:hover{background:var(--ink);color:var(--paper)}
#gq .btn:disabled{opacity:1}
#gq .btn.ghost:disabled{background:transparent;color:#8F8A82;border-color:#B9B4AA}
#gq .done img{width:72px;height:72px;transform:none;margin-bottom:10px}
#gq .guide a{color:var(--amber-dark)}

/* Phone price bar: shows the running estimate while the price panel is off screen */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -6px 18px rgba(35,31,32,.25)}
.mbar[hidden]{display:none}
.mbar span{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.1em;text-transform:uppercase}
.mbar b{font-size:24px;letter-spacing:0;margin-left:6px;color:var(--amber)}
.mbar .btn{font-size:16px;padding:8px 14px 7px;min-height:0;background:var(--amber);color:var(--ink);border-color:var(--amber)}
@media (min-width:901px){.mbar{display:none!important}}
