/*
Theme Name:   D2O Jewelry
Theme URI:    https://www.d2o.cn/
Description:  Blocksy child theme for D2O — minimal jewelry aesthetic, pure white canvas, refined WooCommerce. Parent: Blocksy.
Author:       D2O
Template:     blocksy
Version:      1.0.1
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  d2o-jewelry
*/

/* -------------------------------------------------------------------------
   Design tokens — strict white base, luxury-quiet typography
   References: list/cards (breathing grid), product (gallery + calm summary)
   ------------------------------------------------------------------------- */
:root {
	--d2o-bg: #ffffff;
	--d2o-text: #141414;
	--d2o-muted: #5a5a5a;
	--d2o-faint: #8a8a8a;
	--d2o-border: #e6e6e6;
	--d2o-accent: #6b5b45;
	--d2o-radius: 2px;
	--d2o-header-h: 4.25rem;
	--d2o-content-max: 1280px;
	--d2o-narrow: 680px;
}

/* Strict white shell (overrides tinted Blocksy / Woo wrappers) */
html {
	background-color: var(--d2o-bg) !important;
	scroll-behavior: smooth;
}

body {
	background-color: var(--d2o-bg) !important;
	color: var(--d2o-text);
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
	font-size: 1rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.boxed,
.site,
#wrapper,
.ct-root,
#main,
main,
.wp-site-blocks,
.woocommerce,
.woocommerce-page .woocommerce,
.woocommerce-page #content,
.woocommerce-cart,
.woocommerce-checkout,
.woocommerce-account {
	background-color: var(--d2o-bg) !important;
}

/* Headings: quiet luxury — not heavy */
h1, h2, h3, h4,
.wp-block-heading,
.woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-weight: 400;
	letter-spacing: 0.06em;
	text-transform: none;
	color: var(--d2o-text);
}

a {
	color: var(--d2o-text);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color 0.15s ease, opacity 0.15s ease;
}

a:hover {
	color: var(--d2o-accent);
}

/* Skip link — SEO / accessibility */
.d2o-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 99999;
	padding: 0.75rem 1rem;
	background: var(--d2o-text);
	color: var(--d2o-bg) !important;
	text-decoration: none;
	font-size: 0.875rem;
}

.d2o-skip-link:focus {
	left: 0.5rem;
	top: 0.5rem;
	outline: 2px solid var(--d2o-accent);
	outline-offset: 2px;
}

/* -------------------------------------------------------------------------
   Header & dropdown — Blocksy 2.1.x (from www.d2o.cn live HTML)
   #header.ct-header · #header-menu-1.menu-container · data-dropdown="type-1:simple"
   · .ct-menu-link · .ct-toggle-dropdown-desktop · ul.sub-menu
   · mega: .ct-mega-menu-content-width / [class*="ct-mega-menu"]
   · mobile: #offcanvas.ct-panel · .mobile-menu.menu-container
   ------------------------------------------------------------------------- */

#header.ct-header,
#header.ct-header[data-id="type-1"] {
	background-color: var(--d2o-bg) !important;
	border-bottom: 1px solid var(--d2o-border);
	box-shadow: none;
}

#header.ct-header .site-branding a,
#header.ct-header .site-logo-container {
	opacity: 1;
}

/* Desktop primary nav */
#header.ct-header nav.menu-container[data-menu="type-1"] .ct-menu-link,
#header.ct-header #header-menu-1 .ct-menu-link {
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--d2o-text);
}

#header.ct-header nav.menu-container[data-menu="type-1"] .ct-menu-link:hover,
#header.ct-header #header-menu-1 .ct-menu-link:hover {
	color: var(--d2o-accent);
}

#header.ct-header .ct-toggle-dropdown-desktop {
	opacity: 0.55;
	margin-inline-start: 0.25em;
	vertical-align: middle;
}

#header.ct-header .ct-toggle-dropdown-desktop .ct-icon {
	display: inline-block;
	vertical-align: middle;
}

