/**
 * Zentrusted — Contact Widget & WhatsApp Integration Styles
 * Scoped with .ztcw- prefix for complete isolation.
 */

:root {
  --ztcw-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ztcw-ink: #0f1f24;
  --ztcw-ink-light: #475467;
  --ztcw-ink-subtle: #667085;
  --ztcw-gold: #d28a19;
  --ztcw-gold-hover: #b87714;
  --ztcw-gold-subtle: rgba(210, 138, 25, 0.12);
  --ztcw-wa: #25d366;
  --ztcw-wa-hover: #1ebd5a;
  --ztcw-wa-dark: #128c7e;
  --ztcw-wa-subtle: rgba(37, 211, 102, 0.14);
  --ztcw-surface: #ffffff;
  --ztcw-border: rgba(15, 31, 36, 0.12);
  --ztcw-border-focus: #d28a19;
  --ztcw-error: #d92d20;
  --ztcw-error-bg: #fef3f2;
  --ztcw-success: #039855;
  --ztcw-success-bg: #ecfdf3;
  --ztcw-shadow-lg: 0 24px 60px -12px rgba(15, 31, 36, 0.28), 0 4px 16px -2px rgba(15, 31, 36, 0.08);
  --ztcw-shadow-sm: 0 4px 12px rgba(15, 31, 36, 0.06);
}

/* -------------------------------------------------------------------------
   In-page Contact Section (.zt-cx-) Integration
   ------------------------------------------------------------------------- */
.zt-cx-field.is-invalid input,
.zt-cx-field.is-invalid textarea {
  border-color: #d92d20 !important;
  background-color: #fffbfa !important;
  box-shadow: 0 0 0 3px rgba(217, 45, 32, 0.15) !important;
}

.zt-cx-submit:disabled {
  opacity: 0.75;
  cursor: not-allowed;
  transform: none !important;
}

.zt-cx-form-msg.is-success {
  display: block;
  color: #027a48 !important;
  background: #ecfdf3;
  border: 1px solid #a6f4c5;
  padding: 10px 14px;
  border-radius: 10px;
  font-weight: 600;
  margin-top: 10px;
}

.zt-cx-form-msg.is-error {
  display: block;
  color: #b42318 !important;
  background: #fef3f2;
  border: 1px solid #fecdca;
  padding: 10px 14px;
  border-radius: 10px;
  font-weight: 500;
  margin-top: 10px;
}

.zt-cx-form-msg.is-info {
  display: block;
  color: #026aa2 !important;
  background: #f0f9ff;
  border: 1px solid #b9e6fe;
  padding: 10px 14px;
  border-radius: 10px;
  margin-top: 10px;
}

/* -------------------------------------------------------------------------
   Hide legacy standalone float buttons across pages
   ------------------------------------------------------------------------- */
.float,
.float-email,
.wa-float {
  display: none !important;
}

/* -------------------------------------------------------------------------
   Helper: Styling for .zt-fab-icon-form in existing #ztFabDock
   ------------------------------------------------------------------------- */
.zt-fab-icon-form,
.zt-fab-icon-mail {
  background: rgba(14, 116, 144, 0.12) !important;
  color: #0e7490 !important;
}

button.zt-fab-item {
  width: 100%;
  border: 1px solid rgba(15, 31, 36, 0.04);
  background: rgba(243, 249, 250, 0.45);
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}

button.zt-fab-item:hover {
  background: #ffffff;
  border-color: rgba(210, 138, 25, 0.3);
  transform: translateX(-2px);
  box-shadow: 0 6px 18px -4px rgba(15, 31, 36, 0.08);
}

/* -------------------------------------------------------------------------
   Keep floating docks clear of the footer
   The footer observer in js/contact-widget.js adds .zt-footer-dodge once the
   footer starts entering the viewport, so the copyright row is never covered.
   ------------------------------------------------------------------------- */
.zt-fab-dock {
  transition: opacity 0.22s ease, visibility 0.22s ease;
}

.zt-fab-dock.zt-footer-dodge,
.zt-entity-dock.zt-footer-dodge {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(14px) !important;
}

/* -------------------------------------------------------------------------
   Lock the page behind any open panel or dialog
   ------------------------------------------------------------------------- */
body.ztcw-open {
  overflow: hidden;
  padding-right: var(--ztcw-scrollbar-gap, 0px);
}

/* -------------------------------------------------------------------------
   Backdrop
   ------------------------------------------------------------------------- */
