body.cfl-cart-page, body.cfl-cart-page #wrapper, body.cfl-cart-page #main { background:#fff; }
body.cfl-cart-page .woocommerce { color:#111; }
.cfl-cart, .cfl-cart * { box-sizing:border-box; }
.cfl-cart { width:min(100% - 32px, 860px); margin:42px auto 80px; color:#111; font-family:inherit; }
.cfl-cart-heading { margin:0 0 36px; }
.cfl-cart .cfl-cart-kicker { margin:0 0 6px; color:#666; font-size:13px; font-weight:700; letter-spacing:.24em; line-height:1.5; }
.cfl-cart-heading h1 { margin:0; color:#111; font-size:clamp(34px, 5vw, 52px); font-weight:750; line-height:1.15; letter-spacing:-.06em; }
.cfl-cart-heading > p:last-child { margin:12px 0 0; color:#666; font-size:16px; line-height:1.5; }
.cfl-cart-form { margin:0; }
.cfl-cart-items { display:grid; gap:12px; }
.cfl-cart-item { display:grid; grid-template-columns:156px minmax(0,1fr) 44px; align-items:center; gap:24px; min-width:0; min-height:108px; padding:12px 16px; border:1px solid #e8e8e8; border-radius:14px; background:#fff; box-shadow:none; }
.cfl-cart-thumb { width:156px; height:84px; overflow:hidden; border-radius:10px; background:#f8f8f8; }
.cfl-cart-thumb a, .cfl-cart-thumb img { display:block; width:100%; height:100%; }
.cfl-cart-thumb img { max-width:100%; object-fit:contain; }
.cfl-cart-info { min-width:0; }
.cfl-cart-info h2 { margin:0 0 5px; color:#111; font-size:19px; font-weight:700; line-height:1.35; letter-spacing:-.04em; overflow-wrap:anywhere; }
.cfl-cart-info h2 a { color:inherit; text-decoration:none; }
.cfl-cart-info h2 a:hover { text-decoration:underline; text-underline-offset:3px; }
.cfl-cart-info .cfl-cart-price { margin:0; color:#666; font-size:17px; font-weight:500; line-height:1.4; }
.cfl-cart-info .woocommerce-Price-amount, .cfl-cart-total-row .woocommerce-Price-amount { display:inline!important; color:inherit; }
.cfl-cart-info dl.variation { margin:5px 0 0; color:#666; font-size:12px; }
.cfl-cart .cfl-cart-remove { display:grid; place-items:center; width:44px; height:44px; margin:0; padding:0; border:0; border-radius:50%; background:transparent; color:#777; text-align:center; text-decoration:none; }
.cfl-cart .cfl-cart-remove span { display:grid; place-items:center; width:28px; height:28px; border:1px solid #d9d9d9; border-radius:50%; font:400 21px/1 Arial,sans-serif; }
.cfl-cart .cfl-cart-remove:hover { background:#f7f7f7; color:#111; }
.cfl-cart-totals { margin:28px 0 26px; padding-top:18px; border-top:1px solid #e8e8e8; }
.cfl-cart-total-row { display:flex; align-items:baseline; justify-content:space-between; gap:18px; min-width:0; padding:6px 0; color:#666; font-size:15px; line-height:1.45; }
.cfl-cart-total-row > :last-child { min-width:0; text-align:right; overflow-wrap:anywhere; }
.cfl-cart-subtotal { color:#111; font-size:20px; font-weight:700; }
.cfl-cart-subtotal strong { font-size:26px; font-weight:750; white-space:nowrap; }
.cfl-cart-discount a { margin-left:8px; color:#666; font-size:12px; text-decoration:underline; }
.cfl-cart-grand-total { margin-top:8px; padding-top:13px; border-top:1px solid #e8e8e8; color:#111; font-size:17px; font-weight:700; }
.cfl-cart-grand-total strong { font-size:22px; }
.cfl-cart-grand-total .includes_tax { display:block; color:#666; font-size:11px; font-weight:400; }
.cfl-cart-coupon { margin:0 0 24px; }
.cfl-cart-coupon-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
.cfl-cart .cfl-cart-coupon input { width:100%; min-width:0; height:54px; margin:0; padding:0 16px; border:1px solid #dedede; border-radius:12px; background:#fff; box-shadow:none; color:#111; font:inherit; font-size:16px; }
.cfl-cart .cfl-cart-coupon input::placeholder { color:#888; }
.cfl-cart .cfl-cart-coupon button { min-width:112px; height:54px; margin:0; padding:0 16px; border:1px solid #222; border-radius:12px; background:#222; box-shadow:none; color:#fff; font:inherit; font-size:16px; font-weight:700; cursor:pointer; }
.cfl-cart .cfl-cart-coupon button:hover, .cfl-cart .cfl-cart-checkout:hover { background:#333; color:#fff; }
.cfl-cart-coupon-notices:not(:empty) { margin-top:10px; }
.cfl-cart-coupon-notices .woocommerce-message, .cfl-cart-coupon-notices .woocommerce-error, .cfl-cart-coupon-notices .woocommerce-info { margin:0; padding:12px 15px; border:1px solid #e8e8e8; border-radius:10px; background:#fff; color:#444; font-size:14px; }
.cfl-cart-coupon-notices .woocommerce-error { border-color:#d39b9b; }
.cfl-cart-coupon-notices li { margin:0; }
.cfl-cart .cfl-cart-checkout { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:56px; padding:12px 18px; border-radius:12px; background:#111; color:#fff; font-size:19px; font-weight:700; line-height:1.3; text-align:center; text-decoration:none; }
.cfl-cart .cfl-cart-checkout span { font-size:25px; font-weight:400; line-height:1; }
.cfl-cart .cfl-cart-checkout-notice { margin:0; padding:14px 16px; border:1px solid #e8e8e8; border-radius:12px; color:#444; font-size:15px; text-align:center; }
.cfl-cart .cfl-cart-continue { display:block; width:fit-content; min-height:44px; margin:16px auto 0; padding:10px; color:#666; font-size:16px; font-weight:600; line-height:1.5; text-align:center; text-decoration:none; }
.cfl-cart .cfl-cart-continue:hover { color:#111; }
.cfl-cart a:focus-visible, .cfl-cart button:focus-visible, .cfl-cart input:focus-visible { outline:2px solid #111; outline-offset:3px; }
.cfl-cart-empty-message { padding:60px 12px 80px; text-align:center; }
.cfl-cart-empty-message h2 { margin:0; color:#111; font-size:24px; font-weight:700; line-height:1.4; }
.cfl-cart-empty-message p { margin:8px 0 24px; color:#666; font-size:16px; }
.cfl-cart-empty-message a { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:10px 26px; border-radius:12px; background:#111; color:#fff; font-size:16px; font-weight:700; text-decoration:none; }
@media(max-width:600px) {
  .cfl-cart { width:calc(100% - 32px); margin:24px auto 56px; }
  .cfl-cart-heading { margin-bottom:24px; }
  .cfl-cart-heading h1 { font-size:38px; }
  .cfl-cart-heading > p:last-child { font-size:15px; }
  .cfl-cart-item { grid-template-columns:clamp(72px,24vw,112px) minmax(0,1fr) 44px; gap:10px; min-height:88px; padding:10px; }
  .cfl-cart-thumb { width:100%; height:68px; }
  .cfl-cart-info h2 { font-size:15px; }
  .cfl-cart-info .cfl-cart-price { font-size:14px; }
  .cfl-cart-totals { margin-top:24px; }
  .cfl-cart-subtotal { font-size:17px; }
  .cfl-cart-subtotal strong { font-size:22px; }
  .cfl-cart-grand-total strong { font-size:20px; }
}
@media(max-width:360px) {
  .cfl-cart { width:calc(100% - 24px); }
  .cfl-cart-item { grid-template-columns:72px minmax(0,1fr) 44px; gap:8px; }
  .cfl-cart-thumb { height:60px; }
  .cfl-cart .cfl-cart-coupon button { min-width:86px; padding:0 10px; font-size:14px; }
  .cfl-cart-subtotal strong { font-size:19px; }
}

/* Flatsome adds a second catalog link through woocommerce_cart_actions.
   Keep that extension hook, but use the font cart's single accessible CTA. */
.cfl-cart .cfl-cart-form > .continue-shopping { display:none; }
.cfl-cart .cfl-cart-subtotal strong { white-space:normal; overflow-wrap:anywhere; }

/* The shared site hides theme message containers outside the cart. */
.cfl-cart .cfl-cart-coupon-notices .message-container { display:block!important; width:auto; padding:0; }