#header.ct-header .ct-toggle-dropdown-desktop-ghost {
	background: transparent;
	border: 0;
	padding: 0;
}

/* Shared submenu shell (simple flyout + mega wrapper) */
#header.ct-header .menu-container ul.sub-menu {
	background-color: var(--d2o-bg) !important;
	border: 1px solid var(--d2o-border) !important;
	border-radius: var(--d2o-radius);
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.07);
	padding: 0.5rem 0 !important;
	margin: 0 !important;
	list-style: none;
}

/* Classic nested flyout (no Blocksy mega classes on parent LI) */
#header.ct-header .menu-item-has-children:not([class*="ct-mega-menu"]) > ul.sub-menu {
	min-width: 14rem;
}

/* Blocksy Companion mega panel — one wide column with block content */
#header.ct-header .menu-item[class*="ct-mega-menu"] > ul.sub-menu {
	min-width: min(100vw - 2rem, var(--d2o-content-max));
	max-width: var(--d2o-content-max);
	padding: 1rem 0 !important;
}

#header.ct-header .menu-item[class*="ct-mega-menu"] > ul.sub-menu > li {
	padding: 0;
	margin: 0;
}

#header.ct-header .menu-item[class*="ct-mega-menu"] .sub-menu .entry-content {
	padding: 0 1rem;
	max-width: 100%;
}

#header.ct-header .menu-container ul.sub-menu li {
	border: none;
}

/* Text links inside dropdown (simple submenu items) */
#header.ct-header .menu-container ul.sub-menu a.ct-menu-link {
	display: block;
	padding: 0.55rem 1.25rem !important;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.4;
	white-space: nowrap;
}

#header.ct-header .menu-container ul.sub-menu a.ct-menu-link:hover {
	background: rgba(0, 0, 0, 0.03);
	color: var(--d2o-accent);
}

/* -------------------------------------------------------------------------
   Mobile drawer — #offcanvas.ct-panel
   ------------------------------------------------------------------------- */
#offcanvas.ct-panel,
#offcanvas.ct-panel .ct-panel-inner {
	background-color: var(--d2o-bg) !important;
}

#offcanvas.ct-panel .mobile-menu .ct-menu-link {
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--d2o-text);
}

#offcanvas.ct-panel .mobile-menu ul.sub-menu {
	background: transparent !important;
	border-inline-start: 2px solid var(--d2o-border);
	padding: 0.25rem 0 0.25rem 0.75rem !important;
	margin: 0.35rem 0 0.5rem !important;
	box-shadow: none;
	border-top: 0;
	border-right: 0;
	border-bottom: 0;
}

#offcanvas.ct-panel .mobile-menu ul.sub-menu a.ct-menu-link {
	white-space: normal;
}

/* Search modal */
#search-modal.ct-panel .ct-panel-content,
#search-modal.ct-panel {
	background-color: var(--d2o-bg) !important;
}

/* Other Blocksy panels / drawer canvas */
.ct-drawer-canvas .ct-panel .ct-panel-content-inner {
	background-color: transparent;
}

/* -------------------------------------------------------------------------
   Content width & vertical rhythm (homepage / editorial blocks)
   ------------------------------------------------------------------------- */
.ct-container,
.alignwide {
	max-width: var(--d2o-content-max);
}

.entry-content > * + *,
.wp-block-post-content > * + * {
	margin-top: 1.25em;
}

.wp-block-group.has-background {
	background-color: var(--d2o-bg) !important;
}

/* -------------------------------------------------------------------------
   WooCommerce — shop archive (Graff-like breathing grid)
   ------------------------------------------------------------------------- */
.woocommerce ul.products {
	margin: 0 -0.75rem 2rem;
}

.woocommerce ul.products li.product {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 0.75rem 2.5rem;
	text-align: center;
}

.woocommerce ul.products li.product a img {
	border-radius: var(--d2o-radius);
	transition: opacity 0.25s ease;
}

