/* Farmàcia la Llanera · cistella i checkout (prototip: webs/maquetes/llanera-cistella-checkout.html) */

body.fl-compra-on {
	--fl-verd: #1B8C30; --fl-verd-fosc: #146B25; --fl-verd-hover: #0F5A1E; --fl-blau: #005694;
	--fl-text: #4B4B4B; --fl-titol: #1F2A22; --fl-accent: #70DF85; --fl-suau: #F2F8F3; --fl-fons: #EEF5F0;
	--fl-linia: #DCE6DF; --fl-vora: #B4C6BA; --fl-gris: #5A6A5F; --fl-error: #B3261E;
	--fl-ombra: 0 1px 2px rgba(20,60,32,.08), 0 6px 16px -6px rgba(20,60,32,.16);
	--fl-ease: cubic-bezier(.16,1,.3,1);
	background: var(--fl-fons);
}
body.fl-compra-on #outer-wrap, body.fl-compra-on #wrap, body.fl-compra-on #main,
body.fl-compra-on #content-wrap, body.fl-compra-on .site-content, body.fl-compra-on .content-area,
body.fl-compra-on .elementor-widget-wc-elements, body.fl-compra-on .e-con, body.fl-compra-on .e-div-block-base, body.fl-compra-on .e-flexbox-base { background: transparent; }

/* restes del checkout de blocs a la pàgina 778 (feien sortir un cercle de càrrega) */
body.fl-compra-on .elementor-widget-text-editor:has(.wp-block-woocommerce-checkout) { display: none; }

