/*
Theme Name: Girijapati Trades
Theme URI: https://girijapatitrades.com/
Description: Child theme for Girijapati Trades based on the Blocksy theme.
Author: Girijapati Trades
Author URI: https://girijapatitrades.com/
Template: blocksy
Version: 1.0.0
Requires at least: 5.8
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: girijapati-trades
*/

/* Add your custom CSS below this line. */

/* Our cart-feedback JS removes WooCommerce's auto-inserted "View cart" link
 * on the 'added_to_cart' event, but this is a CSS safety net in case that
 * script hasn't loaded/run yet (e.g. a caching hiccup) — it should never
 * appear as an unstyled black link. */
a.added_to_cart.wc-forward {
	display: none !important;
}

body {
	font-family: "DM Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	background-color: #fcf7ee;
	color: #1b1b1b;
}

/* DM Sans carries the headings too — at display sizes it needs more weight
 * and tighter tracking than its body setting to hold together. */
h1, h2, h3, h4, h5, h6 {
	font-family: "DM Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.14;
}

#girijapati-preloader {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fcf7ee;
	opacity: 1;
	visibility: visible;
	transition: opacity 0.4s ease, visibility 0.4s ease;
}

#girijapati-preloader.is-hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.girijapati-preloader__spinner {
	width: 46px;
	height: 46px;
	border: 3.5px solid rgba(27, 67, 50, 0.15);
	border-top-color: #1b4332;
	border-right-color: #d4af37;
	border-radius: 999px;
	animation: girijapati-spin 0.85s linear infinite;
}

@keyframes girijapati-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.girijapati-preloader__spinner {
		animation-duration: 2s;
	}
}

.add_to_cart_button.gt-added {
	background: #14361f !important;
	border-color: #14361f !important;
	color: #ffffff !important;
	pointer-events: none;
}

.gt-toast {
	position: fixed;
	top: 24px;
	right: 24px;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 20px;
	border-radius: 10px;
	background: #1b4332;
	color: #ffffff;
	font-size: 14px;
	font-weight: 600;
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.2);
	opacity: 0;
	transform: translateY(-14px);
	transition: opacity 0.25s ease, transform 0.25s ease;
	pointer-events: none;
}

.gt-toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.gt-toast i {
	color: #d4af37;
	font-size: 18px;
}

@media (max-width: 480px) {
	.gt-toast {
		top: 16px;
		right: 16px;
		left: 16px;
		justify-content: center;
	}
}

/* "surface-container-low" isn't a defined color in the Tailwind CDN config
 * (only "surface-container-lowest" is), so bg-surface-container-low never
 * generates a real utility class and those sections render with no
 * background at all. Hardcoding it here fixes the "Why Choose Us" and
 * "Testimonials" sections. */
.bg-surface-container-low {
	background-color: #fcf7ee !important;
}

/*
 * Blocksy derives every generic button's color (WooCommerce cart/checkout
 * buttons, coupon/update-cart buttons, review-form submit, anything using
 * its default button styling) from --theme-button-background-initial-color,
 * which itself defaults to var(--theme-palette-color-1) — the site's
 * global accent, which was left on Blocksy's default blue. Overriding the
 * button-specific variables here (both declared on :root, so !important
 * wins outright) fixes every such button in one place, instead of patching
 * each one individually with per-element CSS.
 */
:root {
	--theme-button-background-initial-color: #1b4332 !important;
	--theme-button-background-hover-color: #14361f !important;
	--theme-button-text-initial-color: #ffffff !important;
	--theme-button-text-hover-color: #ffffff !important;
}

/*
 * Hardcoded container/gutter rules. Do not remove: the Tailwind CDN build
 * doesn't reliably generate the custom "max-w-container-max" /
 * "px-margin-desktop" utilities (they depend on the inline config script
 * loading and being scanned in time), which previously let page content
 * stretch full browser width with no side margins on large screens. These
 * rules guarantee the 1280px capped, gutter-padded layout regardless of
 * whether Tailwind's own utility generation kicks in.
 */
.max-w-container-max {
	max-width: 1280px !important;
}

.px-margin-desktop {
	padding-left: 2rem !important;
	padding-right: 2rem !important;
}

@media (max-width: 767px) {
	.px-margin-desktop {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}
}

/* Same fix for the other custom spacing keys (section-gap, gutter): the
 * CDN build doesn't reliably generate py-section-gap / gap-gutter either,
 * which was collapsing all vertical space between homepage sections. */
.py-section-gap {
	padding-top: 4rem !important;
	padding-bottom: 4rem !important;
}

.pt-section-gap {
	padding-top: 4rem !important;
}

.pb-section-gap {
	padding-bottom: 4rem !important;
}

@media (max-width: 767px) {
	.py-section-gap {
		padding-top: 2.5rem !important;
		padding-bottom: 2.5rem !important;
	}

	.pt-section-gap {
		padding-top: 2.5rem !important;
	}

	.pb-section-gap {
		padding-bottom: 2.5rem !important;
	}
}

.gap-gutter {
	gap: 1.5rem !important;
}

/* ==================================================================== */
/* Design tokens — shared by the header, footer and product page.        */
/* ==================================================================== */

:root {
	--gt-green:       #1b4332;
	--gt-green-dark:  #14361f;
	--gt-green-soft:  #2d5a45;
	--gt-gold:        #d4af37;
	--gt-gold-deep:   #9c6720;
	--gt-terracotta:  #b3261e;

	--gt-cream:       #fcf7ee;
	--gt-cream-2:     #f8f1e4;
	--gt-sand:        #f3ede0;
	--gt-sand-2:      #ece5d6;
	--gt-white:       #fffdf8;
	--gt-line:        #e6dcc8;
	--gt-line-soft:   #efe7d8;

	--gt-ink:         #1b1b1b;
	--gt-body:        #3f4a44;
	--gt-muted:       #6d7a72;

	--gt-ok:          #1f7a3f;

	--gt-sans:        "DM Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

	--gt-r-sm:        10px;
	--gt-r:           14px;
	--gt-r-lg:        20px;

	--gt-shadow-sm:   0 2px 8px rgba(27, 67, 50, 0.05);
	--gt-shadow:      0 8px 28px rgba(27, 67, 50, 0.07);
	--gt-shadow-lg:   0 20px 60px rgba(27, 67, 50, 0.11);
}

/* ------------------------------------------------------------------ */
/* Announcement bar                                                     */
/* ------------------------------------------------------------------ */

.girijapati-announcement-bar {
	position: relative;
	z-index: 998;
	background: var(--gt-green-dark);
	color: #f3ead6;
	font-family: var(--gt-sans);
	font-size: 12.5px;
	letter-spacing: 0.03em;
}

@media (min-width: 768px) {
	.girijapati-announcement-bar {
		position: sticky;
		top: 0;
		z-index: 1000;
	}
}

.girijapati-announcement-bar__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
	width: 100%;
	max-width: 1280px;
	min-height: 38px;
	margin: 0 auto;
	padding: 8px 2rem;
	box-sizing: border-box;
}

.girijapati-announcement-bar__track {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 30px;
	flex-wrap: wrap;
}

.girijapati-announcement-bar__item {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	white-space: nowrap;
	font-weight: 500;
}

.girijapati-announcement-bar__item i {
	color: var(--gt-gold);
	font-size: 12px;
}

.girijapati-announcement-bar__phone {
	display: none;
	align-items: center;
	gap: 7px;
	margin-left: auto;
	color: var(--gt-gold);
	font-weight: 700;
	white-space: nowrap;
	transition: color 0.2s ease;
}

.girijapati-announcement-bar__phone:hover {
	color: #f0d789;
}

@media (min-width: 1100px) {
	.girijapati-announcement-bar__phone {
		display: inline-flex;
	}
}

/* Below 768px the items rotate one at a time (ticker driven by header.php). */
@media (max-width: 767px) {
	.girijapati-announcement-bar__inner {
		padding-inline: 1.25rem;
		min-height: 34px;
	}

	.girijapati-announcement-bar__track {
		position: relative;
		height: 18px;
		flex: 1;
	}

	.girijapati-announcement-bar__item {
		position: absolute;
		inset: 0;
		justify-content: center;
		opacity: 0;
		transform: translateY(8px);
		transition: opacity 0.4s ease, transform 0.4s ease;
	}

	.girijapati-announcement-bar__item.is-active {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ------------------------------------------------------------------ */
/* Header shell                                                         */
/* ------------------------------------------------------------------ */

.girijapati-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background: rgba(252, 247, 238, 0.94);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid var(--gt-line-soft);
	font-family: var(--gt-sans);
}

@media (min-width: 768px) {
	.girijapati-header {
		top: 38px;
	}
}

.girijapati-header.is-scrolled {
	box-shadow: 0 4px 20px rgba(27, 67, 50, 0.07);
}

.girijapati-header-top-inner {
	display: flex;
	align-items: center;
	gap: 20px;
	width: 100%;
	max-width: 1280px;
	min-height: 76px;
	margin: 0 auto;
	padding: 10px 2rem;
	box-sizing: border-box;
	transition: min-height 0.25s ease, padding 0.25s ease;
}

.girijapati-header.is-scrolled .girijapati-header-top-inner {
	min-height: 64px;
	padding-block: 6px;
}

/* Logo */
.girijapati-site-logo {
	display: flex;
	align-items: center;
	gap: 11px;
	flex-shrink: 0;
}

/* Stacked wordmark beside the emblem, in both header and footer. */
.girijapati-brand-text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1.05;
}

.girijapati-brand-text__name {
	display: block;
	font-family: var(--gt-sans);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gt-green);
	white-space: nowrap;
}

.girijapati-brand-text__sub {
	display: block;
	margin-top: 2px;
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.34em;
	text-transform: uppercase;
	color: var(--gt-gold-deep);
	white-space: nowrap;
}

.girijapati-header.is-scrolled .girijapati-brand-text__name {
	font-size: 16px;
}

.girijapati-site-logo .custom-logo-link {
	display: inline-flex;
	align-items: center;
}

.girijapati-site-logo .custom-logo {
	width: auto;
	height: 52px;
	transition: height 0.25s ease;
}

.girijapati-header.is-scrolled .girijapati-site-logo .custom-logo {
	height: 42px;
}

/* Primary nav */
.girijapati-header-nav {
	display: flex;
	align-items: center;
	gap: 26px;
	margin: 0 auto;
}

