.pv-summary { margin: 12px 0 0; display: grid; gap: 7px; font-size: 15px; color: #243a2b; line-height: 1.55; }
.pv-summary div { display: grid; grid-template-columns: 4em minmax(0, 1fr); gap: 8px; }
.pv-summary dt { font-weight: 700; }
.pv-summary dd { margin: 0; overflow-wrap: anywhere; }
.pv-summary .pv-brief { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pv-explore-note { margin: 0 0 18px; color: #4c5e51; line-height: 1.7; }
.pv-booking-list { display: grid; gap: 12px; margin: 16px 0 20px; }
.pv-booking-list a { display: grid; gap: 6px; padding: 18px; background: #fff; border: 1px solid #cdded0; border-radius: 12px; color: #243a2b; text-decoration: none; line-height: 1.65; overflow-wrap: anywhere; }
.pv-booking-list a:hover { border-color: #2d6e3e; }
.pv-booking-list a:focus-visible { outline: 3px solid #2a68a1; outline-offset: 3px; }
.pv-booking-list a span { font-size: 15px; }
.pv-muted { color: #5b665e; }
.pv-badge { display: inline-block; margin-top: 10px; padding: 3px 9px; border-radius: 6px; background: #edf6ef; color: #245b34; font-size: 14px; }
.pv-provenance { border-left: 3px solid #2d6e3e; padding: 12px 16px; background: #f5f8f5; font-size: 15px; line-height: 1.65; color: #344b3a; overflow-wrap: anywhere; }
.pv-provenance p { margin: 4px 0 8px; }
.pv-provenance a { color: #205c31; text-decoration: underline; }
.pv-provenance summary { cursor: pointer; min-height: 44px; padding-top: 10px; }
.pv-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; padding: 12px 0; border: 0; margin: 0; }
.pv-filters legend { font-size: 16px; font-weight: 700; float: none; width: auto; margin: 0; }
.pv-filters label, .pv-select { display: flex; gap: 9px; align-items: center; min-height: 48px; margin: 0; cursor: pointer; color: #243a2b; font-size: 16px; }
.pv-filters input, .pv-select input { width: 21px; height: 21px; flex: none; accent-color: #2d6e3e; }
.pv-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 18px; border: 1px solid #2d6e3e; border-radius: 10px; background: #2d6e3e; color: #fff; text-decoration: none; font: inherit; font-weight: 600; cursor: pointer; }
.pv-button:hover { background: #214f2e; color: #fff; }
.pg-site a.pv-button { color: #fff; }
.pv-button:focus-visible, .pv-select:focus-within, .pv-filters label:focus-within { outline: 3px solid #2a68a1; outline-offset: 3px; }
.pv-compare-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; margin: 0 0 18px; padding: 16px; border: 1px solid #cdded0; border-radius: 12px; background: #fff; }
.pv-compare-bar p { margin: 0; flex: 1; min-width: 180px; }
.pv-choice { min-width: 0; display: flex; flex-direction: column; }
.pv-choice .pl-card-link { flex: 1; display: flex; }
.pv-choice .course-card { width: 100%; height: auto; margin: 0; }
.pv-select { background: #fff; border: 1px solid #dfe4e0; border-radius: 10px; padding: 8px 16px; margin-top: 8px; }
.pv-compare { max-width: 1160px; margin: 0 auto; padding: 100px 20px 60px; color: #243a2b; }
.app-mode .pv-compare { padding-top: 24px; }
.pv-compare h1 { font-size: clamp(25px, 4vw, 36px); }
.pv-table-wrap { max-width: 100%; overflow-x: auto; margin: 22px 0; border: 1px solid #dfe4e0; border-radius: 12px; }
.pv-table { border-collapse: collapse; width: 100%; font-size: 16px; line-height: 1.7; }
.pv-table caption { text-align: left; padding: 14px; caption-side: top; color: #4c5e51; }
.pv-table th, .pv-table td { border: 1px solid #dfe4e0; padding: 16px; min-width: 230px; vertical-align: top; overflow-wrap: anywhere; }
.pv-table th:first-child { min-width: 104px; width: 120px; background: #f0f6f1; }
.pv-table thead th { background: #f0f6f1; }
.pv-table a { color: #205c31; text-decoration: underline; }
.pv-table .pv-button { color: #fff; text-decoration: none; }
.pv-table td p { margin: 0 0 12px; }
.pv-table .pv-provenance { padding: 8px; font-size: 14px; }
