:root {
  --r2-bg:#f4f8fd;
  --r2-card:#ffffff;
  --r2-text:#071a3a;
  --r2-muted:#51627a;
  --r2-soft:#eef5ff;
  --r2-line:#dce7f5;
  --r2-blue:#075fd6;
  --r2-blue2:#1e88ff;
  --r2-orange:#f59e0b;
  --r2-shadow:0 18px 50px rgba(7,26,58,.08);
  --r2-shadow2:0 8px 22px rgba(7,26,58,.08);
  --r2-radius:18px;
  --r2-radius-sm:12px;
  --r2-max:1180px;
}

body.r2hx-site { background:var(--r2-bg)!important; color:var(--r2-text); }
body.r2hx-site.r2-modal-open { overflow:hidden; }
body.r2hx-site .site-header,
body.r2hx-site #masthead,
body.r2hx-site .site-footer,
body.r2hx-site #colophon,
body.r2hx-site .entry-header,
body.r2hx-site .page-header,
body.r2hx-site .post-thumbnail,
body.r2hx-site .entry-footer,
body.r2hx-site .content-title-style-above,
body.r2hx-site .content-title-style-normal { display:none!important; }
body.r2hx-site .content-area,
body.r2hx-site .site-main,
body.r2hx-site .entry-content,
body.r2hx-site .entry.single-entry,
body.r2hx-site .content-container,
body.r2hx-site .wp-site-blocks { margin:0!important; padding:0!important; max-width:none!important; width:100%!important; background:transparent!important; box-shadow:none!important; border:0!important; }
body.r2hx-site .entry-content > * { max-width:none!important; }
body.r2hx-site a { color:inherit; }

