/**
 * FlexiBlog admin promotional banner.
 *
 * Mirrors the BlockWPThemes portal design language: cream editorial card,
 * ink typography, yellow signature accent, pill buttons, 22px radius.
 *
 * Self-contained: fonts are the theme's own bundled files and all artwork is
 * drawn in CSS, so the banner renders identically offline.
 */

@font-face {
	font-family: "FlexiBlog Promo Manrope";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url( "../assets/fonts/manrope_normal_500.woff2" ) format( "woff2" );
}

@font-face {
	font-family: "FlexiBlog Promo Manrope";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url( "../assets/fonts/manrope_normal_600.woff2" ) format( "woff2" );
}

@font-face {
	font-family: "FlexiBlog Promo Manrope";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url( "../assets/fonts/manrope_normal_700.woff2" ) format( "woff2" );
}

.flexiblog-promo.notice {
	--fb-bg: #f7f4ed;
	--fb-sand: #ece6d8;
	--fb-line: #e7e2d6;
	--fb-ink: #0a0a0a;
	--fb-char: #1d1d1d;
	--fb-muted: #6b6b6b;
	--fb-accent: #f5c747;
	--fb-orange: #f15a22;
	--fb-green: #2c5d4a;
	/* Manrope is the portal's own body face, bundled with this theme. */
	--fb-display: "FlexiBlog Promo Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
	--fb-body: "FlexiBlog Promo Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;

	position: relative;
	overflow: hidden;
	box-sizing: border-box;
	margin: 16px 20px 20px 2px;
	padding: 0;
	border: 1px solid var( --fb-line );
	border-left: 1px solid var( --fb-line );
	border-radius: 22px;
	background: var( --fb-bg );
	box-shadow: 0 12px 32px -10px rgba( 10, 10, 10, 0.18 );
	color: var( --fb-ink );
	font-family: var( --fb-body );
	opacity: 1;
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.flexiblog-promo * {
	box-sizing: border-box;
}

/* Neutralise core `.notice p` / `.notice ul` spacing before styling. */
.flexiblog-promo p,
.flexiblog-promo ul,
.flexiblog-promo li,
.flexiblog-promo h2 {
	margin: 0;
	padding: 0;
	font-size: inherit;
	line-height: inherit;
}

.flexiblog-promo.is-dismissing {
	opacity: 0;
	transform: translateY( -8px );
}

.flexiblog-promo__inner {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 0;
}

/* Visual panel ------------------------------------------------------------*/

.flexiblog-promo__vis {
	display: flex;
	position: relative;
	flex: 0 0 232px;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 34px 24px;
	background: var( --fb-green );
}

/* Faint grid, drawn with gradients so nothing is fetched. */
.flexiblog-promo__vis::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient( rgba( 255, 255, 255, 0.06 ) 1px, transparent 1px ),
		linear-gradient( 90deg, rgba( 255, 255, 255, 0.06 ) 1px, transparent 1px );
	background-size: 26px 26px;
	pointer-events: none;
}

.flexiblog-promo__stack {
	display: flex;
	position: relative;
	align-items: center;
	justify-content: center;
	width: 132px;
	height: 116px;
}

.flexiblog-promo__card {
	display: block;
	position: absolute;
	width: 70px;
	height: 92px;
	border: 1px solid rgba( 255, 255, 255, 0.22 );
	border-radius: 12px;
	background: rgba( 255, 255, 255, 0.1 );
}

.flexiblog-promo__card:nth-child( 1 ) {
	transform: translateX( -30px ) rotate( -9deg );
}

.flexiblog-promo__card:nth-child( 2 ) {
	transform: translateX( -14px ) rotate( -4deg );
}

.flexiblog-promo__card:nth-child( 3 ) {
	display: flex;
	align-items: center;
	justify-content: center;
	border-color: var( --fb-accent );
	background: var( --fb-accent );
	box-shadow: 0 14px 28px -12px rgba( 10, 10, 10, 0.6 );
	transform: translateX( 14px ) rotate( 6deg );
}

.flexiblog-promo__card strong {
	color: var( --fb-ink );
	font-family: var( --fb-display );
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.flexiblog-promo__tag {
	display: flex;
	position: absolute;
	right: 18px;
	bottom: 18px;
	align-items: center;
	gap: 9px;
	padding: 9px 14px;
	border-radius: 14px;
	background: rgba( 10, 10, 10, 0.85 );
	color: #fff;
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1;
}

.flexiblog-promo__pulse {
	display: block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var( --fb-accent );
}

/* Content -----------------------------------------------------------------*/

.flexiblog-promo__content {
	flex: 1 1 380px;
	min-width: 280px;
	padding: 30px 60px 28px 34px;
}

.flexiblog-promo .flexiblog-promo__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 14px;
	color: var( --fb-muted );
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1;
	text-transform: uppercase;
}

.flexiblog-promo .flexiblog-promo__eyebrow::before {
	content: "";
	width: 28px;
	height: 1px;
	background: var( --fb-ink );
}

.flexiblog-promo .flexiblog-promo__title {
	margin: 0 0 10px;
	padding: 0;
	color: var( --fb-ink );
	font-family: var( --fb-display );
	font-size: 30px;
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.08;
}

.flexiblog-promo .flexiblog-promo__title em {
	color: var( --fb-orange );
	font-style: italic;
	font-weight: 500;
}

.flexiblog-promo .flexiblog-promo__text {
	max-width: 560px;
	margin: 0 0 16px;
	color: var( --fb-char );
	font-size: 14px;
	line-height: 1.65;
}

