/* ==========================================================================
   Growces (PCC child theme) — layout layer for Elementor flexbox containers.
   Loads after components.css. Generic container rules use :where() so that
   component classes (grids, cards) always win over them.
   ========================================================================== */

/* 1. Containers ------------------------------------------------------------ */
:where(.e-con) { display: flex; flex-direction: column; gap: var(--e-gap, 1.1rem); min-width: 0; }
:where(.e-con.is-row) { flex-direction: row; flex-wrap: nowrap; align-items: center; gap: clamp(2rem, 6vw, 5.5rem); }
:where(.e-con-inner) { display: flex; flex-direction: column; gap: var(--e-gap, 1.1rem); width: 100%; }
.e-con.is-row > .e-con { flex: 1 1 0; }
.e-con.is-row > .e-con[style*="--w"] { flex: 0 1 var(--w); }
.pcc-section > .e-con-inner { max-width: var(--container); margin-inline: auto; }
.pcc-section.is-row > .e-con-inner { flex-direction: row; align-items: center; gap: clamp(2rem, 6vw, 5.5rem); }
.pcc-section.is-row > .e-con-inner > .e-con { flex: 1 1 0; }
.pcc-section--center > .e-con-inner { align-items: center; text-align: center; }
.pcc-section--center > .e-con-inner > .elementor-widget-text-editor { max-width: 46rem; }
.pcc-section--narrow > .e-con-inner { max-width: var(--narrow); }
.pcc-section--wide > .e-con-inner { max-width: var(--wide); }

/* Widgets: spacing comes from the container gap, not from element margins. */
.elementor-widget :is(h1, h2, h3, h4, p, ul, ol, blockquote, figure):last-child { margin-bottom: 0; }
.elementor-widget :is(h1, h2, h3, h4, p, ul, ol, blockquote, figure):first-child { margin-top: 0; }
.elementor-widget-image figure { margin: 0; }
.elementor-widget-image img { width: 100%; }
.pcc-col { min-width: 0; }

/* Splits: legacy two-column rows */
.e-con.is-row.pcc-split--media > .e-con:first-child { flex-grow: .9; }
.e-con.is-row.pcc-split--media > .e-con:last-child { flex-grow: 1.1; }
.e-con.is-row.pcc-split--heading { align-items: flex-start; }
.e-con.is-row.pcc-split--heading > .e-con:first-child { flex-grow: .8; }
.e-con.is-row.pcc-split--heading > .e-con:last-child { flex-grow: 1.2; }

/* Buttons row */
.pcc-btns { display: flex; flex-direction: row; flex-wrap: wrap; gap: .75rem 1rem; margin-top: .65rem; }
.pcc-section--center .pcc-btns, .pcc-center .pcc-btns, .pcc-btns.pcc-center { justify-content: center; }
.pcc-btns--large .elementor-button { min-height: 58px; padding-inline: 2.2rem; font-size: 1.08rem; }

@media (max-width: 860px) {
	:where(.e-con.is-row), .pcc-section.is-row > .e-con-inner { flex-direction: column; align-items: stretch; }
	.e-con.is-row > .e-con, .e-con.is-row > .e-con[style*="--w"], .pcc-section.is-row > .e-con-inner > .e-con { flex: 1 1 auto; }
	.e-con.is-row.pcc-btns { flex-direction: row; }
}

/* 2. Page header (sub-pages) ------------------------------------------------- */
.pcc-page-header { background: var(--paper-2); border-bottom: 1px solid var(--line-2); padding-block: clamp(2.75rem, 6vw, 4.75rem) clamp(2.25rem, 5vw, 3.5rem); }
.pcc-page-header > .e-con-inner { max-width: var(--narrow); align-items: center; text-align: center; gap: .6rem; }
.pcc-page-header .pcc-kicker { margin: 0; }
.pcc-page-header .pcc-lead p { color: var(--muted); }
.pcc-prose > .e-con-inner { max-width: var(--narrow); gap: 1.4rem; }
.pcc-prose .elementor-widget-text-editor h2 { margin-top: 1.6em; }
.pcc-prose .elementor-widget-shortcode, .pcc-prose .e-con.is-row { width: 100%; }
.pcc-prose:has(.pcc-contact-cols) > .e-con-inner { max-width: 1120px; }

