/* ppa-lesson-v2.css – PPA Lesson V2: Clean Modern Design */
/* All rules scoped to .ppa-lv2 to avoid conflicts with the existing V1 theme */

/* ================================================
   1. CSS VARIABLES & BASE
   ================================================ */
.ppa-lv2 {
	--v2-font: 'Nunito', 'Inter', system-ui, -apple-system, sans-serif;
	--v2-bg: #f8fafc;
	--v2-white: #ffffff;
	--v2-ink: #1e293b;
	--v2-muted: #64748b;
	--v2-line: #e2e8f0;
	--v2-radius: 22px;
	/* Section palette */
	--v2-blue: #3b82f6;
	--v2-blue-dark: #1d4ed8;
	--v2-blue-bg: #eff6ff;
	--v2-blue-border: #bfdbfe;
	--v2-purple: #a855f7;
	--v2-purple-dark: #7e22ce;
	--v2-purple-bg: #faf5ff;
	--v2-purple-border: #e9d5ff;
	--v2-green: #22c55e;
	--v2-green-dark: #15803d;
	--v2-green-bg: #f0fdf4;
	--v2-green-border: #bbf7d0;
	/* Accent */
	--v2-yellow: #facc15;
	--v2-yellow-dark: #a16207;
	--v2-orange: #f97316;
	--v2-orange-bg: #fff7ed;
	--v2-orange-border: #fed7aa;
	/* Card */
	--v2-card-shadow: 0 6px 0 0 #e2e8f0;
	--v2-card-shadow-blue: 0 6px 0 0 #bfdbfe;
	font-family: var(--v2-font);
	background: var(--v2-bg);
	color: var(--v2-ink);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

.ppa-lv2 *,
.ppa-lv2 *::before,
.ppa-lv2 *::after {
	box-sizing: border-box;
}

/* ================================================
   2. FIXED PROGRESS BAR (TOP)
   ================================================ */
.ppa-lv2-topbar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 200;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 2px solid var(--v2-line);
	padding: 10px 16px;
	display: flex;
	align-items: center;
	gap: 14px;
	height: 56px;
}

.admin-bar .ppa-lv2-topbar { top: 32px; }
@media screen and (max-width: 782px) {
	.admin-bar .ppa-lv2-topbar { top: 46px; }
}

.ppa-lv2-topbar-back {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 12px;
	background: transparent;
	color: var(--v2-muted);
	text-decoration: none;
	font-size: 22px;
	flex-shrink: 0;
	transition: background 0.15s ease, color 0.15s ease;
	line-height: 1;
}

.ppa-lv2-topbar-back:hover {
	background: var(--v2-line);
	color: var(--v2-ink);
	text-decoration: none;
}

.ppa-lv2-topbar-track {
	flex: 1;
	height: 10px;
	background: #e2e8f0;
	border-radius: 999px;
	overflow: hidden;
	border: 1px solid #cbd5e1;
}

