/*
 * Toaster Central look — loaded by the tc-store plugin.
 * Moved here from the Astra child theme (v1.0.4) so all site code lives in one plugin.
 * Palette and two-font rule taken from Michael Sheafe's original toastercentral.com.
 */

/* ------------------------------------------------------------------
   Palette — taken from the original toastercentral.com pages
   (bgcolor #FFFEE6, text navy, link maroon, hover black,
   visited gray, subscribe box #d5d6a8, red copyright line)
   ------------------------------------------------------------------ */
:root {
	--tc-cream:      #FFFEE6;
	--tc-cream-deep: #F6F1D3;
	--tc-navy:       #1F2A5C;   /* softened from pure navy for readability */
	--tc-maroon:     #7A1F1F;
	--tc-maroon-dk:  #5A1414;
	--tc-khaki:      #D5D6A8;
	--tc-khaki-dk:   #B9BA86;
	--tc-red:        #B22222;
	--tc-ink:        #111111;
	--tc-rule:       #C9C3A0;

	/* Two fonts only, as on the original site:
	   sans for headings, menu and all store/UI text; serif for reading text.
	   Michael's choice (Oct 29, 2026): Times New Roman and Lucida Sans.
	   Fallbacks for devices without them: Times / Georgia; Lucida Sans Unicode
	   (Windows), Lucida Grande (Mac), Verdana. */
	--tc-font-body:    "Times New Roman", Times, Georgia, serif;
	--tc-font-heading: "Lucida Sans", "Lucida Sans Unicode", "Lucida Grande", Verdana, sans-serif;

	--tc-width: 1100px;
	--tc-radius: 6px;
}

/* ------------------------------------------------------------------
   Base
   ------------------------------------------------------------------ */
body,
.ast-separate-container {
	background-color: var(--tc-cream);
	background-repeat: repeat;
	color: var(--tc-navy);
	font-family: var(--tc-font-body);
	font-size: 18px;
	line-height: 1.65;
}