/* Legacy landing heroes keep their split; balance the columns. */
.pcc-page-hero .e-con.is-row { align-items: center; }
.pcc-page-hero--text > .e-con-inner { align-items: center; text-align: center; }

/* 3. Image frame (replaces the arch) ------------------------------------------ */
.elementor-widget-image.is-style-frame { max-width: 470px; width: 100%; margin-inline: auto; padding: 0 16px 16px 0; }
.is-style-frame img {
	aspect-ratio: 4 / 5; object-fit: cover; object-position: center 18%;
	border-radius: 20px; background: var(--white);
	box-shadow: 16px 16px 0 0 var(--sage-100);
}
.is-style-frame figcaption { margin-top: 1.4rem; padding-inline-start: 2px; }
.is-style-frame figcaption strong { display: block; font-family: var(--serif); font-size: 1.2rem; font-weight: 500; color: var(--forest); }
.is-style-band-cream .is-style-frame img, .is-style-band-sage .is-style-frame img { box-shadow: 16px 16px 0 0 var(--white); }
@media (prefers-reduced-motion: no-preference) {
	.pcc-hero__media { animation-name: pcc-rise; }
}

/* 4. Home ------------------------------------------------------------------- */
.pcc-hero .pcc-hero__text { gap: 1.2rem; }
.pcc-hero .pcc-display { margin: 0; }
.pcc-founder .is-style-frame img { object-position: center 30%; aspect-ratio: 1 / 1; }
.pcc-book-teaser .e-con.is-row, .pcc-heritage .e-con.is-row { align-items: center; }
.pcc-heritage .is-style-frame img { aspect-ratio: 4 / 5; }

/* 5. Person page (About Me) and team — after InstiTEM's person layout ---------- */
.pcc-person-head { padding-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.pcc-person-head > .e-con-inner { max-width: 940px; align-items: center; text-align: center; }
.pcc-person-head h1 { font-size: var(--fs-h1); max-width: 24ch; margin-inline: auto; }
.pcc-person > .e-con-inner { max-width: 1100px; }
.pcc-person .pcc-person__media { flex: 0 1 42%; }
.pcc-person .pcc-person__text { flex: 1 1 0; gap: 1.2rem; }
.pcc-person .is-style-frame { max-width: 420px; }
.pcc-person .is-style-frame img { aspect-ratio: 4 / 5; object-position: center 12%; }
.pcc-person--founder .is-style-frame img { aspect-ratio: 1 / 1; object-position: center 28%; }
.pcc-eyebrow p, .pcc-eyebrow { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--saffron-ink); margin: 0; }
.pcc-person .pcc-role p { color: var(--saffron-ink); font-weight: 600; }

.pcc-story > .e-con-inner { align-items: flex-start; max-width: 1100px; }
.pcc-story__text { flex: 1.35 1 0 !important; }
.pcc-story__timeline { flex: 1 1 0 !important; background: var(--paper-2); border-radius: var(--radius); padding: clamp(1.4rem, 3vw, 2.2rem); position: sticky; top: calc(var(--header-h) + 1.5rem); }
.pcc-story__timeline .pcc-timeline { margin: 0; }

.pcc-team > .e-con-inner { max-width: 1100px; }
.pcc-members { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem); }
.pcc-member { align-items: flex-start !important; gap: 1.5rem !important; }
.pcc-member__media { flex: 0 0 168px !important; }
.pcc-member__photo img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center 15%; border-radius: 14px; background: var(--sage-100); }
.pcc-member__body { flex: 1 1 0; gap: .5rem !important; }
.pcc-member__body h3 { font-size: 1.45rem; margin: 0; }
.pcc-member__body .pcc-role p { font-size: .95rem; font-weight: 600; color: var(--saffron-ink); }
.pcc-member__body .elementor-widget-text-editor p { font-size: 1rem; }
@media (max-width: 960px) { .pcc-members { grid-template-columns: 1fr; } }
@media (max-width: 520px) {
	.pcc-member { flex-direction: column !important; }
	.pcc-member__media { flex-basis: auto !important; width: 100%; max-width: 280px; }
}

