/* ==========================================================================
   TTW Cart & Checkout - the cart slider
   0CartWork/Latest Designs/01 Cart Slider (Desktop-FullCart v3 / v5 / v7 / v8):
   white panel, blush accents, purple buttons, futura-pt like the website.
   From the right on desktop; the whole screen on phones.
   ========================================================================== */

.ttwc-atc {
	--atc-navy: #040728;
	--atc-ink: #212529;
	--atc-muted: #6B6B78;
	--atc-purple: #7035EC;
	--atc-purple-dark: #5C28C9;
	--atc-lav: #EFE9FD;
	--atc-lav-2: #E3D8FB;
	--atc-blush: #FAEFF1;
	--atc-line: #EAE6EC;
	--atc-pad: 16px;
	position: fixed;
	inset: 0;
	z-index: 100000;
	visibility: hidden;
	pointer-events: none;
	font-family: futura-pt, "Futura PT", Futura, "Century Gothic", "Trebuchet MS", sans-serif;
	font-size: 15px;
	line-height: 1.4;
	color: var(--atc-navy);
	-webkit-font-smoothing: antialiased;
	text-align: left;
	letter-spacing: normal;
}
.ttwc-atc.is-open { visibility: visible; pointer-events: auto; }
.ttwc-atc *, .ttwc-atc *::before, .ttwc-atc *::after { box-sizing: border-box; }
.ttwc-atc p,
.ttwc-atc h2,
.ttwc-atc ul,
.ttwc-atc ol { margin: 0; padding: 0; }
.ttwc-atc ul,
.ttwc-atc ol,
.ttwc-atc li { list-style: none; }
.ttwc-atc a { text-decoration: none; }
.ttwc-atc img { max-width: none; }
/* Our own buttons only: the wallets' buttons (Google Pay draws its logo as a
   background on a <button>) keep the payment plugins' styles. */
.ttwc-atc button:where(:not(.ttwc-atc-express button)) {
	margin: 0;
	padding: 0;
	min-height: 0;
	width: auto;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-transform: none;
	text-shadow: none;
	cursor: pointer;
}
.ttwc-atc button:disabled { cursor: default; }
.ttwc-atc .ttwc-atc-i { display: block; flex: none; }
html.ttwc-atc-lock,
html.ttwc-atc-lock body { overflow: hidden !important; }
html.ttwc-atc-lock body { padding-right: var(--ttwc-sbw, 0px) !important; }

.ttwc-atc-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(4, 7, 40, .42);
	opacity: 0;
	transition: opacity .25s ease;
}
.ttwc-atc.is-open .ttwc-atc-backdrop { opacity: 1; }

/* ---- the panel: the whole screen on phones ------------------------------- */
.ttwc-atc-panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: -10px 0 40px rgba(4, 7, 40, .18);
	transform: translateX(100%);
	transition: transform .32s cubic-bezier(.2, .8, .2, 1);
	outline: 0;
	overflow: hidden;
}
.ttwc-atc.is-open .ttwc-atc-panel { transform: none; }
.ttwc-atc-frag,
.ttwc-atc-inner { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; }

/* ---- header ------------------------------------------------------------- */
.ttwc-atc-head {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 10px 8px var(--atc-pad);
	padding-top: max(12px, env(safe-area-inset-top));
}
.ttwc-atc .ttwc-atc-title {
	font-family: inherit;
	font-size: 24px;
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--atc-navy);
}
.ttwc-atc-count { font-weight: 600; }
.ttwc-atc .ttwc-atc-x {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	color: var(--atc-navy);
}
.ttwc-atc .ttwc-atc-x .ttwc-atc-i { width: 26px; height: 26px; stroke-width: 1.6; }
.ttwc-atc .ttwc-atc-x:hover { background: #F4F2F6; }

/* ---- body (scrolls) ------------------------------------------------------ */
.ttwc-atc-body {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	padding: 4px var(--atc-pad) 18px;
}

/* "Oliver's blanket was added to your cart." */
.ttwc-atc .ttwc-atc-banner {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	padding: 6px 14px 6px 8px;
	margin-bottom: 8px;
	border-radius: 8px;
	background: var(--atc-lav);
	font-size: 15px;
	line-height: 1.3;
	color: var(--atc-ink);
}
.ttwc-atc-tick {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--atc-lav-2);
	color: var(--atc-purple);
}
.ttwc-atc-tick .ttwc-atc-i { width: 18px; height: 18px; stroke-width: 2.2; }

