*{box-sizing:border-box}html{scroll-behavior:smooth}button:disabled{opacity:.55}
:root{--cream:#f3f4eb;--ink:#203d35;--yellow:#f8df4a;--muted:#67766e}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,sans-serif;font-size:15px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}a{color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9b7515;outline-offset:3px}button:disabled{cursor:default}main,.header,footer{max-width:1180px;margin:auto}.header{display:flex;justify-content:space-between;align-items:center;padding:30px 20px}.brand{display:flex;gap:12px;text-decoration:none;align-items:center;font-weight:800;letter-spacing:2px;font-size:21px}.brand small{display:block;font-size:9px;letter-spacing:2.4px}.brand-mark{display:grid;place-items:center;background:var(--yellow);border-radius:50%;width:48px;height:48px;font:bold 37px Georgia;color:var(--ink);letter-spacing:-4px;padding-right:4px}.back{text-decoration:none;color:var(--muted);font-size:13px}.intro{display:flex;align-items:center;justify-content:space-between;padding:40px 24px 44px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:bold;color:var(--muted)}h1,h2,h3,p{margin-top:0}.intro h1{font:normal clamp(42px,5vw,66px)/1.06 Georgia,serif;letter-spacing:-2px;margin:16px 0}.intro em{font-weight:normal}.lead{font-size:16px;color:var(--muted);line-height:1.7;margin-bottom:0}.intro-note{position:relative;width:230px;padding:15px 25px 5px;border-left:1px solid #cbd3c5}.intro-note p{font:italic 24px/1.35 Georgia,serif}.intro-note small{font-size:12px;line-height:1.7;color:var(--muted)}.paw{position:absolute;top:-35px;right:18px;font:80px Georgia;color:#81997644;transform:rotate(15deg)}.booking-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:24px;padding:0 20px}.service-panel,.calendar-panel,.details-panel,.receipt{background:white;border:1px solid #dfe5da;border-radius:22px;padding:28px}.service-panel{align-self:start}.step-label{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:1.8px;font-weight:bold;color:var(--muted);margin-bottom:16px}.step-label span{display:grid;place-items:center;width:24px;height:24px;letter-spacing:0;background:var(--cream);color:var(--ink);border-radius:50%}h2{font:normal 26px/1.2 Georgia,serif;letter-spacing:-.5px;margin-bottom:20px}.service-options{display:grid;gap:10px}.service-option{width:100%;text-align:left;display:block;border:1px solid #dce2d5;background:white;border-radius:12px;padding:15px;color:var(--ink)}.service-option strong{display:block;font-size:14px}.service-option small{display:block;font-size:12px;margin-top:5px;color:var(--muted)}.service-option[aria-pressed=true]{border:2px solid var(--ink);padding:14px;background:#f5f7f0}.service-option[aria-pressed=true] strong:after{content:' ✓';float:right}.options{display:grid;gap:14px;margin-top:22px}label{display:grid;gap:7px;font-size:13px;font-weight:600}select,input{min-width:0;border:1px solid #d6ddcf;border-radius:9px;width:100%;padding:12px;background:white;color:var(--ink);font-weight:normal}input[type=checkbox]{width:17px;height:17px;flex-shrink:0;accent-color:var(--ink)}.check{display:flex;gap:9px;align-items:flex-start;font-weight:normal;font-size:12px}.price-summary{display:grid;gap:7px;padding:20px 0 5px;border-top:1px solid #e7eadf;margin-top:24px}.price-summary>span{color:var(--muted);font-size:12px}.price-summary strong{font:normal 28px Georgia,serif}.price-summary small{font-size:11px;color:var(--muted)}.hint{color:var(--muted);font-size:12px;margin:14px 0 0}.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.calendar-heading h2{margin-bottom:10px}.text-button{border:0;background:transparent;padding:5px 0;text-decoration:underline;text-underline-offset:3px;color:var(--muted);font-size:12px}.status{font-size:12px;color:var(--muted);min-height:19px;margin-bottom:12px}.status.error{color:#9a3b2d}.month-heading{display:flex;align-items:center;justify-content:space-between;margin:10px 0 15px}.month-heading h3{font:normal 24px Georgia,serif;margin:0;text-transform:capitalize}.arrow{border:1px solid #dfe5d8;background:white;color:var(--ink);border-radius:50%;width:36px;height:36px;padding:0;display:grid;place-items:center;font-size:18px}.arrow:disabled{opacity:.3}.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekdays{text-align:center;font-size:11px;color:var(--muted);padding-bottom:10px}.day{position:relative;border:0;min-height:44px;background:#f5f6f0;border-radius:9px;color:#a4aca1;font-weight:normal;padding:8px 0}.day.other{background:transparent;color:#c7cec1}.day.available{background:#e8efdd;color:var(--ink);font-weight:bold}.day.available:after{content:'';display:block;background:#5d7b48;width:4px;height:4px;border-radius:50%;margin:3px auto 0}.day.today{box-shadow:inset 0 0 0 1px #bcc7b1}.day[aria-pressed=true]{background:var(--ink);color:white}.day[aria-pressed=true]:after{background:var(--yellow)}.legend{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;margin:12px 0 22px}.legend>span{width:7px;height:7px;background:#7f9960;border-radius:50%}.time-heading{border-top:1px solid #e7eadf;padding-top:19px;display:flex;justify-content:space-between;align-items:center;gap:10px}.time-heading h3{font-size:14px;margin:0}.time-heading span{font-size:11px;color:var(--muted)}.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:15px}.slot{border:1px solid #d3dcc9;background:white;border-radius:9px;color:var(--ink);padding:11px 8px;font-size:13px}.slot[aria-pressed=true]{background:var(--yellow);border-color:var(--yellow);font-weight:bold}.empty-state{border-radius:12px;background:#f5f7f1;padding:20px;margin-top:16px}.empty-state h3{font:normal 20px Georgia;margin-bottom:9px}.empty-state p{font-size:13px;color:var(--muted);margin-bottom:10px}.empty-state a{font-size:13px}.details-panel{margin:24px 20px 0}.selected-time{border-radius:12px;padding:17px 20px;background:#f3f6ed;margin:10px 0 24px;font-size:14px}.selected-time p{margin-bottom:3px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0}.privacy{font-size:12px;max-width:760px;color:var(--muted)}.confirm{margin:22px 0}.confirm-row{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #e7eadf;padding-top:20px}.confirm-row p{margin:0;font-weight:bold}.primary{background:var(--yellow);border:0;border-radius:10px;padding:14px 24px;color:var(--ink);font-weight:bold}.primary:disabled{opacity:.5}#booking-error{color:#9a3b2d;font-size:13px;margin-top:14px}.trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.receipt{max-width:740px;margin:10px auto 50px;text-align:center}.receipt-check{display:grid;place-items:center;background:#e8efdd;border-radius:50%;width:64px;height:64px;margin:0 auto 22px;font-size:28px}.receipt h1{font:normal 38px Georgia}.receipt p{color:var(--muted)}.receipt-info{margin:26px auto;background:#f3f6ed;border-radius:14px;padding:20px;text-align:left;max-width:480px}.receipt-info strong{display:block;font-size:17px;margin-bottom:10px}.receipt-info p{font-size:14px;margin-bottom:6px;color:var(--ink)}.receipt-info small{word-break:break-all;font-size:11px;color:var(--muted)}.receipt-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:24px 0}.receipt-actions>button:not(.primary){border:1px solid #d6ddcf;border-radius:10px;background:white;padding:12px 20px;color:var(--ink)}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:36px 24px;color:var(--muted);font-size:11px}.footer-brand{font-weight:bold;letter-spacing:1.5px}footer a{font-size:11px}.skip{position:absolute;left:-10000px}.skip:focus{left:10px;top:10px;background:white;padding:10px;z-index:10}dialog{max-width:600px;max-height:85vh;overflow:auto;border:0;border-radius:20px;padding:30px;color:var(--ink)}dialog::backdrop{background:#183b3055}dialog p{font-size:14px;line-height:1.7}dialog .arrow{float:right}#other-month{margin-top:12px;font-size:13px}#other-month button{background:none;border:0;color:var(--ink);text-decoration:underline;padding:5px 0}[hidden]{display:none!important}
@media(max-width:850px){.booking-layout{grid-template-columns:270px minmax(0,1fr);gap:16px}.service-panel,.calendar-panel{padding:22px}.slots{grid-template-columns:repeat(3,minmax(0,1fr))}.intro{padding-top:25px}.day{min-height:40px}.weekdays,.month-grid{gap:4px}.form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.header{padding:22px 20px}.brand{font-size:18px}.brand-mark{width:42px;height:42px}.back{font-size:11px}.intro{padding:20px 22px 28px}.intro h1{font-size:44px}.intro-note{display:none}.lead{font-size:14px}.booking-layout{display:grid;grid-template-columns:1fr;padding:0 14px;gap:16px}.service-panel,.calendar-panel,.details-panel{border-radius:17px;padding:22px}.service-options{grid-template-columns:1fr 1fr;gap:8px}.service-option{padding:12px}.service-option[aria-pressed=true]{padding:11px}.service-option strong{font-size:12px}.service-option small{font-size:11px}.options{margin-top:18px}.price-summary{margin-top:18px;padding-top:14px}.service-panel .hint{margin-top:9px}.calendar-heading h2{font-size:25px}.calendar-heading{align-items:flex-start}.calendar-heading>.text-button{font-size:10px;margin-top:7px}.weekdays,.month-grid{gap:6px}.day{min-height:42px}.slots{grid-template-columns:repeat(4,minmax(0,1fr))}.details-panel{margin:16px 14px 0}.form-grid{grid-template-columns:1fr}.confirm-row{align-items:stretch;flex-direction:column;gap:16px}.primary{width:100%}.receipt{margin:0 14px;padding:25px 20px}.receipt h1{font-size:32px}.receipt-actions{display:grid}.receipt-info{padding:17px}footer{padding:30px 24px;flex-direction:column;align-items:flex-start;gap:9px}dialog{margin:auto 16px;padding:24px}}
