/*
 * Montserrat type scale for the storefront.
 * Card and slider product titles share one size and stay on a single line.
 * Product page titles use the same size as home section titles (h3).
 */

:root {
	--tx-font: "Montserrat", "Helvetica Neue", Verdana, Arial, sans-serif;
	--tx-body: 16px;
	--tx-body-lh: 1.5;
	--tx-product-title: 16px;
	--tx-page-title: 28px;
	--tx-page-title-lh: 1.3;
	--tx-button: 14px;
	--tx-table-head: 14px;
	--tx-table-cell: 16px;
	--tx-notice: 16px;
	--tx-gap: 16px;
	--tx-red: #c02334;
	--tx-navy: #222f63;
	--tx-ink: #161925;
}

html,
body,
button,
input,
select,
textarea,
h1, h2, h3, h4, h5, h6,
p, a, li, label, th, td,
.site-header,
.main-navigation,
.main-navigation ul li a,
.site-header .main-navigation nav ul li a,
.site-header .main-navigation ul li ul li a,
.rt-slide-nav .offscreen-navigation ul .sub-menu li > a,
.footer-area,
.footer-copyright-area,
.sidebar-widget-area,
.sidebar-widget-area .widget .widgettitle,
.widget-title,
.my-account-sidebar-title,
.woocommerce,
.elementor-widget-container,
.rtsb-elementor-container {
	font-family: var(--tx-font);
}

/* One fallback stack for every text node. Icon fonts keep their own family. */
html body :is(
	div, span, p, a, li, ul, ol, label, th, td, strong, em, small,
	button, input, select, textarea, h1, h2, h3, h4, h5, h6,
	figcaption, blockquote, cite, dt, dd, legend, caption
):not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.dashicons):not([class^="icon-"]):not([class*=" icon-"]):not([class^="eicon"]):not([class*=" eicon"]) {
	font-family: var(--tx-font) !important;
}

body {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-body);
	font-weight: 500;
	line-height: var(--tx-body-lh);
	color: var(--tx-ink);
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.rt-section-title .entry-title,
.rt-title-text .entry-title {
	font-family: var(--tx-font) !important;
	font-weight: 600;
}

/* Home section titles and matching page titles */
.rt-section-title .entry-title,
.home .entry-title {
	font-size: var(--tx-page-title);
	line-height: var(--tx-page-title-lh);
	margin-bottom: var(--tx-gap);
}

/* Product titles on cards, sliders, archives, and related products: one line */
.rtsb-elementor-container .product-title,
.rtsb-elementor-container .product-title a,
.woocommerce ul.products li.product .rt-title,
.woocommerce ul.products li.product .rt-title a,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.rt-related-product .rt-title,
.rt-related-product .rt-title a,
.rt-title-area,
.rt-title,
.rt-title a,
.rtsb-wishlist-table .product-name a,
.rtsb-wishlist-content .product-title,
.rtsb-wishlist-content .product-title a {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-product-title) !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
}

.rtsb-elementor-container .product-title,
.woocommerce ul.products li.product .rt-title,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.rt-related-product .rt-title,
.rt-title {
	height: 1.4em !important;
	max-height: 1.4em;
	margin-top: 0;
	margin-bottom: 12px !important;
	overflow: hidden;
}

.rt-title-area {
	height: auto !important;
	margin-bottom: 12px;
	overflow: hidden;
}

.rtsb-elementor-container .product-title,
.rtsb-elementor-container .product-title a,
.woocommerce ul.products li.product .rt-title a,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.rt-related-product .rt-title a,
.rt-title a,
.rtsb-wishlist-content .product-title a {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
}

/* Product details title matches home section titles, with even gaps */
.woocommerce div.product .product_title,
.woocommerce div.product .rt-product-content .entry-title,
.single-product .summary .product_title {
	font-size: var(--tx-page-title) !important;
	line-height: var(--tx-page-title-lh) !important;
	font-weight: 600 !important;
	margin: 0 0 var(--tx-gap) !important;
}

.woocommerce div.product .summary > .woocommerce-product-details__short-description,
.woocommerce div.product .summary > .price,
.woocommerce div.product .summary > .cart,
.woocommerce div.product .summary > .product_meta,
.woocommerce div.product .summary > .single-wishlist-compare,
.single-product .summary .woocommerce-product-details__short-description,
.single-product .summary .price,
.single-product .summary .single-wishlist-compare,
.single-product .summary .product_meta {
	margin-top: 0 !important;
	margin-bottom: var(--tx-gap) !important;
}

.single-wishlist-compare {
	padding-bottom: var(--tx-gap);
	margin-top: 0;
}

.woocommerce div.product .product_meta,
.woocommerce div.product .product_meta > span,
.woocommerce div.product .product_meta > span a,
.woocommerce div.product .product_meta > span span,
.single-product .product_meta,
.single-product .product_meta > span,
.single-product .product_meta .sku,
.single-product .product_meta .posted_in,
.single-product .product_meta .posted_in a {
	font-size: 16px !important;
}