.ztcw-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 31, 36, 0.45);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 10020;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.25s;
}

.ztcw-backdrop.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* -------------------------------------------------------------------------
   Contact Form Panel (Modal / Slide-out)
   ------------------------------------------------------------------------- */
.ztcw-panel {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 440px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  background: var(--ztcw-surface);
  border: 1px solid var(--ztcw-border);
  border-radius: 20px;
  box-shadow: var(--ztcw-shadow-lg);
  z-index: 10030;
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(18px) scale(0.96);
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.26s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.26s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.26s;
  font-family: var(--ztcw-font);
  color: var(--ztcw-ink);
  -webkit-overflow-scrolling: touch;
}

.ztcw-panel.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.ztcw-panel__head {
  padding: 22px 24px 16px;
  border-bottom: 1px solid rgba(15, 31, 36, 0.08);
  position: relative;
  background: linear-gradient(180deg, #fbfdfe 0%, #ffffff 100%);
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}

.ztcw-panel__eyebrow {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ztcw-gold);
}

.ztcw-panel__title {
  margin: 4px 0 0;
  font-size: 1.22rem;
  font-weight: 800;
  color: var(--ztcw-ink);
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.ztcw-panel__sub {
  margin: 6px 0 0;
  font-size: 0.84rem;
  color: var(--ztcw-ink-light);
  line-height: 1.45;
}

.ztcw-panel__close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(15, 31, 36, 0.08);
  background: #ffffff;
  color: var(--ztcw-ink-light);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
}

.ztcw-panel__close svg {
  width: 16px;
  height: 16px;
}

.ztcw-panel__close:hover {
  background: #f3f4f6;
  color: var(--ztcw-ink);
  transform: rotate(90deg);
}

.ztcw-panel__body {
  padding: 20px 24px 24px;
}

/* WhatsApp quick banner in form */
.ztcw-panel__wa-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 12px;
  background: var(--ztcw-wa-subtle);
  border: 1px solid rgba(37, 211, 102, 0.25);
  color: #0b5e32;
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 600;
  margin-bottom: 18px;
  transition: all 0.2s ease;
}

.ztcw-panel__wa-banner:hover {
  background: rgba(37, 211, 102, 0.22);
  border-color: rgba(37, 211, 102, 0.4);
  transform: translateY(-1px);
}

.ztcw-panel__wa-banner-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ztcw-panel__wa-banner-left svg {
  width: 18px;
  height: 18px;
  fill: #128c7e;
  flex-shrink: 0;
}

.ztcw-panel__wa-banner-action {
  color: #128c7e;
  font-weight: 700;
  font-size: 0.8rem;
  white-space: nowrap;
}

/* -------------------------------------------------------------------------
   Form Controls
   ------------------------------------------------------------------------- */
.ztcw-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ztcw-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

@media (max-width: 480px) {
  .ztcw-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

.ztcw-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.ztcw-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ztcw-ink);
  letter-spacing: -0.01em;
}

.ztcw-req {
  color: var(--ztcw-error);
  font-weight: 700;
}

.ztcw-opt {
  font-size: 0.72rem;
  font-weight: 400;
  color: var(--ztcw-ink-subtle);
  font-style: normal;
}

.ztcw-field input,
.ztcw-field textarea {
  width: 100%;
  font-family: inherit;
  font-size: 0.875rem;
  color: var(--ztcw-ink);
  background: #ffffff;
  border: 1px solid rgba(15, 31, 36, 0.16);
  border-radius: 10px;
  padding: 9px 12px;
  outline: none;
  box-sizing: border-box;
  transition: all 0.2s ease;
}

.ztcw-field input::placeholder,
.ztcw-field textarea::placeholder {
  color: #98a2b3;
  font-size: 0.84rem;
}

.ztcw-field input:focus,
.ztcw-field textarea:focus {
  border-color: var(--ztcw-gold);
  box-shadow: 0 0 0 3px rgba(210, 138, 25, 0.18);
}

.ztcw-field.is-invalid input,
.ztcw-field.is-invalid textarea {
  border-color: var(--ztcw-error);
  background-color: #fffbfa;
}

.ztcw-field.is-invalid input:focus,
.ztcw-field.is-invalid textarea:focus {
  box-shadow: 0 0 0 3px rgba(217, 45, 32, 0.15);
}

.ztcw-field textarea {
  resize: vertical;
  min-height: 80px;
  line-height: 1.45;
}

