.kmh-p3-page {
  --kmh-navy: #073b5c;
  --kmh-blue: #087eb8;
  --kmh-blue-soft: #eaf6fb;
  --kmh-ink: #142b3a;
  --kmh-muted: #5d6f79;
  --kmh-line: #d9e3e8;
  --kmh-cream: #fff8e4;
  --kmh-green: #17754f;
  background: #f4f8fa;
  color: var(--kmh-ink);
}

.kmh-p3-page .container-wrap { background: transparent; }
.kmh-p3-page .main-content { max-width: 1200px; padding-block: clamp(2rem, 5vw, 5rem); }
.kmh-p3-cart { display: grid; gap: clamp(1rem, 2vw, 1.75rem); font-size: 16px; }
.kmh-p3-cart *, .kmh-p3-cart *::before, .kmh-p3-cart *::after { box-sizing: border-box; }
.kmh-p3-cart h1, .kmh-p3-cart h2, .kmh-p3-cart h3, .kmh-p3-cart h4 { color: var(--kmh-navy); margin: 0 0 .55rem; line-height: 1.12; }
.kmh-p3-cart h1 { font-size: clamp(2.3rem, 6vw, 4.9rem); max-width: 13ch; }
.kmh-p3-cart h2 { font-size: clamp(1.6rem, 3vw, 2.5rem); }
.kmh-p3-cart h3 { font-size: clamp(1.2rem, 2vw, 1.55rem); }
.kmh-p3-cart h4 { font-size: 1.05rem; }
.kmh-p3-cart p { margin: 0 0 .75rem; color: var(--kmh-muted); line-height: 1.58; }
.kmh-p3-cart ul { margin: .5rem 0 1rem 1.2rem; }
.kmh-p3-cart a { color: var(--kmh-blue); }
.kmh-p3-eyebrow { color: #08669d !important; font-size: .75rem; font-weight: 800; letter-spacing: .12em; margin-bottom: .45rem !important; text-transform: uppercase; }
.kmh-p3-hero { padding: clamp(.5rem, 2vw, 1.5rem); }
.kmh-p3-hero > p:last-child { max-width: 68ch; font-size: 1.08rem; }
.kmh-p3-notice { align-items: center; background: #fff; border: 1px solid var(--kmh-line); border-left: 5px solid var(--kmh-blue); border-radius: 12px; display: flex; gap: .75rem; padding: .9rem 1rem; }
.kmh-p3-notice span { color: var(--kmh-muted); }
.kmh-p3-notice--error { border-left-color: #bd2d2d; color: #7d1d1d; }
.kmh-p3-contact, .kmh-p3-party, .kmh-p3-charge, .kmh-p3-errors, .kmh-p3-order { background: #fff; border: 1px solid var(--kmh-line); border-radius: 20px; box-shadow: 0 18px 45px rgba(7,59,92,.07); padding: clamp(1.25rem, 3vw, 2.25rem); }
.kmh-p3-contact { display: grid; gap: 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kmh-p3-contact > div + div { border-left: 1px solid var(--kmh-line); padding-left: 1.5rem; }
.kmh-p3-party ol { display: grid; gap: .75rem; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 1.5rem 0; padding: 0; counter-reset: party-step; }
.kmh-p3-party ol li { background: var(--kmh-blue-soft); border-radius: 12px; min-height: 90px; padding: 1rem; counter-increment: party-step; }
.kmh-p3-party ol li::before { background: var(--kmh-navy); border-radius: 50%; color: #fff; content: counter(party-step); display: grid; font-size: .8rem; font-weight: 800; height: 1.6rem; margin-bottom: .55rem; place-items: center; width: 1.6rem; }
.kmh-p3-cart details { border-top: 1px solid var(--kmh-line); padding-top: 1rem; }
.kmh-p3-cart summary { color: var(--kmh-blue); cursor: pointer; font-weight: 800; min-height: 44px; padding: .65rem 2rem .65rem 0; }
.kmh-p3-check-grid { display: grid; gap: .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: .75rem; }
.kmh-p3-check-grid p { background: #f7fafb; border-radius: 10px; padding: .85rem; }
.kmh-p3-assignment-demo { display: grid; gap: .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: .75rem; }
.kmh-p3-assignment-demo > p { grid-column: 1 / -1; }
.kmh-p3-assignment-demo label { color: var(--kmh-ink); display: grid; font-weight: 800; gap: .35rem; }
.kmh-p3-assignment-demo label small { color: var(--kmh-muted); font-weight: 400; }
.kmh-p3-assignment-demo select { max-width: 100%; width: 100%; }
.kmh-p3-groups { display: grid; gap: 1.25rem; }
.kmh-p3-group { background: #fff; border: 1px solid #ccdce4; border-radius: 18px; box-shadow: 0 16px 38px rgba(7,59,92,.08); overflow: hidden; }
.kmh-p3-group__header { align-items: center; background: linear-gradient(135deg, var(--kmh-navy), #0a5f88); color: #fff; display: flex; gap: 1rem; justify-content: space-between; padding: .72rem clamp(.85rem, 2vw, 1.2rem); }
.kmh-p3-group__header h2 { font-size: clamp(1.4rem, 2.4vw, 2rem); margin-bottom: .25rem; }
.kmh-p3-group__header p { margin-bottom: 0; }
.kmh-p3-group__header h2, .kmh-p3-group__header p { color: #fff; }
.kmh-p3-group__header .kmh-p3-eyebrow { color: #cbefff !important; }
.kmh-p3-badge { align-items: center; align-self: flex-start; background: var(--kmh-blue-soft); border-radius: 999px; color: var(--kmh-navy); display: inline-flex; font-size: .78rem; font-weight: 800; line-height: 1.3; max-width: 240px; min-height: 36px; padding: .45rem .8rem; text-align: center; }
.kmh-p3-badge--reference { background: #fff; }
.kmh-p3-progress { align-items: center; background: #ecf8f3; color: #165c42; display: flex; font-size: .84rem; gap: .55rem; padding: .5rem clamp(.85rem, 2vw, 1.2rem); }
.kmh-p3-progress > span { background: var(--kmh-green); border-radius: 50%; color: #fff; display: grid; flex: 0 0 1.45rem; height: 1.45rem; place-items: center; }
.kmh-p3-items { display: grid; gap: .65rem; padding: .7rem clamp(.7rem, 1.6vw, 1rem); }
.kmh-p3-item { align-items: start; border: 1px solid var(--kmh-line); border-radius: 14px; display: grid; grid-template-columns: 125px minmax(0, 1fr); overflow: hidden; }
.kmh-p3-item__media { align-self: start; aspect-ratio: 4 / 3; background: #e9f0f3; min-height: 0; }
.kmh-p3-item__media img { height: 100%; object-fit: cover; width: 100%; }
.kmh-p3-item__body { min-width: 0; padding: .72rem clamp(.72rem, 1.5vw, 1rem); }
.kmh-p3-item__heading { align-items: flex-start; display: flex; gap: .8rem; justify-content: space-between; }
.kmh-p3-management { border-left: 3px solid #9ccce2; font-size: .8rem; line-height: 1.35 !important; margin: .3rem 0 .5rem !important; padding-left: .55rem; }
.kmh-p3-item__summary { background: #f1f7fa; border-radius: 8px; display: grid; gap: .25rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: .15rem; padding: .5rem .6rem; }
.kmh-p3-item__summary > div { border-left: 1px solid var(--kmh-line); display: grid; gap: .15rem; padding-left: .65rem; }
.kmh-p3-item__summary > div:first-child { border-left: 0; padding-left: 0; }
.kmh-p3-item__summary span { color: var(--kmh-muted); font-size: .72rem; font-weight: 700; }
.kmh-p3-item__summary strong { color: var(--kmh-navy); font-size: .84rem; line-height: 1.25; }
.kmh-p3-item-options { margin-top: .1rem; padding-top: .35rem !important; }
.kmh-p3-item-options > summary { min-height: 38px; padding-block: .35rem; }
.kmh-p3-item__grid { display: grid; gap: 1rem; grid-template-columns: 1.05fr 1.1fr .95fr; }
.kmh-p3-item__grid > section { background: #f7fafb; border-radius: 12px; min-width: 0; padding: 1rem; }
.kmh-p3-item__grid li { color: var(--kmh-muted); font-size: .92rem; }
.kmh-p3-counts { display: grid; gap: .65rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: .85rem; }
.kmh-p3-occupancy-summary { background: #eef6fa; border-radius: 8px; color: var(--kmh-navy) !important; font-size: .84rem; padding: .7rem; }
.kmh-p3-counts label, .kmh-p3-child-ages label { color: var(--kmh-ink); display: grid; font-size: .78rem; font-weight: 800; gap: .25rem; }
.kmh-p3-counts input { width: 100%; }
.kmh-p3-child-ages { border-top: 1px solid var(--kmh-line); display: grid; gap: .55rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: .75rem 0; padding-top: .75rem; }
.kmh-p3-child-ages > strong { color: var(--kmh-ink); font-size: .82rem; grid-column: 1 / -1; }
.kmh-p3-capacity { background: #ecf8f3; border-radius: 8px; color: #165c42 !important; font-size: .82rem; padding: .7rem; }
.kmh-p3-extra label { align-items: center; display: flex; gap: .6rem; justify-content: space-between; margin-bottom: .75rem; }
.kmh-p3-extra label span { color: var(--kmh-ink); font-weight: 700; }
.kmh-p3-extra small { color: var(--kmh-muted); display: block; font-weight: 400; }
.kmh-p3-cart select, .kmh-p3-cart input[type="date"], .kmh-p3-cart input[type="number"] { background: #fff; border: 1px solid #9eb2bd; border-radius: 7px; color: var(--kmh-ink); min-height: 44px; padding: .55rem .7rem; }
.kmh-p3-price dl, .kmh-p3-group__summary dl, .kmh-p3-order dl { margin: 0; }
.kmh-p3-price dl div, .kmh-p3-group__summary dl div, .kmh-p3-order dl div { align-items: baseline; display: flex; gap: 1rem; justify-content: space-between; padding: .42rem 0; }
.kmh-p3-price dt, .kmh-p3-price dd, .kmh-p3-group__summary dt, .kmh-p3-group__summary dd, .kmh-p3-order dt, .kmh-p3-order dd { margin: 0; }
.kmh-p3-price dd, .kmh-p3-group__summary dd, .kmh-p3-order dd { color: var(--kmh-navy); font-weight: 800; text-align: right; }
.kmh-p3-saving { color: var(--kmh-green); }
.kmh-p3-total { border-top: 1px solid var(--kmh-line); font-weight: 800; margin-top: .35rem; padding-top: .75rem !important; }
.kmh-p3-edit { border-top: 1px solid var(--kmh-line); margin-top: .85rem; padding-top: .7rem; }
.kmh-p3-edit__controls { align-items: end; display: flex; flex-wrap: wrap; gap: .75rem; padding-block: .75rem; }
.kmh-p3-edit__controls label { display: grid; font-size: .82rem; font-weight: 800; gap: .25rem; }
.kmh-p3-button, .kmh-p3-link-button { align-items: center; border: 2px solid var(--kmh-blue); border-radius: 8px; cursor: pointer; display: inline-flex; font-weight: 800; justify-content: center; min-height: 46px; padding: .65rem 1rem; }
.kmh-p3-button { background: var(--kmh-blue); color: #fff; }
.kmh-p3-button--secondary { background: #fff; color: var(--kmh-blue); }
.kmh-p3-link-button { background: transparent; border-color: transparent; color: #a12828; }
.kmh-p3-button:disabled { background: #d7e0e4; border-color: #d7e0e4; color: #51636c; cursor: not-allowed; }
.kmh-p3-button:focus-visible, .kmh-p3-link-button:focus-visible, .kmh-p3-cart summary:focus-visible, .kmh-p3-cart select:focus-visible, .kmh-p3-cart input:focus-visible { outline: 3px solid #ffbf2f; outline-offset: 3px; }
.kmh-p3-help { font-size: .83rem; }
.kmh-p3-passes { align-items: center; background: var(--kmh-cream); border-block: 1px solid #ead59a; display: flex; gap: 1rem; justify-content: space-between; padding: .65rem clamp(.85rem, 2vw, 1.2rem); }
.kmh-p3-passes h3, .kmh-p3-passes p { margin-bottom: .3rem; }
.kmh-p3-passes > div:last-child, .kmh-p3-passes--not-required { display: grid; gap: .25rem; }
.kmh-p3-passes span { color: var(--kmh-muted); }
.kmh-p3-passes--not-required { background: #f1f7f4; }
.kmh-p3-group__summary { align-items: center; display: grid; gap: .75rem; grid-template-columns: auto minmax(0, 1fr); padding: .7rem clamp(.85rem, 2vw, 1.2rem); }
.kmh-p3-group__summary h3 { font-size: 1rem; margin: 0; }
.kmh-p3-group__summary dl { display: grid; gap: .3rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kmh-p3-group__summary dl div { border-left: 1px solid var(--kmh-line); display: grid; padding: .25rem 1rem; }
.kmh-p3-group__summary dl div:first-child { border-left: 0; padding-left: 0; }
.kmh-p3-group__summary dd { text-align: left; }
.kmh-p3-payment-pending dd { font-size: .82rem; }
.kmh-p3-charge { align-items: center; display: grid; gap: 2rem; grid-template-columns: 1fr 1fr; }
.kmh-p3-errors label { display: block; font-weight: 800; margin: 1rem 0 .45rem; }
.kmh-p3-errors select { width: min(100%, 430px); }
.kmh-p3-error-demo { background: #fff2f0; border-left: 5px solid #b72f2f; border-radius: 8px; color: #712020; margin: 1rem 0; padding: 1rem; }
.kmh-p3-order { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: 1fr 1fr; }
.kmh-p3-order .kmh-p3-button { grid-column: 1 / -1; width: 100%; }
.kmh-p3-order .kmh-p3-help { grid-column: 1 / -1; text-align: center; }
.kmh-p3-loading { opacity: .55; pointer-events: none; }

@media (max-width: 1024px) {
  .kmh-p3-item { grid-template-columns: 130px minmax(0, 1fr); }
  .kmh-p3-item__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kmh-p3-price { grid-column: 1 / -1; }
  .kmh-p3-party ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .kmh-p3-page .main-content { padding-inline: 16px; }
  .kmh-p3-contact, .kmh-p3-charge, .kmh-p3-order { grid-template-columns: 1fr; }
  .kmh-p3-contact > div + div { border-left: 0; border-top: 1px solid var(--kmh-line); padding-left: 0; padding-top: 1.25rem; }
  .kmh-p3-party ol, .kmh-p3-check-grid, .kmh-p3-assignment-demo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kmh-p3-group__header, .kmh-p3-passes { align-items: flex-start; flex-direction: column; }
  .kmh-p3-item { grid-template-columns: 110px minmax(0, 1fr); }
  .kmh-p3-item__media { aspect-ratio: 1 / 1; min-height: 0; }
  .kmh-p3-item__summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kmh-p3-item__summary > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .kmh-p3-group__summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kmh-p3-group__summary { align-items: start; grid-template-columns: 1fr; }
  .kmh-p3-group__summary dl div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .kmh-p3-order .kmh-p3-button, .kmh-p3-order .kmh-p3-help { grid-column: auto; }
}

@media (max-width: 520px) {
  .kmh-p3-page .main-content { padding-inline: 10px; }
  .kmh-p3-cart { font-size: 15px; }
  .kmh-p3-notice { align-items: flex-start; flex-direction: column; }
  .kmh-p3-party ol, .kmh-p3-check-grid, .kmh-p3-assignment-demo, .kmh-p3-item__grid, .kmh-p3-group__summary dl { grid-template-columns: 1fr; }
  .kmh-p3-counts, .kmh-p3-child-ages { grid-template-columns: 1fr 1fr; }
  .kmh-p3-item { grid-template-columns: 1fr; }
  .kmh-p3-item__media { display: none; }
  .kmh-p3-item__heading { display: grid; }
  .kmh-p3-badge { max-width: 100%; }
  .kmh-p3-price { grid-column: auto; }
  .kmh-p3-group__summary dl div { border-left: 0; border-top: 1px solid var(--kmh-line); padding: .65rem 0; }
  .kmh-p3-extra label { align-items: flex-start; }
  .kmh-p3-edit__controls, .kmh-p3-edit__controls label, .kmh-p3-edit__controls input, .kmh-p3-edit__controls button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .kmh-p3-cart *, .kmh-p3-cart *::before, .kmh-p3-cart *::after { scroll-behavior: auto !important; transition: none !important; }
}
