/* A character visit in the homepage's warm, rounded visual language. */
.pcfk-booking-preview { background: #f5f2fa; }
.cb-page { padding: 112px 0 52px; }
.cb-crumbs { display:flex; flex-wrap:wrap; gap:10px; color:var(--muted); font-size:13px; margin-bottom:24px; }
.cb-crumbs a { text-decoration:none; }
.cb-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:clamp(28px,4vw,64px); align-items:start; }
.cb-media { min-width:0; }
.cb-photo { position:relative; margin:0; border:8px solid white; border-radius:36px; overflow:hidden; box-shadow:0 18px 40px #2d194714; background:#e9e3ef; }
.cb-photo img { width:100%; height:clamp(580px,55vw,810px); object-fit:cover; display:block; }
.cb-photo-pill { position:absolute; top:18px; left:18px; right:18px; width:max-content; max-width:calc(100% - 36px); padding:9px 16px; background:#fffaf0; color:#302040; border-radius:18px; font-size:clamp(20px,2vw,28px); transform:rotate(-2deg); }
.cb-photo figcaption { position:absolute; bottom:14px; left:14px; background:#fffef4ee; color:#3b3543; padding:7px 12px; border-radius:30px; font-size:11px; }
.cb-promise { display:flex; align-items:center; gap:15px; margin:22px 7px 10px; font-size:15px; line-height:1.55; color:#62596f; }
.cb-promise strong { color:#2d213d; font-size:18px; font-weight:600; }
.cb-promise-icon { flex-shrink:0; display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#ffe7df; color:#d84750; font-size:29px; }
.cb-program { display:inline-flex; gap:12px; margin:8px 7px; font-size:14px; color:#6d49c8; text-underline-offset:4px; }
.cb-heading { margin:4px 0 20px; }
.cb-kicker { display:flex; align-items:center; flex-wrap:wrap; gap:12px; color:#716580; font-size:13px; margin-bottom:12px; }
.cb-kicker span { border-radius:30px; padding:6px 12px; background:#fff; color:#38294a; }
.cb-heading h1 { font-size:clamp(36px,3.5vw,56px); line-height:1.06; letter-spacing:-.045em; font-weight:550; }
.cb-heading > p:last-child { font-size:16px; line-height:1.5; color:#686073; margin-top:12px; }
.cb-booking { min-width:0; }
.cb-booking .ticket { margin-top:0; border-radius:28px; padding:24px; box-shadow:0 14px 45px #36234e09; background:#fff; }
.cb-booking .tk-who { margin-bottom:17px; }
.cb-booking .tk-who > .tk-h { display:none; }
.cb-booking .tk-coming { margin:0; }
.cb-booking .tk-char { padding:9px 12px; border-radius:16px; }
.cb-booking .pf { display:grid; grid-template-columns:1fr 1fr; gap:17px 12px; }
.cb-booking .pf-row { margin:0; min-width:0; }
.cb-booking [data-pf-row="place"], .cb-booking [data-pf-row="length"] { grid-column:1/-1; }
.cb-booking .pf-label { font-size:14px; margin-bottom:7px; }
.cb-booking .find-box { min-height:48px; border-radius:14px; }
.cb-booking .pf-status:empty { display:none; }
.cb-booking .pf-status { font-size:12px; margin-top:6px; }
.cb-booking .pf-days { overflow:visible; padding:0; display:block; }
.cb-booking .pf-date-picker, .cb-booking select.pf-native { width:100%; height:48px; min-width:0; margin:0; border:1px solid #dfd8ec; border-radius:14px; padding:10px 12px; background:#faf8ff; color:#32243f; font:inherit; font-size:14px; text-align:left; }
.cb-booking .pf-date-picker::after { content:'⌄'; float:right; margin-left:6px; }
.cb-booking [data-pf-row="date"] { position:relative; }
.cb-booking .pf-cal { position:absolute; top:calc(100% + 6px); left:0; z-index:30; width:300px; max-width:calc(100vw - 64px); box-shadow:0 14px 42px #27113b22; background:white; border-radius:20px; }
.cb-booking .lengths { gap:6px; }
.cb-booking .lengths button { padding:10px 5px; font-size:13px; border-radius:13px; }
.cb-booking .tk-price { margin-top:20px; }
.cb-booking .tk-book { min-height:50px; border-radius:30px; margin-top:16px; }
.cb-booking .tk-add { min-height:38px; margin-top:8px; border-radius:30px; }
.cb-booking .pw { margin:17px 0 10px; padding:13px 16px; border-radius:17px; background:#faf8ff; font-size:13px; }
.cb-booking .tk-fine, .cb-booking .tk-alt { font-size:11px; line-height:1.5; }
.pcfk-booking-preview .character-scenes { padding-block:45px 55px; }
.pcfk-booking-preview .character-scenes-grid img { border-radius:24px; }
.pcfk-booking-preview .character-scenes h2 { font-size:clamp(30px,4vw,48px); }
@media(max-width:900px) {
 .cb-grid { grid-template-columns:minmax(0,1fr); gap:26px; max-width:650px; margin-inline:auto; }
 .cb-page { padding-top:98px; }
 .cb-crumbs { max-width:650px; margin-inline:auto; }
 .cb-photo img { height:460px; object-position:50% 30% !important; }
 .cb-promise { margin-top:17px; }
 .cb-heading { margin-top:0; }
 .cb-heading h1 { font-size:42px; }
}
@media(max-width:480px) {
 .cb-page { padding-bottom:28px; }
 .cb-crumbs { font-size:11px; gap:7px; margin-bottom:17px; }
 .cb-photo { border-width:6px; border-radius:28px; }
 .cb-photo img { height:380px; }
 .cb-photo-pill { font-size:20px; padding:8px 12px; top:12px; left:12px; }
 .cb-photo figcaption { font-size:9px; bottom:10px; left:10px; }
 .cb-heading h1 { font-size:36px; }
 .cb-heading > p:last-child { font-size:14px; }
 .cb-booking .ticket { padding:18px; border-radius:24px; }
 .cb-booking .pf { gap:15px 9px; }
 .cb-booking .pf-date-picker, .cb-booking select.pf-native { font-size:12px; padding:10px 8px; }
 .cb-booking .pf-cal { max-width:calc(100vw - 80px); }
 .cb-promise { font-size:13px; }
 .cb-promise strong { font-size:16px; }
}
/* The compact form does not inherit the chip rail's edge bleed or extra gaps. */
.cb-booking .ticket { gap:12px; }
.cb-booking .tk-who { margin-bottom:0; }
.cb-booking .pf-days { margin:0; }
.cb-booking .tk-price { margin-top:3px; }
.cb-booking .tk-book { height:50px; margin-top:0; }
.cb-booking .tk-add { margin-top:0; }
.cb-photo img { height:clamp(580px,49vw,740px); }
@media(max-width:900px) { .cb-photo img { height:460px; } }
@media(max-width:480px) { .cb-photo img { height:380px; } }
