/* phase-2 pages (test, application, booking, waiting list) — same tokens as the approved redesigns */
.kd.app{--ink:#231f18;--gold:#E6C67E;--gold2:#c9a55a;--cream:#f5efe4;--cream2:#ece3d3;--soft:#d9cfbf;--txt:#4a4236;--err:#a3402b;
  background:#fbf8f3;color:var(--ink);font-family:Montserrat,sans-serif;line-height:1.6;font-size:16px;text-align:left}
.kd.app *{box-sizing:border-box}
.kd.app h1,.kd.app h2,.kd.app h3,.kd.app p,.kd.app li,.kd.app a,.kd.app span,.kd.app label,.kd.app legend,.kd.app button,.kd.app input,.kd.app textarea,.kd.app summary,.kd.app small{font-family:Montserrat,sans-serif;text-transform:none;letter-spacing:normal}
.kd.app a{color:inherit;text-decoration:underline;text-decoration-color:var(--gold2);text-underline-offset:3px}
.kd.app .w{max-width:1100px;margin:0 auto}.kd.app .w.n{max-width:760px}
.kd.app .lbl{font-size:11px;letter-spacing:.3em!important;color:var(--gold);font-weight:700;text-transform:uppercase!important;margin:0 0 6px}
.kd.app .ah{background:var(--ink);color:#fff;padding:64px 24px 56px}
.kd.app .ah h1{font-size:clamp(30px,4.4vw,52px);line-height:1.08;margin:10px 0 16px;font-weight:900;letter-spacing:-.015em!important;color:#fff;overflow-wrap:break-word}
.kd.app .ah .lead{font-size:18px;color:var(--soft);font-weight:300;max-width:640px;margin:0}
.kd.app .ah .lead a{color:var(--gold)}
.kd.app .bd{padding:48px 20px 88px}
.kd.app .intro{margin:0 0 26px}.kd.app .intro p{margin:0 0 12px;color:var(--txt)}
.kd.app .mut{color:#7d725f;font-size:14px}
.kd.app .card{background:#fff;border:1px solid var(--cream2);border-radius:16px;padding:26px 24px;margin:0 0 18px;box-shadow:0 8px 30px rgba(35,31,24,.04)}
.kd.app .card h3{font-size:19px;font-weight:800;margin:0 0 10px;color:var(--ink)}
.kd.app .card p{margin:0 0 12px}
.kd.app .card.dk{background:var(--ink);color:#fff;border-color:var(--ink)}.kd.app .card.dk h3{color:#fff}.kd.app .card.dk p{color:var(--soft)}
.kd.app .btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:40px;font-weight:700;font-size:15px;text-decoration:none;border:0;cursor:pointer;line-height:1.2}
.kd.app .btn.gold{background:var(--gold);color:var(--ink);box-shadow:0 10px 30px rgba(230,198,126,.25)}.kd.app .btn.gold:hover{background:#efd497}
.kd.app .btn.line{background:#fff;border:1.5px solid var(--gold2);color:var(--ink)}
.kd.app .btn.ghost{background:transparent;border:1px solid rgba(230,198,126,.7);color:var(--gold)}
.kd.app .btn[disabled]{opacity:.6;cursor:wait}
.kd.app .ctas{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0 0}
/* fields */
.kd.app .f{display:block;margin:0 0 16px;border:0;padding:0}
.kd.app .f>span,.kd.app .f>legend{display:block;font-size:14px;font-weight:600;margin:0 0 6px;color:var(--ink);padding:0}
.kd.app .f i{color:var(--gold2);font-style:normal}
.kd.app input[type=text],.kd.app input[type=email],.kd.app input[type=tel],.kd.app textarea{width:100%;font-size:16px;padding:12px 14px;border:1px solid var(--soft);border-radius:10px;background:#fffdf9;color:var(--ink);font-weight:400}
.kd.app input:focus,.kd.app textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold2)}
.kd.app .f small{display:block;font-size:13px;color:#7d725f;margin-top:6px}
.kd.app .bad input,.kd.app .bad textarea,.kd.app input.bad{border-color:var(--err)}
.kd.app .rg label{display:flex;gap:10px;align-items:center;margin:0 0 8px;font-size:15px;cursor:pointer}
.kd.app .c{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px;font-size:14.5px;line-height:1.5;cursor:pointer;color:var(--txt)}
.kd.app .c input,.kd.app .rg input{width:20px;height:20px;flex:0 0 20px;margin:1px 0 0;accent-color:#b8923f}
.kd.app .c.bad span{color:var(--err)}
.kd.app details{margin:4px 0 0;font-size:14.5px;color:var(--txt)}.kd.app summary{cursor:pointer;font-weight:600;color:var(--ink)}
.kd.app details p{margin:10px 0 0}
.kd.app .hp,.kd.app .kl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.kd.app .st{margin:12px 0 0;font-size:14.5px;min-height:1px}.kd.app .st.err{color:var(--err)}.kd.app .st.ok{color:#3d6b3a}
/* test */
.kd.app .q{border:1px solid var(--cream2);background:#fff;border-radius:14px;padding:18px 18px 14px;margin:0 0 12px;min-width:0}
.kd.app .q legend{float:left;width:100%;font-size:16px;font-weight:600;margin:0 0 12px;padding:0;color:var(--ink);line-height:1.45}
.kd.app .q legend b{color:var(--gold2)}
.kd.app .q.bad{border-color:var(--err)}
.kd.app .sc{clear:both;display:flex;flex-wrap:wrap;gap:8px}
.kd.app .sc label{position:relative;cursor:pointer}
.kd.app .sc input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.kd.app .sc span{display:block;padding:9px 14px;border:1px solid var(--soft);border-radius:30px;font-size:14px;background:#fffdf9;color:var(--txt);line-height:1.3}
.kd.app .sc label:last-child span{border-style:dashed;color:#8a7f6c}
.kd.app .sc input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.kd.app .sc input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.kd.app .bar{position:sticky;bottom:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:rgba(251,248,243,.96);padding:14px 0;border-top:1px solid var(--cream2);margin-top:8px}
.kd.app .cnt{font-size:14px;color:#7d725f;font-weight:600}
.kd.app .res{outline:0}
.kd.app .rc h2{font-size:clamp(22px,2.6vw,30px);line-height:1.2;margin:4px 0 12px;font-weight:800;color:var(--ink)}
.kd.app .rc .rtx p{color:var(--txt)}
.kd.app .bars{margin:18px 0 10px}
.kd.app .br{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;margin:0 0 12px;font-size:14px}
.kd.app .br b{font-weight:600}.kd.app .br em{font-style:normal;color:#7d725f}
.kd.app .br i{grid-column:1/-1;display:block;height:8px;border-radius:8px;background:var(--cream)}
.kd.app .br i s{display:block;height:100%;border-radius:8px;background:var(--gold2);text-decoration:none}
.kd.app .br.top i s{background:var(--ink)}
.kd.app .note{margin-top:14px}
/* booking */
.kd.app .slots{display:grid;gap:10px}
.kd.app .day{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--cream)}
.kd.app .day:last-child{border-bottom:0}
.kd.app .day .dl{font-weight:600;font-size:15px}
.kd.app .slot{padding:10px 16px;border:1.5px solid var(--gold2);border-radius:30px;background:#fff;font-weight:700;font-size:15px;color:var(--ink);cursor:pointer;min-width:78px}
.kd.app .slot[aria-checked=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.kd.app .slot.ph{visibility:hidden}
.kd.app .more{margin-top:6px}
.kd.app .chosen{font-weight:600;color:var(--ink);font-size:15px}
.kd.app .done h3{font-size:22px}
.kd.app .pay{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:18px;align-items:start;background:var(--cream);border-radius:14px;padding:18px;margin:14px 0 0}
.kd.app .pay dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;font-size:14.5px}
.kd.app .pay dt{color:#7d725f}.kd.app .pay dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.kd.app .pay svg{width:100%;height:auto;display:block;border-radius:8px;background:#fff}
.kd.app .alt{text-align:center}
@media (max-width:640px){
  .kd.app .ah{padding:44px 20px 40px}.kd.app .ah .lead{font-size:16.5px}
  .kd.app .bd{padding:28px 14px 72px}.kd.app .card{padding:22px 18px}
  .kd.app .q{padding:16px 14px 12px}.kd.app .sc span{padding:8px 12px;font-size:13.5px}
  .kd.app .day{grid-template-columns:1fr 1fr}.kd.app .day .dl{grid-column:1/-1}
  .kd.app .slot{width:100%}
  .kd.app .pay{grid-template-columns:1fr}.kd.app .pay svg{max-width:220px;margin:0 auto}
  .kd.app .bar .btn{width:100%;justify-content:center}
}
.kd.app .lnk{background:none;border:0;padding:0;color:inherit;text-decoration:underline;text-decoration-color:var(--gold2);cursor:pointer;font:inherit}
/* theme `label` rules (right-aligned, bold) leak into the forms */
.kd.app label:not(#e),.kd.app label:not(#e) span,.kd.app legend:not(#e){text-align:left}
.kd.app .c:not(#e) span,.kd.app .rg:not(#e) label span{font-weight:400}
.kd.app .f:not(#e)>span{font-weight:600}
.kd.app .pay dd:not(#e),.kd.app .pay dt:not(#e){color:var(--ink);font-family:Montserrat,sans-serif}.kd.app .pay dt:not(#e){color:#7d725f;font-weight:400}
@media (max-width:640px){.kd.app .pay dl{grid-template-columns:1fr;gap:0}.kd.app .pay dd{margin:0 0 8px}}
