/* ============================================================
   RAFEA LINE — WooCommerce layout & skin
   Loaded on storefront pages. We dequeue woocommerce-layout.css
   and own all layout here so nothing collapses or floats.
   ============================================================ */

/* ------------------------------------------------------------
   0. Neutralise leftover WooCommerce float/width defaults
   ------------------------------------------------------------ */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2,
.woocommerce .u-columns .u-column1,
.woocommerce .u-columns .u-column2,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce .cart-collaterals .cross-sells{
	float:none !important;
	width:auto !important;
	margin-left:0 !important;
	margin-right:0 !important;
}

/* ------------------------------------------------------------
   1. Product grid (shop, archives, related, [products])
   Hardened: no dependency on a .woocommerce wrapper, forced
   widths so cards can never collapse to content width.
   ------------------------------------------------------------ */
ul.products{
	display:grid !important;
	grid-template-columns:repeat(3,1fr) !important;
	gap:clamp(22px,2.6vw,42px) !important;
	margin:0 !important;padding:0 !important;list-style:none !important;
}
ul.products li.product,
ul.products li.product-category{
	width:auto !important;
	max-width:none !important;
	min-width:0 !important;
	float:none !important;
	clear:none !important;
	margin:0 !important;
}
ul.products.columns-1,.woocommerce.columns-1 ul.products{grid-template-columns:1fr !important}
ul.products.columns-2,.woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr) !important}
ul.products.columns-4,.woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr) !important}
ul.products::before,ul.products::after{content:none !important;display:none !important}

@media(max-width:1024px){
	ul.products,
	ul.products.columns-4,
	.woocommerce.columns-4 ul.products{grid-template-columns:repeat(2,1fr) !important}
}
@media(max-width:560px){
	ul.products,
	ul.products.columns-2,
	ul.products.columns-4,
	.woocommerce.columns-2 ul.products,
	.woocommerce.columns-4 ul.products{grid-template-columns:1fr !important;max-width:420px;margin-left:auto !important;margin-right:auto !important}
}

/* keep long SKUs from breaking the ledger header */
.slip-top .no{max-width:62%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slip-top span:last-child{white-space:nowrap}

/* ------------------------------------------------------------
   2. Single product
   ------------------------------------------------------------ */
.single-product div.product.product-top{
	display:grid !important;
	grid-template-columns:1.04fr .96fr !important;
	gap:clamp(40px,5.5vw,90px);
	align-items:start;
}
@media(max-width:900px){
	.single-product div.product.product-top{grid-template-columns:1fr !important;gap:40px}
}

/* gallery fills its column */
.product-gallery .woocommerce-product-gallery,
.product-gallery .woocommerce-product-gallery__wrapper{width:100% !important;margin:0 !important}
.product-gallery .woocommerce-product-gallery__image,
.product-gallery .woocommerce-product-gallery__image a,
.product-gallery .woocommerce-product-gallery__image img{width:100% !important;height:auto;display:block}
.product-gallery .woocommerce-product-gallery__image:not(:first-child){margin-top:14px}
.product-gallery .woocommerce-product-gallery__trigger{
	position:absolute;top:18px;right:18px;z-index:5;width:44px;height:44px;border-radius:999px;
	background:rgba(238,234,225,.92);display:flex;align-items:center;justify-content:center;
	border:1px solid var(--hairline);
}
.product-gallery .flex-viewport{margin-bottom:14px}
.product-gallery ol.flex-control-thumbs{list-style:none;display:flex;gap:10px;margin:0;padding:0}
.product-gallery ol.flex-control-thumbs li{width:74px;margin:0;cursor:pointer}
.product-gallery ol.flex-control-thumbs img{border:1px solid var(--hairline);border-radius:2px;opacity:.55;transition:opacity .3s}
.product-gallery ol.flex-control-thumbs img.flex-active,
.product-gallery ol.flex-control-thumbs img:hover{opacity:1}

/* summary refinements */
.single-product .product-summary .price{display:block;font-family:var(--accent-serif);font-size:30px;color:var(--strong-cafe);margin:4px 0 24px}
.single-product .product-summary .price del{color:var(--calm-cafe);opacity:.6;margin-right:10px}
.single-product .product-summary .price ins{text-decoration:none;color:var(--soft-brown)}
.single-product .product-summary .stock{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--calm-cafe);margin-bottom:14px}
.single-product .product-summary form.cart{display:flex;align-items:stretch;gap:14px;flex-wrap:wrap;margin:0 0 26px}
.single-product .woocommerce-product-rating{margin-bottom:18px}

