/* CBS design option B: light, architectural. Loads after site.css on the option B build only (body.tb).
   Signature: the "datum line", an orange rule ending in a dot, taken from the full stop in the CBS logo.
   Square-cut corners, hairline grid and full-width bands, so it reads as CBS rather than a soft studio site. */
.tb{
  --paper:#F1F2F3; --card:#FFFFFF; --ink:#15181B; --mute:#555B61; --mute-2:#687076;
  --line:#D9DCDF; --line-2:#E6E8EA; --ph:#DDE0E3; --or-hi:#FF8A45; --dk:#1B1E21;
  --r:3px;
  background:var(--paper); color:var(--ink);
}
.tb h1,.tb h2,.tb h3,.tb h4{font-weight:600;letter-spacing:-.025em}
.tb a:hover{color:var(--or-ink)}
.tb main{counter-reset:sec}

/* the datum line: orange rule with a dot on the end */
.tb .datum{position:relative;height:2px;background:var(--or);margin:0}
.tb .datum::after{content:"";position:absolute;right:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--or)}

/* buttons: square-cut, arrow */
.tb .btn{border-radius:var(--r);font-weight:600;padding:15px 24px;display:inline-flex;align-items:center;gap:12px;transition:background .2s,color .2s,border-color .2s}
.tb .btn::after{content:"\2192";font-weight:500;transition:transform .2s}
.tb .btn:hover::after{transform:translateX(3px)}
.tb .btn.sm{padding:11px 18px}
.tb .btn.ghost{color:var(--ink);border:1.5px solid var(--ink);background:transparent}
.tb .btn.ghost:hover{background:var(--ink);color:#fff}
.tb .cta .direct .btn::after{content:none}

/* utility bar + header */
.tb .util{background:var(--dk);color:#C9CCCF;border:0}
.tb .util a{color:#C9CCCF}.tb .util a:hover{color:var(--or)}
.tb .hdr{background:#fff;border-bottom:1px solid var(--line)}
.tb .nav a,.tb .nav button{color:var(--ink);font-weight:500}
.tb .nav a:hover,.tb .nav a[aria-current="page"]{color:var(--or-ink)}
.tb .nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--or)}
.tb .nav .sub{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 16px 32px rgba(21,24,27,.10)}
.tb .nav .sub a{box-shadow:none}
.tb .nav .sub a:hover{background:var(--paper)}
.tb .menu-btn{border-color:var(--line);border-radius:var(--r)}
.tb .menu-btn span{background:var(--ink);box-shadow:0 6px 0 var(--ink),0 -6px 0 var(--ink)}

/* home hero: text on the left, photo bleeding off the right edge */
.tb .hb{background:#fff;border-bottom:1px solid var(--line);overflow:hidden}
.tb .hb-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:min(78vh,760px)}
.tb .hb-text{padding:72px 56px 64px max(var(--gut),calc((100vw - var(--wrap))/2 + var(--gut)));display:flex;flex-direction:column;justify-content:center}
.tb .hb-eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 26px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--or-ink)}
.tb .hb-eyebrow::before{content:"";width:36px;height:2px;background:var(--or)}
.tb .hb h1{font-size:clamp(34px,3.8vw,58px);line-height:1.07}
.tb .hb .lead{font-size:18px;line-height:1.7;color:var(--mute);max-width:600px;margin-top:22px}
.tb .hb .lead p{margin:0 0 10px}
.tb .hb .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.tb .hb-pic{position:relative;background:var(--ph)}
.tb .hb-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tb .hb-pic::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--or);z-index:1}
.tb .hb .datum{margin-left:max(var(--gut),calc((100vw - var(--wrap))/2 + var(--gut)));margin-right:5px}