.ppa-lv2-topbar-fill {
	height: 100%;
	width: 0%;
	background: linear-gradient(90deg, #3b82f6 0%, #a855f7 50%, #22c55e 100%);
	border-radius: 999px;
	transition: width 0.3s ease;
}

.ppa-lv2-topbar-edit {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	border-radius: 12px;
	background: linear-gradient(135deg, #6d28d9, #8b5cf6);
	color: #fff !important;
	font-weight: 700;
	font-size: 12px;
	font-family: var(--v2-font);
	border: none;
	cursor: pointer;
	text-decoration: none;
	transition: filter 0.15s ease;
	white-space: nowrap;
}

.ppa-lv2-topbar-edit:hover {
	filter: brightness(1.1);
	text-decoration: none;
}

/* ================================================
   3. PAGE WRAPPER
   ================================================ */
.ppa-lv2-wrap {
	max-width: 860px;
	margin: 0 auto;
	padding: 76px 20px 80px;
}

/* ================================================
   4. SOCIAL & UTILITY
   ================================================ */
.ppa-lv2-social {
	display: flex;
	align-items: center;
	gap: 8px;
	justify-content: flex-end;
	margin-bottom: 24px;
}

/* ================================================
   5. HERO SECTION
   ================================================ */
.ppa-lv2-hero {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;
	margin-bottom: 80px;
	padding-top: 20px;
}

.ppa-lv2-hero-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}

.ppa-lv2-chip {
	display: inline-flex;
	align-items: center;
	padding: 5px 13px;
	border-radius: 10px;
	font-weight: 800;
	font-size: 12px;
	border: 2px solid;
	letter-spacing: 0.02em;
}

.ppa-lv2-chip--purple {
	background: #f5f3ff;
	color: #6d28d9;
	border-color: #ddd6fe;
}

.ppa-lv2-chip--blue {
	background: #eff6ff;
	color: #1d4ed8;
	border-color: #bfdbfe;
}

.ppa-lv2-chip--orange {
	background: #fff7ed;
	color: #c2410c;
	border-color: #fed7aa;
}

.ppa-lv2-hero-title {
	font-size: 46px;
	font-weight: 900;
	line-height: 1.05;
	letter-spacing: -0.5px;
	color: var(--v2-ink);
	margin: 0 0 14px;
	font-family: var(--v2-font);
}

.ppa-lv2-hero-highlight {
	color: var(--v2-blue);
	position: relative;
	display: inline-block;
}

.ppa-lv2-hero-highlight::after {
	content: '';
	position: absolute;
	bottom: 3px;
	left: 0;
	right: 0;
	height: 10px;
	background: rgba(59, 130, 246, 0.18);
	border-radius: 999px;
	transform: rotate(-1.5deg);
	z-index: -1;
}

.ppa-lv2-hero-desc {
	color: var(--v2-muted);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.65;
	margin: 0 0 28px;
}

.ppa-lv2-hero-desc p {
	margin: 0;
}

.ppa-lv2-hero-img-wrap {
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 28px;
	overflow: hidden;
	border: 6px solid #fff;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15), 0 6px 0 0 #e2e8f0;
	transform: rotate(3deg);
	transition: transform 0.5s ease;
	background: linear-gradient(135deg, #e0e7ff, #c7d2fe);
}

.ppa-lv2-hero-img-wrap:hover {
	transform: rotate(0deg);
}

.ppa-lv2-hero-img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ppa-lv2-hero-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 64px;
}

/* ================================================
   6. SECTION HEADERS
   ================================================ */
.ppa-lv2-section {
	margin-bottom: 80px;
	scroll-margin-top: 80px;
}

.ppa-lv2-sec-head {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-bottom: 28px;
}

.ppa-lv2-sec-num {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 26px;
	font-weight: 900;
	color: #fff;
	flex-shrink: 0;
	font-family: var(--v2-font);
}

.ppa-lv2-sec-num--blue {
	background: var(--v2-blue);
	box-shadow: 0 5px 0 0 var(--v2-blue-dark);
}

.ppa-lv2-sec-num--purple {
	background: var(--v2-purple);
	box-shadow: 0 5px 0 0 var(--v2-purple-dark);
}

.ppa-lv2-sec-num--green {
	background: var(--v2-green);
	box-shadow: 0 5px 0 0 var(--v2-green-dark);
}

.ppa-lv2-sec-title {
	font-size: 30px;
	font-weight: 900;
	color: var(--v2-ink);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--v2-font);
}

.ppa-lv2-sec-sub {
	font-size: 14px;
	font-weight: 600;
	color: var(--v2-muted);
	margin: 0;
}

/* ================================================
   7. CARDS & BUTTONS
   ================================================ */
.ppa-lv2-card {
	background: var(--v2-white);
	border-radius: var(--v2-radius);
	border: 3px solid var(--v2-line);
	box-shadow: var(--v2-card-shadow);
	padding: 24px;
	position: relative;
}

/* 3D-press button */
.ppa-lv2-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 26px;
	border-radius: 999px;
	font-weight: 800;
	font-size: 15px;
	font-family: var(--v2-font);
	cursor: pointer;
	border: 2.5px solid;
	transition: transform 0.1s ease, box-shadow 0.1s ease, filter 0.1s ease;
	text-decoration: none !important;
	line-height: 1;
	user-select: none;
	-webkit-user-select: none;
}

