/*
Theme Name:   Topmaker Go Child
Theme URI:    https://topmaker.us
Description:  Redesign child theme for topmaker.us — wedding-boutique look (ivory, sand, terracotta rose) on top of the "Go" parent theme, with a custom homepage (front-page.php) and WooCommerce restyling. Rollback: re-activate the parent "Go" theme.
Author:       Lychee for Topmaker California Inc
Template:     go
Version:      1.0.0
Text Domain:  topmaker-go-child
*/

/* ============ Design tokens ============ */
:root {
	--tm-ivory: #fbf6ef;
	--tm-cream: #fffdf9;
	--tm-sand: #f3e9da;
	--tm-rose: #b4654a;
	--tm-rose-dark: #96503a;
	--tm-sage: #8a9b84;
	--tm-ink: #3e342c;
	--tm-muted: #7d6c5f;
	--tm-line: #e8dccb;
	--tm-radius: 16px;
	--tm-display: "Cormorant Garamond", Georgia, serif;
	--tm-body: "Jost", "Century Gothic", Arial, sans-serif;
}

/* ============ Base ============ */
body {
	background: var(--tm-ivory);
	color: var(--tm-ink);
	font-family: var(--tm-body);
}
h1, h2, h3, h4,
.site-title, .entry-title {
	font-family: var(--tm-display);
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--tm-ink);
}
a { color: var(--tm-rose-dark); }
a:hover { color: var(--tm-rose); }

