/* Bronzette by Caro — booking system (mobile-first) */
:root{
  --bg:#fbf6f1; --surface:#ffffff; --ink:#2c211b; --soft:#6a584c;
  --line:#ecdfd4; --accent:#c08552; --accent-dark:#a06b3e; --accent-veil:#f6ece3;
  --ok:#2f8f5b; --ok-veil:#e6f4ec; --warn:#b3541e; --err:#b3261e; --err-veil:#fbe9e7;
  --wa:#25d366;
  --radius:16px; --radius-s:11px; --shadow:0 10px 30px -14px rgba(60,40,25,.35);
  --shadow-sm:0 4px 14px -8px rgba(60,40,25,.4);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:'Hanken Grotesk',system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:700;line-height:1.1;margin:0 0 .3em}
h1{font-size:1.9rem}h2{font-size:1.5rem}h3{font-size:1.2rem}
p{margin:0 0 1rem}
a{color:var(--accent-dark)}
.muted{color:var(--soft)}
.small{font-size:.85rem}

/* ---------- Layout ---------- */
.pub-header{padding:18px 20px;text-align:center;position:relative}
.lang{position:absolute;top:18px;right:18px;font-size:.82rem;font-weight:700;color:var(--soft);display:flex;gap:6px}
.lang a{text-decoration:none;color:var(--soft);padding:2px 4px;border-radius:6px}
.lang a.on{color:#fff;background:var(--accent)}
.brand{display:inline-flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.brand-mark{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:700;letter-spacing:.01em}
.brand-sub{font-size:.72rem;text-transform:uppercase;letter-spacing:.22em;color:var(--accent-dark)}
.pub-main{max-width:560px;margin:0 auto;padding:8px 18px 40px;width:100%}
.pub-footer{max-width:560px;margin:0 auto;padding:24px 18px 40px;text-align:center;font-size:.82rem;color:var(--soft)}
.pub-footer p{margin:0 0 4px}

/* ---------- Steps ---------- */
.steps{max-width:560px;margin:6px auto 4px;padding:0 18px;display:flex;gap:8px}
.step{flex:1;height:5px;border-radius:99px;background:var(--line)}
.step.on{background:var(--accent)}

/* ---------- Cards ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);padding:20px;margin-bottom:16px}
.section-title{margin:6px 0 2px}
.lead{color:var(--soft);margin-bottom:20px}

/* ---------- Service picker ---------- */
.svc{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;cursor:pointer;
  background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius);
  padding:16px;margin-bottom:12px;transition:border-color .15s,box-shadow .15s;position:relative}
.svc:hover{border-color:var(--accent)}
.svc input{position:absolute;opacity:0;pointer-events:none}
.svc.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-veil)}
.svc-body{flex:1;min-width:0}
.svc-name{font-weight:700;font-size:1.08rem;margin:0}
.svc-desc{color:var(--soft);font-size:.9rem;margin:4px 0 0}
.svc-meta{display:flex;gap:12px;margin-top:8px;font-size:.85rem;color:var(--soft);flex-wrap:wrap}
.svc-price{font-weight:700;color:var(--accent-dark);white-space:nowrap;font-size:1.05rem}
.svc-check{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;
  display:grid;place-items:center;margin-top:2px}
.svc.selected .svc-check{border-color:var(--accent);background:var(--accent);color:#fff}
.svc-check svg{width:14px;height:14px;opacity:0}
.svc.selected .svc-check svg{opacity:1}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:inherit;font-size:1rem;font-weight:600;cursor:pointer;
  border:1.5px solid transparent;border-radius:99px;padding:14px 22px;text-decoration:none;
  transition:transform .12s,background .15s,border-color .15s;-webkit-tap-highlight-color:transparent}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-dark)}
.btn-outline{background:transparent;border-color:var(--accent);color:var(--accent-dark)}
.btn-ghost{background:var(--accent-veil);color:var(--accent-dark)}
.btn-block{display:flex;width:100%}
.btn-lg{padding:17px 26px;font-size:1.06rem}
.btn-sm{padding:9px 16px;font-size:.88rem}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-wa{background:var(--wa);color:#fff;border:0}
.sticky-cta{position:sticky;bottom:0;background:linear-gradient(to top,var(--bg) 70%,transparent);
  padding:14px 0 8px;margin-top:8px}
.backlink{display:inline-block;margin-top:14px;color:var(--soft);font-size:.9rem}

/* ---------- Calendar ---------- */
.cal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm)}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-title{font-weight:700;font-size:1.05rem}
.cal-nav{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;
  font-size:1.1rem;cursor:pointer;display:grid;place-items:center}