.fl-compra { color: var(--fl-text); font: 400 17px/1.6 "Red Hat Text", system-ui, sans-serif; max-width: 1180px; margin: 0 auto; padding: 0 16px 72px; }
.fl-compra *, .fl-compra *::before, .fl-compra *::after { box-sizing: border-box; }
.fl-compra ::selection { background: rgba(112,223,133,.45); color: var(--fl-titol); }
.fl-compra a { color: var(--fl-blau); text-underline-offset: 3px; }
.fl-compra :focus-visible { outline: 2px solid var(--fl-blau); outline-offset: 3px; }
.fl-compra h1, .fl-compra h2, .fl-compra h3 { font-family: "Red Hat Display", sans-serif; font-weight: 600; color: var(--fl-titol); margin: 0; text-wrap: balance; text-transform: none; letter-spacing: normal; }
.fl-compra .amount, .fl-compra .fl-totals dd, .fl-compra .qty { font-variant-numeric: tabular-nums; }
.fl-compra .fl-ic { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.fl-compra .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- capçalera i passos ---------- */
.fl-capsal { padding: 32px 0 24px; }
.fl-passos { list-style: none; margin: 0 0 22px; padding: 0; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: var(--fl-gris); }
.fl-passos li { display: flex; align-items: center; gap: 8px; margin: 0; white-space: nowrap; }
.fl-passos li + li::before { content: ""; width: 28px; height: 1.5px; background: var(--fl-vora); margin-right: 2px; }
.fl-passos .p { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 600; border: 1.5px solid var(--fl-vora); background: #fff; }
.fl-passos .p svg { width: 13px; height: 13px; fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.fl-passos .fet { color: var(--fl-verd-fosc); }
.fl-passos .fet .p { background: var(--fl-verd-fosc); border-color: var(--fl-verd-fosc); }
.fl-passos .ara { color: var(--fl-titol); font-weight: 600; }
.fl-passos .ara .p { border-color: var(--fl-verd); color: var(--fl-verd-fosc); box-shadow: 0 0 0 4px rgba(27,140,48,.14); }
.fl-capsal h1 { font-size: clamp(28px, 3.6vw, 40px); line-height: 1.15; letter-spacing: -.5px; }
.fl-capsal .fl-sub { margin: 6px 0 0; font-size: 16px; color: var(--fl-gris); }

/* ---------- graella ---------- */
.fl-graella { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 28px; align-items: start; }
.fl-panell { background: #fff; border-radius: 18px; box-shadow: var(--fl-ombra); }
.fl-resum { position: sticky; top: 24px; padding: 24px; }
.fl-resum h2 { font-size: 20px; margin-bottom: 14px; }
.fl-resum-col { width: auto !important; float: none !important; }
.fl-resum-col .cart_totals { width: auto !important; float: none !important; }

/* ---------- botons ---------- */
.fl-compra .fl-btn, .fl-compra #place_order, .fl-compra .checkout-button {
	display: flex !important; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 56px; margin: 0; padding: 0 22px;
	border: 0 !important; border-radius: 999px !important; background: var(--fl-verd-fosc) !important; color: #fff !important;
	font: 600 17px/1.2 "Red Hat Text", sans-serif !important; text-transform: none !important; letter-spacing: normal !important; text-decoration: none;
	box-shadow: 0 6px 18px -8px rgba(20,107,37,.7); cursor: pointer;
	transition: background-color .2s var(--fl-ease), transform .15s var(--fl-ease);
}
.fl-compra .fl-btn:hover, .fl-compra #place_order:hover, .fl-compra .checkout-button:hover { background: var(--fl-verd-hover) !important; color: #fff !important; }
.fl-compra .fl-btn:active, .fl-compra #place_order:active { transform: scale(.98); }
.fl-compra .fl-btn .fl-ic { width: 20px; height: 20px; stroke-width: 2; }
.fl-tornar { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-size: 15px; font-weight: 500; text-decoration: none !important; }
.fl-tornar:hover { text-decoration: underline !important; }

/* ---------- totals ---------- */
.fl-totals { display: grid; grid-template-columns: 1fr auto; gap: 10px 16px; margin: 0; font-size: 16px; }
.fl-totals dt, .fl-totals dd { margin: 0; }
.fl-totals dd { text-align: right; color: var(--fl-titol); font-weight: 500; }
.fl-totals .fl-nota { grid-column: 1 / -1; margin-top: -6px; font-size: 14px; color: var(--fl-gris); text-align: left; font-weight: 400; }
.fl-totals .fl-total { font-family: "Red Hat Display", sans-serif; font-weight: 600; font-size: 22px; color: var(--fl-titol); padding-top: 14px; border-top: 1px solid var(--fl-linia); margin-top: 4px; }
.fl-totals .fl-iva { grid-column: 1 / -1; font-size: 13px; color: var(--fl-gris); margin-top: -6px; font-weight: 400; }
.fl-resum .wc-proceed-to-checkout { margin-top: 20px; padding: 0; }

/* ---------- cupó ---------- */
.fl-cupo { margin: 16px 0 0; font-size: 15px; }
.fl-cupo summary { cursor: pointer; color: var(--fl-blau); font-weight: 500; list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.fl-cupo summary::-webkit-details-marker { display: none; }
.fl-cupo summary .fl-ic { width: 16px; height: 16px; transition: transform .2s var(--fl-ease); }
.fl-cupo details[open] summary .fl-ic, details.fl-cupo[open] summary .fl-ic { transform: rotate(180deg); }
.fl-cupo .fl-fila { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; width: auto; float: none; }
.fl-cupo .fl-fila .coupon-error-notice, .fl-cupo .fl-fila .woocommerce-error { flex-basis: 100%; order: 3; margin: 0; padding: 0; border: 0; background: none; color: var(--fl-error); font-size: 14px; font-weight: 500; }
.fl-cupo .fl-fila .woocommerce-error::before { display: none; }
.fl-cupo .fl-fila input { flex: 1; min-width: 0; }
.fl-cupo .fl-fila button { min-height: 52px; padding: 0 16px; border-radius: 10px; border: 1.5px solid var(--fl-verd-fosc); background: #fff; color: var(--fl-verd-fosc); font: 600 15px "Red Hat Text", sans-serif; text-transform: none; letter-spacing: normal; cursor: pointer; }
.fl-cupo .fl-fila button:hover { background: var(--fl-suau); color: var(--fl-verd-fosc); }
.fl-cupo-msg { margin: 8px 0 0; font-size: 14px; }
.fl-cupo-msg.error { color: var(--fl-error); font-weight: 500; }
.fl-cupo-msg:empty { display: none; }
body.fl-compra-on .woocommerce-form-coupon-toggle { display: none; }
body.fl-compra-on form.checkout_coupon { display: none !important; }

/* ---------- garanties ---------- */
.fl-garanties { list-style: none; margin: 20px 0 0; padding: 18px 0 0; border-top: 1px solid var(--fl-linia); display: grid; gap: 12px; font-size: 15px; line-height: 1.45; }
.fl-garanties li { display: flex; gap: 12px; align-items: flex-start; margin: 0; }
.fl-garanties .fl-ic { color: var(--fl-verd-fosc); margin-top: 1px; }
.fl-garanties b, .fl-garanties a { color: var(--fl-titol); font-weight: 600; }

/* ================= CISTELLA ================= */
.fl-envio-gratis { padding: 18px 22px; margin-bottom: 16px; display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; align-items: center; }
.fl-envio-gratis > .fl-ic { width: 26px; height: 26px; color: var(--fl-verd-fosc); grid-row: span 2; }
.fl-envio-gratis p { margin: 0; font-size: 16px; color: var(--fl-titol); }
.fl-envio-gratis p b { font-weight: 600; }
.fl-barra { height: 8px; border-radius: 99px; background: #E1EBE4; overflow: hidden; margin-top: 6px; }
.fl-barra i { display: block; height: 100%; width: 100%; transform: scaleX(var(--fl-pct, 0)); transform-origin: left; background: linear-gradient(90deg, var(--fl-verd), var(--fl-accent)); border-radius: inherit; transition: transform .6s var(--fl-ease); }
.fl-envio-gratis.ok .fl-barra i { background: var(--fl-verd); }

.fl-productes { padding: 4px 24px; }
.fl-productes > ul { list-style: none; margin: 0; padding: 0; border: 0; width: 100%; }
.fl-prod { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto auto; gap: 6px 22px; align-items: center; padding: 20px 0; margin: 0; border-bottom: 1px solid var(--fl-linia); }
.fl-prod:last-child { border-bottom: 0; }
.fl-prod .fl-foto { width: 96px; height: 96px; border-radius: 12px; background: var(--fl-suau); overflow: hidden; display: grid; place-items: center; }
.fl-prod .fl-foto a { display: contents; }
.fl-prod .fl-foto img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; margin: 0; max-width: none; }
.fl-prod .fl-nom, .fl-prod .fl-info > a:first-child { display: block; font-weight: 600; color: var(--fl-titol); line-height: 1.35; text-decoration: none; font-size: 17px; text-transform: none; }
.fl-prod .fl-nom:hover { color: var(--fl-blau); }
.fl-prod .fl-cat { display: block; font-size: 14px; color: var(--fl-gris); margin-top: 2px; }
.fl-prod .fl-unit { display: block; font-size: 14px; color: var(--fl-gris); margin-top: 6px; }
.fl-prod .fl-unit .amount { color: inherit; font-weight: 400; }
.fl-prod .product-remove { display: block; }
.fl-compra .fl-prod a.remove.fl-treu { display: inline-flex; align-items: center; gap: 5px; width: auto; height: auto; margin-top: 8px; border: 0; border-radius: 0; background: none; color: var(--fl-gris) !important; font: 500 14px "Red Hat Text", sans-serif; line-height: 1.4; text-decoration: none; }
.fl-compra .fl-prod a.remove.fl-treu .fl-ic { width: 16px; height: 16px; }
.fl-compra .fl-prod a.remove.fl-treu:hover { color: var(--fl-error) !important; background: none; }
.fl-prod .fl-linia-total { font-weight: 600; color: var(--fl-titol); font-size: 18px; min-width: 76px; text-align: right; }
.fl-prod .fl-linia-total .amount { color: inherit; }
.fl-accions { display: none; } /* la quantitat s'actualitza sola */

/* selector de quantitat (OceanWP hi posa els botons − i +) */
.fl-compra .quantity { display: inline-flex; align-items: center; height: 44px; border: 1.5px solid var(--fl-vora); border-radius: 999px; background: #fff; overflow: hidden; margin: 0; float: none; }
.fl-compra .quantity .minus, .fl-compra .quantity .plus { width: 42px; height: 100%; border: 0 !important; background: none !important; color: var(--fl-titol) !important; font-size: 20px; line-height: 1; display: grid; place-items: center; text-decoration: none; }
.fl-compra .quantity .minus:hover, .fl-compra .quantity .plus:hover { background: var(--fl-suau) !important; }
.fl-compra .quantity .qty { width: 34px !important; min-width: 0; height: 100%; min-height: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; text-align: center; font: 600 16px "Red Hat Text", sans-serif; color: var(--fl-titol); -moz-appearance: textfield; }
.fl-compra .quantity .qty::-webkit-inner-spin-button, .fl-compra .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* complements */
.fl-complements { margin-top: 40px; }
.fl-complements h2 { font-size: clamp(22px, 2.4vw, 26px); }
.fl-complements .fl-sub { margin: 4px 0 16px; font-size: 15px; color: var(--fl-gris); }
.fl-carrusel { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.fl-rp { background: #fff; border-radius: 16px; padding: 12px 12px 14px; margin: 0; display: flex; flex-direction: column; gap: 6px; box-shadow: var(--fl-ombra); }
.fl-rp .fl-foto { position: relative; display: block; aspect-ratio: 1; border-radius: 10px; background: var(--fl-suau); overflow: hidden; }
.fl-rp .fl-foto img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; margin: 0; }
.fl-rp .fl-seg { position: absolute; left: 8px; top: 8px; font-size: 12px; font-weight: 600; line-height: 1.3; color: #fff; background: var(--fl-verd-fosc); border-radius: 8px; padding: 4px 8px; max-width: calc(100% - 16px); }
.fl-rp .fl-n { font-size: 15px; font-weight: 600; color: var(--fl-titol); line-height: 1.3; min-height: 2.6em; text-decoration: none; }
.fl-rp .fl-n:hover { color: var(--fl-blau); }
.fl-rp .fl-c { font-size: 13px; color: var(--fl-gris); margin-top: -4px; }
.fl-rp .fl-peu { display: flex; flex-direction: column; align-items: stretch; gap: 10px; margin-top: auto; padding-top: 6px; }
.fl-rp .fl-pr { font-size: 17px; }
.fl-rp .fl-pr { font-weight: 600; color: var(--fl-titol); white-space: nowrap; }
.fl-rp .fl-pr .amount { color: inherit; }
.fl-afegeix { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--fl-verd-fosc); background: #fff; color: var(--fl-verd-fosc) !important; font: 600 14px "Red Hat Text", sans-serif; text-decoration: none !important; transition: background-color .15s, color .15s; white-space: nowrap; }
.fl-afegeix:hover { background: var(--fl-verd-fosc); color: #fff !important; }
.fl-afegeix .fl-ic { width: 16px; height: 16px; stroke-width: 2.2; }
.fl-iva-preus { margin: 10px 0 0; font-size: 13px; color: var(--fl-gris); }

/* ================= CHECKOUT ================= */
body.fl-compra-on .woocommerce-form-login-toggle { max-width: 1180px; margin: 0 auto; padding: 24px 16px 0; }
body.fl-compra-on .woocommerce-form-login-toggle .woocommerce-info { margin: 0; padding: 0; border: 0; background: none; font-size: 15px; color: var(--fl-gris); text-transform: none; letter-spacing: normal; }
body.fl-compra-on .woocommerce-form-login-toggle .woocommerce-info::before { display: none; }
body.fl-compra-on .woocommerce-form-login-toggle a { color: var(--fl-blau); font-weight: 500; text-transform: none; }
body.fl-compra-on form.woocommerce-form-login { max-width: 1148px; margin: 12px auto 0; padding: 20px 24px; border: 0; border-radius: 18px; background: #fff; box-shadow: var(--fl-ombra); }

.fl-form { padding: 8px 32px 24px; }
.fl-checkout-pag form.checkout { margin: 0; }
.fl-checkout-pag .woocommerce-NoticeGroup, .fl-checkout-pag .woocommerce-error { grid-column: 1 / -1; }
.fl-pas { padding: 28px 0; border-bottom: 1px solid var(--fl-linia); }
.fl-pas:last-of-type { border-bottom: 0; }
.fl-pas > h2 { display: flex; align-items: center; gap: 12px; font-size: 22px; margin-bottom: 6px; }
.fl-pas > h2 .n { width: 32px; height: 32px; border-radius: 50%; background: var(--fl-verd-fosc); color: #fff; display: grid; place-items: center; font-size: 16px; flex: none; }
.fl-ajuda { margin: 0 0 20px 44px; font-size: 15px; color: var(--fl-gris); }
.fl-subtitol { font-size: 16px !important; margin: 22px 0 12px !important; }

/* camps */
.fl-camps { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; }
.fl-compra .form-row { margin: 0 !important; padding: 0 !important; width: auto !important; float: none !important; grid-column: 1 / -1; }
.fl-camps .form-row-first { grid-column: 1; }
.fl-camps .form-row-last { grid-column: 2; }
.fl-compra .form-row label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) { display: block; margin: 0 0 6px; font-size: 15px; font-weight: 600; color: var(--fl-titol); text-transform: none; letter-spacing: normal; line-height: 1.4; }
.fl-compra .form-row label .required { display: none; } /* només es marquen els opcionals */
.fl-compra .form-row label .optional { font-weight: 400; color: var(--fl-gris); }
.fl-compra .form-row .description { display: block !important; position: static !important; margin: 5px 0 0; padding: 0; background: none !important; color: var(--fl-gris); font-size: 13px; line-height: 1.45; }
.fl-compra .form-row .description::before { display: none; }
.fl-compra input.input-text, .fl-compra .form-row select, .fl-compra .form-row textarea, .fl-compra #fl-cupo, .fl-compra #coupon_code,
.fl-compra .select2-container .select2-selection--single {
	width: 100%; height: auto; min-height: 52px; padding: 12px 14px; margin: 0;
	border: 1.5px solid var(--fl-vora) !important; border-radius: 10px !important; background-color: #fff;
	font: 400 17px/1.4 "Red Hat Text", sans-serif; color: var(--fl-titol); box-shadow: none;
	transition: border-color .15s, box-shadow .15s;
}
.fl-compra .form-row textarea { min-height: 96px; resize: vertical; }
.fl-compra input.input-text::placeholder, .fl-compra textarea::placeholder, .fl-compra #fl-cupo::placeholder { color: #71817A; opacity: 1; }
.fl-compra input.input-text:hover, .fl-compra .form-row select:hover, .fl-compra textarea:hover { border-color: #8FA697 !important; }
.fl-compra input.input-text:focus, .fl-compra .form-row select:focus, .fl-compra textarea:focus, .fl-compra #fl-cupo:focus,
.fl-compra .select2-container--open .select2-selection--single, .fl-compra .select2-container--focus .select2-selection--single {
	outline: 0; border-color: var(--fl-verd) !important; box-shadow: 0 0 0 4px rgba(27,140,48,.16);
}
.fl-compra .select2-container .select2-selection--single { display: flex; align-items: center; padding: 0 14px; }
.fl-compra .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.4; color: var(--fl-titol); }
.fl-compra .select2-container .select2-selection--single .select2-selection__arrow { height: 100%; right: 10px; }
.fl-compra .form-row.woocommerce-invalid input.input-text, .fl-compra .form-row.woocommerce-invalid select { border-color: var(--fl-error) !important; box-shadow: 0 0 0 4px rgba(179,38,30,.12); }
.fl-compra .checkout-inline-error-message { margin: 5px 0 0; color: var(--fl-error); font-size: 14px; font-weight: 500; }
.fl-compra .woocommerce-account-fields { margin-top: 18px; }

/* caselles */
.fl-compra .woocommerce-form__label-for-checkbox, .fl-compra .fl-check label { display: flex !important; gap: 12px; align-items: flex-start; margin: 0; font-size: 15px; font-weight: 400; line-height: 1.5; color: var(--fl-titol); cursor: pointer; text-transform: none; }
.fl-compra input[type="checkbox"] { appearance: none; -webkit-appearance: none; flex: none; width: 22px; height: 22px; margin: 1px 0 0 !important; border: 1.5px solid var(--fl-vora); border-radius: 6px; background: #fff; display: grid; place-items: center; cursor: pointer; transition: background-color .15s, border-color .15s; }
.fl-compra input[type="checkbox"]::after { content: ""; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg) translate(-1px,-1px) scale(0); transition: transform .15s var(--fl-ease); }
.fl-compra input[type="checkbox"]:checked { background: var(--fl-verd); border-color: var(--fl-verd); }
.fl-compra input[type="checkbox"]:checked::after { transform: rotate(45deg) translate(-1px,-1px) scale(1); }
.fl-compra input[type="checkbox"]:focus-visible { outline: 2px solid var(--fl-blau); outline-offset: 2px; }
/* OceanWP dibuixa la seva marca (Font Awesome, blava) amb ::before i treu el fons en marcar: fora */
body.fl-compra-on .fl-compra input[type="checkbox"]::before { content: none !important; display: none !important; }
body.fl-compra-on .fl-compra input[type="checkbox"] { position: relative; float: none !important; padding: 0 !important; line-height: 1 !important; box-shadow: none !important; }
body.fl-compra-on .fl-compra input[type="checkbox"]:checked { background: var(--fl-verd) !important; border-color: var(--fl-verd) !important; }
.fl-compra #ship-to-different-address { margin: 18px 0 0 !important; padding: 0 !important; font-size: 15px; text-align: left !important; }
.fl-compra #ship-to-different-address label { width: 100%; justify-content: flex-start; text-align: left; }
.fl-compra .shipping_address { margin-top: 16px; }

/* notes */
.fl-notes { margin-top: 18px; font-size: 15px; }
.fl-notes summary { cursor: pointer; color: var(--fl-blau); font-weight: 500; }
.fl-notes .form-row { margin-top: 10px !important; }
.fl-compra .woocommerce-additional-fields > h3 { display: none; }

/* opcions grans (entrega i pagament) */
.fl-opcions { display: grid; gap: 12px; }
.fl-opcions.dues { grid-template-columns: 1fr 1fr; }
.fl-opc { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 2px 14px; align-items: center; width: 100%; margin: 0; padding: 16px 18px; border: 1.5px solid var(--fl-vora); border-radius: 14px; background: #fff; color: var(--fl-text); font: inherit; text-align: left; text-transform: none; letter-spacing: normal; cursor: pointer; transition: border-color .15s, background-color .15s, box-shadow .15s; }
.fl-opc:hover { border-color: #8FA697; background: #fff; }
.fl-opc input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.fl-opc .radi { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--fl-vora); grid-row: span 2; display: grid; place-items: center; transition: border-color .15s; }
.fl-opc .radi::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--fl-verd); transform: scale(0); transition: transform .2s var(--fl-ease); }
.fl-opc .t { font-weight: 600; color: var(--fl-titol); line-height: 1.3; display: flex; align-items: center; gap: 8px; }
.fl-opc .t img { height: 24px; width: auto; max-width: 70px; margin: 0; border-radius: 3px; }
.fl-opc .d { grid-column: 2; font-size: 14px; color: var(--fl-gris); line-height: 1.4; }
.fl-opc .d b { color: var(--fl-verd-fosc); }
.fl-opc .preu { grid-row: span 2; align-self: center; font-weight: 600; color: var(--fl-titol); white-space: nowrap; }
.fl-opc .preu .amount { color: inherit; }
.fl-opc .fl-gratis { color: var(--fl-verd-fosc); }
.fl-opc.gran { grid-template-columns: auto 1fr; padding: 18px; }
.fl-opc.gran > .fl-ic { width: 26px; height: 26px; color: var(--fl-verd-fosc); grid-row: span 2; }
.fl-opc:has(input:checked), .fl-tria-enviament[aria-pressed="true"] { border-color: var(--fl-verd); background: #F5FBF6; box-shadow: 0 0 0 3px rgba(27,140,48,.12); }
.fl-opc:has(input:checked) .radi { border-color: var(--fl-verd); }
.fl-opc:has(input:checked) .radi::after { transform: scale(1); }
.fl-opc:has(input:focus-visible) { outline: 2px solid var(--fl-blau); outline-offset: 2px; }
.fl-envio-desc { display: block; font-size: 14px; color: var(--fl-gris); }
.fl-recollida-info { margin-top: 16px; padding: 14px 16px; border-radius: 12px; background: var(--fl-suau); font-size: 15px; line-height: 1.5; display: flex; gap: 12px; }
.fl-recollida-info .fl-ic { color: var(--fl-verd-fosc); margin-top: 2px; }
.fl-recollida-info b { color: var(--fl-titol); }
.fl-avis { margin: 16px 0 0; font-size: 15px; color: var(--fl-gris); }

/* què es veu segons l'entrega */
form.checkout:not(.fl-es-recollida) .fl-recollida-info { display: none; }
form.checkout.fl-es-recollida .fl-envios, form.checkout.fl-es-recollida .fl-adreca { display: none; }

/* mètodes de pagament */
.fl-compra #payment { background: none; border-radius: 0; padding: 0; }
.fl-compra #payment ul.payment_methods { display: grid; gap: 12px; margin: 0; padding: 0; border: 0; list-style: none; }
.fl-compra #payment ul.payment_methods li { position: relative; margin: 0; padding: 16px 18px 16px 52px; border: 1.5px solid var(--fl-vora); border-radius: 14px; background: #fff; line-height: 1.4; transition: border-color .15s, background-color .15s, box-shadow .15s; }
.fl-compra #payment ul.payment_methods li:has(input:checked) { border-color: var(--fl-verd); background: #F5FBF6; box-shadow: 0 0 0 3px rgba(27,140,48,.12); }
.fl-compra #payment ul.payment_methods li input[type="radio"] { position: absolute; left: 18px; top: 18px; width: 22px; height: 22px; margin: 0; accent-color: var(--fl-verd); cursor: pointer; }
.fl-compra #payment ul.payment_methods li label { display: flex; align-items: center; gap: 10px; margin: 0; font-weight: 600; color: var(--fl-titol); font-size: 17px; cursor: pointer; text-transform: none; }
.fl-compra #payment ul.payment_methods li label img { max-height: 24px; width: auto; margin: 0 0 0 auto; }
.fl-compra #payment .payment_box { margin: 4px 0 0 !important; padding: 0 !important; background: none !important; color: var(--fl-gris); font-size: 14px; }
.fl-compra #payment .payment_box::before { display: none !important; }
.fl-compra #payment .payment_box p { margin: 0; }

/* resum del checkout */
.fl-resum .fl-plega { all: unset; display: block; width: 100%; cursor: default; }
.fl-resum .fl-plega-v, .fl-resum .fl-plega-total { display: none; }
.fl-review { width: 100%; margin: 0 0 16px !important; border: 0 !important; border-collapse: collapse; font-size: 16px; }
.fl-review th, .fl-review td { padding: 0 !important; border: 0 !important; background: none !important; vertical-align: middle; text-transform: none; letter-spacing: normal; font-weight: 400; }
.fl-review tbody td { padding-bottom: 14px !important; }
.fl-review tbody tr:last-child td { padding-bottom: 18px !important; border-bottom: 1px solid var(--fl-linia) !important; }
.fl-review .fl-foto { position: relative; width: 56px; height: 56px; border-radius: 10px; background: var(--fl-suau); }
.fl-review .fl-foto img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; border-radius: inherit; margin: 0; }
.fl-review .fl-q { position: absolute; top: -6px; right: -6px; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 99px; background: var(--fl-titol); color: #fff; font-size: 12px; font-weight: 600; display: grid; place-items: center; }
.fl-review .fl-n { font-size: 15px; font-weight: 500; color: var(--fl-titol); line-height: 1.35; }
.fl-review td.product-total { text-align: right; font-size: 15px; font-weight: 600; color: var(--fl-titol); white-space: nowrap; padding-left: 12px !important; }
.fl-review tfoot th { text-align: left; color: var(--fl-text); padding-top: 10px !important; }
.fl-review tfoot td { text-align: right; color: var(--fl-titol); font-weight: 500; padding-top: 10px !important; }
.fl-review tfoot tr:first-child th, .fl-review tfoot tr:first-child td { padding-top: 16px !important; }
.fl-review .fl-gratis { color: var(--fl-verd-fosc); font-weight: 600; }
.fl-review .order-total th, .fl-review .order-total td { padding-top: 14px !important; font-family: "Red Hat Display", sans-serif; font-weight: 600; font-size: 22px; color: var(--fl-titol); border-top: 1px solid var(--fl-linia) !important; }
.fl-review .order-total td { font-size: 22px; }
.fl-review .order-total .includes_tax { display: block; font: 400 13px "Red Hat Text", sans-serif; color: var(--fl-gris); }
.fl-review .order-total strong { font-weight: 600; }

/* condicions, ressenyes i botó */
.fl-place-order { margin-top: 18px !important; }
.fl-place-order .woocommerce-terms-and-conditions-wrapper { margin: 0; }
.fl-place-order .woocommerce-privacy-policy-text { order: 9; }
.fl-place-order .woocommerce-privacy-policy-text p { margin: 14px 0 0; font-size: 13px; line-height: 1.5; color: var(--fl-gris); }
.fl-place-order .cr-customer-consent { margin: 0 0 14px !important; padding: 14px 16px !important; border: 1.5px dashed #8FC79C; border-radius: 14px; background: #F5FBF6; }
.fl-place-order .cr-customer-consent label { font-size: 15px !important; }
.fl-place-order .validate-required { margin-bottom: 16px !important; }
.fl-segur { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 12px 0 0; font-size: 13px; color: var(--fl-gris); }
.fl-segur .fl-ic { width: 15px; height: 15px; }

/* ---------- el que OceanWP imposa i aquí no toca ---------- */
.fl-compra #order_review, .fl-compra #order_review_heading { width: 100% !important; float: none !important; margin: 0; padding: 0; border: 0; }
.fl-compra #customer_details { width: auto !important; float: none !important; }
.fl-compra .fl-subtitol { border: 0 !important; padding: 0 !important; }
.fl-compra #order_review_heading { font-size: 20px !important; margin-bottom: 14px !important; text-transform: none !important; letter-spacing: normal !important; text-align: left; background: none; }
.fl-compra .cart_totals > h2 { font-size: 20px !important; margin: 0 0 14px !important; padding: 0 !important; text-align: left !important; text-transform: none !important; letter-spacing: normal !important; background: none !important; border: 0 !important; color: var(--fl-titol) !important; }
.fl-compra h2, .fl-compra h3, .fl-compra th, .fl-compra dt, .fl-compra label { text-transform: none !important; letter-spacing: normal !important; }
.fl-compra .amount, .fl-compra .woocommerce-Price-amount { color: inherit !important; }
.fl-compra .product-name, .fl-compra .product-name *, .fl-compra .fl-n, .fl-compra .fl-nom { text-transform: none !important; }
.fl-compra .fl-gratis, .fl-opc .d b { color: var(--fl-verd-fosc) !important; }
.fl-totals dt { font-weight: 400; color: var(--fl-text); }
.fl-totals dt.fl-total { font-weight: 600; color: var(--fl-titol); }
.fl-review thead { display: none; }
.fl-review td.product-name { display: table-cell; }
.fl-review .fl-item { display: grid; grid-template-columns: 56px 1fr; gap: 12px; align-items: center; }
.fl-review .order-total th, .fl-review .order-total td, .fl-review .order-total td strong, .fl-review .order-total .amount { font: 600 22px/1.2 "Red Hat Display", sans-serif !important; color: var(--fl-titol) !important; }
.fl-review tfoot th { font-weight: 400 !important; }

/* mètodes de pagament: la ràdio de veritat (OceanWP l'amaga i en dibuixa una amb label::before) */
.fl-compra #payment ul.payment_methods li { display: block !important; padding: 16px 18px 16px 54px !important; }
.fl-compra #payment ul.payment_methods li input[type="radio"] { position: absolute !important; left: 18px; top: 17px; clip: auto !important; clip-path: none !important; display: block !important; opacity: 1 !important; width: 22px !important; height: 22px !important; margin: 0 !important; accent-color: var(--fl-verd); }
.fl-compra #payment ul.payment_methods li label::before, .fl-compra #payment ul.payment_methods li label::after { display: none !important; content: none !important; }
.fl-compra #payment ul.payment_methods li label { display: flex !important; padding: 0 !important; margin: 0 !important; }
.fl-compra #payment .payment_box { display: block !important; margin: 2px 0 0 !important; }

/* ================= COMANDA REBUDA ================= */
.fl-ok-pag { padding-top: 32px; }
.fl-ok { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: start; margin-bottom: 28px; padding: 40px 36px; border-radius: 22px; background: #F6FAF7; box-shadow: var(--fl-ombra); }
.fl-ok::before { content: ""; position: absolute; inset: -25%; z-index: -1; pointer-events: none; filter: blur(36px); background:
	radial-gradient(28% 55% at 78% 35%, rgba(112,223,133,.55), transparent 70%),
	radial-gradient(22% 50% at 96% 80%, rgba(0,86,148,.28), transparent 70%),
	radial-gradient(26% 45% at 45% 110%, rgba(27,140,48,.20), transparent 70%); }
.fl-ok-icona { width: 72px; height: 72px; border-radius: 50%; background: var(--fl-verd); display: grid; place-items: center; box-shadow: 0 10px 28px -8px rgba(27,140,48,.55); }
.fl-ok-icona svg { width: 38px; height: 38px; stroke: #fff; stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; }
.fl-ok .fl-passos { margin-bottom: 14px; }
.fl-ok h1 { font-size: clamp(28px, 4vw, 44px); line-height: 1.12; letter-spacing: -.5px; }
.fl-ok .fl-sub { margin: 12px 0 0; font-size: 18px; max-width: 58ch; }
.fl-ok .fl-sub strong { color: var(--fl-titol); font-weight: 600; }
.fl-compra .fl-dades { display: flex; flex-wrap: wrap; gap: 10px 32px; margin: 24px 0 0; padding: 0; list-style: none; border: 0; font-size: 15px; }
.fl-compra .fl-dades li { display: flex; flex-direction: column; margin: 0; padding: 0; border: 0; float: none; text-transform: none; font-size: 15px; }
.fl-dades small { font-size: 13px; color: var(--fl-gris); }
.fl-dades b { color: var(--fl-titol); font-weight: 600; font-size: 17px; }

.fl-ok-cos { margin-bottom: 28px; }
.fl-bloc { padding: 26px 28px; }
.fl-principal > .fl-panell + .fl-panell { margin-top: 20px; }
.fl-bloc h2, .fl-ok-lateral h2, .fl-despres h2 { font-size: 22px; margin-bottom: 20px; }

.fl-etapes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); position: relative; }
.fl-etapes::before { content: ""; position: absolute; top: 15px; left: 16px; right: calc(33.333% - 16px); height: 2px; background: var(--fl-linia); }
.fl-etapes::after { content: ""; position: absolute; top: 15px; left: 16px; height: 2px; width: calc(33.333% - 32px); background: var(--fl-verd); transform-origin: left; animation: fl-omple .9s .4s var(--fl-ease) both; }
.fl-etapes li { position: relative; margin: 0; padding-right: 20px; }
.fl-etapes .punt { width: 32px; height: 32px; border-radius: 50%; background: #fff; border: 2px solid var(--fl-linia); display: grid; place-items: center; position: relative; z-index: 1; margin-bottom: 14px; }
.fl-etapes .punt svg { width: 16px; height: 16px; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke: #8a988e; }
.fl-etapes .fet .punt { background: var(--fl-verd); border-color: var(--fl-verd); }
.fl-etapes .fet .punt svg { stroke: #fff; }
.fl-etapes .ara .punt { border-color: var(--fl-verd); }
.fl-etapes .ara .punt svg { stroke: var(--fl-verd); }
.fl-etapes h3 { font-size: 17px; line-height: 1.3; margin-bottom: 4px; }
.fl-etapes p { margin: 0; font-size: 15px; line-height: 1.5; }
.fl-etapes .quan { display: block; min-height: 1.4em; font-size: 13px; font-weight: 600; color: var(--fl-verd-fosc); margin-bottom: 2px; }
.fl-etapes li:not(.fet):not(.ara) .quan { color: var(--fl-gris); }
@keyframes fl-omple { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.fl-opinio { margin-top: 26px; display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; padding: 18px 20px; border: 1.5px dashed #9FCDAA; border-radius: 14px; background: #F5FBF6; }
.fl-opinio .ic { width: 44px; height: 44px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.fl-opinio .ic svg { width: 22px; height: 22px; fill: none; stroke: var(--fl-verd-fosc); stroke-width: 1.8; stroke-linejoin: round; }
.fl-opinio p { margin: 0; font-size: 15px; line-height: 1.5; }
.fl-opinio b { color: var(--fl-titol); font-weight: 600; }
.fl-opinio small { display: block; font-size: 13px; color: var(--fl-gris); margin-top: 4px; }

.fl-linies { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--fl-linia); }
.fl-linies li { display: grid; grid-template-columns: 64px 1fr auto; gap: 16px; align-items: center; margin: 0; padding: 14px 0; border-bottom: 1px solid var(--fl-linia); }
.fl-linies .fl-foto { width: 64px; height: 64px; border-radius: 10px; background: var(--fl-suau); overflow: hidden; }
.fl-linies .fl-foto img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; margin: 0; }
.fl-linies .fl-n { color: var(--fl-titol); font-weight: 500; line-height: 1.35; }
.fl-linies .fl-n small { display: block; color: var(--fl-gris); font-size: 14px; font-weight: 400; margin-top: 2px; }
.fl-linies .fl-p { font-weight: 600; color: var(--fl-titol); }
.fl-totals-ok { margin: 16px 0 0 auto; max-width: 380px; }
.fl-totals-ok .includes_tax, .fl-totals-ok small { display: block; font-size: 13px; color: var(--fl-gris); font-weight: 400; }
.fl-adreces { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--fl-linia); }
.fl-adreces h3 { font-size: 16px; margin-bottom: 6px; }
.fl-adreces address { font-style: normal; font-size: 15px; line-height: 1.55; margin: 0; border: 0; padding: 0; }

.fl-ok-lateral { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 20px; }
.fl-ajuda-box { padding: 26px 24px; border-radius: 18px; background: #E6F2E9; }
.fl-ajuda-box h2 { font-size: 21px; margin-bottom: 8px; }
.fl-ajuda-box p { margin: 0 0 18px; font-size: 15px; line-height: 1.55; }
.fl-compra .fl-btn.fl-wa { background: #1F7A45 !important; min-height: 50px; }
.fl-compra .fl-btn.fl-wa:hover { background: #17623A !important; }
.fl-contacte { list-style: none; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid #CFE3D5; font-size: 15px; display: grid; gap: 8px; }
.fl-contacte li { display: flex; gap: 10px; align-items: flex-start; margin: 0; }
.fl-contacte .fl-ic { width: 18px; height: 18px; margin-top: 3px; color: var(--fl-blau); }
.fl-contacte a { color: var(--fl-titol); font-weight: 500; text-decoration: none; }
.fl-contacte a:hover { color: var(--fl-blau); text-decoration: underline; }
.fl-compte-box { padding: 22px 24px; }
.fl-compte-box h2 { font-size: 18px; margin-bottom: 6px; }
.fl-compte-box p { margin: 0 0 14px; font-size: 15px; }
.fl-compra .fl-btn.fl-btn-linia { background: #fff !important; color: var(--fl-titol) !important; border: 1.5px solid var(--fl-linia) !important; box-shadow: none; min-height: 50px; }
.fl-compra .fl-btn.fl-btn-linia:hover { border-color: var(--fl-verd) !important; background: #fff !important; color: var(--fl-titol) !important; }

.fl-despres { display: flex; gap: 20px 48px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 28px; }
.fl-despres h2 { margin-bottom: 6px; }
.fl-despres p { margin: 0; max-width: 52ch; font-size: 16px; }
.fl-despres .fl-acc { display: flex; gap: 12px; flex-wrap: wrap; }
.fl-compra .fl-despres .fl-btn { width: auto; min-height: 50px; padding: 0 24px; }
.fl-fallada { padding: 28px; }
.fl-compra .fl-fallada .fl-btn { width: auto; display: inline-flex !important; }

@media (prefers-reduced-motion: no-preference) {
	.fl-ok-icona { animation: fl-pop .5s var(--fl-ease) both; }
	.fl-ok-icona path { animation: fl-traca .5s .25s var(--fl-ease) both; }
}
@media (prefers-reduced-motion: reduce) { .fl-etapes::after { animation: none; } }
@keyframes fl-pop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes fl-traca { from { stroke-dashoffset: 40; } to { stroke-dashoffset: 0; } }

@media (max-width: 960px) {
	.fl-ok-lateral { position: static; }
	body.fl-compra-on:has(.fl-ok-pag) { padding-bottom: 0; }
}
@media (max-width: 640px) {
	.fl-ok-pag { padding-top: 16px; }
	.fl-ok { grid-template-columns: 1fr; gap: 16px; padding: 26px 20px; }
	.fl-ok-icona { width: 56px; height: 56px; }
	.fl-ok-icona svg { width: 30px; height: 30px; }
	.fl-ok .fl-sub { font-size: 16px; }
	.fl-compra .fl-dades { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
	.fl-bloc { padding: 22px 18px; }
	.fl-etapes { grid-template-columns: 1fr; }
	.fl-etapes::before, .fl-etapes::after { display: none; }
	.fl-etapes li { display: grid; grid-template-columns: 32px 1fr; gap: 0 14px; padding: 0 0 22px; }
	.fl-etapes li::before { content: ""; position: absolute; left: 15px; top: 32px; bottom: 0; width: 2px; background: var(--fl-linia); }
	.fl-etapes li:last-child::before { display: none; }
	.fl-etapes li.fet::before { background: var(--fl-verd); }
	.fl-etapes .punt { margin: 0; grid-row: span 3; }
	.fl-adreces { grid-template-columns: 1fr; }
	.fl-linies li { grid-template-columns: 52px 1fr auto; gap: 12px; }
	.fl-linies .fl-foto { width: 52px; height: 52px; }
	.fl-despres { padding: 22px 18px; }
	.fl-despres .fl-acc, .fl-compra .fl-despres .fl-btn { width: 100%; }
}

/* avisos (errors del checkout, cupó aplicat…): OceanWP els pinta amb franja i majúscules */
body.fl-compra-on .fl-compra .woocommerce-error, body.fl-compra-on .fl-compra .woocommerce-message, body.fl-compra-on .fl-compra .woocommerce-info,
body.fl-compra-on .woocommerce-notices-wrapper .woocommerce-error, body.fl-compra-on .woocommerce-notices-wrapper .woocommerce-message, body.fl-compra-on .woocommerce-notices-wrapper .woocommerce-info {
	display: block; margin: 0 0 20px !important; padding: 14px 18px !important; list-style: none;
	border: 1.5px solid #9FCDAA !important; border-radius: 14px !important; background: #F5FBF6 !important; color: var(--fl-titol) !important;
	font: 500 15px/1.5 "Red Hat Text", sans-serif !important; text-transform: none !important; letter-spacing: normal !important; text-align: left !important; box-shadow: none !important;
}
body.fl-compra-on .fl-compra .woocommerce-error, body.fl-compra-on .woocommerce-notices-wrapper .woocommerce-error { border-color: #E7B4AF !important; background: #FDF1F0 !important; color: var(--fl-error) !important; }
body.fl-compra-on .woocommerce-error li, body.fl-compra-on .woocommerce-message li, body.fl-compra-on .woocommerce-info li {
	display: block; margin: 0 !important; padding: 0 !important; background: none !important; color: inherit !important; border: 0 !important;
	font: inherit !important; text-transform: none !important; letter-spacing: normal !important; text-align: left !important;
}
body.fl-compra-on .woocommerce-error li + li { margin-top: 4px !important; }
body.fl-compra-on .woocommerce-error::before, body.fl-compra-on .woocommerce-message::before, body.fl-compra-on .woocommerce-info::before,
body.fl-compra-on .woocommerce-error .close, body.fl-compra-on .woocommerce-message .close { display: none !important; }
body.fl-compra-on .woocommerce-error a, body.fl-compra-on .woocommerce-message a { color: inherit !important; font-weight: 600; text-decoration: underline; background: none !important; padding: 0 !important; }
body.fl-compra-on .woocommerce-message .button { float: none; display: inline; margin: 0 0 0 8px; padding: 0; border: 0; background: none !important; color: var(--fl-blau) !important; font-weight: 600; text-transform: none; }

/* ================= MÒBIL ================= */
.fl-barra-fixa { display: none; }
@media (max-width: 1100px) and (min-width: 961px) { .fl-carrusel { grid-template-columns: repeat(3, minmax(0, 1fr)); } .fl-rp:nth-child(4) { display: none; } }

@media (max-width: 960px) {
	.fl-graella { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.fl-resum { position: static; }
	body.fl-compra-on { padding-bottom: 84px; }
	.fl-barra-fixa { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; gap: 14px; align-items: center; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); backdrop-filter: blur(8px); border-top: 1px solid var(--fl-linia); box-shadow: 0 -8px 24px -12px rgba(20,60,32,.25); }
	.fl-bf-t { display: flex; flex-direction: column; line-height: 1.2; }
	.fl-bf-t small { font-size: 13px; color: var(--fl-gris); }
	.fl-bf-t b, .fl-bf-t .amount { font: 600 20px "Red Hat Display", sans-serif; color: var(--fl-titol); }
	.fl-compra .fl-barra-fixa .fl-btn { flex: 1; min-height: 52px; }
	.fl-resum .wc-proceed-to-checkout { display: none; }

	/* carrusel de complements */
	.fl-carrusel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 0 -16px; padding: 2px 16px 12px; scrollbar-width: none; }
	.fl-carrusel::-webkit-scrollbar { display: none; }
	.fl-rp { flex: 0 0 min(46%, 200px); scroll-snap-align: start; }

	/* checkout: el resum es parteix — a dalt plegat, condicions al final; el botó de pagar, a la barra */
	.fl-checkout-pag .fl-graella { display: flex; flex-direction: column; }
	.fl-checkout-pag .fl-form { order: 0; }
	.fl-checkout-pag .fl-resum { display: contents; }
	.fl-checkout-pag .fl-resum > * { order: -1; margin: 0; background: #fff; }
	.fl-checkout-pag .fl-resum > h2 { margin: 0; font-size: 17px; border-radius: 18px; box-shadow: var(--fl-ombra); }
	.fl-checkout-pag .fl-resum.obert > h2 { border-radius: 18px 18px 0 0; }
	.fl-resum .fl-plega { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; box-sizing: border-box; font: 600 17px "Red Hat Text", sans-serif; color: var(--fl-titol); }
	.fl-resum .fl-plega-t { display: none; }
	.fl-resum .fl-plega-v { display: inline-flex; align-items: center; gap: 6px; color: var(--fl-blau); font-weight: 500; font-size: 15px; }
	.fl-resum .fl-plega-v .fl-ic { width: 16px; height: 16px; transition: transform .2s var(--fl-ease); }
	.fl-resum.obert .fl-plega-v .fl-ic { transform: rotate(180deg); }
	.fl-resum .fl-plega-total { display: block; }
	.fl-checkout-pag .fl-resum #order_review, .fl-checkout-pag .fl-resum .fl-cupo { display: none; }
	.fl-checkout-pag .fl-resum.obert #order_review { display: block; margin-top: -20px; padding: 4px 18px 0; }
	.fl-checkout-pag .fl-resum.obert .fl-cupo { display: block; margin-top: -20px; padding: 0 18px 18px; border-radius: 0 0 18px 18px; box-shadow: 0 8px 16px -10px rgba(20,60,32,.16); }
	.fl-checkout-pag .fl-resum .fl-place-order { order: 2; padding: 18px !important; border-radius: 18px; box-shadow: var(--fl-ombra); }
	.fl-checkout-pag .fl-place-order #place_order, .fl-checkout-pag .fl-place-order .fl-segur { display: none !important; }
}
@media (min-width: 961px) {
	.fl-checkout-pag .fl-barra-fixa { display: none; }
}
@media (max-width: 640px) {
	.fl-capsal { padding: 22px 0 18px; }
	.fl-capsal h1 { font-size: 26px; }
	.fl-capsal .fl-sub { font-size: 15px; }
	.fl-passos { gap: 6px; font-size: 13px; }
	.fl-passos li + li::before { width: 14px; }
	.fl-graella { gap: 14px; }
	.fl-envio-gratis { padding: 14px 16px; margin-bottom: 12px; }
	.fl-envio-gratis p { font-size: 15px; }
	.fl-productes { padding: 0 16px; }
	.fl-prod { grid-template-columns: 76px minmax(0, 1fr) auto; gap: 4px 14px; align-items: start; }
	.fl-prod .fl-foto { width: 76px; height: 76px; grid-row: span 2; }
	.fl-prod .fl-qty { grid-column: 2; justify-self: start; margin-top: 6px; }
	.fl-prod .fl-linia-total { grid-column: 3; grid-row: 1; font-size: 17px; }
	.fl-form { padding: 4px 18px 20px; }
	.fl-pas { padding: 22px 0; }
	.fl-pas > h2 { font-size: 20px; }
	.fl-ajuda { margin-left: 0; }
	.fl-camps, .fl-opcions.dues { grid-template-columns: 1fr; }
	.fl-camps .form-row-first, .fl-camps .form-row-last { grid-column: 1; }
	.fl-opc { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) { .fl-compra *, .fl-compra *::before, .fl-compra *::after { transition: none !important; } }
