/* =========================================================
   GUCCI CHILD THEME — Main Stylesheet
   Design: GGLuxOutlet — minimalist luxury aesthetic
   Fonts:  Cormorant Garamond (serif) · Inter (sans-serif)
   ========================================================= */

/* ── Design Tokens ──────────────────────────────────────── */
:root {
	--gc-black:      #111;
	--gc-white:      #fff;
	--gc-cream:      #f5f1ea;
	--gc-beige:      #ede5d6;
	--gc-gold:       #c9b87a;
	--gc-muted:      #6b6b6b;
	--gc-border:     #ececec;
	--gc-sale:       #8b0000;
	--gc-price-old:  #9b9b9b;

	--gc-serif: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	--gc-sans:  'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;

	--gc-transition: .25s ease;
}

/* ── Global Font Override ───────────────────────────────── */
body,
input,
textarea,
select,
button {
	font-family: var(--gc-sans);
	font-size: 14px;
	line-height: 1.5;
	color: var(--gc-black);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--gc-serif);
	font-weight: 400;
	line-height: 1.1;
}

a {
	color: inherit;
	text-decoration: none;
}

/* =========================================================
   UTILITY BAR
   ========================================================= */
.gc-utility-bar {
	background: var(--gc-black);
	color: var(--gc-white);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.gc-utility-bar__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 32px;
	padding: 9px 24px;
	text-align: center;
	overflow: hidden;
	white-space: nowrap;
}

.gc-utility-bar__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.gc-utility-bar__item svg {
	width: 12px;
	height: 12px;
	flex-shrink: 0;
}

.gc-utility-bar__dot {
	color: var(--gc-gold);
}

@media (max-width: 767px) {
	.gc-utility-bar__inner {
		gap: 14px;
		font-size: 10px;
		overflow-x: auto;
		justify-content: flex-start;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 8px 16px;
	}
	.gc-utility-bar__inner::-webkit-scrollbar { display: none; }
	.gc-utility-bar__item { flex-shrink: 0; }
	.gc-utility-bar__dot { display: none; }
}

/* =========================================================
   HEADER
   ========================================================= */
.gc-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--gc-white);
	border-bottom: 1px solid var(--gc-border);
}

.gc-header__top {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	padding: 18px 24px;
	gap: 16px;
}

.gc-header__left,
.gc-header__right {
	display: flex;
	align-items: center;
	gap: 18px;
}

.gc-header__right {
	justify-content: flex-end;
}

/* Icon buttons / links */
.gc-header__icon {
	width: 22px;
	height: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--gc-black);
	padding: 0;
	position: relative;
	text-decoration: none;
	flex-shrink: 0;
}

.gc-header__icon svg {
	width: 100%;
	height: 100%;
	stroke: var(--gc-black);
	display: block;
}

/* Logo */
.gc-header__logo {
	font-family: var(--gc-serif);
	font-size: 28px;
	letter-spacing: .22em;
	font-weight: 500;
	text-transform: uppercase;
	text-align: center;
	white-space: nowrap;
	color: inherit;
	text-decoration: none;
	display: block;
}

.gc-header__logo small {
	display: block;
	font-family: var(--gc-sans);
	font-size: 9px;
	letter-spacing: .35em;
	color: var(--gc-muted);
	margin-top: 2px;
	font-weight: 400;
}

.gc-header__logo-img {
	max-height: 36px;
	width: auto;
	display: block;
	margin: 0 auto;
}

.gc-header__logo-text {
	display: block;
}

/* When image logo is used, subtitle sits below the image */
.gc-header__logo--has-image {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
}

/* Shared badge styles for wishlist + cart count */
.site-header__wishlist-count,
.gc-header__cart-count {
	position: absolute;
	/* Desktop: icon is 22×22px, badge at top-right corner */
	top: -5px;
	right: -5px;
	background: var(--gc-black) !important;
	color: var(--gc-white) !important;
	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	min-width: 15px;
	height: 15px;
	padding: 0 3px;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	pointer-events: none;
	z-index: 1;
}

.site-header__wishlist-count {
	display: none; /* shown via JS: display:flex */
}

.gc-header__cart-count {
	display: flex;
}

.gc-header__cart-count.is-hidden {
	display: none;
}

/* Mobile: icon touch target is 40×40px but SVG is 20×20px centered.
   SVG starts 10px from each edge → badge must sit at SVG corner, not touch target corner */
@media (max-width: 768px) {
	.site-header__wishlist-count,
	.gc-header__cart-count {
		top: 7px;   /* (40 - 20) / 2 - 3 = 7 */
		right: 7px; /* same */
	}
}

/* Primary nav */
.gc-header__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 30px;
	padding: 10px 24px 16px;
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.gc-header__nav a {
	position: relative;
	padding: 6px 0;
	color: var(--gc-black);
	text-decoration: none;
	transition: color var(--gc-transition);
}

.gc-header__nav a:hover {
	color: var(--gc-muted);
}

.gc-header__nav a.is-sale {
	color: var(--gc-sale);
	font-weight: 500;
}

/* Underline hover/active indicator */
.gc-header__nav a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform var(--gc-transition);
}

.gc-header__nav a:hover::after,
.gc-header__nav a.is-active::after {
	transform: scaleX(1);
}

@media (max-width: 1446px) {
	.gc-header__nav { display: none; }
}

/* =========================================================
   MOBILE DRAWER
   ========================================================= */
.gc-drawer {
	position: fixed;
	inset: 0;
	background: rgba(17, 17, 17, .4);
	z-index: 100;
	display: none;
	opacity: 0;
	transition: opacity .25s ease;
}

.gc-drawer.is-open {
	display: block;
	opacity: 1;
}

.gc-drawer__panel {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: min(380px, 90%);
	background: var(--gc-white);
	padding: 24px;
	transform: translateX(-100%);
	transition: transform .3s ease;
	overflow-y: auto;
}

.gc-drawer.is-open .gc-drawer__panel {
	transform: translateX(0);
}

.gc-drawer__close {
	position: absolute;
	top: 18px;
	right: 18px;
	font-size: 24px;
	line-height: 1;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--gc-black);
	padding: 4px;
}

.gc-drawer__title {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--gc-muted);
	margin: 40px 0 14px;
}

.gc-drawer__list {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 28px;
}

.gc-drawer__list a {
	padding: 12px 0;
	display: block;
	font-family: var(--gc-serif);
	font-size: 20px;
	border-bottom: 1px solid #f0f0f0;
	text-decoration: none;
	color: var(--gc-black);
	transition: color var(--gc-transition);
}

.gc-drawer__list a:hover {
	color: var(--gc-muted);
}

/* =========================================================
   HERO BLOCK
   ========================================================= */

.gc-hero {
	position: relative;
	height: clamp(560px, 80vh, 820px);
	background: linear-gradient(135deg, #d8cdb8 0%, #b8a888 50%, #6f5a3a 100%);
	color: #fff;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}

/* Decorative radial overlay */
.gc-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 20% 30%, rgba(255,255,255,.18), transparent 55%),
		radial-gradient(ellipse at 80% 80%, rgba(0,0,0,.25), transparent 60%);
	pointer-events: none;
}

/* When real background image is set via CSS custom property */
.gc-hero.has-image {
	background-image: var(--gc-hero-bg-desktop);
	background-size: cover;
	background-position: center;
}

/* Dark gradient overlay for image/video legibility */
.gc-hero.has-image::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.15) 50%, rgba(0,0,0,.5) 100%);
	pointer-events: none;
}