/* 6. TPM Science -------------------------------------------------------------- */
.pcc-hero__manuscript img { aspect-ratio: auto; object-fit: contain; background: transparent; box-shadow: none; border-radius: 6px; }
.elementor-widget-image.pcc-hero__manuscript { padding: 0; max-width: 430px; }
.pcc-hero__manuscript figcaption { font-size: .9rem; font-style: italic; color: var(--muted); text-align: center; }
.pcc-film > .e-con-inner { max-width: 1000px; align-items: center; text-align: center; gap: .5rem; }
.pcc-film__frame { width: 100%; margin-bottom: 1.6rem; }
.pcc-film__title { margin: 0; }
.pcc-film__title h2 { color: var(--paper); margin: 0; }
.pcc-film__sub { font-family: var(--serif); font-style: italic; font-size: 1.35rem; color: var(--sage-200) !important; margin: 0 0 .2rem !important; }
.pcc-film__meta { font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sage-200) !important; }

/* Video widget (YouTube) and its placeholder */
.elementor-widget-video { width: 100%; }
.elementor-widget-video .elementor-wrapper { aspect-ratio: 16 / 9; width: 100%; border-radius: var(--radius); overflow: hidden; background: #111; }
.elementor-widget-video iframe { width: 100%; height: 100%; border: 0; display: block; }
.pcc-video-ph { display: grid; place-content: center; justify-items: center; gap: .8rem; color: var(--sage-200); background: linear-gradient(135deg, #1d2e22, #2f4636) !important; font-size: .95rem; }

/* 7. Placeholders and cards ----------------------------------------------------- */
.pcc-ph {
	display: grid; place-content: center; justify-items: center; gap: .45rem; width: 100%;
	background: repeating-linear-gradient(135deg, var(--sage-50) 0 14px, var(--paper-2) 14px 28px);
	border: 1px dashed var(--sage-200); border-radius: var(--radius); color: var(--sage-700); font-size: .85rem; font-weight: 600;
}
.pcc-ph--16x9 { aspect-ratio: 16 / 9; }
.pcc-ph--3x2 { aspect-ratio: 3 / 2; }
.pcc-ph--4x5 { aspect-ratio: 4 / 5; }
.pcc-ph--1x1 { aspect-ratio: 1; }
.pcc-ph--21x9 { aspect-ratio: 21 / 9; }
.pcc-ph--video { background: linear-gradient(135deg, #1d2e22, #34503d); border: 0; color: var(--sage-200); }

.pcc-grid { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); width: 100%; }
.pcc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pcc-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .pcc-grid--3, .pcc-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .pcc-grid--3 { grid-template-columns: 1fr; } }

.pcc-card { background: var(--white); border: 1px solid var(--line-2); border-radius: var(--radius); padding: .85rem .85rem 1.35rem; gap: .7rem !important; text-align: start; }
.pcc-card > :not(.pcc-ph-wrap) { padding-inline: .45rem; }
.pcc-card h3 { font-size: 1.22rem; margin: .35rem 0 0; }
.pcc-card__excerpt p { font-size: .97rem; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pcc-card__subtitle p { font-family: var(--serif); font-style: italic; color: var(--sage-700); font-size: 1.05rem; }
.pcc-card__cat p { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--saffron-ink); }
.pcc-card .elementor-widget-button { margin-top: auto; }
.pcc-insights-grid .pcc-card__excerpt p { -webkit-line-clamp: 2; }
.pcc-video-card .pcc-card__excerpt p { -webkit-line-clamp: 4; }
.pcc-video-grid { margin-top: clamp(1.5rem, 3vw, 2.5rem); }

/* Co-Authored Projects: horizontal cards */
.pcc-hcards { display: flex; flex-direction: column; gap: clamp(1.5rem, 3vw, 2.25rem); max-width: 1000px; margin-inline: auto; width: 100%; }
.pcc-hcard { background: var(--white); border: 1px solid var(--line-2); border-radius: var(--radius); padding: clamp(1rem, 2.5vw, 1.75rem); gap: clamp(1.25rem, 3.5vw, 2.75rem) !important; align-items: center !important; }
.pcc-hcard__media { flex: 0 0 220px !important; }
.pcc-hcard__body { flex: 1 1 0; gap: .5rem !important; }
.pcc-hcard__title h3 { font-size: clamp(1.35rem, 1.1rem + .9vw, 1.8rem); margin: 0; }
.pcc-hcard__person p { color: var(--saffron-ink); font-weight: 600; }
.pcc-hcard__quote blockquote { margin: .4rem 0 0; padding: 0 0 0 1.1rem; border-inline-start: 2px solid var(--saffron); font-family: var(--serif); font-style: italic; font-size: 1.12rem; color: var(--ink); }
@media (max-width: 700px) {
	.pcc-hcard { flex-direction: column !important; align-items: stretch !important; }
	.pcc-hcard__media { flex-basis: auto !important; max-width: 240px; }
}

/* Global Insights: featured article */
.pcc-feature-article { background: var(--white); border: 1px solid var(--line-2); border-radius: var(--radius); padding: .9rem; gap: 0 !important; }
.pcc-feature-article__body { padding: clamp(1.25rem, 3vw, 2.25rem) clamp(.5rem, 2vw, 1.5rem) clamp(.75rem, 2vw, 1rem); gap: .8rem !important; max-width: 820px; }
.pcc-feature-article__body h2 { margin: 0; }
.pcc-feature-article__excerpt p { color: var(--muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 640px) { .pcc-feature-article .pcc-ph--21x9 { aspect-ratio: 16 / 9; } }

/* 8. Symposium ----------------------------------------------------------------- */
.pcc-symp-hero { padding-top: clamp(2rem, 4vw, 3.5rem); }
.pcc-symp-hero > .e-con-inner { max-width: 1000px; align-items: center; text-align: center; gap: 1rem; }
.pcc-symp-hero .pcc-film__frame { margin-bottom: 1.25rem; }
.pcc-symp__title h1 { font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3rem); max-width: 26ch; margin-inline: auto; }
.pcc-symp-benefits .pcc-feature { text-align: start; }
.pcc-speaker { align-items: center; text-align: center; gap: .55rem !important; }
.pcc-speaker .pcc-ph-wrap { width: 100%; }
.pcc-speaker .pcc-ph { border-radius: 50%; max-width: 168px; margin-inline: auto; }
.pcc-speaker h3 { font-size: 1.15rem; margin: .4rem 0 0; }
.pcc-speaker__paper p { font-size: .93rem; color: var(--muted); font-style: italic; }
#symposium-register .elementor-widget-shortcode { width: 100%; text-align: start; }
#symposium-register > .e-con-inner { align-items: center; text-align: center; }

/* 9. Book, apply, mizaj --------------------------------------------------------- */
.pcc-endorsements { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem) !important; }
@media (max-width: 1024px) { .pcc-endorsements { grid-template-columns: 1fr; max-width: 680px; margin-inline: auto; } }
.pcc-endorse-card .elementor-widget-image.is-style-round { max-width: 96px; }
.pcc-endorsement blockquote p { font-style: italic; }
.pcc-apply__form { width: 100%; max-width: 760px; margin-inline: auto; }

.pcc-mizaj-result { width: 100%; max-width: 760px; margin: 0 auto; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2rem); text-align: start; box-shadow: var(--shadow); }
.pcc-mizaj-result[hidden] { display: none; }
.pcc-mizaj-result h3 { margin: 0 0 .35rem; }
.pcc-mizaj-result__lead { color: var(--muted); }
.pcc-mizaj-result__list { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: .9rem; }
.pcc-mizaj-result__row { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) auto; gap: .8rem; align-items: center; font-size: .97rem; }
.pcc-mizaj-result__bar { height: 10px; border-radius: 99px; background: var(--paper-2); overflow: hidden; }
.pcc-mizaj-result__bar span { display: block; height: 100%; width: calc(var(--v) * 100%); background: var(--t, var(--forest)); border-radius: inherit; transition: width .5s var(--ease); }
.pcc-mizaj-result__row.is-top { font-weight: 700; }
.pcc-mizaj-result__picked { margin: 1.25rem 0 0; padding: 0; list-style: none; font-size: .93rem; color: var(--muted); display: grid; gap: .35rem; }
.pcc-mizaj-result__picked strong { color: var(--forest); }
@media (max-width: 520px) { .pcc-mizaj-result__row { grid-template-columns: 1fr auto; } .pcc-mizaj-result__bar { grid-column: 1 / -1; grid-row: 2; } }

