:root {
  --ink: #0c1424;
  --ink-2: #162236;
  --muted: #677286;
  --paper: #ffffff;
  --mist: #f4f6fa;
  --line: #e7ebf1;
  --gold: #f2ba7b;
  --blue: #75cce9;
  --radius: 19px;
  --container: 1160px;
}
*, *::before, *::after {box-sizing: border-box;}
html {scroll-behavior: smooth; scroll-padding-top: 90px;}
body {margin: 0; background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; font-size: 16px; line-height: 1.65;}
body, button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
svg { display: block; }
img { max-width: 100%; height: auto; display: block; }
::selection { background: #f2ba7b; color: #0c1424; }
:focus-visible { outline: 3px solid #f2ba7b; outline-offset: 4px; }
.container { width: min(var(--container), calc(100% - 72px)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 100; top: -100px; left: 20px; padding: 10px 16px; border-radius: 8px; background: #fff; color: var(--ink); }
.skip-link:focus { top: 16px; }

/* Header */
.site-header { position: relative; z-index: 30; background: #0c1424; border-bottom: 1px solid rgba(255,255,255,.10); }
.header-inner { min-height: 94px; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: 245px; color: white; }
.brand img { width: 65px; height: 59px; object-fit: contain; }
.brand-wordmark { display: flex; flex-direction: column; line-height: 1.04; gap: 7px; }
.brand-wordmark strong { font-size: 24px; font-weight: 760; letter-spacing: .045em; }
.brand-wordmark small { font-size: 9px; font-weight: 680; letter-spacing: .25em; color: #cdd6e4; white-space: nowrap; }
.header-actions { display: flex; align-items: center; gap: 33px; }
.main-nav { display: flex; align-items: center; gap: 31px; }
.main-nav a { color: #ced5e1; font-size: 13px; font-weight: 620; transition: color .2s ease; white-space: nowrap; }
.main-nav a:hover { color: white; }
.lang-switch { display: inline-flex; align-items: center; gap: 5px; padding: 5px; border: 1px solid rgba(255,255,255,.22); border-radius: 24px; }
.lang-btn { padding: 5px 9px; min-width: 32px; background: transparent; border: 0; border-radius: 16px; cursor: pointer; color: #a9b5c7; font-size: 11px; font-weight: 750; transition: .2s ease; }
.lang-btn.is-active { color: #142033; background: var(--gold); }
.lang-divider { width: 1px; height: 10px; background: rgba(255,255,255,.2); }
.menu-toggle { display:none; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; background: none; padding: 11px 10px; align-items: center; justify-content: center; flex-direction: column; gap: 5px; cursor: pointer; }
.menu-toggle span { display: block; height: 1.5px; width: 20px; background: #fff; border-radius: 4px; }

/* Hero */
.hero { overflow: hidden; isolation: isolate; position: relative; background: #0c1424; color: #fff; }
.hero-grid { position:absolute; inset:0; z-index:-1; opacity:.42; background-image: linear-gradient(rgba(255,255,255,.034) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.034) 1px, transparent 1px); background-size:64px 64px; mask-image: linear-gradient(90deg,transparent 2%,#000 72%); }
.hero-glow { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .2; pointer-events: none; z-index:-1; }
.hero-glow-one { width: 550px; height: 500px; right: 3%; top: 0; background: #2885a8; }
.hero-glow-two { width: 350px; height: 350px; left: 21%; bottom: -250px; background: #c77434; opacity: .13; }
.hero-layout { min-height: 645px; display: grid; grid-template-columns: 1.14fr 1fr; align-items: center; gap: 20px; padding-block: 84px 98px; }
.hero-content { position: relative; z-index: 3; }
.eyebrow { display: flex; align-items: center; gap: 11px; margin-bottom: 21px; color: #8a5a30; font-size: 11px; letter-spacing: .2em; font-weight: 780; line-height: 1.4; }
.eyebrow-line { display: inline-block; width: 27px; height: 2px; background: #df9c59; flex-shrink: 0; }
.eyebrow-light { color: var(--gold); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.15; }
h1 { margin-bottom: 27px; font-size: clamp(42px, 4.7vw, 69px); font-weight: 760; letter-spacing: -.057em; line-height: 1.115; }
.gradient-text { background: linear-gradient(100deg, #f4bb80 5%, #eec783 55%, #9fe0f2 100%); background-clip: text; color: transparent; }
.hero-lead { max-width: 555px; margin-bottom: 35px; color: #bfcbdc; font-size: 17px; line-height: 1.85; }
.hero-cta { display: flex; align-items: center; flex-wrap: wrap; gap: 13px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 15px; min-height: 52px; padding: 12px 22px; border-radius: 8px; border: 1px solid transparent; font-size: 13px; line-height: 1.2; font-weight: 730; transition: transform .22s, box-shadow .22s, background .22s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: #f1b879; color: #142033; box-shadow: 0 8px 28px rgba(242,186,123,.17); }
.button-primary:hover { background: #ffd099; box-shadow: 0 12px 30px rgba(242,186,123,.24); }
.button-outline { background: rgba(255,255,255,.025); color: #f2f5fa; border-color: rgba(255,255,255,.26); }
.button-outline:hover { background: rgba(255,255,255,.10); }
.hero-location { display: flex; align-items:center; gap: 9px; margin-top: 51px; font-size: 12px; letter-spacing: .025em; color: #9daec0; }
.location-dot { width: 7px; height: 7px; background: #68c9dc; border-radius: 50%; box-shadow: 0 0 0 4px rgba(104,201,220,.12); }
.hero-visual { display:flex; align-items:center; justify-content:center; min-width:0; }
.orbital-graphic { width: min(100%, 490px); aspect-ratio: 1; position:relative; }
.orbit { position:absolute; border:1px solid rgba(255,255,255,.095); border-radius:50%; inset: 2%; }
.orbit-two { inset: 14%; border-color: rgba(128,205,228,.19); border-style:dashed; animation: spin 65s linear infinite; }
.orbit-three { inset: 26%; border-color: rgba(244,184,115,.18); }
.orbit-one::after { content:""; position:absolute; width:13px; height:13px; border-radius:50%; background:#f4b574; top:11%; left:16%; box-shadow: 0 0 0 6px rgba(244,181,116,.10), 0 0 28px rgba(244,181,116,.4); }
.orbit-dot { position:absolute; width:5px; height:5px; border-radius:50%; background:#7abbd1; box-shadow:0 0 14px #7abbd1; }
.orbit-dot-a { right:10%; top:19%; }.orbit-dot-b { left:12%; bottom:22%; }.orbit-dot-c { right:28%; bottom:12%; background:#edb570; }
.visual-center { position:absolute; inset:26%; display:flex; align-items:center; justify-content:center; }
.visual-center-glow { position:absolute; inset: -13%; border-radius:50%; background: radial-gradient(circle,rgba(232,157,95,.20),rgba(64,159,190,.12) 42%,transparent 70%); }
.visual-center img { width:85%; max-width:210px; position:relative; filter: drop-shadow(0 15px 16px rgba(0,0,0,.24)); }
.visual-tag { position:absolute; display:flex; align-items:center; gap:9px; padding: 10px 13px; border:1px solid rgba(154,193,212,.20); border-radius: 8px; background:rgba(22,35,53,.76); backdrop-filter: blur(12px); color:#d6e0ea; font-size:10px; font-weight:750; letter-spacing:.14em; box-shadow: 0 8px 30px rgba(0,0,0,.15); }
.visual-tag-a { top: 16%; left: -3%; }.visual-tag-b { right: -1%; top: 40%; }.visual-tag-c { bottom: 14%; left: 5%; }
.tag-point { width:6px; height:6px; border-radius:50%; background:#f3b576; }
.visual-tag-b .tag-point { background:#82d4eb; }.visual-tag-c .tag-point { background:#c6a6ef; }
.hero-bottom-line { height:3px; background: linear-gradient(90deg,#2c91b1, #f7c77e 48%, #db8b5d 75%, transparent); opacity:.85; }
@keyframes spin { to { transform:rotate(360deg); } }

/* General sections */
.section { padding-block: 108px; }
h2 { font-size:clamp(34px,3.6vw,49px); font-weight:750; letter-spacing: -.045em; }
.section-lead { color:#1d293b; font-size:19px; line-height:1.78; font-weight:510; }
.about-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 110px; }
.about h2 { margin-bottom:0; }
.about-content { padding-top: 28px; }
.about-content > p:not(.section-lead) { color:var(--muted); line-height:1.86; font-size:15px; margin-bottom:28px; }
.about-pills { display:flex; flex-wrap:wrap; gap:9px; }
.about-pills span { font-size: 11px; line-height:1.3; font-weight:730; color:#344359; padding:10px 13px; border:1px solid #e5eaf0; border-radius: 30px; background: #f9fafc; }

/* Sectors */
.sectors { background: var(--mist); }
.section-heading-centered { text-align:center; max-width:720px; margin: 0 auto 51px; }
.section-heading-centered .eyebrow { justify-content:center; }
.section-heading-centered h2 { margin-bottom:19px; }
.section-heading-centered p { color:var(--muted); line-height:1.8; max-width:620px; margin:0 auto; font-size:15px; }
.sector-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.sector-card { position:relative; min-height:287px; padding:31px 29px 30px; border:1px solid #e7eaf1; border-radius:var(--radius); background:white; overflow:hidden; transition:transform .25s, box-shadow .25s, border-color .25s; }
.sector-card:hover { transform: translateY(-5px); box-shadow: 0 18px 34px rgba(19,38,69,.075); border-color:#d8e0eb; }
.sector-icon { width:57px; height:57px; border-radius:14px; display:flex; align-items:center; justify-content:center; margin-bottom:29px; background:#e8f7fc; color:#309bc1; }
.sector-icon svg { width:34px; height:34px; }
.sector-index { position:absolute; top:32px; right:29px; font-size:12px; color:#a6afbc; font-weight:700; font-variant-numeric:tabular-nums; letter-spacing:.09em; }
.sector-card h3 { font-size:19px; letter-spacing:-.025em; font-weight:730; margin-bottom:12px; }
.sector-card p { margin:0; font-size:14px; line-height:1.75; color:var(--muted); max-width: 330px; }
.card-bottom-accent { position:absolute; bottom:0; left:29px; height:3px; width:59px; border-radius:4px 4px 0 0; background:#58b8dc; }
.sector-card-orange .sector-icon { background:#fff2e2; color:#d68a3a; }.sector-card-orange .card-bottom-accent {background:#e9b16f;}
.sector-card-purple .sector-icon { background:#f1edfc; color:#8e75c4; }.sector-card-purple .card-bottom-accent {background:#9a82cc;}
.sector-card-pink .sector-icon { background:#fff0f3; color:#d77e99; }.sector-card-pink .card-bottom-accent {background:#dc8ca1;}
.sector-card-green .sector-icon { background:#e9f7f3; color:#55a78d; }.sector-card-green .card-bottom-accent {background:#63b99b;}
.sector-card-wide { grid-column:span 2; display:flex; flex-direction:column; }
.sector-card-wide .wide-card-copy { max-width:540px; }
.sector-card-wide p { max-width:510px; }

/* Approach */
.approach { background: #111d2e; color:white; padding-block:95px; position:relative; overflow:hidden; }
.approach::before { content:""; width:600px; height:600px; border-radius:50%; position:absolute; right:-290px; top:-270px; border:1px solid rgba(255,255,255,.055); box-shadow:0 0 0 85px rgba(255,255,255,.015),0 0 0 175px rgba(255,255,255,.014); pointer-events:none; }
.approach-layout { position:relative; display:grid; grid-template-columns:1.07fr .93fr; gap:115px; align-items:center; }
.approach-heading h2 { margin-bottom:23px; max-width:540px; }
.approach-heading p { font-size:15px; line-height:1.85; color:#b6c3d2; max-width:515px; margin-bottom:26px; }
.text-link { display:inline-flex; align-items:center; gap:14px; color:#f6c58d; font-size:14px; font-weight:700; border-bottom:1px solid rgba(246,197,141,.5); padding-bottom:4px; }
.text-link:hover { color:#fff; }
.approach-step { display:flex; gap:24px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.13); }
.approach-step:first-child { padding-top:0; }.approach-step:last-child { border-bottom:0; padding-bottom:0; }
.approach-step > span { font-weight:750; font-size:13px; letter-spacing:.04em; color:#ecb47b; padding-top:3px; }
.approach-step h3 { font-size:18px; margin:0 0 7px; letter-spacing:-.015em; }
.approach-step p { color:#aab9c8; font-size:14px; line-height:1.7; margin:0; }

/* Contact */
.contact-layout { display:grid; grid-template-columns: .85fr 1fr; gap:110px; align-items:center; }
.contact-intro h2 { max-width:475px; margin-bottom:25px; }
.contact-intro p { color:var(--muted); font-size:15px; line-height:1.88; max-width:430px; margin-bottom:30px; }
.button-dark { background:#152238; color:#fff; }.button-dark:hover { background:#263e5e; box-shadow:0 12px 28px rgba(13,29,48,.15); }
.contact-card { padding:31px 38px 24px; background:#f7f9fc; border:1px solid #e8ecf2; border-radius: 21px; box-shadow: 0 16px 46px rgba(15,36,69,.04); }
.contact-card-top { display:flex; gap:13px; align-items:center; padding-bottom:22px; margin-bottom:9px; border-bottom:1px solid #e2e8f0; }
.contact-card-top img { width:54px; height:49px; object-fit:contain; }
.contact-card-top span { font-size:13px; font-weight:780; letter-spacing:.04em; }
.contact-detail { display:flex; gap:16px; padding:22px 0; border-bottom:1px solid #e2e8f0; }
.contact-detail:last-child { border-bottom:0; padding-bottom:3px; }
.detail-icon { width:37px; height:37px; display:flex; justify-content:center; align-items:center; border-radius:10px; background:white; border:1px solid #e7ebf1; color:#ba8552; flex-shrink:0; }
.detail-icon svg { width:20px; height:20px; }
.contact-detail h3 { margin: 0 0 3px; color:#7a8797; font-size:11px; letter-spacing:.07em; font-weight:750; text-transform:uppercase; }
.contact-detail a, .contact-detail address { font-size:15px; font-style:normal; font-weight:580; line-height:1.7; overflow-wrap:anywhere; }
.contact-detail a:hover { color:#a66d38; }
.contact-detail .sub-link { display:inline-block; margin-top:6px; color:#8c5c35; font-size:12px; font-weight:730; }

/* Footer */
.site-footer { color:#bfc9d6; background:#0b1422; padding-top:29px; }
.footer-top { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:26px; }
.footer-brand { display:flex; align-items:center; gap:11px; }
.footer-brand img { width:46px; height:42px; object-fit:contain; }
.footer-brand div { display:flex; flex-direction:column; gap:3px; }
.footer-brand strong { color:white; font-size:12px; letter-spacing:.04em; }
.footer-brand small { font-size:11px; color:#8c9aab; }
.back-top { display:inline-flex; gap:14px; font-size:12px; font-weight:650; color:#d8e0eb; align-items:center; }
.back-top:hover { color:#f3b980; }
.back-top span:last-child { font-size:19px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.105); display:flex; justify-content:space-between; gap:16px; padding-block:20px 27px; font-size:11px; color:#8796a9; }

@media (max-width: 1050px) {
  .header-actions { gap:19px; }.main-nav { gap:17px; }
  .brand { min-width:215px; }.brand-wordmark strong { font-size:21px; }
  .hero-layout { grid-template-columns:1.2fr 1fr; }
  h1 { font-size:clamp(42px,5.2vw,60px); }
  .about-grid, .approach-layout, .contact-layout { gap:65px; }
  .visual-tag-a { left:-4%; }.visual-tag-b { right:-5%; }
}
@media (max-width: 800px) {
  .container { width:min(var(--container),calc(100% - 42px)); }
  .header-inner { min-height:78px; }
  .brand img { width:52px; height:47px; }.brand-wordmark strong {font-size:20px;}.brand-wordmark small {font-size:8px;}
  .menu-toggle { display:flex; }
  .header-actions { display:none; position:absolute; top:100%; left:0; right:0; padding:24px 21px; align-items:flex-start; flex-direction:column; gap:20px; border-top:1px solid rgba(255,255,255,.1); background:#101c2e; box-shadow:0 20px 26px rgba(0,0,0,.15); }
  .header-actions.is-open { display:flex; }
  .main-nav { display:flex; flex-direction:column; align-items:flex-start; gap:17px; }
  .main-nav a { font-size:15px; }
  .hero-layout { min-height:unset; padding-block:80px 70px; grid-template-columns:1fr; }
  .hero-content { max-width:670px; }
  .hero-visual { margin: 0 auto; width:min(100%,450px); }
  .hero-location { margin-top:32px; }
  .about-grid,.approach-layout,.contact-layout { grid-template-columns:1fr; gap:34px; }
  .about-content { padding-top:0; }
  .section { padding-block:80px; }
  .approach { padding-block:80px; }
  .sector-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sector-card-wide { grid-column:span 2; }
  .contact-intro h2 { max-width:620px; }
  .contact-card { max-width:680px; width:100%; }
}
@media (max-width: 560px) {
  .container { width:calc(100% - 38px); }
  .hero-layout { padding-block:66px 50px; gap:10px; }
  .hero-content h1 { font-size: clamp(37px,10vw,51px); margin-bottom:22px; }
  .hero-lead {font-size:15px; line-height:1.75; margin-bottom:26px; }
  .hero-cta { align-items:stretch; gap:10px; }.hero-cta .button { width:100%; }
  .hero-visual { width:min(100%,370px); }
  .visual-tag { padding:7px 8px; font-size:8px; }.visual-tag-a { left:-1%; }.visual-tag-b { right:-1%; }.visual-tag-c { left:7%; }
  .hero-location { font-size:11px; }
  .section { padding-block:67px; }
  h2 { font-size:clamp(32px,8.2vw,41px); }
  .about-content .section-lead { font-size:17px; }
  .section-heading-centered { margin-bottom:31px; }
  .sector-grid { grid-template-columns:1fr; gap:14px; }
  .sector-card { min-height:260px; padding:26px; }.sector-icon { margin-bottom:24px; }
  .sector-card-wide { grid-column:span 1; }
  .approach { padding-block:67px; }
  .contact-card { padding:26px 22px 22px; }
  .contact-card-top span { font-size:11px; }
  .contact-detail a,.contact-detail address { font-size:14px; }
  .footer-top { align-items:flex-start; }.footer-brand strong { font-size:10px; }
  .footer-bottom { flex-direction:column; gap:6px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; } }
