/* =============================================================================
   Pro Conferences – Product Page Content Column
   Category badge, key subjects, accordion, legacy detail rows.
   ============================================================================= */

:root {
	--pc-accent:        #66ca01;
	--pc-accent-dark:   #58b000;
	--pc-accent-light:  #f0fae5;
	--pc-purple:        #320067;
	--pc-text:          #0f172a;
	--pc-muted:         #64748b;
	--pc-border:        #e2e8f0;
	--pc-radius:        6px;
	--pc-ease:          cubic-bezier(.4, 0, .2, 1);
	--pc-dur:           180ms;
}

/* ── Hide the default WC breadcrumb on single product pages ──────────────── */

.single-product .woocommerce-breadcrumb {
	display: none !important;
}

/* ── Key Subjects block ──────────────────────────────────────────────────── */
/* Shown immediately after the product title.                                 */

.prc-key-subjects {
	margin: 0 0 1.5rem;
}

.prc-key-subjects__heading {
	font-size: .75rem !important;
	font-weight: 700 !important;
	letter-spacing: .07em !important;
	text-transform: uppercase !important;
	color: var(--pc-muted) !important;
	margin: 0 0 .625rem !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
}

.prc-key-subjects__list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.prc-key-subjects__item {
	display: flex;
	align-items: flex-start;
	gap: .45rem;
	font-size: .9rem;
	font-weight: 500;
	color: var(--pc-text);
	line-height: 1.4;
}

.prc-key-subjects__icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	margin-top: .15em;
	color: var(--pc-accent-dark);
}

/* ── Programme accordion ─────────────────────────────────────────────────── */

.prc-programme-accordion {
	display: flex;
	flex-direction: column;
	gap: .625rem;
}

/* <details> element — card style */
.prc-accordion-item {
	background: #fff;
	border: 1.5px solid var(--pc-border);
	border-radius: 14px;
	overflow: hidden;
	transition: background var(--pc-dur) var(--pc-ease),
	            border-color var(--pc-dur) var(--pc-ease);
}

.prc-accordion-item[open] {
	background: #f0f0f4;
	border-color: transparent;
}

/* <summary> — the clickable row */
.prc-accordion-item__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding: 1rem 1.25rem;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

/* Remove default disclosure triangle in all browsers */
.prc-accordion-item__header::-webkit-details-marker,
.prc-accordion-item__header::marker {
	display: none;
}

.prc-accordion-item__title {
	font-size: .9375rem;
	font-weight: 600;
	color: var(--pc-purple);
	line-height: 1.35;
}

/* Chevron — green, rotates when open */
.prc-accordion-item__chevron {
	width: 1.125rem;
	height: 1.125rem;
	flex-shrink: 0;
	color: var(--pc-accent-dark);
	transition: transform var(--pc-dur) var(--pc-ease);
}

.prc-accordion-item[open] > .prc-accordion-item__header .prc-accordion-item__chevron {
	transform: rotate(180deg);
}

/* Body */
.prc-accordion-item__body {
	padding: 0 1.25rem 1.25rem;
}

.prc-accordion-item__content {
	font-size: .9rem;
	line-height: 1.65;
	color: #374151;
}

.prc-accordion-item__content p {
	margin: 0 0 .75rem;
}

.prc-accordion-item__content p:last-child {
	margin: 0;
}

.prc-accordion-item__content ul,
.prc-accordion-item__content ol {
	padding-left: 1.25em;
	margin: 0 0 .75rem;
}

.prc-accordion-item__content ul li,
.prc-accordion-item__content ol li {
	margin-bottom: .25rem;
}

/* Nested lists */
.prc-accordion-item__content ul ul,
.prc-accordion-item__content ol ol,
.prc-accordion-item__content ul ol,
.prc-accordion-item__content ol ul {
	margin: .25rem 0 .25rem 0;
}

/* Underlined sub-headings rendered as <span style="text-decoration:underline"> */
.prc-accordion-item__content span[style*="underline"] {
	display: block;
	font-weight: 600;
	font-size: .875rem;
	margin: .75rem 0 .25rem;
	color: var(--pc-text);
}

/* ── Intro text above accordion ──────────────────────────────────────────── */

.prc-details-intro {
	font-size: .9375rem;
	line-height: 1.65;
	color: #374151;
	margin-bottom: 1.5rem;
}

.prc-details-intro p { margin: 0 0 .875rem; }
.prc-details-intro p:last-child { margin: 0; }

/* ── Legacy detail rows ──────────────────────────────────────────────────── */

.prc-details-legacy {
	font-size: .9375rem;
	line-height: 1.65;
	color: #374151;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--pc-border);
}

.prc-details-legacy p { margin: 0 0 .5rem; }
.prc-details-legacy p:last-child { margin: 0; }

.prc-details-legacy strong {
	font-size: inherit !important;
	font-weight: 600;
	color: var(--pc-text);
}

/* ── Sidebar speakers list ───────────────────────────────────────────────── */

.prc-sidebar-speakers {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: .625rem;
}

.prc-sidebar-speakers__item {
	display: flex;
	flex-direction: column;
	gap: .1rem;
}

.prc-sidebar-speakers__name {
	font-size: .875rem;
	font-weight: 600;
	color: var(--pc-text);
	line-height: 1.35;
}

.prc-sidebar-speakers__role {
	font-size: .775rem;
	color: var(--pc-muted);
	line-height: 1.4;
}

/* ── Multi-venue "choose your venue & date" list (sidebar) ───────────────── */

.prc-venue-choose {
	display: block;
	padding-left: 0 !important;
	margin-left: 0 !important;
}

