/* ==========================================================================
   GEMGENÈVE DESIGN SYSTEM
   International Gemstone Exhibition - Geneva
   
   Version: 2.0.0
   Author: GemGenève
   
   TABLE OF CONTENTS:
   1. Design Tokens (CSS Variables)
   2. Font Imports
   3. Base & Reset (WordPress-safe)
   4. Typography System
   5. Layout System
   6. Components
      6.1 Buttons
      6.2 Cards
      6.3 Hero Sections
      6.4 Navigation
      6.5 Footer
      6.6 Forms
      6.7 Tables
   7. Utilities
   8. WordPress & Gutenberg Overrides
   9. Animations & Transitions
   10. Responsive Breakpoints
   11. Accessibility & Reduced Motion
   ========================================================================== */


/* ==========================================================================
   1. DESIGN TOKENS (CSS Variables)
   ========================================================================== */

:root {
	/* -------------------------------------------------------------------------
     COLOR PALETTE
     ------------------------------------------------------------------------- */

	/* Primary Colors */
	--gem-white: #FFFFFF;
	--gem-black: #0A0A0A;
	--gem-night-blue: #0D1B2A;
	--gem-night-blue-light: #1B263B;
	--gem-night-blue-dark: #06101A;

	/* Accent Color - Gold (use sparingly, max 5-10% of UI) */
	--gem-gold: #C9A962;
	--gem-gold-light: #D4BC7D;
	--gem-gold-dark: #A68B4B;
	--gem-gold-muted: rgba(201, 169, 98, 0.15);

	/* Neutral Grays */
	--gem-gray-50: #FAFAFA;
	--gem-gray-100: #F5F5F5;
	--gem-gray-200: #E5E5E5;
	--gem-gray-300: #D4D4D4;
	--gem-gray-400: #A3A3A3;
	--gem-gray-500: #737373;
	--gem-gray-600: #525252;
	--gem-gray-700: #404040;
	--gem-gray-800: #262626;
	--gem-gray-900: #171717;

	/* Semantic Colors */
	--gem-text-primary: var(--gem-black);
	--gem-text-secondary: var(--gem-gray-600);
	--gem-text-muted: var(--gem-gray-500);
	--gem-text-inverse: var(--gem-white);
	--gem-bg-primary: var(--gem-white);
	--gem-bg-secondary: var(--gem-gray-50);
	--gem-bg-dark: var(--gem-night-blue);
	--gem-border-light: var(--gem-gray-200);
	--gem-border-medium: var(--gem-gray-300);
	--gem-border-dark: var(--gem-black);

	/* -------------------------------------------------------------------------
     TYPOGRAPHY
     ------------------------------------------------------------------------- */

	/* Font Families */
	--gem-font-heading: 'SangBleu Empire', 'Times New Roman', Georgia, serif;
	--gem-font-body: 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--gem-font-mono: 'SF Mono', Monaco, 'Courier New', monospace;

	/* Font Sizes - Fluid Scale */
	--gem-text-xs: clamp(0.6875rem, 0.65rem + 0.1vw, 0.75rem);
	/* 11-12px */
	--gem-text-sm: clamp(0.8125rem, 0.775rem + 0.15vw, 0.875rem);
	/* 13-14px */
	--gem-text-base: clamp(0.9375rem, 0.9rem + 0.18vw, 1rem);
	/* 15-16px */
	--gem-text-md: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
	/* 16-18px */
	--gem-text-lg: clamp(1.125rem, 1.05rem + 0.35vw, 1.25rem);
	/* 18-20px */
	--gem-text-xl: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);
	/* 20-24px */
	--gem-text-2xl: clamp(1.5rem, 1.35rem + 0.75vw, 1.875rem);
	/* 24-30px */
	--gem-text-3xl: clamp(1.875rem, 1.65rem + 1.1vw, 2.5rem);
	/* 30-40px */
	--gem-text-4xl: clamp(2.25rem, 1.95rem + 1.5vw, 3.25rem);
	/* 36-52px */
	--gem-text-5xl: clamp(2.75rem, 2.3rem + 2.25vw, 4.5rem);
	/* 44-72px */

	/* Line Heights */
	--gem-leading-none: 1;
	--gem-leading-tight: 1.15;
	--gem-leading-snug: 1.3;
	--gem-leading-normal: 1.6;
	--gem-leading-relaxed: 1.75;
	--gem-leading-loose: 2;

	/* Letter Spacing */
	--gem-tracking-tighter: -0.03em;
	--gem-tracking-tight: -0.015em;
	--gem-tracking-normal: 0;
	--gem-tracking-wide: 0.025em;
	--gem-tracking-wider: 0.05em;
	--gem-tracking-widest: 0.15em;

	/* Font Weights */
	--gem-font-light: 300;
	--gem-font-regular: 400;
	--gem-font-medium: 500;
	--gem-font-semibold: 600;
	--gem-font-bold: 700;

	/* -------------------------------------------------------------------------
     SPACING SCALE (8px base)
     ------------------------------------------------------------------------- */
	--gem-space-0: 0;
	--gem-space-1: 0.25rem;
	/* 4px */
	--gem-space-2: 0.5rem;
	/* 8px */
	--gem-space-3: 0.75rem;
	/* 12px */
	--gem-space-4: 1rem;
	/* 16px */
	--gem-space-5: 1.25rem;
	/* 20px */
	--gem-space-6: 1.5rem;
	/* 24px */
	--gem-space-8: 2rem;
	/* 32px */
	--gem-space-10: 2.5rem;
	/* 40px */
	--gem-space-12: 3rem;
	/* 48px */
	--gem-space-16: 4rem;
	/* 64px */
	--gem-space-20: 5rem;
	/* 80px */
	--gem-space-24: 6rem;
	/* 96px */
	--gem-space-32: 8rem;
	/* 128px */
	--gem-space-40: 10rem;
	/* 160px */

	/* -------------------------------------------------------------------------
     LAYOUT
     ------------------------------------------------------------------------- */

	/* Container Widths */
	--gem-container-xs: 20rem;
	/* 320px */
	--gem-container-sm: 40rem;
	/* 640px */
	--gem-container-md: 48rem;
	/* 768px */
	--gem-container-lg: 64rem;
	/* 1024px */
	--gem-container-xl: 80rem;
	/* 1280px */
	--gem-container-2xl: 90rem;
	/* 1440px */
	--gem-container-max: 100rem;
	/* 1600px */

	/* Content Width */
	--gem-content-width: 65ch;

	/* Gutters */
	--gem-gutter-mobile: var(--gem-space-4);
	--gem-gutter-tablet: var(--gem-space-6);
	--gem-gutter-desktop: var(--gem-space-8);

	/* -------------------------------------------------------------------------
     BORDERS & RADIUS
     ------------------------------------------------------------------------- */
	--gem-radius-none: 0;
	--gem-radius-sm: 0.125rem;
	/* 2px - subtle */
	--gem-radius-md: 0.25rem;
	/* 4px */
	--gem-radius-lg: 0.5rem;
	/* 8px */
	--gem-radius-xl: 1rem;
	/* 16px */
	--gem-radius-full: 9999px;

	--gem-border-width-thin: 1px;
	--gem-border-width-medium: 2px;
	--gem-border-width-thick: 3px;

	/* -------------------------------------------------------------------------
     SHADOWS
     ------------------------------------------------------------------------- */
	--gem-shadow-xs: 0 1px 2px rgba(10, 10, 10, 0.04);
	--gem-shadow-sm: 0 2px 4px rgba(10, 10, 10, 0.06);
	--gem-shadow-md: 0 4px 12px rgba(10, 10, 10, 0.08);
	--gem-shadow-lg: 0 8px 24px rgba(10, 10, 10, 0.1);
	--gem-shadow-xl: 0 16px 48px rgba(10, 10, 10, 0.12);
	--gem-shadow-2xl: 0 24px 64px rgba(10, 10, 10, 0.16);

	/* Colored shadows for gold accents */
	--gem-shadow-gold: 0 4px 16px rgba(201, 169, 98, 0.25);
	--gem-shadow-gold-lg: 0 8px 32px rgba(201, 169, 98, 0.3);

	/* Inset shadows */
	--gem-shadow-inset: inset 0 2px 4px rgba(10, 10, 10, 0.06);

	/* -------------------------------------------------------------------------
     TRANSITIONS & TIMING
     ------------------------------------------------------------------------- */
	--gem-duration-instant: 50ms;
	--gem-duration-fast: 150ms;
	--gem-duration-normal: 250ms;
	--gem-duration-slow: 400ms;
	--gem-duration-slower: 600ms;

	--gem-ease-linear: linear;
	--gem-ease-in: cubic-bezier(0.4, 0, 1, 1);
	--gem-ease-out: cubic-bezier(0, 0, 0.2, 1);
	--gem-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
	--gem-ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
	--gem-ease-smooth: cubic-bezier(0.25, 0.1, 0.25, 1);

	/* Default transition */
	--gem-transition: var(--gem-duration-normal) var(--gem-ease-smooth);
	--gem-transition-fast: var(--gem-duration-fast) var(--gem-ease-smooth);

	/* -------------------------------------------------------------------------
     Z-INDEX SCALE
     ------------------------------------------------------------------------- */
	--gem-z-below: -1;
	--gem-z-base: 0;
	--gem-z-raised: 10;
	--gem-z-dropdown: 100;
	--gem-z-sticky: 500;
	--gem-z-overlay: 1000;
	--gem-z-modal: 1100;
	--gem-z-popover: 1200;
	--gem-z-tooltip: 1300;
	--gem-z-toast: 1400;
	--gem-z-max: 9999;
}


