.cbmuk-contact,
.cbmuk-contact *{box-sizing:border-box}
.cbmuk-contact{--cbmuk-navy:#102b46;--cbmuk-navy-deep:#0a2036;--cbmuk-red:#0f8ccf;--cbmuk-red-dark:#0a76af;--cbmuk-ink:#172536;--cbmuk-muted:#5d6976;--cbmuk-line:rgba(16,43,70,.14);--cbmuk-card:#fff;--cbmuk-soft:#f5f3ee;--cbmuk-shadow:0 24px 70px rgba(13,35,57,.10);color:var(--cbmuk-ink);font:inherit;line-height:1.65;width:100%;overflow:hidden}
.cbmuk-contact a{text-decoration:none}
.cbmuk-shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.cbmuk-hero{padding:68px 0 44px;background:transparent}
.cbmuk-hero-inner{max-width:900px}
.cbmuk-eyebrow,.cbmuk-kicker{margin:0 0 12px;color:var(--cbmuk-red);font-size:12px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.cbmuk-hero h1{max-width:900px;margin:0;color:var(--cbmuk-navy-deep);font-size:clamp(38px,4.4vw,62px);line-height:1.05;letter-spacing:-.04em}
.cbmuk-hero-statement{max-width:880px;margin:18px 0 0;color:var(--cbmuk-navy);font-size:clamp(21px,2.5vw,30px);font-weight:700;line-height:1.25;letter-spacing:-.02em}.cbmuk-lead{max-width:860px;margin:18px 0 0;color:var(--cbmuk-muted);font-size:clamp(16px,1.8vw,20px);line-height:1.65}
.cbmuk-main{padding-bottom:78px}
.cbmuk-booking-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.55fr);gap:26px;align-items:stretch;scroll-margin-top:120px}
.cbmuk-booking-card,.cbmuk-booking-stage,.cbmuk-form-card,.cbmuk-enquiry-copy{border:1px solid var(--cbmuk-line);border-radius:22px;background:var(--cbmuk-card);box-shadow:var(--cbmuk-shadow)}
.cbmuk-booking-card{padding:32px;position:relative;overflow:hidden}
.cbmuk-booking-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--cbmuk-red)}
.cbmuk-person{display:flex;gap:16px;align-items:center;margin:12px 0 24px;padding-bottom:22px;border-bottom:1px solid var(--cbmuk-line)}
.cbmuk-avatar{display:grid;place-items:center;flex:0 0 60px;height:60px;border-radius:50%;background:var(--cbmuk-navy);color:#fff;font-weight:800;letter-spacing:.06em}
.cbmuk-person-label{margin:0 0 2px;color:var(--cbmuk-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.cbmuk-person h2{margin:0;color:var(--cbmuk-navy-deep);font-size:25px;line-height:1.15;letter-spacing:-.025em}
.cbmuk-person p:last-child{margin:5px 0 0;color:var(--cbmuk-muted);font-size:14px}
.cbmuk-benefits{display:grid;gap:16px;margin:0 0 24px;padding:0;list-style:none}
.cbmuk-benefits li{position:relative;padding-left:24px}
.cbmuk-benefits li:before{content:"✓";position:absolute;left:0;top:0;color:var(--cbmuk-red);font-weight:900}
.cbmuk-benefits strong,.cbmuk-benefits span{display:block}
.cbmuk-benefits strong{color:var(--cbmuk-navy-deep);font-size:15px}
.cbmuk-benefits span{color:var(--cbmuk-muted);font-size:13px}
.cbmuk-primary-button,.cbmuk-submit-button,.cbmuk-external-booking-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:54px;padding:14px 20px;border:0;border-radius:9px;background:var(--cbmuk-red);color:#fff!important;font:inherit;font-size:15px;font-weight:800;cursor:pointer;transition:transform .2s ease,background .2s ease,box-shadow .2s ease;box-shadow:0 10px 24px rgba(15,140,207,.20)}
.cbmuk-primary-button:hover,.cbmuk-submit-button:hover,.cbmuk-external-booking-button:hover{background:var(--cbmuk-red-dark);transform:translateY(-1px)}
.cbmuk-primary-button:focus-visible,.cbmuk-submit-button:focus-visible,.cbmuk-close-booking:focus-visible,.cbmuk-field input:focus,.cbmuk-field select:focus,.cbmuk-field textarea:focus{outline:3px solid rgba(15,140,207,.24);outline-offset:2px}
.cbmuk-card-note{margin:15px 0 0;color:var(--cbmuk-muted);font-size:12px;line-height:1.55;text-align:center}
.cbmuk-booking-stage{min-height:100%;padding:40px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#fff 0%,#fbfaf7 100%)}.cbmuk-booking-stage.is-calendar-open{justify-content:flex-start}
.cbmuk-booking-stage h2,.cbmuk-enquiry-copy h2{margin:0;color:var(--cbmuk-navy-deep);font-size:clamp(31px,3.5vw,46px);line-height:1.08;letter-spacing:-.035em}
.cbmuk-booking-intro>p:not(.cbmuk-eyebrow),.cbmuk-enquiry-copy>p:not(.cbmuk-eyebrow){max-width:720px;margin:18px 0 0;color:var(--cbmuk-muted);font-size:16px}
.cbmuk-process{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}
.cbmuk-process>div{padding:20px;border:1px solid var(--cbmuk-line);border-radius:14px;background:rgba(255,255,255,.82)}
.cbmuk-process span{display:block;color:var(--cbmuk-red);font-size:12px;font-weight:900;letter-spacing:.12em}
.cbmuk-process strong{display:block;margin-top:10px;color:var(--cbmuk-navy);font-size:14px}
.cbmuk-process p{margin:5px 0 0;color:var(--cbmuk-muted);font-size:12px;line-height:1.5}
.cbmuk-iframe-wrap{width:100%}
.cbmuk-iframe-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;color:var(--cbmuk-navy)}
.cbmuk-iframe-head>div{display:flex;align-items:center;gap:10px}
.cbmuk-live-dot{width:9px;height:9px;border-radius:50%;background:#25a55f;box-shadow:0 0 0 5px rgba(37,165,95,.12)}
.cbmuk-close-booking{border:0;background:transparent;color:var(--cbmuk-muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.cbmuk-bookings-iframe{display:block;width:100%;min-height:860px;border:1px solid var(--cbmuk-line);border-radius:14px;background:#fff}
.cbmuk-iframe-help{margin:12px 0 0;color:var(--cbmuk-muted);font-size:12px;text-align:center}
.cbmuk-iframe-help a{color:var(--cbmuk-red);font-weight:700}
.cbmuk-setup-message{padding:24px;border-radius:14px;background:var(--cbmuk-soft);color:var(--cbmuk-muted)}
.cbmuk-setup-message strong{color:var(--cbmuk-navy)}
.cbmuk-contact-options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0 50px}
.cbmuk-option{display:flex;gap:16px;min-height:142px;padding:22px 24px;border:1px solid var(--cbmuk-line);border-radius:16px;background:rgba(255,255,255,.72);color:inherit!important;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}
.cbmuk-option:is(a):hover,.cbmuk-option:is(a):focus-visible{transform:translateY(-2px);border-color:rgba(15,140,207,.35);background:#fff;box-shadow:0 14px 34px rgba(13,35,57,.08)}
.cbmuk-option-number{flex:0 0 auto;color:var(--cbmuk-red);font-size:12px;font-weight:900;letter-spacing:.12em}
.cbmuk-option small,.cbmuk-option strong,.cbmuk-option em{display:block}
.cbmuk-option small{color:var(--cbmuk-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.cbmuk-option strong{margin-top:12px;color:var(--cbmuk-navy-deep);font-size:16px;line-height:1.35;overflow-wrap:anywhere}
.cbmuk-option em{margin-top:8px;color:var(--cbmuk-muted);font-size:13px;font-style:normal;line-height:1.5}
.cbmuk-enquiry-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:26px;scroll-margin-top:120px}
.cbmuk-enquiry-copy{padding:40px;background:var(--cbmuk-navy-deep);color:#fff;border-color:transparent}
.cbmuk-enquiry-copy .cbmuk-eyebrow{color:#67c7f0}
.cbmuk-enquiry-copy h2{color:#fff}
.cbmuk-enquiry-copy>p:not(.cbmuk-eyebrow){color:rgba(255,255,255,.72)}
.cbmuk-assurance{display:grid;gap:18px;margin-top:30px}
.cbmuk-assurance>div{padding-left:20px;border-left:2px solid var(--cbmuk-red)}
.cbmuk-assurance strong,.cbmuk-assurance span{display:block}
.cbmuk-assurance strong{font-size:14px;color:#fff}
.cbmuk-assurance span{margin-top:4px;color:rgba(255,255,255,.66);font-size:13px;line-height:1.55}
.cbmuk-office-hours{margin-top:30px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14)}
.cbmuk-office-hours span,.cbmuk-office-hours strong{display:block}
.cbmuk-office-hours span{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.55);font-weight:800}
.cbmuk-office-hours strong{margin-top:5px;font-size:14px;color:#fff}
.cbmuk-form-card{padding:36px}
.cbmuk-form{display:grid;gap:18px}
.cbmuk-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cbmuk-field{display:grid;gap:7px}
.cbmuk-field>span{color:var(--cbmuk-navy);font-size:13px;font-weight:800}
.cbmuk-field input,.cbmuk-field select,.cbmuk-field textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid rgba(16,43,70,.2);border-radius:8px;background:#fff;color:var(--cbmuk-ink);font:inherit;font-size:15px;box-shadow:none}
.cbmuk-field textarea{resize:vertical;min-height:140px}
.cbmuk-field input:focus,.cbmuk-field select:focus,.cbmuk-field textarea:focus{border-color:var(--cbmuk-red)}
.cbmuk-field-help{margin:-8px 0 0;color:var(--cbmuk-muted);font-size:12px}
.cbmuk-consent{display:flex;align-items:flex-start;gap:10px;color:var(--cbmuk-muted);font-size:12px;line-height:1.5;cursor:pointer}
.cbmuk-consent input{margin-top:3px}.cbmuk-consent a{color:var(--cbmuk-red);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.cbmuk-submit-button{width:auto;min-width:210px;justify-self:start}
.cbmuk-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.cbmuk-alert{margin-bottom:20px;padding:14px 16px;border-radius:9px;font-size:13px}
.cbmuk-alert-success{background:#ecf8f1;color:#17643b;border:1px solid #bce4cc}
.cbmuk-alert-error{background:#fff1f2;color:#8c1d2a;border:1px solid #f0c4c9}
.cbmuk-external-booking-button{width:auto}
@media(max-width:980px){.cbmuk-booking-grid,.cbmuk-enquiry-grid{grid-template-columns:1fr}.cbmuk-booking-card{position:static}.cbmuk-contact-options{grid-template-columns:1fr}.cbmuk-option{min-height:0}.cbmuk-booking-stage{min-height:420px}}
@media(max-width:720px){.cbmuk-shell{width:min(100% - 28px,1180px)}.cbmuk-hero{padding:50px 0 34px}.cbmuk-hero h1{font-size:clamp(36px,11vw,50px)}.cbmuk-hero-statement{font-size:clamp(20px,6.5vw,27px)}.cbmuk-main{padding-bottom:62px}.cbmuk-booking-card,.cbmuk-booking-stage,.cbmuk-enquiry-copy,.cbmuk-form-card{padding:26px;border-radius:16px}.cbmuk-process,.cbmuk-field-grid{grid-template-columns:1fr}.cbmuk-bookings-iframe{min-height:820px}.cbmuk-contact-options{margin-bottom:44px}.cbmuk-submit-button{width:100%}}
@media(prefers-reduced-motion:reduce){.cbmuk-contact *{scroll-behavior:auto!important;transition:none!important}}

/* v1.0.1 — isolate CBM action buttons from aggressive theme/Elementor button rules. */
body.cbmuk-contact-active .cbmuk-contact button.cbmuk-primary-button,
body.cbmuk-contact-active .cbmuk-contact button.cbmuk-submit-button,
body.cbmuk-contact-active .cbmuk-contact a.cbmuk-primary-button,
body.cbmuk-contact-active .cbmuk-contact a.cbmuk-external-booking-button,
.cbmuk-contact button.cbmuk-primary-button,
.cbmuk-contact button.cbmuk-submit-button,
.cbmuk-contact a.cbmuk-primary-button,
.cbmuk-contact a.cbmuk-external-booking-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    min-height: 54px !important;
    padding: 14px 22px !important;
    margin: 0 !important;
    border: 1px solid #0f8ccf !important;
    border-radius: 9px !important;
    background: #0f8ccf !important;
    background-image: none !important;
    box-shadow: 0 10px 24px rgba(15,140,207,.20) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-style: normal !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    text-decoration: none !important;
    text-indent: 0 !important;
    text-shadow: none !important;
    text-transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    cursor: pointer !important;
}

body.cbmuk-contact-active .cbmuk-contact button.cbmuk-primary-button,
.cbmuk-contact button.cbmuk-primary-button {
    width: 100% !important;
}

body.cbmuk-contact-active .cbmuk-contact button.cbmuk-submit-button,
.cbmuk-contact button.cbmuk-submit-button {
    width: auto !important;
    min-width: 210px !important;
    justify-self: start !important;
}

body.cbmuk-contact-active .cbmuk-contact :is(.cbmuk-primary-button,.cbmuk-submit-button,.cbmuk-external-booking-button) span,
.cbmuk-contact :is(.cbmuk-primary-button,.cbmuk-submit-button,.cbmuk-external-booking-button) span {
    display: inline !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font: inherit !important;
    line-height: inherit !important;
    opacity: 1 !important;
    visibility: visible !important;
}

body.cbmuk-contact-active .cbmuk-contact :is(button.cbmuk-primary-button,button.cbmuk-submit-button,a.cbmuk-primary-button,a.cbmuk-external-booking-button):hover,
body.cbmuk-contact-active .cbmuk-contact :is(button.cbmuk-primary-button,button.cbmuk-submit-button,a.cbmuk-primary-button,a.cbmuk-external-booking-button):focus,
.cbmuk-contact :is(button.cbmuk-primary-button,button.cbmuk-submit-button,a.cbmuk-primary-button,a.cbmuk-external-booking-button):hover,
.cbmuk-contact :is(button.cbmuk-primary-button,button.cbmuk-submit-button,a.cbmuk-primary-button,a.cbmuk-external-booking-button):focus {
    border-color: #0a76af !important;
    background: #0a76af !important;
    background-image: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.cbmuk-contact button::-moz-focus-inner {
    padding: 0;
    border: 0;
}

@media(max-width:720px){
    body.cbmuk-contact-active .cbmuk-contact button.cbmuk-submit-button,
    .cbmuk-contact button.cbmuk-submit-button {
        width: 100% !important;
    }
}


/* v1.0.2 — final corporate/SEO refinement and theme isolation. */
body.cbmuk-contact-active .cbmuk-contact button.cbmuk-close-booking,
.cbmuk-contact button.cbmuk-close-booking{
    -webkit-appearance:none!important;
    appearance:none!important;
    min-height:42px!important;
    padding:9px 16px!important;
    border:1px solid rgba(15,140,207,.42)!important;
    border-radius:8px!important;
    background:#fff!important;
    background-image:none!important;
    box-shadow:none!important;
    color:#0f8ccf!important;
    -webkit-text-fill-color:#0f8ccf!important;
    font:inherit!important;
    font-size:13px!important;
    font-weight:800!important;
    line-height:1.2!important;
    text-decoration:none!important;
    text-transform:none!important;
    opacity:1!important;
    visibility:visible!important;
}
body.cbmuk-contact-active .cbmuk-contact button.cbmuk-close-booking:hover,
body.cbmuk-contact-active .cbmuk-contact button.cbmuk-close-booking:focus,
.cbmuk-contact button.cbmuk-close-booking:hover,
.cbmuk-contact button.cbmuk-close-booking:focus{
    border-color:#0f8ccf!important;
    background:#f2faff!important;
    color:#0a76af!important;
    -webkit-text-fill-color:#0a76af!important;
}
.cbmuk-contact .cbmuk-option:focus-visible{outline:3px solid rgba(201,35,53,.2);outline-offset:3px}