.ztcw-hp {
  position: absolute !important;
  left: -9999px !important;
  opacity: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

/* Submit Button */
.ztcw-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px 18px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, #0f1f24 0%, #1e3d47 100%);
  color: #ffffff;
  font-family: inherit;
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(15, 31, 36, 0.2);
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  margin-top: 4px;
}

.ztcw-submit:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(15, 31, 36, 0.3);
  background: linear-gradient(135deg, #13272e 0%, #264a56 100%);
}

.ztcw-submit:disabled {
  opacity: 0.75;
  cursor: not-allowed;
  transform: none !important;
}

/* Spinner */
.ztcw-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: ztcw-spin 0.8s linear infinite;
  display: inline-block;
}

@keyframes ztcw-spin {
  to { transform: rotate(360deg); }
}

/* Status Banner */
.ztcw-status {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.45;
  border-radius: 10px;
  padding: 0;
  display: none;
}

.ztcw-status.is-info,
.ztcw-status.is-success,
.ztcw-status.is-error {
  display: block;
  padding: 10px 14px;
}

.ztcw-status.is-info {
  background: #f0f9ff;
  border: 1px solid #b9e6fe;
  color: #026aa2;
}

.ztcw-status.is-success {
  background: var(--ztcw-success-bg);
  border: 1px solid #a6f4c5;
  color: #027a48;
  font-weight: 600;
}

.ztcw-status.is-error {
  background: var(--ztcw-error-bg);
  border: 1px solid #fecdca;
  color: #b42318;
}

.ztcw-fallback {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.ztcw-fallback a {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 6px;
  background: #ffffff;
  border: 1px solid #fecdca;
  color: #b42318;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
}

.ztcw-fallback a:hover {
  background: #fef3f2;
  border-color: #b42318;
}

.ztcw-consent {
  margin: 0;
  font-size: 0.72rem;
  color: var(--ztcw-ink-subtle);
  text-align: center;
  line-height: 1.4;
}

/* -------------------------------------------------------------------------
   WhatsApp Confirmation Prompt Dialog
   ------------------------------------------------------------------------- */
.ztcw-prompt-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 31, 36, 0.6);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  z-index: 10060;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.25s;
}

.ztcw-prompt-backdrop.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.ztcw-prompt {
  background: #ffffff;
  border-radius: 22px;
  width: 420px;
  max-width: 100%;
  padding: 30px 24px 26px;
  text-align: center;
  box-shadow: 0 30px 70px -15px rgba(15, 31, 36, 0.45);
  border: 1px solid rgba(15, 31, 36, 0.08);
  position: relative;
  transform: translateY(14px) scale(0.96);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  font-family: var(--ztcw-font);
}

.ztcw-prompt-backdrop.is-open .ztcw-prompt {
  transform: translateY(0) scale(1);
}

.ztcw-prompt__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid rgba(15, 31, 36, 0.08);
  background: #ffffff;
  color: var(--ztcw-ink-light);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
}

.ztcw-prompt__close svg {
  width: 14px;
  height: 14px;
}

.ztcw-prompt__close:hover {
  background: #f3f4f6;
  color: var(--ztcw-ink);
}

.ztcw-prompt__icon-wrap {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--ztcw-wa-subtle);
  border: 2px solid rgba(37, 211, 102, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}

.ztcw-prompt__icon-wrap svg {
  width: 30px;
  height: 30px;
  fill: #128c7e;
}

.ztcw-prompt__title {
  margin: 0 0 10px;
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--ztcw-ink);
  letter-spacing: -0.015em;
}

.ztcw-prompt__message {
  margin: 0 0 24px;
  font-size: 0.88rem;
  color: var(--ztcw-ink-light);
  line-height: 1.55;
}

.ztcw-prompt__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ztcw-prompt__btn-proceed {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 13px 20px;
  border-radius: 14px;
  border: none;
  background: linear-gradient(135deg, #25d366 0%, #128c7e 100%);
  color: #ffffff;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 8px 24px -4px rgba(37, 211, 102, 0.45);
  transition: all 0.22s ease;
}

.ztcw-prompt__btn-proceed:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px -4px rgba(37, 211, 102, 0.55);
}

.ztcw-prompt__btn-cancel {
  padding: 10px;
  border: none;
  background: transparent;
  color: var(--ztcw-ink-subtle);
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s ease;
}

