/* =========================================================
   GOLD CITY GAMING — Theme Stylesheet
   Compete. Collect. Connect.
   ========================================================= */

/* ---------- Design tokens ---------- */
:root{
	--gc-black:        #0a0a0a;
	--gc-black-soft:   #121212;
	--gc-panel:        #161513;
	--gc-panel-2:      #1c1a17;
	--gc-border:       #2c2822;
	--gc-gold:         #d4af37;
	--gc-gold-bright:  #f0c85e;
	--gc-gold-dim:     #a4842f;
	--gc-crimson:      #b91c2b;
	--gc-white:        #f5f2ea;
	--gc-grey:         #b9b3a6;
	--gc-grey-dim:     #7a7568;
	--gc-radius:       10px;
	--gc-radius-lg:    18px;
	--font-display:    'Oswald', 'Arial Narrow', sans-serif;
	--font-crest:      'Cinzel', Georgia, serif;
	--font-body:        'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--wrap:            1280px;

	/* Spacing tokens — these are the ones Appearance ▸ Customize ▸
	   Layout & Spacing overrides. Change defaults here too if needed. */
	--gc-section-py:        88px;
	--gc-section-px:        32px;
	--gc-section-py-mobile: 56px;
	--gc-section-px-mobile: 20px;
	--gc-hero-py:           56px;
	--gc-card-padding:      30px;
	--gc-grid-gap:          24px;
	--gc-content-max:       1280px;
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; }
body{
	margin:0;
	background: var(--gc-black);
	color: var(--gc-white);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
	width: 100%;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,h5{ font-family: var(--font-display); text-transform: uppercase; letter-spacing:.02em; margin:0 0 .5em; line-height:1.15; color: var(--gc-white); }
p{ margin:0 0 1em; color: var(--gc-grey); }
button{ font-family: inherit; cursor:pointer; }
input, textarea, select{ font-family: inherit; }

.wrap{ max-width: var(--wrap); margin:0 auto; padding: 0 32px; }
.gold-text{ color: var(--gc-gold); }
.crimson-text{ color: var(--gc-crimson); }

/* ---------- Buttons ---------- */
.btn{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding: 14px 28px;
	font-family: var(--font-display);
	font-weight:600; letter-spacing:.06em; text-transform:uppercase;
	font-size:.85rem;
	border-radius:6px;
	border: 1px solid transparent;
	transition: all .2s ease;
	white-space: nowrap;
}
.btn-gold{ background: linear-gradient(180deg, var(--gc-gold-bright), var(--gc-gold-dim)); color:#1a1305; }
.btn-gold:hover{ filter: brightness(1.1); transform: translateY(-1px); }
.btn-outline{ background:transparent; color: var(--gc-crimson); border-color: var(--gc-crimson); }
.btn-outline:hover{ background: var(--gc-crimson); color: var(--gc-white); }
.btn-ghost-gold{ background:transparent; border-color: var(--gc-gold-dim); color: var(--gc-gold); }
.btn-ghost-gold:hover{ background: rgba(212,175,55,.1); }
.btn-small{ padding: 9px 16px; font-size:.72rem; }
.btn-block{ width:100%; }

/* ---------- Header ---------- */
.site-header{
	position: sticky; top:0; z-index: 100;
	background: rgba(10,10,10,.92);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--gc-border);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; height:104px; gap: 24px; }
.site-logo{ display:flex; align-items:center; gap:12px; flex-shrink:0; height:100%; }
.site-logo .logo-img{ height:80px; width:auto; display:block; }
.site-logo .custom-logo-link{ display:flex; align-items:center; }
.site-logo img.custom-logo{ height:80px; width:auto; max-width:none; display:block; }
.screen-reader-text{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.primary-nav{ flex:1; display:flex; justify-content:center; }
.nav-menu{ display:flex; align-items:center; gap:30px; }
.nav-menu a{ font-family: var(--font-display); font-size:.82rem; letter-spacing:.04em; text-transform:uppercase; color: var(--gc-grey); transition: color .2s; }
.nav-menu a:hover, .nav-menu .current-menu-item > a{ color: var(--gc-gold); }

.header-actions{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.menu-toggle{ display:none; flex-direction:column; gap:4px; background:none; border:none; padding:8px; }
.menu-toggle span{ width:22px; height:2px; background: var(--gc-gold); display:block; }

.mobile-nav{ display:block; visibility:hidden; position:fixed; inset:104px 0 0 0; background: var(--gc-black); z-index:99; overflow-y:auto; padding: 24px 32px; transform: translateX(100%); transition: transform .35s ease, visibility .35s; }
.mobile-nav.open{ visibility:visible; transform: translateX(0); }
.nav-menu-mobile li{ border-bottom:1px solid var(--gc-border); }
.nav-menu-mobile a{ display:block; padding:16px 0; font-family: var(--font-display); font-size:1.1rem; text-transform:uppercase; color: var(--gc-white); }

@media (max-width: 960px){
	.primary-nav{ display:none; }
	.header-actions .btn{ display:none; }
	.menu-toggle{ display:flex; }
}

/* ---------- Hero ---------- */
.hero{
	position: relative;
	background:
		radial-gradient(ellipse at 75% 30%, rgba(212,175,55,.14), transparent 55%),
		linear-gradient(180deg, #0d0d0d 0%, #0a0a0a 60%, #0a0a0a 100%);
	border-bottom: 1px solid var(--gc-border);
	overflow:hidden;
	padding: 80px 0 60px;
}
.hero::before{
	content:"";
	position:absolute; inset:0;
	background-image: repeating-linear-gradient(90deg, rgba(212,175,55,.05) 0 1px, transparent 1px 80px);
	opacity:.4; pointer-events:none;
}
.hero-inner{ display:grid; grid-template-columns: 1.1fr .9fr; gap:56px; align-items:center; position:relative; z-index:1; }
.hero-eyebrow{ font-family: var(--font-crest); letter-spacing:.3em; font-size:.72rem; color: var(--gc-gold); text-transform:uppercase; margin-bottom:18px; display:flex; align-items:center; gap:12px; }
.hero-eyebrow::before{ content:""; width:36px; height:1px; background: var(--gc-gold-dim); }
.hero h1{ font-size: clamp(2.6rem, 5.5vw, 4.4rem); margin-bottom:20px; }
.hero h1 span{ color: var(--gc-gold); display:block; }
.hero p.lead{ font-size:1.08rem; max-width:520px; color: var(--gc-grey); margin-bottom:32px; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom: 28px; }
.hero-divider{ display:flex; align-items:center; gap:14px; color: var(--gc-gold-dim); max-width:460px; }
.hero-divider .line{ flex:1; height:1px; background: var(--gc-border); }

.hero-visual{
	position: relative;
	aspect-ratio: 4/5;
	border-radius: var(--gc-radius-lg);
	background:
		radial-gradient(circle at 30% 20%, rgba(212,175,55,.18), transparent 60%),
		linear-gradient(160deg, #17140f 0%, #0c0b09 100%);
	border: 1px solid var(--gc-border);
	display:flex; align-items:center; justify-content:center;
	overflow:hidden;
}
.hero-visual img{ width: 62%; filter: drop-shadow(0 20px 40px rgba(0,0,0,.6)); }
.hero-visual .crown-badge{ position:absolute; bottom:20px; left:20px; right:20px; background: rgba(10,10,10,.7); border:1px solid var(--gc-border); border-radius: 10px; padding: 14px 18px; backdrop-filter: blur(6px); }
.hero-visual .crown-badge strong{ display:block; font-family: var(--font-display); color: var(--gc-gold); letter-spacing:.05em; }

@media (max-width: 960px){
	.hero-inner{ grid-template-columns: 1fr; }
	.hero-visual{ aspect-ratio: 16/10; order:-1; }
}

/* ---------- Section basics ---------- */
.section{ padding: 88px 0; border-bottom: 1px solid var(--gc-border); }
.section-tight{ padding: 56px 0; }
.section-alt{ background: var(--gc-black-soft); }
.section-head{ text-align:center; max-width:680px; margin: 0 auto 48px; }
.section-eyebrow{ font-family: var(--font-crest); letter-spacing:.3em; font-size:.7rem; color: var(--gc-gold); text-transform:uppercase; margin-bottom:14px; }
.section-head h2{ font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
.section-head p{ margin-top:10px; }
.section-head.left{ text-align:left; margin:0 0 40px; }

/* ---------- Cards / grids ---------- */
.grid{ display:grid; gap:var(--gc-grid-gap); }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-4{ grid-template-columns: repeat(4, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 960px){ .grid-3, .grid-4{ grid-template-columns: repeat(2,1fr);} }
@media (max-width: 620px){ .grid-3, .grid-4, .grid-2{ grid-template-columns: 1fr;} }

.card{
	background: var(--gc-panel);
	border: 1px solid var(--gc-border);
	border-radius: var(--gc-radius);
	padding: var(--gc-card-padding);
	transition: border-color .2s, transform .2s;
}
.card:hover{ border-color: var(--gc-gold-dim); transform: translateY(-3px); }
.card .icon{
	width:48px; height:48px; border-radius:50%;
	background: rgba(212,175,55,.1); border:1px solid var(--gc-gold-dim);
	display:flex; align-items:center; justify-content:center;
	color: var(--gc-gold); font-family: var(--font-display); font-weight:700;
	margin-bottom:18px;
}
.card h3{ font-size:1.1rem; margin-bottom:8px; }
.card .card-link{ display:inline-block; margin-top:14px; color: var(--gc-gold); font-family: var(--font-display); font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; }

.product-card{ background: var(--gc-panel); border:1px solid var(--gc-border); border-radius: var(--gc-radius); overflow:hidden; text-align:center; }
.product-card .thumb{ aspect-ratio: 1/1; background: linear-gradient(145deg,#1d1a14,#0e0c09); display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--gc-border); }
.product-card .thumb span{ font-family: var(--font-crest); color: var(--gc-gold-dim); font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; }
.product-card .body{ padding:18px; }
.product-card h4{ font-size:.95rem; margin-bottom:6px; }
.product-card a.card-link{ color: var(--gc-gold); font-family: var(--font-display); font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; }

/* ---------- Badges / labels ---------- */
.badge{ display:inline-block; padding:4px 10px; border-radius:4px; font-family: var(--font-display); font-size:.65rem; letter-spacing:.08em; text-transform:uppercase; }
.badge-crimson{ background: var(--gc-crimson); color:#fff; }
.badge-gold{ background: rgba(212,175,55,.15); color: var(--gc-gold); border:1px solid var(--gc-gold-dim); }
.badge-open{ color:#7bdc8f; }

/* ---------- Featured location split ---------- */
.split-panel{ display:grid; grid-template-columns: 1fr 1fr; gap:0; border:1px solid var(--gc-border); border-radius: var(--gc-radius-lg); overflow:hidden; }
.split-panel .visual{ background: linear-gradient(160deg,#171310,#0b0a08); min-height:280px; display:flex; align-items:center; justify-content:center; }
.split-panel .visual span{ font-family: var(--font-crest); color: var(--gc-gold-dim); letter-spacing:.2em; text-transform:uppercase; font-size:.8rem; }
.split-panel .content{ padding:40px; }
@media (max-width:800px){ .split-panel{ grid-template-columns:1fr; } }

/* ---------- Passport / membership CTA strip ---------- */
.passport-strip{ display:grid; grid-template-columns: .9fr 1.1fr 1fr; gap:0; border:1px solid var(--gc-border); border-radius: var(--gc-radius-lg); overflow:hidden; }
.passport-strip > div{ padding:34px; }
.passport-strip .passport-visual{ background: radial-gradient(circle at 30% 20%, rgba(212,175,55,.18), #0b0a08 70%); display:flex; align-items:center; justify-content:center; border-right:1px solid var(--gc-border); }
.passport-card{ width:180px; aspect-ratio: 1.6/1; border-radius:12px; border:1px solid var(--gc-gold-dim); background: linear-gradient(160deg,#1a1610,#0c0b08); padding:16px; display:flex; flex-direction:column; justify-content:space-between; }
.passport-card .pc-brand{ font-family: var(--font-display); font-size:.7rem; letter-spacing:.1em; color: var(--gc-gold); }
.passport-strip ul{ margin-top:14px; }
.passport-strip ul li{ padding-left:20px; position:relative; margin-bottom:8px; color: var(--gc-grey); font-size:.92rem; }
.passport-strip ul li::before{ content:"◆"; position:absolute; left:0; color: var(--gc-gold); font-size:.6rem; top:6px; }
.passport-strip .events-list{ border-left:1px solid var(--gc-border); }
.event-mini{ padding:10px 0; border-bottom:1px solid var(--gc-border); }
.event-mini:last-child{ border-bottom:none; }
.event-mini .ev-title{ font-family: var(--font-display); font-size:.85rem; text-transform:uppercase; letter-spacing:.03em; }
.event-mini .ev-date{ color: var(--gc-gold-dim); font-size:.78rem; }
@media (max-width:900px){ .passport-strip{ grid-template-columns:1fr; } .passport-strip .passport-visual{ border-right:none; border-bottom:1px solid var(--gc-border);} .passport-strip .events-list{ border-left:none; border-top:1px solid var(--gc-border);} }

/* ---------- Signup band ---------- */
.signup-band{ text-align:center; padding: 70px 0; background: linear-gradient(180deg, rgba(212,175,55,.06), transparent); }
.signup-band form{ display:flex; gap:10px; max-width:440px; margin: 24px auto 0; }
.signup-band input[type=email]{ flex:1; padding:14px 16px; border-radius:6px; border:1px solid var(--gc-border); background: var(--gc-panel); color:var(--gc-white); }

/* ---------- Page header (interior pages) ---------- */
.page-hero{
	padding: 64px 0 48px;
	text-align:center;
	background: radial-gradient(ellipse at 50% 0%, rgba(212,175,55,.12), transparent 60%);
	border-bottom: 1px solid var(--gc-border);
}
.page-hero h1{ font-size: clamp(2.2rem, 4.5vw, 3.4rem); }
.page-hero p{ max-width:600px; margin: 12px auto 0; }

/* ---------- Find a machine ---------- */
.finder-bar{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.finder-bar input, .finder-bar select{ background: var(--gc-panel); border:1px solid var(--gc-border); color: var(--gc-white); padding:13px 16px; border-radius:6px; }
.finder-bar input[type=text]{ flex:2; min-width:220px; }
.finder-bar select{ flex:1; min-width:140px; }
.finder-bar button{ flex-shrink:0; }
.gcg-locate-status{ font-size:.85rem; color:var(--gc-grey-dim); margin:0 0 24px; }
.gcg-locate-status.is-error{ color: var(--gc-crimson); }

.map-placeholder{
	aspect-ratio: 16/9;
	border-radius: var(--gc-radius-lg);
	border:1px solid var(--gc-border);
	background:
		radial-gradient(circle at 55% 45%, rgba(212,175,55,.16), transparent 45%),
		linear-gradient(160deg,#141210,#0a0908);
	display:flex; align-items:center; justify-content:center;
	color: var(--gc-grey-dim);
	font-family: var(--font-crest);
	letter-spacing:.15em;
	text-transform:uppercase;
	font-size:.85rem;
	text-align:center;
	padding: 20px;
	margin-bottom: 48px;
}

.location-card{ background: var(--gc-panel); border:1px solid var(--gc-border); border-radius: var(--gc-radius); overflow:hidden; }
.location-card .thumb{ aspect-ratio:16/10; background: linear-gradient(160deg,#181410,#0b0a08); display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--gc-border); color: var(--gc-gold-dim); font-family:var(--font-crest); font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; }
.location-card .body{ padding:20px; }
.location-card h4{ font-size:1rem; margin-bottom:4px; }
.location-card .addr{ font-size:.85rem; color:var(--gc-grey-dim); margin-bottom:8px; }
.location-card .meta{ display:flex; justify-content:space-between; align-items:center; font-size:.78rem; margin-top:12px; }

/* ---------- Host a Machine ---------- */
.host-hero{ display:grid; grid-template-columns: 1.1fr .9fr; gap:56px; align-items:start; padding: 72px 0; }
.host-hero .visual{ aspect-ratio: 3/4; border-radius: var(--gc-radius-lg); border:1px solid var(--gc-border); background: radial-gradient(circle at 40% 20%, rgba(212,175,55,.16), transparent 55%), linear-gradient(160deg,#161310,#0a0908); }
.host-benefits{ display:grid; grid-template-columns: repeat(4,1fr); gap:20px; margin: 40px 0; }
@media (max-width:900px){ .host-hero{ grid-template-columns:1fr; } .host-benefits{ grid-template-columns: repeat(2,1fr);} }

.how-it-works{ display:grid; grid-template-columns: repeat(4,1fr); gap:20px; }
.how-step{ text-align:center; padding:20px; }
.how-step .num{ width:40px; height:40px; margin:0 auto 14px; border-radius:50%; background: var(--gc-gold); color:#1a1305; font-family:var(--font-display); font-weight:700; display:flex; align-items:center; justify-content:center; }
@media (max-width:900px){ .how-it-works{ grid-template-columns: repeat(2,1fr);} }

.ideal-locations{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.ideal-locations span{ padding:10px 18px; border:1px solid var(--gc-border); border-radius:30px; font-size:.85rem; color: var(--gc-grey); }

/* ---------- Forms ---------- */
.gcg-form{ background: var(--gc-panel); border:1px solid var(--gc-border); border-radius: var(--gc-radius-lg); padding:36px; }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap:16px; margin-bottom:16px; }
.form-row.single{ grid-template-columns: 1fr; }
@media (max-width:600px){ .form-row{ grid-template-columns:1fr; } }
.field label{ display:block; font-family: var(--font-display); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color: var(--gc-gold-dim); margin-bottom:6px; }
.field input, .field select, .field textarea{
	width:100%; background: var(--gc-black-soft); border:1px solid var(--gc-border); color: var(--gc-white);
	padding:12px 14px; border-radius:6px;
}
.field textarea{ resize:vertical; min-height:110px; }
.field-check{ display:flex; align-items:flex-start; gap:10px; font-size:.85rem; color: var(--gc-grey); margin: 18px 0; }
.form-note{ font-size:.78rem; color: var(--gc-grey-dim); margin-top:14px; text-align:center; }
.form-success{ background: rgba(122,220,143,.1); border:1px solid #3f8a53; color:#9fe6b0; padding:14px 18px; border-radius:8px; margin-bottom:24px; font-size:.9rem; }

/* Testimonial */
.testimonial{ background: var(--gc-panel); border:1px solid var(--gc-border); border-radius: var(--gc-radius); padding:28px; margin-top:34px; }
.testimonial .stars{ color: var(--gc-gold); letter-spacing:2px; margin-bottom:10px; }
.testimonial cite{ display:block; margin-top:12px; font-style:normal; color: var(--gc-gold-dim); font-family: var(--font-display); font-size:.8rem; letter-spacing:.05em; }

/* ---------- Membership tiers ---------- */
.tiers{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
@media (max-width:900px){ .tiers{ grid-template-columns:1fr; } }
.tier-card{ background: var(--gc-panel); border:1px solid var(--gc-border); border-radius: var(--gc-radius-lg); padding:34px; position:relative; }
.tier-card.featured{ border-color: var(--gc-gold); box-shadow: 0 0 0 1px var(--gc-gold), 0 20px 50px rgba(212,175,55,.08); }
.tier-card .tier-badge{ position:absolute; top:-13px; left:50%; transform:translateX(-50%); background: var(--gc-gold); color:#1a1305; padding:4px 14px; border-radius:20px; font-family:var(--font-display); font-size:.65rem; letter-spacing:.08em; text-transform:uppercase; }
.tier-card h3{ font-family: var(--font-crest); font-size:1.3rem; color: var(--gc-gold); }
.tier-card .tier-list{ margin: 20px 0; }
.tier-card .tier-list li{ padding-left:22px; position:relative; margin-bottom:10px; font-size:.92rem; color: var(--gc-grey); }
.tier-card .tier-list li::before{ content:"✓"; position:absolute; left:0; color: var(--gc-gold); }

/* ---------- Apparel / colorways ---------- */
.colorway-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:20px; }
@media (max-width:900px){ .colorway-grid{ grid-template-columns: repeat(2,1fr);} }
.colorway-card{ border-radius: var(--gc-radius); overflow:hidden; border:1px solid var(--gc-border); }
.colorway-card .swatch{ aspect-ratio: 3/4; display:flex; align-items:flex-end; padding:16px; }
.colorway-card .body{ padding:14px 16px; background: var(--gc-panel); }
.swatch.cw-1{ background: linear-gradient(160deg,#1c1a17,#0a0a0a); }
.swatch.cw-2{ background: linear-gradient(160deg,#2a2a2a,#0a0a0a); }
.swatch.cw-3{ background: linear-gradient(160deg,#3d1620,#0a0a0a); }
.swatch.cw-4{ background: linear-gradient(160deg,#131a2e,#0a0a0a); }

/* ---------- Events ---------- */
.events-list-full .event-row{ display:grid; grid-template-columns: 120px 1fr auto; gap:24px; align-items:center; padding:24px 0; border-bottom:1px solid var(--gc-border); }
.event-row .date-block{ text-align:center; background: var(--gc-panel); border:1px solid var(--gc-border); border-radius:8px; padding:12px 8px; }
.event-row .date-block .month{ font-family: var(--font-display); font-size:.7rem; letter-spacing:.1em; color: var(--gc-gold-dim); text-transform:uppercase; }
.event-row .date-block .day{ font-family: var(--font-display); font-size:1.6rem; color: var(--gc-white); font-weight:700; }
.event-row h4{ margin-bottom:4px; }
@media (max-width:700px){ .events-list-full .event-row{ grid-template-columns: 80px 1fr; } .event-row .btn{ grid-column: 1/-1; margin-top:10px; } }

/* ---------- About ---------- */
.about-values{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
@media (max-width:800px){ .about-values{ grid-template-columns:1fr; } }
.stat-row{ display:grid; grid-template-columns: repeat(4,1fr); gap:24px; text-align:center; }
@media (max-width:700px){ .stat-row{ grid-template-columns: repeat(2,1fr);} }
.stat-row .stat-num{ font-family: var(--font-display); font-size:2.4rem; color: var(--gc-gold); font-weight:700; }
.stat-row .stat-label{ text-transform:uppercase; font-size:.78rem; letter-spacing:.05em; color: var(--gc-grey-dim); }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:40px; }
@media (max-width:800px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info-item{ display:flex; gap:16px; margin-bottom:26px; }
.contact-info-item .icon{ width:44px; height:44px; border-radius:50%; background: rgba(212,175,55,.1); border:1px solid var(--gc-gold-dim); display:flex; align-items:center; justify-content:center; color: var(--gc-gold); flex-shrink:0; font-family: var(--font-display); }

/* ---------- Footer ---------- */
.site-footer{ background: var(--gc-black-soft); border-top: 1px solid var(--gc-border); padding-top: 56px; }
.footer-top{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; }
@media (max-width:900px){ .footer-top{ grid-template-columns: 1fr 1fr; } }
@media (max-width:560px){ .footer-top{ grid-template-columns: 1fr; } }
.footer-logo{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.footer-logo .logo-img{ height:56px; display:block; }
.footer-logo img.custom-logo{ height:56px; width:auto; max-width:none; display:block; }
.footer-logo .custom-logo-link{ display:flex; align-items:center; }
.footer-col h4{ font-size:.85rem; letter-spacing:.05em; color: var(--gc-gold); margin-bottom:16px; }
.footer-signup{ display:flex; gap:8px; }
.footer-signup input{ flex:1; padding:11px 12px; border-radius:6px; border:1px solid var(--gc-border); background: var(--gc-panel); color: var(--gc-white); }
.social-links{ display:flex; flex-direction:column; gap:10px; }
.social-links a{ color: var(--gc-grey); font-size:.9rem; }
.social-links a:hover{ color: var(--gc-gold); }
.footer-menu li{ margin-bottom:10px; }
.footer-menu a{ color: var(--gc-grey); font-size:.9rem; }
.footer-menu a:hover{ color: var(--gc-gold); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding: 22px 0; border-top:1px solid var(--gc-border); flex-wrap:wrap; gap:12px; }
.footer-bottom p{ margin:0; font-size:.82rem; }
.footer-legal{ display:flex; gap:20px; }
.footer-legal a{ font-size:.82rem; color: var(--gc-grey-dim); }
.footer-legal a:hover{ color: var(--gc-gold); }

/* ---------- Real photo overrides (hero, products, location, passport, events) ---------- */
.hero-visual-photo{
	aspect-ratio: auto; display:block; padding:0; background:none;
}
.hero-visual-photo img{ width:100%; height:100%; object-fit:cover; display:block; filter:none; }
@media (min-width: 961px){ .hero-visual-photo{ min-height: 460px; } }

.thumb-photo{ padding:0; }
.thumb-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

.passport-card-img{ width:220px; border-radius:12px; box-shadow: 0 20px 40px rgba(0,0,0,.5); }

.event-mini-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:10px; margin-top:14px; }
.event-mini-photo img{ width:100%; aspect-ratio: 16/10; object-fit:cover; border-radius:6px; margin-bottom:6px; }
.event-mini-photo .ev-title{ font-family: var(--font-display); font-size:.72rem; text-transform:uppercase; letter-spacing:.02em; line-height:1.2; }
.event-mini-photo .ev-date{ color: var(--gc-gold-dim); font-size:.7rem; }
@media (max-width:540px){ .event-mini-grid{ grid-template-columns:1fr; } }

/* ---------- Map (Leaflet — Find a Machine) ---------- */
#gcg-map{ position:relative; z-index:1; }
#gcg-map .leaflet-control-attribution{ background: rgba(10,10,10,.7)!important; color:var(--gc-grey-dim)!important; }
#gcg-map .leaflet-control-attribution a{ color:var(--gc-grey)!important; }
.gcg-map-pin span{
	display:block; width:16px; height:16px; border-radius:50% 50% 50% 0;
	background: var(--gc-gold); transform: rotate(-45deg);
	border: 2px solid #1a1305;
	box-shadow: 0 0 0 2px rgba(212,175,55,.35);
}
.gcg-map-pin-search span{
	background: var(--gc-crimson);
	box-shadow: 0 0 0 2px rgba(198,40,40,.35);
}
.gcg-distance{ font-family: var(--font-display); font-size:.72rem; letter-spacing:.03em; text-transform:uppercase; color: var(--gc-gold); margin-top:2px; }
.gcg-map-popup{ font-family: var(--font-body); color:#111; font-size:.85rem; line-height:1.5; }
.gcg-map-popup a{ color:#7a5a12; font-weight:600; }
.leaflet-popup-content-wrapper{ background: var(--gc-panel); color: var(--gc-white); border:1px solid var(--gc-border); border-radius:8px; }
.leaflet-popup-content-wrapper .gcg-map-popup{ color: var(--gc-white); }
.leaflet-popup-content-wrapper .gcg-map-popup a{ color: var(--gc-gold); }
.leaflet-popup-tip{ background: var(--gc-panel); }

/* ---------- WooCommerce overrides ---------- */
.woocommerce-wrap ul.products{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; list-style:none; padding:0; }
@media (max-width:960px){ .woocommerce-wrap ul.products{ grid-template-columns:repeat(2,1fr);} }
.woocommerce-wrap ul.products li.product{
	background: var(--gc-panel); border:1px solid var(--gc-border); border-radius: var(--gc-radius);
	padding:18px; text-align:center; list-style:none;
}
.woocommerce-wrap ul.products li.product img{ border-radius:6px; margin-bottom:12px; }
.woocommerce-wrap ul.products li.product h2, .woocommerce-wrap ul.products li.product .woocommerce-loop-product__title{
	font-family: var(--font-display); font-size:.95rem; text-transform:none; color: var(--gc-white); margin-bottom:6px;
}
.woocommerce-wrap .price{ color: var(--gc-gold); font-weight:600; }
.woocommerce-wrap .button, .woocommerce-wrap .single_add_to_cart_button, .woocommerce-wrap #place_order{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding: 12px 24px; font-family: var(--font-display); font-weight:600; letter-spacing:.05em;
	text-transform:uppercase; font-size:.78rem; border-radius:6px; border:none;
	background: linear-gradient(180deg, var(--gc-gold-bright), var(--gc-gold-dim)); color:#1a1305!important;
}
.woocommerce-wrap table.shop_table, .woocommerce-wrap table.cart{ background: var(--gc-panel); border:1px solid var(--gc-border); color: var(--gc-white); }
.woocommerce-wrap table.shop_table th{ color: var(--gc-gold); }
.woocommerce-wrap .woocommerce-message, .woocommerce-wrap .woocommerce-info{ background: var(--gc-panel); border-top-color: var(--gc-gold); color: var(--gc-white); }
.woocommerce-wrap input, .woocommerce-wrap select, .woocommerce-wrap textarea{
	background: var(--gc-black-soft); border:1px solid var(--gc-border); color: var(--gc-white); padding:10px 12px; border-radius:6px;
}
.woocommerce-wrap .star-rating{ color: var(--gc-gold); }

/* ---------- Utility ---------- */
.mt-0{ margin-top:0; }
.text-center{ text-align:center; }
.crest-divider{ display:flex; align-items:center; justify-content:center; gap:14px; margin: 24px 0; color: var(--gc-gold-dim); }
.crest-divider .line{ width:60px; height:1px; background: var(--gc-border); }

/* =========================================================
   CORE WORDPRESS BLOCK COMPATIBILITY
   Everything below styles the native Gutenberg blocks (Group,
   Heading, Paragraph, Buttons, Columns, Image, List) that the
   one-click setup uses to build editable pages, so content
   authored in the block editor matches the rest of the site.
   ========================================================= */

/* Group blocks carry our section classes directly via "Additional CSS class(es)" */
.wp-block-group.hero{ background: var(--gc-black); position:relative; overflow:hidden; padding-left:var(--gc-section-px); padding-right:var(--gc-section-px); }
.wp-block-group.hero::before{
	content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
	background: radial-gradient(ellipse at 75% 30%, rgba(212,175,55,.14), transparent 55%);
}
.wp-block-group.hero > *{ position:relative; z-index:1; }
.wp-block-group.hero-inner{ display:grid; grid-template-columns: 1.1fr .9fr; gap:56px; align-items:center; max-width:var(--gc-content-max); margin-left:auto; margin-right:auto; padding-top:var(--gc-hero-py); padding-bottom:var(--gc-hero-py); }
.wp-block-group.hero-copy > *:first-child{ margin-top:0; }
.wp-block-group.hero-visual-photo{ border-radius: var(--gc-radius-lg); overflow:hidden; }
.wp-block-group.hero-visual-photo .wp-block-image{ margin:0; }
.wp-block-group.hero-visual-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width: 960px){ .wp-block-group.hero-inner{ grid-template-columns:1fr; } }

.wp-block-group.section{ padding: var(--gc-section-py) var(--gc-section-px); border-bottom: 1px solid var(--gc-border); }
.wp-block-group.section > *{ max-width:var(--gc-content-max); margin-left:auto; margin-right:auto; }
.wp-block-group.section-alt{ background: var(--gc-black-soft); }
.wp-block-group.section-head{ text-align:center; max-width:680px; margin: 0 auto 48px; }
.wp-block-group.section-head.left{ text-align:left; margin:0 0 40px; }
.wp-block-group.page-hero{ padding: 64px var(--gc-section-px) 48px; text-align:center; position:relative; overflow:hidden; border-bottom: 1px solid var(--gc-border); }
.wp-block-group.page-hero::before{
	content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
	background: radial-gradient(ellipse at 50% 0%, rgba(212,175,55,.12), transparent 60%);
}
.wp-block-group.page-hero > *{ max-width:700px; margin-left:auto; margin-right:auto; position:relative; z-index:1; }
.wp-block-group.signup-band{ text-align:center; padding: 70px var(--gc-section-px); position:relative; overflow:hidden; }
.wp-block-group.signup-band::before{
	content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
	background: linear-gradient(180deg, rgba(212,175,55,.06), transparent);
}
.wp-block-group.signup-band > *{ max-width:680px; margin-left:auto; margin-right:auto; position:relative; z-index:1; }

@media (max-width: 600px){
	.wp-block-group.section{ padding: var(--gc-section-py-mobile) var(--gc-section-px-mobile); }
	.wp-block-group.hero{ padding-left:var(--gc-section-px-mobile); padding-right:var(--gc-section-px-mobile); }
	.wp-block-group.hero-inner{ padding-top:40px; padding-bottom:40px; gap:32px; }
	.wp-block-group.page-hero{ padding: 48px var(--gc-section-px-mobile) 36px; }
	.wp-block-group.signup-band{ padding: 48px var(--gc-section-px-mobile); }
}

.wp-block-group.card{
	background: var(--gc-panel); border:1px solid var(--gc-border); border-radius: var(--gc-radius);
	padding: var(--gc-card-padding); height:100%; transition: border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.wp-block-group.card:hover{ border-color: var(--gc-gold-dim); transform: translateY(-4px); box-shadow: 0 16px 32px rgba(0,0,0,.35); }
.wp-block-group.product-card{ background: var(--gc-panel); border:1px solid var(--gc-border); border-radius: var(--gc-radius); overflow:hidden; text-align:center; height:100%; transition: transform .3s ease, border-color .3s ease; }
.wp-block-group.product-card:hover{ transform: translateY(-4px); border-color: var(--gc-gold-dim); }
.wp-block-group.product-card .wp-block-image{ margin:0 0 14px; overflow:hidden; }
.wp-block-group.product-card .wp-block-image img{ transition: transform .5s ease; }
.wp-block-group.product-card:hover .wp-block-image img{ transform: scale(1.06); }
.wp-block-group.product-card > *{ padding-left:18px; padding-right:18px; }
.wp-block-group.product-card h4{ margin-bottom:6px; }

.wp-block-group.tier-card{ background: var(--gc-panel); border:1px solid var(--gc-border); border-radius: var(--gc-radius-lg); padding:var(--gc-card-padding); position:relative; height:100%; transition: transform .3s ease; }
.wp-block-group.tier-card:hover{ transform: translateY(-4px); }
.wp-block-group.tier-card.featured{ border-color: var(--gc-gold); box-shadow: 0 0 0 1px var(--gc-gold), 0 20px 50px rgba(212,175,55,.08); }
.wp-block-group.tier-card h3{ font-family: var(--font-crest); font-size:1.3rem; color: var(--gc-gold); }

.wp-block-group.hero-eyebrow, p.hero-eyebrow{ font-family: var(--font-crest); letter-spacing:.3em; font-size:.72rem; color: var(--gc-gold); text-transform:uppercase; margin-bottom:18px; }
p.section-eyebrow{ font-family: var(--font-crest); letter-spacing:.3em; font-size:.7rem; color: var(--gc-gold); text-transform:uppercase; margin-bottom:14px; }
p.lead{ font-size:1.08rem; color: var(--gc-grey); }
h3.gold-text{ color: var(--gc-gold); }

/* Columns used as card/product grids */
.wp-block-columns{ gap:var(--gc-grid-gap); }
.wp-block-column{ display:flex; flex-direction:column; }
.wp-block-column > .wp-block-group{ width:100%; }

/* Force sensible reflow on tablet/mobile regardless of the inline
   flex-basis percentages WordPress writes on each column */
@media (max-width: 960px){
	.wp-block-columns{ flex-wrap: wrap; }
	.wp-block-columns .wp-block-column{ flex-basis: calc(50% - 12px) !important; }
}
@media (max-width: 600px){
	.wp-block-columns .wp-block-column{ flex-basis: 100% !important; }
}

/* Core Buttons block → our .btn look, using block style variations */
.wp-block-buttons{ gap:14px; flex-wrap:wrap; }
.wp-block-button__link{
	font-family: var(--font-display) !important; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
	font-size:.85rem !important; border-radius:6px !important; padding:14px 28px !important;
	transition: all .25s ease; position:relative; overflow:hidden;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link{
	background: linear-gradient(180deg, var(--gc-gold-bright), var(--gc-gold-dim)) !important; color:#1a1305 !important; border:none !important;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover{ filter:brightness(1.1); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(212,175,55,.25); }
.wp-block-button.is-style-outline .wp-block-button__link{
	background: transparent !important; color: var(--gc-crimson) !important; border:1px solid var(--gc-crimson) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{ background: var(--gc-crimson) !important; color:#fff !important; transform: translateY(-2px); }
/* shine sweep on hover */
.wp-block-button__link::after{
	content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
	background: linear-gradient(120deg, transparent, rgba(255,255,255,.35), transparent);
	transform: skewX(-20deg); transition: left .6s ease;
}
.wp-block-button__link:hover::after{ left:130%; }

.wp-block-list{ margin: 20px 0; }
.wp-block-list li{ padding-left:22px; position:relative; margin-bottom:10px; font-size:.92rem; color: var(--gc-grey); list-style:none; }
.wp-block-list li::before{ content:"◆"; position:absolute; left:0; color: var(--gc-gold); font-size:.6rem; top:6px; }

.wp-block-image.passport-card-img img{ width:220px; max-width:100%; margin:0 auto; display:block; border-radius:12px; box-shadow: 0 20px 40px rgba(0,0,0,.5); }
/* Any bare Image block placed directly in a column (flex row) centers itself horizontally instead of sitting flush-left */
.wp-block-column > .wp-block-image{ margin-left:auto; margin-right:auto; align-self:center; text-align:center; }
.wp-block-columns.passport-columns{ align-items:center; }
@media (max-width:600px){ .wp-block-columns.passport-columns{ gap: 28px; } }
.wp-block-image.thumb-photo{ margin:0; }
.wp-block-image.thumb-photo img{ width:100%; aspect-ratio:1/1; object-fit:cover; }

/* Shortcode block wrapper (forms, map, shop grid) needs no special box styling */
.wp-block-shortcode{ display:block; }

/* =========================================================
   ANIMATIONS — give the site some life
   ========================================================= */

/* Scroll-reveal: JS toggles .is-visible once an element enters the viewport */
.gcg-reveal{ opacity:0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.gcg-reveal.is-visible{ opacity:1; transform: translateY(0); }
.gcg-reveal-stagger .gcg-reveal-child{ opacity:0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
.gcg-reveal-stagger.is-visible .gcg-reveal-child{ opacity:1; transform: translateY(0); }

/* Nav link underline sweep */
.nav-menu a{ position:relative; }
.nav-menu a::after{
	content:""; position:absolute; left:0; bottom:-6px; width:0; height:1px; background: var(--gc-gold);
	transition: width .3s ease;
}
.nav-menu a:hover::after, .nav-menu a.active-link::after{ width:100%; }

/* Logo crown gentle float */
.site-logo .logo-img{ transition: transform .4s ease; }
.site-logo:hover .logo-img{ transform: rotate(-4deg) scale(1.06); }

/* Sticky header shrink on scroll */
.site-header{ transition: box-shadow .3s ease, background-color .3s ease; }
.site-header.is-scrolled{ box-shadow: 0 8px 24px rgba(0,0,0,.45); }
.site-header.is-scrolled .header-inner{ height:76px; }
.site-header.is-scrolled .site-logo .logo-img,
.site-header.is-scrolled .site-logo img.custom-logo{ height:56px; }
.header-inner{ transition: height .3s ease; }
.site-logo .logo-img, .site-logo img.custom-logo{ transition: height .3s ease; }

/* Parallax hero image (JS applies transform based on scroll position) */
.hero-visual-photo img, .wp-block-group.hero-visual-photo img{ will-change: transform; }

/* Animated gradient shimmer on hero accent word */
.hero h1 span, .wp-block-heading span{
	background: linear-gradient(100deg, var(--gc-gold-dim) 20%, var(--gc-gold-bright) 40%, var(--gc-gold) 60%, var(--gc-gold-dim) 80%);
	background-size: 250% auto;
	-webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
	animation: gcg-shimmer 6s linear infinite;
}
@keyframes gcg-shimmer{ 0%{ background-position: 0% center; } 100%{ background-position: -250% center; } }

/* Card icon subtle pulse on hover already via transform; add soft glow */
.card .icon, .wp-block-group.card .icon{ transition: box-shadow .3s ease, transform .3s ease; }
.card:hover .icon, .wp-block-group.card:hover .icon{ box-shadow: 0 0 0 6px rgba(212,175,55,.08); transform: scale(1.08); }

/* Location / product card image zoom (non-block markup version) */
.location-card .thumb, .product-card .thumb{ overflow:hidden; }
.location-card:hover .thumb, .product-card:hover .thumb{ filter:brightness(1.05); }

/* Mobile nav slide-in handled by the base .mobile-nav rule above (transform + visibility) */

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce){
	.gcg-reveal, .gcg-reveal-child, .wp-block-button__link, .card, .product-card, .site-logo .logo-img, .mobile-nav{
		transition: none !important; animation: none !important;
	}
	.gcg-reveal, .gcg-reveal-child{ opacity:1; transform:none; }
}


/* =========================================================
   DESIGN REFINEMENTS — full-bleed hero, centered card CTAs,
   consistent spacing rhythm
   ========================================================= */

/* Full-bleed hero: photo fills the whole section, copy sits on top */
.wp-block-group.hero{ min-height:clamp(560px,78vh,780px); display:flex; align-items:center; padding-top:0; padding-bottom:0; isolation:isolate; }
.wp-block-group.hero::before{ display:none; }
.wp-block-group.hero > .hero-inner{ position:static; display:block; width:100%; padding-top:var(--gc-hero-py); padding-bottom:var(--gc-hero-py); }
.wp-block-group.hero-inner > .hero-copy{ position:relative; z-index:2; max-width:600px; }
.wp-block-group.hero-inner > .hero-visual-photo{
	position:absolute; inset:0; z-index:0; border-radius:0; border:0; margin:0; max-width:none; width:100%; height:100%; min-height:0; overflow:hidden;
}
.wp-block-group.hero-visual-photo > .wp-block-image, .wp-block-group.hero-visual-photo figure{ margin:0; width:100%; height:100%; }
.wp-block-group.hero-visual-photo img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.wp-block-group.hero-visual-photo::after{
	content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
	background:
		linear-gradient(90deg, rgba(10,10,10,.92) 0%, rgba(10,10,10,.72) 42%, rgba(10,10,10,.15) 100%),
		linear-gradient(180deg, rgba(10,10,10,.35) 0%, rgba(10,10,10,0) 30%, rgba(10,10,10,.7) 100%);
}
@media (max-width:960px){
	.wp-block-group.hero{ min-height:620px; align-items:flex-end; }
	.wp-block-group.hero > .hero-inner{ padding-top:200px; padding-bottom:48px; }
	.wp-block-group.hero-visual-photo::after{ background:linear-gradient(180deg, rgba(10,10,10,.25) 0%, rgba(10,10,10,.6) 45%, rgba(10,10,10,.95) 100%); }
}

/* Product cards: image, title and button share one centered axis */
.wp-block-group.product-card{ display:flex; flex-direction:column; align-items:stretch; text-align:center; padding-bottom:24px; }
.wp-block-group.product-card .wp-block-image{ margin:0 0 20px; padding:0; width:100%; }
.wp-block-group.product-card .wp-block-image img{ width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; display:block; }
.wp-block-group.product-card h4{ margin:0 0 16px; padding:0 16px; text-align:center; }
.wp-block-group.product-card .wp-block-buttons{ justify-content:center; margin:auto 0 0; padding:0 16px; }
.wp-block-group.product-card .wp-block-button__link{ white-space:nowrap; padding:14px 26px !important; text-align:center; }

/* Consistent rhythm: uniform section heads and column gaps */
.wp-block-group.section-head, .wp-block-group.section-head.left{ margin-bottom:40px; }
.wp-block-group.section-head > :last-child{ margin-bottom:0; }
.wp-block-columns{ margin-bottom:0; }
.wp-block-group.card{ display:flex; flex-direction:column; }
.wp-block-group.card .wp-block-buttons{ margin-top:auto; }

/* Featured location + passport: images fill their column at fixed aspect ratios */
.wp-block-group.split-panel-content .wp-block-image{ width:100%; margin:0 0 24px; }
.wp-block-group.split-panel-content .wp-block-image img{ width:100%; height:auto; aspect-ratio:21/9; object-fit:cover; border-radius:var(--gc-radius-lg); display:block; }

/* Legal pages: readable line length */
.wp-block-group.legal-page > *{ max-width:820px; }
.wp-block-group.legal-page h3{ margin-top:2.2em; color:var(--gc-gold); font-size:1.15rem; }
.wp-block-group.legal-page h3:first-of-type{ margin-top:1.6em; }
.wp-block-group.legal-page p, .wp-block-group.legal-page li{ line-height:1.75; }
.wp-block-group.legal-page a{ color:var(--gc-gold); text-decoration:underline; }
.badge-open.is-coming-soon{ color:var(--gc-gold); }