/* ==========================================================================
   2. FONT IMPORTS
   ========================================================================== */

/* SangBleu Empire - Premium Heading Font */
@font-face {
	font-family: 'SangBleu Empire';
	src: url('webfonts/SangBleuEmpire-Regular.woff2') format('woff2'),
		url('webfonts/SangBleuEmpire-Regular.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'SangBleu Empire';
	src: url('webfonts/SangBleuEmpire-Medium.woff2') format('woff2'),
		url('webfonts/SangBleuEmpire-Medium.woff') format('woff');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'SangBleu Empire';
	src: url('webfonts/SangBleuEmpire-Bold.woff2') format('woff2'),
		url('webfonts/SangBleuEmpire-Bold.woff') format('woff');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* SF Pro Display - Body Font (system font stack fallback if not available) */
@font-face {
	font-family: 'SF Pro Display';
	src: url('webfonts/SF-Pro-Display-Regular.woff2') format('woff2'),
		url('webfonts/SF-Pro-Display-Regular.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'SF Pro Display';
	src: url('webfonts/SF-Pro-Display-Medium.woff2') format('woff2'),
		url('webfonts/SF-Pro-Display-Medium.woff') format('woff');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'SF Pro Display';
	src: url('webfonts/SF-Pro-Display-Semibold.woff2') format('woff2'),
		url('webfonts/SF-Pro-Display-Semibold.woff') format('woff');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'SF Pro Display';
	src: url('webfonts/SF-Pro-Display-Bold.woff2') format('woff2'),
		url('webfonts/SF-Pro-Display-Bold.woff') format('woff');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}


/* ==========================================================================
   3. BASE & RESET (WordPress-safe)
   ========================================================================== */

/*
 * Minimal reset that won't break WordPress admin or Gutenberg
 * Scoped to frontend elements only
 */

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

/* Prevent WordPress admin bar conflicts */
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

/* Skip admin bar area */
body:not(.wp-admin) {
	margin: 0;
	padding: 0;
	font-family: var(--gem-font-body);
	font-size: var(--gem-text-base);
	font-weight: var(--gem-font-regular);
	line-height: var(--gem-leading-normal);
	color: var(--gem-text-primary);
	background-color: var(--gem-bg-primary);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Images */
img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

/* Remove default list styles in site content only */
.site-main ul:not(.wp-block-list):not(.blocks-gallery-grid),
.site-main ol:not(.wp-block-list) {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Form elements inherit font */
input,
button,
textarea,
select {
	font: inherit;
}

/* Remove default button styles */
button {
	background: none;
	border: none;
	cursor: pointer;
}

/* Prevent text overflow */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
	overflow-wrap: break-word;
}


/* ==========================================================================
   4. TYPOGRAPHY SYSTEM
   ========================================================================== */

/* -------------------------------------------------------------------------
   Headings
   ------------------------------------------------------------------------- */

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
	font-family: var(--gem-font-heading);
	font-weight: var(--gem-font-regular);
	line-height: var(--gem-leading-tight);
	letter-spacing: var(--gem-tracking-tight);
	color: var(--gem-text-primary);
	margin-top: 0;
	margin-bottom: var(--gem-space-4);
}

h1,
.h1 {
	font-size: var(--gem-text-5xl);
	line-height: var(--gem-leading-none);
	letter-spacing: var(--gem-tracking-tighter);
	margin-bottom: var(--gem-space-6);
}

h2,
.h2 {
	font-size: var(--gem-text-4xl);
	margin-bottom: var(--gem-space-5);
}

h3,
.h3 {
	font-size: var(--gem-text-3xl);
}

h4,
.h4 {
	font-size: var(--gem-text-2xl);
}

h5,
.h5 {
	font-size: var(--gem-text-xl);
	font-weight: var(--gem-font-medium);
}

h6,
.h6 {
	font-size: var(--gem-text-lg);
	font-weight: var(--gem-font-medium);
	letter-spacing: var(--gem-tracking-normal);
}

/* -------------------------------------------------------------------------
   Paragraphs & Body Text
   ------------------------------------------------------------------------- */

p {
	margin-top: 0;
	margin-bottom: var(--gem-space-4);
	max-width: var(--gem-content-width);
}

.lead,
.gem-lead {
	font-size: var(--gem-text-lg);
	line-height: var(--gem-leading-relaxed);
	color: var(--gem-text-secondary);
}

.small,
.gem-small {
	font-size: var(--gem-text-sm);
}

.caption,
.gem-caption {
	font-size: var(--gem-text-xs);
	color: var(--gem-text-muted);
	letter-spacing: var(--gem-tracking-wide);
}

/* -------------------------------------------------------------------------
   Links
   ------------------------------------------------------------------------- */

a,
a:visited {
	color: var(--gem-text-primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
	transition: color var(--gem-transition-fast),
		text-decoration-color var(--gem-transition-fast);
	text-decoration: none;
}



a:hover {
	color: var(--gem-gold-dark);
	text-decoration-color: var(--gem-gold);
}

a:focus-visible {
	outline: 2px solid var(--gem-gold);
	outline-offset: 2px;
}

/* Links without underline */
.gem-link-plain {
	text-decoration: none;
}

.gem-link-plain:hover {
	text-decoration: underline;
}

/* Gold accent link */
.gem-link-gold {
	color: var(--gem-gold-dark);
	text-decoration-color: var(--gem-gold);
}

.gem-link-gold:hover {
	color: var(--gem-gold);
}

/* -------------------------------------------------------------------------
   Lists (in content areas)
   ------------------------------------------------------------------------- */

.entry-content ul,
.entry-content ol,
.gem-list {
	margin: 0 0 var(--gem-space-4) 0;
	padding-left: var(--gem-space-6);
}

.entry-content ul {
	list-style-type: disc;
}

.entry-content ol {
	list-style-type: decimal;
}

.entry-content li {
	margin-bottom: var(--gem-space-2);
	line-height: var(--gem-leading-relaxed);
}

.entry-content li::marker {
	color: var(--gem-gold);
}

/* -------------------------------------------------------------------------
   Blockquotes
   ------------------------------------------------------------------------- */

blockquote,
.wp-block-quote {
	margin: var(--gem-space-8) 0;
	padding: var(--gem-space-6) var(--gem-space-8);
	border-left: 3px solid var(--gem-gold);
	background-color: var(--gem-gray-50);
	font-family: var(--gem-font-heading);
	font-size: var(--gem-text-lg);
	font-style: italic;
	color: var(--gem-text-secondary);
}

blockquote p:last-child {
	margin-bottom: 0;
}

blockquote cite,
.wp-block-quote cite {
	display: block;
	margin-top: var(--gem-space-4);
	font-family: var(--gem-font-body);
	font-size: var(--gem-text-sm);
	font-style: normal;
	font-weight: var(--gem-font-medium);
	color: var(--gem-text-muted);
	letter-spacing: var(--gem-tracking-wider);
	text-transform: uppercase;
}

blockquote cite::before {
	content: "— ";
}

/* -------------------------------------------------------------------------
   Horizontal Rule
   ------------------------------------------------------------------------- */

hr,
.wp-block-separator {
	border: none;
	height: 1px;
	background-color: var(--gem-border-light);
	margin: var(--gem-space-8) 0;
}

.wp-block-separator.is-style-wide {
	width: 100%;
}

.wp-block-separator.is-style-dots {
	background: none;
	text-align: center;
}

.wp-block-separator.is-style-dots::before {
	content: "···";
	color: var(--gem-gold);
	font-size: var(--gem-text-xl);
	letter-spacing: var(--gem-space-4);
}

/* -------------------------------------------------------------------------
   Text Utilities
   ------------------------------------------------------------------------- */

.gem-text-gold {
	color: var(--gem-gold);
}

.gem-text-night {
	color: var(--gem-night-blue);
}

.gem-text-uppercase {
	text-transform: uppercase;
	letter-spacing: var(--gem-tracking-widest);
}

.gem-text-serif {
	font-family: var(--gem-font-heading);
}


/* ==========================================================================
   5. LAYOUT SYSTEM
   ========================================================================== */

/* -------------------------------------------------------------------------
   Site Container
   ------------------------------------------------------------------------- */

.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-main {
	flex: 1;
	padding: var(--gem-space-4) var(--gem-gutter-mobile) var(--gem-space-8);
}

@media (min-width: 768px) {
	.site-main {
		padding: var(--gem-space-6) var(--gem-gutter-tablet) var(--gem-space-12);
	}
}

@media (min-width: 1024px) {
	.site-main {
		padding: var(--gem-space-8) var(--gem-gutter-desktop) var(--gem-space-16);
	}
}

/* -------------------------------------------------------------------------
   Container
   ------------------------------------------------------------------------- */

.gem-container {
	width: 100%;
	max-width: var(--gem-container-xl);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--gem-gutter-mobile);
	padding-right: var(--gem-gutter-mobile);
}

@media (min-width: 768px) {
	.gem-container {
		padding-left: var(--gem-gutter-tablet);
		padding-right: var(--gem-gutter-tablet);
	}
}

@media (min-width: 1024px) {
	.gem-container {
		padding-left: var(--gem-gutter-desktop);
		padding-right: var(--gem-gutter-desktop);
	}
}

/* Container variations */
.gem-container--narrow {
	max-width: var(--gem-container-md);
}

.gem-container--wide {
	max-width: var(--gem-container-2xl);
}

.gem-container--full {
	max-width: none;
}

/* -------------------------------------------------------------------------
   Sections
   ------------------------------------------------------------------------- */

.gem-section {
	padding-top: var(--gem-space-12);
	padding-bottom: var(--gem-space-12);
}

@media (min-width: 768px) {
	.gem-section {
		padding-top: var(--gem-space-16);
		padding-bottom: var(--gem-space-16);
	}
}

@media (min-width: 1024px) {
	.gem-section {
		padding-top: var(--gem-space-20);
		padding-bottom: var(--gem-space-20);
	}
}

/* Section with border */
.gem-section--bordered {
	border-bottom: 1px solid var(--gem-border-light);
}

/* Dark section */
.gem-section--dark {
	background-color: var(--gem-night-blue);
	color: var(--gem-text-inverse);
}

.gem-section--dark h1,
.gem-section--dark h2,
.gem-section--dark h3,
.gem-section--dark h4 {
	color: var(--gem-white);
}

.gem-section--dark a {
	color: var(--gem-gold-light);
}

/* Subtle background section */
.gem-section--subtle {
	background-color: var(--gem-gray-50);
}

/* -------------------------------------------------------------------------
   Grid System
   ------------------------------------------------------------------------- */

.gem-grid {
	display: grid;
	gap: var(--gem-space-6);
}

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

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

	.gem-grid {
		gap: var(--gem-space-8);
	}
}

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

/* Auto-fit grid */
.gem-grid--auto {
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

/* -------------------------------------------------------------------------
   Flexbox Utilities
   ------------------------------------------------------------------------- */

.gem-flex {
	display: flex;
}

.gem-flex--wrap {
	flex-wrap: wrap;
}

.gem-flex--center {
	align-items: center;
	justify-content: center;
}

.gem-flex--between {
	justify-content: space-between;
}

.gem-flex--gap {
	gap: var(--gem-space-4);
}

.gem-flex--gap-lg {
	gap: var(--gem-space-8);
}


/* ==========================================================================
   6. COMPONENTS
   ========================================================================== */

/* =========================================================================
   6.1 BUTTONS
   ========================================================================= */

.gem-btn,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--gem-space-2);
	padding: var(--gem-space-3) var(--gem-space-6);
	font-family: var(--gem-font-body);
	font-size: var(--gem-text-sm);
	font-weight: var(--gem-font-medium);
	letter-spacing: var(--gem-tracking-wider);
	text-transform: uppercase;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--gem-radius-none);
	cursor: pointer;
	transition: all var(--gem-transition);
}

