@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
.slots button.available{background:#e5f3e8;color:#215d32;border-color:#72a980;opacity:1}.slots button.occupied:disabled{background:#fbe4e4;color:#9a2230;border-color:#d9999f;opacity:1;cursor:not-allowed}.slots button.available.active{background:#28643b;color:#fff;border-color:#28643b;outline:2px solid #28643b;outline-offset:2px}.slots button small{display:block;font-size:10px;margin-top:6px}.booking-row .delete-booking{background:#fff4f4;color:#9a2230;border:1px solid #d9999f;border-radius:6px;padding:10px 12px;font-size:12px;white-space:nowrap}.booking-row .delete-booking:disabled{opacity:.5;cursor:wait}
:root{--red:#851f2d;--green:#334c3e;--cream:#faf6ed;--line:#e2d8c9}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:#31382f;font:15px 'DM Sans',Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}header{max-width:1250px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:28px 30px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--red);font:40px Georgia;display:flex;align-items:center;gap:13px}.brand span{font:12px Arial;letter-spacing:3px;border-left:1px solid #bb9f87;padding-left:15px}.brand small{display:block;font-size:9px;letter-spacing:4px;margin-top:7px}nav{display:flex;gap:24px}nav button,.dashboard-head button{background:none;border:0;color:var(--green);font-size:13px;padding:10px 0}nav .admin-link{color:#847864}main{max-width:1180px;margin:auto;padding:0 30px}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:40px;padding:55px 0 65px}.eyebrow{letter-spacing:2.6px;font-size:10px;font-weight:700;color:var(--red)}h1{font:60px/1.13 'Playfair Display',Georgia,serif;margin:24px 0;color:var(--green);letter-spacing:-2px}h1 em{color:var(--red);font-weight:500}.intro{line-height:1.9;color:#777465}.hero-tags{display:flex;gap:20px;margin-top:28px;font-size:11px;color:#82745b}.photo-pair{height:370px;display:flex;justify-content:center;gap:15px;align-items:center}.photo-pair img{height:335px;width:46%;object-fit:cover;border-radius:100px 100px 6px 6px;box-shadow:0 14px 25px #594b3220;transform:rotate(-5deg)}.photo-pair img+img{transform:rotate(6deg);margin-top:35px}.section-title{text-align:center;margin:0 0 30px}h2{font:36px 'Playfair Display',Georgia;margin:12px 0;color:var(--green)}.section-title>p:last-child{color:#81796b;font-size:13px}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.card{background:#fffdf8;border:1px solid var(--line);border-radius:14px;padding:30px}.step{display:flex;align-items:center;gap:13px;color:#b28c56;font-size:11px;letter-spacing:1px}.step span{font-size:16px;font-weight:600;color:var(--green);letter-spacing:0}.month-nav{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.month-nav h3{font:22px Georgia}.month-nav button{border:1px solid var(--line);border-radius:50%;width:31px;height:31px;background:none;color:var(--green)}.week,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week{text-align:center;font-size:10px;color:#968a76;margin-bottom:12px}.calendar button{background:transparent;border:0;border-radius:50%;aspect-ratio:1;color:var(--green)}.calendar button:hover{background:#f0e7d8}.calendar button.active{background:var(--red);color:white}.calendar button:disabled{opacity:.25;cursor:default;text-decoration:line-through}.hint{font-size:10px;color:#968a76;line-height:1.7}.hint span{margin-left:10px}.second{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.slots{display:flex;gap:9px;margin:18px 0 10px}.slots button{flex:1;padding:13px 5px;border:1px solid var(--line);border-radius:7px;background:none;color:var(--green);font-size:12px}.slots button.active{background:var(--green);color:white;border-color:var(--green)}.slots button:disabled{opacity:.4;cursor:default}label{display:block;font-size:12px;color:#5a5b4f;margin:22px 0}input{display:block;width:100%;margin-top:9px;border:1px solid var(--line);border-radius:6px;padding:14px;background:#fff;color:#334136;min-width:0}.name-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.notice{display:flex;gap:14px;background:#f6eee0;border:1px solid #e8d9bf;border-radius:8px;padding:16px;margin-top:26px;color:#806641}.notice>span{font-size:25px}.notice p{margin:0;font-size:12px;line-height:1.8}.notice strong{display:block;color:#745934;font-size:12px;margin-bottom:4px}.selection{font-size:12px;margin:25px 0 15px;color:var(--green)}.primary{width:100%;background:var(--red);border:0;border-radius:6px;color:white;padding:16px;font-size:13px;display:flex;justify-content:space-between}.primary:disabled{opacity:.5;cursor:wait}.form-message{font-size:13px;color:var(--red)}.narrow{max-width:520px;margin:auto}.receipt{margin-top:25px;text-align:center}.code{font:bold 22px monospace;letter-spacing:2px;background:#f4ecdd;padding:14px;display:inline-block}.status{padding:8px 12px;display:inline-block;border-radius:30px;background:#f6e8ce;color:#82622b;font-size:12px}.confirmed{background:#e5eee4;color:#2d6337}.dashboard-head{display:flex;justify-content:space-between;gap:20px}.dashboard-head button{margin-left:20px}.booking-row{border-top:1px solid var(--line);padding:18px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.booking-row label{display:flex;gap:10px;align-items:center}.booking-row input{width:20px;height:20px;margin:0;accent-color:var(--green)}footer{max-width:1180px;margin:65px auto 0;padding:25px 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#948672}[hidden]{display:none!important}button:focus-visible,input:focus-visible{outline:3px solid #bb965b;outline-offset:3px}@media(max-width:750px){header{padding:20px;align-items:flex-start;gap:20px}.brand{font-size:30px}.brand span{font-size:9px;letter-spacing:1px}nav{gap:5px;flex-direction:column}nav button{text-align:right;font-size:11px;padding:4px}main{padding:0 18px}.hero{grid-template-columns:1fr;gap:15px;padding:35px 0 45px}h1{font-size:47px}.hero-tags{margin-top:20px}.photo-pair{height:300px}.photo-pair img{height:275px;width:auto;max-width:46%}.booking-grid{grid-template-columns:1fr}.card{padding:22px}.booking-row{align-items:flex-start;flex-direction:column;gap:0}.booking-row label{margin:15px 0 0}footer{gap:20px;line-height:1.8}.name-row{gap:10px}}