/* Shared button size */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.button,
button.button,
a.button,
a.checkout-button,
input[type="submit"],
.wpcf7-submit,
#age_okay_inner .age_okay_button,
.rtsb-wishlist-content .button,
.woocommerce-mini-cart__buttons a.button,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-button) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.16px;
}

/* One quantity control: 40px square, 14px / 600, on product, cart, mini cart, and loops */
.custom-home-quantity-box,
.quantity .rtsb-quantity-box-group,
.rtsb-quantity-box-group,
.woocommerce .quantity,
#rtsb-side-content-area-id .rtsb-product-quantity-wrap {
	display: inline-flex !important;
	align-items: center;
	height: 40px;
	border: 1px solid #e2e2e2;
	border-radius: 0 !important;
	overflow: hidden;
	background: #fff;
	gap: 0;
}

.home-quantity-decrease,
.home-quantity-increase,
.shop-quantity-decrease,
.shop-quantity-increase,
.rtsb-quantity-box-group .rtsb-quantity-btn,
.quantity .minus,
.quantity .plus,
#rtsb-side-content-area-id .rtsb-product-quantity-wrap .button,
#rtsb-side-content-area-id .rtsb-product-quantity-wrap button.button,
.woocommerce #rtsb-side-content-area-id .rtsb-product-quantity-wrap button.button {
	width: 40px !important;
	min-width: 40px !important;
	height: 40px !important;
	min-height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	color: #000 !important;
	font-family: var(--tx-font) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 40px !important;
	letter-spacing: 0 !important;
}

.home-quantity-box,
.quantity input.qty,
.rtsb-quantity-box-group input.qty,
.rtsb-quantity-box-group input[type="number"],
#rtsb-side-content-area-id .rtsb-product-quantity-wrap input[type="number"] {
	width: 48px !important;
	min-width: 40px !important;
	height: 40px !important;
	min-height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
	color: #000 !important;
	font-family: var(--tx-font) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 40px !important;
	text-align: center;
}

.home-quantity-decrease:hover,
.home-quantity-increase:hover,
.shop-quantity-decrease:hover,
.shop-quantity-increase:hover,
.rtsb-quantity-box-group .rtsb-quantity-btn:hover,
#rtsb-side-content-area-id .rtsb-product-quantity-wrap .button:hover {
	background: #222f63 !important;
	color: #fff !important;
}

/* Tables */
table.shop_table thead th,
table.shop_table tr th,
.woocommerce table.shop_table thead th,
.rtsb-cart-table thead th,
.woocommerce-account table.shop_table th,
.woocommerce-order-received table.shop_table th,
.rtsb-wishlist-table th {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-table-head) !important;
	font-weight: 600 !important;
	line-height: 1.4;
}

table.shop_table td,
table.shop_table td a,
.woocommerce table.shop_table tbody td,
.woocommerce table.shop_table td .amount,
.woocommerce-cart .product-name,
.woocommerce-cart .product-name a,
.woocommerce-cart .product-price,
.woocommerce-cart .product-subtotal,
.woocommerce-account table.shop_table td,
.woocommerce-account table.shop_table td a,
.woocommerce-order-received table.shop_table td,
.woocommerce-order-received table.shop_table td a,
.rtsb-wishlist-table td,
.rtsb-wishlist-table td a,
#order_review table.shop_table td,
#order_review table.shop_table td .amount {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-table-cell) !important;
	font-weight: 500;
	line-height: 1.45;
}

.woocommerce-cart .product-name a,
.woocommerce-order-received .product-name a,
.woocommerce-account .product-name a {
	font-weight: 600;
}

/* Notices: error, success, and warning share one size and distinct colors */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info,
.woocommerce-notice,
.rtsb-builder-content .woocommerce-error,
.rtsb-builder-content .woocommerce-message,
.rtsb-builder-content .woocommerce-info,
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info,
.woocommerce-NoticeGroup .woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-message,
.woocommerce-NoticeGroup .woocommerce-info {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-notice) !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	padding: 16px 20px 16px 52px !important;
	border-radius: 6px !important;
	border-top-width: 3px !important;
	border-top-style: solid !important;
	margin-bottom: var(--tx-gap) !important;
}

.woocommerce-error,
.rtsb-builder-content .woocommerce-error,
.woocommerce-checkout .woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-error {
	background-color: #fdecea !important;
	border-top-color: var(--tx-red) !important;
	color: #7a1520 !important;
}

.woocommerce-message,
.woocommerce-notice--success,
.woocommerce-thankyou-order-received,
.rtsb-builder-content .woocommerce-message,
.woocommerce-checkout .woocommerce-message {
	background-color: #e8f6ee !important;
	border-top-color: #1e7a46 !important;
	color: #145c32 !important;
}

