/* ==========================================================================
   Body Mind Yoga — page content built in the block editor
   Section classes (add in Block → Advanced → Additional CSS class):
     Group:  bmy-page-hero | bmy-band (+ is-tint / is-white / is-purple)
     Group:  bmy-container (inside a band) | bmy-narrow
     Group / Column: bmy-card | bmy-callout
     Columns: bmy-cols (equal) | bmy-split (text + image)
     List:   bmy-checklist | bmy-steps
     Paragraph: bmy-eyebrow | bmy-lead | bmy-muted
   ========================================================================== */

.bmy-page { overflow-x: clip; }
.bmy-page > *:first-child { margin-top: 0; }

/* Typography inside content */
.bmy-page h1, .bmy-page h2, .bmy-page h3, .bmy-page h4,
.bmy-news h1, .bmy-news h2, .bmy-news h3, .bmy-article h2, .bmy-article h3 {
	font-family: var(--bmy-font-head); color: var(--bmy-purple-deep); font-weight: 700; letter-spacing: -.01em; line-height: 1.2;
}
.bmy-page h1 { font-size: clamp(32px, 4.4vw, 46px); margin: 0 0 16px; line-height: 1.15; }
.bmy-page h2 { font-size: clamp(26px, 3vw, 34px); margin: 0 0 14px; }
.bmy-page h3 { font-size: 20px; margin: 0 0 8px; }
.bmy-page h4 { font-size: 17px; margin: 0 0 6px; }
.bmy-page p, .bmy-page li { max-width: var(--bmy-reading); }
.bmy-page p { margin: 0 0 16px; }
.bmy-page ul, .bmy-page ol { margin: 0 0 16px; padding-left: 22px; }
.bmy-page li { margin-bottom: 6px; }
.bmy-page :where(p, ul, ol, .wp-block-buttons):last-child { margin-bottom: 0; }

.bmy-eyebrow { font-size: 14px !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--bmy-purple) !important; margin-bottom: 10px !important; }
.bmy-lead { font-size: 20px; line-height: 1.55; }
.bmy-muted { color: var(--bmy-text-2); }
@media (max-width: 600px) { .bmy-lead { font-size: 18px; } }

