/* ====================================================
   Popping Violin and Viola Studio — Sitewide Brand CSS
   Modern Studio palette: indigo + coral
   ==================================================== */
/* ---------- base ---------- */
body {
	font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, sans-serif;
	color: #1f2233;
	background: #ffffff;
	line-height: 1.6;
}

.pvv h1,.pvv h2,.pvv h3,.pvv h4,
.pvv-hero h1,.pvv-section h1,.pvv-section h2,.pvv-feature-card h3,.pvv-program-card h3,.pvv-policy-card h3,.pvv-contact-card h3 {
	font-family: 'Bricolage Grotesque', 'Public Sans', sans-serif;
	color: #1d2447;
	line-height: 1.15;
	font-weight: 700;
	letter-spacing: -.01em;
}

.pvv-wrap {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 24px;
}

.pvv-btn {
	display: inline-block;
	font-family: 'Public Sans', sans-serif;
	font-weight: 700;
	padding: 14px 28px;
	border-radius: 999px;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
	border: 2px solid transparent;
}

.pvv-btn:hover {
	transform: translateY(-2px);
}

.pvv-btn--primary {
	background: #e8815a;
	color: #ffffff !important;
	box-shadow: 0 14px 28px -14px rgba(232,129,90,0.65);
}

.pvv-btn--secondary {
	background: transparent;
	color: #2c3568 !important;
	border-color: #2c3568;
}

.pvv-btn--light {
	background: #ffffff;
	color: #2c3568 !important;
}

/* ---------- nav ---------- */
.pvv-nav {
	background: #ffffff;
	border-bottom: 1px solid #e6e3f0;
	position: sticky;
	top: 0;
	z-index: 40;
}

.pvv-nav__inner {
	max-width: 1120px;
	margin: 0 auto;
	padding: 16px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.pvv-nav__brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}

.pvv-nav__badge {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: #2c3568;
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 800;
	font-size: 16px;
	flex: none;
}

.pvv-nav__word {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 700;
	color: #1d2447;
	font-size: 18px;
}

.pvv-nav__links {
	display: flex;
	align-items: center;
	gap: 28px;
	flex-wrap: wrap;
}

.pvv-nav__links a {
	color: #1f2233;
	text-decoration: none;
	font-weight: 600;
	font-size: 15px;
}

.pvv-nav__links a:hover {
	color: #e8815a;
}

.pvv-nav__links .pvv-btn {
	display: none;
}

.pvv-menu-target {
	position: absolute;
}

.pvv-nav__toggle {
	display: none;
}

.pvv-nav__close {
	display: none;
}

