/* gg-site-chrome — header that stays on screen, announcement bar, phone Submit, phone
   menu buttons, footer, Services & Pricing blocks, "choose your service" on the form.
   Brand: gold #E5B510 header, ink #161616, d77 (bold condensed) for headings and
   buttons, D35 for text. The site's root font is 1.171vw from 1200px, so desktop sizes
   in rem scale with the window like the rest of the theme. */

:root {
	--gg-bar-h: 0px;            /* announcement bar height (set by the bar's inline script) */
	--gg-adm: 0px;              /* WordPress admin bar, signed-in staff only */
	--gg-hdr-h: 6rem;           /* the theme's header: logo 5rem + .5rem padding top and bottom */
	--gg-hdr-c: 3.8rem;         /* the slim header once scrolled */
	--gg-gold: #E5B510;
	--gg-ink: #161616;
}
@media (max-width: 767px) {
	:root { --gg-hdr-h: calc(90px + 1rem); --gg-hdr-c: calc(56px + .5rem); }
}
body.admin-bar { --gg-adm: 32px; }
@media (max-width: 782px) { body.admin-bar { --gg-adm: 46px; } }

/* ---------------- header: fixed, slim when scrolled, no white strip ---------------- */
header#masthead {
	position: fixed !important;
	top: calc(var(--gg-adm) + var(--gg-bar-h));
	z-index: 1000;
	transition: top .25s ease, padding .25s ease, box-shadow .25s ease;
}
header#masthead img.custom-logo { transition: width .25s ease, height .25s ease; }
html.gg-measuring header#masthead, html.gg-measuring header#masthead * { transition: none !important; }
main#primary { padding-top: calc(var(--gg-hdr-h) + var(--gg-bar-h)) !important; }
/* Anchor jumps and scrollIntoView (e.g. the form's jump to an invalid field) stop below the fixed header. */
html { scroll-padding-top: calc(var(--gg-adm) + var(--gg-hdr-c) + 10px); }
html.gg-scrolled header#masthead {
	top: var(--gg-adm);
	padding-top: .25rem;
	padding-bottom: .25rem;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .18);
}
html.gg-scrolled header#masthead img.custom-logo { width: 3.3rem; height: 3.3rem; }
@media (max-width: 767px) {
	html.gg-scrolled header#masthead img.custom-logo { width: 56px; height: 56px; max-width: 56px; }
}

/* Desktop SUBMIT, before Sign in. The menu needed a little less padding to keep one row. */
#primary-menu > li.gg-chrome-submit { display: inline-block; vertical-align: middle; }
#primary-menu > li.gg-chrome-submit > a.gg-chrome-submit__link {
	background: var(--gg-ink);
	color: #fff;
	text-shadow: none;
	border-radius: 6px;
	padding: .55rem 1rem;
	line-height: 1.1;
	margin-left: .35rem;
}
#primary-menu > li.gg-chrome-submit > a.gg-chrome-submit__link:hover,
#primary-menu > li.gg-chrome-submit > a.gg-chrome-submit__link:focus-visible,
#primary-menu > li.gg-chrome-submit.current-menu-item > a.gg-chrome-submit__link { background: #000; color: var(--gg-gold); }
#primary-menu > li.gg-chrome-submit > a.gg-chrome-submit__link:focus-visible { outline: 3px solid #111; outline-offset: 2px; }
@media (min-width: 1200px) {
	#primary-menu > li > a { padding-left: .72rem; padding-right: .72rem; }
	#primary-menu { padding-left: 1.2rem; }
}
/* 1200-1439: the theme's fixed 15px column padding and the spaces between the inline
   items take a bigger share of a narrower header, so tighten a little more to keep one row. */
@media (min-width: 1200px) and (max-width: 1439.98px) {
	#primary-menu > li > a { padding-left: .5rem; padding-right: .5rem; }
	#primary-menu { padding-left: .6rem; }
	#primary-menu > li.gg-chrome-submit > a.gg-chrome-submit__link { padding-left: .8rem; padding-right: .8rem; margin-left: .2rem; }
}
/* An eighth menu link (dev's Shop) pushes SUBMIT onto a second row, so space the links closer
   when the row holds 10 items (the hidden HOME, 8 links, SUBMIT). The accounts icon sits outside
   the row, so it isn't counted. Seven links (the live menu) keep the spacing above. */
@media (min-width: 1200px) {
	#primary-menu:has(> li:nth-child(10 of :not(.gg-acc-nav))) { padding-left: .6rem; }
	#primary-menu:has(> li:nth-child(10 of :not(.gg-acc-nav))) > li:not(.gg-chrome-submit) > a { padding-left: .42rem; padding-right: .42rem; }
}
@media (min-width: 1200px) and (max-width: 1439.98px) {
	#primary-menu:has(> li:nth-child(10 of :not(.gg-acc-nav))) { padding-left: .3rem; }
	#primary-menu:has(> li:nth-child(10 of :not(.gg-acc-nav))) > li:not(.gg-chrome-submit) > a { padding-left: .38rem; padding-right: .38rem; }
}
@media (max-width: 1199.98px) {
	#primary-menu > li.gg-chrome-submit { display: none; } /* tablets: the menu already wraps; Submit is in the page */
}

/* Phone header: SUBMIT beside the menu button, both fixed with the header. */
.gg-chrome-phone-submit { display: none; }
@media (max-width: 767px) {
	.gg-chrome-phone-submit {
		display: block;
		position: fixed;
		z-index: 1001;
		top: calc(var(--gg-adm) + var(--gg-bar-h) + (var(--gg-hdr-h) - 40px) / 2);
		right: calc(5% + 52px);
		height: 40px;
		line-height: 40px;
		padding: 0 16px;
		background: var(--gg-ink);
		color: #fff !important;
		font-family: 'd77', sans-serif;
		font-size: 17px;
		letter-spacing: .03em;
		text-transform: uppercase;
		border-radius: 6px;
		text-decoration: none !important;
		box-shadow: 0 1px 0 rgba(0, 0, 0, .25);
		transition: top .25s ease;
	}
	.gg-chrome-phone-submit:focus-visible { outline: 3px solid #111; outline-offset: 2px; }
	html.gg-scrolled .gg-chrome-phone-submit { top: calc(var(--gg-adm) + (var(--gg-hdr-c) - 40px) / 2); }
	/* The Responsive Menu button and panel must move with the fixed header. */
	#rmp_menu_trigger-113 {
		position: fixed !important;
		top: calc(var(--gg-adm) + var(--gg-bar-h) + (var(--gg-hdr-h) - 40px) / 2) !important;
		transition: top .25s ease;
	}
	html.gg-scrolled #rmp_menu_trigger-113 { top: calc(var(--gg-adm) + (var(--gg-hdr-c) - 40px) / 2) !important; }
	#rmp-container-113 { position: fixed !important; }
}

/* Phone menu panel: Submit and Sign in as buttons at the bottom. */
[id^="rmp-menu-wrap-"] #rmp-menu-item-gg-submit,
[id^="rmp-menu-wrap-"] #rmp-menu-item-gg-account { width: calc(100% - 40px) !important; box-sizing: border-box; }
[id^="rmp-menu-wrap-"] #rmp-menu-item-gg-submit { margin: 18px 20px 10px !important; list-style: none; }
[id^="rmp-menu-wrap-"] #rmp-menu-item-gg-submit > a.rmp-menu-item-link {
	display: block !important;
	background: var(--gg-gold) !important;
	color: var(--gg-ink) !important;
	border: 0 !important;
	border-radius: 8px !important;
	height: 50px !important;
	line-height: 50px !important;
	padding: 0 16px !important;
	text-align: center !important;
	font-family: 'd77', sans-serif !important;
	font-size: 19px !important;
	letter-spacing: .03em;
	text-transform: uppercase;
	width: auto !important;
}
[id^="rmp-menu-wrap-"] #rmp-menu-item-gg-account { margin: 0 20px 18px !important; list-style: none; }
[id^="rmp-menu-wrap-"] #rmp-menu-item-gg-account > a.rmp-menu-item-link {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: transparent !important;
	color: #fff !important;
	border: 2px solid #fff !important;
	border-radius: 8px !important;
	height: 50px !important;
	line-height: 1 !important;
	padding: 0 16px !important;
	font-family: 'd77', sans-serif !important;
	font-size: 19px !important;
	letter-spacing: .03em;
	text-transform: uppercase;
	width: auto !important;
}