a { color: var(--tc-maroon); text-underline-offset: 2px; }
a:visited { color: #6B6B6B; }
a:hover,
a:focus { color: var(--tc-ink); }

hr,
.wp-block-separator {
	border: 0;
	border-top: 1px solid var(--tc-rule);
	margin: 2em 0;
}

/* ------------------------------------------------------------------
   Typography — one rule set, overrides Astra's typography settings
   (!important on font-family only, so the Customizer can't add a third font)
   ------------------------------------------------------------------ */

/* Sans: headings, menu, and every piece of store / interface text */
h1, h2, h3, h4, h5, h6,
.entry-title,
.site-title,
.main-header-menu,
.main-header-menu .menu-link,
.ast-header-break-point .main-header-menu .menu-link,
.woocommerce-breadcrumb,
.ast-woo-product-category,
.woocommerce-loop-product__title,
.product_title,
.price,
.woocommerce div.product .stock,
.ast-stock-detail,
.product_meta,
.woocommerce-result-count,
.woocommerce-ordering,
.woocommerce-tabs ul.tabs li a,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.onsale,
label,
select,
input,
textarea,
button,
.button,
.wp-block-button__link,
.site-footer,
.ast-footer-copyright {
	font-family: var(--tc-font-heading) !important;
}

/* Serif: reading text only (stories, FAQ answers, page paragraphs) */
.entry-content p,
.entry-content li,
.woocommerce-Tabs-panel--description,
.woocommerce-Tabs-panel--description p,
.term-description p,
.term-description li,
.taxonomy-description p,
.taxonomy-description li {
	font-family: var(--tc-font-body) !important;
}

/* Calm, consistent weights and sizes */
h1, h2, h3, h4, h5, h6,
.entry-title,
.product_title {
	color: var(--tc-navy);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0;
}
h1, .entry-title, .product_title { font-size: 1.7rem; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.3rem; }
h4 { font-size: 1.1rem; }

.woocommerce-breadcrumb,
.ast-woo-product-category,
.product_meta,
.woocommerce-result-count,
.woocommerce-ordering select {
	font-size: 14px;
	font-weight: 400;
	color: #555555;
}

/* Photos keep the dark frame of the original site, with softer corners */
.entry-content img,
.woocommerce ul.products li.product img,
.woocommerce div.product div.images img,
.tc-frame {
	border: 2px solid var(--tc-ink);
	border-radius: var(--tc-radius);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

/* Readable centered column */
.ast-container,
.site-content > .ast-container {
	max-width: var(--tc-width);
}

/* Content panels sit on the linen like the old bordered table cells */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-woocommerce-container,
.ast-separate-container .comments-area {
	background: rgba(255, 254, 230, 0.92);
	border: 1px solid var(--tc-rule);
	border-radius: var(--tc-radius);
}

/* ------------------------------------------------------------------
   Header & navigation
   ------------------------------------------------------------------ */
.site-header,
.main-header-bar,
.ast-primary-header-bar {
	background: transparent;
	border-bottom: 1px solid var(--tc-rule);
}

/* The logo already reads "Toaster Central" — no text title beside it */
.site-header .ast-site-title-wrap {
	display: none !important;
}

.main-header-menu .menu-link,
.ast-header-break-point .main-header-menu .menu-link {
	font-size: 15px;
	font-weight: 600;
	color: var(--tc-maroon);
}

.main-header-menu .menu-item:hover > .menu-link,
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current_page_item > .menu-link {
	color: var(--tc-ink);
	text-decoration: underline;
	text-underline-offset: 6px;
}

/* Phone menu: cream panel and maroon links instead of plain white */
.ast-mobile-header-content,
.ast-mobile-popup-drawer .ast-mobile-popup-inner,
.ast-header-break-point .main-header-bar-navigation,
.ast-header-break-point .main-navigation ul,
.ast-builder-menu-mobile .main-navigation,
.ast-builder-menu-mobile .main-header-menu {
	background-color: var(--tc-cream) !important;
}

.ast-mobile-header-content .menu-link,
.ast-mobile-popup-drawer .menu-link,
.ast-builder-menu-mobile .menu-link {
	color: var(--tc-maroon) !important;
	background: transparent !important;
	border-bottom: 1px solid var(--tc-rule);
}

.ast-mobile-header-content .current-menu-item > .menu-link,
.ast-mobile-popup-drawer .current-menu-item > .menu-link,
.ast-builder-menu-mobile .current-menu-item > .menu-link {
	color: var(--tc-ink) !important;
}

/* ------------------------------------------------------------------
   Buttons (WordPress + WooCommerce)
   ------------------------------------------------------------------ */
.button,
button,
input[type="submit"],
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	background: var(--tc-maroon);
	color: #FFFFFF;
	border: 0;
	border-radius: var(--tc-radius);
	font-weight: 600;
	letter-spacing: 0.02em;
}

.button:hover,
button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--tc-maroon-dk);
	color: #FFFFFF;
}

/* ------------------------------------------------------------------
   Store: category pages, grid, product page, SOLD
   ------------------------------------------------------------------ */

/* Category pages: when the category has a Description (Michael's page
   heading), hide WooCommerce's plain short title so his heading shows instead. */
.tax-product_cat .woocommerce-products-header:has(.term-description) .woocommerce-products-header__title,
.tax-product_cat .ast-archive-description:has(.term-description, .taxonomy-description, .ast-archive-description-content) .ast-archive-title {
	display: none;
}

/* Category heading from plain text: Michael types words only.
   The first line (paragraph) of the category Description becomes the
   centered page heading; any further lines show as normal text. */
.term-description > p:first-child,
.taxonomy-description > p:first-child,
.term-description h2,
.taxonomy-description h2 {
	font-family: var(--tc-font-heading) !important;
	font-size: 1.7rem;
	font-weight: 600;
	line-height: 1.25;
	color: var(--tc-navy);
	text-align: center;
	margin: 0.25em 0 0.75em;
}

/* Hide the short category name whenever a description heading exists */
body.tax-product_cat:has(.term-description) .woocommerce-products-header__title,
body.tax-product_cat:has(.term-description) h1.page-title,
body.tax-product_cat:has(.term-description) .ast-archive-title,
body.tax-product_cat:has(.taxonomy-description) .ast-archive-title {
	display: none;
}

.woocommerce ul.products li.product {
	text-align: center;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 17px;
	font-weight: 600;
	color: var(--tc-navy);
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--tc-maroon);
	font-weight: 700;
}

/* Out-of-stock badge reads as SOLD (wording set later in tc-store) */
.woocommerce ul.products li.product .ast-shop-product-out-of-stock,
.woocommerce .out-of-stock,
.tc-sold-badge {
	background: var(--tc-red);
	color: #FFFFFF;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.25em 0.7em;
	border-radius: 3px;
}

