:root{--ink:#292c25;--wine:#792d36;--wine-dark:#5d2028;--cream:#f5f2eb;--paper:#fffefa;--line:#deded2;--muted:#53594d;--sage:#e8ecdf}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:18px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--wine);text-underline-offset:3px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #aa873d;outline-offset:3px}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.12;margin:0 0 18px}h1{font-size:clamp(42px,4.5vw,66px);letter-spacing:-2px}h2{font-size:34px}h3{font-size:23px}p{margin:0 0 18px}.site-header{max-width:1440px;margin:auto;padding:28px 5%;display:flex;justify-content:space-between;gap:24px;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--ink);font:21px Georgia,serif;letter-spacing:2px}.brand img{width:44px;height:56px;object-fit:contain}.brand small{display:block;font:16px/1.5 system-ui;letter-spacing:2px}nav{display:flex;gap:30px;font-size:16px}nav a{text-decoration:none}.booking-layout{max-width:1240px;margin:auto;padding:65px 32px 72px;display:grid;grid-template-columns:1fr 1.18fr;gap:85px}.intro{padding-top:24px}.eyebrow{font-size:16px;letter-spacing:2.2px;font-weight:700;color:var(--wine);margin-bottom:22px}.lead{font-size:17px;color:var(--muted);max-width:400px;margin:25px 0 38px}.hours{border-top:1px solid var(--line);padding-top:27px;max-width:390px;margin-bottom:30px}.hours h2{font-size:26px}.hours>div{display:grid;grid-template-columns:72px 1fr;gap:20px}.hours p{font-size:16px}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:32px;box-shadow:0 10px 35px #292c2505}.card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:26px}.card-top .eyebrow{margin:0}.pill{background:var(--sage);border-radius:30px;padding:5px 10px;font-size:16px;white-space:nowrap;color:#4f5d41}.booking-card h2{font-size:38px;margin-bottom:10px}.muted{color:var(--muted)}label{display:block;font-size:16px;font-weight:600;margin-bottom:20px}label .muted{font-weight:400;font-size:16px}input,select,textarea{display:block;width:100%;border:1px solid #d5d7cb;border-radius:5px;padding:11px 12px;background:#fff;color:var(--ink);margin-top:7px;font-size:16px;min-height:52px}input:focus,select:focus,textarea:focus{outline:2px solid #a56a71;outline-offset:1px}textarea{resize:vertical}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}fieldset{border:0;padding:0;margin:0 0 23px;min-width:0}legend{font-size:16px;font-weight:600;width:100%;margin-bottom:10px}legend small{float:right;font-size:16px;font-weight:400;color:var(--muted)}.slot-group{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:8px 0 16px}.slot{font-size:16px;padding:8px 3px;border:1px solid var(--line);background:transparent;border-radius:4px;color:var(--ink)}.slot.selected{background:var(--wine);color:white;border-color:var(--wine)}.slot:not(:disabled):hover{border-color:var(--wine)}.service-label{font-size:16px;color:var(--muted)}hr{border:0;border-top:1px solid var(--line);margin:25px 0}.check{display:flex;align-items:flex-start;gap:10px;font-size:16px;font-weight:400}.check input{width:16px;min-height:16px;flex-shrink:0;margin:3px 0;accent-color:var(--wine)}.privacy,.tiny{font-size:16px;color:var(--muted)}.primary{background:var(--wine);color:#fff;border:0;border-radius:5px;padding:13px 20px;font-size:16px;font-weight:600}.primary:hover{background:var(--wine-dark)}.full{width:100%;display:flex;justify-content:space-between}.centre{text-align:center;margin:14px 0 0}.error{font-size:16px;color:#a02231}.notice{background:#f4ecdc;padding:16px;border-radius:5px;margin:0 0 22px;font-size:16px}.notice p{margin:6px 0}.downloads{display:flex;gap:10px;flex-wrap:wrap}.downloads a{font-size:16px;display:inline-block;border:1px solid var(--line);border-radius:5px;padding:10px 14px;background:var(--paper);text-decoration:none}.menu-section{background:#e9ecdf;border-top:1px solid #dbe0cf;display:flex;justify-content:space-between;gap:40px;align-items:center;padding:40px max(5%,calc((100vw - 1176px)/2))}.menu-section h2{font-size:30px}.menu-section .downloads{max-width:470px}.menu-section p{font-size:16px}.menu-section .eyebrow{margin-bottom:12px}footer{display:flex;gap:24px;justify-content:space-between;padding:26px 5%;font-size:16px;color:var(--muted)}footer a{color:var(--muted)}.trap{position:absolute;left:-10000px}.success-mark{font-size:38px;color:#567045}.confirmation-details{padding:20px;background:var(--sage);border-radius:5px;margin:22px 0}.confirmation-details strong{display:block}.secondary{border:1px solid var(--line);background:var(--paper);border-radius:5px;padding:9px 15px;color:var(--ink);font-size:16px}[hidden]{display:none!important}.admin-layout{max-width:1440px;margin:auto;padding:35px 4%}.admin-top,.toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}.toolbar{background:var(--paper);border:1px solid var(--line);padding:18px;border-radius:8px;margin:25px 0}.toolbar label{margin:0;flex:1;min-width:130px}.toolbar input,.toolbar select{margin:0}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.summary .card{padding:20px}.summary strong{font:34px Georgia,serif;display:block}.summary span{font-size:16px;color:var(--muted)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--paper)}table{border-collapse:collapse;width:100%;font-size:16px;text-align:left}th{font-size:16px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);background:#eef0e8}td,th{padding:15px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;color:var(--muted)}td .pill{display:inline-block}dialog{max-width:640px;width:calc(100% - 32px);max-height:90vh;border:1px solid var(--line);border-radius:10px;padding:28px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#20261c80}.login{max-width:430px;margin:70px auto}.empty{text-align:center;color:var(--muted);padding:50px}.admin-nav{display:flex;gap:10px}.day-strip{display:flex;gap:8px;overflow-x:auto;margin:20px 0}.day-tile{min-width:110px;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:12px}.day-tile strong{display:block}.day-tile small{font-size:16px;color:var(--muted)}.split{display:flex;justify-content:space-between;gap:20px}.badge-alert{color:#8c542a;font-size:16px}.screen-reader{position:absolute;left:-10000px}@media(max-width:1000px){.booking-layout{gap:35px;grid-template-columns:1fr 1.2fr}.card{padding:23px}.card-top .pill{display:none}.menu-section{display:block}.summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.site-header{padding:20px}.brand{font-size:17px}.brand small{font-size:16px}.brand img{width:32px;height:42px}nav>a:first-child{display:none}nav{font-size:16px}.booking-layout{display:flex;flex-direction:column;padding:25px 18px;gap:24px}.intro{padding:0}h1{font-size:43px;letter-spacing:-1px}.intro .lead{margin:15px 0 20px}.hours{display:none}.intro>p:last-child{font-size:16px}.two-col{gap:12px}.booking-card{padding:22px}.slot-group{grid-template-columns:repeat(4,1fr)}.menu-section{padding:30px 20px}footer{flex-wrap:wrap;gap:10px}.admin-layout{padding:25px 15px}.summary{gap:8px}.summary .card{padding:15px}.login{margin:30px 16px}.toolbar{gap:10px}.admin-top h1{font-size:36px}}
@media print{.site-header nav,.toolbar,.admin-nav,footer,dialog,#mail-warning,.day-strip,th:last-child,td:last-child,#cancelled{display:none!important}body,.admin-layout{background:white;padding:0}.admin-top h1{font-size:25px}.summary{grid-template-columns:repeat(4,1fr)}.table-wrap{overflow:visible}td,th{padding:7px;font-size:16px}.site-header{padding:10px}.table-wrap{border:0}}
.christmas-row{background:#fcf4e5}.christmas-row td:first-child{border-left:4px solid #792d36}.christmas-badge{display:block;width:fit-content;padding:4px 9px;margin-bottom:5px;border:1px solid #c9a465;border-radius:5px;background:#792d36;color:#fff;font-size:16px;font-weight:700}.decorate-note{font-weight:700;color:#792d36!important}.confirmation-downloads{margin:18px 0}@media print{.christmas-badge{background:white;color:black;border:2px solid black}.christmas-row td:first-child{border-left:3px solid black}}
.reward-row{background:#edf0df}.table-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.table-checks label{margin-bottom:5px}#customer-dialog,#import-dialog{max-width:900px}#customer-dialog .table-wrap{max-height:280px;overflow:auto}#import-preview{max-height:350px;overflow:auto;margin:18px 0}#voucher-list .notice{margin-top:15px}#voucher-list .secondary{margin:5px 10px 0 0}#crm .admin-nav{flex-wrap:wrap}#customer-dialog h3{margin-top:20px}@media(max-width:700px){.table-checks{grid-template-columns:1fr 1fr}}
.danger{border:1px solid #9b3544;color:#8b2433;background:#fff7f6;border-radius:5px;padding:10px 15px;font-size:16px;font-weight:600}.danger:hover{background:#f6dce0}.danger:disabled{cursor:wait}

/* Readable customer and staff text, including secondary information. */
input,select,textarea{font-size:18px;line-height:1.5;min-width:0}
input::placeholder,textarea::placeholder{color:#62675c;opacity:1}
button,.primary,.secondary,.danger{font-size:18px;line-height:1.45;min-height:48px}
label,legend,legend small,.privacy,.tiny,small,.pill,.eyebrow,.service-label,.badge-alert,.downloads a,footer,nav,th,td,td small,.check,.christmas-badge{font-size:16px}
.slot{font-size:18px;min-height:48px}
.check{line-height:1.6;margin-bottom:20px}.check input{width:22px;min-height:22px;height:22px;margin-top:2px}
.brand small{font-size:16px;line-height:1.45;letter-spacing:.6px}.brand span{min-width:0}
.site-header{flex-wrap:wrap}.toolbar label{min-width:200px}.eyebrow{letter-spacing:1.4px}
legend small{float:none;display:block;margin-top:4px}
.notice,.hours p,.menu-section p,.intro>p:last-child{font-size:18px}
th{letter-spacing:.4px}.day-tile small{font-size:16px}
.downloads a{line-height:1.5;padding:12px 16px;min-height:48px}
footer{flex-wrap:wrap}.split{flex-wrap:wrap}#detail-form>.split{align-items:flex-start}
@media(max-width:700px){.brand{font-size:22px;max-width:100%}.brand small{font-size:16px}.site-header nav{width:100%;font-size:18px}.site-header .phone{font-size:18px}.booking-card{padding:20px}.two-col{grid-template-columns:1fr;gap:0}.slot-group{grid-template-columns:repeat(3,minmax(0,1fr))}.toolbar label{min-width:180px}h1{font-size:42px}.card-top .eyebrow{font-size:16px}}
@media print{th,td,td small,.pill,.christmas-badge{font-size:16px}.summary span{font-size:16px}.table-wrap{overflow:visible}table{table-layout:auto}td,th{overflow-wrap:anywhere}}
