/* Plus Jakarta Sans - self-hosted */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans/plus-jakarta-sans-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans/plus-jakarta-sans-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
 --rn-teal:#0D9488;--rn-teal-d:#0F766E;--rn-slate:#0F172A;--rn-emerald:#10B981;
 --rn-canvas:#F8FAFC;--rn-white:#fff;--rn-border:#E2E8F0;--rn-body:#334155;--rn-muted:#64748B;
 --rn-ok:#059669;--rn-ok-bg:#ECFDF5;--rn-warn:#D97706;--rn-warn-bg:#FFFBEB;
 --rn-crit:#E11D48;--rn-crit-bg:#FFF1F2;--rn-info:#0284C7;--rn-info-bg:#F0F9FF;
 --rn-r-sm:8px;--rn-r-md:16px;--rn-r-lg:24px;--rn-shadow-1:0 1px 3px rgba(15,23,42,.06);
 --rn-shadow-2:0 10px 25px -5px rgba(13,148,136,.10),0 8px 10px -6px rgba(15,23,42,.05);
 --rn-shadow-4:0 25px 50px -12px rgba(15,23,42,.25);
 --rn-font:"Plus Jakarta Sans",system-ui,sans-serif;
}
.rn-scope,.rn-scope *{font-family:var(--rn-font)!important}
.rn-container{max-width:1280px;margin:0 auto;padding:0 24px}
.rn-section{padding:80px 0}
@media(max-width:768px){.rn-section{padding:48px 0}.rn-container{padding:0 16px}}
.rn-btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;line-height:1;border-radius:var(--rn-r-sm);padding:13px 22px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:all .2s ease}
.rn-btn--primary{background:linear-gradient(135deg,#0D9488,#0F766E);color:#fff;box-shadow:0 8px 20px -6px rgba(13,148,136,.45)}
.rn-btn--primary:hover{filter:brightness(1.05);box-shadow:0 10px 26px -6px rgba(13,148,136,.55);color:#fff}
.rn-btn--outline{background:#fff;border-color:var(--rn-border);color:var(--rn-slate)}
.rn-btn--outline:hover{background:var(--rn-canvas);border-color:#94A3B8}
.rn-btn--ghost{background:transparent;color:var(--rn-slate)}
.rn-btn:focus-visible{outline:3px solid rgba(13,148,136,.35);outline-offset:2px}
.rn-pill{display:inline-flex;gap:8px;align-items:center;background:#F0FDFA;border:1px solid #CCFBF1;color:var(--rn-teal-d);font-size:13px;font-weight:700;padding:7px 14px;border-radius:999px}
.rn-card{background:#fff;border:1px solid var(--rn-border);border-radius:var(--rn-r-md);box-shadow:var(--rn-shadow-1)}
.rn-feature{background:#fff;border:1px solid var(--rn-border);border-radius:var(--rn-r-md);padding:24px;transition:all .2s ease}
.rn-feature:hover{transform:translateY(-2px);border-color:rgba(13,148,136,.3);box-shadow:var(--rn-shadow-2)}
.rn-feature .rn-ico{width:48px;height:48px;border-radius:12px;background:rgba(13,148,136,.08);color:var(--rn-teal);display:grid;place-items:center;font-size:22px;margin-bottom:14px}
.rn-pricing{background:#fff;border:1px solid var(--rn-border);border-radius:var(--rn-r-md);padding:28px}
.rn-pricing--featured{border:2px solid var(--rn-teal);box-shadow:var(--rn-shadow-2);position:relative}
.rn-testimonial{background:#fff;border:1px solid var(--rn-border);border-radius:12px;padding:20px}
.rn-kpi{background:#fff;border:1px solid var(--rn-border);border-radius:14px;padding:16px}
.rn-chip{display:inline-flex;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px}
.rn-chip--ok{background:var(--rn-ok-bg);color:#065F46}.rn-chip--warn{background:var(--rn-warn-bg);color:#92400E}
.rn-chip--crit{background:var(--rn-crit-bg);color:#9F1239}.rn-chip--info{background:var(--rn-info-bg);color:#0284C7}
.rn-input{height:44px;width:100%;background:#fff;border:1px solid #CBD5E1;border-radius:var(--rn-r-sm);padding:0 14px;font:400 15px/1 var(--rn-font);color:var(--rn-slate)}
.rn-input:focus{outline:none;border-color:var(--rn-teal);box-shadow:0 0 0 3px rgba(13,148,136,.15)}
.rn-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.85);backdrop-filter:blur(16px);border-bottom:1px solid rgba(226,232,240,.8)}
.rn-footer{background:var(--rn-slate);color:#cbd5e1}
.rn-accordion{border:1px solid var(--rn-border);border-radius:12px;overflow:hidden;margin-bottom:10px;background:#fff}
.rn-accordion summary{cursor:pointer;list-style:none;padding:18px 20px;font-weight:700;color:var(--rn-slate);display:flex;justify-content:space-between;align-items:center}
.rn-accordion[open] summary{border-bottom:1px solid var(--rn-border)}
.rn-accordion .rn-acc-body{padding:16px 20px;color:#475569;background:var(--rn-canvas)}
/* ── Mobile nav open panel (<=767px, below navbar-expand-md breakpoint) ── */
@media(max-width:767px){
 .rn-nav .rn-container{position:relative;flex-wrap:wrap}
 .rn-nav .navbar-collapse{position:absolute;top:calc(100% + 8px);left:0;right:0;width:100%;background:var(--rn-white);border:1px solid var(--rn-border);border-radius:var(--rn-r-md);box-shadow:var(--rn-shadow-4);padding:14px;z-index:60}
 .rn-nav .navbar-collapse .navbar-nav{align-items:stretch!important;gap:2px!important;margin:0!important}
 .rn-nav .navbar-collapse .nav-item{margin:0!important;width:100%}
 .rn-nav .navbar-collapse .nav-link{display:flex;align-items:center;min-height:44px;padding:10px 14px;border-radius:var(--rn-r-sm);font-family:var(--rn-font);font-weight:600;font-size:15px;color:var(--rn-slate);margin:0!important}
 .rn-nav .navbar-collapse .nav-link:hover,.rn-nav .navbar-collapse .nav-link.active{background:var(--rn-canvas);color:var(--rn-teal-d)}
 .rn-nav .navbar-collapse .nav-item.ms-1,.rn-nav .navbar-collapse .nav-item.ms-2{margin:0!important}
 .rn-nav .navbar-collapse .nav-item:has(.rn-btn){margin-top:6px!important}
 .rn-nav .navbar-collapse hr.rn-nav-sep{border:0;border-top:1px solid var(--rn-border);margin:8px 0}
 .rn-nav .navbar-collapse .rn-btn{display:flex;width:100%;justify-content:center;min-height:44px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ── A11y & polish fixes ── */

/* Fix 1: Footer links — explicit light color on dark background */
.rn-footer .footer-link a { color: #cbd5e1 !important; text-decoration: none; }
.rn-footer .footer-link a:hover { color: #fff !important; }

/* Fix 2: Auth teal links — darker teal passes 4.5:1 on white */
.rn-auth-link { color: #0c6460 !important; }
.rn-auth-link:hover { color: #0a4f4c !important; }
.rn-auth-bottom a { color: #0c6460 !important; }
.rn-auth-bottom a:hover { color: #0a4f4c !important; }

/* Fix 3: CMS page breadcrumb teal link class */
.rn-page-breadcrumb-link { color: #0c6460 !important; }

/* Fix 4: rn-ico SVG children display */
.rn-ico svg { display: block; }

/* Fix 5: Suppress missing img-header-bg 404 */
header:after { background-image: none !important; }

/* Fix 6: Pricing disabled items — concrete accessible color */
.rn-pricing-disabled { color: #566270 !important; opacity: 1 !important; }

/* Fix 7: rn-ok on white — #047857 passes 4.55:1 (text at 12px bold needs 4.5:1) */
:root { --rn-ok: #047857; --rn-ok-bg: #ECFDF5; }

/* Fix 8: Override CSS vars for accessible contrast */
:root {
  /* teal on white: #0c6460 = 4.62:1 on white */
  --rn-teal: #0c6460;
  --rn-teal-d: #0a4f4c;
  /* warn on white: #b45309 = 4.52:1 on white */
  --rn-warn: #b45309;
  /* muted on near-white #F1F5F9: #556170 = 4.6:1 */
  --rn-muted: #556170;
}
