:root{--cmb:#2563eb;--cmn:#12184a;--cmt:#202a48;--cmm:#6f7e9d;--cml:#dce5f3;--cms:#f4f7fc;--cmw:#fff;--cmok:#0d9f6e}
.cm-hero-booking{position:relative;overflow:hidden;background:#f8faff;border-bottom:1px solid #dbe5f4;min-height:370px;display:grid;place-items:center;font-family:Cairo,sans-serif}.cm-grid-overlay{position:absolute;inset:0;background-image:linear-gradient(rgba(37,99,235,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.075) 1px,transparent 1px);background-size:56px 56px}.cm-hero-content{position:relative;text-align:center;width:min(1160px,100%);padding:40px 64px}.cm-hero-kicker{color:#6779ad;font-size:16px}.cm-hero-content h1{font-family:Cairo,sans-serif;font-size:clamp(38px,5vw,68px);line-height:1.08;font-style:italic;font-weight:800;color:var(--cmn);margin:18px 0}.cm-hero-content h1 span{color:var(--cmb)}.cm-hero-content p{font-size:19px;line-height:1.8;color:#6677a6;max-width:780px;margin:auto}
.cm-app{font-family:Cairo,sans-serif;width:min(1160px,calc(100% - 30px));margin:86px auto 80px;display:grid;grid-template-columns:280px 1fr;gap:26px;color:var(--cmt)}.cm-sidebar,.cm-card{background:#fff;border:1px solid var(--cml);border-radius:24px;box-shadow:0 18px 58px rgba(18,24,74,.09)}.cm-sidebar{padding:28px 24px;height:max-content;position:sticky;top:24px}.cm-sidebar h3{margin:0;color:var(--cmn)}.cm-sidebar>p{color:var(--cmm);font-size:14px}.cm-side-step{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:11px;border-radius:15px;color:#8c97ab}.cm-side-step b{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#f0f3f8}.cm-side-step span strong,.cm-side-step span small{display:block}.cm-side-step span small{font-size:12px}.cm-side-step.active{background:#edf3ff;color:var(--cmb)}.cm-side-step.active b{background:var(--cmb);color:#fff}.cm-side-step.done{color:var(--cmok)}.cm-side-step.done b{background:#e7f8f1}.cm-security{margin-top:18px;background:#f6f8fc;padding:13px;border-radius:14px;font-size:12px;color:var(--cmm);line-height:1.7}.cm-card{overflow:hidden}.cm-progress{height:8px;background:#edf1f7}.cm-progress span{display:block;height:100%;width:20%;background:linear-gradient(90deg,var(--cmb),#6d91ff);transition:.25s}.cm-card-head{padding:40px 64px 26px;border-bottom:1px solid var(--cml)}.cm-kicker{color:var(--cmb);font-size:13px;font-weight:800;letter-spacing:.08em}.cm-card-head h2{color:var(--cmn);font-size:38px;margin:8px 0}.cm-card-head p{color:var(--cmm);margin:0}.cm-panel{display:none;padding:40px 64px}.cm-panel.active{display:block}.cm-alert{margin:20px 64px 0;padding:13px 15px;border-radius:13px;background:#fff1f2;color:#a52c38;border:1px solid #facbd0}.cm-calendar-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}.cm-calendar-box,.cm-time-box{border:1px solid var(--cml);border-radius:20px;padding:20px;background:#fcfdff}.cm-calendar-head{display:flex;justify-content:space-between;align-items:center}.cm-calendar-head button{width:38px;height:38px;border:0;border-radius:11px;background:#edf2fb;font-size:22px}.cm-week,.cm-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.cm-week span{text-align:center;color:#9ca7bb;font-size:12px;padding:12px 4px}.cm-day{height:47px;border:0;border-radius:12px;background:transparent;color:#c3cad7;font-weight:700}.cm-day.available{background:#edf3ff;color:var(--cmb);position:relative}.cm-day.available:after{content:"";position:absolute;width:5px;height:5px;background:var(--cmb);border-radius:50%;bottom:5px;left:50%}.cm-day.selected{background:var(--cmb);color:#fff}.cm-day.selected:after{background:#fff}.cm-day.other{opacity:.45}.cm-time-box h3{margin:0;color:var(--cmn)}.cm-time-box>p{color:var(--cmm)}.cm-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cm-slot{padding:13px;border:1px solid var(--cml);border-radius:13px;background:#fff;color:var(--cmn);font-weight:800}.cm-slot.selected{background:var(--cmn);color:#fff}.cm-slot:disabled{background:#f5f6f9;color:#bbc3d1;text-decoration:line-through}.cm-info{margin-top:15px;padding:13px 15px;border-radius:13px;background:#eef5ff;color:#556b87;font-size:13px;line-height:1.65}.cm-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}.cm-fields label{display:grid;gap:7px;font-weight:700;color:var(--cmn)}.cm-fields label.full{grid-column:1/-1}.cm-fields em{color:#d33;font-style:normal}.cm-fields input,.cm-fields select,.cm-fields textarea,.cm-med-question textarea{border:1px solid var(--cml);border-radius:13px;padding:13px 14px;background:#fff;outline:none;width:100%}.cm-fields textarea,.cm-med-question textarea{min-height:95px}.cm-invalid{border-color:#d84755!important;box-shadow:0 0 0 4px rgba(216,71,85,.08)!important}.cm-med-question{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border:1px solid var(--cml);border-radius:16px;padding:16px;margin-bottom:12px;background:#fcfdff}.cm-med-question small{display:block;color:var(--cmm)}.cm-med-question textarea{grid-column:1/-1}.cm-toggle{display:flex;gap:7px}.cm-toggle button{border:1px solid var(--cml);background:#fff;border-radius:999px;padding:8px 13px;font-weight:700}.cm-toggle button.active{background:var(--cmb);color:#fff;border-color:var(--cmb)}.cm-consent{display:flex;gap:12px;border:1px solid var(--cml);background:#fcfdff;padding:16px;border-radius:16px;margin-bottom:12px}.cm-consent input{width:20px;height:20px}.cm-consent span{color:var(--cmm)}.cm-consent strong{color:var(--cmn)}.cm-review{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}.cm-review div{border:1px solid var(--cml);border-radius:15px;padding:16px;background:#fcfdff}.cm-review span,.cm-review strong{display:block}.cm-review span{font-size:12px;color:var(--cmm)}.cm-actions{display:flex;justify-content:space-between;padding:22px 64px 28px;border-top:1px solid var(--cml)}.cm-back,.cm-next{border:0;border-radius:13px;padding:14px 23px;font-weight:800}.cm-back{background:#f0f3f8;color:#8d97aa}.cm-next{background:var(--cmb);color:#fff}.cm-back:disabled,.cm-next:disabled{opacity:.45}.cm-success{text-align:center}.cm-success>b{display:grid;place-items:center;width:80px;height:80px;margin:auto;border-radius:24px;background:#e7f8f1;color:var(--cmok);font-size:36px}.cm-success h3{font-size:30px;color:var(--cmn)}
@media(max-width:980px){.cm-app{grid-template-columns:1fr}.cm-sidebar{display:none}.cm-calendar-layout{grid-template-columns:1fr}.cm-hero-content,.cm-card-head,.cm-panel,.cm-actions{padding-left:64px;padding-right:64px}}
@media(max-width:640px){.cm-hero-content{padding:24px 15px}.cm-hero-booking{min-height:330px}.cm-app{width:100%;padding:0 15px;margin-top:44px}.cm-card-head,.cm-panel{padding:24px 15px}.cm-actions{padding:20px 15px 24px}.cm-alert{margin:15px}.cm-fields,.cm-review{grid-template-columns:1fr}.cm-fields label.full{grid-column:auto}.cm-med-question{grid-template-columns:1fr}.cm-calendar-box,.cm-time-box{padding:15px}.cm-week,.cm-days{gap:4px}.cm-day{height:43px}}

/* =========================================================
 * CircumMed final Elementor design overrides – v1.2.0
 * Integrated into the plugin so the booking page no longer
 * depends on Elementor Custom CSS.
 * ========================================================= */
.cm-card-head {
    padding: 20px !important;
}

.cm-panel {
    padding: 20px !important;
}

.cm-sidebar {
    padding: 20px;
}

.cm-actions {
    padding: 20px !important;
}

.cm-alert {
    margin: 20px !important;
}

.cm-calendar-head button {
    width: 38px;
    height: 50px !important;
    padding: 0 !important;
    border-radius: 10px !important;
    background: #edf2fb;
    color: #2563eb;
    font-size: 25px;
    line-height: 1;
}

.cm-app h2 {
    font-size: 28px;
    font-weight: 700;
}

.cm-app h3 {
    font-size: 25px;
    font-weight: 700;
}

.cm-app [type="button"],
.cm-app [type="submit"],
.cm-app button {
    padding: 10px 20px !important;
    border-radius: 10px !important;
    box-sizing: border-box;
}

.cm-app .cm-calendar-head button,
.cm-app .cm-day {
    padding: 0 !important;
}

.cm-toggle button {
    padding: 10px 20px !important;
    border-radius: 10px !important;
}

.cm-back {
    margin-right: 5px !important;
}

.cm-next {
    margin-left: 5px !important;
}

/* Keep every calendar column inside the available width. */
.cm-calendar-layout,
.cm-calendar-box,
.cm-time-box,
.cm-week,
.cm-days {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.cm-day {
    width: 100%;
    min-width: 0;
}

@media (max-width: 768px) {
    .cm-hero-content h1 {
        font-size: 40px !important;
        line-height: 1.2;
    }

    .cm-app {
        width: 100%;
        max-width: 100%;
        padding-right: 15px;
        padding-left: 15px;
        box-sizing: border-box;
        overflow-x: hidden;
    }

    .cm-card {
        width: 100%;
        min-width: 0;
    }

    .cm-calendar-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .cm-calendar-box,
    .cm-time-box {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .cm-week,
    .cm-days {
        width: 100%;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 4px;
    }

    .cm-week span {
        min-width: 0;
        padding: 10px 0;
    }

    .cm-day {
        height: 42px;
        padding: 0 !important;
        font-size: 14px;
    }

    .cm-time-grid {
        grid-template-columns: 1fr;
    }
}

/* v2.0 final interaction polish */
.cm-next,.cm-back,.cm-calendar-head button,.cm-day,.cm-slot,.cm-toggle button,.cm-fields input,.cm-fields select,.cm-fields textarea,.cm-med-question textarea,.cm-side-step{transition:all .25s ease}
.cm-next:hover{background:#1D4ED8}.cm-fields input:hover,.cm-fields select:hover,.cm-fields textarea:hover,.cm-med-question textarea:hover{border-color:#2563EB}.cm-fields input:focus,.cm-fields select:focus,.cm-fields textarea:focus,.cm-med-question textarea:focus{border-color:#2563EB;box-shadow:0 0 0 4px rgba(37,99,235,.12)}.cm-day.available:hover{background:#DBEAFE;color:#2563EB}.cm-slot:not(:disabled):hover{background:#EFF6FF;border-color:#2563EB}.cm-side-step:hover{background:#F4F8FF}.cm-toggle button:hover{background:#EFF6FF;border-color:#2563EB}.cm-card-head,.cm-panel,.cm-sidebar,.cm-actions{padding:20px}.cm-alert{margin:20px}.cm-calendar-head button{width:38px;height:50px;color:#2563EB;font-size:25px}.cm-next,.cm-back{border-radius:10px;padding:10px 20px}.cm-toggle button{border-radius:10px}.cm-actions{gap:8px}
@media(max-width:640px){.cm-hero-content h1{font-size:40px}.cm-card-head,.cm-panel,.cm-actions{padding:20px}}


/* v3.1 – phone, decimal weight, age stop and medical questions */
.cm-phone-field{display:grid;grid-template-columns:minmax(190px,.9fr) minmax(0,1.4fr);gap:10px}
.cm-phone-field select,.cm-phone-field input{min-width:0}
.cm-field-help{display:block;color:var(--cmm);font-size:12px;font-weight:500;line-height:1.55;margin-top:2px}
.cm-health-intro{margin-bottom:16px;padding:14px 16px;border:1px solid #dce5f3;border-radius:14px;background:#f4f8ff;color:#52617d;line-height:1.65}
.cm-health-additional{margin-top:22px}
.cm-age-stop{display:grid;grid-template-columns:52px 1fr;gap:16px;align-items:start;margin:20px;padding:20px;border:1px solid #f2c766;border-radius:17px;background:#fff8e7;color:#6f4b00}
.cm-age-stop-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:#ffe7a8;color:#8a5b00;font-size:26px;font-weight:900}
.cm-age-stop h3{margin:0 0 8px;color:#5f4100;font-size:21px!important}
.cm-age-stop p{margin:0 0 14px;line-height:1.7}
.cm-age-stop a{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border-radius:11px;background:#25D366;color:#083b1d;text-decoration:none;font-weight:800;transition:all .25s ease}
.cm-age-stop a:hover{transform:translateY(-1px);filter:brightness(.96)}
.cm-med-question textarea[hidden]{display:none!important}
.cm-med-question textarea:not([hidden]){display:block}
@media(max-width:640px){.cm-phone-field{grid-template-columns:1fr}.cm-age-stop{grid-template-columns:1fr;margin:15px}.cm-age-stop-icon{width:46px;height:46px}}


/* v3.2 – inline age check, full-width contact fields, shared medical details */
.cm-age-stop-inline{
  grid-column:1/-1;
  margin:0;
}
.cm-med-details-general{
  margin:20px 0 22px;
  padding:18px;
  border:1px solid #DCE5F3;
  border-radius:16px;
  background:#F8FAFF;
}
.cm-med-details-general[hidden]{display:none!important}
.cm-med-details-general label{
  display:block;
  margin-bottom:9px;
  color:#12184A;
}
.cm-med-details-general em{color:#D33;font-style:normal}
.cm-med-details-general textarea{
  width:100%;
  min-height:130px;
  border:1px solid #DCE5F3;
  border-radius:13px;
  padding:13px 14px;
  background:#fff;
  outline:none;
  resize:vertical;
  transition:all .25s ease;
}
.cm-med-details-general textarea:hover{border-color:#2563EB}
.cm-med-details-general textarea:focus{
  border-color:#2563EB;
  box-shadow:0 0 0 4px rgba(37,99,235,.12);
}
.cm-med-details-general small{
  display:block;
  margin-top:7px;
  color:#6F7E9D;
  line-height:1.55;
}


/* v3.2.2 – keep the age warning fully hidden until JavaScript confirms the age limit */
.cm-age-stop[hidden]{
  display:none !important;
}


/* v3.2.3 – optional detail field directly below each medical question */
.cm-med-question textarea[data-medical-details]{
  grid-column:1/-1;
  width:100%;
  min-height:100px;
  margin-top:2px;
}
.cm-med-question textarea[data-medical-details][hidden]{
  display:none !important;
}
.cm-med-question textarea[data-medical-details]:not([hidden]){
  display:block;
}


/* v3.2.4 – mobile date fields and age limit */
.cm-health-additional > label{
  min-width:0;
  width:100%;
  max-width:100%;
}

.cm-fields input[type="date"],
.cm-health-additional input[type="date"]{
  display:block;
  box-sizing:border-box;
  inline-size:100%;
  width:100%;
  min-inline-size:0;
  min-width:0;
  max-inline-size:100%;
  max-width:100%;
  margin:0;
  font-size:16px;
  background-color:#fff;
}

.cm-fields input[type="date"]::-webkit-date-and-time-value,
.cm-health-additional input[type="date"]::-webkit-date-and-time-value{
  min-width:0;
  text-align:left;
}

.cm-fields input[type="date"]::-webkit-datetime-edit,
.cm-health-additional input[type="date"]::-webkit-datetime-edit{
  display:block;
  min-width:0;
  padding:0;
}

@media(max-width:640px){
  .cm-health-additional{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    width:100%;
    max-width:100%;
    gap:17px;
  }

  .cm-health-additional > label{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    min-width:0;
    width:100%;
    max-width:100%;
    overflow:visible;
  }

  .cm-health-additional input,
  .cm-health-additional textarea,
  .cm-health-additional input[type="date"]{
    display:block;
    box-sizing:border-box;
    inline-size:100%;
    width:100%;
    min-inline-size:0;
    min-width:0;
    max-inline-size:100%;
    max-width:100%;
  }

  .cm-health-additional input[type="date"]{
    min-height:54px;
    padding-left:14px;
    padding-right:14px;
  }
}


/* v3.2.5 – compact booking hero */
.cm-hero-booking{
  min-height:200px !important;
}

.cm-hero-content{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:200px;
  padding:20px 32px !important;
}

.cm-hero-content h1{
  margin:0 !important;
  font-size:55px !important;
  line-height:1.12 !important;
}

@media (max-width:1024px){
  .cm-hero-booking{
    min-height:200px !important;
  }

  .cm-hero-content{
    min-height:200px;
    padding:20px 28px !important;
  }

  .cm-hero-content h1{
    font-size:40px !important;
    line-height:45px !important;
  }
}

@media (max-width:640px){
  .cm-hero-booking{
    min-height:150px !important;
  }

  .cm-hero-content{
    min-height:150px;
    padding:16px 14px !important;
  }

  .cm-hero-content h1{
    font-size:25px !important;
    line-height:30px !important;
  }
}


/* v3.2.6 – requested hero punctuation and padding only */
.cm-hero-content{
  padding:40px 64px !important;
}

@media (max-width:1024px){
  .cm-hero-content{
    padding:40px 64px !important;
  }
}

@media (max-width:640px){
  .cm-hero-content{
    padding:20px 15px !important;
  }
}


/* v4.0 – legal consent + final review, no online payment */
.cm-legal-intro{margin-bottom:20px;padding:18px;border:1px solid #cfe0ff;border-radius:16px;background:#f4f8ff}
.cm-legal-intro h3{margin:0 0 6px!important;color:#12184a;font-size:21px!important}
.cm-legal-intro p{margin:0;color:#5d6c89;line-height:1.65}
.cm-legal-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.cm-legal-links a,.cm-consent a{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px;font-weight:700}
.cm-legal-links a{display:inline-flex;padding:8px 11px;border:1px solid #cfe0ff;border-radius:10px;background:#fff;text-decoration:none}
.cm-consent{align-items:flex-start;line-height:1.65}
.cm-consent input{flex:0 0 auto;margin-top:4px;accent-color:#2563eb}
.cm-consent-optional{background:#f8fafc;border-style:dashed}
.cm-review-notice{display:flex;flex-direction:column;gap:3px;margin-bottom:18px;padding:16px 18px;border:1px solid #bfd3f8;border-radius:15px;background:#eff6ff;color:#536481}
.cm-review-notice strong{color:#12184a;font-size:16px}
.cm-review-section{margin-bottom:16px;border:1px solid #dce5f3;border-radius:17px;background:#fff;overflow:hidden}
.cm-review-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#f8faff;border-bottom:1px solid #e6edf7}
.cm-review-title>div{display:flex;align-items:center;gap:10px}
.cm-review-title>div>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#eaf2ff;color:#2563eb;font-size:12px;font-weight:800}
.cm-review-title h3{margin:0!important;color:#12184a;font-size:18px!important}
.cm-review-title button{border:1px solid #cfe0ff!important;background:#fff!important;color:#1d4ed8!important;padding:7px 11px!important;border-radius:9px!important;font-size:12px;font-weight:800;cursor:pointer}
.cm-review-title button:hover{background:#eff6ff!important}
.cm-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.cm-review-grid>div{padding:14px 16px;border-bottom:1px solid #edf1f7}
.cm-review-grid>div:nth-child(odd){border-right:1px solid #edf1f7}
.cm-review-grid>div.full{grid-column:1/-1;border-right:0}
.cm-review-grid span,.cm-review-grid strong{display:block}
.cm-review-grid span{margin-bottom:3px;color:#7a879f;font-size:12px}
.cm-review-grid strong{color:#1f2a44;font-size:14px;white-space:pre-wrap;word-break:break-word}
.cm-review-medical{display:grid;grid-template-columns:1fr 1fr}
.cm-review-medical-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 16px;border-bottom:1px solid #edf1f7}
.cm-review-medical-item:nth-child(odd){border-right:1px solid #edf1f7}
.cm-review-medical-item span{color:#586984;font-size:13px;line-height:1.45}
.cm-review-medical-item strong{color:#667085;font-size:13px}
.cm-review-medical-item.is-yes{background:#fff9ed}
.cm-review-medical-item.is-yes strong{color:#9a5b00}
.cm-review-medical-item small{grid-column:1/-1;padding:8px 10px;border-radius:9px;background:#fff;color:#50607b;white-space:pre-wrap;word-break:break-word}
.cm-review-vaccines{border-top:1px solid #edf1f7}
.cm-review-consents>div{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 16px;border-bottom:1px solid #edf1f7}
.cm-review-consents>div:last-child{border-bottom:0}
.cm-review-consents span{color:#586984;font-size:13px}
.cm-review-consents strong{color:#7c8799;font-size:13px;text-align:right}
.cm-review-consents strong.is-ok{color:#0d9f6e}
.cm-payment-note{display:flex;flex-direction:column;gap:3px;margin:18px 0;padding:15px 17px;border:1px solid #d7e1ef;border-radius:14px;background:#f8fafc;color:#65748d}
.cm-payment-note strong{color:#12184a}
.cm-final-check{display:flex;align-items:flex-start;gap:12px;padding:17px;border:2px solid #c6d8fb;border-radius:16px;background:#f4f8ff;line-height:1.6}
.cm-final-check input{width:21px;height:21px;flex:0 0 auto;margin-top:3px;accent-color:#2563eb}
.cm-final-check strong{color:#12184a}
.cm-success-note{margin:18px auto 0;max-width:560px;padding:13px 15px;border-radius:13px;background:#eef5ff;color:#556b87;font-size:14px}
.cm-next[disabled]{cursor:not-allowed}
@media(max-width:640px){
  .cm-legal-links{display:grid;grid-template-columns:1fr}
  .cm-legal-links a{justify-content:center}
  .cm-review-grid,.cm-review-medical{grid-template-columns:1fr}
  .cm-review-grid>div:nth-child(odd),.cm-review-medical-item:nth-child(odd){border-right:0}
  .cm-review-grid>div.full{grid-column:auto}
  .cm-review-title{align-items:flex-start}
  .cm-review-title button{flex:0 0 auto}
  .cm-review-consents>div{align-items:flex-start;flex-direction:column;gap:3px}
}

/* v4.1 final review + legal confirmation */
.cm-final-confirmations{margin-top:22px;padding-top:4px}
.cm-final-confirmations>h3{margin:0 0 5px;color:#12184a;font-size:22px}
.cm-final-confirmations>p{margin:0 0 15px;color:#6b7890;line-height:1.65}
.cm-confirmation-primary{border-color:#cfe0ff;background:#f8fbff}
.cm-confirmation-primary input{accent-color:#2563eb;flex:0 0 auto}


/* v4.1.1 – compact time column, final WhatsApp cancellation note */
.cm-calendar-layout{align-items:start}
.cm-time-box{align-self:start;height:auto;min-height:0}
.cm-whatsapp-cancel-note{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:15px 17px;border:1px solid #bde9cd;border-radius:14px;background:#f0fbf4;color:#50657a}
.cm-whatsapp-cancel-note>div{display:flex;flex-direction:column;gap:2px}
.cm-whatsapp-cancel-note strong{color:#153f2a}
.cm-whatsapp-cancel-note span{font-size:13px;line-height:1.55}
.cm-whatsapp-cancel-note a{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:9px 13px;border-radius:10px;background:#25D366;color:#083b1d;text-decoration:none;font-weight:800;white-space:nowrap}
.cm-whatsapp-cancel-note a:hover{filter:brightness(.96)}
.cm-success-note a{color:#1d4ed8;font-weight:800;text-decoration:underline;text-underline-offset:2px}
@media(max-width:640px){.cm-whatsapp-cancel-note{align-items:stretch;flex-direction:column}.cm-whatsapp-cancel-note a{width:100%}}


/* v4.1.3 – form spacing, mobile date containment and mandatory vaccination dates */
.cm-fields{
  column-gap:24px;
  row-gap:28px;
  align-items:start;
  min-width:0;
}
.cm-fields > label{
  align-content:start;
  min-width:0;
  max-width:100%;
}
.cm-fields input,
.cm-fields select,
.cm-fields textarea,
.cm-med-question textarea{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.cm-health-additional{
  margin-top:28px;
}
.cm-health-additional .cm-vaccine-name,
.cm-health-additional .cm-notes-full{
  grid-column:1/-1;
}
.cm-health-additional .cm-notes-full textarea{
  min-height:88px;
}
.cm-alert{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.cm-alert[hidden]{display:none!important}
.cm-alert strong{
  color:#8f1f2b;
  font-size:15px;
  font-weight:800;
}
.cm-alert span{
  display:block;
}

@media(max-width:640px){
  .cm-fields,
  .cm-health-additional{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%;
    max-width:100%;
    min-width:0;
    column-gap:0;
    row-gap:24px;
  }
  .cm-fields > label,
  .cm-health-additional > label{
    grid-column:auto!important;
    width:100%;
    min-width:0;
    max-width:100%;
    overflow:hidden;
  }
  .cm-fields input[type="date"],
  .cm-health-additional input[type="date"]{
    -webkit-appearance:none;
    appearance:none;
    display:block!important;
    box-sizing:border-box!important;
    inline-size:100%!important;
    width:100%!important;
    min-inline-size:0!important;
    min-width:0!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    overflow:hidden;
  }
  .cm-fields input[type="date"]::-webkit-date-and-time-value,
  .cm-health-additional input[type="date"]::-webkit-date-and-time-value{
    min-width:0!important;
    max-width:100%!important;
  }
}


/* =========================================================
 * v4.1.6 – appointment suggestions + definitive form/mobile fixes
 * ========================================================= */

/* Only three suggested times are shown initially; the rest expand on demand. */
#cm-booking-form .cm-time-box{
  height:auto!important;
  min-height:0!important;
  align-self:start!important;
}
#cm-booking-form .cm-time-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
#cm-booking-form .cm-slot{
  width:100%!important;
  min-width:0!important;
  min-height:52px!important;
  padding:11px 14px!important;
}
#cm-booking-form .cm-more-times{
  display:block;
  width:100%;
  margin:14px 0 0!important;
  padding:11px 14px!important;
  border:1px solid #cbdaf3!important;
  border-radius:12px!important;
  background:#f7faff!important;
  color:#1d4ed8!important;
  font-weight:800!important;
  cursor:pointer;
}
#cm-booking-form .cm-more-times:hover{
  background:#eef5ff!important;
}
#cm-booking-form .cm-more-times[hidden]{
  display:none!important;
}

/* Strong, theme-resistant spacing for all patient and vaccination fields. */
#cm-booking-form .cm-fields{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  column-gap:30px!important;
  row-gap:34px!important;
  align-items:start!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}
#cm-booking-form .cm-fields > label{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
#cm-booking-form .cm-fields > label.full,
#cm-booking-form .cm-health-additional .cm-vaccine-name,
#cm-booking-form .cm-health-additional .cm-notes-full{
  grid-column:1/-1!important;
}
#cm-booking-form .cm-health-additional{
  margin-top:36px!important;
}
#cm-booking-form .cm-address-fields{
  grid-column:1/-1!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.75fr) minmax(130px,.62fr) minmax(0,1fr)!important;
  gap:16px!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  align-items:start!important;
}
#cm-booking-form .cm-address-fields > label{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
}
#cm-booking-form .cm-address-fields input{
  min-width:0!important;
  max-width:100%!important;
}
#cm-booking-form .cm-field-label{
  display:block!important;
  width:100%!important;
  margin:0 0 11px!important;
  padding:0!important;
  color:var(--cmn)!important;
  font-weight:700!important;
  line-height:1.35!important;
}
#cm-booking-form .cm-field-label em{
  display:inline!important;
  margin-left:3px!important;
  color:#d33!important;
  font-style:normal!important;
  white-space:nowrap!important;
}
#cm-booking-form .cm-field-help{
  display:block!important;
  margin:8px 0 0!important;
  line-height:1.45!important;
}
#cm-booking-form .cm-phone-field{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
}

/* Uniform input geometry; fixes Elementor/theme inheritance. */
#cm-booking-form .cm-fields input:not([type="hidden"]):not([type="checkbox"]),
#cm-booking-form .cm-fields select{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:58px!important;
  min-height:58px!important;
  max-height:58px!important;
  margin:0!important;
  padding:0 15px!important;
  border:1px solid var(--cml)!important;
  border-radius:13px!important;
  background:#fff!important;
  box-sizing:border-box!important;
  font-size:16px!important;
  line-height:1.35!important;
}
#cm-booking-form .cm-fields textarea{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:100px!important;
  margin:0!important;
  padding:13px 15px!important;
  border:1px solid var(--cml)!important;
  border-radius:13px!important;
  background:#fff!important;
  box-sizing:border-box!important;
  font-size:16px!important;
  line-height:1.5!important;
  resize:vertical;
}

/* iPhone/Safari date inputs: enforce a real field height and viewport-safe width. */
#cm-booking-form .cm-fields input[type="date"],
#cm-booking-form .cm-health-additional input[type="date"]{
  -webkit-appearance:none!important;
  appearance:none!important;
  position:relative!important;
  display:block!important;
  inline-size:100%!important;
  width:100%!important;
  min-inline-size:0!important;
  min-width:0!important;
  max-inline-size:100%!important;
  max-width:100%!important;
  block-size:58px!important;
  height:58px!important;
  min-height:58px!important;
  max-height:58px!important;
  margin:0!important;
  padding:0 15px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  background-color:#fff!important;
  color:var(--cmt)!important;
  font-size:16px!important;
  line-height:58px!important;
  text-align:left!important;
}
#cm-booking-form input[type="date"]::-webkit-date-and-time-value{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:58px!important;
  margin:0!important;
  padding:0!important;
  line-height:58px!important;
  text-align:left!important;
}
#cm-booking-form input[type="date"]::-webkit-datetime-edit,
#cm-booking-form input[type="date"]::-webkit-datetime-edit-fields-wrapper{
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  height:58px!important;
  padding:0!important;
  margin:0!important;
}
#cm-booking-form input[type="date"]::-webkit-calendar-picker-indicator{
  opacity:.75!important;
  margin:0!important;
  padding:6px!important;
}

@media(max-width:768px){
  #cm-booking-form .cm-fields,
  #cm-booking-form .cm-health-additional{
    grid-template-columns:minmax(0,1fr)!important;
    column-gap:0!important;
    row-gap:30px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  #cm-booking-form .cm-address-fields{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  #cm-booking-form .cm-fields > label,
  #cm-booking-form .cm-health-additional > label,
  #cm-booking-form .cm-fields > label.full{
    grid-column:1/-1!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  #cm-booking-form .cm-fields input[type="date"],
  #cm-booking-form .cm-health-additional input[type="date"]{
    inline-size:100%!important;
    width:100%!important;
    min-inline-size:0!important;
    min-width:0!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    block-size:58px!important;
    height:58px!important;
    min-height:58px!important;
    max-height:58px!important;
  }
  #cm-booking-form .cm-time-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media(max-width:480px){
  #cm-booking-form .cm-time-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
  }
  #cm-booking-form .cm-slot{
    min-height:50px!important;
    padding:9px 7px!important;
    font-size:15px!important;
  }
  #cm-booking-form .cm-fields,
  #cm-booking-form .cm-health-additional{
    row-gap:28px!important;
  }
}

/* =========================================================
 * v4.1.8 – private two-choice appointment suggestions
 * ========================================================= */
#cm-booking-form .cm-time-selection[hidden],
#cm-booking-form .cm-other-times[hidden]{
  display:none!important;
}
#cm-booking-form .cm-time-selection{
  margin-top:18px;
  padding-top:17px;
  border-top:1px solid #E7EDF7;
}
#cm-booking-form .cm-time-selection-title{
  margin:0 0 12px!important;
  color:var(--cmn)!important;
  font-size:14px!important;
  font-weight:800!important;
}
#cm-booking-form .cm-suggestion-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
}
#cm-booking-form .cm-suggested-slot{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  min-height:66px!important;
  padding:13px 12px!important;
  border:1px solid #DCE5F3!important;
  border-radius:15px!important;
  background:#fff!important;
  color:var(--cmn)!important;
  box-shadow:0 5px 14px rgba(18,24,74,.035)!important;
  transition:all .2s ease!important;
}
#cm-booking-form .cm-suggested-slot .cm-slot-time{
  font-size:20px!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
}
#cm-booking-form .cm-suggested-slot small{
  font-size:12px!important;
  font-weight:700!important;
  color:#7A879E!important;
}
#cm-booking-form .cm-suggested-slot:hover{
  background:#EFF6FF!important;
  border-color:#2563EB!important;
  color:#1D4ED8!important;
  transform:translateY(-1px)!important;
  box-shadow:0 9px 20px rgba(37,99,235,.09)!important;
}
#cm-booking-form .cm-suggested-slot.selected{
  background:#12184A!important;
  border-color:#12184A!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(18,24,74,.16)!important;
}
#cm-booking-form .cm-suggested-slot.selected small{
  color:rgba(255,255,255,.72)!important;
}
#cm-booking-form .cm-other-times{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  margin:13px 0 0!important;
  padding:11px 14px!important;
  border:0!important;
  border-radius:11px!important;
  background:transparent!important;
  color:#2563EB!important;
  font:inherit!important;
  font-size:14px!important;
  font-weight:800!important;
  cursor:pointer;
  transition:background .2s ease,color .2s ease;
}
#cm-booking-form .cm-other-times:hover{
  background:#EFF6FF!important;
  color:#1D4ED8!important;
}
#cm-booking-form .cm-other-times span{
  display:inline-grid;
  place-items:center;
  width:23px;
  height:23px;
  border-radius:50%;
  background:#EFF6FF;
  font-size:16px;
  line-height:1;
}
@media(max-width:640px){
  #cm-booking-form .cm-suggestion-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
  }
  #cm-booking-form .cm-suggested-slot{
    min-height:60px!important;
    padding:11px 8px!important;
  }
  #cm-booking-form .cm-suggested-slot .cm-slot-time{
    font-size:18px!important;
  }
}
@media(max-width:360px){
  #cm-booking-form .cm-suggestion-grid{
    grid-template-columns:1fr!important;
  }
}

/* =========================================================
 * v4.3.0 – WPML / Arabic RTL support
 * These rules are intentionally scoped to the booking app so
 * the approved LTR design stays unchanged in German.
 * ========================================================= */
.cm-app[dir="rtl"]{
  direction:rtl;
  text-align:right;
}
.cm-app[dir="rtl"] .cm-card,
.cm-app[dir="rtl"] .cm-sidebar,
.cm-app[dir="rtl"] #cm-booking-form,
.cm-app[dir="rtl"] .cm-panel,
.cm-app[dir="rtl"] .cm-card-head,
.cm-app[dir="rtl"] .cm-alert{
  direction:rtl;
  text-align:right;
}
.cm-app[dir="rtl"] .cm-side-step{
  grid-template-columns:42px minmax(0,1fr);
}
.cm-app[dir="rtl"] .cm-calendar-head,
.cm-app[dir="rtl"] .cm-actions,
.cm-app[dir="rtl"] .cm-consent,
.cm-app[dir="rtl"] .cm-whatsapp-cancel-note,
.cm-app[dir="rtl"] .cm-review-title{
  direction:rtl;
}
.cm-app[dir="rtl"] .cm-field-label,
.cm-app[dir="rtl"] .cm-fields label,
.cm-app[dir="rtl"] .cm-med-question,
.cm-app[dir="rtl"] .cm-review-grid,
.cm-app[dir="rtl"] .cm-review-medical,
.cm-app[dir="rtl"] .cm-time-box{
  text-align:right;
}
.cm-app[dir="rtl"] #cm-booking-form .cm-field-label em{
  margin-left:0!important;
  margin-right:3px!important;
}

/* Dates, phone numbers, email addresses, postal codes and appointment
 * times remain LTR even in Arabic. This prevents Safari/iOS from changing
 * the proven input geometry or reordering machine-readable values. */
.cm-app[dir="rtl"] #cm-booking-form input[type="date"],
.cm-app[dir="rtl"] #cm-booking-form input[type="tel"],
.cm-app[dir="rtl"] #cm-booking-form input[type="email"],
.cm-app[dir="rtl"] #cm-booking-form input[type="number"],
.cm-app[dir="rtl"] #cm-booking-form [name="address_postal"],
.cm-app[dir="rtl"] #cm-booking-form .cm-phone-field,
.cm-app[dir="rtl"] #cm-booking-form .cm-calendar-box,
.cm-app[dir="rtl"] #cm-booking-form .cm-week,
.cm-app[dir="rtl"] #cm-booking-form .cm-days,
.cm-app[dir="rtl"] #cm-booking-form .cm-suggestion-grid,
.cm-app[dir="rtl"] #cm-booking-form .cm-suggested-slot{
  direction:ltr!important;
}
.cm-app[dir="rtl"] #cm-booking-form input[type="date"],
.cm-app[dir="rtl"] #cm-booking-form input[type="tel"],
.cm-app[dir="rtl"] #cm-booking-form input[type="email"],
.cm-app[dir="rtl"] #cm-booking-form input[type="number"],
.cm-app[dir="rtl"] #cm-booking-form [name="address_postal"]{
  text-align:left!important;
}
.cm-app[dir="rtl"] #cm-booking-form .cm-address-fields [name="address_street"],
.cm-app[dir="rtl"] #cm-booking-form .cm-address-fields [name="address_city"],
.cm-app[dir="rtl"] #cm-booking-form textarea,
.cm-app[dir="rtl"] #cm-booking-form input[type="text"]:not([name="child_weight"]){
  text-align:right;
}
.cm-app[dir="rtl"] #cm-booking-form [name="child_weight"]{
  direction:ltr;
  text-align:left;
}
.cm-app[dir="rtl"] .cm-review-grid>div:nth-child(odd),
.cm-app[dir="rtl"] .cm-review-medical-item:nth-child(odd){
  border-right:0;
  border-left:1px solid #edf1f7;
}
.cm-app[dir="rtl"] .cm-review-grid>div.full{
  border-left:0;
}
.cm-app[dir="rtl"] .cm-review-medical-item{
  grid-template-columns:minmax(0,1fr) auto;
}
.cm-app[dir="rtl"] .cm-review-medical-item small{
  grid-column:1/-1;
}
.cm-app[dir="rtl"] .cm-day.available:after{
  left:50%;
  right:auto;
}
@media(max-width:640px){
  .cm-app[dir="rtl"] .cm-review-grid>div:nth-child(odd),
  .cm-app[dir="rtl"] .cm-review-medical-item:nth-child(odd){
    border-left:0;
  }
}

/* CircumMed age-stop compact alignment adjustment (v4.4.4) */
.cm-age-stop {
    display: grid;
    align-items: center !important;
    padding: 10px !important;
}
.cm-age-stop h3 {
    margin: 0 0 0 5px !important;
    font-size: 18px !important;
}

/* v5.0 private appointment invitation */
.cm-invite-reserved{
  display:flex;
  align-items:center;
  gap:16px;
  padding:22px 24px;
  border:1px solid #cfe0ff;
  border-radius:18px;
  background:linear-gradient(135deg,#f8fbff,#eef5ff);
  color:#33415f;
}
.cm-invite-reserved[hidden],.cm-calendar-layout[hidden]{display:none!important}
.cm-invite-icon{
  flex:0 0 46px;
  width:46px;height:46px;
  display:grid;place-items:center;
  border-radius:14px;
  background:#2563eb;
  color:#fff;
  font-size:22px;
  font-weight:800;
}
.cm-invite-reserved span,.cm-invite-reserved strong,.cm-invite-reserved small{display:block}
.cm-invite-reserved span{font-size:13px;font-weight:800;color:#5f6f91;margin-bottom:4px}
.cm-invite-reserved strong{font-size:20px;color:#12184a;line-height:1.35}
.cm-invite-reserved strong b{font-weight:800}
.cm-invite-reserved small{margin-top:5px;color:#6f7d9c}
@media(max-width:640px){
  .cm-invite-reserved{padding:18px;align-items:flex-start}
  .cm-invite-icon{width:40px;height:40px;flex-basis:40px}
  .cm-invite-reserved strong{font-size:17px}
}


/* v5.0.4 – WhatsApp confirmation alignment refinement */
#cm-booking-form .cm-whatsapp-confirmation{
  position:relative;
  display:block!important;
  margin-top:2px;
  padding:20px;
  border:1px solid #bfe7ca;
  border-radius:18px;
  background:linear-gradient(180deg,#f7fdf8 0%,#ffffff 100%);
  box-shadow:0 10px 28px rgba(19,94,53,.06);
  line-height:1.55;
  font-weight:500;
  overflow:hidden;
}
#cm-booking-form .cm-whatsapp-confirmation .cm-whatsapp-copy{
  display:grid;
  gap:12px;
  min-width:0;
}
#cm-booking-form .cm-whatsapp-confirmation .cm-whatsapp-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  padding:6px 12px;
  border-radius:999px;
  background:#eafaf0;
  border:1px solid #c6efd3;
  color:#166534;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1;
}
#cm-booking-form .cm-whatsapp-confirmation .cm-whatsapp-badge::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:#25d366;
  box-shadow:0 0 0 4px rgba(37,211,102,.12);
  flex:0 0 auto;
}
#cm-booking-form .cm-whatsapp-confirmation .cm-whatsapp-agreement{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-width:0;
}
#cm-booking-form .cm-whatsapp-confirmation input[type="checkbox"]{
  flex:0 0 auto;
  width:20px;
  height:20px;
  margin:3px 0 0;
  accent-color:#25d366;
}
#cm-booking-form .cm-whatsapp-confirmation .cm-whatsapp-text{
  min-width:0;
  color:var(--cmn);
  font-weight:700;
}
#cm-booking-form .cm-whatsapp-confirmation .cm-whatsapp-text em{
  color:#d33;
  font-style:normal;
}
#cm-booking-form .cm-whatsapp-confirmation input.cm-invalid{
  outline:2px solid rgba(216,71,85,.22);
  outline-offset:2px;
}
@media(max-width:640px){
  #cm-booking-form .cm-whatsapp-confirmation{padding:20px;border-radius:16px}
  #cm-booking-form .cm-whatsapp-confirmation .cm-whatsapp-copy{gap:10px}
  #cm-booking-form .cm-whatsapp-confirmation .cm-whatsapp-agreement{gap:10px}
  #cm-booking-form .cm-whatsapp-confirmation .cm-whatsapp-badge{font-size:11px;padding:6px 10px}
}


/* v5.3.0 – vaccination state options */
#cm-booking-form .cm-health-additional .cm-vaccine-field{
  display:grid;
  gap:10px;
  min-width:0;
}
#cm-booking-form .cm-health-additional .cm-vaccine-field>label:first-child{
  display:grid!important;
  gap:7px;
  min-width:0;
}
#cm-booking-form .cm-vaccine-none{
  display:flex!important;
  align-items:flex-start;
  gap:10px;
  margin:0!important;
  padding:11px 12px!important;
  border:1px solid #dfe7f3;
  border-radius:12px;
  background:#f8faff;
  color:#53617d!important;
  font-size:13px;
  font-weight:700!important;
  line-height:1.45;
  cursor:pointer;
}
#cm-booking-form .cm-vaccine-none input{
  flex:0 0 auto;
  width:18px!important;
  height:18px!important;
  min-height:18px!important;
  margin:1px 0 0!important;
  padding:0!important;
  accent-color:#2563eb;
}
#cm-booking-form .cm-vaccine-field.is-none>label:first-child{opacity:.55}
#cm-booking-form .cm-vaccine-field.is-none input[type="date"]{background:#f3f5f8!important}
.cm-app[dir="rtl"] #cm-booking-form .cm-vaccine-none{direction:rtl;text-align:right}
