/* The plugin's booking, enquiry and sign-up forms in the prototype's style (app.css: .type, .cal, .slots, .field). */
.ag-book .ag-form, .ag-enq .ag-form { display: grid; gap: 28px; }
.ag-book .ag-form { grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 40px 64px; align-items: start; }
.ag-form fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: 12px; min-width: 0; }
.ag-form legend, .ag-form .ag-group { font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sun); font-weight: 600; margin: 0 0 8px; padding: 0; }
.ag-form .ag-type-list { display: grid; gap: 12px; }
.ag-form .ag-type { text-align: left; background: var(--surface); border: 1px solid var(--line); padding: 18px 20px; display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; color: var(--paper); font: inherit; cursor: pointer; }
.ag-form .ag-type[aria-pressed="true"] { border-color: var(--sun); box-shadow: inset 0 0 0 1px var(--sun); }
.ag-form .ag-type b { font-size: 19px; }
.ag-form .ag-price { color: var(--sun); font-weight: 600; }
.ag-form .ag-mins { grid-column: 1 / -1; color: var(--stone); font-size: 14px; }
.ag-form .ag-days, .ag-form .ag-times { display: flex; flex-wrap: wrap; gap: 8px; }
.ag-form .ag-day, .ag-form .ag-time { min-height: 44px; padding: 0 14px; background: var(--surface); border: 1px solid var(--line); color: var(--paper); font: inherit; font-variant-numeric: tabular-nums; cursor: pointer; }
.ag-form .ag-day[aria-pressed="true"], .ag-form .ag-time[aria-pressed="true"] { background: var(--sun); color: var(--ink); border-color: var(--sun); }
.ag-form .ag-more { background: transparent; border: 0; color: var(--sun); text-decoration: underline; cursor: pointer; padding: 8px 0; font: inherit; }
.ag-form .ag-tz, .ag-form .ag-further, .ag-form .ag-note, .ag-form .ag-help, .ag-form .ag-hint { font-size: 14px; color: var(--stone); margin: 0; }
.ag-form .ag-field { display: flex; flex-direction: column; gap: 6px; }
.ag-form .ag-field label { font-size: 14px; color: var(--stone); }
.ag-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), .ag-form textarea, .ag-form select { min-height: 50px; padding: 12px 14px; background: transparent; border: 1px solid #55504A; color: var(--paper); font: inherit; }
.ag-form select option { background: var(--surface); }
.ag-form textarea { min-height: 120px; resize: vertical; }
.ag-form .ag-check label { display: flex; gap: 10px; align-items: flex-start; color: var(--paper); }
.ag-form .ag-submit, .ag-form button[type="submit"] { justify-self: start; min-height: 50px; padding: 0 22px; background: var(--sun); color: var(--ink); border: 0; font: 600 16px/1 var(--body); cursor: pointer; }
.ag-form .ag-submit[disabled], .ag-form button[type="submit"][disabled] { opacity: 0.45; cursor: not-allowed; }
.ag-form .ag-summary:not(:empty) { padding: 12px 14px; border-left: 3px solid var(--sun); background: rgba(243, 239, 231, 0.05); margin: 0; }
.ag-status:not(:empty) { margin: 0; padding: 12px 14px; background: rgba(243, 239, 231, 0.06); border-left: 3px solid var(--sun); }
.ag-status.ag-err { border-left-color: #C8492D; }
.ag-busy { opacity: 0.6; pointer-events: none; }
.ag-news form { display: flex; flex-wrap: wrap; gap: 10px; }
.ag-news input[type="email"] { flex: 1 1 200px; min-height: 50px; padding: 0 14px; background: transparent; border: 1px solid #55504A; color: var(--paper); font: inherit; }
.ag-news button { min-height: 50px; padding: 0 18px; background: transparent; border: 1px solid var(--paper); color: var(--paper); font: inherit; }
