.site-header .header-main > .menu-toggle { display: none !important; }

/* Final mobile header layout */
@media (max-width: 900px) {
	.site-header .header-main > .header-search,
	.site-header .header-main > .header-search.is-collapsed,
	.site-header .header-main > .header-search:not(.is-collapsed) {
		position: static !important;
		order: 0 !important;
		flex: 1 1 auto !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
	}
	.site-header .header-main > .site-branding { flex: 0 0 auto !important; width: auto !important; }
	.site-header .header-main > .header-actions { flex: 0 0 auto !important; width: auto !important; }
	.site-header .header-main {
		align-items: center !important;
		flex-wrap: nowrap !important;
		min-height: 0 !important;
		padding: 10px 0 !important;
		gap: 10px !important;
	}
	.site-header .site-branding {
		flex: 0 0 auto !important;
		order: 0 !important;
		min-width: 0 !important;
		width: auto !important;
	}
	.site-header .custom-logo {
		width: auto !important;
		max-width: 92px !important;
		max-height: 54px !important;
	}
	.site-header .site-title { font-size: 20px !important; }
	.site-header .header-actions {
		flex: 0 0 auto !important;
		order: 2 !important;
		width: auto !important;
		margin-left: auto !important;
		gap: 8px !important;
		font-size: 14px !important;
	}
	.site-header .header-actions .account-label { display: none !important; }
	.site-header .header-main > .menu-toggle {
		display: grid !important;
		order: -1 !important;
		flex: 0 0 32px !important;
		place-items: center;
		width: 32px !important;
		height: 38px !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		color: var(--shop-ink);
		font-size: 22px;
		line-height: 1;
	}
	.site-header .header-search,
	.site-header .header-main .header-search,
	.site-header .header-search.is-collapsed,
	.site-header .header-search:not(.is-collapsed) {
		position: static !important;
		order: 1 !important;
		flex: 1 1 auto !important;
		width: auto !important;
		max-width: 320px !important;
		height: 42px !important;
		margin: 0 !important;
		box-shadow: none !important;
	}
	.site-header .header-search input,
	.site-header .header-search.is-collapsed input {
		width: 100% !important;
		min-width: 0 !important;
		padding: 9px 12px !important;
		opacity: 1 !important;
	}
	.site-header .main-nav { display: none !important; }
	.site-header .header-main + .main-nav.is-open { display: block !important; }
	.site-header .nav-inner {
		display: block !important;
		width: min(100% - 28px, 1180px) !important;
		min-height: 0 !important;
	}
	.site-header .main-menu { display: block !important; white-space: normal !important; }
	.site-header .main-menu > .menu-item {
		border: 0 !important;
		border-bottom: 1px solid var(--shop-line) !important;
	}
}