/* 10. Accordion (Elementor nested accordion) ------------------------------------ */
.e-n-accordion-item { border-bottom: 1px solid var(--line); }
.e-n-accordion-item-title { list-style: none; cursor: pointer; padding: 1.15rem 2.5rem 1.15rem 0; position: relative; font-family: var(--serif); font-size: 1.2rem; color: var(--forest); }
.e-n-accordion-item-title::-webkit-details-marker { display: none; }
.e-n-accordion-item-title::after { content: "+"; position: absolute; inset-inline-end: .25rem; top: 50%; transform: translateY(-50%); font-family: var(--sans); font-size: 1.4rem; color: var(--saffron-ink); }
.e-n-accordion-item[open] > .e-n-accordion-item-title::after { content: "–"; }
.e-n-accordion-item-content { padding: 0 0 1.25rem; color: var(--ink); }

/* 11. Elementor: header and footer templates ---------------------------------------- */
/* The template's wrapper is what sticks (a sticky child cannot leave its parent). */
.elementor:has(> .site-header) { position: sticky; top: 0; z-index: 100; }
.admin-bar .elementor:has(> .site-header) { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor:has(> .site-header) { top: 46px; } }
@media (max-width: 600px) { .admin-bar .elementor:has(> .site-header) { top: 0; } }
.site-header.e-con { position: relative; top: auto; --padding-top: 0; --padding-bottom: 0; }
.site-header > .e-con-inner {
	max-width: var(--wide); width: min(var(--wide), 100% - 2 * var(--gutter)); height: var(--header-h);
	flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; gap: 1.5rem !important;
}
.site-header .site-logo { flex: none !important; width: auto; }
.site-header .site-logo img { width: 102px; }
.site-header .elementor-widget-shortcode { flex: 1 1 auto !important; min-width: 0; }
.site-header .elementor-shortcode { display: flex; align-items: center; justify-content: center; }
.site-header .site-header__apply { flex: none !important; }
.site-header .site-header__apply .elementor-button { min-height: 40px; padding: .55rem 1rem; font-size: .95rem; }
@media (max-width: 1239px) {
	.site-header .site-header__apply { order: 1; margin-inline-start: auto; }
	.site-header .elementor-widget-shortcode { order: 2; flex: none !important; }
}
@media (max-width: 480px) { .site-header .site-header__apply { display: none; } .site-header .site-logo img { width: 88px; } }