.r2-wrap { font-family:Inter, Manrope, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--r2-text); }
.r2-shell { max-width:var(--r2-max); margin:14px auto 30px; padding:0 16px; }
.r2-site-card { background:var(--r2-card); border:1px solid var(--r2-line); border-radius:16px; box-shadow:var(--r2-shadow); overflow:hidden; }
.r2-header { height:66px; padding:0 18px; display:grid; grid-template-columns:210px minmax(0,1fr) auto; align-items:center; gap:14px; border-bottom:1px solid var(--r2-line); background:rgba(255,255,255,.94); backdrop-filter:blur(14px); }
.r2-logo { display:flex; align-items:center; gap:10px; text-decoration:none!important; color:var(--r2-text)!important; min-width:0; }
.r2-logo-mark { width:40px; height:40px; display:grid; place-items:center; color:var(--r2-blue); flex:0 0 auto; }
.r2-logo-mark svg { width:40px; height:40px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.r2-logo-text { display:flex; flex-direction:column; line-height:1.03; letter-spacing:-.025em; font-weight:900; text-transform:uppercase; font-size:12px; }
.r2-logo-text b { color:var(--r2-blue); font-size:17px; letter-spacing:-.035em; }
.r2-nav { display:flex; align-items:center; justify-content:center; gap:15px; min-width:0; font-size:12.5px; font-weight:700; white-space:nowrap; }
.r2-nav a { text-decoration:none!important; color:var(--r2-text)!important; opacity:.92; }
.r2-nav a:hover { color:var(--r2-blue)!important; opacity:1; }
.r2-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; min-width:150px; }
.r2-login-link { display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 10px; border:1px solid var(--r2-line); border-radius:999px; background:#fff; color:var(--r2-text)!important; text-decoration:none!important; font-size:12px; font-weight:800; white-space:nowrap; box-shadow:0 4px 14px rgba(7,26,58,.035); }
.r2-login-link:hover { color:var(--r2-blue)!important; border-color:#a9cdfd; background:#f7fbff; }
.r2-login-icon { width:22px; height:22px; color:var(--r2-blue); }
.r2-login-icon svg { width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.r2-menu-toggle { display:none; width:42px; height:42px; border:1px solid var(--r2-line); border-radius:12px; background:#fff; align-items:center; justify-content:center; cursor:pointer; }
.r2-menu-toggle span { display:block; width:18px; height:2px; background:var(--r2-text); margin:3px 0; }
.r2-btn { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 18px; border-radius:9px; text-decoration:none!important; font-weight:850; font-size:13px; border:1px solid transparent; cursor:pointer; transition:.18s ease; white-space:nowrap; }
.r2-btn-primary { background:var(--r2-blue); color:#fff!important; box-shadow:0 10px 20px rgba(7,95,214,.18); }
.r2-btn-primary:hover { background:#004bb4; transform:translateY(-1px); }
.r2-btn-outline { background:#fff; color:var(--r2-blue)!important; border-color:#8bbcff; }
.r2-btn-outline:hover { background:#f2f7ff; transform:translateY(-1px); }
.r2-mini-link { color:var(--r2-blue)!important; text-decoration:none!important; font-weight:850; font-size:13px; display:inline-flex; align-items:center; gap:6px; }
.r2-mini-link:after { content:'→'; }

.r2-home-hero { min-height:344px; display:flex; align-items:center; position:relative; overflow:hidden; background-image:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.92) 40%,rgba(255,255,255,.20) 72%,rgba(255,255,255,.02) 100%),var(--r2-hero); background-size:cover; background-position:center right; }
.r2-home-hero-content { width:min(630px,60%); padding:48px 40px 44px; position:relative; z-index:2; }
.r2-home-hero h1 { margin:0; font-size:40px; line-height:1.16; letter-spacing:-.055em; font-weight:930; color:var(--r2-text); }
.r2-home-hero p { margin:20px 0 0; font-size:15.5px; line-height:1.72; color:#27415f; max-width:560px; }
.r2-hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:24px; }

.r2-section { padding:20px 28px; border-top:1px solid var(--r2-line); }
.r2-section-title { margin:0 0 15px; font-size:20px; line-height:1.2; letter-spacing:-.025em; font-weight:920; }
.r2-directions { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.r2-dir { min-height:138px; padding:16px 10px 13px; border:1px solid var(--r2-line); border-radius:12px; background:#fff; text-align:center; box-shadow:0 5px 16px rgba(7,26,58,.025); }
.r2-icon { width:52px; height:52px; display:grid; place-items:center; margin:0 auto 8px; color:var(--r2-blue); }
.r2-icon svg { width:48px; height:48px; stroke:currentColor; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.r2-dir h3 { font-size:13.5px; line-height:1.22; margin:0 0 8px; font-weight:920; letter-spacing:-.02em; }
.r2-dir p { margin:0; font-size:10.8px; line-height:1.45; color:var(--r2-muted); }

.r2-two-col { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.r2-card { border:1px solid var(--r2-line); border-radius:13px; background:#fff; box-shadow:0 8px 20px rgba(7,26,58,.035); overflow:hidden; }
.r2-card-pad { padding:18px; }
.r2-media-row { display:grid; grid-template-columns:92px 1fr; gap:15px; align-items:center; }
.r2-thumb { width:92px; height:74px; object-fit:cover; border-radius:9px; background:var(--r2-soft); }
.r2-card h3 { margin:0 0 8px; font-size:18px; line-height:1.25; letter-spacing:-.025em; font-weight:920; }
.r2-card h4 { margin:0 0 6px; font-size:14px; line-height:1.3; font-weight:900; }
.r2-card p { margin:0; font-size:13px; line-height:1.6; color:var(--r2-muted); }
.r2-meta { font-size:12px; color:var(--r2-muted); margin-top:6px; }
.r2-bottom-grid { display:grid; grid-template-columns:1fr 1fr 280px; gap:16px; }
.r2-mapbox { min-height:150px; border-radius:12px; overflow:hidden; background:#eaf1f9; border:1px solid var(--r2-line); }
.r2-mapbox iframe { width:100%; height:100%; min-height:150px; border:0; filter:saturate(.75) contrast(.98); }
.r2-mapbox-large, .r2-mapbox-large iframe { min-height:320px; }

.r2-contact-line { display:grid; grid-template-columns:32px 1fr; gap:11px; align-items:center; margin:10px 0; font-size:13px; color:var(--r2-text); }
.r2-small-icon { width:32px; height:32px; display:grid; place-items:center; border:1px solid #cfe0f6; border-radius:10px; color:var(--r2-blue); background:#f7fbff; }
.r2-small-icon svg { width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.r2-contact-info-card { display:grid; gap:2px; margin:8px 0 18px; }

.r2-footer { border-top:1px solid var(--r2-line); padding:27px 30px 16px; background:linear-gradient(180deg,#fff,#f8fbff); }
.r2-footer-grid { display:grid; grid-template-columns:1.22fr .9fr 1.05fr 1.1fr; gap:26px; }
.r2-footer h4 { margin:0 0 12px; font-size:15px; font-weight:920; }
.r2-footer p, .r2-footer a { font-size:13px; line-height:1.62; color:var(--r2-muted); text-decoration:none!important; }
.r2-footer a:hover { color:var(--r2-blue); }
.r2-footer-links { display:grid; gap:6px; }
.r2-footer-icon-links a { display:grid; grid-template-columns:22px 1fr; align-items:center; gap:8px; }
.r2-footer-icon-links svg { width:20px; height:20px; stroke:var(--r2-blue); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.r2-footer-contact .r2-contact-line { margin:7px 0; }
.r2-footer-logo { margin-bottom:12px; }
.r2-social { display:flex; gap:9px; margin-top:14px; }
.r2-social-link { width:32px; height:32px; display:grid; place-items:center; border-radius:9px; background:#eef5ff; color:var(--r2-blue)!important; border:1px solid #d5e7ff; }
.r2-social-link svg { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.r2-social-vk svg { fill:currentColor; stroke:none; }
.r2-copy { border-top:1px solid var(--r2-line); display:flex; justify-content:space-between; gap:18px; padding-top:14px; margin-top:22px; font-size:12px; color:var(--r2-muted); flex-wrap:wrap; }
.r2-copy a { font-size:12px; }
.r2-dot { margin:0 9px; color:#9aabc0; }

.r2-inner-hero { min-height:226px; display:flex; align-items:center; position:relative; overflow:hidden; border-radius:15px; border:1px solid var(--r2-line); background-image:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.91) 36%,rgba(255,255,255,.23) 75%),var(--r2-hero); background-size:cover; background-position:center right; box-shadow:var(--r2-shadow2); }
.r2-inner-hero-content { padding:32px 40px; max-width:565px; }
.r2-breadcrumbs { font-size:12px; color:#607086; margin-bottom:24px; }
.r2-breadcrumbs a { text-decoration:none!important; color:#607086!important; }
.r2-inner-hero h1 { margin:0; font-size:44px; line-height:1.08; letter-spacing:-.055em; font-weight:930; }
.r2-inner-hero p { margin:15px 0 0; font-size:15px; line-height:1.62; color:#304763; }
.r2-content { padding:22px 0 0; }
.r2-panel { background:#fff; border:1px solid var(--r2-line); border-radius:15px; box-shadow:var(--r2-shadow2); padding:23px; margin:17px 0; }
.r2-panel h2 { margin:0 0 12px; font-size:26px; letter-spacing:-.04em; line-height:1.15; }
.r2-panel h3 { margin:0 0 10px; font-size:19px; letter-spacing:-.03em; }
.r2-panel p { color:var(--r2-muted); line-height:1.7; margin:0 0 13px; font-size:15px; }
.r2-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.r2-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.r2-grid-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.r2-stat { padding:18px; border:1px solid var(--r2-line); border-radius:13px; background:#fbfdff; }
.r2-stat strong { display:block; font-size:28px; color:var(--r2-blue); letter-spacing:-.04em; }
.r2-stat span { color:var(--r2-muted); font-size:13px; line-height:1.5; }
.r2-list { display:grid; gap:10px; margin:14px 0 0; padding:0; list-style:none; }
.r2-list li { display:grid; grid-template-columns:22px 1fr; gap:10px; color:var(--r2-muted); font-size:14px; line-height:1.55; }
.r2-list li:before { content:'✓'; color:var(--r2-blue); font-weight:900; }
.r2-compact-card { border:1px solid var(--r2-line); border-radius:14px; background:#fff; padding:18px; box-shadow:0 6px 20px rgba(7,26,58,.035); }
.r2-compact-card h3 { margin:0 0 9px; font-size:18px; line-height:1.25; }
.r2-compact-card p { margin:0; color:var(--r2-muted); font-size:13px; line-height:1.65; }
.r2-badge { display:inline-flex; align-items:center; height:24px; padding:0 10px; border-radius:99px; background:#eef5ff; color:var(--r2-blue); font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; margin-bottom:12px; }

.r2-project-note { background:#f7fbff; border:1px solid #d5e7ff; color:#304763; border-radius:14px; padding:13px 16px; font-size:13px; line-height:1.55; margin:16px 0; }
.r2-projects-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:stretch; }
.r2-project-card { border:1px solid var(--r2-line); border-radius:15px; background:#fff; box-shadow:0 7px 22px rgba(7,26,58,.04); padding:18px; display:flex; flex-direction:column; min-height:252px; }
.r2-project-card-top { display:flex; flex-direction:column; flex:1; }
.r2-project-card h3 { margin:0 0 9px; font-size:19px; line-height:1.22; letter-spacing:-.03em; }
.r2-project-card p { margin:0; color:var(--r2-muted); font-size:13px; line-height:1.6; }
.r2-project-card-bottom { margin-top:16px; padding:12px; border:1px solid #e6eef9; border-radius:12px; background:linear-gradient(180deg,#fbfdff,#f6faff); display:grid; gap:10px; }
.r2-project-direction { display:flex; align-items:center; gap:8px; color:var(--r2-blue); font-size:12.5px; }
.r2-project-direction svg { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.r2-vote-line { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.r2-vote-count { font-size:13px; color:var(--r2-text); }
.r2-vote-count b { color:var(--r2-blue); font-size:16px; }
.r2-vote-button { border:1px solid #8bbcff; background:#fff; color:var(--r2-blue); border-radius:9px; min-height:34px; padding:0 12px; cursor:pointer; font-weight:900; font-size:12px; white-space:nowrap; }
.r2-vote-button:hover:not([disabled]) { background:#eef5ff; }
.r2-vote-button[disabled] { opacity:.58; cursor:not-allowed; }

.r2-form { display:grid; gap:12px; }
.r2-form label { display:grid; gap:6px; font-size:13px; font-weight:800; color:var(--r2-text); }
.r2-form input, .r2-form textarea, .r2-form select { width:100%; border:1px solid var(--r2-line); border-radius:10px; padding:11px 12px; font:inherit; background:#fff; color:var(--r2-text); box-sizing:border-box; }
.r2-form textarea { min-height:110px; resize:vertical; }
.r2-notice { padding:12px 14px; border-radius:10px; background:#eef5ff; border:1px solid #bdd8ff; color:#0f3d7a; font-size:13px; line-height:1.55; }
.r2-alert { padding:12px 14px; border-radius:10px; background:#fff7ed; border:1px solid #f7c98c; color:#8a4b08; font-size:13px; line-height:1.55; }

.r2-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.r2-gallery-item { min-height:175px; border:1px solid var(--r2-line); border-radius:14px; overflow:hidden; background:#eef5ff; position:relative; }
.r2-gallery-item img { width:100%; height:100%; min-height:175px; object-fit:cover; display:block; transition:.25s ease; }
.r2-gallery-item:hover img { transform:scale(1.035); }
.r2-gallery-caption { position:absolute; left:0; right:0; bottom:0; padding:28px 14px 12px; background:linear-gradient(transparent,rgba(7,26,58,.78)); color:#fff; font-weight:850; font-size:13px; }
.r2-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.r2-tab { border:1px solid var(--r2-line); border-radius:999px; padding:8px 12px; font-size:12px; font-weight:850; background:#fff; color:var(--r2-muted); }
.r2-tab.active { background:var(--r2-blue); border-color:var(--r2-blue); color:#fff; }

.r2-modal-backdrop { position:fixed; inset:0; z-index:999999; background:rgba(7,26,58,.52); display:none; align-items:center; justify-content:center; padding:22px; box-sizing:border-box; }
.r2-modal-backdrop.is-open { display:flex; }
.r2-modal { width:min(540px,100%); max-height:calc(100vh - 44px); overflow:auto; background:#fff; border:1px solid var(--r2-line); border-radius:18px; box-shadow:0 24px 80px rgba(7,26,58,.26); }
.r2-modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px; border-bottom:1px solid var(--r2-line); background:linear-gradient(180deg,#fff,#f8fbff); }
.r2-modal-kicker { display:block; color:var(--r2-blue); font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px; }
.r2-modal-head h3 { margin:0; font-size:22px; letter-spacing:-.035em; line-height:1.1; }
.r2-modal-close { width:38px; height:38px; flex:0 0 auto; border-radius:11px; border:1px solid var(--r2-line); background:#fff; cursor:pointer; display:grid; place-items:center; color:var(--r2-text); }
.r2-modal-close span { display:block; font-size:26px; line-height:1; transform:translateY(-1px); }
.r2-modal-close:hover { color:#fff; background:var(--r2-blue); border-color:var(--r2-blue); }
.r2-modal-body { padding:20px; }
.r2-form-status { font-size:13px; line-height:1.5; color:var(--r2-muted); }

.r2-admin-box { max-width:980px; background:#fff; border:1px solid #dcdcde; border-radius:10px; padding:20px; margin:20px 0; }
.r2-admin-box code { background:#f6f7f7; padding:2px 5px; border-radius:4px; }

@media (max-width:1160px) {
  .r2-header { grid-template-columns:190px minmax(0,1fr) auto; gap:10px; }
  .r2-nav { gap:11px; font-size:12px; }
  .r2-login-text { display:none; }
  .r2-header-actions { min-width:56px; }
}
@media (max-width:1100px) {
  .r2-directions { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .r2-footer-grid { grid-template-columns:1fr 1fr; }
  .r2-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .r2-projects-grid { grid-template-columns:1fr; }
}
@media (max-width:900px) {
  .r2-header { grid-template-columns:1fr auto; padding:0 14px; }
  .r2-nav { display:none; position:absolute; left:16px; right:16px; top:78px; z-index:50; flex-direction:column; gap:0; align-items:stretch; justify-content:flex-start; padding:10px; background:#fff; border:1px solid var(--r2-line); border-radius:14px; box-shadow:var(--r2-shadow); white-space:normal; }
  .r2-nav.is-open { display:flex; }
  .r2-nav a { padding:11px 12px; border-radius:9px; }
  .r2-nav a:hover { background:#f4f8fd; }
  .r2-menu-toggle { display:flex; flex-direction:column; }
  .r2-logo { min-width:auto; }
  .r2-logo-text { font-size:11px; }
  .r2-logo-text b { font-size:14px; }
  .r2-login-link { width:40px; padding:0; justify-content:center; }
  .r2-login-text { display:none; }
  .r2-home-hero { min-height:420px; align-items:flex-start; background-image:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.90) 46%,rgba(255,255,255,.20) 100%),var(--r2-hero); background-position:center bottom; }
  .r2-home-hero-content { width:100%; padding:38px 24px 220px; }
  .r2-home-hero h1 { font-size:34px; }
  .r2-home-hero p { font-size:15px; }
  .r2-two-col, .r2-bottom-grid, .r2-grid-2 { grid-template-columns:1fr; }
  .r2-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .r2-shell { margin:0 auto 22px; padding:0; }
  .r2-site-card { border-radius:0; border-left:0; border-right:0; }
  .r2-section { padding:20px 16px; }
  .r2-directions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .r2-dir { min-height:132px; padding:14px 8px 12px; }
  .r2-home-hero h1 { font-size:28px; line-height:1.2; }
  .r2-hero-actions { gap:10px; }
  .r2-btn { min-height:40px; padding:0 13px; font-size:12px; }
  .r2-media-row { grid-template-columns:78px 1fr; }
  .r2-thumb { width:78px; height:70px; }
  .r2-inner-hero { min-height:210px; border-radius:0; border-left:0; border-right:0; }
  .r2-inner-hero-content { padding:28px 20px; }
  .r2-inner-hero h1 { font-size:36px; }
  .r2-panel { border-radius:0; border-left:0; border-right:0; padding:20px 16px; }
  .r2-grid-3, .r2-grid-4, .r2-gallery-grid { grid-template-columns:1fr; }
  .r2-footer { padding:24px 16px 16px; }
  .r2-footer-grid { grid-template-columns:1fr; gap:18px; }
  .r2-copy { display:grid; gap:10px; }
  .r2-modal-backdrop { padding:12px; align-items:flex-start; overflow:auto; }
  .r2-modal { max-height:none; margin-top:26px; }
}
