/* EVERBRITE shared site layer: shell, header, footer, buttons, entry links.
   Owned by the shared layer; page templates must not redeclare these classes. */

.zg-shell{width:min(100% - 64px,var(--zg-shell));margin-inline:auto}

.zg-skip{
	position:absolute;
	left:-9999px;
	top:10px;
	z-index:60;
	padding:11px 16px;
	border-radius:var(--zg-radius-control);
	background:var(--zg-graphite);
	color:#fff;
	font-size:.9rem;
	font-weight:650;
	text-decoration:none;
}

.zg-skip:focus{left:16px}

/* ---------- Header ---------- */

.zg-header{
	position:sticky;
	top:0;
	z-index:40;
	background:rgba(247,246,242,.94);
	backdrop-filter:blur(10px);
	border-bottom:1px solid var(--zg-border);
}

.zg-header__inner{
	display:flex;
	min-height:80px;
	align-items:center;
	justify-content:space-between;
	gap:32px;
}

.zg-brand{
	display:inline-flex;
	flex-direction:column;
	gap:2px;
	text-decoration:none;
}

.zg-brand__name{
	color:var(--zg-graphite);
	font-size:1.16rem;
	font-weight:750;
	letter-spacing:.02em;
	line-height:1.2;
	text-transform:uppercase;
}

.zg-brand__line{
	color:var(--zg-muted);
	font-size:.7rem;
	font-weight:600;
	letter-spacing:.09em;
	line-height:1.3;
	text-transform:uppercase;
}

.zg-nav{
	display:flex;
	align-items:center;
	gap:28px;
}

.zg-nav__list{
	display:flex;
	align-items:center;
	gap:26px;
	margin:0;
	padding:0;
	list-style:none;
}

.zg-nav__list a{
	display:inline-block;
	padding-block:6px;
	border-bottom:2px solid transparent;
	color:#3d4b51;
	font-size:.93rem;
	font-weight:650;
	text-decoration:none;
	transition:color 150ms ease,border-color 150ms ease;
}

.zg-nav__list a:hover{color:var(--zg-teal);border-bottom-color:var(--zg-amber)}
.zg-nav__list a[aria-current="page"]{color:var(--zg-graphite);border-bottom-color:var(--zg-teal)}

/* ---------- Buttons ---------- */

.zg-btn{
	display:inline-flex;
	min-height:46px;
	align-items:center;
	justify-content:center;
	gap:10px;
	padding:12px 20px;
	border:1px solid transparent;
	border-radius:var(--zg-radius-control);
	font:inherit;
	font-size:.94rem;
	font-weight:700;
	line-height:1.2;
	text-decoration:none;
	cursor:pointer;
	transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,transform 160ms ease;
}