.gem-btn:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 2px solid var(--gem-gold);
	outline-offset: 2px;
}

/* Primary Button - Gold */
.gem-btn--primary,
.wp-block-button.is-style-fill .wp-block-button__link,
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background-color: var(--gem-gold);
	border-color: var(--gem-gold);
	color: var(--gem-white);
}

.gem-btn--primary:hover,
.wp-block-button.is-style-fill .wp-block-button__link:hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background-color: var(--gem-gold-dark);
	border-color: var(--gem-gold-dark);
	color: var(--gem-white);
	box-shadow: var(--gem-shadow-gold);
}

/* Secondary Button - Outline */
.gem-btn--secondary,
.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent;
	border-color: var(--gem-black);
	color: var(--gem-black);
}

.gem-btn--secondary:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--gem-black);
	border-color: var(--gem-black);
	color: var(--gem-white);
}

/* Tertiary Button - Ghost */
.gem-btn--tertiary {
	background-color: transparent;
	border-color: transparent;
	color: var(--gem-text-primary);
	padding-left: var(--gem-space-2);
	padding-right: var(--gem-space-2);
}

.gem-btn--tertiary:hover {
	color: var(--gem-gold-dark);
}

/* Night Blue Button */
.gem-btn--night {
	background-color: var(--gem-night-blue);
	border-color: var(--gem-night-blue);
	color: var(--gem-white);
}

.gem-btn--night:hover {
	background-color: var(--gem-night-blue-light);
	border-color: var(--gem-night-blue-light);
}

/* Button Sizes */
.gem-btn--sm {
	padding: var(--gem-space-2) var(--gem-space-4);
	font-size: var(--gem-text-xs);
}

.gem-btn--lg {
	padding: var(--gem-space-4) var(--gem-space-8);
	font-size: var(--gem-text-base);
}

