/* Rebuild 2026 — one opt-in presentation layer.
   Apply .rb-site to main and .rb-shell to body. Existing runtime DOM is retained.
   Brand knobs: --rb-ink, --rb-accent, --rb-paper, --rb-soft, --rb-muted,
   --rb-on-ink, --rb-on-accent, --rb-line, --rb-heading-font, --rb-body-font.
   No global reset. Nothing becomes invisible while waiting for JavaScript. */

/* These existing font files contain variable weight axes, despite their names.
   Separate family names avoid the old stylesheet pinning every weight to 800. */
@font-face { font-family: 'RB Montserrat'; src: url('/fonts/montserrat-800-latin.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'RB Sora'; src: url('/fonts/sora-700-latin.woff2') format('woff2'); font-weight: 400 800; font-style: normal; font-display: swap; }
.rb-shell {
  --rb-ink: #2a2420;
  --rb-accent: #d4a96a;
  --rb-paper: #fcfaf7;
  --rb-soft: #f1ede6;
  --rb-muted: #655d55;
  --rb-on-ink: #fcfaf7;
  --rb-on-accent: #2a2420;
  --rb-line: #d9d2c8;
  --rb-heading-font: 'RB Montserrat', 'Montserrat', 'Montserrat Fallback', sans-serif;
  --rb-body-font: 'RB Sora', 'Sora', 'Sora Fallback', sans-serif;
  background: var(--rb-paper);
}

/* Scope header paint to an opted-in page; the header's HTML and behaviour stay intact. */
body.rb-shell .header, body.rb-shell .header:not(.scrolled) {
  background: var(--rb-paper) !important;
  border-bottom: 1px solid var(--rb-line);
  box-shadow: none;
}
body.rb-shell .header .nav-links > li > a,
body.rb-shell .header:not(.scrolled) .nav-links > li > a,
body.rb-shell .header .nav-phone { color: var(--rb-ink) !important; }
body.rb-shell .header .nav-cta { background: var(--rb-ink) !important; color: var(--rb-on-ink) !important; box-shadow: none !important; }
body.rb-shell .header .nav-links > li > a { font-family: var(--rb-body-font); font-size: .81rem; font-weight: 500; }
body.rb-shell .header .mobile-toggle span { background: var(--rb-ink); }
body.rb-shell .announcement-bar { background: var(--rb-ink); color: var(--rb-on-ink); }

.rb-site {
  font-family: var(--rb-body-font, 'Sora', sans-serif);
  font-size: 16px;
  line-height: 1.75;
  color: var(--rb-ink, #2a2420);
  background: var(--rb-paper, #fcfaf7);
  padding: 0 0 92px;
  width: 100%;
  isolation: isolate;
}
.rb-site *, .rb-site *::before, .rb-site *::after { box-sizing: border-box; }
.rb-site :is(section, div, article, aside, figure) { min-width: 0; }
.rb-site section { scroll-margin-top: 150px; }
.rb-site :is(h1, h2, h3, p, figure) { margin: 0; }
.rb-site :is(h1, h2, h3) {
  font-family: var(--rb-heading-font, 'Montserrat', sans-serif);
  color: var(--rb-ink); font-weight: 600; letter-spacing: -.05em; text-wrap: balance;
}
.rb-site h1 { font-size: clamp(2.6rem, 5.15vw, 5.05rem); line-height: 1.065; max-width: 20ch; }
.rb-site h1 em { font-style: normal; color: #877154; color: color-mix(in srgb, var(--rb-accent) 45%, var(--rb-ink)); }
.rb-site h2 { font-size: clamp(2rem, 3.2vw, 3.25rem); line-height: 1.13; }
.rb-site h3 { font-size: clamp(1.35rem, 2vw, 1.9rem); line-height: 1.25; letter-spacing: -.035em; }
.rb-site p { color: var(--rb-muted); font-size: 1rem; line-height: 1.8; }
.rb-site p + p { margin-top: 20px; }
.rb-site a { color: inherit; text-decoration: none; }
.rb-site img { max-width: 100%; }
.rb-site button { font-family: inherit; cursor: pointer; }
.rb-site :is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--rb-ink); outline-offset: 5px; }
.rb-site :is(.rb-dark-panel, .rb-contact-card) :is(a, button):focus-visible { outline-color: var(--rb-accent); }
.rb-site .rb-wrap { width: min(1280px, calc(100% - 112px)); margin-inline: auto; }
.rb-site .rb-section { padding-block: clamp(64px, 7.1vw, 112px); }
.rb-site .rb-kicker {
  display: block; font: 600 .71rem/1.6 var(--rb-body-font); text-transform: uppercase;
  letter-spacing: .15em; color: var(--rb-muted); margin: 0 0 22px;
}
.rb-site .rb-arrow { flex: 0 0 22px; width: 22px; height: 22px; transition: transform .2s ease; }
.rb-site .rb-photo { display: block; width: 100%; height: 100%; object-fit: cover; }
.rb-site .rb-anchor { display: block; height: 0; scroll-margin-top: 145px; }
.rb-site .rb-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 25px; }
.rb-site :is(.rb-button-link, .rb-text-link, .rb-light-link) {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 20px;
  min-height: 48px; font-size: .85rem; line-height: 1.5; font-weight: 500;
  transition: color .2s ease, background-color .2s ease;
}
.rb-site .rb-button-link { padding: 15px 22px; background: var(--rb-ink); color: var(--rb-on-ink); border-radius: 5px; }
.rb-site .rb-button-link:hover { background: var(--rb-accent); color: var(--rb-on-accent); }
.rb-site .rb-text-link { border-bottom: 1px solid var(--rb-ink); }
.rb-site .rb-text-link:hover { color: var(--rb-muted); }
.rb-site a:hover > .rb-arrow { transform: translateX(4px); }

/* Opening: an intentionally asymmetric headline followed by generous photography. */
.rb-site .rb-hero { padding-top: 135px; }
.rb-site .rb-hero-heading { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); gap: 65px; align-items: end; margin-bottom: 45px; }
.rb-site .rb-hero-aside { padding-bottom: 4px; max-width: 405px; }
.rb-site .rb-hero-aside > p { font-size: .96rem; line-height: 1.9; }
.rb-site .rb-hero-frame { border-radius: 24px; overflow: hidden; aspect-ratio: 2.18; position: relative; background: var(--rb-soft); }
.rb-site .rb-hero-frame::after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, #211a13a6); pointer-events: none; }
.rb-site .rb-hero-caption { position: absolute; z-index: 1; inset: auto 34px 27px; display: flex; justify-content: space-between; align-items: end; gap: 24px; color: #fff; }
.rb-site .rb-hero-caption > :first-child { max-width: 28ch; font: 500 1.3rem/1.4 var(--rb-heading-font); letter-spacing: -.03em; }
.rb-site .rb-hero-caption > :last-child { font-size: .68rem; letter-spacing: .08em; text-align: right; }
.rb-site .rb-page-nav { display: flex; align-items: center; justify-content: flex-end; gap: 24px; padding-block: 17px; border-bottom: 1px solid var(--rb-line); font-size: .75rem; }
.rb-site .rb-page-nav-label { margin-right: auto; font-weight: 500; }
.rb-site .rb-page-nav a { display: inline-flex; min-height: 44px; align-items: center; }
.rb-site .rb-page-nav [aria-current] { text-decoration: underline; text-underline-offset: 6px; }
.rb-site .rb-page-nav a:hover { text-decoration: underline; text-underline-offset: 6px; }
.rb-site .rb-section-heading { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .8fr); align-items: end; gap: 70px; margin-bottom: 44px; }
.rb-site .rb-heading-aside > p { max-width: 430px; }
.rb-site .rb-heading-aside > a { margin-top: 16px; }

/* Company narrative: editorial columns, captions and material-led imagery. */
.rb-site .rb-story-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: clamp(48px, 8vw, 126px); align-items: center; }
.rb-site .rb-story-photo { position: relative; height: 590px; }
.rb-site .rb-story-photo img { border-radius: 20px; object-position: center 66%; }
.rb-site .rb-story-photo figcaption { position: absolute; bottom: 22px; left: 24px; right: 24px; padding: 13px 17px; border-radius: 5px; background: var(--rb-paper); font-size: .72rem; color: var(--rb-ink); }
.rb-site .rb-story-copy h3 { font-size: clamp(1.8rem, 2.7vw, 2.65rem); margin-bottom: 25px; }
.rb-site .rb-story-copy .rb-text-link { margin-top: 24px; }
.rb-site .rb-note { display: flex; align-items: center; gap: 24px; margin-top: 42px; }
.rb-site .rb-note-line { width: 36px; height: 2px; background: var(--rb-accent); }
.rb-site .rb-note p { font-size: .77rem; color: var(--rb-muted); line-height: 1.55; }
.rb-site .rb-narrative { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 8vw, 128px); padding-top: 34px; border-top: 1px solid var(--rb-line); }
.rb-site .rb-large-copy { font: 500 clamp(1.3rem, 2.2vw, 2rem)/1.55 var(--rb-heading-font); color: var(--rb-ink); letter-spacing: -.03em; }
.rb-site .rb-about-feature { display: grid; grid-template-columns: 1.05fr 1fr; gap: 8%; align-items: center; background: var(--rb-soft); padding: 42px; border-radius: 24px; }
.rb-site .rb-about-feature > figure { height: 660px; position: relative; }
.rb-site .rb-about-feature .rb-photo { border-radius: 14px; }
.rb-site .rb-about-feature figcaption { position: absolute; bottom: 20px; left: 20px; right: 20px; padding: 12px; background: var(--rb-paper); border-radius: 4px; font-size: .7rem; text-align: center; }
.rb-site .rb-about-feature h2 { margin-bottom: 26px; }
.rb-site .rb-about-feature .rb-text-link { margin-top: 22px; }
.rb-site .rb-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 46px; }
.rb-site .rb-principles article { border-top: 1px solid var(--rb-line); padding-top: 22px; }
.rb-site .rb-principle-number { display: block; font-size: .75rem; color: var(--rb-muted); margin-bottom: 40px; }
.rb-site .rb-principles h3 { margin-bottom: 20px; }
.rb-site .rb-wide-photo figure { position: relative; aspect-ratio: 3; overflow: hidden; border-radius: 22px; }
.rb-site .rb-wide-photo figcaption { position: absolute; bottom: 24px; left: 28px; padding: 12px 20px; background: var(--rb-paper); border-radius: 4px; font-size: .75rem; }
.rb-site .rb-local-story { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; }
.rb-site .rb-local-story h2 { margin-bottom: 25px; }
.rb-site .rb-local-story h3 { font-size: 1.5rem; margin-bottom: 18px; }
.rb-site .rb-local-story h3:not(:first-child) { margin-top: 35px; }
.rb-site .rb-local-story .rb-text-link { margin-top: 15px; }