.girijapati-primary-menu {
	display: flex;
	align-items: center;
	gap: 26px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.girijapati-primary-menu li {
	position: relative;
}

.girijapati-primary-menu a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 0;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--gt-green);
	white-space: nowrap;
	transition: color 0.2s ease;
}

.girijapati-primary-menu a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1.5px;
	background: var(--gt-gold);
	transition: width 0.22s ease;
}

.girijapati-primary-menu a:hover::after,
.girijapati-primary-menu .current-menu-item > a::after,
.girijapati-primary-menu .current_page_item > a::after {
	width: 100%;
}

.girijapati-primary-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 60;
	min-width: 210px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: var(--gt-white);
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r);
	box-shadow: var(--gt-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.girijapati-primary-menu li:hover > .sub-menu,
.girijapati-primary-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.girijapati-primary-menu .sub-menu a {
	display: block;
	padding: 9px 12px;
	border-radius: var(--gt-r-sm);
	font-size: 14px;
}

.girijapati-primary-menu .sub-menu a::after {
	display: none;
}

.girijapati-primary-menu .sub-menu a:hover {
	background: var(--gt-sand);
	color: var(--gt-gold-deep);
}

/* Categories mega menu */
.girijapati-categories-menu {
	position: relative;
}

.girijapati-categories-trigger {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 6px 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--gt-green);
	cursor: pointer;
	white-space: nowrap;
}

.girijapati-categories-trigger i {
	font-size: 10px;
	opacity: 0.65;
	transition: transform 0.22s ease;
}

.girijapati-categories-trigger:hover {
	color: var(--gt-gold-deep);
}

.girijapati-categories-trigger[aria-expanded="true"] i {
	transform: rotate(180deg);
}

.girijapati-categories-panel {
	position: absolute;
	top: calc(100% + 14px);
	left: 50%;
	z-index: 60;
	width: min(560px, calc(100vw - 40px));
	padding: 18px;
	background: var(--gt-white);
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-lg);
	box-shadow: var(--gt-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 10px);
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

.girijapati-categories-panel.is-open {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}

.girijapati-categories-panel__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px;
}

.girijapati-categories-panel__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 11px 14px;
	border-radius: var(--gt-r-sm);
	font-size: 14px;
	font-weight: 500;
	color: var(--gt-green);
	transition: background 0.18s ease, color 0.18s ease;
}

.girijapati-categories-panel__link:hover {
	background: var(--gt-sand);
	color: var(--gt-gold-deep);
}

.girijapati-categories-panel__count {
	min-width: 22px;
	padding: 2px 7px;
	border-radius: 999px;
	background: var(--gt-sand-2);
	color: var(--gt-muted);
	font-size: 11px;
	font-weight: 700;
	text-align: center;
}

.girijapati-categories-panel__all {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--gt-line-soft);
	width: 100%;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--gt-gold-deep);
}

.girijapati-categories-panel__all i {
	font-size: 12px;
	transition: transform 0.2s ease;
}

.girijapati-categories-panel__all:hover i {
	transform: translateX(4px);
}

.girijapati-categories-panel__empty {
	margin: 0;
	font-size: 14px;
	color: var(--gt-muted);
}

/* Search */
.girijapati-header-search {
	display: flex;
	align-items: center;
	gap: 6px;
	width: 250px;
	height: 44px;
	padding: 5px 5px 5px 18px;
	background: var(--gt-white);
	border: 1px solid var(--gt-line);
	border-radius: 999px;
	flex-shrink: 0;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.girijapati-header-search:focus-within {
	border-color: var(--gt-gold);
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.14);
}

.girijapati-header-search__input {
	flex: 1;
	min-width: 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 14px;
	color: var(--gt-ink);
	outline: none;
}

.girijapati-header-search__input::placeholder {
	color: #9aa49e;
}

.girijapati-header-search__button {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	flex-shrink: 0;
	border: 0;
	border-radius: 50%;
	background: var(--gt-green);
	color: #fff;
	font-size: 12px;
	cursor: pointer;
	transition: background 0.2s ease;
}

.girijapati-header-search__button:hover {
	background: var(--gt-green-dark);
}

/*
 * Blocksy styles every form control globally — it was giving this input a
 * 1px grey border and both the input and the button a 3px radius, which is
 * what made a pill-shaped search box read as two stacked rectangles. These
 * selectors carry the element type as well as the class so they outrank it
 * without needing !important on the whole block.
 */
.girijapati-header-search input[type="search"].girijapati-header-search__input {
	height: auto;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
}

.girijapati-header-search input[type="search"].girijapati-header-search__input:focus {
	border: 0;
	box-shadow: none;
	outline: none;
}

/* Chrome's built-in search clear/decoration buttons sit oddly in a pill. */
.girijapati-header-search input[type="search"]::-webkit-search-decoration,
.girijapati-header-search input[type="search"]::-webkit-search-cancel-button,
.girijapati-header-search input[type="search"]::-webkit-search-results-button {
	-webkit-appearance: none;
	appearance: none;
}

.girijapati-header-search button.girijapati-header-search__button {
	width: 34px;
	height: 34px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	line-height: 1;
}

/* Header actions */
.girijapati-header-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

.girijapati-header-icon {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid transparent;
	border-radius: 50%;
	background: none;
	color: var(--gt-green);
	font-size: 16px;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.girijapati-header-icon:hover {
	background: var(--gt-sand);
	border-color: var(--gt-line);
	color: var(--gt-gold-deep);
}

.girijapati-header-search-toggle {
	display: none;
}

/* Cart */
.girijapati-cart-panel-wrapper {
	position: relative;
}

.girijapati-cart-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 10px 17px;
	border: 1px solid var(--gt-line);
	border-radius: 999px;
	background: var(--gt-white);
	font-size: 14px;
	font-weight: 600;
	color: var(--gt-green);
	transition: border-color 0.2s ease, background 0.2s ease;
}

.girijapati-cart-button:hover {
	border-color: var(--gt-gold);
	background: var(--gt-sand);
}

.girijapati-cart-count {
	display: grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding-inline: 5px;
	border-radius: 999px;
	background: var(--gt-gold);
	color: #3d2c05;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}

/* Mini cart dropdown */
.girijapati-cart-panel {
	position: absolute;
	top: calc(100% + 14px);
	right: 0;
	z-index: 60;
	width: 330px;
	padding: 18px;
	background: var(--gt-white);
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-lg);
	box-shadow: var(--gt-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

.girijapati-cart-panel-wrapper:hover .girijapati-cart-panel,
.girijapati-cart-panel-wrapper:focus-within .girijapati-cart-panel {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.girijapati-cart-panel .woocommerce-mini-cart__empty-message {
	margin: 0;
	padding: 14px 0;
	text-align: center;
	font-size: 14px;
	color: var(--gt-muted);
}

.girijapati-cart-panel ul.woocommerce-mini-cart {
	margin: 0;
	padding: 0;
	list-style: none;
	max-height: 300px;
	overflow-y: auto;
}

.girijapati-cart-panel .woocommerce-mini-cart-item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--gt-line-soft);
}

.girijapati-cart-panel .woocommerce-mini-cart-item:last-child {
	border-bottom: 0;
}

.girijapati-cart-panel .woocommerce-mini-cart-item img {
	width: 52px;
	height: 52px;
	flex-shrink: 0;
	border-radius: var(--gt-r-sm);
	border: 1px solid var(--gt-line);
	object-fit: cover;
	order: -1;
}

.girijapati-cart-panel .woocommerce-mini-cart-item a:not(.remove) {
	display: block;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--gt-green);
	line-height: 1.35;
}

.girijapati-cart-panel .woocommerce-mini-cart-item .quantity {
	display: block;
	margin-top: 3px;
	font-size: 12.5px;
	color: var(--gt-muted);
}

.girijapati-cart-panel .woocommerce-mini-cart-item a.remove {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--gt-sand);
	color: var(--gt-terracotta);
	font-size: 14px;
	line-height: 1;
	text-decoration: none;
}

.girijapati-cart-panel .woocommerce-mini-cart-item a.remove:hover {
	background: var(--gt-terracotta);
	color: #fff;
}

.girijapati-cart-panel .woocommerce-mini-cart__total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 14px 0;
	padding-top: 14px;
	border-top: 1px solid var(--gt-line);
	font-size: 14px;
	font-weight: 700;
	color: var(--gt-green);
}

.girijapati-cart-panel .woocommerce-mini-cart__buttons {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin: 0;
}

.girijapati-cart-panel .woocommerce-mini-cart__buttons a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 11px 12px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	text-align: center;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.girijapati-cart-panel .woocommerce-mini-cart__buttons a:not(.checkout),
.girijapati-cart-panel .woocommerce-mini-cart__buttons a:not(.checkout):visited {
	border: 1px solid var(--gt-line);
	background: transparent;
	color: var(--gt-green);
}

.girijapati-cart-panel .woocommerce-mini-cart__buttons a:not(.checkout):hover {
	border-color: var(--gt-gold);
	background: var(--gt-sand);
}

.girijapati-cart-panel .woocommerce-mini-cart__buttons a.checkout,
.girijapati-cart-panel .woocommerce-mini-cart__buttons a.checkout:visited {
	border: 1px solid var(--gt-green);
	background: var(--gt-green);
	color: #fff;
}

.girijapati-cart-panel .woocommerce-mini-cart__buttons a.checkout:hover {
	background: var(--gt-green-dark);
	border-color: var(--gt-green-dark);
}

/* Hamburger */
.girijapati-hamburger {
	display: none;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--gt-line);
	border-radius: 50%;
	background: var(--gt-white);
	color: var(--gt-green);
	font-size: 16px;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.girijapati-hamburger:hover {
	background: var(--gt-sand);
	border-color: var(--gt-gold);
}

/* Mobile search row */
.girijapati-header-search-mobile-row {
	display: none;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.28s ease, padding 0.28s ease;
}

.girijapati-header-search-mobile-row.is-open {
	max-height: 90px;
	padding: 0 1.25rem 14px;
}

.girijapati-header-search--mobile {
	width: 100%;
}

/* ------------------------------------------------------------------ */
/* Mobile nav (hamburger + slide-in drawer)                             */
/* ------------------------------------------------------------------ */