.ppa-lv2-btn:active {
	transform: translateY(4px) !important;
	box-shadow: none !important;
}

.ppa-lv2-btn--blue {
	background: var(--v2-blue);
	color: #fff !important;
	border-color: var(--v2-blue-dark);
	box-shadow: 0 4px 0 0 var(--v2-blue-dark);
}

.ppa-lv2-btn--blue:hover {
	filter: brightness(1.06);
}

.ppa-lv2-btn--yellow {
	background: var(--v2-yellow);
	color: #78350f !important;
	border-color: #ca8a04;
	box-shadow: 0 4px 0 0 #a16207;
}

.ppa-lv2-btn--yellow:hover {
	filter: brightness(1.04);
}

.ppa-lv2-btn--green {
	background: var(--v2-green);
	color: #052e16 !important;
	border-color: var(--v2-green-dark);
	box-shadow: 0 4px 0 0 var(--v2-green-dark);
}

.ppa-lv2-btn--green:hover {
	filter: brightness(1.05);
}

.ppa-lv2-btn--outline {
	background: var(--v2-white);
	color: var(--v2-ink) !important;
	border-color: var(--v2-line);
	box-shadow: 0 4px 0 0 var(--v2-line);
}

.ppa-lv2-btn--outline:hover {
	background: #f8fafc;
}

.ppa-lv2-btn--sm {
	padding: 8px 18px;
	font-size: 13px;
}

/* ================================================
   8. LISTENING SECTION – LAYOUT
   ================================================ */
.ppa-lv2-listening-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	align-items: stretch;
}

/* Audio card */
.ppa-lv2-audio-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 260px;
	gap: 0;
	background: var(--v2-blue-bg);
	border-color: var(--v2-blue-border);
	box-shadow: var(--v2-card-shadow-blue);
}

/* Style the existing audio player inside v2 */
.ppa-lv2-audio-card .ppa-lp-audio-wrap {
	width: 100%;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.ppa-lv2-audio-card .ppa-lp-audio-ui {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	padding: 0 !important;
	background: transparent !important;
	border-radius: 0 !important;
}

.ppa-lv2-audio-card .ppa-lp-audio-play {
	width: 80px !important;
	height: 80px !important;
	min-width: 80px !important;
	min-height: 80px !important;
	border-radius: 50% !important;
	background: var(--v2-blue) !important;
	background-color: var(--v2-blue) !important;
	background-image: none !important;
	border: 3px solid var(--v2-blue-dark) !important;
	box-shadow: 0 6px 0 0 var(--v2-blue-dark) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	transition: transform 0.1s ease, box-shadow 0.1s ease !important;
	padding: 0 !important;
	margin: 0 !important;
}

.ppa-lv2-audio-card .ppa-lp-audio-play:active {
	transform: translateY(5px) !important;
	box-shadow: none !important;
}

.ppa-lv2-audio-card .ppa-lp-audio-play svg,
.ppa-lv2-audio-card .ppa-lp-audio-icon-play,
.ppa-lv2-audio-card .ppa-lp-audio-icon-pause {
	width: 28px !important;
	height: 28px !important;
	fill: #fff !important;
	color: #fff !important;
}

.ppa-lv2-audio-card .ppa-lp-audio-bar-wrap {
	width: 100%;
	background: rgba(255, 255, 255, 0.85) !important;
	border-radius: 14px !important;
	border: 2px solid var(--v2-blue-border) !important;
	padding: 10px 14px !important;
}

.ppa-lv2-audio-card .ppa-lp-audio-bar-top {
	margin-bottom: 6px;
}

.ppa-lv2-audio-card .ppa-lp-audio-time {
	font-weight: 700 !important;
	font-size: 13px !important;
	color: var(--v2-blue) !important;
	font-family: var(--v2-font) !important;
}

.ppa-lv2-audio-card .ppa-lp-audio-progress {
	width: 100%;
	accent-color: var(--v2-blue);
	height: 6px;
}

.ppa-lv2-audio-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	color: var(--v2-muted);
	font-weight: 600;
	font-size: 14px;
	text-align: center;
	padding: 16px;
}

