/* ============================================================================
 * PTST Course Accordion
 *
 * Loaded only on single-course pages (see inc/shortcodes/course.php).
 * Styles the accordion built by [course_content_accordion] — course content
 * sections (split on H3) plus an Accommodation Options section appended at
 * the end when [course_accommodation] returns content.
 *
 * Colour values are literal hex (not CSS custom properties) — the WP theme
 * does not currently define a brand palette in :root. If/when a palette is
 * introduced in style.css, replace these with var(--brand-navy) etc.
 *
 *   Navy  → #012F63   (header background on hover/open, body text colour)
 *   White → #F9FAFB   (header text/icon colour on hover/open)
 * ============================================================================ */

.ptst-course-accordion {
    width: 100%;
    margin: 0;
}

/* Each accordion item */
.ptst-accordion-item {
    border: 1px solid #d5d8dc;
    border-bottom: none;
    overflow: hidden;
}

.ptst-accordion-item:last-child {
    border-bottom: 1px solid #d5d8dc;
}

.ptst-accordion-item:first-child {
    border-radius: 3px 3px 0 0;
}

.ptst-accordion-item:last-child {
    border-radius: 0 0 3px 3px;
}

/* Trigger / summary */
.ptst-accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 16px 20px;
    cursor: pointer;
    list-style: none;
    background-color: #f8f9fa;
    transition: background-color 0.2s ease, color 0.2s ease;
    user-select: none;
}

.ptst-accordion-trigger::-webkit-details-marker {
    display: none;
}

/* Heading-sized trigger text.
   Applied to the <h3> that sits inside <summary> so the heading is a
   real heading in source (good for SEO + screen readers) while still
   visually rendering as a trigger label rather than a chunky h3 with
   default browser margins. */
.ptst-accordion-trigger .e-n-accordion-item-title-text,
.ptst-accordion-trigger .ptst-accordion-heading {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    color: #012F63;
    transition: color 0.2s ease;
    /* Reset h3 browser defaults */
    margin: 0;
    padding: 0;
    letter-spacing: normal;
}

/* Icon */
.ptst-accordion-trigger .e-n-accordion-item-title-icon {
    flex-shrink: 0;
    margin-left: 16px;
    color: #012F63;
    transition: color 0.2s ease;
    font-size: 14px;
}

/* Show/hide open vs closed icon */
.ptst-accordion-item .e-opened { display: none; }
.ptst-accordion-item .e-closed { display: inline; }
.ptst-accordion-item[open] .e-opened { display: inline; }
.ptst-accordion-item[open] .e-closed { display: none; }

/* Hover — navy BG, white text and icon */
.ptst-accordion-trigger:hover {
    background-color: #012F63;
}
.ptst-accordion-trigger:hover .e-n-accordion-item-title-text,
.ptst-accordion-trigger:hover .e-n-accordion-item-title-icon {
    color: #F9FAFB;
}

/* Open item trigger — navy BG to show current section */
.ptst-accordion-item[open] > .ptst-accordion-trigger {
    background-color: #012F63;
}
.ptst-accordion-item[open] > .ptst-accordion-trigger .e-n-accordion-item-title-text,
.ptst-accordion-item[open] > .ptst-accordion-trigger .e-n-accordion-item-title-icon {
    color: #F9FAFB;
}

/* Body */
.ptst-accordion-body {
    border-top: 1px solid #d5d8dc;
}

.ptst-accordion-body-inner {
    padding: 24px 20px;
}

/* H4 subheadings inside sections */
.ptst-accordion-body-inner h4 {
    font-size: 1.2rem;
    font-weight: 600;
    color: #012F63;
    margin-top: 2em;
    margin-bottom: 0.5em;
}

/* Remove bottom margin from last element in body */
.ptst-accordion-body-inner p:last-child,
.ptst-accordion-body-inner ul:last-child,
.ptst-accordion-body-inner ol:last-child {
    margin-bottom: 0;
}

/* Spacing below lists when followed by other content */
.ptst-accordion-body-inner ul,
.ptst-accordion-body-inner ol {
    margin-bottom: 1.2em;
}

/* Accommodation section — slight visual distinction when closed */
#ptst-acc-accommodation > .ptst-accordion-trigger {
    background-color: #f0f4f8;
}
#ptst-acc-accommodation > .ptst-accordion-trigger .e-n-accordion-item-title-text {
    color: #012F63;
}
#ptst-acc-accommodation:hover > .ptst-accordion-trigger,
#ptst-acc-accommodation[open] > .ptst-accordion-trigger {
    background-color: #012F63;
}
#ptst-acc-accommodation:hover > .ptst-accordion-trigger .e-n-accordion-item-title-text,
#ptst-acc-accommodation:hover > .ptst-accordion-trigger .e-n-accordion-item-title-icon,
#ptst-acc-accommodation[open] > .ptst-accordion-trigger .e-n-accordion-item-title-text,
#ptst-acc-accommodation[open] > .ptst-accordion-trigger .e-n-accordion-item-title-icon {
    color: #F9FAFB;
}

/* SEO-only hidden H3 headings (kept in body for accessibility) */
.ptst-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Plain content fallback (no H3 headings) */
.ptst-course-content {
    /* inherits normal content styles */
}
