/* Shared catering presentation. Store shell/styles stay shared. */
.ct-preview .ct-main { max-width:none; padding:28px clamp(20px,5vw,72px) 64px; }
.ct-preview .cart-button { text-decoration:none; }
.ct-preview .ct-main h1,.ct-preview .ct-main h2,.ct-preview .ct-main h3,.ct-preview .ct-dialog h2 { font-family:Arial,Helvetica,sans-serif; font-weight:700; line-height:1.25; }
.ct-preview .ct-main h1 { color:var(--plum); font-size:32px; margin:0 0 14px; }
.ct-preview .ct-main h2 { color:var(--plum); font-size:26px; margin:0 0 20px; }
.ct-preview .ct-dialog h2 { font-size:24px; }
.ct-preview .ct-main .eyebrow { color:var(--plum-2); margin:0 0 16px; }
.ct-preview .ct-overview-hero { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:center; padding:0 0 22px; }
.ct-preview .ct-intro { padding:0; }
.ct-preview .ct-lead { font-size:16px; line-height:1.5; margin:16px 0 0; max-width:700px; }
.ct-preview .ct-event-photo { margin:0; min-width:0; }
.ct-preview .ct-event-photo img { width:100%; display:block; object-fit:cover; border-radius:20px; height:220px; object-position:50% 44%; }
.ct-preview .ct-event-photo figcaption { margin-top:10px; color:var(--muted); font-size:13px; line-height:1.45; }
.ct-preview .ct-formats { margin:0; padding:0; gap:8px; scroll-margin-top:105px; }
.ct-preview .ct-formats a { background:var(--white); font-weight:700; padding:12px 22px; }
.ct-preview .ct-formats a:hover { background:var(--plum); color:var(--white); }
.ct-preview .ct-group { padding:24px 0; scroll-margin-top:100px; }
.ct-preview .ct-grid { gap:20px; }
.ct-preview .ct-card { border-radius:20px; }
.ct-preview .ct-card-photo { margin:0; position:relative; }
.ct-preview .ct-card-photo .ct-photo { aspect-ratio:1.6; }
.ct-preview .ct-card-photo figcaption { position:absolute; bottom:0; left:0; right:0; padding:26px 18px 12px; font-size:12px; line-height:1.4; color:white; background:linear-gradient(transparent,rgba(25,15,25,.85)); }
.ct-preview .ct-card-copy { padding:20px; }
.ct-preview .ct-card-copy h3 { font-size:18px; line-height:1.35; color:var(--plum); }
.ct-preview .ct-card-copy>p { font-size:15px; margin:14px 0 0; line-height:1.55; }
.ct-preview .ct-card-copy .ct-meta { margin-top:auto; padding-top:16px; }
.ct-preview .ct-variant-label { margin-top:16px; font-size:14px; justify-content:space-between; }
.ct-preview .ct-variant-label select { min-height:44px; border-radius:999px; padding:9px 16px; }
.ct-preview .ct-price { gap:4px; margin:20px 0; }
.ct-preview .ct-price strong { font-size:30px; line-height:1.15; }
.ct-preview .ct-price span { font-size:15px; color:var(--muted); }
.ct-preview .ct-card .ct-price strong { font-size:24px; }
.ct-preview .ct-primary,.ct-preview .ct-secondary { border-radius:999px; min-height:54px; padding:12px 20px; font-size:16px; font-weight:700; }
.ct-preview .ct-primary { border:0; }
.ct-preview .ct-actions { gap:10px; flex-wrap:nowrap; }
.ct-preview .ct-actions>* { flex:1; }
.ct-preview .ct-primary:hover { background:var(--plum-2); }
.ct-preview .ct-secondary:hover { background:var(--white); }
.ct-preview .ct-breadcrumb { font-size:13px; color:var(--muted); margin-bottom:20px; }
.ct-preview .ct-offer-hero { grid-template-columns:1.3fr 1fr; grid-template-areas:'title photo' 'summary photo'; gap:0 40px; padding:0 0 30px; align-items:start; }
.ct-preview .ct-offer-title { grid-area:title; }
.ct-preview .ct-offer-summary { grid-area:summary; }
.ct-preview .ct-offer-hero>.ct-event-photo { grid-area:photo; }
.ct-preview .ct-offer-food { margin:0; font-size:16px; line-height:1.5; }
.ct-preview .ct-offer-hero h1 { max-width:650px; }
.ct-preview .ct-offer-hero .ct-event-photo img { height:310px; }
.ct-preview .ct-variants { gap:8px; margin:14px 0 18px; }
.ct-preview .ct-variants a { font-weight:700; padding:11px 22px; font-size:15px; }
.ct-preview .ct-included { max-width:640px; margin:14px 0; font-size:15px; line-height:1.5; }
.ct-preview .ct-validity { font-size:13px; line-height:1.5; margin:14px 0 0; max-width:580px; }
.ct-preview .ct-description p { font-size:16px; margin:0; }
.ct-preview .ct-section { padding:32px 0; }
.ct-preview .ct-section>p { max-width:900px; }
.ct-preview .ct-food-photos { gap:20px; grid-template-columns:repeat(var(--ct-photo-columns,3),minmax(0,1fr)); }
.ct-preview .ct-gift h3 { font-size:20px; line-height:1.35; }
.ct-preview .ct-food-photos img { border-radius:20px; aspect-ratio:1.6; }
.ct-preview .ct-food-photos figcaption { font-size:14px; }
.ct-preview .ct-menu summary { display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; color:var(--plum); }
.ct-preview .ct-menu summary::-webkit-details-marker { display:none; }
.ct-preview .ct-menu summary::after { content:'+'; font-size:28px; font-weight:400; }
.ct-preview .ct-menu[open] summary::after { content:'−'; }
.ct-preview .ct-menu li { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); font-size:15px; }
.ct-preview .ct-menu li span { line-height:1.5; }
.ct-preview .ct-fixed-guests { font-weight:700; margin:14px 0 18px; }
.ct-preview .ct-equipment { max-width:900px; border-left:3px solid var(--plum); padding:4px 0 4px 20px; margin:24px 0; }
.ct-preview .ct-equipment h3 { font-size:18px; margin:0 0 10px; }
.ct-preview .ct-equipment p { margin:0; font-size:16px; }
.ct-preview .ct-team { margin-top:24px; border:1px solid var(--line); font-size:15px; }
.ct-preview .ct-journey ol { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ct-preview .ct-journey li { border:1px solid var(--line); font-size:15px; }
.ct-preview .ct-journey li::before { font-family:Arial,Helvetica,sans-serif; font-weight:700; font-size:24px; }
.ct-preview .ct-journey li:last-child { grid-column:span 2; }
.ct-preview .ct-final { padding:36px; border:1px solid var(--line); }
.ct-preview .ct-final h3 { font-size:18px; }
.ct-preview .ct-final .ct-actions { max-width:650px; }
@media(max-width:1050px) {
 .ct-preview .ct-overview-hero,.ct-preview .ct-offer-hero { gap:28px; }
 .ct-preview .ct-actions { flex-wrap:wrap; }
 .ct-preview .ct-actions>* { flex-basis:100%; }
 .ct-preview .ct-journey ol { grid-template-columns:1fr 1fr; }
 .ct-preview .ct-journey li:last-child { grid-column:1/-1; }
}
@media(max-width:780px) {
 .ct-preview .ct-main { padding:18px 20px 48px; }
 .ct-preview .ct-overview-hero { grid-template-columns:1fr; gap:16px; padding-bottom:8px; }
 .ct-preview .ct-offer-hero { grid-template-columns:1fr; grid-template-areas:'title' 'photo' 'summary'; gap:12px; }
 .ct-preview .ct-offer-summary { display:flex; flex-direction:column; }
 .ct-preview .ct-offer-summary .ct-offer-food { order:0; }
 .ct-preview .ct-offer-summary .ct-price { order:1; }
 .ct-preview .ct-offer-summary .ct-actions { order:2; }
 .ct-preview .ct-offer-summary .ct-included { order:3; }
 .ct-preview .ct-offer-summary .ct-validity { order:4; margin-top:0; }
 .ct-preview .ct-main h1 { font-size:28px; margin:0 0 12px; }
 .ct-preview .ct-main h2 { font-size:24px; }
 .ct-preview .ct-lead { margin:14px 0 0; font-size:16px; }
 .ct-preview .ct-event-photo img,.ct-preview .ct-offer-hero .ct-event-photo img { height:112px; border-radius:16px; }
 .ct-preview .ct-event-photo figcaption { margin-top:5px; font-size:12px; }
 .ct-preview .ct-formats { gap:6px; }
 .ct-preview .ct-formats a { font-size:14px; padding:11px 12px; }
 .ct-preview .ct-grid { grid-template-columns:1fr; }
 .ct-preview .ct-card-copy h3 { font-size:18px; }
 .ct-preview .ct-card .ct-price strong { font-size:24px; }
 .ct-preview .ct-breadcrumb { margin-bottom:14px; }
 .ct-preview .ct-offer-title>.eyebrow { margin-bottom:8px; font-size:11px; }
 .ct-preview .ct-variants { margin:12px 0 0; }
 .ct-preview .ct-included { line-height:1.45; margin:12px 0; }
 .ct-preview .ct-price { margin:14px 0; }
 .ct-preview .ct-price strong { font-size:28px; }
 .ct-preview .ct-price span { font-size:14px; }
 .ct-preview .ct-validity { font-size:12px; }
 .ct-preview .ct-section { padding:32px 0; }
 .ct-preview .ct-description p { font-size:16px; }
 .ct-preview .ct-food-photos { grid-template-columns:1fr; gap:18px; }
 .ct-preview .ct-food-photos figure:last-child { display:block; }
 .ct-preview .ct-menu summary { font-size:17px; padding:20px; }
 .ct-preview .ct-menu li { grid-template-columns:1fr; gap:6px; }
 .ct-preview .ct-journey ol { grid-template-columns:1fr; }
 .ct-preview .ct-journey li:last-child { grid-column:auto; }
 .ct-preview .ct-final { padding:24px; }
}
