@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap');

:root {
  --ink: #081b2a;
  --ink-2: #123246;
  --paper: #f6f2e9;
  --white: #ffffff;
  --muted: #62717c;
  --line: rgba(8, 27, 42, 0.14);
  --aqua: #7ed4d2;
  --aqua-2: #b7e8e2;
  --sand: #d6b77c;
  --shadow: 0 22px 60px rgba(8, 27, 42, 0.12);
  --radius: 24px;
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--ink);
  background: #fbfaf7;
  line-height: 1.6;
}
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.home-page main .container { width:min(calc(100% - 192px),var(--max)); }
.section { padding: 96px 0; }
.section-sm { padding: 68px 0; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em;
  color: var(--ink-2);
}
.eyebrow::before { content: ''; width: 28px; height: 1px; background: currentColor; }
.display, h1, h2, h3 { font-family: 'Lora', Georgia, serif; font-optical-sizing:auto; font-weight:400; line-height:1.1; }
h1 { font-size: clamp(50px, 8vw, 116px); margin: 18px 0 26px; letter-spacing: -.03em; }
h2 { font-size: clamp(38px, 5.4vw, 70px); margin: 14px 0 24px; letter-spacing: -.025em; }
h3 { font-size: clamp(24px, 3vw, 36px); margin: 0 0 12px; }
p { margin: 0 0 20px; }
.lead { font-size: clamp(18px, 2vw, 23px); line-height: 1.55; color: #274354; max-width: 760px; }
.muted { color: var(--muted); }

/* Header */
.site-header { position: fixed; top: 0; z-index: 50; width: 100%; transition: .3s ease; color: #fff; }
.site-header.scrolled { background: rgba(8,27,42,.94); backdrop-filter: blur(18px); box-shadow: 0 6px 25px rgba(0,0,0,.14); }
.header-inner { min-height:132px; display:flex; align-items:center; justify-content:space-between; gap:26px; }
.logo { display: inline-flex; align-items: center; gap: 12px; min-width: 190px; }
.logo-mark {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  object-fit: contain;
  border-radius: 50%;
  padding: 3px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 4px 18px rgba(0,0,0,.18);
}
.logo-text strong { display: block; letter-spacing: .08em; font-size: 15px; }
.logo-text span { display:block; font-size: 10px; opacity: .72; letter-spacing: .15em; text-transform: uppercase; }
.site-header .logo { gap:24px; min-width:360px; }
.site-header .logo-mark { width:104px; height:104px; flex-basis:104px; padding:6px; }
.site-header .logo-text strong { font-size:30px; }
.site-header .logo-text span { font-size:16px; letter-spacing:.08em; white-space:nowrap; }
.nav { display: flex; align-items: center; gap: 26px; margin-left: auto; }
.nav-item { position: relative; }
.nav > .nav-item > a, .nav > a { font-size:13px; font-weight:600; letter-spacing:.02em; display:inline-flex; align-items:center; gap:6px; padding:50px 0; }
.nav a:hover { color: var(--aqua-2); }
.dropdown { position: absolute; top: calc(100% - 8px); left: -28px; width: 280px; padding: 14px; border-radius: 16px; background: #fff; color: var(--ink); box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translateY(10px); transition: .2s ease; }
.nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)) > .dropdown { width:340px; padding:10px; counter-reset:service-menu; }
.nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)) > .dropdown a {
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:8px 10px;
  border-bottom:1px solid #dfe8eb;
  border-radius:0;
  line-height:1.35;
  transition:background .18s ease,color .18s ease,padding-left .18s ease;
}
.nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)) > .dropdown a:last-child { border-bottom:0; }
.nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)) > .dropdown a::before {
  counter-increment:service-menu;
  content:counter(service-menu,decimal-leading-zero);
  width:26px;
  height:26px;
  border:1px solid #c8dcdf;
  border-radius:50%;
  background:#eef7f5;
  color:#17606d;
  display:grid;
  place-items:center;
  font-size:9px;
  font-weight:800;
  letter-spacing:.04em;
}
.nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)) > .dropdown a:hover {
  padding-left:13px;
  border-radius:8px;
  background:#e5f3f1;
}
.dropdown a { display:block; padding: 10px 12px; border-radius: 9px; font-size: 13px; }
.dropdown a:hover { background: #edf8f6; color: var(--ink); }
.nav-item:hover .dropdown { opacity:1; visibility:visible; transform: translateY(0); }
.header-actions { display:flex; align-items:center; gap:10px; }
.icon-btn, .menu-btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff; display:grid; place-items:center; }
.icon-btn:hover, .menu-btn:hover { background: rgba(255,255,255,.1); }
.lang { border:0; background:transparent; color:inherit; font-size:12px; font-weight:700; padding:10px 8px; }
.lang:hover { color:var(--aqua-2); }
.lang:focus-visible { outline:2px solid var(--aqua-2); outline-offset:3px; border-radius:6px; }
.menu-btn { display:none; }
.submenu-toggle { display:none; }
#industries, [id^="industry-"], .card[id] { scroll-margin-top: 152px; }

