:root{--ink:#33261e;--brown:#4b3326;--gold:#a67c43;--line:#ded5cb;--paper:#faf8f4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 'Yu Gothic','Meiryo',sans-serif}a{color:inherit}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b78641;outline-offset:3px}.demo{background:#2b221c;color:#efe5d7;padding:7px 5%;font-size:12px;letter-spacing:.12em;display:flex;gap:20px}.demo span{letter-spacing:0}header{max-width:1160px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:24px 28px}.brand{text-decoration:none;font:36px Georgia,serif}.brand i{font-size:19px;font-weight:normal}.brand small{display:block;font:12px 'Meiryo',sans-serif;letter-spacing:.35em;margin-top:4px}nav{display:flex;gap:28px;font-size:14px}nav a{text-decoration:none}nav a.active{color:var(--gold);border-bottom:2px solid}main{max-width:1104px;margin:auto;padding:0 28px 70px}h1,h2,h3,p{margin-top:0}h1{font-size:38px;line-height:1.45;font-weight:500}h2{font-size:26px;font-weight:500}h3{font-size:20px}small,.muted{color:#796c61;font-size:14px}.eyebrow{font-size:13px;letter-spacing:.22em;color:var(--gold);font-weight:bold}.hero{display:grid;grid-template-columns:1fr 1.2fr;background:#ece6dc;margin:12px 0 40px;min-height:270px}.hero-copy{padding:34px}.hero p{margin-bottom:0}.hero img{width:100%;height:100%;min-height:270px;object-fit:cover;object-position:right}.visits{display:grid;grid-template-columns:1fr 1fr;gap:22px}.card{background:white;border:1px solid var(--line);padding:28px}.visits .card{border-top:4px solid var(--gold)}.visits .card:last-child{background:var(--brown);color:white;border-color:var(--brown)}.tag{display:inline-block;border:1px solid currentColor;padding:2px 12px;font-size:13px;margin-bottom:17px}.btn{display:inline-block;border:1px solid var(--brown);background:var(--brown);color:white;text-decoration:none;padding:12px 22px;border-radius:3px;text-align:center}.btn.light{background:#f2e4ce;color:var(--brown);border-color:#f2e4ce}.btn.secondary{background:transparent;color:var(--brown)}.btn.danger{color:#a43225;background:white;border-color:#d3b7b0;padding:6px 13px}.info{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:40px}.info>div{border-top:1px solid var(--line);padding-top:22px}.pagehead{margin:28px 0}.steps{display:flex;list-style:none;padding:0;margin:25px 0 32px;gap:4px}.steps li{flex:1;color:#8b7f72;border-top:3px solid var(--line);padding-top:10px;font-size:14px}.steps li.current{color:var(--brown);border-color:var(--gold);font-weight:bold}.booking{max-width:760px;margin:auto}.choices{display:grid;gap:12px}.choice{width:100%;text-align:left;background:white;border:1px solid var(--line);padding:20px;display:flex;justify-content:space-between;align-items:center;gap:15px}.choice.selected{border:2px solid var(--gold);background:#f8f0e4}.choice strong{display:block;font-size:18px}.choice small{display:block}.choice span{white-space:nowrap}.fields{display:grid;gap:18px}label{display:block;font-size:14px;font-weight:bold}input,select{display:block;width:100%;padding:12px;border:1px solid #b5a696;background:white;border-radius:3px;color:var(--ink);margin-top:6px}input[type=date]{min-height:49px}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}.slot{border:1px solid var(--line);background:white;padding:12px 4px}.slot.selected{background:var(--brown);color:white}.slot small{display:block;font-size:12px}.actions{display:flex;justify-content:space-between;gap:15px;margin-top:26px}.notice{background:#eee7dc;padding:14px 18px;font-size:14px;border-left:3px solid var(--gold);margin-bottom:22px}.error{color:#a12720;margin:16px 0}.summary{margin:0}.summary>div{display:grid;grid-template-columns:120px 1fr;border-bottom:1px solid var(--line);padding:14px 0}.summary dt{color:#796c61}.summary dd{margin:0;overflow-wrap:anywhere}.success{padding:28px;text-align:center;background:var(--brown);color:white;margin-bottom:24px}.success .check{font-size:36px;color:#e1bd81}.success p{margin:0}.toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px}.toolbar label{width:220px}.stats{display:flex;gap:15px;margin-bottom:24px}.stats>div{padding:16px 22px;background:#eee7dc;flex:1}.stats b{font:30px Georgia,serif;margin-right:8px}.agenda{display:grid;gap:12px}.appointment{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:20px;background:white;border:1px solid var(--line);padding:20px}.appointment .time{font:25px Georgia,serif}.appointment .time small{font:12px sans-serif;display:block}.source{font-size:12px;background:#eee7dc;padding:3px 9px;margin-left:10px}.appointment h3{margin:0;font-size:18px}.appointment p{margin:0;font-size:14px}.controls{display:flex;gap:8px}.controls .btn{padding:6px 12px;font-size:14px}dialog{max-width:620px;width:calc(100% - 32px);border:0;padding:28px;max-height:90vh;overflow:auto;background:var(--paper)}dialog::backdrop{background:#251b14aa}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:18px}.close{float:right;border:0;background:transparent;font-size:22px}.empty{padding:45px;text-align:center;background:white;border:1px dashed var(--line)}footer{border-top:1px solid var(--line);padding:30px max(28px,calc((100vw - 1048px)/2));display:flex;gap:25px;flex-wrap:wrap;font-size:14px}footer small{flex-basis:100%}.help{margin-top:24px;font-size:14px}@media(max-width:700px){header{padding:20px;align-items:flex-start;gap:15px}.brand{font-size:28px}.brand i{font-size:14px}nav{gap:12px;font-size:12px;flex-wrap:wrap;justify-content:end;max-width:160px}main{padding:0 20px 45px}.demo{padding:7px 20px;font-size:10px;gap:12px}h1{font-size:29px}.hero{grid-template-columns:1fr;margin-top:0}.hero-copy{padding:28px}.hero img{height:190px;min-height:0}.visits,.info{grid-template-columns:1fr}.card{padding:22px}.steps li{font-size:12px}.slots{grid-template-columns:repeat(3,1fr)}.toolbar{align-items:stretch;flex-direction:column}.toolbar label{width:100%}.stats{gap:8px}.stats>div{padding:12px;font-size:12px}.stats b{display:block;font-size:25px}.appointment{grid-template-columns:75px 1fr;padding:15px;gap:12px}.controls{grid-column:2}.appointment .time{font-size:22px}.source{margin:4px 0;display:inline-block}.twocol{grid-template-columns:1fr}.summary>div{grid-template-columns:90px 1fr}footer{padding:25px 20px}.actions .btn{flex:1}}
[hidden]{display:none!important}

.kiosk nav,.kiosk footer{display:none}.kiosk .booking{max-width:920px}.kiosk .btn,.kiosk input{min-height:58px}.kiosk .choice{min-height:100px}.kiosk .slot{min-height:74px;font-size:22px}.kiosk .pagehead h1{font-size:36px}.toolbar .controls{flex-wrap:wrap}fieldset{border:1px solid var(--line);margin:18px 0;padding:18px}legend{font-weight:bold}