/* ---------- hero ---------- */
.pvv-hero {
	background: linear-gradient(180deg,#eceefc 0%, #ffffff 78%);
	padding: 64px 0 40px;
}

.pvv-hero__grid {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: 56px;
	align-items: center;
}

.pvv-hero__eyebrow {
	color: #e8815a;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	font-size: 13px;
}

.pvv-hero h1 {
	font-size: 44px;
	margin: 14px 0 18px;
}

.pvv-hero p {
	color: #5b5f78;
	font-size: 17px;
	max-width: 46ch;
}

.pvv-hero__ctas {
	display: flex;
	gap: 16px;
	margin-top: 28px;
	flex-wrap: wrap;
}

.pvv-hero__art {
	position: relative;
}

.pvv-hero__blob {
	position: absolute;
	background: #fdece2;
	border-radius: 63% 37% 54% 46% / 43% 41% 59% 57%;
	z-index: 0;
}

.pvv-hero__ring {
	position: absolute;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	border: 3px solid #e8815a;
	opacity: .55;
	top: -24px;
	right: 8%;
	z-index: 2;
}

.pvv-hero__photo {
	position: relative;
	z-index: 1;
	width: 100%;
	aspect-ratio: 4/5;
	object-fit: cover;
	border-radius: 22px;
	box-shadow: 0 24px 48px -28px rgba(44,53,104,0.35);
}

/* ---------- about page photo+bio grid ---------- */
.pvv-about-grid {
	grid-template-columns: 260px 1fr;
	align-items: center;
	gap: 48px;
}

.pvv-about-photo {
	max-width: 260px;
}

@media (max-width:900px) {
	.pvv-about-photo {
		max-width: 220px;
		margin: 0 auto;
	}
}

/* ---------- generic section ---------- */
.pvv-section {
	padding: 64px 0;
}

/* Force full width on static Pages, where core wraps block content in a
   width-constrained container. .alignfull is also set on these sections
   in markup as the primary fix; this is a belt-and-suspenders override. */
.entry-content.is-layout-constrained > .pvv-section,
.entry-content.is-layout-constrained > .pvv-hero,
.entry-content.is-layout-constrained > .pvv-wave,
.entry-content > .pvv-section.alignfull,
.entry-content > .pvv-hero.alignfull,
.entry-content > .pvv-wave.alignfull {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.pvv-section--tint {
	background: #fbf9f5;
}

.pvv-section__head {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 40px;
}

.pvv-section__head h2 {
	font-size: 32px;
	margin-bottom: 12px;
}

.pvv-section__head p {
	color: #5b5f78;
}

/* ---------- feature grid (six pillars) ---------- */
.pvv-features {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 24px;
}

.pvv-feature-card {
	background: #ffffff;
	border: 1px solid #e6e3f0;
	border-radius: 14px;
	padding: 28px;
}

.pvv-feature-card__icon {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: #eceefc;
	color: #2c3568;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	margin-bottom: 16px;
}

.pvv-feature-card h3 {
	font-size: 18px;
	margin-bottom: 8px;
}

.pvv-feature-card p {
	color: #5b5f78;
	font-size: 15px;
	margin: 0;
}

/* ---------- teaser / program summary cards ---------- */
.pvv-teaser-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.pvv-teaser-card {
	background: #2c3568;
	color: #ffffff;
	border-radius: 22px;
	padding: 32px;
	position: relative;
	overflow: hidden;
}

.pvv-teaser-card--warm {
	background: #e8815a;
}

.pvv-teaser-card h3 {
	color: #ffffff;
	font-size: 20px;
	margin-bottom: 8px;
}

.pvv-teaser-card p {
	color: rgba(255,255,255,0.88);
	margin-bottom: 18px;
}

.pvv-teaser-card__price {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 26px;
	font-weight: 800;
	display: block;
	margin-bottom: 18px;
}

/* ---------- waveform divider ---------- */
.pvv-wave {
	display: block;
	width: 100%;
	line-height: 0;
}

.pvv-wave svg {
	width: 100%;
	height: 56px;
	display: block;
}

.pvv-wave path {
	fill: #eceefc;
}

.pvv-section--tint + .pvv-wave path,
.pvv-wave--tint path {
	fill: #fbf9f5;
}

/* ---------- program / pricing cards ---------- */
.pvv-programs-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	align-items: start;
}

.pvv-program-card {
	border: 1px solid #e6e3f0;
	border-radius: 22px;
	padding: 32px;
	background: #ffffff;
	box-shadow: 0 24px 48px -28px rgba(44,53,104,0.35);
}

.pvv-program-card--highlight {
	border-color: #e8815a;
}

.pvv-badge {
	display: inline-block;
	background: #fdece2;
	color: #e8815a;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: .03em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: 999px;
	margin-bottom: 10px;
}

.pvv-program-card h3 {
	font-size: 22px;
	margin-bottom: 8px;
}

.pvv-program-card__desc {
	color: #5b5f78;
	font-size: 15px;
	margin-bottom: 20px;
}

.pvv-tab-target {
	position: absolute;
}

.pvv-tabs {
	position: relative;
}

.pvv-tab-row {
	display: flex;
	gap: 8px;
	margin-bottom: 16px;
	background: #fbf9f5;
	padding: 6px;
	border-radius: 999px;
}

.pvv-tab-label {
	flex: 1;
	text-align: center;
	padding: 10px 14px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 14px;
	color: #5b5f78;
	cursor: pointer;
	text-decoration: none;
	display: block;
}

.pvv-tab-label--monthly {
	background: #2c3568;
	color: #ffffff;
}

.pvv-tab-panel {
	display: none;
}

.pvv-tab-panel--monthly {
	display: block;
}

.pvv-tab-target--semester:target ~ .pvv-tab-row .pvv-tab-label--monthly {
	background: transparent;
	color: #5b5f78;
}

.pvv-tab-target--semester:target ~ .pvv-tab-row .pvv-tab-label--semester {
	background: #2c3568;
	color: #ffffff;
}

.pvv-tab-target--semester:target ~ .pvv-tab-panels .pvv-tab-panel--monthly {
	display: none;
}

.pvv-tab-target--semester:target ~ .pvv-tab-panels .pvv-tab-panel--semester {
	display: block;
}

.pvv-tab-panel table {
	width: 100%;
	border-collapse: collapse;
}

.pvv-tab-panel th,.pvv-tab-panel td {
	text-align: left;
	padding: 10px 6px;
	border-bottom: 1px solid #e6e3f0;
	font-size: 15px;
}

.pvv-tab-panel th {
	color: #5b5f78;
	font-weight: 600;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .02em;
}

.pvv-tab-note {
	font-size: 13px;
	color: #5b5f78;
	margin-top: 10px;
}

.pvv-includes {
	margin-top: 22px;
	border-top: 1px solid #e6e3f0;
	padding-top: 16px;
}

.pvv-includes summary {
	font-weight: 700;
	cursor: pointer;
	color: #2c3568;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.pvv-includes summary::-webkit-details-marker {
	display: none;
}

.pvv-includes summary::after {
	content: '+';
	font-size: 20px;
	color: #e8815a;
}

.pvv-includes[open] summary::after {
	content: '\2212';
}

.pvv-includes ul {
	margin: 14px 0 0;
	padding-left: 20px;
	color: #5b5f78;
	font-size: 15px;
}

.pvv-includes li {
	margin-bottom: 6px;
}

.pvv-format-strip {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 20px;
	margin-bottom: 48px;
}

.pvv-format-card {
	background: #ffffff;
	border: 1px solid #e6e3f0;
	border-radius: 14px;
	padding: 22px;
}

.pvv-format-card h4 {
	font-family: 'Bricolage Grotesque', sans-serif;
	color: #1d2447;
	margin-bottom: 8px;
	font-size: 16px;
}

.pvv-format-card p {
	color: #5b5f78;
	font-size: 14px;
	margin: 0;
}

/* ---------- policy cards ---------- */
.pvv-policy-grid {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 24px;
}

.pvv-policy-card {
	background: #ffffff;
	border: 1px solid #e6e3f0;
	border-radius: 22px;
	padding: 28px;
}

.pvv-policy-card h3 {
	font-size: 19px;
	margin-bottom: 14px;
}

.pvv-policy-card ul {
	padding-left: 20px;
	color: #5b5f78;
	font-size: 15px;
	margin: 0;
}

.pvv-policy-card li {
	margin-bottom: 10px;
}

/* ---------- contact ---------- */
.pvv-contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}