/* small atelier trust row under the add-to-cart */
.rl-product-assurance{display:flex;flex-wrap:wrap;gap:10px 26px;border-top:1px solid var(--hairline);padding-top:18px;margin-bottom:24px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--calm-cafe)}
.rl-product-assurance span{display:inline-flex;align-items:center;gap:9px}
.rl-product-assurance span::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--soft-brown)}

/* ------------------------------------------------------------
   3. Cart — minimalist two-column (custom cart.php)
   ------------------------------------------------------------ */
.rl-cart{display:grid;grid-template-columns:1.55fr .85fr;gap:clamp(34px,4.5vw,72px);align-items:start}
@media(max-width:900px){.rl-cart{grid-template-columns:1fr;gap:34px}}

.rl-cart-items{margin:0}
.rl-cart-row{display:grid;grid-template-columns:96px 1fr 28px;gap:26px;align-items:center;padding:28px 0;border-bottom:1px solid var(--hairline)}
.rl-cart-row:first-child{border-top:1px solid var(--hairline)}
.rl-cart-thumb img{width:96px;height:auto;border-radius:2px;display:block}
.rl-cart-detail{display:flex;flex-direction:column;gap:14px;min-width:0}
.rl-cart-name{font-family:var(--serif);font-size:23px;line-height:1.15;color:var(--strong-cafe)}
.rl-cart-name a{color:inherit}
.rl-cart-name a:hover{color:var(--soft-brown)}
.rl-cart-name dl.variation{margin:10px 0 0;font-family:var(--sans);font-size:12.5px;color:var(--calm-cafe);line-height:1.6}
.rl-cart-name dl.variation dt{display:inline;font-weight:500;margin:0}
.rl-cart-name dl.variation dd{display:inline;margin:0 0 0 4px}
.rl-cart-name dl.variation dd p{display:inline;margin:0}
.rl-cart-name dl.variation dd::after{content:'';display:block}
.rl-cart-meta{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.rl-cart-meta .rl-cart-price{font-size:13px;letter-spacing:.04em;color:var(--calm-cafe)}
.rl-cart-meta .rl-cart-subtotal{font-family:var(--accent-serif);font-size:20px;color:var(--strong-cafe)}
.rl-cart-remove{align-self:start}
.rl-cart-remove a.remove{color:var(--calm-cafe) !important;font-size:24px;line-height:1;background:none !important;width:auto;height:auto;transition:color .25s}
.rl-cart-remove a.remove:hover{color:var(--soft-brown) !important}

.rl-cart-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:30px}
.rl-cart-actions .coupon{display:inline-flex;gap:12px;align-items:center;flex-wrap:wrap}
.rl-cart-actions .coupon .input-text{width:230px;min-height:50px}
.rl-cart-actions button[name="update_cart"]{background:transparent;color:var(--strong-cafe);border:1px solid var(--hairline)}
.rl-cart-actions button[name="update_cart"]:hover:not(:disabled){background:var(--strong-cafe);color:var(--off-white);border-color:var(--strong-cafe)}
.rl-cart-actions button[name="update_cart"]:disabled{opacity:.4;cursor:default}

@media(max-width:560px){
	.rl-cart-row{grid-template-columns:84px 1fr;grid-template-areas:'thumb detail' 'thumb remove';gap:16px 18px;position:relative}
	.rl-cart-thumb{grid-area:thumb}
	.rl-cart-detail{grid-area:detail}
	.rl-cart-remove{position:absolute;top:26px;right:0}
	.rl-cart-meta{gap:18px}
	.rl-cart-actions{flex-direction:column;align-items:stretch}
	.rl-cart-actions .coupon,.rl-cart-actions .coupon .input-text,.rl-cart-actions button{width:100%}
}

