/* 965GYM redesign — tokens follow the Figma file (dark navy + warm gold). Values are approximations
   taken from the prototype view until Figma export access is available. */

body.g965 {
	--g-bg: #08111a;
	--g-bg-2: #0a1520;
	--g-navy: #0b2238;
	--g-navy-2: #0f2a45;
	--g-surface: #101c29;
	--g-surface-2: #142334;
	--g-line: rgba(255, 255, 255, .1);
	--g-line-2: rgba(255, 255, 255, .18);
	--g-text: #ffffff;
	--g-muted: #a6b1bf;
	--g-gold: #e6c69a;
	--g-gold-2: #d9b47e;
	--g-ink: #17120a;
	--g-cream: #e9e3d6;
	--g-trust: #e7cca6;
	--g-sale: #b3261e;
	--g-radius: 10px;
	--g-radius-sm: 6px;
	/* Content widths measured on the 1440px Figma frames: sections 1200, header and hero 1248, footer 1300. */
	--g-wrap: 1200px;
	--g-wrap-wide: 1248px;
	--g-wrap-foot: 1300px;
	--g-gutter: clamp(16px, 4vw, 40px);
	--g-font: "Zain", "Segoe UI", Tahoma, sans-serif;
}

.g965-home, .g965-header, .g965-footer, .g965-trust, .g965-banner, .g965-pills, .g965-filters, .g965-qv, .g965-archive .main-page-wrapper, .g965-loadmore-wrap, .g965-toast {
	font-family: var(--g-font);
	color: var(--g-text);
}
[class^="g965-"], [class*=" g965-"], [class^="g965-"] *, [class*=" g965-"] * { box-sizing: border-box; }
/* The Woodmart Child stylesheet reached visitors in full only on 31/10 (the CDN had served an empty stub). Its body
   line-height 1.8, headings at 1.25 and its own text/gold/muted colours would shift the layout matched to Figma on
   Woodmart's 1.6 / 1.4. html body:where() is (0,0,2): above the child's element selectors, below every .g965-* rule. */
html body:where(.g965, .g965-chrome) { line-height: 1.6; }
html body:where(.g965, .g965-chrome) :where(h1, h2, h3, h4, h5, h6) { line-height: 1.4; }
body.g965 { --gym-text: var(--g-text); --gym-gold: var(--g-gold); --gym-muted: var(--g-muted); }

body.g965-home-page, body.g965-archive { background: var(--g-bg); overflow-x: clip; }
.g965-home-page .main-page-wrapper, .g965-archive .main-page-wrapper { background: var(--g-bg); color: var(--g-text); padding-top: 0; }
/* Woodmart pads its content wrapper 40px top and bottom; the home sections run edge to edge. */
.g965-home-page .wd-content-layout, .g965-archive .wd-content-layout { padding-top: 0; padding-bottom: 0; }
.g965-home-page .wd-page-title, .g965-home-page .page-title, .g965-archive .wd-page-title, .g965-archive .page-title { display: none !important; }

/* Woodmart chrome is replaced when the plugin header/footer is on */
.g965-chrome .whb-header, .g965-chrome .whb-sticky-header, .g965-chrome .whb-clone, .g965-chrome .wd-header-overlay, .g965-chrome .footer-container, .g965-chrome .wd-prefooter { display: none !important; }

.g965-wrap { width: 100%; max-width: calc(var(--g-wrap) + 2 * var(--g-gutter)); margin-inline: auto; padding-inline: var(--g-gutter); }

/* The home template sits inside Woodmart's content container: break out to full width.
   Equal negative margins on both sides, so it works in RTL too (left/right offsets get dropped there). */
.g965-home, .g965-bleed { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* ---------- Type & buttons ---------- */
.g965-h2 { margin: 0; font-size: clamp(28px, 3vw, 42px); line-height: 1.2; font-weight: 800; color: var(--g-gold); }
.g965-lead { margin: 10px 0 0; color: var(--g-muted); font-size: 17px; }
/* Woodmart paints every button through :is(.btn, .button, button, [type=button], [type=submit]), one class
   of weight and loaded after this file. Button rules here start with `body` to outweigh it
   (scripts/harden_button_css.py), and this resets what that rule sets but the rules below don't. */
body :is(.g965-btn, .g965-round, .g965-iconbtn, .g965-tab, .g965-muscle, .g965-pill, .g965-opt, .g965-qv__close, .g965-card__cta),
body :is(.g965-qty, .g965-qv__thumbs) button {
	min-height: 0; padding: 0; gap: 8px; line-height: 1.2; letter-spacing: 0; text-transform: none; text-shadow: none;
	box-shadow: none; font-family: var(--g-font); font-weight: 700; border-radius: 0;
}
/* Its :hover version has two classes of weight and paints hovered buttons grey: neutral here (same
   weight, earlier in the file), and each component's own :hover below puts its colours back. */
body :is(.g965-btn, .g965-round, .g965-iconbtn, .g965-tab, .g965-muscle, .g965-pill, .g965-qv__close):hover,
body .g965-qty button:hover {
	background-color: transparent; border-color: transparent; color: inherit;
}
body .g965-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 0 26px; border-radius: var(--g-radius-sm);
	font: 700 16px/1 var(--g-font); text-decoration: none; cursor: pointer;
	border: 1px solid transparent; transition: background .2s, color .2s, border-color .2s, transform .2s;
}
body .g965-btn--gold { background: var(--g-gold); color: var(--g-ink); }
body .g965-btn--gold:hover { background: #f0d6ae; color: var(--g-ink); }
body .g965-btn--outline { background: transparent; color: var(--g-text); border-color: var(--g-line-2); }
body .g965-btn--outline:hover { border-color: var(--g-gold); color: var(--g-gold); }
body .g965-btn--line { background: transparent; color: var(--g-gold); border-color: var(--g-gold); }
body .g965-btn--line:hover { background: var(--g-gold); color: var(--g-ink); }
body .g965-btn[disabled] { opacity: .45; cursor: not-allowed; }
body .g965-round {
	display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
	background: transparent; color: var(--g-text); border: 1px solid var(--g-line-2); cursor: pointer;
}
body .g965-round:hover { border-color: var(--g-gold); color: var(--g-gold); }
body .g965-round[disabled] { opacity: .35; cursor: default; }
.g965-icon { flex: none; }
[class^="g965-"]:focus-visible, [class*=" g965-"]:focus-visible, [class^="g965-"] :focus-visible, [class*=" g965-"] :focus-visible { outline: 2px solid var(--g-gold); outline-offset: 2px; }

/* ---------- Header ---------- */
.g965-header { position: sticky; top: 0; z-index: 400; background: rgba(8, 17, 26, .96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--g-line); transition: background-color .25s, border-color .25s; }
.admin-bar .g965-header { top: 32px; }
.g965-header .g965-wrap { max-width: calc(var(--g-wrap-wide) + 2 * var(--g-gutter)); }
.g965-header__bar { display: flex; align-items: center; gap: 32px; min-height: 92px; }
.g965-logo img { display: block; width: 172px; height: auto; }
/* Home: the header sits on the hero photo (Figma) and turns solid once the page scrolls (.is-scrolled from gym965.js). */
body.g965-home-page .g965-header:not(.is-scrolled):not(:has(.g965-search:not([hidden]))) { background: transparent; backdrop-filter: none; border-bottom-color: transparent; }
body.g965-home-page .g965-home > .g965-hero:first-child { margin-top: -93px; padding-top: 93px; }
.g965-nav { flex: 1; }
.g965-nav__account { display: none; }
.g965-nav ul { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 0; padding: 0; list-style: none; }
.g965-nav a { color: var(--g-text); text-decoration: none; font-size: 15px; font-weight: 700; padding: 6px 0; border-bottom: 2px solid transparent; }
.g965-nav a:hover, .g965-nav a.is-current { color: var(--g-gold); border-color: var(--g-gold); }
.g965-nav a.is-accent { color: var(--g-gold); }
.g965-header__tools { display: flex; align-items: center; gap: 6px; }
body .g965-iconbtn { position: relative; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--g-text); background: none; border: 0; cursor: pointer; }
body .g965-iconbtn:hover { color: var(--g-gold); }
.g965-cart-count { position: absolute; top: 2px; inset-inline-end: 0; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--g-gold); color: var(--g-ink); font: 700 11px/18px var(--g-font); text-align: center; }
.g965-cart-count[data-count="0"] { display: none; }
body .g965-menu-toggle { display: none; }
.g965-search { border-top: 1px solid var(--g-line); padding: 14px 0; }
.g965-search .g965-wrap { display: flex; gap: 10px; }
.g965-search input[type="search"] { flex: 1; height: 48px; padding: 0 16px; border-radius: var(--g-radius-sm); border: 1px solid var(--g-line-2); background: var(--g-surface); color: var(--g-text); font: 16px var(--g-font); }

