/* nftnow.com cookie consent banner, preferences dialog and policy page tables.
   Markup: template-parts/cookie-consent.php. Behaviour: assets/build/js/cookie-consent.js. */

.nftnow-cc-banner[hidden],
.nftnow-cc-modal[hidden],
.nftnow-cc-category__gpc[hidden] {
	display: none !important;
}

/* ---------------------------------------------------------------- banner */
.nftnow-cc-banner {
	position: fixed;
	left: 8px;
	right: 8px;
	bottom: 8px;
	z-index: 99990;
	background: #fff;
	color: #111;
	border: 1px solid #000;
	border-radius: 16px;
	box-shadow: 0 0 25px rgba(0, 0, 0, 0.3);
	font-size: 14px;
	line-height: 1.5;
	transform: translateY(120%);
	transition: transform 0.3s ease-in-out;
}

.nftnow-cc-banner.is-visible {
	transform: translateY(0);
}

.nftnow-cc-banner__inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	padding: 16px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.nftnow-cc-banner__text {
	flex: 1 1 auto;
	padding-right: 36px;
}

.nftnow-cc-banner__title {
	margin: 0 0 4px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
}

.nftnow-cc-banner__copy {
	margin: 0;
	font-size: 14px;
}

.nftnow-cc-banner__copy a,
.nftnow-cc-modal__note a {
	color: inherit;
	text-decoration: underline;
}

.nftnow-cc-banner__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.nftnow-cc-banner__actions .nftnow-cc-btn--manage {
	grid-column: 1 / -1;
	order: 3;
}

.nftnow-cc-banner__close,
.nftnow-cc-modal__close {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #666;
	font-size: 26px;
	line-height: 36px;
	text-align: center;
	cursor: pointer;
}

.nftnow-cc-banner__close:hover,
.nftnow-cc-modal__close:hover {
	color: #000;
}

@media (min-width: 768px) {
	.nftnow-cc-banner {
		left: 0;
		right: 0;
		bottom: 0;
		border-width: 2px 0 0;
		border-radius: 0;
		box-shadow: 0 -5px 25px rgba(0, 0, 0, 0.1);
	}
}

@media (min-width: 1024px) {
	.nftnow-cc-banner__inner {
		flex-direction: row;
		align-items: center;
		gap: 24px;
	}

	.nftnow-cc-banner__actions {
		display: flex;
		flex-shrink: 0;
	}

	.nftnow-cc-banner__actions .nftnow-cc-btn--manage {
		order: 0;
	}
}

/* -------------------------------------------------------------- buttons */
.nftnow-cc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 16px;
	margin: 0;
	border: 1px solid #000;
	border-radius: 4px;
	background: #000;
	color: #fff;
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.nftnow-cc-btn:hover {
	opacity: 0.85;
}

.nftnow-cc-btn:focus-visible,
.nftnow-cc-switch:focus-visible,
.nftnow-cc-banner__close:focus-visible,
.nftnow-cc-modal__close:focus-visible {
	outline: 3px solid rgba(0, 0, 0, 0.35);
	outline-offset: 2px;
}

.nftnow-cc-btn--outline {
	background: #fff;
	color: #000;
}

/* --------------------------------------------------------------- modal */
.nftnow-cc-modal {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 99995;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	background: rgba(0, 0, 0, 0.55);
}

.nftnow-cc-modal-open {
	overflow: hidden;
}

.nftnow-cc-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 640px;
	max-height: 85vh;
	overflow-y: auto;
	padding: 24px;
	border-radius: 12px;
	background: #fff;
	color: #111;
	font-size: 14px;
	line-height: 1.5;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.nftnow-cc-modal__title {
	margin: 0 32px 8px 0;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
}

.nftnow-cc-modal__desc {
	margin: 0 0 8px;
	color: #444;
}

.nftnow-cc-category {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 16px 0;
	border-top: 1px solid #e5e5e5;
}

.nftnow-cc-category__body {
	flex: 1 1 auto;
}

.nftnow-cc-category__title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
}

.nftnow-cc-category__desc {
	margin: 4px 0 0;
	color: #444;
}

.nftnow-cc-category__examples,
.nftnow-cc-category__gpc {
	margin: 4px 0 0;
	font-size: 12px;
	color: #777;
}

.nftnow-cc-category__always {
	flex-shrink: 0;
	padding-top: 2px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #777;
}