.site-footer.e-con { background: var(--forest-2); color: #C9D2C3; font-size: .95rem; --padding-top: clamp(3rem, 7vw, 5rem); --padding-bottom: 0; }
.site-footer > .e-con-inner { max-width: var(--wide); width: min(var(--wide), 100% - 2 * var(--gutter)); gap: 0 !important; }
.site-footer__main { align-items: flex-start !important; gap: clamp(2rem, 5vw, 4rem) !important; padding-bottom: 2.5rem; }
.site-footer__brand { flex: 1.1 1 0 !important; gap: 1rem !important; }
.site-footer__logo img { width: 140px; }
.site-footer__brand .elementor-widget-image { text-align: start; }
.site-footer__tagline p { max-width: 24rem; line-height: 1.6; color: #C9D2C3; }
.site-footer__nav { flex: 2.4 1 0 !important; display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 2rem 1.5rem !important; }
.site-footer__col { gap: .9rem !important; }
.site-footer__heading .elementor-heading-title { font-family: var(--sans); font-size: .95rem; font-weight: 700; color: var(--white); letter-spacing: 0; line-height: 1.3; }
.site-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .3rem; }
.site-footer__links a { display: inline-block; padding-block: .25rem; line-height: 1.4; }
.site-footer__legal { border-top: 1px solid rgb(231 236 225 / .14); padding-block: 1.5rem 2.5rem; gap: .75rem !important; font-size: .86rem; color: #9EAA98; }
.site-footer__legal p { margin: 0; color: #9EAA98; }
.site-footer__copy a { margin-inline-start: 1.25rem; }
@media (max-width: 860px) { .site-footer__main { flex-direction: column !important; } .site-footer__brand, .site-footer__nav { flex: 1 1 auto !important; width: 100%; } }

/* 12. Elementor: widget defaults ----------------------------------------------------- */
.elementor-widget-heading .elementor-heading-title { line-height: 1.12; }
.elementor-widget-heading h3.elementor-heading-title { line-height: 1.25; }
.elementor-widget-image { text-align: start; }
.pcc-section--center .elementor-widget-image, .pcc-page-header .elementor-widget-image { text-align: center; }
.elementor-widget-button .elementor-button { border-radius: var(--radius-sm); }
.elementor-widget-button .elementor-button-content-wrapper { gap: .5em; }
.pcc-btns > .elementor-widget-button { width: auto; flex: none; }

/* Placeholder images: shown at their intended shape. */
.pcc-ph-img img { width: 100%; object-fit: cover; border-radius: var(--radius); }
.pcc-ph-img--16x9 img { aspect-ratio: 16 / 9; }
.pcc-ph-img--3x2 img { aspect-ratio: 3 / 2; }
.pcc-ph-img--4x5 img { aspect-ratio: 4 / 5; }
.pcc-ph-img--1x1 img { aspect-ratio: 1; }
.pcc-ph-img--21x9 img { aspect-ratio: 21 / 9; }
@media (max-width: 640px) { .pcc-ph-img--21x9 img { aspect-ratio: 16 / 9; } }
.pcc-speaker .pcc-ph-img img { border-radius: 50%; max-width: 168px; margin-inline: auto; }

/* Video slot: a frame until the YouTube link is added in Elementor. */
.pcc-video-slot { width: 100%; }
.pcc-video-slot:not(:has(.elementor-widget-video))::before {
	/* Elementor uses .e-con::before for its overlay, so every box property is reset. */
	content: "Video coming soon"; display: grid; place-items: center; aspect-ratio: 16 / 9; width: 100%; height: auto;
	position: static; opacity: 1; mix-blend-mode: normal; border: 0;
	border-radius: var(--radius); background: linear-gradient(135deg, #1d2e22, #34503d); color: var(--sage-200); font-size: .95rem; font-weight: 600;
}
.pcc-video-slot .elementor-wrapper { border-radius: var(--radius); overflow: hidden; }

/* Blog grid (growces_posts) */
.pcc-card__media { display: block; border-radius: calc(var(--radius) - 4px); overflow: hidden; }
.pcc-card__media img, .pcc-card__media .pcc-ph { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.pcc-post-card { display: flex; flex-direction: column; }
.pcc-post-card h3 a { color: inherit; text-decoration: none; }
.pcc-post-card h3 a:hover { color: var(--terracotta-ink); }
.pcc-post-card > p { margin: 0; }
.pcc-post-card .pcc-card__cat { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--saffron-ink); }
.pcc-post-card .pcc-card__subtitle { font-family: var(--serif); font-style: italic; color: var(--sage-700); font-size: 1.05rem; }
.pcc-post-card .pcc-card__excerpt { font-size: .97rem; color: var(--muted); }
.pcc-card__more { margin-top: auto; font-weight: 600; color: var(--forest); text-decoration: underline; text-decoration-color: var(--saffron); text-decoration-thickness: 2px; text-underline-offset: .35em; }
.pagination ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; padding: 0; margin: 2.5rem 0 0; }

/* Single posts and archives (Hello Elementor templates) */
body:not(.elementor-page) .site-main { max-width: var(--narrow); margin: 0 auto; padding: clamp(2.5rem, 6vw, 4.5rem) var(--gutter) clamp(4rem, 8vw, 6rem); box-sizing: content-box; }
body:not(.elementor-page) .site-main .entry-title { font-size: var(--fs-h1); }
.single-post .site-main .wp-post-image { border-radius: var(--radius); margin-bottom: 2rem; }

/* 13. Card icons: Elementor Icon widget (replaces the CSS badge) -------------------- */
.pcc-has-icon::before, .pcc-tool::before, .pcc-care::before { content: none !important; display: none !important; }
.pcc-has-icon .elementor-widget-heading h3::before, .pcc-tool .elementor-widget-heading h3::before, .pcc-care .elementor-widget-heading h3::before { content: none !important; }
.pcc-card-icon { margin-bottom: .35rem; }
.pcc-card-icon .elementor-icon { box-shadow: inset 0 0 0 1px var(--sage-200); }
.pcc-card-icon .elementor-icon svg { stroke-width: 1.6; }
.pcc-care .pcc-card-icon .elementor-icon { background-color: var(--white) !important; box-shadow: inset 0 0 0 1px var(--saffron), 0 0 0 8px var(--sage-50); }
.pcc-care .pcc-card-icon { margin-bottom: 1rem; }

/* 14. Loop Grids (Elementor Pro) ------------------------------------------------------ */
.pcc-loop { width: 100%; }
.pcc-loop .e-loop-item { height: 100%; }
.pcc-loop .e-loop-item > .e-con { height: 100%; }
.pcc-loop .pcc-card { display: flex; flex-direction: column; }
.pcc-card__media img, .pcc-video-thumb img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: calc(var(--radius) - 4px); display: block; }
.pcc-card__cat .elementor-heading-title { font-family: var(--sans); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--saffron-ink); line-height: 1.3; }
.pcc-card__title .elementor-heading-title { font-size: 1.22rem; line-height: 1.25; }
.pcc-card__title a, .pcc-hcard__title a, .pcc-feature-article .elementor-heading-title a { color: inherit; text-decoration: none; }
.pcc-card__title a:hover, .pcc-hcard__title a:hover, .pcc-feature-article .elementor-heading-title a:hover { color: var(--terracotta-ink); }
.pcc-card__subtitle, .pcc-card__subtitle p { font-family: var(--serif); font-style: italic; color: var(--sage-700); font-size: 1.05rem; line-height: 1.45; margin: 0; }
.pcc-card__excerpt, .pcc-card__excerpt p { font-size: .97rem; color: var(--muted); margin: 0; }
.pcc-loop .elementor-pagination { margin-top: 2.5rem; display: flex; justify-content: center; flex-wrap: wrap; gap: .4rem; font-weight: 600; }
.pcc-loop .elementor-pagination .page-numbers { min-width: 44px; min-height: 44px; display: inline-grid; place-items: center; padding: 0 .9rem; border-radius: 999px; border: 1px solid var(--line-2); background: var(--white); color: var(--forest); text-decoration: none; }
.pcc-loop .elementor-pagination .page-numbers.current { background: var(--forest); border-color: var(--forest); color: var(--white); }
.pcc-loop .elementor-pagination span.prev, .pcc-loop .elementor-pagination span.next { opacity: .45; }
.pcc-loop .e-loop-nothing-found-message { text-align: center; color: var(--muted); padding: 2rem 0; }

/* Featured article (Loop item) */
.pcc-loop .pcc-feature-article { align-items: stretch !important; }
@media (min-width: 768px) { .pcc-feature-article__media { flex: 0 0 55% !important; } }
@media (max-width: 767px) { .pcc-loop .pcc-feature-article, .pcc-feature-article__media, .pcc-feature-article__body { width: 100% !important; max-width: 100%; min-width: 0; } }
.pcc-feature-article__img, .pcc-feature-article__img a { height: 100%; }
.pcc-feature-article__img img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; border-radius: calc(var(--radius) - 4px); }
.pcc-feature-article__body { justify-content: center; }
@media (max-width: 767px) { .pcc-feature-article__img img { min-height: 0; aspect-ratio: 16 / 9; } }