/* ── Hero video background */
.gc-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
}

/* Show desktop video, hide mobile video on ≥768px */
.gc-hero__video--mobile {
	display: none;
}

@media (max-width: 767px) {
	.gc-hero__video--desktop {
		display: none;
	}
	.gc-hero__video--mobile {
		display: block;
	}
}

/* Video hero: remove static background-image */
/* Video heroes keep .gc-hero's gradient as the instant first paint — the video is
   position:absolute/inset:0 and covers it once it streams in. Blanking it here
   meant an empty first screen for as long as the video took to load. */

/* Keep overlay over video */
.gc-hero.has-video::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.15) 50%, rgba(0,0,0,.55) 100%);
	pointer-events: none;
	z-index: 1;
}

.gc-hero__inner {
	position: relative;
	z-index: 3;
	padding: 0 0 48px 48px;
	max-width: 380px;
}

.gc-hero__eyebrow {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: .25em;
	text-transform: uppercase;
	margin-bottom: 14px;
	color: #fff;
	opacity: .9;
}

.gc-hero__title {
	font-family: var(--gc-serif);
	font-size: clamp(26px, 3.2vw, 42px);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: -.01em;
	margin-bottom: 10px;
	color: #fff;
}

.gc-hero__sub {
	font-size: 13px;
	max-width: 320px;
	margin-bottom: 22px;
	color: #fff;
	opacity: .9;
	line-height: 1.6;
}

/* CTA — прозора, тільки текст зі стрілкою, без рамки */
.gc-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	color: #fff;
	padding: 0;
	font-size: 10px;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid rgba(255,255,255,.6);
	padding-bottom: 3px;
	transition: border-color var(--gc-transition), opacity var(--gc-transition);
}

.gc-hero__cta:hover {
	background: transparent;
	color: #fff;
	border-bottom-color: #fff;
	opacity: .8;
}

/* Mobile */
@media (max-width: 767px) {
	.gc-hero {
		height: clamp(440px, 78vh, 620px);
		align-items: flex-end;
	}

	.gc-hero.has-image {
		background-image: var(--gc-hero-bg-mobile, var(--gc-hero-bg-desktop));
	}

	.gc-hero__inner {
		padding: 0 0 32px 24px;
		max-width: 280px;
	}

	.gc-hero__eyebrow {
		font-size: 10px;
		letter-spacing: .22em;
		margin-bottom: 10px;
	}

	.gc-hero__title {
		font-size: clamp(22px, 6vw, 34px);
		margin-bottom: 10px;
	}

	.gc-hero__sub {
		font-size: 12px;
		margin-bottom: 18px;
		max-width: 260px;
	}

	.gc-hero__cta {
		font-size: 9px;
		letter-spacing: .18em;
	}
}

/* =========================================================
   PRODUCT CARD IMAGE SLIDER (Swiper.js — global)
   ========================================================= */

/* Swiper container fills the image-wrap.
 * Use two-class specificity to beat Swiper bundle's `.swiper { position:relative }`. */
.gc-card__image-wrap .gc-card-swiper,
.gc-product-card__media .gc-card-swiper,
.gc-pdp-related__img-wrap .gc-card-swiper {
	position: absolute !important;
	top: 0; right: 0; bottom: 0; left: 0;
	overflow: hidden;
	width: auto;
	height: auto;
}

/* Before Swiper inits, show only the first slide (avoids blank multi-slide flash). */
.gc-card-swiper:not(.swiper-initialized) .swiper-slide:not(:first-child) {
	display: none;
}

.gc-card-swiper .swiper-wrapper {
	height: 100% !important;
}

.gc-card-swiper .swiper-slide {
	height: 100%;
	background: #fff;
	overflow: hidden;
}

.gc-card__slide-link {
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: auto;
	cursor: pointer;
}

.gc-card-swiper .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	display: block;
	pointer-events: none;
}

.gc-card-slide-img--deferred:not([src]) {
	visibility: hidden;
}

.gc-card-slide-img--deferred[data-gc-loaded="1"] {
	visibility: visible;
}

/* Thin pagination bars — bottom edge */
.gc-card__slider-bars {
	position: absolute;
	bottom: -10px;
	left: 0;
	right: 0;
	display: flex;
	gap: 3px;
	padding: 0 8px;
	z-index: 4;
	opacity: 0;
	transition: opacity .2s ease;
	pointer-events: none;
}

.gc-card__slider-bar {
	flex: 1;
	height: 2px;
	background: rgba(0,0,0,.18);
	transition: background .2s ease;
}

.gc-card__slider-bar.is-active {
	background: #111;
}

/* Arrow buttons — absolutely positioned over the card */
.gc-card__slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255,255,255,.85);
	border: none;
	cursor: pointer;
	padding: 0;
	opacity: 0;
	transition: opacity .2s ease, background .15s ease;
	border-radius: 50%;
}

.gc-card__slider-arrow--prev { left: 10px; }
.gc-card__slider-arrow--next { right: 10px; }

.gc-card__slider-arrow svg {
	display: block;
	pointer-events: none;
}

/* Desktop hover: show UI */
@media (hover: hover) {
	.gc-card--slider:hover .gc-card__slider-bars,
	.gc-card--slider:hover .gc-card__slider-arrow {
		opacity: 1;
	}

	.gc-card__slider-arrow:hover {
		background: #fff;
	}
}

/* Touch: always show bars, hide arrows */
@media (hover: none) {
	.gc-card--slider .gc-card__slider-bars {
		opacity: 1;
	}
	.gc-card__slider-arrow {
		display: none;
	}
}

/* =========================================================
   OUR PROCESS SECTION
   ========================================================= */

.gc-process {
	position: relative;
	height: clamp(420px, 65vh, 720px);
	overflow: hidden;
	display: flex;
	align-items: center;
	background: #111;
	color: #fff;
}

.gc-process__video,
.gc-process__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
}

.gc-process__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.2) 60%, rgba(0,0,0,.45) 100%);
	z-index: 1;
	display: flex;
	align-items: center;
}

.gc-process__inner {
	position: relative;
	z-index: 2;
	padding-top: 48px;
	padding-bottom: 48px;
	max-width: 640px;
}

.gc-process__eyebrow {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: .25em;
	text-transform: uppercase;
	margin-bottom: 18px;
	color: #fff;
	opacity: .85;
}

.gc-process__title {
	font-family: var(--gc-serif);
	font-size: clamp(32px, 5vw, 56px);
	font-weight: 400;
	line-height: 1.08;
	margin-bottom: 16px;
	color: #fff;
}

.gc-process__desc {
	font-size: 14px;
	line-height: 1.65;
	color: #fff;
	opacity: .9;
	max-width: 520px;
	margin-bottom: 28px;
}

.gc-process__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255,255,255,.7);
	padding: 14px 30px;
	font-size: 12px;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background var(--gc-transition), border-color var(--gc-transition);
}

.gc-process__cta:hover {
	background: rgba(255,255,255,.12);
	border-color: #fff;
}

@media (max-width: 767px) {
	.gc-process {
		height: clamp(360px, 72vh, 540px);
	}

	.gc-process__title {
		font-size: clamp(28px, 8vw, 40px);
	}

	.gc-process__inner {
		padding-top: 32px;
		padding-bottom: 32px;
	}
}

/* =========================================================
   CATEGORY TILE GRID
   ========================================================= */

.gc-tile-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 4px;
}