/* Button with icon */
.gem-btn svg,
.gem-btn .gem-icon {
	width: 1em;
	height: 1em;
}

/* Button arrow animation */
.gem-btn--arrow::after {
	content: "→";
	margin-left: var(--gem-space-2);
	transition: transform var(--gem-transition-fast);
}

.gem-btn--arrow:hover::after {
	transform: translateX(4px);
}


/* =========================================================================
   6.2 CARDS
   ========================================================================= */

.gem-card {
	display: flex;
	flex-direction: column;
	background-color: var(--gem-white);
	border: 1px solid var(--gem-border-light);
	transition: box-shadow var(--gem-transition),
		transform var(--gem-transition);
}

.gem-card:hover {
	box-shadow: var(--gem-shadow-lg);
}

.gem-card--clickable:hover {
	transform: translateY(-2px);
}

/* Card Image */
.gem-card__image {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4/3;
}

.gem-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--gem-duration-slow) var(--gem-ease-out);
}

.gem-card:hover .gem-card__image img {
	transform: scale(1.03);
}

/* Card Content */
.gem-card__content {
	flex: 1;
	padding: var(--gem-space-5);
}

.gem-card__title {
	font-family: var(--gem-font-heading);
	font-size: var(--gem-text-lg);
	margin-bottom: var(--gem-space-2);
}

.gem-card__title a {
	text-decoration: none;
}

.gem-card__title a:hover {
	color: var(--gem-gold-dark);
}

.gem-card__meta {
	font-size: var(--gem-text-xs);
	color: var(--gem-text-muted);
	text-transform: uppercase;
	letter-spacing: var(--gem-tracking-wider);
	margin-bottom: var(--gem-space-3);
}

.gem-card__excerpt {
	font-size: var(--gem-text-sm);
	color: var(--gem-text-secondary);
	line-height: var(--gem-leading-relaxed);
}

/* Card Footer */
.gem-card__footer {
	padding: var(--gem-space-4) var(--gem-space-5);
	border-top: 1px solid var(--gem-border-light);
}

/* Card Variants */
.gem-card--featured {
	border: none;
	box-shadow: var(--gem-shadow-md);
}

.gem-card--featured .gem-card__content {
	padding: var(--gem-space-6);
}

.gem-card--minimal {
	border: none;
	background: transparent;
}

.gem-card--minimal:hover {
	box-shadow: none;
}

/* Exhibitor Card Variant */
.gem-card--exhibitor {
	position: relative;
}

.gem-card--exhibitor .gem-card__content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	background: linear-gradient(to top, rgba(10, 10, 10, 0.9), transparent);
	padding: var(--gem-space-6) var(--gem-space-4) var(--gem-space-4);
	color: var(--gem-white);
}

.gem-card--exhibitor .gem-card__title {
	color: var(--gem-white);
	margin-bottom: 0;
}


/* =========================================================================
   6.3 HERO SECTIONS
   ========================================================================= */

.gem-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 60vh;
	padding: var(--gem-space-12) var(--gem-gutter-mobile);
	background-color: var(--gem-night-blue);
	color: var(--gem-white);
	text-align: center;
	overflow: hidden;
}

@media (min-width: 768px) {
	.gem-hero {
		min-height: 70vh;
		padding: var(--gem-space-16) var(--gem-gutter-desktop);
	}
}

/* Hero Background Image */
.gem-hero__bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 0;
}

.gem-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gem-hero__bg::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to bottom,
			rgba(13, 27, 42, 0.7) 0%,
			rgba(13, 27, 42, 0.5) 50%,
			rgba(13, 27, 42, 0.8) 100%);
}

/* Hero Content */
.gem-hero__content {
	position: relative;
	z-index: 1;
	max-width: var(--gem-container-md);
}

.gem-hero__eyebrow {
	display: inline-block;
	font-size: var(--gem-text-sm);
	font-weight: var(--gem-font-medium);
	letter-spacing: var(--gem-tracking-widest);
	text-transform: uppercase;
	color: var(--gem-gold);
	margin-bottom: var(--gem-space-4);
}

.gem-hero__title {
	font-family: var(--gem-font-heading);
	font-size: var(--gem-text-5xl);
	font-weight: var(--gem-font-regular);
	line-height: var(--gem-leading-none);
	color: var(--gem-white);
	margin-bottom: var(--gem-space-6);
}

.gem-hero__subtitle {
	font-size: var(--gem-text-lg);
	line-height: var(--gem-leading-relaxed);
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: var(--gem-space-8);
	max-width: 50ch;
	margin-left: auto;
	margin-right: auto;
}

.gem-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gem-space-4);
	justify-content: center;
}

/* Hero Variant - Minimal */
.gem-hero--minimal {
	min-height: auto;
	padding: var(--gem-space-16) var(--gem-gutter-mobile);
	background-color: var(--gem-white);
	color: var(--gem-text-primary);
}

.gem-hero--minimal .gem-hero__title {
	color: var(--gem-text-primary);
}

.gem-hero--minimal .gem-hero__subtitle {
	color: var(--gem-text-secondary);
}

/* Hero Variant - Full Height */
.gem-hero--full {
	min-height: 100vh;
}


/* =========================================================================
   6.4 NAVIGATION
   ========================================================================= */

.site-header {
	position: sticky;
	top: 0;
	z-index: var(--gem-z-sticky);
	background-color: var(--gem-white);
	border-bottom: 1px solid var(--gem-border-light);
	padding: var(--gem-space-4) var(--gem-gutter-mobile);
	transition: box-shadow var(--gem-transition),
		padding var(--gem-transition);
}

.header-widget-area-fixed {
	position: fixed;
	bottom: 0;
	width: 100%;
	background-color: white;
	padding: 0px 30px 0px 10px;
	left: 0;
	box-shadow:
		0 -1px 2px rgba(0, 0, 0, 0.06),
		0 -6px 12px rgba(0, 0, 0, 0.06),
		0 -16px 32px rgba(0, 0, 0, 0.06);
}

.header-widget-fixed {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.header-widget-fixed .widget_block {
	margin: 0;
}

.header-widget-fixed .widget {
	margin: 0;
}

.menu-footer-menu-02-container a {
	gap: 20px;
	display: flex;
	padding: 20px;
}

@media (min-width: 768px) {
	.site-header {
		padding: var(--gem-space-4) var(--gem-gutter-tablet);
	}
}

@media (min-width: 1024px) {
	.site-header {
		padding: var(--gem-space-4) var(--gem-gutter-desktop);
	}
}

/* Scrolled state */
.site-header.is-scrolled {
	box-shadow: var(--gem-shadow-sm);
}

/* Navigation Container */
.site-header .nav-container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 50%;
}

.nav-container {
	justify-content: space-between;
}

/* Site Branding / Logo */
.site-branding {
	flex-shrink: 0;
}

h1.site-title,
p.site-title {
	margin: 0;
	padding: 0;
	line-height: 1;
	font-size: 1rem;
}

h1.site-title a,
p.site-title a {
	display: block;
	width: 200px;
	height: 80px;
	background: url(images/gem-geneve_logo_noir.svg) no-repeat center center;
	background-size: contain;
	text-indent: -9999px;
	transition: opacity var(--gem-transition-fast);
}

h1.site-title a:hover,
p.site-title a:hover {
	opacity: 0.8;
}

h1.site-title a:focus-visible,
p.site-title a:focus-visible {
	outline: 2px solid var(--gem-gold);
	outline-offset: 4px;
}

.site-description {
	display: none;
}

/* Navigation Group */
.nav-group {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-end;
	gap: var(--gem-space-3);
}

/* Main Navigation */
.main-navigation {
	display: flex;
	align-items: center;
}

.main-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation .primary-menu {
	display: flex;
	align-items: center;
	gap: var(--gem-space-1);
}

.main-navigation .primary-menu>li {
	position: relative;
}

