/* Short contact-first forms; comfortable targets are retained on small screens. */
.rv-booking-flow { min-width:0; }
.rv-contact-form,.rv-detail-form { display:grid; gap:12px; margin:0; min-width:0; }
.rv-contact-form { padding:22px; border:1px solid #d7e3d2; border-radius:22px; background:#fff; box-shadow:0 18px 40px -35px #0d372c80; }
.rv-booking-flow label { display:grid; gap:5px; font-size:13px; font-weight:600; min-width:0; }
.rv-booking-flow input:not([type=checkbox]),.rv-booking-flow select,.rv-booking-flow textarea { width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid #c6d6c8; border-radius:10px; color:#143b2d; background:#fff; font:inherit; font-size:16px; }
.rv-booking-flow textarea { resize:vertical; min-height:70px; }
.rv-contact-grid { display:grid; grid-template-columns:1fr 1.2fr 1fr; gap:12px; }
.rv-hotel-grid { display:grid; grid-template-columns:2fr 1fr; gap:12px; }
.rv-form-step { margin:0; color:#206347; font-size:12px; font-weight:700; letter-spacing:.025em; }
.rv-booking-flow .rv-consent,.rv-booking-flow .rv-party-choice { display:flex; gap:9px; align-items:flex-start; font-size:12px; font-weight:400; line-height:1.5; }
.rv-booking-flow input[type=checkbox] { width:19px; height:19px; min-height:19px; accent-color:#206347; flex:none; margin:0; }
.rv-booking-flow .button { min-height:44px; padding:11px 15px; font-size:14px; justify-content:center; }
.rv-booking-flow .rv-form-note { margin:0; font-size:12px; color:#52685a; line-height:1.5; }
.rv-honeypot { display:none!important; }
.rv-details-panel { margin-top:16px; }
.rv-form-success { padding:16px 18px; margin-bottom:14px; border:1px solid #bed9b1; border-radius:16px; color:#174830; background:#ecf6e2; }
.rv-form-success strong { font-size:17px; line-height:1.4; display:block; }
.rv-form-success p { margin:7px 0 0; font-size:14px; line-height:1.5; }
.rv-request-id { display:block; margin-top:7px; font-size:11px; }
.rv-detail-form.nt-form { padding:20px; gap:12px; }
.rv-details-party { display:grid; gap:10px; border:1px solid #d7e3d2; border-radius:12px; padding:12px; margin:0; min-width:0; }
.rv-detail-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.rv-skip { min-height:44px; padding:8px 12px; border-radius:10px; border:1px solid #cad9c1; font-size:13px; color:#24533b; background:#fff; cursor:pointer; }
.rv-form-status,.rv-details-status { margin:0; padding:12px; font-size:14px; line-height:1.5; background:#fff3dd; border-radius:12px; color:#603c21; }
.rv-manual { padding:12px; border:1px solid #cad9c1; border-radius:12px; }
.rv-manual summary { font-size:13px; cursor:pointer; }
.rv-manual textarea { margin:10px 0; min-height:110px; }
.rv-manual-links { display:flex; flex-wrap:wrap; gap:9px; }
.rv-details-party[hidden],.rv-details-panel[hidden],.rv-contact-form[hidden],.rv-detail-form[hidden],.rv-flow-evening-count[hidden] { display:none!important; }
.rv-evening-slot { display:grid; gap:10px; }
.rv-evening-slot .nt-checkbox { font-size:13px; }
.rv-evening-slot [data-nt-evening-count] { grid-template-columns:1fr 70px; align-items:center; }
.rv-evening-slot [data-nt-evening-count] small { grid-column:1/-1; margin:0; font-size:12px; }
.rv-party-line { display:grid; grid-template-columns:.85fr 1fr 1.1fr; gap:10px; align-items:end; }
.rv-adult-tally { display:grid; gap:5px; font-size:11px; line-height:1.3; color:#385a43; }
.rv-adult-tally strong { display:grid; place-items:center; min-height:44px; background:#ffffff50; border:1px solid #aac596; border-radius:10px; font-size:18px; }
.rv-party-line label { display:grid!important; grid-template-columns:1fr!important; gap:5px!important; margin:0!important; font-size:11px!important; font-weight:500; line-height:1.3; }
.rv-party-line input { width:100%!important; min-width:0; min-height:44px!important; padding:9px 7px!important; font-size:16px!important; }
.nt-child-controls { margin-bottom:12px!important; }
.nt-party-options { grid-template-columns:repeat(6,minmax(0,1fr)); margin-bottom:14px; gap:7px; }
.nt-calculator { padding:24px; }
.nt-calculator .rv-party-line { gap:8px; }
.nt-hero-calculator .nt-child-controls legend { margin:0!important; }
.nt-request-summary { padding:24px; }
.nt-request-summary h3 { font-size:25px; margin-bottom:14px; }
.nt-request-summary ol { gap:12px; margin:16px 0; }
.nt-request-summary > p:not(.nt-kicker) { font-size:14px; }
.site-dialog:has(.rv-booking-flow) { width:min(760px,calc(100% - 24px)); padding:20px; }
.site-dialog:has(.rv-booking-flow) .dialog-close { margin-bottom:4px; min-width:44px; min-height:44px; }
.site-dialog .rv-contact-form { padding:0; border:0; box-shadow:none; }
.site-dialog .rv-booking-flow h2 { margin:0 0 16px; font-size:26px; }
@media(max-width:620px) {
 .rv-contact-grid { grid-template-columns:1fr 1fr; gap:10px; }
 .rv-contact-grid > label:last-child { grid-column:1/-1; }
 .rv-contact-form { padding:18px; }
 .rv-detail-form.nt-form { padding:18px; }
 .rv-hotel-grid { gap:10px; }
 .rv-details-party { padding:10px; }
 .nt-request-summary { padding:20px; }
}
@media(max-width:380px) { .rv-contact-grid { grid-template-columns:1fr; }.rv-hotel-grid { grid-template-columns:1.5fr 1fr; }.rv-party-line { gap:6px; }.rv-party-line label { font-size:10px!important; } }
