/* ATOZ Booking Form — scoped styles (pixel-perfect from source HTML) */

.atozbf-booking-form{
  --atozbf-copper-tint:color-mix(in srgb,var(--atozbf-copper,#1565C0) 8%,transparent);
  --atozbf-red-tint:color-mix(in srgb,var(--atozbf-red,#CC1414) 8%,transparent);
  box-sizing:border-box;
  background-color:var(--atozbf-cream,#F0F4F8);
  background-image:
    radial-gradient(circle at 14% 0%,color-mix(in srgb,var(--atozbf-copper,#1565C0) 10%,transparent),transparent 42%),
    radial-gradient(circle at 100% 18%,rgba(23,20,15,.05),transparent 38%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='1' cy='1' r='1' fill='%231A1712' fill-opacity='0.035'/%3E%3C/svg%3E");
  color:var(--atozbf-ink,#14283D);
  font-family:var(--atozbf-font-body,'Plus Jakarta Sans',sans-serif);
  -webkit-font-smoothing:antialiased;
  padding:var(--atozbf-form-padding-top,48px) var(--atozbf-form-padding-x,16px) var(--atozbf-form-padding-bottom,80px);
  min-height:var(--atozbf-form-min-height,100vh);
}
.atozbf-booking-form *,.atozbf-booking-form *::before,.atozbf-booking-form *::after{box-sizing:border-box;}
.atozbf-wrap{max-width:600px;margin:0 auto;}

/* header */
.atozbf-brand{display:flex;align-items:center;justify-content:space-between;gap:11px;margin-bottom:30px;}
.atozbf-brand-id{display:flex;align-items:center;gap:11px;}
.atozbf-brand-mark{
  width:34px;height:34px;border-radius:50%;background:var(--atozbf-black);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 4px 10px rgba(23,20,15,.25);overflow:hidden;
}
.atozbf-brand-mark svg{width:17px;height:17px;}
.atozbf-brand-logo{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.atozbf-brand-name{font-family:var(--atozbf-font-heading);font-style:italic;font-weight:600;font-size:19px;letter-spacing:.2px;}
.atozbf-brand-sub{font-size:10.5px;color:var(--atozbf-ink-soft);letter-spacing:.08em;text-transform:uppercase;margin-top:1px;}
.atozbf-brand-tag{font-size:10.5px;color:var(--atozbf-ink-faint);letter-spacing:.1em;text-transform:uppercase;text-align:right;line-height:1.6;}
.atozbf-brand-tag strong{display:block;color:var(--atozbf-copper-deep);font-family:var(--atozbf-font-heading);font-style:italic;font-size:14px;letter-spacing:.02em;text-transform:none;}

/* progress rail */
.atozbf-rail-wrap{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.atozbf-rail-label{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--atozbf-ink-soft);}
.atozbf-rail-label b{color:var(--atozbf-ink);font-weight:700;}
.atozbf-rail{position:relative;height:3px;background:var(--atozbf-line);border-radius:3px;margin-bottom:34px;overflow:hidden;}
.atozbf-rail-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--atozbf-copper-deep),var(--atozbf-progress,var(--atozbf-copper)));width:20%;border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);}

/* card stack */
.atozbf-stage{position:relative;margin-bottom:22px;}
.atozbf-card{
  background:var(--atozbf-paper);
  border-radius:var(--atozbf-radius);
  padding:40px 36px;
  position:relative;
  z-index:3;
  box-shadow:0 30px 60px -30px rgba(23,20,15,.28), 0 3px 8px rgba(23,20,15,.05);
  overflow:hidden;
}
.atozbf-card::before{
  content:'';position:absolute;top:0;left:0;width:100%;height:5px;
  background:linear-gradient(90deg,var(--atozbf-copper-deep),var(--atozbf-copper) 40%,var(--atozbf-line) 100%);
}
.atozbf-card::after{
  content:'';position:absolute;top:22px;right:-46px;width:130px;height:26px;
  background:var(--atozbf-copper);transform:rotate(45deg);opacity:.08;
}
.atozbf-stage::before,.atozbf-stage::after{
  content:'';position:absolute;left:5%;right:5%;top:0;bottom:0;
  background:var(--atozbf-paper);border-radius:var(--atozbf-radius);
  box-shadow:0 14px 30px -20px rgba(23,20,15,.16);
}
.atozbf-stage::before{transform:rotate(-1.6deg) translateY(6px);z-index:2;opacity:.85;}
.atozbf-stage::after{transform:rotate(1.3deg) translateY(10px);z-index:1;opacity:.55;}

.atozbf-step{display:none;}
.atozbf-step.atozbf-active{display:block;animation:atozbf-rise .35s ease;}
@keyframes atozbf-rise{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

.atozbf-eyebrow{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:10px;
  font-family:var(--atozbf-font-body);font-size:10.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--atozbf-copper-deep);
}
.atozbf-eyebrow::before{content:'';width:14px;height:1.5px;background:var(--atozbf-copper-deep);}
.atozbf-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;}
.atozbf-card-head-text{flex:1;}
.atozbf-step-title{
  font-family:var(--atozbf-font-heading);font-style:italic;font-weight:700;
  font-size:clamp(28px,5.5vw,38px);line-height:1.06;margin:0;color:var(--atozbf-ink);
}
.atozbf-step-frac{
  font-family:var(--atozbf-font-heading);font-style:italic;white-space:nowrap;padding-top:6px;
}
.atozbf-step-frac .atozbf-num{font-size:22px;font-weight:600;color:var(--atozbf-ink);}
.atozbf-step-frac .atozbf-den{font-size:14px;color:var(--atozbf-ink-faint);}
.atozbf-title-rule{width:52px;height:2px;background:var(--atozbf-line);margin:16px 0 24px;border-radius:2px;position:relative;}
.atozbf-title-rule::after{content:'';position:absolute;left:0;top:0;bottom:0;width:18px;background:var(--atozbf-copper);border-radius:2px;}
.atozbf-step-lede{font-size:14px;color:var(--atozbf-ink-soft);line-height:1.55;margin:0 0 26px;max-width:44ch;}

.atozbf-field{margin-bottom:22px;}
.atozbf-field label{
  display:block;font-size:10.5px;font-weight:600;margin-bottom:9px;color:var(--atozbf-ink-soft);
  text-transform:uppercase;letter-spacing:.08em;
}
.atozbf-field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media (max-width:480px){.atozbf-field-row{grid-template-columns:1fr;}}

.atozbf-booking-form select,
.atozbf-booking-form input[type=text],
.atozbf-booking-form input[type=tel],
.atozbf-booking-form input[type=email],
.atozbf-booking-form input[type=date],
.atozbf-booking-form textarea{
  width:100%;
  padding:6px 2px 11px;
  border:none;border-bottom:1.5px solid var(--atozbf-line);
  border-radius:0;
  font-family:var(--atozbf-font-heading);
  font-size:17px;font-weight:500;
  color:var(--atozbf-ink);
  background:transparent;
  transition:border-color .2s;
  appearance:none;
}
.atozbf-booking-form select{cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--atozbf-ink-soft) 50%),linear-gradient(135deg,var(--atozbf-ink-soft) 50%,transparent 50%);background-position:calc(100% - 4px) 14px,calc(100% - 9px) 14px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;}
.atozbf-booking-form select:focus,
.atozbf-booking-form input:focus,
.atozbf-booking-form textarea:focus{outline:none;border-color:var(--atozbf-copper);}
.atozbf-booking-form select:invalid{color:var(--atozbf-ink-faint);}
.atozbf-booking-form textarea{resize:vertical;min-height:76px;line-height:1.5;}
.atozbf-booking-form ::placeholder{color:var(--atozbf-ink-faint);font-family:var(--atozbf-font-body);font-weight:400;font-size:14.5px;}

/* service tiles */
.atozbf-service-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:11px;margin-bottom:6px;}
@media (max-width:640px){.atozbf-service-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:400px){.atozbf-service-grid{grid-template-columns:1fr;}}
.atozbf-service-tile{
  border:1.5px solid var(--atozbf-line);border-radius:13px;
  padding:16px 13px 15px;cursor:pointer;
  display:flex;flex-direction:column;gap:9px;
  transition:border-color .2s, background .2s, transform .15s, box-shadow .2s;
  position:relative;
}
.atozbf-service-tile:hover{border-color:var(--atozbf-copper);transform:translateY(-2px);box-shadow:0 10px 20px -14px rgba(23,20,15,.3);}
.atozbf-service-tile.atozbf-selected{border-color:var(--atozbf-copper);background:var(--atozbf-copper-tint);box-shadow:0 10px 20px -14px rgba(21,101,192,.35);}
.atozbf-service-tile .atozbf-icon{
  width:32px;height:32px;border-radius:9px;background:var(--atozbf-cream);
  display:flex;align-items:center;justify-content:center;color:var(--atozbf-copper-deep);
  transition:background .2s, color .2s;
}
.atozbf-service-tile .atozbf-icon svg{width:16px;height:16px;}
.atozbf-service-tile.atozbf-selected .atozbf-icon{background:var(--atozbf-copper);color:#fff;}
.atozbf-service-tile .atozbf-name{font-family:var(--atozbf-font-heading);font-size:16px;font-weight:600;line-height:1.25;}
.atozbf-service-tile .atozbf-fee{font-size:11px;color:var(--atozbf-ink-soft);letter-spacing:.02em;}
.atozbf-service-tile.atozbf-selected .atozbf-fee{color:var(--atozbf-copper-deep);}
.atozbf-service-tile .atozbf-check{
  position:absolute;top:12px;right:12px;width:16px;height:16px;border-radius:50%;
  border:1.5px solid var(--atozbf-line);background:#fff;transition:all .2s;
}
.atozbf-service-tile.atozbf-selected .atozbf-check{background:var(--atozbf-copper);border-color:var(--atozbf-copper);}
.atozbf-service-tile.atozbf-selected .atozbf-check::after{
  content:'';position:absolute;left:4.5px;top:1.5px;width:4px;height:7px;
  border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(40deg);
}

/* fee notice */
.atozbf-fee-notice{
  margin-top:18px;padding:15px 16px;border-radius:12px;
  background:var(--atozbf-copper-tint);border:1px solid rgba(21,101,192,.25);
  display:none;gap:11px;align-items:flex-start;
}
.atozbf-fee-notice.atozbf-visible{display:flex;}
.atozbf-fee-notice svg{flex-shrink:0;margin-top:2px;width:16px;height:16px;color:var(--atozbf-copper-deep);}
.atozbf-fee-notice p{margin:0;font-size:13px;line-height:1.55;color:var(--atozbf-ink);}
.atozbf-fee-notice strong{font-family:var(--atozbf-font-heading);font-weight:600;font-size:14px;}

/* review gauge */
.atozbf-gauge{
  border:1.5px solid var(--atozbf-line);border-radius:14px;
  padding:20px 20px;margin-bottom:22px;
  background:linear-gradient(180deg,#fff,var(--atozbf-cream));
}
.atozbf-gauge-title{font-family:var(--atozbf-font-heading);font-style:italic;font-weight:600;font-size:16px;margin-bottom:6px;}
.atozbf-gauge-fee{font-family:var(--atozbf-font-heading);font-size:26px;font-weight:600;}
.atozbf-gauge-fee .atozbf-struck{text-decoration:line-through;color:var(--atozbf-ink-faint);font-size:17px;margin-right:9px;}
.atozbf-gauge-fee .atozbf-free{color:var(--atozbf-green);}
.atozbf-gauge-note{font-size:12.5px;color:var(--atozbf-ink-soft);line-height:1.55;margin-top:9px;}

.atozbf-summary-list{list-style:none;padding:0;margin:0 0 22px;font-size:14.5px;}
.atozbf-summary-list li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--atozbf-line);}
.atozbf-summary-list li:last-child{border-bottom:none;}
.atozbf-summary-list .atozbf-k{color:var(--atozbf-ink-soft);font-size:12px;text-transform:uppercase;letter-spacing:.05em;padding-top:2px;}
.atozbf-summary-list .atozbf-v{font-family:var(--atozbf-font-heading);font-weight:600;text-align:right;font-size:16px;}

.atozbf-terms{display:flex;gap:12px;align-items:flex-start;font-size:12.5px;color:var(--atozbf-ink-soft);line-height:1.55;margin-bottom:26px;}
.atozbf-terms a{color:var(--atozbf-copper-deep);text-decoration:none;font-weight:600;}
.atozbf-terms a:hover{text-decoration:underline;}
.atozbf-booking-form input[type=checkbox]{
  appearance:none;width:20px;height:20px;flex-shrink:0;margin-top:1px;
  border:1.5px solid var(--atozbf-line);border-radius:5px;position:relative;cursor:pointer;
  transition:border-color .2s, background .2s;
}
.atozbf-booking-form input[type=checkbox]:checked{background:var(--atozbf-copper);border-color:var(--atozbf-copper);}
.atozbf-booking-form input[type=checkbox]:checked::after{
  content:'';position:absolute;left:6px;top:2px;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(40deg);
}

.atozbf-btn-row{display:flex;justify-content:space-between;align-items:center;margin-top:30px;gap:12px;}
.atozbf-booking-form button{
  font-family:var(--atozbf-font-body);font-weight:600;font-size:13.5px;
  letter-spacing:.03em;
  border-radius:11px;border:none;cursor:pointer;padding:14px 26px;
  transition:opacity .2s, transform .15s, box-shadow .2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
}
.atozbf-booking-form button:active{transform:scale(.98);}
.atozbf-btn-primary{
  background:var(--atozbf-btn-primary-bg,var(--atozbf-black));
  color:var(--atozbf-btn-primary-color,#fff);
  flex:1;
  box-shadow:var(--atozbf-btn-primary-shadow,0 10px 22px -10px rgba(23,20,15,.45));
}
.atozbf-btn-primary:hover:not(:disabled){
  background:var(--atozbf-btn-primary-hover-bg,var(--atozbf-btn-primary-bg,var(--atozbf-black)));
  color:var(--atozbf-btn-primary-hover-color,var(--atozbf-btn-primary-color,#fff));
  transform:translateY(-1px);
  box-shadow:var(--atozbf-btn-primary-shadow-hover,0 14px 26px -10px rgba(23,20,15,.5));
}
.atozbf-btn-primary:disabled{background:var(--atozbf-line);cursor:not-allowed;color:var(--atozbf-ink-soft);box-shadow:none;}
.atozbf-btn-primary svg{width:14px;height:14px;}
.atozbf-btn-ghost{
  background:var(--atozbf-btn-back-bg,transparent);
  color:var(--atozbf-btn-back-color,var(--atozbf-ink));
  border:1.5px solid var(--atozbf-btn-back-border,var(--atozbf-line));
}
.atozbf-btn-ghost:hover{
  background:var(--atozbf-btn-back-hover-bg,transparent);
  color:var(--atozbf-btn-back-hover-color,var(--atozbf-btn-back-color,var(--atozbf-ink)));
  border-color:var(--atozbf-btn-back-hover-border,var(--atozbf-ink-soft));
}
.atozbf-back-btn{visibility:hidden;}
.atozbf-btn-row-confirm{margin-top:0;}
.atozbf-btn-full{width:100%;flex:none;}
.atozbf-confirm-ref-wrap{text-align:center;}

.atozbf-error{display:none;align-items:center;gap:6px;color:var(--atozbf-red);font-size:12px;margin-top:8px;}
.atozbf-error::before{content:'⚠';font-size:11px;}
.atozbf-error.atozbf-show{display:flex;}

/* confirmation */
.atozbf-confirm{text-align:center;padding:6px 4px 4px;}
.atozbf-confirm-icon{
  width:58px;height:58px;border-radius:50%;background:var(--atozbf-copper);
  display:flex;align-items:center;justify-content:center;margin:0 auto 22px;
}
.atozbf-confirm h2{font-family:var(--atozbf-font-heading);font-style:italic;font-weight:700;font-size:28px;margin:0 0 12px;}
.atozbf-confirm > p{color:var(--atozbf-ink-soft);font-size:14.5px;line-height:1.6;margin:0 auto 24px;max-width:38ch;}

.atozbf-confirm-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:26px;text-align:left;}
@media (max-width:480px){.atozbf-confirm-grid{grid-template-columns:1fr;}}
.atozbf-confirm-item{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--atozbf-line);border-radius:12px;background:var(--atozbf-cream);}
.atozbf-confirm-item svg{width:19px;height:19px;color:var(--atozbf-copper-deep);flex-shrink:0;margin-top:1px;}
.atozbf-confirm-item .atozbf-ck{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--atozbf-ink-soft);margin-bottom:3px;}
.atozbf-confirm-item .atozbf-cv{font-family:var(--atozbf-font-heading);font-weight:600;font-size:15.5px;line-height:1.3;}

.atozbf-confirm-ref{
  font-family:var(--atozbf-font-body);background:var(--atozbf-cream);
  border:1px dashed var(--atozbf-copper-deep);border-radius:9px;padding:11px 18px;
  display:inline-block;font-size:12.5px;margin-bottom:24px;color:var(--atozbf-ink);
}

.atozbf-foot-note{text-align:center;font-size:11.5px;color:var(--atozbf-ink-soft);margin-top:26px;letter-spacing:.01em;}

/* Library icons */
.atozbf-service-tile .atozbf-icon .atozbf-fa-icon,
.atozbf-service-tile .atozbf-icon .atozbf-el-icon{font-size:16px;line-height:1;}
.atozbf-service-tile .atozbf-icon .atozbf-svg-icon{width:16px;height:16px;}

/* Step animations */
.atozbf-anim-fade .atozbf-step.atozbf-active{animation:atozbf-fade .35s ease;}
@keyframes atozbf-fade{from{opacity:0;}to{opacity:1;}}
.atozbf-anim-none .atozbf-step.atozbf-active{animation:none;}