.ppa-lv2-audio-placeholder-circle {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: #dbeafe;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 36px;
	border: 3px solid var(--v2-blue-border);
}

/* Quiz card */
.ppa-lv2-quiz-card {
	min-height: 260px;
}

/* Override quiz markup inside v2 listening card */
.ppa-lv2 .ppa-lv2-quiz-card .ppa-lp-quiz-native,
.ppa-lv2 .ppa-lv2-quiz-card .ppa-lp-quiz {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
}

.ppa-lv2 .ppa-lv2-quiz-card .ppa-quiz-card {
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

/* Override ppa-lp-quiz styles inside v2 */
.ppa-lv2 .ppa-lp-quiz-native {
	font-family: var(--v2-font) !important;
	border-radius: var(--v2-radius) !important;
}

/* ================================================
   9. SECTION SUBHEADS & ACTIONS
   ================================================ */
.ppa-lv2-subhead {
	margin-bottom: 16px;
}

.ppa-lv2-subhead h3 {
	font-size: 18px;
	font-weight: 900;
	color: var(--v2-ink);
	margin: 0 0 4px;
	font-family: var(--v2-font);
}

.ppa-lv2-subhead p {
	font-size: 13px;
	font-weight: 600;
	color: var(--v2-muted);
	margin: 0;
}

.ppa-lv2-actions-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 24px;
	align-items: center;
}

.ppa-lv2-actions-row .ppa-la-download {
	font-weight: 700;
	font-size: 13px;
	color: var(--v2-muted) !important;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 8px 14px;
	border-radius: 999px;
	border: 2px solid var(--v2-line);
	background: var(--v2-white);
	transition: background 0.15s ease;
}

.ppa-lv2-actions-row .ppa-la-download:hover {
	background: var(--v2-line);
}

.ppa-lv2-vocab-actions {
	display: flex;
	gap: 8px;
	margin-bottom: 14px;
	justify-content: flex-end;
}

.ppa-lv2-vocab-actions button {
	appearance: none;
	padding: 7px 16px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 12px;
	font-family: var(--v2-font);
	border: 2px solid var(--v2-line);
	background: var(--v2-white);
	color: var(--v2-ink);
	cursor: pointer;
	transition: background 0.15s ease;
}

.ppa-lv2-vocab-actions button:hover {
	background: #f1f5f9;
}

/* ================================================
   10. CHAT SCRIPT (CONVERSATION BUBBLES)
   ================================================ */
.ppa-lv2-chat-card {
	margin-bottom: 24px;
}

