/* Shared shop overlays: keep the whole buying journey inside the groovy identity. */
body.groovy-brand :is(.hdc-popup-overlay,.overlay){
  z-index:9700;
  padding:18px;
  background:rgba(42,23,13,.74);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
body.groovy-brand :is(.hdc-popup-card,.overlay .card){
  width:min(430px,calc(100vw - 36px));
  max-width:430px;
  max-height:min(90dvh,700px);
  overflow:auto;
  padding:42px 34px 30px;
  text-align:center;
  color:#321b10;
  background:radial-gradient(ellipse at 12% 0,#fffdf3 0,#fff2d8 62%,#f9e4bc 100%);
  border:2px solid #fff9e9;
  border-radius:28px;
  box-shadow:0 5px 0 #b98643,0 28px 90px #140a06a6,inset 0 0 0 1px #d6aa6a66;
  opacity:0;
  transform:translateY(18px) scale(.97);
  transition:opacity .42s ease,transform .55s cubic-bezier(.22,1,.36,1);
}
body.groovy-brand .hdc-popup-overlay.open .hdc-popup-card,
body.groovy-brand .overlay[style*="display: flex"] .card,
body.groovy-brand .overlay[style*="display: block"] .card{opacity:1;transform:translateY(0) scale(1)}
body.groovy-brand :is(.hdc-popup-t1,.overlay .t1){
  font:900 clamp(36px,8vw,50px)/.98 'Fraunces',Georgia,serif;
  letter-spacing:-.055em;
  color:#321b10;
  margin:0 0 18px;
  text-shadow:1px 2px 0 #ffc33f;
}
body.groovy-brand :is(.hdc-popup-t2,.overlay .t2){font:600 19px/1.35 'Barlow Condensed',Arial,sans-serif;font-style:normal;color:#68503e;margin:0 0 6px}
body.groovy-brand :is(.hdc-popup-pct,.overlay .pct){
  display:inline-block;
  margin:10px auto 4px;
  padding:4px 18px 8px;
  border-radius:18px;
  background:linear-gradient(130deg,#ffd45b,#ffb52c);
  box-shadow:0 3px 0 #321b10;
  font:900 42px/1.05 'Fraunces',Georgia,serif;
  letter-spacing:-.045em;
  color:#321b10;
}
body.groovy-brand :is(.hdc-popup-voila,.overlay .voila){font:500 15px 'Barlow Condensed',Arial,sans-serif;color:#80664f;font-style:normal;margin:5px 0 18px}
body.groovy-brand :is(.hdc-popup-handline,.overlay .hand-line){margin:16px 0;width:100%;opacity:.7}
body.groovy-brand :is(.hdc-popup-inp,.overlay .inp){
  box-sizing:border-box;
  min-height:50px;
  padding:12px 52px 12px 16px;
  border:2px solid #321b1033;
  border-radius:16px;
  background:#fffdf6;
  color:#321b10;
  font:500 18px 'Barlow Condensed',Arial,sans-serif;
  letter-spacing:0;
}
body.groovy-brand :is(.hdc-popup-inp,.overlay .inp):focus{border-color:#28767a;box-shadow:0 0 0 4px #28767a26}
body.groovy-brand :is(.hdc-popup-inp,.overlay .inp)::placeholder{color:#80664f;opacity:1}
body.groovy-brand :is(.hdc-popup-send-btn,.overlay .send-btn){right:6px;width:40px;height:40px;display:grid;place-items:center;border:2px solid #321b10;border-radius:50%;background:#ffc33f;opacity:1;cursor:pointer;transition:transform .18s ease,background .18s ease}
body.groovy-brand :is(.hdc-popup-send-btn,.overlay .send-btn):hover{background:#ffb52c;transform:translateY(-50%) scale(1.06)}
body.groovy-brand :is(.hdc-popup-send-btn,.overlay .send-btn) svg{width:17px;height:17px}
body.groovy-brand :is(.hdc-popup-note1,.overlay .note1){font:500 15px/1.4 'Barlow Condensed',Arial,sans-serif;color:#68503e;letter-spacing:0}
body.groovy-brand :is(.hdc-popup-note2,.overlay .note2){font:500 13px/1.4 'Barlow Condensed',Arial,sans-serif;font-style:normal;color:#80664f;margin-top:6px}
body.groovy-brand .hdc-popup-status{font:600 16px 'Barlow Condensed',Arial,sans-serif;letter-spacing:0}
body.groovy-brand .hdc-popup-cta{font:700 21px 'Barlow Condensed',Arial,sans-serif;letter-spacing:0;text-transform:none;border:2px solid #321b10;border-radius:35px;background:linear-gradient(120deg,#ffdc74,#ffbf32);color:#321b10;padding:12px 24px;box-shadow:0 3px 0 #321b10}
body.groovy-brand :is(.hdc-popup-close,.overlay .close-btn){top:12px;right:12px;width:42px;height:42px;border:1px solid #321b1025;background:#321b100a;border-radius:50%;color:#321b10;opacity:1;font:500 25px/1 Arial,sans-serif;display:grid;place-items:center}
body.groovy-brand :is(.hdc-popup-close,.overlay .close-btn):hover{background:#ffc33f;transform:rotate(6deg)}

/* Consent: legible, compact and visually part of the same shop. */
body.groovy-brand .cookie-banner,
body.groovy-service .cookie-banner,
body.groovy-gallery .cookie-banner{
  left:16px;right:16px;bottom:16px;
  width:min(820px,calc(100vw - 32px));max-width:820px;
  padding:22px 25px 20px;
  border:1px solid #fff3d966;
  border-radius:22px;
  background:radial-gradient(ellipse at 100% 0,#593721,#321b10 62%);
  box-shadow:0 18px 50px #160b0780,inset 0 1px 0 #fff3d92b;
  color:#fff3d9;
  font:500 17px/1.45 'Barlow Condensed',Arial,sans-serif;
}
body.groovy-brand .cookie-banner::before,body.groovy-service .cookie-banner::before,body.groovy-gallery .cookie-banner::before{content:'';position:absolute;top:0;left:24px;right:24px;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,#ffc33f,#f37520,#28767a)}
body.groovy-brand .cookie-banner .cb-eyebrow,body.groovy-service .cookie-banner .cb-eyebrow,body.groovy-gallery .cookie-banner .cb-eyebrow{font:700 12px 'Barlow Condensed',Arial,sans-serif;letter-spacing:.14em;color:#ffc33f;margin:0 0 4px;text-transform:uppercase}
body.groovy-brand .cookie-banner .cb-title,body.groovy-service .cookie-banner .cb-title,body.groovy-gallery .cookie-banner .cb-title{font:900 28px/1.05 'Fraunces',Georgia,serif;font-style:normal;letter-spacing:-.035em;color:#fff3d9;margin:0 0 7px}
body.groovy-brand .cookie-banner .cb-text,body.groovy-service .cookie-banner .cb-text,body.groovy-gallery .cookie-banner .cb-text{font:500 17px/1.45 'Barlow Condensed',Arial,sans-serif;font-style:normal;letter-spacing:0;color:#fff3d9d9;margin:0 0 15px}
body.groovy-brand .cookie-banner .cb-text a,body.groovy-service .cookie-banner .cb-text a,body.groovy-gallery .cookie-banner .cb-text a{color:#ffc33f;text-underline-offset:3px}
body.groovy-brand .cookie-banner .cb-actions,body.groovy-service .cookie-banner .cb-actions,body.groovy-gallery .cookie-banner .cb-actions{display:flex;flex-wrap:wrap;gap:9px}
body.groovy-brand .cookie-banner .cb-btn,body.groovy-service .cookie-banner .cb-btn,body.groovy-gallery .cookie-banner .cb-btn{min-height:44px;padding:9px 18px;border:1px solid #fff3d966;border-radius:24px;background:#fff3d90c;color:#fff3d9;font:700 17px 'Barlow Condensed',Arial,sans-serif;letter-spacing:0;text-transform:none;transition:transform .18s ease,background .18s ease}
body.groovy-brand .cookie-banner .cb-btn:hover,body.groovy-service .cookie-banner .cb-btn:hover,body.groovy-gallery .cookie-banner .cb-btn:hover{transform:translateY(-2px);background:#fff3d91c;border-color:#fff3d9}
body.groovy-brand .cookie-banner .cb-btn.primary,body.groovy-service .cookie-banner .cb-btn.primary,body.groovy-gallery .cookie-banner .cb-btn.primary{border:2px solid #321b10;background:linear-gradient(120deg,#ffdc74,#ffbf32);color:#321b10;box-shadow:0 2px 0 #160c07}
body.groovy-brand .cookie-banner{background:radial-gradient(ellipse at 100% 0,#593721,#321b10 62%)!important;border-radius:22px!important}
body.groovy-brand .cookie-banner .cb-title{font:900 28px/1.05 'Fraunces',Georgia,serif!important;font-style:normal!important;letter-spacing:-.035em!important}
body.groovy-brand .cookie-banner .cb-text{font:500 17px/1.45 'Barlow Condensed',Arial,sans-serif!important;font-style:normal!important;letter-spacing:0!important}
body.groovy-brand .cookie-banner .cb-btn{font:700 17px 'Barlow Condensed',Arial,sans-serif!important;letter-spacing:0!important;text-transform:none!important;border-radius:24px!important}
body.groovy-brand .cookie-modal,
body.groovy-service .cookie-modal{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;background:radial-gradient(ellipse at 12% 0,#fffdf3,#fff1d5 75%);border:2px solid #fff9e9;border-radius:26px;box-shadow:0 5px 0 #b98643,0 28px 90px #140a06a6;color:#321b10}

/* Side cart: a quick preview that arrives from the right after an add. */
.cart-drawer-overlay[hidden]{display:none!important}
.cart-drawer-overlay{position:fixed;inset:0;z-index:9900;display:flex;justify-content:flex-end;background:rgba(42,23,13,0);backdrop-filter:blur(0);transition:background .34s ease,backdrop-filter .34s ease}
.cart-drawer-overlay.is-open{background:rgba(42,23,13,.58);backdrop-filter:blur(4px)}
.cart-drawer{width:min(460px,100%);height:100%;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at 90% 0,#fffdf3,#fff1d5 70%);border-left:2px solid #fff8e8;box-shadow:-18px 0 55px #140a0660;color:#321b10;transform:translateX(102%);transition:transform .42s cubic-bezier(.22,1,.36,1);outline:none}
.cart-drawer-overlay.is-open .cart-drawer{transform:translateX(0)}
.cart-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:28px 27px 20px;border-bottom:1px solid #321b101a;background:linear-gradient(120deg,#fffaf0,#ffefcf)}
.cart-drawer-eyebrow{margin:0 0 7px;color:#b65b22;font:700 12px 'Barlow Condensed',Arial,sans-serif;letter-spacing:.12em}
.cart-drawer-head h2{margin:0;color:#321b10;font:900 clamp(30px,7vw,40px)/1 'Fraunces',Georgia,serif;letter-spacing:-.05em}
.cart-drawer-sub{margin:8px 0 0;color:#68503e;font:500 17px 'Barlow Condensed',Arial,sans-serif}
.cart-drawer-close{flex:0 0 42px;width:42px;height:42px;border:1px solid #321b1020;border-radius:50%;background:#321b1008;color:#321b10;font:400 26px/1 Arial,sans-serif;cursor:pointer;transition:transform .2s,background .2s}
.cart-drawer-close:hover{transform:rotate(8deg);background:#ffc33f}
.cart-drawer-items{flex:1;overflow:auto;padding:10px 24px 20px;overscroll-behavior:contain}
.cart-drawer-item{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid #321b1018}
.cart-drawer-thumb{display:block;width:76px;height:76px;object-fit:contain;border-radius:16px;background:radial-gradient(ellipse,#ffd778,#f7e7c6);filter:drop-shadow(0 4px 3px #321b1024)}
.cart-drawer-product{display:grid;gap:3px;min-width:0}
.cart-drawer-name{font:700 21px/1.15 'Barlow Condensed',Arial,sans-serif;color:#321b10;overflow-wrap:anywhere}
.cart-drawer-meta{font:500 15px/1.3 'Barlow Condensed',Arial,sans-serif;color:#80664f}
.cart-drawer-price{margin-top:3px;font:700 18px 'Barlow Condensed',Arial,sans-serif;color:#321b10}
.cart-drawer-qty{display:flex;align-items:center;gap:7px;margin-left:auto}
.cart-drawer-qty-btn{width:34px;height:34px;border:1px solid #321b1030;border-radius:50%;background:#fffaf0;color:#321b10;font:700 20px/1 'Barlow Condensed',Arial,sans-serif;cursor:pointer;transition:background .15s,transform .15s}
.cart-drawer-qty-btn:hover{background:#ffc33f;transform:scale(1.06)}
.cart-drawer-count{min-width:24px;text-align:center;font:700 15px 'Barlow Condensed',Arial,sans-serif}
.cart-drawer-empty{flex:1;display:grid;align-content:center;justify-items:center;gap:12px;padding:28px;text-align:center;color:#68503e;font:600 21px 'Barlow Condensed',Arial,sans-serif}
.cart-drawer-empty[hidden],.cart-drawer-footer[hidden]{display:none!important}
.cart-drawer-empty>span{font-size:42px}
.cart-drawer-footer{padding:20px 26px max(22px,env(safe-area-inset-bottom));border-top:1px solid #321b101c;background:#fff8e8;box-shadow:0 -8px 25px #321b100a}
.cart-drawer-total{display:flex;align-items:center;justify-content:space-between;gap:16px;font:600 18px 'Barlow Condensed',Arial,sans-serif}
.cart-drawer-total strong{font:900 27px 'Fraunces',Georgia,serif;color:#321b10}
.cart-drawer-shipping{margin:5px 0 15px;color:#80664f;font:500 15px 'Barlow Condensed',Arial,sans-serif}
.cart-drawer-checkout{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:52px;padding:12px 20px;border:2px solid #321b10;border-radius:30px;background:linear-gradient(120deg,#ffdc74,#ffbf32);box-shadow:0 3px 0 #321b10;color:#321b10;text-decoration:none;font:700 21px 'Barlow Condensed',Arial,sans-serif;transition:transform .18s,box-shadow .18s}
.cart-drawer-checkout:hover{transform:translateY(-2px);box-shadow:0 5px 0 #321b10}
.cart-drawer-continue{display:block;width:100%;min-height:44px;margin-top:12px;border:0;background:transparent;color:#68503e;text-decoration:underline;text-underline-offset:4px;font:600 17px 'Barlow Condensed',Arial,sans-serif;cursor:pointer}
.cart-drawer-continue:hover{color:#b65b22}
body.cart-drawer-open{overflow:hidden}
@media(max-width:520px){
  body.groovy-brand :is(.hdc-popup-card,.overlay .card){padding:38px 22px 25px;border-radius:24px}
  body.groovy-brand .cookie-banner,body.groovy-service .cookie-banner,body.groovy-gallery .cookie-banner{left:10px;right:10px;bottom:10px;width:auto;padding:19px 17px 16px;border-radius:18px}
  body.groovy-brand .cookie-banner .cb-title,body.groovy-service .cookie-banner .cb-title,body.groovy-gallery .cookie-banner .cb-title{font-size:24px!important}
  body.groovy-brand .cookie-banner .cb-text,body.groovy-service .cookie-banner .cb-text,body.groovy-gallery .cookie-banner .cb-text{font-size:16px!important}
  body.groovy-brand .cookie-banner .cb-actions,body.groovy-service .cookie-banner .cb-actions,body.groovy-gallery .cookie-banner .cb-actions{gap:7px}
  body.groovy-brand .cookie-banner .cb-btn,body.groovy-service .cookie-banner .cb-btn,body.groovy-gallery .cookie-banner .cb-btn{flex:1 1 calc(50% - 7px);padding:9px 12px}
  .cart-drawer{width:100%;border-left:0}
  .cart-drawer-head{padding:24px 20px 17px}
  .cart-drawer-items{padding:8px 18px 16px}
  .cart-drawer-item{grid-template-columns:62px minmax(0,1fr) auto;gap:10px}
  .cart-drawer-thumb{width:62px;height:62px;border-radius:13px}
  .cart-drawer-name{font-size:19px}
  .cart-drawer-meta{font-size:14px}
  .cart-drawer-qty{gap:5px}
  .cart-drawer-qty-btn{width:30px;height:30px}
  .cart-drawer-footer{padding:17px 20px max(18px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){.cart-drawer-overlay,.cart-drawer,.cart-drawer *{transition:none!important;animation:none!important}}

/* The connected NFC page uses its own template rather than the shop footer. */
body.groovy-nfc-page .cookie-banner{left:16px;right:16px;bottom:16px;width:min(820px,calc(100vw - 32px));max-width:820px;padding:22px 25px 20px;border:1px solid #fff3d966;border-radius:22px;background:radial-gradient(ellipse at 100% 0,#593721,#321b10 62%);box-shadow:0 18px 50px #160b0780,inset 0 1px 0 #fff3d92b;color:#fff3d9;font:500 17px/1.45 'Barlow Condensed',Arial,sans-serif}
body.groovy-nfc-page .cookie-banner::before{content:'';position:absolute;top:0;left:24px;right:24px;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,#ffc33f,#f37520,#28767a)}
body.groovy-nfc-page .cookie-banner .cb-eyebrow{font:700 12px 'Barlow Condensed',Arial,sans-serif;letter-spacing:.14em;color:#ffc33f;margin:0 0 4px;text-transform:uppercase}
body.groovy-nfc-page .cookie-banner .cb-title{font:900 28px/1.05 'Fraunces',Georgia,serif;font-style:normal;letter-spacing:-.035em;color:#fff3d9;margin:0 0 7px}
body.groovy-nfc-page .cookie-banner .cb-text{font:500 17px/1.45 'Barlow Condensed',Arial,sans-serif;font-style:normal;letter-spacing:0;color:#fff3d9d9;margin:0 0 15px}
body.groovy-nfc-page .cookie-banner .cb-text a{color:#ffc33f;text-underline-offset:3px}
body.groovy-nfc-page .cookie-banner .cb-actions{display:flex;flex-wrap:wrap;gap:9px}
body.groovy-nfc-page .cookie-banner .cb-btn{min-height:44px;padding:9px 18px;border:1px solid #fff3d966;border-radius:24px;background:#fff3d90c;color:#fff3d9;font:700 17px 'Barlow Condensed',Arial,sans-serif;letter-spacing:0;text-transform:none;transition:transform .18s ease,background .18s ease}
body.groovy-nfc-page .cookie-banner .cb-btn:hover{transform:translateY(-2px);background:#fff3d91c;border-color:#fff3d9}
body.groovy-nfc-page .cookie-banner .cb-btn.primary{border:2px solid #321b10;background:linear-gradient(120deg,#ffdc74,#ffbf32);color:#321b10;box-shadow:0 2px 0 #160c07}
@media(max-width:520px){body.groovy-nfc-page .cookie-banner{left:10px;right:10px;bottom:10px;width:auto;padding:19px 17px 16px;border-radius:18px}body.groovy-nfc-page .cookie-banner .cb-title{font-size:24px}body.groovy-nfc-page .cookie-banner .cb-text{font-size:16px}body.groovy-nfc-page .cookie-banner .cb-actions{gap:7px}body.groovy-nfc-page .cookie-banner .cb-btn{flex:1 1 calc(50% - 7px);padding:9px 12px}}