/* Header layout */
.topbar { display: none !important; }
.site-header { background: #f4f4f4 !important; border-bottom: 1px solid #222 !important; }
.site-header .header-main {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	min-height: 80px;
	padding: 10px 0;
}
.site-header .site-branding { flex: 0 0 180px; min-width: 0; }
.site-header .main-nav { border-top: 0 !important; }
.site-header .nav-inner { width: min(1180px, calc(100% - 40px)) !important; margin-inline: auto !important; }
.site-header .menu-toggle { border-right: 0 !important; }
.site-header .main-menu > .menu-item { border-right: 0 !important; }
.site-header .main-menu { gap: 0 !important; }
.site-header .header-search,
.site-header .header-search.is-collapsed,
.site-header .header-search:not(.is-collapsed) {
	flex: 0 1 320px !important;
	width: min(320px, 34vw) !important;
	max-width: 320px !important;
	border-color: var(--shop-line) !important;
	background: var(--shop-soft) !important;
}
.site-header .header-search input,
.site-header .header-search.is-collapsed input {
	width: auto !important;
	min-width: 0;
	padding: 9px 10px !important;
	opacity: 1 !important;
}
.site-header .header-search .search-toggle { display: none !important; }
.site-header .header-search .search-submit {
	display: grid;
	flex: 0 0 42px;
	place-items: center;
	width: 42px;
	height: 40px;
	padding: 0;
	border: 0;
	border-left: 1px solid var(--shop-line);
	border-radius: 0;
	background: transparent;
	color: var(--shop-ink);
	cursor: pointer;
}
.site-header .header-search .search-submit:hover { background: var(--shop-brand); color: #fff; }
.site-header .header-search .search-icon {
	display: block;
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}
@media (max-width: 900px) {
	.site-header .header-search,
	.site-header .header-search.is-collapsed,
	.site-header .header-search:not(.is-collapsed) {
		flex: 0 1 240px !important;
		width: min(240px, 38vw) !important;
		max-width: 240px !important;
	}
}
@media (max-width: 640px) {
	.site-header .header-search,
	.site-header .header-search.is-collapsed,
	.site-header .header-search:not(.is-collapsed) {
		flex: 1 1 100% !important;
		width: 100% !important;
		max-width: none !important;
	}
}

@media (max-width: 400px) {
	.site-header .header-main { gap: 6px !important; }
	.site-header .custom-logo { max-width: 76px !important; max-height: 48px !important; }
	.site-header .header-actions { gap: 4px !important; font-size: 12px !important; }
	.site-header .cart-link { gap: 4px !important; }
	.site-header .cart-count { min-width: 20px; height: 20px; padding: 0 4px; }
	.site-header .header-search .search-submit { flex-basis: 36px; width: 36px; }
}
.site-header .site-title { color: #111; font-size: 25px; font-weight: 400 !important; letter-spacing: .02em; }
.site-header .header-actions { flex: 1 1 auto; justify-content: flex-end; gap: 26px; margin-left: auto; }
.site-header .main-nav { display: block !important; background: #f4f4f4 !important; border-top: 0 !important; }
.site-header .nav-inner {
	display: flex !important;
	align-items: stretch;
	justify-content: flex-start !important;
	min-height: 58px;
	width: min(1180px, calc(100% - 40px)) !important;
}
.site-header .menu-toggle {
	display: grid !important;
	place-items: center;
	flex: 0 0 48px;
	width: 48px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #111;
	font-size: 22px;
}
.site-header .main-menu {
	display: flex !important;
	align-items: stretch;
	justify-content: flex-start !important;
	gap: 0 !important;
	white-space: nowrap;
	font-weight: 400 !important;
}
.site-header .main-menu > .menu-item { border-right: 0; }
.site-header .main-menu > .menu-item > a {
	padding: 15px 22px !important;
	color: #111;
	font-size: 19px;
	font-weight: 400 !important;
	letter-spacing: .02em;
	text-transform: uppercase;
}
.site-header .main-menu > .menu-item > a:hover { color: #f97316; }

@media (max-width: 900px) {
	.site-header .header-main { flex-wrap: wrap; min-height: 70px; gap: 12px 14px; }
	.site-header .site-branding { flex: 1 1 auto; }
	.site-header .header-actions { flex: 0 0 auto; gap: 8px; margin-left: 0; }
	.site-header .header-search,
	.site-header .header-search.is-collapsed,
	.site-header .header-search:not(.is-collapsed) {
		order: 3;
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: none !important;
	}
	.site-header .header-search input,
	.site-header .header-search.is-collapsed input { width: auto !important; padding: 9px 10px !important; opacity: 1 !important; }
	.site-header .header-search .search-submit { height: 40px; }
	.site-header .main-nav { display: none !important; }
	.site-header .main-nav.is-open { display: block !important; }
	.site-header .nav-inner { display: block !important; width: min(100% - 28px, 1180px) !important; }
	.site-header .menu-toggle { width: 100%; height: 46px; border-right: 0; justify-content: flex-start; }
	.site-header .main-menu { display: block !important; }
	.site-header .main-menu > .menu-item { border-right: 0; border-bottom: 1px solid #bbb; }
	.site-header .main-menu > .menu-item > a { padding: 11px 0 !important; font-size: 16px; }
}
/*
Theme Name: Shop
Theme URI: https://example.com/
Author: Shop
Description: Theme ban hang WooCommerce sang, than thien va responsive.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: shop
Tags: e-commerce, custom-logo, custom-menu, featured-images, translation-ready
*/

/* Giao dien tieng Viet va slider */
:root { --shop-ink: #1d2528; }
body { background: radial-gradient(circle at 10% 0%, #fff7df 0, transparent 30%), var(--shop-paper); font-family: 'Roboto', sans-serif; }
.site-title, .hero-copy h1, .section-heading h2, .category-title h2, .promo-banner h2, .footer-main h3, .woocommerce .woocommerce-products-header__title, .woocommerce .page-title, .woocommerce div.product .product_title, .entry-title { font-family: 'Roboto', sans-serif; }
.hero { min-height: 420px; background: linear-gradient(112deg, #d8efe9, #fff0ca); }
.hero-slides { min-height: 420px; }
.hero-slide { position: absolute; inset: 0; display: flex; align-items: center; min-height: 420px; padding: 55px 0; opacity: 0; visibility: hidden; transform: translateX(22px); transition: opacity .65s ease, transform .65s ease, visibility .65s; }
.hero-slide.is-active { position: relative; display: flex; opacity: 1; visibility: visible; transform: translateX(0); z-index: 1; }
.hero-content { width: min(1180px, calc(100% - 40px)); min-height: 310px; margin-inline: auto; }
.hero-controls { position: absolute; inset: 50% 20px auto; z-index: 3; display: flex; justify-content: space-between; transform: translateY(-50%); pointer-events: none; }
.hero-arrow { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; background: rgba(24,32,37,.45); color: #fff; cursor: pointer; pointer-events: auto; font-size: 25px; line-height: 1; }
.hero-arrow:hover { background: var(--shop-brand); color: #fff; }
.hero-dot { border-radius: 4px; }
.product-card, .news-card, .woocommerce ul.products li.product { border-radius: 4px; overflow: hidden; }
.product-card:hover { transform: translateY(-6px); }
.product-thumb img { transition: transform .4s; }
.product-card:hover .product-thumb img { transform: scale(1.04); }
@media (max-width: 640px) { .hero, .hero-slides, .hero-slide { min-height: 460px; } .hero-content { min-height: 350px; } .hero-controls { inset-inline: 12px; } }

/* Dong bo card san pham giua trang chu va WooCommerce */
.product-grid,
.woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.product-card,
.woocommerce ul.products li.product { display: flex; flex-direction: column; min-width: 0; height: 100%; margin: 0 !important; padding: 0 !important; border: 1px solid var(--shop-line); border-radius: 4px; background: #fff; overflow: hidden; }
.product-thumb,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; background: var(--shop-soft); overflow: hidden; }
.product-thumb img,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img,
.woocommerce ul.products li.product a.woocommerce-loop-product__link img { width: 100%; height: auto; aspect-ratio: 1 / 1; margin: 0 !important; object-fit: cover; }
.product-thumb-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: var(--shop-muted); font-size: 14px; }
.product-info,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button { margin-left: 15px !important; margin-right: 15px !important; }
.product-info { display: flex; flex: 1; flex-direction: column; padding: 15px; }
.product-info h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 3.7em; margin-top: 0 !important; margin-bottom: 8px !important; font-size: 17px; line-height: 1.35; }
.product-info h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title { display: -webkit-box; min-height: 0; height: 3.1em; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.product-info .price,
.woocommerce ul.products li.product .price { margin-top: auto !important; margin-bottom: 13px !important; color: var(--shop-brand-dark); font-size: 17px; font-weight: 700; }
.product-card-button,
.woocommerce ul.products li.product .button { display: inline-block; width: auto; margin-bottom: 15px !important; padding: 10px 14px; border-radius: 4px; background: var(--shop-brand); color: #fff; text-align: center; font-size: 14px; font-weight: 700; }
.product-card-button:hover,
.woocommerce ul.products li.product .button:hover { background: var(--shop-brand-dark); color: #fff; }
.woocommerce ul.products li.product .star-rating { margin-left: 15px; }
@media (max-width: 900px) { .product-grid, .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .product-grid, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .product-info, .woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product .price, .woocommerce ul.products li.product .button { margin-left: 12px !important; margin-right: 12px !important; } .product-info { padding: 12px; } .product-info h3, .woocommerce ul.products li.product .woocommerce-loop-product__title { height: 3.1em; font-size: 15px; } }

/* Font Google dung chung cho toan bo giao dien */
body, button, input, select, textarea { font-family: 'Roboto', sans-serif !important; }
.site-title, .hero-copy h1, .section-heading h2, .category-title h2, .promo-banner h2, .footer-main h3, .woocommerce .woocommerce-products-header__title, .woocommerce .page-title, .woocommerce div.product .product_title, .entry-title { font-family: 'Roboto', sans-serif !important; }
.hero-copy h1, .hero-title, .section-title, .category-name, .promo-title, .footer-title, .product-name, .news-title, .post-title { font-family: 'Roboto', sans-serif; font-weight: 500; }
.site-title, h1, .entry-title, .woocommerce div.product .product_title { font-weight: 500 !important; }
.hero-title { font-size: clamp(42px, 5vw, 72px); line-height: 1.02; margin: 0 0 18px; }
.section-title { font-size: 38px; line-height: 1.15; }
.category-name { font-size: 31px; line-height: 1.2; }
.promo-title { font-size: 36px; line-height: 1.2; margin-bottom: 4px; }
.footer-title { color: #fff; font-size: 22px; margin-bottom: 16px; }
.product-name, .news-title, .post-title { line-height: 1.35; }
.product-name { display: -webkit-box; height: 2.7em; margin: 0 0 8px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 17px; }
.news-title, .post-title { font-size: 19px; margin: 0 0 8px; }
.button, .header-actions, .main-menu a, .text-link, .product-card-button, .woocommerce ul.products li.product .button { font-weight: 500 !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-weight: 500; }
.single-product .product_meta { display: flex; flex-direction: column; gap: 7px; }
.single-product .product_meta > span { display: block; margin: 0; }
.single-product .product_meta .posted_in { order: 2; }
.single-product .product_meta .tagged_as { order: 3; }
.single-product .product_meta .sku_wrapper { order: 1; }
.single-product .woocommerce-variation-availability { display: none !important; }
.single-product .stock.in-stock { display: none !important; }
.single-product .stock.out-of-stock {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  margin: 0 0 20px !important;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 6px;
  color: #dc2626;
  font-size: 13px;
  font-weight: 600;
}
.single-product .stock.out-of-stock::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #dc2626;
  flex-shrink: 0;
}
@media (max-width: 640px) { .category-name { font-size: 25px; } .product-name { height: 2.7em; font-size: 15px; } }

/* Responsive tablet va mobile */
@media (max-width: 1024px) {
	.container { width: min(100% - 32px, 1180px); }
	.site-header .container { gap: 16px; min-height: 78px; }
	.site-branding { min-width: 160px; }
	.header-actions { gap: 10px; }
	.product-grid, .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
	.news-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
	.footer-main { gap: 24px; }
	.hero, .hero-slides, .hero-slide { min-height: 380px; }
	.hero-content { min-height: 300px; }
	.hero-copy h1, .hero-title { font-size: clamp(38px, 6vw, 58px); }
}

@media (max-width: 900px) {
	.menu-toggle { display: block; flex: 0 0 auto; }
	.main-nav { display: none; }
	.main-nav.is-open { display: block; }
	.main-menu { display: block; padding: 6px 0; }
	.main-menu a { padding: 9px 0; }
	.header-search { order: 3; flex-basis: 100%; max-width: none; }
	.site-header .container { flex-wrap: wrap; padding: 14px 0; }
}

@media (max-width: 640px) {
	.container { width: min(100% - 28px, 1180px); }
	.topbar .container { min-height: 34px; }
	.topbar-links { gap: 10px; font-size: 12px; }
	.site-branding { min-width: 0; flex: 1; }
	.site-title { font-size: 22px; }
	.header-actions { gap: 8px; font-size: 14px; }
	.account-label { display: none; }
	.hero, .hero-slides, .hero-slide { min-height: 440px; }
	.hero-content { min-height: 340px; width: min(100% - 28px, 1180px); }
	.hero-copy h1, .hero-title { font-size: 42px; }
	.hero-copy p { font-size: 17px; }
	.hero-controls { inset-inline: 10px; }
	.hero-arrow { width: 36px; height: 36px; }
	.section { padding: 46px 0; }
	.section-title { font-size: 31px; }
	.category-name { font-size: 25px; }
	.product-grid, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.product-info { padding: 12px; }
	.product-info, .woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product .price, .woocommerce ul.products li.product .button { margin-left: 12px !important; margin-right: 12px !important; }
	.product-name, .woocommerce ul.products li.product .woocommerce-loop-product__title { height: 2.7em; font-size: 15px; }
	.promo-banner { display: block; padding: 25px 22px; }
	.promo-banner .button { display: inline-block; margin-top: 18px; }
	.news-grid, .blog-grid { grid-template-columns: 1fr; }
	.footer-main { grid-template-columns: 1fr; gap: 26px; padding: 38px 0; }
	.woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100%; float: none; }
	.woocommerce div.product div.summary { margin-top: 26px; }
	.woocommerce div.product .product_title, .entry-title { font-size: 32px; line-height: 1.15; }
	.woocommerce div.product form.cart .variations { width: 100%; }
	.woocommerce table.shop_table { font-size: 14px; }
	.single-product .product_meta { font-size: 14px; }
}

/* Tim kiem gon canh tai khoan */
.header-actions { display: flex; align-items: center; gap: 14px; }
.header-search { display: flex; flex: 0 0 auto; width: 42px; max-width: none; height: 42px; border: 1px solid transparent; border-radius: 8px; background: transparent; overflow: hidden; transition: width .25s ease, border-color .25s ease, background .25s ease; }
.header-search.is-collapsed { width: 42px; }
.header-search:not(.is-collapsed) { width: min(280px, 34vw); border-color: var(--shop-line); background: var(--shop-soft); }
.header-search input { width: 0; min-width: 0; padding: 0; opacity: 0; transition: width .25s ease, opacity .2s ease, padding .25s ease; }
.header-search:not(.is-collapsed) input { width: auto; min-width: 0; padding: 9px 10px; opacity: 1; }
.header-search .search-toggle { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 7px; background: transparent; color: var(--shop-ink); cursor: pointer; font-size: 19px; line-height: 1; }
.header-search .search-toggle .search-icon { display: block; width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.header-search .search-toggle:hover, .header-search:not(.is-collapsed) .search-toggle { background: var(--shop-brand); color: #fff; }
.header-actions .account-label, .header-actions .cart-link { white-space: nowrap; }
@media (max-width: 900px) { .header-search, .header-search.is-collapsed, .header-search:not(.is-collapsed) { order: 0; flex: 0 0 auto; width: 42px; max-width: none; } .header-search:not(.is-collapsed) { width: min(250px, 44vw); } .header-search { height: 42px; } .header-actions { margin-left: auto; } }
@media (max-width: 640px) { .header-actions { gap: 8px; } .header-search:not(.is-collapsed) { position: absolute; right: 14px; top: 58px; z-index: 10; width: calc(100vw - 28px); max-width: none; background: #fff; box-shadow: var(--shop-shadow); } .header-search.is-collapsed { position: relative; right: auto; top: auto; } }

/* Icon tim kiem luon hien thi, khong phu thuoc hover */
.header-search.is-collapsed .search-toggle,
.header-search.is-collapsed .search-toggle:hover,
.header-search.is-collapsed .search-toggle:focus { display: grid !important; visibility: visible !important; opacity: 1 !important; width: 42px !important; height: 42px !important; padding: 0 !important; border: 0 !important; background: transparent !important; color: var(--shop-ink) !important; }
.header-search .search-toggle .search-icon,
.header-search .search-toggle:hover .search-icon,
.header-search .search-toggle:focus .search-icon { display: block !important; visibility: visible !important; opacity: 1 !important; width: 22px !important; height: 22px !important; fill: none !important; stroke: var(--shop-ink) !important; stroke-width: 2.2 !important; }
.header-search:not(.is-collapsed) .search-toggle { background: var(--shop-brand) !important; color: #fff !important; }
.header-search:not(.is-collapsed) .search-toggle .search-icon { stroke: #fff !important; }

/* Menu chinh nam cung hang voi logo */
.site-header .container { display: flex; align-items: center; gap: 22px; }

/* Hàng header (logo + menu + icon) giãn full-width kiểu container-fluid của Bootstrap,
 * bỏ giới hạn max-width 1180px của .container mặc định.
 * Dùng child combinator (>) để KHÔNG ảnh hưởng tới div.container lồng bên trong .main-nav. */
.site-header > .container {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 20px;
}
.site-header .main-nav { display: block; flex: 1 1 auto; min-width: 0; background: transparent; }
.site-header .main-nav .container { width: auto; margin: 0; justify-content: center; }
.site-header .main-menu { justify-content: center; gap: clamp(14px, 2vw, 28px); white-space: nowrap; }
.site-header .main-menu a { padding: 12px 0; }
.site-header .menu-toggle { display: none; }
@media (max-width: 1100px) { .site-header .container { gap: 14px; } .site-header .main-menu { gap: 14px; } .site-branding { min-width: 140px; } .account-label { font-size: 14px; } .cart-link { font-size: 14px; } }
@media (max-width: 900px) {
	.site-header .menu-toggle { display: block; order: 1; }
	.site-header .site-branding { order: 2; flex: 1 1 auto; }
	.site-header .header-actions { order: 3; margin-left: 0; }
	.site-header .main-nav { display: none; order: 4; flex: 0 0 100%; width: 100%; }
	.site-header .main-nav.is-open { display: block; }
	.site-header .main-nav .container { display: block; width: 100%; }
	.site-header .main-menu { display: block; padding: 6px 0; }
	.site-header .main-menu a { padding: 9px 0; }
}

/* Submenu */
.site-header .main-menu > .menu-item { position: relative; }
.site-header .main-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: -16px;
	z-index: 20;
	display: block;
	min-width: 210px;
	margin: 0;
	padding: 8px 0;
	border: 1px solid var(--shop-line);
	border-radius: 6px;
	background: #fff;
	box-shadow: var(--shop-shadow);
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
	visibility: hidden;
}
.site-header .main-menu .sub-menu .menu-item { display: block; }
.site-header .main-menu .sub-menu a {
	display: block;
	padding: 9px 16px;
	white-space: nowrap;
}
.site-header .main-menu .sub-menu a:hover,
.site-header .main-menu .sub-menu a:focus {
	background: var(--shop-soft);
	color: var(--shop-brand);
}
.site-header .main-menu > .menu-item-has-children > a {
	position: relative;
}
.site-header .main-menu > .menu-item-has-children > a::after {
	display: none;
}
.site-header .main-menu .submenu-toggle { display: none; }
.site-header .main-menu > .menu-item:hover > .sub-menu,
.site-header .main-menu > .menu-item:focus-within > .sub-menu {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
}
@media (max-width: 900px) {
	.site-header .main-menu .sub-menu {
		position: static;
		min-width: 0;
		padding: 0 0 0 16px;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		opacity: 0;
		max-height: 0;
		overflow: hidden;
		pointer-events: none;
		transform: translateY(-4px);
		visibility: hidden;
		transition: opacity .2s ease, max-height .2s ease, transform .2s ease, visibility .2s ease;
	}
	.site-header .main-menu > .menu-item.is-submenu-open > .sub-menu {
		opacity: 1;
		max-height: 500px;
		pointer-events: auto;
		transform: translateY(0);
		visibility: visible;
	}
	.site-header .main-menu .menu-item-has-children > a { padding-right: 34px; }
	.site-header .main-menu > .menu-item-has-children > a::after { display: none; }
	.site-header .main-menu .menu-item-has-children { position: relative; }
	.site-header .main-menu .submenu-toggle {
		position: absolute;
		top: 2px;
		right: 0;
		display: grid;
		place-items: center;
		width: 34px;
		height: 34px;
		border: 0;
		background: transparent;
		color: var(--shop-ink);
		cursor: pointer;
	}
	.site-header .main-menu .submenu-toggle::before {
		content: '';
		width: 7px;
		height: 7px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg) translateY(-2px);
		transition: transform .2s ease;
	}
	.site-header .main-menu .menu-item.is-submenu-open > .submenu-toggle::before {
		transform: rotate(225deg) translate(-2px, -2px);
	}
	.site-header .main-menu .sub-menu a { padding: 7px 0; }
}

:root{--shop-ink:#182025;--shop-muted:#66727a;--shop-brand:#0b7a75;--shop-brand-dark:#075b58;--shop-accent:#f2b84b;--shop-paper:#fffdf8;--shop-line:#e7e3da;--shop-soft:#f5f2ea;--shop-shadow:0 16px 42px rgba(24,32,37,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--shop-paper);color:var(--shop-ink);font-family:"Trebuchet MS","Avenir Next",Avenir,sans-serif;font-size:16px;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}a:hover{color:var(--shop-brand)}button,input,select,textarea{font:inherit}.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topbar{background:var(--shop-ink);color:#fff;font-size:14px}.topbar .container,.site-header .container,.main-nav .container{display:flex;align-items:center;justify-content:space-between}.topbar .container{min-height:38px}.topbar a{color:#fff}.topbar-links{display:flex;gap:22px}.site-header{background:#fff;border-bottom:1px solid var(--shop-line)}.site-header .container{gap:28px;min-height:88px}.site-branding{display:flex;align-items:center;gap:12px;min-width:190px}.custom-logo{max-height:52px;width:auto}.site-title{font-family:Georgia,serif;font-size:27px;font-weight:700;letter-spacing:.02em}.site-description{display:none}.header-search{display:flex;flex:1;max-width:520px;border:1px solid var(--shop-line);background:var(--shop-soft);border-radius:5px;overflow:hidden}.header-search input{border:0;background:transparent;padding:11px 14px;min-width:0;flex:1;outline:0}.header-search button,.button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{border:0;background:var(--shop-brand);color:#fff;padding:11px 18px;border-radius:4px;cursor:pointer;font-weight:700}.header-search button:hover,.button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background:var(--shop-brand-dark);color:#fff}.header-actions{display:flex;align-items:center;gap:16px}.cart-link{display:flex;align-items:center;gap:8px;font-weight:700}.cart-count{display:inline-grid;place-items:center;min-width:23px;height:23px;padding:0 5px;border-radius:50%;background:var(--shop-accent);font-size:12px}.menu-toggle{display:none;background:none;border:0;font-size:25px}.main-nav{background:#fff}.main-nav .container{justify-content:flex-start;min-height:52px}.main-menu{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-weight:700}.main-menu a{display:block;padding:13px 0}.main-menu .current-menu-item>a,.main-menu a:hover{color:var(--shop-brand)}.hero{position:relative;overflow:hidden;background:linear-gradient(112deg,#e1f3ee,#fff0ca);min-height:380px}.hero-slide{display:none;min-height:380px;background-size:cover;background-position:center}.hero-slide.is-active{display:block}.hero-slide.has-image{color:#fff;background-color:#22514e}.hero-content{display:flex;align-items:center;min-height:380px;padding:55px 0}.hero-copy{max-width:550px}.hero-copy h1{font:700 clamp(38px,5vw,64px)/1.05 Georgia,serif;margin:0 0 18px}.hero-copy p{font-size:19px;max-width:470px;margin:0 0 26px}.hero-dots{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.hero-dot{border:0;width:30px;height:4px;background:rgba(24,32,37,.3);cursor:pointer}.hero-dot.is-active{background:var(--shop-brand)}.section{padding:64px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading h2{font:700 34px/1.15 Georgia,serif;margin:0}.section-heading p{color:var(--shop-muted);margin:5px 0 0}.text-link{font-weight:700;color:var(--shop-brand);white-space:nowrap}.category-block{margin-bottom:62px}.category-title{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--shop-ink);padding-bottom:12px;margin-bottom:22px}.category-title h2{font:700 28px Georgia,serif;margin:0}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.product-card{position:relative;background:#fff;border:1px solid var(--shop-line);min-width:0;transition:transform .2s,box-shadow .2s}.product-card:hover{transform:translateY(-4px);box-shadow:var(--shop-shadow)}.product-thumb{aspect-ratio:1/1;background:var(--shop-soft);overflow:hidden}.product-thumb img{width:100%;height:100%;object-fit:cover}.product-info{padding:15px}.product-info h3{font-size:16px;line-height:1.35;margin:0 0 8px}.price{color:var(--shop-brand-dark);font-weight:700}.price del{color:var(--shop-muted);font-weight:400;margin-right:7px}.promo-banner{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:150px;margin:20px 0 62px;padding:28px 38px;background:var(--shop-ink) center/cover;color:#fff}.promo-banner h2{font:700 32px Georgia,serif;margin:0 0 4px}.promo-banner p{margin:0;color:#dce9e5}.news-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.news-card{background:#fff;border:1px solid var(--shop-line)}.news-card img{aspect-ratio:16/10;width:100%;object-fit:cover}.news-card-content{padding:16px}.news-card h3{font-size:18px;line-height:1.3;margin:0 0 8px}.news-card time{font-size:13px;color:var(--shop-muted)}.site-footer{background:#1d292d;color:#e9efeb;margin-top:35px}.footer-main{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:32px;padding:55px 0}.footer-main h3{color:#fff;font:700 20px Georgia,serif;margin:0 0 16px}.footer-main p{color:#b9c8c3;margin:0 0 8px}.footer-logo{max-height:56px;width:auto;margin-bottom:16px}.footer-links{list-style:none;margin:0;padding:0}.footer-links li{margin-bottom:9px}.footer-links a{color:#b9c8c3}.gov-logo{max-height:80px;width:auto;background:#fff;padding:7px}.footer-bottom{border-top:1px solid #39484b;padding:18px 0;color:#b9c8c3;font-size:14px;text-align:center}.woocommerce .site-main,.site-main{padding:45px 0}.woocommerce .woocommerce-breadcrumb{color:var(--shop-muted);margin-bottom:24px}.woocommerce .woocommerce-products-header__title,.woocommerce .page-title{font:700 38px Georgia,serif}.woocommerce ul.products{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:25px 0}.woocommerce ul.products:before,.woocommerce ul.products:after{display:none}.woocommerce ul.products li.product{width:auto!important;margin:0!important;border:1px solid var(--shop-line);padding:0 0 15px;background:#fff}.woocommerce ul.products li.product a img{margin:0 0 14px;width:100%;aspect-ratio:1;object-fit:cover}.woocommerce ul.products li.product .woocommerce-loop-product__title,.woocommerce ul.products li.product .price,.woocommerce ul.products li.product .button{margin-left:15px;margin-right:15px}.woocommerce div.product div.images img{background:var(--shop-soft)}.woocommerce div.product .product_title{font:700 38px Georgia,serif}.woocommerce-message{border-top-color:var(--shop-brand)}.woocommerce .quantity .qty{padding:10px}.woocommerce form.checkout,.woocommerce form.login,.woocommerce form.register{border:1px solid var(--shop-line);border-radius:0}.woocommerce-cart-form,.cart_totals{background:#fff}.pagination{margin-top:28px}.nav-links{display:flex;gap:8px}.page-numbers{border:1px solid var(--shop-line);padding:8px 12px}.page-numbers.current{background:var(--shop-brand);color:#fff}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.post-card{background:#fff;border:1px solid var(--shop-line)}.post-card-content{padding:18px}.post-card h2{font:700 24px Georgia,serif;line-height:1.2;margin:0 0 8px}.post-card .entry-meta{color:var(--shop-muted);font-size:14px}.entry-content{max-width:800px}.entry-content img{margin:20px 0}.entry-title{font:700 42px Georgia,serif;line-height:1.1}.widget-area{background:var(--shop-soft);padding:25px}.widget-area ul{padding-left:20px}.woocommerce-error,.woocommerce-info{border-top-color:var(--shop-accent)}

/* ===== HIỆU ỨNG SINH ĐỘNG ===== */

/* Biến bổ sung */
:root {
  --shop-bounce: cubic-bezier(.34,1.56,.64,1);
  --shop-ease: cubic-bezier(.16,1,.3,1);
  --shop-glow: 0 10px 36px rgba(11,122,117,.26);
}

/* --- Hero: nền gradient chạy động --- */
.hero {
  background: linear-gradient(-45deg,#c8f5eb,#d4eeff,#fff7cc,#ffddc8) !important;
  background-size: 400% 400% !important;
  animation: heroGradAnim 16s ease infinite;
}
@keyframes heroGradAnim {
  0%   { background-position:0% 50%; }
  50%  { background-position:100% 50%; }
  100% { background-position:0% 50%; }
}

/* Blob sáng nổi trong hero */
.hero::before,.hero::after {
  content:''; position:absolute; border-radius:50%;
  pointer-events:none; z-index:0;
}
.hero::before {
  width:480px; height:480px;
  background:radial-gradient(circle,rgba(11,122,117,.18) 0%,transparent 70%);
  top:-130px; right:-70px;
  animation:floatBlob1 18s ease-in-out infinite;
}
.hero::after {
  width:340px; height:340px;
  background:radial-gradient(circle,rgba(242,184,75,.22) 0%,transparent 70%);
  bottom:-80px; left:6%;
  animation:floatBlob2 22s ease-in-out infinite;
}
@keyframes floatBlob1 {
  0%,100% { transform:translateY(0) scale(1); }
  40%  { transform:translateY(-28px) scale(1.08); }
  70%  { transform:translateY(14px) scale(.94); }
}
@keyframes floatBlob2 {
  0%,100% { transform:translateX(0) scale(1); }
  35%  { transform:translateX(-26px) scale(1.12); }
  70%  { transform:translateX(18px) scale(.92); }
}

/* Hero content luôn trên blobs */
.hero-content { position:relative; z-index:1; }

/* Hero text cuộn vào khi slide active */
@keyframes heroIn {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0); }
}
.hero-slide.is-active .hero-copy > *:nth-child(1) {
  animation:heroIn .75s cubic-bezier(.34,1.56,.64,1) .0s both;
}
.hero-slide.is-active .hero-copy > *:nth-child(2) {
  animation:heroIn .75s cubic-bezier(.34,1.56,.64,1) .13s both;
}
.hero-slide.is-active .hero-copy > *:nth-child(3) {
  animation:heroIn .75s cubic-bezier(.34,1.56,.64,1) .26s both;
}

/* Hero CTA button pill style */
.hero-copy .button {
  padding:14px 34px !important;
  border-radius:50px !important;
  font-size:16px !important;
  box-shadow:0 6px 24px rgba(11,122,117,.4) !important;
}
.hero-copy .button:hover {
  transform:translateY(-3px) scale(1.04) !important;
  box-shadow:0 14px 38px rgba(11,122,117,.5) !important;
}

/* --- Header: đường kẻ gradient chạy + sticky shadow --- */
.site-header {
  position:relative;
  border-bottom:none !important;
  transition:box-shadow .3s ease;
}
.site-header::after {
  content:''; position:absolute;
  bottom:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,transparent 0%,var(--shop-brand) 30%,var(--shop-accent) 60%,var(--shop-brand) 90%,transparent 100%);
  background-size:200% 100%;
  animation:headerLine 7s ease infinite;
}
@keyframes headerLine {
  0%   { background-position:0% 50%; }
  50%  { background-position:100% 50%; }
  100% { background-position:0% 50%; }
}
.site-header.is-sticky { box-shadow:0 4px 24px rgba(24,32,37,.1); }

/* Nav link gạch chân trượt */
.main-menu a { position:relative; text-transform: uppercase;}
.main-menu a::after {
  content:''; position:absolute;
  bottom:8px; left:0;
  width:0; height:2px;
  background:var(--shop-brand);
  transition:width .25s ease;
}
.main-menu .current-menu-item > a { color:#f97316 !important; }
.main-menu .current-menu-item > a::after { width:0 !important; }

/* Topbar link hover */
.topbar a { transition:color .2s ease; }
.topbar a:hover { color:var(--shop-accent) !important; }

/* --- Scroll reveal --- */
.reveal {
  opacity:0;
  transform:translateY(32px);
  transition:opacity .65s ease, transform .65s cubic-bezier(.16,1,.3,1);
}
.reveal.is-visible { opacity:1; transform:translateY(0); }
.reveal.rv-d1 { transition-delay:.08s; }
.reveal.rv-d2 { transition-delay:.16s; }
.reveal.rv-d3 { transition-delay:.24s; }
.reveal.rv-d4 { transition-delay:.32s; }

/* --- Product card: spring hover + shimmer sweep --- */
.product-card {
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
}
.product-card:hover {
  transform:translateY(-10px) scale(1.014);
  box-shadow:0 24px 56px rgba(11,122,117,.18), 0 4px 14px rgba(0,0,0,.05);
}
.product-thumb { position:relative; overflow:hidden; }
.product-thumb::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.48) 50%,transparent 70%);
  transform:translateX(-130%);
  transition:transform .65s ease;
}
.product-card:hover .product-thumb::after { transform:translateX(130%); }

/* --- Gradient headings --- */
.section-title {
  background:linear-gradient(135deg,#085a57 0%,#0b8c86 50%,#15aa84 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.category-name {
  background:linear-gradient(135deg,var(--shop-ink) 0%,var(--shop-brand) 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* Category title: bỏ border tĩnh, dùng underline gradient trượt ra */
.category-title {
  position:relative;
  border-bottom:none !important;
  padding-bottom:14px;
}
.category-title::after {
  content:''; position:absolute;
  bottom:0; left:0;
  height:2px; width:0;
  background:linear-gradient(90deg,var(--shop-brand),var(--shop-accent));
  transition:width 1s cubic-bezier(.16,1,.3,1);
}
.category-title.is-visible::after { width:100%; }

/* --- Gradient buttons + hover glow --- */
.button,.product-card-button,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce ul.products li.product .button {
  background:linear-gradient(135deg,#0b8c86 0%,#14a882 100%) !important;
  position:relative; overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, filter .22s ease !important;
}
.button:hover,.product-card-button:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce ul.products li.product .button:hover {
  transform:translateY(-2px) !important;
  box-shadow:0 8px 28px rgba(11,122,117,.42) !important;
  filter:brightness(1.08) !important;
}

/* Button ripple click */
.btn-ripple {
  position:absolute; border-radius:50%;
  background:rgba(255,255,255,.4);
  width:12px; height:12px;
  transform:translate(-50%,-50%) scale(0);
  animation:btnRipple .55s linear;
  pointer-events:none;
}
@keyframes btnRipple {
  to { transform:translate(-50%,-50%) scale(28); opacity:0; }
}

/* --- Promo banner: gradient + hover lift --- */
.promo-banner {
  border-radius:10px; overflow:hidden;
  transition:box-shadow .3s ease, transform .3s var(--shop-bounce);
}
.promo-banner:not([style]) {
  background:linear-gradient(135deg,#064b48 0%,#0b7a75 55%,#0e9080 100%) !important;
}
.promo-banner:hover {
  box-shadow:0 22px 60px rgba(11,122,117,.38);
  transform:translateY(-4px);
}

/* --- News card: hover lift + ảnh zoom --- */
.news-card {
  border-radius:8px; overflow:hidden;
  transition:transform .32s cubic-bezier(.34,1.56,.64,1), box-shadow .32s ease;
}
.news-card:hover {
  transform:translateY(-7px);
  box-shadow:0 18px 44px rgba(24,32,37,.13);
}
.news-card img { transition:transform .45s ease; }
.news-card:hover img { transform:scale(1.06); }

/* --- Text-link hover: arrow dịch sang phải --- */
.text-link { display:inline-flex; align-items:center; gap:4px; transition:gap .2s ease, color .2s ease; }
.text-link:hover { gap:9px; color:var(--shop-brand-dark); }

/* --- WooCommerce product loop hover --- */
.woocommerce ul.products li.product {
  border-radius:8px; overflow:hidden;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
}
.woocommerce ul.products li.product:hover {
  transform:translateY(-8px);
  box-shadow:0 20px 50px rgba(11,122,117,.16);
}

/* Sale badge wiggle */
.woocommerce span.onsale {
  background:linear-gradient(135deg,#e11d48,#f43f5e) !important;
  animation:saleWiggle 3.5s ease-in-out 2s infinite;
}
@keyframes saleWiggle {
  0%,88%,100% { transform:rotate(-3deg); }
  93% { transform:rotate(3deg); }
}

/* Cart count pop khi có hàng */
@keyframes countPop {
  0%   { transform:scale(1); }
  40%  { transform:scale(1.45); }
  70%  { transform:scale(.92); }
  100% { transform:scale(1); }
}
.cart-count.has-items { animation:countPop .5s cubic-bezier(.34,1.56,.64,1) 1.4s both; }

/* Footer links hover */
.footer-links a { transition:color .2s ease, padding-left .2s ease; display:inline-block; }
.footer-links a:hover { color:#fff; padding-left:6px; }

/* --- Single product ATC: loading spinner & success state --- */
.single-product form.cart [type="submit"] {
  transition: background .25s ease, transform .2s ease, box-shadow .2s ease;
}
.single-product form.cart [type="submit"][disabled] {
  opacity:.8; cursor:not-allowed; transform:none !important;
}
.single-product form.cart [type="submit"].btn-added {
  background:linear-gradient(135deg,#15803d 0%,#16a34a 100%) !important;
  box-shadow:0 8px 28px rgba(21,128,61,.4) !important;
}
.atc-spinner {
  display:inline-block; width:14px; height:14px;
  border:2px solid rgba(255,255,255,.45); border-top-color:#fff;
  border-radius:50%; animation:atcSpin .65s linear infinite;
  vertical-align:middle; margin-right:4px;
}
@keyframes atcSpin { to { transform:rotate(360deg); } }

/* --- Ẩn nút "Xem giỏ hàng" pop-up sau khi add-to-cart trong loop --- */
/* (cart count trên header đã cập nhật qua fragments, nút này thừa) */
a.added_to_cart { display:none !important; }

/* --- Sticky header: dính đỉnh trang + thu nhỏ khi scroll --- */
.site-header {
  position:sticky; top:0; z-index:200;
}
.site-header .container {
  transition:min-height .35s ease;
}
.site-header.is-sticky .container {
  min-height:58px !important;
}
.site-header.is-sticky .custom-logo {
  max-height:38px; transition:max-height .35s ease;
}
.site-header.is-sticky .site-title {
  font-size:22px; transition:font-size .35s ease;
}
.site-header.is-sticky .main-menu a {
  padding:8px 0;
}
@media(max-width:900px) {
  .site-header { position:sticky; top:0; z-index:200; }
  .site-header.is-sticky .container { min-height:56px !important; }
}

/* WooCommerce products loop: ẩn "View cart" link sau ATC */
.woocommerce ul.products li.product a.added_to_cart { display:none !important; }

/* ===== HEADER: SEARCH + ICONS + MENU ===== */

/* Menu canh phải */
.site-header .main-nav .container { justify-content:flex-end !important; }
.site-header .main-menu { justify-content:flex-end !important; }

/* Icon Tài khoản */
.account-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:8px;
  color:var(--shop-ink);
  transition:color .2s ease, background .2s ease;
  flex-shrink:0;
}
.account-icon:hover { color:var(--shop-brand); background:var(--shop-soft); }
.account-icon svg { display:block; }

/* Icon Giỏ hàng + badge nổi */
.cart-link {
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:8px;
  color:var(--shop-ink);
  font-weight:normal;
  transition:color .2s ease, background .2s ease;
  flex-shrink:0;
}
.cart-link:hover { color:var(--shop-brand); background:var(--shop-soft); }
.cart-link svg { display:block; }
.cart-count {
  position:absolute !important;
  top:0; right:0;
  transform:translate(30%,-30%);
  min-width:17px; height:17px; padding:0 4px;
  border-radius:999px;
  background:var(--shop-accent);
  color:var(--shop-ink);
  font-size:10px; font-weight:700; line-height:17px;
  text-align:center;
  border:2px solid #fff;
  display:inline-grid; place-items:center;
}

/* ---- Search: Desktop luôn hiện, Mobile collapse ---- */
@media (min-width:901px) {
  /* Force expand trên desktop, bỏ qua is-collapsed */
  .site-header .header-search,
  .site-header .header-search.is-collapsed {
    position:static !important; right:auto !important; top:auto !important;
    flex:0 0 auto !important;
    width:240px !important; max-width:240px !important;
    height:40px !important;
    border:1.5px solid var(--shop-line) !important;
    border-radius:8px !important;
    background:var(--shop-soft) !important;
    overflow:hidden !important;
    box-shadow:none !important;
    display:flex !important;
  }
  .site-header .header-search input,
  .site-header .header-search.is-collapsed input {
    flex:1 !important; width:auto !important; min-width:0 !important;
    padding:0 10px !important; opacity:1 !important;
    border:0 !important; background:transparent !important; outline:0 !important;
    font-size:14px !important;
  }
  .site-header .header-search .search-toggle,
  .site-header .header-search.is-collapsed .search-toggle {
    display:grid !important; place-items:center !important;
    flex:0 0 38px !important; width:38px !important; height:38px !important;
    padding:0 !important; border:0 !important; border-radius:6px !important;
    background:transparent !important; color:var(--shop-muted) !important;
    cursor:pointer;
    transition:background .2s ease, color .2s ease;
  }
  .site-header .header-search .search-toggle .search-icon,
  .site-header .header-search.is-collapsed .search-toggle .search-icon {
    width:17px !important; height:17px !important;
    stroke:var(--shop-muted) !important; stroke-width:2 !important;
    fill:none !important; display:block !important; opacity:1 !important;
    visibility:visible !important;
  }
  .site-header .header-search:focus-within {
    border-color:var(--shop-brand) !important;
    box-shadow:0 0 0 3px rgba(11,122,117,.1) !important;
  }
  .site-header .header-search:focus-within .search-toggle {
    background:var(--shop-brand) !important; color:#fff !important;
  }
  .site-header .header-search:focus-within .search-toggle .search-icon {
    stroke:#fff !important;
  }
}

@media (max-width:900px) {
  /* Mobile: collapsed = chỉ hiện icon */
  .site-header .header-search.is-collapsed,
  .site-header .header-search {
    flex:0 0 38px !important; width:38px !important; max-width:38px !important;
    height:38px !important;
    border:1px solid transparent !important; background:transparent !important;
    overflow:hidden !important;
  }
  /* Mobile: expanded = show input */
  .site-header .header-search:not(.is-collapsed) {
    position:absolute !important; right:14px !important; top:58px !important;
    z-index:10 !important;
    width:calc(100vw - 28px) !important; max-width:none !important;
    background:#fff !important;
    border:1.5px solid var(--shop-line) !important;
    box-shadow:var(--shop-shadow) !important;
  }
  .site-header .header-search.is-collapsed input { width:0 !important; padding:0 !important; opacity:0 !important; }
  .site-header .header-search:not(.is-collapsed) input {
    flex:1 !important; width:auto !important; padding:9px 10px !important; opacity:1 !important;
  }
  .site-header .header-search .search-toggle,
  .site-header .header-search.is-collapsed .search-toggle {
    flex:0 0 38px !important; width:38px !important; height:38px !important;
    padding:0 !important; border:0 !important;
    background:transparent !important; color:var(--shop-ink) !important;
    display:grid !important; place-items:center !important;
  }
  .site-header .header-search .search-toggle .search-icon,
  .site-header .header-search.is-collapsed .search-toggle .search-icon {
    stroke:var(--shop-ink) !important; width:20px !important; height:20px !important;
    display:block !important; opacity:1 !important; visibility:visible !important;
  }
  .site-header .header-search:not(.is-collapsed) .search-toggle {
    background:var(--shop-brand) !important; color:#fff !important;
  }
  .site-header .header-search:not(.is-collapsed) .search-toggle .search-icon { stroke:#fff !important; }
}

/* header-left (hamburger + mobile search btn) */
.header-left { display:flex; align-items:center; gap:2px; flex:0 0 auto; }

/* Desktop: ẩn mobile-search-open và popup */
.mobile-search-open { display:none; }
.mobile-search-popup { display:none; }

/* ---- Mobile header layout ---- */
@media (max-width:900px) {
  /* Container: relative để logo căn giữa tuyệt đối */
  .site-header .container {
    position:relative;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    flex-wrap:wrap !important;
    gap:0 !important;
    min-height:58px !important;
    padding-top:0 !important; padding-bottom:0 !important;
  }
  .site-header.is-sticky .container { min-height:52px !important; }

  /* Logo căn giữa tuyệt đối — cố định top/height theo đúng dải header (58px), không để trôi
   * theo chiều cao container khi main-nav mở ra (top:auto trước đây khiến logo tự "lơ lửng"
   * giữa danh sách menu khi container cao lên lúc mở menu). */
  .site-header .site-branding {
    position:absolute !important;
    top:0; height:58px;
    display:flex !important; align-items:center;
    left:50%; transform:translateX(-50%) !important;
    flex:0 0 auto !important; min-width:0 !important;
    order:0 !important; max-width:38vw;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    z-index:0;
  }
  .site-header.is-sticky .site-branding { height:52px; }
  .site-header .site-branding .site-title { font-size:20px; }

  /* header-left: trái */
  .site-header .header-left {
    display:flex; align-items:center; gap:0;
    flex:0 0 auto; z-index:1; order:0 !important;
    padding:0 4px;
  }

  /* Menu toggle bên trong header-left */
  .site-header .header-left .menu-toggle {
    display:flex !important; align-items:center; justify-content:center;
    width:38px; height:38px; font-size:20px; order:0 !important;
    flex-shrink:0;
  }

  /* Nút tìm kiếm mobile: hiện, nằm cạnh hamburger */
  .mobile-search-open {
    display:flex; align-items:center; justify-content:center;
    width:38px; height:38px; flex-shrink:0;
    border:0; border-radius:8px; background:transparent;
    color:var(--shop-ink); cursor:pointer;
    transition:background .2s ease, color .2s ease;
  }
  .mobile-search-open:hover { background:var(--shop-soft); color:var(--shop-brand); }

  /* header-actions: phải - chỉ hiện icon user + giỏ
   * order:1 (thấp hơn main-nav) để luôn nằm cùng hàng 1 với header-left, không bị main-nav
   * (flex-basis:100%) đẩy rớt xuống hàng 3 riêng lẻ mỗi khi mở menu. */
  .site-header .header-actions {
    display:flex !important; align-items:center !important;
    gap:2px !important; flex:0 0 auto !important;
    margin-left:auto !important; order:1 !important;
    padding:0 4px; z-index:1;
  }

  /* Ẩn ô search desktop trong header-actions */
  .site-header .header-actions .header-search { display:none !important; }

  /* Main nav wrap xuống hàng khi mở — order cao hơn để luôn xuống hàng SAU header-actions */
  .site-header .main-nav {
    order:2 !important; flex:0 0 100% !important; width:100% !important;
  }
  /* .main-nav .container vốn có justify-content:flex-end (căn menu bên phải, dùng cho desktop) —
   * ở mobile menu xổ dọc full-width nên phải reset về block, nếu không cả khối <ul> bị đẩy dạt
   * sang phải, để trống 1 khoảng lớn bên trái. */
  .site-header .main-nav .container {
    display:block !important;
    width:100% !important;
    padding:0 16px !important;
  }

  /* ---- Popup tìm kiếm mobile ---- */
  .mobile-search-popup {
    display:block;
    position:fixed; top:0; left:0; right:0; z-index:500;
    background:#fff;
    border-bottom:1px solid var(--shop-line);
    box-shadow:0 4px 24px rgba(0,0,0,.12);
    transform:translateY(-110%);
    transition:transform .32s cubic-bezier(.16,1,.3,1);
  }
  .mobile-search-popup.is-open { transform:translateY(0); }
  .mobile-search-popup .container {
    display:flex; align-items:center;
    min-height:58px !important;
  }
  .mobile-search-form {
    display:flex; align-items:center; gap:10px;
    width:100%; padding:12px 0;
  }
  .mobile-search-icon { color:var(--shop-muted); flex-shrink:0; display:block; }
  .mobile-search-form input[type="search"] {
    flex:1; border:0; outline:0;
    font-size:16px; color:var(--shop-ink);
    background:transparent; padding:0; min-width:0;
  }
  .mobile-search-form input[type="search"]::placeholder { color:var(--shop-muted); }
  .mobile-search-close {
    display:flex; align-items:center; justify-content:center;
    width:32px; height:32px; flex-shrink:0;
    border:0; border-radius:6px;
    background:var(--shop-soft); color:var(--shop-muted);
    cursor:pointer; transition:background .2s ease, color .2s ease;
  }
  .mobile-search-close:hover { background:var(--shop-line); color:var(--shop-ink); }
}

/* ===== LIVE SEARCH PANEL ===== */

/* Base panel */
.search-live-panel {
  background:#fff;
  border:1px solid var(--shop-line);
  border-radius:14px;
  box-shadow:0 14px 44px rgba(0,0,0,.13);
  overflow:hidden;
}

/* Desktop: absolute dưới sticky header, căn giữa */
.slp-desktop {
  position:absolute;
  top:calc(100% + 4px);
  left:50%; transform:translateX(-50%) translateY(-8px);
  width:min(700px, 96vw);
  opacity:0; pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
  z-index:299;
  max-height:80vh; overflow-y:auto;
}
.slp-desktop.is-visible {
  opacity:1;
  transform:translateX(-50%) translateY(0);
  pointer-events:auto;
}
@media (max-width:900px) { .slp-desktop { display:none !important; } }

/* Mobile: block bên trong popup */
.slp-mobile {
  width:100%; display:none;
  border-top:1px solid var(--shop-line);
  border-radius:0 0 14px 14px;
}
.slp-mobile.is-visible { display:block; }
@media (min-width:901px) { .slp-mobile { display:none !important; } }

/* Mobile popup scrollable khi có kết quả */
@media (max-width:900px) {
  .mobile-search-popup.is-open { max-height:88vh; overflow-y:auto; }
}

/* Loading animation */
.slp-loading {
  display:flex; align-items:center; justify-content:center;
  gap:7px; padding:32px 16px;
}
.slp-loading span {
  width:9px; height:9px; border-radius:50%;
  background:var(--shop-brand);
  animation:slpDot 1.2s ease-in-out infinite;
}
.slp-loading span:nth-child(2) { animation-delay:.2s; }
.slp-loading span:nth-child(3) { animation-delay:.4s; }
@keyframes slpDot {
  0%,80%,100% { transform:scale(.3); opacity:.3; }
  40%          { transform:scale(1);  opacity:1; }
}

/* Section */
.slp-section { padding:16px 16px 0; }
.slp-label {
  font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em;
  color:var(--shop-muted); margin-bottom:10px;
}

/* Suggestion chips */
.slp-suggestions { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:14px; }
.slp-chip {
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 14px; border:1px solid var(--shop-line);
  border-radius:999px; font-size:14px; color:var(--shop-ink);
  white-space:nowrap;
  transition:border-color .18s ease, color .18s ease, background .18s ease;
}
.slp-chip:hover { border-color:var(--shop-brand); color:var(--shop-brand); background:rgba(11,122,117,.04); }
.slp-chip svg { flex-shrink:0; color:var(--shop-muted); }

/* Product grid — desktop 4 cột, mobile 2 cột */
.slp-products { display:grid; gap:12px; padding-bottom:12px; grid-template-columns:repeat(2,1fr); }
@media (min-width:901px) { .slp-desktop .slp-products { grid-template-columns:repeat(4,1fr); } }

.slp-product {
  display:flex; flex-direction:column;
  color:var(--shop-ink); text-decoration:none;
  border-radius:8px; padding:6px;
  transition:background .18s ease;
}
.slp-product:hover { background:var(--shop-soft); }
.slp-thumb {
  width:100%; aspect-ratio:1; border-radius:8px;
  overflow:hidden; background:var(--shop-soft); margin-bottom:8px;
}
.slp-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.slp-name {
  font-size:13px; line-height:1.4; font-weight:500; margin-bottom:2px;
  display:-webkit-box; -webkit-box-orient:vertical;
  -webkit-line-clamp:2; overflow:hidden;
}
.slp-name strong { font-weight:700; }
.slp-sku { font-size:11px; color:var(--shop-muted); margin-bottom:3px; }
.slp-price { font-size:13px; font-weight:700; color:var(--shop-brand-dark); }

/* Footer: Xem tất cả */
.slp-footer { padding:12px 16px 16px; border-top:1px solid var(--shop-line); }
.slp-view-all {
  display:block; text-align:center;
  padding:12px 20px; border-radius:8px;
  background:var(--shop-ink); color:#fff !important;
  font-weight:700; font-size:13px;
  letter-spacing:.08em; text-transform:uppercase;
  transition:background .2s ease;
}
.slp-view-all:hover { background:var(--shop-brand); color:#fff !important; }

/* Empty state */
.slp-empty { padding:28px 16px; text-align:center; color:var(--shop-muted); font-size:14px; }

/* ===== TRANG CHI TIẾT SẢN PHẨM — SINGLE PRODUCT PANEL ===== */

/* Card cho phần summary */
.woocommerce div.product div.summary.entry-summary {
  padding:28px 32px;
  background:#fff;
  border:1px solid var(--shop-line);
  border-radius:14px;
  box-shadow:0 6px 28px rgba(24,32,37,.07);
}

/* Tiêu đề */
.woocommerce div.product .product_title {
  font-size:24px !important;
  line-height:1.3 !important;
  margin:0 0 16px !important;
}

/* Giá — nổi bật, màu xanh brand */
.woocommerce div.product p.price {
  display:flex !important;
  align-items:baseline;
  gap:10px;
  font-size:28px !important;
  font-weight:800 !important;
  color:var(--shop-brand-dark) !important;
  margin:0 0 22px !important;
  padding-bottom:18px;
  border-bottom:1px solid var(--shop-line);
  line-height:1;
}
.woocommerce div.product p.price ins {
  color:#dc2626 !important;
  text-decoration:none !important;
  font-weight:800;
}
.woocommerce div.product p.price del {
  font-size:17px !important;
  color:var(--shop-muted) !important;
  font-weight:400 !important;
}

/* Bảng biến thể: chuyển từ table sang flex dọc */
.woocommerce div.product form.cart table.variations {
  display:flex !important;
  flex-direction:column !important;
  gap:14px;
  width:100%;
  border:none;
  margin-bottom:18px !important;
}
.woocommerce div.product form.cart table.variations tbody { display:contents !important; }
.woocommerce div.product form.cart table.variations tr {
  display:flex !important;
  flex-direction:column !important;
  gap:6px;
}
.woocommerce div.product form.cart table.variations td {
  display:block !important;
  padding:0 !important;
  border:none !important;
}
.woocommerce div.product form.cart table.variations td.label {
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--shop-muted);
}
.woocommerce div.product form.cart table.variations td.label label { margin:0; }
.woocommerce div.product form.cart table.variations td.value {
  display:flex !important;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  max-width:100%;
}
/* .shop-color-swatches là flex item bên trong hàng flex trên — mặc định min-width:auto khiến nó
 * không chịu co lại dưới chiều rộng "chưa xuống dòng" của chính nó (8 ô màu nằm 1 hàng), đẩy cả
 * trang bị tràn ngang. Ép min-width:0 để nó luôn co vừa khung rồi tự xuống dòng bên trong. */
.woocommerce div.product form.cart table.variations td.value .shop-color-swatches {
  min-width:0;
  max-width:100%;
}

/* Dropdown chọn biến thể */
.woocommerce div.product form.cart table.variations select {
  flex:1;
  padding:11px 14px;
  border:1.5px solid var(--shop-line) !important;
  border-radius:8px !important;
  background:var(--shop-soft);
  font-size:15px;
  color:var(--shop-ink);
  cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease;
  -webkit-appearance:auto;
  appearance:auto;
}
.woocommerce div.product form.cart table.variations select:focus {
  outline:none;
  border-color:var(--shop-brand) !important;
  box-shadow:0 0 0 3px rgba(11,122,117,.12);
}

/* Link "Xóa lựa chọn" */
.woocommerce div.product form.cart a.reset_variations {
  font-size:12px;
  color:var(--shop-muted);
  text-decoration:underline;
  text-underline-offset:2px;
  white-space:nowrap;
  flex-shrink:0;
}
.woocommerce div.product form.cart a.reset_variations:hover { color:var(--shop-brand); }

/* Hàng quantity + nút (variable product: bên trong .variations_button) */
.woocommerce div.product form.cart .variations_button {
  display:flex !important;
  align-items:stretch;
  gap:12px;
  margin:0 !important;
  padding:0 !important;
}

/* Hàng quantity + nút (simple product: trực tiếp trong form.cart) */
.woocommerce div.product form.cart:not(.variations_form) {
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:12px;
}
.woocommerce div.product form.cart:not(.variations_form) .quantity { flex:0 0 auto; }
.woocommerce div.product form.cart:not(.variations_form) button.single_add_to_cart_button { flex:1; }

/* Input số lượng */
.woocommerce div.product form.cart .quantity { margin:0 !important; }
.woocommerce div.product form.cart input.qty {
  width:84px !important;
  height:50px !important;
  padding:10px !important;
  border:1.5px solid var(--shop-line) !important;
  border-radius:8px !important;
  font-size:17px !important;
  font-weight:700;
  text-align:center;
  background:var(--shop-soft);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.woocommerce div.product form.cart input.qty:focus {
  outline:none;
  border-color:var(--shop-brand) !important;
  box-shadow:0 0 0 3px rgba(11,122,117,.12);
}

/* Nút Thêm giỏ / Chọn tùy chọn */
.woocommerce div.product form.cart button.single_add_to_cart_button {
  flex:1;
  height:50px !important;
  padding:0 24px !important;
  font-size:16px !important;
  font-weight:700 !important;
  border-radius:8px !important;
  letter-spacing:.02em;
  white-space:nowrap;
}

/* Phần meta: SKU, danh mục */
.woocommerce div.product .product_meta {
  margin-top:22px !important;
  padding-top:18px !important;
  border-top:1px solid var(--shop-line);
  font-size:13px !important;
  color:var(--shop-muted) !important;
}
.woocommerce div.product .product_meta a { color:var(--shop-brand); }
.woocommerce div.product .product_meta a:hover { color:var(--shop-brand-dark); }
.woocommerce div.product .product_meta .sku { font-weight:600; color:var(--shop-ink); }

/* Rating */
.woocommerce div.product .woocommerce-product-rating { margin:0 0 16px !important; }

/* Tabs mô tả / đánh giá */
.woocommerce div.product .woocommerce-tabs { margin-top:48px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding:0;
  border-bottom:2px solid var(--shop-line);
  margin-bottom:0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  margin:0 4px -2px 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding:10px 20px;
  font-weight:700;
  color:var(--shop-muted);
  border-bottom:2px solid transparent;
  transition:color .2s ease, border-color .2s ease;
  background:transparent !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color:var(--shop-brand) !important;
  border-bottom-color:var(--shop-brand);
}
.woocommerce div.product .woocommerce-tabs .panel {
  padding:24px 0;
  border:none !important;
  background:transparent !important;
}

/* Responsive */
@media (max-width:640px) {
  .woocommerce div.product div.summary.entry-summary {
    padding:18px 16px;
    border-radius:10px;
    box-shadow:none;
  }
  .woocommerce div.product .product_title { font-size:20px !important; }
  .woocommerce div.product p.price { font-size:22px !important; }
  .woocommerce div.product form.cart input.qty { width:72px !important; }
}

/* ===== SHOP TOOLBAR (result count + sort) ===== */
.woocommerce .woocommerce-products-header {
  margin-bottom:8px;
}
.woocommerce-products-header__title.page-title {
  font-size:22px !important;
  font-weight:700;
  color:var(--shop-ink);
  margin-bottom:0 !important;
}
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
  float:none !important;
  margin:0 !important;
}

/* Thanh toolbar: kết quả bên trái, sắp xếp bên phải */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
  float:none !important;
  margin:0 !important;
  font-size:13px;
  color:var(--shop-muted);
  line-height:38px;
}

/* Bọc toolbar trong flex row */
.woocommerce .woocommerce-notices-wrapper + * + .woocommerce-ordering,
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  display:inline-flex;
  align-items:center;
}

/* Wrapper toolbar thực tế do WC render ra */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  vertical-align:middle;
}

/* Row chứa cả hai */
.woocommerce form.woocommerce-ordering,
.woocommerce-page form.woocommerce-ordering {
  display:inline-block;
  margin:0 !important;
}

/* ===== SELECT SẮP XẾP ===== */
.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select,
.woocommerce select,
.woocommerce-page select {
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  height:38px;
  padding:0 36px 0 14px;
  border:1.5px solid var(--shop-line);
  border-radius:8px;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2366727a' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  background-size:16px;
  font-size:13px;
  font-weight:500;
  color:var(--shop-ink);
  cursor:pointer;
  transition:border-color .2s, box-shadow .2s;
  white-space:nowrap;
  vertical-align:middle;
}
.woocommerce .woocommerce-ordering select:hover,
.woocommerce-page .woocommerce-ordering select:hover {
  border-color:var(--shop-brand);
}
.woocommerce .woocommerce-ordering select:focus,
.woocommerce-page .woocommerce-ordering select:focus {
  outline:none;
  border-color:var(--shop-brand);
  box-shadow:0 0 0 3px rgba(11,122,117,.12);
}

/* ===== FILTER WIDGETS (sidebar) ===== */
.shop-sidebar {
  display:flex;
  flex-direction:column;
  gap:20px;
}

.shop-sidebar .widget,
.woocommerce .widget {
  background:#fff;
  border:1.5px solid var(--shop-line);
  border-radius:12px;
  padding:20px 20px 18px;
  overflow:hidden;
}

.shop-sidebar .widget_title,
.woocommerce .widget .widget-title,
.woocommerce .widget h2,
.woocommerce .widget h3 {
  font-size:14px !important;
  font-weight:700 !important;
  color:var(--shop-ink) !important;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin:0 0 14px !important;
  padding-bottom:12px;
  border-bottom:1px solid var(--shop-line);
}

/* Price filter */
.widget_price_filter .price_slider_wrapper { margin-top:8px; }
.widget_price_filter .ui-slider {
  height:4px;
  background:var(--shop-line);
  border:none;
  border-radius:4px;
  margin:10px 8px 18px;
}
.widget_price_filter .ui-slider .ui-slider-range {
  background:linear-gradient(90deg,var(--shop-brand),var(--shop-accent));
  border-radius:4px;
  height:4px;
  top:0;
}
.widget_price_filter .ui-slider-handle {
  width:18px !important;
  height:18px !important;
  top:-7px !important;
  background:#fff !important;
  border:2px solid var(--shop-brand) !important;
  border-radius:50% !important;
  cursor:grab;
  box-shadow:0 2px 6px rgba(11,122,117,.2) !important;
  transition:box-shadow .15s;
}
.widget_price_filter .ui-slider-handle:active { cursor:grabbing; box-shadow:0 0 0 4px rgba(11,122,117,.15) !important; }
.widget_price_filter .ui-slider-handle:focus { outline:none; box-shadow:0 0 0 3px rgba(11,122,117,.2) !important; }
.widget_price_filter .price_slider_amount {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:4px;
}
.widget_price_filter .price_slider_amount .from,
.widget_price_filter .price_slider_amount .to {
  font-size:13px;
  font-weight:600;
  color:var(--shop-ink);
}
.widget_price_filter .price_slider_amount button {
  height:32px;
  padding:0 14px;
  border:none;
  border-radius:6px;
  background:linear-gradient(135deg,var(--shop-brand),var(--shop-brand-dark));
  color:#fff;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  transition:opacity .2s;
  margin-left:auto;
}
.widget_price_filter .price_slider_amount button:hover { opacity:.85; }

/* Layered nav (attribute + category checkboxes) */
.woocommerce-widget-layered-nav-list,
.widget_layered_nav ul,
.widget_product_categories ul {
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.woocommerce-widget-layered-nav-list__item a,
.widget_layered_nav ul li a,
.widget_product_categories ul li a {
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 10px;
  border-radius:7px;
  font-size:13px;
  color:var(--shop-ink);
  transition:background .15s, color .15s;
  text-decoration:none !important;
}
.woocommerce-widget-layered-nav-list__item a:hover,
.widget_layered_nav ul li a:hover,
.widget_product_categories ul li a:hover {
  background:var(--shop-soft);
  color:var(--shop-brand);
}
.woocommerce-widget-layered-nav-list__item--chosen a,
.widget_layered_nav ul li.chosen a,
.widget_product_categories ul li.current-cat > a {
  background:rgba(11,122,117,.08);
  color:var(--shop-brand);
  font-weight:600;
}
.woocommerce-widget-layered-nav-list__item--chosen a::before,
.widget_layered_nav ul li.chosen a::before {
  content:'✓';
  display:inline-flex;
  width:16px;
  height:16px;
  align-items:center;
  justify-content:center;
  background:var(--shop-brand);
  color:#fff;
  border-radius:4px;
  font-size:10px;
  flex-shrink:0;
}
.woocommerce-widget-layered-nav-list__item .count,
.widget_layered_nav ul li .count {
  margin-left:auto;
  font-size:11px;
  color:var(--shop-muted);
  background:var(--shop-soft);
  padding:1px 6px;
  border-radius:10px;
}

/* Rating filter */
.woocommerce-widget-rating-filter__list,
.widget_rating_filter ul {
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.woocommerce-widget-rating-filter__list li a,
.widget_rating_filter ul li a {
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:7px;
  font-size:13px;
  color:var(--shop-ink);
  text-decoration:none !important;
  transition:background .15s;
}
.woocommerce-widget-rating-filter__list li a:hover,
.widget_rating_filter ul li a:hover { background:var(--shop-soft); }
.woocommerce-widget-rating-filter__list li.chosen a,
.widget_rating_filter ul li.chosen a {
  background:rgba(11,122,117,.08);
  font-weight:600;
}
.star-rating,
.woocommerce-widget-rating-filter__list .star-rating { font-size:13px; }

/* Bộ lọc đang dùng (active filters) */
.woocommerce-widget-layered-nav-filters ul {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.woocommerce-widget-layered-nav-filters ul li {
  display:inline-flex;
  align-items:center;
  gap:4px;
  height:26px;
  padding:0 10px;
  background:rgba(11,122,117,.1);
  border-radius:20px;
  font-size:12px;
  font-weight:600;
  color:var(--shop-brand);
}
.woocommerce-widget-layered-nav-filters ul li a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:14px;
  height:14px;
  background:var(--shop-brand);
  color:#fff;
  border-radius:50%;
  font-size:10px;
  text-decoration:none;
  line-height:1;
  flex-shrink:0;
}
.woocommerce-widget-layered-nav-filters ul li a:hover { background:var(--shop-brand-dark); }

/* ===== LAYOUT SHOP CÓ SIDEBAR ===== */
.shop-with-sidebar {
  display:grid;
  grid-template-columns:240px 1fr;
  gap:28px;
  align-items:start;
}
@media (max-width:900px) {
  .shop-with-sidebar {
    grid-template-columns:1fr;
  }
  .shop-sidebar {
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:14px;
  }
}
@media (max-width:640px) {
  .shop-sidebar {
    grid-template-columns:1fr;
  }
  .woocommerce .woocommerce-ordering select,
  .woocommerce-page .woocommerce-ordering select {
    font-size:14px;
    height:40px;
  }
}

/* ===== STICKY ATC BAR ===== */
.sticky-atc {
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:200;
  background:#fff;
  border-bottom:2px solid var(--shop-line);
  box-shadow:0 4px 24px rgba(24,32,37,.13);
  transform:translateY(-100%);
  transition:transform .3s var(--shop-ease,cubic-bezier(.16,1,.3,1));
  will-change:transform;
}
.sticky-atc.is-visible {
  transform:translateY(0);
}
.sticky-atc .container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding-top:10px;
  padding-bottom:10px;
  min-height:64px;
}
.sticky-atc-info {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:1;
  overflow:hidden;
}
.sticky-atc-thumb {
  flex-shrink:0;
  width:44px;
  height:44px;
  border-radius:6px;
  overflow:hidden;
  border:1px solid var(--shop-line);
  background:var(--shop-soft);
}
.sticky-atc-thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.sticky-atc-meta { min-width:0; }
.sticky-atc-name {
  font-size:14px;
  font-weight:600;
  color:var(--shop-ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:420px;
  line-height:1.3;
}
.sticky-atc-price {
  font-size:15px;
  font-weight:800;
  color:var(--shop-brand-dark);
  line-height:1.4;
  margin-top:2px;
}
.sticky-atc-price .woocommerce-Price-amount { color:inherit; }
.sticky-atc-price ins { text-decoration:none !important; color:#dc2626 !important; }
.sticky-atc-price del { font-size:12px !important; color:var(--shop-muted) !important; font-weight:400 !important; }

.sticky-atc-actions {
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}

/* Qty controls */
.sticky-qty {
  display:flex;
  align-items:stretch;
  border:1.5px solid var(--shop-line);
  border-radius:8px;
  overflow:hidden;
  height:40px;
}
.sticky-qty-btn {
  width:34px;
  border:none;
  background:var(--shop-soft);
  color:var(--shop-ink);
  font-size:19px;
  line-height:1;
  cursor:pointer;
  transition:background .15s;
  display:grid;
  place-items:center;
  user-select:none;
}
.sticky-qty-btn:hover { background:var(--shop-line); }
.sticky-qty-val {
  width:42px;
  height:100%;
  border:none;
  border-left:1px solid var(--shop-line);
  border-right:1px solid var(--shop-line);
  text-align:center;
  font-size:14px;
  font-weight:700;
  color:var(--shop-ink);
  -moz-appearance:textfield;
  appearance:textfield;
  background:#fff;
}
.sticky-qty-val::-webkit-inner-spin-button,
.sticky-qty-val::-webkit-outer-spin-button { display:none; }
.sticky-qty-val:focus { outline:none; }

/* CTA button */
.sticky-atc-btn {
  display:inline-flex;
  align-items:center;
  gap:7px;
  height:40px;
  padding:0 20px;
  background:linear-gradient(135deg, var(--shop-ink) 0%, #2d3a40 100%);
  color:#fff;
  border:none;
  border-radius:8px;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  transition:opacity .18s, transform .15s;
  white-space:nowrap;
  letter-spacing:.01em;
}
.sticky-atc-btn:hover { opacity:.86; }
.sticky-atc-btn:active { transform:scale(.97); }
.sticky-atc-btn.btn-added {
  background:linear-gradient(135deg, #16a34a 0%, #15803d 100%);
}

@media (max-width:900px) {
  .sticky-atc-name { max-width:220px; }
  .sticky-atc-btn { padding:0 15px; font-size:13px; }
}
@media (max-width:640px) {
  .sticky-atc-thumb { display:none; }
  .sticky-atc-name { max-width:150px; font-size:13px; }
  .sticky-atc-price { font-size:13px; }
  .sticky-qty-btn { width:28px; }
  .sticky-qty-val { width:36px; }
  .sticky-atc-btn { padding:0 12px; }
}

/* ===== CART PAGE — ẨN COUPON GỐC TRONG TABLE ===== */
.woocommerce-cart-form .coupon { display:none !important; }

/* ===== CART COUPON SECTION ===== */
.cart-coupon-section {
  margin-bottom:28px;
}
.cart-coupon-heading {
  font-size:18px;
  font-weight:700;
  color:var(--shop-ink);
  margin:0 0 14px;
}

/* Danh sách card cuộn ngang */
.coupon-cards-wrap {
  display:flex;
  gap:12px;
  overflow-x:auto;
  padding-bottom:4px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:var(--shop-line) transparent;
}
.coupon-cards-wrap::-webkit-scrollbar { height:4px; }
.coupon-cards-wrap::-webkit-scrollbar-track { background:transparent; }
.coupon-cards-wrap::-webkit-scrollbar-thumb { background:var(--shop-line); border-radius:4px; }

/* Từng card coupon */
.coupon-card {
  position:relative;
  flex:0 0 240px;
  background:#fff;
  border:1.5px solid var(--shop-line);
  border-radius:10px;
  overflow:hidden;
  scroll-snap-align:start;
  transition:border-color .2s, box-shadow .2s;
}
.coupon-card:hover { border-color:var(--shop-brand); box-shadow:0 4px 16px rgba(11,122,117,.1); }
.coupon-card.is-applied { border-color:var(--shop-brand); background:rgba(11,122,117,.04); }

/* Khía dạng phiếu (notch) ở cạnh trái */
.coupon-card-notch {
  position:absolute;
  left:-10px;
  top:50%;
  transform:translateY(-50%);
  width:20px;
  height:20px;
  border-radius:50%;
  background:var(--shop-soft);
  border:1.5px solid var(--shop-line);
  z-index:1;
}
.coupon-card.is-applied .coupon-card-notch { border-color:var(--shop-brand); }

.coupon-card-inner {
  padding:14px 14px 12px 18px;
  display:flex;
  flex-direction:column;
  gap:6px;
  height:100%;
}
.coupon-card-top {
  display:flex;
  align-items:baseline;
  gap:6px;
  flex-wrap:wrap;
}
.coupon-card-code {
  font-size:14px;
  font-weight:700;
  color:var(--shop-ink);
  font-family:monospace;
  letter-spacing:.05em;
}
.coupon-remaining {
  font-size:11px;
  color:var(--shop-muted);
  background:var(--shop-soft);
  padding:1px 7px;
  border-radius:10px;
  font-family:sans-serif;
  font-weight:500;
}
.coupon-card-desc {
  font-size:12px;
  color:var(--shop-muted);
  line-height:1.4;
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.coupon-card-min {
  font-size:11px;
  color:var(--shop-brand);
  font-weight:600;
  margin:0;
}
.coupon-card-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:auto;
  padding-top:8px;
  border-top:1px dashed var(--shop-line);
}
.coupon-hsd {
  font-size:11px;
  color:var(--shop-muted);
}
.coupon-use-btn {
  font-size:12px;
  font-weight:700;
  color:var(--shop-brand);
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
  transition:color .15s;
}
.coupon-use-btn:hover { color:var(--shop-brand-dark); text-decoration:underline; }
.coupon-applied-tag {
  font-size:12px;
  font-weight:700;
  color:var(--shop-brand);
}

/* Input nhập mã */
.coupon-input-row {
  display:flex;
  align-items:center;
  gap:0;
  margin-top:14px;
  border:1.5px solid var(--shop-line);
  border-radius:100px;
  overflow:hidden;
  background:#fff;
  transition:border-color .2s, box-shadow .2s;
}
.coupon-input-row:focus-within {
  border-color:var(--shop-brand);
  box-shadow:0 0 0 3px rgba(11,122,117,.1);
}
.coupon-input-custom {
  flex:1;
  height:50px;
  border:none;
  padding:0 20px;
  font-size:14px;
  color:var(--shop-ink);
  background:transparent;
  outline:none;
  letter-spacing:.04em;
}
.coupon-input-custom::placeholder { color:var(--shop-muted); }
.coupon-apply-manual {
  height:50px;
  padding:0 26px;
  border:none;
  border-radius:0 100px 100px 0;
  background:var(--shop-ink);
  color:#fff;
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  cursor:pointer;
  transition:background .2s;
  white-space:nowrap;
  flex-shrink:0;
}
.coupon-apply-manual:hover { background:var(--shop-brand); }
.coupon-apply-manual.is-loading { opacity:.6; pointer-events:none; }

/* ===== STICKY CART BOTTOM BAR ===== */
.sticky-cart-bar {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:200;
  background:#fff;
  border-top:2px solid var(--shop-line);
  box-shadow:0 -4px 24px rgba(24,32,37,.1);
  transform:translateY(100%);
  transition:transform .3s var(--shop-ease,cubic-bezier(.16,1,.3,1));
  will-change:transform;
}
.sticky-cart-bar.is-visible { transform:translateY(0); }
.sticky-cart-bar .container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-top:12px;
  padding-bottom:12px;
  min-height:64px;
}
.sticky-cart-info {
  display:flex;
  align-items:center;
  gap:20px;
}
.sticky-cart-count {
  font-size:13px;
  color:var(--shop-muted);
  white-space:nowrap;
}
.sticky-cart-total-wrap {
  display:flex;
  flex-direction:column;
  gap:1px;
}
.sticky-cart-label {
  font-size:11px;
  color:var(--shop-muted);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.sticky-cart-total {
  font-size:20px;
  font-weight:800;
  color:var(--shop-brand-dark);
  line-height:1.2;
}
.sticky-cart-total .woocommerce-Price-amount { color:inherit; }
.sticky-cart-btn {
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:46px;
  padding:0 28px;
  background:var(--shop-ink);
  color:#fff;
  border-radius:8px;
  font-size:15px;
  font-weight:700;
  text-decoration:none;
  transition:background .2s, transform .15s;
  white-space:nowrap;
  flex-shrink:0;
}
.sticky-cart-btn:hover { background:var(--shop-brand); color:#fff; }
.sticky-cart-btn:active { transform:scale(.97); }

@media (max-width:640px) {
  .sticky-cart-count { display:none; }
  .sticky-cart-total { font-size:17px; }
  .sticky-cart-btn { padding:0 20px; font-size:14px; height:42px; }
  .coupon-card { flex:0 0 210px; }
}

/* =====================================================
   CHECKOUT — TWO-COLUMN REDESIGN
   ===================================================== */

/* ---- Checkout notice group: ẩn summary, tránh vỡ flex layout ---- */
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup {
  flex: 0 0 100%;
  width: 100%;
  order: -1;
  display: none !important;
}

/* ---- Layout: form trái | giỏ hàng phải ---- */
.woocommerce-checkout form.checkout.woocommerce-checkout {
  display:flex;
  gap:0 48px;
  align-items:flex-start;
  flex-wrap:nowrap;
}
.woocommerce-checkout #customer_details {
  flex:1 1 0;
  min-width:0;
}
.woocommerce-checkout .checkout-right-col {
  flex:1 1 0;
  min-width:0;
  position:sticky;
  top:100px;
}

/* ---- Ẩn col-2 (ship to different address) mặc định ---- */
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
  float:none !important;
  width:100% !important;
  max-width:100% !important;
  padding:0 !important;
}

/* ---- Heading các section ---- */
.woocommerce-checkout h3 {
  font-size:15px !important;
  font-weight:700 !important;
  color:var(--shop-ink) !important;
  margin:0 !important;
  padding:15px 20px !important;
  background:#f9fafb !important;
  border-bottom:1px solid var(--shop-line) !important;
  letter-spacing:0 !important;
}

/* Right-col: order review heading acts as the card's header */
.woocommerce-checkout #order_review_heading {
  font-size:14px !important;
  text-transform:uppercase !important;
  letter-spacing:.07em !important;
  color:var(--shop-muted) !important;
  padding:13px 18px !important;
  background:#f9fafb !important;
  border:1.5px solid var(--shop-line) !important;
  border-bottom:1px solid var(--shop-line) !important;
  border-radius:14px 14px 0 0 !important;
  margin:0 !important;
}

/* ---- Left-column section cards ---- */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
  border:1.5px solid var(--shop-line);
  border-radius:14px;
  overflow:hidden;
  margin-bottom:18px;
  background:#fff;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { padding:18px 20px 20px; }
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { padding:18px 20px 20px; }
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper { padding:16px 20px 20px; }

/* ---- Ship to different address toggle ---- */
#ship-to-different-address {
  display:flex;
  align-items:center;
  font-size:15px;
  font-weight:700;
  padding:14px 20px;
  margin:0;
  background:#f9fafb;
  border-bottom:1px solid var(--shop-line);
  cursor:pointer;
}
#ship-to-different-address label {
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  margin:0;
  font-weight:700;
  font-size:15px;
}
#ship-to-different-address label input[type="checkbox"] {
  width:18px;
  height:18px;
  accent-color:var(--shop-brand);
  cursor:pointer;
  margin:0;
  flex-shrink:0;
}

/* ---- Grid form fields ---- */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 14px;
}
.woocommerce-checkout .form-row-wide,
.woocommerce-checkout .form-row.notes {
  grid-column:1 / -1;
}
.woocommerce-checkout .form-row-first { grid-column:1; }
.woocommerce-checkout .form-row-last  { grid-column:2; }

/* Remove WC default float */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  float:none !important;
  width:auto !important;
  clear:none !important;
}
.woocommerce-checkout .form-row {
  margin:0 !important;
  padding:0 !important;
  float:none !important;
  clear:none !important;
}

/* Hide fields not applicable for Vietnam */
.co-field-hidden { display:none !important; }

/* ---- Labels ---- */
.woocommerce-checkout label {
  display:block;
  font-size:13px;
  font-weight:600;
  color:var(--shop-ink);
  margin-bottom:7px;
}
.woocommerce-checkout label .required { color:#dc2626; margin-left:2px; }

/* ---- Inputs & Selects ---- */
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  width:100% !important;
  height:48px !important;
  padding:0 16px !important;
  border:1.5px solid var(--shop-line) !important;
  border-radius:10px !important;
  font-size:14px !important;
  color:var(--shop-ink) !important;
  background:#fff !important;
  outline:none !important;
  box-shadow:none !important;
  transition:border-color .2s, box-shadow .2s !important;
  appearance:auto;
  -webkit-appearance:auto;
}
.woocommerce-checkout form.checkout.woocommerce-checkout,
.woocommerce-checkout .coupon-input-row input[type="text"]{
  border:0 !important;
}
.woocommerce-checkout textarea {
  height:auto !important;
  padding:12px 16px !important;
  resize:vertical;
}
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout input[type="text"]:focus,
.woocommerce-checkout input[type="email"]:focus,
.woocommerce-checkout input[type="tel"]:focus,
.woocommerce-checkout select:focus {
  border-color:var(--shop-brand) !important;
  box-shadow:0 0 0 3px rgba(11,122,117,.1) !important;
}

/* Validation states */
.woocommerce-checkout .woocommerce-invalid .input-text,
.woocommerce-checkout .woocommerce-invalid select {
  border-color:#dc2626 !important;
}
.woocommerce-checkout .woocommerce-validated .input-text,
.woocommerce-checkout .woocommerce-validated select {
  border-color:#16a34a !important;
}

/* ---- Order review: product cards ---- */
.woocommerce-checkout-review-order {
  background:#fff;
  border:1.5px solid var(--shop-line);
  border-top:none;
  border-radius:0 0 14px 14px;
  overflow:hidden;
}
.co-product-item {
  position:relative;
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 18px;
  border-bottom:1px solid var(--shop-line);
}
.co-thumb-wrap {
  position:static;
  flex-shrink:0;
  width:68px;
  height:68px;
  border-radius:8px;
  overflow:hidden;
  background:var(--shop-soft);
  border:1px solid var(--shop-line);
}
.co-thumb-wrap img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.co-qty-badge { display:none; }
.co-qty-controls {
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:6px;
}
.co-qty-btn {
  width:24px;
  height:24px;
  border:1.5px solid var(--shop-line);
  border-radius:50%;
  background:#fff;
  cursor:pointer;
  font-size:15px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--shop-ink);
  flex-shrink:0;
  padding:0;
  transition:border-color .15s,background .15s;
}
.co-qty-btn:hover {
  border-color:var(--shop-brand);
  background:rgba(11,122,117,.07);
}
.co-qty-num {
  font-size:13px;
  font-weight:700;
  min-width:18px;
  text-align:center;
  color:var(--shop-ink);
}
.co-product-info {
  flex:1;
  min-width:0;
}
.co-product-name {
  font-size:13px;
  font-weight:600;
  color:var(--shop-ink);
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.co-product-meta {
  font-size:12px;
  color:var(--shop-muted);
  margin-top:3px;
}
.co-product-meta .woocommerce-Price-amount { font-size:inherit; }
.co-product-price {
  font-size:14px;
  font-weight:700;
  color:var(--shop-ink);
  white-space:nowrap;
  flex-shrink:0;
}
.co-remove-item {
  flex-shrink:0;
  width:24px;
  height:24px;
  border:none;
  background:none;
  cursor:pointer;
  color:var(--shop-muted);
  border-radius:4px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  transition:background .15s, color .15s;
  margin-left:2px;
}
.co-remove-item:hover { background:#fef2f2; color:#dc2626; }

/* ---- Totals ---- */
.co-totals {
  padding:14px 18px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.co-total-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px;
  color:var(--shop-muted);
}
.co-discount-row { color:var(--shop-brand); }
.co-discount-val a { font-size:11px; color:var(--shop-muted); margin-left:6px; }
.co-grand-total {
  padding-top:12px;
  border-top:1.5px solid var(--shop-line);
  font-size:15px;
  font-weight:700;
  color:var(--shop-ink);
}
.co-grand-total-price {
  font-size:22px;
  font-weight:800;
  color:var(--shop-brand-dark);
}
.co-grand-total-price .woocommerce-Price-amount { color:inherit; }

/* WC shipping row inside co-totals */
.co-totals tr.shipping { display:contents; }
.co-totals tr.shipping th,
.co-totals tr.shipping td { display:block; }

/* ---- Payment section (left column) ---- */
#payment {
  border:1.5px solid var(--shop-line) !important;
  background:#fff !important;
  border-radius:14px !important;
  overflow:hidden !important;
  margin:0 0 18px !important;
}
#payment::before {
  content:'Hình thức thanh toán';
  display:block;
  font-size:15px;
  font-weight:700;
  color:var(--shop-ink);
  padding:15px 20px;
  background:#f9fafb;
  border-bottom:1px solid var(--shop-line);
}
#payment ul.payment_methods {
  border:none !important;
  padding:14px 16px 16px !important;
  list-style:none !important;
  margin:0 !important;
  display:flex;
  flex-direction:column;
  gap:8px;
}
#payment ul.payment_methods li {
  /* Trong markup gốc, <input type="radio"> và <label> là 2 phần tử ANH EM (không lồng nhau),
   * nên trước đây chỉ set flex cho label khiến nút tick bị tách rời khỏi tiêu đề. Dùng grid trên
   * chính <li> để ghép nút tick + tiêu đề cùng 1 hàng, còn phần mô tả (payment_box) xuống hàng
   * dưới, trải full chiều ngang. */
  display:grid !important;
  grid-template-columns:auto 1fr;
  align-items:center;
  padding:14px 16px !important;
  border:1.5px solid var(--shop-line);
  border-radius:10px;
  overflow:hidden;
  transition:border-color .2s;
}
#payment ul.payment_methods li.active,
#payment ul.payment_methods li:has(input:checked) {
  border-color:var(--shop-brand);
  background:rgba(11,122,117,.04);
}
#payment ul.payment_methods li label {
  grid-column:2;
  grid-row:1;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0;
  font-size:14px;
  font-weight:600;
  color:var(--shop-ink);
  cursor:pointer;
  text-transform:none;
  letter-spacing:0;
  margin:0;
}
#payment ul.payment_methods li input[type="radio"] {
  grid-column:1;
  grid-row:1;
  width:16px;
  height:16px;
  margin:0 10px 0 0;
  accent-color:var(--shop-brand);
  cursor:pointer;
  flex-shrink:0;
}
#payment .payment_box {
  grid-column:1 / -1;
  grid-row:2;
  padding:12px 0 0 !important;
  margin-top:12px !important;
  background:none !important;
  color:var(--shop-muted) !important;
  font-size:13px !important;
  line-height:1.6;
  border-top:1px solid var(--shop-line);
}
#payment .payment_box::before { display:none !important; }

/* Place order button — hidden, sticky bar submits it via JS */
#payment .place-order { display:none !important; }
#place_order {
  width:100% !important;
  height:54px !important;
  font-size:16px !important;
  font-weight:700 !important;
  border-radius:10px !important;
  background:linear-gradient(135deg, var(--shop-ink) 0%, #2d3a40 100%) !important;
  color:#fff !important;
  border:none !important;
  cursor:pointer !important;
  transition:opacity .2s, transform .15s !important;
  letter-spacing:.02em;
}
#place_order:hover { opacity:.88 !important; }
#place_order:active { transform:scale(.98) !important; }

/* ---- Terms & conditions ---- */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  font-size:12px;
  color:var(--shop-muted);
  margin-bottom:16px !important;
}

/* ---- Sticky checkout bottom bar (mobile) ---- */
.sticky-checkout-bar {
  display:none; /* hiện qua media query mobile */
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:300;
  background:#fff;
  border-top:1.5px solid var(--shop-line);
  box-shadow:0 -4px 20px rgba(24,32,37,.1);
  padding:10px 16px;
  gap:12px;
  align-items:center;
  justify-content:space-between;
}
.sticky-checkout-bar.is-visible { display:flex; }
.sticky-checkout-total { display:flex; flex-direction:column; gap:1px; }
.sticky-checkout-label { font-size:11px; color:var(--shop-muted); text-transform:uppercase; letter-spacing:.05em; }
.sticky-checkout-price { font-size:18px; font-weight:800; color:var(--shop-brand-dark); }
.sticky-checkout-btn {
  height:44px;
  padding:0 24px;
  background:var(--shop-ink);
  color:#fff;
  border:none;
  border-radius:8px;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
  flex-shrink:0;
}

/* ---- Ẩn footer trên trang checkout ---- */
body.woocommerce-checkout .site-footer { display:none !important; }

/* ---- Responsive ---- */
@media (max-width:900px) {
  .woocommerce-checkout form.checkout.woocommerce-checkout {
    flex-direction:column;
    gap:32px;
  }
  .woocommerce-checkout .checkout-right-col {
    position:static;
    width:100%;
    order:-1;
  }
  .sticky-checkout-bar { display:flex; }
  #place_order { display:none !important; } /* dùng sticky bar thay */
  body.woocommerce-checkout { padding-bottom:76px; }
}
@media (max-width:640px) {
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns:1fr;
  }
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last { grid-column:1; }
}

/* =====================================================
   TRANG "ĐẶT HÀNG THÀNH CÔNG" — đồng bộ style thẻ bo góc của checkout
   ===================================================== */
.woocommerce-order {
  /* Rộng bằng nội dung các trang khác (không tự giới hạn max-width riêng) — .site-main .container
   * bên ngoài đã lo phần căn giữa + lề 2 bên rồi. */
  padding: 0 0 60px;
}
/* Chia 2 cột content chính | sidebar địa chỉ — 2 wrapper này do JS (shop.js) tạo ra bằng cách
 * gom các phần tử con thật sự vào 2 khối riêng, KHÔNG dùng grid-row:1/-1 trên phần tử rời rạc
 * (đã thử nhưng auto-placement của các item còn lại bị lệch cột không kiểm soát được). */
.wc-order-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 20px 28px;
  align-items: start;
}
@media (max-width: 900px) {
  .wc-order-columns { grid-template-columns: 1fr; }
}
.woocommerce-order .woocommerce-notice--success,
.woocommerce-order .woocommerce-thankyou-order-failed {
  margin: 0 0 18px;
  padding: 16px 20px;
  border: 1.5px solid var(--shop-line);
  border-left: 4px solid var(--shop-brand);
  border-radius: 8px;
  background: #fff;
  color: var(--shop-ink);
  font-size: 16px;
  font-weight: 700;
}
.woocommerce-order .woocommerce-thankyou-order-failed { border-left-color: #dc2626; }

/* Dải tóm tắt: mã đơn / ngày / email / tổng tiền / thanh toán */
.woocommerce-order-overview {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  list-style: none;
  margin: 0 0 18px;
  padding: 16px 20px;
  background: var(--shop-soft);
  border: 1.5px solid var(--shop-line);
  border-radius: 10px;
}
.woocommerce-order-overview li {
  /* woocommerce.css có .order_details li{float;margin-right:2em;border-right dashed;padding-right}
   * cộng dồn với gap của flex ở trên làm khoảng cách bị lệch/quá rộng — reset hết lại. */
  float: none !important;
  margin: 0 !important;
  flex: 1 1 130px;
  border: 0 !important;
  padding: 0 !important;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--shop-muted);
}
.woocommerce-order-overview li strong {
  display: block;
  margin-top: 4px;
  font-size: 15px;
  text-transform: none;
  letter-spacing: normal;
  color: var(--shop-ink);
  font-weight: 700;
}

/* Hướng dẫn thanh toán (COD, chuyển khoản...) do cổng thanh toán in ra */
.woocommerce-order > p,
.wc-order-main > p {
  margin: 0 0 18px;
  padding: 14px 18px;
  border: 1.5px solid var(--shop-line);
  border-radius: 8px;
  background: #fff;
  color: var(--shop-muted);
  font-size: 14px;
}

.woocommerce-order-details__title,
.woocommerce-column__title {
  font-size: 17px;
  font-weight: 700;
  color: var(--shop-ink);
  margin: 0 0 10px;
}
/* woocommerce.css cho .woocommerce-order-details, .woocommerce-customer-details margin-bottom:2em
 * riêng, cộng dồn với margin của bảng/thẻ bên trong làm khoảng cách giữa các khối quá rộng. */
.woocommerce-order-details,
.woocommerce-customer-details { margin-bottom: 0 !important; }

table.woocommerce-table--order-details {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 24px;
  background: #fff;
  border: 1.5px solid var(--shop-line);
  border-radius: 10px;
  overflow: hidden;
}
table.woocommerce-table--order-details thead{
  background: var(--shop-soft);
}
table.woocommerce-table--order-details th,
table.woocommerce-table--order-details td {
  /* woocommerce.css (.shop_table td/th/tfoot) tự có border-top riêng — bỏ đi để tránh viền đôi
   * với border-bottom bên dưới. */
  border-top: 0 !important;
  padding: 12px 16px;
  border-bottom: 1px solid var(--shop-line);
  text-align: left;
  font-size: 14px;
  color: var(--shop-ink);
}
table.woocommerce-table--order-details tr:last-child th,
table.woocommerce-table--order-details tr:last-child td { border-bottom: 0; }
table.woocommerce-table--order-details thead th {
  background: var(--shop-soft);
  color: var(--shop-muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .03em;
  font-weight: 700;
}
table.woocommerce-table--order-details tfoot th { font-weight: 600; color: var(--shop-muted); }
table.woocommerce-table--order-details td.product-total,
table.woocommerce-table--order-details tfoot td { text-align: right; font-weight: 600; }
/* Ô tên sản phẩm mang class "product-name" trùng tên với class ở lưới sản phẩm ngoài trang chủ/shop
 * (line-clamp 2 dòng, overflow:hidden) — bị dính nhầm khiến tên sản phẩm dài bị cắt xén/vỡ chữ.
 * Reset lại để hiển thị đầy đủ, không giới hạn dòng, trong đúng bảng chi tiết đơn hàng này. */
table.woocommerce-table--order-details td.product-name {
  display: table-cell;
  height: auto;
  margin: 0;
  overflow: visible;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
  font-size: 14px;
}
table.woocommerce-table--order-details td.product-name .product-quantity {
  display: block;
  margin-top: 2px;
  color: var(--shop-muted);
  font-weight: 400;
}

@media (max-width: 480px) {
  /* Hàng label/giá trị (Tạm tính, Vận chuyển, Tổng cộng, Phương thức thanh toán, Ghi chú) xếp
   * dọc thay vì 2 cột chật, tránh giá trị bị bẻ dòng lung tung như "Phương thức thanh toán". */
  table.woocommerce-table--order-details tfoot tr {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--shop-line);
  }
  table.woocommerce-table--order-details tfoot tr:last-child { border-bottom: 0; }
  table.woocommerce-table--order-details tfoot th,
  table.woocommerce-table--order-details tfoot td {
    display: block;
    width: 100%;
    padding: 0;
    border-bottom: 0 !important;
    text-align: left;
  }
}

.woocommerce-columns--addresses {
  /* Nằm trong sidebar hẹp nên xếp dọc (thanh toán rồi tới giao hàng), không chia 2 cột nữa */
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.woocommerce-column {
  /* woocommerce-layout.css có .col2-set .col-1/.col-2 { float; width:48% } specificity cao hơn
   * (3 class) nên đè mất layout grid ở trên — phải reset lại float/width ở đây. */
  float: none !important;
  width: auto !important;
  background: #fff;
  border: 1.5px solid var(--shop-line);
  border-radius: 10px;
  padding: 16px 18px;
}
.woocommerce-column address {
  /* woocommerce.css tự cho <address> viền + bo góc riêng, gộp với thẻ card ngoài bị lồng khung 2 lớp */
  border: 0;
  padding: 0;
  width: auto;
  border-radius: 0;
  font-style: normal;
  font-size: 14px;
  color: var(--shop-muted);
  line-height: 1.6;
}
.woocommerce-customer-details--phone,
.woocommerce-customer-details--email { margin: 4px 0 0; }

@media (max-width: 640px) {
  .woocommerce-columns--addresses { grid-template-columns: 1fr; }
  .woocommerce-order-overview { gap: 12px 18px; padding: 14px 16px; }
}

/* =====================================================
   MINI-CART HOVER DROPDOWN
   ===================================================== */
.cart-icon-wrap {
  position:relative;
}
.minicart-dropdown {
  position:absolute;
  top:calc(100% + 14px);
  right:0;
  width:340px;
  background:#fff;
  border:1.5px solid var(--shop-line);
  border-radius:14px;
  box-shadow:0 10px 40px rgba(24,32,37,.15);
  z-index:600;
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  transition:opacity .2s var(--shop-ease), transform .2s var(--shop-ease), visibility .2s;
  overflow:hidden;
}
.minicart-dropdown.is-open {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
/* Small triangle pointer */
.minicart-dropdown::before {
  content:'';
  position:absolute;
  top:-7px;
  right:18px;
  width:12px;
  height:12px;
  background:#fff;
  border-left:1.5px solid var(--shop-line);
  border-top:1.5px solid var(--shop-line);
  transform:rotate(45deg);
}
.minicart-empty {
  padding:28px 20px;
  text-align:center;
  font-size:14px;
  color:var(--shop-muted);
}
.minicart-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:13px 16px;
  border-bottom:1px solid var(--shop-line);
  background:#f9fafb;
  font-size:13px;
}
.minicart-subtotal { color:var(--shop-ink); }
.minicart-subtotal strong { color:var(--shop-brand-dark); }
.minicart-count { color:var(--shop-muted); font-size:12px; }
.minicart-view-all {
  flex-shrink:0;
  font-size:12px;
  font-weight:700;
  color:var(--shop-brand);
  white-space:nowrap;
}
.minicart-items {
  max-height:310px;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--shop-line) transparent;
}
.minicart-items::-webkit-scrollbar { width:4px; }
.minicart-items::-webkit-scrollbar-thumb { background:var(--shop-line); border-radius:4px; }
.minicart-item {
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  border-bottom:1px solid var(--shop-line);
}
.minicart-item:last-child { border-bottom:none; }
.minicart-item-img {
  width:56px;
  height:56px;
  flex-shrink:0;
  border-radius:8px;
  overflow:hidden;
  background:var(--shop-soft);
  border:1px solid var(--shop-line);
}
.minicart-item-img img { width:100%; height:100%; object-fit:cover; display:block; }
.minicart-item-info { flex:1; min-width:0; }
.minicart-item-name {
  font-size:13px;
  font-weight:600;
  color:var(--shop-ink);
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.minicart-item-meta { font-size:11px; color:var(--shop-muted); margin-top:2px; }
.minicart-item-price { font-size:13px; font-weight:700; color:var(--shop-ink); margin-top:4px; }
.minicart-qty { font-size:11px; color:var(--shop-muted); font-weight:400; margin-left:3px; }
.minicart-remove-item {
  flex-shrink:0;
  width:22px;
  height:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:17px;
  color:var(--shop-muted);
  background:none;
  border:none;
  cursor:pointer;
  border-radius:4px;
  transition:background .15s, color .15s;
  line-height:1;
  padding:0;
}
.minicart-remove-item:hover { background:var(--shop-soft); color:#dc2626; }

/* Hide on mobile (no hover) */
@media (max-width:768px) {
  .minicart-dropdown { display:none !important; }
}

/* ---- Checkout coupon section ---- */
.checkout-coupon-section {
  padding:14px 18px 16px;
  border-top:1px solid var(--shop-line);
  border-bottom:1px solid var(--shop-line);
}
.checkout-coupon-heading {
  font-size:14px;
  font-weight:700;
  color:var(--shop-ink);
  margin-bottom:12px;
}

/* Card scroll row */
.co-coupon-cards-wrap {
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding-bottom:10px;
  margin-bottom:14px;
  scrollbar-width:thin;
  scrollbar-color:#d1d5db transparent;
}
.co-coupon-cards-wrap::-webkit-scrollbar { height:4px; }
.co-coupon-cards-wrap::-webkit-scrollbar-thumb { background:#d1d5db; border-radius:4px; }

/* Individual card */
.co-coupon-card {
  flex:0 0 230px;
  display:flex;
  border:1.5px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  transition:border-color .2s, box-shadow .2s;
  overflow:hidden;
  user-select:none;
}
.co-coupon-card:hover { border-color:#cbd5e1; box-shadow:0 2px 10px rgba(0,0,0,.06); }
.co-coupon-card.is-selected { border-color:#f97316; box-shadow:0 2px 10px rgba(249,115,22,.12); }

/* Card body */
.co-coupon-card-body {
  flex:1;
  padding:14px 10px 12px 14px;
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.co-coupon-card-title {
  display:flex;
  align-items:baseline;
  gap:5px;
  flex-wrap:wrap;
}
.co-coupon-code {
  font-size:13.5px;
  font-weight:800;
  color:var(--shop-ink);
  letter-spacing:.02em;
}
.co-coupon-remain {
  font-size:11px;
  color:var(--shop-muted);
  white-space:nowrap;
  font-weight:400;
}
.co-coupon-desc {
  font-size:12px;
  color:#475569;
  line-height:1.5;
  flex:1;
}
.co-coupon-min {
  font-size:11px;
  color:var(--shop-brand);
  margin:0;
}
.co-coupon-card-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:8px;
  gap:6px;
}
.co-coupon-hsd { font-size:11px; color:#94a3b8; }
.co-coupon-terms {
  font-size:12px;
  color:#2563eb;
  text-decoration:none;
  flex-shrink:0;
  font-weight:500;
}
.co-coupon-terms:hover { text-decoration:underline; }

/* Radio column (right) — dashed separator like a real ticket tear-off */
.co-coupon-card-radio {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  flex-shrink:0;
  border-left:1.5px dashed #e2e8f0;
}
.co-coupon-card.is-selected .co-coupon-card-radio { border-left-color:#f9731640; }
.co-coupon-radio-dot {
  width:22px;
  height:22px;
  border-radius:50%;
  border:2px solid #cbd5e1;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:border-color .2s;
  position:relative;
}
.co-coupon-radio-dot::after {
  content:'';
  width:12px;
  height:12px;
  border-radius:50%;
  background:#f97316;
  opacity:0;
  transition:opacity .18s;
  position:absolute;
}
.co-coupon-card.is-selected .co-coupon-radio-dot { border-color:#f97316; }
.co-coupon-card.is-selected .co-coupon-radio-dot::after { opacity:1; }

/* Input section */
.co-coupon-input-wrap { margin-top:2px; }
.co-coupon-input-label {
  font-size:12px;
  color:var(--shop-muted);
  margin-bottom:7px;
  min-height:18px;
}
.co-coupon-remove {
  border:none;
  background:none;
  padding:0;
  font-size:12px;
  color:var(--shop-muted);
  cursor:pointer;
  text-align:left;
}
.co-coupon-remove strong { color:var(--shop-ink); }
.co-coupon-remove:hover { color:var(--shop-ink); }

.co-coupon-input-row {
  display:flex;
  gap:8px;
  align-items:center;
}
.co-coupon-input {
  flex:1;
  height:46px;
  padding:0 14px;
  border:1.5px solid var(--shop-line);
  border-radius:8px;
  font-size:14px;
  background:#fff;
  outline:none;
  transition:border-color .2s;
  min-width:0;
}
.co-coupon-input:focus { border-color:var(--shop-brand); }
.co-coupon-submit {
  height:46px;
  padding:0 18px;
  background:var(--shop-ink);
  color:#fff;
  border:none;
  border-radius:50px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  cursor:pointer;
  white-space:nowrap;
  flex-shrink:0;
  transition:background .2s;
}
.co-coupon-submit:hover { background:#374151; }

.co-coupon-message { min-height:20px; margin-top:8px; font-size:13px; }
.co-coupon-success { color:#16a34a; }
.co-coupon-error   { color:#dc2626; }

/* Override: don't let WC checkout form strip input borders */
.woocommerce-checkout .co-coupon-input { border:1.5px solid var(--shop-line) !important; }

/* ---- Coupon "Điều kiện" popup modal ---- */
.co-coupon-modal-overlay {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.5);
  z-index:9900;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  transition:opacity .22s, visibility .22s;
}
.co-coupon-modal-overlay.is-open {
  opacity:1;
  visibility:visible;
}
.co-coupon-modal {
  position:relative;
  background:#fff;
  border-radius:16px;
  padding:24px 24px 24px;
  max-width:400px;
  width:100%;
  max-height:82vh;
  overflow-y:auto;
  overflow-x:hidden;
  transform:translateY(12px) scale(.97);
  transition:transform .22s;
}
.co-coupon-modal-overlay.is-open .co-coupon-modal {
  transform:translateY(0) scale(1);
}
.co-coupon-modal-close {
  position:absolute;
  top:14px;
  right:14px;
  width:32px;
  height:32px;
  border-radius:50%;
  background:#111;
  color:#fff;
  border:none;
  font-size:18px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  z-index:1;
}
.co-coupon-modal-code {
  font-size:22px;
  font-weight:800;
  color:var(--shop-ink);
  margin:0 44px 18px 0;
  letter-spacing:.02em;
  word-break:break-all;
}
.co-coupon-modal-section { margin-bottom:16px; }
.co-coupon-modal-section:last-child { margin-bottom:0; }
.co-coupon-modal-section-hd {
  font-size:14px;
  font-weight:700;
  color:var(--shop-ink);
  margin-bottom:5px;
}
.co-coupon-modal-section-bd {
  font-size:13.5px;
  color:#475569;
  line-height:1.65;
  white-space:pre-wrap;
  word-break:break-word;
}
.co-coupon-modal-section-bd ul {
  margin:0;
  padding:0;
  list-style:none;
}
.co-coupon-modal-section-bd ul li { padding:1px 0; }
.co-coupon-modal-section-bd ul li::before {
  content:'- ';
  color:var(--shop-muted);
}
@media(max-width:640px) {
  .co-coupon-modal-overlay { padding:16px; align-items:flex-end; }
  .co-coupon-modal { max-width:100%; border-radius:16px 16px 12px 12px; max-height:75vh; }
}

/* =====================================================
   ATC POPUP (ADD-TO-CART SUCCESS MODAL)
   ===================================================== */
.atc-overlay {
  position:fixed;
  inset:0;
  z-index:1000;
  background:rgba(24,32,37,.45);
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  padding:80px 24px 0;
  opacity:0;
  visibility:hidden;
  transition:opacity .25s, visibility .25s;
}
.atc-overlay.is-open {
  opacity:1;
  visibility:visible;
}
.atc-popup {
  width:100%;
  max-width:360px;
  background:#fff;
  border-radius:14px;
  box-shadow:0 16px 56px rgba(24,32,37,.22);
  position:relative;
  transform:translateY(-14px);
  transition:transform .25s var(--shop-bounce);
  max-height:calc(100vh - 100px);
  overflow-y:auto;
  scrollbar-width:none;
}
.atc-popup::-webkit-scrollbar { display:none; }
.atc-overlay.is-open .atc-popup { transform:translateY(0); }
.atc-popup-close {
  position:absolute;
  top:10px;
  right:12px;
  width:28px;
  height:28px;
  border:none;
  background:none;
  cursor:pointer;
  font-size:20px;
  line-height:1;
  color:var(--shop-muted);
  border-radius:6px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .15s;
  z-index:2;
}
.atc-popup-close:hover { background:var(--shop-soft); }
.atc-popup-success {
  display:flex;
  align-items:center;
  gap:8px;
  padding:12px 40px 12px 16px;
  font-size:13px;
  font-weight:700;
  color:#16a34a;
  background:#f0fdf4;
  border-bottom:2px solid #dc2626;
}
.atc-popup-product {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid var(--shop-line);
}
.atc-popup-img {
  width:72px;
  height:72px;
  flex-shrink:0;
  border-radius:8px;
  overflow:hidden;
  background:var(--shop-soft);
  border:1px solid var(--shop-line);
}
.atc-popup-img img { width:100%; height:100%; object-fit:cover; display:block; }
.atc-popup-info { flex:1; min-width:0; }
.atc-popup-name { font-size:13px; font-weight:700; color:var(--shop-ink); line-height:1.4; }
.atc-popup-meta { font-size:12px; color:var(--shop-muted); margin-top:3px; }
.atc-popup-price { font-size:16px; font-weight:800; color:var(--shop-brand-dark); margin-top:6px; }
.atc-popup-price .woocommerce-Price-amount { color:inherit; }
.atc-popup-price del { font-size:12px; font-weight:400; color:var(--shop-muted); margin-left:4px; }
.atc-popup-actions { padding:12px 16px; }
.atc-popup-cart-btn {
  display:block;
  text-align:center;
  padding:12px;
  border:1.5px solid var(--shop-ink);
  border-radius:8px;
  font-size:14px;
  font-weight:700;
  color:var(--shop-ink);
  transition:background .15s, color .15s;
}
.atc-popup-cart-btn:hover { background:var(--shop-ink); color:#fff; }
.atc-popup-related { padding:4px 16px 18px; }
.atc-related-heading { font-size:14px; font-weight:700; color:var(--shop-ink); margin-bottom:12px; }
.atc-related-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.atc-related-item { display:block; text-decoration:none; }
.atc-related-img {
  border-radius:8px;
  overflow:hidden;
  aspect-ratio:1;
  background:var(--shop-soft);
  border:1px solid var(--shop-line);
  margin-bottom:6px;
}
.atc-related-img img { width:100%; height:100%; object-fit:cover; display:block; }
.atc-related-name {
  font-size:11px;
  color:var(--shop-ink);
  font-weight:600;
  line-height:1.3;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.atc-related-price { font-size:11px; font-weight:700; color:var(--shop-brand-dark); margin-top:3px; }
.atc-related-price .woocommerce-Price-amount { color:inherit; }

@media (max-width:640px) {
  .atc-overlay { padding:60px 0 0; align-items:flex-end; justify-content:center; }
  .atc-popup { max-width:100%; border-radius:14px 14px 0 0; max-height:85vh; }
}

@media(max-width:900px){.header-search{order:3;flex-basis:100%;max-width:none}.site-header .container{flex-wrap:wrap;padding:15px 14px}.product-grid,.woocommerce ul.products{grid-template-columns:repeat(3,1fr)}.news-grid{grid-template-columns:repeat(2,1fr)}.footer-main{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.container{width:min(100% - 28px,1180px)}.topbar .container{min-height:34px}.topbar-links{gap:10px;font-size:12px}.site-branding{min-width:0}.site-title{font-size:22px}.menu-toggle{display:block}.main-nav{display:none}.main-nav.is-open{display:block}.main-menu{display:block;padding:6px 0}.main-menu a{padding:8px 0}.hero,.hero-slide,.hero-content{min-height:430px}.hero-copy h1{font-size:42px}.section{padding:45px 0}.section-heading{display:block}.section-heading .text-link{display:inline-block;margin-top:10px}.product-grid,.woocommerce ul.products{grid-template-columns:repeat(2,1fr);gap:12px}.category-title h2{font-size:23px}.promo-banner{display:block;padding:25px 22px}.promo-banner .button{display:inline-block;margin-top:18px}.news-grid,.blog-grid{grid-template-columns:1fr}.footer-main{grid-template-columns:1fr;gap:26px;padding:38px 0}.header-actions{gap:9px;font-size:14px}.account-label{display:none}.woocommerce div.product .product_title,.entry-title{font-size:32px}}

/* =====================================================
   PHÂN LOẠI SẢN PHẨM DẠNG MÀU — ô màu thay dropdown (JS tự phát hiện, xem shop.js)
   ===================================================== */
select.shop-select-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.shop-color-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.shop-color-swatch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 64px;
  height: 36px;
  padding: 0 12px;
  border: 2px solid var(--shop-line);
  border-radius: 7px;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
  transition: border-color .15s ease, transform .1s ease;
}.product-info h3, .woocommerce ul.products li.product .woocommerce-loop-product__title
.shop-color-swatch:hover { transform: translateY(-1px); }
.shop-color-swatch.is-selected {
  border-color: var(--shop-ink);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.08), 0 0 0 2px var(--shop-paper), 0 0 0 4px var(--shop-ink);
}
.shop-color-swatch.is-disabled {
  opacity: .35;
  cursor: not-allowed;
  text-decoration: line-through;
}
/* Thuộc tính không nhận diện được màu (size, chất liệu...) — nút chữ trơn, không tô nền */
.shop-color-swatch.is-generic {
  background: #fff;
  color: var(--shop-ink);
}
.shop-color-swatch.is-generic.is-selected {
  background: var(--shop-ink);
  color: #fff;
  border-color: var(--shop-ink);
  box-shadow: none;
}

/* =====================================================
   TRANG LIÊN HỆ — nội dung biên tập trong wp-admin (post_content), theme chỉ render + style.
   Class dùng: contact-hero, contact-layout, contact-info-card, contact-info-row,
   contact-info-icon/-label/-value, contact-call-btn, contact-map-card, contact-map.
   ===================================================== */
.contact-page-content iframe,
.contact-page-content img {
  max-width: 100%;
}

.contact-hero {
  text-align: center;
  margin: 0 0 40px;
}
.contact-hero h1 {
  font: 700 40px Georgia, serif;
  margin: 0 0 8px;
  color: var(--shop-ink);
}
.contact-hero p {
  color: var(--shop-muted);
  font-size: 16px;
  margin: 0;
}

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 400px) 1fr;
  gap: 24px;
  align-items: start;
}

.contact-info-card,
.contact-map-card {
  background: #fff;
  border: 1px solid var(--shop-line);
  border-radius: 14px;
  box-shadow: 0 6px 28px rgba(24,32,37,.07);
  padding: 28px;
}
.contact-info-card h2,
.contact-map-card h2 {
  font: 700 19px Georgia, serif;
  margin: 0 0 22px;
  color: var(--shop-ink);
}

.contact-info-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 20px;
}
.contact-info-row:last-of-type { margin-bottom: 24px; }
.contact-info-icon {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--shop-soft);
  color: var(--shop-brand);
}
.contact-info-label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--shop-muted);
  margin-bottom: 3px;
}
.contact-info-value {
  font-size: 16px;
  font-weight: 600;
  color: var(--shop-ink);
  line-height: 1.5;
}
a.contact-info-value:hover { color: var(--shop-brand); }

.contact-call-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  background: var(--shop-brand);
  color: #fff;
  font-weight: 700;
  border-radius: 8px;
  transition: background .2s ease;
}
.contact-call-btn:hover { background: var(--shop-brand-dark); color: #fff; }

.contact-map {
  border: 1px solid var(--shop-line);
  border-radius: 10px;
  overflow: hidden;
  background: var(--shop-soft);
}
.contact-map iframe {
  display: block;
  width: 100%;
  aspect-ratio: 600 / 450;
  border: 0;
}

@media (max-width: 900px) {
  .contact-layout { grid-template-columns: 1fr; }
  .contact-hero h1 { font-size: 32px; }
}
@media (max-width: 480px) {
  .contact-info-card, .contact-map-card { padding: 20px; }
}
