/* =========================================================================
   GIARDINO PRIME — main.css
   Design language: dark walnut leather + antique brass hardware.
   Display: Cinzel (engraved-plaque headlines) · Accent: Cormorant Garamond
   (italic taglines) · Body/UI: Jost (precise, watch-dial numerals).
   Signature elements: buckle-prong glyph, stitched-edge product cards,
   brass foil headline treatment.
   ========================================================================= */

:root {
	--gp-bg:        #000000;
	--gp-bg-alt:    #000000;
	--gp-panel:     #0a0a0a;
	--gp-ivory:     #F3ECDD;
	--gp-ivory-dim: #C9BFAE;
	--gp-tan:       #B07A45;
	--gp-tan-dark:  #7C4E28;
	--gp-brass:     #CBA968;
	--gp-brass-soft:#E4CB98;
	--gp-oxblood:   #7A2E39;
	--gp-line:      rgba(203,169,104,0.22);
	--gp-shadow:    0 20px 45px -20px rgba(0,0,0,0.6);

	--gp-font-display: 'Cinzel', Georgia, serif;
	--gp-font-accent:  'Cormorant Garamond', Georgia, serif;
	--gp-font-body:    'Jost', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

	--gp-radius: 2px;
	--gp-header-h: 84px;
	--gp-announce-h: 40px;
}

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}
body {
	margin: 0;
	background: var(--gp-bg);
	color: var(--gp-ivory);
	font-family: var(--gp-font-body);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { font-family: var(--gp-font-display); font-weight: 600; letter-spacing: 0.02em; margin: 0 0 .5em; color: var(--gp-ivory); }
p { margin: 0 0 1em; }
button { font-family: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--gp-brass); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }

.gp-container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

.gp-eyebrow {
	display: flex; align-items: center; gap: 8px;
	font-family: var(--gp-font-body); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--gp-brass); margin-bottom: 14px;
}
.gp-buckle-bullet { flex-shrink: 0; color: var(--gp-brass); }

.gp-section { padding: 88px 0; }
.gp-section__head { max-width: 640px; margin-bottom: 44px; }
.gp-section__head--row { display: flex; justify-content: space-between; align-items: flex-end; max-width: none; flex-wrap: wrap; gap: 16px; }
.gp-section__title {
	font-size: clamp(28px, 3.4vw, 42px);
	background: linear-gradient(115deg, var(--gp-brass-soft) 0%, var(--gp-brass) 45%, var(--gp-tan) 100%);
	-webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--gp-brass);
}
.gp-link-more { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gp-brass); border-bottom: 1px solid var(--gp-line); padding-bottom: 3px; white-space: nowrap; }
.gp-link-more:hover { color: var(--gp-brass-soft); border-color: var(--gp-brass); }