.main-navigation .primary-menu li a {
	display: block;
	padding: var(--gem-space-3) var(--gem-space-4);
	font-size: var(--gem-text-sm);
	font-weight: var(--gem-font-medium);
	letter-spacing: var(--gem-tracking-wide);
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gem-text-primary);
	border-bottom: 2px solid transparent;
	transition: color var(--gem-transition-fast),
		border-color var(--gem-transition-fast);
}

.main-navigation .primary-menu li a:hover,
.main-navigation .primary-menu li.current-menu-item>a,
.main-navigation .primary-menu li.current-menu-ancestor>a {
	color: var(--gem-black);
	border-bottom-color: var(--gem-gold);
}

/* External links */
.main-navigation .primary-menu li.main-navigation-external a::after {
	content: " →";
	color: var(--gem-gold);
	transition: transform var(--gem-transition-fast);
}

.main-navigation .primary-menu li.main-navigation-external a:hover::after {
	transform: translateX(2px);
}

/* Dropdown Menus */
.main-navigation ul.primary-menu ul {
	position: absolute;
	top: 100%;
	left: 0;
	display: none;
	min-width: 220px;
	background-color: var(--gem-white);
	border: 1px solid var(--gem-border-light);
	box-shadow: var(--gem-shadow-lg);
	padding: var(--gem-space-2) 0;
	z-index: var(--gem-z-dropdown);
}

.main-navigation .primary-menu>li:hover>ul,
.main-navigation .primary-menu>li:focus-within>ul {
	display: block;
}

.main-navigation ul.primary-menu ul li a {
	padding: var(--gem-space-3) var(--gem-space-5);
	font-size: var(--gem-text-sm);
	text-transform: none;
	letter-spacing: normal;
	border: none;
	white-space: nowrap;
}

.main-navigation ul.primary-menu ul li a:hover {
	background-color: var(--gem-gray-50);
	color: var(--gem-gold-dark);
}

/* Header Widget Area */
.header-widget {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: var(--gem-space-4);
}

.header-widget .widget {
	display: flex;
	align-items: center;
	padding-left: var(--gem-space-4);
	border-left: 1px solid var(--gem-border-light);
	margin: 0;
}

.header-widget .widget:first-child {
	border-left: none;
	padding-left: 0;
}

.header-widget .menu {
	display: flex;
	gap: var(--gem-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.header-widget .menu li a {
	display: block;
	padding: var(--gem-space-2) var(--gem-space-3);
	font-size: var(--gem-text-xs);
	letter-spacing: var(--gem-tracking-wide);
	text-decoration: none;
	color: var(--gem-text-secondary);
	transition: color var(--gem-transition-fast);
}

.header-widget .menu li a:hover {
	color: var(--gem-gold-dark);
}

/* Mobile Menu Toggle */
.menu-toggle {
	display: none;
	width: 48px;
	height: 48px;
	padding: var(--gem-space-2);
	background: url(images/burger-off.svg) no-repeat center center;
	background-size: 24px;
	border: 1px solid var(--gem-border-light);
	border-radius: var(--gem-radius-sm);
	text-indent: -9999px;
	cursor: pointer;
	transition: background-color var(--gem-transition-fast),
		border-color var(--gem-transition-fast);
	z-index: calc(var(--gem-z-overlay) + 1);
}

.menu-toggle:hover {
	background-color: var(--gem-gray-50);
	border-color: var(--gem-border-medium);
}

.toggled .menu-toggle {
	background-image: url(images/burger-on.svg);
}

/* Mobile Navigation */
@media (max-width: 1200px) {
	.menu-toggle {
		display: block;
		position: absolute;
		right: var(--gem-space-4);
		top: 50%;
		transform: translateY(-50%);
	}

	.nav-group {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.main-navigation ul,
	.header-widget {
		display: none;
	}

	.main-navigation.toggled {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: var(--gem-z-overlay);
		background-color: var(--gem-white);
		padding: var(--gem-space-20) var(--gem-space-6) var(--gem-space-6);
		overflow-y: auto;
	}

	.main-navigation.toggled .menu-toggle {
		position: fixed;
		top: var(--gem-space-4);
		right: var(--gem-space-4);
		transform: none;
	}

	.main-navigation.toggled ul,
	.main-navigation.toggled .header-widget {
		display: block;
	}

	.main-navigation.toggled .primary-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		margin-bottom: var(--gem-space-8);
	}

	.main-navigation.toggled .primary-menu li a {
		padding: var(--gem-space-4) 0;
		font-size: var(--gem-text-lg);
		border: none;
		border-bottom: 1px solid var(--gem-border-light);
	}

	.main-navigation.toggled .primary-menu li:last-child a {
		border-bottom: none;
	}

	.main-navigation.toggled ul.primary-menu ul {
		position: static;
		display: block;
		box-shadow: none;
		border: none;
		padding: 0 0 var(--gem-space-4) var(--gem-space-4);
		background: transparent;
	}

	.main-navigation.toggled ul.primary-menu ul li a {
		padding: var(--gem-space-2) 0;
		font-size: var(--gem-text-base);
		color: var(--gem-text-secondary);
	}

	.main-navigation.toggled .header-widget {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--gem-space-4);
		padding-top: var(--gem-space-6);
		border-top: 1px solid var(--gem-border-light);
	}

	.main-navigation.toggled .header-widget .widget {
		border-left: none;
		padding-left: 0;
		width: 100%;
	}

	.main-navigation.toggled .header-widget .menu {
		flex-direction: column;
		gap: var(--gem-space-2);
	}

	.main-navigation.toggled .header-widget .menu li a {
		padding: var(--gem-space-2) 0;
		font-size: var(--gem-text-base);
	}

	/* Logo size adjustment */
	h1.site-title a,
	p.site-title a {
		width: 140px;
		height: 56px;
	}
}


/* =========================================================================
   6.5 FOOTER
   ========================================================================= */

.site-footer {
	position: sticky;
	top: 0;
	z-index: var(--gem-z-sticky);
	background-color: var(--gem-night-blue);
	color: var(--gem-text-inverse);
	padding: var(--gem-space-12) var(--gem-gutter-mobile);
}

@media (min-width: 768px) {
	.site-footer {
		padding: var(--gem-space-16) var(--gem-gutter-tablet);
	}
}

@media (min-width: 1024px) {
	.site-footer {
		padding: var(--gem-space-20) var(--gem-gutter-desktop);
	}
}

.site-footer a {
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	transition: color var(--gem-transition-fast);
}

.site-footer a:hover {
	color: var(--gem-gold-light);
}

/* Footer Grid */
.gem-footer__grid {
	display: grid;
	gap: var(--gem-space-8);
	max-width: var(--gem-container-xl);
	margin: 0 auto var(--gem-space-12);
}

@media (min-width: 768px) {
	.gem-footer__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--gem-space-10);
	}
}

@media (min-width: 1024px) {
	.gem-footer__grid {
		grid-template-columns: 2fr 1fr 1fr 1fr;
	}
}

/* Footer Sections */
.gem-footer__section h4,
.site-footer .widget-title {
	font-family: var(--gem-font-heading);
	font-size: var(--gem-text-base);
	font-weight: var(--gem-font-medium);
	color: var(--gem-white);
	margin-bottom: var(--gem-space-4);
	letter-spacing: var(--gem-tracking-wide);
}

.gem-footer__section p {
	color: rgba(255, 255, 255, 0.7);
	font-size: var(--gem-text-sm);
	line-height: var(--gem-leading-relaxed);
}

/* Footer Navigation */
.site-footer .menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer .menu li {
	margin-bottom: var(--gem-space-3);
}

.site-footer .menu li a {
	font-size: var(--gem-text-sm);
	display: inline-block;
	padding: var(--gem-space-1) 0;
}

