/* Penny Brohn — session calendar skin over the pbuk-xview plugin output.
   The plugin prints the Online Sessions design's vocabulary (.toolbar-section,
   .resources-grid, .resource-card, .rc-*) with a plain fallback stylesheet;
   this restates the design on top of it. Selectors start with `body` so they
   outrank the plugin's `.pbuk-sessions .x` rules whatever the load order.
   xView supplies no photographs, so the card's image frame becomes a
   topic-tinted band carrying the delivery badge. */

/* ---------- container: match the design system's .wrap exactly ---------- */
body .pbuk-sessions .wrap{max-width:var(--ds-width-container,1200px);margin:0 auto;padding:0 var(--ds-space-container-pad,40px);}
@media (max-width:640px){body .pbuk-sessions .wrap{padding:0 22px;}}

/* ---------- toolbar ---------- */
body .pbuk-sessions .toolbar-section{background:var(--ds-color-white,#FEFEFE);border-bottom:1px solid var(--ds-color-border-faint,rgba(35,55,90,.06));padding:24px 0;position:sticky;top:0;z-index:5;}
body.admin-bar .pbuk-sessions .toolbar-section{top:32px;}
body .pbuk-sessions .pbuk-toolbar{display:flex;align-items:flex-end;gap:16px 18px;flex-wrap:wrap;margin:0 0 14px;}
body .pbuk-sessions .search-form{display:flex;align-items:center;gap:10px;background:var(--ds-color-buff,#F4EFE9);border:0;border-radius:50px;padding:6px 6px 6px 20px;flex:1 1 280px;max-width:420px;min-width:0;min-height:48px;}
body .pbuk-sessions .search-form svg{width:18px;height:18px;color:var(--ds-color-navy,#23375A);opacity:.55;flex-shrink:0;}
body .pbuk-sessions .search-form input{flex:1;min-width:0;background:transparent;border:none;outline:none;font-family:'Mackinac',Georgia,serif;font-weight:500;font-size:16px;color:var(--ds-color-navy,#23375A);padding:8px 0;}
body .pbuk-sessions .search-form input::placeholder{color:rgba(35,55,90,.45);}
body .pbuk-sessions .search-form:focus-within{box-shadow:0 0 0 3px rgba(30,108,130,.18);}
body .pbuk-sessions .pbuk-field{display:flex;flex-direction:column;gap:6px;flex:0 1 auto;}
body .pbuk-sessions .pbuk-field label{font-family:'Flink',system-ui,Arial,sans-serif;font-weight:700;font-size:13px;line-height:1;color:var(--ds-color-navy,#23375A);opacity:1;}
body .pbuk-sessions .pbuk-field select,
body .pbuk-sessions .pbuk-field input[type=date]{font-family:'Mackinac',Georgia,serif;font-weight:500;font-size:16px;color:var(--ds-color-navy,#23375A);background:var(--ds-color-white,#FEFEFE);border:1px solid var(--ds-color-border-card,rgba(35,55,90,.10));border-radius:10px;padding:10px 14px;min-height:48px;}
body .pbuk-sessions .pbuk-field select{padding-right:34px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2323375A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px;}
body .pbuk-sessions .pbuk-field select:focus,
body .pbuk-sessions .pbuk-field input[type=date]:focus{outline:none;border-color:var(--ds-color-teal,#1E6C82);box-shadow:0 0 0 3px rgba(30,108,130,.14);}
body .pbuk-sessions .pbuk-toolbar-secondary{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;margin:0;}
body .pbuk-sessions .pbuk-quick{display:flex;gap:8px;flex-wrap:wrap;}
body .pbuk-sessions .pbuk-quick-btn{font-family:'Flink',system-ui,Arial,sans-serif;font-weight:700;font-size:14px;line-height:1;padding:10px 18px;border-radius:50px;background:var(--ds-color-white,#FEFEFE);color:var(--ds-color-navy,#23375A);border:1.5px solid rgba(35,55,90,.14);cursor:pointer;transition:all .15s ease;}
body .pbuk-sessions .pbuk-quick-btn:hover{border-color:var(--ds-color-teal,#1E6C82);color:var(--ds-color-teal,#1E6C82);}
body .pbuk-sessions .pbuk-quick-btn.active{background:var(--ds-color-navy,#23375A);color:var(--ds-color-white,#FEFEFE);border-color:var(--ds-color-navy,#23375A);}
body .pbuk-sessions .pbuk-check{display:flex;align-items:center;gap:8px;font-family:'Mackinac',Georgia,serif;font-size:15px;color:var(--ds-color-navy,#23375A);cursor:pointer;}
body .pbuk-sessions .pbuk-check input{width:18px;height:18px;accent-color:var(--ds-color-teal,#1E6C82);margin:0;}
body .pbuk-sessions .pbuk-reset{font-family:'Flink',system-ui,Arial,sans-serif;font-weight:700;font-size:14px;color:var(--ds-color-teal,#1E6C82);background:none;border:0;padding:0;cursor:pointer;opacity:1;text-decoration:underline;text-underline-offset:3px;}
body .pbuk-sessions .pbuk-quick-btn:focus-visible,
body .pbuk-sessions .pbuk-reset:focus-visible{outline:2px solid var(--ds-color-navy,#23375A);outline-offset:3px;}

@media (max-width:700px){
  body .pbuk-sessions .toolbar-section{position:static;padding:18px 0 14px;}
  body .pbuk-sessions .search-form{max-width:none;flex-basis:100%;}
  body .pbuk-sessions .pbuk-field{flex:1 1 calc(50% - 9px);min-width:0;}
  body .pbuk-sessions .pbuk-field select,
  body .pbuk-sessions .pbuk-field input[type=date]{width:100%;min-width:0;}
}

/* ---------- grid ---------- */
body .pbuk-sessions .resources-section{background:var(--ds-color-white,#FEFEFE);padding:40px 0 96px;}
body .pbuk-sessions .resources-count{font-family:'Flink',system-ui,Arial,sans-serif;font-size:14px;color:var(--ds-color-navy,#23375A);opacity:.6;margin:0 0 28px;}
body .pbuk-sessions .resources-count strong{font-weight:700;opacity:1;}
body .pbuk-sessions .resources-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;row-gap:32px;}
@media (max-width:980px){body .pbuk-sessions .resources-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:620px){body .pbuk-sessions .resources-grid{grid-template-columns:minmax(0,1fr);}}
body .pbuk-sessions .pbuk-empty{font-family:'Mackinac',Georgia,serif;font-size:18px;line-height:1.6;color:var(--ds-color-navy,#23375A);padding:40px 0;}

/* ---------- card ---------- */
body .pbuk-sessions .resource-card{display:flex;flex-direction:column;background:var(--ds-color-white,#FEFEFE);border:1px solid var(--ds-color-border-card,rgba(35,55,90,.10));border-radius:18px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;}
body .pbuk-sessions .resource-card:hover{transform:translateY(-2px);box-shadow:0 18px 40px -18px rgba(35,55,90,.28);}
body .pbuk-sessions .resource-card[hidden]{display:none;}
body .pbuk-sessions .rc-img{position:static;aspect-ratio:auto;min-height:0;height:auto;padding:18px 20px 0;margin:0;background:var(--ds-color-mint,#D2F0F0);}
body .pbuk-sessions .resource-card[data-topic="wellbeing"] .rc-img{background:var(--ds-color-mint,#D2F0F0);}
body .pbuk-sessions .resource-card[data-topic="movement"] .rc-img{background:var(--ds-color-lavender-light,#E5E3F8);}
body .pbuk-sessions .resource-card[data-topic="nutrition"] .rc-img{background:var(--ds-color-blossom,#FFE2E0);}
body .pbuk-sessions .resource-card[data-topic="doctors"] .rc-img{background:var(--ds-color-buttercup-soft,#FFF1BE);}
body .pbuk-sessions .rc-img::after{content:"";display:block;height:18px;}
body .pbuk-sessions .fmt-badge{position:static;display:inline-flex;align-items:center;gap:6px;padding:7px 12px 7px 10px;border-radius:50px;background:var(--ds-color-white,#FEFEFE);font-family:'Flink',system-ui,Arial,sans-serif;font-weight:800;font-size:11px;letter-spacing:.08em;line-height:1;text-transform:uppercase;color:var(--ds-color-navy,#23375A);}
body .pbuk-sessions .fmt-badge svg{width:12px;height:12px;flex:0 0 12px;}
body .pbuk-sessions .fmt-badge.fmt-zoom{color:var(--ds-color-teal,#1E6C82);}
body .pbuk-sessions .rc-body{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px;gap:0;}
body .pbuk-sessions .rc-body h3{font-family:'Flink',system-ui,Arial,sans-serif;font-weight:800;font-size:19px;line-height:1.25;letter-spacing:-.005em;color:var(--ds-color-navy,#23375A);margin:0 0 10px;}
body .pbuk-sessions .rc-body h3 a{color:inherit;text-decoration:none;}
body .pbuk-sessions .rc-body h3 a:hover{color:var(--ds-color-teal,#1E6C82);}
body .pbuk-sessions .rc-excerpt{font-family:'Mackinac',Georgia,serif;font-weight:500;font-size:16px;line-height:1.5;color:var(--ds-color-navy,#23375A);opacity:1;margin:0;}
body .pbuk-sessions .rc-excerpt strong{font-family:'Flink',system-ui,Arial,sans-serif;font-weight:700;font-size:15px;}
body .pbuk-sessions .rc-more{font-family:'Mackinac',Georgia,serif;font-size:14px;color:var(--ds-color-text-muted-soft,rgba(35,55,90,.72));opacity:1;margin:6px 0 0;}
body .pbuk-sessions .rc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px;}
body .pbuk-sessions .rc-tags{display:flex;gap:6px;flex-wrap:wrap;}
body .pbuk-sessions .rc-tag{font-family:'Flink',system-ui,Arial,sans-serif;font-weight:700;font-size:11px;letter-spacing:.06em;line-height:1;padding:5px 11px;border-radius:50px;background:var(--ds-color-white,#FEFEFE);color:var(--ds-color-navy,#23375A);border:1px solid rgba(35,55,90,.16);opacity:.85;}
body .pbuk-sessions .access-link{font-family:'Flink',system-ui,Arial,sans-serif;font-weight:800;font-size:14px;color:var(--ds-color-teal,#1E6C82);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0;text-decoration:none;}
body .pbuk-sessions .access-link .arr{transition:transform .15s ease;}
body .pbuk-sessions .resource-card:hover .access-link .arr{transform:translateX(4px);}
body .pbuk-sessions .access-link:focus-visible,
body .pbuk-sessions .rc-body h3 a:focus-visible{outline:2px solid var(--ds-color-navy,#23375A);outline-offset:3px;border-radius:4px;}

/* ---------- single session page (virtual page under /sessions/) ---------- */
.inner-content .pbuk-session-single ul{list-style:none;padding:0;margin:0;}
.inner-content .pbuk-session-single .pbuk-session-meta{padding:24px 28px;margin:0 0 40px;}
.inner-content .pbuk-session-single ul li{padding:0;margin:0;font-size:inherit;line-height:inherit;}
.inner-content .pbuk-session-single ul li::before{display:none;content:none;}
.inner-content .pbuk-session-single .pbuk-date{padding:18px 22px;}
.pbuk-session-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px 28px;padding:24px 28px;background:var(--ds-color-buff,#F4EFE9);border-radius:18px;margin:0 0 40px;}
.pbuk-session-meta li{display:flex;flex-direction:column;gap:4px;border:0;}
.pbuk-session-meta strong{flex:0 0 auto;display:block;font-family:'Flink',system-ui,Arial,sans-serif;font-weight:800;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ds-color-mulberry,#835263);}
.pbuk-session-meta span{font-family:'Mackinac',Georgia,serif;font-size:17px;color:var(--ds-color-navy,#23375A);}
.pbuk-session-info{max-width:760px;margin:0 0 40px;font-size:18px;line-height:1.6;}
.pbuk-dates-title{font-family:'Flink',system-ui,Arial,sans-serif;font-weight:800;font-size:24px;color:var(--ds-color-navy,#23375A);margin:0 0 18px;}
.pbuk-dates{display:grid;gap:12px;max-width:820px;}
.pbuk-date{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px 22px;padding:18px 22px;background:var(--ds-color-white,#FEFEFE);border:1px solid var(--ds-color-border-card,rgba(35,55,90,.10));border-radius:14px;margin:0;}
.pbuk-date.is-full{background:var(--ds-color-buff,#F4EFE9);}
.pbuk-date-when{display:flex;flex-direction:column;gap:2px;}
.pbuk-date-when strong{font-family:'Flink',system-ui,Arial,sans-serif;font-weight:700;font-size:16px;color:var(--ds-color-navy,#23375A);}
.pbuk-date-when span{font-family:'Mackinac',Georgia,serif;font-size:15px;color:var(--ds-color-navy,#23375A);}
.pbuk-date-avail{font-family:'Mackinac',Georgia,serif;font-size:14px;color:var(--ds-color-text-muted-soft,rgba(35,55,90,.72));white-space:nowrap;}
.pbuk-date-cta .btn{padding:10px 18px;font-size:14px;}
.pbuk-date-cta .btn.is-muted{background:var(--ds-color-white,#FEFEFE);color:var(--ds-color-teal,#1E6C82);border:1.5px solid var(--ds-color-teal,#1E6C82);}
.pbuk-session-back{margin:36px 0 0;font-family:'Flink',system-ui,Arial,sans-serif;font-weight:700;}
.pbuk-session-back a{color:var(--ds-color-teal,#1E6C82);}
@media (max-width:560px){
  .pbuk-date{grid-template-columns:minmax(0,1fr);}
  .pbuk-date-avail{white-space:normal;}
  .inner-content .pbuk-session-single .pbuk-session-meta{padding:20px;}
}


/* ===========================================================================
   XView has photographs now (Oliver granted the image models on 14 Sep), so
   the card's tinted band stops standing in for a picture and sits behind one
   instead. The slot renders whether or not there is an image, so a card
   without one is exactly as tall as a card with one and the rows line up.
   =========================================================================== */

body .pbuk-sessions .rc-img {
	position: relative;
	display: block;
	aspect-ratio: auto;
	min-height: 0;
	height: auto;
	padding: 0;
	margin: 0;
	background: var(--ds-color-mint, #D2F0F0);
}

/* The spacer the badge needed when it sat in a padded band. */
body .pbuk-sessions .rc-img::after {
	content: none;
}

body .pbuk-sessions .rc-img-link {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	margin: 0;
}

body .pbuk-sessions .rc-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s ease;
}

body .pbuk-sessions .resource-card:hover .rc-img img {
	transform: scale(1.03);
}

/* The badge sits on the picture rather than under it, so there is no strip of
   tint below. On a card with no picture it sits on the tinted slot instead,
   which is the whole reason the tint is still there. */
body .pbuk-sessions .fmt-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	/* The plugin's fallback sheet pins this to the bottom. Setting top without
	   clearing bottom leaves both in force, and the pill stretches the height of
	   the picture. */
	bottom: auto;
	right: auto;
	height: auto;
	z-index: 1;
	margin: 0;
	padding: 7px 12px 7px 9px;
	box-shadow: 0 2px 8px -2px rgba(35, 55, 90, .28);
}


/* ---------------------------------------------------------------------------
   The description, as Sophie writes it in XView.

   The rules further up strip the design system's dot and spacing from every
   ul inside the single page, because the meta panel and the list of dates
   are not prose. The description is prose, and it was being flattened with
   them: no space between paragraphs, no bullets, no numbers. These put the
   typography back, for the description and the session-specific note.
   --------------------------------------------------------------------------- */

body .inner-content .pbuk-session-single .pbuk-session-desc,
body .inner-content .pbuk-session-single .pbuk-session-info {
	max-width: 760px;
	margin: 0 0 40px;
	font-family: 'Mackinac', Georgia, serif;
	font-weight: 500;
	color: var(--ds-color-navy, #23375A);
}

body .inner-content .pbuk-session-single .pbuk-session-desc p,
body .inner-content .pbuk-session-single .pbuk-session-info p {
	font-family: 'Mackinac', Georgia, serif;
	font-size: 18px;
	line-height: 1.65;
	margin: 0;
}

body .inner-content .pbuk-session-single .pbuk-session-desc > * + *,
body .inner-content .pbuk-session-single .pbuk-session-info > * + * {
	margin-top: 1.1em;
}

body .inner-content .pbuk-session-single .pbuk-session-desc h2,
body .inner-content .pbuk-session-single .pbuk-session-desc h3,
body .inner-content .pbuk-session-single .pbuk-session-desc h4 {
	font-family: 'Flink', system-ui, Arial, sans-serif;
	font-weight: 800;
	line-height: 1.25;
	color: var(--ds-color-navy, #23375A);
	margin-top: 1.8em;
}

body .inner-content .pbuk-session-single .pbuk-session-desc h2 { font-size: 24px; }
body .inner-content .pbuk-session-single .pbuk-session-desc h3 { font-size: 20px; }
body .inner-content .pbuk-session-single .pbuk-session-desc h4 { font-size: 17px; }

body .inner-content .pbuk-session-single .pbuk-session-desc ul,
body .inner-content .pbuk-session-single .pbuk-session-info ul {
	list-style: disc;
	margin: 1.1em 0;
	padding-left: 1.35em;
}

body .inner-content .pbuk-session-single .pbuk-session-desc ol,
body .inner-content .pbuk-session-single .pbuk-session-info ol {
	list-style: decimal;
	margin: 1.1em 0;
	padding-left: 1.5em;
}

body .inner-content .pbuk-session-single .pbuk-session-desc li,
body .inner-content .pbuk-session-single .pbuk-session-info li {
	display: list-item;
	font-family: 'Mackinac', Georgia, serif;
	font-size: 18px;
	line-height: 1.6;
	margin: 0 0 .5em;
	padding: 0;
}

body .inner-content .pbuk-session-single .pbuk-session-desc li::marker,
body .inner-content .pbuk-session-single .pbuk-session-info li::marker {
	color: var(--ds-color-mulberry, #835263);
}

body .inner-content .pbuk-session-single .pbuk-session-desc li ul,
body .inner-content .pbuk-session-single .pbuk-session-desc li ol {
	margin: .5em 0 0;
}

body .inner-content .pbuk-session-single .pbuk-session-desc a,
body .inner-content .pbuk-session-single .pbuk-session-info a {
	color: var(--ds-color-teal, #1E6C82);
	text-decoration: underline;
	text-underline-offset: 3px;
}

body .inner-content .pbuk-session-single .pbuk-session-desc strong,
body .inner-content .pbuk-session-single .pbuk-session-info strong {
	font-weight: 700;
}

/* A little more air between the picture and the panel under it. */
.inner-content .pbuk-session-single .pbuk-session-hero,
body .inner-content .pbuk-session-single .pbuk-session-hero {
	margin: 0 0 32px;
}

/* The note under the places-left filter (PRE-061). */
.pbuk-sessions .pbuk-hint{font-family:'Mackinac',Georgia,serif;font-size:13px;color:var(--ds-color-navy,#23375A);align-self:center;}