/* Override .ppa-la-chat inside v2 */
.ppa-lv2 .ppa-la-chat {
	display: flex;
	flex-direction: column;
	gap: 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ppa-lv2 .ppa-la-chat-line {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.ppa-lv2 .ppa-la-chat-line.is-right {
	flex-direction: row-reverse;
}

.ppa-lv2 .ppa-la-chat-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #e0e7ff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	flex-shrink: 0;
	border: 3px solid #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.ppa-lv2 .ppa-la-chat-line.is-right .ppa-la-chat-avatar {
	background: #fce7f3;
}

.ppa-lv2 .ppa-la-chat-avatar-icon {
	line-height: 1;
}

.ppa-lv2 .ppa-la-chat-bubble {
	max-width: 76%;
	background: #fff;
	border: 2.5px solid #e2e8f0;
	border-radius: 20px;
	border-top-left-radius: 5px;
	padding: 12px 16px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.ppa-lv2 .ppa-la-chat-line.is-right .ppa-la-chat-bubble {
	background: #dbeafe;
	border-color: #bfdbfe;
	border-top-left-radius: 20px;
	border-top-right-radius: 5px;
}

.ppa-lv2 .ppa-la-chat-name {
	font-size: 10px;
	font-weight: 800;
	color: var(--v2-muted);
	letter-spacing: 0.07em;
	text-transform: uppercase;
	margin-bottom: 5px;
}

.ppa-lv2 .ppa-la-chat-text {
	font-size: 15px;
	font-weight: 600;
	color: var(--v2-ink);
	line-height: 1.5;
}

.ppa-lv2 .ppa-la-chat-line.is-right .ppa-la-chat-text {
	color: #1e40af;
}

/* Script fallback (non-chat) */
.ppa-lv2 .ppa-la-reading {
	font-size: 15px;
	font-weight: 600;
	color: var(--v2-ink);
	line-height: 1.7;
}

/* ================================================
   11. VOCABULARY GAME (override for v2)
   ================================================ */
.ppa-lv2-vocab-card {
	margin-bottom: 24px;
}

/* The vocab game JS renders .ppa-la-vg-* inside .ppa-la-vocab-game.
   Override its styles here for v2 context. */
.ppa-lv2 .ppa-la-vocab-game {
	position: relative;
}

.ppa-lv2 .ppa-la-vg-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.ppa-lv2 .ppa-la-vg-instruction {
	font-weight: 800;
	font-size: 15px;
	color: var(--v2-ink);
	line-height: 1.3;
}

.ppa-lv2 .ppa-la-vg-count {
	font-weight: 700;
	font-size: 13px;
	color: var(--v2-purple);
	margin-top: 4px;
}

.ppa-lv2 .ppa-la-vg-count strong {
	font-weight: 900;
}

.ppa-lv2 .ppa-la-vg-ex {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.ppa-lv2 .ppa-la-vg-words-tray {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ppa-lv2 .ppa-la-vg-defs-tray {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ppa-lv2 .ppa-la-vg-chip,
.ppa-lv2 .ppa-la-vg-def-item {
	text-transform: none !important;
	letter-spacing: normal !important;
}

.ppa-lv2 .ppa-la-vg-chip {
	appearance: none;
	text-align: left;
	border: 2.5px solid #e0e7ff;
	background: linear-gradient(180deg, rgba(99, 102, 241, 0.06), rgba(255, 255, 255, 0.96));
	border-radius: 14px;
	padding: 12px 14px;
	font-weight: 800;
	font-size: 14px;
	color: var(--v2-ink);
	font-family: var(--v2-font);
	box-shadow: 0 3px 0 0 #e0e7ff;
	cursor: pointer;
	transition: transform 0.1s ease, box-shadow 0.1s ease, border-color 0.1s ease;
	line-height: 1.4;
}

.ppa-lv2 .ppa-la-vg-defs-tray .ppa-la-vg-chip {
	border-color: #bbf7d0;
	background: linear-gradient(180deg, rgba(34, 197, 94, 0.06), rgba(255, 255, 255, 0.96));
	box-shadow: 0 3px 0 0 #bbf7d0;
}

.ppa-lv2 .ppa-la-vg-chip:hover {
	transform: translateY(-2px);
	box-shadow: 0 5px 0 0 #e0e7ff;
}

.ppa-lv2 .ppa-la-vg-defs-tray .ppa-la-vg-chip:hover {
	box-shadow: 0 5px 0 0 #bbf7d0;
}

.ppa-lv2 .ppa-la-vg-chip.is-selected {
	border-color: var(--v2-purple) !important;
	background: #faf5ff !important;
	box-shadow: 0 3px 0 0 var(--v2-purple) !important;
	transform: translateY(-1px);
}

.ppa-lv2 .ppa-la-vg-chip.is-correct {
	border-color: var(--v2-green) !important;
	background: #f0fdf4 !important;
	box-shadow: 0 3px 0 0 var(--v2-green) !important;
	opacity: 0.65;
	cursor: default;
}

.ppa-lv2 .ppa-la-vg-chip.is-wrong {
	border-color: #ef4444 !important;
	background: #fef2f2 !important;
	animation: ppa-lv2-shake 0.3s ease;
}

@keyframes ppa-lv2-shake {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-4px); }
	75% { transform: translateX(4px); }
}

.ppa-lv2 .ppa-la-vg-correct {
	margin-top: 18px;
}

.ppa-lv2 .ppa-la-vg-correct-title {
	font-weight: 800;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--v2-muted);
	margin-bottom: 10px;
}

.ppa-lv2 .ppa-la-vg-correct-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ppa-lv2 .ppa-la-vg-correct-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	background: #f0fdf4;
	border: 2px solid #bbf7d0;
	border-radius: 12px;
	padding: 10px 14px;
}

.ppa-lv2 .ppa-la-vg-correct-word {
	font-weight: 800;
	color: var(--v2-ink);
	font-size: 14px;
}

.ppa-lv2 .ppa-la-vg-correct-def {
	font-weight: 600;
	color: var(--v2-muted);
	font-size: 13px;
}

/* Hide old board/lines elements from PHP */
.ppa-lv2 .ppa-la-vg-board,
.ppa-lv2 .ppa-la-vg-lines,
.ppa-lv2 .ppa-la-vg-words,
.ppa-lv2 .ppa-la-vg-defs {
	display: none;
}

/* ================================================
   12. USEFUL SENTENCES
   ================================================ */
.ppa-lv2-useful-wrap {
	margin-bottom: 0;
}

.ppa-lv2-useful-head {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 18px;
	font-weight: 900;
	color: var(--v2-ink);
	margin: 0 0 18px;
	font-family: var(--v2-font);
}

/* Grouped cards layout */
.ppa-lv2-useful-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 14px;
}