.girijapati-mobile-nav-overlay {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(20, 30, 24, 0.5);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.girijapati-mobile-nav-overlay.is-open {
	opacity: 1;
	visibility: visible;
}

.girijapati-mobile-nav {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 1001;
	width: min(340px, 88vw);
	display: flex;
	flex-direction: column;
	padding: 20px;
	background: var(--gt-cream);
	box-shadow: -12px 0 40px rgba(27, 67, 50, 0.18);
	overflow-y: auto;
	transform: translateX(100%);
	transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	font-family: var(--gt-sans);
}

.girijapati-mobile-nav.is-open {
	transform: translateX(0);
}

body.girijapati-nav-open {
	overflow: hidden;
}

.girijapati-mobile-nav-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-bottom: 18px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--gt-line);
}

.girijapati-mobile-nav-header .girijapati-site-logo .custom-logo {
	height: 42px;
}

.girijapati-mobile-nav-close {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border: 1px solid var(--gt-line);
	border-radius: 50%;
	background: var(--gt-white);
	color: var(--gt-green);
	font-size: 16px;
	cursor: pointer;
}

.girijapati-mobile-nav-close:hover {
	background: var(--gt-sand);
}

.girijapati-mobile-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.girijapati-mobile-menu li {
	border-bottom: 1px solid var(--gt-line-soft);
}

.girijapati-mobile-menu a {
	display: block;
	padding: 14px 4px;
	font-size: 15px;
	font-weight: 500;
	color: var(--gt-green);
}

.girijapati-mobile-menu a:hover {
	color: var(--gt-gold-deep);
}

.girijapati-mobile-menu .sub-menu {
	margin: 0 0 8px;
	padding: 0 0 0 14px;
	list-style: none;
}

.girijapati-mobile-menu .sub-menu li {
	border-bottom: 0;
}

.girijapati-mobile-menu .sub-menu a {
	padding: 9px 4px;
	font-size: 14px;
	color: var(--gt-muted);
}

.girijapati-mobile-nav-categories {
	margin-top: 22px;
}

.girijapati-mobile-nav-categories__label {
	margin: 0 0 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gt-gold-deep);
}

.girijapati-mobile-nav-contact {
	display: grid;
	gap: 10px;
	margin-top: auto;
	padding-top: 24px;
}

.girijapati-mobile-nav-whatsapp,
.girijapati-mobile-nav-call {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 13px 18px;
	border-radius: 999px;
	font-size: 14.5px;
	font-weight: 700;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.girijapati-mobile-nav-whatsapp {
	background: #25d366;
	color: #06331a;
}

.girijapati-mobile-nav-whatsapp:hover {
	background: #1fb857;
}

.girijapati-mobile-nav-call {
	border: 1px solid var(--gt-line);
	background: var(--gt-white);
	color: var(--gt-green);
}

.girijapati-mobile-nav-call:hover {
	border-color: var(--gt-gold);
	background: var(--gt-sand);
}

/* ------------------------------------------------------------------ */
/* Values ribbon (above the footer)                                     */
/* ------------------------------------------------------------------ */

.girijapati-ribbon {
	background: var(--gt-green-dark);
	color: #e8e2d4;
	padding-block: 30px;
	font-family: var(--gt-sans);
}

.girijapati-ribbon__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}

.girijapati-ribbon__item {
	display: flex;
	align-items: center;
	gap: 14px;
}

.girijapati-ribbon__item i {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	border: 1px solid rgba(212, 175, 55, 0.4);
	border-radius: 50%;
	color: var(--gt-gold);
	font-size: 16px;
}

.girijapati-ribbon__item b {
	display: block;
	font-size: 14.5px;
	font-weight: 700;
	color: #fff;
	line-height: 1.25;
}

.girijapati-ribbon__item small {
	font-size: 12px;
	color: rgba(240, 235, 222, 0.68);
}

/* ------------------------------------------------------------------ */
/* Footer                                                               */
/* ------------------------------------------------------------------ */

.girijapati-container {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding-inline: 2rem;
	box-sizing: border-box;
}

.girijapati-footer {
	background: var(--gt-green);
	color: rgba(240, 235, 222, 0.78);
	border-top: 3px solid var(--gt-gold);
	font-family: var(--gt-sans);
}

.girijapati-footer-grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr 1.4fr;
	gap: 36px;
	padding-block: 62px;
}

.girijapati-footer a {
	color: inherit;
	font-size: 14px;
	transition: color 0.18s ease;
}

.girijapati-footer a:hover {
	color: var(--gt-gold);
}

.girijapati-footer h4 {
	margin: 0 0 18px;
	font-family: var(--gt-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gt-gold);
}

.girijapati-footer-logo {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}

/*
 * The emblem is dark green and gold on a transparent ground, so on the
 * green footer it all but disappears. A cream disc behind it restores the
 * contrast it has in the header.
 */
.girijapati-footer-logo .custom-logo-link {
	display: grid;
	place-items: center;
	width: 62px;
	height: 62px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--gt-cream);
	box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.45);
}

.girijapati-footer-logo .custom-logo {
	width: auto;
	height: 50px;
	margin: 0;
}

.girijapati-footer-logo .girijapati-brand-text__name {
	color: #ffffff;
}

.girijapati-footer-logo .girijapati-brand-text__sub {
	color: var(--gt-gold);
}

.girijapati-footer-about__text {
	margin: 0;
	max-width: 300px;
	font-size: 13.5px;
	line-height: 1.7;
}

.girijapati-footer-social {
	display: flex;
	gap: 10px;
	margin-top: 18px;
}

.girijapati-footer-social a {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(212, 175, 55, 0.34);
	border-radius: 50%;
	color: var(--gt-gold);
	font-size: 14px;
	transition: background 0.2s ease, color 0.2s ease;
}

.girijapati-footer-social a:hover {
	background: var(--gt-gold);
	color: var(--gt-green-dark);
}

.girijapati-header-top {
	position: relative;
}

.girijapati-footer-about,
.girijapati-footer-col {
	min-width: 0;
}

.girijapati-footer-menu,
.girijapati-footer-contact,
.girijapati-policy-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.girijapati-footer-menu {
	display: grid;
	gap: 11px;
}

.girijapati-footer-contact {
	display: grid;
	gap: 12px;
}

.girijapati-footer-contact li {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	font-size: 13.5px;
	line-height: 1.55;
}

.girijapati-footer-contact i {
	width: 15px;
	flex-shrink: 0;
	margin-top: 4px;
	color: var(--gt-gold);
	font-size: 13px;
}

.girijapati-footer-payments {
	margin-top: 22px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.girijapati-footer-payments__icons {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 26px;
	color: rgba(240, 235, 222, 0.72);
}

/* Payment methods that have no brand mark are labelled, not iconified —
 * a generic glyph beside Visa/Mastercard reads as a fake logo. */
.girijapati-pay-pill {
	padding: 4px 10px;
	border: 1px solid rgba(240, 235, 222, 0.35);
	border-radius: 5px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.5;
	color: rgba(240, 235, 222, 0.78);
}

.girijapati-footer-bottom {
	border-top: 1px solid rgba(212, 175, 55, 0.2);
	background: rgba(0, 0, 0, 0.14);
}

.girijapati-footer-bottom__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
	padding-block: 20px;
	font-size: 12.5px;
}

.girijapati-footer-bottom__inner p {
	margin: 0;
}

.girijapati-policy-menu {
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
}

.girijapati-policy-menu a {
	font-size: 12.5px;
}

/* ------------------------------------------------------------------ */
/* Header + footer responsive                                           */
/* ------------------------------------------------------------------ */

@media (max-width: 1200px) {
	.girijapati-header-search {
		width: 200px;
	}

	.girijapati-header-nav,
	.girijapati-primary-menu {
		gap: 18px;
	}
}

@media (max-width: 1024px) {
	.girijapati-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px;
	}

	.girijapati-footer-about,
	.girijapati-footer-col--contact {
		grid-column: 1 / -1;
	}

	.girijapati-ribbon__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	.girijapati-header-nav,
	.girijapati-header-search {
		display: none;
	}

	.girijapati-header-top-inner {
		justify-content: space-between;
		gap: 10px;
	}

	.girijapati-header-actions {
		margin-left: auto;
	}

	.girijapati-header-search-toggle,
	.girijapati-header-search-mobile-row {
		display: block;
	}

	.girijapati-header-search-toggle {
		display: grid;
	}

	.girijapati-hamburger {
		display: grid;
	}
}

@media (max-width: 767px) {
	.girijapati-container,
	.girijapati-header-top-inner,
	.girijapati-announcement-bar__inner {
		padding-inline: 1.25rem;
	}

	/*
	 * At 375px the logo plus four action controls measured 400px wide and
	 * pushed the whole page into horizontal scroll. The account link is
	 * already in the drawer menu, so it goes here and the rest tightens up.
	 */
	.girijapati-header-icon--account {
		display: none;
	}

	.girijapati-header-actions {
		gap: 6px;
	}

	.girijapati-header-icon,
	.girijapati-hamburger {
		width: 38px;
		height: 38px;
	}

	.girijapati-header-top-inner {
		gap: 8px;
	}

	.girijapati-site-logo {
		min-width: 0;
		gap: 9px;
	}

	.girijapati-brand-text__name {
		white-space: nowrap;
	}

	.girijapati-site-logo .girijapati-brand-text__sub {
		display: none;
	}

	.girijapati-site-logo .girijapati-brand-text__name {
		font-size: 15px;
	}

	.girijapati-header-top-inner {
		min-height: 66px;
	}

	.girijapati-site-logo .custom-logo {
		height: 44px;
	}

	.girijapati-cart-button {
		padding: 9px 12px;
	}

	.girijapati-cart-button__label {
		display: none;
	}

	.girijapati-cart-panel {
		display: none;
	}

	.girijapati-footer-grid {
		grid-template-columns: 1fr;
		gap: 30px;
		padding-block: 44px;
	}

	.girijapati-footer-about__text {
		max-width: none;
	}

	.girijapati-footer-bottom__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.girijapati-ribbon__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

/* ------------------------------------------------------------------ */
/* Homepage                                                            */
/* ------------------------------------------------------------------ */

/*
 * Hero. The artwork has its subject on the left and open sky on the
 * right, so the copy sits right and a left-to-right scrim keeps it
 * readable without washing the photograph out.
 */
.gt-home-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: min(76vh, 660px);
	overflow: hidden;
	background: var(--gt-cream);
	isolation: isolate;
}

.gt-home-hero__image {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 28% center;
}

.gt-home-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(
		100deg,
		rgba(252, 247, 238, 0) 28%,
		rgba(252, 247, 238, 0.72) 50%,
		rgba(252, 247, 238, 0.95) 68%
	);
}

