.rf-product-page { --rf-content-width: 1360px; --rf-radius: 999px; }
.rf-product-page #main { background: #111; }
.rf-product-detail { background: #111; color: #f2efe6; font: 16px/1.75 var(--rf-font-family); padding-bottom: 60px; }
.rf-product-detail *, .rf-product-detail *::before, .rf-product-detail *::after { box-sizing: border-box; }
.rf-product-detail h1, .rf-product-detail h2, .rf-product-detail h3 { font-family: inherit; font-weight: 500; color: inherit; letter-spacing: -.035em; }
.rf-product-breadcrumb { padding-block: 28px; }
.rf-product-detail .woocommerce-breadcrumb { font-size: 12px; color: #c5c1b7; margin: 0; }
.rf-product-detail .woocommerce-breadcrumb a, .rf-product-content a { color: #eee8aa; }
.rf-product-overview { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 76px); padding-block: 16px 56px; align-items: start; }
.rf-product-gallery, .rf-product-info { min-width: 0; }
.rf-product-info h1 { font-size: clamp(32px, 3.6vw, 54px); line-height: 1.1; margin: 0 0 24px; }
.rf-product-eyebrow { color: #eee8aa; text-transform: uppercase; font-size: 11px; letter-spacing: .14em; margin-bottom: 20px; }
.rf-product-price-note { color: #eee8aa; font-size: 16px; font-weight: 500; margin: 0 0 24px; }
.rf-product-excerpt { color: #d1cdc3; }
.rf-product-sku { color: #aaa69b; font-size: 12px; }
.rf-product-categories { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0; }
.rf-product-categories a { color: #d1cdc3; border: 1px solid #555; border-radius: 999px; padding: 7px 12px; font-size: 11px; text-decoration: none; }
.rf-product-categories a:hover { background: #eee8aa; color: #000; }
.rf-product-quote { padding: 28px; border: 1px solid #4a4942; border-radius: 28px; background: #20201e; margin-top: 30px; }
.rf-product-quote p { font-size: 14px; color: #c6c2b8; }
.rf-product-quote .rf-product-quote__title { font-size: 20px; line-height: 1.4; color: #f2efe6; }
.rf-product-quote .rf-button { background: #eee8aa; color: #000; border: 0; border-radius: 999px; padding: 16px 24px; gap: 30px; width: 100%; font-size: 14px; }
.rf-product-quote .rf-button:hover { background: #fff6c3; }
.rf-product-quote .rf-product-quote__hint { margin: 16px 0 0; font-size: 12px; }
/* Override OceanWP's percentage width inside our already-sized grid column. */
.rf-product-page.woocommerce div.product.rf-product-layout .rf-product-gallery div.images { width: 100%; max-width: none; float: none; margin: 0; opacity: 1 !important; }
.rf-product-gallery .woocommerce-product-gallery__wrapper { border-radius: 28px; overflow: hidden; background: #f2efe6; margin: 0; }
/* FlexSlider expands the track beyond the visible slide: clip its viewport. */
.rf-product-page .rf-product-gallery .flex-viewport { border-radius: 28px; overflow: hidden; isolation: isolate; }
.rf-product-gallery .woocommerce-product-gallery__image,
.rf-product-gallery .woocommerce-product-gallery__image--placeholder { border-radius: 28px; overflow: hidden; }
.rf-product-gallery .woocommerce-product-gallery__image > a { display: block; border-radius: inherit; overflow: hidden; }
.rf-product-gallery .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.rf-product-gallery .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 12px; padding: 16px 0 !important; }
.rf-product-page .rf-product-gallery .flex-control-thumbs li { width: 76px !important; float: none !important; margin: 0 !important; border-radius: 12px; overflow: hidden; background: #f2efe6; }
.rf-product-gallery .flex-control-thumbs img { width: 76px; height: 76px; object-fit: contain; }
.rf-product-page .rf-product-content .woocommerce-tabs { padding: 36px 0; margin: 0; border-top: 1px solid #444; clear: both; }
.rf-product-page .rf-product-content .woocommerce-tabs ul.tabs { padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.rf-product-page .rf-product-content .woocommerce-tabs ul.tabs::before, .rf-product-page .rf-product-content .woocommerce-tabs ul.tabs li::before, .rf-product-page .rf-product-content .woocommerce-tabs ul.tabs li::after { display: none; }
.rf-product-page .rf-product-content .woocommerce-tabs ul.tabs li { background: transparent; border: 1px solid #666; border-radius: 5px; margin: 0; padding: 0; }
.rf-product-page .rf-product-content .woocommerce-tabs ul.tabs li a { color: #eee8aa; padding: 12px 22px; }
.rf-product-page .rf-product-content .woocommerce-tabs ul.tabs li.active { background: #eee8aa; border-color: #eee8aa; }
.rf-product-page .rf-product-content .woocommerce-tabs ul.tabs li.active a { color: #000; }
.rf-product-content .woocommerce-Tabs-panel { color: #d1cdc3; line-height: 1.85; }
.rf-product-content .woocommerce-Tabs-panel h2 { color: #f2efe6; font-size: 28px; }
.rf-product-content table.shop_attributes { color: #d1cdc3; border-color: #555; }
.rf-product-content table.shop_attributes th, .rf-product-content table.shop_attributes td { color: inherit; border-color: #555; background: transparent; }
.rf-product-content input, .rf-product-content textarea { background: #f2efe6; color: #111; }
.rf-product-recommendations { background: #f2efe6; color: #111; border-radius: 36px; margin: 32px 24px 0; padding: 50px 0; }
.rf-product-recommendations > .rf-container > h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 32px; }
.rf-product-detail a:focus-visible, .rf-product-detail button:focus-visible { outline: 3px solid #eee8aa; outline-offset: 4px; }
.rf-product-recommendations a:focus-visible { outline-color: #000; }
.rf-product-mobile-cta { display: none; }
@media (max-width: 800px) {
 .rf-product-overview { grid-template-columns: 1fr; }
 .rf-product-page .rf-product-gallery { width: 100%; margin: 0; }
 .rf-product-quote { padding: 24px; }
 .rf-product-recommendations { margin-inline: 12px; border-radius: 28px; }
 .rf-product-mobile-cta { display: block; position: sticky; bottom: 0; background: #111; border-top: 1px solid #444; padding: 12px 72px max(12px, env(safe-area-inset-bottom)) 16px; margin-top: 24px; z-index: 20; }
 .rf-product-mobile-cta a { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 12px 20px; border-radius: 999px; background: #eee8aa; color: #000; font-size: 14px; }
}
