/* Sunday Table Dominoes: Storefront child theme styles */

:root {
	--ivory: #F7F2E8;
	--ivory-deep: #EFE6D6;
	--tile: #FBF8F1;
	--line: #E2D6C1;
	--walnut: #3B2A1E;
	--walnut-600: #6B4A33;
	--walnut-300: #A67C52;
	--ink: #1E1A17;
	--brass: #B08D57;
	--accent: #1E6B63;
	--accent-hover: #16534D;
	--red: #A8322D;
	--display: "Fraunces", Georgia, "Times New Roman", serif;
	--body: "Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--radius: 10px;
}

/* ---------- Base ---------- */
body,
button, input, select, textarea {
	font-family: var(--body);
}
body {
	background: var(--ivory);
	color: var(--walnut);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .site-title, .product_title, .woocommerce-loop-product__title {
	font-family: var(--display);
	color: var(--walnut);
	font-weight: 600;
	letter-spacing: -0.01em;
	text-wrap: balance;
}
h1 { font-size: clamp(2rem, 4.2vw, 2.9rem); line-height: 1.1; }
h2 { font-size: clamp(1.55rem, 2.8vw, 2.1rem); line-height: 1.15; }
h3 { font-size: 1.2rem; line-height: 1.3; }
p { max-width: 68ch; }
a { color: var(--accent); text-underline-offset: 2px; }
a:hover, a:focus { color: var(--accent-hover); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.site-content { padding-top: 2rem; }
hr { background-color: var(--line); }

/* ---------- Buttons ---------- */
button, input[type="button"], input[type="reset"], input[type="submit"],
.button, .added_to_cart, .widget a.button,
.site-header-cart .widget_shopping_cart a.button,
.single-product div.product form.cart .button,
.wc-block-components-button {
	background-color: var(--accent);
	border-color: var(--accent);
	color: #fff;
	font-family: var(--body);
	font-weight: 600;
	border-radius: 999px;
	padding: 0.8em 1.6em;
	letter-spacing: 0.01em;
	transition: background-color .15s ease;
}
button:hover, input[type="submit"]:hover, .button:hover, .added_to_cart:hover,
.single-product div.product form.cart .button:hover {
	background-color: var(--accent-hover);
	border-color: var(--accent-hover);
	color: #fff;
}
.button.alt, button.alt, input[type="submit"].alt,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
#place_order {
	background-color: var(--accent);
	border-color: var(--accent);
}
.button.alt:hover, #place_order:hover { background-color: var(--accent-hover); }

/* ---------- Announcement bar ---------- */
.std-announce {
	background: var(--walnut);
	color: var(--ivory);
	font-size: 0.8rem;
	letter-spacing: 0.02em;
}
.std-announce .col-full {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.35rem 0.9rem;
	padding-top: 0.55rem;
	padding-bottom: 0.55rem;
	text-align: center;
}
.std-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--brass); display: inline-block; }
@media (max-width: 600px) {
	.std-announce span:nth-child(n+3) { display: none; }
}

/* ---------- Header ---------- */
.site-header {
	background: var(--ivory);
	border-bottom: 1px solid var(--line);
	padding-top: 1.4em;
	margin-bottom: 0;
	color: var(--walnut);
}
.site-header .site-title a, .site-header .site-branding .site-title a {
	color: var(--walnut);
	font-family: var(--display);
	font-weight: 700;
	font-size: 1.6rem;
	letter-spacing: -0.01em;
}
.site-header .site-description { color: var(--walnut-600); font-size: 0.85rem; }
.main-navigation ul li a, .site-header-cart .cart-contents,
.main-navigation ul.menu > li > a { color: var(--walnut); font-weight: 500; }
.main-navigation ul li a:hover, .main-navigation ul li:hover > a,
.site-header-cart:hover > li > a { color: var(--accent); }
.main-navigation ul.menu ul, .main-navigation ul.nav-menu ul {
	background: var(--tile);
	border: 1px solid var(--line);
}
.storefront-primary-navigation { background: transparent; }
.site-header-cart .widget_shopping_cart, .main-navigation ul.menu ul.sub-menu {
	background-color: var(--tile);
}
button.menu-toggle, button.menu-toggle:hover {
	border-color: var(--walnut);
	color: var(--walnut);
	background: transparent;
}
button.menu-toggle::before, button.menu-toggle::after, button.menu-toggle span::before {
	background-color: var(--walnut);
}

