/* Book a demo — booking layout, standard-design polish + graceful
   loading state for the scheduler so it never shows an empty card. */
.booking-layout { display:grid; grid-template-columns:minmax(240px,.74fr) minmax(0,1.26fr); gap:44px; align-items:start; max-width:1140px; margin:0 auto; }
.booking-aside { padding:26px 4px; }
.booking-number { display:inline-flex; align-items:center; padding:6px 13px; border-radius:999px; background:var(--color-surface-accent); color:var(--color-brand-mid); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.booking-aside h2 { margin:20px 0 0; font-size:clamp(26px,3vw,34px); line-height:1.12; letter-spacing:-.02em; color:var(--color-ink); }
.booking-aside > p { margin:16px 0 0; font-size:16px; line-height:1.7; color:var(--color-body); max-width:44ch; }
.booking-points { list-style:none; margin:24px 0 0; padding:0; display:flex; flex-direction:column; gap:14px; }
.booking-points li { display:flex; align-items:flex-start; gap:11px; font-size:15px; line-height:1.5; color:var(--color-ink); }
.booking-points li svg { flex:none; margin-top:1px; }
.booking-tour { display:flex; align-items:center; gap:11px; margin-top:26px; padding:13px 16px; border:1px solid var(--color-border-accent,#CDE7D6); border-radius:var(--radius-lg,14px); background:var(--color-surface-accent,#EAF6EE); color:var(--color-brand-dark,#0F7E45); text-decoration:none; font-weight:600; font-size:14px; transition:background .2s,transform .2s; }
.booking-tour:hover { background:#E0F1E6; transform:translateY(-1px); }
.booking-tour span { flex:1; }
.booking-tour svg:last-child { flex:none; }
.booking-contact { display:flex; align-items:center; gap:12px; margin-top:24px; padding-top:22px; border-top:1px solid var(--color-border); }
.booking-contact-icon { width:38px; height:38px; border-radius:11px; background:var(--color-surface-accent); color:var(--color-brand-mid); display:grid; place-items:center; font-size:17px; font-weight:700; flex:none; }
.booking-contact strong { display:block; font-size:13px; color:var(--color-ink); }
.booking-contact a { display:block; font-size:14px; color:var(--color-brand-mid); text-decoration:none; }
.booking-contact a:hover { text-decoration:underline; }

/* framed scheduler card */
.booking-card { border:1px solid var(--color-border); border-radius:var(--radius-xl,22px); background:#fff; overflow:hidden; box-shadow:0 24px 60px -30px rgba(11,23,16,.22), 0 8px 20px -14px rgba(11,23,16,.12); }
.booking-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 20px; border-bottom:1px solid var(--color-border); background:var(--color-surface,#F8FAF9); }
.booking-card-title { font-size:14px; font-weight:600; color:var(--color-ink); }
.booking-card-tz { font-size:12px; color:var(--color-muted); }
.booking-embed { position:relative; height:720px; }
.booking-embed-fallback { position:absolute; inset:0; z-index:0; display:grid; place-content:center; justify-items:center; gap:12px; text-align:center; padding:24px; }
.booking-spin { width:34px; height:34px; border-radius:50%; border:3px solid var(--color-border); border-top-color:var(--color-brand); animation:booking-spin 1s linear infinite; }
@keyframes booking-spin { to { transform:rotate(360deg); } }
.booking-embed-load { margin:0; font-size:14px; color:var(--color-muted); }
.booking-embed-alt { margin:6px 0 0; } .booking-embed-email { margin:0; font-size:13px; color:var(--color-muted); } .booking-embed-email a { color:var(--color-brand-mid); }
.calendly-inline-widget { position:relative; z-index:1; width:100%; min-width:320px; height:720px; }
.calendly-inline-widget iframe { display:block; width:100%; height:100%; border:0; }

@media (max-width:900px){
  .booking-layout { grid-template-columns:1fr; gap:28px; }
  .booking-aside { padding:0; }
  .booking-embed, .calendly-inline-widget { height:1040px; }
}
