.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);vertical-align:middle;border-radius:50%;flex-shrink:0;width:22px;height:22px;animation:.7s linear infinite spinner-rotate;display:inline-block}.spinner--sm{border-width:2px;width:16px;height:16px}.spinner--on-primary{border-color:#fff #ffffff59 #ffffff59}@keyframes spinner-rotate{to{transform:rotate(360deg)}}
.btn{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;transition:var(--transition);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 28px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}@media (hover:hover) and (pointer:fine){.btn:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #d32f2f4d}}.btn:active{transform:translateY(0)scale(.98);box-shadow:0 2px 6px #d32f2f40}.btn:focus-visible{box-shadow:inset 0 0 0 2px #fff,0 0 0 3px var(--color-primary);outline:none}.btn--large{padding:14px 36px;font-size:16px}.btn--full{width:100%}.btn--small{padding:8px 16px;font-size:13px}.btn--outline{border:2px solid var(--color-primary);color:var(--color-primary);background:0 0}@media (hover:hover) and (pointer:fine){.btn--outline:hover{background:var(--color-primary);color:#fff}}.btn--outline:active{background:var(--color-primary);color:#fff}.btn--secondary{background:#d84315}@media (hover:hover) and (pointer:fine){.btn--secondary:hover{background:#bf360c}}.btn--secondary:active{background:#bf360c}.btn--disabled,.btn:disabled{background:var(--color-bg-alt);color:var(--color-text-light);border-color:var(--color-border);opacity:1;cursor:not-allowed;box-shadow:none;transform:none}
.form-input{border-radius:var(--radius-sm);width:100%;transition:var(--transition);background:var(--color-bg-alt);border:none;padding:12px 16px;font-size:14px;box-shadow:inset 0 1px 3px #0000000f}.form-input::placeholder{color:var(--color-text-light)}.form-input:focus{background:var(--color-bg);outline:none;box-shadow:inset 0 1px 3px #0000000a}.form-input:focus-visible{box-shadow:inset 0 1px 3px #0000000a,0 0 0 3px #d32f2f59}.form-input:disabled{background:var(--color-bg-alt);color:var(--color-text-light);opacity:.7;cursor:not-allowed}.form-input--error{background:#d32f2f0a;box-shadow:inset 0 1px 3px #0000000f,0 0 0 2px #d32f2f4d}
.popup{opacity:0;visibility:hidden;z-index:2100;justify-content:center;align-items:center;transition:opacity .35s cubic-bezier(.4,0,.2,1),visibility .35s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;inset:0}.popup.active{opacity:1;visibility:visible}.popup__overlay{cursor:pointer;background:#0009;border:none;padding:0;position:absolute;inset:0}:where(.popup__content){background:var(--color-bg);border-radius:var(--radius-lg);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;width:90%;max-width:440px;max-height:90dvh;padding:40px 32px 36px;transition:transform .4s cubic-bezier(.34,1.56,.64,1);position:relative;overflow-y:auto;transform:translateY(16px)scale(.96);box-shadow:0 20px 60px #00000026,0 0 0 1px #0000000a}.popup__content:before{content:"";background:var(--color-primary);border-radius:0 0 4px 4px;width:48px;height:3px;position:absolute;top:0;left:50%;translate:-50%}.popup__content--wide{max-width:700px}.popup.active .popup__content{transform:translateY(0)scale(1)}.popup__close{color:var(--color-text-light);width:40px;height:40px;transition:var(--transition);z-index:1;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px}@media (hover:hover) and (pointer:fine){.popup__close:hover{color:var(--color-primary);background:#0000000f}}.popup__close:active{color:var(--color-primary);background:#0000001a}.popup__title{text-align:center;margin:0;font-size:22px;font-weight:700}.popup__subtitle{color:var(--color-text-light);text-align:center;margin:6px 0 0;font-size:14px}.popup__form{flex-direction:column;gap:14px;margin-top:24px;display:flex}.popup__content--delivery{width:min(98vw,1100px);max-width:1100px;overflow-x:visible}@media (max-width:768px){.popup:has(.popup__content--options),.popup:has(.product-filter-modal),.popup:has(.popup__content--festive),.popup--staff-order{justify-content:center;align-items:flex-end}.popup--staff-order .popup__content{border-radius:20px 20px 0 0;width:100%;max-width:none;max-height:92dvh}}
.checkout__validation{color:var(--color-primary);font-size:13px;font-weight:600;line-height:1.5}.checkout__validation--summary{margin-top:12px}.checkout__validation--zone{font:inherit;text-align:left;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;text-decoration:underline}.checkout__validation--zone:hover{color:var(--color-dark)}.checkout__address-notice{color:var(--color-dark);background:#c628280f;border:1px solid #c628281f;border-radius:10px;margin:0 0 10px;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.5}.checkout__zone-btn{font:inherit;color:var(--color-primary);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:600;line-height:1.5;text-decoration:underline;display:inline-flex}.checkout__zone-btn:hover{color:var(--color-dark)}.checkout__field-error{color:var(--color-primary);margin:6px 0 0;font-size:12px;font-weight:600}.checkout__field-hint{color:var(--color-muted,#8d6e63);margin:6px 0 0;font-size:12px;line-height:1.4}.checkout__address-badges{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.checkout__address-badge-btn{border:1px solid var(--color-border,#e0e0e0);background:var(--color-bg,#fff);color:var(--color-text-muted,#666);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:700;line-height:1.4;display:inline-flex}.checkout__address-badge-btn:hover{border-color:var(--color-primary,#d32f2f);color:var(--color-primary,#d32f2f)}.checkout__address-badge-btn.is-active{border-color:var(--color-primary,#d32f2f);color:var(--color-primary,#d32f2f);cursor:default;background:#d32f2f14}.checkout-address-mode{border:1px solid var(--color-border,#ddd);background:#fff;border-radius:999px;align-items:center;gap:3px;width:100%;margin-bottom:10px;padding:3px;display:flex}.checkout-address-mode__tab{color:var(--color-text-light,#666);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:999px;flex:50%;padding:7px 10px;font-size:12px;font-weight:700;line-height:1.2}.checkout-address-mode__tab:hover{color:var(--color-primary,#d32f2f);background:#d32f2f14}.checkout-address-mode__tab.is-active{background:var(--color-primary,#d32f2f);color:#fff}.checkout-address-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0;display:grid}.checkout-address-grid--top,.checkout-address-grid--middle{grid-template-columns:repeat(2,minmax(0,1fr))}.checkout-address-grid--bottom{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:980px){.checkout-address-grid--bottom{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.checkout-address-grid--top,.checkout-address-grid--middle,.checkout-address-grid--bottom,.checkout-address-grid{grid-template-columns:1fr}}.checkout-address-sync{background:var(--color-bg-alt,#f5f5f5);border-radius:8px;margin-top:10px;padding:10px 12px;font-size:13px;line-height:1.45}.checkout-address-sync--synced{background:#2e7d3214}.checkout-address-sync--failed{background:#d32f2f14}.checkout-address-sync--hint{background:var(--color-bg-alt,#f5f5f5)}.checkout-address-sync--manual{background:#ff980014}.checkout-address-sync__text{color:var(--color-text,#222);margin:0}.checkout-address-sync__action{color:var(--color-primary,#d32f2f);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-weight:600;text-decoration:underline}.checkout-address-sync__actions{flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:8px;display:flex}.checkout-address-sync__manual{font:inherit;cursor:pointer;align-items:center;gap:8px;margin:0;display:inline-flex}.checkout-address-sync__manual input{margin:0}.checkout-summary-meta__row--hint strong{color:var(--color-text-light,#777);font-weight:600}.checkout{grid-template-columns:1fr 360px;align-items:start;gap:32px;display:grid}.checkout__form{flex-direction:column;gap:16px;display:flex}.checkout__mode-note{border-radius:var(--radius-sm);background:var(--color-bg-alt);flex-direction:column;gap:4px;padding:14px 16px;font-size:13px;line-height:1.5;display:flex}.checkout__mode-note strong{color:var(--color-dark);font-size:14px}.checkout__summary{background:var(--color-bg-alt);border-radius:var(--radius);padding:24px;position:sticky;top:20px}.checkout__summary h3{margin:0 0 16px;font-size:16px}.checkout__total{border-top:2px solid var(--color-border);justify-content:space-between;margin-top:16px;padding-top:16px;font-size:18px;font-weight:700;display:flex}.checkout__total strong{color:var(--color-primary)}.checkout__total-note{color:var(--color-text-light);text-align:right;margin:6px 0 0;font-size:13px}.checkout__success{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.checkout__success-icon-wrap{background:radial-gradient(circle,#2e7d322e 0%,#2e7d3214 55%,#2e7d3200 100%),linear-gradient(#2e7d321f 0%,#2e7d322e 100%);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:inline-flex;box-shadow:0 12px 24px #2e7d321f,inset 0 0 0 1px #2e7d321f}.checkout__success-icon{color:var(--color-success)}.checkout__success-kicker{background:var(--header-accent-soft);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);border-radius:999px;margin:0;padding:6px 12px;font-size:11px;font-weight:700;line-height:1.2}.checkout__success-title{color:var(--color-dark);margin:0;font-size:28px;font-weight:800;line-height:1.15}.checkout__success-text{max-width:320px;color:var(--color-text-light);margin:0;font-size:15px;line-height:1.6}.checkout__success-text span{white-space:nowrap;font-weight:700}.checkout__success-bonus{color:var(--color-primary);background:#c628280d;border:1px solid #c6282824;border-radius:12px;margin:0;padding:10px 14px;font-size:14px;font-weight:600;line-height:1.5}.checkout__success-feedback{background:#c628280a;border:1px solid #c628281f;border-radius:14px;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:320px;padding:14px 16px;display:flex}.checkout__success-feedback-text{color:var(--color-text-light);margin:0;font-size:13px;line-height:1.5}.checkout__success-feedback-link{color:var(--color-primary);text-underline-offset:3px;font-size:14px;font-weight:700;line-height:1.4;text-decoration:underline}.checkout__success-feedback-link:hover{color:var(--color-dark)}.checkout__modal-content{padding-top:32px;overflow:hidden}.checkout__consent a,.checkout__marketing a{color:var(--color-primary);text-decoration:underline}.checkout-summary-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:8px 0;font-size:13px;display:flex}.checkout-summary-item__name{flex:1}.checkout-summary-item__qty{color:var(--color-text-light);margin:0 12px}.checkout-summary-item__price{flex-direction:column;align-items:flex-end;font-weight:600;display:flex}.checkout-summary-item__old-price{color:var(--color-text-light);margin-bottom:2px;font-size:11px;font-weight:500;text-decoration:line-through}.checkout-summary-accordion{border-bottom:1px solid var(--color-border);margin-bottom:16px;padding-bottom:16px}.checkout-summary-accordion__toggle{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:700;list-style:none;display:flex}.checkout-summary-accordion__toggle::-webkit-details-marker{display:none}.checkout-summary-accordion__head{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.checkout-summary-accordion__title{color:var(--color-dark);font-size:13px;font-weight:700}.checkout-summary-accordion__meta{color:var(--color-text-light);font-size:12px;font-weight:600}.checkout-summary-accordion__chevron{width:10px;height:10px;transition:transform var(--transition);color:var(--color-text-light);border-bottom:2px solid;border-right:2px solid;flex:none;margin-right:2px;transform:rotate(45deg)}.checkout-summary-accordion[open] .checkout-summary-accordion__chevron{transform:rotate(225deg)}.checkout-summary-accordion__body{padding-top:12px}.checkout-summary-meta{flex-direction:column;gap:10px;margin-top:16px;display:flex}.checkout-summary-meta__row{justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.checkout-summary-meta__picker{margin-top:2px}.checkout-summary-meta__row--gift{color:var(--color-dark)}.checkout-summary-meta__row--gift strong{color:var(--color-primary)}.checkout-summary-meta__value--free{color:var(--color-success)}.checkout-summary-meta__value--muted{color:var(--color-text-light);font-weight:500}.checkout-summary-controls{border-bottom:1px solid var(--color-border);flex-direction:column;gap:10px;margin-bottom:16px;padding-bottom:16px;display:flex}.checkout-summary-controls__label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-light);font-size:12px;font-weight:700}.checkout-summary-controls__hint{color:var(--color-text-light);margin:0;font-size:12px;line-height:1.5}.checkout-summary-controls__notice{color:var(--color-dark);background:#c628280f;border:1px solid #c628281f;border-radius:10px;margin:0;padding:10px 12px;font-size:12px;font-weight:600;line-height:1.5}.checkout-summary-controls__upsell{margin:0}.checkout-summary__free-delivery-note{color:var(--color-dark);background:#edeff2;border-radius:8px;margin:10px 0 8px;padding:10px 12px;font-size:12px;line-height:1.5}.checkout-summary__free-delivery-note--highlight{color:var(--color-success);font-weight:600}.checkout-summary-promo{border-top:1px solid var(--color-border);flex-direction:column;gap:6px;margin-top:16px;padding-top:16px;display:flex}.checkout-summary-promo label{color:var(--color-dark);font-size:13px;font-weight:600}.checkout-summary-promo__row{gap:10px;display:flex}.checkout-summary-promo__row .form-input{flex:auto;min-width:0}.checkout-summary-promo__btn{white-space:nowrap;flex:none;padding:12px 18px}.checkout-summary-promo__message{margin:0;font-size:13px;line-height:1.5}.checkout-summary-promo__message--success{color:var(--color-success,#2e7d32)}.checkout-summary-promo__message--error{color:var(--color-primary)}.checkout-zone-picker{border-radius:var(--radius-sm);background:var(--color-bg-alt);cursor:pointer;width:100%;transition:var(--transition);text-align:left;border:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;box-shadow:inset 0 1px 3px #0000000f}.checkout-zone-picker:hover{background:var(--header-accent-soft)}.checkout-zone-picker.is-selected{background:var(--header-accent-soft);box-shadow:inset 0 1px 3px #0000000a,0 0 0 2px var(--header-accent-soft)}.checkout-zone-picker--error{background:#d32f2f0a;box-shadow:inset 0 1px 3px #0000000f,0 0 0 2px #d32f2f4d}.checkout-zone-picker__label{color:var(--color-text);font-size:14px}.checkout-zone-picker__action{color:var(--header-accent);flex-shrink:0;font-size:13px;font-weight:600}.checkout-zone-picker__info{color:var(--color-text-muted,#666);font-weight:700}.delivery-zone-popup{flex-direction:column;min-height:100%;display:flex}.delivery-zone-popup__title{margin:0 0 8px;font-size:22px}.delivery-zone-popup__text{color:var(--color-text-muted,#666);margin:0 0 16px;font-size:14px;line-height:1.6}.delivery-zone-popup__map{border-radius:12px;margin-bottom:16px;overflow:hidden}.delivery-zone-popup__map .delivery-map{border:0;width:100%;height:320px;display:block}.delivery-zone-popup__unavailable{color:var(--color-primary);background:#c6282814;border:1px solid #c6282824;border-radius:10px;margin:0 0 10px;padding:12px 14px;font-size:13px;line-height:1.5}.delivery-zone-popup__footer{background:var(--color-bg);z-index:1;margin-top:auto;padding:12px 0 0;position:sticky;bottom:-10px}@media (max-width:768px){.popup.delivery-zone-modal .popup__content{border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:100dvh;padding:24px 16px 20px}}.popup__content--delivery{width:min(98vw,1100px);max-width:1100px;overflow-x:visible}.delivery-zones-legend{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:24px;display:grid}@media (max-width:900px){.delivery-zones-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}.delivery-zones-legend--modal{margin-bottom:16px}.delivery-zones-legend__item{border:1px solid var(--color-border,#e8e8e8);text-align:left;cursor:pointer;min-width:0;height:100%;transition:var(--transition);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.delivery-zones-legend__item:hover,.delivery-zones-legend__item.is-active{border-color:var(--header-accent);box-shadow:0 6px 20px #ff68381f}.delivery-zones-legend__item.is-active{background:var(--header-accent-soft)}.delivery-zones-legend__item--free.is-active{background:#7cb3421f;border-color:#7cb342;box-shadow:0 6px 20px #7cb34229}.delivery-zones-legend__item.is-disabled,.delivery-zones-legend__item:disabled{cursor:not-allowed;opacity:.62}.delivery-zones-legend__item.is-disabled:hover,.delivery-zones-legend__item:disabled:hover{border-color:var(--color-border,#e8e8e8);box-shadow:none}.delivery-zones-legend__number{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:700;line-height:1;display:flex}.delivery-zones-legend__body{width:100%;min-width:0}.delivery-zones-legend__order-name{color:var(--color-text,#222);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:13px;font-weight:600;display:block;overflow:hidden}.delivery-zones-legend__meta-line{color:var(--color-text-muted,#666);font-size:12px;line-height:1.35;display:block}@media (max-width:1024px){.checkout{grid-template-columns:1fr}.checkout__summary{order:-1;position:static}.checkout__form{order:1}}@media (max-width:560px){.checkout__summary{padding:18px}.checkout-summary-item{align-items:flex-start;gap:8px}.checkout-summary-item__name{min-width:0}.checkout-summary-item__qty{margin:0 0 0 auto}.checkout-summary-promo__row{flex-direction:column}.checkout-summary-promo__btn{width:100%}.checkout__success-title{font-size:24px}}.checkout__auth{text-align:center;margin-top:16px}.checkout__auth-note{color:var(--color-gray,#777);margin:0 0 8px;font-size:13px;line-height:1.5}.checkout__auth-login-btn{font:inherit;color:var(--color-primary);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:600;line-height:1.5;text-decoration:underline;display:inline-flex}.checkout__auth-login-btn:hover{color:var(--color-dark)}.checkout__submit-actions{flex-direction:column;gap:12px;display:flex}.checkout__legal-note{color:var(--color-text-muted,#666);margin:0;font-size:12px;line-height:1.5}.checkout__legal-note a{color:inherit;text-underline-offset:2px;text-decoration:underline}.checkout__legal-note a:hover{color:var(--color-primary)}.checkout__submit-cancel{font:inherit;color:var(--color-text-muted,#666);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:center;padding:0;font-size:13px;font-weight:600;line-height:1.5;text-decoration:underline}.checkout__submit-cancel:hover{color:var(--color-primary)}.checkout__submit-error{border-radius:var(--radius-sm);color:#b71c1c;background:#d32f2f0f;border:1px solid #d32f2f33;padding:10px 14px;font-size:13px;line-height:1.5}.checkout__submit-error-text{margin:0 0 8px}.checkout__submit-retry{font:inherit;color:var(--color-primary);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-items:center;padding:0;font-size:13px;font-weight:600;line-height:1.5;text-decoration:underline;display:inline-flex}.checkout__submit-retry:hover{color:var(--color-dark)}.checkout__offline-note{color:var(--color-text-muted,#666);margin:0;font-size:13px;line-height:1.5}
.project-image{background:var(--color-bg-alt);line-height:0;display:block;position:relative;overflow:hidden}.project-image__img{vertical-align:top;transition:opacity .24s ease,transform var(--transition);display:block}.project-image__state{opacity:0;pointer-events:none;background-color:#f4efe8;background-image:linear-gradient(90deg,#fff0 0%,#ffffff47 50%,#fff0 100%),none;background-position:-200% 0,50%;background-repeat:no-repeat;background-size:200% 100%,100% 100%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;transition:opacity .24s;position:absolute;inset:0}.project-image--loading .project-image__img{opacity:0}.project-image--loading .project-image__state{opacity:.85;animation:1.7s ease-in-out infinite project-image-shimmer}@keyframes project-image-shimmer{0%{background-position:-200% 0,50%}to{background-position:200% 0,50%}}
.ui-switch{background:var(--color-bg-alt);border-radius:var(--radius);justify-content:start;align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.ui-switch__content{gap:4px;min-width:0;display:grid}.ui-switch__label{color:var(--color-text);margin:0;font-size:14px;font-weight:600;line-height:1.4}.ui-switch__description{color:var(--color-text-light);margin:0;font-size:13px;line-height:1.5}.ui-switch__control{cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0}.ui-switch__track{background:#d7d7d7;border-radius:999px;align-items:center;width:46px;height:28px;padding:3px;transition:background .2s;display:inline-flex;position:relative}.ui-switch__thumb{background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;box-shadow:0 2px 6px #00000024}.ui-switch__control:focus-visible .ui-switch__track{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 3px #d32f2f40}.ui-switch__control:active .ui-switch__track{opacity:.85}.ui-switch.is-checked .ui-switch__track{background:var(--color-primary)}.ui-switch.is-checked .ui-switch__thumb{transform:translate(18px)}.ui-switch.is-disabled{opacity:.6}.ui-switch.is-disabled .ui-switch__control{cursor:not-allowed}.ui-switch--reverse{flex-direction:row-reverse}.ui-switch--compact{border-radius:var(--radius-sm);gap:10px;padding:8px 10px}.ui-switch--compact .ui-switch__label{font-size:13px;line-height:1.35}.ui-switch--compact .ui-switch__description{font-size:12px;line-height:1.4}.ui-switch--compact .ui-switch__track{width:40px;height:24px;padding:2px}.ui-switch--compact .ui-switch__thumb{width:20px;height:20px}.ui-switch--compact.is-checked .ui-switch__thumb{transform:translate(16px)}@media (max-width:480px){.ui-switch{padding:12px 14px}}