.ztcw-prompt__btn-cancel:hover {
  color: var(--ztcw-ink);
}

/* -------------------------------------------------------------------------
   Standalone Floating Action Button & Speed Dial (Disabled)
   Quick Actions (#ztFabDock) is the single floating launcher.
   ------------------------------------------------------------------------- */
.ztcw-fab,
#ztcwFab,
.ztcw-menu,
#ztcwMenu {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.ztcw-fab {
  position: fixed;
  right: var(--ztcw-fab-right, 24px);
  bottom: var(--ztcw-fab-bottom, 24px);
  z-index: 10010;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: linear-gradient(135deg, #0f1f24 0%, #1e3d47 100%);
  color: #ffffff;
  font-family: var(--ztcw-font);
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 16px 36px -10px rgba(15, 31, 36, 0.45), 0 0 0 1px rgba(210, 138, 25, 0.25);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.ztcw-fab:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 42px -10px rgba(15, 31, 36, 0.55), 0 0 0 1px rgba(210, 138, 25, 0.45);
}

.ztcw-fab__icon-wrap {
  width: 20px;
  height: 20px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ztcw-fab__icon {
  position: absolute;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.ztcw-fab__icon svg {
  width: 18px;
  height: 18px;
}

.ztcw-fab__icon--close {
  opacity: 0;
  transform: rotate(-90deg) scale(0.6);
}

.ztcw-fab[aria-expanded="true"] .ztcw-fab__icon--open {
  opacity: 0;
  transform: rotate(90deg) scale(0.6);
}

.ztcw-fab[aria-expanded="true"] .ztcw-fab__icon--close {
  opacity: 1;
  transform: rotate(0) scale(1);
}

.ztcw-menu {
  position: fixed;
  bottom: calc(var(--ztcw-fab-bottom, 24px) + 60px);
  right: var(--ztcw-fab-right, 24px);
  width: 320px;
  max-width: calc(100vw - 32px);
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(15, 31, 36, 0.1);
  border-radius: 20px;
  box-shadow: var(--ztcw-shadow-lg);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  opacity: 0;
  transform: translateY(12px) scale(0.96);
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.24s cubic-bezier(0.16, 1, 0.3, 1), transform 0.24s cubic-bezier(0.16, 1, 0.3, 1);
  transform-origin: bottom right;
  z-index: 10015;
  font-family: var(--ztcw-font);
}

.ztcw-menu.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.ztcw-menu__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border-radius: 14px;
  text-decoration: none;
  color: var(--ztcw-ink);
  background: rgba(243, 249, 250, 0.45);
  border: 1px solid rgba(15, 31, 36, 0.04);
  transition: all 0.2s ease;
  font-family: inherit;
  cursor: pointer;
  width: 100%;
  text-align: left;
}

.ztcw-menu__item:hover {
  background: #ffffff;
  border-color: rgba(210, 138, 25, 0.3);
  transform: translateX(-2px);
  box-shadow: 0 6px 18px -4px rgba(15, 31, 36, 0.08);
}

.ztcw-menu__icon-box {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.ztcw-menu__item:hover .ztcw-menu__icon-box {
  transform: scale(1.08);
}

.ztcw-menu__icon-box--wa {
  background: var(--ztcw-wa-subtle);
  color: #128c7e;
}

.ztcw-menu__icon-box--wa svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
}

.ztcw-menu__icon-box--form {
  background: rgba(14, 116, 144, 0.12);
  color: #0e7490;
}

.ztcw-menu__icon-box--form svg {
  width: 20px;
  height: 20px;
}

.ztcw-menu__content {
  flex: 1;
  min-width: 0;
}

.ztcw-menu__title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--ztcw-ink);
}

.ztcw-menu__badge--green {
  font-size: 0.65rem;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 9999px;
  background: #ecfdf3;
  color: #027a48;
}

.ztcw-menu__desc {
  display: block;
  font-size: 0.74rem;
  color: var(--ztcw-ink-light);
  margin-top: 1px;
}

.ztcw-menu__arrow {
  color: #98a2b3;
  display: flex;
  align-items: center;
}

.ztcw-menu__arrow svg {
  width: 16px;
  height: 16px;
}

@media (max-width: 640px) {
  .ztcw-panel {
    right: 12px;
    left: 12px;
    bottom: 12px;
    width: auto;
    max-width: none;
    max-height: calc(100vh - 24px);
    border-radius: 18px;
  }
}