/* Sections */
.bmy-page-hero, .bmy-band {
	width: 100%; max-width: none !important; margin: 0 !important;
	padding: 64px max(24px, calc((100% - var(--bmy-container)) / 2)) !important;
	box-sizing: border-box;
}
.bmy-page-hero {
	padding-top: 52px !important; padding-bottom: 52px !important;
	background: linear-gradient(180deg, #fff 0%, var(--bmy-page) 100%);
	border-bottom: 1px solid var(--bmy-border);
}
.bmy-page-hero .bmy-lead { max-width: 640px; }
.bmy-band.is-white { background: #fff; }
.bmy-band.is-tint { background: var(--bmy-lilac-pale); }
.bmy-band.is-purple { background: var(--bmy-purple-deep); color: #fff; }
.bmy-band.is-purple :where(h2, h3, p, li) { color: #fff; }
.bmy-band.is-purple a:not(.wp-block-button__link) { color: #fff; }
.bmy-band + .bmy-band.is-white, .bmy-band.is-white + .bmy-band:not(.is-tint):not(.is-purple) { border-top: 1px solid var(--bmy-border); }
.bmy-band > .wp-block-group__inner-container, .bmy-page-hero > .wp-block-group__inner-container { max-width: var(--bmy-container); margin: 0 auto; }
.bmy-narrow { max-width: calc(var(--bmy-reading) + 40px); }
.bmy-band .bmy-section-intro { margin-bottom: 28px; }
@media (max-width: 760px) {
	.bmy-page-hero, .bmy-band { padding: 44px 16px !important; }
	.bmy-page-hero { padding-top: 36px !important; padding-bottom: 36px !important; }
}

/* Anchor targets clear the sticky header */
.bmy-page [id] { scroll-margin-top: calc(var(--bmy-admin-bar) + 100px); }

/* Columns */
.bmy-page .wp-block-columns { gap: 24px; margin-bottom: 0; }
.bmy-page .wp-block-columns.bmy-split { gap: 56px; align-items: center !important; }
.bmy-page .wp-block-columns + .wp-block-columns { margin-top: 24px; }
@media (max-width: 781px) { .bmy-page .wp-block-columns.bmy-split { gap: 28px; } }

/* Cards and callouts */
/* A lone card beside a plain column keeps its natural height. */
.bmy-page .wp-block-column.bmy-card:has(+ .wp-block-column:not(.bmy-card)),
.bmy-page .wp-block-column:not(.bmy-card) + .wp-block-column.bmy-card { align-self: flex-start; }
.bmy-card {
	background: #fff; border: 1px solid var(--bmy-border); border-radius: var(--bmy-radius);
	padding: 24px !important; box-sizing: border-box;
}
.bmy-band.is-white .bmy-card { background: var(--bmy-page); }
.bmy-card > :last-child { margin-bottom: 0; }
.bmy-card h3 { font-size: 19px; }
.bmy-callout {
	background: var(--bmy-lilac-pale); border-radius: var(--bmy-radius); padding: 24px 28px !important; border-left: 4px solid var(--bmy-purple);
}
.bmy-band.is-tint .bmy-callout { background: #fff; }
.bmy-callout > :last-child { margin-bottom: 0; }

/* Images */
.bmy-page .wp-block-image { margin: 0; }
.bmy-page .wp-block-image img { border-radius: var(--bmy-radius); width: 100%; height: auto; object-fit: cover; }
.bmy-page .wp-block-image.is-portrait img { aspect-ratio: 1; border-radius: 50%; max-width: 220px; }
.bmy-page .wp-block-image figcaption { font-size: 15px; color: var(--bmy-text-2); margin-top: 8px; }

/* Lists */
.bmy-checklist { list-style: none; padding-left: 0 !important; }
.bmy-checklist li { position: relative; padding-left: 32px; }
.bmy-checklist li::before {
	content: ""; position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 50%;
	background: var(--bmy-lilac-pale) url("../img/icons/check-purple.svg") center / 13px no-repeat;
}
.bmy-band.is-tint .bmy-checklist li::before { background-color: #fff; }
.bmy-steps { list-style: none; padding-left: 0 !important; counter-reset: bmy-step; display: grid; gap: 12px; }
.bmy-steps li {
	position: relative; counter-increment: bmy-step; margin: 0; max-width: none;
	padding: 18px 20px 18px 68px; background: #fff; border: 1px solid var(--bmy-border); border-radius: var(--bmy-radius);
}
.bmy-steps li::before {
	content: counter(bmy-step); position: absolute; left: 18px; top: 16px; width: 34px; height: 34px; border-radius: 50%;
	background: var(--bmy-purple-deep); color: #fff; font: 700 16px/34px var(--bmy-font-head); text-align: center;
}
.bmy-steps li strong { color: var(--bmy-purple-deep); }

/* FAQs (Details block) */
.bmy-page .wp-block-details {
	background: #fff; border: 1px solid var(--bmy-border); border-radius: var(--bmy-radius); padding: 0; margin: 0 0 10px;
	max-width: var(--bmy-reading);
}
.bmy-page .wp-block-details summary {
	cursor: pointer; padding: 16px 52px 16px 20px; font-weight: 700; color: var(--bmy-text); position: relative; list-style: none;
}
.bmy-page .wp-block-details summary::-webkit-details-marker { display: none; }
.bmy-page .wp-block-details summary::after {
	content: ""; position: absolute; right: 18px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%);
	background: url("../img/icons/chevron-purple.svg") center / contain no-repeat; transition: transform .15s;
}
.bmy-page .wp-block-details[open] summary::after { transform: translateY(-50%) rotate(180deg); }
.bmy-page .wp-block-details > :not(summary) { padding: 0 20px; }
.bmy-page .wp-block-details > :last-child { padding-bottom: 16px; }

/* Quotes */
.bmy-page .wp-block-quote {
	margin: 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--bmy-lilac); font-family: var(--bmy-font-body);
}
.bmy-page .wp-block-quote p { font-style: italic; color: var(--bmy-text); }
.bmy-page .wp-block-quote cite { font-size: 15px; color: var(--bmy-text-2); font-style: normal; }

/* Buttons */
.bmy-page .wp-block-buttons, .bmy-article .wp-block-buttons { gap: 12px; margin-top: 24px; }
.bmy-page .wp-block-button__link, .bmy-article .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px;
	border: 2px solid var(--bmy-purple); border-radius: var(--bmy-radius-btn); background: var(--bmy-purple); color: #fff !important;
	font: 600 17px/1 var(--bmy-font-body); text-decoration: none; box-sizing: border-box; transition: background .15s, border-color .15s;
}
.bmy-page .wp-block-button__link:hover { background: var(--bmy-purple-deep); border-color: var(--bmy-purple-deep); }
.bmy-page .is-style-outline .wp-block-button__link { background: transparent; color: var(--bmy-purple) !important; }
.bmy-page .is-style-outline .wp-block-button__link:hover { background: var(--bmy-lilac-pale); }
.bmy-band.is-purple .wp-block-button__link { background: #fff; border-color: #fff; color: var(--bmy-purple-deep) !important; }
.bmy-band.is-purple .is-style-outline .wp-block-button__link { background: transparent; border-color: rgba(255,255,255,.7); color: #fff !important; }
@media (max-width: 480px) { .bmy-page-hero .wp-block-button { flex: 1 1 100%; } .bmy-page-hero .wp-block-button__link { width: 100%; } }

/* Table (e.g. course sessions) */
.bmy-page .wp-block-table table { border-collapse: collapse; width: 100%; background: #fff; border-radius: var(--bmy-radius); overflow: hidden; }
.bmy-page .wp-block-table td, .bmy-page .wp-block-table th { border: 1px solid var(--bmy-border); padding: 10px 14px; text-align: left; }

/* ==========================================================================
   News
   ========================================================================== */
.bmy-news-hero { padding: 52px 0; background: linear-gradient(180deg, #fff 0%, var(--bmy-page) 100%); border-bottom: 1px solid var(--bmy-border); }
.bmy-news-hero h1 { font-family: var(--bmy-font-head); color: var(--bmy-purple-deep); font-weight: 700; letter-spacing: -.01em; font-size: clamp(32px, 4.4vw, 46px); margin: 0 0 10px; line-height: 1.15; }
.bmy-news-hero p { margin: 0; max-width: 640px; font-size: 20px; }
.bmy-news-years { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.bmy-news-years a {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px;
	border: 1.5px solid var(--bmy-border); background: #fff; color: var(--bmy-text) !important; font-weight: 600; font-size: 15px; text-decoration: none;
}
.bmy-news-years a:hover { border-color: var(--bmy-purple); }
.bmy-news-years a[aria-current] { background: var(--bmy-purple-deep); border-color: var(--bmy-purple-deep); color: #fff !important; }

.bmy-news-body { padding: 48px 0 64px; }
.bmy-feature {
	display: grid; grid-template-columns: 220px 1fr; gap: 32px; align-items: start;
	padding: 32px; margin-bottom: 40px; background: #fff; border: 1px solid var(--bmy-border); border-radius: 16px;
	box-shadow: var(--bmy-shadow);
}
.bmy-feature__date {
	display: flex; flex-direction: column; align-items: center; justify-content: center; aspect-ratio: 1;
	border-radius: 14px; background: var(--bmy-lilac-pale); color: var(--bmy-purple-deep); text-align: center;
	background-image: url("../img/lotus-white-faint.png"); background-size: 70%; background-position: center; background-repeat: no-repeat;
}
.bmy-feature__date .d { font: 700 64px/1 var(--bmy-font-head); }
.bmy-feature__date .m { font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: 15px; margin-top: 6px; }
.bmy-feature__date .y { font-size: 14px; color: var(--bmy-text-2); }
.bmy-feature__label { display: inline-block; margin-bottom: 10px; padding: 4px 10px; border-radius: 999px; background: var(--bmy-purple-deep); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.bmy-feature h2 { font-size: clamp(26px, 3vw, 34px); margin: 0 0 12px; }
.bmy-feature h2 a, .bmy-news-card h2 a { color: inherit; text-decoration: none; }
.bmy-feature h2 a:hover, .bmy-news-card h2 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.bmy-feature p { margin: 0 0 16px; font-size: 18px; }
@media (max-width: 700px) {
	.bmy-feature { grid-template-columns: 1fr; padding: 22px; gap: 18px; }
	.bmy-feature__date { aspect-ratio: auto; flex-direction: row; gap: 10px; padding: 12px; justify-content: flex-start; background-image: none; }
	.bmy-feature__date .d { font-size: 28px; }
	.bmy-feature__date .m { margin: 0; }
}

.bmy-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 960px) { .bmy-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .bmy-news-grid { grid-template-columns: 1fr; } }
.bmy-news-card {
	display: flex; flex-direction: column; padding: 22px; background: #fff; border: 1px solid var(--bmy-border); border-radius: var(--bmy-radius);
	transition: box-shadow .2s, border-color .2s;
}
.bmy-news-card:hover { border-color: var(--bmy-lilac); box-shadow: var(--bmy-shadow); }
.bmy-news-card time { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 10px; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--bmy-purple); }
.bmy-news-card h2 { font-size: 20px; margin: 0 0 10px; line-height: 1.3; }
.bmy-news-card p { margin: 0 0 16px; font-size: 16px; color: var(--bmy-text-2); }
.bmy-news-card .bmy-link { margin-top: auto; font-size: 16px; }
.bmy-news-section-title { margin: 0 0 18px; font-size: 24px; }

.bmy-pagination { margin-top: 36px; }
.bmy-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.bmy-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px;
	border: 1.5px solid var(--bmy-border); border-radius: 8px; background: #fff; color: var(--bmy-text) !important; text-decoration: none; font-weight: 600;
}
.bmy-pagination .page-numbers.current { background: var(--bmy-purple-deep); border-color: var(--bmy-purple-deep); color: #fff !important; }
.bmy-pagination .page-numbers.dots { border: 0; background: none; }

/* Single article */
.bmy-article-head { padding: 48px 0 36px; background: linear-gradient(180deg, #fff 0%, var(--bmy-page) 100%); border-bottom: 1px solid var(--bmy-border); }
.bmy-article-head .bmy-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 18px; font-weight: 600; font-size: 16px; text-decoration: none; }
.bmy-article-head .bmy-back img { transform: rotate(180deg); }
.bmy-article-head time { display: block; margin-bottom: 10px; font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--bmy-purple); }
.bmy-article-head h1 { font-family: var(--bmy-font-head); color: var(--bmy-purple-deep); font-weight: 700; letter-spacing: -.01em; font-size: clamp(30px, 4vw, 42px); margin: 0; line-height: 1.15; }
.bmy-article { padding: 40px 0 24px; }
.bmy-article .bmy-container { max-width: calc(var(--bmy-reading) + 48px); }
.bmy-article-content { font-size: 18px; }
.bmy-article-content > * { margin-top: 0; margin-bottom: 18px; }
.bmy-article-content h2 { font-size: 26px; margin-top: 32px; }
.bmy-article-content h3 { font-size: 20px; margin-top: 26px; }
.bmy-article-content img { border-radius: var(--bmy-radius); height: auto; }
.bmy-article-content a { text-underline-offset: 3px; }
.bmy-article-cta {
	margin: 36px 0 0; padding: 26px 28px; background: var(--bmy-lilac-pale); border-radius: var(--bmy-radius);
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
}
.bmy-article-cta p { margin: 0; font-family: var(--bmy-font-head); font-weight: 700; font-size: 20px; color: var(--bmy-purple-deep); }
.bmy-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 32px 0 56px; }
.bmy-post-nav a {
	display: block; padding: 18px 20px; background: #fff; border: 1px solid var(--bmy-border); border-radius: var(--bmy-radius);
	text-decoration: none; color: var(--bmy-text) !important; font-weight: 600; line-height: 1.35;
}
.bmy-post-nav a:hover { border-color: var(--bmy-purple); }
.bmy-post-nav span { display: block; margin-bottom: 4px; font-size: 13px; letter-spacing: .07em; text-transform: uppercase; color: var(--bmy-purple); }
.bmy-post-nav .next { text-align: right; grid-column: 2; }
@media (max-width: 620px) { .bmy-post-nav { grid-template-columns: 1fr; } .bmy-post-nav .next { grid-column: 1; text-align: left; } }
.bmy-page .wp-block-image + .wp-block-heading { margin-top: 28px; }
