/* New multistep checkout "Moon journey" (inc/fm-checkout.php, assets/js/fm-checkout.js) 2026-10-29
   Only loaded on the checkout while the new checkout is on. The theme styles are not loaded there,
   so everything the page needs is in this file. Phones first, desktop from 900px. */

@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/poppins-v21-latin-regular.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/poppins-v21-latin-500.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/poppins-v21-latin-600.woff2') format('woff2'); }

:root {
	--ck-gold: #c96; --ck-gold-h: #b8875a; --ck-gold-t: #a8743f; --ck-gold-l: #e2bf8a;
	--ck-text: #333; --ck-body: #5c5249; --ck-muted: #8a7560; --ck-muted2: #a08770;
	--ck-bg: #fbf6f1; --ck-bg2: #f6f1ec; --ck-bg3: #f3ebe2; --ck-line: #eadccd; --ck-line2: #f1e7dc;
	--ck-edge: rgba(204,153,102,.22); --ck-brown: #2c2018; --ck-green: #3f7a47; --ck-green-bg: #eef6ee;
	--ck-wa: #25d366; --ck-red: #b4404f; --ck-ease: cubic-bezier(.2,.8,.2,1);
}

body.fm-ck-body { margin: 0; background: var(--ck-bg); color: var(--ck-text); font-family: Poppins, system-ui, -apple-system, 'Segoe UI', sans-serif; font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
.fm-ck-body *, .fm-ck-body *::before, .fm-ck-body *::after { box-sizing: border-box; }
.fm-ck-body > .woocommerce { margin: 0; }
.fm-ck button, .fm-ck input, .fm-ck select, .fm-ck textarea { font-family: inherit; }
.fm-ck button { cursor: pointer; }
.fm-ck a { color: var(--ck-gold-t); }
.fm-ck img { max-width: 100%; height: auto; display: block; }
.fm-ck h1 { margin: 6px 0 4px; font-size: 26px; font-weight: 600; line-height: 1.25; color: var(--ck-text); }
.fm-ck h1:focus { outline: none; }
.fm-ck-lead { margin: 0 0 18px; font-size: 14px; color: var(--ck-muted); }
.fm-ck .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.fm-ck :focus-visible { outline: 2px solid var(--ck-gold); outline-offset: 2px; }
.fm-ck-card { background: #fff; border: 1px solid var(--ck-edge); border-radius: 22px; box-shadow: 0 10px 30px rgba(0,0,0,.06); }
.fm-ck-link { border: 0; background: none; padding: 0; min-height: 40px; color: var(--ck-gold-t); font-size: 13px; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.fm-ck-step[hidden] { display: none !important; }

/* ---------- phone header ---------- */
.fm-ck-top { position: sticky; top: 0; z-index: 30; height: 64px; display: flex; align-items: center; justify-content: space-between; padding: 0 8px; background: rgba(251,246,241,.94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.fm-ck-topback, .fm-ck-bagbtn { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border: 0; background: none; color: var(--ck-body); position: relative; text-decoration: none; }
.fm-ck-topmid { display: flex; align-items: center; gap: 10px; }
.fm-ck-toptxt { display: flex; flex-direction: column; line-height: 1.2; }
.fm-ck-toptxt small { font-size: 11px; font-weight: 500; color: var(--ck-muted); }
.fm-ck-toptxt b { font-size: 14px; font-weight: 600; }
.fm-ck-moon { width: 30px; height: 30px; border-radius: 50%; overflow: hidden; position: relative; background: var(--ck-gold); flex: none; animation: fmckGlow 2.4s ease-in-out infinite; }
.fm-ck-moon i { position: absolute; inset: 0; border-radius: 50%; background: #e9dccd; transform: translateX(9px); transition: transform .9s cubic-bezier(.3,.8,.2,1); }
.fm-ck[data-step="2"] .fm-ck-moon i { transform: translateX(16px); }
.fm-ck[data-step="3"] .fm-ck-moon i { transform: translateX(23px); }
.fm-ck[data-step="4"] .fm-ck-moon i { transform: translateX(32px); }
.fm-ck-badge { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--ck-gold); color: #fff; font-size: 10px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.fm-ck-badge.fm-pop { animation: fmckPop .45s both; }

/* ---------- layout ---------- */
.fm-ck-main { padding: 8px 20px 170px; }
.fm-ck-progress { display: none; }
.fm-ck-notices:empty { display: none; }
.fm-ck-notices { margin-bottom: 12px; }

/* side panel = bag sheet on phones */
.fm-ck-side { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; max-height: 86vh; overflow: auto; background: #fff; border-radius: 28px 28px 0 0; padding: 10px 20px calc(22px + env(safe-area-inset-bottom)); box-shadow: 0 -14px 40px rgba(0,0,0,.18); transform: translateY(105%); transition: transform .45s cubic-bezier(.2,.9,.3,1.05); visibility: hidden; }
.fm-ck.is-sheet .fm-ck-side { transform: none; visibility: visible; }
.fm-ck-veil { position: fixed; inset: 0; z-index: 55; background: rgba(42,28,16,.45); animation: fmckFade .3s both; }
.fm-ck-brand, .fm-ck-journey, .fm-ck-side .fm-ck-revs, .fm-ck-wa.is-side, .fm-ck-minitoggle { display: none; }
.fm-ck-sheet-h { display: flex; align-items: center; justify-content: space-between; position: relative; padding-top: 10px; }
.fm-ck-sheet-h h2 { margin: 0; font-size: 18px; font-weight: 600; }
.fm-ck-grab { position: absolute; top: 0; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 999px; background: #e6d6c4; }
.fm-ck-close { width: 44px; height: 44px; border: 0; background: none; color: var(--ck-body); display: flex; align-items: center; justify-content: center; }
.fm-ck-side-links { display: flex; align-items: center; gap: 18px; margin-top: 8px; }
.fm-ck-side-links .fm-ck-link { display: inline-flex; align-items: center; height: 40px; min-height: 0; line-height: 1; margin: 0; vertical-align: middle; }

/* mini bag */
.fm-ck-mini-h { display: flex; align-items: center; gap: 12px; padding: 12px 0; }
.fm-ck-dots { display: flex; }
.fm-ck-dots span { width: 34px; height: 34px; border-radius: 50%; overflow: hidden; border: 2px solid #fff; margin-right: -10px; background: var(--ck-bg3); }
.fm-ck-dots img { width: 100%; height: 100%; object-fit: cover; }
.fm-ck-mini-n { flex: 1; margin-left: 12px; font-size: 14px; }
.fm-ck-mini-t { font-size: 17px; font-weight: 600; }
.fm-ck-mini-it { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--ck-bg2); }
.fm-ck-mini-img { width: 52px; height: 64px; border-radius: 12px; overflow: hidden; flex: none; background: var(--ck-bg3); }
.fm-ck-mini-img img { width: 100%; height: 100%; object-fit: cover; }
.fm-ck-mini-name { flex: 1; min-width: 0; font-size: 14px; font-weight: 500; }
.fm-ck-mini-name small { display: block; font-size: 12px; font-weight: 400; color: var(--ck-muted); }
.fm-ck-mini-p { font-size: 14px; font-weight: 600; }
.fm-ck-mini-line { display: flex; justify-content: space-between; padding: 8px 0 0; font-size: 13px; color: var(--ck-body); }

/* ---------- step animation ---------- */
.fm-ck-step.fm-in { animation: fmckSlide .5s var(--ck-ease) both; }
.fm-ck-step.fm-in-back { animation: fmckSlideBack .5s var(--ck-ease) both; }

/* ---------- 1 · bag ---------- */
.fm-ck-bag { transition: opacity .2s; }
.fm-ck-bag.is-busy { opacity: .55; pointer-events: none; }
.fm-ck-item { position: relative; display: flex; gap: 14px; padding: 12px; margin-bottom: 10px; background: #fff; border: 1px solid var(--ck-edge); border-radius: 22px; box-shadow: 0 10px 30px rgba(0,0,0,.06); }
/* fade-ins only on the first page load (fm-anim) or for something new (fm-pop): WooCommerce refreshes these parts often */
.fm-ck-item.fm-anim { animation: fmckRise .45s var(--ck-ease) both; }
.fm-ck-item.fm-pop { animation: fmckPopIn .55s cubic-bezier(.2,.9,.3,1.3) both; }
.fm-ck-thumb { position: relative; width: 84px; height: 112px; border-radius: 16px; overflow: hidden; flex: none; background: var(--ck-bg3); }
.fm-ck-thumb img { width: 100%; height: 100%; object-fit: cover; }
.fm-ck-left { position: absolute; left: 6px; bottom: 6px; background: var(--ck-red); color: #fff; font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
.fm-ck-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; padding: 2px 0; }
.fm-ck-name { font-size: 15px; font-weight: 500; padding-right: 36px; line-height: 1.35; }
.fm-ck-meta { font-size: 12px; color: var(--ck-muted); }
.fm-ck-chip { align-self: flex-start; position: relative; display: inline-flex; align-items: center; height: 32px; border-radius: 999px; border: 1px solid var(--ck-line); background: var(--ck-bg); color: var(--ck-body); transition: border-color .2s, transform .12s; }
.fm-ck-chip:hover { border-color: var(--ck-gold); }
.fm-ck-chip:active { transform: scale(.95); }
.fm-ck-chip select { -webkit-appearance: none; appearance: none; border: 0; background: transparent; height: 100%; padding: 0 28px 0 12px; font-size: 12px; color: inherit; cursor: pointer; }
.fm-ck-chip select:focus { outline: none; }
.fm-ck-chip:focus-within { box-shadow: 0 0 0 3px rgba(204,153,102,.25); }
.fm-ck-chip svg { position: absolute; right: 10px; pointer-events: none; color: var(--ck-gold-t); }
.fm-ck-tag { align-self: flex-start; font-size: 10px; font-weight: 600; color: var(--ck-green); background: var(--ck-green-bg); padding: 2px 8px; border-radius: 999px; }
.fm-pop .fm-ck-tag { animation: fmckPop .4s .2s both; }
.fm-ck-row { display: flex; align-items: center; justify-content: space-between; margin-top: auto; gap: 8px; }
.fm-ck-qty { display: flex; align-items: center; gap: 8px; }
.fm-ck-qty button { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--ck-line); background: #fff; color: var(--ck-body); display: flex; align-items: center; justify-content: center; transition: transform .12s, border-color .2s; padding: 0; }
.fm-ck-qty button:hover:not(:disabled) { border-color: var(--ck-gold); }
.fm-ck-qty button:active:not(:disabled) { transform: scale(.85); }
.fm-ck-qty button:disabled { opacity: .35; cursor: default; }
.fm-ck-qty span { min-width: 14px; text-align: center; font-weight: 600; font-size: 14px; }
.fm-ck-qty1 { font-size: 13px; color: var(--ck-muted); }
.fm-ck-price { text-align: right; }
.fm-ck-price s { display: block; font-size: 11px; color: var(--ck-muted2); }
.fm-ck-price b { font-size: 15px; font-weight: 600; }
.fm-ck-x { position: absolute; top: 2px; right: 2px; width: 44px; height: 44px; border: 0; background: none; color: var(--ck-muted2); display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: color .2s, transform .15s; }
.fm-ck-x:hover { color: var(--ck-red); }
.fm-ck-x:active { transform: scale(.85); }
.fm-ck-toast { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 6px 6px 16px; border-radius: 16px; background: var(--ck-brown); color: #f3ebe2; font-size: 13px; margin-bottom: 10px; animation: fmckToast .5s cubic-bezier(.2,.9,.3,1.3) both; }
.fm-ck-toast[hidden] { display: none; }
.fm-ck-toast button { height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: rgba(226,191,138,.2); color: var(--ck-gold-l); font-weight: 600; font-size: 13px; }

.fm-ck-meter { padding: 12px 14px; margin-top: 4px; }
.fm-ck-meter[hidden] { display: none; }
.fm-ck-meter-t { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--ck-body); }
.fm-ck-meter.is-free .fm-ck-meter-t { color: var(--ck-green); }
.fm-ck-meter-bar { height: 6px; border-radius: 999px; background: var(--ck-line2); margin-top: 8px; overflow: hidden; }
.fm-ck-meter-bar i { display: block; height: 100%; border-radius: 999px; background: var(--ck-gold); transition: width .7s var(--ck-ease); }
.fm-ck-meter.fm-anim .fm-ck-meter-bar i { animation: fmckGrow .9s var(--ck-ease) both; }
.fm-ck-meter.is-free .fm-ck-meter-bar i { background: #4caf50; }

.fm-ck-code { margin-top: 10px; }
.fm-ck-codebox { display: flex; gap: 8px; animation: fmckRise .35s both; }
.fm-ck-codebox[hidden] { display: none; }
.fm-ck-body .fm-ck .fm-ck-codebox input { flex: 1; min-width: 0; height: 46px; text-transform: uppercase; }
.fm-ck-apply { flex: none; height: 46px; padding: 0 18px; border: 1.5px solid rgba(204,153,102,.5); border-radius: 999px; background: #fff; color: var(--ck-gold-t); font-weight: 600; font-size: 13px; }
.fm-ck-apply.is-busy { opacity: .6; pointer-events: none; }
.fm-ck-codemsg { margin: 6px 0 0; font-size: 12px; color: var(--ck-green); }
.fm-ck-codemsg.is-err { color: var(--ck-red); }
.fm-ck-coupons:empty { display: none; }
.fm-ck-coupons { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.fm-ck-coupon { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 4px 0 12px; border-radius: 999px; background: var(--ck-green-bg); color: var(--ck-green); font-size: 12px; }
.fm-ck-coupon .amount { font-weight: 600; }
.fm-ck-coupon button { width: 26px; height: 26px; border: 0; border-radius: 50%; background: rgba(63,122,71,.12); color: var(--ck-green); display: flex; align-items: center; justify-content: center; padding: 0; }
.fm-ck-coupon-note { flex-basis: 100%; margin: 2px 0 0; font-size: 11px; color: var(--ck-muted); }

.fm-ck-addons { margin-top: 22px; }
.fm-ck-addons-h { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.fm-ck-addons-h h2 { margin: 0; font-size: 15px; font-weight: 600; }
.fm-ck-addons-h p { margin: 0; font-size: 12px; font-weight: 500; color: var(--ck-green); }
.fm-ck-refresh { height: 40px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--ck-line); background: #fff; color: var(--ck-gold-t); font-size: 12px; font-weight: 500; display: flex; align-items: center; gap: 6px; flex: none; }
.fm-ck-refresh.is-busy svg { animation: fmckSpin .7s linear infinite; }
.fm-ck-addons-row { display: flex; gap: 10px; overflow-x: auto; margin: 0 -20px; padding: 2px 20px 8px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.fm-ck-addons-row::-webkit-scrollbar { display: none; }
.fm-ck-addon { flex: none; width: 148px; scroll-snap-align: start; background: #fff; border: 1px solid var(--ck-edge); border-radius: 18px; padding: 8px; display: flex; flex-direction: column; gap: 3px; }
.fm-ck-addon.fm-anim { animation: fmckRise .45s var(--ck-ease) both; }
.fm-ck-addon:nth-child(2) { animation-delay: .06s; }
.fm-ck-addon:nth-child(3) { animation-delay: .12s; }
.fm-ck-addon.fm-pop { animation: fmckPopIn .55s cubic-bezier(.2,.9,.3,1.3) both; }
.fm-ck-addon-img { height: 118px; border-radius: 12px; margin-bottom: 4px; overflow: hidden; background: var(--ck-bg3); }
.fm-ck-addon-img img { width: 100%; height: 100%; object-fit: cover; }
.fm-ck-addon-cat { font-size: 11px; color: var(--ck-muted); }
.fm-ck-addon-name { font-size: 13px; font-weight: 500; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fm-ck-addon-price { font-size: 12px; margin-top: auto; }
.fm-ck-addon-price s { color: var(--ck-muted2); }
.fm-ck-addon-price b { font-weight: 600; }
.fm-ck-addon-price b.is-disc { color: var(--ck-green); }
.fm-ck-add { margin-top: 6px; height: 38px; border-radius: 999px; border: 1.5px solid var(--ck-gold); background: #fff; color: var(--ck-gold-t); font-weight: 600; font-size: 13px; transition: background .2s, color .2s, transform .12s; }
.fm-ck-add:hover { background: var(--ck-gold); color: #fff; }
.fm-ck-add:active { transform: scale(.94); }
.fm-ck-add.is-busy { background: var(--ck-gold); color: #fff; pointer-events: none; }
.fm-ck-addons-done { margin: 0; padding: 14px; border-radius: 18px; background: var(--ck-bg3); font-size: 13px; color: var(--ck-body); text-align: center; }

.fm-ck-wa { display: flex; align-items: center; gap: 12px; min-height: 60px; margin-top: 20px; padding: 10px 14px 10px 10px; border-radius: 999px; background: var(--ck-wa); color: #fff !important; text-decoration: none; box-shadow: 0 8px 18px rgba(37,211,102,.28); transition: transform .15s, background .2s; }
.fm-ck-wa:hover { background: #1fbe5b; }
.fm-ck-wa:active { transform: scale(.97); }
.fm-ck-wa-ic { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.22); display: flex; align-items: center; justify-content: center; flex: none; animation: fmckNudge 6s 1.5s infinite; }
.fm-ck-wa-t { flex: 1; line-height: 1.3; }
.fm-ck-wa-t b { display: block; font-size: 14px; font-weight: 600; }
.fm-ck-wa-t small { display: block; font-size: 11px; opacity: .92; }
.fm-ck-trust { margin: 14px 0 0; display: flex; justify-content: center; gap: 16px; font-size: 11px; color: var(--ck-muted); }
.fm-ck-trust span { display: flex; align-items: center; gap: 5px; }
.fm-ck-trust svg { width: 14px; height: 14px; color: var(--ck-gold); }

/* ---------- WooCommerce fields ---------- */
.fm-ck-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 10px; }
.fm-ck-grid > * { grid-column: 1 / -1; }
.fm-ck-grid > .form-row-first, .fm-ck-fields > #billing_city_field { grid-column: 1; }
.fm-ck-grid > .form-row-last, .fm-ck-fields > #billing_postcode_field { grid-column: 2; }
.fm-ck-body .fm-ck .form-row { margin: 0; padding: 0; width: auto; float: none; position: relative; }
.fm-ck-body .fm-ck .form-row label { display: block; margin: 14px 0 6px; font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--ck-muted); }
.fm-ck-body .fm-ck .form-row label.checkbox, .fm-ck-body .fm-ck .form-row label.woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 13px; color: var(--ck-body); }
.fm-ck-body .fm-ck .form-row .required { color: var(--ck-red); text-decoration: none; border: 0; font-weight: 500; }
.fm-ck-body .fm-ck .form-row .optional { display: none; }
.fm-ck-body .fm-ck .input-text, .fm-ck-body .fm-ck select, .fm-ck-body .fm-ck textarea, .fm-ck-qwrap {
	width: 100%; height: 52px; border: 1.5px solid var(--ck-line); border-radius: 16px; padding: 0 16px; font-size: 16px; line-height: 1.3; color: var(--ck-text); background: #fff; box-shadow: none; transition: border-color .2s, box-shadow .2s; }
.fm-ck-body .fm-ck select { -webkit-appearance: none; appearance: none; padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23a8743f' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center; }
.fm-ck-body .fm-ck .fm-ck-chip select { height: 100%; border: 0; padding: 0 28px 0 12px; font-size: 12px; border-radius: 999px; background: transparent; }
.fm-ck-body .fm-ck textarea { height: auto; min-height: 90px; padding: 12px 16px; }
.fm-ck-body .fm-ck .input-text::placeholder, .fm-ck-body .fm-ck textarea::placeholder { color: var(--ck-muted2); }
.fm-ck-body .fm-ck .input-text:focus, .fm-ck-body .fm-ck select:focus, .fm-ck-body .fm-ck textarea:focus, .fm-ck-qwrap:focus-within { outline: none; border-color: var(--ck-gold); box-shadow: 0 0 0 4px rgba(204,153,102,.16); }
.fm-ck-body .fm-ck .woocommerce-invalid .input-text, .fm-ck-body .fm-ck .woocommerce-invalid select, .fm-ck-qwrap.is-bad { border-color: var(--ck-red); }
.fm-ck-body .fm-ck .woocommerce-validated .input-text { border-color: var(--ck-line); }
.fm-ck .fm-shake-a { animation: fmckShakeA .45s; }
.fm-ck .fm-shake-b { animation: fmckShakeB .45s; }
.fm-ck-msg { margin: 6px 0 0; font-size: 12px; color: var(--ck-red); animation: fmckRise .3s both; }
.fm-ck-msg[hidden] { display: none; }
.fm-ck-body .fm-ck input.input-checkbox, .fm-ck-body .fm-ck input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--ck-gold); margin: 0; flex: none; }
.fm-ck-body .fm-ck #order_review .form-row:has(input[type="checkbox"]), .fm-ck-body .fm-ck #order_review p:has(> input[type="checkbox"]), .fm-ck-body .fm-ck #order_review p:has(> label input[type="checkbox"]) { margin: 0 0 16px; }
.fm-ck-body .fm-ck #order_review label:has(> input[type="checkbox"]) { display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; font-size: 13px; color: var(--ck-body); }
/* terms: always accepted, only the notice shows */
.fm-ck-body .fm-ck .woocommerce-terms-and-conditions-wrapper input#terms { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.fm-ck-body .fm-ck .woocommerce-terms-and-conditions-wrapper .required { display: none; }
.fm-ck-body .fm-ck .woocommerce-terms-and-conditions-wrapper label { display: block; min-height: 0; margin: 0 0 12px; font-size: 12px; color: var(--ck-muted); }
/* phone: country code + number */
.fm-ck-phone { display: flex; gap: 8px; }
.fm-ck-phone > .input-text { flex: 1; min-width: 0; }
.fm-ck-cc { position: relative; flex: none; width: 104px; height: 52px; display: flex; align-items: center; justify-content: center; gap: 6px; border: 1.5px solid var(--ck-line); border-radius: 16px; background: #fff; font-size: 15px; color: var(--ck-body); transition: border-color .2s, box-shadow .2s; }
.fm-ck-cc svg { color: var(--ck-gold-t); }
.fm-ck-cc:focus-within { border-color: var(--ck-gold); box-shadow: 0 0 0 4px rgba(204,153,102,.16); }
.fm-ck-body .fm-ck .fm-ck-cc select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; border: 0; padding: 0; font-size: 16px; }
.fm-ck-body .fm-ck .woocommerce-input-wrapper strong { display: block; font-weight: 500; font-size: 15px; padding: 4px 0; }
.fm-ck-wanote { margin: 14px 0 0; display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 16px; background: #eefaf2; font-size: 12px; line-height: 1.5; color: #2f6b3e; animation: fmckRise .45s .12s var(--ck-ease) both; }
.fm-ck-wanote svg { flex: none; width: 18px; height: 18px; color: #25a35a; margin-top: 1px; }
.woocommerce-account-fields { margin-top: 8px; }

/* ---------- 3 · delivery ---------- */
.fm-ck-country { margin-bottom: 4px; }
.fm-ck-country .form-row label { margin-top: 0 !important; }
.fm-ck-qwrap { display: flex; align-items: center; gap: 10px; padding: 0 14px; color: var(--ck-gold); }
.fm-ck-qwrap input { flex: 1; min-width: 0; height: 48px; border: 0; background: transparent; font-size: 16px; color: var(--ck-text); outline: none; padding: 0; }
.fm-ck-sugs { margin-top: 6px; border: 1px solid var(--ck-line); border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.08); animation: fmckRise .3s both; }
.fm-ck-sugs[hidden] { display: none; }
.fm-ck-sug { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border: 0; border-top: 1px solid var(--ck-bg3); background: #fff; text-align: left; color: var(--ck-text); }
.fm-ck-sug:first-child { border-top: 0; }
.fm-ck-sug:hover, .fm-ck-sug.is-active { background: var(--ck-bg); }
.fm-ck-sug svg { flex: none; color: var(--ck-muted2); }
.fm-ck-sug b { display: block; font-size: 14px; font-weight: 500; }
.fm-ck-sug small { display: block; font-size: 12px; color: var(--ck-muted); }
.fm-ck-sugs-g { padding: 6px 14px; font-size: 10px; color: var(--ck-muted2); text-align: right; border-top: 1px solid var(--ck-bg3); }
.fm-ck-found { display: none; flex-wrap: wrap; align-items: flex-start; border-radius: 18px; overflow: hidden; border: 1px solid var(--ck-line); background: #fff; animation: fmckRise .45s var(--ck-ease) both; }
.fm-ck-map { position: relative; flex: 1 1 100%; height: 170px; background: #efe8dc; }
.fm-ck-map.no-map { display: none; }
.fm-ck-mapc { position: absolute; inset: 0; }
.fm-ck-pin { position: absolute; left: 50%; top: 50%; margin: -30px 0 0 -15px; z-index: 2; animation: fmckDrop .6s .15s cubic-bezier(.2,.9,.3,1.3) both; filter: drop-shadow(0 3px 4px rgba(0,0,0,.25)); }
.fm-ck-ring { position: absolute; left: 50%; top: 50%; width: 30px; height: 30px; margin: -15px 0 0 -15px; border-radius: 50%; background: rgba(204,153,102,.4); z-index: 1; animation: fmckRing 2s ease-out infinite; }
.fm-ck-found-t { flex: 1; min-width: 0; padding: 10px 14px 12px; }
.fm-ck-found-a { display: block; font-size: 13px; font-weight: 500; color: var(--ck-body); }
.fm-ck-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fm-ck-chips span { font-size: 11px; padding: 3px 9px; border-radius: 999px; background: var(--ck-bg2); color: var(--ck-body); }
.fm-ck-editaddr { margin: 6px 14px 0 0; }
.fm-ck-addrlinks { margin: 4px 0 0; }
.fm-ck-addr[data-mode="search"] .fm-ck-fields, .fm-ck-addr[data-mode="search"] #billing_address_2_field, .fm-ck-addr[data-mode="search"] .fm-ck-searchagain { display: none; }
.fm-ck-addr[data-mode="found"] .fm-ck-search, .fm-ck-addr[data-mode="found"] .fm-ck-fields, .fm-ck-addr[data-mode="found"] .fm-ck-addrlinks { display: none; }
.fm-ck-addr[data-mode="found"] .fm-ck-found { display: flex; }
.fm-ck-addr[data-mode="edit"] .fm-ck-search, .fm-ck-addr[data-mode="edit"] .fm-ck-manual { display: none; }
.fm-ck-addr[data-mode="edit"] .fm-ck-fields { animation: fmckRise .4s both; }

.fm-ck-ship { margin-top: 14px; }
.fm-ck-ship.is-busy { opacity: .6; }
.fm-ck-note { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 14px; background: #fbf1e6; color: #8a5f33; font-size: 13px; font-weight: 500; }
.fm-ck-note.fm-new { animation: fmckToast .55s cubic-bezier(.2,.9,.3,1.3) both; }
/* someone else as recipient */
.fm-ck-other { margin-top: 14px; }
.fm-ck-other:not(:has(#ship-to-different-address-checkbox:checked)) .shipping_address { display: none; }
.fm-ck-otherq { margin: 0; }
.fm-ck-body .fm-ck .fm-ck-otherq label { display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; padding: 0; font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--ck-body); cursor: pointer; }
.fm-ck-body .fm-ck .fm-ck-otherq label span { display: block; }
.fm-ck-otherl { margin: 4px 0 0; padding: 10px 14px; border-radius: 14px; background: var(--ck-bg3); font-size: 12px; color: var(--ck-body); }
@media (min-width: 900px) {   /* city + province, postcode + phone side by side */
	.fm-ck-other .fm-ck-grid > #shipping_city_field, .fm-ck-other .fm-ck-grid > #shipping_postcode_field { grid-column: 1; }
	.fm-ck-other .fm-ck-grid > #shipping_state_field, .fm-ck-other .fm-ck-grid > #shipping_phone_field { grid-column: 2; }
}
.fm-ck-note.is-free { background: var(--ck-green-bg); color: var(--ck-green); }
.fm-ck-note svg { flex: none; }
.fm-ck-note span { flex: 1; }
.fm-ck-note .fm-ck-link { min-height: 32px; flex: none; }
.fm-ck-sub { margin: 18px 0 8px; font-size: 12px; font-weight: 500; color: var(--ck-muted); }
.fm-ck-rates { display: flex; flex-direction: column; gap: 8px; }
.fm-ck-opt { position: relative; display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 12px 16px; border: 1.5px solid var(--ck-line); border-radius: 18px; background: #fff; cursor: pointer; transition: border-color .2s, background .2s, transform .15s; }
.fm-ck-opt:active { transform: scale(.98); }
.fm-ck-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fm-ck-opt.is-on, .fm-ck-opt:has(input:checked) { border-color: var(--ck-gold); background: #fff9f2; }
.fm-ck-opt:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(204,153,102,.35); }
.fm-ck-ico { width: 40px; height: 40px; border-radius: 12px; background: var(--ck-bg2); color: var(--ck-gold-t); display: flex; align-items: center; justify-content: center; flex: none; }
.fm-ck-opt-t { flex: 1; min-width: 0; }
.fm-ck-opt-t b { display: block; font-size: 14px; font-weight: 500; }
.fm-ck-opt-t small { display: block; font-size: 12px; color: var(--ck-muted); }
.fm-ck-opt-p { font-size: 13px; font-weight: 600; white-space: nowrap; }
.fm-ck-opt-p.is-free { color: var(--ck-green); }
.fm-ck-radio { width: 22px; height: 22px; border-radius: 50%; border: 2px solid #d9c6b2; flex: none; display: flex; align-items: center; justify-content: center; transition: border-color .2s; }
.fm-ck-opt.is-on .fm-ck-radio, .fm-ck-opt:has(input:checked) .fm-ck-radio { border-color: var(--ck-gold); }
.fm-ck-opt.is-on .fm-ck-radio::after, .fm-ck-opt:has(input:checked) .fm-ck-radio::after { content: ""; width: 11px; height: 11px; border-radius: 50%; background: var(--ck-gold); animation: fmckPop .35s both; }
.fm-ck-empty { margin: 14px 0 0; font-size: 13px; color: var(--ck-muted); }
.fm-ck-ship.is-bad .fm-ck-rates { animation: fmckShakeA .45s; }

/* ---------- 4 · payment (WooCommerce payment.php) ---------- */
.fm-ck-body .fm-ck #order_review { display: flex; flex-direction: column; gap: 16px; }
.fm-ck-body .fm-ck #payment { order: 1; background: none; border-radius: 0; }
.fm-ck-body .fm-ck .fm-ck-sum { order: 2; }
.fm-ck-body .fm-ck #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 8px; }
.fm-ck-body .fm-ck #payment ul.payment_methods::before, .fm-ck-body .fm-ck #payment ul.payment_methods::after { display: none; }
.fm-ck-body .fm-ck #payment ul.payment_methods li { position: relative; margin: 0; padding: 0; border: 1.5px solid var(--ck-line); border-radius: 18px; background: #fff; line-height: 1.4; transition: border-color .2s, background .2s; }
.fm-ck-body .fm-ck #payment ul.payment_methods li:has(input:checked), .fm-ck-body .fm-ck #payment ul.payment_methods li.is-on { border-color: var(--ck-gold); background: #fff9f2; }
.fm-ck-body .fm-ck #payment ul.payment_methods li > input.input-radio { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.fm-ck-body .fm-ck #payment ul.payment_methods li > label { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-height: 64px; margin: 0; padding: 12px 54px 12px 16px; font-size: 15px; font-weight: 500; color: var(--ck-text); cursor: pointer; }
.fm-ck-body .fm-ck #payment ul.payment_methods li > label::after { content: ""; position: absolute; right: 16px; top: 21px; width: 22px; height: 22px; border-radius: 50%; border: 2px solid #d9c6b2; background: #fff; transition: border-color .2s, box-shadow .2s; }
.fm-ck-body .fm-ck #payment ul.payment_methods li:has(input:checked) > label::after, .fm-ck-body .fm-ck #payment ul.payment_methods li.is-on > label::after { border-color: var(--ck-gold); box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 11px var(--ck-gold); }
.fm-ck-body .fm-ck #payment ul.payment_methods li:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(204,153,102,.35); }
.fm-ck-body .fm-ck #payment ul.payment_methods li img { max-height: 24px; width: auto; margin: 0; display: inline-block; }
.fm-ck-body .fm-ck #payment div.payment_box { margin: -4px 0 0; padding: 0 16px 14px; background: none; color: var(--ck-muted); font-size: 12px; line-height: 1.5; }
.fm-ck-body .fm-ck #payment div.payment_box::before { display: none; }
.fm-ck-body .fm-ck #payment div.payment_box p { margin: 0; }
.fm-ck-body .fm-ck #payment div.form-row.place-order { margin: 10px 0 0; padding: 0; }
.fm-ck-body .fm-ck #payment .woocommerce-privacy-policy-text, .fm-ck-body .fm-ck #payment .woocommerce-terms-and-conditions-wrapper { font-size: 12px; color: var(--ck-muted); }
.fm-ck-body .fm-ck #payment .woocommerce-privacy-policy-text p { margin: 0 0 6px; }
.fm-ck-body .fm-ck #payment #place_order { position: absolute !important; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }
.fm-ck-body .fm-ck .blockUI.blockOverlay { border-radius: 18px; }

.fm-ck-body .fm-ck .fm-ck-sum { width: 100%; margin: 0; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--ck-edge); border-radius: 22px; box-shadow: 0 10px 30px rgba(0,0,0,.06); overflow: hidden; }
.fm-ck-body .fm-ck .fm-ck-sum th, .fm-ck-body .fm-ck .fm-ck-sum td { padding: 5px 18px; border: 0; background: none; font-size: 13px; font-weight: 400; color: var(--ck-body); text-align: left; vertical-align: top; }
.fm-ck-body .fm-ck .fm-ck-sum td { text-align: right; }
.fm-ck-body .fm-ck .fm-ck-sum tbody tr:first-child th, .fm-ck-body .fm-ck .fm-ck-sum tbody tr:first-child td { padding-top: 16px; }
.fm-ck-body .fm-ck .fm-ck-sum .cart-discount td { color: var(--ck-green); font-weight: 500; }
.fm-ck-body .fm-ck .fm-ck-sum .order-total th, .fm-ck-body .fm-ck .fm-ck-sum .order-total td { padding-top: 12px; border-top: 1px solid var(--ck-line2); font-size: 17px; font-weight: 600; color: var(--ck-text); }
.fm-ck-body .fm-ck .fm-ck-sum .order-total small { display: block; font-size: 11px; font-weight: 400; color: var(--ck-muted); }
.fm-ck-body .fm-ck .fm-ck-sum .fm-ck-to { padding: 4px 18px 16px; font-size: 12px; color: var(--ck-muted); text-align: left; }

.fm-ck-notes { margin-top: 14px; }
.fm-ck-notes summary { display: inline-flex; align-items: center; min-height: 40px; color: var(--ck-gold-t); font-size: 13px; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; list-style: none; }
.fm-ck-notes summary::-webkit-details-marker { display: none; }
.fm-ck-notes[open] .woocommerce-additional-fields { animation: fmckRise .35s both; }

.fm-ck-revs { margin-top: 14px; padding: 12px 14px; border-radius: 16px; background: #fff; border: 1px solid var(--ck-line2); }
.fm-ck-revs-h { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 12px; }
.fm-ck-revs-h span:not(.fm-ck-stars) { color: var(--ck-muted); }
.fm-ck-stars { color: var(--ck-gold); letter-spacing: 2px; }
.fm-ck-rev { margin: 6px 0 0; }
.fm-ck-rev.is-on { animation: fmckRise .5s both; }
.fm-ck-rev blockquote { margin: 0; font-size: 13px; line-height: 1.55; color: var(--ck-body); }
.fm-ck-rev figcaption { margin-top: 4px; font-size: 11px; color: var(--ck-muted2); }
.fm-ck-revdots { display: flex; gap: 4px; margin-top: 8px; }
.fm-ck-revdots i { width: 6px; height: 6px; border-radius: 999px; background: #e6d6c4; transition: all .35s; }
.fm-ck-revdots i.is-on { width: 18px; background: var(--ck-gold); }

/* ---------- WooCommerce notices ---------- */
.fm-ck .woocommerce-error, .fm-ck .woocommerce-message, .fm-ck .woocommerce-info { list-style: none; margin: 0 0 12px; padding: 12px 16px; border: 0; border-radius: 16px; background: #fbeaec; color: #8a2a36; font-size: 13px; line-height: 1.5; animation: fmckToast .5s both; }
.fm-ck .woocommerce-error::before, .fm-ck .woocommerce-message::before, .fm-ck .woocommerce-info::before { display: none; }
.fm-ck .woocommerce-error li { margin: 0; padding: 2px 0; }
.fm-ck .woocommerce-message { background: var(--ck-green-bg); color: var(--ck-green); }
.fm-ck .woocommerce-info { background: var(--ck-bg3); color: var(--ck-body); }

/* ---------- bottom bar / step buttons ---------- */
.fm-ck-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: grid; grid-template-columns: 1fr; gap: 10px; padding: 12px 20px calc(14px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--ck-line2); box-shadow: 0 -8px 24px rgba(0,0,0,.05); }
.fm-ck-back { display: none; }
.fm-ck-navinfo { display: flex; justify-content: space-between; align-items: baseline; }
.fm-ck-navinfo small { font-size: 12px; color: var(--ck-muted); }
.fm-ck-total { font-size: 15px; font-weight: 600; }
.fm-ck-total .amount { font-weight: 600; }
.fm-ck-next { position: relative; overflow: hidden; height: 56px; width: 100%; border: 0; border-radius: 999px; background: var(--ck-gold); color: #fff; font-weight: 600; font-size: 16px; box-shadow: 0 8px 20px rgba(204,153,102,.35); display: flex; align-items: center; justify-content: center; gap: 10px; transition: transform .15s, background .2s, box-shadow .2s; }
.fm-ck-next:hover { background: var(--ck-gold-h); }
.fm-ck-next:active { transform: scale(.97); }
.fm-ck-next::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 34%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent); animation: fmckSweep 3.4s ease-in-out infinite; }
.fm-ck-arr { animation: fmckArrow 1.6s ease-in-out infinite; }
.fm-ck-next.is-busy { pointer-events: none; }
.fm-ck-next.is-busy .fm-ck-arr { display: none; }
.fm-ck-next.is-busy::before { content: ""; width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; animation: fmckSpin .7s linear infinite; order: 2; }

/* ---------- desktop ---------- */
@media (min-width: 900px) {
	.fm-ck h1 { font-size: 34px; line-height: 1.2; margin-top: 0; }
	.fm-ck-lead { font-size: 15px; margin-bottom: 22px; }
	.fm-ck-top { display: none; }
	.fm-ck-form { display: grid; grid-template-columns: minmax(340px, 440px) minmax(0, 1fr); min-height: 100vh; }
	.fm-ck-side { position: sticky; top: 0; left: auto; right: auto; bottom: auto; z-index: 1; height: 100vh; max-height: none; transform: none; visibility: visible; border-radius: 0; box-shadow: none; background: var(--ck-brown); color: #f3ebe2; padding: 40px 44px; display: flex; flex-direction: column; gap: 24px; transition: none; }
	.fm-ck-veil, .fm-ck-sheet-h { display: none !important; }
	.fm-ck-brand { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
	.fm-ck-brand a { display: flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 600; letter-spacing: .22em; font-size: 15px; color: #f3ebe2; text-decoration: none; }
	.fm-ck-brand a svg { color: var(--ck-gold-l); width: 22px; height: 22px; }
	.fm-ck-secure { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #c9b49a; }

	.fm-ck-journey { display: block; position: relative; }
	.fm-ck-jline { position: absolute; left: 15px; top: 26px; bottom: 26px; width: 2px; background: rgba(226,191,138,.18); }
	.fm-ck-jline i { display: block; width: 100%; height: 0; background: var(--ck-gold-l); transition: height .8s var(--ck-ease); }
	.fm-ck[data-step="2"] .fm-ck-jline i { height: 33.4%; }
	.fm-ck[data-step="3"] .fm-ck-jline i { height: 66.7%; }
	.fm-ck[data-step="4"] .fm-ck-jline i { height: 100%; }
	.fm-ck-jstep { position: relative; display: flex; gap: 14px; align-items: flex-start; width: 100%; border: 0; background: none; padding: 10px 0; text-align: left; color: #c9b49a; }
	.fm-ck-jstep:disabled { cursor: default; }
	.fm-ck-phase { width: 32px; height: 32px; border-radius: 50%; overflow: hidden; position: relative; flex: none; background: #5a4636; transition: background .4s; }
	.fm-ck-phase i { position: absolute; inset: 0; border-radius: 50%; background: var(--ck-brown); }
	.fm-ck-phase-1 i { transform: translateX(10px); }
	.fm-ck-phase-2 i { transform: translateX(16px); }
	.fm-ck-phase-3 i { transform: translateX(23px); }
	.fm-ck-phase-4 i { transform: translateX(34px); }
	.fm-ck-jstep.is-on .fm-ck-phase, .fm-ck-jstep.is-done .fm-ck-phase { background: var(--ck-gold-l); }
	.fm-ck-jstep.is-on .fm-ck-phase { animation: fmckGlowD 2.2s ease-in-out infinite; }
	.fm-ck-jt { flex: 1; min-width: 0; padding-top: 4px; }
	.fm-ck-jt b { display: block; font-size: 15px; font-weight: 500; }
	.fm-ck-jstep.is-on .fm-ck-jt b, .fm-ck-jstep.is-done .fm-ck-jt b { color: #f3ebe2; }
	.fm-ck-jstep.is-on .fm-ck-jt b { font-weight: 600; }
	.fm-ck-jt small { display: block; font-size: 12px; color: #c9b49a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.fm-ck-jedit { display: none; font-size: 12px; color: var(--ck-gold-l); padding-top: 6px; }
	.fm-ck-jstep.is-done .fm-ck-jedit { display: block; }
	.fm-ck-jstep.is-done:hover .fm-ck-jt b { text-decoration: underline; text-underline-offset: 3px; }

	.fm-ck-mini { padding: 4px 18px 14px; border-radius: 22px; background: rgba(255,255,255,.06); border: 1px solid rgba(226,191,138,.18); }
	.fm-ck-dots span { border-color: var(--ck-brown); }
	.fm-ck-mini-list { display: none; }
	.fm-ck-side.is-mini-open .fm-ck-mini-list { display: block; animation: fmckRise .35s both; }
	.fm-ck-mini-it { border-top-color: rgba(226,191,138,.18); padding: 8px 0; }
	.fm-ck-mini-img { width: 40px; height: 48px; border-radius: 10px; }
	.fm-ck-mini-name { font-size: 13px; color: #f3ebe2; }
	.fm-ck-mini-name small, .fm-ck-mini-line { color: #c9b49a; }
	.fm-ck-mini-p { font-size: 13px; color: #f3ebe2; }
	.fm-ck-side-links { margin-top: -14px; }
	.fm-ck-side .fm-ck-link { color: var(--ck-gold-l); }
	.fm-ck-minitoggle { display: inline-flex; }

	.fm-ck-side .fm-ck-revs { display: block; margin-top: auto; padding: 0; border: 0; background: none; }
	.fm-ck-side .fm-ck-revs-h b { color: #f3ebe2; }
	.fm-ck-side .fm-ck-revs-h span:not(.fm-ck-stars), .fm-ck-side .fm-ck-rev figcaption { color: #c9b49a; }
	.fm-ck-side .fm-ck-stars { color: var(--ck-gold-l); }
	.fm-ck-side .fm-ck-rev blockquote { font-size: 14px; line-height: 1.6; color: #f3ebe2; }
	.fm-ck-side .fm-ck-revdots i { background: rgba(226,191,138,.25); }
	.fm-ck-side .fm-ck-revdots i.is-on { background: var(--ck-gold-l); }
	.fm-ck-wa.is-side { display: flex; margin-top: 0; min-height: 56px; box-shadow: none; }
	.fm-ck-side-links + .fm-ck-wa.is-side { margin-top: auto; }   /* no reviews yet: the button sits at the bottom */
	.fm-ck-wa.is-main, .fm-ck-revs.is-main { display: none; }

	.fm-ck-main { padding: 56px 48px 64px; display: flex; flex-direction: column; align-items: center; }
	.fm-ck-main > * { width: 100%; max-width: 620px; }
	.fm-ck-progress { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
	.fm-ck-progress .fm-ck-steptxt { font-size: 13px; font-weight: 500; color: var(--ck-gold-t); white-space: nowrap; }
	.fm-ck-bar { flex: 1; height: 4px; border-radius: 999px; background: var(--ck-line); overflow: hidden; }
	.fm-ck-bar i { display: block; height: 100%; width: 25%; background: var(--ck-gold); border-radius: 999px; transition: width .7s var(--ck-ease); }
	.fm-ck[data-step="2"] .fm-ck-bar i { width: 50%; }
	.fm-ck[data-step="3"] .fm-ck-bar i { width: 75%; }
	.fm-ck[data-step="4"] .fm-ck-bar i { width: 100%; }
	.fm-ck-progress .fm-ck-hint { font-size: 12px; color: var(--ck-muted); white-space: nowrap; }

	.fm-ck-item { gap: 18px; padding: 14px; margin-bottom: 12px; }
	.fm-ck-thumb { width: 96px; height: 120px; }
	.fm-ck-name { font-size: 16px; padding-right: 40px; }
	.fm-ck-meta { font-size: 13px; }
	.fm-ck-price b { font-size: 16px; }
	.fm-ck-x { top: 6px; right: 6px; }
	.fm-ck-x:hover { background: var(--ck-bg); }
	.fm-ck-meter { padding: 14px 18px; }
	.fm-ck-meter-t { font-size: 14px; }
	.fm-ck-addons { margin-top: 26px; }
	.fm-ck-addons-h h2 { font-size: 17px; }
	.fm-ck-addons-h p { font-size: 13px; }
	.fm-ck-addons-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 2px 0 0; overflow: visible; }
	.fm-ck-addon { width: auto; padding: 10px; }
	.fm-ck-addon-img { height: 150px; }
	.fm-ck-addon-name { font-size: 14px; }
	.fm-ck-addon-price { font-size: 13px; }
	.fm-ck-trust { justify-content: flex-start; margin-top: 18px; }
	.fm-ck-grid { column-gap: 14px; }
	.fm-ck-step[data-step="2"] .fm-ck-grid > #billing_email_field { grid-column: 1; }
	.fm-ck-step[data-step="2"] .fm-ck-grid > #billing_phone_field { grid-column: 2; }
	.fm-ck-map { flex: 0 0 55%; height: 190px; }
	.fm-ck-found-t { padding: 14px 16px; }
	.fm-ck-editaddr { margin: 10px 16px 0 0; }
	.fm-ck-rates { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
	.fm-ck-rates .fm-ck-opt { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px 16px 16px; }
	.fm-ck-rates .fm-ck-radio { position: absolute; top: 14px; right: 14px; }
	.fm-ck-body .fm-ck #payment ul.payment_methods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.fm-ck-body .fm-ck #payment ul.payment_methods li > label { min-height: 72px; }
	.fm-ck-body .fm-ck .fm-ck-sum th, .fm-ck-body .fm-ck .fm-ck-sum td { font-size: 14px; padding-left: 20px; padding-right: 20px; }
	.fm-ck-body .fm-ck .fm-ck-sum .order-total th, .fm-ck-body .fm-ck .fm-ck-sum .order-total td { font-size: 18px; }

	.fm-ck-nav { position: static; display: flex; align-items: center; gap: 14px; margin-top: 32px; padding: 0; background: none; border: 0; box-shadow: none; }
	.fm-ck-back { display: inline-flex; align-items: center; height: 52px; padding: 0 22px; border: 1.5px solid rgba(204,153,102,.5); border-radius: 999px; background: #fff; color: var(--ck-gold-t); font-weight: 500; font-size: 14px; }
	.fm-ck[data-step="1"] .fm-ck-back { visibility: hidden; }
	.fm-ck-navinfo { flex: 1; justify-content: flex-end; gap: 0; }
	.fm-ck-navinfo small { display: none; }
	.fm-ck-next { width: auto; padding: 0 34px; }
}
@media (min-width: 1200px) {
	.fm-ck-form { grid-template-columns: 460px minmax(0, 1fr); }
}

/* ---------- motion ---------- */
@keyframes fmckSlide { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: none; } }
@keyframes fmckSlideBack { from { opacity: 0; transform: translateX(-28px); } to { opacity: 1; transform: none; } }
@keyframes fmckRise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes fmckPop { 0% { transform: scale(.5); } 60% { transform: scale(1.14); } 100% { transform: scale(1); } }
@keyframes fmckPopIn { 0% { opacity: 0; transform: translateY(14px) scale(.94); } 100% { opacity: 1; transform: none; } }
@keyframes fmckToast { from { opacity: 0; transform: translateY(10px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes fmckDrop { 0% { opacity: 0; transform: translateY(-26px); } 70% { opacity: 1; transform: translateY(2px); } 100% { transform: none; } }
@keyframes fmckRing { 0% { transform: scale(.4); opacity: .8; } 100% { transform: scale(2.4); opacity: 0; } }
@keyframes fmckFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes fmckGrow { from { width: 0; } }
@keyframes fmckSweep { 0% { transform: translateX(-120%) skewX(-20deg); } 55%, 100% { transform: translateX(320%) skewX(-20deg); } }
@keyframes fmckArrow { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes fmckShakeA { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-7px); } 40% { transform: translateX(6px); } 60% { transform: translateX(-4px); } 80% { transform: translateX(2px); } }
@keyframes fmckShakeB { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-7px); } 40% { transform: translateX(6px); } 60% { transform: translateX(-4px); } 80% { transform: translateX(2px); } }
@keyframes fmckSpin { to { transform: rotate(360deg); } }
@keyframes fmckGlow { 0%, 100% { box-shadow: 0 0 0 0 rgba(204,153,102,.35); } 50% { box-shadow: 0 0 0 8px rgba(204,153,102,0); } }
@keyframes fmckGlowD { 0%, 100% { box-shadow: 0 0 0 0 rgba(226,191,138,.45); } 50% { box-shadow: 0 0 0 8px rgba(226,191,138,0); } }
@keyframes fmckNudge { 0%, 12%, 100% { transform: rotate(0); } 3% { transform: rotate(-12deg); } 6% { transform: rotate(10deg); } 9% { transform: rotate(-5deg); } }
@media (prefers-reduced-motion: reduce) {
	.fm-ck *, .fm-ck *::before, .fm-ck *::after { animation: none !important; transition: none !important; }
}

/* Weltentanzer: PayPal's own buttons in the payment step ("wallet mode", fm-checkout.js wallet()).
   The order step then reads: payment methods, order summary, terms + PayPal / card buttons at the bottom
   (where the order button normally is); our own button steps aside. */
.fm-ck.is-wallet .fm-ck-next { display: none; }
.fm-ck-wallet-hint { display: none !important; }
.fm-ck-body .fm-ck #order_review > #payment { display: contents; }
.fm-ck-body .fm-ck #payment > ul.payment_methods { order: 1; }
.fm-ck-body .fm-ck #order_review > .fm-ck-sum { order: 2; }
.fm-ck-body .fm-ck #payment > .form-row.place-order { order: 3; margin: 4px 0 0; }
.fm-ck-body .fm-ck #payment .ppc-button-wrapper, .fm-ck-body .fm-ck #payment [id^="ppc-button-"] { margin-top: 12px; }
.fm-ck:not(.is-wallet) #payment .ppc-button-wrapper:empty { display: none; }
.fm-ck-body .fm-ck #payment .woocommerce-terms-and-conditions-wrapper { font-size: 13px; line-height: 1.5; }
.fm-ck-body .fm-ck #payment .woocommerce-terms-and-conditions-wrapper a { text-decoration: underline; }

/* Weltentanzer: legal guarantee notice under the order button (last step only) + its popup */
.fm-ck-legal { display: none; margin: 0; font-size: 12px; line-height: 1.4; color: var(--ck-muted, #8a7b6d); text-align: center; }
.fm-ck[data-step="4"] .fm-ck-legal { display: block; }
.fm-ck-legal a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@media (min-width: 992px) {
	.fm-ck-nav { flex-wrap: wrap; }
	.fm-ck-legal { flex-basis: 100%; text-align: right; }
}
.fm-ck-legal-dlg { width: min(720px, calc(100vw - 24px)); max-height: calc(100vh - 40px); padding: 36px 16px 16px; border: 0; border-radius: 18px; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.fm-ck-legal-dlg::backdrop { background: rgba(30,24,20,.55); }
.fm-ck-legal-dlg img { display: block; width: 100%; height: auto; }
.fm-ck-legal-x { position: absolute; top: 6px; right: 10px; width: 32px; height: 32px; border: 0; background: none; font-size: 26px; line-height: 1; cursor: pointer; color: #4a3b2f; }

/* Weltentanzer: "inkl. MwSt." under the totals */
.fm-incl-vat { display: block; margin-top: 1px; font-size: 11px; font-weight: 400; line-height: 1.2; letter-spacing: 0; opacity: .7; text-align: right; }
.fm-ck-navinfo .fm-incl-vat { order: 3; flex-basis: 100%; }
.fm-ck-navinfo { flex-wrap: wrap; }
.fm-ck-navinfo small.fm-incl-vat { display: block !important; font-size: 11px; }

/* Weltentanzer: PayPal adds its button + "pay in instalments" line right before the payment area (outside #payment),
   so they sat above the payment methods. Now: methods, summary, then PayPal / terms / buttons at the bottom. */
.fm-ck-body .fm-ck #order_review > *:not(#payment):not(.fm-ck-sum) { order: 3; }
.fm-ck-body .fm-ck #order_review > .fm-ck-sum { order: 2; }
.fm-ck-body .fm-ck #order_review > #payment > *:not(ul.payment_methods) { order: 4; }
.fm-ck-body .fm-ck #order_review .ppcp-messages, .fm-ck-body .fm-ck #order_review [id^="ppcp-messages"] { margin: 4px 0 0; }
.fm-ck-body .fm-ck .fm-ck-step[data-step="4"]:not([hidden]) { display: flex; flex-direction: column; }
.fm-ck-body .fm-ck .fm-ck-step[data-step="4"] > * { order: 2; }
.fm-ck-body .fm-ck .fm-ck-step[data-step="4"] > h1, .fm-ck-body .fm-ck .fm-ck-step[data-step="4"] > .fm-ck-lead, .fm-ck-body .fm-ck .fm-ck-step[data-step="4"] > .screen-reader-text { order: 0; }
.fm-ck-body .fm-ck .fm-ck-step[data-step="4"] > #order_review { order: 1; }
.fm-ck-body .fm-ck .fm-ck-step[data-step="4"] > .fm-ck-notes { order: 3; }
.fm-ck-body .fm-ck .fm-ck-step[data-step="4"] > .fm-ck-reviews, .fm-ck-body .fm-ck .fm-ck-step[data-step="4"] > [class*="fm-ck-rev"] { order: 4; }

/* "You save …" (fm_save_pill(), inc/fm-combo.php): sale prices + add-on + combo + codes + free delivery */
.fm-save-pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 14px; background: #e7f6ec; color: #1e7a45; font-size: 12.5px; font-weight: 600; line-height: 1.3; white-space: nowrap; }
.fm-save-pill svg { flex: none; }
.fm-save-pill .woocommerce-Price-amount, .fm-save-pill bdi { color: inherit; font-weight: 700; }
tr.fm-save-tr td { padding-top: 4px !important; text-align: right !important; border: 0 !important; background: none !important; }
.fm-save-pill.is-hero { margin-top: 8px; background: rgba(154,212,173,.18); color: #9ad4ad; }
.fm-ck-navsave:empty { display: none; }
.fm-ck-navsave { order: 4; flex-basis: 100%; text-align: right; }
.fm-save-pill.is-nav { padding: 3px 10px; font-size: 11.5px; }