/* ---------- Shared bits ---------- */
.std-eyebrow {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--walnut-600);
	margin: 0 0 0.6rem;
}
.std-spec {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--walnut-600);
	margin: 0.2rem 0 0.6rem;
}
.std-badge {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--accent);
	background: rgba(30, 107, 99, 0.1);
	border-radius: 999px;
	padding: 0.2em 0.75em;
}
.std-link { font-weight: 600; text-decoration: none; }
.std-link:hover { text-decoration: underline; }
.std-btn { display: inline-block; text-decoration: none; }
.std-btn--light { background: var(--ivory); border-color: var(--ivory); color: var(--walnut); }
.std-btn--light:hover { background: #fff; border-color: #fff; color: var(--walnut); }

/* ---------- Homepage ---------- */
.home .site-content { padding-top: 0; }
.home .site-header, .home.page .site-header, .home.blog .site-header { margin-bottom: 0 !important; }
.site-header { margin-bottom: 0 !important; }
.home .site-main { margin-bottom: 0; }
/* Let homepage sections run full-bleed; each section has its own .col-full. */
.home .site-content > .col-full { max-width: none; padding-left: 0; padding-right: 0; margin: 0; }
.home .content-area { width: 100%; float: none; margin: 0; }
.home .storefront-breadcrumb { display: none; }
.std-home .col-full { box-sizing: border-box; }
/* Storefront's clearfix pseudo-elements would become grid/flex items. */
.std-home .col-full::before,
.std-home .col-full::after { content: none; display: none; }
.std-section { padding: clamp(3rem, 6vw, 5rem) 0; }
.std-section h2 { margin-bottom: 1.6rem; }

.std-hero {
	background: var(--ivory-deep);
	border-bottom: 1px solid var(--line);
	overflow: hidden;
}
.std-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: 2rem;
	align-items: center;
	padding-top: clamp(2.5rem, 6vw, 4.5rem);
	padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
}
.std-hero h1 { margin: 0 0 1rem; }
.std-hero__sub { font-size: 1.1rem; color: var(--walnut-600); margin-bottom: 1.6rem; }
.std-hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.std-hero__art { display: flex; justify-content: center; }
.std-train {
	display: flex;
	align-items: center;
	transform: rotate(-8deg);
}
.std-train .std-tile { filter: drop-shadow(0 6px 10px rgba(59, 42, 30, 0.18)); margin-left: -6px; }
.std-train .std-tile--0 { transform: rotate(90deg); margin-right: 26px; }
.std-train .std-tile:nth-child(odd):not(.std-tile--0) { transform: translateY(-10px); }
@media (max-width: 800px) {
	.std-hero__inner { grid-template-columns: 1fr; }
	.std-hero__art { order: -1; }
	.std-train .std-tile { width: 40px; height: 80px; }
	.std-train .std-tile--0 { margin-right: 18px; }
}

.std-trustbar { background: var(--walnut); color: var(--ivory); }
.std-trustbar ul {
	list-style: none;
	margin: 0;
	padding: 1.1rem 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}