/* figures row */
.tb .trust{background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}
.tb .trust .wrap{padding-top:0;padding-bottom:0;gap:0}
.tb .trust .wrap>div{border-left:1px solid var(--line);padding:30px 26px}
.tb .trust .wrap>div:first-child{border-left:0;padding-left:0}
.tb .trust b,.tb .trust b.w{color:var(--ink);font-weight:600;font-size:clamp(26px,2.6vw,36px);letter-spacing:-.02em}
.tb .trust b::after{content:".";color:var(--or)}
.tb .trust span{color:var(--mute)}

/* inner page hero */
.tb .hero{background:#fff;color:var(--ink);padding:44px 0 72px;border-bottom:1px solid var(--line)}
.tb .crumbs,.tb .crumbs a{color:var(--mute-2)}
.tb .crumbs a:hover{color:var(--ink)}
.tb .crumbs li+li::before{color:#B3B8BC}
.tb .hero h1{font-size:clamp(36px,4.8vw,64px);letter-spacing:-.03em}
.tb .hero h1::after{content:".";color:var(--or)}
.tb .hero .lead{color:var(--mute)}
.tb .hero .lead a,.tb .hero .lead strong{color:var(--ink)}
.tb .hero-img{border-radius:0;background:var(--ph);box-shadow:-6px 0 0 var(--or)}
.tb .eyebrow{color:var(--or-ink)}
.tb .eyebrow::before{background:var(--or);height:2px}

/* sections: full-width bands with numbered datum labels */
.tb .sec{padding:96px 0;border-top:1px solid var(--line)}
.tb .sec.white{background:#fff;border-top:1px solid var(--line);border-bottom:0}
.tb .sec.dark{background:var(--dk);border-top:0}
.tb .sec-head{display:flex;align-items:center;gap:0;margin:0 0 20px;counter-increment:sec;max-width:220px}
.tb .sec-head::before{content:counter(sec,decimal-leading-zero);order:0;width:auto;height:auto;background:none;font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--or-ink);margin-right:14px}
.tb .sec-head::after{content:"";flex:1;height:2px;background:var(--or);order:1;box-shadow:none;position:relative}
.tb .sec.dark .sec-head::before{color:var(--or-hi)}
.tb .sec h2{font-size:clamp(30px,3.4vw,48px);letter-spacing:-.03em;line-height:1.08;margin:0 0 24px}
.tb .sec h3{font-weight:600}
.tb .prose p,.tb .intro p{color:var(--mute)}
.tb .prose a,.tb .intro a{text-decoration-color:var(--or)}

/* cards, tiles, galleries: square-cut with an orange top edge on hover */
.tb .card{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:30px;transition:border-color .2s,box-shadow .2s}
.tb .sec.white .card{background:var(--paper);border-color:var(--line-2)}
.tb .sec.dark .card{background:#24282C;border-color:#33383D}
.tb a.card:hover{box-shadow:inset 0 3px 0 var(--or)}
.tb .card .num{color:var(--or-ink);font-weight:600;letter-spacing:.1em}
.tb .card h3{font-size:21px}
.tb .card .more{font-weight:600}
.tb .card.img{padding:0}
.tb .tile,.tb .gallery button,.tb .member .ph,.tb figure img,.tb .map,.tb .mosaic>*{border-radius:var(--r)}
.tb .tile span{font-weight:600;font-size:16px;padding:16px}
.tb .tile::after{background:linear-gradient(transparent 40%,rgba(15,17,19,.82))}

/* lists, stats, steps, faq */
.tb ul.checks{border-color:var(--line)}
.tb ul.checks li{font-weight:500;border-color:var(--line)}
.tb .stats{border-color:var(--line)}
.tb .stats b{font-weight:600;letter-spacing:-.02em}
.tb .step{border-top:2px solid var(--or);padding-top:26px}
.tb .step .n{color:var(--or);font-weight:600;font-size:15px;letter-spacing:.12em}
.tb .sec.dark .step .n{color:var(--or-hi)}
.tb .step h3{font-size:21px}
.tb .faq{border-color:var(--line)}
.tb .faq details{border-color:var(--line);padding:22px 0}
.tb .faq summary{font-weight:600;font-size:18px}

/* link lists (services, areas) become rows with an arrow */
.tb ul.checks:has(a){border-top:1px solid var(--line)}
.tb ul.checks.cols:has(a){column-gap:48px}
.tb ul.checks li:has(>a){padding:0;border-bottom:1px solid var(--line)}
.tb ul.checks li:has(>a)::before{content:none}
.tb ul.checks li>a{flex:1;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:clamp(17px,1.5vw,20px);font-weight:600;text-decoration:none;color:var(--ink);letter-spacing:-.01em;transition:padding .2s,color .2s}
.tb ul.checks li>a::after{content:"\2192";color:var(--or);font-weight:500}
.tb ul.checks li>a:hover{color:var(--or-ink);padding-left:8px}
.tb .sec.dark ul.checks li>a{color:#fff}

/* reviews, team, accreditations */
.tb .rating{border-radius:var(--r);background:var(--dk)}
.tb .quote blockquote{font-weight:400;font-size:19px}
.tb .member h3{font-weight:600}
.tb .accred-logos figure{border:1px solid var(--line);border-radius:var(--r);background:#fff}
.tb .sec.white .accred-logos figure{background:var(--paper)}

/* enquiry band: full-width charcoal with a datum line on top */
.tb .cta{background:var(--dk);color:#fff;padding:88px 0;position:relative}
.tb .cta::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--or)}
.tb .cta h2{letter-spacing:-.03em}
.tb .cta h2::after{content:".";color:var(--or)}
.tb .cta p{color:rgba(255,255,255,.78)}
.tb .cta .btn.dark{background:var(--or);color:var(--ink)}
.tb .cta .btn.dark:hover{background:var(--or-hi)}
.tb .cta .btn.line{color:#fff;border-color:rgba(255,255,255,.45)}
.tb .cta .btn.line:hover{border-color:#fff;color:#fff}
.tb .form{border-radius:var(--r);box-shadow:none}
.tb .form input,.tb .form select,.tb .form textarea{border-radius:var(--r);border:1.5px solid var(--line);background:var(--paper)}
.tb .form input:focus,.tb .form select:focus,.tb .form textarea:focus{background:#fff}
.tb .form .btn{justify-content:center}
.tb .panel{border-radius:var(--r);background:var(--dk)}

/* footer */
.tb .ftr{background:#131517;border-top:1px solid #2A2E32}
.tb .ftr .base{border-color:#2E3236}

@media (max-width:1080px){
  .tb .nav-wrap.open .nav{background:#fff}
  .tb .nav-wrap.open .nav>li{border-color:var(--line)}
  .tb .nav-wrap.open .nav .sub a{color:var(--mute)}
  .tb .nav a[aria-current="page"]{box-shadow:none}
}
@media (max-width:900px){
  .tb .hb-grid{grid-template-columns:minmax(0,1fr);min-height:0}
  .tb .hb-text{padding:40px var(--gut) 36px}
  .tb .hb-pic{aspect-ratio:4/3;order:-1}
  .tb .hb-pic::before{left:0;right:0;top:auto;bottom:0;width:auto;height:5px}
  .tb .hb .datum{margin-left:var(--gut)}
  .tb .hb .lead{font-size:16px}
  .tb .trust .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tb .trust .wrap>div{padding:22px 0;border-left:0;border-top:1px solid var(--line)}
  .tb .trust .wrap>div:nth-child(-n+2){border-top:0}
  .tb .trust .wrap>div:nth-child(even){border-left:1px solid var(--line);padding-left:18px}
  .tb .sec{padding:64px 0}
  .tb .hero{padding:28px 0 52px}
  .tb .hdr .quote-btn{display:none}
}
.tb .hb .lead strong,.tb .hb .lead b{font-weight:400;color:var(--mute)}
.tb .hb .lead h4{font-weight:400;font-size:inherit;line-height:1.7;letter-spacing:0;color:var(--mute);margin:0 0 10px}

/* section number labels removed (decorative only) */
.tb .sec-head{display:none}