/* Co-Authored card (Loop item) */
.pcc-hcard__img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: calc(var(--radius) - 4px); }
.pcc-hcard__person .elementor-heading-title { font-family: var(--sans); font-size: 1rem; font-weight: 600; color: var(--saffron-ink); line-height: 1.4; }
.pcc-quote-dyn { margin: .4rem 0 0; padding-inline-start: 1.1rem; border-inline-start: 2px solid var(--saffron); font-family: var(--serif); font-style: italic; font-size: 1.12rem; line-height: 1.55; color: var(--ink); }
.pcc-quote-dyn::before { content: "\201C"; }
.pcc-quote-dyn::after { content: "\201D"; }
.pcc-hcard .elementor-widget-button { margin-top: .5rem; }

/* Masterclass card (Loop item) */
.pcc-video-card__media { position: relative; }
.pcc-video-card__media::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 56px; height: 56px; translate: -50% -50%; border-radius: 50%; pointer-events: none;
	background: rgb(38 58 44 / .82) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 7.5v9l7.5-4.5z'/%3E%3C/svg%3E") center / 26px no-repeat; }
.pcc-video-card__duration .elementor-heading-title { font-family: var(--sans); font-size: .8rem; font-weight: 700; letter-spacing: .08em; color: var(--sage-700); line-height: 1.3; }
.pcc-video-card__duration .elementor-heading-title:not(:empty)::before { content: "Duration · "; font-weight: 600; }

