/* /book carpet cleaning flow. Uses the site tokens from site.css. */
.bk-hero .wrap{padding-top:var(--s5)!important;padding-bottom:var(--s5)!important}
.bk-hero h1{font-size:36px;margin-bottom:var(--s1)}
.bk{padding-top:var(--s5);padding-bottom:var(--s7)}
.bk-promo{background:var(--navy);color:#fff;font:600 15px var(--sans);padding:12px var(--s2);text-align:center;margin:0 0 var(--s4);border-radius:var(--r-sm)}

/* Progress: numbered labels over a segmented bar */
.bk-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;list-style:none;padding:0;margin:0 0 var(--s4);counter-reset:s}
.bk-steps li{counter-increment:s;font:600 13px var(--sans);color:var(--muted);padding-top:12px;border-top:4px solid var(--line);border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-steps li::before{content:counter(s) ". "}
.bk-steps li.done{border-color:var(--red);color:var(--ink)}
.bk-steps li.on{border-color:var(--red);color:var(--red)}

.bk-grid{display:grid;grid-template-columns:1fr 340px;gap:var(--s5);align-items:start}
#bk{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:var(--s4)}
#bk h2,.bk-sum h2,#done h2{color:var(--ink);text-transform:none;font-size:24px;font-weight:800}
#bk fieldset{border:0;padding:0;margin:0 0 var(--s4)}
#bk legend{font:700 13px var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px}
#bk label{display:block;font:600 14px var(--sans);margin:0 0 var(--s2)}
#bk input:not([type=checkbox]):not([type=radio]),#bk textarea,#bk select{display:block;width:100%;margin-top:6px;border:1px solid #d5d5db;border-radius:var(--r-sm);padding:12px 14px;font:400 16px var(--sans);background:#fff}
#bk input:focus,#bk textarea:focus,#bk select:focus{border-color:var(--red);outline:none;box-shadow:0 0 0 3px rgba(191,34,48,.15)}
.bk-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.bk-hint{color:var(--muted);font-size:14px}

/* Option cards */
.bk-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.bk-card{position:relative;display:block;border:1.5px solid var(--line);border-radius:var(--r);box-shadow:0 1px 2px rgba(16,24,40,.05);padding:var(--s2) var(--s2) var(--s2) 48px;cursor:pointer;background:#fff;margin:0!important;transition:border-color .15s,box-shadow .15s}
.bk-card:hover{border-color:#cfcfd6;box-shadow:var(--sh)}
.bk-card input{position:absolute;opacity:0}
.bk-card::before{content:"";position:absolute;left:16px;top:18px;width:20px;height:20px;border:1.5px solid #c4c4cc;border-radius:6px;background:#fff}
.bk-card:has(input:checked){border-color:var(--red);background:var(--red-tint);box-shadow:0 0 0 3px rgba(191,34,48,.1)}
.bk-card:has(input:checked)::before{background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.2'/%3E%3C/svg%3E") center/16px no-repeat;border-color:var(--red)}
.bk-card:has(input:focus-visible){outline:3px solid var(--sky);outline-offset:2px}
.bk-card strong{display:block;font:700 16px var(--sans);color:var(--ink)}
.bk-card small{display:block;font:400 14px var(--sans);color:var(--muted);margin-top:4px}
.bk-card .px{display:block;font:700 15px var(--sans);color:var(--red);margin-top:8px}
.bk-alert{background:var(--soft);border-left:4px solid var(--red);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:12px var(--s2);margin-top:var(--s2);font-size:15px}

.bk-pills{display:flex;flex-wrap:wrap;gap:var(--s1)}
.bk-pills label{display:flex!important;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:999px;padding:9px 16px;margin:0!important;cursor:pointer;font-weight:500!important;background:#fff}
.bk-pills label:has(input:checked){border-color:var(--red);background:var(--red-tint);color:var(--red)}
.bk-qty{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);border-bottom:1px solid var(--line);padding:14px 0}
.bk-qty span{font:600 16px var(--sans)}
.bk-qty small{display:block;font:400 14px var(--sans);color:var(--muted)}
.bk-stepper{display:flex;align-items:center;gap:var(--s1)}
.bk-stepper button{width:40px;height:40px;border:1.5px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font:600 20px var(--sans);cursor:pointer;line-height:1}
.bk-stepper button:hover{border-color:var(--red);color:var(--red)}
.bk-stepper output{min-width:28px;text-align:center;font:700 17px var(--sans)}
.bk-check{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important}
.bk-err{background:#fff0f1;color:#8a0f1a;border-left:4px solid var(--red);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:12px var(--s2)}
.bk-nav{display:flex;justify-content:space-between;gap:var(--s2);margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}
.bk-btn{background:var(--red);color:#fff;border:0;border-radius:var(--r-sm);padding:14px 32px;font:600 16px var(--sans);cursor:pointer}
.bk-btn:hover{background:var(--red-dk)}
.bk-btn.ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line)}
.bk-btn[disabled]{opacity:.6;cursor:wait}

/* Sticky price summary */
.bk-sum{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:var(--s3);position:sticky;top:128px}
.bk-sum h2{font-size:18px!important;margin-bottom:var(--s2)}
.bk-sum table{width:100%;border-collapse:collapse;font-size:15px}
.bk-sum td{padding:10px 0;border-bottom:1px solid var(--line);vertical-align:top}
.bk-sum td:last-child{text-align:right;white-space:nowrap;font-weight:600}
.bk-sum .tot td{font:800 22px var(--head);color:var(--red);border:0;padding-top:var(--s2)}
.bk-nap{font-size:14px;color:var(--muted);margin:var(--s2) 0 0;border-top:1px solid var(--line);padding-top:var(--s2)}
#review dl{display:grid;grid-template-columns:150px 1fr;gap:10px var(--s2);margin:0}
#review dt{font:600 13px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
#review dd{margin:0}
#done{text-align:center;padding:var(--s6) 0}
@media (max-width:900px){
  .bk-grid{grid-template-columns:1fr;gap:var(--s3)}
  .bk-sum{position:static;order:2;padding:var(--s2)}
}
@media (max-width:767px){
  .bk{padding-top:var(--s3);padding-bottom:var(--s5)}
  #bk{padding:var(--s3) var(--s2);border-radius:var(--r-sm)}
  .bk-steps{gap:4px;margin-bottom:var(--s3)}
  .bk-steps li{font-size:0;padding-top:0}
  .bk-steps li::before{content:none}
  .bk-steps li.on{font-size:12px;padding-top:8px;overflow:visible;grid-column:span 1}
  .bk-row{grid-template-columns:1fr}
  .bk-hero h1{font-size:26px}
  .bk-cards{grid-template-columns:1fr}
  .bk-nav .bk-btn{flex:1}
  #review dl{grid-template-columns:1fr}
}
#done h2:focus,#done:focus{outline:none}
/* Agency pass: service-area line, soft ZIP warning, error states, mobile running total */
.bk-area{background:var(--soft);border-radius:var(--r-sm);padding:12px 14px;font-size:14px;line-height:1.6;color:var(--ink)}
.bk-warn{background:#fff6e0;border:1px solid #e0b44a;color:#5c4200;border-radius:var(--r-sm);padding:10px 12px;font-size:14px;margin:8px 0 0}
#bk [aria-invalid="true"]{border-color:#b3261e!important;box-shadow:0 0 0 3px rgba(179,38,30,.18);background:#fffafa}
#err{background:#fdecea;border:1px solid #b3261e;color:#8c1d18;border-radius:var(--r-sm);padding:12px 14px;font-weight:600}
#err a{color:#8c1d18;text-decoration:underline}
.howto{max-width:760px;line-height:1.7;padding-left:22px}.howto li{margin:0 0 8px}
.bk-mtot{display:none}
@media (max-width:767px){
  .bk-mtot:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:12px;position:fixed;left:0;right:0;bottom:56px;z-index:59;background:#fff;border-top:1px solid var(--line);box-shadow:0 -2px 10px rgba(0,0,0,.08);padding:8px 16px;font-size:15px}
  .bk-mtot strong{font:800 20px var(--head);color:var(--red-dk,#9b1b27);margin-left:6px}
  .bk-mtot button{min-height:44px;padding:0 16px;border:1.5px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font:700 14px var(--sans);cursor:pointer}
  body.has-mtot{padding-bottom:120px}
}
.bk-rug{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;padding:12px 0;border-bottom:1px solid var(--line)}
.bk-rug-n{flex:0 0 100%;font-weight:700;font-size:14px}
.bk-rug label{flex:1 1 100px;font-size:13px;margin:0}
.bk-rug input{width:100%;min-height:44px}
.bk-rug>span[aria-hidden]{padding-bottom:12px;color:var(--muted)}
.bk-rug-out{flex:1 1 140px;font-weight:700;color:var(--ink);padding-bottom:12px}
.bk-rug-x,.bk-add{min-height:44px;padding:0 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:600 14px var(--sans);cursor:pointer}
.bk-add{margin-top:12px;border-color:var(--ink)}
.bk-sub{font-size:20px;margin:0 0 var(--s1)}
.bk-btn.big{padding:18px 40px;font-size:19px;font-weight:700;min-height:56px;box-shadow:0 6px 16px rgba(191,34,48,.25)}
.bk-addr{grid-template-columns:2fr 1fr}
#done h2{font-size:32px;color:var(--red)}
.bk-done-p{font-size:19px}
.bk-done-p a{font-weight:700;white-space:nowrap}
@media (max-width:767px){.bk-sub{font-size:17px}.bk-btn.big{font-size:17px;padding:16px 20px}.bk-addr{grid-template-columns:1fr}}
#clean{min-height:150px}#addon{min-height:260px}
@media (max-width:767px){#clean{min-height:355px}#addon{min-height:450px}}
