/* SLB Delivery Bar. Cosy cottage (H1) + floating heart (P1), from the approved options sheet.
   Narrow layout is driven by the width of the slot (container query), so the
   slide-out basket and phones share the same compact look. */

.slb-dbar-slot { container-type: inline-size; margin: 0 0 16px; }
.slb-dbar-slot:empty { display: none; }
.slb-dbar-slot--drawer { margin: 0 0 6px; }
.slb-dbar-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.slb-dbar {
	--p: 0%; --hs: 74px; --hh: 17px;
	box-sizing: border-box; position: relative; background: #fff; border: 1px solid #e4dbea; border-radius: 12px;
	box-shadow: 0 1px 3px rgba(84, 62, 120, .06); padding: 20px 28px 16px;
	font-family: 'Nunito', sans-serif; color: #2B2630; text-align: left; line-height: normal;
}
.slb-dbar *, .slb-dbar *::before, .slb-dbar *::after { box-sizing: border-box; }
.slb-dbar__title { font-size: 13px; font-weight: 700; color: #543E78; letter-spacing: .04em; margin: 0 0 3px; line-height: 1.4; }
.slb-dbar__desc { font-size: 15px; color: #2B2630; margin: 0 0 6px; line-height: 1.45; }
.slb-dbar__desc b { font-weight: 800; color: #8E3969; }

.slb-dbar__rail { position: relative; display: flex; align-items: flex-end; gap: 0; padding: 34px 0 32px; }
.slb-dbar__track-wrap { position: relative; flex: 1; min-width: 0; margin: 0 6px calc(var(--hs) * .09) 0; height: 12px; }
.slb-dbar__track { position: absolute; inset: 0; background: #f1ecf5; border-radius: 99px; }
.slb-dbar__fill {
	position: absolute; left: 0; top: 0; bottom: 0; width: var(--p); min-width: 12px; border-radius: 99px;
	background: linear-gradient(90deg, #a2487b, #8E3969); transition: width .9s cubic-bezier(.3, .7, .2, 1);
}
.slb-dbar.is-reached .slb-dbar__fill { width: 100%; }

.slb-dbar__house { position: relative; z-index: 1; flex: none; height: var(--hs); }
.slb-dbar__house picture { display: block; }
.slb-dbar__hs { height: var(--hs); width: auto; display: block; max-width: none; }
.slb-dbar__fly { position: absolute; left: 49.7%; top: 50%; width: 0; height: 0; opacity: 0; pointer-events: none; }
.slb-dbar__fly .slb-dbar__heart { position: absolute; left: -17px; top: -16.5px; }
.slb-dbar__hs.is-fadein { animation: slb-dbar-fadein .6s ease both; }
.slb-dbar__hs-old { position: absolute; left: 0; top: 0; pointer-events: none; animation: slb-dbar-fadeout .6s ease both; }
.slb-dbar__hs-old img { height: var(--hs); width: auto; display: block; max-width: none; }
.slb-dbar__sp { position: absolute; width: 13px; height: 13px; overflow: visible; }
.slb-dbar__sp--a { left: -2px; top: 24%; width: 11px; height: 11px; }
.slb-dbar__sp--b { right: -2px; top: 40%; width: 9px; height: 9px; }
@keyframes slb-dbar-fadein { from { opacity: 0; } to { opacity: 1; } }
@keyframes slb-dbar-fadeout { from { opacity: 1; } to { opacity: 0; } }
@keyframes slb-dbar-unused { 0% { transform: translate(-50%, -50%) scale(.4); opacity: 0; } 100% { transform: translate(-50%, -50%) scale(1); opacity: 1; } }
.slb-dbar__label {
	font-size: 11px; letter-spacing: .11em; text-transform: uppercase; color: #543E78; font-weight: 800;
	line-height: 1.25; white-space: nowrap; text-align: center;
	position: absolute; left: 50%; top: 100%; transform: translateX(-50%); margin-top: 1px;
}
.slb-dbar.is-reached .slb-dbar__label { color: #8E3969; }

.slb-dbar__heart { display: block; overflow: visible; width: 34.2px; height: 32.9px; max-width: none; }
.slb-dbar__pin {
	position: absolute; left: clamp(var(--hh), var(--p), calc(100% - var(--hh) - 2px)); bottom: calc(100% + 6px); transform: translate(-50%, 0);
	filter: drop-shadow(0 2px 2px rgba(142, 57, 105, .25)); animation: slb-dbar-bob 2.2s ease-in-out infinite;
	transition: left .9s cubic-bezier(.3, .7, .2, 1);
}
.slb-dbar__trail { position: absolute; bottom: calc(100% + 12px); left: clamp(var(--hh), var(--p), calc(100% - var(--hh) - 2px)); transition: left .9s cubic-bezier(.3, .7, .2, 1); }
.slb-dbar__trail i { position: absolute; display: block; border-radius: 50%; background: #d8a5bf; animation: slb-dbar-bob2 2.2s ease-in-out infinite; }

.slb-dbar.is-low .slb-dbar__trail i:nth-child(n+2) { display: none; }
.slb-dbar__conf { position: absolute; top: 0; bottom: 0; right: calc(var(--hs) * .95); width: 220px; max-width: 100%; pointer-events: none; }
.slb-dbar__conf i { position: absolute; display: block; border-radius: 50%; }
.slb-dbar__conf i.r { border-radius: 2px; }
.slb-dbar__conf svg { position: absolute; }

@keyframes slb-dbar-bob { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, -4px); } }
@keyframes slb-dbar-bob2 { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
.slb-dbar.is-still .slb-dbar__pin, .slb-dbar.is-still .slb-dbar__trail i { animation: none; }
@media (prefers-reduced-motion: reduce) {
	.slb-dbar__hs.is-fadein, .slb-dbar__hs-old { animation: none !important; }
	.slb-dbar__pin, .slb-dbar__trail i { animation: none !important; }
	.slb-dbar__fill, .slb-dbar__pin, .slb-dbar__trail { transition: none !important; }
}

/* narrow card: phones, slide-out basket */
@container (max-width: 480px) {
	.slb-dbar { --hs: 60px; --hh: 14.5px; padding: 16px 16px 12px; }
	.slb-dbar__desc { font-size: 14px; }
	.slb-dbar__rail { padding-bottom: 26px; }
	.slb-dbar__label { font-size: 9px; letter-spacing: .06em; }
	.slb-dbar__heart { width: 29.7px; height: 28.6px; }
	.slb-dbar__conf { width: 110px; top: 16px; }
}
