/* RepairFlow Pro customer booking — scoped port of the approved frozen demo CSS. */
.rf-booking {

  --bg: #ffffff;
  --ink: #111827;
  --muted: #5c6778;
  --line: #e7edf3;
  --soft: #f3f7fb;
  --accent: #1c93ed;
  --accent-ink: #0b74c7;
  --accent-soft: #e7f3fd;
  --rf-btn-primary: #1C93ED;
  --rf-btn-primary-hover: #147CCB;
  --rf-btn-primary-text: #FFFFFF;
  --was: #9aa3af;
  --shadow: 0 22px 50px rgba(17, 24, 39, 0.12);
  --font: 'Outfit', system-ui, sans-serif;
  --safe-b: env(safe-area-inset-bottom, 0px);

  font-family: var(--font);
  font-weight: 420;
  letter-spacing: -0.01em;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  position: relative;
  min-height: calc(100vh - 9rem);
  min-height: calc(100svh - 9rem);
  overflow-x: hidden;
}
.rf-booking *,
.rf-booking *::before,
.rf-booking *::after { box-sizing: border-box; }
.rf-booking button,
.rf-booking input { font: inherit; color: inherit; }
.rf-booking button { cursor: pointer; border: 0; background: none; }
.rf-booking a { color: inherit; text-decoration: none; }
.rf-booking .hw--photo {
  display: flex;
  align-items: center;
  justify-content: center;
}
.rf-booking .hw--photo img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: inherit;
  object-fit: contain;
  object-position: center;
  display: block;
}
.rf-booking .hw--stage.hw--photo { width: auto; max-width: 132px; max-height: 268px; aspect-ratio: auto; height: auto; }
.rf-booking .hw--thumb.hw--photo { width: 24px; height: 48px; max-height: 48px; }
.rf-booking .hw--model.hw--photo { width: auto; max-width: 104px; max-height: 168px; height: 168px; aspect-ratio: auto; }
.rf-booking .model-card .hw--photo {
  width: 100%;
  max-width: 104px;
  height: 168px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.rf-booking .model-card--tablet .hw--photo,
.rf-booking .hw--tablet-art {
  max-width: 148px;
  height: 168px;
}
.rf-booking .model-card .hw--photo img,
.rf-booking .hw--tablet-art img {
  max-width: 100%;
  max-height: 168px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.rf-booking .hw--brand.hw--photo { width: auto; max-width: 132px; max-height: 220px; height: auto; aspect-ratio: auto; }
.rf-booking .hw--review.hw--photo { width: auto; max-width: 160px; max-height: 280px; aspect-ratio: auto; height: auto; }
.rf-booking .ask__help {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}
.rf-booking .ask__extra{
  margin-top: 14px;
  max-width: 28rem;
}
.rf-booking .ask__label{
  display: block;
  margin: 0 0 8px;
  font-weight: 580;
  font-size: 15px;
}
.rf-booking .ask__input{
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border-radius: 12px;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px var(--line);
}
.rf-booking .ask__input:focus{
  outline: none;
  box-shadow: inset 0 0 0 2px var(--accent);
}
.rf-booking .ask__input.is-invalid{
  box-shadow: inset 0 0 0 2px #c2410c;
}
.rf-booking .ask__error{
  margin: 8px 0 0;
  color: #c2410c;
  font-size: 14px;
  font-weight: 500;
}
.rf-booking .ask__help--unsure{
  margin: 14px 0 0;
  max-width: 40rem;
}
.rf-booking .shell{
  min-height: calc(100vh - 9rem);
  min-height: calc(100svh - 9rem);
  display: flex;
  flex-direction: column;
}.rf-booking .shell--shop .main{ display: flex; }.rf-booking .shell--shop .view{ width: 100%; min-width: 0; }.rf-booking .main{
  flex: 1;
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
  padding: 12px 0 32px;
}.rf-booking .top{
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 18px 22px 8px;
  gap: 12px;
}.rf-booking .top__left{ justify-self: start; }.rf-booking .top__mid{ justify-self: center; }.rf-booking .top__right{ justify-self: end; }.rf-booking .eyebrow{
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}.rf-booking .brand{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}.rf-booking .brand__mark{
  width: 22px;
  height: 28px;
  border: 1.7px solid var(--ink);
  border-radius: 6px;
  position: relative;
}.rf-booking .brand__mark::after{
  content: '';
  position: absolute;
  left: 4px;
  right: 4px;
  top: 50%;
  height: 1.7px;
  background: var(--accent);
  border-radius: 2px;
}.rf-booking .brand__name{ font-weight: 650; font-size: 17px; letter-spacing: -0.03em; }.rf-booking .brand__pro{ color: var(--muted); font-weight: 500; font-size: 13px; }.rf-booking .brand__custom{ font-weight: 650; font-size: 17px; letter-spacing: -0.03em; }.rf-booking .brand--logo img{
  display: block;
  max-width: 170px;
  max-height: 46px;
  width: auto;
  height: auto;
  object-fit: contain;
}.rf-booking .top--no-brand .top__mid{ display: none; }.rf-booking .top--no-eyebrow .top__right{ display: none; }.rf-booking .top--no-brand.top--no-back{
  grid-template-columns: 1fr;
}.rf-booking .top--no-brand.top--no-back .top__left{ display: none; }.rf-booking .top--no-brand.top--no-eyebrow:not(.top--no-back){
  grid-template-columns: auto 1fr;
}.rf-booking .btn--back{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 12px;
  background: #fff;
  color: var(--ink);
  font-size: 14px;
  font-weight: 580;
  box-shadow: inset 0 0 0 1.5px var(--line);
}.rf-booking .btn--back:hover{ background: var(--soft); }.rf-booking .btn--back:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}.rf-booking .btn--back__icon{ font-size: 16px; line-height: 1; }.rf-booking .display{
  margin: 18px 0 36px;
  text-align: center;
  font-size: clamp(28px, 4.2vw, 44px);
  font-weight: 650;
  letter-spacing: -0.045em;
  line-height: 1.12;
}.rf-booking .view{ animation: rf-rise 0.38s ease; }@keyframes rf-rise{
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}.rf-booking .btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 20px;
  border-radius: 12px;
  font-weight: 580;
  transition: transform 0.15s ease, background 0.15s ease;
}#repairflow-booking.rf-booking button.btn.btn--primary:not(:disabled):not(.is-disabled){
  background: var(--rf-btn-primary);
  background-color: var(--rf-btn-primary);
  color: var(--rf-btn-primary-text);
}#repairflow-booking.rf-booking button.btn.btn--primary:not(:disabled):not(.is-disabled):hover{
  background: var(--rf-btn-primary-hover);
  background-color: var(--rf-btn-primary-hover);
  color: var(--rf-btn-primary-text);
}#repairflow-booking.rf-booking button.btn.btn--primary:not(:disabled):not(.is-disabled):focus-visible{
  outline: 2px solid var(--rf-btn-primary-hover);
  outline-offset: 2px;
}#repairflow-booking.rf-booking button.btn.btn--primary.is-disabled,
#repairflow-booking.rf-booking button.btn.btn--primary:disabled,
#repairflow-booking.rf-booking button.btn.btn--primary.is-disabled:hover,
#repairflow-booking.rf-booking button.btn.btn--primary:disabled:hover{
  background: #d5dde6;
  background-color: #d5dde6;
  color: #fff;
  opacity: 1;
}.rf-booking .btn--quiet,
.rf-booking .btn--ghost{
  background: transparent;
  color: var(--ink);
  box-shadow: inset 0 0 0 1.5px var(--line);
}.rf-booking .btn--quiet:hover,
.rf-booking .btn--ghost:hover{ background: var(--soft); }.rf-booking .btn:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}.rf-booking .btn--xl{ width: 100%; min-height: 54px; font-size: 17px; }.rf-booking .btn.is-disabled,
.rf-booking .btn:disabled{ pointer-events: none; }.rf-booking .btn--quiet.is-disabled,
.rf-booking .btn--ghost.is-disabled{ opacity: 0.38; }.rf-booking .text-link{
  color: var(--accent-ink);
  font-weight: 500;
  font-size: 14px;
  padding: 8px 0;
}.rf-booking .text-link:hover{ text-decoration: underline; }
.rf-booking .review .text-link:not(.text-link--center){
  min-height: 44px;
  min-width: 44px;
  padding: 12px 10px;
  margin: -8px -6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}.rf-booking /* Device hardware */
