/* The product's gallery and purchase details form one considered composition. */
.single-product .shop-main { padding-bottom: 80px; }
.single-product.woocommerce .woocommerce-breadcrumb { margin: 5px 0 28px; padding-bottom: 18px; border-bottom: 1px solid #d8ccb3; font-size: 12px; line-height: 1.7; color: #84785e; }
.single-product.woocommerce .woocommerce-breadcrumb a { color: #3d563f; }
.tfl-product-overview { --tfl-gallery-height: clamp(330px,36vw,555px); display: grid; grid-template-columns: minmax(0,1.06fr) minmax(0,1fr); gap: 34px; align-items: start; position: relative; margin-bottom: 58px; }
.tfl-gallery-panel { min-width: 0; padding: 16px; background: linear-gradient(135deg,#fffdf7,#eee6d5); border: 1px solid #c5ae7e; border-radius: 4px; box-shadow: inset 0 0 0 5px #fffaf0,0 18px 34px -24px #463a2599; }
.tfl-gallery-heading { display: flex; justify-content: space-between; align-items: center; padding: 5px 7px 16px; font-size: 10px; letter-spacing: 2px; color: #8b6c37; }
.tfl-gallery-heading svg { width: 22px; height: 22px; }
.single-product.woocommerce div.product .tfl-product-overview div.images { float: none; width: 100%; margin: 0; }
.single-product.woocommerce div.product .tfl-product-overview .woocommerce-product-gallery__wrapper { margin: 0; }
.single-product.woocommerce div.product .tfl-product-overview .woocommerce-product-gallery__image > a { display: block; height: var(--tfl-gallery-height); background: #fbf8ed; }
.single-product.woocommerce div.product .tfl-product-overview .woocommerce-product-gallery__image > a > img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.single-product.woocommerce div.product .tfl-product-overview .woocommerce-product-gallery__trigger { width: 40px; height: 40px; top: 12px; right: 12px; background: #fffaf0ed; border: 1px solid #bca675; box-shadow: 0 3px 10px #493b241a; }
.single-product.woocommerce div.product .tfl-product-overview .woocommerce-product-gallery__trigger::before { top: 11px; left: 11px; border-color: #304c36; }
.single-product.woocommerce div.product .tfl-product-overview .woocommerce-product-gallery__trigger::after { top: 22px; left: 24px; background: #304c36; }
.single-product.woocommerce div.product .tfl-product-overview .flex-control-thumbs { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin: 13px 0 0; padding: 0; }
.single-product.woocommerce div.product .tfl-product-overview .flex-control-thumbs li { width: auto; float: none; margin: 0; padding: 0; }
.single-product.woocommerce div.product .tfl-product-overview .flex-control-thumbs li img { box-sizing: border-box; width: 100%; aspect-ratio: 1; object-fit: contain; padding: 4px; opacity: .76; border: 1px solid #cec1a5; background: #fffaf0; transition: opacity .2s,border-color .2s; }
.single-product.woocommerce div.product .tfl-product-overview .flex-control-thumbs li img.flex-active,
.single-product.woocommerce div.product .tfl-product-overview .flex-control-thumbs li img:hover { opacity: 1; border: 2px solid #96753a; padding: 3px; }
.tfl-gallery-caption { margin: 15px 0 3px; text-align: center; color: #796d54; font-size: 12px; letter-spacing: .15px; }
.single-product.woocommerce div.product .tfl-product-overview div.summary { float: none; width: 100%; min-width: 0; margin: 0; padding: 34px 36px 26px; border: 1px solid #cbb78e; border-top: 3px solid #9d8049; border-radius: 4px; background: linear-gradient(140deg,#fffdf7,#f3eddf); box-shadow: inset 0 0 0 5px #fffaf080,0 18px 34px -24px #463a2580; }
.single-product .tfl-product-overview .product-eyebrow { display: block; font-size: 10px; letter-spacing: 1.7px; line-height: 1.8; margin-bottom: 18px; color: #887043; }
.single-product.woocommerce div.product .tfl-product-overview .product_title { margin-bottom: 22px; font-size: clamp(37px,3.25vw,51px); font-weight: 500; line-height: 1.02; letter-spacing: -.8px; color: #233e2b; overflow-wrap: anywhere; }
.single-product.woocommerce div.product .tfl-product-overview p.price { margin: 0 0 23px; padding-bottom: 21px; border-bottom: 1px solid #d9caad; font-size: 27px; color: #8a672f; letter-spacing: -.3px; }
.single-product .tfl-product-overview .woocommerce-product-details__short-description { font-size: 16px; line-height: 1.8; color: #5a6757; }
.single-product .tfl-product-overview .woocommerce-product-details__short-description p { margin: 0 0 20px; }
.single-product.woocommerce div.product .tfl-product-overview form.cart { margin: 24px 0 22px; padding: 23px 0; border-block: 1px solid #d9caad; }
.single-product.woocommerce div.product .tfl-product-overview form.cart:not(.variations_form):not(.grouped_form) { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; }
.single-product.woocommerce div.product .tfl-product-overview form.cart .variations { margin: 0 0 14px; border: 0; }
.single-product.woocommerce div.product .tfl-product-overview form.cart .variations th,
.single-product.woocommerce div.product .tfl-product-overview form.cart .variations td { display: block; width: 100%; padding: 0; text-align: left; }
.single-product.woocommerce div.product .tfl-product-overview form.cart .variations label { display: block; margin-bottom: 8px; font-size: 12px; letter-spacing: .8px; font-weight: 500; color: #304932; }
.single-product.woocommerce div.product .tfl-product-overview form.cart .variations select { width: 100%; max-width: 100%; margin: 0; min-height: 50px; padding: 12px 15px; border: 1px solid #bba77c; background-color: #fffdf6; border-radius: 2px; font-family: var(--sans); font-size: 15px; color: #304932; box-shadow: inset 0 1px 3px #614b2510; }
.single-product.woocommerce div.product .tfl-product-overview form.cart .reset_variations { display: inline-block; margin-top: 7px; font-size: 12px; color: #806633; }
.single-product .tfl-product-overview .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.single-product.woocommerce div.product .tfl-product-overview form.cart div.quantity { float: none; margin: 0; flex: 0 0 70px; }
.single-product.woocommerce .tfl-product-overview .quantity .qty { width: 70px; min-height: 56px; height: 100%; padding: 10px 5px; background: #fffdf7; border: 1px solid #bba77c; font-size: 16px; color: #25412e; border-radius: 2px; }
.single-product.woocommerce div.product .tfl-product-overview form.cart .single_add_to_cart_button { float: none; flex: 1 1 160px; min-height: 56px; padding: 16px 22px; border: 1px solid #a48b53; border-radius: 2px; background: linear-gradient(135deg,#36563e,#203d2b); color: #f8ebcc; box-shadow: inset 0 1px 0 #f4dfa72e,0 5px 10px #263d2117; font-size: 12px; font-weight: 500; letter-spacing: 1.2px; }
.single-product.woocommerce div.product .tfl-product-overview form.cart .single_add_to_cart_button:hover { background: #3d5e43; color: #fff5dd; }
.single-product.woocommerce div.product .tfl-product-overview .stock { font-size: 13px; }
.tfl-product-help { display: flex; align-items: flex-start; gap: 12px; padding: 0 0 23px; }
.tfl-product-help > svg { color: #9b7b43; flex-shrink: 0; margin-top: 3px; }
.tfl-product-help span { display: block; font-family: var(--serif); font-size: 22px; line-height: 1.2; color: #3a523a; margin-bottom: 8px; }
.tfl-product-help a { display: inline-flex; gap: 7px; align-items: center; font-size: 12px; color: #7b663e; text-decoration: underline; text-underline-offset: 4px; }
.tfl-product-help a svg { width: 17px; height: 17px; }
.single-product.woocommerce div.product .tfl-product-overview .product_meta { border-top: 1px solid #d9caad; padding-top: 17px; font-size: 11px; line-height: 1.9; color: #7b735f; }
.single-product.woocommerce div.product .tfl-product-overview .product_meta > span { display: block; }
.single-product.woocommerce div.product .tfl-product-overview .product_meta a { color: #3d563f; }
/* Native tabs retain their semantics and keyboard behaviour. */
.single-product.woocommerce div.product .woocommerce-tabs { padding: 0; margin: 0 0 65px; border: 1px solid #c9b58a; border-radius: 4px; background: #f8f4e9; box-shadow: 0 15px 30px -24px #4d402666; overflow: hidden; }
.single-product.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 0; margin: 0; padding: 0 18px; background: linear-gradient(110deg,#2d4833,#203b2a); border: 0; }
.single-product.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0 24px; border: 0; border-top: 3px solid transparent; border-radius: 0; background: transparent; }
.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 19px 0 21px; color: #eddfbd; font-size: 13px; letter-spacing: .4px; font-weight: 400; }
.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-top-color: #ac8d4e; background: #f8f4e9; }
.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #2e4832; }
.single-product.woocommerce div.product .woocommerce-tabs .panel { max-width: none; margin: 0; padding: 34px 42px 38px; font-size: 16px; line-height: 1.9; color: #56604e; }
.single-product.woocommerce div.product .woocommerce-tabs .panel > p { max-width: 850px; }
.single-product.woocommerce div.product .woocommerce-tabs .panel h2 { margin-top: 0; margin-bottom: 19px; font-size: 39px; font-weight: 500; color: #29432f; }
.single-product.woocommerce div.product .woocommerce-tabs .panel h3 { color: #29432f; }
.single-product.woocommerce div.product .woocommerce-tabs table.shop_attributes { background: #fffcf4; border: 1px solid #d9caad; }
.single-product.woocommerce div.product .woocommerce-tabs table.shop_attributes th { font-weight: 500; padding: 14px 18px; }
.single-product.woocommerce div.product .woocommerce-tabs table.shop_attributes td { padding: 10px 18px; }
.single-product.woocommerce div.product .related > h2 { font-size: clamp(36px,3.5vw,49px); font-weight: 500; line-height: 1.1; padding-bottom: 23px; margin-bottom: 30px; border-bottom: 1px solid #ccba94; color: #2a442f; }
.single-product .tfl-product-overview a:focus-visible,
.single-product .tfl-product-overview select:focus-visible,
.single-product .tfl-product-overview button:focus-visible,
.single-product .tfl-product-overview input:focus-visible { outline: 2px solid #9c7c41; outline-offset: 3px; }
@media(max-width:1100px) {
 .tfl-product-overview { gap: 22px; }
 .single-product.woocommerce div.product .tfl-product-overview div.summary { padding: 26px 24px 22px; }
 .single-product.woocommerce div.product .tfl-product-overview .product_title { font-size: 39px; }
}
@media(max-width:800px) {
 .tfl-product-overview { grid-template-columns: minmax(0,1fr); gap: 22px; --tfl-gallery-height: min(75vw,590px); margin-bottom: 36px; }
 .tfl-gallery-panel { padding: 12px; }
 .single-product.woocommerce div.product .tfl-product-overview .flex-control-thumbs { grid-template-columns: repeat(5,minmax(0,1fr)); }
 .single-product.woocommerce div.product .tfl-product-overview div.summary { padding: 30px; }
 .single-product.woocommerce div.product .tfl-product-overview .product_title { font-size: 45px; }
}
@media(max-width:480px) {
 .single-product.woocommerce .woocommerce-breadcrumb { font-size: 10px; margin-bottom: 22px; }
 .tfl-product-overview { --tfl-gallery-height: min(88vw,400px); }
 .tfl-gallery-heading { padding-bottom: 12px; font-size: 9px; }
 .single-product.woocommerce div.product .tfl-product-overview div.summary { padding: 25px 21px 20px; }
 .single-product.woocommerce div.product .tfl-product-overview .product_title { font-size: 38px; }
 .single-product.woocommerce div.product .tfl-product-overview p.price { font-size: 25px; }
 .single-product .tfl-product-overview .woocommerce-product-details__short-description { font-size: 15px; }
 .single-product .tfl-product-overview .product-eyebrow { font-size: 9px; letter-spacing: 1.2px; }
 .single-product.woocommerce div.product .tfl-product-overview form.cart .single_add_to_cart_button { flex-basis: 130px; padding-inline: 10px; font-size: 10px; letter-spacing: .7px; }
 .single-product.woocommerce div.product .tfl-product-overview .flex-control-thumbs { gap: 7px; }
 .tfl-gallery-caption { font-size: 11px; }
 .tfl-product-help span { font-size: 21px; }
 .single-product.woocommerce div.product .woocommerce-tabs { margin-bottom: 45px; }
 .single-product.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; flex-wrap: nowrap; }
 .single-product.woocommerce div.product .woocommerce-tabs ul.tabs li { padding: 0 10px; flex: 1; text-align: center; }
 .single-product.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-size: 10px; padding-block: 15px; letter-spacing: 0; }
 .single-product.woocommerce div.product .woocommerce-tabs .panel { padding: 26px 21px; font-size: 15px; }
 .single-product.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 33px; }
 .single-product.woocommerce div.product .woocommerce-tabs table.shop_attributes th,
 .single-product.woocommerce div.product .woocommerce-tabs table.shop_attributes td { padding: 10px; }
}
@media(prefers-reduced-motion:reduce) { .single-product .tfl-product-overview * { transition: none !important; } }