.woocommerce-info,
.woocommerce-notice--info,
.woocommerce-message.woocommerce-notice--info,
.rtsb-builder-content .woocommerce-info,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-NoticeGroup-checkout .woocommerce-info {
	background-color: #fff6e5 !important;
	border-top-color: #d4880f !important;
	color: #7a4b00 !important;
}

.woocommerce-error a,
.woocommerce-message a,
.woocommerce-info a {
	font-size: var(--tx-notice) !important;
	font-weight: 600;
}

/* Order received titles follow home section titles */
.woocommerce-order-received .woocommerce-order > h2,
.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title,
.woocommerce-order-received .woocommerce-customer-details h2,
.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-page-title) !important;
	line-height: var(--tx-page-title-lh) !important;
	font-weight: 600 !important;
	margin: 0 0 var(--tx-gap) !important;
	color: var(--tx-ink) !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
}

.woocommerce-order-received .woocommerce-order,
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
	margin-bottom: 28px;
}

.woocommerce-order-received .woocommerce-order p,
.woocommerce-order-received .woocommerce-order address,
.woocommerce-order-received .woocommerce-order li {
	font-size: var(--tx-body);
	line-height: var(--tx-body-lh);
}

/* Account pages */
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-MyAccount-content label,
.woocommerce-account .woocommerce-MyAccount-content address,
.woocommerce-account .woocommerce-form-login label,
.woocommerce-account .woocommerce-form-register label,
.woocommerce-account .woocommerce-ResetPassword label {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-body) !important;
	font-weight: 500;
	line-height: 1.45;
}

/* Recent order title matches the sidebar wishlist title (18px Montserrat). */
.sidebar-widget-area .recently-ordered-section .block-title,
.sidebar-widget-area .recently-ordered-section .block-reorder-heading,
.woocommerce-account .recently-ordered-section .block-title,
.woocommerce-account .recently-ordered-section .block-reorder-heading,
.my-account-sidebar-widget .recently-ordered-section .block-title,
.my-account-sidebar-widget .recently-ordered-section .block-reorder-heading {
	font-family: var(--tx-font) !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
}

.footer-copyright-area,
.footer-copyright-area .copyright,
.footer-copyright-area .copyright-area {
	font-size: 15px;
}

.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3,
.woocommerce-account .woocommerce-Address-title h3 {
	font-size: var(--tx-page-title) !important;
	line-height: var(--tx-page-title-lh) !important;
	font-weight: 600 !important;
	margin-bottom: var(--tx-gap);
}

.widget_price_filter .price_slider_amount,
.widget_price_filter .price_label,
.widget_price_filter .price_label .from,
.widget_price_filter .price_label .to,
.widget_price_filter .price_label .woocommerce-Price-amount,
.widget_price_filter .price_label .amount {
	font-family: var(--tx-font) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
}

.sidebar-widget-area .widget ul li,
.sidebar-widget-area .widget ul li a,
.widget_product_categories .product-categories > li > a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a,
.woocommerce-account .recently-ordered-section .product-name {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-product-title) !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
}

/* Empty wishlist copy is the same size in the category sidebar and the account sidebar. */
.sidebar-widget-area #wishlist-container,
.sidebar-widget-area #wishlist-container p,
.my-account-sidebar-widget #wishlist-container,
.my-account-sidebar-widget #wishlist-container p,
#wishlist-container > p {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-product-title) !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	color: var(--tx-ink) !important;
}

.woocommerce-account input.input-text,
.woocommerce-account textarea,
.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
#custom_comment_field {
	font-family: var(--tx-font) !important;
	font-size: var(--tx-body) !important;
	font-weight: 500;
}

#custom_comment_field {
	width: 100%;
	height: 40px;
	box-sizing: border-box;
	border: 1px solid #c2c2c2;
	border-radius: 0;
	padding: 0 12px;
	background: #fff;
	color: #282828;
}

.woocommerce-checkout #custom_comment_field_field,
.woocommerce-checkout .custom-comment-field {
	text-align: left;
	margin-bottom: var(--tx-gap);
}

#comment-counter {
	display: block;
	margin-top: 6px;
	font-family: var(--tx-font);
	font-size: 13px;
	font-weight: 500;
	color: #555;
	text-align: left;
}

/* Empty catalog notice uses the same warning treatment as other store messages */
.woocommerce-no-products-found .wc-block-components-notice-banner,
.woocommerce-no-products-found .woocommerce-info,
.woocommerce-no-products-found .woocommerce-notice {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #fff6e5 !important;
	border: 0 !important;
	border-top: 3px solid #d4880f !important;
	border-radius: 6px !important;
	color: #7a4b00 !important;
	font-family: var(--tx-font) !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	padding: 16px 20px !important;
	margin: 0 0 16px !important;
}

.woocommerce-no-products-found .wc-block-components-notice-banner svg {
	fill: #d4880f;
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
}
