.form-subtitle{font-size:28px;margin:12px 0 15px}.planning-section{margin-top:18px;border-top:1px solid var(--line);padding-top:24px}.planning-section>.help-text{font-size:12px;line-height:1.8;margin-bottom:12px}.planning-section>.button{justify-self:start}.planning-empty{padding:22px;background:var(--cream);font-size:12px;margin:10px 0 20px}.meal-request{min-width:0;border:1px solid var(--line);padding:24px;margin:18px 0;background:#fffcf6}.meal-request>legend{font-family:var(--serif);font-size:26px;color:var(--wine);padding:0 9px}.meal-heading{display:flex;gap:20px;align-items:start;justify-content:space-between;margin-bottom:23px}.meal-heading p{font-size:11px}.remove-meal{flex-shrink:0;background:none;border:0;padding:0;color:var(--wine);text-decoration:underline;font-size:10px}.request-items{margin:24px 0 19px}.request-item{border-top:1px solid var(--line);padding:20px 0 7px;margin-top:17px}.request-item-main{display:grid;grid-template-columns:minmax(0,1fr) 85px 105px 30px;gap:11px;align-items:start}.request-item-details{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;margin-top:13px}.request-item-name input{min-width:0}.remove-row{border:0;background:transparent;color:var(--wine);font-size:25px;margin-top:22px;min-height:44px;padding:0}.request-item .field label{font-size:10px}.request-item input,.request-item select{font-size:11px}.request-item .field-error{font-size:10px}.review-group dd{overflow-wrap:anywhere}.planning-error-list{padding-left:20px;margin:8px 0 0}.meal-request .button{margin-top:9px}
@media(max-width:1100px){.request-item-main{grid-template-columns:minmax(0,1fr) 80px 100px 25px}.meal-request{padding:18px}.request-item-details{grid-template-columns:125px minmax(0,1fr)}}
@media(max-width:720px){.form-steps{gap:5px}.form-step{font-size:9px;gap:4px}.form-step>span{width:21px;height:21px;flex-shrink:0}.meal-request{padding:18px 14px}.request-item-main{grid-template-columns:1fr 1fr 30px}.request-item-name{grid-column:1/-1}.request-item-details{grid-template-columns:1fr}.meal-heading{gap:12px}.remove-meal{min-height:44px}.request-item-main .field{grid-column:auto}.request-item-main .request-item-name{grid-column:1/-1}.planning-section .button{width:100%}.meal-heading p{font-size:11px}.request-item input,.request-item select{font-size:12px}.form-subtitle{font-size:27px}}

/* Food & drinks step: choose between the simple and detailed menu. */
.menu-mode{border:0;padding:0;margin:0;min-width:0}
.menu-mode>legend{padding:0;margin:0 0 14px;font-family:var(--serif);font-weight:400;letter-spacing:-.5px;color:var(--ink)}
.menu-mode-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mode-card{display:flex;gap:13px;align-items:flex-start;border:1px solid var(--line);background:#fffdf8;padding:20px 22px;cursor:pointer;transition:border-color .2s,background .2s}
.mode-card:hover{border-color:#bca298}
.mode-card:has(input:checked){border-color:var(--wine);background:var(--cream);box-shadow:inset 0 0 0 1px var(--wine)}
.mode-card:has(:focus-visible),.meal-tile:has(:focus-visible),.drink-tile:has(:focus-visible){outline:3px solid #a86429;outline-offset:2px}
.mode-card input,.meal-tile input,.drink-tile input{width:17px;height:17px;min-height:0;margin:3px 0 0;flex-shrink:0;accent-color:var(--wine)}
.mode-card strong{display:block;font-family:var(--serif);font-size:25px;font-weight:500;color:var(--ink);line-height:1.15;margin:8px 0 6px}
.mode-copy{display:block;font-size:12px;line-height:1.6;color:var(--muted)}
.mode-tag{display:inline-block;font-size:9px;letter-spacing:1px;text-transform:uppercase;background:var(--paper);border:1px solid var(--line);color:var(--wine);padding:4px 8px}
.simple-menu{gap:0;margin-top:6px}
/* Dividers sit below each question so they never cross a fieldset legend. */
.simple-question{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:9px}
.simple-question:not(:last-child){border-bottom:1px solid var(--line);padding-bottom:26px;margin-bottom:26px}
.simple-menu .simple-question-title{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:25px;font-weight:400;letter-spacing:-.5px;color:var(--ink);padding:0;line-height:1.2}
.simple-menu .simple-question-title>span{letter-spacing:0;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--wine);color:white;font-family:var(--sans);font-size:12px;font-weight:600;flex-shrink:0}
.simple-question>.help-text{font-size:11px;margin-bottom:6px}
.meal-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.meal-tile{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);background:#fffdf8;padding:15px 14px;cursor:pointer;transition:border-color .2s,background .2s}
.meal-tile:hover,.drink-tile:hover{border-color:#bca298}
.meal-tile:has(input:checked),.drink-tile:has(input:checked){border-color:var(--wine);background:var(--cream)}
.meal-tile strong{display:block;font-size:13px;font-weight:600;color:var(--ink)}
.meal-tile span span{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:3px}
.drink-tiles{display:flex;flex-wrap:wrap;gap:10px}
.drink-tile{display:flex;gap:9px;align-items:center;border:1px solid var(--line);background:#fffdf8;padding:11px 15px;font-size:12px;cursor:pointer}
.drink-tile input{margin:0}
[data-music-kinds] .drink-tile{min-height:44px}
.simple-menu-link{align-self:flex-start;margin-top:8px;font-size:11px}
.menu-note{background:var(--cream);border-left:3px solid var(--sage);padding:12px 16px;font-size:11px;line-height:1.7;margin-top:6px}
.menu-extras-head{margin-top:14px;border-top:1px solid var(--line);padding-top:26px}
.menu-extras-head .form-subtitle{margin:0}
@media(max-width:1100px){.meal-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.menu-mode-options{grid-template-columns:1fr}
.mode-card{padding:17px}
.mode-card strong{font-size:23px}
.simple-menu .simple-question-title{font-size:22px}
.meal-tile{padding:13px 12px}
}

/* Simple menu: food-service formats, per-meal set menus or mains, drink bundles and serving. */
.format-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.format-card,.option-row{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--line);background:#fffdf8;padding:14px 16px;cursor:pointer;transition:border-color .2s,background .2s}
.format-card:hover,.option-row:hover{border-color:#bca298}
.format-card:has(input:checked),.option-row:has(input:checked){border-color:var(--wine);background:var(--cream);box-shadow:inset 0 0 0 1px var(--wine)}
.format-card:has(:focus-visible),.option-row:has(:focus-visible){outline:3px solid #a86429;outline-offset:2px}
.format-card input,.option-row input{width:17px;height:17px;min-height:0;margin:2px 0 0;flex-shrink:0;accent-color:var(--wine)}
.format-card strong,.option-row strong{display:block;font-size:13px;font-weight:600;color:var(--ink)}
.format-card span span,.option-row span span{display:block;font-size:11px;line-height:1.55;color:var(--muted);margin-top:3px}
.option-list{display:grid;gap:8px}
.meal-times{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;margin-top:14px;padding:14px 16px;background:var(--cream)}
.meal-times>.field-label{flex-basis:100%}
.meal-times label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:600;min-width:130px}
.meal-times input{min-height:40px;padding:8px 10px}
.meal-food{border:1px solid var(--line);background:#fffdf8;padding:18px 20px;display:flex;flex-direction:column;gap:9px}
.meal-food+.meal-food{margin-top:12px}
.meal-food h4{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--wine)}
.set-preview{margin:4px 0 0;padding:12px 16px 12px 32px;background:var(--cream);font-size:12px;line-height:1.8;columns:2 220px}
.mains-picker{border:0;padding:0;margin:4px 0 0;min-width:0;display:flex;flex-direction:column;gap:9px}
.mains-picker>legend{padding:0;margin-bottom:8px}
.drink-tile:has(input:disabled){opacity:.45;cursor:not-allowed}
.main-counts{display:flex;flex-wrap:wrap;gap:10px 16px}
.main-counts label{display:flex;flex-direction:column;gap:5px}
.main-counts input{width:130px;min-height:40px;padding:8px 10px}
.dessert-choice{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:4px}
.dessert-choice .check-row{align-items:center}
.dessert-choice .check-row input{margin-top:0}
.serving-question{border:0;padding:0;margin:14px 0 0;min-width:0;display:flex;flex-direction:column;gap:9px}
.serving-question>legend{padding:0;margin-bottom:6px;font-family:var(--serif);font-weight:400;letter-spacing:-.5px;color:var(--ink)}
@media(max-width:720px){.format-cards{grid-template-columns:1fr}.meal-food{padding:15px}.set-preview{columns:1}}
/* Set-menu dishes can be unticked; meal rows take a time and a headcount; juice flavours and takeaway. */
.set-preview{border:0;min-width:0;display:grid;gap:4px;columns:initial;padding:12px 16px}
.set-preview>legend{padding:0;margin-bottom:6px}
.set-preview .check-row{font-size:12px;align-items:center}
.set-preview .check-row input{margin-top:0}
.meal-time-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 14px;flex-basis:100%}
.meal-time-row>span{min-width:120px;font-size:12px;font-weight:600;padding-bottom:10px}
.meal-time-row label{min-width:120px}
.meal-time-row input[type=number]{width:120px}
.juice-choice{border:0;padding:0;margin:10px 0 0;min-width:0;display:flex;flex-direction:column;gap:8px}
.juice-choice>legend{padding:0;margin-bottom:8px}
/* Juice tiles show a photo of the jug, with the tick box and name underneath. */
.drink-tiles:has(.with-photo){display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.drink-tile.with-photo{flex-direction:column;justify-content:flex-end;gap:9px;padding:12px 10px 11px}
.drink-photo{display:block;height:84px;width:auto;transition:transform .2s ease}
.drink-tile.with-photo:hover .drink-photo{transform:translateY(-2px)}
.drink-tile-name{display:flex;align-items:center;gap:8px}
.drink-options:has(.drink-thumb){align-items:center}
.drink-options:has(.drink-thumb) .check-row{align-items:center}
.drink-thumb{display:block;height:34px;width:auto;margin:-4px 0}
@media(prefers-reduced-motion:reduce){.drink-photo{transition:none}.drink-tile.with-photo:hover .drink-photo{transform:none}}
.takeaway-row{margin-top:10px;font-size:12px}
.coconut-row{margin-top:10px;font-size:12px}
.drink-group{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.drink-group-label{font-size:11px;font-weight:600;color:var(--ink)}

/* Times are chosen from lists (time-options.js); the bar menu lists what a bar package includes */
.meal-time-row select{min-width:150px}
.times-head{margin-top:6px}
.times-head .form-subtitle{margin:6px 0 2px}
.times-head .help-text{margin:0}
.bar-choice .bar-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px 18px}
.bar-choice .check-row{align-items:center}

/* Mahogany Ridge: the times for each part of the chosen service, right under the choice (all required) */
.venue-times{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px 16px;margin-top:14px;padding:14px 16px 16px;background:var(--cream)}
.venue-times>.field-label{grid-column:1/-1}
.venue-times>.venue-time{grid-column:auto;gap:6px;min-width:0}
.venue-time>label{font-size:15px;font-weight:600;color:var(--ink)}
.swap-fields{border:0;min-width:0;margin:18px 0 10px;padding:0;display:grid;gap:10px}
.swap-fields>legend{padding:0;margin-bottom:6px}
.swap-fields>.help-text{margin:0}
.swap-rows{display:grid;gap:14px;min-width:0}
.swap-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;min-width:0}
.swap-row>div{min-width:0}
.swap-out{margin-top:12px;display:grid;gap:6px}
.swap-row .remove-row{margin-top:28px;min-width:40px;min-height:40px;font-size:24px}
.swap-fields>[data-add-swap]{justify-self:start;white-space:normal;text-align:left;min-height:44px}
/* Swaps and additions under a bar's list: two plain text boxes, nothing smaller than 13px. */
.bar-notes{display:grid;gap:16px;margin-top:18px;max-width:640px}
.bar-note-field{display:grid;gap:6px;min-width:0}
.bar-note-label{font:600 15px/1.35 var(--sans);color:var(--ink)}
.bar-note-optional{font-weight:400;font-size:13px;color:var(--muted)}
.simple-menu .bar-notes input{width:100%;min-width:0}
.bar-note-help{margin:0;font-size:13px;line-height:1.6;color:var(--muted)}

/* ---- Choose dishes myself: course by course (owner's pick, 10 Oct 2026) ----
   Hairline rows on the paper ground, no cards: the same look as Keep it simple's numbered questions. */
.meal-block{min-width:0;margin:0;border:0;border-top:1px solid var(--line);padding:22px 0 8px;background:none}
.meal-block:first-of-type{border-top:0;padding-top:6px}
.meal-block-title{padding:0;margin:0 0 14px;font-family:var(--serif);font-weight:500;font-size:30px;line-height:1.1;letter-spacing:-.01em;color:var(--ink)}
.meal-block-fields{margin-bottom:8px}
.meal-service>.help-text{margin:0}
.meal-start{margin:6px 0 10px}
.meal-courses{margin-top:6px}
.meal-course{border-top:1px solid var(--line);padding:12px 0 0}
.meal-course-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 2px;font:600 15px/1.3 var(--sans);color:var(--wine)}
.meal-course-title span{font-size:14px;font-weight:400;color:var(--muted)}
.meal-block .request-items{margin:0}
.meal-block .request-item{border-top:1px solid var(--line);margin:0;padding:4px 0 0}
.meal-block .request-item:first-child{border-top:0}
.meal-block .request-item-main{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:6px;align-items:center}
.meal-block .request-item-name{min-width:0}
.meal-block .remove-row{width:44px;min-width:44px;min-height:44px;margin:0;display:grid;place-items:center;font-size:20px}
.meal-block .dish-notes{margin:0 0 4px}
/* A chosen dish reads as plain text in its row; an empty row is the field to type or browse in. */
.qp-page .meal-block .dish-picker-control{border-color:transparent;background:transparent}
.qp-page .meal-block .dish-picker-control:hover,.qp-page .meal-block .dish-picker-control:focus-within,.qp-page .meal-block .dish-picker-control:has(input:placeholder-shown){border-color:var(--field-line,#cfc6b8);background:#fff}
.qp-page .meal-block .dish-picker-control input{border:0;background:transparent}
.course-add{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:0;border:0;border-top:1px dashed var(--field-line,#cfc6b8);background:none;color:var(--wine);font:600 15px/1.2 var(--sans);text-align:left}
.course-add:hover{background:var(--cream)}
.course-add:disabled{opacity:.5;cursor:not-allowed}
.meal-block .gravy-choice{margin:10px 0 0}
.meal-legacy-drinks{margin-top:12px;border-top:1px solid var(--line)}
.meal-legacy-drinks>summary{display:flex;align-items:center;min-height:44px;font:600 15px var(--sans);color:var(--wine);cursor:pointer}
.meal-block-end{display:flex;justify-content:flex-end;border-top:1px solid var(--line);margin-top:10px}
/* Targets: every control is at least 44px */
.qp-page .dish-browse{width:44px;flex:0 0 44px}
.qp-page .swap-row .remove-row{min-width:44px;min-height:44px}
.qp-page .bar-preview-trigger{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:560px){
  .meal-block-title{font-size:27px}
  .meal-block-fields{grid-template-columns:1fr 1fr}
}
.meal-block .dish-hint{margin:0 0 6px;padding:0 2px;font-size:14px;line-height:1.5;color:var(--muted)}
/* One compact line per dish: dish, a Note slot, remove. The note's box opens underneath. */
.qp-page .meal-block .dish-picker-control input[data-dish-input]{border:0;background:transparent}
.meal-block .customer-food-row{position:relative}
.meal-block .request-item-main{grid-template-columns:minmax(0,1fr) 64px 44px}
.meal-block .request-item-main .remove-row{grid-column:3}
.meal-block .dish-notes>summary{position:absolute;top:4px;right:44px;width:64px;min-height:44px;justify-content:center;list-style:none;font-size:14px}
.meal-block .dish-notes>summary::-webkit-details-marker{display:none}
.meal-block .dish-notes[open]{padding:0 0 8px}
/* On a phone the dish gets the full width so long names stay readable; Note and remove sit on the line under it. */
@media(max-width:560px){
  .meal-block .request-item-main{grid-template-columns:minmax(0,1fr) 44px;row-gap:0}
  .qp-page .meal-block .customer-food-row .request-item-main>.request-item-name{grid-column:1/-1;grid-row:1}
  .meal-block .request-item-main .remove-row{grid-column:2;grid-row:2}
  .meal-block .dish-notes>summary{top:48px;right:44px;width:auto;min-width:64px;padding:0 8px}
  .meal-block .dish-notes[open]{padding:0 0 8px}
}
.qp-page .meal-block .dish-picker-control input[data-dish-input]{text-overflow:ellipsis}
.meal-block .meal-course-help{margin:0 0 6px;font-size:14px;line-height:1.5;color:var(--muted)}
/* Each meal sits in its own box, so it is clear what belongs to which meal. The outline is the one the form's outline
   buttons use, flat on the paper ground, square cornered, with the meal's name inside the box rather than on its edge. */
.meal-block{border:1.5px solid #a99b8d;background:#fffdf8;padding:20px 22px 8px;margin:0 0 20px}
.meal-block:first-of-type{border:1.5px solid #a99b8d;padding-top:20px}
.meal-block-title{float:left;width:100%;margin:0 0 14px}
.meal-block-title+*{clear:both}
@media(max-width:560px){
  .meal-block,.meal-block:first-of-type{padding:16px 14px 6px;margin-bottom:16px}
}