/* -------------------------------------------------------------------------
   Calendly Official Native Popup Widget Overlay
   ------------------------------------------------------------------------- */
.calendly-overlay {
  z-index: 10050 !important;
}

.calendly-overlay .calendly-popup {
  border-radius: 16px !important;
  overflow: hidden !important;
  box-shadow: 0 25px 60px -15px rgba(15, 31, 36, 0.45) !important;
}

.calendly-overlay .calendly-popup-close {
  top: 18px !important;
  right: 18px !important;
  z-index: 10 !important;
}

/* -------------------------------------------------------------------------
   Scheduling panel (Calendly expanded inline embed — full viewport)
   ------------------------------------------------------------------------- */
/* Scheduling keeps its own frame: an inset sheet (so the page shows around it
   and it reads as our popup) with the brand header above Calendly's embed. */
.ztcw-panel--schedule {
  inset: 20px;
  margin: 0;
  width: auto;
  max-width: none;
  height: auto;
  max-height: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--ztcw-surface);
  border: 1px solid var(--ztcw-border);
  border-radius: 18px;
  box-shadow: 0 34px 90px -34px rgba(15, 31, 36, 0.6);
  transform: none;
}

.ztcw-panel--schedule.is-open {
  transform: none;
}

.ztcw-panel--schedule .ztcw-panel__head {
  position: relative;
  height: auto;
  flex-shrink: 0;
  padding: 14px 68px 12px 22px;
  border: 0;
  border-bottom: 1px solid rgba(15, 31, 36, 0.08);
  background: linear-gradient(180deg, #fbfdfe 0%, #ffffff 100%);
  pointer-events: auto;
  z-index: 2;
}

.ztcw-panel--schedule .ztcw-panel__eyebrow {
  display: block;
  font-size: 0.66rem;
  margin: 0;
}

.ztcw-panel--schedule .ztcw-panel__title {
  display: block;
  font-size: 1.06rem;
  margin: 2px 0 0;
  line-height: 1.25;
}

.ztcw-panel--schedule .ztcw-panel__sub {
  display: block;
  font-size: 0.8rem;
  margin: 3px 0 0;
  line-height: 1.4;
}

.ztcw-panel--schedule .ztcw-panel__close {
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  background: #ffffff;
  border-color: rgba(15, 31, 36, 0.12);
  box-shadow: 0 4px 12px rgba(15, 31, 36, 0.12);
  z-index: 3;
}

.ztcw-panel--schedule .ztcw-panel__body {
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.ztcw-schedule {
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.ztcw-schedule .calendly-inline-widget,
.ztcw-schedule iframe {
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  border: 0;
}

.ztcw-schedule__loading {
  margin: 0;
  padding: 60px 24px;
  text-align: center;
  font-size: 0.88rem;
  color: var(--ztcw-ink-light);
}

.ztcw-schedule__error {
  padding: 48px 24px;
  text-align: center;
}

.ztcw-schedule__error p {
  margin: 0 0 14px;
  font-size: 0.88rem;
  color: var(--ztcw-ink-light);
}

.ztcw-schedule__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 11px 20px;
  border-radius: 9999px;
  background: var(--ztcw-ink);
  color: #ffffff;
  font-size: 0.86rem;
  font-weight: 700;
  text-decoration: none;
}

.ztcw-schedule__fallback {
  margin: 0;
  padding: 6px 24px 8px;
  border-top: 1px solid rgba(15, 31, 36, 0.07);
  font-size: 0.74rem;
  color: var(--ztcw-ink-light);
  text-align: center;
  flex-shrink: 0;
}

.ztcw-schedule__fallback a {
  color: var(--ztcw-gold);
  font-weight: 600;
}

@media (max-width: 640px) {
  .ztcw-panel--schedule {
    inset: calc(8px + env(safe-area-inset-top, 0px)) 8px calc(8px + env(safe-area-inset-bottom, 0px)) 8px;
    border-radius: 16px;
  }

  .ztcw-panel--schedule .ztcw-panel__head {
    padding: 12px 54px 10px 16px;
  }

  .ztcw-panel--schedule .ztcw-panel__title {
    font-size: 1rem;
  }

  .ztcw-panel--schedule .ztcw-panel__sub {
    font-size: 0.76rem;
  }

  .ztcw-panel--schedule .ztcw-panel__close {
    top: 10px;
    right: 10px;
    width: 34px;
    height: 34px;
  }
}