.std-trustbar li { display: flex; flex-direction: column; font-size: 0.85rem; line-height: 1.35; }
.std-trustbar strong { font-weight: 600; color: #fff; }
.std-trustbar span { color: #D9CBB4; }
@media (max-width: 800px) { .std-trustbar ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.std-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.1rem;
}
.std-card {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	background: var(--tile);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 1.3rem 1.2rem 1.2rem;
	text-decoration: none;
	color: var(--walnut);
	transition: border-color .15s ease, transform .15s ease;
}
.std-card:hover, .std-card:focus-visible { border-color: var(--walnut-300); transform: translateY(-2px); color: var(--walnut); }
.std-card__art { display: flex; justify-content: center; padding: 0.4rem 0 0.9rem; }
.std-card__art .std-tile { transform: rotate(90deg); margin: 18px 0; }
.std-card .std-badge { align-self: flex-start; }
.std-card__name { font-family: var(--display); font-size: 1.2rem; font-weight: 600; line-height: 1.25; }
.std-card .std-spec { margin: 0; }
.std-card__price { font-weight: 600; margin-top: auto; padding-top: 0.5rem; }
.std-card__price small { font-weight: 400; color: var(--walnut-600); }
.std-card--text { gap: 0.5rem; }
.std-card--text span:last-child { color: var(--walnut-600); }
.std-more { margin-top: 1.4rem; }
@media (max-width: 900px) { .std-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .std-cards { grid-template-columns: 1fr; } }

.std-spot { background: var(--tile); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.std-spot__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: center; }
.std-hub { position: relative; width: 300px; height: 300px; margin: 0 auto; max-width: 100%; }
.std-hub__arm {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: rotate(var(--r)) translateY(-118px);
	transform-origin: 0 0;
}
.std-hub__arm .std-tile { transform: translateX(-50%); display: block; }
.std-hub__center {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 84px;
	height: 84px;
	margin: -42px 0 0 -42px;
	border-radius: 50%;
	background: var(--walnut);
	color: var(--ivory);
	font-family: var(--display);
	font-size: 1.8rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 0 0 6px var(--brass);
}
.std-checks { list-style: none; margin: 0 0 1.6rem; padding: 0; }
.std-checks li { position: relative; padding-left: 1.6rem; margin-bottom: 0.55rem; }
.std-checks li::before {
	content: "";
	position: absolute;
	left: 0.2rem;
	top: 0.55em;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--accent);
}
@media (max-width: 800px) {
	.std-spot__inner { grid-template-columns: 1fr; }
	.std-hub { transform: scale(0.85); }
}

.std-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem; }
.std-three h3 { margin-bottom: 0.4rem; }
.std-three p { color: var(--walnut-600); margin: 0; }
@media (max-width: 800px) { .std-three { grid-template-columns: 1fr; } }

.std-gift { background: var(--walnut); color: var(--ivory); }
.std-gift h2, .std-gift .std-eyebrow { color: var(--ivory); }
.std-gift .std-eyebrow { color: var(--brass); }
.std-gift p { color: #E5D8C3; margin: 0; }
.std-gift__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.5rem 3rem; }
.std-gift__inner > div { flex: 1 1 420px; }
.std-gift h2 { margin-bottom: 0.8rem; }