.prc-venue-choose__label {
	display: block;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pc-muted);
	margin-bottom: .4rem;
}

/* ── Venue dropdown ──────────────────────────────────────────────────────── */

.prc-venue-dropdown {
	position: relative;
	margin-top: 0;
}

.prc-venue-dropdown__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	width: 100%;
	padding: .5rem .75rem;
	background: #f0f0f4;
	border: 1.5px solid #ddd;
	border-radius: 8px;
	cursor: pointer;
	text-align: left;
	font-size: .85rem;
	transition: border-color .15s;
}

.prc-venue-dropdown__trigger:hover,
.prc-venue-dropdown__trigger[aria-expanded="true"] {
	border-color: var(--pc-purple);
}

.prc-venue-dropdown__selected {
	display: flex;
	flex-direction: column;
	gap: .1rem;
	flex: 1;
	min-width: 0;
}

.prc-venue-dropdown__sel-name {
	font-weight: 600;
	color: var(--pc-text);
	white-space: normal;
	word-break: break-word;
}

.prc-venue-dropdown__sel-date {
	color: var(--pc-muted);
	font-size: .8rem;
}

.prc-venue-dropdown__chevron {
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	color: var(--pc-muted);
	transition: transform .2s;
}

.prc-venue-dropdown__trigger[aria-expanded="true"] .prc-venue-dropdown__chevron {
	transform: rotate(180deg);
}

.prc-venue-dropdown__list {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	z-index: 200;
	list-style: none !important;
	margin: 0 !important;
	padding: .3rem !important;
	background: #fff;
	border: 1.5px solid var(--pc-purple);
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0,0,0,.12);
}

.prc-venue-dropdown__option a {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: .5rem;
	padding: .45rem .6rem;
	border-radius: 6px;
	text-decoration: none !important;
	font-size: .85rem;
	transition: background .12s;
}

.prc-venue-dropdown__option a:hover {
	background: #f0f0f4;
}

.prc-venue-dropdown__option.is-active a {
	background: var(--pc-purple);
}

.prc-venue-dropdown__opt-name {
	font-weight: 600;
	color: var(--pc-text);
}

.prc-venue-dropdown__option.is-active .prc-venue-dropdown__opt-name {
	color: #fff;
}

.prc-venue-dropdown__opt-date {
	flex-shrink: 0;
	color: var(--pc-muted);
	white-space: nowrap;
	font-size: .8rem;
}

.prc-venue-dropdown__option.is-active .prc-venue-dropdown__opt-date {
	color: rgba(255,255,255,.75);
}

/* ── Speakers section below content ──────────────────────────────────────── */

.prc-speakers-section {
	margin: 2rem 0 0;
}

.prc-speakers-section__heading {
	font-size: .6875rem !important;
	font-weight: 800 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	color: var(--pc-muted) !important;
	margin: 0 0 1rem !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
}

/* ── Sponsors strip ──────────────────────────────────────────────────────── */

.prc-sponsors-strip {
	/* was 2rem/1.5rem — nearly double the 1.5rem rhythm used elsewhere on the
	   page (Key Subjects, accordion rows), reading as an oversized gap
	   (client feedback). */
	margin: 1rem 0 0;
	padding: 1rem 0;
	border-top: 1px solid var(--pc-border);
}

.prc-sponsors-strip__label {
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pc-muted);
	margin: 0 0 1rem;
}

.prc-sponsors-strip__logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem 2.5rem;
}

.prc-sponsors-strip__item {
	display: flex;
	align-items: center;
}

.prc-sponsors-strip__item a {
	display: flex;
	align-items: center;
	text-decoration: none;
}

.prc-sponsors-strip__img {
	display: block;
	max-height: 48px;
	max-width: 140px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: grayscale(100%) opacity(.65);
	transition: filter var(--pc-dur) var(--pc-ease);
}

.prc-sponsors-strip__item a:hover .prc-sponsors-strip__img,
.prc-sponsors-strip__item a:focus .prc-sponsors-strip__img {
	filter: grayscale(0%) opacity(1);
}

/* ── Bundle savings pill (single product page) ───────────────────────────── */
/* This plugin's own filter.css also styles .pcw-bundle-savings, but that
   file only loads on shop/archive pages — the single-product-page badge
   (PCW_Bundle_Savings::render_single_badge(), hooked right after the title)
   never actually had this pill styling applied at all, on any page it's
   rendered on, until it's duplicated here where single product pages
   actually load it. */
.pcw-bundle-savings {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem;
	margin: .4rem 0 .75rem;
	line-height: 1.3;
}

.pcw-bundle-savings__pill {
	display: inline-flex;
	align-items: center;
	padding: .25rem .65rem;
	background: #ecfdf5;
	border: 1px solid #6ee7b7;
	border-radius: 999px;
	font-size: .8125rem;
	font-weight: 700;
	color: #065f46;
}

.pcw-bundle-savings__pill--combined {
	/* Overrides the base rule's display:inline-flex — that treats each run
	   of text between the nested spans as its own anonymous flex item and
	   trims its leading/trailing whitespace, silently eating the space
	   before "vs" and before the final price. Plain inline flow doesn't. */
	display: inline;
	white-space: normal;
	font-weight: 500;
}

.pcw-bundle-savings__pill-amount {
	font-weight: 700;
}

/* Flatsome's "previous product" nav arrow (.next-prev-thumbs) renders right
   after this pill on bundle pages and brings its own ~17px default list
   margin-bottom with it, leaving a visible gap before the next sidebar box
   (client feedback). Zero it out only in this position. */
.pcw-bundle-savings + .next-prev-thumbs {
	margin-bottom: 0;
}