/* totals card (sticky summary) */
.rl-cart .cart-collaterals{position:sticky;top:96px}
.rl-cart .cart_totals{background:var(--paper);border:1px solid var(--hairline);border-radius:6px;padding:32px 34px}
.rl-cart .cart_totals h2{font-family:var(--serif);font-size:26px;color:var(--strong-cafe);margin:0 0 16px;font-weight:400}
.rl-cart .cart_totals table{width:100%;border-collapse:collapse}
.rl-cart .cart_totals th{text-align:left;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--calm-cafe);font-weight:500;padding:16px 0;vertical-align:top;width:44%}
.rl-cart .cart_totals td{text-align:right;padding:16px 0;font-size:14px;color:var(--strong-cafe);border-bottom:1px solid var(--hairline)}
.rl-cart .cart_totals tr.order-total td,.rl-cart .cart_totals tr.order-total th{border-bottom:none;padding-top:18px}
.rl-cart .cart_totals tr.order-total .amount{font-family:var(--accent-serif);font-size:24px;color:var(--strong-cafe)}
.rl-cart .cart_totals .shipping-calculator-button{color:var(--soft-brown)}
.rl-cart .wc-proceed-to-checkout{padding:24px 0 0}
.rl-cart .wc-proceed-to-checkout a.checkout-button{display:block;width:100%;text-align:center}
@media(max-width:900px){.rl-cart .cart-collaterals{position:static}}

/* empty cart */
.cart-empty.woocommerce-info{text-align:center}
.return-to-shop{margin-top:18px;text-align:center}

/* quantity pill (shared single product + cart) */
.woocommerce .quantity{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--hairline);border-radius:999px;background:var(--paper);min-width:64px;height:50px;padding:0 6px}
.woocommerce .quantity input.qty{width:46px;height:48px;text-align:center;border:none;background:none;font-family:var(--sans);font-size:15px;color:var(--strong-cafe);-moz-appearance:textfield}
.woocommerce .quantity input.qty::-webkit-outer-spin-button,.woocommerce .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* ------------------------------------------------------------
   4. Checkout
   ------------------------------------------------------------ */
.woocommerce-checkout #customer_details.col2-set{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,4vw,64px)}
@media(max-width:860px){.woocommerce-checkout #customer_details.col2-set{grid-template-columns:1fr}}
.woocommerce-checkout h3{font-family:var(--serif);font-size:26px;color:var(--strong-cafe);margin-bottom:18px;font-weight:400}
.woocommerce-checkout .form-row{display:block;margin:0 0 16px}
.woocommerce-checkout .form-row label{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--calm-cafe);margin-bottom:7px}
.woocommerce form .form-row-first,.woocommerce form .form-row-last{display:inline-block;width:calc(50% - 8px)}
.woocommerce form .form-row-first{margin-right:14px}
@media(max-width:520px){.woocommerce form .form-row-first,.woocommerce form .form-row-last{width:100%;margin-right:0}}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout .select2-container .select2-selection{width:100%}
.woocommerce-checkout #order_review_heading{font-family:var(--serif);font-size:28px;color:var(--strong-cafe);margin:clamp(34px,4vw,52px) 0 18px;font-weight:400}
.woocommerce-checkout #order_review{background:var(--paper);border:1px solid var(--hairline);border-radius:6px;padding:clamp(22px,3vw,34px)}
.woocommerce-checkout #order_review table.shop_table{width:100%;border-collapse:collapse;margin:0}
.woocommerce-checkout #order_review th{text-align:left;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--calm-cafe);font-weight:500;padding:14px 0;border-bottom:1px solid var(--hairline)}
.woocommerce-checkout #order_review td{text-align:right;padding:14px 0;font-size:14px;color:var(--strong-cafe);border-bottom:1px solid var(--hairline)}
.woocommerce-checkout #order_review tr.order-total .amount{font-family:var(--accent-serif);font-size:22px}
.woocommerce-checkout #payment{background:none;border:none;padding:0;margin-top:20px}
.woocommerce-checkout #payment ul.payment_methods{border:1px solid var(--hairline);border-radius:6px;padding:18px 20px;margin:0 0 18px;list-style:none;background:var(--off-white)}
.woocommerce-checkout #payment div.payment_box{background:var(--off-white);font-size:13px;color:var(--calm-cafe)}
.woocommerce-checkout #payment .place-order{padding:0}
.woocommerce-checkout #payment #place_order{width:100%;height:56px}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{margin-bottom:18px;font-size:13px}

/* ------------------------------------------------------------
   5. My account
   ------------------------------------------------------------ */