/* Header / footer softening */
.site-header { background: var(--tm-cream); border-bottom: 1px solid var(--tm-line); }
.site-title { font-size: 1.9rem; letter-spacing: 0.14em; text-transform: uppercase; }
.site-footer { background: var(--tm-ink); color: #efe7db; }
.site-footer a { color: #e9cdbd; }

/* ============ Buttons ============ */
.tm-btn {
	display: inline-block;
	padding: 0.85rem 1.9rem;
	border-radius: 999px;
	font-family: var(--tm-body);
	font-weight: 600;
	font-size: 0.98rem;
	letter-spacing: 0.04em;
	text-decoration: none !important;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.tm-btn-primary { background: var(--tm-rose); color: #fff !important; border: 2px solid var(--tm-rose); }
.tm-btn-primary:hover { background: var(--tm-rose-dark); border-color: var(--tm-rose-dark); }
.tm-btn-ghost { background: transparent; color: var(--tm-rose-dark) !important; border: 2px solid var(--tm-rose); }
.tm-btn-ghost:hover { background: var(--tm-rose); color: #fff !important; }
.tm-btn-light { background: var(--tm-cream); color: var(--tm-rose-dark) !important; border: 2px solid var(--tm-cream); }
.tm-center { text-align: center; margin-top: 2rem; }

/* ============ Homepage ============ */
.tm-home { max-width: 1200px; margin: 0 auto; padding: 0 20px 4rem; }
.tm-eyebrow {
	font-family: var(--tm-body);
	text-transform: uppercase;
	letter-spacing: 0.28em;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--tm-rose);
	margin: 0 0 0.8rem;
}

/* Hero */
.tm-hero {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 3rem;
	align-items: center;
	padding: 3.5rem 0 2.5rem;
}
.tm-hero h1 { font-size: 3.2rem; line-height: 1.05; margin: 0 0 1.1rem; }
.tm-lede { font-size: 1.12rem; line-height: 1.65; color: var(--tm-muted); margin: 0 0 1.8rem; max-width: 34rem; }
.tm-hero-ctas { display: flex; gap: 0.9rem; flex-wrap: wrap; }
.tm-hero-rating { margin-top: 1.3rem; color: var(--tm-rose-dark); font-weight: 600; }
.tm-hero-media img {
	width: 100%;
	height: 100%;
	max-height: 560px;
	object-fit: cover;
	border-radius: var(--tm-radius);
	box-shadow: 0 24px 48px rgba(62, 52, 44, 0.14);
	display: block;
}

/* Trust bar */
.tm-trust {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	background: var(--tm-cream);
	border: 1px solid var(--tm-line);
	border-radius: var(--tm-radius);
	padding: 1.2rem 1.4rem;
	margin: 0.5rem 0 1rem;
}
.tm-trust-item strong { display: block; font-family: var(--tm-display); font-size: 1.12rem; margin-bottom: 0.15rem; }
.tm-trust-item span { color: var(--tm-muted); font-size: 0.9rem; }

/* Sections */
.tm-section { padding: 2.6rem 0 0.6rem; }
.tm-section-sand {
	background: var(--tm-sand);
	border-radius: var(--tm-radius);
	padding: 2.6rem 2rem 2.2rem;
	margin-top: 2.6rem;
}
.tm-section-title { font-size: 2.2rem; text-align: center; margin: 0 0 0.4rem; }
.tm-section-sub { text-align: center; color: var(--tm-muted); max-width: 40rem; margin: 0 auto 1.8rem; line-height: 1.6; }

/* Category tiles */
.tm-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; }
.tm-tile {
	display: block;
	background: var(--tm-cream);
	border: 1px solid var(--tm-line);
	border-radius: var(--tm-radius);
	overflow: hidden;
	text-decoration: none !important;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.tm-tile:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(62, 52, 44, 0.12); }
.tm-tile img { width: 100%; height: 190px; object-fit: cover; display: block; }
.tm-tile-name { display: block; font-family: var(--tm-display); font-size: 1.25rem; color: var(--tm-ink); padding: 0.8rem 1rem 0; }
.tm-tile-count { display: block; color: var(--tm-muted); font-size: 0.88rem; padding: 0 1rem 0.95rem; }

/* Story */
.tm-story {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 3rem;
	align-items: center;
	padding: 3.2rem 0 0.6rem;
}
.tm-story-media img { width: 100%; max-height: 460px; object-fit: cover; border-radius: var(--tm-radius); display: block; }
.tm-story-copy h2 { font-size: 2.1rem; margin: 0 0 0.9rem; }
.tm-story-copy p { color: var(--tm-muted); line-height: 1.7; margin: 0 0 1.5rem; }

/* Size help band */
.tm-sizehelp {
	margin-top: 3rem;
	background: var(--tm-rose);
	color: #fff;
	border-radius: var(--tm-radius);
	text-align: center;
	padding: 2.6rem 2rem;
}
.tm-sizehelp h2 { color: #fff; font-size: 2rem; margin: 0 0 0.6rem; }
.tm-sizehelp p { max-width: 42rem; margin: 0 auto 1.6rem; line-height: 1.65; color: #f7e4da; }

/* ============ WooCommerce ============ */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: var(--tm-cream);
	border: 1px solid var(--tm-line);
	border-radius: var(--tm-radius);
	padding: 0 0 1.1rem;
	overflow: hidden;
	text-align: center;
	transition: box-shadow 0.18s ease, transform 0.18s ease;
}
.woocommerce ul.products li.product:hover {
	box-shadow: 0 16px 32px rgba(62, 52, 44, 0.12);
	transform: translateY(-3px);
}
.woocommerce ul.products li.product img { border-radius: 0; margin-bottom: 0.9rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--tm-display);
	font-size: 1.18rem;
	padding: 0 0.9rem;
	color: var(--tm-ink);
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--tm-rose-dark);
	font-weight: 600;
	font-size: 1.05rem;
}
.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce button.single_add_to_cart_button {
	background: var(--tm-rose);
	color: #fff;
	border-radius: 999px;
	font-family: var(--tm-body);
	font-weight: 600;
	letter-spacing: 0.03em;
	padding: 0.75rem 1.6rem;
	border: none;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce button.single_add_to_cart_button:hover {
	background: var(--tm-rose-dark);
	color: #fff;
}
.woocommerce span.onsale {
	background: var(--tm-rose);
	border-radius: 999px;
	min-height: 3rem;
	min-width: 3rem;
	line-height: 3rem;
	font-family: var(--tm-body);
	font-weight: 600;
}
.woocommerce .woocommerce-breadcrumb { color: var(--tm-muted); }
.woocommerce div.product .product_title { font-size: 2.3rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--tm-rose-dark); }
.woocommerce-message, .woocommerce-info {
	border-top-color: var(--tm-sage);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--tm-sage); }

/* ============ Responsive ============ */
@media (max-width: 960px) {
	.tm-tiles { grid-template-columns: repeat(2, 1fr); }
	.tm-trust { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
	.tm-hero { grid-template-columns: 1fr; padding-top: 2rem; gap: 1.6rem; }
	.tm-hero h1 { font-size: 2.4rem; }
	.tm-story { grid-template-columns: 1fr; gap: 1.6rem; }
	.tm-section-sand { padding: 2rem 1.1rem 1.8rem; }
}
@media (max-width: 460px) {
	.tm-tiles { grid-template-columns: 1fr; }
	.tm-trust { grid-template-columns: 1fr; }
}
