/**
 * @copyright 2026 Fortee Uniforme Inc. All rights reserved.
 * @license PROPRIETARY - Unauthorized copying, modification, or distribution
 *          of this file is strictly prohibited.
 * Protected under the Canadian Copyright Act (R.S.C., 1985, c. C-42).
 *
 * fortee-car-freshener.css -- Custom Car Air Freshener builder.
 *
 * Every selector in this file is under the .cfr- namespace. Nothing here can
 * reach the apparel builder's or the bundle builder's own namespace, which is
 * the whole point: this stylesheet ships on one product template and must not
 * be able to restyle any other builder page.
 *
 * VISUAL PARITY WITH THE SINGLE BUILDER
 * The numbers in the "single-builder parity" blocks below are COPIED, by value,
 * out of assets/fortee-single-builder.css. They are duplicated rather than
 * imported on purpose: loading that stylesheet here would put live .ftb- rules
 * on this page, which is exactly the collision this template is forbidden to
 * risk. If the single builder's chrome ever changes, these values have to be
 * re-copied by hand -- that cost is accepted in exchange for the isolation.
 *
 * Colour, space, radius and type otherwise resolve to --fortee-* tokens from
 * fortee-tokens.css, which the layout already loads site-wide.
 * Mobile first: min-width media queries only.
 */.cfr-builder{--cfr-pad-top: var(--fortee-space-5);--cfr-pad-bottom: var(--fortee-space-7);--cfr-primary: var(--fortee-blue, #009afd);--cfr-success: var(--fortee-success, #0f7b3f);--cfr-ink: var(--fortee-graphite, #101317);--cfr-font-heading: var(--fortee-font-display);--cfr-font-body: var(--fortee-font-body);margin:0 auto;padding:var(--cfr-pad-top) 0 var(--cfr-pad-bottom);color:var(--fortee-text);font-family:var(--cfr-font-body);font-size:var(--fortee-text-base);line-height:var(--fortee-leading-body)}.cfr-editor{display:flex;flex-direction:column;position:relative;z-index:1}.cfr-image-sticky{position:sticky;top:0;z-index:10;background:#fff;display:flex;flex-direction:column;align-items:center;padding:0;overflow:hidden}.cfr-config{padding:0 16px 80px;font-family:var(--cfr-font-body)}.cfr-product-header{padding:16px;margin-bottom:12px;border-bottom:1px solid #e2e8f0}.cfr-badge{display:inline-block;padding:3px 10px;background:color-mix(in srgb,var(--cfr-primary) 9%,transparent);border-radius:20px;font-size:10px;font-weight:700;color:var(--cfr-primary);font-family:var(--cfr-font-heading);letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px}.cfr-product-name{font-size:24px;font-weight:900;color:var(--cfr-ink);font-family:var(--cfr-font-heading);line-height:1.2;margin:0 0 4px}.cfr-product-desc{font-size:13px;color:#666;font-family:var(--cfr-font-body);line-height:1.5;margin:0 0 12px}.cfr-product-desc>*:first-child{margin-top:0}.cfr-product-desc>*:last-child{margin-bottom:0}.cfr-product-desc p{margin:0 0 8px}.cfr-product-desc ul,.cfr-product-desc ol{margin:0 0 8px;padding-left:18px}.cfr-product-desc li{margin-bottom:4px}.cfr-product-desc li::marker{color:var(--cfr-primary)}.cfr-product-desc strong,.cfr-product-desc b{color:#374151;font-weight:700}.cfr-product-desc a{color:var(--cfr-primary);text-decoration:underline}.cfr-product-desc img{max-width:100%;height:auto;border-radius:6px}.cfr-product-desc table{width:100%;font-size:12px;border-collapse:collapse}.cfr-product-desc--clamped{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cfr-product-desc-wrap .cfr-product-desc{margin-bottom:4px}.cfr-desc-toggle{background:none;border:none;padding:0;margin:0 0 12px;color:var(--cfr-primary);font-size:12px;font-weight:700;font-family:var(--cfr-font-heading);cursor:pointer}.cfr-desc-toggle:hover{text-decoration:underline}.cfr-desc-toggle:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-price-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:8px}.cfr-price-current{font-size:28px;font-weight:900;color:var(--cfr-primary);font-family:var(--cfr-font-heading)}.cfr-price-unit{font-size:12px;font-weight:600;color:#888}.cfr-steps{display:block}.cfr-step{margin-bottom:12px;padding:20px 16px;background:#f8f9fa;border-radius:12px;border:1px solid #e9ecef}.cfr-step:last-child{margin-bottom:20px}.cfr-step__head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.cfr-step__num{width:22px;height:22px;border-radius:50%;background:var(--cfr-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;font-family:var(--cfr-font-heading);flex-shrink:0;transition:background .2s}.cfr-step__num--done{background:var(--cfr-success)}.cfr-step__title{margin:0;font-size:13px;font-weight:800;color:var(--cfr-ink);font-family:var(--cfr-font-heading);text-transform:uppercase;letter-spacing:.5px}.cfr-step__title:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-step__slot{margin-left:auto;display:inline-flex;align-items:center}.cfr-step__slot:empty{display:none}.cfr-error{margin:0 16px var(--fortee-space-4);border:var(--fortee-border-width) solid var(--fortee-border-danger);border-radius:var(--fortee-radius-md);background:var(--fortee-danger-surface);padding:var(--fortee-space-3);color:var(--fortee-text);font-size:var(--fortee-text-sm)}.cfr-error[hidden]{display:none}.cfr-error:not([hidden]){display:flex;align-items:center;gap:var(--fortee-space-3)}.cfr-error__text{flex:1 1 auto}.cfr-error__dismiss{flex:0 0 auto;min-height:var(--fortee-tap-min);min-width:var(--fortee-tap-min);padding:0 var(--fortee-space-2);border:var(--fortee-border-width) solid var(--fortee-border-ink);border-radius:var(--fortee-radius-sm);background:var(--fortee-surface);color:var(--fortee-text);font-family:var(--cfr-font-body);font-size:var(--fortee-text-sm);cursor:pointer}.cfr-error__dismiss:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}@media(prefers-reduced-motion:reduce){.cfr-builder{scroll-behavior:auto}.cfr-tier,.cfr-button,.cfr-step__num{transition:none}}.cfr-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border:none;border-radius:12px;background:var(--cfr-primary);color:#fff;font-family:var(--cfr-font-body);font-size:16px;font-weight:600;cursor:pointer;transition:background .2s,box-shadow .2s}.cfr-button:hover{background:var(--fortee-blue-hover, #0084db)}.cfr-button:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-button[disabled]{opacity:.55;cursor:not-allowed}.cfr-button--upload{padding:32px 20px;min-height:0}.cfr-button__icon{width:18px;height:18px;flex:0 0 auto;display:block}.cfr-cta{width:100%;min-height:48px;padding:12px 20px;border:none;border-radius:var(--fortee-radius-lg, 14px);background:linear-gradient(135deg,var(--cfr-primary),#0070c0);color:#fff;font-size:15px;font-weight:800;font-family:var(--cfr-font-heading);letter-spacing:.5px;text-transform:uppercase;box-shadow:0 4px 12px color-mix(in srgb,var(--cfr-primary) 30%,transparent);touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:all .2s}.cfr-cta:hover{background:linear-gradient(135deg,var(--cfr-primary),#0070c0);box-shadow:0 6px 16px color-mix(in srgb,var(--cfr-primary) 40%,transparent)}.cfr-cta[disabled],.cfr-cta--blocked{background:#e5e7eb;color:#999;box-shadow:none}.cfr-cta[disabled]{cursor:not-allowed}.cfr-note{margin:var(--fortee-space-2) 0 0;color:var(--fortee-text-secondary);font-size:var(--fortee-text-sm)}.cfr-lead{margin:0 0 var(--fortee-space-4);max-width:var(--fortee-measure);color:var(--fortee-text-secondary);font-size:var(--fortee-text-sm)}.cfr-tiers{display:grid;grid-template-columns:1fr;gap:var(--fortee-space-2)}.cfr-tier{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--fortee-space-half);min-width:0;min-height:var(--fortee-tap-min);padding:var(--fortee-space-3);border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:var(--fortee-text);font-family:var(--cfr-font-body);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.cfr-tier:hover{border-color:var(--fortee-border-strong)}.cfr-tier:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-tier--selected{border-color:var(--cfr-primary);background:#f0f9ff;box-shadow:0 0 0 2px var(--cfr-primary)}.cfr-tier__qty{max-width:100%;font-family:var(--cfr-font-heading);font-size:var(--fortee-text-lg);font-weight:var(--fortee-weight-display);line-height:var(--fortee-leading-tight);overflow-wrap:anywhere}.cfr-tier__total{max-width:100%;font-size:var(--fortee-text-base);font-weight:var(--fortee-weight-semibold);overflow-wrap:anywhere}.cfr-tier__unit{max-width:100%;color:var(--fortee-text-secondary);font-family:var(--fortee-font-mono);font-size:var(--fortee-text-sm);overflow-wrap:anywhere}.cfr-tier__check{position:absolute;top:var(--fortee-space-1);right:var(--fortee-space-2);color:var(--cfr-primary);font-size:var(--fortee-text-sm);opacity:0}.cfr-tier--selected .cfr-tier__check{opacity:1}.cfr-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.cfr-search{display:flex;gap:var(--fortee-space-2);margin-bottom:var(--fortee-space-3)}.cfr-search__input{flex:1 1 auto;min-width:0;min-height:var(--fortee-tap-min);padding:0 var(--fortee-space-3);border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:var(--fortee-text);font-family:var(--cfr-font-body);font-size:var(--fortee-text-base)}.cfr-search__input:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-search__clear{flex:0 0 auto;min-height:var(--fortee-tap-min);min-width:var(--fortee-tap-min);padding:0 var(--fortee-space-3);border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:var(--fortee-text);font-family:var(--cfr-font-body);font-size:var(--fortee-text-sm);cursor:pointer}.cfr-search__clear:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-scents__group+.cfr-scents__group{margin-top:var(--fortee-space-4)}.cfr-scents__title,.cfr-shapes__title,.cfr-colours__title{margin:0 0 var(--fortee-space-2);color:var(--cfr-ink);font-family:var(--cfr-font-heading);font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.cfr-scents__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--fortee-space-2)}.cfr-scent{min-height:var(--fortee-tap-min);padding:var(--fortee-space-2);border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:var(--fortee-text);font-family:var(--cfr-font-body);font-size:var(--fortee-text-sm);min-width:0;overflow-wrap:anywhere;cursor:pointer;transition:border-color .15s,box-shadow .15s}.cfr-scent:hover{border-color:var(--fortee-border-strong)}.cfr-scent:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-chosen{display:flex;align-items:center;flex-wrap:wrap;gap:var(--fortee-space-2);min-height:var(--fortee-tap-min);padding:var(--fortee-space-2) var(--fortee-space-3);border:1px solid var(--cfr-primary);border-radius:8px;background:#f0f9ff;box-shadow:0 0 0 2px var(--cfr-primary)}.cfr-chosen__label{color:var(--cfr-ink);font-family:var(--cfr-font-heading);font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.cfr-chosen__value{min-width:0;overflow-wrap:anywhere;font-size:var(--fortee-text-base);font-weight:var(--fortee-weight-semibold)}.cfr-link{margin-left:auto;min-height:var(--fortee-tap-min);padding:0;border:0;background:none;color:var(--cfr-primary);font-family:var(--cfr-font-body);font-size:13px;font-weight:600;text-decoration:underline;cursor:pointer}.cfr-step__slot .cfr-link{min-height:0}.cfr-link:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-alloc{padding:var(--fortee-space-half) var(--fortee-space-3);border:1px solid var(--cfr-primary);border-radius:8px;background:#f0f9ff;box-shadow:0 0 0 2px var(--cfr-primary)}.cfr-alloc__row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name remove" "stepper stepper" "hint hint";align-items:center;gap:var(--fortee-space-2);padding:var(--fortee-space-2) 0}.cfr-alloc__row+.cfr-alloc__row{border-top:1px solid rgba(0,154,253,.25)}.cfr-alloc__name{grid-area:name;min-width:0;overflow-wrap:anywhere;font-size:var(--fortee-text-base);font-weight:var(--fortee-weight-semibold)}.cfr-alloc__remove{grid-area:remove;margin-left:0}.cfr-alloc__stepper{grid-area:stepper;display:flex;align-items:center;gap:var(--fortee-space-2)}.cfr-step-btn{flex:0 0 auto;width:var(--fortee-tap-min);height:var(--fortee-tap-min);padding:0;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:var(--cfr-ink);font-family:var(--cfr-font-heading);font-size:18px;font-weight:800;line-height:1;cursor:pointer;transition:border-color .15s,box-shadow .15s}.cfr-step-btn:hover:not([disabled]){border-color:var(--fortee-border-strong)}.cfr-step-btn:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-step-btn[disabled]{opacity:.4;cursor:not-allowed}.cfr-alloc__units{flex:1 1 auto;min-width:0;text-align:center;font-family:var(--cfr-font-heading);font-size:14px;font-weight:800;white-space:nowrap}.cfr-alloc__hint{grid-area:hint;color:var(--fortee-text-secondary);font-size:var(--fortee-text-sm)}.cfr-alloc__total{margin:var(--fortee-space-3) 0;font-family:var(--cfr-font-heading);font-size:13px;font-weight:800;letter-spacing:.3px}.cfr-alloc__total--exact{color:var(--cfr-success)}.cfr-alloc__total--off{color:var(--fortee-warning-ink)}.cfr-alloc__gate{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fortee-space-2)}.cfr-alloc__gate-text{flex:1 1 12rem;min-width:0;color:var(--fortee-text-secondary);font-size:var(--fortee-text-sm)}@media(min-width:480px){.cfr-alloc__row{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name stepper remove" "hint hint hint"}.cfr-alloc__units{flex:0 0 auto;min-width:5.5rem}}.cfr-upload{padding:0;border:0;border-radius:0;background:none}.cfr-upload--over{outline:2px dashed var(--cfr-primary);outline-offset:6px;border-radius:12px;background:#f0f9ff}.cfr-note--error{color:var(--fortee-danger)}.cfr-artwork{display:flex;align-items:center;gap:var(--fortee-space-3);margin-top:var(--fortee-space-3);padding:var(--fortee-space-2);border:1px solid #e5e7eb;border-radius:8px;background:#fff}.cfr-artwork__thumb{flex:0 0 auto;width:var(--fortee-space-8);height:var(--fortee-space-8);object-fit:contain;background:var(--fortee-paper);border-radius:var(--fortee-radius-sm)}.cfr-artwork__meta{display:flex;flex-direction:column;min-width:0}.cfr-artwork__name{overflow:hidden;font-size:var(--fortee-text-sm);text-overflow:ellipsis;white-space:nowrap}.cfr-artwork__size{color:var(--fortee-text-secondary);font-family:var(--fortee-font-mono);font-size:var(--fortee-text-xs)}.cfr-later{background:#fff8f0;border:1.5px solid #f59e0b;border-radius:8px;padding:12px 16px;display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:14px;margin-top:12px;font-family:var(--cfr-font-body);color:#92400e}.cfr-later--confirmed{background:#d1fae5;border-color:#6ee7b7;color:#065f46}.cfr-later__prompt{margin:0}.cfr-later .cfr-link{margin-left:0;min-height:0;font-size:14px;font-weight:600;color:#009afd}.cfr-later .cfr-note{margin:0;color:inherit;font-size:14px}.cfr-shapes,.cfr-colours{margin-top:var(--fortee-space-4)}.cfr-shapes__list,.cfr-colours__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--fortee-space-2)}.cfr-shape,.cfr-colour{min-height:var(--fortee-tap-min);padding:var(--fortee-space-2);border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:var(--fortee-text);font-family:var(--cfr-font-body);font-size:var(--fortee-text-sm);min-width:0;overflow-wrap:anywhere;cursor:pointer;transition:border-color .15s,box-shadow .15s}.cfr-shape:focus-visible,.cfr-colour:focus-visible{outline:none;box-shadow:var(--fortee-focus-ring)}.cfr-shape--selected,.cfr-colour--selected,.cfr-scent--selected{border-color:var(--cfr-primary);background:#f0f9ff;box-shadow:0 0 0 2px var(--cfr-primary);font-weight:var(--fortee-weight-semibold)}.cfr-shape--disabled,.cfr-scent--disabled{opacity:.5;cursor:not-allowed}.cfr-note--warn{color:var(--fortee-warning-ink)}.cfr-stage-host{width:100%}.cfr-stage{width:100%;max-width:320px;margin:0 auto;border-radius:var(--fortee-radius-lg, 12px);background:var(--fortee-surface-sunken, #f9fafb);aspect-ratio:1 / 1}.cfr-stage__canvas{display:block;width:100%;height:100%}.cfr-stage-host .cfr-note{margin:8px 16px 0;text-align:center}.cfr-review{margin-bottom:var(--fortee-space-4);border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:var(--fortee-space-3)}.cfr-review__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--fortee-space-3);padding:var(--fortee-space-2) 0;border-bottom:var(--fortee-border-width) solid var(--fortee-keyline)}.cfr-review__row:last-child{border-bottom:0}.cfr-review__label{color:var(--fortee-text-secondary);font-size:var(--fortee-text-sm)}.cfr-review__value{min-width:0;overflow-wrap:anywhere;font-size:var(--fortee-text-base);font-weight:var(--fortee-weight-semibold);text-align:right}.cfr-review__value--list{display:flex;flex-direction:column;gap:2px}.cfr-review__line{display:block}.cfr-review__row--total .cfr-review__label,.cfr-review__row--total .cfr-review__value{font-family:var(--cfr-font-heading);font-size:var(--fortee-text-lg);font-weight:var(--fortee-weight-display);color:var(--fortee-text)}.cfr-sticky{position:sticky;bottom:0;z-index:var(--fortee-z-sticky);display:flex;align-items:center;gap:12px;margin:var(--fortee-space-5) 0 0;padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom));border-top:1px solid #e2e8f0;background:#fff;box-shadow:0 -2px 10px #00000014}.cfr-sticky__total{font-family:var(--cfr-font-heading);font-size:15px;font-weight:800;color:var(--cfr-ink);white-space:nowrap}@media(min-width:480px){.cfr-tiers{grid-template-columns:repeat(2,minmax(0,1fr))}.cfr-scents__list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:750px){.cfr-sticky{display:none}}@media(min-width:1024px){.cfr-editor{flex-direction:row;gap:40px;max-width:1200px;margin:0 auto;padding:0 24px 32px}.cfr-image{flex:0 0 52%;max-width:620px;position:sticky;top:24px;align-self:flex-start;height:fit-content}.cfr-image-sticky{position:static;max-height:none;box-shadow:none}.cfr-stage{max-width:480px}.cfr-config{flex:1;min-width:0;padding:0 0 80px;overflow-wrap:break-word;word-wrap:break-word}.cfr-error{max-width:1200px;margin:0 auto var(--fortee-space-4)}.cfr-product-name{font-size:28px}.cfr-price-current{font-size:32px}}
/*# sourceMappingURL=/cdn/shop/t/33/assets/fortee-car-freshener.css.map */