.gt-home-hero__inner {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding: clamp(48px, 7vw, 96px) 2rem;
	flex: 1;
	align-items: center;
}

.gt-home-hero__content {
	max-width: 520px;
}

.gt-home-hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gt-gold-deep);
}

.gt-home-hero__title {
	margin: 0 0 18px;
	font-family: var(--gt-sans);
	font-size: clamp(34px, 5.2vw, 58px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.03em;
	color: var(--gt-green);
}

.gt-home-hero__title em {
	font-style: normal;
	color: var(--gt-gold-deep);
}

.gt-home-hero__text {
	margin: 0 0 28px;
	max-width: 46ch;
	font-size: clamp(15px, 1.5vw, 17px);
	line-height: 1.7;
	color: var(--gt-body);
}

.gt-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 30px;
}

.gt-home-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 15px 28px;
	border: 1.5px solid var(--gt-green);
	border-radius: 999px;
	background: var(--gt-green);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	box-shadow: 0 10px 26px rgba(27, 67, 50, 0.22);
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.gt-home-hero__cta:hover {
	background: var(--gt-green-dark);
	border-color: var(--gt-green-dark);
	color: #fff;
	transform: translateY(-2px);
}

.gt-home-hero__cta i { font-size: 13px; transition: transform 0.2s ease; }
.gt-home-hero__cta:hover i { transform: translateX(3px); }

.gt-home-hero__cta--ghost {
	background: rgba(255, 253, 248, 0.9);
	border-color: var(--gt-line);
	color: var(--gt-green);
	box-shadow: none;
}

.gt-home-hero__cta--ghost:hover {
	background: #fff;
	border-color: var(--gt-gold);
	color: var(--gt-green);
}

.gt-home-hero__cta--ghost i { color: #128c4a; font-size: 16px; }
.gt-home-hero__cta--ghost:hover i { transform: none; }

/*
 * Bottom strip rather than a list hanging off the copy — it reads as a
 * band of guarantees under the whole hero, and stays legible over the
 * photograph because it carries its own translucent ground.
 */
.gt-home-hero__points {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 36px;
	width: 100%;
	margin: 0;
	padding: 16px 2rem;
	list-style: none;
	background: rgba(252, 247, 238, 0.9);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-top: 1px solid var(--gt-line);
}

.gt-home-hero__points li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--gt-green);
}

.gt-home-hero__points i { color: var(--gt-gold-deep); font-size: 14px; }

/*
 * Tablet: a true split rather than an overlay. At this width the couple
 * occupies the left half of the frame and the copy needs the right half,
 * so any scrim wide enough to make the text readable also washes over the
 * woman's face. Giving each its own column sidesteps the fight entirely.
 */
@media (min-width: 768px) and (max-width: 1100px) {
	.gt-home-hero {
		display: grid;
		grid-template-columns: 44% 1fr;
		grid-template-rows: 1fr auto;
		min-height: min(62vh, 540px);
	}

	.gt-home-hero__image {
		position: relative;
		z-index: 0;
		grid-column: 1;
		grid-row: 1;
		width: 100%;
		height: 100%;
		object-position: 24% center;
	}

	/* No gradient needed once the text has its own ground. */
	.gt-home-hero::after {
		display: none;
	}

	.gt-home-hero__inner {
		grid-column: 2;
		grid-row: 1;
		justify-content: flex-start;
		padding: 40px 2rem;
	}

	.gt-home-hero__content {
		max-width: none;
	}

	.gt-home-hero__points {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.gt-home-hero__title { font-size: clamp(28px, 4vw, 38px); }
	.gt-home-hero__text { font-size: 14.5px; margin-bottom: 22px; }
	.gt-home-hero__cta { padding: 13px 20px; font-size: 14px; }
	.gt-home-hero__actions { gap: 10px; }
}

@media (max-width: 767px) {
	/*
	 * Phones crop the photo badly and the scrim can't rescue text over a
	 * face, so the image becomes a banner and the copy sits below it.
	 */
	.gt-home-hero {
		display: block;
		min-height: 0;
	}

	.gt-home-hero__image {
		position: relative;
		z-index: 0;
		height: clamp(240px, 46vw, 340px);
		/* Bias the crop toward the couple — centring wastes half the frame
		   on empty sky at phone widths. */
		object-position: 24% center;
	}

	.gt-home-hero::after { display: none; }

	.gt-home-hero__inner {
		justify-content: flex-start;
		padding: 26px 1.25rem 34px;
		background: var(--gt-cream);
	}

	.gt-home-hero__content { max-width: none; }

	.gt-home-hero__title {
		font-size: clamp(27px, 8vw, 34px);
		margin-bottom: 14px;
	}

	.gt-home-hero__text {
		margin-bottom: 22px;
		font-size: 15px;
		line-height: 1.6;
	}

	/*
	 * One row rather than two stacked full-width buttons: the pair used to
	 * cost ~120px of vertical space before a visitor saw anything else.
	 * nowrap + shrinkable basis keeps them on a single line at 360px.
	 */
	.gt-home-hero__actions {
		flex-wrap: nowrap;
		gap: 8px;
		margin-bottom: 22px;
	}

	.gt-home-hero__cta {
		flex: 1 1 0;
		min-width: 0;
		justify-content: center;
		padding: 14px 12px;
		font-size: 14px;
		white-space: nowrap;
	}

	.gt-home-hero__cta--ghost {
		flex: 0 1 auto;
		padding-inline: 16px;
	}

	/*
	 * Stacked rather than wrapped: as a wrapping row the third item ran
	 * under the floating WhatsApp launcher and got clipped mid-word.
	 */
	.gt-home-hero__points {
		flex-direction: column;
		justify-content: flex-start;
		gap: 10px;
		padding: 16px 1.25rem;
		padding-right: 76px;
	}

	.gt-home-hero__points li { font-size: 13px; }
}

@media (max-width: 420px) {
	.gt-home-hero__eyebrow { font-size: 10.5px; letter-spacing: 0.16em; }
}

/* ------------------------------------------------------------------ */
/* Visarjan proof                                                      */
/* ------------------------------------------------------------------ */

.gt-dissolve {
	position: relative;
	padding-block: clamp(52px, 7vw, 90px);
	background: var(--gt-green);
	color: #e8e2d4;
	overflow: hidden;
}

/* Warm light bleeding in from the corners, so a large flat green band
   doesn't read as a solid slab behind the photographs. */
.gt-dissolve::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(700px 340px at 10% 0%, rgba(212, 175, 55, 0.14), transparent 62%),
		radial-gradient(620px 320px at 90% 100%, rgba(212, 175, 55, 0.10), transparent 58%);
}

.gt-dissolve__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 2rem;
}

.gt-dissolve__head {
	max-width: 660px;
	margin: 0 auto clamp(32px, 4vw, 50px);
	text-align: center;
}

.gt-dissolve__eyebrow {
	margin: 0 0 10px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gt-gold);
}

.gt-dissolve__head h2 {
	margin: 0 0 14px;
	font-family: var(--gt-sans);
	font-size: clamp(26px, 3.8vw, 42px);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.025em;
	color: #ffffff;
}

.gt-dissolve__intro {
	margin: 0;
	font-size: clamp(14.5px, 1.4vw, 16.5px);
	line-height: 1.7;
	color: rgba(240, 235, 222, 0.82);
}

.gt-dissolve__steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.gt-dissolve__step {
	position: relative;
	text-align: center;
}

.gt-dissolve__media {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 3;
	border: 1px solid rgba(212, 175, 55, 0.32);
	border-radius: var(--gt-r-lg);
	box-shadow: 0 16px 38px rgba(0, 0, 0, 0.28);
	overflow: hidden;
}

.gt-dissolve__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.55s ease;
}

.gt-dissolve__step:hover .gt-dissolve__media img { transform: scale(1.06); }

.gt-dissolve__num {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin: -20px auto 14px;
	border-radius: 50%;
	background: var(--gt-gold);
	color: #33260a;
	font-size: 17px;
	font-weight: 700;
	box-shadow: 0 0 0 6px var(--gt-green);
}

.gt-dissolve__step h3 {
	margin: 0 0 6px;
	font-family: var(--gt-sans);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #ffffff;
}

.gt-dissolve__step p {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.6;
	color: rgba(240, 235, 222, 0.78);
}

.gt-dissolve__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	flex-wrap: wrap;
	margin-top: clamp(34px, 4vw, 52px);
	padding: 24px 28px;
	border: 1px solid rgba(212, 175, 55, 0.28);
	border-radius: var(--gt-r-lg);
	background: rgba(255, 255, 255, 0.05);
}

.gt-dissolve__foot p {
	flex: 1 1 420px;
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
	color: #f2ecdd;
}

.gt-dissolve__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
	padding: 14px 26px;
	border-radius: 999px;
	background: var(--gt-gold);
	color: #33260a;
	font-size: 14.5px;
	font-weight: 700;
	transition: filter 0.2s ease, transform 0.2s ease;
}

.gt-dissolve__cta:hover { filter: brightness(1.06); transform: translateY(-2px); color: #33260a; }
.gt-dissolve__cta i { font-size: 12px; transition: transform 0.2s ease; }
.gt-dissolve__cta:hover i { transform: translateX(3px); }

@media (max-width: 900px) {
	.gt-dissolve__inner { padding-inline: 1.25rem; }
	.gt-dissolve__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 18px; }
	.gt-dissolve__foot {
		flex-direction: column;
		align-items: stretch;
		padding: 20px;
	}

	.gt-dissolve__foot p {
		flex: 0 1 auto;
		font-size: 14.5px;
	}

	.gt-dissolve__cta {
		width: 100%;
		justify-content: center;
	}
}

@media (max-width: 520px) {
	.gt-dissolve__steps { grid-template-columns: 1fr; gap: 30px; }
}

/* ------------------------------------------------------------------ */
/* Testimonials                                                        */
/* ------------------------------------------------------------------ */

.gt-voices {
	padding-block: clamp(52px, 7vw, 88px);
	background: var(--gt-sand);
}

.gt-voices__inner {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 2rem;
}

.gt-voices__head {
	max-width: 620px;
	margin: 0 auto clamp(32px, 4vw, 48px);
	text-align: center;
}

.gt-voices__eyebrow {
	margin: 0 0 10px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gt-gold-deep);
}

.gt-voices__head h2 {
	margin: 0;
	font-family: var(--gt-sans);
	font-size: clamp(26px, 3.6vw, 40px);
	font-weight: 700;
	letter-spacing: -0.025em;
	color: var(--gt-green);
}