/* ---------- Hero ---------- */
/* Figma: 818px tall at 1440 including the header that sits on it; the photo under a navy wash, darker behind the copy. */
.g965-hero {
	position: relative; display: flex; align-items: center; min-height: clamp(520px, 56.8vw, 818px);
	background:
		linear-gradient(270deg, rgba(8, 17, 26, .88) 0%, rgba(8, 17, 26, .7) 48%, rgba(8, 17, 26, .62) 100%),
		var(--hero, radial-gradient(1200px 500px at 20% 30%, #1d3550 0%, #0b1724 60%, #08111a 100%));
	background-size: cover; background-position: center;
}
.g965-hero .g965-wrap { max-width: calc(var(--g-wrap-wide) + 2 * var(--g-gutter)); }
.g965-hero__inner { padding-block: 72px; }
.g965-hero__title { margin: 0 0 22px; font-size: clamp(40px, 5vw, 72px); line-height: 1.16; font-weight: 800; color: var(--g-text); max-width: 12ch; }
.g965-hero__title span { display: block; color: var(--g-gold); }
.g965-hero__text { margin: 0 0 40px; max-width: 620px; font-size: clamp(16px, 1.39vw, 20px); color: #dfe5ec; line-height: 1.65; }
body .g965-hero .g965-btn { min-height: 60px; padding: 0 34px; font-size: 17px; }

/* ---------- Category strip ---------- */
/* Figma: 251px navy band, seven 86px gold discs (the Figma icon images) 144px apart, labels under them. */
.g965-cats { background: var(--g-navy); padding: 64px 0 60px; }
.g965-cats__list { display: flex; justify-content: center; gap: clamp(16px, 3vw, 44px); margin: 0; padding: 0; list-style: none; flex-wrap: wrap; }
.g965-cats__list li { width: 100px; }
.g965-cats__list a { display: grid; justify-items: center; gap: 14px; color: var(--g-text); text-decoration: none; font-weight: 700; font-size: 14px; text-align: center; }
.g965-cat__img { display: block; width: 86px; height: 86px; border-radius: 50%; transition: transform .2s; }
.g965-cat__icon { display: grid; place-items: center; width: 86px; height: 86px; border-radius: 50%; background: var(--g-gold); color: var(--g-ink); border: 4px solid rgba(255, 255, 255, .12); transition: transform .2s; }
.g965-cats__list a:hover :is(.g965-cat__icon, .g965-cat__img) { transform: translateY(-4px); }

/* ---------- Sections ---------- */
.g965-sec { padding: clamp(56px, 7vw, 96px) 0; }
.g965-sec--dark { background: var(--g-bg); }
.g965-sec--navy { background: var(--g-navy); }
.g965-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.g965-rail-nav { display: flex; gap: 10px; flex: none; }
.g965-tabs { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 22px; }
body .g965-tab {
	background: none; border: 0; padding: 6px 0; color: var(--g-text); font: 700 16px var(--g-font);
	border-bottom: 2px solid transparent; cursor: pointer;
}
body .g965-tab:hover { color: var(--g-gold); }
body .g965-tab.is-active { color: var(--g-gold); border-color: var(--g-gold); }
.g965-pane[hidden] { display: none; }
.g965-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 20px; color: var(--g-gold); font-weight: 700; text-decoration: none; }
.g965-more:hover { text-decoration: underline; }

/* Product rail: 4 cards on desktop, snap-scrolling */
.g965-rail {
	--per: 4; --gap: 20px;
	display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--per) - 1) * var(--gap)) / var(--per));
	gap: var(--gap); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px;
}
.g965-rail::-webkit-scrollbar { display: none; }
.g965-rail > * { scroll-snap-align: start; }
.g965-progress { position: relative; height: 2px; margin-top: 26px; background: var(--g-line); border-radius: 2px; overflow: hidden; }
.g965-progress span { position: absolute; inset-block: 0; inset-inline-start: 0; width: 25%; background: var(--g-gold); border-radius: 2px; transition: transform .15s linear, width .2s; }