.ttwc-atc .ttwc-atc-err,
.ttwc-atc .ttwc-atc-undo {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px 10px;
	margin-bottom: 8px;
	padding: 10px 14px;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.35;
}
.ttwc-atc .ttwc-atc-err { background: #FDECEC; color: #8A1C1C; }
.ttwc-atc .ttwc-atc-undo { background: #F4F2F6; color: var(--atc-ink); }
.ttwc-atc .ttwc-atc-undo-btn { color: var(--atc-purple); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* ---- the items --------------------------------------------------------------- */
.ttwc-atc .ttwc-atc-item {
	margin: 0;
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	column-gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--atc-line);
	transition: opacity .2s;
}
.ttwc-atc-item.is-busy { opacity: .75; }
.ttwc-atc-item.is-removing { opacity: .35; pointer-events: none; }
.ttwc-atc-thumb {
	position: relative;
	display: block;
	width: 84px;
	height: 96px;
	border-radius: 6px;
	overflow: hidden;
	background: #F6EDE7;
}
.ttwc-atc-thumb img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	margin: 0 !important;
	border-radius: 0 !important;
}
.ttwc-atc-thumb img.is-render { object-fit: contain; }   /* the whole design, never cut off */
.ttwc-atc-info { min-width: 0; display: flex; flex-direction: column; }
.ttwc-atc-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 2px; }
.ttwc-atc .ttwc-atc-name { font-size: 16px; line-height: 1.25; font-weight: 600; color: var(--atc-navy); min-width: 0; }
.ttwc-atc .ttwc-atc-name a { color: inherit; text-decoration: none; }
.ttwc-atc .ttwc-atc-name a:hover,
.ttwc-atc .ttwc-atc-name a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
a.ttwc-atc-thumb { cursor: pointer; }
.ttwc-atc-end { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.ttwc-atc-new {
	display: inline-block;
	padding: 3px 9px;
	border-radius: 20px;
	background: var(--atc-lav);
	color: var(--atc-purple);
	font-size: 11.5px;
	line-height: 1.3;
	font-weight: 500;
	white-space: nowrap;
}
.ttwc-atc .ttwc-atc-price { font-size: 16px; line-height: 1.25; font-weight: 500; color: var(--atc-navy); white-space: nowrap; }
.ttwc-atc .ttwc-cur { font-size: .8em; font-weight: 400; }
.ttwc-atc .ttwc-atc-meta { font-size: 14px; line-height: 1.45; color: var(--atc-muted); overflow-wrap: anywhere; }
.ttwc-atc-acts { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-top: 8px; }
.ttwc-atc-gap { flex: 1 1 auto; }
.ttwc-atc .ttwc-atc-edit { font-size: 14px; color: var(--atc-navy); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.ttwc-atc .ttwc-atc-edit:hover { color: var(--atc-purple); }
.ttwc-atc-qty {
	display: inline-flex;
	align-items: center;
	height: 38px;
	border: 1px solid #D8D4DE;
	border-radius: 10px;
	background: #fff;
}
.ttwc-atc .ttwc-atc-qb {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	color: var(--atc-navy);
	border-radius: 9px;
}
.ttwc-atc .ttwc-atc-qb .ttwc-atc-i { width: 18px; height: 18px; stroke-width: 1.8; }
.ttwc-atc .ttwc-atc-qb:hover:not(:disabled) { background: #F4F2F6; }
.ttwc-atc .ttwc-atc-qb:disabled { color: #C4C1CB; }
.ttwc-atc-qv { min-width: 26px; text-align: center; font-size: 16px; font-weight: 500; }
.ttwc-atc .ttwc-atc-rm { font-size: 14px; color: var(--atc-muted); text-decoration: underline; text-underline-offset: 3px; }
.ttwc-atc .ttwc-atc-rm:hover { color: var(--atc-navy); }

/* ---- tissue + canvas bag, gift message -------------------------------------- */
.ttwc-atc .ttwc-atc-pack {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 12px;
	padding: 10px 14px;
	border-radius: 8px;
	background: var(--atc-blush);
	font-size: 14.5px;
	line-height: 1.35;
	color: var(--atc-navy);
}
.ttwc-atc-pack .ttwc-atc-i { width: 24px; height: 24px; stroke-width: 1.5; }

.ttwc-atc .ttwc-atc-gm { margin-top: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--atc-line); }
.ttwc-atc .ttwc-atc-gm-open {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: 15px;
	color: var(--atc-navy);
}
.ttwc-atc .ttwc-atc-gm-open > span:last-child { text-decoration: underline; text-underline-offset: 3px; }
.ttwc-atc-plus {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 1.5px solid var(--atc-navy);
	border-radius: 50%;
}
.ttwc-atc-plus .ttwc-atc-i { width: 16px; height: 16px; stroke-width: 2; }
.ttwc-atc .ttwc-atc-gm-open:hover { color: var(--atc-purple); }
.ttwc-atc .ttwc-atc-gm-open:hover .ttwc-atc-plus { border-color: var(--atc-purple); }
.ttwc-atc-gm.is-open .ttwc-atc-gm-open { display: none; }
.ttwc-atc-gm-saved { display: flex; align-items: flex-start; gap: 12px; }
.ttwc-atc-gm-ico { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--atc-lav); color: var(--atc-purple); flex: none; }
.ttwc-atc-gm-ico .ttwc-atc-i { width: 16px; height: 16px; }
.ttwc-atc-gm-saved p { flex: 1 1 auto; min-width: 0; font-size: 14px; line-height: 1.4; }
.ttwc-atc-gm-lbl { display: block; font-weight: 600; color: var(--atc-navy); }
.ttwc-atc-gm-txt { display: block; color: var(--atc-muted); overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ttwc-atc .ttwc-atc-gm-edit { font-size: 14px; color: var(--atc-navy); text-decoration: underline; text-underline-offset: 3px; }
.ttwc-atc-gm.is-open .ttwc-atc-gm-saved { display: none; }
.ttwc-atc-gm-box { margin-top: 4px; }
.ttwc-atc-gm-box[hidden] { display: none !important; }
.ttwc-atc .ttwc-atc-gm-l { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--atc-navy); }
.ttwc-atc .ttwc-atc-gm-box textarea {
	display: block;
	width: 100%;
	min-height: 84px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #D8D4DE;
	border-radius: 8px;
	background: #fff;
	box-shadow: none;
	font: 16px/1.4 futura-pt, "Futura PT", Futura, "Century Gothic", sans-serif;
	color: var(--atc-ink);
	resize: vertical;
}
.ttwc-atc .ttwc-atc-gm-box textarea:focus { outline: 0; border-color: var(--atc-purple); box-shadow: 0 0 0 3px rgba(112, 53, 236, .15); }
.ttwc-atc-gm-row { display: flex; align-items: center; gap: 14px; margin-top: 8px; }
.ttwc-atc-gm-n { flex: 1 1 auto; font-size: 12.5px; color: var(--atc-muted); }
.ttwc-atc .ttwc-atc-gm-cancel { font-size: 14px; color: var(--atc-muted); text-decoration: underline; text-underline-offset: 3px; }
.ttwc-atc .ttwc-atc-gm-save {
	min-height: 36px;
	padding: 0 18px;
	border-radius: 30px;
	background: var(--atc-purple);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ttwc-atc .ttwc-atc-gm-save:hover { background: var(--atc-purple-dark); }
.ttwc-atc .ttwc-atc-gm-save.is-busy { opacity: .6; }

/* ---- "A little extra for their gift" (the bunny) ------------------------------ */
.ttwc-atc-up,
.ttwc-atc-bundle { margin-top: 14px; }
.ttwc-atc .ttwc-atc-up-h { font-size: 18px; line-height: 1.25; font-weight: 600; color: var(--atc-navy); margin-bottom: 10px; }
.ttwc-atc-upcard {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 14px;
	padding-right: 10px;
	border-radius: 10px;
	background: var(--atc-blush);
	overflow: hidden;
}
.ttwc-atc-upimg { position: relative; display: block; width: 88px; height: 76px; background: #F2E6E9; }
.ttwc-atc-upimg img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; margin: 0 !important; border-radius: 0 !important; }
.ttwc-atc-uptext { display: flex; flex-direction: column; min-width: 0; }
.ttwc-atc-upname { font-size: 16px; line-height: 1.25; font-weight: 600; color: var(--atc-navy); }
.ttwc-atc-upsub { font-size: 14.5px; line-height: 1.35; color: var(--atc-muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ttwc-atc .ttwc-atc-add {
	min-height: 44px;
	padding: 0 20px;
	border: 2px solid var(--atc-purple);
	border-radius: 30px;
	background: #fff;
	color: var(--atc-purple);
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	transition: background-color .15s, color .15s;
}
.ttwc-atc .ttwc-atc-add:hover:not(:disabled) { background: var(--atc-purple); color: #fff; }
.ttwc-atc .ttwc-atc-add.is-busy,
.ttwc-atc .ttwc-atc-bd-add.is-busy { opacity: .6; cursor: progress; }

/* ---- "Make it a complete gift" (the bundle) ---------------------------------- */
.ttwc-atc-bundle { padding: 12px 10px 10px; border-radius: 10px; background: var(--atc-blush); }
.ttwc-atc-bundle .ttwc-atc-up-h { margin-bottom: 8px; }
.ttwc-atc-bd { display: flex; flex-direction: column; gap: 8px; }
.ttwc-atc-bd-pics { display: flex; align-items: center; gap: 4px; }
.ttwc-atc-bd-img { position: relative; display: block; width: 72px; height: 76px; border-radius: 6px; overflow: hidden; background: #fff; flex: none; }
.ttwc-atc-bd-img img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; margin: 0 !important; border-radius: 0 !important; }
.ttwc-atc-bd-plus { color: var(--atc-navy); font-size: 15px; line-height: 1; width: 12px; text-align: center; }
.ttwc-atc-bd-info { min-width: 0; }
.ttwc-atc .ttwc-atc-bd-what { font-size: 13.5px; line-height: 1.35; color: var(--atc-navy); }
.ttwc-atc .ttwc-atc-bd-price { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; margin-top: 4px; }
.ttwc-atc-bd-price s { font-size: 13px; color: var(--atc-muted); }
.ttwc-atc-bd-price b { font-size: 18px; font-weight: 500; color: var(--atc-navy); }
.ttwc-atc-save { display: inline-block; padding: 3px 9px; border-radius: 20px; background: var(--atc-lav); color: var(--atc-purple); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.ttwc-atc .ttwc-atc-bd-add {
	display: block;
	width: 100%;
	min-height: 40px;
	margin-top: 10px;
	padding: 0 14px;
	border: 1.5px solid var(--atc-purple);
	border-radius: 30px;
	background: #fff;
	color: var(--atc-purple);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .14em;
	text-transform: uppercase;
	transition: background-color .15s, color .15s;
}
.ttwc-atc .ttwc-atc-bd-add:hover:not(:disabled) { background: var(--atc-purple); color: #fff; }

/* ---- rewards ------------------------------------------------------------------ */
.ttwc-atc-rw { margin-bottom: 8px; padding: 12px 12px 10px; border-radius: 8px; background: var(--atc-blush); }
.ttwc-atc-rw-top { display: flex; align-items: flex-start; gap: 12px; }
.ttwc-atc-rw-i { flex: none; color: var(--atc-navy); padding-top: 1px; }
.ttwc-atc-rw-i .ttwc-atc-i { width: 28px; height: 28px; stroke-width: 1.4; }
.ttwc-atc-rw-text { flex: 1 1 auto; min-width: 0; }
.ttwc-atc .ttwc-atc-rw-h { font-size: 15.5px; line-height: 1.3; font-weight: 600; color: var(--atc-navy); }
.ttwc-atc .ttwc-atc-rw-s { font-size: 14px; line-height: 1.35; color: var(--atc-ink); margin-top: 2px; }
.ttwc-atc-rw-pct { flex: none; text-align: right; }
.ttwc-atc .ttwc-atc-rw-p { font-size: 14.5px; line-height: 1.3; font-weight: 600; color: var(--atc-purple); }
.ttwc-atc .ttwc-atc-rw-of { font-size: 12.5px; line-height: 1.35; color: var(--atc-navy); white-space: nowrap; }
.ttwc-atc-rw-bar { position: relative; height: 6px; margin: 16px 11px 0; border-radius: 3px; background: var(--atc-lav-2); }
.ttwc-atc-rw-fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 3px; background: var(--atc-purple); transition: width .4s ease; }
.ttwc-atc-rw-dot {
	position: absolute;
	top: 50%;
	width: 22px;
	height: 22px;
	margin: -11px 0 0 -11px;
	border: 2px solid var(--atc-purple);
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}
.ttwc-atc-rw-dot.is-done { background: var(--atc-purple); }
.ttwc-atc-rw-dot .ttwc-atc-i { width: 14px; height: 14px; stroke-width: 2.6; }
.ttwc-atc .ttwc-atc-rw-steps { position: relative; height: 34px; margin: 15px 11px 0; padding: 0; }
.ttwc-atc-rw-steps li {
	position: absolute;
	top: 0;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: calc(100% / var(--n, 3) + 8px);
	text-align: center;
	white-space: nowrap;
	transform: translateX(-50%);
}
.ttwc-atc-rw-steps li.is-last { left: auto !important; right: -11px; align-items: flex-end; text-align: right; transform: none; }
.ttwc-atc-rw-steps b { font-size: 14px; line-height: 1.2; font-weight: 600; color: var(--atc-navy); }
.ttwc-atc-rw-steps span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; font-size: 12.5px; line-height: 1.25; color: var(--atc-ink); }

/* ---- footer (stays put) ---------------------------------------------------------- */
.ttwc-atc-foot {
	flex: none;
	padding: 10px var(--atc-pad) 12px;
	padding-bottom: max(12px, env(safe-area-inset-bottom));
	border-top: 1px solid var(--atc-line);
	background: #fff;
}
.ttwc-atc-total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 18px; line-height: 1.3; color: var(--atc-navy); }
.ttwc-atc-amt { font-size: 18px; font-weight: 500; white-space: nowrap; }
.ttwc-atc.is-busy .ttwc-atc-amt { opacity: .45; }
.ttwc-atc .ttwc-atc-saving { font-size: 13px; color: #1E7A4E; }
.ttwc-atc .ttwc-atc-ship { font-size: 14px; line-height: 1.35; color: var(--atc-muted); margin-top: 1px; }

/* delivery information */
.ttwc-atc-dl {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-top: 6px;
	padding: 8px 10px 8px 14px;
	border-radius: 8px;
	background: var(--atc-blush);
}
.ttwc-atc-dl-i { flex: none; padding-top: 4px; color: var(--atc-navy); }
.ttwc-atc-dl-i .ttwc-atc-i { width: 28px; height: 28px; stroke-width: 1.4; }
.ttwc-atc-dl-text { flex: 1 1 auto; min-width: 0; }
.ttwc-atc .ttwc-atc-dl-to { font-size: 13px; line-height: 1.35; color: var(--atc-navy); }
.ttwc-atc .ttwc-atc-dl-eta { font-size: 14.5px; line-height: 1.35; font-weight: 600; color: var(--atc-navy); }
.ttwc-atc .ttwc-atc-dl-how { font-size: 13px; line-height: 1.35; color: var(--atc-muted); }
/* beside the text, not over it: on phones the shipping line ran under "Change" */
.ttwc-atc .ttwc-atc-dl-change {
	flex: none;
	align-self: flex-start;
	margin-left: auto;
	padding: 1px 7px;
	border-radius: 4px;
	background: var(--atc-lav);
	color: var(--atc-purple);
	font-size: 13px;
	text-decoration: underline;
	text-underline-offset: 2px;
}
/* "Change" opens the address dialog over the slider (address.js loading the first time); saved: redrawing */
.ttwc-atc .ttwc-atc-dl-change.is-loading { opacity: .6; cursor: progress; }
.ttwc-atc-dl.is-busy .ttwc-atc-dl-text { opacity: .45; transition: opacity .15s ease; }

/* the main button */
.ttwc-atc .ttwc-atc-checkout {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	min-height: 48px;
	margin-top: 10px;
	padding: 0 22px;
	border-radius: 30px;
	background: var(--atc-purple);
	color: #fff !important;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: 0 6px 16px rgba(112, 53, 236, .24);
	transition: background-color .15s;
}
.ttwc-atc .ttwc-atc-checkout:hover { background: var(--atc-purple-dark); }
.ttwc-atc .ttwc-atc-checkout .ttwc-atc-i { width: 20px; height: 20px; stroke-width: 2; }
.ttwc-atc img.ttwc-hand { display: block; flex: 0 0 auto; width: 20px; height: auto; max-width: none; margin: 0; }

/* Apple Pay / Google Pay / PayPal, side by side */
.ttwc-atc-express { margin-top: 6px; }
.ttwc-atc .ttwc-atc-or { font-size: 13.5px; line-height: 1.3; color: var(--atc-muted); text-align: center; margin-bottom: 6px; }
.ttwc-atc-exb { display: flex; gap: 10px; min-height: 40px; }
.ttwc-atc-exb > * { flex: 1 1 0; min-width: 0; }
.ttwc-atc .ttwc-atc-express .woocommerce-mini-cart__buttons { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; border: 0; }
.ttwc-atc .ttwc-atc-express .woocommerce-mini-cart__buttons > a { display: block; flex: 1 1 0; min-width: 150px; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; }
.ttwc-atc .ttwc-atc-express .woocommerce-mini-cart__buttons > a:empty { display: none !important; }
.ttwc-atc .ttwc-atc-express .woocommerce-mini-cart__buttons > a button { width: 100% !important; }
/* a little lower than the checkout button, as in the cart (PayPal's height: TTWC_Cart::paypal_height) */
.ttwc-atc { --ttwc-wallet-h: 40px; }
.ttwc-atc .ttwc-atc-express .apple-pay-button,
.ttwc-atc .ttwc-atc-express .gpay-button-fill,
.ttwc-atc .ttwc-atc-express button.gpay-button,
.ttwc-atc .ttwc-atc-express .gpay-card-info-container-fill,
.ttwc-atc .ttwc-atc-express .gpay-card-info-container { height: var(--ttwc-wallet-h) !important; min-height: 0 !important; max-height: var(--ttwc-wallet-h) !important; }
.ttwc-atc .ttwc-atc-express .apple-pay-button { min-width: 0 !important; }
/* Nothing to show yet (or only wallets this device doesn't get): folded away, but still laid
   out - Stripe's Apple Pay frame mounted into a display:none box never gets a size, so it would
   never appear (a first Add to Cart from an empty cart, sent in the background). */
.ttwc-atc-express:not(:has(iframe, button)),
.ttwc-atc-express.is-empty { display: block; height: 0; margin: 0; padding: 0; overflow: hidden; visibility: hidden; }
/* the wallet first, PayPal second */
.ttwc-atc .ttwc-atc-express .woocommerce-mini-cart__buttons > [class*="wc-ppcp-minicart"] { order: 2; }
/* Google Pay on Android only, Apple Pay everywhere else (classes set on <html> by the plugin) */
.ttwc-no-applepay .ttwc-atc .wc-stripe-applepay-mini-cart,
.ttwc-no-applepay .ttwc-atc [class*="wc-ppcp-minicart-ppcp_applepay"],
.ttwc-no-gpay .ttwc-atc .wc-stripe-gpay-mini-cart,
.ttwc-no-gpay .ttwc-atc [class*="wc-ppcp-minicart-ppcp_googlepay"] { display: none !important; }
/* Apple Pay loading (a second or three after every redraw): a quiet placeholder in its spot
   (popup.js apLoading); no Apple Pay on this browser: no placeholder, PayPal takes the row.
   While the wallets redraw after + / - / Remove, the row stays open with placeholders
   instead of folding away and coming back (is-redraw). */
.ttwc-atc .ttwc-atc-express.ap-loading .woocommerce-mini-cart__buttons::before,
.ttwc-atc .ttwc-atc-express.is-redraw .woocommerce-mini-cart__buttons > a.wc-ppcp-minicart-ppcp:empty {
	content: "";
	display: block !important;
	flex: 1 1 0;
	min-width: 150px;
	height: var(--ttwc-wallet-h);
	border-radius: 10px;
	background: linear-gradient(90deg, #EEECF3 0%, #F7F6FA 50%, #EEECF3 100%) 0 0 / 200% 100% !important;
	animation: ttwc-ap-wait 1.3s linear infinite;
}
.ttwc-atc .ttwc-atc-express.is-redraw .woocommerce-mini-cart__buttons > a.wc-ppcp-minicart-ppcp:empty { order: 2; }
.ttwc-atc .ttwc-atc-express.ap-loading .woocommerce-mini-cart__buttons:has(> a.wc-stripe-applepay-mini-cart:not([style*="none"]) iframe)::before { display: none !important; }
@keyframes ttwc-ap-wait { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) {
	.ttwc-atc .ttwc-atc-express.ap-loading .woocommerce-mini-cart__buttons::before,
	.ttwc-atc .ttwc-atc-express.is-redraw .woocommerce-mini-cart__buttons > a.wc-ppcp-minicart-ppcp:empty { animation: none; }
}

/* Continue shopping | View cart */
.ttwc-atc-links { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 10px; }
.ttwc-atc .ttwc-atc-keep,
.ttwc-atc .ttwc-atc-cart {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	line-height: 1.3;
	color: var(--atc-navy) !important;
	white-space: nowrap;
}
.ttwc-atc .ttwc-atc-keep span,
.ttwc-atc .ttwc-atc-cart { text-decoration: underline; text-underline-offset: 3px; }
.ttwc-atc .ttwc-atc-keep .ttwc-atc-i { width: 20px; height: 20px; }
.ttwc-atc .ttwc-atc-keep:hover,
.ttwc-atc .ttwc-atc-cart:hover { color: var(--atc-purple) !important; }
.ttwc-atc-sep { width: 1px; height: 20px; background: #CFCBD6; }

/* ---- empty --------------------------------------------------------------------- */
.ttwc-atc-empty { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 48px 12px; }
.ttwc-atc-empty-i { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: var(--atc-blush); color: var(--atc-navy); margin-bottom: 16px; }
.ttwc-atc-empty-i .ttwc-atc-i { width: 32px; height: 32px; stroke-width: 1.4; }
.ttwc-atc .ttwc-atc-empty-h { font-size: 20px; font-weight: 600; }
.ttwc-atc .ttwc-atc-empty-s { font-size: 15px; color: var(--atc-muted); margin-top: 4px; }
.ttwc-atc .ttwc-atc-keep--btn {
	margin-top: 20px;
	min-height: 46px;
	padding: 0 26px;
	border-radius: 30px;
	background: var(--atc-purple);
	color: #fff !important;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
}

/* ---- loading -------------------------------------------------------------------- */
.ttwc-atc-skel { display: grid; gap: 12px; padding: 8px 0 20px; }
.ttwc-atc-skel span { display: block; height: 14px; border-radius: 7px; background: linear-gradient(90deg, #F3EEF2 0%, #FAF7F9 50%, #F3EEF2 100%); background-size: 200% 100%; animation: ttwc-atc-shine 1.1s linear infinite; }
.ttwc-atc-skel span:first-child { height: 44px; border-radius: 8px; }
.ttwc-atc-skel span:nth-child(2) { height: 96px; width: 84px; border-radius: 6px; }
.ttwc-atc-skel span:last-child { width: 60%; }
@keyframes ttwc-atc-shine { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* ---- phones: "% complete" on its own row under the message ------------------------ */
@media (max-width: 767.98px) {
	.ttwc-atc-rw-top { flex-wrap: wrap; row-gap: 2px; }
	.ttwc-atc-rw-text { flex: 1 1 calc(100% - 40px); }
	.ttwc-atc-rw-pct { flex: 1 1 100%; display: flex; align-items: baseline; gap: 8px; padding-left: 40px; text-align: left; }
}

/* ---- small phones: keep the footer short ----------------------------------------- */
@media (max-width: 767.98px) and (max-height: 700px) {
	.ttwc-atc-dl { padding-top: 6px; padding-bottom: 6px; }
	.ttwc-atc .ttwc-atc-dl-to { display: none; }
	.ttwc-atc .ttwc-atc-or { display: none; }
	.ttwc-atc .ttwc-atc-checkout { min-height: 46px; margin-top: 8px; }
	.ttwc-atc-links { margin-top: 6px; }
}
@media (max-width: 767.98px) and (max-height: 620px) {
	.ttwc-atc-head { padding-top: 8px; padding-bottom: 4px; }
	.ttwc-atc .ttwc-atc-title { font-size: 21px; }
	.ttwc-atc-dl { padding: 6px 10px 6px 12px; }
	.ttwc-atc-dl-i { display: none; }
	.ttwc-atc .ttwc-atc-dl-eta { font-size: 13.5px; }
	.ttwc-atc .ttwc-atc-dl-how { display: none; }
	.ttwc-atc .ttwc-atc-ship { font-size: 13px; }
	.ttwc-atc-total,
	.ttwc-atc-amt { font-size: 17px; }
	.ttwc-atc .ttwc-atc-keep,
	.ttwc-atc .ttwc-atc-cart { font-size: 14px; }
}
@media (max-width: 380px) {
	.ttwc-atc { --atc-pad: 14px; }
	.ttwc-atc .ttwc-atc-item { grid-template-columns: 72px minmax(0, 1fr); column-gap: 12px; }
	.ttwc-atc-thumb { width: 72px; height: 84px; }
	.ttwc-atc .ttwc-atc-name { font-size: 15px; }
	.ttwc-atc .ttwc-atc-meta { font-size: 13px; }
	.ttwc-atc-bd-img { width: 62px; height: 66px; }
	.ttwc-atc .ttwc-atc-checkout { letter-spacing: .1em; }
}

/* ---- desktop: a slider from the right ---------------------------------------------- */
@media (min-width: 768px) {
	.ttwc-atc { --atc-pad: 24px; }
	.ttwc-atc-panel { width: clamp(440px, 36vw, 556px); max-width: 100%; }
	.ttwc-atc-head { padding: 16px 14px 10px var(--atc-pad); }
	.ttwc-atc .ttwc-atc-title { font-size: 28px; }
	.ttwc-atc .ttwc-atc-item { grid-template-columns: 104px minmax(0, 1fr); column-gap: 18px; }
	.ttwc-atc-thumb { width: 104px; height: 116px; }
	.ttwc-atc .ttwc-atc-name { font-size: 17px; }
	.ttwc-atc .ttwc-atc-price { font-size: 17px; }
	.ttwc-atc .ttwc-atc-meta { font-size: 14.5px; }
	.ttwc-atc-upcard { grid-template-columns: 104px minmax(0, 1fr) auto; padding-right: 10px; }
	.ttwc-atc-upimg { width: 104px; height: 80px; }
	.ttwc-atc .ttwc-atc-add { min-height: 50px; padding: 0 28px; font-size: 18px; }
	.ttwc-atc .ttwc-atc-up-h { font-size: 19px; }
	.ttwc-atc-bd { flex-direction: row; align-items: center; gap: 12px; }
	.ttwc-atc-bd-img { width: 74px; height: 80px; }
	.ttwc-atc-total,
	.ttwc-atc-amt { font-size: 20px; }
	.ttwc-atc .ttwc-atc-ship { font-size: 15px; }
	.ttwc-atc-foot { padding: 12px var(--atc-pad) 16px; }
	.ttwc-atc .ttwc-atc-keep,
	.ttwc-atc .ttwc-atc-cart { font-size: 16px; }
}
@media (min-width: 768px) and (max-height: 820px) {
	.ttwc-atc-head { padding-top: 12px; padding-bottom: 6px; }
	.ttwc-atc .ttwc-atc-title { font-size: 24px; }
	.ttwc-atc-foot { padding-top: 10px; padding-bottom: 12px; }
	.ttwc-atc .ttwc-atc-checkout { margin-top: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	.ttwc-atc-panel, .ttwc-atc-backdrop, .ttwc-atc-rw-fill { transition: none; }
}

/* ---- the count on the header cart icon --------------------------------------------- */
.ttw-cart-wrap { position: relative; display: inline-block; line-height: 0; }
.ttw-cart-badge {
	position: absolute;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 10px;
	background: #7035EC;
	color: #fff;
	font: 700 11px/18px Montserrat, sans-serif;
	text-align: center;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(4, 7, 40, .25);
}
.product-item-btns .added_to_cart { display: none !important; }