/* Footer Logo */
.gem-footer__logo {
	display: block;
	width: 180px;
	height: auto;
	margin-bottom: var(--gem-space-6);
	filter: brightness(0) invert(1);
}

/* Footer Contact */
.gem-footer__contact {
	font-size: var(--gem-text-sm);
	color: rgba(255, 255, 255, 0.7);
	line-height: var(--gem-leading-loose);
}

/* Social Links */
.gem-footer__social,
.site-footer .wp-block-social-links {
	display: flex;
	gap: var(--gem-space-3);
	margin-top: var(--gem-space-4);
}

.gem-footer__social a,
.site-footer .wp-block-social-link a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: var(--gem-radius-full);
	transition: background-color var(--gem-transition-fast),
		border-color var(--gem-transition-fast);
}

.gem-footer__social a:hover,
.site-footer .wp-block-social-link a:hover {
	background-color: var(--gem-gold);
	border-color: var(--gem-gold);
	color: var(--gem-night-blue);
}

/* Footer Bottom */
.site-info {
	max-width: var(--gem-container-xl);
	margin: 0 auto;
	padding-top: var(--gem-space-8);
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--gem-space-4);
	font-size: var(--gem-text-xs);
	color: rgba(255, 255, 255, 0.5);
	letter-spacing: var(--gem-tracking-wide);
}

.site-info a {
	color: rgba(255, 255, 255, 0.5);
}

.site-info a:hover {
	color: var(--gem-gold-light);
}

.wp-block-heading {
	color: white;
}

.wp-block-social-link-anchor {
	background-color: white;
}

/* =========================================================================
   6.6 FORMS
   ========================================================================= */

/* Form Base */
.gem-form,
.wpcf7-form {
	max-width: var(--gem-container-sm);
}

/* Form Group */
.gem-form__group {
	margin-bottom: var(--gem-space-5);
}

/* Labels */
.gem-form__label,
.wpcf7-form label {
	display: block;
	font-size: var(--gem-text-sm);
	font-weight: var(--gem-font-medium);
	color: var(--gem-text-primary);
	margin-bottom: var(--gem-space-2);
}

.gem-form__label--required::after {
	content: " *";
	color: var(--gem-gold);
}

/* Input Base Styles */
.gem-form__input,
.gem-form__textarea,
.gem-form__select,
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="date"],
.wpcf7-form textarea,
.wpcf7-form select {
	display: block;
	width: 100%;
	padding: var(--gem-space-3) var(--gem-space-4);
	font-family: var(--gem-font-body);
	font-size: var(--gem-text-base);
	color: var(--gem-text-primary);
	background-color: var(--gem-white);
	border: 1px solid var(--gem-border-medium);
	border-radius: var(--gem-radius-none);
	transition: border-color var(--gem-transition-fast),
		box-shadow var(--gem-transition-fast);
}

.gem-form__input:hover,
.gem-form__textarea:hover,
.gem-form__select:hover {
	border-color: var(--gem-gray-400);
}

.gem-form__input:focus,
.gem-form__textarea:focus,
.gem-form__select:focus,
.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
	outline: none;
	border-color: var(--gem-gold);
	box-shadow: 0 0 0 3px var(--gem-gold-muted);
}

/* Placeholder */
.gem-form__input::placeholder,
.gem-form__textarea::placeholder {
	color: var(--gem-gray-400);
}

/* Textarea */
.gem-form__textarea,
.wpcf7-form textarea {
	min-height: 150px;
	resize: vertical;
}

/* Select */
.gem-form__select,
.wpcf7-form select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23525252' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right var(--gem-space-4) center;
	padding-right: var(--gem-space-10);
}

/* Checkbox & Radio */
.gem-form__checkbox,
.gem-form__radio {
	display: flex;
	align-items: flex-start;
	gap: var(--gem-space-3);
	cursor: pointer;
}

.gem-form__checkbox input,
.gem-form__radio input {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: var(--gem-gold);
}

/* Form Error State */
.gem-form__input--error,
.wpcf7-not-valid {
	border-color: #DC2626;
}

.gem-form__error,
.wpcf7-not-valid-tip {
	display: block;
	margin-top: var(--gem-space-2);
	font-size: var(--gem-text-sm);
	color: #DC2626;
}

/* Form Success */
.wpcf7-mail-sent-ok {
	color: #16A34A;
	padding: var(--gem-space-4);
	background-color: rgba(22, 163, 74, 0.1);
	border: 1px solid rgba(22, 163, 74, 0.3);
}

/* Submit Button */
.gem-form__submit,
.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--gem-space-4) var(--gem-space-8);
	font-family: var(--gem-font-body);
	font-size: var(--gem-text-sm);
	font-weight: var(--gem-font-medium);
	letter-spacing: var(--gem-tracking-wider);
	text-transform: uppercase;
	background-color: var(--gem-gold);
	border: 1px solid var(--gem-gold);
	color: var(--gem-white);
	cursor: pointer;
	transition: all var(--gem-transition);
}

.gem-form__submit:hover,
.wpcf7-submit:hover {
	background-color: var(--gem-gold-dark);
	border-color: var(--gem-gold-dark);
	box-shadow: var(--gem-shadow-gold);
}


/* =========================================================================
   6.7 TABLES
   ========================================================================= */

.gem-table,
.wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--gem-text-sm);
}

.gem-table thead,
.wp-block-table thead {
	border-bottom: 2px solid var(--gem-black);
}

.gem-table th,
.wp-block-table th {
	padding: var(--gem-space-4) var(--gem-space-4) var(--gem-space-4) 0;
	text-align: left;
	font-weight: var(--gem-font-semibold);
	font-size: var(--gem-text-xs);
	letter-spacing: var(--gem-tracking-wider);
	text-transform: uppercase;
	color: var(--gem-text-secondary);
}

.gem-table td,
.wp-block-table td {
	padding: var(--gem-space-4) var(--gem-space-4) var(--gem-space-4) 0;
	border-bottom: 1px solid var(--gem-border-light);
	vertical-align: top;
}

.gem-table tbody tr:hover,
.wp-block-table tbody tr:hover {
	background-color: var(--gem-gray-50);
}

/* Striped Table */
.gem-table--striped tbody tr:nth-child(even),
.wp-block-table.is-style-stripes tbody tr:nth-child(even) {
	background-color: var(--gem-gray-50);
}