/* ---------- Product card ---------- */
.g965-card { display: flex; flex-direction: column; min-width: 0; height: 100%; }
.g965-card__media { position: relative; aspect-ratio: 288 / 310; border-radius: var(--g-radius-sm); background: var(--g-cream); overflow: hidden; }
.g965-card__img, .g965-card__img img { display: block; width: 100%; height: 100%; }
.g965-card__img img { object-fit: contain; padding: 8%; mix-blend-mode: multiply; transition: transform .35s; }
.g965-card:hover .g965-card__img img { transform: scale(1.04); }
.g965-badge { position: absolute; top: 12px; inset-inline-start: 12px; padding: 4px 9px; border-radius: 4px; font: 700 12px/1.3 var(--g-font); }
.g965-badge--sale { background: var(--g-sale); color: #fff; }
.g965-badge--new { background: #fff; color: var(--g-ink); }
.g965-card__wish { position: absolute; top: 10px; inset-inline-end: 10px; }
.g965-card__wish a, .g965-card__wish > a {
	display: grid !important; place-items: center; width: 36px; height: 36px; border-radius: 50%;
	background: #fff; color: var(--g-ink) !important; box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}
.g965-card__wish a:hover, .g965-card__wish a.added { color: var(--g-sale) !important; }
/* Woodmart's own wishlist button (kept for its JS and counters): icon only, drawn here so it doesn't
   depend on Woodmart loading its action-button CSS on this page. The label stays for screen readers. */
.g965-card__wish .wd-action-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.g965-card__wish .wd-action-icon { display: block; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-9-9a5 5 0 0 1 9-3 5 5 0 0 1 9 3c-2 4.5-9 9-9 9z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-9-9a5 5 0 0 1 9-3 5 5 0 0 1 9 3c-2 4.5-9 9-9 9z'/%3E%3C/svg%3E") center / contain no-repeat; }
.g965-card__wish a.added .wd-action-icon {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20s-7-4.5-9-9a5 5 0 0 1 9-3 5 5 0 0 1 9 3c-2 4.5-9 9-9 9z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20s-7-4.5-9-9a5 5 0 0 1 9-3 5 5 0 0 1 9 3c-2 4.5-9 9-9 9z'/%3E%3C/svg%3E"); }
.g965-card__wish .wd-action-icon::before, .g965-card__wish .wd-action-icon::after, .g965-card__wish .wd-check-icon { display: none; }
.g965-card__body { display: flex; flex-direction: column; gap: 6px; padding: 14px 2px 14px; flex: 1; }
.g965-card__kicker { color: var(--g-muted); font-size: 13px; }
.g965-card__title { margin: 0; font-size: 17px; line-height: 1.4; font-weight: 700; }
.g965-card__title a { color: var(--g-text); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.g965-card__title a:hover { color: var(--g-gold); }
.g965-card__opts { display: flex; align-items: center; gap: 10px; color: var(--g-muted); font-size: 13px; }
.g965-card__dots { display: inline-flex; gap: 5px; align-items: center; }
.g965-dot { width: 13px; height: 13px; border-radius: 50%; background: var(--dot); box-shadow: 0 0 0 1px rgba(255, 255, 255, .35); }
.g965-dot-more { font-size: 12px; }
.g965-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: auto; font-size: 18px; font-weight: 800; color: var(--g-gold); }
.g965-card__price del { color: var(--g-muted); font-size: 13px; font-weight: 400; opacity: .8; }
.g965-card__price ins { text-decoration: none; }
.g965-card__price .woocommerce-Price-amount { color: inherit; }
.g965 .g965-card__cta, .g965 .g965-card__cta.button { width: 100%; min-height: 46px; margin: 0; font-size: 15px; background: transparent; color: var(--g-text); border: 1px solid var(--g-line-2); border-radius: var(--g-radius-sm); text-transform: none; letter-spacing: 0; }
.g965 .g965-card__cta:hover { border-color: var(--g-gold); color: var(--g-gold); background: transparent; }
.g965 .g965-card__cta.loading { opacity: .6; }
.g965 .g965-card__cta.added::after { content: " ✓"; }
.g965-card .added_to_cart { display: none !important; }

/* ---------- Muscles ---------- */
/* Figma: copy and list on the start side, the 560px front+back figure on the other over a navy glow. */
.g965-sec--muscles { background: radial-gradient(620px 520px at 26% 55%, #12304d 0%, var(--g-bg) 72%); }
.g965-muscles { display: grid; grid-template-columns: 1fr minmax(0, 560px); gap: 48px; align-items: center; }
.g965-muscles__list { display: grid; gap: 0; margin: 40px 0 0; padding: 0; list-style: none; }
body .g965-muscle { display: block; padding: 12px 0; text-decoration: none; font: 700 clamp(20px, 2vw, 28px)/1.4 var(--g-font); color: rgba(255, 255, 255, .45); transition: color .2s; }
body .g965-muscle:hover { color: rgba(255, 255, 255, .8); }
body .g965-muscle.is-active { color: var(--g-gold); font-size: clamp(22px, 2.15vw, 31px); }
.g965-muscles__figure { display: flex; justify-content: center; }
.g965-muscles__img { display: block; width: 100%; max-width: 560px; height: auto; aspect-ratio: 1; object-fit: contain; }

/* ---------- Goals slider ---------- */
/* Figma: 714px slides on one gym-floor photo; each goal's equipment stands on the floor on the far side of the copy,
   the counter sits top left, round arrows at both edges and the goal pills along the bottom. */
.g965-goals { position: relative; background: #050b12 var(--goals-bg, none) center / cover no-repeat; overflow: hidden; }
.g965-goal { min-height: clamp(460px, 49.6vw, 714px); display: flex; align-items: stretch; background: linear-gradient(270deg, rgba(5, 11, 18, .82) 0%, rgba(5, 11, 18, .45) 42%, rgba(5, 11, 18, .12) 100%), var(--goal, none); background-size: cover; background-position: center; }
.g965-goal[hidden] { display: none; }
.g965-goal__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; padding-block: 72px 120px; padding-inline: calc(var(--g-gutter) + 56px); }
.g965-goal__title { margin: 0 0 16px; font-size: clamp(34px, 3.9vw, 56px); font-weight: 800; color: var(--g-text); }
.g965-goal__text { margin: 0 0 32px; color: #dfe5ec; font-size: 18px; line-height: 1.65; }
.g965-goal__product { align-self: end; display: flex; justify-content: center; margin-bottom: -48px; }
.g965-goal__product img { display: block; width: min(100%, 560px); height: auto; filter: drop-shadow(0 28px 36px rgba(0, 0, 0, .55)); }
.g965-goal__collage { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.g965-goal__shot { aspect-ratio: 1 / 1.1; border-radius: var(--g-radius); background: var(--g-cream); overflow: hidden; transform: rotate(-2deg); box-shadow: 0 18px 40px rgba(0, 0, 0, .45); }
.g965-goal__shot:nth-child(2) { transform: translateY(24px) rotate(1.5deg); }
.g965-goal__shot img { width: 100%; height: 100%; object-fit: contain; padding: 10%; mix-blend-mode: multiply; }
.g965-goals__count { position: absolute; top: 72px; inset-inline-end: max(var(--g-gutter), calc(50% - 622px)); z-index: 2; color: var(--g-muted); font-size: 14px; letter-spacing: 1px; }
.g965-goals__count b { color: var(--g-text); }
body .g965-goals__prev, body .g965-goals__next { position: absolute; top: calc(50% - 26px); z-index: 2; width: 52px; height: 52px; background: rgba(8, 17, 26, .35); border-color: rgba(255, 255, 255, .45); }
body .g965-goals__prev { inset-inline-end: max(16px, calc(50% - 660px)); }
body .g965-goals__next { inset-inline-start: max(16px, calc(50% - 660px)); }
.g965-goals > .g965-wrap { position: absolute; inset-inline: 0; bottom: 36px; z-index: 2; }
.g965-goals__pills { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 10px; padding-inline: 56px; }
body .g965-pill {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: 999px;
	border: 1px solid var(--g-line-2); background: rgba(8, 17, 26, .55); color: var(--g-text);
	font: 700 14px var(--g-font); text-decoration: none; cursor: pointer;
}
body .g965-pill:hover { background-color: rgba(8, 17, 26, .55); border-color: var(--g-gold); color: var(--g-gold); }
body .g965-pill.is-active { background: var(--g-gold); border-color: var(--g-gold); color: var(--g-ink); }

/* ---------- Brands, Instagram, services ---------- */
/* Figma: seven equal brand tiles across the row; a brand with no products yet leaves its slot empty instead of stretching the rest. */
.g965-brands { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.g965-brands a { display: grid; place-items: center; min-height: 104px; padding: 12px; border-radius: var(--g-radius); background: var(--g-surface); border: 1px solid var(--g-line); color: var(--g-text); font-size: 19px; font-weight: 700; text-decoration: none; transition: border-color .2s, color .2s; }
.g965-brands a:hover { border-color: var(--g-gold); color: var(--g-gold); }

.g965-ig { background: #060d15; }
.g965-ig__head { text-align: center; margin-bottom: 28px; }
.g965-ig__handle { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: var(--g-text); text-decoration: underline; }
/* Figma: a row of portrait post cards running past both edges, photo on top, a dark strip with the
   Instagram mark on one side and the handle + profile picture on the other. */
.g965-ig__tiles { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(220px, 21vw, 330px); gap: 24px; margin: 0; padding: 0 var(--g-gutter) 6px; list-style: none; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
.g965-ig__tiles::-webkit-scrollbar { display: none; }
.g965-ig__tiles li { scroll-snap-align: start; }
.g965-ig__tile { display: flex; flex-direction: column; border-radius: var(--g-radius); overflow: hidden; background: var(--g-surface); border: 1px solid var(--g-line); color: var(--g-text); text-decoration: none; transition: border-color .2s, transform .2s; }
.g965-ig__tile:hover { border-color: var(--g-gold); transform: translateY(-3px); }
.g965-ig__img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
.g965-ig__foot { display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; color: var(--g-text); font-size: 13px; }
.g965-ig__name { display: inline-flex; align-items: center; gap: 8px; direction: ltr; }
.g965-ig__avatar { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; border: 1px solid var(--g-line-2); }

.g965-services-sec { position: relative; overflow: hidden; }
/* Figma: the 965GYM mark, large and faint, behind the end of the services row. */
.g965-services-sec::before { content: ""; position: absolute; inset-inline-end: max(0px, calc(50% - 720px)); bottom: -30px; width: 470px; height: 500px; background: url(../img/logo-mark.png) center / contain no-repeat; opacity: .08; pointer-events: none; }
.g965-services-sec > .g965-wrap { position: relative; }
.g965-services { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
.g965-service { padding: 26px 22px; border-radius: var(--g-radius); background: var(--g-surface); border: 1px solid var(--g-line); }
.g965-service__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(230, 198, 154, .12); color: var(--g-gold); border: 1px solid rgba(230, 198, 154, .35); margin-bottom: 18px; }
.g965-service h3 { margin: 0 0 8px; font-size: 19px; color: var(--g-text); }
.g965-service p { margin: 0; color: var(--g-muted); line-height: 1.6; }

/* ---------- Trust bar & footer ---------- */
.g965-trust { background: var(--g-trust); color: var(--g-ink); }
.g965-trust ul { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin: 0; padding: 22px 0; list-style: none; }
.g965-trust li { display: flex; align-items: center; gap: 12px; font-weight: 800; font-size: 16px; color: var(--g-ink); }
.g965-trust li + li { padding-inline-start: 0; }
.g965-trust__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--g-navy-2); color: #fff; }

.g965-footer { position: relative; overflow: hidden; background: var(--g-navy-2); padding-top: 56px; }
.g965-footer .g965-wrap { position: relative; max-width: calc(var(--g-wrap-foot) + 2 * var(--g-gutter)); }
.g965-footer::after { content: ""; position: absolute; inset-inline-end: max(0px, calc(50% - 760px)); bottom: -70px; width: 300px; height: 320px; background: url(../img/logo-mark.png) center / contain no-repeat; opacity: .05; pointer-events: none; }
.g965-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.4fr; gap: 40px; padding-bottom: 40px; }
.g965-footer h3 { margin: 0 0 16px; font-size: 18px; color: var(--g-gold); }
.g965-footer ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.g965-footer a { color: #d8e0ea; text-decoration: none; }
.g965-footer a:hover { color: var(--g-gold); }
.g965-footer__brand img { width: 172px; height: auto; margin-bottom: 16px; }
.g965-footer__brand p, .g965-optin p { margin: 0 0 18px; color: #c9d3de; line-height: 1.7; }
.g965-social { display: flex; gap: 10px; }
.g965-social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; border: 1px solid var(--g-line-2); }
.g965-optin__form { display: flex; gap: 10px; }
/* Woodmart's input[type=tel] and the child theme's input:not(...):not(...):not(...) would otherwise win (35px pill, off-white). */
body .g965-optin__form input:not([type="submit"]):not([type="hidden"]) { flex: 1; min-width: 0; height: 48px; padding: 0 14px; border-radius: var(--g-radius-sm); border: 0; background: #fff; color: var(--g-ink); font: 16px var(--g-font); }
.g965-footer__bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding-block: 20px; border-top: 1px solid var(--g-line); color: #b9c4d0; font-size: 14px; }
.g965-pay { display: flex !important; gap: 8px !important; grid-template-columns: none; }
.g965-pay li { padding: 4px 10px; border-radius: 4px; background: rgba(255, 255, 255, .08); font-size: 12px; font-weight: 700; color: #e6edf5; }

/* ---------- Archive: banner, pills, grid, filters, load more ---------- */
/* Figma archive banner: the gym-floor photo (assets/img/gym-floor.jpg, the same Figma fill as the goal slides) under the navy wash. */
.g965-banner { background: linear-gradient(270deg, rgba(8, 17, 26, .86), rgba(8, 17, 26, .3)), var(--banner, url(../img/gym-floor.jpg)); background-size: cover; background-position: center 60%; padding: 64px 0 76px; }
.g965-crumbs { display: flex; gap: 8px; color: var(--g-muted); font-size: 14px; margin-bottom: 16px; }
.g965-crumbs a { color: var(--g-muted); text-decoration: none; }
.g965-banner__title { margin: 0 0 12px; font-size: clamp(34px, 4vw, 56px); color: var(--g-gold); font-weight: 800; }
.g965-banner__text { margin: 0; color: #dfe5ec; font-size: 18px; max-width: 60ch; }
.g965-pills { display: flex; flex-wrap: wrap; gap: 10px; padding: 26px 0 10px; }

.g965-archive .products:has(> .g965-loop-item) {
	display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 20px; margin: 0; padding: 0; list-style: none;
}
.g965-loop-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; list-style: none; }
.g965-archive .woocommerce-result-count, .g965-archive .woocommerce-ordering select, .g965-archive .wd-shop-tools { color: var(--g-muted); }
.g965-archive .woocommerce-ordering select { background: var(--g-surface); border: 1px solid var(--g-line-2); border-radius: var(--g-radius-sm); color: var(--g-text); }
.g965-js .g965-archive .woocommerce-pagination, .g965-js .g965-archive .wd-pagination { display: none; }

.g965-filters { padding: 22px; border-radius: var(--g-radius); background: var(--g-surface); border: 1px solid var(--g-line); }
.g965-filters__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.g965-filters__head h2 { margin: 0; font-size: 22px; color: var(--g-text); }
.g965-filters__head a { color: var(--g-gold); font-size: 14px; }
.g965-fgroup { border-top: 1px solid var(--g-line); padding: 14px 0; }
.g965-fgroup summary { display: flex; justify-content: space-between; align-items: center; cursor: pointer; list-style: none; font-weight: 800; font-size: 16px; }
.g965-fgroup summary::-webkit-details-marker { display: none; }
.g965-fgroup[open] summary .g965-icon { transform: rotate(180deg); }
.g965-fgroup__body { display: grid; gap: 10px; padding-top: 14px; }
.g965-check, .g965-toggle { display: flex; align-items: center; gap: 10px; color: #dbe2ea; cursor: pointer; }
/* Figma's filter options carry no counts: kept for screen readers only (options with none are not printed). */
.g965-check em { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; font-style: normal; }
.g965-check input, .g965-toggle input, .g965-chip input, .g965-swatch input { position: absolute; opacity: 0; pointer-events: none; }
.g965-check span { width: 18px; height: 18px; border-radius: 4px; border: 1px solid var(--g-line-2); }
.g965-check input:checked + span { background: var(--g-gold); border-color: var(--g-gold); box-shadow: inset 0 0 0 3px var(--g-surface); }
.g965-chips, .g965-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.g965-chip span { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border-radius: 6px; border: 1px solid var(--g-line-2); font-size: 13px; cursor: pointer; }
.g965-chip input:checked + span { background: var(--g-gold); border-color: var(--g-gold); color: var(--g-ink); }
.g965-swatch span { display: block; width: 28px; height: 28px; border-radius: 50%; background: var(--dot); box-shadow: 0 0 0 1px var(--g-line-2); cursor: pointer; }
.g965-swatch input:checked + span { box-shadow: 0 0 0 2px var(--g-surface), 0 0 0 4px var(--g-gold); }
.g965-toggle span { position: relative; width: 38px; height: 22px; border-radius: 11px; background: #2a3a4c; transition: background .2s; }
.g965-toggle span::after { content: ""; position: absolute; top: 3px; inset-inline-start: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: inset-inline-start .2s; }
.g965-toggle input:checked + span { background: var(--g-gold); }
.g965-toggle input:checked + span::after { inset-inline-start: 19px; }
.g965-range { position: relative; padding-top: 10px; }
.g965-range input[type="range"] { position: absolute; inset-inline: 0; top: 0; width: 100%; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; height: 20px; }
.g965-range input[type="range"]::-webkit-slider-thumb { pointer-events: auto; -webkit-appearance: none; width: 16px; height: 16px; border-radius: 50%; background: var(--g-gold); border: 0; cursor: pointer; }
.g965-range input[type="range"]::-moz-range-thumb { pointer-events: auto; width: 16px; height: 16px; border-radius: 50%; background: var(--g-gold); border: 0; cursor: pointer; }
.g965-range::before { content: ""; position: absolute; top: 9px; inset-inline: 0; height: 2px; background: var(--g-line-2); }
.g965-range__labels { display: flex; justify-content: space-between; padding-top: 22px; color: var(--g-muted); font-size: 13px; }
.g965-js .g965-filters__apply { display: none; }
body .g965-filters__apply { width: 100%; margin-top: 12px; }

/* Archive layout (templates/archive-product.php): filters beside the grid, first column = right in RTL. */
.g965-archive-page { color: var(--g-text); font-family: var(--g-font); padding-bottom: 56px; }
.g965-shop { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; align-items: start; padding-top: 18px; }
.g965-shop__side { position: sticky; top: 96px; }
body .g965-filters-toggle { display: none; width: 100%; }
.g965-shop__tools { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; color: var(--g-muted); }
/* Woodmart hides the result count on desktop; the Figma archive shows it ("عرض 6 من 48 منتج"). */
body .g965-shop__tools .woocommerce-result-count { display: block; margin: 0; color: var(--g-muted); }
/* Figma sort control: a bordered box reading "ترتيب حسب: <choice>" with a chevron. Woodmart's underline and mobile-icon
   select styles weigh the same as a two-class rule and load later, hence the body prefix. */
.g965-shop__tools .woocommerce-ordering { position: relative; margin: 0; }
body .g965-shop__tools .woocommerce-ordering { height: auto; } /* Woodmart fixes it at 30px on phones */
.g965-shop__tools .woocommerce-ordering::before { content: "ترتيب حسب:"; position: absolute; inset-inline-start: 14px; top: 50%; transform: translateY(-50%); z-index: 1; color: var(--g-muted); font: 14px var(--g-font); pointer-events: none; }
body .g965-shop__tools .woocommerce-ordering select {
	position: static; appearance: none; -webkit-appearance: none; min-width: 216px; height: 44px; margin: 0; padding: 0 100px 0 38px;
	border: 1px solid var(--g-line-2); border-radius: var(--g-radius-sm); color: var(--g-text); font: 700 14px var(--g-font); cursor: pointer;
	background: var(--g-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a6b1bf' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat left 14px center / 16px;
}
.g965-shop__empty { padding: 40px 0; color: var(--g-muted); }
.g965-loadmore-wrap { display: grid; justify-items: center; gap: 14px; margin: 40px auto 10px; max-width: 320px; text-align: center; color: var(--g-muted); }
.g965-loadmore__count { margin: 0; }
.g965-loadmore-wrap .g965-progress { width: 160px; margin: 0; }
.g965-loadmore.is-loading { opacity: .6; pointer-events: none; }

/* ---------- Quick view ---------- */
/* Above the site's WhatsApp chat widget (z-index 999999). */
.g965-qv { position: fixed; inset: 0; z-index: 1000000; display: grid; place-items: center; padding: 20px; }
.g965-qv[hidden] { display: none; }
.g965-qv__backdrop { position: absolute; inset: 0; background: rgba(2, 6, 10, .72); backdrop-filter: blur(3px); }
.g965-qv__dialog { position: relative; width: min(980px, 100%); max-height: calc(100vh - 40px); overflow: auto; border-radius: 14px; background: var(--g-bg-2); border: 1px solid var(--g-line); box-shadow: 0 30px 80px rgba(0, 0, 0, .55); }
/* Figma: the close button sits in the corner of the details panel, beside the photo, not on the photo. */
body .g965-qv__close { position: absolute; top: 14px; inset-inline-end: calc(50% + 14px); z-index: 2; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--g-line-2); background: rgba(8, 17, 26, .6); color: var(--g-text); cursor: pointer; display: grid; place-items: center; }
body .g965-qv__close:hover { background-color: rgba(8, 17, 26, .6); border-color: var(--g-gold); color: var(--g-gold); }
.g965-qv__content { display: grid; grid-template-columns: 1fr 1fr; min-height: 420px; }
.g965-qv__info { padding: 32px 30px; display: flex; flex-direction: column; gap: 16px; }
.g965-qv__kicker { align-self: flex-start; padding: 4px 10px; border-radius: 4px; background: rgba(255, 255, 255, .08); font-size: 13px; color: #dbe2ea; }
.g965-qv__title { margin: 0; font-size: 28px; line-height: 1.3; }
.g965-qv__price { display: flex; align-items: baseline; gap: 10px; padding-bottom: 16px; border-bottom: 1px solid var(--g-line); font-size: 26px; font-weight: 800; color: var(--g-gold); }
.g965-qv__price small { font-size: 13px; color: var(--g-muted); font-weight: 400; }
.g965-qv__price del { font-size: 16px; color: var(--g-muted); font-weight: 400; }
.g965-qv__attr-head { display: flex; justify-content: space-between; color: var(--g-muted); font-size: 14px; margin-bottom: 10px; }
.g965-qv__attr-head b { color: var(--g-text); }
.g965-qv__opts { display: flex; flex-wrap: wrap; gap: 10px; }
body .g965-opt { min-width: 56px; min-height: 42px; padding: 0 14px; border-radius: 6px; border: 1px solid var(--g-line-2); background: transparent; color: var(--g-text); font: 700 14px var(--g-font); cursor: pointer; }
body .g965-opt:hover { background-color: transparent; border-color: var(--g-gold); color: var(--g-text); }
body .g965-opt.is-active { border-color: var(--g-gold); background: rgba(230, 198, 154, .14); color: var(--g-gold); }
body .g965-opt[disabled] { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
body .g965-opt--swatch { width: 36px; min-width: 36px; height: 36px; min-height: 36px; padding: 0; border-radius: 50%; background: var(--dot); border: 0; box-shadow: 0 0 0 1px var(--g-line-2); }
body .g965-opt--swatch:hover { background: var(--dot); }
body .g965-opt--swatch.is-active { box-shadow: 0 0 0 2px var(--g-bg-2), 0 0 0 4px var(--g-gold); background: var(--dot); }
.g965-qv__hint { margin: 0; color: var(--g-muted); font-size: 14px; }
.g965-qv__buy { display: flex; gap: 12px; }
body .g965-qty { display: flex; align-items: center; border: 1px solid var(--g-line-2); border-radius: 6px; }
body .g965-qty button { width: 40px; height: 46px; background: none; border: 0; color: var(--g-text); cursor: pointer; display: grid; place-items: center; }
body .g965-qty input { width: 40px; height: 46px; border: 0; background: none; color: var(--g-text); text-align: center; font: 700 16px var(--g-font); -moz-appearance: textfield; }
body .g965-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }
body .g965-qv__add { flex: 1; }
/* Figma: until the options are complete the add button is a dark, inactive bar, not a faded gold one. */
body .g965-qv__add[disabled] { opacity: 1; background: var(--g-surface-2); border-color: var(--g-line); color: var(--g-muted); }
.g965-qv__details { color: var(--g-gold); font-weight: 700; text-decoration: underline; }
.g965-qv__gallery { display: grid; grid-template-rows: 1fr auto; gap: 12px; padding: 18px; background: var(--g-cream); }
.g965-qv__main { display: grid; place-items: center; min-height: 320px; }
.g965-qv__main img { max-width: 100%; max-height: 420px; object-fit: contain; mix-blend-mode: multiply; }
body .g965-qv__thumbs { display: flex; justify-content: center; gap: 8px; }
body .g965-qv__thumbs button { width: 54px; height: 54px; padding: 3px; border-radius: 6px; border: 1px solid transparent; background: rgba(255, 255, 255, .5); cursor: pointer; }
body .g965-qv__thumbs button:hover { background-color: rgba(255, 255, 255, .5); border-color: transparent; }
body .g965-qv__thumbs button.is-active { border-color: var(--g-ink); }
body .g965-qv__thumbs img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.g965-qv__loading { grid-column: 1 / -1; display: grid; place-items: center; min-height: 420px; color: var(--g-muted); }

.g965-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 1000001; display: flex; gap: 14px; align-items: center; padding: 14px 18px; border-radius: 10px; background: var(--g-surface-2); border: 1px solid var(--g-line-2); box-shadow: 0 12px 30px rgba(0, 0, 0, .4); }
.g965-toast[hidden] { display: none; }
.g965-toast a { color: var(--g-gold); font-weight: 700; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.g965-nav ul { gap: 6px 18px; }
	.g965-nav a { font-size: 15px; }
	.g965-brands { grid-template-columns: repeat(4, 1fr); }
	.g965-footer__grid { grid-template-columns: 1fr 1fr; }
	.g965-rail { --per: 3; }
}
@media (max-width: 900px) {
	.g965-shop { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.g965-shop__side { position: static; }
	body .g965-filters-toggle { display: inline-flex; }
	.g965-shop__side:not(.is-open) .g965-filters { display: none; }
	.g965-shop__side.is-open .g965-filters { margin-top: 12px; }
	body .g965-menu-toggle { display: inline-grid; }
	.g965-header__bar { min-height: 72px; }
	body.g965-home-page .g965-home > .g965-hero:first-child { margin-top: -73px; padding-top: 73px; }
	.g965-nav { position: fixed; inset: 72px 0 auto; max-height: calc(100vh - 72px); overflow: auto; background: var(--g-bg); border-bottom: 1px solid var(--g-line); padding: 12px var(--g-gutter) 24px; transform: translateY(-8px); opacity: 0; visibility: hidden; transition: opacity .2s, transform .2s, visibility .2s; }
	.g965-nav.is-open { opacity: 1; visibility: visible; transform: none; }
	.g965-nav ul { flex-direction: column; gap: 0; }
	.g965-nav a { display: block; padding: 14px 0; border-bottom: 1px solid var(--g-line); }
	/* Figma mobile header: menu at the start edge, logo centred, search and bag at the end. The account icon moves into the
	   menu (.g965-nav__account), which also leaves room for the logo to sit in the true centre. */
	.g965-header__bar { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
	body .g965-account { display: none; }
	.g965-nav__account { display: block; }
	.g965-logo { grid-column: 2; }
	.g965-header__tools { grid-column: 3; justify-self: end; }
	body .g965-menu-toggle { position: absolute; inset-inline-start: var(--g-gutter); top: 50%; transform: translateY(-50%); }
	/* Figma mobile archive: one scrolling row of pills, then the filters and sort buttons side by side. */
	.g965-pills { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.g965-pills::-webkit-scrollbar { display: none; }
	.g965-shop { position: relative; }
	body .g965-filters-toggle { width: calc(50% - 6px); border-color: var(--g-gold); color: var(--g-gold); }
	/* Below 769px Woodmart turns the sort form into a 30px icon (later-loaded rules of the same weight, an icon-font ::after,
	   and `color: transparent !important` on the select); the body prefix and that one !important put the box back. */
	body .g965-shop__tools .woocommerce-ordering { position: absolute; top: 18px; inset-inline-end: var(--g-gutter); z-index: auto; display: block; width: calc((100% - 2 * var(--g-gutter)) / 2 - 6px); }
	body .g965-shop__tools .woocommerce-ordering::before { content: "ترتيب:"; }
	body .g965-shop__tools .woocommerce-ordering::after { content: none; }
	body .g965-shop__tools .woocommerce-ordering select { width: 100%; min-width: 0; height: 48px; padding-inline: 58px 34px; opacity: 1; color: var(--g-text) !important; }
	.g965-muscles { grid-template-columns: 1fr; }
	.g965-muscles__list { display: flex; flex-wrap: wrap; gap: 8px; }
	body .g965-muscle, body .g965-muscle.is-active { width: auto; padding: 8px 14px; border: 1px solid var(--g-line-2); border-radius: 999px; font-size: 15px; }
	body .g965-muscle.is-active { background: var(--g-gold); color: var(--g-ink); border-color: var(--g-gold); }
	.g965-muscles__img { max-width: 380px; }
	.g965-goal { min-height: 0; }
	.g965-goal__inner { grid-template-columns: 1fr; padding-inline: var(--g-gutter); padding-block: 56px 8px; }
	.g965-goal__product { margin-bottom: 0; }
	.g965-goal__product img { width: min(80%, 420px); }
	.g965-goals > .g965-wrap { position: static; padding-bottom: 28px; }
	body .g965-goals__prev, body .g965-goals__next { display: none; }
	.g965-goals__pills { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding-inline: 0; padding-bottom: 6px; }
	body .g965-pill { flex: none; }
	.g965-services { grid-template-columns: 1fr 1fr; }
	.g965-archive .products:has(> .g965-loop-item) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.g965-qv__content { grid-template-columns: 1fr; }
	body .g965-qv__close { inset-inline-end: 14px; }
	.g965-qv__gallery { order: -1; }
	.g965-qv__main { min-height: 220px; }
	.g965-qv__main img { max-height: 260px; }
}
@media (max-width: 640px) {
	.g965-rail { --per: 1.7; --gap: 14px; }
	.g965-head { flex-direction: column; align-items: stretch; }
	.g965-rail-nav { display: none; }
	.g965-tabs { flex-wrap: nowrap; overflow-x: auto; gap: 18px; scrollbar-width: none; }
	body .g965-tab { flex: none; }
	.g965-cat__icon, .g965-cat__img { width: 72px; height: 72px; }
	.g965-cats__list li { width: 84px; }
	.g965-cats__list { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding-inline: var(--g-gutter); scrollbar-width: none; }
	.g965-cats__list li { flex: none; }
	.g965-cats .g965-wrap { padding-inline: 0; }
	.g965-brands { grid-template-columns: repeat(2, 1fr); }
	.g965-services { grid-template-columns: 1fr; }
	.g965-trust ul { display: grid; grid-template-columns: 1fr 1fr; }
	.g965-footer__grid { grid-template-columns: 1fr; gap: 28px; }
	.g965-card__title { font-size: 15px; }
	.g965-card__price { font-size: 16px; }
	.g965-qv__info { padding: 22px 18px; }
	.g965-qv__title { font-size: 22px; }
	.g965-logo img { width: 120px; }
}
/* ---------- Product page (templates/single-product.php) ---------- */
.g965-product .wd-content-layout { padding-top: 0; padding-bottom: 0; }
.g965-product .wd-sticky-btn { display: none !important; } /* Woodmart's own sticky buy bar; ours replaces it */
.g965-pdp { color: var(--g-text); font-family: var(--g-font); padding: 24px 0 64px; }
.g965-pdp .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 16px; }
.g965-pdp__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(24px, 4vw, 56px); align-items: start; margin-top: 18px; }
.g965-pdp__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--g-muted); font-size: 13px; }
.g965-chip { padding: 3px 10px; border-radius: 4px; background: rgba(230, 198, 154, .14); color: var(--g-gold); font-weight: 700; font-size: 12px; }
.g965-pdp__title { margin: 12px 0 10px; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.25; font-weight: 800; color: var(--g-text); }
.g965-pdp__short { color: var(--g-muted); line-height: 1.7; font-size: 15px; }
.g965-pdp__short p { margin: 0 0 8px; }
.g965-pdp__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 14px 0 6px; font-size: 30px; font-weight: 800; color: var(--g-gold); }
.g965-pdp__price ins { text-decoration: none; }
.g965-pdp__price del { font-size: 16px; font-weight: 400; color: var(--g-muted); }
.g965-pdp__stock { display: flex; align-items: center; gap: 8px; margin: 0 0 18px; font-size: 14px; color: var(--g-muted); }
.g965-pdp__stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #3ecf7a; }
.g965-pdp__stock.is-out::before { background: var(--g-sale); }
.g965-pdp__buy form.cart:not(.variations_form), .g965-pdp__buy .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 0 0 12px; }
.g965-pdp__buy table.variations { width: 100%; margin: 0 0 12px; border: 0; }
.g965-pdp__buy table.variations tr, .g965-pdp__buy table.variations th, .g965-pdp__buy table.variations td { display: block; padding: 0 0 8px; border: 0; background: none; text-align: start; }
.g965-pdp__buy table.variations label { color: var(--g-muted); font-size: 14px; font-weight: 700; }
.g965-pdp__buy .reset_variations { color: var(--g-gold); font-size: 13px; }
/* The chosen variation's price is shown at the top and in the sticky bar (gym965.js), not a second time here. */
.g965-pdp__buy .woocommerce-variation-price { display: none; }
.g965-pdp__buy .woocommerce-variation-availability, .g965-pdp__buy .stock { color: var(--g-muted); font-size: 13px; }
.g965-pdp__buy .quantity input.qty { height: 48px; min-width: 56px; background: transparent; color: var(--g-text); border: 1px solid var(--g-line-2); border-radius: var(--g-radius-sm); text-align: center; font: 700 16px var(--g-font); }
.g965-pdp__buy .quantity :is(.minus, .plus) { height: 48px; background: transparent; color: var(--g-text); border: 1px solid var(--g-line-2); }
.g965-pdp .single_add_to_cart_button.button { flex: 1; min-height: 48px; border-radius: var(--g-radius-sm); background: var(--g-gold); color: var(--g-ink); font: 700 16px var(--g-font); text-transform: none; letter-spacing: 0; }
.g965-pdp .single_add_to_cart_button.button:hover { background: #f0d6ae; color: var(--g-ink); }
.g965-pdp .single_add_to_cart_button.disabled { opacity: .5; }
.g965-pdp :is(.g965-pdp__price, .g965-pdp__sticky-price, .woocommerce-variation-price) :is(.amount, bdi) { color: inherit; }
/* Variation Swatches plugin: Figma size buttons, and colour attributes as dots (gym965.js adds .g965-dotitem). */
body.g965 .g965-pdp .variable-items-wrapper .variable-item:not(.radio-variable-item) { min-width: 56px; height: 42px; padding: 0 12px; border-radius: 6px; background-color: transparent; color: var(--g-text); box-shadow: 0 0 0 1px var(--g-line-2); }
body.g965 .g965-pdp .variable-items-wrapper .variable-item:not(.radio-variable-item):hover { box-shadow: 0 0 0 1px var(--g-gold); }
body.g965 .g965-pdp .variable-items-wrapper .variable-item.selected:not(.radio-variable-item) { background-color: rgba(230, 198, 154, .14); color: var(--g-gold); box-shadow: 0 0 0 2px var(--g-gold); }
body.g965 .g965-pdp .variable-items-wrapper .variable-item.disabled { opacity: .35; }
body.g965 .g965-pdp .variable-items-wrapper .variable-item .variable-item-span { color: inherit; font: 700 14px var(--g-font); }
body.g965 .g965-pdp .variable-items-wrapper .variable-item.g965-dotitem:not(.radio-variable-item) { width: 34px; min-width: 34px; height: 34px; padding: 0; border-radius: 50%; background-color: var(--dot); box-shadow: 0 0 0 1px var(--g-line-2); }
body.g965 .g965-pdp .variable-items-wrapper .variable-item.g965-dotitem.selected:not(.radio-variable-item) { background-color: var(--dot); box-shadow: 0 0 0 2px var(--g-bg), 0 0 0 4px var(--g-gold); }
body.g965 .g965-pdp .variable-item.g965-dotitem .variable-item-contents { opacity: 0; }
body.g965 .g965-pdp .wd-buy-now-btn.button { min-height: 48px; background-color: transparent; color: var(--g-text); border: 1px solid var(--g-line-2); border-radius: var(--g-radius-sm); font: 700 15px var(--g-font); text-transform: none; letter-spacing: 0; }
body.g965 .g965-pdp .wd-buy-now-btn.button:hover { background-color: transparent; color: var(--g-gold); border-color: var(--g-gold); }
body .g965-pdp__wa { width: 100%; }
.g965-pdp__gallery { position: sticky; top: 96px; }
.g965-pdp__stage { position: relative; display: grid; place-items: center; aspect-ratio: 1 / .92; border-radius: var(--g-radius); background: var(--g-cream); overflow: hidden; }
.g965-pdp__main { width: 100%; height: 100%; object-fit: contain; padding: 6%; mix-blend-mode: multiply; }
.g965-pdp__stage .g965-card__wish { top: 14px; inset-inline-end: 14px; }
.g965-pdp__thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
body .g965-pdp__thumb { display: block; aspect-ratio: 1; padding: 4px; border-radius: var(--g-radius-sm); background: var(--g-cream); border: 2px solid transparent; cursor: pointer; }
body .g965-pdp__thumb:hover { background: var(--g-cream); border-color: var(--g-line-2); }
body .g965-pdp__thumb.is-active { border-color: var(--g-gold); }
.g965-pdp__thumb img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.g965-pdp__details { margin-top: 56px; }
.g965-pdp__details .g965-tabs { margin: 0 0 20px; border-bottom: 1px solid var(--g-line); }
.g965-pdp__pane { color: #d8e0ea; line-height: 1.8; }
.g965-pdp__pane img { max-width: 100%; height: auto; }
.g965-pdp__pane a { color: var(--g-gold); }
.g965-pdp__pane table.shop_attributes { width: 100%; margin: 0; border: 0; border-collapse: collapse; }
.g965-pdp__pane .shop_attributes th, .g965-pdp__pane .shop_attributes td { padding: 12px 0; border: 0; border-bottom: 1px solid var(--g-line); background: none; color: var(--g-text); text-align: start; font-size: 14px; }
.g965-pdp__pane .shop_attributes th { width: 30%; color: var(--g-muted); font-weight: 400; }
.g965-pdp__pane .shop_attributes p { margin: 0; }
.g965-pdp__related { margin-top: 56px; }
.g965-pdp__related .g965-head__text { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex: 1; }
.g965-pdp__related .g965-more { margin-top: 0; }
.g965-pdp__sticky { display: none; }
body .g965-filters__close { display: none; } /* phones only: shown in the bottom-sheet rule below */

@media (max-width: 900px) {
	.g965-pdp__top { grid-template-columns: minmax(0, 1fr); }
	.g965-pdp__gallery { position: static; order: -1; }
	.g965-pdp__sticky { position: fixed; inset-inline: 0; bottom: 0; z-index: 999980; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--g-bg-2); border-top: 1px solid var(--g-line); transform: translateY(110%); transition: transform .2s; }
	.g965-pdp__sticky.is-shown { transform: none; }
	.g965-pdp__sticky-price { color: var(--g-gold); font-size: 18px; font-weight: 800; }
	.g965-pdp__sticky-price del { display: none; }
	body .g965-pdp__sticky .g965-btn { flex: 1; max-width: 220px; }
	/* Figma mobile: filters open as a sheet from the bottom. */
	.g965-shop__side.is-open .g965-filters { position: fixed; inset: auto 0 0 0; z-index: 999985; max-height: 85vh; margin: 0; overflow: auto; border-radius: 16px 16px 0 0; box-shadow: 0 -20px 50px rgba(0, 0, 0, .5); }
	.g965-shop__side.is-open::before { content: ""; position: fixed; inset: 0; z-index: 999984; background: rgba(2, 6, 10, .6); }
	body .g965-filters__close { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: transparent; border: 1px solid var(--g-line-2); color: var(--g-text); }
	.g965-filters__head { gap: 12px; }
	.g965-filters__head h2 { flex: 1; }
}

/* ---------- Contact Us (templates/page-contact.php) ---------- */
.g965-contact-page .wd-content-layout { padding-top: 0; padding-bottom: 0; }
.g965-contact-page .wd-page-title { display: none !important; }
.g965-contact { color: var(--g-text); font-family: var(--g-font); padding: 28px 0 72px; }
.g965-contact__title { margin: 12px 0 10px; font-size: clamp(32px, 3.4vw, 46px); font-weight: 800; color: var(--g-text); }
.g965-contact__intro { margin: 0 0 28px; color: var(--g-muted); font-size: 16px; }
.g965-contact__panel { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); border: 1px solid var(--g-line); border-radius: 14px; overflow: hidden; background: var(--g-surface); }
.g965-contact__info { position: relative; padding: 32px 30px; background: radial-gradient(420px 320px at 30% 100%, rgba(230, 198, 154, .08), transparent 70%), linear-gradient(160deg, #10304e, #0b2238 70%); overflow: hidden; }
.g965-contact__info h2, .g965-contact__form h2 { margin: 0 0 8px; font-size: 26px; font-weight: 800; color: var(--g-text); }
.g965-contact__info > p, .g965-contact__form > p { margin: 0 0 22px; color: #c9d3de; line-height: 1.7; }
.g965-contact__list { display: grid; gap: 18px; margin: 0 0 26px; padding: 0; list-style: none; }
.g965-contact__list li { display: flex; align-items: center; gap: 12px; }
.g965-contact__list small, .g965-contact__follow small { display: block; color: #c9d3de; font-size: 13px; }
.g965-contact__list a, .g965-contact__list b { color: var(--g-text); font-weight: 800; font-size: 16px; text-decoration: none; }
.g965-contact__ico { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, .08); color: var(--g-text); }
.g965-contact__follow .g965-social { margin-top: 10px; }
.g965-contact__form { padding: 32px 30px; }
.g965-cf__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
/* Contact Form 7 wraps the template in <p>/<br> (autop); let the labels be the grid items. */
.g965-cf p { margin: 0; }
.g965-cf br { display: none; }
.g965-cf__row > p { display: contents; }
.g965-cf .wpcf7-form-control-wrap { display: block; }
.g965-cf__field { display: block; margin-bottom: 14px; color: var(--g-muted); font-size: 13px; font-weight: 700; }
.g965-cf__field > span:first-child { display: block; margin-bottom: 8px; color: var(--g-text); }
.g965-contact .g965-cf :is(input[type="text"], input[type="tel"], input[type="email"], select, textarea) {
	width: 100%; min-height: 46px; padding: 10px 14px; border-radius: var(--g-radius-sm); border: 1px solid var(--g-line-2); background: var(--g-bg-2); color: var(--g-text); font: 15px var(--g-font); box-shadow: none;
}
.g965-contact .g965-cf textarea.wpcf7-form-control { min-height: 120px; height: 120px; resize: vertical; }
.g965-contact .g965-cf :is(input, select, textarea):focus { border-color: var(--g-gold); outline: none; }
.g965-contact .g965-cf ::placeholder { color: var(--g-muted); opacity: .8; }
body .g965-contact .g965-cf .wpcf7-submit { min-height: 48px; padding: 0 28px; border-radius: var(--g-radius-sm); border: 0; background-color: var(--g-gold); color: var(--g-ink); font: 700 16px var(--g-font); text-transform: none; letter-spacing: 0; cursor: pointer; }
body .g965-contact .g965-cf .wpcf7-submit:hover { background-color: #f0d6ae; color: var(--g-ink); }
.g965-contact .g965-cf .wpcf7-not-valid-tip { margin-top: 6px; color: #ff8a80; font-size: 12px; }
.g965-contact .g965-cf .wpcf7-response-output { margin: 14px 0 0; padding: 10px 14px; border-radius: var(--g-radius-sm); border-color: var(--g-line-2); color: var(--g-text); }
.g965-contact .g965-cf .wpcf7-spinner { margin: 0 12px; }
.g965-faq { margin-top: 56px; }
.g965-faq .g965-h2 { margin-bottom: 20px; color: var(--g-text); }
.g965-faq__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.g965-faq__col { padding: 6px 18px; border: 1px solid var(--g-line); border-radius: var(--g-radius); background: var(--g-surface); }
.g965-faq__item + .g965-faq__item { border-top: 1px solid var(--g-line); }
.g965-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 0; cursor: pointer; list-style: none; font-weight: 800; font-size: 15px; color: var(--g-text); }
.g965-faq__item summary::-webkit-details-marker { display: none; }
.g965-faq__item summary .g965-icon { flex: none; color: var(--g-muted); transition: transform .2s; }
.g965-faq__item[open] summary .g965-icon { transform: rotate(180deg); color: var(--g-gold); }
.g965-faq__item p { margin: 0 0 16px; color: var(--g-muted); line-height: 1.8; font-size: 14px; }
@media (max-width: 900px) {
	.g965-contact__panel { grid-template-columns: minmax(0, 1fr); border: 0; background: transparent; gap: 16px; overflow: visible; }
	.g965-contact__form { order: -1; padding: 22px 18px; border: 1px solid var(--g-line); border-radius: 14px; background: var(--g-surface); }
	.g965-contact__info { padding: 24px 18px; border-radius: 14px; }
	.g965-cf__row { grid-template-columns: 1fr; }
	.g965-faq__cols { grid-template-columns: 1fr; gap: 0; }
	.g965-faq__col + .g965-faq__col { margin-top: -1px; border-top-left-radius: 0; border-top-right-radius: 0; }
	.g965-faq__col:first-child:not(:last-child) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
	body .g965-contact .g965-cf .wpcf7-submit { width: 100%; }
}

/* ---------- Cart and checkout ----------
   Woodmart Layout Builder pages; only recoloured to the Figma dark cards (no markup, field or payment
   changes). Woodmart's Elementor CSS gives these widgets a #F4F4F4 box with white headings. */
/* Woodmart's container is 1540px here; the Figma cart and checkout frames sit in the 1200px content width. */
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-layout.container { max-width: calc(var(--g-wrap) + 30px); }
/* Two texts kept Woodmart's light-theme colours and vanished on the dark cards. The coupon link ("أنقر هنا لإدخال رمز
   القسيمة") is painted by Woodmart's `color: var(--wd-primary-color) !important`, which the checkout layout sets to #101114,
   so the variable is set to gold for the coupon prompt. The shipping note comes from a shortcode in the checkout layout with an
   inline `color:#444`, which only !important can outweigh (the layout's content is the store's and is left unedited). */
body.g965-chrome .woocommerce-form-coupon-toggle { --wd-primary-color: var(--g-gold); }
body.g965-chrome .woocommerce-form-coupon-toggle .showcoupon { color: var(--g-gold); text-decoration: underline; }
body.g965-chrome.woocommerce-checkout .wd-content-area .elementor-shortcode p { color: var(--g-muted) !important; }
body.g965-chrome .wd-content-area .elementor-element:is(.elementor-widget-wd_cart_table, .elementor-widget-wd_cart_totals, .elementor-widget-wd_single_product_shipping_progress_bar, .elementor-widget-wd_checkout_billing_details_form, .elementor-widget-wd_checkout_shipping_details_from, .elementor-widget-wd_checkout_payment_methods, .elementor-widget-wd_checkout_order_review, .elementor-widget-wd_checkout_coupon_form) > .elementor-widget-container {
	background-color: var(--g-surface); border: 1px solid var(--g-line); border-radius: var(--g-radius); color: var(--g-text);
}
/* Checkout layout 1841 wraps its sections in #F4F4F4 Elementor containers: those become the Figma cards
   (title inside), and the widget boxes inside them go flat so there is one card per section. */
body.g965-chrome .elementor-1841 .elementor-element:is(.elementor-element-1f18f72, .elementor-element-9c39444, .elementor-element-d3f06e4) {
	background-color: var(--g-surface); border: 1px solid var(--g-line); border-radius: var(--g-radius);
}
body.g965-chrome.woocommerce-checkout .elementor-1841 .elementor-element:is(.elementor-element-1f18f72, .elementor-element-9c39444, .elementor-element-d3f06e4) .elementor-element > .elementor-widget-container {
	background-color: transparent; border: 0;
}
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) :is(.wd-content-area, .elementor-1841) { color: var(--g-text); font-family: var(--g-font); }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area :is(h1, h2, h3, h4, legend) { color: var(--g-text); font-family: var(--g-font); }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area :is(label, th, .product-name .variation, .woocommerce-shipping-destination, .cart-subtotal th, small) { color: var(--g-muted); }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area :is(td, .amount, .product-name a, .order-total) { color: var(--g-text); }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area :is(.order-total .amount, .cart-subtotal .amount, .product-subtotal .amount) { color: var(--g-gold); }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area :is(table, th, td, tr) { border-color: var(--g-line); background: transparent; }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="number"], select, textarea, .select2-selection) {
	background-color: var(--g-bg-2); color: var(--g-text); border: 1px solid var(--g-line-2); border-radius: var(--g-radius-sm);
}
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area .select2-selection__rendered { color: var(--g-text); }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area ::placeholder { color: var(--g-muted); opacity: .8; }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area .quantity :is(.minus, .plus) { background-color: transparent; color: var(--g-text); border-color: var(--g-line-2); }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area :is(.checkout-button, #place_order).button {
	background-color: var(--g-gold); color: var(--g-ink); border-radius: var(--g-radius-sm); font: 700 16px var(--g-font); text-transform: none; letter-spacing: 0; min-height: 50px;
}
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area :is(.checkout-button, #place_order).button:hover { background-color: #f0d6ae; color: var(--g-ink); }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area .button.btn-accent:not(.checkout-button):not(#place_order) {
	background-color: transparent; color: var(--g-text); border: 1px solid var(--g-line-2); border-radius: var(--g-radius-sm); text-transform: none;
}
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area .button.btn-accent:not(.checkout-button):not(#place_order):hover { border-color: var(--g-gold); color: var(--g-gold); background-color: transparent; }
body.g965-chrome.woocommerce-checkout .wd-content-area .wc_payment_methods > li { padding: 12px 14px; margin-bottom: 10px; border: 1px solid var(--g-line-2); border-radius: var(--g-radius-sm); background: var(--g-bg-2); list-style: none; }
body.g965-chrome.woocommerce-checkout .wd-content-area .wc_payment_methods > li label { color: var(--g-text); font-weight: 700; }
body.g965-chrome.woocommerce-checkout .wd-content-area .payment_box { background-color: transparent; color: var(--g-muted); }
body.g965-chrome.woocommerce-checkout .wd-content-area .payment_box::before { display: none; }
body.g965-chrome:is(.woocommerce-cart, .woocommerce-checkout) .wd-content-area :is(.woocommerce-info a, .woocommerce-privacy-policy-text a, .shipping-calculator-button, .showcoupon) { color: var(--g-gold); }
/* Woodmart prints error and warning notices (e.g. checkout validation) in white on its #E0B252 gold, about 2:1 contrast;
   dark ink on the same gold is about 9.5:1. */
body.g965-chrome { --notices-warning-color: var(--g-ink); }
body.g965-chrome :is(.woocommerce-error, .woocommerce-info, .wd-notice.wd-warning) .amount { color: inherit; }

@media (prefers-reduced-motion: reduce) {
	[class^="g965-"], [class*=" g965-"], [class^="g965-"] *, [class*=" g965-"] * { transition: none !important; scroll-behavior: auto !important; }
}