.ppa-lv2-useful-group {
	background: #fff;
	border: 2.5px solid var(--v2-line);
	border-radius: 18px;
	padding: 16px;
	box-shadow: 0 4px 0 0 var(--v2-line);
}

.ppa-lv2-useful-group-title {
	display: inline-flex;
	align-items: center;
	padding: 5px 14px;
	border-radius: 999px;
	background: linear-gradient(135deg, #22c55e, #86efac);
	color: #fff;
	font-weight: 800;
	font-size: 12px;
	margin-bottom: 12px;
	border: 2px solid rgba(255, 255, 255, 0.6);
	box-shadow: 0 3px 8px rgba(34, 197, 94, 0.25);
}

.ppa-lv2-useful-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.ppa-lv2-useful-list li {
	font-weight: 700;
	font-size: 14px;
	color: var(--v2-ink);
	line-height: 1.45;
	padding: 8px 10px;
	background: #f0fdf4;
	border-left: 3px solid #22c55e;
	border-radius: 0 10px 10px 0;
}

/* Fallback useful sentences */
.ppa-lv2-useful-fallback {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.7;
	color: var(--v2-ink);
}

/* ================================================
   13. GRAMMAR SECTION
   ================================================ */
.ppa-lv2-grammar-focus-line {
	font-size: 13px;
	font-weight: 700;
	color: var(--v2-muted);
	text-transform: uppercase;
	letter-spacing: 0.07em;
	margin-bottom: 20px;
}

.ppa-lv2-grammar-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 20px;
}

.ppa-lv2-grammar-content {
	margin-bottom: 24px;
}

/* Override existing grammar HTML inside v2 */
.ppa-lv2 .ppa-gf-section {
	border-radius: var(--v2-radius) !important;
	box-shadow: var(--v2-card-shadow) !important;
	overflow: hidden !important;
	margin-bottom: 16px !important;
	border: 3px solid var(--v2-line) !important;
}

.ppa-lv2 .ppa-gf-content {
	font-family: var(--v2-font) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.65 !important;
	color: var(--v2-ink) !important;
}

.ppa-lv2 .ppa-gf-content p {
	margin: 0 0 8px !important;
}

.ppa-lv2 .ppa-gf-content p:last-child {
	margin-bottom: 0 !important;
}

/* Grammar tables */
.ppa-lv2 .ppa-gf-content table {
	width: 100%;
	border-collapse: collapse;
	overflow: hidden;
	border: 2px solid var(--v2-line);
	border-radius: 12px;
	font-size: 14px;
}

