/* One shared interface layer for browsing, requesting and replying. */
:root{--ui-surface:#fffdf9;--ui-text:#35243f;--ui-muted:#6e5c78;--ui-border:#ded4e4;--ui-wash:#f2edf5}
html{scroll-padding-top:100px}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit}
button,summary{touch-action:manipulation}
button:disabled{cursor:wait;opacity:.65}
button:disabled:hover{transform:none;box-shadow:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #8a609e;outline-offset:3px}
input,select,textarea{max-width:100%}
.btn[aria-busy=true]::before{content:'';width:13px;height:13px;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-spin .8s linear infinite}
@keyframes ui-spin{to{transform:rotate(360deg)}}

/* A consistent header and comfortable touch targets. */
.site-header nav,.partner-page .nav{border-bottom:1px solid #e5dee7}
.header-controls select{border-color:var(--ui-border);border-radius:10px;color:var(--ui-text)}
.header-controls .language{min-width:44px;min-height:44px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface)}
.nav-how,.nav-requests{min-height:44px;display:inline-flex;align-items:center;color:var(--ui-muted)}
.gather-copy h1,.partner-page h1,.shortlist-heading h2{text-wrap:balance}
.gather-lead,.partner-page .lead{color:var(--ui-muted)}
.scene-console{left:11%;right:1%;gap:14px}
.scene-stepper button{width:40px;height:40px;background:#f3edf6}
.scene-stepper button:disabled{cursor:default}
.scene-count>.scene-label{padding-left:49px}
.scene-label{font-size:11px;color:var(--ui-muted)}

/* Make the brief feel like one form, and keep active preferences in view. */
.gathering{border-color:#dacfe1;box-shadow:0 12px 36px #35243f06}
.search{background:#faf8fb}
.search>.field{min-width:0}
.field>label{color:var(--ui-muted);font-size:13px;font-weight:600}
.field select{min-height:44px;max-width:100%}
.field small{font-size:12px;line-height:1.5;color:var(--ui-muted)}
.round-button{width:40px;height:40px;flex:none}
.filters select,.extra-filters summary{min-height:44px;font-size:13px}
.filters .reset{min-height:44px;font-size:12px;text-underline-offset:3px}
.extra-fields{gap:16px}
.extra-fields label{color:var(--ui-muted);font-size:13px}
.active-filters{display:flex;flex-wrap:wrap;gap:7px;padding-top:12px;margin-top:10px;border-top:1px solid #ebe4ee}
.filter-chip{display:inline-flex;align-items:center;gap:12px;min-height:40px;padding:7px 12px;border:1px solid #dfd2e7;border-radius:100px;background:#f1eaf5;color:#624472;font-size:12px;text-align:left;line-height:1.4}
.filter-chip span{font-size:19px;line-height:1;color:#735581}
.filter-chip:hover{background:#e7dced;border-color:#bea4cd}
.search-dock{animation:none;border-radius:14px;box-shadow:0 8px 30px #35243f14}
.dock-copy small{font-size:12px;color:var(--ui-muted)}
.dock-edit{min-height:44px}

/* Restaurant cards: venue, menu, price, then the next action. */
.shortlist-heading h2{font-size:clamp(28px,3vw,36px);letter-spacing:-1px}
.results{gap:24px}
.results-bar p{color:var(--ui-muted);line-height:1.6}
.view-buttons button{min-height:44px;padding:10px 14px;font-size:13px}
.offer{background:var(--ui-surface);border-color:var(--ui-border);box-shadow:0 5px 18px #35243f04}
.offer-body{padding:24px}
.venue-name{font-size:30px;overflow-wrap:anywhere}
.address{color:var(--ui-muted);font-size:13px}
.rating-block{gap:3px 12px}
.rating{min-height:36px;font-size:12px}
.rating-provenance{font-size:11px;color:var(--ui-muted);max-width:none;line-height:1.5}
.google-label,.review-count{font-size:11px}
.pills{gap:7px;margin-top:14px}
.pill{font-size:11px;padding:5px 9px;border-radius:6px}
.pill.purple{color:#705080}
.menu-choice{display:grid;grid-template-columns:1fr;gap:6px;padding-top:15px;margin-top:16px}
.menu-choice>span{font-size:12px;max-width:none;color:var(--ui-muted)}
.menu-choice .variant{width:100%;font-size:15px;min-height:46px}
.offer .menu{color:#665270;font-size:15px;line-height:1.65}
.offer-links{gap:20px;flex-wrap:wrap;margin-top:14px}
.offer-links button,.offer-links a{font-size:13px;min-height:44px;color:#654776;text-underline-offset:4px}
.price-panel{background:#f2edf5;padding:22px 24px;grid-template-columns:minmax(0,1fr) 164px;gap:0 16px}
.price-panel .price-label,.price-panel .per-person{font-size:12px;color:var(--ui-muted)}
.price-panel .total{font-size:32px;letter-spacing:-1px;overflow-wrap:anywhere}
.price-panel .budget-fit{font-size:12px;color:#526637}
.price-panel .price-note{font-size:12px;color:#715c7c;line-height:1.65;margin-top:14px;padding-top:12px;border-top:1px solid #e1d7e7}
.price-panel>.btn{min-height:52px;font-size:14px}
.price-panel .compare-check{min-height:44px;font-size:12px;cursor:pointer}
.compare-check input{width:19px;height:19px;flex:none}
.catalog-notes summary,.catalog-disclosure{font-size:12px;color:var(--ui-muted);line-height:1.65}
.catalog-notes summary{min-height:44px;padding:10px 0;cursor:pointer}
.tray{background:#35243f;border:1px solid #75617f;border-radius:16px;bottom:max(16px,env(safe-area-inset-bottom));box-shadow:0 12px 40px #35243f30}
.tray .btn{background:#e0edbe;color:#354322;min-height:48px}
.tray .quiet{min-height:44px;color:#eee5f4}
.has-comparison{padding-bottom:100px}
.toast{bottom:24px;max-width:calc(100% - 32px);line-height:1.5}
.has-comparison .toast{bottom:120px}

/* Clear facts and a calm action area on the restaurant response. */
.order-sheet{border:1px solid #ded1e4;box-shadow:0 14px 45px #35243f08}
.order-address,.order-company,.order-per-person,.order-facts dt,.order-facts small{font-size:13px;color:var(--ui-muted);line-height:1.5}
.order-reference{font-size:11px;color:var(--ui-muted)}
.order-state.notice{font-size:13px;line-height:1.6;color:#604272;padding:12px 15px;border-radius:10px}
.order-state.is-accepted{color:#4b612f}
.order-status-help,.order-action-note,.order-scope,.order-terms,.order-live-note,.order-example-note{font-size:13px;color:var(--ui-muted);line-height:1.65}
.order-payment{font-size:13px;color:#6d582f;padding:15px 17px;border:1px solid #e9dfc9;border-radius:10px;line-height:1.6}
.order-actions{gap:12px}
.order-actions .btn{min-height:54px;border-radius:12px}
.order-actions .order-decline{color:#70527f;background:#fffdf9}
.order-edit{border-radius:14px;padding:20px 23px;background:#faf7fc}
.order-edit summary{font-size:14px;min-height:44px;display:flex;align-items:center;cursor:pointer}
.order-edit label{font-size:13px;color:var(--ui-muted)}
.order-edit .consent,.plan-form .consent{font-size:13px;color:var(--ui-muted)}
.plan-form .form-grid label{font-size:13px;color:var(--ui-muted)}
.form-next,.plan-conditions,.plan-certainty{font-size:12px;color:var(--ui-muted);line-height:1.65}
.order-tools .quiet,.order-tools .back,.order-tools .btn{min-height:44px;font-size:13px}
.example-intro{border-left:3px solid #b99acb;background:#f3edf7}
.example-intro>p:last-child,.example-next p:not(.order-eyebrow){font-size:14px;color:var(--ui-muted)}
.example-terms-link{min-height:44px;display:inline-flex;align-items:center;color:#6c4e7b}
.icon-button{width:44px;height:44px;flex:none;border-color:var(--ui-border)}
.dialog-top{background:var(--ui-surface);padding:14px 24px}

/* Give the restaurant's side of the work a distinct, scannable card. */
.partner-page{background:#f8f6f1}
.partner-work-grid{gap:20px}
.partner-work-grid>div{padding:26px 28px;border:1px solid var(--ui-border);border-radius:18px;background:var(--ui-surface)}
.partner-work-grid>div:last-child{background:#eee7f3;border-color:#dcd0e4}
.partner-work-grid p,.partner-page .muted,.partner-page .terms span,.partner-page .steps p,.partner-assurance{color:var(--ui-muted)}
.work-tag{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:100px;background:#e9e0ef;color:#624371;font-size:12px}
.partner-work-grid>div:last-child .work-tag{background:#dfe9c7;color:#4f6333}
.partner-work-grid h3{font-size:22px;margin-top:17px}
.partner-preview{border-color:#d9cbe2;box-shadow:0 20px 50px #35243f0a}
.preview-caption,.preview-facts span,.preview-total span,.preview-scope{font-size:13px;color:var(--ui-muted)}
.preview-foot{font-size:12px;color:var(--ui-muted)}
.preview-open{min-height:48px;background:#eae0f0;color:#5b3d6a;font-size:14px}
.partner-page .formcard{box-shadow:0 12px 34px #35243f06}
.partner-page .formcard label{color:var(--ui-muted)}
.partner-page .formcard .btn{min-height:52px}
.partner-page .formcard .muted:last-child{font-size:12px}
.partner-page .terms strong{color:#694778}

@media(hover:hover) and (pointer:fine){
 .offer:hover{transform:none;box-shadow:0 10px 30px #35243f0b;border-color:#b8a1c5}
 .offer.selected:hover{border-color:#805a93}
}
@media(max-width:1050px){
 .scene-console{left:0;right:0;gap:9px;padding:12px}
 .scene-stepper{gap:5px}.scene-stepper #illustratedGuests{min-width:62px}
 .price-panel{grid-template-columns:minmax(0,1fr) 142px;padding:20px}
}
@media(max-width:800px) and (min-width:651px){
 .scene-console{display:grid;grid-template-columns:1fr auto;padding:10px;gap:8px}
 .scene-stepper button{width:36px;height:40px}.scene-stepper #illustratedGuests{min-width:55px;font-size:15px}
 .scene-console-divider{display:none}.scene-count>.scene-label{padding-left:41px}
 .scene-cost strong{font-size:15px}.scene-label{font-size:10px}
 .price-panel{grid-template-columns:1fr}.price-panel>.btn{grid-column:1;grid-row:6;margin-top:14px}
 .price-panel .compare-check{grid-column:1;grid-row:7}
}
@media(max-width:650px){
 html{scroll-padding-top:90px}
 .site-header nav,.partner-page .nav{padding-left:16px;padding-right:16px;gap:7px}
 .brand{font-size:27px;gap:7px}.brand-mark{width:29px;height:29px}
 .header-controls{gap:5px}.header-controls select{width:146px;max-width:146px;font-size:11px;min-height:44px;padding-left:10px}
 .header-controls .language{min-width:40px;font-size:12px}.nav-how,.nav-requests{display:none}
 .shell{padding-left:16px;padding-right:16px}.gathering{padding:19px 16px 15px}
 .gather-copy h1{font-size:clamp(40px,11.4vw,55px)}.gather-lead{font-size:15px;line-height:1.6}
 .gather-art.scene-stage{height:242px}.scene-console{left:0;right:0;bottom:10px;padding:10px 12px;gap:10px}
 .scene-stepper button{width:44px;height:44px}.scene-stepper{gap:5px}
 .scene-count>.scene-label{padding-left:49px}.scene-stepper #illustratedGuests{font-size:17px;min-width:64px}
 .scene-cost strong{font-size:17px}.scene-label{font-size:11px}.scene-caption{font-size:9px;bottom:-6px}
 .search{grid-template-columns:1fr}.search>.field{padding:14px;border:0;border-bottom:1px solid #e5dce9}
 .search>.field:last-child{border-bottom:0}.search>.field:first-child{padding:10px 14px}
 .search>.field:first-child label,.field>label{font-size:13px}
 .guest-field,.budget-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px}
 .guest-field>label,.budget-field>label{margin:0}.guest-number,.budget-number{justify-self:end}
 .guest-number{gap:8px}.round-button{width:44px;height:44px}
 .guest-number input{font-size:26px;max-width:42px}.guest-field input[type=range]{display:none}
 .budget-number input{font-size:26px;width:74px}.budget-field small{grid-column:1/-1;text-align:right;font-size:12px}
 .filters{gap:8px}.filters select#spacePreference,.extra-filters summary{font-size:13px;min-height:44px}
 .filters select#spacePreference{max-width:100%}.filter-chip{min-height:44px}
 .extra-fields{grid-template-columns:1fr}.extra-fields input,.extra-fields select{font-size:16px}
 .results-bar{align-items:center;flex-wrap:wrap;gap:10px}.results-bar p{font-size:12px;max-width:none;margin:0;flex:1 1 170px}
 .view-buttons button{font-size:12px;min-height:44px;padding:9px 11px}
 .results{gap:22px}.photo-button{height:205px;min-height:205px}.offer-body{padding:21px}
 .venue-name{font-size:29px}.rating-provenance{font-size:11px;max-width:none}
 .menu-choice{display:grid;gap:6px}.menu-choice .variant{font-size:16px}.offer .menu{font-size:15px}
 .price-panel{grid-template-columns:minmax(0,1fr) auto;padding:20px 21px;gap:0 10px}
 .price-panel .price-label{grid-column:1/-1;grid-row:1;font-size:12px}
 .price-panel .total{grid-column:1;grid-row:2;font-size:31px}
 .price-panel .per-person{grid-column:2;grid-row:2;align-self:center;text-align:right;max-width:100px;font-size:12px}
 .price-panel .budget-fit{grid-column:1/-1;grid-row:3;font-size:12px}
 .price-panel .price-note{grid-column:1/-1;grid-row:4;font-size:12px;margin:12px 0 16px}
 .price-panel>.btn{grid-column:1/-1;grid-row:5;width:100%;min-height:52px;font-size:15px}
 .price-panel .compare-check{grid-column:1/-1;grid-row:6;min-height:44px;font-size:13px;margin:5px 0 -7px}
 .dock-copy strong{font-size:13px}.dock-copy small{font-size:11px}.dock-edit{min-height:44px}
 .tray{flex-wrap:wrap;gap:4px 12px;padding:12px 14px;width:calc(100% - 24px)}
 .tray .tray-text{font-size:13px}.tray .quiet{font-size:12px}.tray .btn{width:100%;min-height:46px;font-size:14px}
 .has-comparison{padding-bottom:145px}.has-comparison .toast{bottom:155px}
 .simple-flow .shell{padding-left:12px;padding-right:12px}.order-sheet{padding:25px 22px 20px;border-radius:18px}
 .order-title h1{font-size:32px}.order-address{font-size:12px}.order-facts{gap:14px}
 .order-facts dt,.order-facts small{font-size:12px}.order-facts dd{font-size:21px}
 .order-total span,.order-per-person{font-size:12px}.order-total strong{font-size:32px}
 .order-state.notice,.order-requirement,.order-company,.order-payment,.order-scope,.order-terms{font-size:12px}
 .order-menu li{font-size:15px;line-height:1.65}.order-menu h2{font-size:28px}
 .order-actions{position:static;padding:0;background:none;box-shadow:none;backdrop-filter:none;gap:9px}
 .order-actions .btn{font-size:14px;min-height:54px;padding:12px 10px}
 .order-edit{padding:17px 20px}.order-form-grid{grid-template-columns:1fr}
 .order-tools.page-title{gap:8px;flex-wrap:wrap}.order-tools .toolbar{gap:12px;flex-wrap:wrap}
 .order-tools .toolbar .quiet,.order-tools .toolbar .btn{font-size:12px;min-height:44px}
 .example-intro>p:last-child,.example-next p:not(.order-eyebrow){font-size:13px}
 .plan-form .form-grid input,.plan-form .form-grid select,.plan-form .form-grid textarea{font-size:16px}
 .plan-form .consent{font-size:12px}.form-next,.plan-conditions,.plan-certainty{font-size:12px}
 .dialog-top{padding:12px 18px}.dialog-top h2{font-size:19px}
 .partner-page .wrap{padding-left:20px;padding-right:20px}.partner-page h1{font-size:44px}
 .partner-page .header-controls select{max-width:146px}.partner-work-grid{gap:13px}
 .partner-work-grid>div{padding:23px}.partner-work-grid p{font-size:14px}
 .partner-assurance{font-size:12px}.preview-facts{gap:10px}
 .preview-facts span{font-size:12px}.preview-facts strong{font-size:20px}.preview-total strong{font-size:30px}
}
@media(max-width:380px){
 .site-header nav,.partner-page .nav{padding-left:13px;padding-right:13px;gap:5px}
 .brand{font-size:24px;gap:5px}.brand-mark{width:26px;height:26px}
 .header-controls select{width:136px;max-width:136px;padding-left:8px}.header-controls{gap:4px}
 .scene-console{padding:9px;gap:7px}.scene-stepper{gap:3px}.scene-stepper #illustratedGuests{font-size:15px;min-width:56px}
 .scene-cost strong{font-size:15px}.scene-label{font-size:10px}
 .gathering{padding-left:12px;padding-right:12px}.search>.field{padding:12px}
 .guest-number{gap:5px}.guest-number input{max-width:34px}
 .price-panel .total{font-size:28px}.order-sheet{padding-left:18px;padding-right:18px}
 .order-actions{grid-template-columns:1fr}.order-actions .order-accept{grid-row:1}
 .partner-page h1{font-size:39px}.partner-preview{padding:22px}
}
@media(prefers-reduced-motion:reduce){
 .btn[aria-busy=true]::before{animation:none}.offer,.btn,.scene-stepper button{transition:none}
}
@media print{
 html{scroll-padding:0}.has-comparison{padding-bottom:0}.active-filters,.search-dock,.tray{display:none!important}
 .order-sheet{box-shadow:none}.order-menu li{font-size:13px}
}

/* A two-word name and readable view controls on narrow phones. */
.brand,.order-wordmark{white-space:nowrap}
@media(max-width:650px){
 .site-header .brand,.partner-page .brand{font-size:22px;letter-spacing:-.8px;gap:7px}
 .site-header .brand-mark,.partner-page .brand-mark{width:26px;height:26px}
}
@media(max-width:440px){
 html{scroll-padding-top:128px}
 .site-header nav,.partner-page .nav{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px 12px;padding:12px 16px;min-height:0}
 .site-header .brand,.partner-page .brand{grid-column:1;grid-row:1;font-size:25px}
 .site-header .header-controls,.partner-page .header-controls{display:contents}
 .site-header .header-controls select,.partner-page .header-controls select{grid-column:1/-1;grid-row:2;width:100%;max-width:none;min-height:44px;font-size:13px}
 .site-header .header-controls .language,.partner-page .header-controls .language{grid-column:2;grid-row:1;width:44px;min-height:44px}
}