/* Photography carries the service offering, with quiet text beneath. */
.rb-site .rb-service-section { background: var(--rb-soft); }
.rb-site .rb-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.rb-site .rb-card-image-link { display: block; }
.rb-site .rb-card-photo { aspect-ratio: .88; position: relative; overflow: hidden; border-radius: 16px; background: var(--rb-line); }
.rb-site .rb-card-photo img { transition: transform .35s ease; }
.rb-site .rb-card-image-link:hover img { transform: scale(1.025); }
.rb-site .rb-image-arrow { display: grid; place-items: center; position: absolute; bottom: 18px; right: 18px; width: 42px; height: 42px; border-radius: 50%; color: var(--rb-ink); background: var(--rb-paper); }
.rb-site .rb-image-arrow .rb-arrow { width: 20px; height: 20px; transform: rotate(-40deg); }
.rb-site .rb-card-body { padding: 24px 3px 0; }
.rb-site .rb-card-body .rb-kicker { font-size: .65rem; margin-bottom: 10px; }
.rb-site .rb-card-body h3 { font-size: 1.65rem; margin-bottom: 14px; }
.rb-site .rb-card-body h3 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.rb-site .rb-card-body p { font-size: .89rem; }
.rb-site .rb-service-directory { border-top: 1px solid var(--rb-line); margin-top: 48px; padding-top: 27px; display: grid; grid-template-columns: .75fr 2fr; gap: 32px; }
.rb-site .rb-service-directory > p { color: var(--rb-ink); padding-top: 10px; }
.rb-site .rb-service-directory nav { display: grid; grid-template-columns: 1fr 1fr; gap: 3px 36px; }
.rb-site .rb-service-directory .rb-text-link { border: 0; font-size: .83rem; }
.rb-site .rb-service-directory .rb-arrow { width: 17px; height: 17px; }
.rb-site .rb-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.rb-site .rb-grid-four .rb-card-photo { aspect-ratio: .95; }
.rb-site .rb-grid-four h3 { font-size: 1.4rem; }
.rb-site .rb-custom-piece { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; margin-top: 55px; padding: 36px 0; border-block: 1px solid var(--rb-line); }
.rb-site .rb-custom-piece h3 { font-size: 1.8rem; }
.rb-site .rb-custom-piece .rb-text-link { margin-top: 16px; }

