/* Focused landing-page additions. Existing brand assets and shared styles stay intact. */
.cp-partners { padding-block: 20px 38px; }
.cp-partners-heading { margin-bottom:22px; }
.cp-partners h2 { font:400 24px/1.2 'Lilita One',sans-serif; text-transform:uppercase; margin:0; }
.cp-partner-window { overflow-x:auto; scrollbar-width:none; }
.cp-partner-window::-webkit-scrollbar { display:none; }
.cp-partner-track { display:flex; width:max-content; }
.cp-partner-running { animation:cp-partner-marquee 36s linear infinite; }
.cp-partner-window:has(.cp-partner-running) { overflow:hidden; }
.cp-partner-logos { list-style:none; margin:0; padding:4px 48px 4px 0; display:flex; align-items:center; gap:48px; flex-shrink:0; }
.cp-partner-logos li { flex:0 0 150px; width:150px; height:78px; display:grid; place-items:center; padding:0; }
.cp-partner-logos img { display:block; width:100%; height:65px; object-fit:contain; }
@keyframes cp-partner-marquee { to { transform:translateX(-50%); } }
.canteen-page :is(.cp-meal-number, .cp-feature-list li > span, .cp-step-number) { display:inline-block; flex-shrink:0; align-self:flex-start; min-width:36px; width:auto; height:auto; padding:0 0 5px; border:0; border-bottom:2px solid var(--ink); border-radius:0; background:transparent; color:var(--ink); font:400 28px/1.2 'Lilita One',sans-serif; letter-spacing:0; font-variant-numeric:normal; text-align:left; }
.canteen-page .cp-step-number { margin-bottom:22px; }
.cp-role-cards { display:grid; gap:22px; min-width:0; }
.cp-role-card { border:3px solid var(--ink); border-radius:20px; padding:28px; background:white; box-shadow:5px 5px 0 var(--ink); }
.cp-role-card-mint { background:var(--mint); }
.cp-role-card h3 { font:400 30px/1.15 'Lilita One',sans-serif; text-transform:uppercase; margin:0 0 15px; }
.cp-role-card p:not(.cp-label), .cp-role-note { font-size:16px; line-height:1.8; margin:0; }
.cp-role-card .cp-label { margin:0 0 12px; }
.cp-role-note { padding:8px 4px; font-size:14px; }
.cp-role-note strong { display:block; margin-bottom:5px; }
.canteen-page .cp-contact-inner { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:48px; align-items:start; }
.cp-booking { min-width:0; background:white; border:3px solid var(--ink); border-radius:20px; box-shadow:6px 6px 0 var(--ink); overflow:hidden; }
.cp-booking-intro { padding:20px 22px 0; }
.cp-booking h3 { font:400 26px/1.1 'Lilita One',sans-serif; text-transform:uppercase; margin:10px 0; }
.cp-booking .cp-button { white-space:normal; }
.cp-booking iframe { border:0; width:100%; height:570px; background:white; display:block; }
.cp-booking [hidden] { display:none !important; }
.cp-booking p.cp-booking-fallback { padding:10px 22px; border-top:2px solid var(--ink); margin:0; font-size:12px; }
.cp-booking-fallback a { display:inline-block; padding-block:8px; text-underline-offset:3px; }
.cp-contact-alternative { grid-column:1/-1; border-top:2px solid var(--ink); padding-top:22px; }
.cp-contact-alternative summary { cursor:pointer; font:400 25px 'Lilita One',sans-serif; padding:10px 0; }
.cp-contact-alternative .cp-contact-form { margin-top:22px; max-width:760px; }
.cp-partners :focus-visible, .cp-contact :focus-visible { outline:3px solid var(--ink); outline-offset:5px; }
@media(max-width:900px) { .canteen-page .cp-contact-inner { grid-template-columns:1fr; gap:30px; } }
@media(max-width:600px) { .cp-partners h2 { font-size:22px; } .cp-partner-logos { gap:32px; padding-right:32px; } .cp-partner-logos li { flex-basis:135px; width:135px; } .cp-role-card { padding:23px; } .cp-booking-intro { padding:18px 18px 0; } .cp-booking p.cp-booking-fallback { padding:10px 18px; } .cp-booking iframe { height:590px; } }
@media(prefers-reduced-motion:reduce) { .cp-partners * { transition:none !important; scroll-behavior:auto !important; } }

.cp-partner-logos .cp-partner-youth { display:flex; flex-direction:column; justify-content:center; gap:4px; padding:0; }
.cp-partner-logos .cp-partner-youth img { width:100%; height:57px; object-fit:contain; }
.cp-partner-youth > span { font:600 9px/1.3 'Open Sans',sans-serif; text-align:center; }
.cp-contact-alternative { scroll-margin-top:110px; }

.cp-contact-direct { padding:20px 0; }
.cp-contact-direct a { text-decoration:underline; overflow-wrap:anywhere; }
.cp-contact-direct .cp-button { margin-top:18px; cursor:pointer; }
.cp-contact-direct #copy-email-status { min-height:1.8em; margin-top:12px; }

.cp-contact-product { margin:30px 0 0; display:flex; justify-content:flex-start; }
.cp-contact-product img { display:block; width:230px; max-width:100%; height:310px; object-fit:contain; }
.cp-booking-intro .cp-label { margin-bottom:10px; }
.cp-contact .cp-booking-intro p:not(.cp-label) { font-size:13px; line-height:1.65; }
@media(max-width:900px) { .cp-contact-product { display:none; } }
@media(prefers-reduced-motion:reduce) {
  .cp-partner-running { animation:none; transform:none; }
  .cp-partner-copy { display:none; }
  .cp-partner-window:has(.cp-partner-running) { overflow-x:auto; }
}

/* Compact practice example fills the space below the responsibility copy. */
.cp-practice { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:24px; align-items:center; margin-top:32px; padding:20px; border:3px solid var(--ink); border-radius:20px; box-shadow:5px 5px 0 var(--ink); background:white; scroll-margin-top:110px; }
.cp-practice-image { display:block; overflow:hidden; border-radius:10px; transition:transform 160ms ease-out; }
.cp-practice-image img { display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; object-position:50% 24%; }
.cp-practice-image:hover { transform:translate(2px,2px); }
.cp-practice-copy .cp-label { margin:0 0 12px; font-size:9px; }
.cp-practice-copy h3 { font:400 clamp(23px,2.3vw,31px)/1.08 'Lilita One',sans-serif; text-transform:uppercase; margin:0 0 12px; }
.cp-practice-copy > p:not(.cp-label) { font-size:13px; line-height:1.65; margin:0 0 14px; }
.cp-practice-copy .cp-text-link { font-size:12px; padding-block:8px; }
.cp-practice :focus-visible { outline:3px solid var(--ink); outline-offset:5px; }
@media(min-width:761px) and (max-width:1050px) { .cp-practice { gap:18px; padding:16px; grid-template-columns:1fr; } .cp-practice-image img { aspect-ratio:4/3; } }
@media(max-width:440px) { .cp-practice { gap:16px; padding:16px; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); } .cp-practice-copy h3 { font-size:23px; } }
@media(prefers-reduced-motion:reduce) { .cp-practice-image { transition:none; } }

.cp-product-copy .cp-roadmap { margin:24px 0 0; padding-top:18px; border-top:2px solid var(--ink); font-size:13px; line-height:1.7; }
.cp-roadmap > span { display:inline-block; font:800 9px/1.5 'Open Sans',sans-serif; letter-spacing:.08em; border:2px solid var(--ink); border-radius:5px; padding:3px 7px; margin:0 6px 5px 0; background:white; }