@media (min-width: 768px) {
	.gc-tile-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.gc-tile {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	padding: 24px;
	background: #e8e2d5;
	color: #111;
	text-decoration: none;
	transition: transform .5s ease;
}

.gc-tile:nth-child(2) { background: #c9b87a; color: #fff; }
.gc-tile:nth-child(3) { background: #2b2b2b; color: #fff; }
.gc-tile:nth-child(4) { background: #d4c4ae; }

/* Real background image */
.gc-tile.has-image {
	background-size: cover;
	background-position: center;
	color: #fff;
}

/* Dark gradient for image legibility */
.gc-tile.has-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.45) 100%);
	pointer-events: none;
}

.gc-tile__content {
	position: relative;
	z-index: 2;
	width: 100%;
}

.gc-tile.has-image .gc-tile__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 24px 24px 28px;
	background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.65) 100%);
	z-index: 2;
}

.gc-tile .gc-tile__title {
	font-family: var(--gc-serif);
	font-size: 28px;
	font-weight: 400;
	margin-bottom: 12px;
	line-height: 1.05;
	letter-spacing: normal;
	text-transform: none;
	color: inherit;
}

.gc-tile__cta {
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-bottom: 1px solid currentColor;
	padding-bottom: 4px;
	transition: gap .25s ease;
	color: inherit;
}

@media (hover: hover) {
	.gc-tile:hover .gc-tile__cta {
		gap: 14px;
	}
}

@media (max-width: 767px) {
	.gc-tile-grid {
		gap: 2px;
	}

	.gc-tile {
		padding: 18px;
	}

	.gc-tile.has-image .gc-tile__content {
		padding: 18px 18px 22px;
	}

	.gc-tile__title {
		font-size: 22px;
	}

	.gc-tile__cta {
		font-size: 10px;
		letter-spacing: .18em;
	}
}

/* =========================================================
   FEATURED PRODUCTS BLOCK
   ========================================================= */

.gc-featured {
	padding: 80px 0;
}

.gc-featured__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	padding: 0 24px;
	margin-bottom: 40px;
	gap: 24px;
	max-width: 1440px;
	margin-left: auto;
	margin-right: auto;
}

.gc-featured__head .gc-featured__title {
	font-family: var(--gc-serif);
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: -.01em;
	text-transform: none;
	color: var(--gc-black);
}

.gc-featured__link {
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--gc-black);
	padding-bottom: 4px;
	color: var(--gc-black);
	text-decoration: none;
	white-space: nowrap;
	transition: opacity var(--gc-transition);
}

.gc-featured__link:hover {
	opacity: .6;
}

/* Product grid — 2 col mobile, 4 col desktop, no max */
.gc-product-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 4px;
	padding: 0 4px;
}

@media (min-width: 768px) {
	.gc-product-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* Product card */
.gc-product-card {
	position: relative;
	background: #f5f1ea;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
}

.gc-product-card__media {
	position: relative;
	aspect-ratio: 1 / 1;
	background: #ede5d6;
	overflow: hidden;
}

.gc-card--slider.gc-product-card,
.gc-card--slider .gc-product-card__media {
	overflow: visible;
}

.gc-product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform .5s ease;
}

/* Only scale when no slider */
@media (hover: hover) {
	.gc-product-card:not(.gc-card--slider):hover .gc-product-card__media img {
		transform: scale(1.03);
	}
}

/* Slider arrows positioned over the media wrap (outside <a>) */
.gc-product-card {
	position: relative;
}

/* Wishlist button — SVG heart, matches example design */
.gc-product-card__wishlist {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 32px;
	height: 32px;
	background: none;
	border: none;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 3;
	color: #111;
}

.gc-product-card__wishlist svg {
	width: 18px;
	height: 18px;
	transition: fill .2s ease, stroke .2s ease, transform .2s ease;
}

.gc-product-card__wishlist:hover svg {
	transform: scale(1.15);
}

/* Active / saved state */
.gc-product-card__wishlist.is-active,
.gc-product-card__wishlist[aria-pressed="true"] {
	color: #c00;
}

.gc-product-card__wishlist.is-active svg,
.gc-product-card__wishlist[aria-pressed="true"] svg {
	fill: #c00;
	stroke: #c00;
}

.gc-product-card__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	font-size: 9px;
	letter-spacing: .22em;
	text-transform: uppercase;
	background: #fff;
	padding: 6px 10px;
	font-weight: 500;
	z-index: 3;
}

.gc-product-card__badge.is-discount {
	background: #111;
	color: #fff;
}

.gc-product-card__body {
	padding: 16px 18px 22px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.gc-product-card__title {
	font-size: 13px;
	line-height: 1.4;
	letter-spacing: .02em;
	color: var(--gc-black);
}

.gc-product-card__prices {
	display: flex;
	align-items: baseline;
	gap: 10px;
	font-size: 13px;
}

.gc-product-card__prices del,
.gc-product-card__price-old {
	text-decoration: line-through;
	color: #9b9b9b;
}

.gc-product-card__prices ins,
.gc-product-card__price-new {
	text-decoration: none;
	color: var(--gc-black);
	font-weight: 500;
}

/* WooCommerce wc_price() wraps in <bdi> inside <span> — normalize */
.gc-product-card__prices .woocommerce-Price-amount {
	font-size: inherit;
}

/* Mobile */
@media (max-width: 767px) {
	.gc-featured {
		padding: 60px 0;
	}

	.gc-featured__head {
		padding: 0 16px;
		margin-bottom: 26px;
	}
}

/* =========================================================
   SALE BLOCK — full-width video/image banner (like hero)
   ========================================================= */

.gc-sale {
	position: relative;
	height: clamp(480px, 70vh, 760px);
	background: #1a1a1a center / cover no-repeat;
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	overflow: hidden;
	color: #fff;
}

/* Image bg */
.gc-sale.has-image {
	background-size: cover;
	background-position: center;
	background-image: var(--gc-sale-bg-desktop);
}
@media (max-width: 767px) {
	.gc-sale.has-image {
		background-image: var(--gc-sale-bg-mobile, var(--gc-sale-bg-desktop));
	}
}

/* Dark overlay */
.gc-sale::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.2);
	pointer-events: none;
	z-index: 1;
}

/* Video bg */
.gc-sale__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
}

/* Content */
.gc-sale__inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-align: left;
	gap: 16px;
	padding: 0 48px 52px;
	max-width: 560px;
}

.gc-sale__eyebrow {
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: rgba(255,255,255,.75);
}

.gc-sale__headline {
	font-family: var(--gc-serif);
	font-size: clamp(32px, 5vw, 64px);
	font-weight: 400;
	line-height: 1.05;
	color: #fff;
	margin: 0;
}

.gc-sale__desc {
	font-size: 14px;
	line-height: 1.65;
	color: rgba(255,255,255,.85);
	margin: 0;
	max-width: 420px;
}

.gc-sale__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	color: #fff;
	padding: 0;
	padding-bottom: 3px;
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	margin-top: 8px;
	border-bottom: 1px solid rgba(255,255,255,.6);
	transition: border-color var(--gc-transition), opacity var(--gc-transition);
}

.gc-sale__btn:hover {
	border-bottom-color: #fff;
	opacity: .75;
}

@media (max-width: 767px) {
	.gc-sale {
		height: clamp(360px, 65vh, 560px);
	}
}

/* =========================================================
   WELCOME BANNER — split: left text / right image
   ========================================================= */

.gc-welcome {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: #ede5d6;
}