/* ---------- Buttons ---------- */
.gp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 15px 32px; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase;
	border-radius: var(--gp-radius); border: 1px solid transparent; transition: all .25s ease; cursor: pointer;
}
.gp-btn--primary { background: linear-gradient(120deg, #8a6d23, #C9A227 55%, #e6c869 75%, #8a6d23); color: #1B140D; font-weight: 600; }
.gp-btn--primary:hover { filter: brightness(1.08); transform: translateY(-1px); }
.gp-btn--outline { border-color: var(--gp-brass); color: var(--gp-brass-soft); background: transparent; }
.gp-btn--outline:hover { background: var(--gp-brass); color: #1B140D; }
.gp-btn--ghost { border-color: var(--gp-line); color: var(--gp-ivory); background: transparent; width: 100%; }
.gp-btn--ghost:hover { border-color: var(--gp-brass); color: var(--gp-brass-soft); }
.gp-btn--sm { padding: 10px 18px; font-size: 11px; }

/* Premium gold — used for Add to Cart everywhere (product cards, single product, cart, checkout) */
.gp-btn--gold,
.woocommerce a.button.add_to_cart_button,
.woocommerce button.single_add_to_cart_button,
.woocommerce #respond input#submit,
ul.products li.product .button {
	background: linear-gradient(120deg, #8a6d23, #C9A227 55%, #e6c869 75%, #8a6d23) !important;
	background-size: 200% auto !important;
	color: #1B140D !important;
	font-weight: 700 !important;
	border: none !important;
	width: 100%;
	transition: background-position .4s ease, transform .2s ease !important;
}
.gp-btn--gold:hover,
.woocommerce a.button.add_to_cart_button:hover,
.woocommerce button.single_add_to_cart_button:hover,
ul.products li.product .button:hover {
	background-position: right center !important;
	transform: translateY(-1px);
	color: #1B140D !important;
}

/* =========================================================================
   ANNOUNCEMENT BAR
   ========================================================================= */
.gp-announcement { background: linear-gradient(120deg, #8a6d23, #C9A227 45%, #8a6d23); color: #000000; height: var(--gp-announce-h); }
.gp-announcement__inner { max-width: 1280px; margin: 0 auto; padding: 0 24px; height: 100%; display: flex; align-items: center; justify-content: center; position: relative; }
.gp-announcement__track { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.gp-announcement__slide {
	position: absolute;
	left: 0; right: 0;
	font-size: 12.5px; letter-spacing: 0.04em; text-align: center; color: #000000;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .5s ease, transform .5s ease;
	pointer-events: none;
}
.gp-announcement__slide.is-active {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.gp-announcement__close { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; color: #000000; font-size: 18px; line-height: 1; opacity: .7; }
.gp-announcement__close:hover { opacity: 1; }
.gp-announcement.is-dismissed { display: none; }

/* =========================================================================
   HEADER
   ========================================================================= */
body.gp-no-scroll { overflow: hidden; }
.gp-header { position: sticky; top: 0; z-index: 200; background: rgba(0,0,0,0.92); border-bottom: 1px solid var(--gp-line); transition: box-shadow .25s ease; }
/* Frosted-glass effect moved to a pseudo-element: putting backdrop-filter
   directly on .gp-header turns it into a "containing block" for any
   position:fixed descendant (the mobile menu lives inside the header),
   which trapped the full-screen menu inside the header's own small box
   instead of covering the page. Keeping the blur on ::before avoids that. */
.gp-header::before { content: ''; position: absolute; inset: 0; z-index: -1; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); pointer-events: none; }
.gp-header.is-scrolled { box-shadow: 0 8px 24px -12px rgba(0,0,0,0.5); }
.gp-header__inner { max-width: 1280px; margin: 0 auto; padding: 0 24px; height: var(--gp-header-h); display: flex; align-items: center; gap: 28px; }

.gp-branding { margin-right: auto; }
.gp-logo-text { display: flex; flex-direction: column; line-height: 1.1; }
.gp-logo-main { font-family: var(--gp-font-display); font-size: 22px; letter-spacing: 0.08em; color: var(--gp-brass-soft); text-transform: uppercase; }
.gp-logo-sub { font-family: var(--gp-font-accent); font-style: italic; font-size: 12px; color: var(--gp-ivory-dim); letter-spacing: 0.04em; }
.custom-logo { max-height: 56px; width: auto; }

.gp-primary-nav { margin-left: auto; }
.gp-menu { display: flex; gap: 30px; }
.gp-menu > li > a { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gp-ivory-dim); position: relative; padding: 6px 0; }
.gp-menu > li > a:hover, .gp-menu > li.current-menu-item > a { color: var(--gp-brass-soft); }
.gp-menu > li > a::after { content: ''; position: absolute; left: 0; bottom: 0; width: 0; height: 1px; background: var(--gp-brass); transition: width .25s ease; }
.gp-menu > li > a:hover::after { width: 100%; }

/* Submenu (if editors add child items in the WP menu) */
.gp-menu li { position: relative; }
.gp-menu ul.sub-menu { position: absolute; top: 100%; left: 0; min-width: 200px; background: var(--gp-panel); border: 1px solid var(--gp-line); padding: 10px 0; opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .2s ease; z-index: 50; }
.gp-menu li:hover > ul.sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.gp-menu ul.sub-menu a { display: block; padding: 8px 18px; font-size: 12.5px; text-transform: none; letter-spacing: 0.02em; }

.gp-header__actions { display: flex; align-items: center; gap: 6px; }
.gp-icon-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; color: var(--gp-ivory-dim); border-radius: 50%; }
.gp-icon-btn:hover { color: var(--gp-brass-soft); background: rgba(203,169,104,0.08); }
.gp-cart-count { position: absolute; top: 2px; right: 2px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 50%; background: var(--gp-brass); color: #1B140D; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }

.gp-menu-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 32px; height: 32px; background: none; border: none; position: relative; z-index: 1000; }
.gp-menu-toggle span { display: block; width: 100%; height: 1.5px; background: var(--gp-ivory); transition: all .25s ease; }
.gp-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.gp-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.gp-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.gp-search-panel { max-height: 0; overflow: hidden; transition: max-height .3s ease; border-top: 1px solid transparent; }
.gp-search-panel.is-open { max-height: 90px; border-top-color: var(--gp-line); }
.gp-search-form { max-width: 1280px; margin: 0 auto; padding: 18px 24px; display: flex; gap: 12px; }
.gp-search-form input[type="search"] { flex: 1; background: transparent; border: none; border-bottom: 1px solid var(--gp-line); color: var(--gp-ivory); font-size: 16px; padding: 8px 0; font-family: var(--gp-font-body); }
.gp-search-form input[type="search"]:focus { outline: none; border-color: var(--gp-brass); }
.gp-search-form button { background: none; border: none; color: var(--gp-brass); text-transform: uppercase; font-size: 12px; letter-spacing: 0.1em; }

/* =========================================================================
   HERO SLIDER
   ========================================================================= */
.gp-hero { position: relative; height: min(88vh, 780px); min-height: 480px; overflow: hidden; background: #000000; }
.gp-hero__track { position: relative; width: 100%; height: 100%; }
.gp-hero__slide {
	position: absolute; inset: 0; background-size: cover; background-position: center; background-color: #000000;
	display: flex; align-items: center; opacity: 0; visibility: hidden; transition: opacity .9s ease;
}
.gp-hero__slide.is-active { opacity: 1; visibility: visible; z-index: 2; }
.gp-hero__scrim { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(0,0,0,0.90) 0%, rgba(0,0,0,0.60) 42%, rgba(0,0,0,0.20) 75%); }
.gp-hero__content { position: relative; z-index: 2; max-width: 1280px; margin: 0 auto; padding: 0 24px; width: 100%; }

/* Desktop/laptop: show the full product image (like mobile) instead of a cropped-in zoom */
@media (min-width: 1024px) {
	.gp-hero__slide { background-size: contain; background-position: center right; }
}
.gp-hero__content .gp-eyebrow { color: var(--gp-brass-soft); }
.gp-hero__heading { font-size: clamp(34px, 5.5vw, 68px); max-width: 640px; line-height: 1.08; }
.gp-hero__subtext { font-family: var(--gp-font-accent); font-style: italic; font-size: 19px; color: var(--gp-ivory-dim); max-width: 480px; margin-bottom: 28px; }
.gp-hero--empty { display: flex; align-items: center; justify-content: center; text-align: center; height: 60vh; }

.gp-hero__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--gp-line); background: rgba(0,0,0,0.5); color: var(--gp-brass-soft); font-size: 22px; display: flex; align-items: center; justify-content: center; }
.gp-hero__arrow:hover { background: var(--gp-brass); color: #1B140D; }
.gp-hero__arrow--prev { left: 24px; }
.gp-hero__arrow--next { right: 24px; }
.gp-hero__dots { position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%); z-index: 5; display: flex; gap: 10px; }
.gp-hero__dot { width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--gp-brass); background: transparent; padding: 0; }
.gp-hero__dot.is-active { background: var(--gp-brass); }

/* =========================================================================
   TRUST BADGES
   ========================================================================= */
.gp-trust { border-bottom: 1px solid var(--gp-line); background: #000000; padding: 56px 0; }
.gp-trust__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px 24px; max-width: 640px; margin: 0 auto; }
.gp-trust__card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; }
.gp-trust__icon { color: #C9A227; margin-bottom: 4px; }
.gp-trust__title { font-size: 15px; font-weight: 700; letter-spacing: 0.02em; color: #ffffff; }
.gp-trust__sub { font-size: 12.5px; color: rgba(255,255,255,0.55); }
@media ( min-width: 900px ) {
	.gp-trust__grid { grid-template-columns: repeat(4, 1fr); max-width: 1100px; gap: 24px; }
}

/* ===== Scroll reveal animation ===== */
.gp-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .6s ease, transform .6s ease;
}
.gp-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* =========================================================================
   COLLECTIONS
   ========================================================================= */
.gp-collections__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.gp-collection-tile { position: relative; display: block; height: 420px; background-size: cover; background-position: center; overflow: hidden; }
.gp-collection-tile__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.88) 100%); transition: background .3s ease; }
.gp-collection-tile:hover .gp-collection-tile__scrim { background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.94) 100%); }
.gp-collection-tile__content { position: absolute; left: 28px; right: 28px; bottom: 28px; z-index: 2; }
.gp-collection-tile__label { display: block; font-family: var(--gp-font-display); font-size: 26px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gp-ivory); margin-bottom: 8px; }
.gp-collection-tile__cta { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gp-brass-soft); border-bottom: 1px solid var(--gp-brass); padding-bottom: 2px; transition: gap .2s ease; }
.gp-collection-tile:hover .gp-collection-tile__cta { gap: 12px; }

