/* /build on top of legal.css: the module picker as a calm list (function left, modules right, fine rules between),
   the price table and the reservation form. */
.sheet{max-width:none}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0;font:700 20px/1.3 var(--f-ui);margin:30px 0 8px}
.grp{display:grid;grid-template-columns:150px 1fr;gap:4px 20px;padding:12px 0;border-top:1px solid var(--rule)}
.grp:last-child{border-bottom:1px solid var(--rule)}
.grp h3{margin:10px 0 0;font:600 15px/1.35 var(--f-ui);color:var(--ink-2)}
.mod{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding:8px 0;cursor:pointer}
.mod input[type=checkbox]{width:20px;height:20px;margin:3px 0 0;flex:none;accent-color:var(--orange-lo)}
.mod select{flex:none;width:56px}
.mod small{display:block;color:var(--ink-2);font-size:14px;line-height:1.45}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px 32px;margin-bottom:28px}
.enc label{display:flex;gap:10px;align-items:center;min-height:44px}
.enc input{width:18px;height:18px;margin:0;accent-color:var(--orange-lo)}
.fields{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;align-items:center;align-self:end}
select,input[type=number],input[type=email],input:not([type]){font:400 16px/1.3 var(--f-ui);color:var(--ink);background:#fff;border:2px solid var(--panel-edge);
  min-height:44px;padding:8px 10px;border-radius:0;width:100%}
button.btn{border:0;background:none;cursor:pointer}
.problems{margin:22px 0 0;padding:4px 18px 8px;border-left:4px solid var(--orange)}
.problems h2{margin:12px 0 6px;padding:0;border:0;font-size:17px}
.parts{list-style:none;padding:0}
.parts li{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--rule);margin:0}
.parts li span:last-child{color:var(--ink-2);font-size:15px;text-align:right}
.price{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;margin:0 0 12px}
.price th{text-align:left;font-weight:400;padding:7px 0;border-bottom:1px solid var(--rule)}
.price td{text-align:right;padding:7px 0;border-bottom:1px solid var(--rule)}
.price tfoot th,.price tfoot td{font:700 22px/1.3 var(--f-ui);border-bottom:0;padding-top:14px}
.reserve{display:grid;gap:8px;max-width:460px}
.reserve label{font-weight:600;margin-top:6px}
.reserve .btn{justify-self:start;margin-top:10px}
.fine{font-size:14px;color:var(--ink-2);margin:4px 0 0}
.err{color:#a3270f;font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
details{margin-top:32px;border-top:1px solid var(--rule);padding-top:14px}
summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}
pre{overflow-x:auto;background:#1e211f;color:#e8eae5;padding:16px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;margin:8px 0 0}
@media (max-width:599px){
  .grp{grid-template-columns:1fr}
  .grp h3{margin:4px 0 0}
  .row{grid-template-columns:1fr}
}
