.canvas-quote{border:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));border-radius:16px;padding:28px;background:#fff;display:grid;gap:28px}@media(max-width:640px){.canvas-quote{padding:18px;gap:22px;border-radius:12px}}.canvas-quote__legend{font-family:var(--font-sans);font-weight:700;font-size:18px;color:var(--color-ink);margin-bottom:14px}.canvas-quote__group{border:0;padding:0;margin:0}.canvas-quote__dims{display:flex;flex-wrap:wrap;align-items:end;gap:14px;padding:18px 20px;background:#faf7f1;border:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));border-radius:12px}.canvas-quote__by{align-self:end;padding-bottom:16px;font-family:var(--font-sans);font-size:22px;color:var(--color-subtle)}.canvas-quote__field{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--color-ink)}.canvas-quote__field input{padding:14px 16px;border:1px solid var(--color-border, rgba(0, 0, 0, .18));border-radius:10px;font-family:var(--font-sans);font-size:24px;font-weight:700;width:130px;font-variant-numeric:tabular-nums;background:#fff;color:var(--color-ink);-webkit-appearance:none;appearance:none}.canvas-quote__field input:focus{outline:2px solid #1a3550;outline-offset:0;border-color:#1a3550}.canvas-quote__units{display:inline-flex;border:1px solid var(--color-border, rgba(0, 0, 0, .15));border-radius:999px;padding:3px;background:#fff;align-self:end}.canvas-quote__units label{cursor:pointer}.canvas-quote__units input{position:absolute;opacity:0;pointer-events:none}.canvas-quote__units span{display:inline-block;padding:7px 16px;border-radius:999px;font-size:13px;font-weight:600;color:var(--color-muted)}@media(max-width:540px){.canvas-quote__dims{flex-direction:column;align-items:stretch;gap:12px;padding:16px}.canvas-quote__by{display:none}.canvas-quote__field input{width:100%}.canvas-quote__units{align-self:flex-start}}.canvas-quote__units label:has(input:checked) span{background:var(--color-selected);color:#fff}.finishing-grid{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:700px){.finishing-grid{grid-template-columns:1fr 1fr}}.finishing-card{position:relative;display:grid;grid-template-columns:48px 1fr;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));border-radius:12px;cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out}.finishing-card:hover{border-color:#0000002e;background:#00000004}.finishing-card:has(input:checked){border-color:var(--color-selected);background:var(--color-selected-bg);box-shadow:inset 0 0 0 1px var(--color-selected)}.finishing-card input{position:absolute;opacity:0;pointer-events:none}.finishing-card__icon{color:var(--color-muted);display:inline-flex}.finishing-card:has(input:checked) .finishing-card__icon{color:var(--color-selected)}.finishing-card__body{display:grid;gap:2px}.finishing-card__title{font-family:var(--font-sans);font-weight:700;font-size:15px;color:var(--color-ink)}.finishing-card__desc{font-size:12px;color:var(--color-subtle)}.canvas-quote__frame-colour{display:none;padding-top:4px}.frame-colour-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:600px){.frame-colour-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:900px){.frame-colour-grid{grid-template-columns:repeat(4,1fr)}}.frame-colour{position:relative;display:flex;flex-direction:column;gap:8px;padding:8px 8px 10px;border:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));border-radius:12px;cursor:pointer;background:#fff;transition:border-color .15s ease-out,background .15s ease-out}.frame-colour__zoom{position:absolute;top:12px;right:12px;width:26px;height:26px;appearance:none;border:0;border-radius:999px;background:#ffffffeb;box-shadow:0 2px 6px #0000002e;color:var(--color-brand);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:1;opacity:.85;transition:opacity .15s ease-out,background .15s ease-out,transform .12s ease-out}.frame-colour:hover .frame-colour__zoom,.frame-colour__zoom:hover,.frame-colour__zoom:focus-visible{opacity:1;background:#fff}.frame-colour__zoom:hover{transform:scale(1.06)}.frame-colour__zoom:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.frame-colour:hover{border-color:#0000002e}.frame-colour:has(input:checked){border-color:var(--color-selected);background:var(--color-selected-bg);box-shadow:inset 0 0 0 1px var(--color-selected)}.frame-colour__swatch{width:100%;aspect-ratio:3 / 2;border-radius:8px;border:1px solid rgba(0,0,0,.06);object-fit:cover;object-position:center 28%;display:block;background:#f4efe7}.frame-colour__swatch--placeholder{display:flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:11.5px;color:var(--color-subtle);text-align:center;background:repeating-linear-gradient(135deg,#f4efe7,#f4efe7 6px,#ece6db 6px 12px);letter-spacing:.02em}.frame-colour__name{font-family:var(--font-sans);font-size:12.5px;font-weight:700;color:var(--color-ink);line-height:1.25;text-align:center;padding:0 4px}.delivery-grid{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:600px){.delivery-grid{grid-template-columns:1fr 1fr}}.delivery-card{position:relative;display:grid;gap:2px;padding:14px 16px;border:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));border-radius:12px;cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out}.delivery-card:hover{border-color:#0000002e}.delivery-card:has(input:checked){border-color:var(--color-selected);background:var(--color-selected-bg);box-shadow:inset 0 0 0 1px var(--color-selected)}.delivery-card input{position:absolute;opacity:0;pointer-events:none}.delivery-card__title{font-family:var(--font-sans);font-weight:700;font-size:15px;color:var(--color-ink)}.delivery-card__desc{font-size:12.5px;color:var(--color-subtle)}.canvas-quote__output:not(:empty){margin-top:26px}.quote-result{border:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));border-radius:14px;overflow:hidden;background:var(--color-surface, #fff)}.quote-breakdown{display:grid;gap:0;padding:6px 20px}.quote-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:11px 0;font-size:14.5px;color:var(--color-muted);font-variant-numeric:tabular-nums;border-bottom:1px solid var(--color-border-soft, rgba(0, 0, 0, .06))}.quote-row:last-child{border-bottom:0}.quote-row__amount{color:var(--color-ink);font-weight:600;white-space:nowrap}.quote-row__note{display:block;font-size:12.5px;color:var(--color-subtle, #6b6b6b);margin-top:2px}.quote-row--min,.quote-row--min .quote-row__amount{color:#92400e}.quote-result__totalbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;background:var(--color-brand);color:#fff}.quote-result__totalbar .quote-result__label{font-family:var(--font-sans);font-size:14px;font-weight:600;color:#ffffffd1;margin:0}.quote-result__totalbar .quote-result__sub{display:block;font-size:12px;font-weight:400;color:#fff9;margin-top:3px}@media(max-width:560px){.quote-result__totalbar{flex-direction:column;align-items:flex-start;gap:10px}}.quote-result__totalbar .quote-result__amount{font-family:var(--font-sans);font-weight:700;font-size:clamp(30px,4.4vw,40px);line-height:1;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}.canvas-quote__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-top:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));padding-top:22px}@media(max-width:640px){.canvas-quote__actions .canvas-quote__btn{flex:1 1 auto}}.canvas-quote__btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:999px;font-size:14px;font-weight:700;text-decoration:none;transition:background .15s ease-out,color .15s ease-out}.canvas-quote__btn--wa{background:#25d366;color:#0d1b1a}.canvas-quote__btn--wa:hover{background:#1ebe5b}.canvas-quote__btn--secondary{border:1px solid rgba(0,0,0,.18);color:var(--color-ink);background:#fff}.canvas-quote__btn--secondary:hover{background:#00000008}.jobtype-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr}@media(max-width:560px){.jobtype-grid{grid-template-columns:1fr}}.jobtype-card{position:relative;display:flex;flex-direction:column;gap:3px;padding:14px 16px;border:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));border-radius:12px;cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out}.jobtype-card input{position:absolute;opacity:0;width:0;height:0}.jobtype-card:hover{border-color:#0000002e}.jobtype-card:has(input:checked){border-color:var(--color-selected);background:var(--color-selected-bg);box-shadow:inset 0 0 0 1px var(--color-selected)}.jobtype-card:focus-within{outline:2px solid var(--color-brand);outline-offset:2px}.jobtype-card__title{font-family:var(--font-sans);font-size:17px;font-weight:700}.jobtype-card__desc{font-size:13px;color:var(--color-muted);line-height:1.4}.canvas-quote__canvases{display:grid;gap:10px;grid-template-columns:1fr}@media(min-width:700px){.canvas-quote__canvases{grid-template-columns:1fr 1fr}}.canvas-card{position:relative;display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));border-radius:12px;cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out}.canvas-card:hover{border-color:#0000002e;background:#00000004}.canvas-card:has(input:checked){border-color:var(--color-selected);background:var(--color-selected-bg);box-shadow:inset 0 0 0 1px var(--color-selected)}.canvas-card:focus-within{outline:2px solid var(--color-brand);outline-offset:2px}.canvas-card__photo{width:64px;height:64px;border-radius:8px;object-fit:cover;display:block;background:#f1f5f9}.canvas-card__body{display:grid;gap:1px;line-height:1.3}.canvas-card__brand{font-family:var(--font-sans);font-size:11px;color:var(--color-muted, #555);line-height:1.2;margin-bottom:1px;letter-spacing:.01em}.canvas-card__name{font-family:var(--font-sans);font-weight:700;font-size:15px;color:var(--color-ink);line-height:1.2}.canvas-card__chips{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:5px;margin-bottom:2px}.chip--popular{background:var(--color-brand-tint);color:var(--color-brand-dark)}.canvas-card__blurb{font-size:12px;color:var(--color-subtle, #6b6b6b);margin-top:4px}.canvas-card__check{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(0,0,0,.18);color:transparent;background:#fff;transition:all .15s ease-out}.canvas-card:has(input:checked) .canvas-card__check{border-color:var(--color-selected);background:var(--color-selected);color:#fff}.canvas-quote__hint{font-size:13px;color:var(--color-muted);margin:10px 0 0;max-width:60ch}.canvas-quote__wrap{display:none}.canvas-quote:has(input[name=jobType][value=print]:checked):not(:has(input[name=finishing][value=none]:checked)) .canvas-quote__wrap{display:block}.wrap-grid{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}@media(max-width:700px){.wrap-grid{grid-template-columns:1fr}}.wrap-card{position:relative;display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--color-border-soft, rgba(0, 0, 0, .08));border-radius:12px;cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out}.wrap-card:hover{border-color:#0000002e}.wrap-card:has(input:checked){border-color:var(--color-selected);background:var(--color-selected-bg);box-shadow:inset 0 0 0 1px var(--color-selected)}.wrap-card:focus-within{outline:2px solid var(--color-brand);outline-offset:2px}.wrap-card__title{font-weight:700;font-size:15px;color:var(--color-brand)}.wrap-card__blurb{font-size:12.5px;color:var(--color-muted);line-height:1.45}.canvas-quote:has(input[name=finishing][value=float]:checked) .canvas-quote__frame-colour{display:block}.canvas-quote:has(input[name=jobType][value=stretch]:checked) .canvas-quote__canvas-pick{display:none}.canvas-quote:has(input[name=jobType][value=stretch]:checked) .finishing-card[data-finishing-none]{display:none}.quote-required{display:grid;gap:2px;margin-top:14px;padding:12px 16px;border-radius:10px;background:var(--color-brand-tint);border:1px solid rgba(0,52,51,.25);font-size:14px;color:var(--color-brand-dark)}.quote-required strong{font-size:15px}