/* Responsive Table */
@media (max-width: 640px) {
	.gem-table-responsive {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.gem-table-responsive table {
		min-width: 600px;
	}
}


/* ==========================================================================
   7. UTILITIES
   ========================================================================== */

/* -------------------------------------------------------------------------
   Spacing Utilities
   ------------------------------------------------------------------------- */

.gem-mt-0 {
	margin-top: 0 !important;
}

.gem-mt-4 {
	margin-top: var(--gem-space-4) !important;
}

.gem-mt-8 {
	margin-top: var(--gem-space-8) !important;
}

.gem-mt-12 {
	margin-top: var(--gem-space-12) !important;
}

.gem-mt-16 {
	margin-top: var(--gem-space-16) !important;
}

.gem-mb-0 {
	margin-bottom: 0 !important;
}

.gem-mb-4 {
	margin-bottom: var(--gem-space-4) !important;
}

.gem-mb-8 {
	margin-bottom: var(--gem-space-8) !important;
}

.gem-mb-12 {
	margin-bottom: var(--gem-space-12) !important;
}

.gem-mb-16 {
	margin-bottom: var(--gem-space-16) !important;
}

.gem-py-8 {
	padding-top: var(--gem-space-8) !important;
	padding-bottom: var(--gem-space-8) !important;
}

.gem-py-12 {
	padding-top: var(--gem-space-12) !important;
	padding-bottom: var(--gem-space-12) !important;
}

.gem-py-16 {
	padding-top: var(--gem-space-16) !important;
	padding-bottom: var(--gem-space-16) !important;
}

/* -------------------------------------------------------------------------
   Display Utilities
   ------------------------------------------------------------------------- */

.gem-hidden {
	display: none !important;
}

.gem-block {
	display: block !important;
}

.gem-inline {
	display: inline !important;
}

.gem-inline-block {
	display: inline-block !important;
}

@media (max-width: 767px) {
	.gem-hidden-mobile {
		display: none !important;
	}
}

@media (min-width: 768px) {
	.gem-hidden-tablet {
		display: none !important;
	}
}

@media (min-width: 1024px) {
	.gem-hidden-desktop {
		display: none !important;
	}
}

/* -------------------------------------------------------------------------
   Text Utilities
   ------------------------------------------------------------------------- */

.gem-text-center {
	text-align: center !important;
}

.gem-text-left {
	text-align: left !important;
}

.gem-text-right {
	text-align: right !important;
}

.gem-font-normal {
	font-weight: var(--gem-font-regular) !important;
}

.gem-font-medium {
	font-weight: var(--gem-font-medium) !important;
}

.gem-font-bold {
	font-weight: var(--gem-font-bold) !important;
}

/* -------------------------------------------------------------------------
   Visual Utilities
   ------------------------------------------------------------------------- */

.gem-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.gem-divider {
	height: 1px;
	background-color: var(--gem-border-light);
	margin: var(--gem-space-8) 0;
}

.gem-divider--gold {
	background-color: var(--gem-gold);
	height: 2px;
	width: 60px;
}


/* ==========================================================================
   8. WORDPRESS & GUTENBERG OVERRIDES
   ========================================================================== */

/*
 * Scoped overrides for WordPress blocks
 * Using specificity to avoid breaking default styles
 */

/* -------------------------------------------------------------------------
   General Block Spacing
   ------------------------------------------------------------------------- */

.entry-content>*,
.wp-block-group__inner-container>* {
	margin-top: 0;
	margin-bottom: var(--gem-space-6);
}

.gg {
	color: #C9A962;
	font-weight: 900;
}

.titreprince {
	font-size: 200px;
}

.pass {
	font-weight: bolder;
	color: #06101A;
	float: right;
}

.goup {
	position: relative;
	right: -600px;
}



.sousous {
	font-weight: light;
}

.wp-block-group {
	height: 100%;
}

.entry-content>*:last-child {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   Block: Image
   ------------------------------------------------------------------------- */

.wp-block-image {
	margin-bottom: var(--gem-space-8);
}

.wp-block-image img {
	height: auto;
}

.wp-block-image figcaption {
	font-size: var(--gem-text-sm);
	color: var(--gem-text-muted);
	margin-top: var(--gem-space-3);
	font-style: italic;
}

/* -------------------------------------------------------------------------
   Block: Gallery
   ------------------------------------------------------------------------- */

.wp-block-gallery {
	margin-bottom: var(--gem-space-8);
}

.wp-block-gallery .wp-block-image {
	margin-bottom: 0;
}

.wp-block-gallery figcaption {
	font-size: var(--gem-text-sm);
	padding: var(--gem-space-3) var(--gem-space-4);
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
}

/* -------------------------------------------------------------------------
   Block: Cover
   ------------------------------------------------------------------------- */

.wp-block-cover {
	min-height: 50vh;
	padding: var(--gem-space-12);
}

.wp-block-cover__inner-container {
	max-width: var(--gem-container-md);
}

.wp-block-cover h2 {
	font-family: var(--gem-font-heading);
	font-size: var(--gem-text-4xl);
}

/* -------------------------------------------------------------------------
   Block: Columns
   ------------------------------------------------------------------------- */

.wp-block-columns {
	gap: var(--gem-space-8);
	margin-bottom: var(--gem-space-8);
}

.wp-block-column {
	flex-basis: auto;
}

@media (max-width: 781px) {
	.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column {
		flex-basis: 100% !important;
	}
}

/* -------------------------------------------------------------------------
   Block: Buttons
   ------------------------------------------------------------------------- */

.wp-block-buttons {
	gap: var(--gem-space-4);
	margin-bottom: var(--gem-space-6);
}

/* -------------------------------------------------------------------------
   Block: Group
   ------------------------------------------------------------------------- */

.wp-block-group.has-background {
	padding: var(--gem-space-8);
}

.wp-block-group.has-background.has-black-background-color {
	background-color: var(--gem-night-blue) !important;
}

/* -------------------------------------------------------------------------
   Block: Media & Text
   ------------------------------------------------------------------------- */

.wp-block-media-text__content h2 {
	color: #06101A;
	font-weight: bolder;
}


.wp-block-media-text {
	margin-bottom: var(--gem-space-8);
}

.wp-block-media-text .wp-block-media-text__content {
	padding: var(--gem-space-6);
}

@media (min-width: 600px) {
	.wp-block-media-text .wp-block-media-text__content {
		padding: var(--gem-space-8);
	}
}

/* -------------------------------------------------------------------------
   Block: Pullquote
   ------------------------------------------------------------------------- */

.wp-block-pullquote {
	border: none;
	padding: var(--gem-space-8) 0;
	text-align: center;
}

.wp-block-pullquote blockquote {
	border: none;
	margin: 0;
	padding: 0;
	background: transparent;
}

.wp-block-pullquote blockquote p {
	font-family: var(--gem-font-heading);
	font-size: var(--gem-text-3xl);
	line-height: var(--gem-leading-snug);
	color: var(--gem-text-primary);
	max-width: none;
}

.wp-block-pullquote cite {
	margin-top: var(--gem-space-4);
	color: var(--gem-gold);
}

/* -------------------------------------------------------------------------
   Posts Navigation
   ------------------------------------------------------------------------- */

.posts-navigation,
.post-navigation {
	margin-top: var(--gem-space-12);
	padding-top: var(--gem-space-8);
	border-top: 1px solid var(--gem-border-light);
}

.nav-links {
	display: flex;
	justify-content: space-between;
	gap: var(--gem-space-6);
}

.nav-previous a,
.nav-next a {
	font-size: var(--gem-text-sm);
	font-weight: var(--gem-font-medium);
	letter-spacing: var(--gem-tracking-wide);
	text-transform: uppercase;
}


/* ==========================================================================
   9. ANIMATIONS & TRANSITIONS
   ========================================================================== */

/* -------------------------------------------------------------------------
   Fade In Animation
   ------------------------------------------------------------------------- */

@keyframes gem-fadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.gem-animate-fadeIn {
	animation: gem-fadeIn var(--gem-duration-normal) var(--gem-ease-out) forwards;
}

/* -------------------------------------------------------------------------
   Slide In Animation
   ------------------------------------------------------------------------- */

@keyframes gem-slideInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.gem-animate-slideUp {
	animation: gem-slideInUp var(--gem-duration-slow) var(--gem-ease-out) forwards;
}

/* -------------------------------------------------------------------------
   Scale Animation
   ------------------------------------------------------------------------- */

@keyframes gem-scaleIn {
	from {
		opacity: 0;
		transform: scale(0.95);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

.gem-animate-scale {
	animation: gem-scaleIn var(--gem-duration-normal) var(--gem-ease-out) forwards;
}

/* -------------------------------------------------------------------------
   Stagger Animation Delays
   ------------------------------------------------------------------------- */

.gem-delay-1 {
	animation-delay: 100ms;
}

.gem-delay-2 {
	animation-delay: 200ms;
}

.gem-delay-3 {
	animation-delay: 300ms;
}

.gem-delay-4 {
	animation-delay: 400ms;
}

.gem-delay-5 {
	animation-delay: 500ms;
}

/* -------------------------------------------------------------------------
   Hover Transitions
   ------------------------------------------------------------------------- */

.gem-transition-all {
	transition: all var(--gem-transition);
}

.gem-transition-transform {
	transition: transform var(--gem-transition);
}

.gem-hover-lift:hover {
	transform: translateY(-4px);
}

.gem-hover-scale:hover {
	transform: scale(1.02);
}


/* ==========================================================================
   10. RESPONSIVE BREAKPOINTS
   ========================================================================== */

/*
 * Breakpoint Reference:
 * ------------------
 * Mobile: < 640px
 * Tablet: 640px - 1023px
 * Desktop: 1024px - 1279px
 * Large Desktop: >= 1280px
 */

/* -------------------------------------------------------------------------
   Tablet and Up (640px+)
   ------------------------------------------------------------------------- */

@media (min-width: 640px) {

	/* Typography adjustments */
	.entry-content p {
		font-size: var(--gem-text-md);
	}
}

/* -------------------------------------------------------------------------
   Desktop and Up (1024px+)
   ------------------------------------------------------------------------- */

@media (min-width: 1024px) {

	/* Enhanced spacing */
	.site-main section {
		padding: var(--gem-space-16) 0;
	}

	/* Card hover effects enhanced */
	.gem-card:hover {
		transform: translateY(-4px);
	}
}

/* -------------------------------------------------------------------------
   Large Desktop (1280px+)
   ------------------------------------------------------------------------- */

@media (min-width: 1280px) {

	/* Increase max container width */
	.gem-container--wide {
		padding-left: var(--gem-space-12);
		padding-right: var(--gem-space-12);
	}
}


/* ==========================================================================
   11. ACCESSIBILITY & REDUCED MOTION
   ========================================================================== */

/* -------------------------------------------------------------------------
   Focus States
   ------------------------------------------------------------------------- */

*:focus {
	outline: none;
}

*:focus-visible {
	outline: 2px solid var(--gem-gold);
	outline-offset: 2px;
}

/* Skip Link */
.skip-link {
	position: absolute;
	top: -100%;
	left: var(--gem-space-4);
	z-index: var(--gem-z-max);
	padding: var(--gem-space-3) var(--gem-space-6);
	background-color: var(--gem-gold);
	color: var(--gem-white);
	font-weight: var(--gem-font-medium);
	text-decoration: none;
	transition: top var(--gem-transition-fast);
}

.skip-link:focus {
	top: var(--gem-space-4);
}

/* -------------------------------------------------------------------------
   Reduced Motion
   ------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.gem-card:hover .gem-card__image img {
		transform: none;
	}

	.gem-card:hover,
	.gem-hover-lift:hover,
	.gem-hover-scale:hover {
		transform: none;
	}
}

/* -------------------------------------------------------------------------
   High Contrast Mode
   ------------------------------------------------------------------------- */

@media (prefers-contrast: high) {
	:root {
		--gem-border-light: var(--gem-black);
		--gem-border-medium: var(--gem-black);
		--gem-text-muted: var(--gem-black);
		--gem-text-secondary: var(--gem-black);
	}

	.gem-btn--primary,
	.gem-btn--secondary {
		border-width: 2px;
	}
}


/* ==========================================================================
   GEMGENÈVE SPECIFIC STYLES
   Page and component-specific styles
   ========================================================================== */

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

.home .entry-title {
	display: none;
}

.home .site-main section {
	padding: var(--gem-space-12) 0;
}

.home .site-main section:last-of-type {
	border: 0;
}


/* -------------------------------------------------------------------------
   News Archive
   ------------------------------------------------------------------------- */

.archive-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--gem-space-6);
}

@media (min-width: 1024px) {
	.archive-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: var(--gem-space-8);
	}
}

.archive-grid article {
	display: flex;
	flex-direction: column;
}

.archive-grid article img {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
}

/* -------------------------------------------------------------------------
   Single News Article
   ------------------------------------------------------------------------- */

.single.category-news .site-main article {
	max-width: var(--gem-container-lg);
	margin-left: auto;
	margin-right: auto;
}

.single.category-news .entry-header {
	margin-bottom: var(--gem-space-8);
	text-align: center;
}

.single.category-news .entry-title {
	margin-bottom: var(--gem-space-4);
}

/* Post Meta */
.posted-on,
.posted-on a {
	font-size: var(--gem-text-sm);
	font-weight: var(--gem-font-medium);
	letter-spacing: var(--gem-tracking-wider);
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gem-gold);
}