.rb-site .rb-process { padding-top: 96px; }
.rb-site .rb-dark-panel { background: var(--rb-ink); color: var(--rb-on-ink); padding: 66px; border-radius: 22px; display: grid; grid-template-columns: .95fr 1.1fr; gap: 12%; }
.rb-site .rb-dark-panel :is(h2,h3) { color: var(--rb-on-ink); }
.rb-site .rb-dark-panel p { color: var(--rb-on-ink); opacity: .82; }
.rb-site .rb-dark-panel .rb-kicker { color: var(--rb-accent); opacity: 1; }
.rb-site .rb-process-intro > p:not(.rb-kicker) { margin-top: 25px; font-size: .9rem; }
.rb-site .rb-light-link { margin-top: 32px; color: var(--rb-on-ink); border-bottom: 1px solid var(--rb-accent); }
.rb-site .rb-steps { list-style: none; margin: 0; padding: 0; }
.rb-site .rb-steps li { display: grid; grid-template-columns: 34px 1fr; gap: 23px; padding: 26px 0; border-top: 1px solid #ffffff35; }
.rb-site .rb-steps li:first-child { padding-top: 0; border: 0; }
.rb-site .rb-steps li:last-child { padding-bottom: 0; }
.rb-site .rb-step-number { color: var(--rb-accent); font-size: .75rem; padding-top: 5px; }
.rb-site .rb-steps h3 { font-size: 1.35rem; margin-bottom: 13px; }
.rb-site .rb-steps p { font-size: .86rem; }

/* Mixed widths and consistent caption baselines; no CSS masonry reading-order jump. */
.rb-site .rb-gallery-preview { display: grid; grid-template-columns: 1.4fr 1fr; gap: 30px; }
.rb-site .rb-gallery-preview .rb-wide { grid-row: span 2; }
.rb-site .rb-gallery-tile { display: flex; flex-direction: column; gap: 13px; }
.rb-site .rb-gallery-image { display: block; position: relative; flex: 1; min-height: 0; overflow: hidden; border-radius: 16px; background: var(--rb-soft); }
.rb-site .rb-gallery-image img { transition: transform .35s ease; }
.rb-site .rb-gallery-image:hover img { transform: scale(1.025); }
.rb-site .rb-gallery-preview .rb-gallery-image { height: 252px; }
.rb-site .rb-gallery-preview .rb-wide .rb-gallery-image { height: 580px; }
.rb-site .rb-gallery-tile figcaption { display: flex; justify-content: space-between; gap: 14px; font-size: .79rem; line-height: 1.6; }
.rb-site .rb-caption-category { color: var(--rb-muted); font-size: .68rem; text-align: right; }
.rb-site .rb-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.rb-site .rb-filter { display: inline-flex; min-height: 46px; align-items: center; padding: 11px 19px; color: var(--rb-ink); background: transparent; border: 1px solid var(--rb-line); border-radius: 40px; font-size: .8rem; font-weight: 500; line-height: 1.5; transition: background .2s, color .2s; }
.rb-site .rb-filter:hover { border-color: var(--rb-ink); }
.rb-site .rb-filter.active { background: var(--rb-ink); color: var(--rb-on-ink); border-color: var(--rb-ink); }
.rb-site .rb-gallery-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px 28px; }
.rb-site .rb-gallery-grid .rb-gallery-tile { grid-column: span 5; opacity: 1; transform: none; animation: none; }
.rb-site .rb-gallery-grid .rb-gallery-wide { grid-column: span 7; }
.rb-site .rb-gallery-grid .rb-gallery-tile:nth-child(3n+2):not(.rb-gallery-wide) { grid-column: span 5; }
.rb-site .rb-gallery-grid .rb-gallery-image { height: 490px; }
.rb-site .rb-gallery-grid .rb-gallery-tile:nth-child(n+5) { grid-column: span 4; }
.rb-site .rb-gallery-grid .rb-gallery-tile:nth-child(n+5) .rb-gallery-image { height: 420px; }
.rb-site .rb-gallery-grid .rb-gallery-tile:nth-last-child(-n+2) { grid-column: span 6; }
.rb-site .rb-gallery:has(.rb-filter.active:not([data-filter="all"])) .rb-gallery-tile { grid-column: span 4; }
.rb-site .rb-gallery-note { font-size: .79rem; max-width: 800px; padding-top: 36px; }
.rb-site .rb-gallery-prompt { background: var(--rb-soft); border-radius: 20px; padding: 55px; text-align: center; }
.rb-site .rb-gallery-prompt > p:not(.rb-kicker) { max-width: 650px; margin: 24px auto; }
.rb-site .rb-gallery #gallery-filter-status { padding: 0 !important; text-align: left !important; font-size: .73rem; margin: 0 0 25px !important; }
.rb-shell .gal-lightbox.is-open { z-index: 100000; }