.ppa-lv2 .ppa-gf-content th {
	background: #f8fafc !important;
	padding: 10px 14px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	font-size: 11px !important;
	letter-spacing: 0.06em !important;
	border-bottom: 2px solid var(--v2-line) !important;
	text-align: left !important;
	font-family: var(--v2-font) !important;
}

.ppa-lv2 .ppa-gf-content td {
	padding: 10px 14px !important;
	border-bottom: 1px solid var(--v2-line) !important;
	font-weight: 600 !important;
	vertical-align: top !important;
	font-family: var(--v2-font) !important;
}

.ppa-lv2 .ppa-gf-content tr:last-child td {
	border-bottom: none !important;
}

.ppa-lv2 .ppa-gf-content tr:hover td {
	background: #f8fafc !important;
}

.ppa-lv2 .ppa-gf-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: 12px;
}

/* ================================================
   14. GRAMMAR QUIZ
   ================================================ */
.ppa-lv2-gquiz-wrap {
	margin-top: 24px;
}

.ppa-lv2-gquiz-wrap .ppa-lp-quiz-native {
	font-family: var(--v2-font) !important;
	border-radius: var(--v2-radius) !important;
	border: 3px solid var(--v2-line) !important;
	box-shadow: var(--v2-card-shadow) !important;
}

/* ================================================
   15. STEP ACTIONS (BOTTOM NAV)
   ================================================ */
.ppa-lv2-step-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 36px;
	flex-wrap: wrap;
}

.ppa-lv2-download-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}

.ppa-lv2-download-links .ppa-la-download {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--v2-white);
	border: 2px solid var(--v2-line);
	box-shadow: 0 3px 0 0 var(--v2-line);
	color: var(--v2-ink) !important;
	font-weight: 700;
	font-size: 13px;
	text-decoration: none;
	transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.ppa-lv2-download-links .ppa-la-download:active {
	transform: translateY(3px);
	box-shadow: none;
}

/* ================================================
   16. SCROLL ANIMATIONS
   ================================================ */
.ppa-lv2-animate {
	opacity: 0;
	transform: translateY(36px);
	transition: opacity 0.65s ease, transform 0.65s ease;
}

.ppa-lv2-animate.ppa-lv2-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Stagger hero children */
.ppa-lv2-hero.ppa-lv2-visible .ppa-lv2-hero-text {
	transition-delay: 0s;
}

.ppa-lv2-hero.ppa-lv2-visible .ppa-lv2-hero-img-wrap {
	transition-delay: 0.15s;
}

/* ================================================
   17. EDITOR POPUP OVERRIDES
   ================================================ */
.ppa-la-editor-popup {
	font-family: var(--v2-font) !important;
}

/* ================================================
   18. FLOATING AUDIO BAR (bottom of page)
   ================================================ */
.ppa-lv2-float-audio {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 250;
	background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);
	border-top: none;
	box-shadow: 0 -6px 30px rgba(37, 99, 235, 0.35);
	padding: 10px 20px;
	transform: translateY(100%);
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
	font-family: var(--v2-font);
}

.ppa-lv2-float-audio.is-open {
	transform: translateY(0);
}

.ppa-lv2-float-inner {
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: 860px;
	margin: 0 auto;
}

/* Play / pause toggle */
.ppa-lv2-float-toggle {
	width: 46px;
	height: 46px;
	flex-shrink: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	border: 2px solid rgba(255, 255, 255, 0.5);
	box-shadow: 0 3px 0 0 rgba(0, 0, 0, 0.2);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: transform 0.1s ease, box-shadow 0.1s ease, background 0.15s ease;
	padding: 0;
}

.ppa-lv2-float-toggle:hover {
	background: rgba(255, 255, 255, 0.3);
}

.ppa-lv2-float-toggle:active {
	transform: translateY(3px);
	box-shadow: none;
}

.ppa-lv2-float-toggle svg {
	width: 20px;
	height: 20px;
	fill: #fff;
	flex-shrink: 0;
}