/* Left column — text + button */
.gc-welcome__left {
	display: flex;
	align-items: center;
	padding: 80px 64px;
}

.gc-welcome__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	max-width: 400px;
}

.gc-welcome__title {
	font-family: var(--gc-serif);
	font-size: clamp(28px, 3.5vw, 52px);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: .01em;
	color: #1a1a1a;
	margin: 0;
}

.gc-welcome__sub {
	font-size: 14px;
	line-height: 1.7;
	color: #555;
	margin: 0;
}

.gc-welcome__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	color: #111;
	padding: 0;
	padding-bottom: 3px;
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	margin-top: 8px;
	border-bottom: 1px solid rgba(0,0,0,.4);
	transition: border-color var(--gc-transition), opacity var(--gc-transition);
}

.gc-welcome__btn:hover { border-bottom-color: #111; opacity: .6; }

/* Right column — image fills to natural height */
.gc-welcome__right {
	overflow: hidden;
}

.gc-welcome__right img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 767px) {
	.gc-welcome {
		grid-template-columns: 1fr;
	}
	.gc-welcome__left {
		padding: 48px 24px;
	}
	.gc-welcome__content {
		align-items: center;
		text-align: center;
	}
	.gc-welcome__right {
		order: -1;
	}
	.gc-welcome__right img {
		height: auto;
		max-height: 420px;
		object-fit: cover;
		width: 100%;
	}
	.gc-welcome__title { font-size: clamp(24px, 7vw, 36px); }
}

/* =========================================================
   TRUST BLOCK
   ========================================================= */

.gc-trust {
	background: #f5f1ea;
	padding: 80px 0;
}

.gc-trust__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	text-align: center;
}

@media (min-width: 768px) {
	.gc-trust__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 60px;
	}
}

.gc-trust__icon {
	width: 48px;
	height: 48px;
	margin: 0 auto 18px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.gc-trust__icon svg {
	width: 36px;
	height: 36px;
	stroke: var(--gc-black);
}

.gc-trust__item .gc-trust__title {
	font-family: var(--gc-serif);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	margin-bottom: 8px;
	color: var(--gc-black);
}

.gc-trust__text {
	font-size: 13px;
	color: #555;
	max-width: 280px;
	margin: 0 auto;
	line-height: 1.6;
}

@media (max-width: 767px) {
	.gc-trust {
		padding: 60px 0;
	}

	.gc-trust__grid {
		gap: 36px;
		padding: 0 24px;
	}

	.gc-trust__icon {
		width: 40px;
		height: 40px;
		margin-bottom: 14px;
	}

	.gc-trust__icon svg {
		width: 30px;
		height: 30px;
	}

	.gc-trust__item .gc-trust__title {
		font-size: 19px;
	}

	.gc-trust__text {
		font-size: 13px;
	}
}

/* =========================================================
   FEATURE / EDITORIAL BLOCK
   ========================================================= */

.gc-feature-wrap {
	background: var(--gc-white);
}

/* Self-contained container — no .container class to avoid padding conflict */
.gc-feature {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	padding: 100px 24px;
	align-items: center;
}

@media (min-width: 900px) {
	.gc-feature {
		grid-template-columns: 1.1fr 1fr;
		gap: 80px;
		padding: 140px 24px;
	}
}

/* Left: image */
.gc-feature__media {
	position: relative;
	aspect-ratio: 4 / 5;
	background: linear-gradient(160deg, #5c4830 0%, #2c2418 100%);
	overflow: hidden;
}

.gc-feature__media.has-image {
	background-image: var(--gc-feat-bg-desktop);
	background-size: cover;
	background-position: center;
}

@media (max-width: 767px) {
	.gc-feature__media.has-image {
		background-image: var(--gc-feat-bg-mobile, var(--gc-feat-bg-desktop));
	}
}

/* Video inside feature media */
.gc-feature__media.has-video {
	background-image: none;
}

.gc-feature__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
}

/* The desktop/mobile show-hide pair is gone: there is now a single <video> and
   JS attaches the source matching the viewport (see main.js lazy-video loader). */

/* Overlay label — top-left corner of image */
.gc-feature__media-label {
	position: absolute;
	top: 24px;
	left: 24px;
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: .25em;
	text-transform: uppercase;
	color: rgba(255,255,255,.4);
	z-index: 2;
	pointer-events: none;
}

/* Right: content */
.gc-feature__content {
	max-width: 460px;
}

.gc-feature__eyebrow {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--gc-muted);
	margin-bottom: 16px;
}

.gc-feature__content .gc-feature__title {
	font-family: var(--gc-serif);
	font-size: clamp(32px, 4vw, 52px);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: -.01em;
	text-transform: none;
	margin-bottom: 20px;
	color: var(--gc-black);
}

.gc-feature__text {
	font-size: 14px;
	line-height: 1.7;
	color: #444;
	margin-bottom: 28px;
}

.gc-feature__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border: 1px solid var(--gc-black);
	padding: 14px 28px;
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gc-black);
	transition: background var(--gc-transition), color var(--gc-transition);
}

.gc-feature__cta:hover {
	background: var(--gc-black);
	color: #fff;
}

@media (max-width: 767px) {
	.gc-feature {
		padding: 60px 16px;
		gap: 28px;
	}

	.gc-feature__eyebrow {
		font-size: 10px;
		margin-bottom: 12px;
	}

	.gc-feature__content .gc-feature__title {
		font-size: 30px;
		margin-bottom: 14px;
	}

	.gc-feature__text {
		font-size: 13px;
		margin-bottom: 22px;
	}

	.gc-feature__content {
		max-width: 100%;
	}
}

/* =========================================================
   NEWSLETTER BLOCK
   ========================================================= */

.gc-newsletter {
	position: relative;
	background: #111;
	color: #fff;
	padding: 80px 24px;
	text-align: center;
}

.gc-newsletter.has-bg {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.gc-newsletter.has-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.55);
	pointer-events: none;
	z-index: 0;
}

.gc-newsletter.has-bg > * {
	position: relative;
	z-index: 1;
}

.gc-newsletter .gc-newsletter__title {
	font-family: var(--gc-serif);
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 400;
	line-height: 1.1;
	text-transform: none;
	letter-spacing: normal;
	margin-bottom: 14px;
	color: #fff;
}

.gc-newsletter__sub {
	font-size: 13px;
	color: #b8b8b8;
	max-width: 520px;
	margin: 0 auto 32px;
	line-height: 1.7;
}

/* CF7 form wrapper */
.gc-newsletter__form-wrap {
	max-width: 480px;
	margin: 0 auto;
}

/* CF7 wraps everything in <form> → <p> → [span.wpcf7-form-control-wrap + input[submit] + span.spinner]
   We target that <p> as the flex row with border-bottom */
.gc-newsletter__form-wrap form > p {
	display: flex;
	align-items: center;
	border-bottom: 1px solid #444;
	margin: 0;
}

/* span wrapping the email input — takes all available space */
.gc-newsletter__form-wrap .wpcf7-form-control-wrap {
	flex: 1;
	min-width: 0;
}

.gc-newsletter__form-wrap input[type="email"],
.gc-newsletter__form-wrap input[type="text"] {
	width: 100%;
	background: transparent;
	border: none;
	outline: none;
	color: #fff;
	padding: 14px 0;
	font-size: 13px;
	letter-spacing: .04em;
	font-family: var(--gc-sans);
}

.gc-newsletter__form-wrap input::placeholder {
	color: #888;
}