.gt-voices__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.gt-voice {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 30px 28px 26px;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-lg);
	background: var(--gt-white);
	transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.gt-voice:hover {
	transform: translateY(-4px);
	border-color: var(--gt-gold);
	box-shadow: var(--gt-shadow);
}

/* Oversized quote glyph, kept decorative and out of the text flow. */
.gt-voice__mark {
	position: absolute;
	top: 10px;
	right: 24px;
	font-size: 76px;
	line-height: 1;
	color: var(--gt-gold);
	opacity: 0.22;
	pointer-events: none;
}

.gt-voice__stars {
	display: flex;
	gap: 3px;
	color: var(--gt-gold);
	font-size: 13px;
}

.gt-voice blockquote {
	margin: 0;
	flex: 1;
	font-size: 15px;
	line-height: 1.7;
	color: var(--gt-body);
}

.gt-voice__author {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 16px;
	border-top: 1px solid var(--gt-line-soft);
}

.gt-voice__avatar {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--gt-sand);
	color: var(--gt-green);
	font-size: 17px;
	font-weight: 700;
	text-transform: uppercase;
}

.gt-voice__author b {
	display: block;
	font-size: 14.5px;
	font-weight: 700;
	color: var(--gt-green);
}

.gt-voice__author small {
	font-size: 12.5px;
	color: var(--gt-muted);
}

@media (max-width: 900px) {
	.gt-voices__grid { grid-template-columns: 1fr; gap: 16px; }
	.gt-voices__inner { padding-inline: 1.25rem; }
}

/* Kept: used by any remaining horizontal scrollers. */
.girijapati-hide-scrollbar::-webkit-scrollbar {
	display: none;
}

.girijapati-hide-scrollbar {
	-ms-overflow-style: none;
	scrollbar-width: none;
}

/* =========================================================
	Girijapati Trades — Single product page
	Rebuilt lean: gallery + buy panel, tabbed info, assurance
	strip, FAQ, reviews, related products. Every rule here is
	used by woocommerce/single-product.php.
	========================================================= */

.gt-product,
.gt-product *,
.gt-product *::before,
.gt-product *::after {
	box-sizing: border-box;
}

.gt-product {
	/* Legacy aliases kept for the WooCommerce review/notice styles below. */
	--gt-green-950: #103c27;
	--gt-green-900: #164b32;
	--gt-green-800: #1e5d3f;
	--gt-green-100: #e8f0e9;
	--gt-gold-700: #95651d;
	--gt-gold-500: #c59643;
	--gt-gold-200: #ead9b5;
	--gt-ivory: #fbf7ee;
	--gt-paper: #fffdf8;
	--gt-warm: #f3ead9;

	overflow-x: clip;
	background: var(--gt-cream);
	color: var(--gt-body);
	font-family: var(--gt-sans);
	font-size: 16px;
	line-height: 1.65;
}

.gt-product img { display: block; max-width: 100%; height: auto; }
.gt-product a { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.gt-product button { cursor: pointer; }
.gt-product button, .gt-product input, .gt-product select, .gt-product textarea { font: inherit; color: inherit; }

.gt-product h1,
.gt-product h2,
.gt-product h3 {
	margin: 0 0 0.5em;
	font-family: var(--gt-sans);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.025em;
	color: var(--gt-green);
}

.gt-product p { margin: 0 0 1em; }
.gt-product p:last-child { margin-bottom: 0; }

.gt-product :focus-visible {
	outline: 2px solid var(--gt-gold-deep);
	outline-offset: 3px;
	border-radius: 4px;
}

/* --- Layout ---------------------------------------------------------- */

.gt-product .gt-wrap {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 2rem;
}

.gt-product .gt-wrap--narrow { max-width: 900px; }

.gt-section { padding-block: clamp(40px, 5.5vw, 72px); }
.gt-section--sand { background: var(--gt-sand); }
.gt-section--white { background: var(--gt-white); }

.gt-head { margin-bottom: clamp(24px, 3vw, 38px); text-align: center; }
.gt-head h2 { margin: 0; font-size: clamp(24px, 3.2vw, 34px); }

/* --- Buttons --------------------------------------------------------- */

.gt-product .gt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 15px 26px;
	border: 1.5px solid transparent;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.gt-product .gt-btn:active { transform: translateY(1px); }
.gt-product .gt-btn--block { width: 100%; }

.gt-product .gt-btn--primary,
.gt-product .gt-btn--primary:visited {
	background: var(--gt-green);
	color: #fff;
	box-shadow: 0 8px 22px rgba(27, 67, 50, 0.22);
}

.gt-product .gt-btn--primary:hover { background: var(--gt-green-dark); color: #fff; }

.gt-product .gt-btn--gold,
.gt-product .gt-btn--gold:visited {
	background: var(--gt-gold);
	color: #3d2c05;
	box-shadow: 0 8px 22px rgba(184, 140, 40, 0.24);
}

.gt-product .gt-btn--gold:hover { filter: brightness(1.05); color: #3d2c05; }

/* --- Breadcrumb ------------------------------------------------------ */

.gt-crumb {
	padding-block: 18px 4px;
	font-size: 12.5px;
	color: var(--gt-muted);
}

.gt-crumb a:hover { color: var(--gt-gold-deep); }
.gt-crumb span { margin-inline: 7px; opacity: 0.45; }

/* --- Gallery --------------------------------------------------------- */

.gt-buy {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(26px, 3.4vw, 52px);
	align-items: start;
	padding-block: 22px clamp(36px, 4.5vw, 60px);
}

.gt-gallery {
	position: sticky;
	top: 130px;
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr);
	gap: 12px;
}

.gt-gallery__rail {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-height: 560px;
	overflow-y: auto;
	scrollbar-width: none;
}

.gt-gallery__rail::-webkit-scrollbar { display: none; }

.gt-gallery__thumb {
	flex: 0 0 auto;
	padding: 0;
	aspect-ratio: 1 / 1;
	border: 1.5px solid var(--gt-line);
	border-radius: var(--gt-r-sm);
	background: var(--gt-white);
	overflow: hidden;
	transition: border-color 0.2s ease;
}

.gt-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gt-gallery__thumb.is-active { border-color: var(--gt-green); }

.gt-gallery__stage {
	position: relative;
	aspect-ratio: 1 / 1;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-lg);
	background: var(--gt-white);
	overflow: hidden;
}

.gt-gallery__stage img { width: 100%; height: 100%; object-fit: cover; }

.gt-flag {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--gt-terracotta);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.gt-zoom {
	position: absolute;
	right: 14px;
	bottom: 14px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--gt-line);
	border-radius: 50%;
	background: rgba(255, 253, 248, 0.94);
	color: var(--gt-green);
	font-size: 13px;
	transition: background 0.2s ease, color 0.2s ease;
}

.gt-zoom:hover { background: var(--gt-green); color: #fff; }

/* --- Buy panel ------------------------------------------------------- */

.gt-buycard__title {
	margin-bottom: 12px;
	font-size: clamp(25px, 3.2vw, 34px);
	line-height: 1.2;
}

.gt-rating { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.gt-stars { color: #d79d2b; font-size: 15px; letter-spacing: 2px; }
.gt-rating__score { font-size: 14px; font-weight: 700; color: var(--gt-ink); }
.gt-rating__count { font-size: 13.5px; color: var(--gt-muted); border-bottom: 1px dotted var(--gt-line); }
.gt-rating__count:hover { color: var(--gt-gold-deep); }

.gt-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; margin-bottom: 6px; }

.gt-price__now {
	font-size: clamp(28px, 3.6vw, 36px);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--gt-green);
}

.gt-price__now .woocommerce-Price-amount { font-size: inherit; font-weight: inherit; color: inherit; }
.gt-price__was { font-size: 17px; color: #9aa49e; text-decoration: line-through; }

.gt-price__off {
	padding: 4px 11px;
	border-radius: 999px;
	background: #fdeceb;
	color: var(--gt-terracotta);
	font-size: 12px;
	font-weight: 700;
}

.gt-price__note { margin-bottom: 18px; font-size: 13px; color: var(--gt-muted); }

.gt-buycard__summary {
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--gt-line-soft);
	font-size: 15px;
	color: var(--gt-body);
}

.gt-status { display: grid; gap: 10px; margin: 0 0 22px; padding: 0; list-style: none; }
.gt-status li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--gt-body); }
.gt-status i { width: 17px; text-align: center; color: var(--gt-green); font-size: 13px; }
.gt-status b { font-weight: 600; color: var(--gt-ink); }

.gt-dot {
	width: 8px;
	height: 8px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--gt-ok);
	box-shadow: 0 0 0 3px rgba(31, 122, 63, 0.16);
}

.gt-dot--out { background: var(--gt-terracotta); box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.16); }

.gt-cart-row {
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr);
	gap: 12px;
	margin-bottom: 12px;
}

.gt-quantity {
	display: flex;
	align-items: center;
	border: 1.5px solid var(--gt-line);
	border-radius: 999px;
	background: var(--gt-white);
	overflow: hidden;
}

.gt-quantity button {
	flex: 0 0 40px;
	height: 52px;
	border: 0;
	background: none;
	color: var(--gt-green);
	font-size: 17px;
	font-weight: 600;
}

.gt-quantity button:hover { background: var(--gt-sand); }

.gt-quantity input {
	flex: 1;
	width: 100%;
	min-width: 0;
	height: 52px;
	border: 0;
	background: none;
	text-align: center;
	font-size: 15px;
	font-weight: 700;
	color: var(--gt-ink);
	-moz-appearance: textfield;
}

.gt-quantity input::-webkit-outer-spin-button,
.gt-quantity input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Blocksy's global form styling puts a border and radius on this input,
   which drew a second box inside the pill. Element + class outranks it. */
.gt-quantity input[type="number"] {
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	min-height: 0;
}

.gt-quantity input[type="number"]:focus {
	border: 0;
	box-shadow: none;
	outline: none;
}

.gt-cart-row .gt-btn { height: 52px; padding-block: 0; }
.gt-buycard__buynow { height: 52px; margin-bottom: 22px; }

/* Trust pair */
.gt-trust {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 1px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r);
	background: var(--gt-line);
	overflow: hidden;
}

.gt-trust li { display: flex; align-items: center; gap: 11px; padding: 14px 15px; background: var(--gt-white); }

.gt-trust i {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--gt-sand);
	color: var(--gt-green);
	font-size: 13px;
}