/* ---------------- announcement bar ---------------- */
.gg-bar {
	position: fixed;
	top: var(--gg-adm);
	left: 0;
	right: 0;
	z-index: 1001;
	box-sizing: border-box;
	min-height: 58px;
	padding: 12px 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--gg-ink);
	color: #fff;
	font-family: 'D35', sans-serif;
	font-size: 19px;
	line-height: 1.35;
	letter-spacing: .01em;
	text-align: center;
	transition: transform .25s ease, visibility 0s;
}
.gg-bar__msg { margin: 0; }
/* Rock 10-22: "make the announcement banner bigger": bigger type and a gold button for the link */
.gg-bar__link {
	display: inline-block;
	margin-left: 14px;
	padding: 8px 16px 7px;
	border-radius: 999px;
	background: var(--gg-gold);
	color: var(--gg-ink) !important;
	font-family: 'd77', sans-serif;
	font-size: 16px;
	line-height: 1;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none !important;
	white-space: nowrap;
	vertical-align: 2px;
}
.gg-bar__link:hover, .gg-bar__link:focus-visible { background: #fff; }
.gg-bar__x {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	width: 42px;
	height: 42px;
	border: 0;
	padding: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
	display: grid;
	place-items: center;
	border-radius: 50%;
}
.gg-bar__x:hover, .gg-bar__x:focus-visible { background: rgba(255, 255, 255, .14); }
.gg-bar__x:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
html.gg-scrolled .gg-bar { transform: translateY(-110%); visibility: hidden; transition: transform .25s ease, visibility 0s .25s; }
.gg-bar__x svg { width: 20px; height: 20px; }
@media (max-width: 767.98px) {
	.gg-bar { min-height: 0; padding: 12px 48px 12px 16px; font-size: 17px; }
	.gg-bar__link { margin: 8px 0 0 6px; font-size: 15px; padding: 7px 14px 6px; }
	.gg-bar__x { right: 4px; }
}

/* ---------------- footer ---------------- */
#colophon { display: none !important; }
.gg-ft { background: #111; color: #d9d9d9; font-family: 'D35', sans-serif; font-size: 16px; line-height: 1.55; }
.gg-ft__in { max-width: 1140px; margin: 0 auto; padding: 56px 32px 36px; display: grid; grid-template-columns: 1.15fr 2.2fr 1.55fr; gap: 44px; }
.gg-ft__logo { display: inline-block; }
.gg-ft__logo img { width: 96px; height: auto; display: block; }
.gg-ft__blurb, .gg-ft__hours { font-size: 15px; color: #cfcfcf; margin-top: 14px; }
.gg-ft__blurb p, .gg-ft__hours p { margin: 0 0 8px; }
.gg-ft__social ul { list-style: none; display: flex; gap: 10px; padding: 0; margin: 14px 0 0; }
.gg-ft__social li { margin: 0; }
.gg-ft__social a { width: 38px; height: 38px; display: grid; place-items: center; background: var(--gg-gold); color: #111 !important; border-radius: 6px; font-size: 18px; text-decoration: none !important; }
.gg-ft__social a:hover { background: #fff; }
.gg-ft__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gg-ft__h, .gg-ft__col > summary {
	font-family: 'd77', sans-serif !important;
	color: var(--gg-gold) !important;
	text-transform: uppercase;
	font-size: 19px !important;
	letter-spacing: .03em;
	margin: 0 0 12px !important;
	line-height: 1.2;
}
.gg-ft__col > summary { list-style: none; cursor: default; }
.gg-ft__col > summary::-webkit-details-marker { display: none; }
.gg-ft__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.gg-ft__col li { margin: 0; }
.gg-ft a { color: #fff; text-decoration: none; }
.gg-ft a:hover { color: var(--gg-gold); text-decoration: underline; text-underline-offset: 3px; }
.gg-signup__lead { color: #cfcfcf; font-size: 15px; margin: 0 0 12px; }
.gg-signup__row { display: flex; gap: 8px; }
.gg-signup input[type="email"] { flex: 1; min-width: 0; height: 46px; border-radius: 6px; border: 1px solid #444; background: #fff; color: #111; padding: 0 12px; font-size: 16px; font-family: 'D35', sans-serif; }
.gg-signup button { flex: none; height: 46px; border-radius: 6px; border: 0; background: var(--gg-gold); color: #111; font-family: 'd77', sans-serif; font-size: 18px; letter-spacing: .03em; text-transform: uppercase; padding: 0 18px; cursor: pointer; }
.gg-signup button:hover { background: #fff; }
.gg-signup button:disabled { opacity: .6; cursor: wait; }
.gg-signup__ok { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: #bdbdbd; margin-top: 10px; line-height: 1.45; cursor: pointer; }
.gg-signup__ok input { margin-top: 3px; accent-color: var(--gg-gold); width: 16px; height: 16px; flex: none; }
.gg-signup__ok a { text-decoration: underline; text-underline-offset: 2px; }
.gg-signup__msg { margin: 10px 0 0; color: #F2CF57; font-size: 14px; min-height: 1.4em; }
.gg-signup.is-done .gg-signup__row, .gg-signup.is-done .gg-signup__ok { opacity: .55; }
.gg-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gg-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.gg-ft__base { border-top: 1px solid #2a2a2a; }
.gg-ft__copy { max-width: 1140px; margin: 0 auto; padding: 18px 32px 26px; font-size: 13px; color: #9a9a9a; }
.gg-ft__copy p { margin: 0; }
@media (max-width: 991px) {
	.gg-ft__in { grid-template-columns: 1fr 1fr; }
	.gg-ft__cols { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 767px) {
	.gg-ft__in { grid-template-columns: 1fr; padding: 34px 18px 22px; gap: 24px; }
	.gg-ft__cols { grid-row: auto; }
	.gg-ft__brand { text-align: center; }
	.gg-ft__social ul { justify-content: center; }
	.gg-ft__cols { grid-template-columns: 1fr; gap: 0; border-top: 1px solid #2a2a2a; }
	.gg-ft__col { border-bottom: 1px solid #2a2a2a; }
	.gg-ft__col > summary { margin: 0 !important; padding: 14px 4px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
	.gg-ft__col > summary::after { content: '+'; font-family: 'D35', sans-serif; color: #fff; font-size: 24px; line-height: 1; }
	.gg-ft__col[open] > summary::after { content: '\2013'; }
	.gg-ft__col ul { padding: 0 4px 16px; }
	.gg-ft__copy { padding: 16px 18px 22px; text-align: center; }
}

/* ---------------- Services & Pricing ---------------- */
.gg-pr-sec { scroll-margin-top: 64px; padding: 64px 0 !important; margin-bottom: 0 !important; } /* + html scroll-padding (the header) = clear of the jump bar */
.gg-pr-band { background: #FBF7EE; box-shadow: 0 0 0 100vmax #FBF7EE; clip-path: inset(0 -100vmax); }
.gg-pr-sec h2 { font-family: 'd77', sans-serif !important; color: var(--gg-ink) !important; text-transform: uppercase; font-size: 2.4rem !important; line-height: 1.05 !important; margin: 0 0 .4rem !important; letter-spacing: .01em; }
.gg-pr-lead { color: #5E5A52; font-size: 1.1rem; margin: .5rem 0 0 !important; max-width: 46rem; }
.gg-pr-eyebrow { display: inline-block; margin: .5rem 0 .2rem !important; font-family: 'd77', sans-serif; text-transform: uppercase; font-size: 1.05rem; letter-spacing: .02em; background: var(--gg-ink); color: #fff; border-radius: 999px; padding: .35rem 1rem; }
.gg-pr-eyebrow b { color: #F2CF57; font-weight: normal; }
.gg-pr-note { font-size: .9rem !important; color: #6B665C !important; margin: 1.2rem 0 0 !important; }
.gg-pr-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.2rem; }
.gg-pr-chip { font-size: .85rem; padding: .35rem .8rem; border-radius: 999px; background: #fff; border: 1px solid #E4DCC8; color: #2b2925; }
.gg-pr-chip--no { background: #F4F1EA; color: #6B665C; }

.gg-pr-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; margin-top: 2rem; align-items: stretch; }
.gg-pr-cards--1 { grid-template-columns: minmax(0, 26rem); }
.gg-pr-cards--2 { grid-template-columns: repeat(2, 1fr); }
.gg-pr-card { position: relative; background: #fff; border: 1px solid #E4DCC8; border-radius: 12px; padding: 1.8rem 1.6rem; display: flex; flex-direction: column; }
.gg-pr-card--pop { border: 2px solid var(--gg-ink); background: #FFFDF6; }
.gg-pr-card--paused, .gg-pr-card--coming_soon { opacity: .75; }
.gg-pr-ribbon { position: absolute; top: -.85rem; left: 50%; transform: translateX(-50%); background: var(--gg-gold); border: 2px solid var(--gg-ink); border-radius: 999px; padding: .2rem .9rem; font-family: 'd77', sans-serif; font-size: .9rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.gg-pr-name { font-family: 'd77', sans-serif !important; color: var(--gg-ink) !important; font-size: 1.55rem !important; text-transform: uppercase; margin: 0 !important; line-height: 1.1 !important; }
.gg-pr-state { display: inline-block; margin-left: .5rem; vertical-align: middle; font-size: .7rem; letter-spacing: .05em; background: var(--gg-ink); color: #fff; border-radius: 999px; padding: .15rem .55rem; }
.gg-pr-days { color: #5E5A52; font-size: 1rem; margin-top: .25rem; }
.gg-pr-price { display: flex; align-items: baseline; gap: .5rem; margin: 1rem 0; padding-top: 1rem; border-top: 1px solid #EFE7D3; }
.gg-pr-price b { font-family: 'd77', sans-serif; font-weight: normal; font-size: 3.4rem; line-height: 1; color: var(--gg-ink); }
.gg-pr-price span { color: #5E5A52; font-size: 1rem; }
.gg-pr-inc { list-style: none !important; margin: 0 0 1.4rem !important; padding: 0 !important; display: grid; gap: .6rem; }
.gg-pr-inc li { display: flex; gap: .6rem; align-items: flex-start; font-size: 1rem; line-height: 1.35; margin: 0 !important; padding: 0 !important; color: #2b2925; }
.gg-pr-inc li::before { content: none !important; }
.gg-pr-inc svg { flex: none; margin-top: 1px; }
.gg-pr-btn { margin-top: auto; display: block; text-align: center; font-family: 'd77', sans-serif !important; font-size: 1.15rem; letter-spacing: .02em; text-transform: uppercase; padding: .8rem 1rem; border-radius: 6px; border: 2px solid var(--gg-ink); text-decoration: none !important; color: var(--gg-ink) !important; background: #fff; }
.gg-pr-btn:hover { background: var(--gg-ink); color: #fff !important; }
.gg-pr-btn--gold { background: var(--gg-gold); }
.gg-pr-btn--off { border-color: #c9c2b3; color: #8a8478 !important; background: #f4f1ea; cursor: not-allowed; }
.gg-pr-btn--off:hover { background: #f4f1ea; color: #8a8478 !important; }

.vc_row.gg-pr-rcr { margin-top: 1.2rem; }
@media (min-width: 768px) { .vc_row.gg-pr-rcr { display: flex; align-items: center; flex-wrap: wrap; } }
.gg-pr-rcr__img { text-align: center; margin: 0 !important; }
.gg-pr-rcr__img img { width: 100%; max-width: 230px; height: auto; filter: drop-shadow(0 12px 18px rgba(70, 52, 12, .25)); }
.gg-pr-rcr .gg-pr-cards { margin-top: 0; }
.gg-pr-rcr .gg-pr-lead { margin-top: 0 !important; }
@media (max-width: 767px) { .gg-pr-rcr__img img { max-width: 170px; } .gg-pr-rcr .gg-pr-cards { margin-top: 1.4rem; } }

.gg-pr-addons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; margin-top: 1.8rem; }
.gg-pr-add { background: #fff; border: 1px solid #E4DCC8; border-radius: 12px; padding: 1.1rem 1.2rem; }
.gg-pr-add__t { font-family: 'd77', sans-serif; font-size: 1.1rem; text-transform: uppercase; color: var(--gg-ink); }
.gg-pr-add__v { font-family: 'd77', sans-serif; font-size: 1.9rem; color: var(--gg-ink); margin-top: .7rem; padding-top: .7rem; border-top: 1px solid #EFE7D3; }
.gg-pr-add__s { font-size: .88rem; color: #6B665C; margin-top: .25rem; }
table.gg-pr-ship { width: 100%; border-collapse: collapse; margin-top: 1.1rem; background: #fff; border: 1px solid #E4DCC8; border-radius: 12px; overflow: hidden; font-size: 1rem; }
table.gg-pr-ship caption { caption-side: top; text-align: left; font-family: 'd77', sans-serif; text-transform: uppercase; font-size: 1.1rem; color: var(--gg-ink); padding: 0 0 .5rem; }
table.gg-pr-ship td, table.gg-pr-ship th { padding: .6rem 1rem; border-top: 1px solid #EFE7D3; text-align: left; font-weight: normal; }
table.gg-pr-ship tr:first-child td, table.gg-pr-ship tr:first-child th { border-top: 0; }
table.gg-pr-ship td:last-child { text-align: right; font-family: 'd77', sans-serif; font-size: 1.15rem; }

.gg-pr-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; margin-top: 1.8rem; }
.gg-pr-tile { background: #fff; border: 1px solid #E4DCC8; border-radius: 12px; padding: 1.1rem; text-align: center; }
.gg-pr-tile__l { font-family: 'd77', sans-serif; font-size: 1rem; text-transform: uppercase; color: #5E5A52; }
.gg-pr-tile__n { font-family: 'd77', sans-serif; font-size: 2.6rem; line-height: 1; margin-top: .5rem; color: var(--gg-ink); }
.gg-pr-tile__u { font-size: .9rem; color: #6B665C; margin-top: .25rem; }
.gg-pr-more { display: inline-block; margin-top: 1.1rem; color: var(--gg-ink) !important; text-decoration: underline !important; text-underline-offset: 3px; font-size: 1rem; }

.gg-pr-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.3rem; margin-top: 1.8rem; list-style: none !important; padding: 0 !important; }
.gg-pr-step { background: #fff; border: 1px solid #E4DCC8; border-radius: 12px; padding: 1.2rem; margin: 0 !important; }
.gg-pr-step::before { content: none !important; }
.gg-pr-step__k { font-family: 'd77', sans-serif; font-size: 2.8rem; line-height: 1; color: var(--gg-gold); -webkit-text-stroke: 1.5px var(--gg-ink); margin-bottom: .6rem; }
.gg-pr-step__h { font-family: 'd77', sans-serif; font-size: 1.2rem; text-transform: uppercase; color: var(--gg-ink); }
.gg-pr-step p { font-size: .95rem !important; margin: .35rem 0 0 !important; color: #4a463f !important; }

.gg-faq { margin-top: 1.6rem; max-width: 52rem; }
.gg-faq__item { background: #fff; border: 1px solid #E4DCC8; border-radius: 12px; margin-bottom: .6rem; }
.gg-faq__item > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: .85rem; padding: 1rem 1.1rem; font-size: 1.1rem; color: var(--gg-ink); }
.gg-faq__item > summary::-webkit-details-marker { display: none; }
.gg-faq__n { flex: none; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--gg-ink); color: #fff; font-family: 'd77', sans-serif; font-size: .95rem; display: grid; place-items: center; }
.gg-faq__q { flex: 1; }
.gg-faq__chev { flex: none; width: 1.6rem; height: 1.6rem; border: 1.5px solid var(--gg-ink); border-radius: 50%; position: relative; }
.gg-faq__chev::before { content: ''; position: absolute; left: 50%; top: 45%; width: .45rem; height: .45rem; border-right: 1.5px solid var(--gg-ink); border-bottom: 1.5px solid var(--gg-ink); transform: translate(-50%, -50%) rotate(45deg); }
.gg-faq__item[open] .gg-faq__chev { transform: rotate(180deg); }
.gg-faq__a p { padding: 0 1.1rem 1.1rem 3.7rem; margin: 0 !important; font-size: 1rem; color: #4a463f; }

/* the jump bar row sticks under the slim header */
/* display:flow-root contains WPBakery's floated column (its own :before/:after clearfix
   is left alone); the white runs full width through a clipped box-shadow. */
.vc_row.gg-pr-jumprow {
	position: sticky;
	top: calc(var(--gg-adm) + var(--gg-hdr-c));
	z-index: 900;
	display: flow-root;
	background: #fff;
	box-shadow: 0 0 0 100vmax #fff;
	clip-path: inset(0 -100vmax);
	margin-bottom: 0 !important;
}
.vc_row.gg-pr-jumprow > .wpb_column > .vc_column-inner { padding-top: 0 !important; padding-bottom: 0 !important; }
.vc_row.gg-pr-jumprow .wpb_content_element, .vc_row.gg-pr-jumprow .wpb_wrapper { margin: 0 !important; }
.gg-jump { position: relative; }
.gg-jump::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: #E7E1D2; box-shadow: 0 0 0 100vmax #E7E1D2; clip-path: inset(0 -100vmax); }
.gg-jump__in { display: flex; justify-content: center; gap: 2rem; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
.gg-jump__in::-webkit-scrollbar { display: none; }
.gg-jump a { flex: none; font-family: 'd77', sans-serif; font-size: 1.1rem; text-transform: uppercase; color: var(--gg-ink) !important; text-decoration: none !important; padding: 1.05rem 0 .85rem; border-bottom: 3px solid transparent; }
.gg-jump a.is-on, .gg-jump a:hover { border-bottom-color: var(--gg-gold); }

@media (max-width: 991px) {
	.gg-pr-cards, .gg-pr-cards--2 { grid-template-columns: 1fr; }
	.gg-pr-addons, .gg-pr-tiles, .gg-pr-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
	.gg-pr-sec { padding: 40px 0 !important; scroll-margin-top: 52px; }
	.gg-pr-sec h2 { font-size: 30px !important; }
	.gg-pr-lead { font-size: 16px; }
	.gg-pr-eyebrow { font-size: 15px; }
	.gg-pr-cards--1 { grid-template-columns: 1fr; }
	.gg-pr-card { padding: 1.4rem 1.2rem; }
	.gg-pr-name { font-size: 24px !important; }
	.gg-pr-price b { font-size: 50px; }
	.gg-pr-inc li, .gg-pr-days, .gg-pr-price span { font-size: 16px; }
	.gg-pr-btn { font-size: 18px; }
	.gg-pr-ribbon { font-size: 14px; }
	.gg-pr-addons { grid-template-columns: 1fr; }
	.gg-pr-add { display: grid; grid-template-columns: 1fr auto; column-gap: .8rem; align-items: center; }
	.gg-pr-add__v { grid-row: span 2; margin: 0; padding: 0; border: 0; font-size: 24px; text-align: right; }
	.gg-pr-add__t { font-size: 17px; }
	.gg-pr-add__s { font-size: 14px; }
	.gg-pr-tiles { grid-template-columns: 1fr 1fr; }
	.gg-pr-tile__n { font-size: 32px; }
	.gg-pr-steps { grid-template-columns: 1fr; }
	.gg-pr-step { display: grid; grid-template-columns: 3rem 1fr; column-gap: .9rem; }
	.gg-pr-step__k { grid-row: span 2; margin: 0; font-size: 40px; }
	.gg-pr-step__h { font-size: 19px; }
	.gg-pr-step p { font-size: 15px !important; }
	.gg-faq__item > summary { font-size: 17px; }
	.gg-faq__a p { padding-left: 1.1rem; font-size: 16px; }
	.gg-jump__in { justify-content: flex-start; gap: 1.4rem; padding: 0 2px; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
	.gg-jump a { font-size: 16px; padding: .85rem 0 .7rem; }
	.gg-jump__in.is-end { -webkit-mask-image: none; mask-image: none; }
	table.gg-pr-ship td:last-child { font-size: 18px; }
}

/* ---------------- submission form: choose your service ---------------- */
.ggf .svc.gg-svc-src { display: none !important; }
.ggf .gg-svc__types { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.ggf .gg-svc__type {
	display: grid;
	grid-template-columns: 66px 1fr;
	grid-template-rows: auto auto;
	column-gap: .85rem;
	align-items: center;
	text-align: left;
	border: 2px solid #d8d8d8;
	border-radius: 10px;
	background: #fff;
	padding: .75rem .85rem;
	cursor: pointer;
	font: inherit;
	color: #141414;
	width: 100%;
}
.ggf .gg-svc__type img { grid-row: span 2; width: 66px; height: auto; filter: drop-shadow(0 5px 7px rgba(0, 0, 0, .2)); }
.ggf .gg-svc__tt { font-family: 'd77', sans-serif; font-size: 1.2rem; text-transform: uppercase; align-self: end; }
.ggf .gg-svc__ts { font-size: .82rem; color: #555; line-height: 1.35; align-self: start; margin-top: .15rem; }
.ggf .gg-svc__type.is-on { border-color: #a8841c; background: #faf8f2; box-shadow: inset 0 0 0 1px #a8841c; }
.ggf .gg-svc__type:focus-visible { outline: 3px solid #141414; outline-offset: 2px; }
.ggf .gg-svc__type.is-off { opacity: .55; cursor: not-allowed; }
.ggf .gg-svc__speeds { margin-top: .85rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.ggf .gg-svc__speeds[hidden] { display: none; }
.ggf .gg-svc__sh { grid-column: 1 / -1; font-size: max(13px, .74rem); font-weight: 700; text-transform: uppercase; color: #444; margin: 0 !important; }
.ggf .gg-svc__speeds .wpcf7-list-item { margin: 0; display: block; }
.ggf .gg-svc__speeds .wpcf7-list-item label { border: 2px solid #d8d8d8; border-radius: 9px; padding: .6rem .7rem; display: flex; gap: .5rem; align-items: flex-start; cursor: pointer; height: 100%; box-sizing: border-box; }
.ggf .gg-svc__speeds .wpcf7-list-item label:has(input:checked) { border-color: #a8841c; background: #faf8f2; }
.ggf .gg-svc__speeds input[type="radio"] { accent-color: #a8841c; margin-top: .2rem; flex: none; }
.ggf .gg-svc-off label { opacity: .55; cursor: not-allowed; }
.ggf .gg-svc-badge { display: inline-block; margin-left: .45rem; font-family: 'd77', sans-serif; font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; background: #161616; color: #fff; border-radius: 999px; padding: .12rem .5rem; vertical-align: middle; }
@media (max-width: 620px) {
	.ggf .gg-svc__types, .ggf .gg-svc__speeds { grid-template-columns: 1fr; }
}

@media print {
	main#primary { padding-top: 0 !important; }
	.gg-bar, .gg-chrome-phone-submit, .gg-ft, .gg-jump { display: none !important; }
	header#masthead { position: static !important; }
}

/* ---------------- home cover: the slab wall (row el_class "gg-hero-wall") ----------------
   Beats the theme's wood (inc/gg-brand-images.php prints body.home .top__banner{background-image:...!important})
   and gg-site-quality's white hero text by specificity. Desktop (1024px+): text left, the wall image on the
   right, 53vw wide, bleeding off the edge. Below 1024px: text first, then the wall as a full-width strip. */
body.home .vc_row.top__banner.gg-hero-wall {
	background: linear-gradient(180deg, #FFFFFF 0%, #FBF7EE 55%, #F3EBDA 100%) !important;
	border-bottom: 1px solid #E9E0CB;
	overflow: hidden;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}
body.home .gg-hero-wall .gg-quality-hero { color: #161616; padding: 0; }
body.home .gg-hero-wall .gg-quality-hero h1 { color: #161616 !important; text-shadow: none; }
body.home .gg-hero-wall .gg-quality-hero .gg-quality-intro { color: #3b3b3b !important; }
body.home .gg-hero-wall .gg-quality-details a { color: #161616 !important; }
body.home .gg-hero-wall .gg-quality-details a:hover { color: #78580b !important; }
body.home .gg-hero-wall .gg-quality-details span { color: #161616; }
body.home .gg-hero-wall .gg-quality-hero a:focus-visible { outline-color: #161616 !important; }
body.home .gg-hero-wall p.gg-hero-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 14px !important; font-size: 1rem; color: #161616; font-weight: normal; }
body.home .gg-hero-wall p.gg-hero-eyebrow img { width: 48px; height: 48px; margin: 0; flex: none; }
body.home .gg-hero-wall p.gg-hero-eyebrow span {
	/* the theme's style.css has "p span { background: transparent !important }" */
	background: #161616 !important;
	display: inline-block !important;
	color: #fff;
	font-family: 'd77', sans-serif;
	font-size: 17px;
	letter-spacing: .04em;
	padding: 7px 16px;
	border-radius: 999px;
	line-height: 1.2;
	text-transform: uppercase;
}
body.home .gg-hero-wall p.gg-hero-eyebrow b { color: #F2CF57; font-size: 1.35em; font-weight: normal; }
body.home .gg-hero-wall .gg-wall, body.home .gg-hero-wall .gg-wall img { display: block; margin: 0; }
body.home .gg-hero-wall .wpb_single_image { display: none; }

@media (min-width: 1024px) {
	body.home .gg-hero-wall > .wpb_column,
	body.home .gg-hero-wall > .wpb_column > .vc_column-inner,
	body.home .gg-hero-wall > .wpb_column > .vc_column-inner > .wpb_wrapper,
	body.home .gg-hero-wall .vc_row.vc_inner,
	body.home .gg-hero-wall .vc_row.vc_inner > .wpb_column,
	body.home .gg-hero-wall .vc_row.vc_inner > .wpb_column > .vc_column-inner,
	body.home .gg-hero-wall .vc_row.vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper { position: static; }
	body.home .vc_row.top__banner.gg-hero-wall { position: relative; }
	body.home .gg-hero-wall .vc_row.vc_inner { display: flex; align-items: center; min-height: clamp(470px, 40.3vw, 780px); margin: 0; }
	body.home .gg-hero-wall .vc_row.vc_inner > .wpb_column:first-child { flex: 0 0 0; width: 0 !important; padding: 0 !important; min-height: 0; }
	body.home .gg-hero-wall .vc_row.vc_inner > .wpb_column:last-child { flex: 0 0 auto; width: 41vw !important; max-width: 41vw; position: relative; z-index: 2; padding: 2.5rem 0 2.5rem 15px; }
	body.home .gg-hero-wall .gg-quality-hero { text-align: left; }
	body.home .gg-hero-wall .gg-quality-hero h1 { font-size: clamp(2.6rem, 3.6vw, 4.2rem); line-height: 1.05; }
	body.home .gg-hero-wall .gg-quality-actions, body.home .gg-hero-wall .gg-quality-details { justify-content: flex-start; text-align: left; }
	body.home .gg-hero-wall .gg-wall { position: absolute; top: 0; right: 0; bottom: 0; width: 53vw; z-index: 1; }
	body.home .gg-hero-wall .gg-wall img { width: 100%; height: 100%; object-fit: cover; object-position: left center; }
}
@media (max-width: 1023.98px) {
	body.home .gg-hero-wall .vc_row.vc_inner { display: flex; flex-direction: column; margin: 0; }
	body.home .gg-hero-wall .vc_row.vc_inner > .wpb_column { width: 100% !important; float: none; }
	body.home .gg-hero-wall .vc_row.vc_inner > .wpb_column:first-child { order: 2; padding: 0 !important; }
	body.home .gg-hero-wall .vc_row.vc_inner > .wpb_column:last-child { order: 1; padding-top: 26px; padding-bottom: 6px; }
	body.home .gg-hero-wall p.gg-hero-eyebrow { justify-content: center; }
	body.home .gg-hero-wall .wpb_wrapper { margin: 0; }
	body.home .gg-hero-wall .gg-wall { width: 100vw; margin: 22px 0 0 calc(50% - 50vw); }
	body.home .gg-hero-wall .gg-wall img { width: 100%; height: 55vw; max-height: 460px; object-fit: cover; object-position: left top; }
}
@media (max-width: 767.98px) {
	body.home .gg-hero-wall .gg-wall img { height: auto; max-height: none; aspect-ratio: 390 / 380; object-position: center top; }
	body.home .gg-hero-wall p.gg-hero-eyebrow img { width: 40px; height: 40px; }
	body.home .gg-hero-wall p.gg-hero-eyebrow span { font-size: 15px; padding: 6px 14px; }
}

/* pricing: the slab fan beside "Graded slabs" */
.vc_row.gg-pr-head { margin-bottom: 0; }
@media (min-width: 768px) { .vc_row.gg-pr-head { display: flex; align-items: center; flex-wrap: wrap; } }
.gg-pr-fan { text-align: center; margin: 0 !important; }
.gg-pr-fan img { width: 100%; max-width: 340px; height: auto; }
@media (max-width: 767px) { .gg-pr-fan img { max-width: 240px; margin-top: 14px; } }

/* ---------------- home slabs: lean toward the pointer, turn over on click / tap / Enter ----------------
   includes/slab-flip.php prints the markup; site-chrome.js moves the springs and sets --gg-rx/ry (lean),
   --gg-z (lift), --gg-g* (where the light falls), --gg-s* (shadow) and --gg-turn. Without the script the
   front shows, the hint stays hidden and nothing moves. Sizes in cqi follow the slab's width. */
.gg-flip { width: 100%; max-width: 350px; margin: 0 auto; text-align: center; }
.gg-flip__btn {
	all: unset;
	box-sizing: border-box;
	position: relative;
	display: block;
	width: 100%;
	cursor: pointer;
	perspective: 1100px;
	container-type: inline-size;
	border-radius: 14px;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
	-webkit-user-select: none;
	user-select: none;
}
.gg-flip__btn:focus-visible { outline: 3px solid var(--gg-ink); outline-offset: 8px; }
.gg-flip__tilt, .gg-flip__bump, .gg-flip__card { display: block; position: relative; transform-style: preserve-3d; }
.gg-flip__tilt { transform: rotateX(var(--gg-rx, 0deg)) rotateY(var(--gg-ry, 0deg)) translateZ(var(--gg-z, 0px)); }
.gg-flip.is-live .gg-flip__tilt { will-change: transform; }
/* The turn overshoots a little and settles, like a slab set down on the table. */
.gg-flip__card { transform: rotateY(var(--gg-turn, 0deg)); transition: transform .85s cubic-bezier(.25, 1.28, .45, 1); }
.gg-flip__face {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: 3.5cqi; /* the holder's own corner */
	background: #fff;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}
.gg-flip__face--back { position: absolute; inset: 0; transform: rotateY(180deg); }
.gg-flip__img { display: block; width: 100% !important; max-width: none !important; height: auto !important; pointer-events: none; }
.gg-flip__face--back .gg-flip__img { height: 100% !important; object-fit: cover; }
/* Light on the plastic: a soft spot where the pointer is and a faint band that sweeps with the lean. */
.gg-flip__glare {
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0;
	transition: opacity .4s ease;
	background:
		radial-gradient(circle 70cqi at var(--gg-gx, 50%) var(--gg-gy, 35%), rgba(255, 255, 255, .7), rgba(255, 255, 255, .18) 30%, rgba(255, 255, 255, 0) 60%),
		linear-gradient(110deg, rgba(255, 255, 255, 0) 42%, rgba(255, 255, 255, .3) 50%, rgba(255, 255, 255, 0) 58%) var(--gg-sheen, 50%) 0 / 300% 100% no-repeat;
	mix-blend-mode: soft-light;
}
.gg-flip__face--back .gg-flip__glare { --gg-gx: var(--gg-gxb, 50%); --gg-sheen: var(--gg-sheenb, 50%); }
.gg-flip.is-live .gg-flip__glare { opacity: 1; }
/* Shadows: the resting one (the wall's "normal" recipe) hands over to a deeper one as the slab lifts. */
.gg-flip__shadow {
	position: absolute;
	top: 1%;
	right: 2.5%;
	bottom: 0;
	left: 2.5%;
	border-radius: 3.5cqi;
	pointer-events: none;
	box-shadow: 0 .5cqi 1.5cqi rgba(0, 0, 0, .10), 0 2cqi 3cqi rgba(0, 0, 0, .09), 0 5cqi 3.5cqi rgba(0, 0, 0, .05);
	transform: translate3d(calc(var(--gg-sx, 0) * 1cqi), calc(var(--gg-sy, 0) * 1cqi), 0);
	opacity: calc(1 - var(--gg-lo, 0) * .7);
}
.gg-flip__shadow--lift {
	box-shadow: 0 3cqi 6cqi rgba(0, 0, 0, .16), 0 10cqi 14cqi rgba(0, 0, 0, .14);
	opacity: var(--gg-lo, 0);
}
/* One small turn back and forth when the slabs first come into view, so people know they move. */
.gg-flip.is-peek .gg-flip__bump { animation: gg-flip-peek 1.3s cubic-bezier(.45, 0, .25, 1); }
@keyframes gg-flip-peek {
	0% { transform: rotateY(0); }
	30% { transform: rotateY(-24deg); }
	62% { transform: rotateY(9deg); }
	84% { transform: rotateY(-3deg); }
	100% { transform: rotateY(0); }
}
/* While it turns, the slab comes up off the page and its shadow spreads. */
.gg-flip.is-flipping .gg-flip__bump { animation: gg-flip-bump .85s cubic-bezier(.3, .6, .3, 1); }
@keyframes gg-flip-bump {
	0% { transform: translateZ(0); }
	40% { transform: translateZ(70px); }
	100% { transform: translateZ(0); }
}
.gg-flip.is-flipping .gg-flip__shadow--lift { animation: gg-flip-drop .85s cubic-bezier(.3, .6, .3, 1); }
@keyframes gg-flip-drop {
	40% { opacity: 1; transform: translate3d(calc(var(--gg-sx, 0) * 1cqi), 4cqi, 0) scale(1.04); }
}
.gg-flip__hint {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	margin: 1rem 0 0 !important;
	padding: 0;
	font-size: .95rem;
	line-height: 1.2;
	color: #595959;
	visibility: hidden;
}
.gg-flip.is-ready .gg-flip__hint { visibility: visible; }
.gg-flip__hint svg { flex: none; transition: transform .7s cubic-bezier(.25, 1.28, .45, 1); }
.gg-flip.is-turned .gg-flip__hint svg { transform: rotate(-360deg); }
.gg-flip__hint-t { display: none; }
@media (hover: none) {
	.gg-flip__hint-m { display: none; }
	.gg-flip__hint-t { display: inline; }
	.gg-flip__tilt { transition: transform .15s ease; }
	.gg-flip__btn:active .gg-flip__tilt { transform: scale(.975); }
}
@media (prefers-reduced-motion: reduce) {
	.gg-flip__card { transition-duration: .01s; }
	.gg-flip__tilt { transform: none !important; }
	.gg-flip.is-peek .gg-flip__bump, .gg-flip.is-flipping .gg-flip__bump, .gg-flip.is-flipping .gg-flip__shadow--lift { animation: none; }
	.gg-flip__glare, .gg-flip__shadow--lift { display: none; }
}

/* ---------------- submission page: sign in, create an account or continue as a guest ----------------
   includes/submit-gate.php prints it for signed-out visitors where accounts are on; site-chrome.js opens
   it once per browser session. Without the script it never opens and the form is as before. */
dialog.gg-gate {
	box-sizing: border-box;
	width: min(420px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	overflow: auto;
	margin: auto;
	padding: 30px 26px 22px;
	border: 0;
	border-radius: 14px;
	background: #fff;
	color: var(--gg-ink);
	box-shadow: 0 24px 64px rgba(0, 0, 0, .35);
	text-align: center;
	font-family: 'D35', sans-serif;
}
dialog.gg-gate::backdrop { background: rgba(0, 0, 0, .6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
dialog.gg-gate[open] { animation: gg-gate-in .3s cubic-bezier(.2, .9, .3, 1.1); }
@keyframes gg-gate-in { from { opacity: 0; transform: translateY(14px) scale(.97); } }
dialog.gg-gate form { margin: 0; padding: 0; }
dialog.gg-gate .gg-gate__x-form { position: absolute; top: 8px; right: 8px; }
dialog.gg-gate .gg-gate__x {
	all: unset;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	font-size: 28px;
	line-height: 1;
	color: #555;
	cursor: pointer;
}
dialog.gg-gate .gg-gate__x:hover, dialog.gg-gate .gg-gate__x:focus-visible { background: #f1f1f1; color: #000; }
dialog.gg-gate .gg-gate__x:focus-visible { outline: 2px solid var(--gg-ink); }
dialog.gg-gate .gg-gate__mark { display: block; width: 56px; height: 56px; margin: 0 auto 8px; }
dialog.gg-gate .gg-gate__title {
	margin: 0 0 8px !important;
	padding: 0;
	font-family: 'd77', sans-serif !important;
	font-size: 30px !important;
	line-height: 1.05 !important;
	letter-spacing: .01em;
	text-transform: uppercase;
	color: var(--gg-ink) !important;
}
dialog.gg-gate .gg-gate__lead { margin: 0 0 18px !important; font-size: 17px; line-height: 1.45; color: #444; }
dialog.gg-gate .gg-gate__btn {
	all: unset;
	box-sizing: border-box;
	display: block;
	width: 100%;
	margin: 0 0 10px;
	padding: 14px 18px;
	border-radius: 8px;
	font-family: 'd77', sans-serif;
	font-size: 20px;
	line-height: 1.1;
	letter-spacing: .03em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
dialog.gg-gate .gg-gate__btn--ink { background: var(--gg-ink); color: #fff !important; }
dialog.gg-gate .gg-gate__btn--ink:hover { background: #000; color: var(--gg-gold) !important; }
dialog.gg-gate .gg-gate__btn--line { box-shadow: inset 0 0 0 2px var(--gg-ink); color: var(--gg-ink) !important; }
dialog.gg-gate .gg-gate__btn--line:hover { background: #f4f1e6; }
dialog.gg-gate .gg-gate__btn--gold { background: var(--gg-gold); color: var(--gg-ink) !important; margin-bottom: 8px; }
dialog.gg-gate .gg-gate__btn--gold:hover { background: #d4a70c; }
dialog.gg-gate .gg-gate__btn:focus-visible { outline: 3px solid var(--gg-ink); outline-offset: 3px; }
dialog.gg-gate .gg-gate__or { display: flex; align-items: center; gap: 12px; margin: 8px 0 14px !important; font-size: 14px; color: #777; }
dialog.gg-gate .gg-gate__or::before, dialog.gg-gate .gg-gate__or::after { content: ""; flex: 1; height: 1px; background: #ddd; }
dialog.gg-gate .gg-gate__note { margin: 0 !important; font-size: 14px; line-height: 1.4; color: #666; }
@media (prefers-reduced-motion: reduce) { dialog.gg-gate[open] { animation: none; } }

/* "Your privacy choices" (includes/tracking.php): the same dialog, with two switches */
dialog.gg-privacy { text-align: left; }
dialog.gg-privacy .gg-gate__title, dialog.gg-privacy .gg-gate__lead { text-align: center; }
dialog.gg-privacy .gg-gate__lead a { color: var(--gg-ink); text-decoration: underline; }
dialog.gg-privacy .gg-privacy__row {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 0 0 12px;
	padding: 14px;
	border-radius: 10px;
	background: #f7f5ee;
	font-size: 15px;
	line-height: 1.4;
	color: #444;
	cursor: pointer;
}
dialog.gg-privacy .gg-privacy__row input { flex: 0 0 auto; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--gg-ink); cursor: pointer; }
dialog.gg-privacy .gg-privacy__row input:disabled { cursor: not-allowed; }
dialog.gg-privacy .gg-privacy__row b { display: block; margin: 0 0 2px; font-family: 'd77', sans-serif; font-size: 18px; font-weight: 400; letter-spacing: .02em; text-transform: uppercase; color: var(--gg-ink); }
dialog.gg-privacy .gg-privacy__gpc { margin: 0 0 12px !important; font-size: 14px; line-height: 1.4; color: #666; }
dialog.gg-privacy .gg-gate__btn { margin-top: 6px; }

/* ---------------- home: verify a card ([gg_verify_box] in a row with el_class "gg-verify-row") ---------------- */
.vc_row.gg-verify-row { margin-top: 0 !important; margin-bottom: 0 !important; background: #faf8f2; border-top: 1px solid #efe8d6; border-bottom: 1px solid #efe8d6; }
.vc_row.gg-verify-row .vc_column-inner { padding-top: 0 !important; }
.vc_row.gg-verify-row .wpb_wrapper { margin: 0; }
.gg-verify { padding: 46px 0; }
.gg-verify__in { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 56px; align-items: center; max-width: 980px; margin: 0 auto; }
.gg-serial-fig { margin: 0; }
.gg-serial-fig img { display: block; width: 100%; height: auto; border-radius: 3.5% / 2.1%; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .10), 0 10px 26px rgba(0, 0, 0, .10); }
.gg-serial-fig figcaption { margin-top: 12px; font-size: 15px; line-height: 1.4; color: #595959; text-align: center; }
.gg-verify .gg-verify__title {
	margin: 0 0 10px !important;
	font-family: 'd77', sans-serif !important;
	font-size: clamp(32px, 2.8vw, 46px) !important;
	line-height: 1 !important;
	text-transform: uppercase;
	color: var(--gg-ink) !important;
}
.gg-verify .gg-verify__lead { margin: 0 0 18px !important; font-size: 18px; line-height: 1.5; color: #444; }
.gg-verify .gg-verify__form { display: flex; gap: 10px; max-width: 520px; margin: 0; }
.gg-verify .gg-verify__form input[type="text"] {
	flex: 1;
	min-width: 0;
	height: 56px;
	margin: 0;
	padding: 0 16px;
	border: 2px solid var(--gg-ink);
	border-radius: 8px;
	background: #fff;
	color: #111;
	font-family: 'D35', sans-serif;
	font-size: 19px;
	box-shadow: none;
}
.gg-verify .gg-verify__form input[type="text"]:focus { outline: 3px solid var(--gg-gold); outline-offset: 1px; }
.gg-verify .gg-verify__form button {
	flex: none;
	height: 56px;
	margin: 0;
	padding: 0 28px;
	border: 0;
	border-radius: 8px;
	background: var(--gg-ink);
	color: #fff;
	font-family: 'd77', sans-serif;
	font-size: 21px;
	letter-spacing: .03em;
	text-transform: uppercase;
	cursor: pointer;
}
.gg-verify .gg-verify__form button:hover, .gg-verify .gg-verify__form button:focus-visible { background: #000; color: var(--gg-gold); }
.gg-verify .gg-verify__form button:focus-visible { outline: 3px solid var(--gg-gold); outline-offset: 2px; }
.gg-vh { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
@media (max-width: 767.98px) {
	.gg-verify { padding: 34px 0 30px; }
	.gg-verify__in { grid-template-columns: 1fr; gap: 22px; }
	.gg-verify__body { order: -1; text-align: center; }
	.gg-verify .gg-verify__form { margin: 0 auto; }
	.gg-verify .gg-verify__form button { padding: 0 20px; }
	.gg-serial-fig { width: 100%; max-width: 240px; margin: 0 auto; }
}

/* ---------------- inner page header: the theme's .banner__section in the new look (includes/banner.php) ---------------- */
.banner__section {
	display: block !important;
	height: auto !important;
	padding: 44px 0 38px !important;
	background: linear-gradient(180deg, #ffffff 0%, #fbf7ee 62%, #f3ebda 100%) !important;
	box-shadow: none !important;
	border-bottom: 1px solid #ece3cc;
}
.banner__section .banner__title {
	margin: 0 !important;
	color: var(--gg-ink) !important;
	font-size: clamp(36px, 3.4vw, 58px) !important;
	line-height: 1 !important;
}
.banner__section .banner__title::after { content: ""; display: block; width: 64px; height: 5px; margin-top: 16px; border-radius: 3px; background: var(--gg-gold); }
.gg-banner__sub { margin: 14px 0 0 !important; max-width: 760px; font-family: 'D35', sans-serif; font-size: 19px; line-height: 1.45; color: #4a4a4a; }
@media (max-width: 767.98px) {
	.banner__section { padding: 28px 0 24px !important; }
	.banner__section .banner__title { font-size: 34px !important; }
	.banner__section .banner__title::after { width: 48px; height: 4px; margin-top: 12px; }
	.gg-banner__sub { font-size: 17px; }
}

/* ---------------- inner pages: building blocks (includes/pages.php) ---------------- */
.vc_row.gg-tab { margin-top: 0 !important; padding-top: 34px; padding-bottom: 6px; }
.vc_row.gg-tab:first-child { padding-top: 38px; }
.vc_row.gg-tab .wpb_wrapper > :last-child { margin-bottom: 0; }
.gg-tab .gg-lead, p.gg-lead { max-width: 780px; margin: 0 0 18px !important; font-size: 20px !important; line-height: 1.55 !important; color: #333; }
.gg-tab .gg-h2 { margin: 0 0 18px !important; font-family: 'd77', sans-serif !important; font-size: clamp(28px, 2.4vw, 40px) !important; line-height: 1.05 !important; text-transform: uppercase; color: var(--gg-ink) !important; }
.gg-tab p.gg-note { margin: 12px 0 0 !important; font-size: 15px; line-height: 1.5; color: #666; }
.gg-btns { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 0 !important; }
a.gg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 24px;
	border-radius: 8px;
	font-family: 'd77', sans-serif;
	font-size: 19px;
	letter-spacing: .03em;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: background-color .15s ease, color .15s ease;
}
a.gg-btn--ink { background: var(--gg-ink); color: #fff !important; }
a.gg-btn--ink:hover, a.gg-btn--ink:focus-visible { background: #000; color: var(--gg-gold) !important; }
a.gg-btn--line { box-shadow: inset 0 0 0 2px var(--gg-ink); color: var(--gg-ink) !important; background: transparent; }
a.gg-btn--line:hover, a.gg-btn--line:focus-visible { background: rgba(0, 0, 0, .05); }
a.gg-btn:focus-visible { outline: 3px solid var(--gg-ink); outline-offset: 3px; }

.gg-steps { display: grid; gap: 16px; margin: 0 !important; padding: 0 !important; list-style: none; }
.gg-step { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 18px; align-items: start; margin: 0 !important; padding: 22px 24px; border: 1px solid #ebe5d6; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
.gg-step--video { grid-template-columns: 52px minmax(0, 1fr) minmax(0, 330px); }
.gg-step__n { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--gg-gold); color: var(--gg-ink); font-family: 'd77', sans-serif; font-size: 24px; line-height: 1; }
.gg-step .gg-step__t { margin: 8px 0 8px !important; font-family: 'd77', sans-serif !important; font-size: 26px !important; line-height: 1.05 !important; text-transform: uppercase; color: var(--gg-ink) !important; }
.gg-step__body p { margin: 0 0 8px !important; font-size: 17px; line-height: 1.55; color: #333; }
.gg-step__body p:last-child { margin-bottom: 0 !important; }
.gg-step__media { align-self: center; }
.gg-steps--strip { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.gg-steps--strip .gg-step { grid-template-columns: 1fr; gap: 6px; padding: 20px; }
.gg-steps--strip .gg-step__t { font-size: 22px !important; margin-top: 10px !important; }
.gg-steps--strip .gg-step__body p { font-size: 16px; }
@media (max-width: 991.98px) {
	.gg-step--video { grid-template-columns: 52px minmax(0, 1fr); }
	.gg-step__media { grid-column: 2 / -1; max-width: 420px; }
	.gg-steps--strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
	.gg-step, .gg-step--video { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; padding: 18px 16px; }
	.gg-step__n { width: 38px; height: 38px; font-size: 20px; }
	.gg-step .gg-step__t { font-size: 22px !important; margin-top: 6px !important; }
	.gg-step__media { grid-column: 1 / -1; max-width: none; }
	.gg-steps--strip { grid-template-columns: 1fr; }
	.gg-steps--strip .gg-step { grid-template-columns: 40px minmax(0, 1fr); }
	.gg-steps--strip .gg-step__t { margin-top: 6px !important; }
}

.gg-video { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 12px; background: #111; text-decoration: none !important; }
.gg-video img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: .9; transition: opacity .2s ease, transform .3s ease; }
a.gg-video:hover img, a.gg-video:focus-visible img { opacity: 1; transform: scale(1.03); }
.gg-video__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -58%); line-height: 0; }
.gg-video__t { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 12px 10px; background: linear-gradient(transparent, rgba(0, 0, 0, .78)); color: #fff; font-size: 14px; line-height: 1.3; }
.gg-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
a.gg-video:focus-visible { outline: 3px solid var(--gg-ink); outline-offset: 3px; }

.gg-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0 0 6px; }
.gg-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gg-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gg-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; border: 1px solid #ebe5d6; border-radius: 14px; background: #fff; }
.gg-card__ico { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 12px; background: #faf3dc; color: #7a5d00; }
.gg-card .gg-card__t { margin: 6px 0 2px !important; font-family: 'd77', sans-serif !important; font-size: 24px !important; line-height: 1.05 !important; text-transform: uppercase; color: var(--gg-ink) !important; }
.gg-card__body, .gg-card__body p { margin: 0 !important; font-size: 17px; line-height: 1.55; color: #333; }
.gg-card__body p + p { margin-top: 8px !important; }
a.gg-card__link { margin-top: auto; padding-top: 6px; font-weight: 600; color: var(--gg-ink) !important; text-decoration: underline !important; text-decoration-color: var(--gg-gold) !important; text-decoration-thickness: 2px !important; text-underline-offset: 4px; }
@media (max-width: 991.98px) { .gg-cards--3, .gg-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .gg-cards, .gg-cards--2, .gg-cards--3, .gg-cards--4 { grid-template-columns: 1fr; } .gg-card { padding: 20px; } }

.gg-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gg-stat { padding: 24px 18px; border: 1px solid #efe8d6; border-radius: 14px; background: #faf8f2; text-align: center; }
.gg-stat__n { font-family: 'd77', sans-serif; font-size: clamp(40px, 3.6vw, 60px); line-height: 1; color: var(--gg-ink); }
.gg-stat__l { margin-top: 8px; font-size: 16px; line-height: 1.4; color: #555; }
@media (max-width: 767.98px) { .gg-stats { grid-template-columns: 1fr; gap: 12px; } .gg-stat { padding: 18px; } }

.gg-checklist { display: grid; gap: 12px; margin: 0 !important; padding: 22px 24px !important; list-style: none; border: 1px solid #ebe5d6; border-radius: 14px; background: #fff; }
.gg-checklist li { display: flex; gap: 12px; align-items: flex-start; margin: 0 !important; font-size: 17px; line-height: 1.5; color: #333; }
.gg-checklist svg { flex: none; margin-top: 2px; }

.gg-copy { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; padding: 8px 12px; border: 1px solid #d9d2bf; border-radius: 8px; background: #fff; color: var(--gg-ink); font: 600 14px/1 'D35', sans-serif; cursor: pointer; }
.gg-copy[hidden] { display: none; }
.gg-copy:hover { border-color: var(--gg-ink); }
.gg-copy.is-done { border-color: #2f7d32; color: #2f7d32; }
.gg-copy:focus-visible { outline: 3px solid var(--gg-gold); outline-offset: 2px; }

.vc_row.gg-cta-row { margin-top: 0 !important; margin-bottom: 0 !important; background: var(--gg-gold); box-shadow: 0 0 0 100vmax var(--gg-gold); clip-path: inset(0 -100vmax); }
.vc_row.gg-pr-sec.gg-first { padding-top: 40px !important; }
.gg-pr-sec.gg-tab h2 { margin-bottom: 16px !important; }
.gg-cta { padding: 38px 0; }
.gg-cta__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 28px; }
.gg-cta .gg-cta__t { margin: 0 !important; font-family: 'd77', sans-serif !important; font-size: clamp(30px, 2.6vw, 44px) !important; line-height: 1 !important; text-transform: uppercase; color: var(--gg-ink) !important; }
.gg-cta .gg-cta__p { margin: 8px 0 0 !important; font-size: 18px; line-height: 1.45; color: #2b2b2b; }
.gg-cta .gg-btns { margin: 0 !important; }
@media (max-width: 767.98px) { .gg-cta { padding: 30px 0; text-align: center; } .gg-cta__in { justify-content: center; } .gg-cta .gg-btns { justify-content: center; } }

.gg-wall-fig { margin: 0; }
.gg-wall-fig img { display: block; width: 100%; height: auto; }
.vc_row.gg-about-lead { display: flex; flex-wrap: wrap; align-items: center; }

/* Serial Lookup (row el_class "gg-lookup"): the lookup's own form and result, restyled only. */
.gg-lookup .gg-serial-fig { max-width: 280px; margin: 0 auto; }
.gg-lookup .gg-serial-fig img { display: block; width: 100%; height: auto; border-radius: 3.5% / 2.1%; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .10), 0 10px 26px rgba(0, 0, 0, .10); }
.gg-lookup .gg-serial-fig figcaption { margin-top: 12px; font-size: 15px; line-height: 1.4; color: #595959; text-align: center; }
/* the lookup prints its own heading and hint; the page header and the field already say both */
.gg-lookup__row .wpb_wrapper > h3, .gg-lookup__row .wpb_wrapper > small { display: none !important; }
.gg-lookup #sports_card_search_form { display: flex; gap: 10px; max-width: 560px; margin: 0; }
.gg-lookup #sports_card_search_form .auth_input {
	flex: 1;
	min-width: 0;
	height: 58px !important;
	margin: 0 !important;
	padding: 0 16px !important;
	border: 2px solid var(--gg-ink) !important;
	border-radius: 8px !important;
	background: #fff !important;
	color: #111 !important;
	font-family: 'D35', sans-serif !important;
	font-size: 20px !important;
}
.gg-lookup #sports_card_search_form input[type="submit"] {
	flex: none;
	height: 58px !important;
	margin: 0 !important;
	padding: 0 26px !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: var(--gg-ink) !important;
	color: #fff !important;
	font-family: 'd77', sans-serif !important;
	font-size: 21px !important;
	letter-spacing: .03em;
	text-transform: uppercase;
	cursor: pointer;
}
.gg-lookup #sports_card_search_form input[type="submit"]:disabled { opacity: .5; cursor: default; }
.gg-lookup #sports_card_search_form input[type="submit"]:not(:disabled):hover { background: #000 !important; color: var(--gg-gold) !important; }
.gg-lookup #card_output table { overflow: hidden; border-radius: 12px; }
.gg-lookup .gg-copy--link { margin-top: 16px; }
@media (max-width: 767.98px) {
	.gg-lookup #sports_card_search_form input[type="submit"] { padding: 0 18px !important; }
	.gg-lookup .gg-serial-fig { max-width: 240px; margin-top: 18px; }
}

/* ---------------- brush-over fixes (10-22) ---------------- */
/* Home "About us" cards: their headings were white on the white cards, so they never showed (also live). */
.h__about .about__col h3 { color: var(--gg-ink) !important; }
/* The old in-page tab strip (row "section__title") repeats the page title under the new header when it only
   holds the page itself (e.g. Services & Pricing). A strip with several tabs (real sub-navigation) stays. */
.entry-content .vc_row.section__title:has(.nav-list > li:only-child) { display: none !important; }
/* Small print raised to at least 13px for older eyes: the submission form's labels and hints, the order
   lookup's labels (the chooser's "Choose your speed" is set where it is defined). */
.ggf .fl, .ggf .fl .o, .ggf span.o { font-size: max(13px, .74rem) !important; }
label[for^="gg-os-"] { font-size: max(13px, .8rem) !important; }
/* 404 page (the theme's 404 template; includes/banner.php swaps its one link for these buttons) */
.error-404 .page-title { font-family: 'd77', sans-serif !important; color: var(--gg-ink) !important; font-size: clamp(34px, 3.4vw, 54px) !important; line-height: 1.05 !important; }
.error-404 .page-header p { font-size: 18px; color: #444; }
.error-404 .gg-btns { justify-content: center; margin-top: 18px !important; }
