* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #051c38; color: #fffaf0; font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; }
.plato-ncpd-container { width: min(100% - 2.5rem, 1120px); margin-inline: auto; }
.plato-ncpd-header { background: #04182f; border-bottom: 1px solid rgba(224,185,102,.3); }
.plato-ncpd-header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.plato-ncpd-brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; min-width: 0; }
.plato-ncpd-brand-logo { display: block; width: 48px; height: 48px; flex-shrink: 0; border-radius: 50%; object-fit: contain; background: #fff; }
.plato-ncpd-brand-text { display: block; white-space: nowrap; color: #e5bd70; font: 700 clamp(1rem, 1.6vw, 1.3rem)/1.2 Georgia, serif; letter-spacing: -.015em; }
.plato-ncpd-header nav a { white-space: nowrap; text-decoration: none; border-bottom: 1px solid #e5bd70; padding-bottom: .25rem; }
.plato-ncpd-header nav a:hover, .plato-ncpd-header nav a:focus-visible { color: #e5bd70; }
.plato-ncpd-hero { width: 100%; overflow: hidden; }
.plato-ncpd-hero img { display: block; width: 100%; height: auto; opacity: 1; filter: none; object-fit: contain; }
.plato-ncpd-intro { padding: clamp(2.5rem, 6vw, 5.5rem) 0 1.25rem; }
.plato-ncpd-eyebrow { text-transform: uppercase; color: #e5bd70; font-weight: 700; font-size: .72rem; letter-spacing: .18em; }
h1 { margin: .6rem 0 1rem; font: 700 clamp(2rem, 4vw, 3.7rem)/1.12 Georgia, 'Times New Roman', serif; }
.plato-ncpd-intro p:not(.plato-ncpd-eyebrow) { max-width: 720px; line-height: 1.75; font-size: clamp(1rem, 1.5vw, 1.14rem); color: #e6edf5; }
.plato-ncpd-intro .plato-ncpd-note { color: #e5bd70; }
.plato-ncpd-footer { padding: 1.4rem 0; border-top: 1px solid rgba(224,185,102,.25); color: #c7d4e1; font-size: .83rem; }
@media (max-width: 520px) {
  .plato-ncpd-container { width: min(100% - 2rem, 1120px); }
  .plato-ncpd-header-inner { min-height: 72px; }
  .plato-ncpd-brand { align-items: center; gap: .5rem; }
  .plato-ncpd-brand-logo { width: 40px; height: 40px; }
  .plato-ncpd-brand-text { font-size: clamp(.55rem, 2.35vw, .78rem); }
  .plato-ncpd-header-inner { gap: .5rem; }
  .plato-ncpd-brand { gap: .4rem; }
  .plato-ncpd-header nav a { font-size: .85rem; }
}

@media (max-width: 360px) {
  .plato-ncpd-header-inner { gap: .65rem; }
  .plato-ncpd-brand-text { font-size: .54rem; }
  .plato-ncpd-brand-logo { width: 36px; height: 36px; }
}

.plato-ncpd-intro h2 { margin: 0; font: 700 clamp(1.8rem, 3.2vw, 2.8rem)/1.15 Georgia, 'Times New Roman', serif; }


/* Program cards */
.plato-ncpd-programs-lead { color: #d7e5ef; line-height: 1.65; margin: .8rem 0 1.8rem; }
.plato-ncpd-program-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 1.8rem 0 0; }
.plato-ncpd-program-card { min-width: 0; background: #092849; border: 1px solid rgba(229,189,112,.35); border-radius: 15px; overflow: hidden; display: flex; flex-direction: column; }
.plato-ncpd-program-card img { width: 100%; height: auto; display: block; aspect-ratio: 1 / 1; object-fit: contain; }
.plato-ncpd-program-card-body { padding: 1.1rem; display: flex; flex-direction: column; gap: .75rem; flex: 1; }
.plato-ncpd-program-card h3 { font: 700 clamp(1.15rem, 1.8vw, 1.4rem)/1.25 Georgia, serif; margin: 0; overflow-wrap: anywhere; }
.plato-ncpd-program-frequency, .plato-ncpd-program-next { margin: 0; line-height: 1.5; font-size: .91rem; color: #d6e4ed; }
.plato-ncpd-program-next { color: #e5bd70; }
.plato-ncpd-dates-button { margin-top: auto; width: 100%; border: 1px solid #e5bd70; background: #e5bd70; color: #051c38; padding: .8rem 1rem; border-radius: 9px; font: 700 .95rem Arial, sans-serif; cursor: pointer; }
.plato-ncpd-dates-button:hover, .plato-ncpd-dates-button:focus-visible { background: #f6d596; outline: 2px solid transparent; }
.plato-ncpd-modal-backdrop[hidden] { display: none !important; }
.plato-ncpd-modal-backdrop { position: fixed; inset: 0; z-index: 1000; background: rgba(0,8,18,.78); padding: 1rem; display: grid; place-items: center; }
.plato-ncpd-modal { width: min(100%, 720px); max-height: min(90dvh, 840px); overflow-y: auto; overscroll-behavior: contain; background: #061b38; color: #fffaf0; border: 1px solid #cba45f; border-radius: 16px; padding: clamp(1rem, 3vw, 1.8rem); box-shadow: 0 18px 70px rgba(0,0,0,.5); }
.plato-ncpd-modal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.plato-ncpd-modal-head h2 { font: 700 clamp(1.45rem, 4vw, 2rem)/1.15 Georgia,serif; margin: .35rem 0 0; overflow-wrap: anywhere; }
.plato-ncpd-modal-close { flex-shrink: 0; color: #fff; border: 1px solid #69819a; background: transparent; border-radius: 50%; width: 40px; height: 40px; font-size: 1.8rem; line-height: 1; cursor: pointer; }
.plato-ncpd-modal-description { color: #d8e5ef; line-height: 1.6; }
.plato-ncpd-modal-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; margin: 1rem 0; }
.plato-ncpd-modal-facts div { border: 1px solid #2e4b68; background: #0e3152; border-radius: 9px; padding: .7rem; min-width: 0; }
.plato-ncpd-modal-facts dt { font-size: .77rem; color: #bed0df; margin-bottom: .25rem; }
.plato-ncpd-modal-facts dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.plato-ncpd-modal-venue { line-height: 1.6; }
.plato-ncpd-modal-venue strong { color: #e5bd70; }
.plato-ncpd-modal h3 { font: 700 1.25rem Georgia,serif; }
.plato-ncpd-dates-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.plato-ncpd-dates-list li { background: #103859; border: 1px solid #345775; border-radius: 10px; padding: .7rem .85rem; display: flex; justify-content: space-between; align-items: center; gap: .8rem; min-width: 0; }
.plato-ncpd-date-text { min-width: 0; }
.plato-ncpd-date-text strong { display: block; line-height: 1.4; }
.plato-ncpd-date-text small { color: #d4dfec; display: block; margin-top: .25rem; }
.plato-ncpd-reserve-button { background: #176b3a; color: white; border: 0; border-radius: 8px; padding: .65rem .85rem; font: 700 .86rem Arial,sans-serif; white-space: nowrap; flex-shrink: 0; }
.plato-ncpd-reserve-button:disabled { opacity: .85; cursor: not-allowed; }
.plato-ncpd-modal-note { color: #c2cfdb; font-size: .85rem; line-height: 1.5; }
body.plato-ncpd-modal-open { overflow: hidden; }
@media (max-width: 900px) { .plato-ncpd-program-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) {
 .plato-ncpd-program-grid { grid-template-columns: minmax(0,1fr); }
 .plato-ncpd-modal-backdrop { padding: .5rem; }
 .plato-ncpd-modal { max-height: 95dvh; border-radius: 10px; }
 .plato-ncpd-dates-list li { flex-wrap: wrap; }
 .plato-ncpd-reserve-button { width: 100%; }
}
