/* Rank-Brew child theme — scoped styles (.rb- prefixed; never touches Elementor). */

html { overflow-x: hidden; }

.rb-header *, .rb-hero *, .rb-services *, .rb-footer *,
.rb-overlay *, .rb-floatcta *, .rb-book-modal * { box-sizing: border-box; }

body { background: var(--bg); color: var(--ink); font-family: var(--font-body); font-size: var(--base-size); -webkit-font-smoothing: antialiased; }
.rb-page a { text-decoration: none; }
::selection { background: var(--accent); color: #fff; }

/* sticky-reveal wrapper (desktop) */
.rb-page { position: relative; z-index: 2; background: var(--bg); box-shadow: 0 40px 120px rgba(0,0,0,.5); margin-bottom: 100vh; }

/* prism */
.rb-prism { position: absolute; top: 50vh; right: 20px; width: 700px; height: 700px; margin-top: -350px; pointer-events: none; z-index: 1; will-change: transform; }
.rb-prism-glow { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 45% 40%, rgba(196,181,253,.55) 0%, rgba(249,196,215,.42) 45%, rgba(253,230,180,.32) 65%, rgba(255,255,255,0) 82%); filter: blur(38px); }
.rb-prism-spin { position: absolute; inset: 12%; will-change: transform; }

