
#cg-booking{max-width:1180px;margin:20px auto 48px;color:#321520;font:inherit}
#cg-booking *{box-sizing:border-box}
#cg-booking h1,#cg-booking h2{color:#321520;font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:1.15}
#cg-booking h1{font-size:clamp(30px,4vw,48px);margin:22px 0 16px}
#cg-booking h2{font-size:26px;margin:0 0 20px}
#cg-booking .lead{font-size:17px;line-height:1.7;max-width:900px}
#cg-booking .notice,#cg-booking .demo,#cg-booking .status{padding:15px 18px;background:#faedf2;border:1px solid #ead0db;border-radius:14px;line-height:1.6}
#cg-booking .layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:24px;margin-top:28px;align-items:start}
#cg-booking .panel{padding:26px;background:#fffdfd;border:1px solid #ecd5df;border-radius:20px;margin:0 0 22px;box-shadow:0 8px 24px rgba(80,22,45,.025)}
#cg-booking label{display:block;margin:18px 0 7px;font-weight:600;font-size:15px}
#cg-booking input,#cg-booking select,#cg-booking button{font:inherit;color:inherit;max-width:100%;border:1px solid #d8b6c5;border-radius:9px;padding:11px 12px;background:#fff;box-shadow:none}
#cg-booking input,#cg-booking select{width:100%;height:auto;min-height:46px}
#cg-booking button{cursor:pointer;min-height:44px;line-height:1.4}
#cg-booking button:focus-visible,#cg-booking input:focus-visible,#cg-booking select:focus-visible{outline:3px solid #b95e81;outline-offset:3px}
#cg-booking .choices,#cg-booking .slots,#cg-booking .row{display:flex;gap:12px;flex-wrap:wrap;margin:0}
#cg-booking .choices button{flex:1;min-width:180px;text-align:left}
#cg-booking .selected{background:#f8e6ee;border:2px solid #80183f}
#cg-booking .row>div{flex:1;min-width:160px;padding:0}
#cg-booking .small{font-size:14px;color:#725965;line-height:1.65;margin:12px 0}
#cg-booking .slots{margin-top:18px}
#cg-booking .slots button{min-width:110px}
#cg-booking .slots button:disabled{background:#eee;color:#777;border-color:#ddd;text-decoration:line-through;cursor:not-allowed}
#cg-booking .line{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #f0e1e7;font-size:14px}
#cg-booking .line strong{text-align:right;overflow-wrap:anywhere}
#cg-booking .price{font-size:32px;margin:22px 0}
#cg-booking .primary,#cg-booking .secondary{width:100%;margin:10px 0 0}
#cg-booking .primary{background:#80183f;color:#fff;border-color:#80183f}
#cg-booking .check{display:flex;gap:10px;font-weight:400;line-height:1.6;align-items:start}
#cg-booking .check input{width:20px;min-height:20px;flex-shrink:0;margin-top:3px}
#cg-booking .hidden{display:none!important}
#cg-booking .demo{margin-top:20px;border-style:dashed}
#cg-booking .demo summary{cursor:pointer}
#cg-booking .calendarhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 12px}
#cg-booking .calendarhead strong{text-transform:capitalize}
#cg-booking .calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
#cg-booking .weekday{text-align:center;font-size:13px;padding:8px 0}
#cg-booking .date{padding:8px 2px;min-width:0;min-height:44px}
#cg-booking .date.closed:disabled{background:#fae1e5;color:#9a2d42;opacity:1;text-decoration:line-through}
#cg-booking .date.outside:disabled{background:#f1eeee;color:#8a8084;opacity:1;border-color:#e2dbde}
#cg-booking .date.open{background:#fff9fb}
#cg-booking .date.selected{background:#80183f;color:white}
#cg-booking .legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;margin:12px 0}
#cg-booking .closedlabel{color:#9a2d42}
#cg-booking aside .panel{position:sticky;top:20px}
#cg-booking button:disabled{opacity:.65;cursor:not-allowed}
@media(max-width:800px){#cg-booking .layout{grid-template-columns:1fr}#cg-booking .panel{padding:20px}#cg-booking aside .panel{position:static}}
@media(max-width:380px){#cg-booking .panel{padding:14px}#cg-booking .calendar{gap:3px}#cg-booking .choices button{min-width:150px}}

#cg-booking{overflow-anchor:none}

/* The theme reserves the expanded header height even after it leaves the viewport.
   Native focus then scrolls visible fields on the first click. Scope the reset here. */
html:has(#cg-booking){scroll-behavior:auto!important;overflow-anchor:none!important;scroll-padding-top:0!important}
body:has(#cg-booking){overflow-anchor:none!important}
#cg-booking .cg-quote-choice{padding:8px 0 14px;border-bottom:1px solid #ecd5df}
#cg-booking .cg-quote-choice[hidden]{display:none!important}
#cg-booking #cg-travel-result.cg-travel-warning{font-size:16px;font-weight:700;color:#80183f;white-space:pre-line}
#cg-booking .project-copy{white-space:pre-line}
#cg-booking #projecttitle{font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;font-weight:500;margin:22px 0 14px;color:#321520}
#cg-booking .project-gallery{margin:0 0 20px}
#cg-booking .project-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;max-height:360px;object-fit:contain;background:#faf3f5;border:1px solid #ecd5df;border-radius:12px}
#cg-booking .project-thumbnails{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
#cg-booking .project-thumbnails button{padding:4px;background:#fffdfd;border:1px solid #d8b6c5;line-height:0;min-height:0}
#cg-booking .project-thumbnails button[aria-pressed="true"]{border:2px solid #80183f;padding:3px}
#cg-booking .project-thumbnails img{display:block;width:80px;height:64px;object-fit:contain;border-radius:5px}
#cg-booking .booking-info{background:#faedf2;border:1px solid #ecd5df;border-radius:16px;padding:16px 20px;margin:20px 0}
#cg-booking .booking-info p{margin:0 0 10px}
#cg-booking .booking-info p:last-child{margin-bottom:0}