.gt-trust b { display: block; font-size: 13px; font-weight: 700; line-height: 1.25; color: var(--gt-green); }
.gt-trust small { font-size: 11.5px; color: var(--gt-muted); }

/* PIN check */
.gt-pin {
	margin-bottom: 18px;
	padding: 16px;
	border: 1px dashed var(--gt-line);
	border-radius: var(--gt-r);
	background: var(--gt-cream-2);
}

.gt-pin__label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
	font-size: 13px;
	font-weight: 700;
	color: var(--gt-green);
}

.gt-pin__label i { color: var(--gt-gold-deep); }
.gt-pin__controls { display: flex; gap: 8px; }

.gt-pin__controls input {
	flex: 1;
	min-width: 0;
	padding: 12px 15px;
	border: 1px solid var(--gt-line);
	border-radius: 999px;
	background: var(--gt-white);
	font-size: 14px;
	outline: none;
}

.gt-pin__controls input:focus { border-color: var(--gt-gold); }

.gt-pin__controls button {
	padding: 12px 22px;
	border: 0;
	border-radius: 999px;
	background: var(--gt-green);
	color: #fff;
	font-size: 13.5px;
	font-weight: 700;
}

.gt-pin__controls button:disabled { opacity: 0.7; }
.gt-pin__result { margin: 10px 0 0; font-size: 12.5px; font-weight: 600; }
.gt-pin__result.is-ok { color: var(--gt-ok); }
.gt-pin__result.is-bad { color: var(--gt-terracotta); }

/* Help row */
.gt-help {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 16px;
	font-size: 13.5px;
	color: var(--gt-muted);
}

.gt-help a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-weight: 700;
	color: var(--gt-green);
}

.gt-help a:hover { color: var(--gt-gold-deep); }
.gt-help i { color: var(--gt-gold-deep); }

/* --- Tabs ------------------------------------------------------------ */

.gt-tabs__nav {
	display: flex;
	gap: 4px;
	padding: 6px;
	margin-bottom: 26px;
	border-radius: var(--gt-r);
	background: var(--gt-sand);
	overflow-x: auto;
	scrollbar-width: none;
}

.gt-tabs__nav::-webkit-scrollbar { display: none; }

.gt-tabs__tab {
	flex: 1;
	min-width: max-content;
	padding: 13px 22px;
	border: 0;
	border-radius: var(--gt-r-sm);
	background: none;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--gt-green);
	white-space: nowrap;
	transition: background 0.2s ease, color 0.2s ease;
}

.gt-tabs__tab:hover { background: rgba(255, 255, 255, 0.6); }

.gt-tabs__tab.is-active {
	background: var(--gt-green);
	color: #fff;
}

.gt-tabs__panel {
	max-width: 860px;
	font-size: 15.5px;
	line-height: 1.75;
	color: var(--gt-body);
}

.gt-tabs__panel > * + * { margin-top: 1em; }
.gt-tabs__panel h2 { margin-top: 1.4em; font-size: 24px; }
.gt-tabs__panel h3 { margin-top: 1.2em; font-size: 19px; }
.gt-tabs__panel h2:first-child, .gt-tabs__panel h3:first-child { margin-top: 0; }
.gt-tabs__panel ul { padding-left: 1.2em; list-style: disc; }
.gt-tabs__panel ol { padding-left: 1.2em; list-style: decimal; }
.gt-tabs__panel li + li { margin-top: 0.45em; }
.gt-tabs__panel ul li::marker { color: var(--gt-gold); }
.gt-tabs__panel img { border-radius: var(--gt-r); }

.gt-tabs__panel a {
	color: var(--gt-gold-deep);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Details table */
.gt-spectable { width: 100%; border-collapse: collapse; }

.gt-spectable th,
.gt-spectable td {
	padding: 13px 4px;
	border-bottom: 1px solid var(--gt-line-soft);
	font-size: 14.5px;
	text-align: left;
	vertical-align: top;
}

.gt-spectable tr:last-child th,
.gt-spectable tr:last-child td { border-bottom: 0; }

.gt-spectable th { width: 38%; font-weight: 600; color: var(--gt-green); }
.gt-spectable td { color: var(--gt-body); }

/* --- Assurance strip -------------------------------------------------- */

.gt-assure-wrap { padding-block: clamp(24px, 3vw, 40px); }

.gt-assure {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 18px;
	padding: 26px clamp(18px, 2.6vw, 34px);
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-lg);
	background: var(--gt-white);
}

.gt-assure__item { display: flex; align-items: center; gap: 13px; }

.gt-assure__item i {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--gt-sand);
	color: var(--gt-green);
	font-size: 16px;
}

.gt-assure__item b { display: block; font-size: 14px; font-weight: 700; line-height: 1.25; color: var(--gt-green); }
.gt-assure__item small { font-size: 11.5px; color: var(--gt-muted); }

/* --- FAQ -------------------------------------------------------------- */

.gt-faq { display: grid; gap: 10px; }

.gt-faq details {
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r);
	background: var(--gt-white);
	overflow: hidden;
}

.gt-faq details[open] { border-color: var(--gt-gold); }

.gt-faq summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 17px 20px;
	font-size: 15px;
	font-weight: 600;
	color: var(--gt-green);
	cursor: pointer;
	list-style: none;
}

.gt-faq summary::-webkit-details-marker { display: none; }

.gt-faq summary::after {
	content: "\f078";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 11px;
	flex-shrink: 0;
	color: var(--gt-gold-deep);
	transition: transform 0.25s ease;
}

.gt-faq details[open] summary::after { transform: rotate(180deg); }

.gt-faq details > div {
	padding: 0 20px 18px;
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--gt-muted);
}

.gt-faq details > div p:last-child { margin-bottom: 0; }

/* --- Reviews -----------------------------------------------------------
   WooCommerce's own review list, restyled as a card grid. Working with its
   markup rather than replacing it keeps the rating field, verified-owner
   badge and spam handling that comes with comment_form(). */

.gt-reviews__summary {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	font-size: 14.5px;
	color: var(--gt-muted);
}

.gt-reviews__summary b { color: var(--gt-ink); font-size: 16px; }

.gt-wc-reviews .woocommerce-Reviews-title { display: none; }

.gt-wc-reviews .commentlist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
}

.gt-wc-reviews .commentlist li.review,
.gt-wc-reviews .commentlist li.comment {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gt-wc-reviews .comment_container {
	display: flex !important;
	grid-template-columns: none !important;
	gap: 14px !important;
	height: 100%;
	padding: 20px;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r);
	background: var(--gt-white);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gt-wc-reviews .comment_container > img.avatar {
	position: static !important;
	width: 40px !important;
	height: 40px !important;
}

.gt-wc-reviews .comment_container:hover {
	transform: translateY(-3px);
	box-shadow: var(--gt-shadow);
}

.gt-wc-reviews .comment_container img.avatar {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	margin: 0;
	border: 0;
	border-radius: 50%;
	background: var(--gt-sand);
	padding: 0;
}

.gt-wc-reviews .comment-text {
	flex: 1;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.gt-wc-reviews .comment-text .star-rating {
	float: none;
	margin: 0 0 8px;
	font-size: 13px;
}

.gt-wc-reviews .comment-text .meta {
	margin: 0 0 8px;
	font-size: 12.5px;
	color: var(--gt-muted);
}

.gt-wc-reviews .woocommerce-review__author {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: var(--gt-ink);
}

.gt-wc-reviews .woocommerce-review__dash { display: none; }

.gt-wc-reviews .woocommerce-review__verified {
	display: inline-block;
	margin-left: 6px;
	color: var(--gt-ok);
	font-size: 11.5px;
	font-weight: 600;
	font-style: normal;
}

.gt-wc-reviews .comment-text .description {
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--gt-body);
}

.gt-wc-reviews .comment-text .description p:last-child { margin-bottom: 0; }

/* Review form */
.gt-wc-reviews #review_form_wrapper {
	max-width: 720px;
	padding: 28px;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-lg);
	background: var(--gt-white);
}

.gt-wc-reviews #reply-title {
	display: block;
	margin-bottom: 18px;
	font-size: 20px;
	font-weight: 700;
	color: var(--gt-green);
}

.gt-wc-reviews .comment-form label {
	display: block;
	margin-bottom: 6px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--gt-green);
}

.gt-wc-reviews .comment-form input[type="text"],
.gt-wc-reviews .comment-form input[type="email"],
.gt-wc-reviews .comment-form textarea {
	width: 100%;
	padding: 12px 15px;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-sm);
	background: var(--gt-cream);
	font-size: 14.5px;
	outline: none;
	transition: border-color 0.2s ease;
}

.gt-wc-reviews .comment-form input:focus,
.gt-wc-reviews .comment-form textarea:focus { border-color: var(--gt-gold); }

.gt-wc-reviews .comment-form p { margin-bottom: 16px; }

.gt-wc-reviews .comment-form-rating .stars a { color: var(--gt-gold); }

.gt-wc-reviews .form-submit input[type="submit"],
.gt-wc-reviews .form-submit button[type="submit"],
.gt-wc-reviews .form-submit #submit {
	padding: 14px 30px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--gt-green) !important;
	color: #ffffff !important;
	font-family: var(--gt-sans);
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: background 0.2s ease;
}

.gt-wc-reviews .form-submit input[type="submit"]:hover,
.gt-wc-reviews .form-submit button[type="submit"]:hover,
.gt-wc-reviews .form-submit #submit:hover {
	background: var(--gt-green-dark) !important;
	color: #ffffff !important;
}

@media (max-width: 767px) {
	.gt-wc-reviews .commentlist { grid-template-columns: 1fr; }
	.gt-wc-reviews #review_form_wrapper { padding: 20px; }
}

/* --- Related products -------------------------------------------------- */

.gt-related {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.gt-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-lg);
	background: var(--gt-white);
	overflow: hidden;
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.gt-card:hover {
	transform: translateY(-4px);
	border-color: var(--gt-gold);
	box-shadow: var(--gt-shadow);
}

.gt-card__media { display: block; aspect-ratio: 1 / 1; background: var(--gt-sand); overflow: hidden; }
.gt-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.gt-card:hover .gt-card__media img { transform: scale(1.05); }