/* login / register (logged-out): two even cards */
.woocommerce-account:not(.logged-in) .u-columns.col2-set,
.woocommerce-account:not(.logged-in) #customer_login.u-columns{
	display:grid !important;grid-template-columns:1fr 1fr !important;gap:clamp(28px,4vw,56px);max-width:880px;align-items:start;
}
@media(max-width:720px){.woocommerce-account:not(.logged-in) .u-columns.col2-set,.woocommerce-account:not(.logged-in) #customer_login.u-columns{grid-template-columns:1fr !important;max-width:440px}}
.woocommerce-account:not(.logged-in) .u-column1,
.woocommerce-account:not(.logged-in) .u-column2{width:auto;float:none}
.woocommerce-account:not(.logged-in) .col2-set h2,
.woocommerce-account:not(.logged-in) #customer_login h2{font-family:var(--serif);font-size:30px;color:var(--strong-cafe);font-weight:400;margin-bottom:22px}
.woocommerce-account .woocommerce-form.login,
.woocommerce-account .woocommerce-form.register{border:1px solid var(--hairline);background:var(--paper);border-radius:6px;padding:30px 30px 34px;margin:0}
.woocommerce-account .woocommerce-form-login__rememberme,
.woocommerce-account .woocommerce-form label{font-size:13px;color:var(--strong-cafe);text-transform:none;letter-spacing:0}
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit{width:100%;margin-top:8px}
.woocommerce-account .woocommerce-form input.input-text{width:100%}
.woocommerce-account .woocommerce-LostPassword{margin-top:14px;font-size:12px}
.woocommerce-account .woocommerce-LostPassword a{color:var(--soft-brown)}

/* dashboard (logged-in) */
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--hairline)}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li{border-bottom:1px solid var(--hairline)}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a{display:block;padding:14px 4px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--strong-cafe)}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a:hover{color:var(--soft-brown)}
.woocommerce-account.logged-in .woocommerce-MyAccount-content h2,
.woocommerce-account.logged-in .woocommerce-MyAccount-content h3{font-family:var(--serif);color:var(--strong-cafe);font-weight:400}

/* account tables (orders, addresses) */
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .shop_table{width:100%;border-collapse:collapse}
.woocommerce-account .shop_table th{text-align:left;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--calm-cafe);font-weight:500;padding:14px 10px;border-bottom:1px solid var(--strong-cafe)}
.woocommerce-account .shop_table td{padding:16px 10px;border-bottom:1px solid var(--hairline);font-size:14px}

/* ------------------------------------------------------------
   6. Shared form controls + select2 (premium inputs)
   ------------------------------------------------------------ */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce select,
.woocommerce .select2-container--default .select2-selection--single{
	font-family:var(--sans);font-size:14px;color:var(--strong-cafe);
	background:var(--paper);border:1px solid var(--hairline);border-radius:6px;
	padding:13px 16px;line-height:1.4;min-height:50px;
}
.woocommerce .select2-container--default .select2-selection--single{display:flex;align-items:center}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{top:50%;transform:translateY(-50%);right:12px}
.woocommerce .select2-dropdown{border:1px solid var(--hairline);background:var(--off-white)}
.woocommerce form .form-row input.input-text:focus,
.woocommerce textarea:focus,
.woocommerce select:focus{outline:none;border-color:var(--soft-brown)}

/* star ratings in brand colour */
.woocommerce .star-rating span::before,
.woocommerce p.stars a::before{color:var(--soft-brown)}

/* notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews,
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info,.woocommerce .woocommerce-error{
	background:var(--paper);border:1px solid var(--hairline);border-left:3px solid var(--soft-brown);
	padding:16px 20px;border-radius:0 4px 4px 0;color:var(--strong-cafe);font-size:14px;list-style:none;
}
.woocommerce-error{border-left-color:#a8412c}
.woocommerce-message a.button,.woocommerce-info a.button{float:right;margin-left:14px}

/* breadcrumb spacing on single product */
.single-product .single-product-layout .breadcrumbs{margin-bottom:26px}

/* ------------------------------------------------------------
   7. Fixes — notice icons, textarea fill, bare shop, brand
   ------------------------------------------------------------ */
/* WooCommerce notice icons were overlapping our text — hide them */
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before,
.woocommerce-noreviews::before,.woocommerce-thankyou-order-received::before,
.woocommerce .woocommerce-message::before,.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before,.woocommerce-checkout .woocommerce-info::before{
	display:none !important;content:none !important;
}

/* order-notes (and all) textarea share the same cream fill as inputs */
.woocommerce form .form-row textarea,
.woocommerce textarea,
textarea#order_comments{background:var(--paper) !important;color:var(--strong-cafe)}

/* Bare shop layout (hero removed) — clear the fixed header */
.rl-shop-bare{padding-top:clamp(104px,12vh,148px) !important}
