/* Guest reservation: Camping Beau Rivage / Velify visual identity. */
:root{--sand:#f5f1e8;--ink:#2a2520;--teal:#4d7b80;--teal-dark:#355b60;--line:#dedbd3;--muted:#706b62}
body{background:var(--sand);color:var(--ink);font-family:"Roboto Slab",Georgia,serif;font-size:14px}
header{background:#fff;color:var(--teal);border-bottom:1px solid var(--line);padding:9px max(20px,calc((100vw - 1080px)/2));box-shadow:0 2px 15px #2a252006}
header strong{font-family:Caveat,"Segoe Print",cursive;font-size:32px;font-weight:600;line-height:1.1}
nav{gap:5px}nav a{color:var(--teal-dark);font-size:12px;padding:5px 9px;border-radius:999px;text-decoration:none}nav a:hover{background:#eef3f2}nav a[aria-current]{background:var(--teal);color:#fff;text-decoration:none}
main{max-width:1120px;padding:14px 20px}.title-row{margin-bottom:10px;gap:10px}.title-row h1{font-family:"Tsukimi Rounded",system-ui,sans-serif;font-size:23px;font-weight:500;color:var(--teal-dark);line-height:1.5}.season{font-family:inherit;font-size:15px}.simulation-note{font-size:10px;color:var(--muted)}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 18px;box-shadow:0 8px 28px #2a252009}
h2{font-family:Caveat,"Segoe Print",cursive;font-size:29px;font-weight:600;color:var(--teal-dark);line-height:1.15;margin:0 0 9px}h3{font-family:"Roboto Slab",Georgia,serif;font-size:13px;font-weight:600;color:var(--teal-dark);margin:10px 0 5px}
label{font-size:12px;font-weight:500;color:#514c43}input,select,textarea{font-family:"Roboto Slab",Georgia,serif;font-size:13px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:7px;padding:4px 7px;min-width:0}input:not([type=checkbox]):not([type=hidden]),select{min-height:29px}input[type=checkbox]{accent-color:var(--teal)}input:focus,select:focus,textarea:focus{outline:2px solid #4d7b8040;outline-offset:1px;border-color:var(--teal)}
.fields{gap:7px 12px}.applicant-fields{gap:4px 12px}.applicant-fields input{font-size:12px;padding:2px 6px;min-height:26px;height:26px}.applicant-fields label{font-size:11px}#guest-participants .participant input{font-family:"Roboto Slab",Georgia,serif;font-size:12px;height:27px;min-height:27px}#guest-participants .participant label{font-size:11px;color:#514c43}#guest-participants .participant input[readonly]{background:#f7f5ef}
button,.button{background:var(--teal);color:#fff;font-family:"Roboto Slab",Georgia,serif;font-size:12px;font-weight:600;border-radius:999px;padding:7px 15px;box-shadow:0 3px 8px #4d7b8015;transition:background .15s}button:hover,.button:hover{background:var(--teal-dark)}button:focus-visible{outline:3px solid #4d7b8050;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}button.secondary{background:#edf2f1;color:var(--teal-dark);box-shadow:none}button.secondary:hover{background:#dfeae7}
small{color:var(--muted);font-size:10px}#guest-preferences{padding-top:7px;border-top:1px solid #efede6;margin-top:10px!important}#guest-acsi-info{margin-top:5px}#guest-quote-result{background:#edf3f1;border:1px solid #dbe6e2;border-radius:12px;padding:9px 12px}.quote-summary{font-size:12px}.quote-summary strong,.quote-total strong{color:var(--teal-dark);font-family:"Tsukimi Rounded",system-ui,sans-serif;font-size:24px;font-weight:600}.quote-total{border-color:var(--line)}.acsi-warning{background:#faf0db;border-radius:6px;color:#775523;font-size:10px;padding:6px 8px}
#guest-calculation{color:var(--ink);font-family:"Roboto Slab",Georgia,serif;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 80px #2a252030}dialog::backdrop{background:#2a252065}.quote-lines{font-size:12px}.quote-lines td{padding:4px 0}.quote-lines .detail{color:var(--muted)}.errorlist,#guest-price-message{color:#a33f32}.notice{background:#edf3f1}.notice.test{background:#faf0db}
@media(max-width:700px){header{padding:9px 14px}header strong{font-size:28px}main{padding:10px}.card{padding:12px}.title-row h1{font-size:20px}nav a{padding:5px 7px}}
@media(max-width:430px){header{gap:6px}header strong{font-size:26px}.title-row{gap:4px}.simulation-note{text-align:left}.fields{gap:7px}.card{border-radius:12px}.quote-summary{flex-wrap:wrap}}
/* Calendar, guest counters and accommodation cards. */
.guest-tools{display:flex;width:fit-content;margin:0 auto 16px;background:#fff;border:1px solid var(--line);border-radius:35px;box-shadow:0 5px 18px #2a252014;overflow:hidden}.guest-tools button{margin:0;background:none;color:var(--ink);border-radius:0;box-shadow:none;padding:10px 24px;min-width:205px;text-align:left}.guest-tools button+button{border-left:1px solid var(--line)}.guest-tools small{text-transform:uppercase;letter-spacing:.04em;font-size:10px}.guest-tools strong{font-size:13px;font-weight:500}.guest-picker{padding:14px;margin:0 auto 14px;border:1px solid var(--line);border-radius:14px;background:white}.guest-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.guest-calendar-head button{margin:0;padding:4px 13px;font-size:20px}#guest-calendar-instruction{font-size:12px;color:var(--muted)}#guest-months{display:grid;grid-template-columns:1fr 1fr;gap:25px}.guest-month-title{text-align:center;font-size:14px;margin:12px 0 8px}.guest-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.guest-days small{padding:4px}.guest-days button{margin:0;background:none;color:var(--ink);box-shadow:none;border-radius:6px;padding:6px 0;font-size:12px}.guest-days button:hover{background:#edf3f1}.guest-days button.range{background:#edf3f1}.guest-days button.edge{background:var(--teal);color:white}.guest-days button:disabled{cursor:default;opacity:.25}#guest-party-menu{max-width:370px}.guest-counter{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #efede6;font-size:14px}.guest-counter>div:last-child{display:flex;gap:13px;align-items:center}.guest-counter button{margin:0;background:#edf2f1;color:var(--ink);box-shadow:none;font-size:19px;width:32px;height:32px;padding:0;border-radius:50%}.guest-counter output{min-width:18px;text-align:center}.guest-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}.guest-choice{display:grid;grid-template-columns:42% 1fr;overflow:hidden;background:#fff;color:var(--ink);border:2px solid var(--line);border-radius:14px;padding:0;margin:0;text-align:left;box-shadow:none;min-height:135px}.guest-choice:hover{background:#f8faf8}.guest-choice[aria-pressed=true]{border-color:var(--teal)}.guest-choice img{width:100%;height:100%;max-height:155px;object-fit:cover}.guest-choice>span{padding:14px;display:flex;flex-direction:column;justify-content:center;gap:7px}.guest-choice strong{font-weight:500;font-size:16px}.guest-choice small{font-size:11px}.guest-choice-state{color:var(--teal);font-size:12px}#guest-acsi-choice{margin:12px 0}#guest-acsi-choice label{display:flex;align-items:center;gap:7px}#guest-acsi-choice input{margin:0}
@media(max-width:650px){.guest-choice-grid{grid-template-columns:1fr}.guest-choice{min-height:115px}.guest-choice img{max-height:130px}.guest-tools button{min-width:0;padding:10px 15px}#guest-months{grid-template-columns:1fr;gap:10px}.guest-tools{width:100%}.guest-tools button{flex:1}.guest-picker{padding:10px}}

/* Compact selectors: calendar floats above the form, without pushing it down. */
#guest-calendar{width:320px;max-width:calc(100vw - 24px);max-height:calc(100vh - 30px);margin:auto;border:1px solid var(--teal);padding:12px;box-shadow:0 12px 45px #2a252030;color:var(--ink);font-family:inherit}#guest-months{grid-template-columns:1fr;gap:0}.guest-month-title{font-size:13px;margin:9px 0 5px}.guest-days button{padding:4px 0;min-height:28px}.guest-days small{font-size:9px;padding:2px}.guest-calendar-head{gap:5px}#guest-calendar-instruction{font-size:10px;text-align:center}#guest-calendar-done{display:block;margin:9px auto 0}.guest-tools{margin-bottom:10px}.guest-tools button{padding:7px 17px;min-width:180px}.guest-tools strong{font-size:12px}#guest-party-menu{max-width:315px;padding:8px 12px}.guest-counter{padding:6px 0;font-size:12px}.guest-counter button{width:26px;height:26px;font-size:17px}.guest-counter>div:last-child{gap:9px}#guest-party-done{margin:7px 0 0}.guest-receipt{max-width:760px;margin:auto}.receipt-number{margin:0 0 12px;color:var(--teal-dark);font-size:15px}.receipt-number strong{display:inline-block;font-size:28px;margin-left:8px}.receipt-summary{font-size:12px;background:#f5f7f3;border-radius:10px;padding:10px 12px}.receipt-summary>div{display:grid;grid-template-columns:170px 1fr;gap:12px;padding:4px 0}.receipt-summary dt{color:var(--muted)}.receipt-summary dd{margin:0;white-space:pre-line}.receipt-mail{font-size:12px}@media(max-width:500px){.guest-tools button{min-width:0;padding:7px 12px}.receipt-summary>div{grid-template-columns:1fr;gap:2px}.receipt-number strong{font-size:23px}}

#guest-party-menu{width:315px;max-width:calc(100vw - 24px);margin:auto;border:1px solid var(--teal);color:var(--ink);font-family:inherit;box-shadow:0 12px 45px #2a252030}#guest-validation{max-width:calc(100vw - 30px);border:1px solid var(--teal);border-radius:12px;font:13px 'Roboto Slab',Georgia,serif;padding:15px 20px;color:var(--ink)}

#guest-calendar{width:560px}#guest-months{grid-template-columns:1fr 1fr;gap:16px}.guest-days{touch-action:none;user-select:none}.guest-days button{touch-action:none}#guest-return-to-site{display:inline-block;text-decoration:none;margin-top:7px}@media(max-width:520px){#guest-calendar{width:340px}#guest-months{gap:9px;grid-template-columns:1fr 1fr}.guest-days{gap:1px}.guest-days button{font-size:11px;min-height:28px}.guest-days small{font-size:8px}.guest-month-title{font-size:11px}}


/* Keep wishes and optional place numbers compact. */
#guest-first-fields{grid-template-columns:minmax(180px,320px);margin:8px 0}
#guest-compact-extras{display:flex;align-items:center;flex-wrap:wrap;gap:8px 22px;margin:10px 0 3px}
#guest-compact-extras>[data-field]{display:flex;align-items:center;gap:7px}
#guest-compact-extras label{margin:0;font-size:13px}
#guest-compact-extras input[type=number]{width:55px;padding:4px 6px}
#guest-compact-extras input[type=checkbox]{margin:0}
#guest-compact-extras #guest-acsi-choice{margin:0}
#guest-acsi-info{margin:4px 0 12px;font-size:11px}
#guest-preferences{margin-top:8px}
.guest-colour-buttons{display:flex;gap:7px;flex-wrap:wrap;margin:4px 0 10px}
.guest-colour-buttons button{margin:0;padding:6px 15px;border:1px solid var(--line);font-size:13px}
.guest-colour-buttons button[aria-pressed=true]{border-color:var(--teal);background:var(--teal);color:#fff}
.guest-colour-buttons [data-pitch-color=blue]:not([aria-pressed=true]){background:#e7eff5}
.guest-colour-buttons [data-pitch-color=yellow]:not([aria-pressed=true]){background:#faf1c9}
.guest-preference-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:13px;margin-bottom:8px}
.guest-preference-row select{width:86px;padding:4px 6px;font-size:13px}
.guest-visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

#guest-compact-extras [data-field=electricity]{order:0}
#guest-compact-extras [data-field=dogs]{order:1}
#guest-compact-extras #guest-acsi-choice{order:2}

#guest-participants .participant select{max-width:100%;width:160px;font-size:11px;margin-top:3px;padding:2px} #guest-participants .participant input[hidden]{display:none}

#guest-step-two>h2{text-align:center}

/* Gentle field validation, without a modal overlay. */
#guest-validation{display:flex;align-items:flex-start;gap:8px;box-sizing:border-box;width:fit-content;max-width:min(340px,calc(100vw - 32px));margin:6px 0;padding:7px 10px;border:1px solid #d8bda0;border-radius:8px;background:#fff8ec;color:#674c35;font:12px/1.45 'Roboto Slab',Georgia,serif;box-shadow:none}
#guest-validation[hidden]{display:none!important}#guest-validation-message{margin:0;overflow-wrap:anywhere}#guest-validation-close{flex:none;margin:0;padding:0 3px;min-width:22px;min-height:22px;border:0;background:transparent;color:inherit;font:18px/1 sans-serif;box-shadow:none}
[aria-invalid=true]{outline:1px solid #c6996b;outline-offset:2px}.errorlist{width:fit-content;max-width:360px;padding:6px 10px 6px 24px;font-size:12px;line-height:1.4}