/* Hero */
.hero { min-height: 100vh; color: #fff; position: relative; display:flex; align-items:flex-end; overflow:hidden; background:
    radial-gradient(circle at 78% 14%, rgba(126,212,210,.42), transparent 25%),
    radial-gradient(circle at 30% 78%, rgba(214,183,124,.20), transparent 26%),
    linear-gradient(125deg,#071823 0%,#0a3444 48%,#0e6670 100%); }
.hero::before { content:''; position:absolute; inset:0; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 60px 60px; mask-image: linear-gradient(to bottom,black,transparent 88%); }
.hero::after { content:''; width: min(60vw, 770px); aspect-ratio: 1; position:absolute; right:-12vw; top:8vh; border:1px solid rgba(255,255,255,.14); border-radius: 50%; box-shadow: 0 0 0 72px rgba(255,255,255,.028), 0 0 0 144px rgba(255,255,255,.018); }
.hero-content { position:relative; z-index:2; padding: 170px 0 92px; width:100%; }
.hero-grid { display:grid; grid-template-columns: 1.45fr .55fr; gap: 48px; align-items:end; }
.hero h1 span { color: var(--aqua-2); }
.hero .lead { color: rgba(255,255,255,.78); }
.hero-kicker { max-width: 360px; border-left: 1px solid rgba(255,255,255,.28); padding-left: 28px; margin-bottom: 10px; }
.hero-kicker strong { font-family:'Lora',Georgia,serif; font-size:33px; font-weight:400; display:block; margin-bottom:8px; }
.hero-cta { display:flex; gap:14px; flex-wrap:wrap; margin-top: 36px; }
.btn { min-height: 50px; padding: 0 22px; display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius: 999px; border:1px solid transparent; font-size:13px; font-weight:700; transition:.2s ease; }
.btn-primary { background: var(--aqua); color: var(--ink); }
.btn-primary:hover { background:#9ce2df; transform:translateY(-1px); }
.btn-outline { border-color: rgba(255,255,255,.45); color:#fff; }
.btn-outline:hover { background:#fff; color:var(--ink); }
.btn-dark { background:var(--ink); color:#fff; }
.btn-dark:hover { background:#174359; }
.hero-index { margin-top: 70px; display:grid; grid-template-columns: repeat(4,1fr); border-top:1px solid rgba(255,255,255,.18); }
.hero-index a { padding:22px 18px 0 0; font-size:12px; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.64); }
.hero-index a span { display:block; margin-top:6px; color:#fff; text-transform:none; font-size:14px; letter-spacing:0; }

/* Intro */
.intro-grid { display:grid; grid-template-columns: .72fr 1.28fr; gap: 70px; align-items:start; }
.stat-row { margin-top:44px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.stat { padding:26px 28px 0 0; border-right:1px solid var(--line); }
.stat:last-child { border-right:0; padding-left:28px; }
.stat:nth-child(2) { padding-left:28px; }
.stat strong { font-family:'Lora',Georgia,serif; font-size:46px; font-weight:400; display:block; line-height:1; }
.stat span { font-size:12px; color:var(--muted); }

/* services */
.services-shell { background:var(--ink); color:#fff; }
.services-shell .eyebrow { color:var(--aqua-2); }
.services-head { display:grid; grid-template-columns: 1fr .65fr; gap:55px; align-items:end; }
.services-head p { color:rgba(255,255,255,.66); }
.service-list { margin-top: 54px; border-top:1px solid rgba(255,255,255,.18); }
.service-row { display:grid; grid-template-columns: 72px 1fr 2fr 48px; align-items:center; gap:22px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.14); transition:.25s; }
.service-row:hover { padding-left:12px; background:linear-gradient(90deg,rgba(126,212,210,.08),transparent); }
.service-no { font-size:11px; color:rgba(255,255,255,.42); }
.service-name { font-family:'Lora',Georgia,serif; font-size:28px; }
.service-desc { color:rgba(255,255,255,.62); font-size:14px; }
.arrow { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.24); }

/* industry cards */
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; }
.card { min-height:285px; padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; display:flex; flex-direction:column; justify-content:space-between; transition:.25s; overflow:hidden; position:relative; }
.card::after { content:''; width:150px; height:150px; border:1px solid rgba(126,212,210,.55); border-radius:50%; position:absolute; right:-54px; bottom:-54px; transition:.3s; }
.card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.card:hover::after { transform:scale(1.25); }
.card-top { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.card small { text-transform:uppercase; letter-spacing:.11em; color:var(--muted); font-size:10px; }
.card p { color:var(--muted); font-size:14px; max-width:88%; }

/* quote */
.quote-band { background:var(--paper); }
.quote-wrap { display:grid; grid-template-columns: .45fr 1fr; gap:64px; align-items:center; }
.portrait { min-height:560px; border-radius:var(--radius); overflow:hidden; background:
 radial-gradient(circle at 60% 22%, rgba(255,255,255,.34), transparent 22%),
 linear-gradient(145deg,#547a82,#163c50 62%,#091d2a); position:relative; }
.portrait-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; }
.portrait::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(3,20,31,.48),transparent 48%); pointer-events:none; }
.portrait-label { position:absolute; z-index:2; left:28px; right:28px; bottom:28px; padding:18px; border:1px solid rgba(255,255,255,.32); background:rgba(8,27,42,.58); backdrop-filter:blur(8px); color:#fff; border-radius:14px; }
.quote { font-family:'Lora',Georgia,serif; font-size:clamp(34px,4.2vw,62px); line-height:1.18; letter-spacing:-.02em; }
.quote-featured { font-size:clamp(29px,3.25vw,46px); line-height:1.22; }
.quote::before { content:'“'; color:var(--aqua); }
.quote-meta { margin-top:30px; border-top:1px solid var(--line); padding-top:22px; display:flex; justify-content:space-between; gap:20px; }

/* insights */
.insight-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:22px; margin-top:42px; }
.insight-feature { min-width:0; min-height:550px; border-radius:var(--radius); background:linear-gradient(145deg,#0b3142,#168291); color:#fff; padding:34px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.insight-feature::after { content:''; position:absolute; width:370px; height:370px; right:-110px; top:50px; border-radius:50%; border:1px solid rgba(255,255,255,.22); box-shadow:0 0 0 60px rgba(255,255,255,.04),0 0 0 120px rgba(255,255,255,.02); }
.insight-feature > * { position:relative; z-index:2; }
.tag { display:inline-flex; border:1px solid currentColor; border-radius:999px; padding:7px 11px; font-size:10px; text-transform:uppercase; letter-spacing:.1em; width:max-content; }
.insight-feature h3 { font-size:46px; max-width:760px; }
.insight-stack { min-width:0; display:grid; gap:14px; }
.insight-item { min-width:0; background:#fff; border:1px solid var(--line); border-radius:18px; padding:24px; min-height:168px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; }
.insight-feature h3, .insight-item h3 { overflow-wrap:anywhere; }
.insight-item h3 { font-size:25px; }
.insight-item time { font-size:11px; color:var(--muted); white-space:nowrap; }

/* cta */
.cta { background:var(--ink); color:#fff; overflow:hidden; position:relative; }
.cta::after { content:''; position:absolute; width:600px; height:600px; border-radius:50%; border:1px solid rgba(126,212,210,.24); right:-170px; top:-280px; box-shadow:0 0 0 85px rgba(126,212,210,.04),0 0 0 170px rgba(126,212,210,.025); }
.cta-inner { position:relative; z-index:2; display:grid; grid-template-columns:1fr auto; gap:36px; align-items:end; }
.cta p { color:rgba(255,255,255,.67); max-width:650px; }

/* Footer */
.footer { background:#06131d; color:#fff; padding:72px 0 28px; }
.footer-grid { display:grid; grid-template-columns:1.25fr .58fr .58fr 1.45fr; gap:44px; }
.footer .logo { margin-bottom:24px; }
.footer p, .footer a { color:rgba(255,255,255,.62); font-size:13px; }
.footer a:hover { color:#fff; }
.footer h4 { margin:0 0 18px; font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--aqua-2); }
.footer-links { display:grid; gap:9px; }
.footer-office { min-width:0; }
.footer-office-layout { display:grid; grid-template-columns:minmax(0,.95fr) minmax(140px,1.05fr); gap:16px; align-items:start; }
.footer-office-details p:first-child { margin-top:0; }
.footer-map { min-height:176px; overflow:hidden; border:1px solid rgba(255,255,255,.16); border-radius:12px; background:rgba(255,255,255,.06); box-shadow:0 14px 34px rgba(0,0,0,.16); }
.footer-map iframe { display:block; width:100%; height:176px; border:0; }
.footer-bottom { margin-top:58px; padding-top:22px; border-top:1px solid rgba(255,255,255,.11); display:flex; justify-content:space-between; gap:20px; font-size:11px; color:rgba(255,255,255,.5); }

/* Inner pages */
.page-hero { min-height:560px; color:#fff; display:flex; align-items:flex-end; background:
 radial-gradient(circle at 80% 20%, rgba(126,212,210,.32), transparent 26%),
 linear-gradient(130deg,#071925,#0d4859 70%,#127382); position:relative; overflow:hidden; }
.page-hero::after { content:''; position:absolute; width:520px; height:520px; border:1px solid rgba(255,255,255,.15); border-radius:50%; right:-90px; bottom:-280px; box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.02); }
.page-hero .container { position:relative; z-index:2; padding-bottom:75px; padding-top:160px; }
.page-hero h1 { font-size:clamp(52px,8vw,96px); margin-bottom:15px; }
.page-hero .lead { color:rgba(255,255,255,.7); }
.breadcrumb { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.6); }

.split { display:grid; grid-template-columns:.72fr 1.28fr; gap:72px; }
.prose { max-width:820px; }
.prose p { color:#465c69; font-size:17px; }
.prose h3 { margin-top:38px; }
.check-list { list-style:none; padding:0; margin:24px 0; display:grid; gap:14px; }
.check-list li { display:grid; grid-template-columns:24px 1fr; gap:10px; color:#355061; }
.check-list li::before { content:'↗'; width:22px; height:22px; border-radius:50%; background:#daf2ef; display:grid; place-items:center; font-size:11px; color:var(--ink); }

.filter-bar { display:flex; gap:8px; flex-wrap:wrap; margin:30px 0 42px; }
.filter-btn { border:1px solid var(--line); background:#fff; border-radius:999px; padding:10px 15px; font-size:12px; color:#415969; }
.filter-btn.active, .filter-btn:hover { background:var(--ink); color:#fff; border-color:var(--ink); }

.team-section h2 { max-width:760px; }
.people-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
.person { display:flex; flex-direction:column; min-width:0; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:#fff; box-shadow:0 14px 38px rgba(8,35,48,.06); }
.person-photo { height:340px; flex:0 0 auto; background:linear-gradient(150deg,#dce9e7,#3e6b76 54%,#0d2a39); position:relative; overflow:hidden; }
.person-photo--image img { width:100%; height:100%; display:block; object-fit:cover; object-position:center 24%; }
.person-photo--image::after { content:''; position:absolute; inset:auto 0 0; height:38%; background:linear-gradient(180deg,transparent,rgba(4,27,40,.28)); }
.person-photo--initials { display:grid; place-items:center; isolation:isolate; }
.person-photo--initials::before { content:attr(data-initials); position:relative; z-index:2; color:rgba(255,255,255,.92); font-family:'Lora',Georgia,serif; font-size:86px; letter-spacing:.04em; }
.person-photo--initials::after { content:''; width:225px; height:225px; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.28); border-radius:50%; box-shadow:0 0 0 38px rgba(255,255,255,.045),0 0 0 76px rgba(255,255,255,.025); }
.person-info { display:flex; flex:1; flex-direction:column; padding:24px; }
.person-info h3 { font-size:27px; margin-bottom:5px; }
.person-info .person-role { display:block; color:#17606b; font-size:12px; font-weight:700; line-height:1.5; }
.person-bio { margin:17px 0 0; color:var(--muted); font-size:13px; line-height:1.7; }
.person-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:auto; padding-top:20px; }
.person-tags span { padding:6px 9px; border-radius:999px; background:#eaf4f2; color:#235766; font-size:10px; font-weight:700; line-height:1.3; }

.article-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.article-card { border:1px solid var(--line); background:#fff; border-radius:20px; padding:24px; min-height:320px; display:flex; flex-direction:column; }
.article-card h3 { font-size:28px; margin:18px 0; }
.article-card p { color:var(--muted); font-size:14px; }
.article-card .meta { margin-top:auto; padding-top:18px; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-size:11px; color:var(--muted); }

/* Legal article */
.article-page-hero { min-height:700px; }
.article-page-hero .container { padding-bottom:110px; }
.article-page-hero h1 { max-width:1120px; margin-top:22px; font-size:clamp(46px,6vw,78px); line-height:1.08; }
.article-page-hero .lead { max-width:880px; }
.article-hero-tag { display:inline-flex; margin-top:28px; padding:8px 13px; border:1px solid rgba(255,255,255,.28); border-radius:999px; color:var(--aqua-2); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.article-hero-meta { display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:28px; color:rgba(255,255,255,.62); font-size:12px; }
.article-hero-meta span + span::before { content:'•'; margin-right:28px; color:var(--aqua-2); }
.article-feature { background:var(--paper); }
.article-feature .container { position:relative; z-index:3; transform:translateY(-58px); margin-bottom:-58px; }
.article-feature-image { margin:0; overflow:hidden; border-radius:24px; background:#dfe7e6; box-shadow:0 28px 80px rgba(5,28,40,.22); }
.article-feature-image img { width:100%; aspect-ratio:16/9; display:block; object-fit:cover; }
.article-body { background:var(--paper); }
.article-layout { display:grid; grid-template-columns:minmax(0,820px) minmax(260px,1fr); gap:76px; align-items:start; }
.article-content { min-width:0; }
.article-content .article-intro { margin-bottom:48px; padding-bottom:36px; border-bottom:1px solid var(--line); color:#17394b; font-family:'Lora',Georgia,serif; font-size:24px; line-height:1.55; }
.article-content h2 { margin:54px 0 18px; font-size:clamp(34px,4vw,48px); }
.article-content h3 { margin:38px 0 14px; font-size:28px; line-height:1.3; }
.article-content p, .article-content li { color:#375363; font-size:17px; line-height:1.82; }
.article-content ul { margin:22px 0 0; padding-left:22px; }
.article-content li + li { margin-top:10px; }
.article-inline-image { margin:48px 0 56px; }
.article-inline-image img { width:100%; display:block; border-radius:20px; box-shadow:0 18px 48px rgba(7,33,46,.16); }
.article-inline-image figcaption { margin-top:14px; color:var(--muted); font-size:12px; line-height:1.6; }
.article-conclusion { margin-top:56px; padding:34px; border-radius:22px; background:var(--ink); color:#fff; }
.article-conclusion .eyebrow { color:var(--aqua-2); }
.article-conclusion h2 { margin:12px 0 16px; color:#fff; }
.article-conclusion p { margin:0; color:rgba(255,255,255,.76); }
.legal-basis { margin-top:34px; padding:32px 34px; border-left:4px solid var(--aqua); border-radius:0 20px 20px 0; background:#eaf4f2; }
.legal-basis h2 { margin:10px 0 16px; font-size:38px; }
.article-disclaimer { margin-top:34px; padding-top:24px; border-top:1px solid var(--line); color:var(--muted) !important; font-size:13px !important; }
.article-aside { position:sticky; top:154px; padding:30px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 18px 50px rgba(8,35,48,.08); }
.article-aside h3 { margin:13px 0 15px; font-size:28px; }
.article-aside > p { color:var(--muted); font-size:14px; line-height:1.7; }
.article-aside-facts { margin:26px 0; border-top:1px solid var(--line); }
.article-aside-facts div { display:grid; gap:5px; padding:15px 0; border-bottom:1px solid var(--line); }
.article-aside-facts strong { font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.article-aside-facts span { color:#49616f; font-size:13px; line-height:1.5; }
.article-aside .btn { width:100%; }

.job { border-top:1px solid var(--line); display:grid; grid-template-columns:1.1fr 1.6fr auto; gap:30px; padding:28px 0; align-items:center; }
.job h3 { font-size:28px; }
.job p { color:var(--muted); font-size:14px; margin:0; }

.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; }
.contact-card { background:var(--ink); color:#fff; border-radius:var(--radius); padding:34px; min-height:100%; }
.contact-card p { color:rgba(255,255,255,.64); }
.contact-line { padding:18px 0; border-top:1px solid rgba(255,255,255,.14); }
.contact-line strong { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.11em; color:var(--aqua-2); margin-bottom:5px; }
.form { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
.field label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; color:#435866; }
.field input, .field textarea, .field select { width:100%; border:1px solid var(--line); background:#fff; border-radius:12px; padding:14px 15px; outline:none; color:var(--ink); }
.field textarea { min-height:150px; resize:vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color:#4aa6a6; box-shadow:0 0 0 3px rgba(126,212,210,.18); }
.form-note { grid-column:1/-1; font-size:11px; color:var(--muted); }
.success { display:none; grid-column:1/-1; padding:14px 16px; background:#e1f5f1; border-radius:12px; color:#15554f; font-size:13px; }
.success.show { display:block; }
.form-error { display:none; grid-column:1/-1; padding:14px 16px; background:#fff1f0; border:1px solid #f0c8c3; border-radius:12px; color:#8a2f27; font-size:13px; }
.form-error.show { display:block; }
.form button[disabled] { opacity:.65; cursor:not-allowed; }

/* Search */
.search-panel { position:fixed; inset:0; z-index:80; background:rgba(6,19,29,.93); backdrop-filter:blur(14px); opacity:0; visibility:hidden; transition:.25s; }
.search-panel.open { opacity:1; visibility:visible; }
.search-wrap { width:min(calc(100% - 40px),900px); margin:0 auto; padding-top:18vh; color:#fff; }
.search-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:34px; }
.search-input { width:100%; border:0; border-bottom:1px solid rgba(255,255,255,.3); background:transparent; color:#fff; font-family:'Lora',Georgia,serif; font-size:clamp(36px,6vw,68px); padding:15px 0; outline:none; }
.search-input::placeholder { color:rgba(255,255,255,.35); }
.search-results { margin-top:28px; display:grid; gap:10px; }
.search-results a { border-bottom:1px solid rgba(255,255,255,.12); padding:12px 0; color:rgba(255,255,255,.78); }

/* mobile */
@media (max-width: 1020px) {
  #industries, [id^="industry-"], .card[id] { scroll-margin-top: 116px; }
  .home-page main .container { width:min(calc(100% - 96px),var(--max)); }
  .header-inner { min-height:100px; }
  .site-header .logo { min-width:0; gap:16px; }
  .site-header .logo-mark { width:72px; height:72px; flex-basis:72px; padding:4px; }
  .site-header .logo-text strong { font-size:22px; }
  .site-header .logo-text span { font-size:11px; }
  .site-header.mobile-menu-open {
    background:rgba(6,25,37,.98);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .nav {
    position:fixed;
    inset:100px 0 0;
    display:block;
    margin:0;
    padding:24px max(24px,calc((100vw - 760px) / 2)) calc(48px + env(safe-area-inset-bottom));
    background:linear-gradient(155deg,#061925 0%,#0a2d3d 72%,#0b3c48 100%);
    border-top:1px solid rgba(255,255,255,.1);
    box-shadow:-18px 28px 50px rgba(0,0,0,.24);
    overflow-y:auto;
    overscroll-behavior:contain;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px);
    transition:transform .3s ease,opacity .25s ease,visibility .3s;
  }
  .nav.open { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
  .nav > .nav-item, .nav > a { position:relative; border-bottom:1px solid rgba(255,255,255,.12); }
  .nav > .nav-item > a, .nav > a {
    width:100%;
    min-height:64px;
    padding:16px 56px 16px 2px;
    border:0;
    font-family:'Lora',Georgia,serif;
    font-size:clamp(24px,4.8vw,30px);
    line-height:1.25;
  }
  .nav > a { display:flex; align-items:center; padding-right:2px; }
  .nav-item > a > span { display:none; }
  .submenu-toggle {
    position:absolute;
    z-index:2;
    top:10px;
    right:0;
    width:44px;
    height:44px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:50%;
    background:rgba(255,255,255,.04);
    color:var(--aqua-2);
    display:grid;
    place-items:center;
    font-size:20px;
    line-height:1;
    transition:transform .2s ease,background .2s ease;
  }
  .submenu-toggle:hover, .submenu-toggle:focus-visible { background:rgba(126,212,210,.14); outline:none; }
  .nav-item.mobile-open .submenu-toggle { transform:rotate(180deg); background:rgba(126,212,210,.14); }
  .dropdown {
    position:static;
    width:auto;
    max-height:0;
    margin:0;
    padding:0 0 0 14px;
    border-radius:0;
    box-shadow:none;
    background:transparent;
    color:#fff;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:none;
    display:grid;
    overflow:hidden;
    transition:max-height .3s ease,opacity .22s ease,padding .3s ease;
  }
  .nav-item.mobile-open .dropdown { max-height:600px; padding:2px 0 18px 14px; opacity:1; visibility:visible; pointer-events:auto; }
  .nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)) > .dropdown { width:auto; }
  .nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)).mobile-open > .dropdown { padding:4px 0 18px 14px; }
  .nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)) > .dropdown a {
    grid-template-columns:28px minmax(0,1fr);
    gap:10px;
    min-height:48px;
    padding:10px 10px;
    border-bottom-color:rgba(255,255,255,.12);
    color:rgba(255,255,255,.82);
  }
  .nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)) > .dropdown a::before {
    width:28px;
    height:28px;
    border-color:rgba(126,212,210,.34);
    background:rgba(126,212,210,.08);
    color:var(--aqua-2);
  }
  .nav > .nav-item:is(:nth-child(1), :nth-child(2), :nth-child(3)) > .dropdown a:hover {
    padding-left:13px;
    background:rgba(126,212,210,.12);
  }
  .dropdown a { padding:11px 14px; border-left:1px solid rgba(126,212,210,.28); border-radius:0; color:rgba(255,255,255,.74); font-size:15px; }
  .dropdown a:hover { background:rgba(126,212,210,.1); color:#fff; }
  .menu-btn { display:grid; font-size:22px; line-height:1; }
  .header-actions .lang { width:42px; height:42px; padding:0; display:inline-flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.35); border-radius:50%; }
  .hero-grid, .services-head, .intro-grid, .quote-wrap, .contact-grid, .split { grid-template-columns:1fr; }
  .hero-kicker { margin-top:20px; }
  .card-grid, .people-grid, .article-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1.4fr 1fr 1fr; }
  .footer-grid > :last-child { grid-column:2/4; }
  .article-layout { grid-template-columns:1fr; gap:42px; }
  .article-aside { position:static; order:-1; }
}

@media (max-width: 720px) {
  #industries, [id^="industry-"], .card[id] { scroll-margin-top: 96px; }
  .container { width:min(calc(100% - 28px),var(--max)); }
  .home-page main .container { width:min(calc(100% - 40px),var(--max)); }
  .section { padding:64px 0; }
  .header-inner { min-height:82px; }
  .nav { inset:82px 0 0; }
  .logo { min-width:0; }
  .header-actions { gap:6px; }
  .icon-btn, .menu-btn { width:38px; height:38px; }
  .header-actions .lang { width:38px; height:38px; }
  .logo-text span { display:none; }
  .site-header .logo { gap:12px; }
  .site-header .logo-mark { width:56px; height:56px; flex-basis:56px; padding:3px; }
  .site-header .logo-text strong { font-size:18px; }
  .hero-content { padding:132px 0 58px; }
  .hero-grid { gap:30px; }
  .hero h1 { font-size:clamp(46px,13.5vw,64px); }
  .hero .lead { font-size:17px; }
  .hero-cta { gap:10px; margin-top:28px; }
  .hero-cta .btn { flex:1 1 155px; padding-inline:16px; }
  .hero-index { grid-template-columns:repeat(2,1fr); gap:16px; }
  .stat-row { grid-template-columns:1fr; }
  .stat, .stat:nth-child(2), .stat:last-child { padding:20px 0; border-right:0; border-bottom:1px solid var(--line); }
  .service-row { grid-template-columns:48px 1fr 38px; }
  .service-desc { display:none; }
  .service-name { font-size:23px; }
  .card-grid, .people-grid, .article-grid, .insight-grid { grid-template-columns:1fr; }
  .person-photo { height:330px; }
  .person-info { padding:21px; }
  .person-info h3 { font-size:25px; }
  .card { min-height:250px; }
  .portrait { min-height:420px; }
  .insight-feature { min-height:470px; }
  .insight-feature h3 { font-size:36px; }
  .cta-inner { grid-template-columns:1fr; align-items:start; }
  .cta .btn { width:100%; }
  .footer { padding:56px 0 24px; }
  .footer-grid { grid-template-columns:1fr; gap:30px; }
  .footer-grid > :first-child, .footer-grid > :last-child { grid-column:auto; }
  .footer-office-layout { grid-template-columns:minmax(0,1fr) minmax(128px,.9fr); gap:12px; }
  .footer-bottom { flex-direction:column; }
  .job { grid-template-columns:1fr; gap:10px; }
  .job .btn { width:100%; }
  .form { grid-template-columns:1fr; }
  .field.full, .form-note, .success, .form-error { grid-column:1; }
  .page-hero { min-height:470px; }
  .page-hero .container { padding-top:132px; padding-bottom:54px; }
  .page-hero h1 { font-size:clamp(44px,12vw,58px); }
  .article-page-hero { min-height:590px; }
  .article-page-hero .container { padding-bottom:76px; }
  .article-page-hero h1 { margin-top:16px; font-size:clamp(36px,10.8vw,52px); }
  .article-hero-tag { margin-top:20px; }
  .article-hero-meta { gap:8px 18px; margin-top:20px; }
  .article-hero-meta span + span::before { margin-right:18px; }
  .article-feature .container { transform:translateY(-28px); margin-bottom:-28px; }
  .article-feature-image { border-radius:16px; }
  .article-content .article-intro { margin-bottom:34px; padding-bottom:28px; font-size:20px; }
  .article-content h2 { margin-top:42px; font-size:34px; }
  .article-content h3 { margin-top:32px; font-size:24px; }
  .article-content p, .article-content li { font-size:16px; line-height:1.75; }
  .article-inline-image { margin:36px 0 42px; }
  .article-inline-image img { border-radius:14px; }
  .article-conclusion, .legal-basis, .article-aside { padding:24px; }
  .legal-basis h2 { font-size:32px; }
  .contact-card { padding:26px; }
  .filter-bar { flex-wrap:nowrap; overflow-x:auto; margin:24px 0 34px; padding-bottom:5px; scrollbar-width:none; }
  .filter-bar::-webkit-scrollbar { display:none; }
  .filter-btn { flex:0 0 auto; min-height:42px; }
  .person-photo { height:310px; }
}

@media (max-width: 420px) {
  .header-inner { gap:12px; }
  .site-header .logo { gap:8px; }
  .site-header .logo-mark { width:48px; height:48px; flex-basis:48px; }
  .site-header .logo-text strong { font-size:16px; white-space:nowrap; }
  .header-actions { gap:4px; }
  .icon-btn, .menu-btn, .header-actions .lang { width:34px; height:34px; }
  .nav { padding-inline:18px; }
  .nav > .nav-item > a, .nav > a { min-height:60px; font-size:23px; }
  .submenu-toggle { top:8px; }
  .hero h1 { font-size:clamp(43px,13vw,54px); }
}
