/* Royal Barber 1.1 multisite visual layer. */
:root {
  --rb-v2-cream: #f0e4d2;
  --rb-v2-gold: #d7a96f;
  --rb-v2-copper: #a86638;
  --rb-v2-ink: #080906;
  --rb-v2-line: rgba(240, 228, 210, .15);
}

body.rb-network-main,
body.rb-network-branch { background: #0a0b08; }
.site-header--v2 { border-bottom-color: rgba(240,228,210,.08); }
.site-header--v2 .site-header__inner { grid-template-columns: minmax(180px,auto) 1fr auto; }
.brand-mark--v2 .brand-mark__icon { border-radius: 4px 18px 4px 18px; transform: rotate(-3deg); }
.brand-mark__copy { display: flex; flex-direction: column; line-height: 1.1; }
.brand-mark__copy small { margin-top: 4px; color: var(--rb-muted); font-size: .55rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.header-phone { display: flex; flex-direction: column; line-height: 1.15; }
.header-phone span { color: var(--rb-muted); font-size: .55rem; letter-spacing: .16em; text-transform: uppercase; }
.rb-v2 { overflow: hidden; }
.rb-v2 .rb-lead { color: var(--rb-v2-cream); font-family: "Playfair Display",serif; font-size: clamp(1.35rem,2.2vw,2.15rem); line-height: 1.45; }

.rb-editorial-hero { position: relative; min-height: 930px; overflow: hidden; background: radial-gradient(circle at 74% 28%,rgba(168,102,56,.24),transparent 25%),linear-gradient(120deg,#080906 0%,#11120e 48%,#070805 100%); }
.rb-editorial-hero::before { position:absolute; inset:0; content:""; background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 90%); }
.rb-editorial-hero__grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) 260px; align-items:end; gap:70px; min-height:930px; padding-top:calc(var(--rb-header-height) + 120px); padding-bottom:90px; }
.rb-editorial-hero__copy { max-width:950px; }
.rb-editorial-hero h1 { max-width:1000px; font-size:clamp(4rem,8.2vw,8.8rem); line-height:.91; text-wrap:balance; }
.rb-editorial-hero p { max-width:650px; font-size:1.1rem; }
.rb-editorial-hero__actions { display:flex; align-items:center; gap:28px; margin-top:36px; }
.rb-editorial-hero__side { padding:28px 0 0 28px; border-top:1px solid var(--rb-v2-gold); border-left:1px solid var(--rb-v2-line); }
.rb-editorial-hero__side > span { color:var(--rb-v2-gold); font-family:"Playfair Display",serif; font-size:3.8rem; }
.rb-editorial-hero__side p { font-size:.86rem; }
.rb-editorial-hero__visual { position:absolute; inset:0; pointer-events:none; }
.rb-editorial-hero__arch { position:absolute; top:12%; right:8%; width:min(40vw,610px); height:72%; border:1px solid rgba(215,169,111,.28); border-radius:50% 50% 2px 2px; background:linear-gradient(150deg,rgba(255,255,255,.04),rgba(0,0,0,.6)); box-shadow:inset 0 0 100px rgba(0,0,0,.7),0 70px 110px rgba(0,0,0,.35); transform:rotate(2deg); }
.rb-editorial-hero__blade { position:absolute; top:25%; right:17%; width:13px; height:48%; border-radius:999px; background:linear-gradient(#e7cfad,#815435 58%,#191a16); box-shadow:0 0 50px rgba(215,169,111,.28); transform:rotate(22deg); }
.rb-editorial-hero__portrait { position:absolute; right:12%; bottom:8%; width:min(30vw,430px); height:65%; border-radius:48% 48% 8px 8px; background:radial-gradient(circle at 52% 20%,rgba(240,228,210,.15),transparent 20%),linear-gradient(110deg,#0d0e0b,#302920 55%,#0b0c09); box-shadow:0 45px 100px rgba(0,0,0,.55); }
.rb-editorial-hero__serial { position:absolute; right:5%; bottom:45%; color:rgba(240,228,210,.28); font-size:.65rem; font-weight:800; letter-spacing:.32em; text-transform:uppercase; transform:rotate(90deg); transform-origin:right bottom; }
.rb-branch-quick-info { display:flex; flex-wrap:wrap; gap:42px; margin-top:70px; padding-top:24px; border-top:1px solid var(--rb-v2-line); }
.rb-branch-quick-info div { display:flex; flex-direction:column; max-width:360px; }
.rb-branch-quick-info small { color:var(--rb-muted); font-size:.62rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.rb-branch-quick-info strong { margin-top:5px; color:var(--rb-v2-cream); font-size:.86rem; }

.rb-marquee { overflow:hidden; border-top:1px solid var(--rb-v2-line); border-bottom:1px solid var(--rb-v2-line); background:#0e0f0c; }
.rb-marquee__track { display:flex; align-items:center; width:max-content; min-height:72px; animation:rb-marquee 28s linear infinite; }
.rb-marquee span { padding:0 34px; color:var(--rb-v2-cream); font-family:"Playfair Display",serif; font-size:1.15rem; letter-spacing:.08em; }
.rb-marquee i { width:7px; height:7px; border-radius:50%; background:var(--rb-v2-gold); }
@keyframes rb-marquee { to { transform:translateX(-50%); } }

.rb-section-head { display:flex; align-items:end; justify-content:space-between; gap:45px; margin-bottom:58px; }
.rb-section-head > div { max-width:800px; }
.rb-section-head h2 { margin-bottom:0; }
.rb-section-head > p { max-width:390px; margin-bottom:6px; }
.rb-manifesto { background:linear-gradient(180deg,#0a0b08,#11120e); }
.rb-manifesto__grid { display:grid; grid-template-columns:1fr .9fr; gap:clamp(60px,9vw,140px); }
.rb-manifesto__body { padding-top:30px; }
.rb-signature { margin:45px 0 25px; color:rgba(215,169,111,.7); font-family:"Playfair Display",serif; font-size:2rem; font-style:italic; transform:rotate(-3deg); }

.rb-branches-section { background:#15120e; }
.rb-network-grid { display:grid; gap:28px; }
.rb-network-card { position:relative; display:grid; grid-template-columns:90px minmax(280px,.8fr) 1fr; min-height:360px; overflow:hidden; border:1px solid var(--rb-v2-line); background:#0c0d0a; transition:transform .3s ease,border-color .3s ease; }
.rb-network-card:hover { transform:translateY(-6px); border-color:rgba(215,169,111,.45); }
.rb-network-card__number { display:grid; place-items:center; border-right:1px solid var(--rb-v2-line); color:var(--rb-v2-gold); font-family:"Playfair Display",serif; font-size:2rem; writing-mode:vertical-rl; transform:rotate(180deg); }
.rb-network-card__visual { display:grid; place-items:center; background:radial-gradient(circle at 60% 30%,rgba(215,169,111,.24),transparent 20%),linear-gradient(145deg,#252018,#0c0d0a); }
.rb-network-card__visual span { display:grid; place-items:center; width:140px; height:180px; border:1px solid rgba(215,169,111,.38); border-radius:70px 70px 8px 8px; color:var(--rb-v2-gold); font-family:"Playfair Display",serif; font-size:2rem; }
.rb-network-card__body { display:flex; flex-direction:column; justify-content:center; padding:48px; }
.rb-network-card__body h3 { font-size:clamp(2rem,3vw,3.3rem); }
.rb-network-card__meta { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:auto; padding-top:28px; border-top:1px solid var(--rb-v2-line); color:var(--rb-muted); font-size:.76rem; }
.rb-network-card__meta a { color:var(--rb-v2-gold); font-weight:800; }
.rb-empty-state { padding:60px; border:1px dashed rgba(215,169,111,.35); background:rgba(255,255,255,.02); text-align:center; }

.rb-values { background:#0a0b08; }
.rb-values__title { max-width:820px; margin-bottom:55px; }
.rb-values__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--rb-v2-line); }
.rb-values__grid article { min-height:300px; padding:42px; background:#10110e; }
.rb-values__grid article > span { color:var(--rb-v2-gold); font-family:"Playfair Display",serif; font-size:2.8rem; }
.rb-values__grid h3 { margin-top:55px; }
.rb-values__grid p { margin-bottom:0; font-size:.9rem; }

.rb-service-list { border-top:1px solid var(--rb-v2-line); }
.rb-service-row { display:grid; grid-template-columns:65px 180px 1fr 170px; align-items:center; gap:32px; padding:28px 0; border-bottom:1px solid var(--rb-v2-line); transition:padding .25s ease,background .25s ease; }
.rb-service-row:hover { padding-right:22px; padding-left:22px; background:rgba(255,255,255,.025); }
.rb-service-row__index { color:var(--rb-v2-gold); font-family:"Playfair Display",serif; font-size:1.5rem; }
.rb-service-row__image { height:120px; overflow:hidden; }
.rb-service-row__image img,.rb-service-row__image .card-placeholder { width:100%; height:100%; min-height:0; object-fit:cover; }
.rb-service-row h3 { margin:0 0 8px; font-size:2rem; }
.rb-service-row p { margin:0; font-size:.88rem; }
.rb-service-row__price { display:flex; flex-direction:column; align-items:flex-end; }
.rb-service-row__price small { color:var(--rb-muted); }
.rb-service-row__price strong { color:var(--rb-v2-gold); font-family:"Playfair Display",serif; font-size:1.6rem; }

.rb-story-block { background:#d0a068; color:#0a0b08; }
.rb-story-block p,.rb-story-block .rb-lead { color:rgba(10,11,8,.78); }
.rb-story-block .eyebrow { color:#70431f; }
.rb-story-block__grid { display:grid; grid-template-columns:.8fr 1fr; align-items:center; gap:clamp(60px,9vw,130px); }
.rb-story-block__visual { display:grid; place-items:center; min-height:590px; border:1px solid rgba(10,11,8,.28); border-radius:48% 48% 4px 4px; background:radial-gradient(circle at 50% 25%,rgba(255,255,255,.18),transparent 25%),linear-gradient(140deg,#b67641,#17150f); box-shadow:0 45px 80px rgba(74,39,13,.2); }
.rb-story-block__visual span { color:#f0e4d2; font-family:"Playfair Display",serif; font-size:clamp(3rem,7vw,7rem); line-height:.85; text-align:center; }
.rb-story-block .button--outline { color:#0a0b08; border-color:rgba(10,11,8,.5); }

.rb-team-section { background:#0d0e0b; }
.rb-team-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.rb-team-card { overflow:hidden; border-bottom:1px solid var(--rb-v2-line); }
.rb-team-card__media { display:block; aspect-ratio:.78; overflow:hidden; background:#171812; }
.rb-team-card__media img,.rb-team-card__media .card-placeholder { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.rb-team-card:hover img { transform:scale(1.045); }
.rb-team-card > div { padding:22px 2px 24px; }
.rb-team-card span { color:var(--rb-v2-gold); font-size:.68rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.rb-team-card h3 { margin:8px 0; font-size:1.8rem; }
.rb-team-card p { margin:0; font-size:.82rem; }

.rb-gallery-section { background:#17130f; }
.rb-masonry-gallery { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:90px; gap:12px; }
.rb-masonry-gallery__item { position:relative; overflow:hidden; grid-column:span 3; grid-row:span 4; }
.rb-masonry-gallery__item:nth-child(1),.rb-masonry-gallery__item:nth-child(5) { grid-column:span 6; grid-row:span 6; }
.rb-masonry-gallery__item:nth-child(3),.rb-masonry-gallery__item:nth-child(6) { grid-row:span 5; }
.rb-masonry-gallery__item > div,.rb-masonry-gallery__item img,.rb-masonry-gallery__item .card-placeholder { width:100%; height:100%; object-fit:cover; }
.rb-masonry-gallery__item span { position:absolute; right:0; bottom:0; left:0; padding:34px 18px 16px; background:linear-gradient(transparent,rgba(0,0,0,.85)); font-weight:700; }
.rb-gallery-placeholder { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.rb-gallery-placeholder > div { min-height:330px; background:radial-gradient(circle at 50% 20%,rgba(215,169,111,.18),transparent 20%),linear-gradient(150deg,#282119,#0c0d0a); }
.rb-gallery-placeholder > div:nth-child(even) { transform:translateY(35px); }
.rb-gallery-placeholder p { grid-column:1/-1; margin:55px auto 0; text-align:center; }

.rb-review-section { background:#f0e4d2; color:#0a0b08; }
.rb-review-section p { color:rgba(10,11,8,.7); }
.rb-review-section .eyebrow { color:#8b542e; }
.rb-review-section__grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; align-items:center; }
.rb-review-embed { padding:34px; border:1px solid rgba(10,11,8,.18); background:#fffaf2; box-shadow:18px 18px 0 #b87947; }
.rb-review-empty { display:grid; min-height:250px; place-items:center; text-align:center; }
.rb-review-empty strong { font-size:1.8rem; }
.rb-review-empty span { color:#cc8a20; font-size:1.8rem; letter-spacing:.15em; }
.rb-review-empty p { max-width:450px; }
.rb-center-action { margin-top:48px; text-align:center; }

.rb-journal { background:#0b0c09; }
.rb-journal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.rb-journal-card__media { display:block; aspect-ratio:1.35; overflow:hidden; }
.rb-journal-card__media img,.rb-journal-card__media .card-placeholder { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.rb-journal-card:hover img { transform:scale(1.045); }
.rb-journal-card > div { padding:24px 0; }
.rb-journal-card span { color:var(--rb-muted); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.rb-journal-card h3 { margin:12px 0; }
.rb-journal-card p { font-size:.86rem; }

.site-footer--v2 { padding-top:0; background:#080906; }
.site-footer__topline { display:flex; justify-content:space-around; gap:30px; overflow:hidden; padding:22px; border-top:1px solid var(--rb-v2-line); border-bottom:1px solid var(--rb-v2-line); color:rgba(240,228,210,.35); font-size:.66rem; font-weight:800; letter-spacing:.28em; white-space:nowrap; }
.site-footer__lead { display:flex; align-items:end; justify-content:space-between; gap:50px; padding-top:90px; padding-bottom:80px; border-bottom:1px solid var(--rb-v2-line); }
.site-footer__statement { max-width:850px; }
.site-footer__statement h2 { margin-bottom:0; font-size:clamp(2.5rem,4.5vw,5rem); }
.site-footer__grid--v2 { grid-template-columns:1.25fr .7fr .9fr .85fr; padding-top:70px; padding-bottom:70px; }
.footer-brand-column { padding-right:35px; }
.footer-link-list { margin:0; padding:0; list-style:none; }
.footer-link-list li { margin:10px 0; }
.footer-link-list a { color:var(--rb-text-soft); font-size:.86rem; }
.footer-socials { display:flex; flex-wrap:wrap; gap:8px; }
.footer-socials a { padding:7px 12px; border:1px solid var(--rb-v2-line); border-radius:999px; color:var(--rb-text-soft); font-size:.68rem; }
.footer-contact { font-style:normal; }
.footer-hours { white-space:pre-line; }
.footer-note { font-size:.76rem; }
.site-footer__bottom--v2 { display:flex; justify-content:space-between; gap:30px; }
.site-footer__bottom--v2 div { display:flex; gap:22px; }

.rb-about-hero { min-height:760px; padding-top:calc(var(--rb-header-height) + 130px); background:radial-gradient(circle at 76% 30%,rgba(168,102,56,.24),transparent 25%),#090a07; }
.rb-about-hero__grid { display:grid; grid-template-columns:1fr 280px; align-items:end; gap:80px; min-height:600px; padding-bottom:80px; }
.rb-about-hero h1 { max-width:1050px; font-size:clamp(4rem,8vw,8rem); line-height:.92; }
.rb-about-hero__note { padding:30px; border-top:1px solid var(--rb-v2-gold); }
.rb-about-hero__note span { color:var(--rb-v2-gold); font-family:"Playfair Display",serif; font-size:3rem; line-height:.8; }
.rb-about-story__grid { display:grid; grid-template-columns:.8fr 1fr; align-items:center; gap:100px; }
.rb-about-story__visual { display:grid; place-items:center; min-height:620px; border-radius:48% 48% 4px 4px; background:radial-gradient(circle at 50% 25%,rgba(215,169,111,.22),transparent 20%),linear-gradient(145deg,#2b241b,#0c0d09); }
.rb-about-story__visual span { color:var(--rb-v2-gold); font-family:"Playfair Display",serif; font-size:5rem; }
.rb-about-principles { background:#15120e; }
.rb-hygiene { background:#d0a068; color:#0a0b08; }
.rb-hygiene p,.rb-hygiene .eyebrow { color:rgba(10,11,8,.7); }
.rb-hygiene__grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; }
.rb-hygiene__list > div { display:grid; grid-template-columns:70px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid rgba(10,11,8,.2); }
.rb-hygiene__list strong { font-family:"Playfair Display",serif; font-size:1.8rem; }
.rb-about-cta { padding:130px 0; text-align:center; background:#090a07; }
.rb-about-cta h2 { max-width:900px; margin:0 auto 36px; }

@media (max-width:1100px) {
  .rb-editorial-hero__grid { grid-template-columns:1fr; }
  .rb-editorial-hero__side { max-width:420px; }
  .rb-editorial-hero__arch,.rb-editorial-hero__portrait { opacity:.42; }
  .rb-network-card { grid-template-columns:70px .75fr 1fr; }
  .rb-team-grid { grid-template-columns:repeat(2,1fr); }
  .site-footer__grid--v2 { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:782px) {
  .rb-editorial-hero,.rb-editorial-hero__grid { min-height:820px; }
  .rb-editorial-hero__grid { padding-top:calc(var(--rb-header-height) + 95px); padding-bottom:60px; }
  .rb-editorial-hero h1,.rb-about-hero h1 { font-size:clamp(3.1rem,15vw,5.5rem); }
  .rb-editorial-hero__arch { right:-25%; width:90vw; }
  .rb-editorial-hero__portrait { right:-22%; width:75vw; }
  .rb-editorial-hero__side { display:none; }
  .rb-editorial-hero__actions,.rb-section-head,.site-footer__lead { align-items:flex-start; flex-direction:column; }
  .rb-branch-quick-info { gap:20px; margin-top:45px; }
  .rb-manifesto__grid,.rb-story-block__grid,.rb-review-section__grid,.rb-about-story__grid,.rb-hygiene__grid,.rb-about-hero__grid { grid-template-columns:1fr; gap:45px; }
  .rb-network-card { grid-template-columns:55px 1fr; }
  .rb-network-card__visual { grid-column:2; min-height:260px; }
  .rb-network-card__body { grid-column:2; padding:30px; }
  .rb-network-card__number { grid-row:1/3; }
  .rb-network-card__meta { align-items:flex-start; flex-direction:column; }
  .rb-values__grid,.rb-journal-grid { grid-template-columns:1fr; }
  .rb-service-row { grid-template-columns:40px 90px 1fr; gap:15px; }
  .rb-service-row__price { grid-column:3; align-items:flex-start; }
  .rb-service-row h3 { font-size:1.45rem; }
  .rb-team-grid { grid-template-columns:1fr 1fr; }
  .rb-masonry-gallery { grid-template-columns:repeat(2,1fr); grid-auto-rows:230px; }
  .rb-masonry-gallery__item,.rb-masonry-gallery__item:nth-child(n) { grid-column:auto; grid-row:auto; }
  .rb-gallery-placeholder { grid-template-columns:1fr 1fr; }
  .site-footer__grid--v2 { grid-template-columns:1fr; }
  .site-footer__bottom--v2,.site-footer__bottom--v2 div { align-items:flex-start; flex-direction:column; }
  .rb-about-hero { min-height:auto; }
  .rb-about-hero__grid { min-height:640px; }
}
@media (max-width:520px) {
  .rb-team-grid,.rb-gallery-placeholder { grid-template-columns:1fr; }
  .rb-gallery-placeholder > div:nth-child(even) { transform:none; }
  .rb-network-card { display:block; }
  .rb-network-card__number { display:none; }
  .rb-service-row { grid-template-columns:32px 1fr; }
  .rb-service-row__image { display:none; }
  .rb-service-row__price { grid-column:2; }
}
@media (prefers-reduced-motion:reduce) {
  .rb-marquee__track { animation:none; }
}
