/* ============================================================
   NEXUS GLOBAL LLC — V3
   Basado en la presentación corporativa proporcionada.
   HTML/CSS/JS puro: listo para XAMPP y Hostinger.
   ============================================================ */

:root {
    --navy-1000: #020d18;
    --navy-950: #031522;
    --navy-900: #05233d;
    --navy-850: #062d50;
    --navy-800: #0a365b;
    --navy-700: #184d6e;
    --teal-600: #0e7f87;
    --teal-500: #11929a;
    --teal-400: #22abb0;
    --teal-300: #57c5c8;
    --teal-200: #9edfe0;
    --ice: #dff4f4;
    --paper: #f6f8f8;
    --ivory: #f0f3f1;
    --white: #ffffff;
    --ink: #112434;
    --muted: #485966;
    --line: rgba(13, 48, 73, .13);
    --line-dark: rgba(255,255,255,.12);
    --font-display: "Manrope", "Segoe UI", sans-serif;
    --font-body: "DM Sans", "Segoe UI", sans-serif;
    --container: 1240px;
    --header-height: 84px;
    --radius-sm: 14px;
    --radius-md: 24px;
    --radius-lg: 34px;
    --shadow-soft: 0 32px 90px rgba(3, 31, 50, .12);
    --shadow-dark: 0 30px 90px rgba(0,0,0,.28);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
body.menu-open {
    overflow: hidden;
}
body.menu-open .site-header,
.site-header:has(.main-nav.open) {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transition: none !important;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
::selection { color: var(--white); background: var(--teal-500); }
.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }

.page-noise {
    position: fixed; inset: 0; z-index: 9999; pointer-events: none; opacity: .025;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
}
.scroll-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 1100; }
.scroll-progress span { display:block; height:100%; width:0; background: linear-gradient(90deg,var(--teal-500),var(--teal-300)); }