.pvv-contact-card {
	background: #ffffff;
	border: 1px solid #e6e3f0;
	border-radius: 22px;
	padding: 32px;
}

.pvv-contact-card h3 {
	font-size: 19px;
	margin-bottom: 16px;
}

.pvv-contact-row {
	display: flex;
	gap: 12px;
	margin-bottom: 14px;
	color: #1f2233;
}

.pvv-contact-row strong {
	color: #1d2447;
}

.pvv-map {
	border-radius: 22px;
	overflow: hidden;
	border: 1px solid #e6e3f0;
	min-height: 280px;
}

.pvv-map iframe {
	width: 100%;
	height: 100%;
	min-height: 280px;
	border: 0;
	display: block;
}

/* ---------- footer ---------- */
.pvv-footer {
	background: #1d2447;
	color: rgba(255,255,255,0.85);
	padding: 48px 0 32px;
}

.pvv-footer__grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 32px;
	margin-bottom: 28px;
}

.pvv-footer h4 {
	color: #ffffff;
	font-family: 'Bricolage Grotesque', sans-serif;
	margin-bottom: 14px;
	font-size: 16px;
}

.pvv-footer p,.pvv-footer a {
	color: rgba(255,255,255,0.75);
}

.pvv-footer a {
	text-decoration: none;
}

.pvv-footer a:hover {
	color: #e8815a;
}

.pvv-footer__subscribe {
	display: flex;
	gap: 10px;
	margin-top: 10px;
	flex-wrap: wrap;
}

.pvv-footer__subscribe input[type=email] {
	flex: 1;
	min-width: 180px;
	padding: 12px 16px;
	border-radius: 999px;
	border: 1px solid rgba(255,255,255,0.25);
	background: rgba(255,255,255,0.08);
	color: #ffffff;
}

.pvv-footer__bottom {
	border-top: 1px solid rgba(255,255,255,0.15);
	padding-top: 20px;
	font-size: 13px;
	text-align: center;
	color: rgba(255,255,255,0.55);
}

/* ---------- responsive ---------- */
@media (max-width:900px) {
	.pvv-hero__grid,.pvv-teaser-cards,.pvv-programs-grid,.pvv-contact-grid,.pvv-footer__grid {
		grid-template-columns: 1fr;
	}
	
	.pvv-features,.pvv-policy-grid,.pvv-format-strip {
		grid-template-columns: 1fr 1fr;
	}
	
	.pvv-hero {
		padding: 40px 0 24px;
	}
	
	.pvv-hero h1 {
		font-size: 32px;
	}
}

@media (max-width:600px) {
	.pvv-features,.pvv-policy-grid,.pvv-format-strip {
		grid-template-columns: 1fr;
	}
}

/* ---------- mobile nav (hamburger) ---------- */
@media (max-width:900px) {
	.pvv-nav__inner {
		position: relative;
		flex-wrap: nowrap;
	}
	
	.pvv-nav__cta-desktop {
		display: none;
	}
	
	.pvv-nav__toggle {
		display: block;
		margin-left: auto;
		font-size: 24px;
		line-height: 1;
		color: #2c3568;
		cursor: pointer;
		padding: 6px 4px;
		text-decoration: none;
	}
	
	.pvv-nav__links {
		display: none;
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: #ffffff;
		padding: 12px 24px 24px;
		border-bottom: 1px solid #e6e3f0;
		box-shadow: 0 16px 32px -20px rgba(44,53,104,0.25);
		z-index: 50;
	}
	
	.pvv-nav__links a {
		padding: 12px 0;
		width: 100%;
		border-bottom: 1px solid #f0eff7;
	}
	
	.pvv-nav__links .pvv-btn {
		display: inline-block;
		margin-top: 14px;
		border-bottom: none;
		width: auto;
		padding: 14px 28px;
	}
	
	.pvv-nav__close {
		display: block;
		align-self: flex-end;
		font-size: 20px;
		margin-bottom: 6px;
		color: #5b5f78;
		border-bottom: none !important;
		padding: 4px 6px !important;
		width: auto !important;
	}
	
	#pvv-menu-open:target ~ .pvv-nav__links {
		display: flex;
	}
}