/* Reuse the current city/map DOM, giving it the same editorial rhythm. */
.rb-site .rb-region-wrapper { background: var(--rb-soft); margin-top: 15px; }
.rb-site .rb-region-wrapper #areas { width: min(1280px, calc(100% - 112px)); padding: 80px 0; margin: 0 auto; background: none; }
.rb-site .rb-region-wrapper .section-intro { display: grid; grid-template-columns: 1.35fr .8fr; align-items: end; gap: 70px; padding: 0; margin-bottom: 36px; }
.rb-site .rb-region-wrapper .eyebrow { font-size: .71rem; letter-spacing: .15em; font-weight: 600; text-transform: uppercase; color: var(--rb-muted); margin-bottom: 20px; }
.rb-site .rb-region-wrapper .area-studio { padding: 30px; background: var(--rb-paper); border-radius: 18px; border: 1px solid var(--rb-line); }
.rb-site .rb-region-wrapper .city-tabs { display: flex; flex-wrap: wrap; gap: 10px; border-bottom: 1px solid var(--rb-line); padding-bottom: 24px; }
.rb-site .rb-region-wrapper .city-choice { min-height: 46px; padding: 10px 20px; border: 1px solid var(--rb-line); border-radius: 28px; background: transparent; color: var(--rb-ink); font-size: .85rem; }
.rb-site .rb-region-wrapper .city-choice[aria-pressed=true] { background: var(--rb-ink); color: var(--rb-on-ink); }
.rb-site .rb-region-wrapper .city-layout { display: grid; grid-template-columns: 1fr 1.2fr; gap: 65px; align-items: center; padding-top: 30px; }
.rb-site .rb-region-wrapper .city-summary h3 { margin-bottom: 15px; font-size: 2.3rem; }
.rb-site .rb-region-wrapper .city-copy { margin-block: 20px; }
.rb-site .rb-region-wrapper .solid-link { display: flex; align-items: center; justify-content: space-between; padding: 12px 19px; min-height: 48px; background: var(--rb-ink); color: var(--rb-on-ink); border-radius: 5px; font-size: .8rem; }
.rb-site .rb-region-wrapper .all-areas { display: inline-flex; align-items: center; min-height: 48px; font-size: .8rem; }
.rb-site .rb-region-wrapper .region-map svg { width: 100%; height: auto; }
.rb-site .rb-region-wrapper .region-map { background: var(--rb-soft); padding: 20px; border-radius: 14px; }
.rb-site .rb-region-wrapper .region-map text { font-family: var(--rb-body-font); font-size: 16px; fill: var(--rb-ink); }
.rb-site .rb-region-wrapper .region-map circle { fill: var(--rb-ink); }
.rb-site .rb-region-wrapper .region-map .is-current circle { fill: #986d33; }
.rb-site .rb-region-wrapper .map-caption { display: flex; justify-content: space-between; gap: 15px; font-size: .66rem; }
.rb-site .rb-region-wrapper .map-note { font-size: .7rem; }
.rb-site .rb-region-wrapper #load-map { margin-top: 16px; border: 0; background: var(--rb-ink); color: var(--rb-on-ink); padding: 12px 16px; min-height: 44px; border-radius: 4px; font-size: .78rem; }
.rb-site .rb-region-wrapper #interactive-map { width: 100%; border: 0; min-height: 330px; margin-top: 16px; }
.rb-site .rb-region-wrapper .vd-city-pages { display: flex; flex-wrap: wrap; gap: 12px 26px; margin-top: 25px; }
.rb-site .rb-region-wrapper .vd-city-pages a { font-size: .76rem; min-height: 44px; display: inline-flex; align-items: center; }
.rb-site .rb-city-links { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 25px; margin-top: 25px; }
.rb-site .rb-city-links .rb-text-link { border-color: var(--rb-line); font-size: .85rem; }
.rb-site .rb-areas-strip { padding: 35px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10%; border-block: 1px solid var(--rb-line); align-items: center; }
.rb-site .rb-areas-strip h2 { font-size: 2rem; }
.rb-site .rb-areas-strip .rb-city-links { margin-top: 0; }

/* Native details work without script; the original enquiry form is untouched. */
.rb-site .rb-faq-contact { display: grid; grid-template-columns: 1.05fr 1fr; align-items: start; gap: 9%; }
.rb-site .rb-faq-list { margin-top: 35px; }
.rb-site .rb-faq-item { border-top: 1px solid var(--rb-line); }
.rb-site .rb-faq-item:last-child { border-bottom: 1px solid var(--rb-line); }
.rb-site .rb-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 26px; cursor: pointer; padding: 22px 0; min-height: 66px; font-size: .91rem; font-weight: 500; line-height: 1.6; list-style: none; }
.rb-site .rb-faq-item summary::-webkit-details-marker { display: none; }
.rb-site .rb-faq-symbol { width: 14px; height: 14px; flex: 0 0 14px; position: relative; }
.rb-site .rb-faq-symbol::before, .rb-site .rb-faq-symbol::after { content: ''; position: absolute; background: var(--rb-ink); height: 1px; width: 14px; top: 6px; left: 0; }
.rb-site .rb-faq-symbol::after { transform: rotate(90deg); }
.rb-site .rb-faq-item[open] .rb-faq-symbol::after { transform: rotate(0); }
.rb-site .rb-faq-answer { padding: 0 25px 24px 0; }
.rb-site .rb-faq-answer p { font-size: .87rem; }
.rb-site .rb-contact-card { background: var(--rb-ink); border-radius: 20px; padding: clamp(30px, 4vw, 57px); color: var(--rb-on-ink); }
.rb-site .rb-contact-card h2 { color: var(--rb-on-ink); margin-bottom: 26px; }
.rb-site .rb-contact-card .rb-kicker { color: var(--rb-accent); }
.rb-site .rb-contact-card p { color: var(--rb-on-ink); }
.rb-site .rb-contact-card .rb-button-link { color: var(--rb-on-accent); background: var(--rb-accent); margin-top: 28px; }
.rb-site .rb-contact-card .rb-button-link:hover { background: var(--rb-paper); }
.rb-site .rb-contact-direct { display: flex; flex-direction: column; align-items: start; padding-top: 28px; }
.rb-site .rb-contact-direct a { display: inline-flex; min-height: 44px; align-items: center; font-size: .84rem; overflow-wrap: anywhere; }
.rb-site .rb-contact-direct a:hover { text-decoration: underline; }
.rb-site .rb-contact-footnote { margin-top: 33px; padding-top: 22px; border-top: 1px solid #ffffff35; font-size: .65rem; }
.rb-site .rb-form-panel { padding: 40px; border: 1px solid var(--rb-line); background: var(--rb-soft); border-radius: 20px; }
.rb-site .rb-form-panel > p:not(.rb-kicker) { margin-block: 22px 28px; font-size: .9rem; }
.rb-site .rb-form-panel .intake-form-centered { max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; background: none; }
.rb-site .rb-form-panel .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.rb-site .rb-form-panel .form-group { margin-bottom: 19px; }
.rb-site .rb-form-panel label { display: block; font-size: .76rem; line-height: 1.65; font-weight: 500; margin-bottom: 7px; color: var(--rb-ink); }
.rb-site .rb-form-panel .req { color: #9d312d; }
.rb-site .rb-form-panel :is(input,select,textarea) { min-height: 48px; width: 100%; max-width: 100%; min-width: 0; font: 400 1rem/1.5 var(--rb-body-font); border: 1px solid #c5bbac; background: var(--rb-paper); border-radius: 5px; padding: 10px 12px; color: var(--rb-ink); }
.rb-site .rb-form-panel :is(input,textarea)::placeholder { color: var(--rb-muted); opacity: 1; font-size: .85rem; }
.rb-site .rb-form-panel textarea { min-height: 115px; resize: vertical; }
.rb-site .rb-form-panel .hp-field { position: absolute; left: -9999px; }
.rb-site .rb-form-panel .intake-submit { min-height: 52px; background: var(--rb-ink); color: var(--rb-on-ink); border: 0; border-radius: 5px; width: 100%; font: 500 .87rem/1.6 var(--rb-body-font); cursor: pointer; padding: 14px; box-shadow: none; }
.rb-site .rb-form-panel .intake-submit:hover { background: var(--rb-accent); color: var(--rb-on-accent); }
.rb-site .rb-form-panel .intake-submit:disabled { opacity: .55; cursor: wait; }
.rb-site .rb-form-panel .intake-success { display: none; }
.rb-site .rb-booking { padding: 40px; background: var(--rb-soft); border-radius: 20px; }
.rb-site .rb-booking-heading { max-width: 660px; margin: 0 auto 32px; text-align: center; }
.rb-site .rb-booking-heading h2 { margin-bottom: 20px; }
.rb-site .rb-booking-heading p { font-size: .88rem; }
.rb-site .rb-booking-mount { max-width: 100%; width: 100%; min-width: 0; overflow-x: hidden; }
.rb-site .rb-network { padding: 55px; background: var(--rb-soft); border-radius: 20px; }
.rb-site .rb-network-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 55px; }
.rb-site .rb-network-grid article { border-top: 1px solid var(--rb-line); padding-top: 17px; }
.rb-site .rb-network-grid .rb-text-link { border: 0; width: 100%; }
.rb-site .rb-network-grid p { font-size: .87rem; margin-top: 5px; }
.rb-site .rb-review-slot:empty { display: none; }
.rb-site .rb-final-line { display: flex; justify-content: space-between; align-items: center; padding-top: 45px; gap: 24px; }
.rb-site .rb-final-line > p { font: 500 1.25rem/1.5 var(--rb-heading-font); color: var(--rb-ink); letter-spacing: -.03em; }

@media (min-width: 1600px) { .rb-site .rb-hero { padding-top: 150px; } }
@media (max-width: 1100px) {
  .rb-site .rb-wrap, .rb-site .rb-region-wrapper #areas { width: calc(100% - 64px); }
  .rb-site .rb-hero-heading, .rb-site .rb-section-heading { gap: 40px; }
  .rb-site .rb-hero { padding-top: 135px; }
  .rb-site .rb-dark-panel { padding: 42px; gap: 50px; }
  .rb-site .rb-story-photo { height: 520px; }
  .rb-site .rb-grid-four { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 40px 28px; }
  .rb-site .rb-grid-four .rb-card-photo { aspect-ratio: 1.2; }
  .rb-site .rb-form-panel { padding: 28px; }
  .rb-site .rb-faq-contact { gap: 45px; }
  .rb-site .rb-form-panel .form-row { grid-template-columns: 1fr; gap: 0; }
  .rb-site .rb-region-wrapper .city-layout { gap: 35px; }
  .rb-site .rb-about-feature { padding: 30px; gap: 40px; }
  .rb-site .rb-about-feature > figure { height: 720px; }
  .rb-site .rb-gallery-grid .rb-gallery-image { height: 420px; }
  .rb-site .rb-gallery-grid .rb-gallery-tile:nth-child(n+5) .rb-gallery-image { height: 340px; }
  .rb-site .rb-gallery-tile figcaption { flex-direction: column; gap: 1px; }
  .rb-site .rb-caption-category { text-align: left; }
}
@media (max-width: 760px) {
  .rb-site { padding-bottom: 56px; }
  .rb-site .rb-wrap, .rb-site .rb-region-wrapper #areas { width: calc(100% - 36px); }
  .rb-site h1 { font-size: clamp(2.5rem, 8.5vw, 3.9rem); max-width: 21ch; }
  .rb-site h2 { font-size: clamp(1.9rem, 6.8vw, 2.7rem); }
  .rb-site .rb-kicker { font-size: .64rem; letter-spacing: .12em; margin-bottom: 18px; }
  .rb-site .rb-hero { padding-top: 152px; }
  .rb-site .rb-hero-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 30px; }
  .rb-site .rb-hero-aside { max-width: 560px; padding: 0; }
  .rb-site .rb-hero-aside > p { font-size: .9rem; }
  .rb-site .rb-actions { margin-top: 18px; }
  .rb-site .rb-hero-frame { aspect-ratio: 1.12; border-radius: 16px; }
  .rb-site .rb-hero-caption { inset: auto 20px 20px; }
  .rb-site .rb-hero-caption > :first-child { font-size: 1.05rem; }
  .rb-site .rb-hero-caption > :last-child { display: none; }
  .rb-site .rb-page-nav { display: none; }
  .rb-site .rb-section-heading { grid-template-columns: 1fr; gap: 23px; margin-bottom: 30px; }
  .rb-site .rb-heading-aside > p { max-width: 100%; font-size: .9rem; }
  .rb-site .rb-heading-aside > a { margin-top: 10px; }
  .rb-site .rb-story-grid, .rb-site .rb-narrative, .rb-site .rb-about-feature, .rb-site .rb-local-story { grid-template-columns: 1fr; gap: 34px; }
  .rb-site .rb-story-photo { height: 450px; }
  .rb-site .rb-story-copy h3 { font-size: 2rem; }
  .rb-site .rb-story-copy p { font-size: .94rem; }
  .rb-site .rb-story-copy .rb-note { margin-top: 25px; }
  .rb-site .rb-service-grid { grid-template-columns: 1fr; gap: 36px; }
  .rb-site .rb-card-photo { aspect-ratio: 1.08; }
  .rb-site .rb-card-body { padding-top: 20px; }
  .rb-site .rb-card-body h3 { font-size: 1.55rem; }
  .rb-site .rb-service-directory { grid-template-columns: 1fr; gap: 16px; margin-top: 32px; }
  .rb-site .rb-service-directory nav { gap: 8px 23px; }
  .rb-site .rb-service-directory .rb-text-link { font-size: .76rem; gap: 10px; }
  .rb-site .rb-process { padding-top: 60px; }
  .rb-site .rb-dark-panel { grid-template-columns: 1fr; gap: 42px; border-radius: 16px; padding: 30px 25px; }
  .rb-site .rb-light-link { margin-top: 20px; }
  .rb-site .rb-steps li { gap: 15px; grid-template-columns: 24px 1fr; }
  .rb-site .rb-steps h3 { font-size: 1.2rem; }
  .rb-site .rb-gallery-preview { gap: 28px; grid-template-columns: 1fr; }
  .rb-site .rb-gallery-preview .rb-wide { grid-row: auto; }
  .rb-site .rb-gallery-preview .rb-gallery-image { height: 330px; }
  .rb-site .rb-gallery-preview .rb-wide .rb-gallery-image { height: 370px; }
  .rb-site .rb-gallery-tile figcaption { flex-direction: row; gap: 13px; }
  .rb-site .rb-caption-category { text-align: right; }
  .rb-site .rb-region-wrapper #areas { padding-block: 55px; }
  .rb-site .rb-region-wrapper .section-intro { grid-template-columns: 1fr; gap: 22px; }
  .rb-site .rb-region-wrapper .section-intro h2 { font-size: 2rem; }
  .rb-site .rb-region-wrapper .area-studio { padding: 22px; }
  .rb-site .rb-region-wrapper .city-layout { grid-template-columns: 1fr; }
  .rb-site .rb-region-wrapper .city-choice { font-size: .75rem; padding-inline: 16px; }
  .rb-site .rb-region-wrapper .city-summary h3 { font-size: 1.9rem; }
  .rb-site .rb-region-wrapper .region-map { padding: 14px; }
  .rb-site .rb-region-wrapper .vd-city-pages { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .rb-site .rb-region-wrapper .vd-city-pages a { font-size: .7rem; }
  .rb-site .rb-faq-contact { grid-template-columns: 1fr; gap: 40px; }
  .rb-site .rb-form-panel, .rb-site .rb-contact-card { padding: 28px 23px; border-radius: 16px; }
  .rb-site .rb-faq-item summary { font-size: .88rem; padding-block: 20px; }
  .rb-site .rb-booking { padding: 30px 16px; }
  .rb-site .rb-final-line { flex-direction: column; align-items: start; gap: 12px; padding-top: 35px; }
  .rb-site .rb-about-feature { padding: 22px; border-radius: 16px; }
  .rb-site .rb-about-feature > figure { height: 480px; }
  .rb-site .rb-about-feature figcaption { left: 12px; right: 12px; bottom: 12px; }
  .rb-site .rb-principles { grid-template-columns: 1fr; gap: 30px; }
  .rb-site .rb-principle-number { margin-bottom: 20px; }
  .rb-site .rb-principles h3 { font-size: 1.55rem; }
  .rb-site .rb-principles br { display: none; }
  .rb-site .rb-wide-photo figure { aspect-ratio: 1.2; }
  .rb-site .rb-wide-photo figcaption { bottom: 18px; left: 18px; right: 18px; padding: 12px; }
  .rb-site .rb-network { padding: 30px 22px; }
  .rb-site .rb-network-grid { grid-template-columns: 1fr; gap: 22px; }
  .rb-site .rb-custom-piece { grid-template-columns: 1fr; gap: 22px; margin-top: 40px; }
  .rb-site .rb-areas-strip { grid-template-columns: 1fr; gap: 20px; }
  .rb-site .rb-gallery-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px 18px; }
  .rb-site .rb-gallery-grid .rb-gallery-tile, .rb-site .rb-gallery-grid .rb-gallery-tile:nth-child(n+5), .rb-site .rb-gallery-grid .rb-gallery-tile:nth-child(3n+2):not(.rb-gallery-wide) { grid-column: auto; }
  .rb-site .rb-gallery-grid .rb-gallery-wide { grid-column: span 2; }
  .rb-site .rb-gallery:has(.rb-filter.active:not([data-filter="all"])) .rb-gallery-tile { grid-column: auto; }
  .rb-site .rb-gallery-grid .rb-gallery-image, .rb-site .rb-gallery-grid .rb-gallery-tile:nth-child(n+5) .rb-gallery-image { height: 250px; }
  .rb-site .rb-gallery-grid .rb-gallery-wide .rb-gallery-image { height: 370px; }
  .rb-site .rb-gallery-grid .rb-gallery-tile figcaption { flex-direction: column; font-size: .72rem; gap: 3px; }
  .rb-site .rb-gallery-grid .rb-caption-category { text-align: left; font-size: .63rem; }
  .rb-site .rb-filter { font-size: .74rem; padding: 10px 15px; }
  .rb-site .rb-gallery-prompt { padding: 35px 23px; }
}
@media (max-width: 390px) {
  .rb-site .rb-hero { padding-top: 145px; }
  .rb-site h1 { font-size: 2.4rem; }
  .rb-site .rb-gallery-grid { grid-template-columns: 1fr; }
  .rb-site .rb-gallery-grid .rb-gallery-tile, .rb-site .rb-gallery-grid .rb-gallery-wide { grid-column: auto; }
  .rb-site .rb-gallery-grid .rb-gallery-image, .rb-site .rb-gallery-grid .rb-gallery-tile:nth-child(n+5) .rb-gallery-image { height: 380px; }
  .rb-site .rb-service-directory nav { grid-template-columns: 1fr; }
  .rb-site .rb-city-links { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .rb-site *, .rb-site *::before, .rb-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .rb-site .rb-hero { padding-top: 30px; }
  .rb-site .rb-wrap { width: 100%; }
  .rb-site .rb-dark-panel { color: #000; background: #fff; border: 1px solid #ccc; }
  .rb-site .rb-dark-panel :is(h2,h3,p) { color: #000; }
  .rb-site .rb-filters, .rb-site .rb-booking { display: none; }
  .rb-site .rb-faq-item > .rb-faq-answer { display: block !important; }
}

/* Final integration details shared by the Interior representative pages. */
.rb-site .rb-review-slot { padding-block:clamp(48px,6vw,88px); }
.rb-site .rb-review-slot .rb-reviews { padding:0; background:transparent; }
.rb-site .rb-review-slot .rb-reviews__inner { max-width:none; }
.rb-site .rb-review-slot .rb-reviews__heading { max-width:48rem; }
.rb-site .rb-review-slot .rb-testimonial__quote p { font-family:var(--rb-body-font); font-size:1rem; }
.rb-site #enquire { scroll-margin-top:145px; }
.rb-site [id] { scroll-margin-top:145px; }
.rb-site .booking-calendar-widget [tabindex="-1"]:focus { outline:3px solid var(--rb-accent); outline-offset:6px; }
.rb-site .rb-calendar-disclosure > summary,
.rb-site .rb-coverage-disclosure > summary { cursor:pointer; padding:18px 0; min-height:60px; font-weight:600; font-size:1rem; }
.rb-site .rb-calendar-disclosure[open] > summary { margin-bottom:24px; }
.rb-site .rb-coverage-disclosure { border-block:1px solid var(--rb-line); }
.rb-site .rb-coverage-disclosure .rb-region-wrapper #areas { width:100%; }
.rb-site .rb-introduction .rb-section-heading { margin-bottom:0; }
.rb-site .rb-more-feedback { margin-top:28px; }
.rb-site .rb-more-feedback > summary { cursor:pointer; padding-block:16px; min-height:52px; font-weight:600; }
.rb-site .rb-more-feedback .rb-testimonials-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:24px; margin-top:20px; }
body.rb-shell .header .nav-links > li > button { color:var(--rb-ink) !important; font-family:var(--rb-body-font) !important; font-size:.81rem !important; font-weight:500 !important; }
@media(min-width:769px) {
 body.rb-shell .header .nav-links > li { flex-shrink:0; }
}
@media(min-width:769px) and (max-width:1199px) {
 body.rb-shell .header .nav-phone { display:none !important; }
}