/* 15. Single templates and the blog archive ------------------------------------------- */
.pcc-post-header > .e-con-inner { text-align: center; align-items: center; }
.pcc-post-header .elementor-widget-heading h1 { max-width: 22ch; margin-inline: auto; }
.pcc-post-header .pcc-lead, .pcc-post-header .pcc-lead p { max-width: 42rem; margin-inline: auto; }
.pcc-post-header .pcc-kicker .elementor-heading-title, .pcc-post-header .pcc-kicker a { font-family: var(--sans); font-size: .95rem; font-weight: 600; color: var(--saffron-ink); text-decoration: none; line-height: 1.3; }
.pcc-post-date .elementor-heading-title { font-family: var(--sans); font-size: .9rem; color: var(--muted); font-weight: 400; }
.pcc-post-hero img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--radius); }
@media (max-width: 767px) { .pcc-post-hero img { aspect-ratio: 16 / 10; } }
.pcc-post-body .elementor-widget-theme-post-content { font-size: 1.08rem; line-height: 1.75; }
.pcc-post-body .elementor-widget-theme-post-content :is(h2, h3) { margin-top: 2rem; }
.pcc-post-body .elementor-widget-theme-post-content img { border-radius: var(--radius); height: auto; }
.pcc-back-btn { margin-top: 1.5rem; }
.pcc-project { align-items: flex-start !important; gap: clamp(1.5rem, 4vw, 3.5rem) !important; }
.pcc-project__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.pcc-project__body { flex: 1 1 0; gap: 1.25rem !important; }
/* No external link → no button */
.pcc-ext-link:has(> .elementor-button:not([href])), .pcc-ext-link:has(> .elementor-button[href=""]) { display: none; }

/* Masterclass player */
.pcc-player { aspect-ratio: 16 / 9; width: 100%; border-radius: var(--radius); overflow: hidden; background: #1d2e22; }
.pcc-player iframe { width: 100%; height: 100%; border: 0; display: block; }
.pcc-player--empty { display: grid; place-items: center; background: linear-gradient(135deg, #1d2e22, #34503d); color: var(--sage-200); font-weight: 600; }
.pcc-player--empty p { margin: 0; color: inherit; }
.pcc-post-body .pcc-gate { margin-bottom: 1rem; }
