:root {
  --blue: #252c5e;
  --blue-2: #0d4f83;
  --green: #7ecd49;
  --green-dark: #63b631;
  --green-soft: #eaf7df;
  --ink: #172033;
  --muted: #657084;
  --line: #dfe4ea;
  --surface: #f4f6f8;
  --white: #fff;
  --shadow: 0 18px 55px rgba(24, 33, 54, .10);
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  color: var(--ink);
  background: #fff;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
.shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.skip-link { position: absolute; left: -999px; top: 0; z-index: 999; background: #fff; padding: 10px 16px; }
.skip-link:focus { left: 10px; top: 10px; }

.topbar { background: var(--blue); color: rgba(255,255,255,.85); font-size: 13px; letter-spacing: .02em; }
.topbar-inner { height: 38px; display:flex; align-items:center; justify-content:space-between; gap: 24px; }
.topbar-links { display:flex; gap: 24px; }
.topbar a:hover { color: var(--green); }
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.95); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(37,44,94,.08); }
.nav-wrap { min-height: 84px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand img { width: 238px; height: 76px; object-fit: contain; object-position:left center; }
.main-nav { display:flex; align-items:center; gap: 28px; font-weight: 700; font-size: 15px; color: #3c4658; }
.main-nav a { position:relative; transition:.2s ease; }
.main-nav a:not(.nav-cta)::after { content:""; position:absolute; left:0; bottom:-8px; width:0; height:3px; background:var(--green); border-radius:4px; transition:.2s ease; }
.main-nav a:not(.nav-cta):hover { color:var(--blue); }
.main-nav a:not(.nav-cta):hover::after { width:100%; }
.nav-cta { background:var(--green); color:var(--blue); padding:12px 20px; border-radius:999px; box-shadow:0 8px 22px rgba(126,205,73,.23); }
.nav-cta:hover { transform:translateY(-1px); background:#8bd85a; }
.menu-toggle { display:none; width:46px; height:46px; border:0; border-radius:12px; background:var(--surface); padding:12px; }
.menu-toggle span { display:block; height:2px; background:var(--blue); margin:5px 0; border-radius:3px; transition:.2s ease; }

.hero { position:relative; overflow:hidden; min-height:690px; background:linear-gradient(100deg,#fff 0%,#fff 56%,#edf1f6 56%,#f8fafc 100%); }
.hero::after { content:""; position:absolute; width:420px; height:420px; border:70px solid rgba(126,205,73,.12); border-radius:50%; left:-260px; bottom:-260px; }
.hero-grid { display:grid; grid-template-columns: 1.03fr .97fr; align-items:center; gap:72px; padding:86px 0 76px; position:relative; z-index:2; }
.hero-copy { padding: 10px 0 30px; }
.eyebrow { display:inline-flex; align-items:center; gap:10px; color:var(--green-dark); font-weight:900; font-size:12px; letter-spacing:.14em; text-transform:uppercase; margin-bottom:18px; }
.eyebrow::before { content:""; width:34px; height:3px; border-radius:4px; background:currentColor; }
.eyebrow-light { color:#b7ef92; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(46px,5.6vw,74px); line-height:1.03; letter-spacing:-.045em; color:var(--blue); margin-bottom:24px; }
h1 span { color:var(--green-dark); }
.hero-lead { font-size:19px; color:#4f5c70; max-width:690px; margin-bottom:30px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:42px; }
.btn { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:0 23px; border-radius:999px; font-weight:850; transition:.2s ease; border:2px solid transparent; }
.btn-primary { background:var(--green); color:var(--blue); box-shadow:0 10px 28px rgba(126,205,73,.27); }
.btn-primary:hover { transform:translateY(-2px); background:#8bd85a; }
.btn-ghost { border-color:#cfd6df; color:var(--blue); background:rgba(255,255,255,.75); }
.btn-ghost:hover { border-color:var(--blue); }
.btn-full { width:100%; }
.hero-facts { display:flex; gap:30px; flex-wrap:wrap; }
.hero-facts div { display:flex; flex-direction:column; gap:2px; min-width:120px; }
.hero-facts strong { color:var(--blue); font-size:18px; }
.hero-facts span { color:#7a8494; font-size:13px; }
.hero-media { position:relative; min-height:540px; }
.hero-image-wrap { position:absolute; inset:0 -90px 0 0; overflow:hidden; border-radius:280px 0 0 280px; box-shadow:var(--shadow); border-left:12px solid var(--green); }
.hero-image-wrap::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,79,131,.08),transparent 45%); pointer-events:none; }
.hero-image-wrap img { width:100%; height:100%; object-fit:cover; object-position:52% center; }
.hero-badge { position:absolute; left:-35px; bottom:42px; display:flex; align-items:center; gap:12px; background:#fff; padding:16px 20px; border-radius:16px; box-shadow:0 18px 45px rgba(20,28,50,.18); }
.hero-badge .dot { width:14px; height:14px; background:var(--green); border-radius:50%; box-shadow:0 0 0 7px rgba(126,205,73,.16); }
.hero-badge strong,.hero-badge small { display:block; }
.hero-badge strong { color:var(--blue); font-size:14px; }
.hero-badge small { color:#788396; margin-top:2px; }
.hero-shape-a { position:absolute; right:39%; top:-150px; width:430px; height:740px; border:58px solid rgba(37,44,94,.05); border-radius:48%; transform:rotate(18deg); }
.hero-shape-b { position:absolute; right:35%; bottom:-360px; width:530px; height:530px; border:75px solid rgba(126,205,73,.18); border-radius:50%; }

.intro-strip { background:var(--blue); color:#fff; }
.strip-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.strip-grid > div { min-height:118px; padding:26px 30px; display:flex; align-items:center; gap:18px; border-right:1px solid rgba(255,255,255,.13); }
.strip-grid > div:first-child { border-left:1px solid rgba(255,255,255,.13); }
.strip-grid p { margin:0; color:rgba(255,255,255,.76); font-size:14px; }
.strip-grid strong { color:#fff; }
.strip-icon { flex:0 0 auto; width:44px; height:44px; border-radius:50%; background:var(--green); color:var(--blue); display:grid; place-items:center; font-weight:950; font-size:12px; }

.section { padding:100px 0; }
.section-head { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:end; margin-bottom:44px; }
h2 { font-size:clamp(36px,4vw,54px); line-height:1.08; letter-spacing:-.035em; color:var(--blue); margin-bottom:0; }
.section-head p, .tools-intro > p { color:var(--muted); font-size:17px; margin-bottom:4px; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.service-card { position:relative; min-height:285px; padding:28px; border:1px solid var(--line); border-radius:20px; background:#fff; transition:.25s ease; overflow:hidden; }
.service-card::before { content:""; position:absolute; left:0; top:0; width:5px; height:0; background:var(--green); transition:.25s ease; }
.service-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
.service-card:hover::before { height:100%; }
.service-card h3 { font-size:21px; color:var(--blue); margin:18px 0 10px; }
.service-card p { color:var(--muted); font-size:14.5px; margin-bottom:0; }
.icon-box { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:var(--surface); color:var(--blue); font-weight:950; font-size:20px; }
.service-card.featured { background:var(--blue); border-color:var(--blue); color:#fff; }
.service-card.featured .icon-box { background:var(--green); }
.service-card.featured h3 { color:#fff; }
.service-card.featured p { color:rgba(255,255,255,.72); }
.service-card.featured a { display:inline-block; color:var(--green); font-weight:800; margin-top:18px; }

.nfon-section { background:var(--blue); color:#fff; position:relative; overflow:hidden; }
.nfon-section::before { content:""; position:absolute; right:-160px; top:-180px; width:530px; height:530px; border:75px solid rgba(126,205,73,.16); border-radius:50%; }
.nfon-grid { display:grid; grid-template-columns:1fr 1fr; min-height:660px; align-items:stretch; position:relative; z-index:1; }
.nfon-photo { position:relative; min-height:660px; overflow:hidden; border-right:9px solid var(--green); clip-path:polygon(0 0,94% 0,100% 10%,100% 90%,94% 100%,0 100%); }
.nfon-photo img { width:100%; height:100%; object-fit:cover; object-position:center; }
.nfon-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(37,44,94,.48),transparent 52%); }
.nfon-photo-tag { position:absolute; left:34px; bottom:34px; z-index:2; display:flex; flex-direction:column; gap:2px; background:rgba(255,255,255,.96); color:var(--blue); padding:16px 20px; border-radius:14px; }
.nfon-photo-tag span { color:#677286; font-size:12px; }
.nfon-copy { padding:90px 0 90px 72px; align-self:center; }
.nfon-copy h2 { color:#fff; margin-bottom:24px; }
.nfon-copy > p { color:rgba(255,255,255,.76); font-size:17px; }
.check-list { list-style:none; padding:0; margin:30px 0; display:grid; gap:14px; }
.check-list li { position:relative; padding-left:31px; color:rgba(255,255,255,.86); }
.check-list li::before { content:"✓"; position:absolute; left:0; top:0; width:21px; height:21px; display:grid; place-items:center; border-radius:50%; background:var(--green); color:var(--blue); font-size:12px; font-weight:950; }
.text-link { display:inline-flex; gap:9px; font-weight:850; }
.text-link.light { color:var(--green); }

.tools-section { background:#f2f4f6; }
.tools-head { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; margin-bottom:42px; }
.tools-intro { display:grid; gap:18px; }
.success-chip { display:flex; align-items:center; gap:15px; padding:16px 18px; background:var(--green-soft); border:1px solid rgba(126,205,73,.35); border-radius:16px; color:#486237; }
.success-chip strong { color:var(--blue); font-size:29px; letter-spacing:-.04em; }
.success-chip span { font-size:13px; line-height:1.35; }
.tools-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.tool-card { min-height:285px; border-radius:22px; background:#fff; padding:28px; border:1px solid #e1e5e9; position:relative; overflow:hidden; transition:.25s ease; }
.tool-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); border-color:transparent; }
.tool-number { position:absolute; right:22px; top:16px; font-size:50px; font-weight:950; letter-spacing:-.06em; color:rgba(37,44,94,.06); }
.tool-label { display:inline-block; background:#eef2f6; color:#667286; border-radius:999px; padding:6px 10px; font-size:11px; font-weight:850; text-transform:uppercase; letter-spacing:.07em; }
.tool-card h3 { color:var(--blue); margin:22px 0 9px; font-size:23px; }
.tool-card p { color:var(--muted); font-size:14.5px; margin-bottom:0; }
.tool-card ul { padding-left:18px; color:#556175; font-size:14px; margin:18px 0 0; }
.tool-card li { margin:6px 0; }
.tool-card-large { grid-row:span 2; min-height:588px; background:var(--blue); color:#fff; }
.tool-card-large .tool-number { color:rgba(255,255,255,.08); }
.tool-card-large .tool-label { background:rgba(255,255,255,.1); color:#cfe5ff; }
.tool-card-large h3 { color:#fff; font-size:34px; }
.tool-card-large p,.tool-card-large ul { color:rgba(255,255,255,.74); }
.tool-card-large::after { content:""; position:absolute; width:260px; height:260px; border:45px solid rgba(126,205,73,.18); border-radius:50%; bottom:-135px; right:-95px; }
.tool-card-accent { background:var(--green); border-color:var(--green); }
.tool-card-accent .tool-label { background:rgba(255,255,255,.48); color:var(--blue); }
.tool-card-accent p { color:#405333; }
.tool-card-accent a { display:inline-block; margin-top:18px; font-weight:900; color:var(--blue); }

.about-grid { display:grid; grid-template-columns:1fr .95fr; gap:78px; align-items:center; }
.about-copy h2 { margin-bottom:24px; }
.lead-small { font-size:18px; color:var(--muted); }
.about-points { display:grid; gap:20px; margin-top:34px; }
.about-points div { display:grid; grid-template-columns:170px 1fr; gap:20px; border-top:1px solid var(--line); padding-top:18px; }
.about-points strong { color:var(--blue); }
.about-points span { color:var(--muted); font-size:14px; }
.about-media { position:relative; min-height:560px; overflow:hidden; border-radius:220px 22px 220px 22px; box-shadow:var(--shadow); border:10px solid #f4f6f8; }
.about-media img { width:100%; height:100%; min-height:560px; object-fit:cover; object-position:center; }
.about-overlay { position:absolute; right:24px; bottom:24px; width:185px; height:185px; border-radius:50%; background:var(--green); color:var(--blue); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; box-shadow:0 15px 38px rgba(0,0,0,.14); }
.about-overlay span,.about-overlay small { font-size:12px; }
.about-overlay strong { font-size:42px; line-height:1; letter-spacing:-.04em; }

.contact-section { position:relative; overflow:hidden; background:linear-gradient(110deg,var(--blue) 0%,var(--blue) 58%,#173b67 58%,#173b67 100%); color:#fff; padding:88px 0; }
.contact-shape { position:absolute; right:-120px; top:-250px; width:520px; height:520px; border:70px solid rgba(126,205,73,.22); border-radius:50%; }
.contact-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.1fr .9fr; gap:80px; align-items:center; }
.contact-copy h2 { color:#fff; margin-bottom:22px; }
.contact-copy p { color:rgba(255,255,255,.72); font-size:17px; max-width:650px; }
.contact-card { background:#fff; color:var(--ink); border-radius:22px; padding:30px; box-shadow:0 25px 60px rgba(0,0,0,.18); }
.contact-row { display:grid; grid-template-columns:90px 1fr; gap:20px; padding:14px 0; border-bottom:1px solid var(--line); }
.contact-row span { color:#8992a2; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.contact-row a,.contact-row p { color:var(--blue); font-weight:800; margin:0; }
.contact-card .btn { margin-top:22px; }

.footer { background:#fff; border-top:1px solid var(--line); }
.footer-main { display:grid; grid-template-columns:280px 1fr auto; gap:48px; align-items:center; padding:46px 0; }
.footer-brand img { width:240px; height:72px; object-fit:contain; object-position:left center; }
.footer-main p { color:var(--muted); font-size:14px; margin:0; max-width:480px; }
.footer-links { display:flex; gap:22px; font-size:13px; font-weight:750; color:#596477; }
.footer-links a:hover { color:var(--green-dark); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding:18px 0 24px; color:#8992a2; font-size:12px; }
.footer-bottom a { color:var(--blue); font-weight:800; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .55s ease, transform .55s ease; transition-delay:var(--delay,0ms); }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1050px) {
  .main-nav { gap:18px; font-size:14px; }
  .hero-grid { gap:38px; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .tools-grid { grid-template-columns:repeat(2,1fr); }
  .tool-card-large { grid-row:span 1; min-height:320px; }
}

@media (max-width: 820px) {
  .shell { width:min(100% - 34px, 720px); }
  .topbar { display:none; }
  .nav-wrap { min-height:74px; }
  .brand img { width:205px; height:62px; }
  .menu-toggle { display:block; position:relative; z-index:60; }
  .main-nav { position:fixed; inset:74px 0 0; background:#fff; display:flex; flex-direction:column; align-items:flex-start; padding:30px 28px; gap:26px; transform:translateX(100%); transition:.25s ease; font-size:19px; }
  .main-nav.is-open { transform:none; }
  .nav-cta { width:100%; text-align:center; }
  .hero { background:#fff; min-height:auto; }
  .hero-grid { grid-template-columns:1fr; padding:55px 0 0; }
  h1 { font-size:clamp(42px,12vw,64px); }
  .hero-media { min-height:460px; margin-top:0; }
  .hero-image-wrap { inset:0 -18px 0 -18px; border-radius:160px 0 0 0; border-left:0; border-top:9px solid var(--green); }
  .hero-badge { left:8px; bottom:20px; right:8px; }
  .strip-grid { grid-template-columns:1fr; padding:12px 0; }
  .strip-grid > div, .strip-grid > div:first-child { border:0; border-bottom:1px solid rgba(255,255,255,.12); min-height:92px; padding:18px 8px; }
  .strip-grid > div:last-child { border-bottom:0; }
  .section { padding:76px 0; }
  .section-head,.tools-head,.about-grid,.contact-grid { grid-template-columns:1fr; gap:30px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .nfon-grid { grid-template-columns:1fr; }
  .nfon-photo { min-height:430px; clip-path:none; border-right:0; border-bottom:8px solid var(--green); }
  .nfon-copy { padding:58px 0 70px; }
  .tools-grid { grid-template-columns:1fr 1fr; }
  .about-grid { gap:46px; }
  .about-media,.about-media img { min-height:470px; }
  .footer-main { grid-template-columns:1fr; gap:20px; }
  .footer-links { flex-wrap:wrap; }
}

@media (max-width: 560px) {
  .shell { width:calc(100% - 28px); }
  .brand img { width:190px; }
  .hero-grid { padding-top:42px; }
  .hero-copy { padding-bottom:18px; }
  .eyebrow { font-size:10px; letter-spacing:.11em; }
  .hero-lead { font-size:17px; }
  .hero-actions { flex-direction:column; }
  .hero-actions .btn { width:100%; }
  .hero-facts { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  .hero-media { min-height:380px; }
  .hero-badge { padding:14px 15px; }
  .service-grid,.tools-grid { grid-template-columns:1fr; }
  .service-card,.tool-card { min-height:auto; }
  .tool-card-large { min-height:410px; }
  .about-points div { grid-template-columns:1fr; gap:5px; }
  .about-media,.about-media img { min-height:390px; border-radius:150px 18px 150px 18px; }
  .about-overlay { width:145px; height:145px; }
  .contact-section { padding:70px 0; background:var(--blue); }
  .contact-row { grid-template-columns:1fr; gap:4px; }
  .footer-bottom { align-items:flex-start; gap:12px; flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .reveal { opacity:1; transform:none; }
}