.gt-card__body { display: flex; flex-direction: column; gap: 8px; padding: 18px; flex: 1; }
.gt-card__body h3 { margin: 0; font-size: 15px; line-height: 1.4; }
.gt-card__price { margin: 0; font-size: 15px; font-weight: 700; color: var(--gt-gold-deep); }
.gt-card__price .woocommerce-Price-amount { color: inherit; }
.gt-card__price del { color: #9aa49e; font-weight: 400; font-size: 13px; margin-right: 6px; }

.gt-card__button {
	margin-top: auto;
	padding: 10px 16px;
	border: 1.5px solid var(--gt-green);
	border-radius: 999px;
	color: var(--gt-green);
	font-size: 13px;
	font-weight: 700;
	text-align: center;
	transition: background 0.2s ease, color 0.2s ease;
}

.gt-card__button:hover { background: var(--gt-green); color: #fff; }

/* --- Sticky buy bar ---------------------------------------------------- */

.gt-stickybuy {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 900;
	display: none;
	align-items: center;
	gap: 12px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: rgba(255, 253, 248, 0.97);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-top: 1px solid var(--gt-line);
	transform: translateY(110%);
	transition: transform 0.3s ease;
	font-family: var(--gt-sans);
}

.gt-stickybuy.is-visible { transform: translateY(0); }

.gt-stickybuy__price {
	flex-shrink: 0;
	font-size: 19px;
	font-weight: 700;
	color: var(--gt-green);
}

.gt-stickybuy__price .woocommerce-Price-amount { color: inherit; }

.gt-stickybuy .gt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex: 1;
	height: 48px;
	padding-inline: 14px;
	border: 1.5px solid transparent;
	border-radius: 999px;
	font-family: var(--gt-sans);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	transition: background 0.18s ease;
}

.gt-stickybuy .gt-btn--primary,
.gt-stickybuy .gt-btn--primary:visited {
	background: var(--gt-green);
	color: #ffffff;
}

.gt-stickybuy .gt-btn--primary:hover {
	background: var(--gt-green-dark);
	color: #ffffff;
}

.gt-stickybuy .gt-btn--gold,
.gt-stickybuy .gt-btn--gold:visited {
	background: var(--gt-gold);
	color: #3d2c05;
}

/* --- Lightbox ---------------------------------------------------------- */

.gt-lightbox {
	position: fixed;
	inset: 0;
	z-index: 1200;
	display: none;
	place-items: center;
	padding: 24px;
	background: rgba(20, 30, 24, 0.93);
}

.gt-lightbox.is-open { display: grid; }
.gt-lightbox img { max-width: min(92vw, 760px); max-height: 88vh; object-fit: contain; border-radius: var(--gt-r-lg); }

.gt-lightbox__close {
	position: absolute;
	top: 22px;
	right: 22px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-size: 18px;
}

.gt-lightbox__close:hover { background: rgba(255, 255, 255, 0.22); }

/* --- Responsive --------------------------------------------------------- */

@media (max-width: 980px) {
	.gt-buy { grid-template-columns: 1fr; gap: 28px; }
	.gt-gallery { position: static; }
	.gt-related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gt-assure { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
	.gt-stickybuy { display: flex; }
	.gt-product { padding-bottom: 76px; }
}

@media (max-width: 767px) {
	.gt-product .gt-wrap { padding-inline: 1.25rem; }

	.gt-gallery { grid-template-columns: 1fr; }

	.gt-gallery__rail {
		grid-row: 2;
		flex-direction: row;
		max-height: none;
		overflow-x: auto;
		padding-bottom: 4px;
	}

	.gt-gallery__thumb { flex: 0 0 64px; }
	.gt-tabs__tab { flex: 0 0 auto; padding-inline: 18px; }
}

@media (max-width: 560px) {
	.gt-trust { grid-template-columns: 1fr; }
	.gt-assure { grid-template-columns: 1fr; }
	.gt-related { grid-template-columns: 1fr; }

	.gt-cart-row {
		grid-template-columns: 118px minmax(0, 1fr);
		gap: 10px;
	}

	/* The Joinchat launcher is fixed bottom-right and was sitting on top
	   of the sticky Add to Cart button. Keep the bar clear of it. */
	.gt-stickybuy {
		padding-right: 76px;
	}

	.gt-quantity button { flex: 0 0 34px; }
	.gt-cart-row .gt-btn { padding-inline: 12px; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
	.gt-product *,
	.gt-product *::before,
	.gt-product *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* --- Hand-coded custom sections -----------------------------------------
   Wrapper for the two "Custom Section" slots. Deliberately minimal: it
   supplies the page's rhythm and reading width, then gets out of the way
   so the section's own CSS decides everything else. */

.gt-custom {
	position: relative;
	padding-block: clamp(36px, 5vw, 64px);
}

.gt-custom__inner {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 2rem;
}

.gt-custom--full .gt-custom__inner {
	max-width: none;
	padding-inline: 0;
}

/* Sensible defaults for bare markup, all overridable by the section's CSS. */
.gt-custom h2 {
	font-size: clamp(26px, 3.6vw, 38px);
}

.gt-custom h3 {
	font-size: 20px;
}

.gt-custom p {
	color: var(--gt-body);
	line-height: 1.7;
}

.gt-custom img {
	max-width: 100%;
	height: auto;
}

.gt-custom iframe,
.gt-custom video {
	max-width: 100%;
}

@media (max-width: 767px) {
	.gt-custom__inner {
		padding-inline: 1.25rem;
	}
}

/* --- Block pattern sections ---------------------------------------------
   Styling for the theme's Gutenberg patterns (inc/block-patterns.php), so
   sections the owner builds by hand match the coded ones. Everything here
   hangs off .gt-blk classes the patterns apply to core blocks. */

/* Full-bleed bands escape the free-form section's reading width. */
.gt-freeform .alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.gt-freeform .alignwide {
	width: min(1180px, 92vw);
	max-width: none;
	margin-left: 50%;
	transform: translateX(-50%);
}

.gt-blk {
	padding-block: clamp(40px, 5.5vw, 72px);
}

.gt-blk > * {
	max-width: 1180px;
	margin-inline: auto;
}

.gt-blk--dark {
	background: var(--gt-green);
	color: #e8e2d4;
}

.gt-blk--dark h2,
.gt-blk--dark h3 {
	color: #ffffff;
}

.gt-blk--sand {
	background: var(--gt-sand);
}

.gt-blk h2 {
	text-align: center;
	font-size: clamp(26px, 3.6vw, 38px);
	margin-bottom: 0.4em;
}

.gt-blk__eyebrow {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gt-gold-deep);
	margin-bottom: 10px;
}

.gt-blk--dark .gt-blk__eyebrow {
	color: var(--gt-gold);
}

.gt-blk__intro {
	max-width: 640px;
	margin-inline: auto;
	color: var(--gt-muted);
	font-size: 16px;
}

.gt-blk--dark .gt-blk__intro {
	color: rgba(240, 235, 222, 0.8);
}

/* Proof steps */
.gt-blk-steps {
	gap: 20px;
	margin-top: 34px;
}

.gt-blk-step__media img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--gt-r-lg);
	border: 1px solid rgba(212, 175, 55, 0.3);
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.26);
}

.gt-blk-step__num {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin: -20px auto 12px;
	position: relative;
	z-index: 2;
	border-radius: 50%;
	background: var(--gt-gold);
	color: #33260a;
	font-size: 17px;
	font-weight: 700;
	box-shadow: 0 0 0 6px var(--gt-green);
}

.gt-blk-step h3 {
	font-size: 18px;
	margin-bottom: 6px;
}

.gt-blk-step p:not(.gt-blk-step__num) {
	font-size: 13.5px;
	line-height: 1.55;
	color: rgba(240, 235, 222, 0.78);
}

/* Card grid */
.gt-blk-cards {
	gap: 20px;
	margin-top: 34px;
}

.gt-blk-card {
	padding: 28px 24px;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-lg);
	background: var(--gt-white);
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.gt-blk-card:hover {
	transform: translateY(-4px);
	border-color: var(--gt-gold);
	box-shadow: var(--gt-shadow);
}

.gt-blk-card h3 {
	font-size: 19px;
	margin-bottom: 8px;
}

.gt-blk-card p {
	font-size: 14px;
	line-height: 1.6;
	color: var(--gt-muted);
	margin: 0;
}

/* Image + text split */
.gt-blk-split {
	gap: clamp(24px, 4vw, 56px);
}

.gt-blk-split__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 26px;
	box-shadow: var(--gt-shadow-lg);
}

.gt-blk-split h2 {
	text-align: left;
}

.gt-blk-split ul {
	padding-left: 1.1em;
}

.gt-blk-split li::marker {
	color: var(--gt-gold);
}

/* Callout */
.gt-blk-callout {
	max-width: 780px;
	margin-inline: auto;
	padding: 22px 28px;
	border: 1px solid #f0dcb4;
	border-left: 4px solid var(--gt-gold);
	border-radius: var(--gt-r);
	background: linear-gradient(100deg, #fdf4e0, #fcf7ee);
	font-size: 17px;
	font-weight: 500;
	color: var(--gt-green);
}

/* Stat strip */
.gt-blk-stats {
	gap: 0;
	border: 1px solid var(--gt-line);
	border-radius: var(--gt-r-lg);
	background: var(--gt-white);
	overflow: hidden;
	box-shadow: var(--gt-shadow-sm);
}

.gt-blk-stat {
	padding: 22px 16px;
	border-right: 1px solid var(--gt-line-soft);
}

.gt-blk-stat:last-child {
	border-right: 0;
}

.gt-blk-stat__value {
	margin: 0;
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--gt-green);
}

.gt-blk-stat__label {
	margin: 2px 0 0;
	font-size: 12px;
	color: var(--gt-muted);
}

@media (max-width: 781px) {
	/* Core stacks columns below 782px — restore the dividers sensibly. */
	.gt-blk-stat {
		border-right: 0;
		border-bottom: 1px solid var(--gt-line-soft);
	}

	.gt-blk-stat:last-child {
		border-bottom: 0;
	}

	.gt-blk-step__num {
		margin-top: -20px;
	}

	.gt-blk-split h2 {
		text-align: center;
	}
}

/* ------------------------------------------------------------------ */
/* Contact page                                                         */
/* ------------------------------------------------------------------ */

.girijapati-contact-card {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px;
	background: #ffffff;
	border: 1px solid #c8c6c6;
	border-radius: 8px;
}

.girijapati-whatsapp-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 16px;
	color: #ffffff;
	font-weight: 700;
	text-decoration: none;
	background: #25d366;
	border-radius: 8px;
	box-shadow: 0 8px 18px rgba(37, 211, 102, 0.25);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.girijapati-whatsapp-cta:hover {
	box-shadow: 0 12px 24px rgba(37, 211, 102, 0.35);
	transform: translateY(-1px);
}