/* Sale badge — not used by Michael, kept on-palette in case */
.woocommerce span.onsale {
	background: var(--tc-maroon);
	color: #FFFFFF;
}

/* Product story text keeps a comfortable reading measure */
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-Tabs-panel--description {
	max-width: 70ch;
}

/* ------------------------------------------------------------------
   Subscribe box (used by [tc_subscribe] later) — the original khaki
   ------------------------------------------------------------------ */
.tc-subscribe {
	background: var(--tc-khaki);
	border: 1px solid var(--tc-khaki-dk);
	border-radius: var(--tc-radius);
	padding: 1.5em;
	max-width: 480px;
}

.tc-subscribe input[type="email"],
.tc-subscribe input[type="text"] {
	width: 100%;
	border: 1px solid var(--tc-khaki-dk);
	border-radius: 20px;
	padding: 0.6em 1em;
	background: #FFFFFF;
}

/* ------------------------------------------------------------------
   Footer — small red copyright line, as on the original
   ------------------------------------------------------------------ */
.site-footer,
.site-below-footer-wrap,
.ast-small-footer {
	background: transparent;
	border-top: 1px solid var(--tc-rule);
}

/* Footer rows: let the linen show through (overrides Astra's builder colors) */
.site-footer,
.site-footer .site-primary-footer-wrap[data-section],
.site-footer .site-above-footer-wrap[data-section],
.site-footer .site-below-footer-wrap[data-section] {
	background: transparent !important;
}

.site-footer .ast-footer-copyright,
.ast-small-footer .ast-footer-copyright {
	color: var(--tc-red);
	font-size: 13px;
}

/* Footer menu (How to Buy etc.): same size and maroon as the copyright line */
.site-footer .footer-navigation a,
.site-footer .ast-footer-menu a,
.site-footer #astra-footer-menu .menu-link,
.site-footer .menu-link {
	font-size: 13px !important;
	font-weight: 400 !important;
	color: var(--tc-maroon) !important;
	padding-top: 0.2em !important;
	padding-bottom: 0.2em !important;
}
.site-footer .footer-navigation a:hover,
.site-footer .menu-link:hover {
	color: var(--tc-ink) !important;
	text-decoration: underline;
}

/* ------------------------------------------------------------------
   tc-store: nameplate box and testimonials
   ------------------------------------------------------------------ */
.tc-nameplate {
	font-family: var(--tc-font-heading);
	background: rgba(255, 255, 255, 0.55);
	border: 1px solid var(--tc-rule);
	border-left: 4px solid var(--tc-maroon);
	border-radius: var(--tc-radius);
	padding: 0.8em 1em;
	margin: 1em 0 1.25em;
	font-size: 15px;
	line-height: 1.5;
	color: var(--tc-navy);
	max-width: 420px;
}
.tc-nameplate__label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #6B6B6B;
	margin-bottom: 0.3em;
}
.tc-nameplate__line { font-weight: 600; }

.tc-testimonials {
	clear: both;
	max-width: 70ch;
	margin: 2em 0;
	padding-top: 1.5em;
	border-top: 1px solid var(--tc-rule);
}
.tc-testimonials__title { font-size: 1.3rem; margin-bottom: 0.75em; }
.tc-testimonial {
	font-family: var(--tc-font-body) !important;
	margin: 0 0 1em;
}
.tc-testimonial b { font-family: var(--tc-font-heading); font-weight: 600; }

/* ------------------------------------------------------------------
   Phones
   ------------------------------------------------------------------ */
@media (max-width: 768px) {
	body { font-size: 17px; }

	h1, .entry-title, .product_title,
	.term-description h2, .taxonomy-description h2,
	.term-description > p:first-child, .taxonomy-description > p:first-child { font-size: 1.4rem; }

	.entry-content img,
	.woocommerce div.product div.images img {
		max-width: 100%;
		height: auto;
	}

	.tc-subscribe { max-width: none; }
}

/* ------------------------------------------------------------------
   tc-store 1.3.0 polish
   ------------------------------------------------------------------ */

/* SOLD badge and every store button in the sans font */
.ast-shop-product-out-of-stock,
.woocommerce .out-of-stock,
.tc-sold-badge,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .ast-on-card-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .single_add_to_cart_button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	font-family: var(--tc-font-heading) !important;
}

/* The grey category name and the "1 in stock" line are now switched on/off
   in TC Store → Settings (see includes/style.php, tc_store_settings_css). */