.hw{
  position: relative;
  display: block;
  width: 112px;
}.rf-booking .hw--hero{ width: 100px; }.rf-booking .hw--brand{ width: 132px; max-height: 220px; }.rf-booking .hw--model{ width: 96px; max-height: 168px; }.rf-booking .hw--stage{ width: min(124px, 28vw); max-height: 268px; }.rf-booking .hw--review{ width: min(140px, 40vw); max-height: 280px; }.rf-booking .hw--thumb{ width: 24px; }.rf-booking .hw--iphone{ aspect-ratio: 9 / 19.4; }.rf-booking .hw--galaxy{ aspect-ratio: 9 / 19.15; }.rf-booking .hw--pixel{ aspect-ratio: 9 / 19.55; }.rf-booking .hw--ipad{ aspect-ratio: 10 / 14.1; }.rf-booking .hw--tab{ aspect-ratio: 10 / 15.3; }.rf-booking .hw__shadow{
  position: absolute;
  inset: 12% 8% -6%;
  background: radial-gradient(closest-side, rgba(17, 24, 39, 0.18), transparent 72%);
  filter: blur(6px);
}.rf-booking .hw--thumb .hw__shadow{ display: none; }.rf-booking .hw__unit{
  position: relative;
  width: 100%;
  height: 100%;
}.rf-booking .hw__edge{ display: none; }.rf-booking .hw--ipad .hw__face,
.rf-booking .hw--tab .hw__face{ border-radius: 8% / 6%; }.rf-booking .hw--galaxy .hw__face{ border-radius: 15% / 7.5%; }.rf-booking .hw__face{
  position: absolute;
  inset: 0;
  border-radius: 18% / 9%;
  background: linear-gradient(180deg, var(--shell-2), var(--shell));
  box-shadow: var(--shadow);
  padding: 5.5%;
}.rf-booking .hw--model .hw__face,
.rf-booking .hw--thumb .hw__face{ box-shadow: 0 10px 24px rgba(17, 24, 39, 0.1); }.rf-booking .hw__glass{
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: #0b0d10;
  padding: 3.6% 4.4%;
}.rf-booking .hw__lcd{
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 14% / 7%;
  overflow: hidden;
}.rf-booking .hw--ipad .hw__lcd,
.rf-booking .hw--tab .hw__lcd{ border-radius: 4% / 3%; }.rf-booking .hw__wp{ position: absolute; inset: 0; }.rf-booking .hw__wp--iphone{
  background:
    radial-gradient(120% 80% at 20% 10%, #7dd3fc 0%, transparent 42%),
    radial-gradient(90% 70% at 90% 90%, #fb923c 0%, transparent 46%),
    linear-gradient(165deg, #0f172a, #1d4ed8 55%, #0ea5e9);
}.rf-booking .hw__wp--galaxy{
  background:
    radial-gradient(90% 70% at 80% 0%, #67e8f9 0%, transparent 50%),
    radial-gradient(80% 60% at 10% 100%, #38bdf8 0%, transparent 50%),
    linear-gradient(160deg, #0c4a6e, #0369a1 55%, #0ea5e9);
}.rf-booking .hw__wp--pixel{
  background:
    radial-gradient(circle at 30% 30%, #fdba74 0 18%, transparent 19%),
    radial-gradient(circle at 72% 62%, #7dd3fc 0 22%, transparent 23%),
    linear-gradient(180deg, #fff7ed, #e0f2fe);
}.rf-booking .hw__wp--ipad{
  background:
    radial-gradient(80% 60% at 50% 0%, #93c5fd, transparent 60%),
    linear-gradient(180deg, #eff6ff, #dbeafe);
}.rf-booking .hw__wp--tab{
  background:
    radial-gradient(70% 50% at 80% 20%, #5eead4, transparent 60%),
    linear-gradient(180deg, #ecfeff, #cffafe);
}.rf-booking .hw__time{
  position: absolute;
  top: 7.5%;
  left: 0;
  right: 0;
  text-align: center;
  color: #fff;
  font-size: 10px;
  font-weight: 580;
  letter-spacing: 0.02em;
  opacity: 0.9;
}.rf-booking .hw--model .hw__time,
.rf-booking .hw--thumb .hw__time{ display: none; }.rf-booking .hw--ipad .hw__time,
.rf-booking .hw--tab .hw__time{ display: none; }.rf-booking .hw__island{
  position: absolute;
  top: 4.8%;
  left: 50%;
  width: 36%;
  height: 5.4%;
  transform: translateX(-50%);
  background: #050608;
  border-radius: 999px;
}.rf-booking .hw__hole{
  position: absolute;
  top: 5.2%;
  left: 50%;
  width: 5.6%;
  aspect-ratio: 1;
  transform: translateX(-50%);
  background: #050608;
  border-radius: 50%;
  box-shadow: 0 0 0 1.5px rgba(255,255,255,0.12);
}.rf-booking .hw__crack{
  position: absolute;
  inset: 0;
  background:
    linear-gradient(122deg, transparent 49.2%, rgba(255,255,255,0.7) 49.6%, transparent 50%),
    linear-gradient(78deg, transparent 41%, rgba(255,255,255,0.45) 41.4%, transparent 42%);
  pointer-events: none;
}.rf-booking .type-card__visual{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 240px;
  border-radius: 16px;
  overflow: hidden;
  background: transparent;
}.rf-booking .type-card__visual img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}.rf-booking .cluster{
  position: relative;
  height: 248px;
  width: 248px;
  margin: 0;
}.rf-booking .cluster--phones .hw--hero{ width: 98px; }.rf-booking .cluster--tablets .hw--hero{ width: 160px; }.rf-booking .cluster .hw{ position: absolute; left: 50%; top: 50%; }.rf-booking .cluster__a{ transform: translate(-92%, -54%) rotate(-14deg); z-index: 2; }.rf-booking .cluster__b{ transform: translate(-18%, -48%) rotate(10deg); z-index: 3; }.rf-booking .cluster__c{ transform: translate(-52%, -42%) rotate(2deg); z-index: 1; opacity: 0.95; }.rf-booking .cluster--phones .cluster__c{ display: none !important; }.rf-booking .cluster--tablets .cluster__a{ transform: translate(-88%, -52%) rotate(-8deg); }.rf-booking .cluster--tablets .cluster__b{ transform: translate(-12%, -50%) rotate(9deg); }.rf-booking .type-grid,
.rf-booking .mfr-grid,
.rf-booking .pick-grid{
  display: grid;
  gap: 28px 28px;
  justify-content: center;
}.rf-booking .type-grid{ grid-template-columns: repeat(2, minmax(240px, 420px)); }.rf-booking .mfr-grid--4{ grid-template-columns: repeat(4, minmax(140px, 220px)); }.rf-booking .mfr-grid--3{ grid-template-columns: repeat(3, minmax(160px, 240px)); }.rf-booking .mfr-grid--2{ grid-template-columns: repeat(2, minmax(180px, 280px)); }.rf-booking .mfr-grid--1{ grid-template-columns: minmax(180px, 280px); }.rf-booking .pick-grid{ grid-template-columns: repeat(2, minmax(240px, 380px)); margin-top: 8px; }.rf-booking .pick-grid--3{ grid-template-columns: repeat(3, minmax(200px, 1fr)); gap: 16px; }.rf-booking .type-card,
.rf-booking .mfr-card,
.rf-booking .pick{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 18px 12px 8px;
  border-radius: 20px;
  transition: background 0.18s ease, transform 0.18s ease;
}.rf-booking .type-card:hover,
.rf-booking .mfr-card:hover,
.rf-booking .pick:hover{
  background: var(--soft);
  transform: translateY(-2px);
}.rf-booking .type-card__label,
.rf-booking .mfr-card__name,
.rf-booking .pick__title{
  font-weight: 650;
  font-size: 22px;
  letter-spacing: -0.03em;
}.rf-booking .mfr-grid--brands{
  width: 100%;
  max-width: 880px;
  margin-inline: auto;
  gap: 28px 36px;
  align-items: start;
}.rf-booking .mfr-grid--brands.mfr-grid--3{
  grid-template-columns: repeat(3, minmax(220px, 1fr));
}.rf-booking .mfr-grid--brands.mfr-grid--2{
  grid-template-columns: repeat(2, minmax(220px, 1fr));
}.rf-booking .mfr-grid--brands.mfr-grid--4{
  grid-template-columns: repeat(4, minmax(200px, 1fr));
}.rf-booking .mfr-card--brand{
  gap: 12px;
  padding: 8px 0 10px;
  width: 100%;
}.rf-booking .mfr-card--brand .mfr-card__art{
  width: min(220px, 100%);
  height: auto;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  overflow: hidden;
  background: transparent;
  line-height: 0;
  font-size: 0;
}.rf-booking .mfr-card--brand .mfr-card__art .hw--photo,
.rf-booking .mfr-card--brand .mfr-card__art .hw--brand.hw--photo{
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  aspect-ratio: auto;
}.rf-booking .mfr-card--brand .mfr-card__art img{
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: contain;
  object-position: center;
  display: block;
}.rf-booking .mfr-card--brand .mfr-card__art .hw--brand:not(.hw--photo){
  width: auto;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  margin: 0 auto;
}.rf-booking .mfr-grid--families{
  width: 100%;
  max-width: 1120px;
  margin-inline: auto;
  gap: 20px 20px;
  align-items: start;
}.rf-booking .mfr-grid--families.mfr-grid--4{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}.rf-booking .mfr-grid--families.mfr-grid--3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}.rf-booking .mfr-grid--families.mfr-grid--2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}.rf-booking .mfr-card--family{
  gap: 12px;
  width: max-content;
  max-width: 100%;
  justify-self: center;
  padding: 14px 16px 14px;
  border-radius: 12px;
  border: 1.5px solid transparent;
  background: transparent;
  box-shadow: none;
  text-align: center;
  transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.rf-booking .mfr-card--family:hover{
  background: var(--accent-soft);
  border-color: rgba(28, 147, 237, 0.38);
  box-shadow: 0 8px 18px rgba(28, 147, 237, 0.12);
  transform: translateY(-2px);
}
.rf-booking .mfr-card--family:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
.rf-booking .mfr-card--family.is-selected{
  background: var(--accent-soft);
  border-color: #1c93ed;
  box-shadow: 0 8px 18px rgba(28, 147, 237, 0.16);
  transform: none;
}
.rf-booking .mfr-card--family .mfr-card__name{
  max-width: 11.5em;
  line-height: 1.25;
}.rf-booking .mfr-card--family .mfr-card__art{
  width: 200px;
  height: 200px;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  overflow: hidden;
  background: transparent;
  line-height: 0;
  font-size: 0;
}.rf-booking .mfr-card--family .mfr-card__art .hw--photo,
.rf-booking .mfr-card--family .mfr-card__art .hw--brand.hw--photo{
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  aspect-ratio: auto;
}.rf-booking .mfr-card--family .mfr-card__art img{
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: contain;
  object-position: center;
  display: block;
}.rf-booking .mfr-card--family .mfr-card__art .hw--brand:not(.hw--photo){
  width: auto;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  margin: 0 auto;
}.rf-booking .type-card__hint,
.rf-booking .pick__hint{
  color: var(--muted);
  font-size: 15px;
  line-height: 1.45;
  max-width: 28ch;
  text-align: center;
}.rf-booking .pick{ padding: 28px 22px 28px; text-align: center; box-shadow: inset 0 0 0 1px var(--line); }.rf-booking .pick:hover{ box-shadow: inset 0 0 0 1.5px var(--accent); }.rf-booking .pick.is-on{ box-shadow: inset 0 0 0 2px var(--accent); background: var(--accent-soft); }.rf-booking .pick__icon{ color: var(--accent-ink); width: 48px; height: 48px; }.rf-booking .pick__icon svg{ width: 48px; height: 48px; }.rf-booking .pick__kicker{
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-ink);
  font-weight: 580;
}.rf-booking .pick__title{ font-size: 18px; max-width: 24ch; line-height: 1.35; }.rf-booking .model-stage{ width: 100%; min-width: 0; }.rf-booking .model-stage__head{
  text-align: left;
  margin: 4px 0 20px;
}.rf-booking .model-stage__series{
  margin: 0 0 6px;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 580;
}.rf-booking .model-stage__title{
  margin: 0;
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 650;
  letter-spacing: -0.045em;
  line-height: 1.12;
}.rf-booking .model-stage__count{
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 14px;
}.rf-booking .model-search{ margin: 0 0 18px; }.rf-booking .model-search__label{
  display: block;
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 580;
}.rf-booking .model-search__input{
  width: 100%;
  min-height: 48px;
  border: 0;
  background: var(--soft);
  border-radius: 12px;
  padding: 12px 16px;
  outline: none;
  box-shadow: inset 0 0 0 1px var(--line);
}.rf-booking .model-search__input:focus{ box-shadow: inset 0 0 0 1.5px var(--accent); }.rf-booking .model-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}.rf-booking .model-pick{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  min-height: 148px;
  height: 100%;
  padding: 16px 16px 14px;
  text-align: left;
  background: #fff;
  border-radius: 16px;
  box-shadow: inset 0 0 0 1px var(--line), 0 8px 20px rgba(17, 24, 39, 0.04);
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}.rf-booking .model-pick:hover{
  transform: translateY(-2px);
  box-shadow: inset 0 0 0 1.5px #b9d9f3, 0 10px 22px rgba(17, 24, 39, 0.08);
}.rf-booking .model-pick.is-selected{
  background: #f5faff;
  box-shadow: inset 0 0 0 1.5px var(--accent), 0 10px 22px rgba(28, 147, 237, 0.12);
}.rf-booking .model-pick.is-selected::after{
  content: "";
  position: absolute;
  top: 10px;
  right: 10px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' d='M3.5 8.2 6.6 11.2 12.5 4.8'/%3E%3C/svg%3E") center / 12px no-repeat;
}.rf-booking .model-pick__kicker{
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 580;
}.rf-booking .model-pick__name{
  display: block;
  margin-right: 22px;
  font-size: clamp(17px, 2.1vw, 22px);
  font-weight: 650;
  letter-spacing: -0.035em;
  line-height: 1.2;
  overflow-wrap: anywhere;
}.rf-booking .model-pick__swatches{
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 14px;
  margin-top: auto;
}.rf-booking .model-pick__dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(17, 24, 39, 0.12);
  flex: 0 0 auto;
}.rf-booking .model-pick__more{
  color: var(--muted);
  font-size: 12px;
  font-weight: 580;
}.rf-booking .model-pick__go{
  color: var(--accent-ink);
  font-size: 13px;
  font-weight: 580;
}.rf-booking .search{ display: flex; justify-content: center; margin: -8px 0 28px; }.rf-booking .search input{
  width: min(420px, 100%);
  border: 0;
  background: var(--soft);
  border-radius: 12px;
  padding: 14px 16px;
  outline: none;
}.rf-booking .search input:focus{ box-shadow: 0 0 0 2px var(--accent); }.rf-booking .ctx{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
  padding: 8px 0 4px;
}.rf-booking .ctx__device,
.rf-booking .sticky__info{
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}.rf-booking .ctx__name,
.rf-booking .sticky__name{ margin: 0; font-weight: 650; letter-spacing: -0.03em; }.rf-booking .ctx__meta,
.rf-booking .sticky__meta{ margin: 2px 0 0; color: var(--muted); font-size: 13px; }.rf-booking .ctx__total{ display: flex; align-items: center; gap: 16px; }.rf-booking .ctx__price{ font-size: 22px; font-weight: 650; letter-spacing: -0.04em; }.rf-booking .repair-layout{
  display: grid;
  grid-template-columns: minmax(148px, 0.55fr) minmax(0, 1.45fr);
  gap: 28px;
  align-items: start;
  padding-top: 12px;
}.rf-booking .stage{ position: sticky; top: 18px; }.rf-booking .stage__device{ display: flex; justify-content: center; margin-bottom: 14px; }.rf-booking .stage__kicker{
  margin: 0;
  color: var(--accent-ink);
  font-size: 13px;
  font-weight: 580;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}.rf-booking .stage__title,
.rf-booking .review__device h2{
  margin: 6px 0 4px;
  font-size: 28px;
  letter-spacing: -0.045em;
  font-weight: 650;
}.rf-booking .stage__color,
.rf-booking .stage__prompt{ color: var(--muted); margin: 0 0 18px; line-height: 1.5; }.rf-booking .catalogue__title{
  margin: 8px 0 16px;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 580;
}.rf-booking .repair-list{ display: flex; flex-direction: column; gap: 10px; }.rf-booking .repair{
  position: relative;
  border-radius: 16px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--line);
  transition: box-shadow 0.18s ease, background 0.18s ease;
}.rf-booking .repair.is-selected{ box-shadow: inset 0 0 0 1.5px var(--accent); background: #f5faff; }.rf-booking .repair.is-active{ box-shadow: inset 0 0 0 2px var(--accent); background: #eef6fd; }.rf-booking .repair__price{ font-variant-numeric: tabular-nums; }.rf-booking .repair__hit{
  width: 100%;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px 44px 14px 14px;
  text-align: left;
  min-height: 44px;
}.rf-booking .repair__copy{ min-width: 0; }.rf-booking .repair__name{ overflow-wrap: anywhere; }.rf-booking .repair__icon{
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: var(--soft);
  color: var(--ink);
  display: grid;
  place-items: center;
}.rf-booking .repair__icon svg{ width: 34px; height: 34px; }.rf-booking .repair__name{ display: block; font-weight: 580; letter-spacing: -0.02em; }.rf-booking .repair__meta{ display: block; color: var(--muted); font-size: 13px; margin-top: 3px; }.rf-booking .repair__price{ font-weight: 650; font-size: 20px; letter-spacing: -0.03em; text-align: right; }.rf-booking .was{
  display: block;
  color: var(--was);
  font-size: 13px;
  font-weight: 500;
  text-decoration: line-through;
}.rf-booking .repair__remove{
  position: absolute;
  top: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: var(--muted);
  font-size: 20px;
  line-height: 1;
}.rf-booking .repair__remove:hover{ background: var(--soft); color: var(--ink); }.rf-booking .repair__check{
  position: absolute;
  left: auto;
  right: 14px;
  bottom: 12px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
}.rf-booking .config{
  animation: rf-rise 0.28s ease;
  margin-bottom: 28px;
  padding-bottom: 8px;
}.rf-booking .config.config--stable{
  animation: none;
}.rf-booking .config__head h2{
  margin: 0 0 4px;
  font-size: 26px;
  letter-spacing: -0.04em;
}.rf-booking .config__price{ margin: 0 0 10px; font-size: 32px; font-weight: 650; letter-spacing: -0.045em; }.rf-booking .config__price .was{ display: inline; margin-right: 8px; font-size: 18px; }.rf-booking .config__blurb,
.rf-booking .config__done{ color: var(--muted); line-height: 1.5; margin: 0 0 14px; }.rf-booking .config-wait{ display: flex; align-items: center; gap: 10px; color: var(--muted); line-height: 1.5; margin: 8px 0 14px; min-height: 28px; }.rf-booking .config-wait__spin{ width: 16px; height: 16px; flex: 0 0 16px; border-radius: 50%; border: 2px solid var(--accent-soft); border-top-color: var(--accent); animation: rf-spin 0.7s linear infinite; }.rf-booking .facts{ display: flex; gap: 16px; color: var(--accent-ink); font-weight: 500; font-size: 14px; margin: 0 0 22px; }.rf-booking .ask{ margin-top: 8px; }.rf-booking .ask.is-answered{
  margin-top: 10px;
  padding: 10px 12px 12px;
  border-radius: 14px;
  background: #f7fafc;
  box-shadow: inset 0 0 0 1px #edf1f5;
}.rf-booking .ask.is-answered .ask__prompt{
  color: var(--muted);
  font-weight: 500;
  font-size: 16px;
  margin-bottom: 10px;
}.rf-booking .ask.is-answered .choice{
  box-shadow: inset 0 0 0 1px var(--line);
  background: #fff;
}.rf-booking .ask.is-answered .choice.is-on{
  box-shadow: inset 0 0 0 1.5px rgba(28, 147, 237, 0.55);
  background: #f5faff;
}.rf-booking .ask-summary{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #f7fafc;
  box-shadow: inset 0 0 0 1px #edf1f5;
}.rf-booking .ask-summary__copy{ min-width: 0; }.rf-booking .ask-summary__label{
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 580;
}.rf-booking .ask-summary__value{
  margin: 3px 0 0;
  font-weight: 580;
  font-size: 15px;
  overflow-wrap: anywhere;
}.rf-booking .ask-summary__edit{
  flex: 0 0 auto;
  min-height: 44px;
  min-width: 44px;
  padding: 10px 8px;
  color: var(--accent-ink);
  font-weight: 500;
  font-size: 14px;
}.rf-booking .ask-summary__edit:hover{ text-decoration: underline; }.rf-booking .ask-summary__edit:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}.rf-booking .ask__prompt{
  font-size: 20px;
  font-weight: 580;
  letter-spacing: -0.03em;
  margin: 0 0 14px;
}.rf-booking .swatches,
.rf-booking .choices{ display: flex; flex-wrap: wrap; gap: 10px; }.rf-booking .swatch,
.rf-booking .choice{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 16px;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1.5px var(--line);
  font-weight: 500;
}.rf-booking .swatch.is-on,
.rf-booking .choice.is-on{
  box-shadow: inset 0 0 0 2px var(--accent);
  background: var(--accent-soft);
}.rf-booking .choice{ min-width: 112px; justify-content: center; font-size: 16px; }.rf-booking .swatch__dot{
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--swatch);
  box-shadow: inset 0 0 0 1px rgba(17, 24, 39, 0.15);
}.rf-booking .swatch__dot--other{
  background: conic-gradient(#1b3a55, #c8ced6, #9ec9b6, #1a1c1e);
}.rf-booking .swatch__dot--unsure{
  background: repeating-linear-gradient(-45deg, #d5dde6, #d5dde6 3px, #fff 3px, #fff 6px);
}.rf-booking .offer{
  margin-top: 18px;
  padding: 20px 20px 18px;
  border-radius: 16px;
  background: var(--soft);
}.rf-booking .grade-picker{
  margin-top: 8px;
}.rf-booking .grade-list{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}.rf-booking .grade{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 52px;
  padding: 12px 14px;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(17, 24, 39, 0.12);
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}.rf-booking .grade:hover{
  box-shadow: inset 0 0 0 1.5px var(--accent);
}.rf-booking .grade:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}.rf-booking .grade.is-selected{
  background: #f5faff;
  box-shadow: inset 0 0 0 2px var(--accent);
}.rf-booking .grade__copy{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}.rf-booking .grade__name{
  font-weight: 580;
  line-height: 1.3;
}.rf-booking .grade__state{
  color: var(--accent-ink);
  font-size: 12px;
  font-weight: 560;
}.rf-booking .grade__price{
  flex: 0 0 auto;
  font-variant-numeric: tabular-nums;
  font-weight: 620;
  white-space: nowrap;
}.rf-booking .offer__eyebrow{
  margin: 0 0 6px;
  color: var(--accent-ink);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 580;
}.rf-booking .offer h3{ margin: 0 0 8px; font-size: 22px; letter-spacing: -0.03em; }.rf-booking .offer__target{ margin: 0 0 8px; font-weight: 580; }.rf-booking .offer__note{ margin: 0 0 12px; color: var(--muted); line-height: 1.5; }.rf-booking .offer__price{ display: flex; align-items: baseline; gap: 12px; margin: 0 0 16px; }.rf-booking .offer__price .was{ display: inline; font-size: 18px; }.rf-booking .offer__was{
  margin: 0;
  color: var(--was);
  font-size: 14px;
  text-decoration: line-through;
}.rf-booking .offer__now{
  margin: 0;
  font-size: 28px;
  font-weight: 650;
  letter-spacing: -0.03em;
}.rf-booking .offer__actions{ display: flex; flex-wrap: wrap; gap: 10px; }.rf-booking .offer__actions .btn{ min-height: 48px; }.rf-booking .offer__actions--must{
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}.rf-booking .offer__actions--must .btn{ width: 100%; flex: 1 1 auto; }.rf-booking .offer__decline{
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 40px;
  padding: 8px 2px;
  border: 0;
  background: none;
  box-shadow: none;
  color: var(--muted);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}.rf-booking .offer__decline:hover{ color: var(--ink); text-decoration: underline; }.rf-booking .offer__decline[aria-pressed="true"]{ color: var(--ink); }.rf-booking .offer__decline:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 6px;
}.rf-booking .offer--must{
  box-shadow: inset 0 0 0 1.5px #d5dee8;
}.rf-booking .must__row{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 16px;
  font-weight: 580;
}.rf-booking .must__row strong{ font-size: 22px; letter-spacing: -0.03em; }.rf-booking .offer__block{
  margin: 14px 0 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fff8e6;
  box-shadow: inset 0 0 0 1px #ead9a0;
  color: var(--ink);
  font-weight: 500;
  line-height: 1.5;
}.rf-booking .store-line{ text-align: center; color: var(--muted); margin: 28px 0 0; }.rf-booking .stage-cta{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  margin: 28px auto 0;
  padding: 0 0 calc(28px + var(--safe-b));
}.rf-booking .stage-cta__sum{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 15px;
  font-weight: 580;
  letter-spacing: -0.02em;
}.rf-booking .stage-cta__sum strong{
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -0.03em;
}.rf-booking .btn--stage-cta{
  width: 100%;
  max-width: 340px;
  min-height: 48px;
  padding: 0 20px;
  align-self: center;
}.rf-booking .reassure{
  max-width: 560px;
  margin: 28px auto 0;
  padding: 18px 20px;
  background: var(--soft);
  border-radius: 16px;
  text-align: center;
  color: var(--muted);
  line-height: 1.5;
}.rf-booking .reassure p{ margin: 0; }.rf-booking .chosen{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  max-width: 560px;
  margin: 28px auto 8px;
  padding: 18px 20px;
  background: var(--soft);
  border-radius: 16px;
}.rf-booking .chosen__day{ margin: 0; font-size: 18px; font-weight: 650; letter-spacing: -0.03em; }.rf-booking .chosen__time{ margin: 4px 0 0; font-size: 28px; font-weight: 650; letter-spacing: -0.04em; color: var(--accent-ink); }.rf-booking .peek{ display: none; }.rf-booking .peek__sum{ margin: 4px 0 0; font-size: 13px; font-weight: 580; }.rf-booking .text-link--center{ display: block; text-align: center; width: 100%; color: var(--muted); }.rf-booking .text-link--muted{ color: var(--muted); font-weight: 500; }.rf-booking .store-card{
  max-width: 420px;
  margin: 0 auto 28px;
  text-align: center;
}.rf-booking .store-card__name{ font-weight: 650; font-size: 20px; margin: 0 0 4px; }.rf-booking .store-card p{ margin: 0; color: var(--muted); }.rf-booking .dates{
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 4px 2px 18px;
  scrollbar-width: none;
}.rf-booking .dates::-webkit-scrollbar{ display: none; }.rf-booking .dates-row{
  display: flex;
  align-items: stretch;
  gap: 8px;
  max-width: 720px;
  margin: 0 auto;
}.rf-booking .dates-viewport{
  position: relative;
  flex: 1;
  min-width: 0;
}.rf-booking .dates-viewport::before,
.rf-booking .dates-viewport::after{
  content: "";
  position: absolute;
  top: 0;
  bottom: 18px;
  width: 28px;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.15s ease;
}.rf-booking .dates-viewport::before{
  left: 0;
  background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,0) 100%);
}.rf-booking .dates-viewport::after{
  right: 0;
  background: linear-gradient(270deg, #fff 0%, rgba(255,255,255,0) 100%);
}.rf-booking .dates-viewport.has-more-left::before,
.rf-booking .dates-viewport.has-more-right::after{ opacity: 1; }.rf-booking .dates-nav{
  flex: 0 0 40px;
  width: 40px;
  min-height: 44px;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1.5px var(--line);
  font-size: 22px;
  line-height: 1;
  color: var(--accent-ink);
  background: #fff;
}.rf-booking .dates-nav:hover{ background: var(--soft); }.rf-booking .dates-nav:focus-visible,
.rf-booking .date:focus-visible,
.rf-booking .time:focus-visible,
.rf-booking .cal__day:focus-visible,
.rf-booking .cal__shift:focus-visible,
.rf-booking .cal-trigger:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}.rf-booking .dates-hint{
  display: none;
  margin: -8px 0 12px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}.rf-booking .cal-bar{
  max-width: 420px;
  margin: 0 auto 18px;
}.rf-booking .cal-trigger{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 12px;
  border-radius: 12px;
  color: var(--accent-ink);
  font-weight: 580;
  font-size: 15px;
}.rf-booking .cal-trigger:hover{ background: var(--soft); }.rf-booking .cal-trigger__icon{
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
}.rf-booking .cal-trigger__icon svg{ width: 20px; height: 20px; }.rf-booking .cal{
  margin-top: 10px;
  padding: 14px 12px 12px;
  border-radius: 16px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--line), var(--shadow);
}.rf-booking .cal__nav{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}.rf-booking .cal__title{
  margin: 0;
  font-weight: 650;
  font-size: 16px;
  letter-spacing: -0.03em;
}.rf-booking .cal__shift{
  width: 40px;
  height: 40px;
  border-radius: 10px;
  font-size: 22px;
  color: var(--accent-ink);
}.rf-booking .cal__shift:hover{ background: var(--soft); }.rf-booking .cal__shift:disabled{ opacity: 0.35; }.rf-booking .cal__dow,
.rf-booking .cal__grid{
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
}.rf-booking .cal__dow{
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 580;
  text-align: center;
}.rf-booking .cal__grid{
  font-size: 0;
}.rf-booking .cal__grid > .cal__pad,
.rf-booking .cal__grid > .cal__day{
  min-width: 0;
}.rf-booking .cal__pad{ min-height: 40px; }.rf-booking .cal__day{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 500;
}.rf-booking .cal__day:hover:not(:disabled){ background: var(--soft); }.rf-booking .cal__day.is-on{
  background: var(--accent);
  color: #fff;
  font-weight: 650;
}.rf-booking .cal__day.is-off,
.rf-booking .cal__day:disabled{
  color: #b7c0cb;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}.rf-booking .times-head{
  margin: 0 0 10px;
  font-weight: 580;
  font-size: 15px;
  letter-spacing: -0.02em;
}.rf-booking .date{
  flex: 0 0 78px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 12px 8px;
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px var(--line);
}.rf-booking .date.is-on{
  box-shadow: inset 0 0 0 2.5px var(--accent);
  background: var(--accent-soft);
  color: var(--accent-ink);
}.rf-booking .date.is-on .date__rel,
.rf-booking .date.is-on .date__mon{ color: var(--accent-ink); }.rf-booking .date__rel{ font-size: 12px; color: var(--muted); }.rf-booking .date__num{ font-size: 22px; font-weight: 650; letter-spacing: -0.04em; }.rf-booking .date__mon{ font-size: 12px; color: var(--muted); }.rf-booking .times{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}.rf-booking .time{
  min-height: 48px;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1.5px var(--line);
  font-weight: 500;
}.rf-booking .time.is-on{
  background: var(--accent);
  color: #fff;
  font-weight: 650;
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--accent);
}.rf-booking .continue-row{ display: flex; justify-content: center; margin-top: 28px; }.rf-booking .review{
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 48px;
  align-items: start;
}.rf-booking .review__device{ text-align: center; }.rf-booking .review__device .hw{ margin: 0 auto 18px; }.rf-booking .review__device h2{ font-size: 28px; }.rf-booking .review__device p{ color: var(--muted); margin: 0; }.rf-booking .receipt{
  background: var(--soft);
  border-radius: 20px;
  padding: 22px 22px 8px;
}.rf-booking .receipt__label{
  margin: 0 0 8px;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 580;
}.rf-booking .receipt__section{ padding: 4px 0 10px; }.rf-booking .receipt__section + .receipt__section{
  border-top: 1px solid #e3eaf1;
  padding-top: 14px;
}.rf-booking .receipt__row,
.rf-booking .receipt__total,
.rf-booking .handoff__lines li{
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
}.rf-booking .receipt__row + .receipt__row{ border-top: 1px solid #e3eaf1; }.rf-booking .receipt__row--extra .receipt__name{ font-weight: 500; }.rf-booking .receipt__name{ margin: 0; font-weight: 580; }.rf-booking .receipt__meta{ margin: 4px 0 0; color: var(--muted); font-size: 13px; }.rf-booking .receipt__amt{ text-align: right; font-size: 18px; }.rf-booking .receipt__total{
  border-top: 1px solid #d7e0ea;
  margin-top: 8px;
  font-size: 22px;
  font-weight: 650;
  letter-spacing: -0.03em;
}.rf-booking .receipt__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 8px;
}.rf-booking .review__panel .review-cta{
  display: flex;
  margin-top: 18px;
  margin-left: auto;
  margin-right: auto;
  max-width: 360px;
  width: 100%;
}.rf-booking .handoff{
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
}.rf-booking .handoff__device{ display: flex; justify-content: center; margin-bottom: 12px; }.rf-booking .handoff__kicker{
  color: var(--accent-ink);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 580;
}.rf-booking .handoff h2{ font-size: 32px; letter-spacing: -0.04em; margin: 8px 0 18px; }.rf-booking .handoff__lines{ list-style: none; padding: 0; margin: 0 0 18px; text-align: left; }.rf-booking .handoff__lines li{ border-top: 1px solid var(--line); }.rf-booking .handoff__lines .is-total{ font-weight: 650; font-size: 18px; }.rf-booking .handoff__lines em{ color: var(--accent-ink); font-style: normal; font-size: 12px; margin-left: 6px; }.rf-booking .handoff__note{ color: var(--muted); line-height: 1.55; margin: 0 0 22px; }.rf-booking .load{
  position: fixed;
  inset: 0;
  background: rgba(255,255,255,0.86);
  backdrop-filter: blur(6px);
  display: grid;
  place-content: center;
  gap: 16px;
  text-align: center;
  z-index: 40;
  color: var(--accent-ink);
  font-weight: 500;
}.rf-booking .load__spin{
  width: 42px;
  height: 42px;
  margin: 0 auto;
  border-radius: 50%;
  border: 3px solid var(--accent-soft);
  border-top-color: var(--accent);
  animation: rf-spin 0.7s linear infinite;
}@keyframes rf-spin{ to { transform: rotate(360deg); } }.rf-booking .overlay{
  position: fixed;
  inset: 0;
  background: rgba(17, 24, 39, 0.28);
  display: grid;
  place-items: center;
  z-index: 50;
  padding: 20px;
}.rf-booking .sheet{
  width: min(420px, 100%);
  background: #fff;
  border-radius: 20px;
  padding: 28px 24px 22px;
  box-shadow: var(--shadow);
}.rf-booking .sheet h3{ margin: 0 0 8px; font-size: 22px; letter-spacing: -0.03em; }.rf-booking .sheet p{ margin: 0 0 20px; color: var(--muted); line-height: 1.5; }.rf-booking .sheet__actions{ display: flex; justify-content: flex-end; gap: 10px; }.rf-booking .empty{ text-align: center; color: var(--muted); }@media (max-width: 900px){
  .rf-booking .btn--back { min-height: 44px; }
  .rf-booking .brand--logo img { max-width: 140px; max-height: 40px; }
  .rf-booking,
  .rf-booking .shell {
    min-height: calc(100vh - 7rem);
    min-height: calc(100svh - 7rem);
  }
  .rf-booking .main { width: calc(100% - 28px); padding-bottom: 32px; overflow-x: hidden; }
  .rf-booking .stage-cta {
    margin-top: 22px;
    padding: 0 0 calc(28px + env(safe-area-inset-bottom, 0px));
  }
  .rf-booking .btn--stage-cta {
    max-width: none;
    width: 100%;
    min-height: 48px;
    align-self: stretch;
  }
  .rf-booking .type-grid { gap: 14px; width: 100%; }
  .rf-booking .type-card {
    width: 90%;
    max-width: 420px;
    margin-inline: auto;
    padding: 8px 10px 10px;
    gap: 8px;
  }
  .rf-booking .type-card__hint { margin: 0; line-height: 1.35; }
  .rf-booking .type-grid,
  .rf-booking .mfr-grid--4,
  .rf-booking .mfr-grid--3,
  .rf-booking .mfr-grid--2,
  .rf-booking .pick-grid,
  .rf-booking .pick-grid--3,
  .rf-booking .repair-layout,
  .rf-booking .review {
    grid-template-columns: 1fr;
  }
  .rf-booking .mfr-grid.mfr-grid--brands.mfr-grid--4,
  .rf-booking .mfr-grid.mfr-grid--brands.mfr-grid--3,
  .rf-booking .mfr-grid.mfr-grid--brands.mfr-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 16px;
    max-width: none;
  }
  .rf-booking .mfr-grid.mfr-grid--brands.mfr-grid--3 .mfr-card--brand:last-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc((100% - 16px) / 2);
    max-width: none;
  }
  .rf-booking .mfr-card--brand .mfr-card__art {
    width: min(150px, 100%);
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .rf-booking .mfr-grid.mfr-grid--families.mfr-grid--4,
  .rf-booking .mfr-grid.mfr-grid--families.mfr-grid--3,
  .rf-booking .mfr-grid.mfr-grid--families.mfr-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 16px;
    max-width: none;
  }
  .rf-booking .mfr-grid.mfr-grid--families.mfr-grid--3 .mfr-card--family:last-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: max-content;
    max-width: 100%;
  }
  .rf-booking .mfr-card--family {
    padding: 12px 14px 12px;
  }
  .rf-booking .mfr-card--family .mfr-card__art {
    width: 140px;
    height: 140px;
    aspect-ratio: 1 / 1;
  }
  .rf-booking .model-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .rf-booking .model-pick { min-height: 136px; padding: 14px 12px 12px; }
  .rf-booking .model-pick__name { font-size: 17px; }
  .rf-booking .model-stage__title { font-size: 28px; }
  .rf-booking .times { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rf-booking .type-card__visual { height: 180px; }
  .rf-booking .cluster { height: 180px; width: 180px; }
  .rf-booking .cluster--phones .hw--hero { width: 80px; }
  .rf-booking .cluster--tablets .hw--hero { width: 130px; }
  .rf-booking .stage { display: none; }
  .rf-booking .peek {
    display: block;
    margin: 0 0 12px;
    padding: 10px 12px;
    background: var(--soft);
    border-radius: 14px;
  }
  .rf-booking .peek__label {
    margin: 0 0 8px;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 580;
  }
  .rf-booking .peek__row { display: flex; align-items: center; gap: 12px; }
  .rf-booking .peek__name { margin: 0; font-weight: 650; }
  .rf-booking .peek__meta { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
  .rf-booking .config, .rf-booking .catalogue { text-align: left; }
  .rf-booking .ctx--desktop, .rf-booking .desktop-only { display: none !important; }
  .rf-booking .review__panel .review-cta {
    max-width: none;
    min-height: 48px;
  }
  .rf-booking .repair__hit { min-height: 44px; }
  .rf-booking .repair__icon { width: 40px; height: 40px; }
  .rf-booking .repair__price { font-size: 17px; white-space: nowrap; }
  .rf-booking .chosen {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }
  .rf-booking .chosen .btn { width: 100%; }
  .rf-booking .pick__title { font-size: 17px; max-width: 28ch; }
  .rf-booking .offer__actions .btn { flex: 1 1 calc(50% - 6px); }
  .rf-booking .offer__actions--must .btn { flex: 1 1 auto; width: 100%; }
  .rf-booking .type-card__label { font-size: 24px; }
  .rf-booking .display { margin: 8px 0 14px; }
  .rf-booking .choice { min-width: calc(50% - 6px); }
  .rf-booking .pick { min-height: 0; padding: 16px 16px 14px; gap: 10px; }
  .rf-booking .pick__hint { line-height: 1.35; margin: 0; }
  .rf-booking .config { margin-bottom: 20px; padding-bottom: 4px; }
  .rf-booking .config__price { margin: 0 0 8px; }
  .rf-booking .config__blurb,
  .rf-booking .config__done { margin: 0 0 10px; }
  .rf-booking .facts { margin: 0 0 14px; }
  .rf-booking .ask { margin-top: 6px; }
  .rf-booking .ask__prompt { margin: 0 0 10px; }
  .rf-booking .ask-summary { margin-top: 6px; padding: 8px 10px; }
  .rf-booking .catalogue__title { margin: 6px 0 12px; }
  .rf-booking .repair-list { gap: 8px; }
  .rf-booking .offer { margin-top: 14px; padding: 16px 16px 14px; }
  .rf-booking .grade { min-height: 48px; padding: 10px 12px; }
  .rf-booking .grade__name { font-size: 15px; }
  .rf-booking .grade__price { font-size: 15px; }
  .rf-booking .dates-hint { display: block; }
  .rf-booking .dates-hint[hidden] { display: none; }
  .rf-booking .cal-bar { max-width: none; }
  .rf-booking .cal { max-width: none; }
  .rf-booking .store-card { margin-bottom: 18px; }
  .rf-booking .times-head { margin-bottom: 8px; }
}@media (max-width: 1100px) and (min-width: 901px){
  .rf-booking .model-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rf-booking .mfr-card--brand .mfr-card__art {
    width: min(200px, 100%);
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .rf-booking .mfr-grid--brands.mfr-grid--3 {
    grid-template-columns: repeat(3, minmax(200px, 1fr));
  }
  .rf-booking .mfr-card--family .mfr-card__art {
    width: 185px;
    height: 185px;
    aspect-ratio: 1 / 1;
  }
}@media (max-width: 900px) and (min-width: 600px){
  .rf-booking .model-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rf-booking .mfr-card--brand .mfr-card__art {
    width: min(180px, 100%);
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .rf-booking .mfr-card--family .mfr-card__art {
    width: 168px;
    height: 168px;
    aspect-ratio: 1 / 1;
  }
}@media (max-width: 339px){
  .rf-booking .model-grid { grid-template-columns: 1fr; }
}@media (min-width: 901px){
  .rf-booking .type-grid { padding-top: 12px; }
  .rf-booking .shell--shop .view { width: 100%; }
}@media (prefers-reduced-motion: reduce){
  .rf-booking .view, .rf-booking .config, .rf-booking .load__spin { animation: none; }
}

/* --------------------------------------------------------------------------
   Embedded homepage display mode — [repairflow_booking display="embedded"]
   Full/default [repairflow_booking] is unchanged. All rules stay under
   .rf-booking--embedded so they cannot leak into normal mode.
   Desktop/tablet: one contained ~720px scroll viewport (the root).
   Mobile ≤767px: contained ~72svh window (min 560px, max 720px) — same single scroll owner.
   -------------------------------------------------------------------------- */
.rf-booking.rf-booking--embedded {
  min-height: 0;
  height: 720px;
  max-height: 720px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: var(--bg);
  /* Outer lift + soft inset bottom cue (viewport edge, not content). */
  box-shadow:
    0 10px 28px rgba(17, 24, 39, 0.06),
    inset 0 -16px 18px -14px rgba(17, 24, 39, 0.07);
  scrollbar-width: thin;
  scrollbar-color: rgba(92, 103, 120, 0.35) transparent;
}
.rf-booking.rf-booking--embedded .shell {
  min-height: 0;
}
.rf-booking.rf-booking--embedded::-webkit-scrollbar {
  width: 8px;
}
.rf-booking.rf-booking--embedded::-webkit-scrollbar-thumb {
  background: rgba(92, 103, 120, 0.28);
  border-radius: 8px;
}
.rf-booking.rf-booking--embedded::-webkit-scrollbar-track {
  background: transparent;
}

/* Defeat full-page viewport min-heights from the 900px mobile shell rules. */
@media (max-width: 900px) {
  .rf-booking.rf-booking--embedded,
  .rf-booking.rf-booking--embedded .shell {
    min-height: 0;
  }
}

/* Phone widths: contained scroll window (experiment). Same root scroll owner. */
@media (max-width: 767px) {
  .rf-booking.rf-booking--embedded {
    height: 72vh;
    height: 72svh;
    min-height: 560px;
    max-height: 720px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    border-radius: 16px;
    border: 1px solid var(--line);
    box-shadow:
      0 8px 22px rgba(17, 24, 39, 0.06),
      inset 0 -16px 18px -14px rgba(17, 24, 39, 0.07);
  }
  .rf-booking.rf-booking--embedded .shell {
    min-height: 0;
  }
}