.girijapati-map iframe {
	display: block;
}

.girijapati-contact-form-card {
	padding: 32px;
	background: #ffffff;
	border: 1px solid #c8c6c6;
	border-radius: 12px;
	box-shadow: 0 12px 30px rgba(27, 67, 50, 0.06);
}

/* Contact Form 7 (page-contact.php), reskinned to match the site — the
 * form's own field markup/validation/AJAX submission is untouched, only
 * the CSS targets CF7's real classes instead of building a custom form. */
.girijapati-cf7-wrap .wpcf7-form p {
	margin: 0 0 16px;
}

.girijapati-cf7-wrap .wpcf7-form label {
	display: block;
	margin-bottom: 6px;
	color: #1b4332;
	font-size: 14px;
	font-weight: 600;
}

.girijapati-cf7-wrap .wpcf7-form-control.wpcf7-text,
.girijapati-cf7-wrap .wpcf7-form-control.wpcf7-email,
.girijapati-cf7-wrap .wpcf7-form-control.wpcf7-tel,
.girijapati-cf7-wrap .wpcf7-form-control.wpcf7-textarea {
	width: 100%;
	padding: 12px 14px;
	color: #1b1b1b;
	background: #fbf9f8;
	border: 1px solid #c8c6c6;
	border-radius: 8px;
	font-family: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.girijapati-cf7-wrap .wpcf7-form-control:focus {
	outline: none;
	border-color: #1b4332;
	box-shadow: 0 0 0 3px rgba(27, 67, 50, 0.12);
}

.girijapati-cf7-wrap .wpcf7-form-control.wpcf7-textarea {
	min-height: 130px;
	resize: vertical;
}

.girijapati-cf7-wrap input[type="submit"].wpcf7-submit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 32px;
	font-weight: 700;
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.girijapati-cf7-wrap input[type="submit"].wpcf7-submit:hover {
	transform: translateY(-1px);
}

.girijapati-cf7-wrap .wpcf7-not-valid-tip {
	display: block;
	margin-top: 4px;
	color: #b91c1c;
	font-size: 13px;
}

.girijapati-cf7-wrap .wpcf7-response-output {
	padding: 14px 16px;
	margin: 20px 0 0;
	font-weight: 600;
	border-radius: 8px;
}

.girijapati-cf7-wrap form.sent .wpcf7-response-output {
	color: #14532d;
	background: #dcfce7;
	border: 1px solid #86efac !important;
}

.girijapati-cf7-wrap form.failed .wpcf7-response-output,
.girijapati-cf7-wrap form.aborted .wpcf7-response-output,
.girijapati-cf7-wrap form.spam .wpcf7-response-output,
.girijapati-cf7-wrap form.invalid .wpcf7-response-output,
.girijapati-cf7-wrap form.unaccepted .wpcf7-response-output {
	color: #7f1d1d;
	background: #fee2e2;
	border: 1px solid #fca5a5 !important;
}

/* ------------------------------------------------------------------ */
/* Shop archive (woocommerce/archive-product.php)                       */
/* ------------------------------------------------------------------ */

.girijapati-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 32px;
	padding-bottom: 20px;
	border-bottom: 1px solid #c8c6c6;
}

.girijapati-shop-result-count p,
.girijapati-shop-result-count {
	margin: 0;
	color: #474747;
	font-size: 14px;
}

.girijapati-shop-ordering select {
	padding: 10px 36px 10px 14px;
	color: #1b4332 !important;
	font-weight: 600;
	background-color: #ffffff !important;
	border: 1px solid #c8c6c6 !important;
	border-radius: 8px;
	cursor: pointer;
}

.girijapati-shop-ordering select:focus {
	outline: none;
	border-color: #1b4332 !important;
	box-shadow: 0 0 0 3px rgba(27, 67, 50, 0.12);
}

.girijapati-shop-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}

@media (min-width: 640px) {
	.girijapati-shop-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 1024px) {
	.girijapati-shop-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.girijapati-shop-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid #c8c6c6;
	border-radius: 12px;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.girijapati-shop-card:hover {
	box-shadow: 0 16px 32px rgba(27, 67, 50, 0.1);
	transform: translateY(-3px);
}

.girijapati-shop-card-image {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #dcd9d9;
}

.girijapati-shop-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.girijapati-shop-card:hover .girijapati-shop-card-image img {
	transform: scale(1.05);
}

.girijapati-shop-card-body {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	padding: 16px;
}

.girijapati-shop-card-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-bottom: 6px;
	color: #1b4332 !important;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.4;
	text-decoration: none !important;
}

.girijapati-shop-card-title:hover {
	color: #d4af37 !important;
}

.girijapati-shop-card-rating {
	margin-bottom: 8px;
	color: #d4af37;
	font-size: 13px;
}

.girijapati-shop-card-price {
	margin-bottom: 12px;
	color: #1b4332;
	font-weight: 700;
}

.girijapati-shop-card-price del {
	color: #797474;
	font-size: 13px;
	font-weight: 400;
	opacity: 1;
	margin-right: 6px;
}

.girijapati-shop-card-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: auto;
	padding: 10px;
	color: #ffffff !important;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none !important;
	background: #1b4332 !important;
	border-radius: 8px;
	transition: background-color 0.2s ease;
}

.girijapati-shop-card-button:hover {
	background: #14361f !important;
}

.girijapati-shop-pagination {
	margin-top: 48px;
	text-align: center;
}

.girijapati-shop-pagination .page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.girijapati-shop-pagination ul.page-numbers li {
	display: inline-block;
}

.girijapati-shop-pagination a.page-numbers,
.girijapati-shop-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	color: #1b4332 !important;
	font-weight: 600;
	text-decoration: none !important;
	background: #ffffff !important;
	border: 1px solid #c8c6c6;
	border-radius: 8px;
}

.girijapati-shop-pagination a.page-numbers:hover,
.girijapati-shop-pagination span.page-numbers.current {
	color: #ffffff !important;
	background: #1b4332 !important;
	border-color: #1b4332;
}

.girijapati-shop-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 64px 24px;
	text-align: center;
}

.girijapati-shop-empty i {
	margin-bottom: 16px;
	color: rgba(27, 67, 50, 0.3);
	font-size: 64px;
}

.girijapati-shop-empty h2 {
	color: #1b4332;
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 8px;
}

.girijapati-shop-empty p {
	color: #474747;
	margin-bottom: 24px;
}

.girijapati-shop-empty-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 28px;
	color: #ffffff !important;
	font-weight: 700;
	text-decoration: none !important;
	background: #1b4332 !important;
	border-radius: 8px;
}


/* ------------------------------------------------------------------ */
/* gt-product: WooCommerce cart notices and the real review list/form.  */
/* (Icon rules moved into the main product block above.)                */
/* ------------------------------------------------------------------ */

.gt-product__notices {
	margin-bottom: 24px;
}

.gt-product__notices ul.woocommerce-message,
.gt-product__notices ul.woocommerce-error,
.gt-product__notices ul.woocommerce-info {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 18px;
	margin: 0 0 12px;
	list-style: none;
	border-radius: 10px;
	font-size: 14px;
}

.gt-product__notices ul.woocommerce-message {
	color: #14532d;
	background: #dcfce7;
	border: 1px solid #86efac;
}

.gt-product__notices ul.woocommerce-error {
	color: #7f1d1d;
	background: #fee2e2;
	border: 1px solid #fca5a5;
}

.gt-product__notices ul.woocommerce-info {
	color: var(--gt-green-950);
	background: var(--gt-green-100);
	border: 1px solid var(--gt-line);
}

.gt-product__notices .button {
	padding: 8px 16px;
	color: var(--gt-green-950);
	font-weight: 700;
	background: #ffffff;
	border: 1px solid var(--gt-green-900);
	border-radius: 6px;
	text-decoration: none;
}

/* Real WooCommerce reviews (comments_template() output) */
.gt-wc-reviews {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

.gt-wc-reviews #reviews {
	max-width: none;
}

.gt-wc-reviews h2,
.gt-wc-reviews h3 {
	font-size: 26px;
	margin-bottom: 20px;
}

.gt-wc-reviews ol.commentlist {
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
}

.gt-wc-reviews .comment {
	padding: 20px 0;
	border-top: 1px solid rgba(149, 101, 29, 0.16);
}

.gt-wc-reviews .comment:first-child {
	border-top: 0;
	padding-top: 0;
}

.gt-wc-reviews .comment_container {
	display: flex;
	gap: 16px;
}

.gt-wc-reviews .avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
}

.gt-wc-reviews .comment-text {
	flex: 1;
	min-width: 0;
}

.gt-wc-reviews .star-rating {
	margin-bottom: 6px;
	color: #d79d2b;
}

.gt-wc-reviews .meta {
	margin-bottom: 8px;
	color: var(--gt-muted);
	font-size: 13px;
}

.gt-wc-reviews .description p {
	margin: 0;
	color: #536158;
	font-size: 14.5px;
	line-height: 1.7;
}

.gt-wc-reviews #review_form_wrapper {
	padding-top: 24px;
	border-top: 1px solid rgba(149, 101, 29, 0.16);
}

.gt-wc-reviews .comment-form-rating label,
.gt-wc-reviews .comment-form-comment label,
.gt-wc-reviews .comment-form-author label,
.gt-wc-reviews .comment-form-email label {
	display: block;
	margin-bottom: 6px;
	color: var(--gt-green-950);
	font-weight: 600;
	font-size: 14px;
}

.gt-wc-reviews #comment,
.gt-wc-reviews input[type="text"],
.gt-wc-reviews input[type="email"] {
	width: 100%;
	padding: 12px 14px;
	margin-bottom: 16px;
	border: 1px solid var(--gt-line);
	border-radius: 8px;
	font-family: inherit;
	background: #fff;
}

.gt-wc-reviews .form-submit input#submit {
	display: inline-flex;
	align-items: center;
	padding: 12px 28px;
	color: #ffffff;
	font-weight: 700;
	background: var(--gt-green-900);
	border: 0;
	border-radius: 9px;
	cursor: pointer;
}

.gt-wc-reviews .form-submit input#submit:hover {
	background: var(--gt-green-950);
}

.gt-wc-reviews p.stars a {
	color: var(--gt-gold-500);
}

.gt-wc-reviews p.woocommerce-noreviews {
	margin-bottom: 20px;
	color: var(--gt-muted);
}
