/* Singing Whale Consent Gate — banner
   Deliberately minimal so it inherits the host theme's typography. */

.sws-cg-banner {
	position: fixed;
	left: 0;
	right: 0;
	z-index: 999999;
	background: rgba(17, 17, 17, 0.96);
	color: #fff;
	box-shadow: 0 0 24px rgba(0, 0, 0, 0.35);
	font-family: inherit;
	font-size: 14px;
	line-height: 1.5;
}

.sws-cg-banner[hidden] {
	display: none;
}

.sws-cg-bottom {
	bottom: 0;
}

.sws-cg-top {
	top: 0;
}

.sws-cg-inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 16px 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	flex-wrap: wrap;
}

.sws-cg-msg {
	margin: 0;
	flex: 1 1 340px;
}

.sws-cg-policy {
	color: var(--sws-cg-accent, #BFAC84);
	text-decoration: underline;
	margin-left: 4px;
}

.sws-cg-actions {
	display: flex;
	gap: 10px;
	flex: 0 0 auto;
}

.sws-cg-btn {
	cursor: pointer;
	border: 1px solid var(--sws-cg-accent, #BFAC84);
	background: transparent;
	color: #fff;
	padding: 9px 18px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	border-radius: 3px;
	transition: background 0.2s ease, color 0.2s ease;
}

.sws-cg-accept {
	background: var(--sws-cg-accent, #BFAC84);
	color: #111;
}

.sws-cg-btn:hover,
.sws-cg-btn:focus-visible {
	background: var(--sws-cg-accent, #BFAC84);
	color: #111;
	outline: none;
}

@media (max-width: 600px) {
	.sws-cg-inner {
		padding: 14px;
	}
	.sws-cg-actions {
		width: 100%;
		justify-content: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sws-cg-btn {
		transition: none;
	}
}

/* ------------------------------------------------------------------ *
 *  0.3.3 design options: accent edge border, content alignment, and
 *  the persistent "manage cookies" corner tab.
 * ------------------------------------------------------------------ */

/* Accent edge border, on the edge facing the page content. */
.sws-cg-banner.sws-cg-border.sws-cg-bottom {
	border-top: 3px solid var(--sws-cg-accent, #BFAC84);
}
.sws-cg-banner.sws-cg-border.sws-cg-top {
	border-bottom: 3px solid var(--sws-cg-accent, #BFAC84);
}

/* Content alignment. Center is the original layout. */
.sws-cg-inner.sws-cg-align-center {
	padding-left: 20px;
	padding-right: 20px;
}
.sws-cg-inner.sws-cg-align-left,
.sws-cg-inner.sws-cg-align-right {
	max-width: none;
	padding-left: 20px;
	padding-right: 20px;
}
.sws-cg-inner.sws-cg-align-left {
	justify-content: flex-start;
}
.sws-cg-inner.sws-cg-align-right {
	justify-content: flex-end;
}
.sws-cg-inner.sws-cg-align-left .sws-cg-msg,
.sws-cg-inner.sws-cg-align-right .sws-cg-msg {
	flex: 0 1 auto; /* hug the content instead of stretching, so the group really sits at the edge */
}
.sws-cg-inner.sws-cg-align-right .sws-cg-msg {
	text-align: right;
}

/* Persistent "manage cookies" tab: appears after a choice, re-opens the
   banner. Genie entrance ported from the bellyup.com reference banner. */
@keyframes sws-cg-genie-in {
	0%   { transform: scaleY(0) skewX(18deg); opacity: 0; }
	40%  { transform: scaleY(0.7) skewX(-8deg); opacity: 0.7; }
	75%  { transform: scaleY(1.08) skewX(4deg); opacity: 1; }
	90%  { transform: scaleY(0.96) skewX(-2deg); }
	100% { transform: scaleY(1) skewX(0); opacity: 1; }
}
.sws-cg-tab {
	position: fixed;
	z-index: 999998; /* just under the banner */
	background: rgba(17, 17, 17, 0.96);
	border: 2px solid var(--sws-cg-accent, #BFAC84);
	color: var(--sws-cg-accent, #BFAC84);
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.4;
	padding: 6px 14px;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}
.sws-cg-tab[hidden] {
	display: none;
}
.sws-cg-tab:hover,
.sws-cg-tab:focus-visible {
	background: var(--sws-cg-accent, #BFAC84);
	color: #111;
	outline: none;
}
.sws-cg-tab-bottom-right { bottom: 0; right: 24px; border-bottom: none; padding-bottom: 11px; transform-origin: bottom right; }
.sws-cg-tab-bottom-left  { bottom: 0; left: 24px;  border-bottom: none; padding-bottom: 11px; transform-origin: bottom left; }
.sws-cg-tab-top-right    { top: 0;    right: 24px; border-top: none;    padding-top: 11px;    transform-origin: top right; }
.sws-cg-tab-top-left     { top: 0;    left: 24px;  border-top: none;    padding-top: 11px;    transform-origin: top left; }
.sws-cg-tab.sws-cg-genie {
	animation: sws-cg-genie-in 0.55s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
}
@media (prefers-reduced-motion: reduce) {
	.sws-cg-tab {
		transition: none;
	}
	.sws-cg-tab.sws-cg-genie {
		animation: none;
	}
}