/* =========================================================================
   PRODUCT GRID / CARDS  (also styles WooCommerce's own ul.products output)
   ========================================================================= */
.gp-products--alt { background: var(--gp-bg-alt); }
.gp-product-grid,
ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 28px !important;
	list-style: none !important;
	margin: 0 !important; padding: 0 !important;
}
.gp-product-card,
ul.products li.product {
	position: relative;
	background: #000000;
	border: 1px solid var(--gp-line);
	border-radius: var(--gp-radius);
	padding: 0 0 18px;
	transition: border-color .25s ease, transform .25s ease;
}
.gp-product-card:hover,
ul.products li.product:hover { border-color: var(--gp-brass); transform: translateY(-4px); }

/* stitched-edge signature detail, revealed on hover */
.gp-product-card::after,
ul.products li.product::after {
	content: ''; position: absolute; inset: 8px; border: 1px dashed transparent; border-radius: 1px;
	pointer-events: none; transition: border-color .25s ease;
}
.gp-product-card:hover::after,
ul.products li.product:hover::after { border-color: rgba(203,169,104,0.35); }

.gp-product-card__media { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: #000000; }
.gp-product-card__media img { width: 100%; height: 100%; object-fit: cover; }
.gp-badge { position: absolute; top: 12px; left: 12px; padding: 4px 10px; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; border-radius: 2px; }
.gp-badge--new { background: var(--gp-brass); color: #1B140D; }
.gp-badge--hot { background: #C9A227; color: #1B140D; }
.gp-badge--sale { background: var(--gp-oxblood); color: var(--gp-ivory); left: auto; right: 12px; top: 12px; }
.gp-badge--new ~ .gp-badge--sale { top: 46px; }
.gp-product-card__body { padding: 18px 18px 0; }
.gp-product-card__title { font-family: var(--gp-font-body); font-size: 14.5px; font-weight: 500; text-transform: none; letter-spacing: 0.01em; margin-bottom: 8px; }
.gp-product-card__title a:hover { color: var(--gp-brass-soft); }
.gp-product-card__price { font-family: var(--gp-font-accent); font-size: 18px; color: var(--gp-brass-soft); margin-bottom: 14px; }
.gp-product-card__price del { color: var(--gp-ivory-dim); opacity: .6; margin-right: 8px; font-size: 15px; }
.gp-product-card__price ins { text-decoration: none; }

/* Match WooCommerce's default product markup to the same visual language */
ul.products li.product img { aspect-ratio: 1/1; object-fit: cover; }
ul.products li.product .woocommerce-loop-product__title { font-family: var(--gp-font-body); font-size: 14.5px; font-weight: 500; padding: 0 18px; margin: 14px 0 8px; color: var(--gp-ivory); }
ul.products li.product .price { font-family: var(--gp-font-accent); font-size: 18px; color: var(--gp-brass-soft); padding: 0 18px; display: block; margin-bottom: 14px; }
ul.products li.product .price del { color: var(--gp-ivory-dim); opacity: .6; }
ul.products li.product .price ins { text-decoration: none; }
ul.products li.product .button { margin: 0 18px 4px; width: calc(100% - 36px); display: block; text-align: center; padding: 10px 18px; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; border: 1px solid var(--gp-line); border-radius: var(--gp-radius); color: var(--gp-ivory); background: transparent; }
ul.products li.product .button:hover { border-color: var(--gp-brass); color: var(--gp-brass-soft); }
ul.products li.product .onsale { background: var(--gp-oxblood); color: var(--gp-ivory); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 10px; border-radius: 2px; min-height: 0; min-width: 0; line-height: 1.4; top: 12px; right: 12px; left: auto; }
ul.products li.product a img { border-radius: 0; }

/* =========================================================================
   BRAND BAND
   ========================================================================= */
.gp-band { background: var(--gp-bg-alt); border-top: 1px solid var(--gp-line); border-bottom: 1px solid var(--gp-line); padding: 70px 0; }
.gp-band__inner { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.gp-band svg { color: var(--gp-brass); }
.gp-band__quote { font-family: var(--gp-font-accent); font-style: italic; font-size: clamp(20px, 2.6vw, 28px); max-width: 720px; color: var(--gp-ivory); }

/* =========================================================================
   FOOTER
   ========================================================================= */
.gp-footer { position: relative; background: var(--gp-bg-alt); padding-top: 72px; overflow: hidden; }
.gp-footer__glyph { position: absolute; top: 18px; left: 50%; transform: translateX(-50%); width: 200px; height: 60px; color: var(--gp-line); opacity: .6; }
.gp-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 56px; border-bottom: 1px solid var(--gp-line); }
.gp-footer__brand p { color: var(--gp-ivory-dim); font-size: 14px; margin-top: 14px; max-width: 34ch; }
.gp-footer-heading { font-family: var(--gp-font-body); font-size: 12.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gp-brass-soft); margin-bottom: 18px; }
.gp-footer-menu li { margin-bottom: 11px; }
.gp-footer-menu a { font-size: 14px; color: var(--gp-ivory-dim); }
.gp-footer-menu a:hover { color: var(--gp-brass-soft); }

.gp-social-list { display: flex; gap: 10px; margin-top: 20px; }
.gp-social-list a { width: 34px; height: 34px; border: 1px solid var(--gp-line); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--gp-ivory-dim); }
.gp-social-list a:hover { border-color: var(--gp-brass); color: var(--gp-brass-soft); }

.gp-contact-list li { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; font-size: 13.5px; color: var(--gp-ivory-dim); }
.gp-contact-list svg { color: var(--gp-brass); flex-shrink: 0; margin-top: 2px; }
.gp-contact-list a:hover { color: var(--gp-brass-soft); }

.gp-newsletter { display: flex; margin-top: 22px; border-bottom: 1px solid var(--gp-line); padding-bottom: 8px; }
.gp-newsletter input { flex: 1; background: transparent; border: none; color: var(--gp-ivory); font-family: var(--gp-font-body); font-size: 14px; padding: 6px 0; }
.gp-newsletter input:focus { outline: none; }
.gp-newsletter button { background: none; border: none; color: var(--gp-brass); font-size: 18px; }
.gp-footer-widget { margin-top: 18px; font-size: 13.5px; color: var(--gp-ivory-dim); }

.gp-footer__bottom-inner { display: flex; justify-content: space-between; align-items: center; padding: 22px 0; flex-wrap: wrap; gap: 8px; }
.gp-footer__bottom-inner p { margin: 0; font-size: 12.5px; color: var(--gp-ivory-dim); }
.gp-footer__credit { opacity: .7; }

.gp-whatsapp-float {
	position: fixed; bottom: 24px; right: 24px; z-index: 150;
	width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: #fff;
	display: flex; align-items: center; justify-content: center; box-shadow: var(--gp-shadow);
	transition: transform .25s ease;
}
.gp-whatsapp-float:hover { transform: scale(1.08); }

/* =========================================================================
   WOOCOMMERCE — shop / category wrapper, single product, cart, checkout
   ========================================================================= */
.gp-shop-wrap { padding: 48px 0 100px; }
.gp-woo-header { padding-top: 40px; }
.gp-page-title { font-size: clamp(28px, 3.4vw, 42px); }
.woocommerce-breadcrumb, .gp-breadcrumb { font-size: 12.5px; color: var(--gp-ivory-dim); letter-spacing: 0.03em; margin-bottom: 18px; }
.woocommerce-breadcrumb a, .gp-breadcrumb a { color: var(--gp-brass-soft); }

.gp-shop-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; flex-wrap: wrap; gap: 14px; }
.woocommerce-result-count { color: var(--gp-ivory-dim); font-size: 13.5px; margin: 0; }
.woocommerce-ordering select { background: var(--gp-panel); color: var(--gp-ivory); border: 1px solid var(--gp-line); padding: 8px 14px; font-family: var(--gp-font-body); border-radius: var(--gp-radius); }