.entry-meta+h1 {
	margin-top: var(--gem-space-4);
}

/* -------------------------------------------------------------------------
   Exhibitors Archive
   ------------------------------------------------------------------------- */

.archive-grid-exhibitors {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--gem-space-6);
}

.alphabetical-group {
	margin-bottom: var(--gem-space-10);
}

.alphabetical-group-letter {
	font-family: var(--gem-font-heading);
	font-size: var(--gem-text-4xl);
	border-bottom: 2px solid var(--gem-gold);
	padding-bottom: var(--gem-space-2);
	margin-bottom: var(--gem-space-6);
	color: var(--gem-night-blue);
}

.alphabetical-group h2 {
	margin-top: 0;
	margin-bottom: 0;
}

.post-type-archive-exhibitor .archive-grid article {
	position: relative;
	margin-bottom: var(--gem-space-6);
	overflow: hidden;
}

.post-type-archive-exhibitor .archive-grid article img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	transition: transform var(--gem-duration-slow) var(--gem-ease-out);
}

.post-type-archive-exhibitor .archive-grid article:hover img {
	transform: scale(1.05);
}

.post-type-archive-exhibitor .archive-grid article .entry-header {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	padding: var(--gem-space-8) var(--gem-space-4) var(--gem-space-4);
	background: linear-gradient(to top, rgba(10, 10, 10, 0.85), transparent);
	color: var(--gem-white);
}

.post-type-archive-exhibitor .archive-grid article .entry-title {
	font-size: var(--gem-text-lg);
	color: var(--gem-white);
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   Single Exhibitor
   ------------------------------------------------------------------------- */

.single-exhibitor-layout {
	display: flex;
	flex-direction: column;
	gap: var(--gem-space-8);
}

@media (min-width: 960px) {
	.single-exhibitor-layout {
		flex-direction: row;
		justify-content: space-between;
	}

	.single-exhibitor-layout-col {
		width: 48%;
	}
}

.single-exhibitor-layout-col-media img {
	width: 100%;
}

.exhibitor-info-box {
	border-top: 2px solid var(--gem-gold);
	border-bottom: 1px solid var(--gem-border-light);
	padding: var(--gem-space-6) 0;
	margin-bottom: var(--gem-space-8);
}

.exhibitor-info-box h4 {
	font-family: var(--gem-font-heading);
	margin-top: 0;
	margin-bottom: var(--gem-space-4);
	color: var(--gem-night-blue);
}

.exhibitor-info-line {
	margin-bottom: var(--gem-space-2);
	font-size: var(--gem-text-sm);
}

.exhibitor-info-line .exhibitor-info-line-legend {
	font-weight: var(--gem-font-semibold);
	color: var(--gem-text-primary);
}

/* -------------------------------------------------------------------------
   Sidebar
   ------------------------------------------------------------------------- */

#secondary.widget-area {
	border-top: 1px solid var(--gem-border-light);
	padding: var(--gem-space-8) var(--gem-gutter-mobile);
	background-color: var(--gem-gray-50);
}

@media (min-width: 768px) {
	#secondary.widget-area {
		padding: var(--gem-space-10) var(--gem-gutter-tablet);
	}
}

#secondary .widget {
	margin-bottom: var(--gem-space-8);
}

#secondary .widget:last-child {
	margin-bottom: 0;
}

#secondary .widget-title {
	font-family: var(--gem-font-heading);
	font-size: var(--gem-text-lg);
	margin-bottom: var(--gem-space-4);
}

.post-edit-link {
	display: none;
}

/* ==========================================================================
   END OF STYLESHEET
   ========================================================================== */