/* HEADER */
.site-header { position: fixed; inset: 0 0 auto; z-index: 1000; border-bottom: 1px solid transparent; transition: .35s ease; }
.site-header.scrolled { background: rgba(2,13,24,.82); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-color: rgba(255,255,255,.08); }
.nav-shell { height: var(--header-height); display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand { position: relative; z-index: 1002; display:flex; align-items:center; }
.brand-logo { width: 218px; height: 58px; object-fit: contain; object-position:left center; mix-blend-mode: screen; filter: brightness(1.7) saturate(.85); }
.main-nav { display:flex; align-items:center; gap:24px; color:rgba(255,255,255,.7); font-size:13px; font-weight:500; }
.main-nav > a:not(.nav-cta) { position:relative; transition: color .25s ease; white-space:nowrap; }
.main-nav > a:not(.nav-cta)::after { content:""; position:absolute; left:0; bottom:-7px; width:100%; height:1px; background:var(--teal-300); transform:scaleX(0); transform-origin:right; transition:transform .3s ease; }
.main-nav > a:not(.nav-cta):hover { color:#fff; }
.main-nav > a:not(.nav-cta):hover::after { transform:scaleX(1); transform-origin:left; }
.nav-cta { display:flex; align-items:center; gap:16px; border:1px solid rgba(255,255,255,.2); padding:10px 14px 10px 17px; border-radius:999px; color:#fff; transition:.3s ease; }
.nav-cta:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.38); }
.menu-toggle { display:none; width:44px; height:44px; border:0; background:transparent; position:relative; z-index:1002; cursor:pointer; }
.menu-toggle span { position:absolute; left:9px; width:26px; height:1px; background:#fff; transition:.3s ease; }
.menu-toggle span:first-child { top:17px; }
.menu-toggle span:last-child { top:26px; }
.menu-toggle.active span:first-child { top:22px; transform:rotate(45deg); }
.menu-toggle.active span:last-child { top:22px; transform:rotate(-45deg); }

/* HERO */
.hero { position:relative; min-height:100vh; min-height:790px; display:flex; align-items:center; overflow:hidden; color:#fff; background:var(--navy-950); }
.hero-photo { position:absolute; inset:-2%; background-image:url("../images/hero-corporate.jpg"); background-size:cover; background-position:center; transform:scale(1.04); animation:heroDrift 18s ease-in-out infinite alternate; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgba(2,13,24,.97) 0%, rgba(3,21,34,.91) 38%, rgba(3,20,33,.64) 62%, rgba(3,15,25,.32) 100%), linear-gradient(0deg,rgba(2,13,24,.76),transparent 43%); }
.hero-grid { position:absolute; inset:0; opacity:.14; background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px); background-size:74px 74px; mask-image:linear-gradient(90deg,#000 0%,#000 55%,transparent 91%); }
.hero-scan { position:absolute; width:1px; height:130%; left:62%; top:-15%; background:linear-gradient(transparent,rgba(87,197,200,.45),transparent); box-shadow:0 0 25px rgba(87,197,200,.28); animation:scan 8s ease-in-out infinite; }
.hero-cursor-glow { position:absolute; width:420px; height:420px; border-radius:50%; pointer-events:none; background:radial-gradient(circle,rgba(17,146,154,.12),transparent 67%); transform:translate(-50%,-50%); opacity:.7; transition:opacity .3s ease; }
.hero-layout { position:relative; z-index:3; display:grid; grid-template-columns:1.16fr .84fr; gap:68px; align-items:center; padding:145px 0 110px; }
.hero-copy { max-width:780px; }
.eyebrow { display:inline-flex; align-items:center; gap:11px; color:rgba(255,255,255,.62); font-size:11px; text-transform:uppercase; letter-spacing:.18em; font-weight:600; margin-bottom:28px; }
.eyebrow-dot { width:7px; height:7px; border-radius:50%; background:var(--teal-300); box-shadow:0 0 0 6px rgba(87,197,200,.1),0 0 18px rgba(87,197,200,.52); animation:pulse 2.4s ease-in-out infinite; }
.hero h1 { margin:0; font-family:var(--font-display); font-size:clamp(56px,6vw,92px); line-height:.99; letter-spacing:-.056em; font-weight:600; text-wrap:balance; }
.hero h1 span { color:var(--teal-300); font-weight:500; }
.hero-lead { max-width:690px; margin:30px 0 0; color:rgba(255,255,255,.80); font-size:clamp(16px,1.35vw,19px); line-height:1.72; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:38px; }
.btn { position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:56px; padding:0 18px 0 24px; border-radius:999px; border:1px solid transparent; font-size:14px; font-weight:600; cursor:pointer; transition:transform .3s cubic-bezier(.2,.8,.2,1),background .3s ease,border-color .3s ease,box-shadow .3s ease; }
.btn::before { content:""; position:absolute; inset:-2px; z-index:-1; transform:translateX(-120%) skewX(-20deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent); transition:transform .65s ease; }
.btn:hover::before { transform:translateX(120%) skewX(-20deg); }
.btn-primary { color:#fff; background:linear-gradient(135deg,var(--teal-500),#137f90); box-shadow:0 14px 42px rgba(17,146,154,.28); }
.btn-primary:hover { box-shadow:0 20px 58px rgba(17,146,154,.38); }
.btn-arrow { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.15); font-size:17px; transition:transform .3s ease; }
.btn:hover .btn-arrow { transform:rotate(45deg); }
.text-link { display:inline-flex; align-items:center; gap:10px; color:rgba(255,255,255,.82); font-size:13px; transition:color .25s ease; }
.text-link:hover { color:#fff; }
.hero-proof { margin-top:44px; max-width:640px; padding-top:21px; border-top:1px solid rgba(255,255,255,.12); display:grid; grid-template-columns:repeat(2,1fr); }
.hero-proof > div { display:flex; flex-direction:column; gap:6px; padding-right:24px; }
.hero-proof > div + div { border-left:1px solid rgba(255,255,255,.11); padding-left:24px; }
.hero-proof strong { font-family:var(--font-display); font-size:14px; font-weight:600; }
.hero-proof span { color:rgba(255,255,255,.68); font-size:11px; line-height:1.5; }
.hero-floating { position:relative; width:min(100%,480px); aspect-ratio:1/1; justify-self:end; display:grid; place-items:center; perspective:900px; }
.hero-core { position:relative; z-index:4; width:168px; height:168px; border-radius:38px; display:grid; place-items:center; background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.035)); border:1px solid rgba(255,255,255,.18); box-shadow:0 35px 100px rgba(0,0,0,.32),inset 0 0 60px rgba(17,146,154,.08); backdrop-filter:blur(18px); animation:coreFloat 5s ease-in-out infinite; }
.hero-core img { width:98px; filter:drop-shadow(0 16px 24px rgba(0,0,0,.22)); }
.core-ring { position:absolute; left:50%; top:50%; border:1px solid rgba(87,197,200,.19); border-radius:50%; }
.core-ring-1 { width:290px; height:290px; animation:orbitCentered 24s linear infinite; }
.core-ring-2 { width:400px; height:400px; border-style:dashed; animation:orbitCenteredReverse 34s linear infinite; }
.core-ring::before { content:""; position:absolute; top:10%; left:14%; width:7px; height:7px; border-radius:50%; background:var(--teal-300); box-shadow:0 0 16px var(--teal-300); }
.hero-chip { position:absolute; z-index:5; display:flex; align-items:center; gap:7px; padding:8px 11px; border:1px solid rgba(255,255,255,.12); border-radius:999px; background:rgba(3,20,33,.66); backdrop-filter:blur(14px); color:rgba(255,255,255,.72); font-size:9px; text-transform:uppercase; letter-spacing:.09em; animation:chipFloat 4.5s ease-in-out infinite; }
.hero-chip i { width:5px; height:5px; border-radius:50%; background:var(--teal-300); box-shadow:0 0 10px var(--teal-300); }
.chip-1 { top:11%; left:8%; }
.chip-2 { top:30%; right:-2%; animation-delay:.8s; }
.chip-3 { bottom:15%; right:10%; animation-delay:1.4s; }
.chip-4 { bottom:29%; left:-1%; animation-delay:2s; }
.hero-micro-card { position:absolute; right:0; bottom:2%; width:205px; padding:16px; border:1px solid rgba(255,255,255,.1); border-radius:16px; background:rgba(2,15,26,.72); backdrop-filter:blur(14px); box-shadow:var(--shadow-dark); }
.hero-micro-card small { display:block; color:var(--teal-300); font-size:8px; letter-spacing:.18em; margin-bottom:5px; }
.hero-micro-card strong { display:block; font-family:var(--font-display); font-size:11px; line-height:1.4; font-weight:600; }
.hero-network { position:absolute; inset:0; z-index:2; pointer-events:none; }
.network-point { position:absolute; width:7px; height:7px; border-radius:50%; background:var(--teal-300); box-shadow:0 0 0 6px rgba(87,197,200,.07),0 0 22px rgba(87,197,200,.5); animation:pulse 3s ease-in-out infinite; }
.hp-1 { right:28%; top:31%; }.hp-2 { right:12%; top:51%; animation-delay:1s; }.hp-3 { right:22%; top:68%; animation-delay:2s; }
.network-beam { position:absolute; height:1px; background:linear-gradient(90deg,transparent,rgba(87,197,200,.32),transparent); transform-origin:left; }
.hb-1 { width:250px; right:10%; top:40%; transform:rotate(22deg); }.hb-2 { width:220px; right:20%; top:61%; transform:rotate(-24deg); }
.hero-bottom { position:absolute; z-index:4; left:0; bottom:0; width:100%; }
.hero-bottom-inner { min-height:66px; display:flex; align-items:center; gap:17px; border-top:1px solid rgba(255,255,255,.09); color:rgba(255,255,255,.55); font-size:9px; text-transform:uppercase; letter-spacing:.13em; }
.hero-bottom-line { flex:1; max-width:86px; height:1px; background:rgba(255,255,255,.15); }

/* MARQUEE */
.marquee { overflow:hidden; background:linear-gradient(90deg,var(--teal-600),var(--teal-500),var(--navy-800)); color:#fff; border-block:1px solid rgba(255,255,255,.12); }
.marquee-track { width:max-content; min-height:52px; display:flex; align-items:center; gap:26px; animation:marquee 29s linear infinite; }
.marquee-track span { white-space:nowrap; font-family:var(--font-display); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.marquee-track i { width:5px; height:5px; border-radius:50%; border:1px solid rgba(255,255,255,.7); }

/* GENERAL */
.section { padding:128px 0; }
.section-heading { display:grid; grid-template-columns:.72fr 1.28fr; gap:72px; align-items:end; margin-bottom:76px; }
.section-heading h2 { margin:0; font-family:var(--font-display); font-size:clamp(44px,5vw,69px); line-height:1.04; letter-spacing:-.045em; font-weight:500; }
.section-heading h2 span { color:var(--teal-500); }
.section-heading-dark h2 { color:#fff; }
.section-heading-dark h2 span { color:var(--teal-300); }
.section-index { display:inline-flex; align-items:center; gap:11px; color:var(--teal-600); font-family:var(--font-display); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.2em; }
.section-index::before { content:""; width:28px; height:1px; background:currentColor; }
.section-index-light { color:var(--teal-300); }
.kicker { max-width:340px; margin:20px 0 0; color:var(--muted); font-size:13px; line-height:1.65; }
.kicker-light { color:rgba(255,255,255,.48); }

/* INTRO */
.intro { position:relative; overflow:hidden; background:var(--paper); }
.intro-watermark { position:absolute; right:-110px; bottom:-110px; width:430px; opacity:.035; transform:rotate(-9deg); animation:watermarkFloat 12s ease-in-out infinite; }
.intro-layout { display:grid; grid-template-columns:1.08fr .92fr; gap:95px; align-items:center; }
.intro-copy { border-top:1px solid var(--line); padding-top:31px; }
.large-copy { margin:0 0 30px; font-family:var(--font-display); font-size:clamp(27px,3vw,40px); line-height:1.35; letter-spacing:-.03em; }
.intro-copy > p:last-child { max-width:680px; color:var(--muted); font-size:15px; line-height:1.85; }
.capability-orbit { position:relative; min-height:400px; display:grid; place-items:center; }
.orbit-circle { position:absolute; left:50%; top:50%; border:1px solid rgba(17,146,154,.17); border-radius:50%; }
.oc-1 { width:330px; height:330px; animation:orbitCentered 24s linear infinite; }.oc-2 { width:245px; height:245px; border-style:dashed; animation:orbitCenteredReverse 20s linear infinite; }
.orbit-logo { width:118px; height:118px; border-radius:30px; display:grid; place-items:center; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-soft); }
.orbit-logo img { width:72px; }
.orbit-label { position:absolute; padding:9px 12px; border-radius:999px; background:#fff; border:1px solid var(--line); box-shadow:0 15px 35px rgba(3,31,50,.08); color:var(--navy-800); font-size:9px; text-transform:uppercase; letter-spacing:.1em; font-weight:700; }
.ol-1 { top:9%; left:24%; }.ol-2 { top:40%; right:2%; }.ol-3 { bottom:10%; right:24%; }.ol-4 { bottom:29%; left:2%; }

/* BUSINESS LINES */
.business-lines { color:#fff; background:radial-gradient(circle at 12% 15%,rgba(17,146,154,.15),transparent 30%),linear-gradient(140deg,var(--navy-950),var(--navy-900)); }
.business-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.business-card { position:relative; min-height:380px; padding:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(255,255,255,.1); border-radius:24px; background:linear-gradient(140deg,rgba(255,255,255,.055),rgba(255,255,255,.016)); transform-style:preserve-3d; transition:border-color .35s ease,background .35s ease,box-shadow .35s ease,transform .2s ease; }
.business-card::before { content:""; position:absolute; width:240px; height:240px; right:-120px; top:-120px; border-radius:50%; background:radial-gradient(circle,rgba(17,146,154,.15),transparent 67%); transition:transform .5s ease; }
.business-card:hover { border-color:rgba(87,197,200,.34); background:linear-gradient(140deg,rgba(17,146,154,.13),rgba(255,255,255,.02)); box-shadow:0 26px 65px rgba(0,0,0,.18); }
.business-card:hover::before { transform:scale(1.25); }
.business-media { position:relative; flex:0 0 220px; min-height:220px; overflow:hidden; background:rgba(0,0,0,.2); }
.business-media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.business-no { position:absolute; z-index:1; top:24px; left:30px; color:var(--teal-300); font-size:9px; font-weight:700; letter-spacing:.1em; }
.business-body { position:relative; z-index:1; display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; gap:18px; padding:24px 30px 30px; margin-top:auto; }
.business-icon { width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.13); display:grid; place-items:center; color:var(--teal-300); }
.business-icon svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.business-card small { display:block; color:rgba(255,255,255,.35); font-size:8px; letter-spacing:.14em; margin-bottom:11px; }
.business-card h3 { margin:0; max-width:430px; font-family:var(--font-display); font-size:clamp(23px,2.4vw,33px); line-height:1.13; letter-spacing:-.035em; font-weight:550; }
.business-card p { margin:13px 0 0; max-width:420px; color:rgba(255,255,255,.48); font-size:13px; line-height:1.6; }
.card-arrow { position:absolute; right:24px; top:24px; font-size:20px; color:rgba(255,255,255,.45); transition:.3s ease; }
.business-card:hover .card-arrow { color:var(--teal-300); transform:rotate(45deg); }

/* VISUAL BREAK */
.visual-break { position:relative; min-height:720px; background:var(--navy-950); overflow:hidden; }
.visual-break-image { position:absolute; inset:0; }
.visual-break-image img { width:100%; height:100%; object-fit:cover; }
.visual-break-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(2,13,24,.96),rgba(2,13,24,.72) 48%,rgba(2,13,24,.28)),linear-gradient(0deg,rgba(2,13,24,.48),transparent 45%); }
.visual-break-content { position:relative; z-index:2; min-height:720px; display:flex; align-items:center; }
.visual-break-card { max-width:650px; padding:48px; border:1px solid rgba(255,255,255,.12); border-radius:28px; background:rgba(3,21,34,.68); backdrop-filter:blur(15px); color:#fff; box-shadow:var(--shadow-dark); }
.visual-break-card h2 { margin:25px 0 0; font-family:var(--font-display); font-size:clamp(42px,5vw,67px); line-height:1.03; letter-spacing:-.045em; font-weight:500; }
.visual-break-card h2 span { color:var(--teal-300); }
.visual-break-card p { max-width:520px; margin:24px 0 0; color:rgba(255,255,255,.57); font-size:15px; line-height:1.72; }

/* SERVICE DETAILS */
.service-detail { background:var(--paper); }
.service-detail-alt { color:#fff; background:linear-gradient(145deg,var(--navy-950),var(--navy-900)); }
.service-detail-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:92px; align-items:start; }
.service-sticky { position:sticky; top:120px; }
.detail-number { display:block; margin-bottom:24px; font-family:var(--font-display); font-size:90px; line-height:.8; letter-spacing:-.07em; font-weight:700; color:rgba(17,146,154,.32); }
.service-detail-alt .detail-number { color:rgba(87,197,200,.32); }
.service-sticky h2 { margin:25px 0 0; font-family:var(--font-display); font-size:clamp(43px,4.8vw,65px); line-height:1.02; letter-spacing:-.045em; font-weight:500; }
.service-sticky h2 span { color:var(--teal-500); }
.service-detail-alt .service-sticky h2 span { color:var(--teal-300); }
.service-sticky > p { max-width:480px; margin:24px 0 0; color:var(--muted); font-size:15px; line-height:1.75; }
.service-detail-alt .service-sticky > p { color:rgba(255,255,255,.72); }
.detail-tag { display:inline-flex; margin-top:29px; padding:9px 12px; border-radius:999px; border:1px solid rgba(14,127,135,.26); color:var(--teal-600); font-size:9px; text-transform:uppercase; letter-spacing:.11em; font-weight:700; }
.service-detail-alt .detail-tag { border-color:rgba(255,255,255,.18); color:var(--teal-300); }
.detail-content { border-top:1px solid var(--line); }
.detail-card { position:relative; display:grid; grid-template-columns:48px 1fr; gap:18px; padding:30px 18px 30px 0; border-bottom:1px solid var(--line); overflow:hidden; transition:padding .3s ease,background .3s ease; }
.detail-card::before { content:""; position:absolute; width:250px; height:250px; left:var(--mouse-x,50%); top:var(--mouse-y,50%); transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle,rgba(17,146,154,.11),transparent 67%); opacity:0; transition:opacity .3s ease; pointer-events:none; }
.detail-card:hover::before { opacity:1; }
.detail-card:hover { padding-left:17px; background:rgba(17,146,154,.025); }
.detail-card > span { position:relative; z-index:1; padding-top:6px; color:var(--teal-600); font-size:9px; font-weight:800; letter-spacing:.1em; }
.detail-card > div { position:relative; z-index:1; }
.detail-card h3 { margin:0; font-family:var(--font-display); font-size:24px; line-height:1.2; letter-spacing:-.025em; font-weight:600; }
.detail-card p { margin:10px 0 0; color:var(--muted); font-size:13px; line-height:1.65; }
.detail-note { margin:24px 0 0; padding:17px 20px; border-left:2px solid var(--teal-500); background:rgba(17,146,154,.05); color:var(--muted); font-size:12px; line-height:1.6; }
.process-stack { border-top:1px solid rgba(255,255,255,.12); }
.process-card { display:grid; grid-template-columns:44px 80px 1fr; gap:18px; align-items:center; padding:27px 0; border-bottom:1px solid rgba(255,255,255,.11); }
.process-number { color:var(--teal-300); font-size:9px; font-weight:800; letter-spacing:.1em; }
.process-progress { height:1px; background:rgba(255,255,255,.1); overflow:hidden; }
.process-progress i { display:block; width:0; height:100%; background:var(--teal-300); transition:width 1.1s cubic-bezier(.2,.8,.2,1); }
.process-card.visible .process-progress i { width:100%; }
.process-card h3 { margin:0; font-family:var(--font-display); font-size:26px; font-weight:600; letter-spacing:-.03em; }
.process-card p { margin:8px 0 0; max-width:560px; color:rgba(255,255,255,.5); font-size:13px; line-height:1.65; }
.assistance-flow { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.flow-step { min-height:300px; padding:28px; border:1px solid var(--line); border-radius:20px; background:#fff; display:flex; flex-direction:column; transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease; }
.flow-step:hover { transform:translateY(-7px); border-color:rgba(17,146,154,.28); box-shadow:var(--shadow-soft); }
.flow-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(145deg,var(--teal-500),var(--navy-800)); color:#fff; box-shadow:0 12px 30px rgba(17,146,154,.18); }
.flow-icon span { font-size:9px; font-weight:800; letter-spacing:.08em; }
.flow-step h3 { margin:auto 0 12px; font-family:var(--font-display); font-size:22px; letter-spacing:-.03em; line-height:1.2; }
.flow-step p { margin:0; color:var(--muted); font-size:12px; line-height:1.65; }
.assistance-caption { grid-column:1 / -1; margin-top:7px; padding:20px 24px; border-radius:15px; background:var(--navy-900); color:#fff; font-family:var(--font-display); font-size:15px; letter-spacing:-.01em; }
.reinsurance-map { position:relative; min-height:570px; overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:26px; background:radial-gradient(circle at 50% 50%,rgba(17,146,154,.12),transparent 28%),rgba(255,255,255,.025); }
.re-map-grid { position:absolute; inset:0; opacity:.35; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:54px 54px; mask-image:radial-gradient(circle,#000,transparent 77%); }
.reinsurance-map::before,.reinsurance-map::after { content:""; position:absolute; left:50%; top:50%; border:1px solid rgba(87,197,200,.14); border-radius:50%; transform:translate(-50%,-50%); }
.reinsurance-map::before { width:330px; height:330px; }.reinsurance-map::after { width:450px; height:450px; border-style:dashed; animation:orbitCentered 35s linear infinite; }
.re-node { position:absolute; z-index:3; }
.rn-center { left:50%; top:50%; transform:translate(-50%,-50%); width:88px; height:88px; border-radius:24px; display:grid; place-items:center; background:#fff; box-shadow:0 25px 55px rgba(0,0,0,.25); }
.rn-center img { width:56px; }
.re-node-card { position:absolute; z-index:4; width:210px; padding:18px; border:1px solid rgba(255,255,255,.13); border-radius:17px; background:rgba(3,21,34,.78); backdrop-filter:blur(12px); box-shadow:0 18px 45px rgba(0,0,0,.17); animation:chipFloat 6s ease-in-out infinite; }
.re-node-card > span { color:var(--teal-300); font-size:8px; font-weight:800; }
.re-node-card h3 { margin:8px 0 0; font-family:var(--font-display); font-size:17px; font-weight:600; }
.re-node-card p { margin:8px 0 0; color:rgba(255,255,255,.47); font-size:11px; line-height:1.55; }
.rn-1 { left:7%; top:10%; }.rn-2 { right:6%; top:18%; animation-delay:1.3s; }.rn-3 { right:15%; bottom:16%; animation-delay:2.2s; }
.reinsurance-badges { position:absolute; z-index:4; left:28px; bottom:24px; display:flex; flex-wrap:wrap; gap:7px; }
.reinsurance-badges span { padding:7px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.11); color:rgba(255,255,255,.48); font-size:8px; text-transform:uppercase; letter-spacing:.09em; }

/* VALUE */
.value-section { background:var(--ivory); }
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.value-card { position:relative; min-width:0; padding:0 0 30px; overflow:hidden; border:1px solid var(--line); border-radius:23px; background:#fff; transform-style:preserve-3d; transition:box-shadow .35s ease,border-color .35s ease,transform .2s ease; }
.value-card::after { content:""; position:absolute; width:220px; height:220px; right:-110px; bottom:-110px; border-radius:50%; border:1px solid rgba(17,146,154,.1); box-shadow:0 0 0 35px rgba(17,146,154,.025),0 0 0 70px rgba(17,146,154,.015); transition:transform .5s ease; }
.value-card:hover { border-color:rgba(17,146,154,.27); box-shadow:var(--shadow-soft); }
.value-card:hover::after { transform:scale(1.15); }
.value-no { position:absolute; top:16px; left:16px; padding:8px 10px; border:1px solid rgba(255,255,255,.22); border-radius:999px; background:var(--navy-950); color:#fff; font-size:9px; font-weight:800; letter-spacing:.1em; }
.value-media { position:relative; aspect-ratio:16 / 9; overflow:hidden; background:var(--navy-950); }
.value-media img { display:block; width:100%; height:100%; object-fit:cover; }
.value-card h3 { position:relative; z-index:1; margin:26px 28px 0; font-family:var(--font-display); font-size:29px; letter-spacing:-.035em; }
.value-card p { position:relative; z-index:1; margin:12px 28px 0; max-width:310px; color:var(--muted); font-size:13px; line-height:1.65; }

/* SECTORS */
.sectors { color:#fff; background:radial-gradient(circle at 15% 10%,rgba(17,146,154,.14),transparent 28%),var(--navy-950); }
.sectors-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:90px; align-items:start; }
.sectors-copy { position:sticky; top:125px; }
.sectors-copy h2 { margin:25px 0 0; font-family:var(--font-display); font-size:clamp(46px,5vw,67px); line-height:1.02; letter-spacing:-.045em; font-weight:500; }
.sectors-copy h2 span { color:var(--teal-300); }
.sectors-copy p { max-width:480px; margin:26px 0 32px; color:rgba(255,255,255,.52); font-size:14px; line-height:1.75; }
.btn-outline-light { color:#fff; border-color:rgba(255,255,255,.2); background:rgba(255,255,255,.03); }
.btn-outline-light:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.36); }
.sector-columns { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.sector-column { padding:30px; border:1px solid rgba(255,255,255,.1); border-radius:24px; background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.016)); }
.sector-column-head { display:flex; align-items:flex-start; gap:16px; padding-bottom:25px; border-bottom:1px solid rgba(255,255,255,.1); }
.sector-column-head span { color:var(--teal-300); font-size:9px; font-weight:800; }
.sector-column-head h3 { margin:0; font-family:var(--font-display); font-size:26px; line-height:1.15; letter-spacing:-.03em; font-weight:550; }
.sector-column ul { list-style:none; margin:0; padding:0; }
.sector-column li { position:relative; padding:18px 0 18px 20px; border-bottom:1px solid rgba(255,255,255,.075); color:rgba(255,255,255,.58); font-size:13px; transition:color .25s ease,padding-left .25s ease; }
.sector-column li::before { content:""; position:absolute; left:0; top:50%; width:5px; height:5px; border-radius:50%; background:var(--teal-400); transform:translateY(-50%); opacity:.72; }
.sector-column li:hover { color:#fff; padding-left:26px; }

/* METHOD */
.method { background:var(--paper); }
.method-track { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:23px; }
.method-track::before { content:""; position:absolute; left:0; right:0; top:36px; height:1px; background:var(--line); }
.method-card { position:relative; padding-top:13px; }
.method-no { position:relative; z-index:2; width:46px; height:46px; display:grid; place-items:center; border-radius:50%; background:var(--paper); border:1px solid rgba(17,146,154,.26); color:var(--teal-600); font-size:9px; font-weight:800; box-shadow:0 0 0 8px var(--paper); }
.method-line { height:1px; margin:27px 0 27px; background:var(--line); overflow:hidden; }
.method-line i { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--teal-500),var(--teal-300)); transition:width 1s cubic-bezier(.2,.8,.2,1); }
.method-card.visible .method-line i { width:100%; }
.method-card small { color:#929da5; font-size:8px; letter-spacing:.16em; font-weight:700; }
.method-card h3 { margin:8px 0 0; font-family:var(--font-display); font-size:25px; letter-spacing:-.03em; }
.method-card p { margin:13px 0 0; color:var(--muted); font-size:13px; line-height:1.65; }

/* TEAM */
.team { color:#fff; background:linear-gradient(145deg,var(--navy-950),var(--navy-900)); }
.team-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.team-card { overflow:hidden; border:1px solid rgba(255,255,255,.1); border-radius:26px; background:rgba(255,255,255,.035); }
.team-photo-wrap { position:relative; height:460px; overflow:hidden; background:#eaece8; }
.team-photo-wrap::after { content:""; position:absolute; inset:auto 0 0; height:45%; background:linear-gradient(transparent,rgba(2,13,24,.72)); pointer-events:none; }
.team-photo-wrap img { width:100%; height:100%; object-fit:cover; object-position:center 22%; transition:transform .7s cubic-bezier(.2,.8,.2,1); }
.team-card:hover .team-photo-wrap img { transform:scale(1.045); }
.team-role-pill { position:absolute; z-index:2; left:24px; bottom:22px; padding:8px 11px; border-radius:999px; background:rgba(3,21,34,.7); border:1px solid rgba(255,255,255,.14); backdrop-filter:blur(12px); color:rgba(255,255,255,.77); font-size:9px; text-transform:uppercase; letter-spacing:.09em; }
.team-body { padding:31px; }
.team-index { color:var(--teal-300); font-size:9px; font-weight:800; letter-spacing:.1em; }
.team-body h3 { margin:8px 0 0; font-family:var(--font-display); font-size:32px; letter-spacing:-.035em; font-weight:550; }
.team-summary { margin:14px 0 0; color:rgba(255,255,255,.58); font-size:13px; line-height:1.7; }
.team-experience { margin-top:26px; padding-top:22px; border-top:1px solid rgba(255,255,255,.1); }
.team-experience small { color:var(--teal-300); font-size:8px; letter-spacing:.15em; font-weight:800; }
.team-experience p { margin:9px 0 0; color:rgba(255,255,255,.47); font-size:11px; line-height:1.55; }
.team-experience strong { color:rgba(255,255,255,.72); font-weight:600; }
.team-education { margin-top:23px; padding:11px 13px; border-radius:12px; background:rgba(17,146,154,.09); color:rgba(255,255,255,.62); font-size:10px; line-height:1.5; }

/* CONTACT */
.contact { position:relative; padding:136px 0; overflow:hidden; color:#fff; background:radial-gradient(circle at 8% 30%,rgba(17,146,154,.16),transparent 25%),var(--navy-950); }
.contact-orbit { position:absolute; width:720px; height:720px; right:-330px; bottom:-330px; border:1px solid rgba(87,197,200,.09); border-radius:50%; box-shadow:0 0 0 95px rgba(87,197,200,.022),0 0 0 190px rgba(87,197,200,.012); animation:orbit 45s linear infinite; }
.contact-layout { position:relative; z-index:2; display:grid; grid-template-columns:.82fr 1.18fr; gap:90px; align-items:start; }
.contact-copy h2 { margin:28px 0 0; font-family:var(--font-display); font-size:clamp(50px,5vw,72px); line-height:1.02; letter-spacing:-.05em; font-weight:500; }
.contact-copy h2 span { color:var(--teal-300); }
.contact-copy > p { max-width:500px; margin:25px 0 0; color:rgba(255,255,255,.56); font-size:15px; line-height:1.72; }
.contact-signature { margin-top:45px; padding-top:24px; border-top:1px solid rgba(255,255,255,.11); display:flex; align-items:center; gap:14px; max-width:480px; }
.contact-signature img { width:44px; filter:brightness(1.4); }
.contact-signature div { display:flex; flex-direction:column; gap:4px; }
.contact-signature small { color:var(--teal-300); font-size:8px; letter-spacing:.15em; }
.contact-signature strong { font-family:var(--font-display); font-size:11px; font-weight:600; color:rgba(255,255,255,.62); }
.contact-form { padding:34px; border:1px solid rgba(255,255,255,.11); border-radius:28px; background:rgba(255,255,255,.045); backdrop-filter:blur(15px); }
.form-row { display:grid; grid-template-columns:repeat(2,1fr); gap:17px; }
.contact-form label { display:block; margin-bottom:19px; }
.contact-form label > span { display:block; margin-bottom:8px; color:rgba(255,255,255,.5); font-size:9px; text-transform:uppercase; letter-spacing:.11em; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; outline:0; color:#fff; border:1px solid rgba(255,255,255,.12); border-radius:12px; background:rgba(255,255,255,.035); transition:border-color .25s ease,background .25s ease; }
.contact-form input,.contact-form select { height:52px; padding:0 14px; }
.contact-form textarea { min-height:140px; resize:vertical; padding:14px; }
.contact-form input::placeholder,.contact-form textarea::placeholder { color:rgba(255,255,255,.25); }
.contact-form select { color:rgba(255,255,255,.55); }.contact-form select option { color:var(--ink); background:#fff; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:rgba(87,197,200,.72); background:rgba(255,255,255,.06); }
.btn-form { border:0; min-width:205px; }
.form-note { margin:14px 0 0; color:rgba(255,255,255,.32); font-size:10px; line-height:1.5; }
.form-note.success { color:#7ad9c2; }

/* FOOTER */
.site-footer { color:#fff; background:var(--navy-1000); border-top:1px solid rgba(255,255,255,.07); }
.footer-top { min-height:180px; display:grid; grid-template-columns:1fr 1.15fr 1fr; gap:40px; align-items:center; }
.brand-footer .brand-logo { width:220px; }
.footer-top > p { margin:0; max-width:420px; color:rgba(255,255,255,.38); font-size:12px; line-height:1.65; }
.footer-back { justify-self:end; display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.55); font-size:10px; text-transform:uppercase; letter-spacing:.09em; transition:color .25s ease; }
.footer-back:hover { color:#fff; }
.footer-bottom { min-height:64px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid rgba(255,255,255,.07); color:rgba(255,255,255,.25); font-size:9px; letter-spacing:.04em; }

/* REVEAL */
.reveal { opacity:0; transform:translateY(32px); transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:.12s; }.reveal-delay-2 { transition-delay:.22s; }.reveal-delay-3 { transition-delay:.32s; }

/* ANIMATIONS */
@keyframes marquee { to { transform:translateX(-50%); } }
@keyframes orbit { to { transform:rotate(360deg); } }
@keyframes orbitReverse { to { transform:rotate(-360deg); } }
@keyframes orbitCentered { from { transform:translate(-50%,-50%) rotate(0deg); } to { transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes orbitCenteredReverse { from { transform:translate(-50%,-50%) rotate(0deg); } to { transform:translate(-50%,-50%) rotate(-360deg); } }
@keyframes pulse { 0%,100%{opacity:.65;transform:scale(1)} 50%{opacity:1;transform:scale(1.18)} }
@keyframes coreFloat { 0%,100%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-11px) rotate(1deg)} }
@keyframes chipFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
@keyframes watermarkFloat { 0%,100%{transform:translateY(0) rotate(-9deg)} 50%{transform:translateY(-18px) rotate(-6deg)} }
@keyframes heroDrift { 0%{transform:scale(1.04) translate3d(0,0,0)} 100%{transform:scale(1.09) translate3d(-1%,.6%,0)} }
@keyframes scan { 0%,100%{opacity:.1;transform:translateX(-70px)} 50%{opacity:.55;transform:translateX(95px)} }

/* RESPONSIVE */
@media (max-width:1120px) {
    .main-nav { gap:17px; font-size:12px; }
    .brand-logo { width:190px; }
    .hero-layout { grid-template-columns:1fr .72fr; gap:28px; }
    .hero-floating { width:min(100%,420px); }
    .section-heading { gap:42px; }
    .service-detail-grid { gap:55px; }
    .sectors-layout,.contact-layout { gap:55px; }
}

@media (max-width:920px) {
    :root { --header-height:78px; }
    .container { width:min(calc(100% - 36px),var(--container)); }
    .menu-toggle { display:block; }
    .main-nav { position:fixed; inset:0; height:100dvh; overflow-y:auto; -webkit-overflow-scrolling:touch; z-index:1001; padding:100px 10vw 60px; flex-direction:column; align-items:flex-start; justify-content:safe center; gap:26px; background:radial-gradient(circle at 75% 20%,rgba(17,146,154,.16),transparent 30%),var(--navy-1000); opacity:0; visibility:hidden; transform:translateY(-10px); transition:.3s ease; }
    .main-nav.open { opacity:1; visibility:visible; transform:none; }
    .main-nav > a:not(.nav-cta) { font-family:var(--font-display); font-size:clamp(28px,7vw,46px); font-weight:500; color:rgba(255,255,255,.78); letter-spacing:-.035em; }
    .nav-cta { margin-top:10px; }
    .hero { min-height:auto; }
    .hero-overlay { background:linear-gradient(90deg,rgba(2,13,24,.96),rgba(2,13,24,.82) 63%,rgba(2,13,24,.58)); }
    .hero-layout { grid-template-columns:1fr; padding-top:140px; padding-bottom:120px; }
    .hero-copy { max-width:750px; }
    .hero h1 { font-size:clamp(55px,11vw,88px); }
    .hero-floating { display:none; }
    .section { padding:100px 0; }
    .section-heading { grid-template-columns:1fr; gap:27px; margin-bottom:56px; }
    .intro-layout { grid-template-columns:1fr; gap:35px; }
    .capability-orbit { min-height:360px; }
    .business-grid { grid-template-columns:1fr; }
    .visual-break,.visual-break-content { min-height:650px; }
    .service-detail-grid { grid-template-columns:1fr; gap:48px; }
    .service-sticky { position:static; }
    .assistance-flow { grid-template-columns:1fr; }
    .flow-step { min-height:220px; }
    .value-grid { grid-template-columns:1fr; }


    .sectors-layout { grid-template-columns:1fr; }
    .sectors-copy { position:static; max-width:760px; }
    .method-track { grid-template-columns:repeat(2,1fr); row-gap:50px; }
    .method-track::before { display:none; }
    .team-photo-wrap { height:400px; }
    .contact-layout { grid-template-columns:1fr; }
    .footer-top { grid-template-columns:1fr 1fr; }.footer-top > p { grid-column:1 / -1; grid-row:2; padding-bottom:30px; }
}

@media (max-width:680px) {
    .container { width:min(calc(100% - 28px),var(--container)); }
    .brand-logo { width:168px; height:50px; }
    .hero-photo { background-position:62% center; }
    .hero-layout { padding-top:126px; padding-bottom:112px; }
    .hero h1 { font-size:clamp(47px,14vw,70px); }
    .hero-lead { font-size:15px; }
    .hero-actions { flex-direction:column; align-items:flex-start; gap:19px; }
    .btn { width:100%; }
    .hero-proof { grid-template-columns:1fr; gap:17px; }
    .hero-proof > div + div { border-left:0; border-top:1px solid rgba(255,255,255,.08); padding-left:0; padding-top:17px; }
    .hero-bottom-inner { min-height:58px; }.hero-bottom-inner span:first-child { font-size:7px; }.hero-bottom-line { display:none; }
    .section { padding:82px 0; }
    .section-heading h2,.service-sticky h2,.visual-break-card h2,.sectors-copy h2,.contact-copy h2 { font-size:clamp(38px,12vw,54px); }
    .large-copy { font-size:27px; }
    .capability-orbit { min-height:310px; transform:scale(.88); }
    .business-card { min-height:270px; padding:25px; }
    .visual-break,.visual-break-content { min-height:670px; }
    .visual-break-card { padding:28px 23px; }
    .detail-number { font-size:70px; }
    .process-card { grid-template-columns:36px 42px 1fr; gap:12px; }
    .process-card h3 { font-size:22px; }
    .reinsurance-map { min-height:680px; }
    .rn-center { top:48%; }
    .re-node-card { width:190px; }
    .rn-1 { left:5%; top:6%; }.rn-2 { right:4%; top:30%; }.rn-3 { right:8%; bottom:15%; }
    .sector-columns { grid-template-columns:1fr; }
    .method-track { grid-template-columns:1fr; }
    .team-grid { grid-template-columns:1fr; }
    .team-photo-wrap { height:430px; }
    .form-row { grid-template-columns:1fr; gap:0; }
    .contact-form { padding:23px 18px; }
    .footer-top { min-height:235px; grid-template-columns:1fr; gap:20px; padding:42px 0 34px; }
    .footer-top > p { grid-column:auto; grid-row:auto; padding-bottom:0; }.footer-back { justify-self:start; }
    .footer-bottom { min-height:82px; flex-direction:column; align-items:flex-start; justify-content:center; gap:7px; }
}

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