.flexiblog-promo .flexiblog-promo__price {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 18px;
	padding: 7px 16px;
	border-radius: 99px;
	background: var( --fb-accent );
	color: var( --fb-ink );
	font-family: var( --fb-display );
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.3;
}

.flexiblog-promo .flexiblog-promo__price del {
	color: rgba( 10, 10, 10, 0.55 );
	font-size: 0.75em;
	font-weight: 500;
	text-decoration: line-through;
}

.flexiblog-promo .flexiblog-promo__price span {
	font-family: var( --fb-body );
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.flexiblog-promo .flexiblog-promo__features {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}

.flexiblog-promo .flexiblog-promo__features li {
	position: relative;
	margin: 0;
	padding: 7px 16px 7px 30px;
	border: 1.5px solid var( --fb-line );
	border-radius: 99px;
	background: transparent;
	color: var( --fb-char );
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1.4;
}

/* Checkmark drawn in CSS — no icon font, no image file. */
.flexiblog-promo .flexiblog-promo__features li::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 14px;
	width: 4px;
	height: 8px;
	border: solid var( --fb-orange );
	border-width: 0 1.5px 1.5px 0;
	transform: translateY( -62% ) rotate( 45deg );
}

/* Actions -----------------------------------------------------------------*/

.flexiblog-promo .flexiblog-promo__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
}

/* Explicit states so wp-admin's global link styles cannot repaint the CTAs. */
.flexiblog-promo .flexiblog-promo__btn,
.flexiblog-promo .flexiblog-promo__btn:link,
.flexiblog-promo .flexiblog-promo__btn:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 13px 26px;
	border: 1.5px solid var( --fb-ink );
	border-radius: 99px;
	background: var( --fb-ink );
	box-shadow: none;
	color: #fff;
	font-family: var( --fb-body );
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.flexiblog-promo .flexiblog-promo__btn:hover,
.flexiblog-promo .flexiblog-promo__btn:focus,
.flexiblog-promo .flexiblog-promo__btn:active {
	border-color: var( --fb-orange );
	background: var( --fb-orange );
	color: #fff;
	text-decoration: none;
	transform: translateY( -2px );
}

.flexiblog-promo .flexiblog-promo__btn--ghost,
.flexiblog-promo .flexiblog-promo__btn--ghost:link,
.flexiblog-promo .flexiblog-promo__btn--ghost:visited {
	border-color: var( --fb-ink );
	background: transparent;
	color: var( --fb-ink );
}

.flexiblog-promo .flexiblog-promo__btn--ghost:hover,
.flexiblog-promo .flexiblog-promo__btn--ghost:focus,
.flexiblog-promo .flexiblog-promo__btn--ghost:active {
	border-color: var( --fb-ink );
	background: var( --fb-ink );
	color: #fff;
}

/* Close -------------------------------------------------------------------*/

.flexiblog-promo__close {
	display: flex;
	position: absolute;
	top: 16px;
	right: 16px;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1.5px solid var( --fb-line );
	border-radius: 50%;
	background: #fff;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.flexiblog-promo__close:hover,
.flexiblog-promo__close:focus {
	border-color: var( --fb-ink );
	background: var( --fb-ink );
}

/* The X is two rotated bars, so the banner needs no image assets. */
.flexiblog-promo__x,
.flexiblog-promo__x::before {
	display: block;
	width: 12px;
	height: 1.5px;
	border-radius: 2px;
	background: var( --fb-ink );
	transition: background-color 0.2s ease;
}

.flexiblog-promo__x {
	transform: rotate( 45deg );
}

.flexiblog-promo__x::before {
	content: "";
	transform: rotate( 90deg );
}

.flexiblog-promo__close:hover .flexiblog-promo__x,
.flexiblog-promo__close:hover .flexiblog-promo__x::before,
.flexiblog-promo__close:focus .flexiblog-promo__x,
.flexiblog-promo__close:focus .flexiblog-promo__x::before {
	background: #fff;
}

.flexiblog-promo :focus-visible {
	outline: 2px solid var( --fb-orange );
	outline-offset: 2px;
}

/* RTL ---------------------------------------------------------------------*/

.rtl .flexiblog-promo__content {
	padding: 30px 34px 28px 60px;
}

.rtl .flexiblog-promo__close {
	right: auto;
	left: 16px;
}

.rtl .flexiblog-promo__features li {
	padding: 7px 30px 7px 16px;
}

.rtl .flexiblog-promo__features li::before {
	left: auto;
	right: 14px;
}

.rtl .flexiblog-promo__tag {
	right: auto;
	left: 18px;
}

/* Responsive --------------------------------------------------------------*/

@media screen and ( max-width: 960px ) {
	.flexiblog-promo__vis {
		flex: 1 1 100%;
		padding: 28px 20px;
	}

	.flexiblog-promo__content {
		flex: 1 1 100%;
		padding: 26px 24px;
	}

	.rtl .flexiblog-promo__content {
		padding: 26px 24px;
	}
}

@media screen and ( max-width: 782px ) {
	.flexiblog-promo {
		margin: 12px 12px 16px;
		border-radius: 16px;
	}

	.flexiblog-promo__title {
		font-size: 24px;
	}

	.flexiblog-promo__btn {
		flex: 1 1 100%;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.flexiblog-promo,
	.flexiblog-promo__btn,
	.flexiblog-promo__close {
		transition: none;
	}

	.flexiblog-promo__btn:hover,
	.flexiblog-promo__btn:focus {
		transform: none;
	}
}