.std-promise { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.std-promise > div { border-top: 3px solid var(--brass); padding-top: 1rem; }
.std-promise h3 { font-size: 1.05rem; margin-bottom: 0.35rem; }
.std-promise p { font-size: 0.93rem; color: var(--walnut-600); margin: 0; }
@media (max-width: 900px) { .std-promise { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .std-promise { grid-template-columns: 1fr; } }

.std-learn { background: var(--ivory-deep); }

.std-faq { max-width: 780px; }
.std-faq details, .entry-content details {
	border-bottom: 1px solid var(--line);
	padding: 0.95rem 0;
}
.std-faq summary, .entry-content summary {
	cursor: pointer;
	font-weight: 600;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.std-faq summary::after, .entry-content summary::after { content: "+"; color: var(--accent); font-size: 1.2rem; line-height: 1; }
.std-faq details[open] summary::after, .entry-content details[open] summary::after { content: "–"; }
.std-faq summary::-webkit-details-marker, .entry-content summary::-webkit-details-marker { display: none; }
.std-faq details p, .entry-content details p { margin: 0.6rem 0 0; color: var(--walnut-600); }

/* ---------- Footer ---------- */
.site-footer {
	background: var(--walnut);
	color: #D9CBB4;
	padding: 3rem 0 1.2rem;
}
.site-footer a { color: var(--ivory); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.std-footer {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 2rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid rgba(247, 242, 232, 0.15);
}
.std-footer__name { font-family: var(--display); font-size: 1.3rem; color: var(--ivory); margin-bottom: 0.4rem; }
.std-footer p { margin-bottom: 0.7rem; font-size: 0.9rem; }
.std-footer__col { display: flex; flex-direction: column; gap: 0.45rem; font-size: 0.9rem; }
.std-footer__h { color: var(--brass); font-size: 0.75rem !important; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 0.3rem !important; }
.std-legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.6rem 2rem; padding-top: 1.2rem; font-size: 0.8rem; }
.site-footer .footer-widgets { display: none; }
@media (max-width: 800px) { .std-footer { grid-template-columns: 1fr 1fr; } .std-footer__brand { grid-column: 1 / -1; } }

/* ---------- Content pages ---------- */
.page .entry-header { border-bottom: 0; margin-bottom: 1rem; }
.page .entry-title { font-size: clamp(1.9rem, 3.5vw, 2.6rem); }
.entry-content { max-width: 780px; }
.entry-content h2 { margin-top: 2.2rem; }
.entry-content table { background: var(--tile); border: 1px solid var(--line); }
.entry-content table th, .entry-content table td { padding: 0.6em 0.9em; border-bottom: 1px solid var(--line); }
.entry-content table thead th { background: var(--ivory-deep); color: var(--walnut); font-weight: 600; }
.entry-content td strong, .entry-content th { white-space: nowrap; }
.std-note { background: var(--tile); border-left: 4px solid var(--brass); padding: 1rem 1.2rem; border-radius: 0 var(--radius) var(--radius) 0; }
.std-scoresheet th, .std-scoresheet td { text-align: center; min-width: 3.5em; height: 2.3em; }
@media print {
	.std-announce, .site-header, .site-footer, .storefront-breadcrumb, .std-noprint, .storefront-handheld-footer-bar { display: none !important; }
	body { background: #fff; }
	.std-scoresheet th, .std-scoresheet td { border: 1px solid #333 !important; }
}

/* ---------- Shop & product ---------- */
.storefront-breadcrumb { background: transparent; margin-bottom: 1.5rem; }
.woocommerce-breadcrumb { font-size: 0.8rem; color: var(--walnut-600); }
ul.products li.product {
	background: var(--tile);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 0 0 1.2rem;
	overflow: hidden;
}
ul.products li.product img { border-radius: 0; margin-bottom: 1rem; }
ul.products li.product .woocommerce-loop-product__title { font-size: 1.1rem; padding: 0 0.9rem; }
ul.products li.product .price { color: var(--walnut); font-weight: 600; }
ul.products li.product .std-spec { padding: 0 0.9rem; }
ul.products li.product .button { margin-top: 0.4rem; }
.onsale { background: var(--red); border-color: var(--red); color: #fff; border-radius: 999px; }

.single-product div.product .product_title { font-size: clamp(1.7rem, 3vw, 2.3rem); margin-bottom: 0.2rem; }
.single-product div.product p.price { color: var(--walnut); font-size: 1.5rem; font-weight: 600; }
.single-product div.product .woocommerce-product-details__short-description { color: var(--walnut-600); }
.single-product div.product form.cart { margin-bottom: 1rem; }
.std-delivery {
	background: var(--tile);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 1rem 1.1rem;
	margin-bottom: 1.5rem;
	font-size: 0.92rem;
}
.std-delivery p { margin: 0 0 0.5rem; }
.std-trust { list-style: none; margin: 0; padding: 0; color: var(--walnut-600); }
.std-trust li { position: relative; padding-left: 1.2rem; margin: 0.15rem 0; }
.std-trust li::before { content: ""; position: absolute; left: 0.1rem; top: 0.6em; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.woocommerce-tabs ul.tabs li a { color: var(--walnut); }
.woocommerce-tabs ul.tabs li.active a { color: var(--accent); }
.storefront-sticky-add-to-cart { background: var(--tile); border-color: var(--line); }

/* Cart & checkout */
.woocommerce-checkout .col2-set h3, #order_review_heading { font-family: var(--display); }
table.shop_table, .woocommerce-checkout-review-order-table { background: var(--tile); }
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], textarea, select, .select2-container .select2-selection--single {
	background-color: #fff;
	border: 1px solid var(--line);
	border-radius: 8px;
	box-shadow: none;
	color: var(--ink);
}
input:focus, textarea:focus, select:focus { border-color: var(--accent); }

/* Handheld footer bar */
.storefront-handheld-footer-bar ul li > a { background: var(--walnut); color: var(--ivory); }
.storefront-handheld-footer-bar ul li.cart .count { background: var(--accent); border-color: var(--walnut); color: #fff; }

@media (prefers-reduced-motion: reduce) {
	.std-card, .button { transition: none; }
}
