/* RoyalGreat public UI v3. Admin pages keep Bootstrap; only the shared header, footer and dock are styled everywhere. */
:root{
  --indigo:#28166F; --night:#120A3A; --ink:#15132A; --muted:#5B5F73; --line:#E2E5EE; --bg:#F6F7FB; --tint:#EEF0F7;
  --gold:#E0B04A; --gold-d:#9A6F12; --wa:#25D366; --ok:#1E7A4C; --err:#B42318;
  --disp:"Bricolage Grotesque","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --sans:"Figtree","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --sh:0 1px 2px rgba(18,10,58,.05),0 8px 24px rgba(18,10,58,.07);
}
:where(body:not(.rg-admin)){font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--ink);background:#fff}
:where(body:not(.rg-admin)) a{color:inherit;text-decoration:none}
:where(body:not(.rg-admin)) :is(h1,h2,h3){font-family:var(--disp);letter-spacing:-.02em;color:var(--ink)}
:where(.r2-page,.r2-home,.r2-head,.r2-foot,.r2-lb,.r2-sheet) :is(h1,h2,h3,h4,p,ul,ol,dl,dd,figure){margin:0;padding:0}
:where(.r2-page,.r2-home,.r2-head,.r2-foot) :is(ul,ol){list-style:none}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.r2-i{flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.r2-wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.r2-pad{padding-top:40px;padding-bottom:64px}
.r2-center{display:grid;place-items:center;padding:72px 0}
.r2-spin{width:44px;height:44px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--indigo);animation:r2spin .9s linear infinite}
@keyframes r2spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}}

