/* Cookie notice / consent banner and legal pages. Palette B2. */
.consent-banner{position:fixed;left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:60;max-width:980px;margin:0 auto;border:1px solid rgba(41,29,34,.16);border-radius:18px;background:#fffaf4;color:#291d22;box-shadow:0 14px 40px rgba(41,29,34,.22);font-family:Inter,system-ui,sans-serif}
.consent-inner{display:flex;align-items:center;gap:24px;padding:18px 22px}
.consent-copy{flex:1;min-width:0}
.consent-copy h2{margin:0 0 6px;font-family:'Barlow Condensed',Impact,sans-serif;font-size:24px;font-weight:800;line-height:1.1}
.consent-copy p{margin:0;font-size:14px;line-height:1.55}
.consent-copy .consent-links{margin-top:6px;font-size:14px}
.consent-copy a{color:#291d22;font-weight:600;text-underline-offset:3px}
.consent-actions{display:flex;flex-wrap:wrap;gap:10px;flex:none}
.consent-button{min-height:46px;min-width:140px;padding:0 20px;border:1.5px solid #291d22;border-radius:12px;background:#291d22;color:#fff4e8;font:inherit;font-size:15px;font-weight:650;cursor:pointer}
.consent-button:hover{background:#3d2b31}
.consent-button.ghost{background:transparent;color:#291d22}
.consent-button.ghost:hover{background:#fde4d6}
.consent-button:focus-visible,.consent-copy a:focus-visible{outline:3px solid #f04432;outline-offset:2px}
.consent-options{display:grid;gap:8px;margin:12px 0 0;padding:0;border:0}
.consent-options legend{font-weight:700;margin-bottom:6px}
.consent-options label{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.consent-options input{width:20px;height:20px;margin-top:2px;accent-color:#f04432}
.consent-options small{display:block;color:#6b5d61;font-size:13px}
@media(max-width:700px){
  .consent-banner{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));border-radius:16px}
  .consent-inner{flex-direction:column;align-items:stretch;gap:12px;padding:16px}
  .consent-copy h2{font-size:22px}
  .consent-actions{flex-direction:column}
  .consent-button{width:100%}
}
/* Footer links to legal pages */
.legal-links{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px}
.legal-links a,.legal-links button{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:32px;display:inline-flex;align-items:center}
@media(max-width:600px){.site-footer{flex-wrap:wrap;row-gap:8px}.legal-links{order:3;width:100%}}
/* Legal documents */
.legal-main{max-width:860px;margin:0 auto;padding:28px var(--page-gutter,20px) 70px}
.legal-main h1{font-family:var(--display,'Barlow Condensed',sans-serif);font-size:clamp(40px,6vw,60px);line-height:1;margin:10px 0 8px}
.legal-main h2{font-family:var(--display,'Barlow Condensed',sans-serif);font-size:28px;margin:34px 0 10px;line-height:1.1}
.legal-main h3{font-size:18px;margin:22px 0 8px}
.legal-main p,.legal-main li{font-size:16px;line-height:1.65}
.legal-main ul,.legal-main ol{padding-left:22px}
.legal-meta{color:#6b5d61;font-size:14px!important}
.legal-draft{margin:16px 0 24px;padding:14px 18px;border-radius:12px;background:#ffe8b7;font-size:15px!important;line-height:1.55}
.legal-todo{background:#fde0dc;border-radius:4px;padding:0 4px;font-weight:600}
.legal-table-wrap{overflow-x:auto;margin:12px 0;border:1px solid rgba(41,29,34,.14);border-radius:12px}
.legal-table{width:100%;border-collapse:collapse;font-size:14px}
.legal-table th,.legal-table td{padding:10px 12px;text-align:left;vertical-align:top;border-top:1px solid rgba(41,29,34,.12)}
.legal-table th{background:#fdf1e6;border-top:0;white-space:nowrap}
.legal-main .button{display:inline-flex}
/* Terms checkbox (registration) and checkout legal note */
.terms-check{display:flex!important;gap:10px;align-items:flex-start;font-size:14px;font-weight:400;line-height:1.5}
.terms-check input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:#f04432}
.terms-check a,.checkout-legal a{color:inherit;font-weight:600;text-underline-offset:3px}
.checkout-legal{margin:14px 0 0}
body.has-consent-banner .mobile-cart-bar,body.has-consent-banner .basket-mobile-bar{display:none}
.pn-dialog .legal-links{margin:0 0 14px}
.legal-home{display:inline-flex;align-items:center;min-height:44px;color:#291d22;font-size:15px;font-weight:600;text-underline-offset:4px}
.terms-check input[type=checkbox]{height:20px!important;min-height:0!important;width:20px!important;padding:0!important}
/* One-time logo intro (intro.js). Content stays hidden only until the overlay exists; the
   fallback animation reveals the page after 3.4 s even if the script stops.
   Timeline: 0–0.7 s tile springs in · 0.2–0.9 s letters C, B, Z drop in · 0.6 s spark burst ·
   0.95–1.7 s tile floods the screen · 1.2 s wordmark · 2.45 s sheet lifts away. */
html.cbz-intro-pending body{visibility:hidden;animation:cbzIntroFailsafe 0s 3.4s forwards}
@keyframes cbzIntroFailsafe{to{visibility:visible}}
html.cbz-intro-running{overflow:hidden}
.cbz-intro{--i-coral:#F04432;--i-cream:#FFF4E8;--i-sun:#FFD36A;--i-size:clamp(104px,28vw,148px);--i-words:min(76vw,420px);position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;background:var(--i-cream);visibility:visible;cursor:pointer;-webkit-tap-highlight-color:transparent;clip-path:inset(0 0 0 0 round 0);transition:clip-path .7s cubic-bezier(.76,0,.24,1)}
.cbz-intro.leaving{clip-path:inset(0 0 100% 0 round 0 0 56px 56px)}
.cbz-intro-stage{position:relative;display:grid;justify-items:center;animation:cbzIntroLift .8s 1.1s cubic-bezier(.65,0,.25,1) both}
.cbz-intro-icon{position:relative;z-index:1;width:var(--i-size);aspect-ratio:1;animation:cbzIntroPop .75s cubic-bezier(.34,1.56,.64,1) both,cbzIntroSettle .8s 1.1s cubic-bezier(.65,0,.25,1) both}
.cbz-intro-tile{position:absolute;inset:0;border-radius:28%;background:var(--i-coral);box-shadow:0 22px 44px -14px rgba(240,68,50,.6),inset 0 -6px 0 rgba(0,0,0,.06);animation:cbzIntroFill .8s .95s cubic-bezier(.7,0,.2,1) both}
.cbz-intro-letters{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.cbz-intro-letters path{fill:var(--i-cream);transform-box:fill-box;transform-origin:50% 100%;animation:cbzIntroLetter .65s cubic-bezier(.34,1.7,.5,1) both}
.cbz-intro-letters .l-c{animation-delay:.2s}
.cbz-intro-letters .l-b{animation-delay:.29s}
.cbz-intro-letters .l-z1{animation-delay:.38s}
.cbz-intro-letters .l-z2{animation-delay:.45s}
.cbz-intro-sparks{position:absolute;right:-4%;top:-4%;width:0;height:0}
.cbz-intro-sparks i{position:absolute;left:0;top:-4px;width:calc(var(--i-size)*.2);height:8px;border-radius:8px;background:var(--i-coral);transform-origin:0 50%;rotate:var(--a);opacity:0;animation:cbzIntroSpark .55s .62s cubic-bezier(.2,.8,.2,1) both}
.cbz-intro-sparks i:nth-child(1){--a:-80deg}
.cbz-intro-sparks i:nth-child(2){--a:-40deg}
.cbz-intro-sparks i:nth-child(3){--a:0deg}
.cbz-intro-words{position:absolute;top:calc(100% - 2px);left:50%;z-index:2;display:grid;justify-items:center;gap:16px;width:var(--i-words);translate:-50% 0}
.cbz-intro-mark{display:block;width:100%;aspect-ratio:3.09;background:var(--i-cream);mask:url('assets/wordmark.webp') center/contain no-repeat;-webkit-mask:url('assets/wordmark.webp') center/contain no-repeat;animation:cbzIntroWord .75s 1.2s cubic-bezier(.22,1,.36,1) both}
@keyframes cbzIntroPop{from{opacity:0;transform:scale(.35) rotate(-14deg)}to{opacity:1;transform:none}}
@keyframes cbzIntroSettle{to{scale:.82}}
@keyframes cbzIntroLetter{from{opacity:0;transform:translateY(60%) scale(.4) rotate(-12deg)}to{opacity:1;transform:none}}
@keyframes cbzIntroSpark{0%{opacity:1;transform:translateX(8px) scaleX(0)}50%{opacity:1;transform:translateX(16px) scaleX(1)}100%{opacity:0;transform:translateX(44px) scaleX(.15)}}
@keyframes cbzIntroFill{to{scale:44;border-radius:50%;box-shadow:none}}
@keyframes cbzIntroLift{to{translate:0 calc((var(--i-words) / 3.09) / -2)}}
@keyframes cbzIntroWord{from{clip-path:inset(-10% 100% -10% 0);transform:translateX(-16px) skewX(-10deg)}to{clip-path:inset(-10% -2% -10% 0);transform:none}}
/* Reduced motion: the final frame, shown briefly, then a fade. */
.cbz-intro.reduced{background:var(--i-coral)}
.cbz-intro.reduced *{animation:none!important}
.cbz-intro.reduced .cbz-intro-tile,.cbz-intro.reduced .cbz-intro-sparks{display:none}
.cbz-intro.reduced .cbz-intro-stage{translate:0 calc((var(--i-words) / 3.09) / -2)}
.cbz-intro.reduced .cbz-intro-icon{scale:.82}
.cbz-intro.reduced.leaving{clip-path:none;opacity:0;transition:opacity .2s}
/* Site footer (shared by all customer pages). Dark ink block, cream text, coral accents. */
.site-footer.cbz-footer{display:block;margin-top:40px;padding:0;border-top:0;background:#291D22;color:#FFF4E8;font-size:15px;border-radius:28px 28px 0 0}
.cbz-footer a{display:inline;color:inherit;text-decoration:none}
.cbz-footer a>.icon{transform:none}
.cbz-footer .icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.footer-top{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(4,minmax(0,1fr));gap:36px;max-width:1280px;margin:0 auto;padding:56px var(--page-gutter,24px) 40px}
.footer-logo{display:inline-block}
.footer-logo .brand-mark{width:210px;height:62px;background:#F04432}
.footer-claim{margin:14px 0 20px;max-width:30ch;font-size:16px;line-height:1.55;font-weight:400;color:rgba(255,244,232,.82)}
.cbz-footer .footer-cta{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 20px;border-radius:14px;background:#F04432;color:#fff;font-weight:650}
.cbz-footer .footer-cta:hover{background:#ff5a47}
.footer-col h2{margin:6px 0 14px;font-family:var(--display,Barlow,sans-serif);font-size:22px;font-weight:900;letter-spacing:.02em;text-transform:uppercase;color:#FFD36A}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.footer-col a{display:inline-flex;align-items:center;min-height:34px;color:rgba(255,244,232,.88)}
.footer-col a:hover,.footer-col a:focus-visible{color:#fff;text-decoration:underline;text-decoration-color:#F04432;text-decoration-thickness:2px;text-underline-offset:5px}
.footer-note{display:block;padding-top:6px;font-size:13px;color:rgba(255,244,232,.6)}
.footer-bottom{display:flex;align-items:center;gap:18px 28px;flex-wrap:wrap;max-width:1280px;margin:0 auto;padding:18px var(--page-gutter,24px) max(22px,env(safe-area-inset-bottom));border-top:1px solid rgba(255,244,232,.14);font-size:14px;color:rgba(255,244,232,.7)}
.footer-bottom p{margin:0;font-weight:500}
.cbz-footer .legal-links{flex:1;font-size:14px}
.cbz-footer .legal-links a,.cbz-footer .legal-links button{color:rgba(255,244,232,.8);text-decoration:none}
.cbz-footer .legal-links a:hover,.cbz-footer .legal-links button:hover{color:#fff;text-decoration:underline}
.cbz-footer #back-to-top{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid rgba(255,244,232,.25);border-radius:999px;color:#FFF4E8}
.cbz-footer #back-to-top:hover{border-color:#F04432}
.cbz-footer a:focus-visible,.cbz-footer button:focus-visible{outline:3px solid #FFD36A;outline-offset:3px;border-radius:6px}
@media(max-width:1000px){.footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1/-1}}
@media(max-width:600px){
  .site-footer.cbz-footer{margin-top:28px;border-radius:22px 22px 0 0;font-size:15px}
  .footer-top{gap:26px 18px;padding:36px 20px 26px}
  .footer-logo .brand-mark{width:180px;height:54px}
  .footer-col h2{font-size:19px;margin-bottom:8px}
  .footer-bottom{padding:16px 20px max(20px,env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start;gap:10px}
  .cbz-footer .legal-links{order:0;width:auto}
}
/* Smooth page-to-page transitions: native cross-document View Transitions (Chrome/Edge,
   Android WebView, Safari 18.2+). Browsers without them simply navigate as before. The old page
   fades and lifts slightly, the new one rises in; the bottom tab bar stays still. Same-origin
   pages only — every page that loads this file takes part. */
@view-transition{navigation:auto}
.tabbar{view-transition-name:cbz-tabbar}
::view-transition-old(root){animation:cbzPageOut .16s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:cbzPageIn .32s .05s cubic-bezier(.2,.8,.2,1) both}
::view-transition-group(cbz-tabbar){animation-duration:.2s}
@keyframes cbzPageOut{to{opacity:0;transform:translateY(-8px) scale(.995)}}
@keyframes cbzPageIn{from{opacity:0;transform:translateY(16px)}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}
/* Test server label (consent.js, CBZ_STAGING=1) */
.cbz-staging{position:fixed;top:max(6px,env(safe-area-inset-top));left:50%;z-index:95;translate:-50% 0;padding:4px 12px;border-radius:999px;background:#FFD36A;color:#291D22;font:800 12px/1.4 Barlow,'Arial Narrow',sans-serif;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 2px 8px rgba(41,29,34,.18);pointer-events:none}
/* Minimal loading screen between pages (page-transition.js) */
.page-loader{position:fixed;inset:0;z-index:90;pointer-events:none;display:grid;place-items:center;background:rgba(255,244,232,0);transition:background .2s}
.page-loader.visible{background:rgba(255,244,232,.86);pointer-events:auto}
.page-loader-bar{position:fixed;top:0;left:0;height:3px;width:100%;background:#F04432;transform-origin:left;transform:scaleX(0);animation:pageLoaderBar 2.4s cubic-bezier(.1,.7,.2,1) forwards;box-shadow:0 0 8px rgba(240,68,50,.5)}
.page-loader-mark{width:150px;aspect-ratio:3.4;background:#F04432;mask:url('assets/wordmark.webp') center/contain no-repeat;-webkit-mask:url('assets/wordmark.webp') center/contain no-repeat;opacity:0;transition:opacity .2s}
.page-loader.visible .page-loader-mark{opacity:1;animation:pageLoaderPulse 1s ease-in-out infinite alternate}
@keyframes pageLoaderBar{0%{transform:scaleX(0)}60%{transform:scaleX(.7)}100%{transform:scaleX(.92)}}
@keyframes pageLoaderPulse{from{transform:scale(.96);opacity:.65}to{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.page-loader-bar{animation:none;transform:scaleX(.6)}.page-loader.visible .page-loader-mark{animation:none}}
/* Registration: delivery address fields (konto.html) */
.signup-address{margin:4px 0 0;padding:16px 16px 4px;border:1px solid rgba(41,29,34,.16);border-radius:16px;display:grid;gap:14px;min-width:0}
.signup-address legend{padding:0 6px;font-weight:700;font-size:16px}
.signup-note{margin:-4px 0 0;font-size:14px;color:#6D6063;line-height:1.5}
.signup-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.signup-row label{min-width:0}
@media(max-width:420px){.signup-row{grid-template-columns:1fr}}
/* Delivery address tile (address-picker.js) */
.address-tile{width:min(520px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto}
.address-tile h2{margin:4px 0 8px}
.address-tile-lead{margin:0 0 16px;font-size:15px;line-height:1.55;color:#4a3c40}
.address-tile-form{display:grid;gap:12px}
.address-tile-form label{display:grid;gap:6px;font-size:14px;font-weight:650;min-width:0}
.address-tile-form label small{font-weight:400;color:#6D6063}
.address-tile-form input[type=text]{width:100%;min-width:0;height:48px;padding:0 14px;border:1px solid rgba(41,29,34,.25);border-radius:12px;background:#fffdf9;font:inherit;font-size:16px;font-weight:400;color:#291D22}
.address-tile-form input[type=text]:focus{outline:none;border-color:#F04432;box-shadow:0 0 0 3px rgba(240,68,50,.15)}
.address-tile-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.address-tile-labels{display:flex;gap:8px;flex-wrap:wrap}
.address-tile-labels label{display:block}
.address-tile-labels input{position:absolute;opacity:0;pointer-events:none}
.address-tile-labels span{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1.5px solid rgba(41,29,34,.2);border-radius:999px;font-weight:600;cursor:pointer}
.address-tile-labels input:checked+span{border-color:#F04432;background:#fde4d6;color:#291D22}
.address-tile-labels input:focus-visible+span{outline:3px solid #291D22;outline-offset:2px}
.address-tile-error{margin:0;padding:10px 14px;border-radius:10px;background:#ffe3dc;color:#8a2114;font-size:14px}
.address-tile-submit{min-height:52px;border-radius:14px;justify-content:center;width:100%;margin-top:4px}
.address-tile-list{list-style:none;margin:6px 0 12px;padding:0;display:grid;gap:8px}
.address-tile-option{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:14px 44px 14px 14px;border:1.5px solid rgba(41,29,34,.16);border-radius:14px;background:#fffdf9;color:#291D22;font:inherit;text-align:left;cursor:pointer}
.address-tile-option:hover{border-color:rgba(240,68,50,.6)}
.address-tile-option .icon{flex:none;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}
.address-tile-option b{display:block;font-size:16px}
.address-tile-option small{display:block;margin-top:2px;font-size:14px;color:#6D6063}
.address-tile-option i{position:absolute;right:14px;top:50%;width:20px;height:20px;margin-top:-10px;border:1.5px solid #8b7d76;border-radius:50%}
.address-tile-option.selected{border-color:#F04432;background:#fde4d6}
.address-tile-option.selected i{border:6px solid #F04432;background:#fff}
.address-tile-add{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;border:1.5px dashed rgba(41,29,34,.3);border-radius:14px;background:none;font:inherit;font-weight:650;color:#291D22;cursor:pointer}
.address-tile-add:hover{border-color:#F04432;color:#c8321f}
.address-tile-new{margin-top:12px;padding-top:12px;border-top:1px solid rgba(41,29,34,.12)}
.address-tile-manage{display:inline-flex;align-items:center;min-height:40px;margin-top:8px;color:#291D22;font-size:14px;text-underline-offset:4px}
@media(max-width:420px){.address-tile-row{grid-template-columns:1fr}}
.address-tile-locate{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;border:1.5px solid #291D22;border-radius:14px;background:#fffdf9;color:#291D22;font:inherit;font-weight:650;cursor:pointer}.address-tile-locate:hover{background:#fde4d6}.address-tile-locate:disabled{opacity:.6;cursor:progress}.address-tile-locate .icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
