/*
Theme Name:   True Mate Child
Theme URI:    https://truemate.co.uk/
Description:  Editorial-style London tradespeople directory for Hello Elementor.
Author:       True Mate
Template:     hello-elementor
Version:      1.4.0
Text Domain:  true-mate-child
*/

:root{--tm-ink:#172842;--tm-blue:#235bce;--tm-muted:#526179;--tm-line:#dce3ed;--tm-paper:#f5f7fb;--cbf-header-h:84px;}
.cbf-header,.cbf-footer,.cbf-modal,.cbf-logo-modal{font-family:"Inter","Segoe UI",sans-serif;line-height:1.5;}
.cbf-header *,.cbf-footer *,.cbf-modal *,.cbf-logo-modal *{box-sizing:border-box;}
.cbf-header{position:sticky;top:0;z-index:999;background:#fff;border-bottom:1px solid var(--tm-line);}
.admin-bar .cbf-header{top:32px;}
.cbf-header__inner{max-width:1216px;padding:0 28px;margin:auto;min-height:var(--cbf-header-h);display:flex;align-items:center;justify-content:space-between;gap:24px;}
.cbf-brand{display:inline-flex;align-items:center;gap:12px;color:var(--tm-ink);text-decoration:none!important;min-width:0;}
.cbf-brand__logo{width:52px;height:52px;object-fit:contain;background:#fff;border:1px solid var(--tm-line);padding:4px;border-radius:6px;}
.cbf-brand__zoom{display:inline-flex;padding:0;margin:0;border:0;background:none!important;cursor:zoom-in;line-height:0;border-radius:6px;flex:none;}
.cbf-brand__text{display:flex;flex-direction:column;text-decoration:none!important;line-height:1.2;color:var(--tm-ink)!important;}
.cbf-brand__name{font-size:25px;font-weight:700;letter-spacing:-1px;color:var(--tm-ink);}
.cbf-brand__name span{color:var(--tm-blue);}
.cbf-brand__tag{font-size:10px;letter-spacing:.4px;color:var(--tm-muted);margin-top:5px;}
.tm-nav{display:flex;align-items:center;gap:24px;}
.tm-nav a{font-size:13px;font-weight:600;color:var(--tm-muted);text-decoration:none!important;white-space:nowrap;}
.tm-nav a:hover{color:var(--tm-blue);}
.cbf-header__badges{display:flex;gap:10px;}
.cbf-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:7px 10px;color:var(--tm-blue);background:#edf3ff;border-radius:4px;white-space:nowrap;}
.cbf-badge svg{width:14px;height:14px;fill:currentColor;}
.cbf-header__badges .cbf-badge:nth-child(-n+2){display:none;}
.cbf-header.is-scrolled{box-shadow:0 2px 10px rgba(23,40,66,.06);}
.cbf-header.is-scrolled .cbf-header__inner{min-height:70px;}
.cbf-header a:focus-visible,.cbf-header button:focus-visible,.cbf-footer a:focus-visible,.cbf-footer button:focus-visible,.cbf-modal button:focus-visible,.cbf-logo-modal button:focus-visible{outline:3px solid var(--tm-blue);outline-offset:4px;}

.cbf-footer{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px 80px;padding:56px max(28px,calc((100% - 1160px)/2)) 24px;border-top:1px solid var(--tm-line);background:#fff;color:var(--tm-muted);}
.cbf-footer__main{grid-column:1;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.cbf-footer__brand{grid-column:1 / -1;}
.cbf-footer__brand .cbf-brand__name{font-size:25px;}
.cbf-footer__brand .cbf-brand__logo{width:46px;height:46px;}
.cbf-footer__brand p{font-size:13px;max-width:420px;margin:16px 0 0;}
.cbf-footer h2,.cbf-footer h3,.cbf-modal h2{color:var(--tm-ink);margin:0;}
.cbf-footer__col h3{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;}
.cbf-footer__link{display:flex;align-items:center;gap:8px;padding:6px 0;border:0;background:transparent!important;color:var(--tm-muted)!important;font:400 13px/1.5 "Inter","Segoe UI",sans-serif;text-decoration:none!important;text-align:left;cursor:pointer;overflow-wrap:anywhere;}
.cbf-footer__link:hover{color:var(--tm-blue)!important;}
.cbf-footer__link svg{width:15px;height:15px;fill:var(--tm-blue);flex:none;}
.cbf-footer__cta{grid-column:2;grid-row:1;}
.cbf-footer__cta-in{height:100%;padding:30px;background:#edf3ff;border-radius:4px;border-top:3px solid var(--tm-blue);display:flex;flex-direction:column;align-items:start;justify-content:center;gap:22px;}
.cbf-footer__kick{display:inline-block;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:var(--tm-blue);margin-bottom:10px;}
.cbf-footer__cta h2{font:700 29px/1.2 Georgia,"Times New Roman",serif;margin-bottom:14px;}
.cbf-footer__cta p{font-size:13px;margin:0;}
.cbf-btn-apply{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;min-height:46px;background:var(--tm-blue);color:#fff;border:1px solid var(--tm-blue);border-radius:4px;font:600 14px/1.5 "Inter","Segoe UI",sans-serif;cursor:pointer;}
.cbf-btn-apply:hover{background:#17449e;color:#fff;}
.cbf-btn-apply:disabled{opacity:.7;cursor:wait;}
.cbf-btn-apply svg{width:17px;height:17px;fill:currentColor;}
.cbf-btn-apply--full{width:100%;}
.cbf-footer__bottom{grid-column:1 / -1;grid-row:2;border-top:1px solid var(--tm-line);padding-top:22px;display:flex;gap:24px;justify-content:space-between;font-size:11px;}
.cbf-footer__bottom p{margin:0;}
.cbf-footer__bottom p:last-child{max-width:680px;}

html.cbf-lock,html.cbf-no-scroll{overflow:hidden;}
.cbf-modal,.cbf-logo-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .2s ease;color:var(--tm-ink);}
.cbf-modal[hidden],.cbf-logo-modal[hidden]{display:none;}
.cbf-modal.is-open,.cbf-logo-modal.is-open{opacity:1;}
.cbf-modal__backdrop,.cbf-logo-modal__backdrop{position:absolute;inset:0;background:rgba(23,40,66,.75);}
.cbf-logo-modal__backdrop{cursor:zoom-out;}
.cbf-modal__box,.cbf-logo-modal__box{position:relative;background:#fff;padding:34px;border-radius:6px;border-top:4px solid var(--tm-blue);width:min(520px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;}
.cbf-logo-modal__box{width:min(460px,100%);margin:0;text-align:center;}
.cbf-logo-modal__box img{display:block;max-width:100%;width:300px;height:auto;max-height:60vh;object-fit:contain;margin:auto;}
.cbf-logo-modal__box figcaption{font-size:14px;color:var(--tm-muted);margin-top:16px;}
.cbf-logo-modal__box figcaption span{color:var(--tm-blue);}
.cbf-modal__x,.cbf-logo-modal__x{position:absolute;right:10px;top:10px;width:32px;height:32px;padding:0;border:0;background:#edf3ff;color:var(--tm-ink);border-radius:4px;font-size:24px;line-height:1;cursor:pointer;}
.cbf-modal__x:hover,.cbf-logo-modal__x:hover{background:var(--tm-ink);color:#fff;}
.cbf-modal h2{font:700 28px/1.2 Georgia,"Times New Roman",serif;}
.cbf-modal__intro{font-size:14px;color:var(--tm-muted);margin:12px 0 24px;}
.cbf-f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.cbf-f{display:block;margin-bottom:16px;}
.cbf-f span{display:block;font-size:12px;font-weight:600;margin-bottom:6px;color:var(--tm-ink);}
.cbf-f input{box-sizing:border-box;width:100%;padding:11px 12px!important;border:1px solid #bac7da!important;border-radius:4px!important;background:#fff!important;color:var(--tm-ink)!important;font:400 15px/1.5 "Inter","Segoe UI",sans-serif;}
.cbf-f input:focus{outline:2px solid var(--tm-blue);outline-offset:2px;box-shadow:none!important;}
.cbf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.cbf-f-err{font-size:13px;color:#a52335;font-weight:600;min-height:20px;margin:0 0 8px;}
.cbf-f-note{font-size:11px;color:var(--tm-muted);margin:14px 0 0;}
.cbf-f-note a{color:var(--tm-blue);}
.cbf-modal__done{text-align:center;padding:20px 0;}
.cbf-modal__done p{font-size:14px;color:var(--tm-muted);margin:16px 0 24px;}
.cbf-modal__tick{width:56px;height:56px;display:grid;place-items:center;background:#edf3ff;margin:0 auto 22px;border-radius:50%;}
.cbf-modal__tick svg{width:30px;height:30px;fill:var(--tm-blue);}

@media(max-width:1000px){.cbf-header__inner{gap:18px;}.tm-nav{gap:16px;}.cbf-header__badges{display:none;}.cbf-footer{gap:32px;}}
@media(max-width:782px){.admin-bar .cbf-header{top:46px;}}
@media(max-width:760px){.cbf-footer{grid-template-columns:1fr;padding:40px 20px 24px;}.cbf-footer__cta{grid-column:1;grid-row:2;}.cbf-footer__bottom{grid-row:3;flex-direction:column;gap:12px;}}
@media(max-width:600px){:root{--cbf-header-h:74px;}.admin-bar .cbf-header{top:0;}.cbf-header__inner{padding:12px 20px;flex-wrap:wrap;gap:12px;}.cbf-brand__tag{font-size:9px;}.cbf-brand__name{font-size:23px;}.cbf-brand__logo{width:44px;height:44px;}.tm-nav{width:100%;justify-content:space-between;border-top:1px solid var(--tm-line);padding-top:10px;gap:8px;}.tm-nav a{font-size:11px;}.cbf-footer__cta-in{padding:24px;}.cbf-modal__box,.cbf-logo-modal__box{padding:32px 22px 24px;}}
@media(max-width:420px){.cbf-f-row{grid-template-columns:1fr;gap:0;}.cbf-footer__main{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){.cbf-modal,.cbf-logo-modal{transition:none;}}