.cal-nav:disabled{opacity:.35;cursor:not-allowed}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-dow{text-align:center;font-size:.72rem;color:var(--soft);padding:4px 0;font-weight:600}
.cal-day{aspect-ratio:1;border:0;border-radius:12px;background:var(--accent-veil);color:var(--ink);
  font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;position:relative}
.cal-day.empty{background:transparent;pointer-events:none}
.cal-day.off{background:transparent;color:#c9bcb0;cursor:not-allowed;text-decoration:line-through}
.cal-day.free:hover{outline:2px solid var(--accent)}
.cal-day.sel{background:var(--accent);color:#fff}
.cal-day.today{box-shadow:inset 0 0 0 1.5px var(--accent)}
.cal-legend{display:flex;gap:16px;justify-content:center;margin-top:12px;font-size:.78rem;color:var(--soft)}
.cal-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:5px;vertical-align:-1px}
.dot-free{background:var(--accent-veil);border:1px solid var(--line)}
.dot-off{background:#fff;border:1px solid var(--line)}

/* ---------- Times ---------- */
.times-wrap{margin-top:18px}
.times-title{font-weight:700;margin-bottom:10px}
.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.time-btn{padding:13px 6px;border:1.5px solid var(--line);border-radius:12px;background:#fff;
  font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer}
.time-btn:hover{border-color:var(--accent)}
.time-btn.sel{background:var(--accent);color:#fff;border-color:var(--accent)}
.times-empty{color:var(--soft);padding:14px 0}
.loading{color:var(--soft);padding:14px 0;text-align:center}

/* ---------- Forms ---------- */
.field{margin-bottom:14px}
.field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px}
.field .req{color:var(--accent-dark)}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=time],
input[type=number],input[type=password],select,textarea{
  width:100%;padding:14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;
  font-family:inherit;font-size:16px;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-veil)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--soft)}
.check input{width:20px;height:20px;margin-top:2px;flex-shrink:0}

/* ---------- Summary ---------- */
.summary{background:var(--accent-veil);border-radius:var(--radius-s);padding:16px;margin-bottom:18px}
.summary-row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:.95rem}
.summary-row .k{color:var(--soft)}
.summary-row .v{font-weight:600;text-align:right}
.summary-total{border-top:1px dashed #d9c7b6;margin-top:6px;padding-top:10px;font-size:1.05rem}

/* ---------- Flash / status ---------- */
.flash{border-radius:12px;padding:13px 16px;margin-bottom:16px;font-size:.92rem}
.flash-ok{background:var(--ok-veil);color:#20613e}
.flash-err{background:var(--err-veil);color:var(--err)}
.notice{border-radius:var(--radius-s);padding:16px;margin:12px 0}
.notice-ok{background:var(--ok-veil);color:#20613e}
.notice-warn{background:#fdf0e6;color:var(--warn)}
.notice-err{background:var(--err-veil);color:var(--err)}

/* ---------- Result / status hero ---------- */
.result{text-align:center;padding:8px 4px}
.result .emoji{font-size:3rem;line-height:1;margin-bottom:8px}
.badge{display:inline-block;padding:5px 12px;border-radius:99px;font-size:.78rem;font-weight:700;letter-spacing:.02em}
.b-pending{background:#fef3e2;color:#9a6a1f}
.b-approved{background:var(--ok-veil);color:#20613e}
.b-cancelled{background:var(--err-veil);color:var(--err)}
.b-info{background:var(--accent-veil);color:var(--accent-dark)}

/* ---------- Cookie ---------- */
.cookie{position:fixed;left:12px;right:12px;bottom:12px;max-width:540px;margin:0 auto;
  background:var(--ink);color:#fff;border-radius:14px;padding:12px 16px;display:flex;
  gap:12px;align-items:center;justify-content:space-between;box-shadow:var(--shadow);z-index:50;font-size:.85rem}
.cookie .btn{background:#fff;color:var(--ink)}
.cookie[hidden]{display:none}

@media(min-width:480px){h1{font-size:2.2rem}}