/* buttons */
.r2-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:10px;border:2px solid transparent;font:600 16px/1 var(--sans);cursor:pointer;white-space:nowrap;transition:background-color .2s,border-color .2s,color .2s,transform .2s}
.r2-btn:active{transform:scale(.98)}
.r2-btn--indigo{background:var(--indigo);color:#fff}.r2-btn--indigo:hover{background:#1D0F57}
.r2-btn--gold{background:var(--gold);color:var(--night)}.r2-btn--gold:hover{background:#EBC066}
.r2-btn--wa{background:var(--wa);color:#06260F}.r2-btn--wa:hover{background:#1FB958}
.r2-btn--line{border-color:var(--indigo);color:var(--indigo);background:transparent}.r2-btn--line:hover{background:var(--indigo);color:#fff}
.r2-btn--ghost{border-color:rgba(255,255,255,.6);color:#fff;background:transparent}.r2-btn--ghost:hover{background:rgba(255,255,255,.12)}
.r2-btn--ghostdark{border-color:var(--line);color:var(--ink);background:#fff}.r2-btn--ghostdark:hover{border-color:var(--indigo)}
.r2-btn--block,.r2-idcard .r2-btn,.r2-aside .r2-btn{width:100%;white-space:normal;text-align:center;line-height:1.25;padding-top:12px;padding-bottom:12px}.r2-btn--icon{width:48px;padding:0;flex:none}
.r2-btn:disabled{opacity:.7;cursor:wait}
.r2-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;color:var(--indigo)}
.r2-link:hover{gap:12px}
.r2-textbtn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 8px;border:0;background:none;color:var(--indigo);font:600 14px var(--sans);cursor:pointer}
.r2-textbtn:hover{text-decoration:underline}

/* header */
.r2-head{position:sticky;top:-36px;z-index:50;background:#fff}
.r2-util{display:none;height:36px;background:var(--night);color:rgba(255,255,255,.85);font-size:13px}
.r2-util__in{display:flex;justify-content:space-between;align-items:center;height:36px}
.r2-util__in div{display:flex;gap:24px}.r2-util a:hover{color:var(--gold)}
.r2-nav{background:#fff;border-bottom:1px solid var(--line)}
.r2-nav__in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
.r2-brand img{display:block;height:46px;width:auto}
.r2-links{display:none}
.r2-nav__cta{display:none}
.r2-burger{display:grid;place-items:center;width:48px;height:48px;border:0;background:none;color:var(--ink);cursor:pointer;margin-right:-8px}
.r2-sheet{position:fixed;left:0;right:0;bottom:0;top:64px;z-index:49;background:#fff;overflow:auto;padding:8px 20px 32px}
.r2-sheet nav a{display:flex;justify-content:space-between;align-items:center;min-height:58px;border-bottom:1px solid var(--line);font:600 21px var(--disp);letter-spacing:-.01em}
.r2-sheet nav a.is-on{color:var(--indigo)}
.r2-sheet__cta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}

/* page head */
.r2-pagehead{background:linear-gradient(135deg,var(--night),var(--indigo));color:#fff;padding:44px 0 40px}
.r2-pagehead--dark{background:var(--night)}
.r2-pagehead h1{font:700 36px/1.08 var(--disp);letter-spacing:-.025em;color:#fff}
.r2-pagehead p{margin-top:12px;max-width:40em;font-size:17px;color:rgba(255,255,255,.85)}

/* sections */
.r2-sec{padding:64px 0}.r2-sec--tint{background:var(--tint)}.r2-sec--dark{background:var(--night);color:#fff}
.r2-sechead{display:flex;flex-direction:column;gap:6px;margin-bottom:28px}
.r2-sechead h2,.r2-split__lead h2,.r2-proj__copy h2,.r2-trust h2,.r2-reach h2,.r2-prose h2,.r2-faqwrap h2,.r2-trustgrid h2,.r2-story h2,.r2-two h2,.r2-vm h2,.r2-cta h2,.r2-contact h2,.r2-similar h2{font:700 30px/1.1 var(--disp);letter-spacing:-.025em}
.r2-sechead p{color:var(--muted)}
.r2-sec--dark h2,.r2-trust h2,.r2-vm h2,.r2-cta h2{color:#fff}

/* hero */
.r2-hero{display:grid;grid-template-columns:1fr}
.r2-hero__media{position:relative;order:-1;height:250px;overflow:hidden;background:var(--night)}
.r2-hero__media>img{width:100%;height:100%;object-fit:cover}
.r2-hero__copy{background:linear-gradient(160deg,#1C1060 0%,var(--night) 70%);color:#fff;padding:32px 0 44px}
.r2-hero__in{padding:0 20px}
.r2-hero h1{font:700 38px/1.03 var(--disp);letter-spacing:-.03em;color:#fff;max-width:13em}
.r2-hero__lead{margin-top:16px;font-size:17px;max-width:32em;color:rgba(255,255,255,.86)}
.r2-search{display:grid;gap:10px;margin-top:26px;padding:14px;background:#fff;color:var(--ink);border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.28);max-width:640px}
.r2-search label span,.r2-form label span{display:block;margin-bottom:5px;font-size:12px;font-weight:600;color:var(--muted)}
.r2-search input,.r2-search select{width:100%;height:50px;padding:0 12px;border:1px solid #CFD3E0;border-radius:10px;background:#fff;color:var(--ink);font:500 16px var(--sans)}
.r2-search input:focus,.r2-search select:focus{border-color:var(--indigo);outline:0;box-shadow:0 0 0 3px rgba(40,22,111,.15)}
.r2-search .r2-btn{height:50px}
.r2-hero__chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;font-size:14px}
.r2-hero__chips span{color:rgba(255,255,255,.65);margin-right:4px}
.r2-hero__chips a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.3);border-radius:999px;color:#fff}
.r2-hero__chips a:hover{background:rgba(255,255,255,.14)}
.r2-hero__card{position:absolute;left:14px;right:14px;bottom:14px;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;background:#fff;color:var(--ink);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.28)}
.r2-hero__card img{width:56px;height:56px;border-radius:10px;object-fit:cover}
.r2-hero__card div{flex:1;min-width:0}
.r2-hero__card small{display:block;font-size:12px;color:var(--muted)}
.r2-hero__card b{display:block;font-size:15px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r2-hero__card span{font-weight:700;color:var(--indigo);font-size:14px}
@media (prefers-reduced-motion:no-preference){.r2-hero__in>*{animation:r2rise .7s cubic-bezier(.2,.7,.2,1) both}.r2-hero__in>:nth-child(2){animation-delay:.07s}.r2-hero__in>:nth-child(3){animation-delay:.14s}.r2-hero__in>:nth-child(4){animation-delay:.21s}@keyframes r2rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}}

/* facts */
.r2-facts{background:#fff;border-bottom:1px solid var(--line)}
.r2-facts__in{display:grid;grid-template-columns:1fr 1fr;gap:20px 12px;padding-top:22px;padding-bottom:22px}
.r2-facts b{display:block;font:700 20px/1.2 var(--disp);color:var(--indigo)}
.r2-facts span{font-size:13px;color:var(--muted)}

/* cards + grids */
.r2-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--sh);transition:transform .25s,box-shadow .25s}
.r2-card:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(18,10,58,.06),0 16px 36px rgba(18,10,58,.12)}
.r2-card__img{position:relative;display:block;aspect-ratio:4/3;background:#E7E9F2}
.r2-card__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.r2-noimg{display:grid;place-items:center;width:100%;height:100%;min-height:200px;color:var(--muted);font-size:14px;background:#E7E9F2}
.r2-tag{position:absolute;left:12px;top:12px;padding:7px 11px;border-radius:999px;background:var(--indigo);color:#fff;font:600 12px/1 var(--sans)}
.r2-tag--site{background:var(--ok)}
.r2-card__body{display:flex;flex-direction:column;gap:6px;padding:16px 18px 18px;flex:1}
.r2-price{font:700 23px/1.2 var(--disp);letter-spacing:-.02em;color:var(--indigo)}
.r2-price--lg{font-size:36px}
.r2-card h3{font:600 18px/1.3 var(--sans);letter-spacing:0}
.r2-where{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:14px;line-height:1.4}
.r2-card__desc{color:var(--muted);font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.r2-card__act{display:flex;gap:8px;margin-top:auto;padding-top:12px}.r2-card__act .r2-btn:first-child{flex:1}
.r2-feat{display:grid;gap:20px}
.r2-feat__rest{display:grid;gap:20px}
.r2-grid{display:grid;gap:20px}
.r2-empty{max-width:560px;margin:24px auto;padding:40px 24px;text-align:center;background:#fff;border:1px dashed #C9CDDB;border-radius:16px}
.r2-empty h3{font:700 22px var(--disp);margin-bottom:8px}.r2-empty p{color:var(--muted);margin-bottom:20px}

/* areas */
.r2-areas{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.r2-area{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:130px;padding:18px;border-radius:16px;color:#fff;overflow:hidden;background:linear-gradient(140deg,#35208A,var(--indigo));transition:transform .25s}
.r2-area:nth-child(even){background:linear-gradient(140deg,#1D1260,var(--night))}
.r2-area:hover{transform:translateY(-3px)}
.r2-area b{font:700 20px/1.15 var(--disp);letter-spacing:-.01em;overflow-wrap:anywhere}
.r2-area span{font-size:13px;opacity:.8;margin-top:2px}
.r2-area svg{position:absolute;top:16px;right:16px;color:var(--gold)}

/* services index */
.r2-split{display:grid;gap:28px}
.r2-split__lead p{margin:14px 0 22px;color:var(--muted);max-width:30em}
.r2-rows li{border-top:1px solid var(--line)}.r2-rows li:last-child{border-bottom:1px solid var(--line)}
.r2-rows a{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 0}
.r2-rows h3{font:600 20px/1.3 var(--sans);letter-spacing:0}
.r2-rows p{margin-top:4px;color:var(--muted);font-size:15px;max-width:44em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.r2-rows svg{flex:none;color:var(--indigo);transition:transform .25s}.r2-rows a:hover svg{transform:translateX(6px)}

/* projects band */
.r2-proj{display:grid;gap:30px}
.r2-proj__copy p{margin:14px 0 24px;color:rgba(255,255,255,.8);max-width:30em}
.r2-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:170px 170px;gap:10px}
.r2-mosaic a{display:block;overflow:hidden;border-radius:14px;background:#251A63}
.r2-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.r2-mosaic a:hover img{transform:scale(1.05)}
.r2-mosaic__0{grid-row:1/3}

/* steps */
.r2-steps{display:grid;gap:0}
.r2-steps li{position:relative;margin-left:20px;padding:0 0 30px 32px;border-left:2px solid var(--line)}
.r2-steps li:last-child{border-left-color:transparent;padding-bottom:0}
.r2-steps span{position:absolute;left:-21px;top:0;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--indigo);color:var(--gold);font:700 18px var(--disp)}
.r2-steps h3{font:700 21px/1.2 var(--disp);padding-top:6px}.r2-steps p{margin-top:6px;color:var(--muted);max-width:30em}

/* trust band */
.r2-trust{background:var(--indigo);color:#fff;padding:64px 0}
.r2-trust__in{display:grid;gap:28px}
.r2-trust p{margin:12px 0 22px;color:rgba(255,255,255,.82);max-width:30em}
.r2-checks li{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.16)}
.r2-checks li:first-child{border-top:1px solid rgba(255,255,255,.16)}
.r2-checks svg{color:var(--gold);margin-top:2px}

/* request + contact */
.r2-reach,.r2-contact{display:grid;gap:30px}
.r2-reach p,.r2-contact>div>p{margin:12px 0 0;color:var(--muted);max-width:32em}
.r2-reach__list{display:grid;gap:12px;margin:22px 0 24px}
.r2-reach__list li{display:flex;gap:12px;align-items:flex-start}.r2-reach__list svg{color:var(--indigo);margin-top:3px}
.r2-reach__list a:hover{color:var(--indigo);text-decoration:underline}
.r2-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--sh)}
.r2-panel h2{margin-bottom:16px}
.r2-contact__btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.r2-tabs{display:flex;gap:8px;margin:26px 0 12px}
.r2-tabs button{min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;background:#fff;font:600 14px var(--sans);cursor:pointer}
.r2-tabs button.is-on{background:var(--indigo);border-color:var(--indigo);color:#fff}
.r2-form{display:grid;gap:14px}
.r2-form__row{display:grid;gap:14px}
.r2-form label{display:block}
.r2-form input,.r2-form select,.r2-form textarea{width:100%;min-height:48px;padding:12px;border:1px solid #CFD3E0;border-radius:10px;background:#fff;color:var(--ink);font:500 16px var(--sans)}
.r2-form textarea{resize:vertical}
.r2-form input:focus,.r2-form select:focus,.r2-form textarea:focus{border-color:var(--indigo);outline:0;box-shadow:0 0 0 3px rgba(40,22,111,.15)}
.r2-form__ok{display:flex;gap:8px;align-items:center;color:var(--ok);font-weight:600}.r2-form__err{color:var(--err);font-weight:600}

/* posts */
.r2-posts{display:grid;gap:18px}
.r2-post{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;padding-bottom:18px;box-shadow:var(--sh)}
.r2-post img{width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:14px}
.r2-post small{display:block;padding:0 18px;color:var(--muted);font-size:13px}
.r2-post h3{padding:0 18px;font:600 19px/1.3 var(--sans);letter-spacing:0}.r2-post p{padding:6px 18px 0;color:var(--muted);font-size:15px}
.r2-post .r2-link{margin:6px 18px 0}
.r2-article{max-width:760px;padding-top:36px;padding-bottom:72px}
.r2-article h1{font:700 34px/1.12 var(--disp);letter-spacing:-.025em;margin:14px 0 8px}
.r2-article__date{color:var(--muted);margin-bottom:18px}.r2-article img{width:100%;border-radius:16px;margin-bottom:22px}
.r2-article__body{font-size:18px;line-height:1.75;white-space:pre-line}

/* listings page */
.r2-filter{position:sticky;top:64px;z-index:40;background:#fff;border-bottom:1px solid var(--line);padding:12px 0}
.r2-filter__in{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.r2-filter__search{grid-column:1/3;position:relative;display:block}
.r2-filter__search svg{position:absolute;left:14px;top:15px;color:var(--muted)}
.r2-filter input,.r2-filter select{width:100%;height:48px;border:1px solid #CFD3E0;border-radius:10px;background:#fff;font:500 16px var(--sans);color:var(--ink);padding:0 12px}
.r2-filter input{padding-left:42px}
.r2-filter input:focus,.r2-filter select:focus{border-color:var(--indigo);outline:0;box-shadow:0 0 0 3px rgba(40,22,111,.15)}
.r2-seg{display:none;border:1px solid #CFD3E0;border-radius:10px;overflow:hidden}
.r2-seg button{width:46px;height:46px;border:0;background:#fff;color:var(--ink);cursor:pointer}.r2-seg .is-on{background:var(--indigo);color:#fff}
.r2-results{padding-top:22px;padding-bottom:64px}
.r2-chiprow{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.r2-chip{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:500 14px var(--sans);cursor:pointer}
.r2-chip em{font-style:normal;margin-left:8px;font-size:12px;opacity:.65}
.r2-chip:hover{border-color:var(--indigo)}.r2-chip.is-on{background:var(--indigo);border-color:var(--indigo);color:#fff}
.r2-results__bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px;margin:10px 0 14px;color:var(--muted);font-size:14px}
.r2-map{aspect-ratio:16/10;border-radius:16px;overflow:hidden;border:1px solid var(--line);margin:12px 0 20px;background:var(--tint)}
.r2-map iframe{display:block;width:100%;height:100%;border:0}

/* detail */
.r2-detail{padding-top:22px;padding-bottom:72px}
.r2-crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px;font-size:14px;color:var(--muted)}
.r2-crumbs a{color:var(--indigo);font-weight:500;display:inline-flex;align-items:center;min-height:36px}
.r2-detail__grid{display:grid;gap:26px}
.r2-gal{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;background:#E7E9F2}
.r2-gal>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.r2-gal__nav{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);cursor:pointer;box-shadow:var(--sh)}
.r2-gal__nav--l{left:12px}.r2-gal__nav--r{right:12px}
.r2-thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:4px}
.r2-thumbs button{flex:none;width:88px;height:66px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:none;cursor:pointer;opacity:.7}
.r2-thumbs button.is-on{border-color:var(--indigo);opacity:1}.r2-thumbs img{width:100%;height:100%;object-fit:cover}
.r2-detail__head{margin:24px 0 4px}.r2-detail__head h1{font:700 30px/1.12 var(--disp);letter-spacing:-.025em}.r2-detail__head .r2-where{margin-top:8px;font-size:16px}
.r2-prose{margin-top:28px}.r2-prose h2{font-size:22px;margin-bottom:10px}.r2-prose p{font-size:17px;line-height:1.7;color:#33364A;white-space:pre-line;max-width:46em}
.r2-aside{align-self:start;display:grid;gap:12px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh)}
.r2-aside__btns{display:grid;gap:10px;margin-top:6px}
.r2-aside__form{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.r2-aside__form summary{display:flex;align-items:center;min-height:48px;cursor:pointer;font-weight:600;color:var(--indigo)}
.r2-aside__form .r2-form{padding-top:8px}
.r2-aside__note{font-size:14px;color:var(--muted)}
.r2-similar{margin-top:56px}.r2-similar h2{margin-bottom:18px;font-size:26px}

/* projects page */
.r2-masonry{column-count:1;column-gap:16px;margin-top:22px}
.r2-tile{position:relative;display:block;width:100%;margin:0 0 16px;padding:0;border:0;border-radius:16px;overflow:hidden;background:var(--line);cursor:zoom-in;break-inside:avoid}
.r2-tile img{display:block;width:100%;height:auto;transition:transform .5s}.r2-tile:hover img{transform:scale(1.03)}
.r2-note{margin-top:10px;font-size:14px;color:var(--muted)}
.r2-lb{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:60px 12px 24px;background:rgba(10,5,32,.93)}
.r2-lb figure{max-width:min(1100px,100%);text-align:center}.r2-lb img{display:block;max-width:100%;max-height:78vh;margin:0 auto;border-radius:10px}
.r2-lb figcaption{margin-top:12px;color:rgba(255,255,255,.85);font-size:14px}
.r2-lb__x,.r2-lb__nav{position:absolute;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;cursor:pointer}
.r2-lb__x{top:8px;right:8px}.r2-lb__nav{top:50%;transform:translateY(-50%)}.r2-lb__nav--l{left:8px}.r2-lb__nav--r{right:8px}
@media (max-width:575px){.r2-lb__nav{top:auto;bottom:16px;transform:none}.r2-lb__nav--l{left:calc(50% - 60px)}.r2-lb__nav--r{right:calc(50% - 60px)}}
.r2-cta{background:var(--night);color:#fff;text-align:center;padding:64px 0}
.r2-cta p{max-width:32em;margin:12px auto 24px;color:rgba(255,255,255,.82)}
.r2-cta__btns{display:flex;flex-direction:column;gap:12px;max-width:340px;margin:0 auto}

/* trust page */
.r2-trustgrid{display:grid;gap:36px}
.r2-checklist{margin-top:20px;counter-reset:c}
.r2-checklist li{position:relative;counter-increment:c;padding:22px 0 22px 64px;border-top:1px solid var(--line)}
.r2-checklist li:last-child{border-bottom:1px solid var(--line)}
.r2-checklist li::before{content:counter(c);position:absolute;left:0;top:20px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--indigo);color:var(--gold);font:700 20px var(--disp)}
.r2-checklist h3{font:700 21px/1.25 var(--disp)}.r2-checklist p{margin-top:6px;color:var(--muted);max-width:40em}
.r2-idcard{align-self:start;padding:24px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh)}
.r2-idcard img{display:block;width:170px;height:auto;margin-bottom:18px}
.r2-idcard dt{margin-top:14px;font-size:12px;font-weight:600;color:var(--muted)}.r2-idcard dd{margin:2px 0 0;font-size:15px}.r2-idcard dd a{color:var(--indigo);font-weight:600}
.r2-idcard .r2-btn{margin-top:22px;width:100%}
.r2-idcard--plain{box-shadow:none;background:var(--bg)}.r2-idcard--plain p{margin-top:8px;color:var(--muted)}
.r2-docs{display:grid;gap:14px}
.r2-docs article{padding:22px;background:#fff;border:1px solid var(--line);border-radius:16px}
.r2-docs svg{color:var(--indigo);margin-bottom:12px}.r2-docs h3{font:700 19px/1.25 var(--disp)}.r2-docs p{margin-top:6px;color:var(--muted);font-size:15px}
.r2-faqwrap{max-width:820px}
.r2-faq{margin:18px 0 8px;border-top:1px solid var(--line)}
.r2-faq details{border-bottom:1px solid var(--line)}
.r2-faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:60px;cursor:pointer;font:600 18px var(--sans);list-style:none}
.r2-faq summary::-webkit-details-marker{display:none}
.r2-faq summary::after{content:"+";flex:none;font:400 26px/1 var(--sans);color:var(--indigo)}
.r2-faq details[open] summary::after{content:"\2212"}
.r2-faq details p{padding:0 0 20px;color:var(--muted);max-width:40em}

/* about + services */
.r2-story{display:grid;gap:30px;align-items:center}.r2-story p{margin-top:14px;color:#33364A;font-size:17px;max-width:36em}
.r2-vm{background:var(--indigo);color:#fff;padding:64px 0}
.r2-vm__in{display:grid;gap:36px}.r2-vm p{margin-top:14px;font-size:19px;line-height:1.55;color:rgba(255,255,255,.88)}
.r2-two{display:grid;gap:36px}.r2-dl dt{margin-top:22px;font:600 18px var(--sans)}.r2-dl dd{margin:4px 0 0;color:var(--muted);max-width:34em}
.r2-team{display:grid;gap:16px}
.r2-person{display:flex;flex-direction:column;gap:6px;padding:14px 14px 16px;background:#fff;border:1px solid var(--line);border-radius:18px}
.r2-person img{width:100%;aspect-ratio:4/4.4;object-fit:cover;object-position:top;border-radius:12px;background:#E7E9F2;margin-bottom:8px}
.r2-person h3{font:700 20px/1.2 var(--disp)}.r2-person__role{color:var(--indigo);font-weight:600;font-size:14px}
.r2-person__bio{color:var(--muted);font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.r2-person.is-open .r2-person__bio{display:block;-webkit-line-clamp:unset}
.r2-person .r2-textbtn{align-self:flex-start;padding:0;margin-top:auto}
.r2-svc{display:grid;gap:18px}
.r2-svc li{display:grid;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--sh)}
.r2-svc img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover}
.r2-svc li>div{padding:20px 20px 22px}.r2-svc h2{font:700 22px/1.2 var(--disp)}.r2-svc p{margin:8px 0 6px;color:var(--muted)}

/* footer */
.r2-foot{background:var(--night);color:rgba(255,255,255,.78);padding-bottom:72px;font-size:15px}
.r2-foot__cta{background:var(--indigo);padding:44px 0}
.r2-foot__ctain{display:grid;gap:20px}
.r2-foot__cta h2{font:700 28px/1.1 var(--disp);color:#fff;letter-spacing:-.02em}.r2-foot__cta p{margin-top:8px;color:rgba(255,255,255,.82)}
.r2-foot__btns{display:flex;flex-direction:column;gap:10px;max-width:340px}
.r2-foot__grid{display:grid;gap:32px;padding-top:48px;padding-bottom:8px}
.r2-foot__logo{display:inline-block;background:#fff;border-radius:12px;padding:8px 12px;margin-bottom:16px}.r2-foot__logo img{display:block;width:120px;height:auto}
.r2-foot h3{font:600 15px var(--sans);letter-spacing:0;color:#fff;margin-bottom:10px}
.r2-foot li a{display:inline-flex;align-items:center;min-height:36px}
.r2-foot a:hover{color:#fff;text-decoration:underline}
.r2-foot__addr{margin-bottom:12px;font-size:14px}.r2-foot__addr b{display:block;color:var(--gold);font-weight:600;margin-bottom:2px}.r2-foot__addr a{display:block;min-height:28px}
.r2-foot__bar{display:flex;flex-direction:column;gap:8px;margin-top:32px;padding:20px 0 28px;border-top:1px solid rgba(255,255,255,.14);font-size:13px;color:rgba(255,255,255,.6)}
.r2-foot__bar p:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px}
.r2-credit a{color:var(--gold);font-weight:600}
.r2-foot__staff{opacity:.8}

/* mobile dock */
.r2-dock{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(18,10,58,.12)}

/* ---------- breakpoints ---------- */
@media (min-width:640px){
  .r2-hero__chips{margin-top:20px}
  .r2-grid{grid-template-columns:repeat(2,1fr)}
  .r2-feat__rest{grid-template-columns:repeat(2,1fr)}
  .r2-facts__in{grid-template-columns:repeat(4,1fr)}
  .r2-areas{grid-template-columns:repeat(3,1fr)}
  .r2-docs{grid-template-columns:repeat(2,1fr)}
  .r2-masonry{column-count:2}
  .r2-posts{grid-template-columns:repeat(2,1fr)}
  .r2-team{grid-template-columns:repeat(2,1fr)}
  .r2-form__row{grid-template-columns:1fr 1fr}
  .r2-cta__btns{flex-direction:row;justify-content:center;max-width:none}
  .r2-foot__btns{flex-direction:row;max-width:none}
  .r2-card--wide{flex-direction:row}.r2-card--wide .r2-card__img{flex:1.15;aspect-ratio:auto;min-height:300px}.r2-card--wide .r2-card__body{flex:1;padding:24px}
  .r2-grid--list{grid-template-columns:1fr}
  .r2-svc li{grid-template-columns:300px 1fr}.r2-svc img{aspect-ratio:auto;min-height:230px}.r2-svc li>div{align-self:center}
}
@media (min-width:992px){
  body{padding-bottom:0}
  .r2-util{display:block}
  .r2-nav__in{height:76px;gap:28px}.r2-brand img{height:56px}
  .r2-links{display:flex;gap:2px}
  .r2-links a{position:relative;display:inline-flex;align-items:center;min-height:48px;padding:0 13px;border-radius:8px;font-weight:500}
  .r2-links a:hover{background:var(--bg)}
  .r2-links a.is-on{color:var(--indigo);font-weight:600}
  .r2-links a.is-on::after{content:"";position:absolute;left:13px;right:13px;bottom:6px;height:3px;border-radius:3px;background:var(--gold)}
  .r2-nav__cta{display:block}.r2-burger,.r2-sheet{display:none}
  .r2-dock{display:none}
  .r2-foot{padding-bottom:0}
  .r2-sec{padding:104px 0}.r2-trust,.r2-vm{padding:96px 0}.r2-cta{padding:92px 0}
  .r2-pagehead{padding:84px 0 68px}.r2-pagehead h1{font-size:60px}.r2-pagehead p{font-size:19px}
  .r2-sechead{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:40px}
  .r2-sechead h2,.r2-split__lead h2,.r2-proj__copy h2,.r2-trust h2,.r2-reach h2,.r2-faqwrap h2,.r2-trustgrid h2,.r2-story h2,.r2-two h2,.r2-vm h2,.r2-cta h2,.r2-contact h2{font-size:46px}
  .r2-hero{grid-template-columns:1.05fr .95fr;min-height:660px}
  .r2-hero__media{order:0;height:auto}
  .r2-hero__copy{display:flex;align-items:center;padding:72px 0}
  .r2-hero__in{padding-left:max(20px,calc((100vw - 1200px)/2 + 20px));padding-right:48px;max-width:none}
  .r2-hero h1{font-size:68px}.r2-hero__lead{font-size:19px}
  .r2-hero__card{left:28px;right:auto;bottom:28px;width:360px;padding:12px 18px 12px 12px}.r2-hero__card img{width:64px;height:64px}
  .r2-feat{grid-template-columns:1.35fr 1fr;align-items:stretch}.r2-feat.is-solo{grid-template-columns:1fr}
  .r2-feat__rest{grid-template-columns:1fr;align-content:start}
  .r2-feat>.r2-card--wide{flex-direction:column}.r2-feat>.r2-card--wide .r2-card__img{flex:1;aspect-ratio:auto;min-height:340px}
  .r2-feat.is-solo>.r2-card--wide{flex-direction:row}.r2-feat.is-solo>.r2-card--wide .r2-card__img{flex:1.2;aspect-ratio:auto;min-height:380px}.r2-feat.is-solo>.r2-card--wide .r2-card__body{padding:36px;justify-content:center}
  .r2-feat.is-solo .r2-price{font-size:34px}.r2-feat.is-solo .r2-card h3{font-size:24px}
  .r2-grid{grid-template-columns:repeat(3,1fr);gap:24px}.r2-grid--list{grid-template-columns:1fr}
  .r2-areas{grid-template-columns:repeat(3,1fr);gap:16px}.r2-area{min-height:170px;padding:24px}.r2-area b{font-size:26px}
  .r2-split{grid-template-columns:.8fr 1.2fr;gap:88px}.r2-split__lead{position:sticky;top:120px;align-self:start}
  .r2-proj{grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}
  .r2-mosaic{grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:230px 230px;gap:12px}.r2-mosaic__0{grid-row:1/3}.r2-mosaic__1{grid-column:2/4}
  .r2-steps{grid-template-columns:repeat(4,1fr);gap:24px}
  .r2-steps li{margin:20px 0 0;padding:34px 8px 0 0;border-left:0;border-top:2px solid var(--line)}.r2-steps li:last-child{border-top-color:var(--line);padding-bottom:0}
  .r2-steps span{left:0;top:-21px}
  .r2-trust__in{grid-template-columns:1fr 1fr;gap:80px;align-items:center}
  .r2-reach,.r2-contact{grid-template-columns:1fr 1fr;gap:72px;align-items:start}
  .r2-panel{padding:32px}
  .r2-posts{grid-template-columns:repeat(3,1fr);gap:22px}
  .r2-filter{top:76px;padding:14px 0}.r2-filter__in{display:flex;gap:12px}.r2-filter__search{flex:1}.r2-filter select{width:210px}.r2-seg{display:inline-flex}
  .r2-detail__grid{grid-template-columns:minmax(0,1fr) 390px;gap:48px}
  .r2-gal{aspect-ratio:16/10}.r2-aside{position:sticky;top:104px}
  .r2-detail__head h1{font-size:42px}
  .r2-masonry{column-count:3;column-gap:20px}.r2-tile{margin-bottom:20px}
  .r2-trustgrid{grid-template-columns:1.5fr .8fr;gap:72px}.r2-idcard{position:sticky;top:112px}
  .r2-docs{grid-template-columns:repeat(3,1fr)}
  .r2-story{grid-template-columns:1.2fr .8fr;gap:72px}
  .r2-vm__in{grid-template-columns:1fr 1fr;gap:80px}.r2-vm p{font-size:21px}
  .r2-two{grid-template-columns:1fr 1fr;gap:80px}
  .r2-team{grid-template-columns:repeat(3,1fr);gap:20px}
  .r2-foot__ctain{grid-template-columns:1.2fr 1fr;align-items:center}.r2-foot__cta h2{font-size:40px}.r2-foot__btns{justify-content:flex-end}
  .r2-foot__grid{grid-template-columns:1.4fr .8fr .8fr 1.3fr;gap:48px}
  .r2-foot__bar{flex-direction:row;justify-content:space-between}
  .r2-article h1{font-size:48px}
}

/* facebook icon + footer columns side by side on tablet and desktop */
.r2-social{display:flex;gap:10px;margin-top:16px}
.r2-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;transition:background-color .2s,transform .2s}
.r2-social a:hover{background:#1877F2;text-decoration:none;transform:translateY(-2px)}
.r2-foot .r2-social a{min-height:44px}
.r2-util__fb{display:inline-flex;align-items:center;gap:6px}
.r2-util__fb:hover{color:#fff}
@media (min-width:640px){
  .r2-foot__grid{grid-template-columns:1fr 1fr 1.5fr;gap:32px 36px;align-items:start}
  .r2-foot__brand{grid-column:1/-1;max-width:560px}
}
@media (min-width:992px){
  .r2-foot__grid{grid-template-columns:1.4fr .8fr .8fr 1.3fr;gap:48px}
  .r2-foot__brand{grid-column:auto;max-width:none}
}
