/* City design only. All substantive city-hub sections remain authored source HTML. */
.rb-city-hub.cl-city[data-city-brand]{--ch-ink:var(--rb-ink);--ch-accent:var(--rb-accent);--ch-paper:var(--rb-paper);--ch-soft:var(--rb-soft);--ch-muted:var(--rb-muted);font-family:var(--rb-body-font);padding-bottom:75px}
.cl-city :is(h1,h2,h3){font-family:var(--rb-heading-font);font-weight:600}
.cl-city .ch-wrap{width:min(1280px,calc(100% - 112px))}
.cl-city .ch-hero{padding-top:155px}
/* The PM header participates in normal flow; other brand headers are fixed. */
.cl-city[data-city-brand="DDPM"] .ch-hero{padding-top:48px}
.cl-city .cl-opening-grid{display:grid;grid-template-columns:1fr 1.04fr;gap:clamp(35px,6vw,85px);align-items:center}
.cl-city .cl-opening-copy h1{font-size:clamp(2.3rem,3.9vw,4.2rem);letter-spacing:-.055em;line-height:1.12;max-width:19ch;margin-bottom:28px}
.cl-city .cl-opening-copy h1 em{color:var(--rb-ink)}
.cl-city .cl-opening-copy p{max-width:56ch;font-size:.94rem;line-height:1.9}
.cl-city .cl-opening-copy .ch-kicker{font-size:.68rem;line-height:1.8;letter-spacing:.12em}
.cl-city .cl-opening-copy .ch-button{background:var(--rb-ink);color:var(--rb-on-ink);margin-top:28px}
.cl-city .cl-opening-phone{display:inline-flex;align-items:center;min-height:48px;font-size:.87rem;font-weight:500;margin-top:12px}
.cl-city .cl-photo{margin:0}
.cl-city .cl-photo>div{display:flex;align-items:center;justify-content:center;min-height:330px;border-radius:23px;overflow:hidden;background:var(--rb-soft)}
.cl-city .cl-photo img{display:block;width:100%;height:auto;max-height:640px;object-fit:contain}
.cl-city .cl-photo figcaption{font-size:.73rem;line-height:1.65;color:var(--rb-muted);margin-top:16px}
.cl-city .cl-photo-credit{display:block;font-size:.67rem;margin-top:6px}
.cl-city .cl-photo-credit a{text-decoration:underline;text-underline-offset:3px}
.cl-city .ch-nav{font-size:.76rem;gap:30px;margin-top:45px;padding:15px 0;border-color:var(--rb-line)}
.cl-city .ch-section{padding-block:80px}
.cl-city .ch-heading{grid-template-columns:1fr 1.04fr;gap:clamp(35px,6vw,85px)}
.cl-city h2{font-size:clamp(1.85rem,2.8vw,2.85rem);letter-spacing:-.04em}
.cl-city .ch-planning{gap:clamp(35px,6vw,85px);border-color:var(--rb-line);padding-top:32px;margin-top:40px}
.cl-city .ch-planning h3{font-size:1.08rem}
.cl-city .ch-planning p{font-size:.89rem;line-height:1.9}
.cl-city .ch-band{background:var(--rb-soft)}
.cl-city .ch-services{gap:40px 34px}
.cl-city .ch-service{padding:25px 0 0;border-color:var(--rb-line)}
.cl-city .ch-service h3{font-size:1.15rem;line-height:1.4;letter-spacing:-.025em}
.cl-city .ch-service p{font-size:.85rem;line-height:1.9}
.cl-city .ch-service .ch-local-link{font-size:.75rem;gap:15px}
.cl-city .ch-coverage{gap:clamp(35px,6vw,85px)}
.cl-city .ch-coverage p{font-size:.91rem;line-height:1.9}
.cl-city .ch-faq-contact{padding-top:10px;grid-template-columns:1.25fr .75fr;gap:65px}
.cl-city .ch-faq-list,.cl-city .ch-faq{border-color:var(--rb-line)}
.cl-city .ch-faq summary{font:500 .91rem/1.6 var(--rb-body-font);padding:20px 0;min-height:64px}
.cl-city .ch-faq>p{font-size:.88rem;line-height:1.9;padding-bottom:26px}
.cl-city .ch-contact{background:var(--rb-ink);color:var(--rb-on-ink);padding:37px;border-radius:22px}
.cl-city .ch-contact :is(h2,p,.ch-phone,.ch-mail){color:var(--rb-on-ink)}
.cl-city .ch-contact h2{font-size:2rem;margin-bottom:23px}
.cl-city .ch-contact p{font-size:.86rem;line-height:1.8}
.cl-city .ch-contact .ch-button{background:var(--rb-paper);color:var(--rb-ink);font-size:.81rem}
.cl-city .ch-contact a:focus-visible{outline-color:var(--rb-paper)}
.cl-city .ch-calendar{padding:0 25px;border-color:var(--rb-line);border-radius:14px;background:var(--rb-soft)}
.cl-city .ch-calendar>summary{min-height:66px;padding:22px 0;font:500 .9rem/1.55 var(--rb-body-font)}
.cl-city .ch-calendar[open]{padding-bottom:25px}
.cl-city .ch-calendar[open]>summary{border-bottom:1px solid var(--rb-line)}
.cl-city :is(section,details,[id]){scroll-margin-top:145px}
@media(max-width:1050px){.cl-city .ch-wrap{width:calc(100% - 64px)}.cl-city .cl-opening-grid{gap:35px}.cl-city .ch-services{gap:30px}.cl-city .ch-faq-contact{gap:35px;grid-template-columns:1.1fr .9fr}.cl-city .ch-contact{padding:27px}}
@media(max-width:760px){.cl-city .ch-wrap{width:calc(100% - 36px)}.cl-city .ch-hero{padding-top:145px}.cl-city[data-city-brand="DDPM"] .ch-hero{padding-top:28px}.cl-city .cl-opening-grid{grid-template-columns:1fr;gap:30px}.cl-city .cl-opening-copy h1{font-size:clamp(2.2rem,9vw,3.2rem);max-width:20ch}.cl-city .cl-photo>div{min-height:0}.cl-city .cl-photo img{max-height:490px}.cl-city .ch-nav{gap:4px 22px;margin-top:30px}.cl-city .ch-section{padding-block:55px}.cl-city .ch-heading,.cl-city .ch-planning,.cl-city .ch-coverage,.cl-city .ch-faq-contact{grid-template-columns:1fr;gap:28px}.cl-city .ch-services{grid-template-columns:1fr;gap:30px}.cl-city .ch-faq-contact{padding-top:0}.cl-city .ch-calendar{padding-inline:18px}}
@media(prefers-reduced-motion:reduce){.cl-city *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Final integration fixes, scoped to rebuilt service pages. */
[data-rb-brand="DDPM"] .sl-service .sl-opening{padding-top:55px}
.cl-shell .ch-calendar{padding-inline:0}
.cl-shell .ch-calendar>summary,.cl-shell .ch-calendar>p{margin-inline:26px}
.cl-shell .ch-calendar .booking-calendar-widget{width:100%!important;max-width:100%!important;left:auto!important;right:auto!important;margin:0!important}
.cl-shell .ch-calendar .dd-stage{border-radius:0 0 12px 12px!important}
.cl-shell .ch-calendar .dd-c{padding:32px;min-width:0;grid-template-columns:minmax(0,1fr)}
.cl-shell .ch-calendar :is(.dd-l,.dd-r,.dd-form,.dd-head){min-width:0;max-width:100%}
.cl-shell .ch-calendar .dd-head h2{font-size:21px;line-height:1.25;letter-spacing:-.02em;margin:0;color:#fff}
.cl-shell .ch-calendar .dd-l .dd-sub{font-size:15.5px;line-height:1.6;color:#e1e7ee}
.cl-shell .ch-calendar h3.dd-form-h{font-size:12px;line-height:1.5;letter-spacing:.08em;margin:0;color:#fff;opacity:1;gap:12px;flex-wrap:wrap}
.cl-shell .ch-calendar h3.dd-form-h small{color:#e1e7ee;opacity:1}
.cl-shell .ch-calendar .dd-svc button.dd-sel .dd-svc-tick{background:#fff!important;border-color:#fff!important;color:#0f2540!important}
.cl-shell .ch-calendar .dd-times-h{flex-wrap:wrap;gap:10px}
.cl-shell .ch-calendar .dd-times-nav{flex-shrink:0}
.cl-shell .ch-calendar .dd-cal-h{flex-wrap:wrap;gap:10px}
.cl-shell .ch-calendar .dd-week-nav{flex-shrink:0}
.cl-shell .ch-calendar .dd-svc{grid-template-columns:repeat(2,minmax(0,1fr))}
.cl-shell .ch-calendar .dd-svc button{min-width:0}
.cl-shell .ch-calendar .dd-svc-name{white-space:normal;overflow-wrap:break-word}
.cl-shell .ch-calendar :is(.dd-input,.dd-textarea){background:#25384c!important;color:#fff!important;border:1px solid #9aaabd!important}
.cl-shell .ch-calendar :is(.dd-input,.dd-textarea)::placeholder{color:#cbd5e1!important;opacity:1}
.cl-shell .ch-calendar .dd-r{background:#172c45!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.cl-shell .ch-calendar .dd-ov{background:rgba(15,37,64,.9)!important}
.cl-shell .ch-calendar .dd-req{color:#ffacac}
.cl-shell .ch-calendar .dd-svc .dd-pr{color:#e1e7ee;opacity:1}
.cl-shell .ch-calendar .dd-svc button.dd-sel .dd-pr{color:#40516a}
.sl-service .sl-checklist .step-number{background:var(--rb-ink)!important;color:var(--rb-on-ink)!important}
.sl-service .sl-support a.btn{background:var(--rb-paper)!important;color:var(--rb-ink)!important;border-color:var(--rb-ink)!important}
@media(max-width:760px){
  [data-rb-brand="DDPM"] .sl-service .sl-opening{padding-top:38px}
  .cl-shell .ch-calendar>summary,.cl-shell .ch-calendar>p{margin-inline:18px}
  .cl-shell .ch-calendar .dd-c{padding:16px}
  .cl-shell .ch-calendar .dd-r{padding:16px}
  .cl-shell .ch-calendar .dd-l-title{overflow-wrap:break-word}
}
@media(max-width:390px){
  .cl-shell .ch-calendar .dd-row2{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px){.cl-shell .ch-calendar .dd-svc{grid-template-columns:minmax(0,1fr)}}

.cl-shell .ch-calendar .booking-calendar-widget :is(h2,h3,p){color:#fff!important}
.cl-shell .ch-calendar .dd-pre{color:#d5e9d0!important}
.cl-shell .ch-calendar :is(a,button,input,textarea):focus-visible{outline:3px solid #fff!important;outline-offset:4px!important}
@media(max-width:900px){.cl-shell:has(.ch-calendar[open]) :is(#dd-chat-bubble,#scrollTopBtn),.cl-shell:has(.intake-form:focus-within) :is(#dd-chat-bubble,#scrollTopBtn){display:none!important}}
/* Retained enquiry controls use the same brand tokens as the city content. */
html:has(body.cl-shell){scroll-padding-block-end:calc(var(--city-obstruction,80px) + 16px)}
.cl-shell{padding-bottom:var(--city-obstruction,80px)!important}
.cl-shell footer :is(a,input,button){scroll-margin-block-end:calc(var(--city-obstruction,80px) + 16px)}
.cl-shell .ch-calendar .dd-head h2{display:block!important}
.cl-shell:has(#site-header) footer .footer-network{box-sizing:border-box;width:min(1280px,calc(100% - 48px));margin:24px auto}
.cl-shell .header:has(#nav-links) .nav-actions .btn{background:var(--rb-ink)!important;color:var(--rb-on-ink)!important;box-shadow:none!important}
.cl-shell footer .footer-bottom a{color:#e7e5e2!important}
.cl-shell footer .newsletter-form input[type="email"]{background:var(--rb-paper)!important;color:var(--rb-ink)!important;border:1px solid var(--rb-muted)!important;min-height:48px;font-size:16px!important}
.cl-shell footer .newsletter-form input::placeholder{color:var(--rb-muted)!important;opacity:1!important}
.cl-shell footer .newsletter-form button{background:var(--rb-paper)!important;color:var(--rb-ink)!important;min-height:48px}
.cl-shell footer .newsletter-form button span{color:inherit!important}
.cl-shell footer .newsletter-disclaimer{color:#eee!important;opacity:1!important}
.cl-shell footer a.social-link-large[aria-label="Instagram"]{background:var(--rb-ink)!important;color:var(--rb-on-ink)!important;border:1px solid currentColor}
.cl-shell .intake-form-wrap{width:min(860px,calc(100% - 36px));margin:50px auto 90px;padding:32px 0;color:var(--rb-ink);background:var(--rb-paper);font-family:var(--rb-body-font)}
.cl-shell .intake-form-wrap>h2{font:600 clamp(1.8rem,3vw,2.7rem)/1.2 var(--rb-heading-font);color:var(--rb-ink);margin:0 0 32px}
.cl-shell .intake-form label{color:var(--rb-ink);font:600 .9rem/1.5 var(--rb-body-font)}
.cl-shell .intake-form :is(input:not([name="website"]),select,textarea){background-color:var(--rb-paper)!important;color:var(--rb-ink)!important;border:1px solid #777582!important;font:400 1rem/1.5 var(--rb-body-font)!important;min-height:48px;box-sizing:border-box;width:100%}
.cl-shell .intake-form :is(input,textarea)::placeholder{color:var(--rb-muted)!important;opacity:1!important}
.cl-shell .intake-form :is(input,select,textarea,button):focus-visible{outline:3px solid var(--rb-ink)!important;outline-offset:3px!important}
.cl-shell .intake-submit{background:var(--rb-ink)!important;color:var(--rb-on-ink)!important;border:1px solid var(--rb-ink)!important;min-height:48px;white-space:normal;font:600 1rem/1.5 var(--rb-body-font)!important}
.cl-shell .intake-note{color:var(--rb-muted)!important;font:.8rem/1.7 var(--rb-body-font)}
@media(max-width:900px){
 .cl-shell :is(#dd-chat-bubble,#scrollTopBtn){display:none!important}
 .cl-shell :is(.sticky-mobile-cta,.mobile-sticky-cta){height:auto!important;padding:8px 12px!important;box-sizing:border-box}
 .cl-shell .sticky-mobile-cta{gap:10px!important}
 .cl-shell .mobile-sticky-cta .sticky-cta-inner{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .cl-shell :is(.sticky-mobile-cta>a,.mobile-sticky-cta .sticky-cta-btn){display:flex!important;align-items:center;justify-content:center;min-height:48px!important;height:auto!important;width:auto!important;min-width:0!important;box-sizing:border-box;padding:10px 8px!important;font:600 13px/1.35 var(--rb-body-font)!important;white-space:normal!important;opacity:1!important;transform:none!important;animation:none!important;transition:background-color .15s,color .15s!important}
 .cl-shell :is(.sticky-mobile-cta,.mobile-sticky-cta) .sticky-cta-call{background:var(--rb-paper)!important;color:var(--rb-ink)!important;border:1px solid var(--rb-ink)!important}
 .cl-shell :is(.sticky-mobile-cta,.mobile-sticky-cta) :is(.sticky-cta-quote,.sticky-cta-text){background:var(--rb-ink)!important;color:var(--rb-on-ink)!important;border:1px solid var(--rb-ink)!important}
}
/* Fit the older list-based Interior header at small desktop widths. */
@media(min-width:901px) and (max-width:1200px){
 .cl-shell .header:has(#nav-links) .nav-links{gap:8px!important;padding:0 12px!important}
}