.woocommerce ul.products li.product a:hover img {
	opacity: 0.92;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 0.8125rem;
	line-height: 1.5;
	margin-top: 1rem !important;
	padding: 0 0.25rem;
	color: var(--d2o-text);
}

.woocommerce ul.products li.product .price {
	color: var(--d2o-muted) !important;
	font-size: 0.8125rem;
	font-weight: 400;
	margin-top: 0.35rem !important;
}

.woocommerce ul.products li.product .price del {
	opacity: 0.55;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
	background: transparent !important;
	color: var(--d2o-text) !important;
	border: 1px solid var(--d2o-border) !important;
	border-radius: var(--d2o-radius);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.65rem 1.25rem !important;
	margin-top: 0.85rem;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:hover {
	border-color: var(--d2o-text) !important;
	color: var(--d2o-accent) !important;
}

/* -------------------------------------------------------------------------
   WooCommerce — single product (calm gallery + summary)
   ------------------------------------------------------------------------- */
.single-product .product {
	max-width: var(--d2o-content-max);
	margin-left: auto;
	margin-right: auto;
}

.single-product .woocommerce-product-gallery {
	background: var(--d2o-bg);
}

.single-product .woocommerce-product-gallery__wrapper img {
	border-radius: var(--d2o-radius);
}

.single-product .summary.entry-summary {
	padding-top: 0.5rem;
}

@media (min-width: 900px) {
	.single-product .summary.entry-summary {
		padding-left: clamp(1.5rem, 4vw, 3.5rem);
	}
}

.single-product .product_title {
	font-size: clamp(1.35rem, 2.2vw, 1.85rem);
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.35;
	margin-bottom: 1rem;
	border: none;
	padding: 0;
}

.single-product p.price {
	color: var(--d2o-muted) !important;
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	margin-bottom: 1.25rem !important;
}

.single-product .woocommerce-product-details__short-description {
	color: var(--d2o-muted);
	font-size: 0.9375rem;
	line-height: 1.75;
	max-width: 36rem;
}

.single-product form.cart .button,
.single-product .single_add_to_cart_button {
	background: var(--d2o-text) !important;
	color: var(--d2o-bg) !important;
	border: none !important;
	border-radius: var(--d2o-radius);
	font-size: 0.6875rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 0.95rem 2rem !important;
}

.single-product form.cart .button:hover,
.single-product .single_add_to_cart_button:hover {
	opacity: 0.88;
}

.single-product .woocommerce-tabs,
.single-product #reviews {
	border-color: var(--d2o-border);
}

.single-product .woocommerce-tabs ul.tabs li a {
	color: var(--d2o-muted);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Breadcrumbs — subtle, still crawlable in markup */
.woocommerce .woocommerce-breadcrumb {
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--d2o-faint) !important;
	margin-bottom: 1.5rem !important;
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--d2o-muted) !important;
	text-decoration: none;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
	border: none;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--d2o-border);
	color: var(--d2o-text);
	min-width: 2.25rem;
}

/* Cart / checkout — keep white, simple borders */
.woocommerce table.shop_table,
.woocommerce-checkout #payment,
.woocommerce .cart-collaterals .cart_totals {
	border-color: var(--d2o-border) !important;
	background: var(--d2o-bg) !important;
}

/* Block-based Woo (if used) */
.wc-block-grid__product {
	background: transparent !important;
}

.wc-block-grid__product-title {
	font-weight: 400;
	letter-spacing: 0.05em;
	font-size: 0.875rem;
}

/* -------------------------------------------------------------------------
   Forms & focus — accessibility
   ------------------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="search"],
input[type="tel"],
input[type="url"],
textarea,
select {
	border-color: var(--d2o-border);
	border-radius: var(--d2o-radius);
	background: var(--d2o-bg);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--d2o-accent);
	outline-offset: 2px;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	* {
		transition: none !important;
	}
}

/* Hide homepage module requested on 2026-04-29 */
#gspb_col-id-gsbp-3400ead{display:none !important;}