/* Submit button — never shrink, never clip */
.gc-newsletter__form-wrap input[type="submit"] {
	flex-shrink: 0;
	background: transparent;
	border: none;
	outline: none;
	cursor: pointer;
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	padding: 14px 0 14px 16px;
	color: #fff;
	font-family: var(--gc-sans);
	transition: color var(--gc-transition);
	white-space: nowrap;
}

.gc-newsletter__form-wrap input[type="submit"]:hover {
	color: #c9b87a;
}

/* CF7 spinner — zero size, invisible */
.gc-newsletter__form-wrap .wpcf7-spinner {
	display: none;
}

/* CF7 messages — always full width, below the input row */
.gc-newsletter__form-wrap .wpcf7-response-output {
	flex: 0 0 100%;
	border: none !important;
	margin: 14px 0 0 !important;
	padding: 0 !important;
	font-size: 12px;
	letter-spacing: .04em;
	text-align: center;
	line-height: 1.5;
	/* success */
	color: #a8c8a0;
}

/* Error state */
.gc-newsletter__form-wrap .wpcf7-form.invalid .wpcf7-response-output,
.gc-newsletter__form-wrap .wpcf7-form.unaccepted .wpcf7-response-output,
.gc-newsletter__form-wrap .wpcf7-form.spam .wpcf7-response-output {
	color: #e07070;
}

/* Inline field error */
.gc-newsletter__form-wrap .wpcf7-not-valid-tip {
	display: block;
	flex: 0 0 100%;
	color: #e07070;
	font-size: 11px;
	letter-spacing: .04em;
	margin-top: 6px;
	text-align: left;
}

@media (max-width: 767px) {
	.gc-newsletter {
		padding: 60px 16px;
	}
}

/* =========================================================
   FOOTER
   ========================================================= */
.gc-footer {
	background: var(--gc-white);
	padding: 80px 0 30px;
	border-top: 1px solid var(--gc-border);
}

.gc-footer__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px 24px;
}

/* higher specificity to override .container's padding shorthand */
.gc-footer .gc-footer__grid {
	padding-bottom: 60px;
}

@media (min-width: 768px) {
	.gc-footer__grid {
		grid-template-columns: 1.4fr repeat(4, 1fr);
	}
}

/* Brand column: logo + subtitle + social — centred */
.gc-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	min-width: 0;
	text-align: center;
}

.gc-footer__brand-identity {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.gc-footer__logo-link {
	display: inline-block;
	text-decoration: none;
	line-height: 1;
}

.gc-footer__logo-img {
	max-height: 44px;
	width: auto;
	display: block;
}

.gc-footer__logo-text {
	font-family: var(--gc-serif);
	font-size: 18px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gc-black);
}

.gc-footer__logo-subtitle {
	display: block;
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gc-muted);
	font-style: normal;
}

/* Social block in brand column */
.gc-footer__social-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.gc-footer__social-label {
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gc-muted);
	margin: 0;
}

.gc-footer__brand .gc-footer__social {
	gap: 14px;
	justify-content: center;
}

.gc-footer__col {
	min-width: 0;
}

.gc-footer__title {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	margin-bottom: 18px;
	font-weight: 500;
	color: var(--gc-black);
}

/* wp_nav_menu default output: <ul class="gc-footer__list"> */
.gc-footer__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 13px;
}

.gc-footer__list li {
	margin: 0;
	padding: 0;
}

.gc-footer__list a {
	color: var(--gc-black);
	text-decoration: none;
	transition: color var(--gc-transition);
}

.gc-footer__list a:hover {
	color: var(--gc-muted);
}

.gc-footer__sale-link {
	color: var(--gc-sale);
	font-weight: 500;
}

.gc-footer__sale-link:hover {
	color: var(--gc-sale);
	opacity: .75;
}

/* Sale list appended after main menu list — match item gap */
.gc-footer__list--sale {
	margin-top: 10px;
}

/* Footer bottom bar — wrapper handles border + vertical padding only */
.gc-footer__bottom {
	border-top: 1px solid var(--gc-border);
	padding: 24px 0;
}

/* Inner container provides flex layout + horizontal padding via .container */
.gc-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	align-items: center;
	justify-content: space-between;
	font-size: 11px;
	color: var(--gc-muted);
	letter-spacing: .12em;
	text-transform: uppercase;
}

.gc-footer__social {
	display: flex;
	gap: 18px;
}

.gc-footer__social a {
	padding: 6px;
	color: var(--gc-black);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity var(--gc-transition);
}

.gc-footer__social a:hover {
	opacity: .6;
}

.gc-footer__social svg {
	width: 18px;
	height: 18px;
	display: block;
}

/* =========================================================
   LAYOUT UTILITY
   ========================================================= */
.container {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 24px;
}

/* =========================================================
   MOBILE (≤ 600px)
   ========================================================= */
@media (max-width: 600px) {

	/* Header */
	.gc-header__top {
		padding: 12px 14px;
		gap: 8px;
	}
	.gc-header__left,
	.gc-header__right {
		gap: 2px;
	}
	.gc-header__logo {
		font-size: 18px;
		letter-spacing: .14em;
	}
	.gc-header__logo small {
		display: none;
	}
	.gc-header__icon {
		width: 40px;
		height: 40px;
		min-width: 40px;
		min-height: 40px;
	}
	.gc-header__icon svg {
		width: 20px;
		height: 20px;
	}
	/* Search icon on mobile too — sits right after the burger in .gc-header__left. */
	.gc-header__icon.js-search-toggle {
		display: inline-flex;
	}
	.gc-header__logo-img {
		max-height: 26px;
	}

	/* Drawer */
	.gc-drawer__panel {
		padding: 20px;
		width: min(330px, 88%);
	}
	.gc-drawer__list a {
		font-size: 18px;
		padding: 10px 0;
	}

	/* Footer */
	.gc-footer {
		padding: 56px 0 20px;
	}
	.gc-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 32px 20px;
	}

	.gc-footer .gc-footer__grid {
		padding-bottom: 36px;
	}
	.gc-footer__brand {
		grid-column: 1 / -1;
		flex-direction: column;
		align-items: center;
		gap: 18px;
	}
	.gc-footer__title {
		font-size: 10px;
		margin-bottom: 14px;
		letter-spacing: .2em;
	}
	.gc-footer__list {
		font-size: 12px;
		gap: 8px;
	}
	.gc-footer__bottom {
		padding: 20px 0 0;
	}
	.gc-footer__bottom-inner {
		flex-direction: column;
		gap: 16px;
		text-align: center;
		font-size: 10px;
	}
}

/* Tight phones (≤ 380px) */
@media (max-width: 380px) {
	.gc-header__logo {
		font-size: 15px;
		letter-spacing: .1em;
	}
	.gc-header__icon {
		width: 36px;
		height: 36px;
		min-width: 36px;
		min-height: 36px;
	}
}

/* =========================================================
   Full-screen Search (gc-search) — overrides parent popup
   ========================================================= */