/* Centre body: label + seekbar */
.ppa-lv2-float-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ppa-lv2-float-label {
	font-weight: 800;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.95);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ppa-lv2-float-progress {
	width: 100%;
	accent-color: #facc15;
	height: 6px;
	cursor: pointer;
}

/* Time */
.ppa-lv2-float-time {
	font-weight: 700;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.8);
	white-space: nowrap;
	flex-shrink: 0;
}

/* Close button */
.ppa-lv2-float-close {
	width: 34px;
	height: 34px;
	flex-shrink: 0;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.15);
	border: 2px solid rgba(255, 255, 255, 0.3);
	color: rgba(255, 255, 255, 0.9);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
	padding: 0;
}

.ppa-lv2-float-close:hover {
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
	border-color: rgba(255, 255, 255, 0.5);
}

.ppa-lv2-float-close svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 640px) {
	.ppa-lv2-float-time { display: none; }
	.ppa-lv2-float-audio { padding: 10px 12px; }
}

/* Push page content up when bar is open */
body.ppa-lv2-bar-open {
	padding-bottom: 72px;
}

/* ================================================
   19. FULLSCREEN FLOATING BUTTON
   ================================================ */
.ppa-lv2-fs-btn {
	position: fixed;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 300;
	width: 46px;
	height: 46px;
	border-radius: 14px;
	background: #fff;
	border: 2.5px solid var(--v2-line);
	box-shadow: 0 4px 0 0 var(--v2-line), 0 4px 16px rgba(0,0,0,0.08);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--v2-muted);
	transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
	padding: 0;
}

.ppa-lv2-fs-btn:hover {
	background: var(--v2-blue);
	color: #fff;
	border-color: var(--v2-blue-dark);
	box-shadow: 0 4px 0 0 var(--v2-blue-dark), 0 4px 16px rgba(59,130,246,0.25);
}

.ppa-lv2-fs-btn:active {
	transform: translateY(calc(-50% + 4px)) !important;
}

.ppa-lv2-fs-btn svg {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Tooltip */
.ppa-lv2-fs-btn::before {
	content: attr(data-tooltip);
	position: absolute;
	right: calc(100% + 10px);
	top: 50%;
	transform: translateY(-50%);
	background: var(--v2-ink);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	padding: 5px 10px;
	border-radius: 8px;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.ppa-lv2-fs-btn::after {
	content: '';
	position: absolute;
	right: calc(100% + 4px);
	top: 50%;
	transform: translateY(-50%);
	border: 5px solid transparent;
	border-left-color: var(--v2-ink);
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.ppa-lv2-fs-btn:hover::before,
.ppa-lv2-fs-btn:hover::after {
	opacity: 1;
}

@media (max-width: 480px) {
	.ppa-lv2-fs-btn { display: none; }
}

/* ================================================
   19. RESPONSIVE
   ================================================ */
@media (max-width: 700px) {
	.ppa-lv2-hero {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.ppa-lv2-hero-title {
		font-size: 34px;
	}

	.ppa-lv2-hero-img-wrap {
		max-width: 280px;
		margin: 0 auto;
		transform: rotate(2deg);
	}

	.ppa-lv2-listening-grid {
		grid-template-columns: 1fr;
	}

	.ppa-lv2-sec-title {
		font-size: 22px;
	}

	.ppa-lv2-sec-num {
		width: 50px;
		height: 50px;
		font-size: 22px;
	}

	.ppa-lv2-wrap {
		padding-left: 14px;
		padding-right: 14px;
	}

	.ppa-lv2-useful-grid {
		grid-template-columns: 1fr;
	}

	.ppa-lv2-step-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.ppa-lv2-step-actions .ppa-lv2-btn {
		width: 100%;
		justify-content: center;
	}

	.ppa-lv2 .ppa-la-vg-ex {
		grid-template-columns: 1fr;
	}
}

@media (min-width: 701px) and (max-width: 900px) {
	.ppa-lv2-hero-title {
		font-size: 38px;
	}
}

@media (min-width: 1100px) {
	.ppa-lv2-hero-title {
		font-size: 52px;
	}
}