/* buttons */
.rb-btn { display:inline-flex; align-items:center; padding:15px 28px; border-radius:100px; font:400 12.5px var(--font-mono); letter-spacing:.08em; text-transform:uppercase; transition:background .3s,color .3s,border-color .3s; cursor:pointer; border:0; }
.rb-btn-dark { background:var(--dark); color:#fff; }
.rb-btn-dark:hover { background:var(--accent); color:#fff; }
.rb-btn-ghost { background:#fff; color:var(--ink); border:1px solid var(--line); }
.rb-btn-ghost:hover { border-color:var(--accent); color:var(--accent); }

/* header nav pills */
.rb-nav { display:flex; align-items:center; gap:6px; }
.rb-menu { display:flex; align-items:center; gap:6px; list-style:none; margin:0; padding:0; }
.rb-menu > li { position:relative; }
.rb-menu li a, .rb-pill { display:inline-flex; align-items:center; gap:5px; padding:10px 18px; background:var(--bg-gray); border-radius:100px; color:var(--ink); font:400 14px var(--font-body); white-space:nowrap; transition:background .25s,color .25s; cursor:pointer; border:0; }
.rb-menu li a:hover, .rb-pill:hover { background:var(--accent-soft); color:var(--accent); }
.rb-caret { font-size:11px; opacity:.7; }

/* simple dropdown */
.rb-has-drop { position:relative; }
.rb-drop { position:absolute; top:calc(100% + 10px); left:0; min-width:210px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 20px 50px rgba(0,0,0,.12); padding:8px; display:none; flex-direction:column; gap:2px; list-style:none; margin:0; z-index:40; }
.rb-has-drop:hover .rb-drop, .rb-has-drop.rb-open .rb-drop { display:flex; }
.rb-drop li a { display:block; width:100%; padding:9px 12px; border-radius:9px; background:transparent; font:400 14px var(--font-body); color:var(--ink); }
.rb-drop li a:hover { background:var(--accent-soft); color:var(--accent); }

/* mega menu (desktop) */
.rb-has-mega { position:relative; }
.rb-mega { position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%); width:min(1120px,94vw); background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 40px 90px rgba(0,0,0,.18); padding:30px 34px; display:none; grid-template-columns:250px 1fr; gap:34px; z-index:40; }
.rb-has-mega:hover .rb-mega, .rb-has-mega.rb-open .rb-mega { display:grid; }
.rb-mega-promo { background:var(--bg-gray); border-radius:16px; padding:22px; display:flex; flex-direction:column; gap:14px; }
.rb-mega-promo-h { font:600 20px/1.2 var(--font-heading); margin:0; color:var(--ink); }
.rb-mega-promo-t { font:400 13px/1.5 var(--font-body); color:var(--ink-2); margin:0; }
.rb-mega-promo-b { align-self:flex-start; }
.rb-mega-promo-img { width:100%; border-radius:12px; margin-top:auto; }
.rb-mega-cols { column-count:4; column-gap:28px; }
.rb-mega-col { break-inside:avoid; margin-bottom:22px; display:inline-block; width:100%; }
.rb-mega-h { display:block; font:600 14px var(--font-heading); color:var(--accent); margin:0 0 10px; border-bottom:2px solid var(--accent-soft); padding-bottom:6px; }
.rb-mega-col ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.rb-mega-col ul li a { font:400 14px var(--font-body); color:var(--ink); }
.rb-mega-col ul li a:hover { color:var(--accent); }

.rb-headcta { display:inline-flex; align-items:center; padding:12px 24px; border-radius:100px; font:400 12px var(--font-mono); letter-spacing:.08em; text-transform:uppercase; transition:background .3s,color .3s; }
.rb-headcta:hover { background:var(--accent) !important; color:#fff !important; }

.rb-burger { display:none; flex-direction:column; gap:5px; align-items:flex-end; justify-content:center; width:44px; height:44px; border-radius:50%; border:1px solid var(--line); background:#fff; cursor:pointer; padding:0 11px; }
.rb-burger span { display:block; height:2px; background:var(--ink); }
.rb-burger span:first-child { width:20px; }
.rb-burger span:last-child { width:14px; }

/* ---- mobile overlay (multi-panel) ---- */
.rb-overlay { position:fixed; inset:0; z-index:60; display:flex; flex-direction:column; transform:translateY(-100%); transition:transform .5s cubic-bezier(.7,0,.2,1); }
.rb-overlay.open { transform:translateY(0); }
.rb-ov-top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 20px; border-bottom:1px solid rgba(255,255,255,.12); flex:none; }
.rb-ov-top-right { display:flex; align-items:center; gap:10px; }
.rb-ov-cta { background:var(--accent); color:#fff; padding:10px 18px; border-radius:100px; font:400 11.5px var(--font-mono); letter-spacing:.07em; text-transform:uppercase; }
.rb-overlay-close { width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.3); background:transparent; color:#fff; font-size:24px; line-height:1; cursor:pointer; }
.rb-msheet { position:relative; flex:1; overflow:hidden; }
.rb-mpanel { position:absolute; inset:0; overflow-y:auto; padding:14px 20px 30px; display:flex; flex-direction:column; background:var(--dark); }
.rb-mpanel-sub { transform:translateX(100%); transition:transform .4s cubic-bezier(.7,0,.2,1); }
.rb-mpanel-sub.is-active { transform:translateX(0); }
.rb-mlist { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.rb-mlist li { border-bottom:1px solid rgba(255,255,255,.12); }
.rb-mlink, .rb-mopen { display:flex; align-items:center; justify-content:space-between; width:100%; gap:16px; background:transparent; border:0; color:#fff; font:400 23px var(--font-heading); padding:18px 2px; text-align:left; cursor:pointer; }
.rb-marrow { color:#fff; font-size:20px; }
.rb-mmenu { list-style:none; margin:0; padding:0; }
.rb-mmenu li a { display:block; color:#fff; font:400 23px var(--font-heading); padding:18px 2px; border-bottom:1px solid rgba(255,255,255,.12); }
.rb-mcta { margin-top:22px; align-self:flex-start; padding:14px 28px; background:var(--accent); color:#fff; border-radius:100px; font:400 12.5px var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.rb-ov-foot { margin-top:auto; padding-top:22px; display:flex; flex-direction:column; gap:6px; }
.rb-ov-foot a { color:rgba(255,255,255,.8); font:400 15px var(--font-body); }
.rb-mpanel-head { display:flex; align-items:center; gap:14px; padding:6px 0 16px; border-bottom:1px solid rgba(255,255,255,.12); margin-bottom:8px; }
.rb-mback { width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.25); background:transparent; color:#fff; font-size:20px; cursor:pointer; flex:none; }
.rb-mpanel-title { font:500 21px var(--font-heading); color:#fff; }
.rb-msub { list-style:none; margin:0 0 6px; padding:0; }
.rb-msub li a { display:block; color:#fff; font:400 18px var(--font-body); padding:13px 2px; border-bottom:1px solid rgba(255,255,255,.08); }
.rb-msub-h { font:600 12.5px var(--font-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--accent-2); margin:20px 0 4px; }
.rb-msub-all { margin-top:22px; align-self:flex-start; }

/* floating CTA */
.rb-floatcta { position:fixed; z-index:50; border-radius:8px; padding:10px 12px; background:linear-gradient(90deg,#f6e7b2,#f3c9d8 40%,#b9a8f5); box-shadow:0 14px 40px rgba(20,10,60,.2); display:flex; align-items:center; gap:12px; opacity:0; pointer-events:none; transition:opacity .35s; }
.rb-floatcta.rb-show { opacity:1; pointer-events:auto; }

/* booking modal */
.rb-book-modal { position:fixed; inset:0; z-index:90; display:flex; align-items:center; justify-content:center; padding:20px; }
.rb-book-modal[hidden] { display:none; }
.rb-book-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.55); }
.rb-book-dialog { position:relative; max-width:420px; width:100%; border-radius:18px; padding:30px 30px 34px; box-shadow:0 40px 100px rgba(0,0,0,.45); }
.rb-book-close { position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:#fff; cursor:pointer; font-size:16px; line-height:1; }

/* footer */
.rb-footer { position:fixed; left:0; right:0; bottom:0; z-index:1; min-height:100vh; display:flex; flex-direction:column; justify-content:space-between; gap:50px; padding:70px 0 30px; }
.rb-social:hover { background:var(--accent) !important; border-color:var(--accent) !important; }
.rb-flink:hover { color:var(--accent-2) !important; }

/* ---- responsive ---- */
@media (max-width:900px) {
	.rb-nav, .rb-headcta { display:none !important; }
	.rb-burger { display:inline-flex !important; }
	.rb-hero-h1 { font-size:42px !important; }
	.rb-services-h2 { font-size:31px !important; }
	.rb-collage { grid-template-columns:1fr !important; }
	.rb-hide-mobile { display:none !important; }
}
@media (min-width:901px) { .rb-hide-desktop { display:none !important; } }

/* mobile: static footer + 2-col company grid + centered prism (below 767px) */
@media (max-width:767px) {
	.rb-page { margin-bottom:0 !important; box-shadow:none; }
	.rb-footer { position:static; min-height:0; padding:50px 0 30px; }
	.rb-fgrid { grid-template-columns:1fr 1fr !important; gap:26px 22px !important; }
	.rb-fleft { grid-row:auto !important; grid-column:1 / -1 !important; }
	.rb-footer .rb-fwrap { padding:0 22px !important; }
	.rb-fgrid, .rb-fbottom { padding-left:22px !important; padding-right:22px !important; }
	.rb-prism { top:6vh; left:50%; right:auto; margin-left:-175px; margin-top:0; width:350px; height:350px; opacity:.7; }
	.rb-hero-in { padding-top:48px !important; }
}