.zg-btn--primary{background:var(--zg-teal);color:#fff}
.zg-btn--primary:hover{background:var(--zg-teal-dark);transform:translateY(-1px)}

.zg-btn--secondary{border-color:#b7cbcd;background:#fff;color:var(--zg-teal)}
.zg-btn--secondary:hover{border-color:var(--zg-teal);color:var(--zg-graphite);transform:translateY(-1px)}

.zg-btn--light{background:#fff;color:var(--zg-graphite)}
.zg-btn--light:hover{background:var(--zg-mist);transform:translateY(-1px)}

.zg-btn--wide{width:100%}

.zg-link{
	display:inline-flex;
	align-items:center;
	gap:8px;
	color:var(--zg-teal);
	font-weight:650;
	text-decoration:underline;
	text-decoration-color:rgba(23,107,115,.35);
	text-underline-offset:5px;
}

.zg-link:hover{text-decoration-color:currentColor}
.zg-link--light{color:#fff;text-decoration-color:rgba(255,255,255,.45)}

.zg-kicker{
	margin:0 0 18px;
	color:var(--zg-teal);
	font-size:.76rem;
	font-weight:700;
	letter-spacing:.13em;
	line-height:1.4;
	text-transform:uppercase;
}

.zg-kicker--light{color:#b8d6d8}

/* ---------- Footer ---------- */

.zg-footer{
	margin-top:0;
	background:var(--zg-graphite);
	color:#b9c3c6;
}

.zg-footer__grid{
	display:grid;
	grid-template-columns:1.4fr 1fr 1.1fr 1.1fr 1.2fr;
	gap:36px;
	padding-block:68px 52px;
}

.zg-footer__title{
	margin:0 0 16px;
	color:#fff;
	font-size:.76rem;
	font-weight:700;
	letter-spacing:.12em;
	text-transform:uppercase;
}

.zg-footer__brand{
	display:inline-block;
	margin-bottom:14px;
	color:#fff;
	font-size:1.05rem;
	font-weight:750;
	letter-spacing:.02em;
	text-decoration:none;
	text-transform:uppercase;
}

.zg-footer p{margin:0 0 12px;max-width:38ch;font-size:.9rem;line-height:1.65}
.zg-footer a{color:#e2e8ea;text-decoration:none}
.zg-footer a:hover{color:#fff;text-decoration:underline}

.zg-footer__list{margin:0;padding:0;list-style:none;display:grid;gap:11px;font-size:.9rem}

.zg-footer__contact{margin:0;padding:0;list-style:none;display:grid;gap:14px;font-size:.9rem}
.zg-footer__contact dt{
	margin-bottom:3px;
	color:#8fa0a5;
	font-size:.68rem;
	font-weight:700;
	letter-spacing:.1em;
	text-transform:uppercase;
}
.zg-footer__contact dd{margin:0;line-height:1.55}

.zg-footer__bar{
	display:flex;
	flex-wrap:wrap;
	gap:14px 24px;
	align-items:center;
	justify-content:space-between;
	padding-block:22px;
	border-top:1px solid rgba(255,255,255,.14);
	color:#8fa0a5;
	font-size:.78rem;
}

.zg-footer__bar p{margin:0;max-width:none;font-size:.78rem}

@media (max-width:1000px){
	.zg-footer__grid{grid-template-columns:1fr 1fr;gap:36px;padding-block:56px 44px}
}

@media (max-width:900px){
	.zg-header__inner{flex-direction:column;align-items:flex-start;gap:16px;padding-block:16px}
	.zg-nav{flex-wrap:wrap;gap:16px;width:100%}
	.zg-nav__list{flex-wrap:wrap;gap:14px 20px}
}

@media (max-width:600px){
	.zg-shell{width:calc(100% - 40px)}
	.zg-footer__grid{grid-template-columns:1fr}
	.zg-brand__name{font-size:1.05rem}
	.zg-nav__cta{width:100%}
}

@media (prefers-reduced-motion:reduce){
	.zg-btn,.zg-nav__list a{transition:none}
	.zg-btn:hover{transform:none}
}

/* ---------- Books mega menu ---------- */

.zg-nav__list > li{position:relative}

.zg-nav__list .zg-nav__parent{
	display:inline-flex;
	align-items:center;
	gap:8px;
}

.zg-nav__list .zg-nav__parent::after{
	display:block;
	width:6px;
	height:6px;
	margin-top:-3px;
	border-right:1.5px solid currentColor;
	border-bottom:1.5px solid currentColor;
	transform:rotate(45deg);
	content:"";
}

.zg-mega{
	position:absolute;
	top:calc(100% + 10px);
	right:0;
	z-index:50;
	width:max-content;
	max-width:min(700px,calc(100vw - 48px));
	opacity:0;
	pointer-events:none;
	transform:translateY(4px);
	/* Closing waits a moment so a brief slip off the menu does not hide it. */
	transition:opacity 150ms ease 120ms,transform 150ms ease 120ms;
}

/* Invisible bridge so the pointer can cross the gap below the menu item. */
.zg-mega::before{
	position:absolute;
	top:-20px;
	right:0;
	left:0;
	height:20px;
	content:"";
}

.zg-nav__item--mega:hover .zg-mega,
.zg-nav__item--mega:focus-within .zg-mega{
	opacity:1;
	pointer-events:auto;
	transform:none;
	transition-delay:0s;
}

.zg-mega__inner{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(210px,max-content));
	gap:26px;
	padding:24px;
	border:1px solid var(--zg-border);
	border-radius:12px;
	background:#fff;
	box-shadow:var(--zg-shadow);
}

.zg-mega__title{
	margin:0 0 12px;
	padding-bottom:10px;
	border-bottom:1px solid var(--zg-border);
	color:var(--zg-teal);
	font-size:.68rem;
	font-weight:700;
	letter-spacing:.12em;
	text-transform:uppercase;
}

.zg-mega__list{
	display:grid;
	gap:2px;
	margin:0;
	padding:0;
	list-style:none;
}

.zg-nav__list .zg-mega__list a{
	display:block;
	padding:7px 9px;
	border-bottom:0;
	border-radius:6px;
	color:var(--zg-copy);
	font-size:.88rem;
	font-weight:600;
	text-decoration:none;
}

.zg-nav__list .zg-mega__list a:hover{
	border-bottom-color:transparent;
	background:var(--zg-mist);
	color:var(--zg-teal);
}

.zg-nav__list .zg-mega__list a[aria-current="page"]{
	background:var(--zg-mist);
	color:var(--zg-graphite);
}

@media (max-width:1180px){
	.zg-mega{max-width:min(620px,calc(100vw - 40px))}
	.zg-mega__inner{grid-template-columns:repeat(auto-fit,minmax(190px,max-content));gap:20px}
}

@media (max-width:900px){
	.zg-nav__item--mega{display:flex;flex-direction:column}
	/* Below this width the panels are closed and the footer carries the full
	   link directory, so the mobile header stays short. */
	.zg-mega{display:none}
	.zg-nav__list .zg-nav__parent::after{display:none}
	.zg-mega::before{display:none}
	.zg-mega__inner{
		grid-template-columns:1fr;
		gap:18px;
		padding:16px;
		border-radius:var(--zg-radius-card);
		background:#fff;
		box-shadow:none;
	}
	.zg-mega__list{grid-template-columns:1fr 1fr;gap:2px 8px}
	.zg-nav__list .zg-mega__list a{padding:6px 8px;font-size:.84rem}
}

@media (prefers-reduced-motion:reduce){
	.zg-mega{transition:none}
}