/* Sidebar widgets (layered nav, price filter) if a shop sidebar is added via widgets */
.widget-area .widget { margin-bottom: 32px; }
.widget-area .widget-title { font-family: var(--gp-font-body); font-size: 12.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gp-brass-soft); margin-bottom: 16px; }
.widget_layered_nav ul li, .widget_price_filter ul li { margin-bottom: 8px; font-size: 13.5px; color: var(--gp-ivory-dim); }
.price_slider_amount .button { background: var(--gp-brass); color: #1B140D; border: none; border-radius: var(--gp-radius); padding: 8px 16px; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }

/* Single product */
.woocommerce div.product { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.woocommerce div.product .woocommerce-product-gallery { border: 1px solid var(--gp-line); }
.woocommerce div.product .summary { padding-top: 4px; }
.woocommerce div.product .summary h1.product_title { font-size: clamp(26px, 3vw, 36px); margin-bottom: 12px; }
.woocommerce div.product .summary p.price { font-family: var(--gp-font-accent); font-size: 26px; color: var(--gp-brass-soft); margin-bottom: 20px; }
.woocommerce div.product .summary .woocommerce-product-details__short-description { color: var(--gp-ivory-dim); margin-bottom: 24px; }
.woocommerce div.product form.cart { display: flex; gap: 14px; align-items: center; margin-bottom: 28px; }
.woocommerce div.product form.cart .quantity input { width: 64px; background: var(--gp-panel); border: 1px solid var(--gp-line); color: var(--gp-ivory); padding: 14px 10px; text-align: center; border-radius: var(--gp-radius); }
.woocommerce div.product form.cart button.single_add_to_cart_button {
	background: linear-gradient(120deg, var(--gp-brass-soft), var(--gp-brass) 60%, var(--gp-tan)); color: #1B140D; font-weight: 600;
	border: none; padding: 15px 34px; letter-spacing: 0.1em; text-transform: uppercase; font-size: 13px; border-radius: var(--gp-radius);
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover { filter: brightness(1.08); }
.woocommerce div.product .product_meta { font-size: 13px; color: var(--gp-ivory-dim); border-top: 1px solid var(--gp-line); padding-top: 16px; }
.woocommerce div.product .product_meta a { color: var(--gp-brass-soft); }
.woocommerce-tabs ul.tabs { display: flex; gap: 28px; border-bottom: 1px solid var(--gp-line); margin: 56px 0 0; padding: 0; }
.woocommerce-tabs ul.tabs li { list-style: none; }
.woocommerce-tabs ul.tabs li a { font-size: 12.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gp-ivory-dim); padding-bottom: 14px; display: inline-block; }
.woocommerce-tabs ul.tabs li.active a { color: var(--gp-brass-soft); border-bottom: 2px solid var(--gp-brass); }
.woocommerce-tabs .panel { padding: 32px 0; color: var(--gp-ivory-dim); }

/* Related products reuse the ul.products grid rules above */
.related.products { margin-top: 80px; padding-top: 56px; border-top: 1px solid var(--gp-line); }
.related.products > h2 { font-size: clamp(24px, 3vw, 32px); margin-bottom: 32px; }

/* Cart & Checkout tables */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; border: 1px solid var(--gp-line); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 16px; border-bottom: 1px solid var(--gp-line); text-align: left; font-size: 14px; }
.woocommerce table.shop_table th { font-family: var(--gp-font-body); font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gp-brass-soft); }
.woocommerce #content table.cart img { width: 72px; border-radius: var(--gp-radius); }
.woocommerce a.remove { color: var(--gp-oxblood) !important; }
.woocommerce .cart-collaterals .cart_totals { background: var(--gp-panel); border: 1px solid var(--gp-line); padding: 24px; border-radius: var(--gp-radius); }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 20px; }
.woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce-checkout #payment #place_order, .checkout_button {
	background: linear-gradient(120deg, var(--gp-brass-soft), var(--gp-brass) 60%, var(--gp-tan)) !important; color: #1B140D !important; font-weight: 600;
	border: none !important; padding: 14px 28px !important; letter-spacing: 0.08em; text-transform: uppercase; font-size: 12.5px !important; border-radius: var(--gp-radius) !important;
}
body .woocommerce form .form-row input.input-text,
body .woocommerce form .form-row select,
body .woocommerce form .form-row textarea,
body .woocommerce-checkout input[type="text"],
body .woocommerce-checkout input[type="email"],
body .woocommerce-checkout input[type="tel"],
body .woocommerce-checkout input[type="password"],
body .woocommerce-checkout textarea,
body .woocommerce-checkout select,
body #customer_details input,
body #customer_details textarea,
body #customer_details select {
	background: #ffffff !important;
	border: 1px solid var(--gp-line);
	color: #111111 !important;
	-webkit-text-fill-color: #111111 !important;
	padding: 12px 14px; border-radius: var(--gp-radius); font-family: var(--gp-font-body);
}
body .woocommerce form .form-row input.input-text::placeholder,
body .woocommerce form .form-row textarea::placeholder {
	color: #777777 !important;
	-webkit-text-fill-color: #777777 !important;
}
.select2-container .select2-selection--single { background: #ffffff !important; border: 1px solid var(--gp-line) !important; height: 46px !important; }
.select2-container .select2-selection__rendered { color: #111111 !important; line-height: 46px !important; }

/* WooCommerce Checkout/Cart BLOCKS ("Contact information" / "Shipping
   address" layout) use different markup to the classic checkout above,
   so the site's light text colour was inheriting onto the white fields
   and making anything typed invisible. Force dark, readable text here too. */
.wp-block-woocommerce-checkout input[type="text"],
.wp-block-woocommerce-checkout input[type="email"],
.wp-block-woocommerce-checkout input[type="tel"],
.wp-block-woocommerce-checkout input[type="number"],
.wp-block-woocommerce-checkout input[type="password"],
.wp-block-woocommerce-checkout input[type="search"],
.wp-block-woocommerce-checkout textarea,
.wp-block-woocommerce-checkout select,
.wp-block-woocommerce-cart input[type="text"],
.wp-block-woocommerce-cart input[type="number"],
.wc-block-components-text-input input,
.wc-block-components-textarea textarea,
.wc-block-components-combobox input,
.wc-block-components-country-input input,
.wc-block-components-state-input input,
.wc-block-components-address-form input,
.wc-block-checkout__form input,
.wc-block-checkout__form textarea,
.wc-block-checkout__form select {
	background: #ffffff !important;
	color: #111111 !important;
	-webkit-text-fill-color: #111111 !important;
	border: 1px solid var(--gp-line);
	border-radius: var(--gp-radius);
}
.wc-block-components-text-input input::placeholder,
.wc-block-components-textarea textarea::placeholder {
	color: #777777 !important;
	-webkit-text-fill-color: #777777 !important;
}
.wc-block-components-text-input label,
.wc-block-components-textarea label,
.wc-block-components-combobox label,
.wc-block-components-country-input label,
.wc-block-components-state-input label {
	color: #333333 !important;
}
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
	background: var(--gp-panel); border-left: 3px solid var(--gp-brass); color: var(--gp-ivory); padding: 16px 20px; border-radius: var(--gp-radius); list-style: none;
}
.woocommerce-message .button { float: none; margin-left: 16px; }

/* My Account */
.woocommerce-account .woocommerce-MyAccount-navigation ul { border: 1px solid var(--gp-line); border-radius: var(--gp-radius); overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--gp-line); }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 14px 18px; font-size: 13.5px; color: var(--gp-ivory-dim); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--gp-brass-soft); background: var(--gp-panel); }