/* toggle switch */
.nftnow-cc-switch {
	position: relative;
	flex-shrink: 0;
	width: 44px;
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #ccc;
	cursor: pointer;
	transition: background 0.2s ease;
}

.nftnow-cc-switch[aria-checked="true"] {
	background: #000;
}

.nftnow-cc-switch[disabled] {
	opacity: 0.5;
	cursor: not-allowed;
}

.nftnow-cc-switch__knob {
	position: absolute;
	top: 2px;
	left: 2px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
	transition: transform 0.2s ease;
}

.nftnow-cc-switch[aria-checked="true"] .nftnow-cc-switch__knob {
	transform: translateX(20px);
}

.nftnow-cc-modal__footer {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 16px;
	border-top: 1px solid #e5e5e5;
}

.nftnow-cc-modal__footer-group {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

@media (min-width: 640px) {
	.nftnow-cc-modal__footer {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.nftnow-cc-modal__footer-group {
		display: flex;
	}
}

.nftnow-cc-modal__note {
	margin: 12px 0 0;
	font-size: 12px;
	color: #777;
}

/* ------------------------------------------------------- policy page */
.nftnow-cookie-policy .nftnow-cc-table-wrap {
	overflow-x: auto;
	margin: 0 0 1.5em;
}

.nftnow-cookie-policy table.nftnow-cc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.4;
}

.nftnow-cookie-policy table.nftnow-cc-table th,
.nftnow-cookie-policy table.nftnow-cc-table td {
	padding: 8px 10px;
	border-bottom: 1px solid #ddd;
	text-align: left;
	vertical-align: top;
}

.nftnow-cookie-policy table.nftnow-cc-table th {
	font-weight: 700;
	border-bottom-width: 2px;
}

.nftnow-cookie-policy table.nftnow-cc-table code {
	font-size: 13px;
	white-space: nowrap;
}

.nftnow-cookie-policy .nftnow-cc-btn {
	margin: 0 0 1.5em;
}

/* ------------------------------------------------------- footer nav */
/* The footer links were moved out of the logo/newsletter row (footer.php)
   into their own row above the copyright so the newsletter form keeps its
   width. These rules live here rather than in the Sass sources because the
   theme's webpack build no longer runs on current Node; nothing to rebuild. */
@media print, screen and (min-width: 64em) {
	.footer__menu {
		justify-content: space-between;
	}
}

/* Nav links (left) and social icons (right) share one row under the rule;
   the copyright sits on its own row below. */
.footer__legal-row {
	align-items: center;
	margin: 0 0 1.5rem;
}

.footer__legal-nav {
	margin: 0;
}

.footer__legal-row .footer__social {
	padding: 0;
}

@media print, screen and (min-width: 64em) {
	/* Plain inline icons, right-aligned: the theme's SVGs have no intrinsic
	   size and collapse to 0px as flex or inline-block items, so the social
	   cell keeps normal inline flow; the grid row centres it beside the nav. */
	.footer__legal-row .footer__social {
		text-align: right;
		line-height: 0;
	}

	.footer__legal-row .footer__social a {
		margin: 0 0 0 1rem;
	}

	.footer__legal-row .footer__social a img {
		vertical-align: middle;
	}
}

@media screen and (max-width: 63.9375em) {
	.footer__legal-row .footer__social {
		margin-top: 1rem;
	}
}

/* The theme's header nav rules right-align every level of this markup
   (.navbar, .container, .navbar-collapse, .navbar-nav); reset them all. */
.footer__legal-nav .nav .navbar,
.footer__legal-nav .nav .navbar .container,
.footer__legal-nav .nav .navbar-collapse,
.footer__legal-nav .nav .navbar-nav {
	display: flex;
	justify-content: flex-start;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.footer__legal-nav .nav .navbar-nav {
	flex-wrap: wrap;
	gap: 0.75rem 3rem;
	list-style: none;
}

.footer__legal-nav .nav .nav-item {
	margin: 0;
	padding: 0;
}

.footer__legal-nav .nav .nav-link {
	white-space: nowrap;
}

@media screen and (max-width: 63.9375em) {
	.footer__legal-nav .nav .navbar .container,
	.footer__legal-nav .nav .navbar-collapse,
	.footer__legal-nav .nav .navbar-nav {
		justify-content: center;
	}

	.footer__legal-nav .nav .navbar-nav {
		gap: 0.5rem 2rem;
	}

	.footer__legal-nav .nav .nav-link {
		font-size: 1.8rem;
		padding: 0;
	}
}