.site-search-panel.gc-search .site-search-panel__overlay { background: #fff; }
.site-search-panel.gc-search .site-search-panel__content {
	align-items: stretch;
	justify-content: flex-start;
	padding: 0;
	background: #fff;
	overflow-y: auto;          /* the WHOLE popup scrolls as one region */
	overflow-x: hidden;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
.site-search-panel.gc-search .site-search-panel__form {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	max-height: none;
	padding: 26px 40px 70px;
	display: block;
}

.gc-search__top { position: relative; display: flex; align-items: center; justify-content: center; margin-bottom: 26px; }
.gc-search__brand { font-family: 'Cormorant Garamond', serif; font-size: 32px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: #0a0a0a; line-height: 1; }
.gc-search__logo-img { max-height: 42px; width: auto; display: block; }
.gc-search__close { position: absolute; right: 0; top: 50%; transform: translateY(-50%); background: none; border: 0; cursor: pointer; font-family: 'Inter', sans-serif; font-size: 13px; text-decoration: underline; color: #0a0a0a; padding: 8px; }

.gc-search__bar { max-width: 820px; margin: 0 auto; }
.site-search-panel.gc-search .woocommerce-product-search,
.site-search-panel.gc-search form.search-form { position: relative; margin: 0; }
.site-search-panel.gc-search .woocommerce-product-search input[type='search'],
.site-search-panel.gc-search input[type='search'] {
	width: 100%;
	border: 0;
	border-bottom: 1px solid #111;
	border-radius: 0;
	background: transparent;
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	padding: 12px 44px 12px 0;
	color: #0a0a0a;
}
.site-search-panel.gc-search .woocommerce-product-search button[type='submit'],
.site-search-panel.gc-search form.search-form button[type='submit'] { display: none; }

.gc-search .site-search-panel__loading { text-align: center; margin: 24px 0; font-family: 'Inter', sans-serif; color: #666; }

.gc-search__body { display: flex; gap: 48px; margin-top: 40px; align-items: flex-start; min-width: 0; }
.gc-search__sidebar { flex: 0 0 190px; }
/* Nothing inside gets its own scroll — the whole popup scrolls together. */
.gc-search__body, .gc-search__main, .gc-search .site-search-panel__results { overflow: visible; max-height: none; }
.gc-search__side-title, .gc-search__main-title { font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; margin: 0 0 18px; font-weight: 500; }
.gc-search__cats { list-style: none; margin: 0; padding: 0; }
.gc-search__cats li { margin-bottom: 13px; }
.gc-search__cats a { font-family: 'Cormorant Garamond', serif; font-size: 20px; color: #0a0a0a; text-decoration: none; }
.gc-search__cats a:hover { text-decoration: underline; }

.gc-search__main { flex: 1 1 auto; min-width: 0; }
/* Grid mirrors the shop; minmax(0,1fr) + min-width:0 stop cards from
   overflowing horizontally (the "next card peeking on the right" bug). */
.gc-search__grid,
.gc-search .site-search-panel__results-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.gc-search__grid > *, .gc-search .site-search-panel__results-grid > * { min-width: 0; max-width: 100%; }
/* Product-card box + image sizing. These normally live in shop.css, but the
   search panel is on EVERY page (incl. product/home where shop.css is NOT
   loaded). Without aspect-ratio the image container had no size, so images
   ballooned full-screen and Swiper mis-measured slides (next slide peeking on
   the right). Scoping the essentials here fixes both, everywhere. */
.gc-search .gc-card { position: relative; display: flex; flex-direction: column; background: transparent; overflow: hidden; min-width: 0; max-width: 100%; }
.gc-search .gc-card__image-wrap { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: #fff; }
.gc-search .gc-card--slider .gc-card__image-wrap { overflow: visible; }
/* NB: no max-width on the swiper/slides here — that clamped slides narrower than
   Swiper's translate width and made the next slide peek. Let the global swiper
   rules size them exactly like the shop. */
.gc-search .gc-card__body { padding: 12px 0 4px; display: flex; flex-direction: column; gap: 8px; background: transparent; flex: 1; }
.gc-search .gc-card__title { display: block; font-size: 14px; font-weight: 400; line-height: 1.4; letter-spacing: .02em; color: #111; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; }
.gc-search .gc-card__price, .gc-search .gc-card .price { font-size: 13px; }
.gc-search .gc-card .price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin: 0; }
.gc-search .gc-card .price del { text-decoration: line-through; color: #9b9b9b; font-size: 12px; }
.gc-search .gc-card .price ins { text-decoration: none; color: #111; font-weight: 500; }
/* Wishlist heart + sale badge (also shop.css-only → the SVG ballooned without a size). */
.gc-search .gc-card__wishlist { position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; z-index: 4; color: #111; cursor: pointer; background: transparent; border: none; padding: 0; }
.gc-search .gc-card__wishlist svg { width: 18px; height: 18px; stroke: currentColor; fill: none; }
.gc-search .gc-card__wishlist.is-active, .gc-search .gc-card__wishlist[aria-pressed="true"] { color: #c00; }
.gc-search .gc-card__wishlist.is-active svg, .gc-search .gc-card__wishlist[aria-pressed="true"] svg { fill: #c00; stroke: #c00; }
.gc-search .gc-card__badge { position: absolute; top: 14px; left: 14px; font-size: 9px; letter-spacing: .22em; text-transform: uppercase; padding: 6px 10px; font-weight: 500; z-index: 3; pointer-events: none; line-height: 1; }
.gc-search .gc-card__badge--sale, .gc-search .gc-card__badge--oos { background: #111; color: #fff; }
.gc-search .gc-card__cover-link { position: absolute; inset: 0; z-index: 1; }
.gc-search .gc-card__image-link { display: block; width: 100%; height: 100%; }
.gc-search .gc-card--oos .gc-card__image-wrap { opacity: .35; }
.gc-search .gc-card--oos .gc-card__title { color: #767676; }
@media (max-width: 1100px) {
	.gc-search__grid, .gc-search .site-search-panel__results-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.gc-search .site-search-panel__results-header { margin-bottom: 22px; }
.gc-search .site-search-panel__results-count { font-family: 'Inter', sans-serif; font-size: 13px; color: #555; }
.gc-search .site-search-panel__load-more-wrapper { grid-column: 1 / -1; text-align: center; margin-top: 30px; }
.gc-search .site-search-panel__load-more { font-family: 'Inter', sans-serif; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; background: #0a0a0a; color: #fff; border: 0; padding: 12px 28px; cursor: pointer; }
.gc-search .site-search-panel__no-results { padding: 10px 0 40px; font-family: 'Inter', sans-serif; color: #333; }
.gc-search .site-search-panel__no-results-hint { color: #8a8a8a; font-size: 13px; }

/* Class-based (not :has on empty results) so the default block doesn't flicker
   back on every keystroke while results are being replaced. */
.gc-search.gc-searching .gc-search__default { display: none; }

/* No-results state — centred, with a "Browse Shop" call to action. */
.gc-search__empty { text-align: center; padding: 44px 0 64px; font-family: 'Inter', sans-serif; }
.gc-search__empty-title { font-size: 15px; color: #1a1a1a; margin: 0 0 6px; }
.gc-search__empty-hint { font-size: 13px; color: #9a9a9a; margin: 0 0 24px; }
.gc-search__browse { display: inline-block; background: #0a0a0a; color: #fff; font-family: 'Inter', sans-serif; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; padding: 14px 36px; text-decoration: none; }
.gc-search__browse:hover { opacity: .85; }

@media (max-width: 900px) {
	.site-search-panel.gc-search .site-search-panel__form { padding: 18px 20px 60px; }
	.gc-search__brand { font-size: 24px; }
	.gc-search__body { flex-direction: column; gap: 30px; margin-top: 30px; }
	.gc-search__sidebar { flex-basis: auto; }
	.gc-search__cats { display: flex; flex-wrap: wrap; gap: 10px 20px; }
	.gc-search__cats li { margin-bottom: 0; }
	.gc-search__grid, .gc-search .site-search-panel__results-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Lock background scroll while the full-screen search is open. */
html:has(.site-search-panel.is-open) { overflow: hidden; }
.site-search-panel.gc-search .site-search-panel__content { overscroll-behavior: contain; }

/* "View all results" — only visible once live results are present. */
.gc-search__viewall { display: none; width: fit-content; margin: 30px auto 0; font-family: 'Inter', sans-serif; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #0a0a0a; text-decoration: none; border-bottom: 1px solid #0a0a0a; padding-bottom: 3px; }
.gc-search__viewall:hover { opacity: .55; }
.gc-search.gc-searching.has-results .gc-search__viewall { display: block; }

/* Load More (in-panel pagination) */
.gc-search__more-wrap { text-align: center; margin-top: 26px; }
.gc-search__more { font-family: 'Inter', sans-serif; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; background: #0a0a0a; color: #fff; border: 0; padding: 13px 40px; cursor: pointer; }
.gc-search__more:hover { opacity: .85; }
.gc-search__more:disabled { opacity: .5; cursor: default; }
.gc-search__more-count { display: block; margin-top: 10px; font-family: 'Inter', sans-serif; font-size: 12px; color: #9a9a9a; }

/* ==========================================================================
   FedEx checkout shipping (child override of cart/cart-shipping.php)
   Toggle: Gucci Options → Shipping / Checkout → "FedEx checkout shipping style"
   ========================================================================== */
/* Theme fonts throughout (mockup look, child-theme typography). */
.gc-ship-calc,
.gc-fedex-methods .gc-fedex-service,
.gc-fedex-methods .radio-description,
.gc-fedex-methods .gc-ship-badge { font-family: var(--gc-sans); }

.gc-ship-calc {
	font-size: 13px;
	color: #6d6d6d;
	margin: 0 0 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid #e4e4e4;
	line-height: 1.5;
}
.gc-ship-calc b { color: #1a1a1a; font-weight: 600; }

.gc-fedex-heading {
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}
.gc-fedex-logo {
	font-family: Arial, Helvetica, sans-serif;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
}
.gc-fedex-logo__fed { color: #4d148c; }
.gc-fedex-logo__ex  { color: #ff6200; }
.gc-fedex-service { font-weight: 600; }

.gc-fedex-methods .gc-ship-eta { color: #8a8a8a; font-size: 13px; }
.gc-fedex-methods .gc-ship-eta__dates { color: #1a1a1a; }

.gc-fedex-methods .gc-ship-badge {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1.4;
	text-align: right;
}
.gc-ship-free { color: #1a1a1a; font-weight: 700; }
.gc-ship-was {
	color: #9b9b9b;
	font-weight: 400;
	text-decoration: line-through;
	font-size: .9em;
	white-space: nowrap;
}
/* Keep "$35.00" on one line — parent sets .ship-badge span{display:block}, which
   otherwise stacks the currency symbol above the amount. */
.gc-fedex-methods .gc-ship-was .woocommerce-Price-amount,
.gc-fedex-methods .gc-ship-was .woocommerce-Price-currencySymbol,
.gc-fedex-methods .gc-ship-was bdi {
	display: inline;
	white-space: nowrap;
	text-decoration: line-through;
	color: inherit;
}

/* ---- Mockup card look: visible radio + purple selected state ---- */
.gc-fedex-methods li label {
	gap: 12px;
	align-items: center;
}
/* Match the address inputs' radius (parent card is 12px — too round) */
#shipping_method.gc-fedex-methods li label { border-radius: 6px; }
/* Custom radio dot (parent hides the real input) */
.gc-fedex-methods li label::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	border: 2px solid #cabfe4;
	border-radius: 50%;
	align-self: center;
	transition: border-color .15s ease, box-shadow .15s ease;
}
/* Selected rate — purple border + tinted fill + filled radio (ID beats parent) */
#shipping_method.gc-fedex-methods li input:checked + label {
	border-color: #7f54b3;
	background: #f7f4fc;
	box-shadow: 0 0 0 1px #7f54b3;
}
#shipping_method.gc-fedex-methods li input:checked + label::before {
	border-color: #7f54b3;
	background: #7f54b3;
	box-shadow: inset 0 0 0 3px #fff;
}

/* ==========================================================================
   Checkout summary — shrink line-item prices on mobile so they don't wrap.
   The discount span carries an inline font-size, so it needs !important.
   ========================================================================== */
@media (max-width: 767px) {
	.cart-products .product-total .amount {
		font-size: 12px !important;
		white-space: nowrap;
	}
	.product-total__discount,
	.product-total__discount .woocommerce-Price-amount,
	.product-total__discount .woocommerce-Price-currencySymbol,
	.product-total__discount .amount {
		font-size: 11px !important;
		white-space: nowrap !important;
	}
}

/* ============================================================
 * Collection product card — swatches / price / add-to-cart
 * Global (main.css) so it applies wherever .gc-card renders:
 * shop grid, full-screen search (any page), and the PDP
 * You May Also Like / Recently Viewed blocks.
 * Interactive bits re-enable pointer-events (card body is
 * pointer-events:none on desktop) and sit above the cover-link.
 * ========================================================== */
.gc-card__swatches {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin: 2px 0;
  min-height: 47px;      /* reserve the swatch row so prices + Add-To-Cart line up (incl. empty placeholder) */
  position: relative;
  z-index: 3;
  pointer-events: auto;
}
.gc-card__swatch {
  width: 47px;
  height: 47px;
  padding: 0;
  border: 1px solid #e6e3dd;
  border-radius: 0;
  overflow: hidden;
  background: #f4f2ee;
  cursor: pointer;
  flex: 0 0 auto;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.gc-card__swatch img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gc-card__swatch:hover { border-color: #999; }
.gc-card__swatch.is-selected { border-color: #1a1a1a; box-shadow: 0 0 0 1px #1a1a1a; }
.gc-card__swatch-more { font-size: 12px; color: #8a8a8a; align-self: center; margin-left: 2px; }
.gc-card__swatch-more--mobile { display: none; }   /* desktop: shown via --desktop, mobile toggles below */

.gc-card__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 2px;
}
.gc-card__price-now { font-size: 18px; font-weight: 700; color: #1a1a1a; }
.gc-card__price-old { font-size: 15px; color: #8a8a8a; text-decoration: line-through; }
.gc-card__price-now del, .gc-card__price-now ins,
.gc-card__price-old del, .gc-card__price-old ins { all: unset; }

.gc-card__atc {
  position: relative;
  z-index: 3;
  pointer-events: auto;
  margin-top: 10px;
  width: 100%;
  height: 42px;
  border: 1.5px solid #111;
  border-radius: 0;
  background: #fff;
  color: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.gc-card__atc svg { width: 18px; height: 18px; }
.gc-card__atc-icon { display: inline-flex; }
.gc-card__atc:hover,
.gc-card__atc.is-added { background: #111; color: #fff; }
.gc-card__atc.is-loading,
.gc-card__atc.loading { opacity: .6; pointer-events: none; }

/* Switchable card showing a single image has no slider chrome */
.gc-card:not(.gc-card--slider) .gc-card__slider-arrow,
.gc-card:not(.gc-card--slider) .gc-card__slider-bars { display: none; }
.gc-card-swiper:not(.swiper-initialized) .swiper-wrapper { display: block; }
.gc-card-swiper:not(.swiper-initialized) .swiper-slide { width: 100%; }

@media (max-width: 767px) {
  .gc-card__swatches { min-height: 36px; flex-wrap: nowrap; gap: 4px; }
  .gc-card__swatch { width: 36px; height: 36px; }
  /* Cap at 4 swatches on mobile; the rest collapse into the +N counter. */
  .gc-card__swatches .gc-card__swatch:nth-child(n+5) { display: none; }
  .gc-card__swatch-more--desktop { display: none; }
  .gc-card__swatch-more--mobile { display: inline; }
  .gc-card__price { gap: 6px; }
  .gc-card__price-now { font-size: 14px; }
  .gc-card__price-old { font-size: 12px; }
  .gc-card__atc { height: 42px; font-size: 10px; letter-spacing: .06em; }
}

@media (max-width: 400px) {
  .gc-card__price-now { font-size: 13px; }
  .gc-card__price-old { font-size: 11px; }
}

/* ============================================================
 * Checkout trust badges (Secure Payment / SSL Certificate)
 * ========================================================== */
/* Replaces the parent theme's "Secure and encrypted / shop" bar. */
.checkout-secure { display: none !important; }

.gc-cotrust { margin: 22px 0 4px; font-family: 'Inter', sans-serif; }
.gc-cotrust__card {
  display: flex;
  align-items: stretch;
  border: 1px solid #eceaf4;
  border-radius: 16px;
  background: #fff;
  padding: 18px 6px;
}
.gc-cotrust__item {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 2px 20px;
  position: relative;
}
.gc-cotrust__item + .gc-cotrust__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 4px;
  width: 1px;
  background: #eceaf4;
}
.gc-cotrust__icon {
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #f3eefc;
  color: #7c4dff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gc-cotrust__icon svg { width: 20px; height: 20px; }
.gc-cotrust__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gc-cotrust__text strong { font-size: 15px; font-weight: 700; color: #1a1a1a; line-height: 1.2; }
.gc-cotrust__text small { font-size: 12px; color: #9a9a9a; line-height: 1.3; }

@media (max-width: 560px) {
  .gc-cotrust { margin: 16px 0 4px; }
  /* Keep both items side by side (one row) — just make everything compact. */
  .gc-cotrust__card { padding: 12px 2px; }
  .gc-cotrust__item { padding: 0 10px; gap: 8px; }
  .gc-cotrust__icon { width: 28px; height: 28px; }
  .gc-cotrust__icon svg { width: 14px; height: 14px; }
  .gc-cotrust__text { gap: 1px; }
  .gc-cotrust__text strong { font-size: 11px; line-height: 1.2; }
  .gc-cotrust__text small { font-size: 9px; line-height: 1.2; }
}

@media (max-width: 360px) {
  .gc-cotrust__item { padding: 0 7px; gap: 6px; }
  .gc-cotrust__text small { font-size: 8px; }
}

/* ============================================================
 * Sticky "Checkout" bar — shop / home, mobile only, cart not empty
 * ========================================================== */
.gc-sticky-checkout { display: none; }

@media (max-width: 767px) {
  .gc-sticky-checkout.is-visible {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 90;   /* below every overlay: burger drawer (100), filter drawer (500), header (1000) */
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 22px;
    padding-bottom: calc(15px + env(safe-area-inset-bottom, 0px));
    background: #111;
    color: #fff;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    box-shadow: 0 -3px 14px rgba(0, 0, 0, .12);
    transition: background .18s ease;
  }
  .gc-sticky-checkout.is-visible:active { background: #000; }
  .gc-sticky-checkout__bagwrap { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; }
  .gc-sticky-checkout__bag { width: 20px; height: 20px; display: block; }   /* match the mobile header cart icon (20px) */
  .gc-sticky-checkout__text { flex: 0 0 auto; }
  /* Count badge — same size/position as the header cart icon badge. */
  .gc-sticky-checkout__count {
    position: absolute;
    top: -5px;
    right: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 15px;
    height: 15px;
    padding: 0 3px;
    border-radius: 999px;
    background: #fff;
    color: #111;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1;
  }

  /* Reserve space so the fixed bar doesn't cover the footer / last content. */
  body.gc-has-sticky-checkout { padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)); }
}

/* ============================================================
 * Mini-cart "Checkout" button — same size as the "Apply" coupon
 * button (padding 12px 24px, 14px, .1em uppercase).
 * ========================================================== */
#mini-cart-panel .woocommerce-mini-cart__buttons .button.checkout {
  min-height: 0;
  padding: 16px 24px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  line-height: 1.2;
}

/* ============================================================
 * Social-proof "recent purchase" popup (desktop only)
 * ========================================================== */
.gc-sp {
  position: fixed;
  left: 24px;
  bottom: 24px;
  z-index: 80;              /* above content; below modals/header */
  width: 358px;
  max-width: calc(100vw - 48px);
  background: #fdfcf9;
  border: 1px solid #ece7dc;
  border-top: 3px solid #b08d4f;
  border-radius: 10px;
  box-shadow: 0 14px 44px rgba(0, 0, 0, .14);
  font-family: 'Inter', sans-serif;
  opacity: 0;
  transform: translateX(-26px);
  transition: opacity .4s ease, transform .4s ease, bottom .3s ease;
  pointer-events: none;
}
/* When the PDP sticky ATC bar is showing, sit above it instead of overlapping. */
body.gc-pdp-sticky-visible .gc-sp {
  bottom: calc(var(--gc-pdp-sticky-h, 84px) + 20px);
}
.gc-sp.is-in { opacity: 1; transform: translateX(0); pointer-events: auto; }
.gc-sp[hidden] { display: none; }

.gc-sp__link { display: flex; align-items: center; gap: 14px; padding: 16px 34px 16px 18px; text-decoration: none; color: inherit; }
.gc-sp__thumb {
  width: 62px; height: 62px; flex: 0 0 auto;
  object-fit: cover; border-radius: 6px;
  background: #f2efe8; border: 1px solid #ece7dc;
}
.gc-sp__body { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.gc-sp__top { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; flex-wrap: wrap; }
.gc-sp__name { font-size: 12px; font-weight: 600; color: #1a1a1a; }
.gc-sp__verified {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; letter-spacing: .1em; text-transform: uppercase;
  color: #b08d4f; font-weight: 600; white-space: nowrap;
}
.gc-sp__verified svg { width: 12px; height: 12px; }
.gc-sp__title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px; line-height: 1.2; color: #1a1a1a;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gc-sp__meta { font-size: 11px; color: #9a9a9a; margin-top: 3px; }
.gc-sp__close {
  position: absolute; top: 8px; right: 10px;
  background: none; border: 0; padding: 4px;
  font-size: 18px; line-height: 1; color: #b7b2a8; cursor: pointer;
}
.gc-sp__close:hover { color: #6b6b6b; }

@media (max-width: 767px) { .gc-sp { display: none !important; } }  /* PC only */
@media (prefers-reduced-motion: reduce) { .gc-sp { transition: opacity .2s ease; transform: none; } }

/* ============================================================
 * Footer payment icons (reuses gc_payment_icons() from the PDP)
 * ========================================================== */
.gc-footer__payments { margin-top: 0; }
.gc-footer__payments .gc-pdp__payments {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}
.gc-footer__payments .gc-pdp__pay { display: inline-flex; }
.gc-footer__payments .gc-pdp__pay svg { height: 34px; width: auto; display: block; }