/* Generic content pages */
.gp-basic-content { padding: 64px 0 100px; max-width: 820px; }
.gp-basic-body p, .gp-basic-body li { color: var(--gp-ivory-dim); }
.gp-basic-thumb { margin: 24px 0; border: 1px solid var(--gp-line); }
.gp-404 { padding: 120px 0; text-align: center; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1024px) {
	.gp-product-grid, ul.products { grid-template-columns: repeat(3, 1fr) !important; }
	.woocommerce div.product { grid-template-columns: 1fr; gap: 32px; }
	.gp-footer__grid { grid-template-columns: 1fr 1fr; row-gap: 40px; }
}

@media (max-width: 782px) {
	.gp-menu-toggle { display: flex !important; order: -1; }
	.gp-primary-nav {
		position: fixed !important; inset: 0 !important;
		background: rgba(0,0,0,0.7) !important; z-index: 999 !important;
		display: flex !important; align-items: flex-start; justify-content: center;
		opacity: 0; visibility: hidden;
		transition: opacity .3s ease, visibility 0s linear .3s;
		margin-left: 0 !important;
		overflow-y: auto;
		width: 100% !important; height: 100% !important;
		padding: calc(var(--gp-header-h) + 20px) 20px 40px;
	}
	.gp-primary-nav.is-open {
		opacity: 1 !important; visibility: visible !important;
		transition: opacity .3s ease, visibility 0s linear 0s;
	}
	/* The menu panel itself drops in from the top-centre of the screen,
	   over the dark backdrop above, for a premium feel. */
	.gp-menu {
		flex-direction: column; align-items: center; gap: 4px;
		width: 100%; max-width: 400px;
		background: linear-gradient(180deg, #0d0d0a, #000000);
		border: 1px solid var(--gp-line);
		border-radius: 6px;
		padding: 22px 26px;
		text-align: center;
		box-shadow: 0 30px 70px -20px rgba(0,0,0,0.75);
		opacity: 0;
		transform: translateY(-32px);
		transition: opacity .35s ease, transform .35s ease;
	}
	.gp-primary-nav.is-open .gp-menu {
		opacity: 1;
		transform: translateY(0);
		transition-delay: .08s;
	}
	.gp-menu > li { width: 100%; }
	.gp-menu > li > a { display: block; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,0.08); font-size: 15px; letter-spacing: 0.12em; color: #ffffff !important; }
	.gp-menu > li:last-child > a { border-bottom: none; }
	.gp-menu > li > a:hover { color: #C9A227 !important; }
	.gp-menu ul.sub-menu { position: static; opacity: 1; visibility: visible; transform: none; border: none; background: none; padding-left: 0; display: none; }
	.gp-menu li.is-expanded ul.sub-menu { display: block; }

	.gp-collections__grid { grid-template-columns: 1fr; }
	.gp-product-grid, ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
	.gp-footer__grid { grid-template-columns: 1fr; }
	.gp-footer__glyph { display: none; }
	.gp-hero__arrow { width: 38px; height: 38px; font-size: 18px; }
	.gp-hero__arrow--prev { left: 12px; }
	.gp-hero__arrow--next { right: 12px; }
}

@media (max-width: 480px) {
	.gp-product-grid, ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
	.gp-section { padding: 56px 0; }
	.gp-hero { height: 72vh; }
}

/* ===== PREMIUM SINGLE PRODUCT PAGE ===== */
.single-product .gp-woo-main {
	background: #000000;
	padding-top: 24px;
	padding-bottom: 72px;
}

.single-product div.product {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 56px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

@media (max-width: 900px) {
	.single-product div.product {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}

/* Gallery - subtle gold-edged frame for a luxury feel */
.single-product .woocommerce-product-gallery {
	border: 1px solid rgba(201, 162, 39, 0.25);
	border-radius: 4px;
	padding: 8px;
	background: #0a0a0a;
}

.single-product .woocommerce-product-gallery__image img {
	border-radius: 2px;
}

/* Title & meta */
.single-product .product_title {
	font-family: var(--gp-font-serif, Georgia, serif);
	font-size: clamp(28px, 3vw, 40px);
	color: #ffffff;
	letter-spacing: 0.01em;
	margin-bottom: 12px;
}

.single-product .woocommerce-product-details__short-description {
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.7;
	margin: 18px 0;
}

.single-product p.price,
.single-product p.price ins {
	color: #C9A227 !important;
	font-size: 26px;
	font-weight: 600;
	letter-spacing: 0.01em;
}

.single-product p.price del {
	color: rgba(255, 255, 255, 0.35) !important;
	font-size: 17px;
}

/* Small gold eyebrow above title for a premium editorial touch */
.single-product div.summary::before {
	content: "GIARDINO PRIME — HANDCRAFTED";
	display: block;
	font-size: 11px;
	letter-spacing: 0.14em;
	color: #C9A227;
	margin-bottom: 14px;
	font-weight: 600;
}

/* Quantity + Add to cart row */
.single-product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin: 24px 0;
}

.single-product .quantity input {
	background: #0a0a0a;
	border: 1px solid rgba(255,255,255,0.15);
	color: #ffffff;
	height: 48px;
	width: 64px;
	text-align: center;
	border-radius: 3px;
}

.single-product .single_add_to_cart_button {
	height: 48px;
	padding: 0 36px;
	font-size: 13.5px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-radius: 3px;
}

/* Trust strip under Add to Cart */
.gp-pdp-trust {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px 20px;
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid rgba(255,255,255,0.1);
}

.gp-pdp-trust__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12.5px;
	color: rgba(255,255,255,0.75);
}

.gp-pdp-trust__item svg {
	color: #C9A227;
	flex-shrink: 0;
}

@media (max-width: 480px) {
	.gp-pdp-trust { grid-template-columns: 1fr; }
}

/* Tabs (description/reviews) - premium dark styling */
.single-product .woocommerce-tabs ul.tabs li a {
	color: rgba(255,255,255,0.55);
	letter-spacing: 0.04em;
	font-size: 13px;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
	color: #C9A227;
}

.single-product .woocommerce-tabs .panel {
	color: rgba(255,255,255,0.75);
	line-height: 1.8;
}

/* Related products heading premium touch */
.single-product .related.products > h2 {
	font-family: var(--gp-font-serif, Georgia, serif);
	color: #ffffff;
	text-align: center;
	font-size: 26px;
	margin: 64px 0 32px;
}

/* ===== Scrolling ticker bar (golden, black text) ===== */
.gp-ticker {
	background: linear-gradient(120deg, #8a6d23, #C9A227 45%, #8a6d23);
	overflow: hidden;
	white-space: nowrap;
	padding: 12px 0;
}
.gp-ticker__track {
	display: inline-flex;
	animation: gp-ticker-scroll 22s linear infinite;
}
.gp-ticker__item {
	display: inline-block;
	padding-right: 60px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: #000000;
	text-transform: uppercase;
}
@keyframes gp-ticker-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.gp-ticker__track { animation: none; }
}

/* ===== Customer Reviews — auto-scrolling premium marquee ===== */
.gp-reviews {
	padding: 72px 0;
	background: #000000;
	overflow: hidden;
}
.gp-reviews .gp-section__head {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 40px;
	padding: 0 24px;
}
.gp-reviews__track {
	display: flex;
	gap: 22px;
	width: max-content;
	animation: gp-reviews-scroll 40s linear infinite;
}
.gp-reviews:hover .gp-reviews__track {
	animation-play-state: paused;
}
@keyframes gp-reviews-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
.gp-review-card {
	flex: 0 0 300px;
	background: #0a0a0a;
	border: 1px solid rgba(201, 162, 39, 0.2);
	border-radius: 4px;
	padding: 24px;
}
.gp-review-card__stars {
	color: #C9A227;
	font-size: 14px;
	letter-spacing: 2px;
	margin-bottom: 12px;
}
.gp-review-card__text {
	color: rgba(255,255,255,0.8);
	font-size: 14px;
	line-height: 1.7;
	margin-bottom: 18px;
	min-height: 95px;
}
.gp-review-card__author {
	font-size: 13px;
	font-weight: 600;
	color: #ffffff;
	letter-spacing: 0.03em;
}
.gp-review-card__author span {
	font-weight: 400;
	color: rgba(255,255,255,0.5);
}
@media (prefers-reduced-motion: reduce) {
	.gp-reviews__track { animation: none; flex-wrap: wrap; }
}
@media (max-width: 600px) {
	.gp-review-card { flex: 0 0 260px; }
}
