@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:wght@500;600&display=swap');
:root{--ink:#242321;--muted:#77736c;--line:#dedbd4;--soft:#f7f5f0;--paper:#fffdf9;--accent:#b89b65}
*{box-sizing:border-box}body{margin:0;background:#f3f1ec;color:var(--ink);font-family:'DM Sans',Arial,sans-serif}
.booking-shell{max-width:1440px;margin:auto;background:var(--paper);min-height:100vh}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6vw}
.brand{font-family:'Playfair Display',serif;font-size:28px;letter-spacing:.16em;color:var(--ink);text-decoration:none}.secure{font-size:10px;letter-spacing:.18em;color:var(--muted)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;max-width:1250px;margin:auto}.main{padding:64px 56px 80px}.summary{border-left:1px solid var(--line);background:#faf8f3}.summary-sticky{position:sticky;top:0;padding:52px 36px}
.eyebrow{font-size:10px;letter-spacing:.18em;color:var(--muted);font-weight:600}.main h1{font-family:'Playfair Display',serif;font-size:50px;font-weight:500;margin:10px 0 8px}.intro{color:var(--muted);margin:0 0 45px}
.step{display:none}.step.active{display:block}.step-title{display:flex;gap:14px;align-items:baseline;margin-bottom:24px}.step-title span{font-size:10px;color:var(--accent);letter-spacing:.1em}.step-title h2{font-family:'Playfair Display',serif;font-size:28px;font-weight:500;margin:0}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.service-card{border:1px solid var(--line);padding:24px;text-align:left;background:#fff;cursor:pointer;transition:.2s}.service-card:hover,.service-card.selected{border-color:var(--ink);transform:translateY(-1px)}.service-card.popular{position:relative}.badge{position:absolute;right:14px;top:14px;font-size:9px;letter-spacing:.12em;background:var(--ink);color:#fff;padding:6px 8px}.service-category{font-size:9px;letter-spacing:.15em;color:var(--muted)}.service-name{font-family:'Playfair Display',serif;font-size:25px;margin:8px 0}.service-price{font-size:20px}.service-hours{font-size:12px;color:var(--muted);margin-top:7px}.hint{color:var(--muted);font-size:13px;margin-top:-12px}
.backdrop-group{margin:30px 0}.backdrop-group h3{font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}.backdrop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.backdrop-card{border:1px solid var(--line);background:#fff;cursor:pointer;text-align:left;padding:0;overflow:hidden}.backdrop-card.selected{border:2px solid var(--ink)}.backdrop-card img{display:block;width:100%;height:130px;object-fit:cover;background:#eee}.backdrop-info{padding:11px}.backdrop-name{font-size:12px}.price{font-size:11px;color:var(--muted);margin-top:5px}
.addon-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.addon{border:1px solid var(--line);background:#fff;padding:16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.addon-name{font-size:13px}.addon-price{font-size:11px;color:var(--muted);margin-top:4px}.qty{display:flex;align-items:center;border:1px solid var(--line)}.qty button{border:0;background:#fff;width:30px;height:30px;cursor:pointer}.qty span{width:28px;text-align:center;font-size:12px}.check{width:18px;height:18px;accent-color:#242321}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label{font-size:11px;letter-spacing:.04em;color:var(--muted)}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);padding:13px;background:#fff;font:inherit;color:var(--ink)}.availability{margin-top:18px;font-size:13px;padding:12px;background:var(--soft)}
.nav{display:flex;justify-content:space-between;margin-top:34px;padding-top:25px;border-top:1px solid var(--line)}button{font:inherit}.primary,.secondary{border:1px solid var(--ink);padding:13px 22px;cursor:pointer}.primary{background:var(--ink);color:#fff}.secondary{background:#fff;color:var(--ink)}.fullbtn{width:100%;margin-top:18px}.nav .primary{min-width:120px}.nav .primary:disabled,.fullbtn:disabled{opacity:.45;cursor:not-allowed}
.summary h2{font-family:'Playfair Display',serif;font-size:28px;font-weight:500;margin:8px 0 26px}.sum-items{border-top:1px solid var(--line);padding-top:8px}.sum-row{display:flex;justify-content:space-between;gap:15px;padding:11px 0;font-size:12px}.sum-row small{display:block;color:var(--muted);margin-top:3px}.empty{font-size:12px;color:var(--muted);padding:16px 0}.totals{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.totals>div{display:flex;justify-content:space-between;padding:7px 0;font-size:12px}.totals .grand{font-size:17px;padding-top:15px;margin-top:8px;border-top:1px solid var(--line)}.result{margin-top:18px;padding:15px;background:var(--soft);font-size:13px}
@media(max-width:900px){.layout{grid-template-columns:1fr}.summary{border-left:0;border-top:1px solid var(--line)}.summary-sticky{position:static}.main{padding:40px 24px}.service-grid,.addon-grid{grid-template-columns:1fr}.backdrop-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.main h1{font-size:40px}.backdrop-grid{grid-template-columns:1fr}.topbar{padding:0 24px}}
