@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap");

:root {
  --ink: #101a18;
  --forest: #123b33;
  --forest-2: #0b2924;
  --gold: #c69b55;
  --gold-soft: #ead7b6;
  --paper: #f5f1e9;
  --white: #fff;
  --muted: #68716e;
  --line: rgba(16, 26, 24, .13);
  --serif: "Manrope", Arial, sans-serif;
  --sans: "Manrope", Arial, sans-serif;
  --shadow: 0 24px 64px rgba(4, 24, 20, .14);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); font-family: var(--sans); background: var(--white); line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.eyebrow { color: var(--gold); font-size: .74rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
h1, h2, h3 { font-family: var(--serif); line-height: 1.08; margin: 0; font-weight: 800; }
h1 { font-size: clamp(3.1rem, 6.5vw, 6.7rem); letter-spacing: -.055em; }
h2 { font-size: clamp(2.15rem, 4vw, 4rem); letter-spacing: -.045em; }
h3 { font-size: 1.45rem; letter-spacing:-.025em; }
p { margin: 0; }
.lead { font-size: clamp(1.05rem, 1.4vw, 1.25rem); color: #d8e1de; max-width: 680px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 24px; border: 1px solid transparent; font-size: .78rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; transition: .25s ease; cursor: pointer; }
.btn-primary { background: var(--gold); color: #13201d; }
.btn-primary:hover { background: #ddb56f; transform: translateY(-2px); }
.btn-outline { border-color: rgba(255,255,255,.38); color: var(--white); }
.btn-outline:hover { border-color: var(--gold); color: var(--gold-soft); }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--forest); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.text-link::after { content: "→"; font-size: 1.1rem; }
.topbar { background: #071c18; color: #cbd5d1; font-size: .78rem; }
.topbar .container { min-height: 40px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.topbar-links { display: flex; gap: 22px; }
.site-header { position: sticky; z-index: 50; top: 0; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.nav { height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.logo { width: 178px; }
.nav-links { display: flex; align-items: center; gap: 23px; font-size: .8rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.nav-links a { position: relative; }
.nav-links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -9px; height: 2px; background: var(--gold); transition: .25s; }
.nav-links a:hover::after, .nav-links a.active::after { right: 0; }
.nav-cta { padding: 12px 17px; background: var(--forest); color: var(--white); }
.language-control { position:relative; }
.language-toggle { min-height:42px;padding:0 13px;display:flex;align-items:center;gap:8px;border:1px solid #071e2b;background:#071e2b;color:#fff;font:800 .68rem var(--sans);letter-spacing:.06em;cursor:pointer;box-shadow:0 7px 18px rgba(7,30,43,.13);transition:border-color .2s ease,background .2s ease,transform .2s ease; }
.language-toggle:hover,.language-toggle[aria-expanded="true"] { border-color:#087ca3;background:#087ca3;transform:translateY(-2px); }
.language-globe { position:relative;width:17px;height:17px;border:1.5px solid #70d8f7;border-radius:50%; }.language-globe::before { content:"";position:absolute;left:3px;right:3px;top:-1.5px;bottom:-1.5px;border-left:1px solid #70d8f7;border-right:1px solid #70d8f7;border-radius:50%; }.language-globe::after { content:"";position:absolute;left:1px;right:1px;top:7px;border-top:1px solid #70d8f7; }
.language-chevron { width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease; }.language-toggle[aria-expanded="true"] .language-chevron { transform:rotate(225deg) translate(-1px,-1px); }
.language-notice { position:absolute;z-index:20;right:0;top:calc(100% + 12px);width:210px;padding:7px;background:#fff;color:#071e2b;box-shadow:0 16px 38px rgba(7,30,43,.2);border:1px solid var(--line);opacity:0;transform:translateY(-5px);pointer-events:none;transition:.2s ease; }
.language-notice::before { content:"";position:absolute;right:18px;top:-5px;width:10px;height:10px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg); }.language-control.show-notice .language-notice { opacity:1;transform:none;pointer-events:auto; }
.language-notice button { width:100%;padding:11px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;color:#071e2b;font:700 .76rem var(--sans);text-align:left; }.language-notice button+button { border-top:1px solid var(--line); }.language-notice button.current { background:#eff9fc; }.language-notice button:disabled { color:#8b979c; }.language-notice small { font-size:.56rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#168eb3; }
.nav-dropdown { position:relative;align-self:stretch;display:flex;align-items:center; }
.nav-dropdown-toggle { position:relative;padding:0 16px 0 0;border:0;background:transparent;color:#071e2b;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer; }
.nav-dropdown-toggle::after { content:"";position:absolute;left:0;right:100%;bottom:-9px;height:2px;background:#18a9d5;transition:right .25s ease; }.nav-dropdown:hover .nav-dropdown-toggle::after,.nav-dropdown.open .nav-dropdown-toggle::after,.nav-dropdown.active .nav-dropdown-toggle::after { right:0; }
.nav-dropdown-toggle i { position:absolute;right:1px;top:50%;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg);transition:transform .2s ease; }.nav-dropdown.open .nav-dropdown-toggle i { transform:translateY(-20%) rotate(225deg); }
.nav-dropdown-menu { position:absolute;z-index:80;left:50%;top:calc(100% + 1px);width:330px;padding:9px;background:#fff;border-top:3px solid #18a9d5;box-shadow:0 22px 55px rgba(7,30,43,.2);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,10px);transition:opacity .2s ease,transform .2s ease,visibility .2s; }
.nav-dropdown-menu::before { content:"";position:absolute;left:0;right:0;bottom:100%;height:24px; }.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu { opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0); }
.nav-dropdown-menu a { display:block;padding:13px 14px;border-bottom:1px solid rgba(7,30,43,.08);text-transform:none;letter-spacing:0;transition:background .2s ease,padding-left .2s ease; }.nav-dropdown-menu a:last-child { border-bottom:0; }.nav-dropdown-menu a::after { display:none; }.nav-dropdown-menu a:hover { padding-left:18px;background:#eff9fc; }
.nav-dropdown-menu span,.nav-dropdown-menu small { display:block; }.nav-dropdown-menu span { color:#071e2b;font-size:.78rem;font-weight:800; }.nav-dropdown-menu small { margin-top:3px;color:#748187;font-size:.65rem;font-weight:500;line-height:1.35; }
.nav-dropdown-wide .nav-dropdown-menu { width:650px;grid-template-columns:1fr 1fr;gap:0 10px;padding:13px;transform:translate(-36%,10px); }.nav-dropdown-wide:hover .nav-dropdown-menu,.nav-dropdown-wide.open .nav-dropdown-menu,.nav-dropdown-wide:focus-within .nav-dropdown-menu { display:grid;transform:translate(-36%,0); }.nav-dropdown-wide .nav-dropdown-menu a:nth-last-child(-n+2) { border-bottom:0; }
.nav-toggle { display: none; border: 0; background: transparent; width: 44px; height: 44px; font-size: 1.5rem; color: var(--forest); }
.hero { min-height: 720px; color: var(--white); position: relative; display: grid; align-items: end; overflow: hidden; background: var(--forest-2); }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,23,19,.96) 0%, rgba(5,30,25,.82) 50%, rgba(4,23,19,.26) 100%), url("../images/site/hero-1.jpg") center/cover; }
.hero::after { content: "IPC"; position: absolute; right: -1.5vw; bottom: -10vh; color: rgba(255,255,255,.04); font: 700 clamp(12rem, 29vw, 31rem)/.8 var(--serif); }
.hero .container { position: relative; z-index: 2; padding: 100px 0 86px; }
.hero-copy { max-width: 900px; }
.hero h1 span { color: var(--gold-soft); }
.hero .lead { margin: 26px 0 36px; }
.hero-actions { display: flex; gap: 13px; flex-wrap: wrap; }
.hero-proof { display: flex; gap: 42px; align-items: center; margin-top: 70px; color: #dce6e2; font-size: .85rem; }
.hero-proof strong { display: block; color: var(--gold-soft); font: 500 1.75rem var(--serif); }
.section { padding: 108px 0; }
.section-soft { background: var(--paper); }
.section-dark { background: var(--forest-2); color: var(--white); }
.section-head { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; align-items: end; margin-bottom: 55px; }
.section-head p { color: var(--muted); max-width: 600px; }
.section-dark .section-head p { color: #aebcb8; }
.isp-banner { background: var(--gold); }
.isp-banner .container { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 40px; padding-block: 31px; }
.isp-banner strong { display: block; font: 500 1.55rem var(--serif); }
.isp-banner p { font-size: .9rem; }
.isp-banner .btn { background: var(--forest-2); color: var(--white); }
.intro-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 82px; align-items: center; }
.intro-copy p { color: var(--muted); margin: 26px 0; }
.feature-image { min-height: 560px; position: relative; background: url("../images/site/hero-2.jpg") center/cover; box-shadow: var(--shadow); }
.feature-image::before { content: ""; position: absolute; inset: 22px; border: 1px solid rgba(255,255,255,.55); }
.feature-image-note { position: absolute; left: -45px; bottom: 38px; background: var(--forest); color: var(--white); padding: 28px; width: 230px; box-shadow: var(--shadow); }
.feature-image-note strong { color: var(--gold-soft); font: 500 2.6rem var(--serif); display: block; }
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { padding: 35px; min-height: 260px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); display: flex; flex-direction: column; }
.service-number { color: var(--gold); font: 500 1.1rem var(--serif); }
.service-card h3 { margin: 26px 0 14px; }
.service-card p { color: var(--muted); font-size: .93rem; }
.service-card .text-link { margin-top: auto; padding-top: 24px; }
.investor { display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: center; }
.investor h2 { margin: 12px 0 24px; }
.investor > div > p { color: #b9c6c2; }
.steps { margin-top: 36px; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.step { padding: 18px 0; border-top: 1px solid rgba(255,255,255,.17); color: #d8e1df; }
.step span { color: var(--gold); margin-right: 12px; font-family: var(--serif); }
.cert-card { background: #f3eadb; color: var(--ink); padding: 48px; position: relative; box-shadow: var(--shadow); }
.cert-card::before { content: ""; position: absolute; inset: 12px; border: 1px solid #b79050; pointer-events: none; }
.cert-mark { width: 88px; height: 88px; display: grid; place-items: center; border: 1px solid #b79050; border-radius: 50%; color: #87662d; font: 600 1.4rem var(--serif); margin-bottom: 46px; }
.cert-card small { text-transform: uppercase; letter-spacing: .16em; font-weight: 800; color: #806632; }
.cert-card h3 { font-size: 2.2rem; margin: 10px 0 20px; }
.cert-card p { color: #5a625f; }
.trust-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.trust-item { padding: 30px; border: 1px solid var(--line); }
.trust-item strong { display: block; font: 500 1.35rem var(--serif); margin: 14px 0 10px; }
.trust-item p { color: var(--muted); font-size: .9rem; }
.team-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
.person img { aspect-ratio: 4/5; width: 100%; object-fit: cover; object-position: top; filter: saturate(.75); }
.person h3 { margin: 17px 0 4px; font-size: 1.25rem; }
.person p { color: var(--gold); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cta-band { background: var(--gold); padding: 66px 0; }
.cta-band .container { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.cta-band h2 { font-size: clamp(2rem,3.8vw,3.6rem); max-width: 760px; }
.cta-band .btn { background: var(--forest-2); color: var(--white); flex: none; }
.footer { background: #071c18; color: #aebbb7; padding: 75px 0 24px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr .8fr .9fr 1fr; gap: 50px; }
.footer-logo { width: 135px; margin-bottom: 24px; filter: brightness(0) invert(1); }
.footer h3 { color: var(--white); font: 600 .79rem var(--sans); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 20px; }
.footer a { display: block; margin: 8px 0; }
.footer a:hover { color: var(--gold-soft); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 20px; margin-top: 55px; display: flex; justify-content: space-between; gap: 20px; font-size: .78rem; }
.page-hero { padding: 105px 0 80px; background: var(--forest-2); color: var(--white); }
.page-hero h1 { font-size: clamp(2.7rem,5vw,5.2rem); max-width: 920px; }
.page-hero p { color: #b9c7c3; max-width: 690px; margin-top: 22px; font-size: 1.08rem; }
.content-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 90px; }
.prose h2 { margin: 0 0 25px; }
.prose h3 { margin: 40px 0 14px; }
.prose p { color: var(--muted); margin: 15px 0; }
.prose ul { color: var(--muted); padding-left: 20px; }
.side-card { padding: 32px; background: var(--paper); position: sticky; top: 110px; align-self: start; }
.side-card h3 { margin-bottom: 16px; }
.side-card a:not(.btn) { display: block; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.side-card .btn { margin-top: 22px; width: 100%; }
.gallery-grid { columns: 3; column-gap: 20px; }
.gallery-item { break-inside: avoid; margin-bottom: 20px; background: var(--paper); }
.gallery-item img { width: 100%; }
.gallery-item figcaption { padding: 14px 18px; font-size: .82rem; color: var(--muted); }
.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; }
.contact-list { margin-top: 30px; }
.contact-list div { padding: 19px 0; border-top: 1px solid var(--line); }
.contact-list small { display: block; color: var(--gold); font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.contact-form { padding: 42px; background: var(--paper); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { margin-bottom: 18px; }
.field label { display: block; font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; margin-bottom: 7px; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid #ccd0cd; background: var(--white); padding: 14px; outline: none; }
.field textarea { min-height: 150px; resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--gold); }
.form-note { font-size: .8rem; color: var(--muted); margin-top: 15px; }
.language-note { margin-top: 25px; padding: 18px; border-left: 3px solid var(--gold); background: rgba(198,155,85,.08); }
@media (max-width: 960px) {
  .topbar { display: none; }
  .nav { height: 70px; }
  .nav-toggle { display: block; }
  .nav-links { position: absolute; top: 70px; left: 0; right: 0; background: var(--white); flex-direction: column; align-items: stretch; padding: 22px 20px 30px; border-bottom: 1px solid var(--line); transform: translateY(-130%); opacity: 0; pointer-events: none; transition: .25s; }
  .nav-links.open { transform: none; opacity: 1; pointer-events: auto; }
  .nav-cta { text-align: center; }
  .hero { min-height: 650px; }
  .hero-proof { flex-wrap: wrap; gap: 24px; }
  .section-head, .intro-grid, .investor, .content-grid, .contact-grid { grid-template-columns: 1fr; gap: 45px; }
  .services-grid { grid-template-columns: repeat(2,1fr); }
  .trust-grid, .team-grid { grid-template-columns: repeat(2,1fr); }
  .section-head { align-items: start; }
  .feature-image-note { left: 20px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .side-card { position: static; }
}
@media (max-width: 620px) {
  .container { width: min(100% - 28px,1180px); }
  .hero .container { padding: 75px 0 62px; }
  h1 { font-size: clamp(2.75rem,15vw,4.4rem); }
  .hero-proof { display: grid; grid-template-columns: 1fr 1fr; margin-top: 48px; }
  .isp-banner .container, .cta-band .container { grid-template-columns: 1fr; display: grid; }
  .section { padding: 78px 0; }
  .services-grid, .trust-grid, .team-grid, .steps, .form-row { grid-template-columns: 1fr; }
  .feature-image { min-height: 430px; }
  .feature-image-note { width: 190px; padding: 20px; }
  .footer-grid { grid-template-columns: 1fr; gap: 35px; }
  .footer-bottom { flex-direction: column; }
  .gallery-grid { columns: 1; }
  .contact-form { padding: 25px; }
}

/* Clean editorial direction inspired by contemporary East African legal firms. */
:root {
  --ink: #101418;
  --forest: #087ca3;
  --forest-2: #071e2b;
  --gold: #18a9d5;
  --gold-soft: #bdeeff;
  --paper: #f4f8fa;
  --muted: #63707a;
  --line: rgba(7, 30, 43, .12);
  --serif: "Manrope", "Segoe UI", Arial, sans-serif;
  --sans: "Manrope", "Segoe UI", Arial, sans-serif;
  --shadow: 0 24px 70px rgba(4, 31, 44, .1);
}
body { letter-spacing: -.012em; }
h1, h2, h3 { font-weight: 800; }
.nav-links, .btn, .eyebrow, .person p, .contact-list small { letter-spacing: .075em; }
.eyebrow { color: #078eb9; }
.topbar { background: #071e2b; }
.site-header { background: rgba(255,255,255,.98); }
.nav-cta { background: #071e2b; }
.btn-primary, .isp-banner, .cta-band { background: #18a9d5; }
.btn-primary:hover { background: #43bbe0; }
.hero {
  min-height: 680px;
  color: var(--ink);
  align-items: center;
  background:
    radial-gradient(circle at 84% 22%, rgba(24,169,213,.18), transparent 24%),
    linear-gradient(135deg, #fff 0%, #f4f9fb 68%, #e9f7fb 100%);
  border-bottom: 1px solid var(--line);
}
.hero::before {
  background:
    linear-gradient(90deg, transparent 0 71%, rgba(24,169,213,.07) 71% 71.15%, transparent 71.15%),
    linear-gradient(0deg, transparent 0 76%, rgba(24,169,213,.07) 76% 76.15%, transparent 76.15%);
}
.hero::after {
  content: "IPC";
  color: rgba(7,30,43,.035);
  right: -2vw;
  bottom: -4vh;
  font-family: Arial, Helvetica, sans-serif;
}
.hero .container { padding: 92px 0; }
.hero-copy { max-width: 980px; }
.hero h1 { max-width: 900px; }
.hero h1 span { color: #0c91ba; }
.hero .lead { color: #53626c; max-width: 760px; }
.btn-outline { border-color: #a8b7be; color: #0b2733; }
.btn-outline:hover { color: #087ca3; border-color: #18a9d5; }
.hero-proof { color: #566771; border-top: 1px solid var(--line); padding-top: 28px; margin-top: 65px; }
.hero-proof strong { color: #087ca3; }
.isp-banner { color: #061922; }
.isp-banner .btn, .cta-band .btn { background: #071e2b; }
.feature-image {
  min-height: 520px;
  background:
    linear-gradient(140deg, #071e2b 0 58%, #0c789e 58% 76%, #18a9d5 76%);
}
.feature-image::before { border-color: rgba(255,255,255,.22); }
.feature-image::after {
  content: "IPC";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(255,255,255,.08);
  font-size: clamp(8rem,18vw,15rem);
  font-weight: 800;
}
.feature-image-note { background: #fff; color: var(--ink); border-top: 4px solid #18a9d5; }
.feature-image-note strong { color: #087ca3; }
.service-card { transition: transform .2s ease, box-shadow .2s ease; }
.service-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(7,30,43,.08); }
.section-dark { background: #071e2b; }
.cert-card { background: #fff; }
.cert-card::before, .cert-mark { border-color: #18a9d5; }
.cert-mark, .cert-card small { color: #087ca3; }
.page-hero {
  background:
    radial-gradient(circle at 85% 30%, rgba(24,169,213,.22), transparent 26%),
    #071e2b;
}
.language-note { border-color: #18a9d5; background: rgba(24,169,213,.08); }
.footer { background: #071822; }

/* Full-bleed city hero */
.hero {
  min-height: 720px;
  color: #fff;
  align-items: end;
  background: #071e2b;
}
.hero::before {
  background:
    linear-gradient(90deg, rgba(3,18,27,.94) 0%, rgba(3,18,27,.79) 48%, rgba(3,18,27,.34) 100%),
    linear-gradient(0deg, rgba(3,18,27,.72), transparent 55%),
    url("../images/site/dar-es-salaam-skyline.jpg") center 58% / cover no-repeat;
  transform: scale(1.015);
}
.hero::after { color: rgba(255,255,255,.035); }
.hero .container { padding: 108px 0 78px; }
.hero h1 {
  max-width: 850px;
  font-family: var(--serif);
  font-size: clamp(3rem, 4.85vw, 5.15rem);
  font-weight: 800;
  line-height: 1.01;
  letter-spacing: -.052em;
  text-shadow: 0 2px 24px rgba(0,0,0,.18);
}
.hero h1 span { color: #70d8f7; }
.page-hero h1 {
  font-family: var(--serif);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -.045em;
}
.hero .lead { color: #d8e4e8; }
.hero .btn-outline { color: #fff; border-color: rgba(255,255,255,.5); background: rgba(7,30,43,.12); }
.hero .btn-outline:hover { color: #fff; border-color: #70d8f7; background: rgba(7,30,43,.45); }
.hero-proof { color: #d9e5e9; border-color: rgba(255,255,255,.24); }
.hero-proof strong { color: #70d8f7; }
.hero-credit {
  position: absolute;
  right: 18px;
  bottom: 12px;
  z-index: 3;
  color: rgba(255,255,255,.68);
  font-size: .66rem;
}
.hero-credit:hover { color: #fff; }
@media (max-width: 620px) {
  .hero { min-height: 700px; }
  .hero::before {
    background:
      linear-gradient(90deg, rgba(3,18,27,.95), rgba(3,18,27,.66)),
      linear-gradient(0deg, rgba(3,18,27,.72), transparent 55%),
      url("../images/site/dar-es-salaam-skyline.jpg") 63% center / cover no-repeat;
  }
  .hero .container { padding: 76px 0 66px; }
  .hero h1 { font-size: clamp(2.45rem, 10.5vw, 3.35rem); line-height: 1.04; }
  .hero-credit { right: 10px; bottom: 7px; }
}

/* Dynamic homepage hero */
.hero::before { display: none; }
.hero-media, .hero-slide { position: absolute; inset: 0; }
.hero-media { overflow: hidden; }
.hero-slide {
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1s ease, transform 7s ease;
  background-position: center;
  background-size: cover;
}
.hero-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(3,18,27,.94) 0%, rgba(3,18,27,.79) 48%, rgba(3,18,27,.3) 100%),
    linear-gradient(0deg, rgba(3,18,27,.76), transparent 58%);
}
.hero-slide.active { opacity: 1; transform: scale(1); }
.hero-slide-one { background-image: url("../images/site/tanzania-investment-hero.png"); background-position: 48% 36%; }
.hero-slide-two { background-image: url("../images/site/tanzania-investment-hero.png"); background-position: 58% 36%; }
.hero-slide-three { background-image: url("../images/site/tanzania-investment-hero.png"); background-position: 68% 36%; }
.hero-copy { transition: opacity .28s ease, transform .28s ease; }
.hero-copy.changing { opacity: 0; transform: translateY(12px); }
.hero-controls {
  position: absolute;
  z-index: 5;
  right: 36px;
  bottom: 40px;
  display: flex;
  align-items: center;
  gap: 15px;
  color: #fff;
}
.hero-arrow {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.38);
  background: rgba(3,18,27,.35);
  color: #fff;
  cursor: pointer;
  transition: .2s ease;
}
.hero-arrow:hover { border-color: #70d8f7; background: rgba(3,18,27,.68); }
.hero-dots { display: flex; gap: 7px; }
.hero-dots button {
  width: 25px;
  height: 3px;
  padding: 0;
  border: 0;
  background: rgba(255,255,255,.35);
  cursor: pointer;
  transition: .25s ease;
}
.hero-dots button.active { width: 46px; background: #18a9d5; }
.hero-count { min-width: 51px; font-size: .73rem; letter-spacing: .08em; }
.hero-count b { color: #70d8f7; font-size: .92rem; }
.hero-credits {
  position: absolute;
  z-index: 4;
  left: 14px;
  bottom: 9px;
  font-size: .61rem;
  color: rgba(255,255,255,.6);
}
.hero-credits a { display: none; }
.hero-credits a.active { display: block; }
@media (max-width: 780px) {
  .hero-controls { right: 14px; bottom: 28px; }
  .hero-dots { display: none; }
  .hero-slide::after {
    background:
      linear-gradient(90deg, rgba(3,18,27,.95), rgba(3,18,27,.62)),
      linear-gradient(0deg, rgba(3,18,27,.8), transparent 56%);
  }
  .hero-slide-one { background-position: 56% center; }
  .hero-slide-two { background-position: 64% center; }
  .hero-slide-three { background-position: 72% center; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-slide, .hero-copy { transition: none; }
}

/* Tactile calls to action */
.btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 0 0 rgba(7,30,43,0);
  transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.btn::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 55px;
  height: 180%;
  left: -90px;
  top: -40%;
  background: rgba(255,255,255,.28);
  transform: rotate(18deg);
  transition: left .55s ease;
  display: none;
}
.btn::after {
  content: "→";
  display: inline-block;
  font-size: 1rem;
  line-height: 1;
  transition: transform .25s ease;
}
.btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(7,30,43,.18);
}
.btn:hover::after { transform: translateX(4px); }
.btn:active { transform: translateY(-1px) scale(.985); box-shadow: 0 6px 15px rgba(7,30,43,.14); }
.btn:focus-visible {
  outline: 3px solid rgba(24,169,213,.35);
  outline-offset: 4px;
}
.btn-primary:not(.featured-shine) {
  background-image: linear-gradient(110deg, #18a9d5 0 50%, #071e2b 50% 100%);
  background-size: 205% 100%;
  background-position: left center;
}
.btn-primary:not(.featured-shine):hover {
  color: #fff;
  background-position: right center;
}
.btn-outline {
  background-image: linear-gradient(110deg, transparent 0 50%, rgba(24,169,213,.92) 50% 100%);
  background-size: 205% 100%;
  background-position: left center;
}
.btn-outline:hover {
  color: #071e2b;
  border-color: #18a9d5;
  background-position: right center;
}
.cta-band .btn:not(.featured-shine), .isp-banner .btn:not(.featured-shine) {
  border: 1px solid #071e2b;
}
.cta-band .btn:not(.featured-shine):hover, .isp-banner .btn:not(.featured-shine):hover {
  color: #071e2b;
  background: transparent;
  border-color: #071e2b;
}
.nav-cta { transition: transform .22s ease, background-color .22s ease, box-shadow .22s ease; }
.nav-cta:hover { transform: translateY(-2px); background: #0c3143; box-shadow: 0 9px 20px rgba(7,30,43,.15); }
.featured-shine::before {
  display: block;
  left: -90px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.58), transparent);
  animation: featured-button-shine 3.2s ease-in-out infinite;
}
@keyframes featured-button-shine {
  0%, 38% { left: -90px; opacity: 0; }
  48% { opacity: 1; }
  72% { left: calc(100% + 40px); opacity: .9; }
  73%, 100% { left: calc(100% + 40px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .btn, .btn::before, .btn::after, .nav-cta { transition: none; }
  .featured-shine::before { animation: none; }
}

/* Reuse the official IPC mark as the site's decorative brand motif. */
.hero::after {
  content: "";
  right: -2vw;
  bottom: -7vh;
  width: min(42vw, 540px);
  height: min(42vw, 540px);
  background: url("../images/site/ipc-mark.svg") center / contain no-repeat;
  filter: grayscale(1) brightness(4);
  opacity: .055;
}
.feature-image::after {
  content: "";
  inset: 16% 20%;
  display: block;
  background: url("../images/site/ipc-mark.svg") center / contain no-repeat;
  filter: grayscale(1) brightness(4);
  opacity: .1;
}
.brand-mark {
  width: 64px;
  height: 58px;
  object-fit: contain;
  object-position: left center;
  margin-bottom: 12px;
}
.icon-wrap {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  color: #087ca3;
  background: rgba(24,169,213,.08);
  border: 1px solid rgba(24,169,213,.22);
  transition: color .25s ease, background-color .25s ease, transform .25s ease;
}
.icon-wrap svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.service-card:hover .icon-wrap, .trust-item:hover .icon-wrap, .value-card:hover .icon-wrap { color:#fff; background:#087ca3; transform:translateY(-3px); }
.values-stack { display:grid; gap:14px; margin-top:42px; }
.value-card { display:grid; grid-template-columns:48px 1fr; gap:22px; padding:25px; border:1px solid var(--line); background:#fff; }
.value-card h3 { margin:0 0 7px; }.value-card p { margin:0; }

/* Investor Support story */
.isp-story-hero { padding: 90px 0; overflow: hidden; }
.isp-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 85px; align-items: center; }
.isp-story-hero h1 { font-size: clamp(2.8rem,4.7vw,5rem); }
.isp-story-hero .hero-actions { margin-top: 30px; }
.certificate-wrap { position: relative; transform: rotate(1.5deg); }
.certificate-placeholder {
  min-height: 540px;
  position: relative;
  overflow: hidden;
  padding: 60px 54px 44px;
  color: #11191d;
  text-align: center;
  background: linear-gradient(145deg,#fff 0%,#f3f5f3 68%,#e5eef1 100%);
  border: 10px solid #f7f8f7;
  outline: 1px solid rgba(24,169,213,.7);
  box-shadow: 0 30px 80px rgba(0,0,0,.3);
}
.certificate-placeholder::before { content:""; position:absolute; inset:18px; border:1px solid rgba(7,30,43,.25); pointer-events:none; }
.certificate-corner { position:absolute; width:180px; height:180px; background:#18a9d5; transform:rotate(45deg); opacity:.12; }
.corner-one { left:-115px; top:-115px; }.corner-two { right:-115px; bottom:-115px; }
.certificate-logo { width:70px; height:66px; object-fit:contain; margin:0 auto 24px; }
.certificate-kicker { display:block; color:#087ca3; font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.certificate-placeholder h2 { margin:14px 0 23px; font-size:clamp(2rem,3vw,3.1rem); color:#071e2b; }
.certificate-placeholder p { max-width:390px; margin:12px auto; color:#647079; font-size:.8rem; }
.certificate-placeholder > strong { display:block; margin:9px 0; font:700 1.1rem var(--serif); color:#071e2b; }
.certificate-seal { width:92px; height:92px; margin:27px auto; display:grid; place-content:center; border:2px solid #18a9d5; border-radius:50%; color:#087ca3; box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 6px #18a9d5; }
.certificate-seal span { font:700 1.4rem var(--serif); }.certificate-seal small { font-size:.5rem; letter-spacing:.12em; text-transform:uppercase; }
.certificate-lines { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:24px; }
.certificate-lines span { padding-top:8px; border-top:1px solid #89949a; color:#6a7479; font-size:.58rem; text-transform:uppercase; letter-spacing:.1em; }
.certificate-note { display:block; margin-top:20px; color:#afbec4; text-align:center; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; }
.story-intro { max-width:900px; margin-bottom:55px; }
.story-intro h2 { margin:9px 0 25px; }.story-intro p { max-width:760px; color:var(--muted); font-size:1.08rem; }
.headache-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.headache-card { padding:36px; border:1px solid var(--line); background:#fff; transition:.25s ease; }
.headache-card:hover { transform:translateY(-5px); border-color:rgba(24,169,213,.55); box-shadow:0 18px 40px rgba(7,30,43,.08); }
.headache-card > span { color:#18a9d5; font-size:.72rem; font-weight:700; letter-spacing:.12em; }
.headache-card h3 { margin:24px 0 15px; font-size:1.5rem; }.headache-card p { color:var(--muted); font-size:.92rem; }
.headache-card strong { display:block; margin-top:25px; padding-top:20px; border-top:1px solid var(--line); color:#087ca3; font-size:.84rem; }
.investor-quote { padding:45px; background:#fff; color:var(--ink); border-top:5px solid #18a9d5; }
.investor-quote blockquote { margin:22px 0; font:700 clamp(1.7rem,2.7vw,2.7rem)/1.25 var(--serif); letter-spacing:-.035em; }
.investor-quote p { color:var(--muted); }
.journey-list { border-top:1px solid var(--line); }
.journey-list article { display:grid; grid-template-columns:90px 1fr; gap:35px; padding:34px 0; border-bottom:1px solid var(--line); }
.journey-list article > span { color:#18a9d5; font:400 2rem var(--serif); }
.journey-list small { color:#087ca3; font-size:.66rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.journey-list h3 { margin:5px 0 10px; font-size:1.6rem; }.journey-list p { max-width:760px; color:var(--muted); }
.outcome-panel { display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:end; padding:55px; background:#f4f8fa; border-left:5px solid #18a9d5; }
.outcome-panel h2 { margin-top:8px; }.outcome-panel p { color:var(--muted); }.outcome-panel .text-link { grid-column:2; }
@media (max-width:960px) {
  .isp-hero-grid, .outcome-panel { grid-template-columns:1fr; gap:45px; }
  .certificate-wrap { max-width:600px; margin:auto; }
  .headache-grid { grid-template-columns:1fr; }
  .outcome-panel .text-link { grid-column:auto; }
}
@media (max-width:620px) {
  .isp-story-hero { padding:68px 0; }
  .certificate-placeholder { min-height:500px; padding:48px 28px 35px; }
  .certificate-lines { gap:18px; }
  .journey-list article { grid-template-columns:45px 1fr; gap:18px; }
  .outcome-panel { padding:30px 24px; }
  .investor-quote { padding:30px 25px; }
}

/* Practice and professional detail pages */
.detail-hero { position:relative; overflow:hidden; }
.detail-hero .icon-wrap { width:64px; height:64px; margin-bottom:25px; color:#70d8f7; border-color:rgba(112,216,247,.35); background:rgba(24,169,213,.12); }
.detail-hero .icon-wrap svg { width:34px; height:34px; }
.detail-layout { display:grid; grid-template-columns:1.25fr .75fr; gap:85px; align-items:start; }
.detail-prose > p { color:var(--muted); font-size:1.04rem; margin:0 0 20px; }
.detail-prose h2 { margin:45px 0 20px; }.detail-prose h2:first-child { margin-top:0; }
.detail-list { display:grid; grid-template-columns:1fr 1fr; gap:0 35px; margin:20px 0 0; padding:0; list-style:none; }
.detail-list li { padding:13px 0 13px 22px; border-bottom:1px solid var(--line); color:var(--muted); position:relative; }
.detail-list li::before { content:""; position:absolute; left:0; top:22px; width:7px; height:7px; background:#18a9d5; }
.practice-nav { padding:30px; background:#f4f8fa; position:sticky; top:105px; }
.practice-nav h3 { margin-bottom:16px; }.practice-nav a:not(.btn) { display:block; padding:10px 0; border-bottom:1px solid var(--line); font-size:.86rem; }
.practice-nav a:not(.btn):hover { color:#087ca3; }.practice-nav .btn { width:100%; margin-top:22px; }
.profile-layout { display:grid; grid-template-columns:.65fr 1.35fr; gap:75px; align-items:start; }
.profile-photo { position:sticky; top:105px; }
.profile-photo img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:top; }
.profile-photo .role { padding:20px; background:#071e2b; color:#fff; }
.profile-photo .role strong { display:block; font:700 1.25rem var(--serif); }.profile-photo .role span { color:#70d8f7; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; }
.profile-facts { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:35px 0; }
.profile-fact { padding:22px; background:#f4f8fa; }.profile-fact small { color:#087ca3; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }.profile-fact p { margin-top:7px; color:var(--muted); }
.person a { display:block; }.person a:hover h3 { color:#087ca3; }
@media(max-width:960px){.detail-layout,.profile-layout{grid-template-columns:1fr;gap:45px}.practice-nav,.profile-photo{position:static}.profile-photo{max-width:520px}.detail-list{grid-template-columns:1fr}}
@media(max-width:620px){.profile-facts{grid-template-columns:1fr}}

/* Compact editorial treatment for individual professional profiles. */
.profile-page .page-hero:not(.about-hero) {
  min-height:340px;
  padding:68px 0;
}
.profile-page .page-hero:not(.about-hero)::before {
  inset:0;
  opacity:1;
  background:
    linear-gradient(90deg,rgba(112,216,247,.13) 1px,transparent 1px) 72% 0/72px 72px,
    linear-gradient(rgba(112,216,247,.09) 1px,transparent 1px) 72% 0/72px 72px,
    radial-gradient(circle at 82% 44%,rgba(24,169,213,.22),transparent 25%),
    linear-gradient(120deg,#071e2b 0%,#092b3b 100%);
}
.profile-page .page-hero:not(.about-hero)::after {
  content:"IPC";
  position:absolute;
  right:5vw;
  top:50%;
  transform:translateY(-52%);
  color:rgba(255,255,255,.045);
  font:800 clamp(7rem,15vw,13rem)/1 var(--sans);
  letter-spacing:-.08em;
}
.profile-page .page-hero .container { position:relative;z-index:1; }
.profile-page .page-hero h1 {
  max-width:760px;
  margin-top:10px;
  font-size:clamp(2.45rem,4.5vw,4.35rem);
  line-height:1;
}
.profile-page .page-hero p {
  max-width:650px;
  margin-top:18px;
  font-size:1rem;
}
.profile-page .section { padding:76px 0 88px; }
.profile-page .profile-layout {
  grid-template-columns:minmax(250px,.52fr) minmax(0,1.48fr);
  gap:54px;
}
.profile-page .profile-photo {
  top:118px;
  overflow:hidden;
  border:1px solid rgba(7,30,43,.12);
  background:#fff;
  box-shadow:0 14px 36px rgba(7,30,43,.09);
}
.profile-page .profile-photo img { aspect-ratio:4/4.75; }
.profile-page .profile-photo .role { padding:17px 19px; }
.profile-page .profile-photo .role strong { font-size:1.08rem; }
.profile-page .profile-photo .role span { margin-top:3px;font-size:.65rem; }
.profile-page .detail-prose { max-width:780px; }
.profile-page .detail-prose h2 {
  display:flex;
  align-items:center;
  gap:16px;
  margin:32px 0 14px;
  font-size:1.38rem;
  letter-spacing:-.025em;
}
.profile-page .detail-prose h2::before {
  display:none;
}
.profile-section-icon {
  width:58px;
  height:58px;
  flex:none;
  display:grid;
  place-items:center;
  color:#071e2b;
  background:linear-gradient(145deg,#dff6fc,#aee8f8);
  border:1px solid rgba(7,30,43,.12);
  box-shadow:7px 7px 0 rgba(24,169,213,.12);
}
.profile-section-icon svg { width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round; }
.profile-page .detail-prose h2:first-child { margin-top:0; }
.profile-page .detail-prose>p {
  margin-bottom:14px;
  font-size:.95rem;
  line-height:1.72;
}
.profile-page .profile-facts {
  gap:12px;
  margin:25px 0 28px;
}
.profile-page .profile-fact {
  position:relative;
  min-height:142px;
  padding:18px 19px;
  border-top:3px solid #18a9d5;
  background:#f3f8fa;
}
.profile-fact-icon {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  margin-bottom:14px;
  color:#087ca3;
  border:1px solid rgba(8,124,163,.2);
  background:#fff;
}
.profile-fact-icon svg { width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.profile-page .profile-fact small { font-size:.64rem; }
.profile-page .profile-fact p { margin-top:5px;font-size:.86rem;line-height:1.55; }
.profile-page .detail-list {
  gap:0 24px;
  margin-top:10px;
}
.profile-page .detail-list li {
  padding:10px 0 10px 18px;
  font-size:.87rem;
}
.profile-page .detail-list li::before { top:18px;width:6px;height:6px; }
.profile-page .detail-prose .btn { margin-top:8px; }
@media(max-width:960px) {
  .profile-page .profile-layout { grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:38px; }
  .profile-page .profile-photo { position:sticky;top:105px; }
}
@media(max-width:760px) {
  .profile-page .page-hero:not(.about-hero) { min-height:300px;padding:58px 0; }
  .profile-page .page-hero h1 { font-size:clamp(2.25rem,10vw,3.15rem); }
  .profile-page .section { padding:58px 0 70px; }
  .profile-page .profile-layout { grid-template-columns:1fr;gap:34px; }
  .profile-page .profile-photo { position:static;max-width:360px; }
}

/* About page */
.about-hero { padding:105px 0 90px; }
.about-hero .btn-outline { color:#fff;border-color:rgba(255,255,255,.55); }
.about-hero .btn-outline:hover { color:#071e2b;border-color:#fff;background:#fff; }
.about-hero-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:center; }
.about-hero-mark { display:grid; place-items:center; min-height:310px; position:relative; }
.about-hero-mark::before,.about-hero-mark::after { content:""; position:absolute; border:1px solid rgba(112,216,247,.18); border-radius:50%; }
.about-hero-mark::before { width:310px;height:310px; }.about-hero-mark::after { width:225px;height:225px; }
.about-hero-mark img { width:180px; filter:brightness(0) invert(1); opacity:1; position:relative;z-index:1; }
.about-hero-mark::after { background:rgba(112,216,247,.045);box-shadow:0 0 70px rgba(24,169,213,.12); }
.about-facts { background:#18a9d5; color:#071e2b; }
.about-facts .container { display:grid; grid-template-columns:repeat(4,1fr); }
.about-facts .container > div { padding:30px; border-right:1px solid rgba(7,30,43,.2); }
.about-facts strong { display:block; font:700 1.35rem var(--serif); }.about-facts span { font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.about-story-grid { display:grid;grid-template-columns:.95fr 1.05fr;gap:85px;align-items:center; }
.about-story-image { position:relative; }.about-story-image > img { width:100%;min-height:560px;object-fit:cover;filter:saturate(.72); }
.story-badge { position:absolute;right:-35px;bottom:32px;background:#fff;padding:22px;box-shadow:var(--shadow);display:flex;gap:17px;align-items:center; }
.story-badge img { width:58px;height:54px;object-fit:contain; }.story-badge span { font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.6; }
.about-values-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px; }.about-values-grid .value-card { min-height:175px; }
.vision-mission { display:grid;grid-template-columns:1fr 1fr;gap:22px; }.vision-mission article { padding:45px;border:1px solid var(--line); }
.vision-mission .icon-wrap { margin-bottom:55px; }.vision-mission h2 { margin-top:12px;font-size:clamp(1.55rem,2.6vw,2.5rem); }
.section-dark .trust-item { border-color:rgba(255,255,255,.14); }.section-dark .trust-item strong { color:#fff; }.section-dark .trust-item p { color:#aebcb8; }

/* Unified footer */
.footer { padding:0;background:#061923; }
.footer-consult { background:#0b2a38;border-bottom:1px solid rgba(255,255,255,.1);padding:62px 0; }
.footer-consult .container { display:flex;justify-content:space-between;align-items:center;gap:55px; }
.footer-consult h2 { color:#fff;font-size:clamp(2rem,3.5vw,3.35rem);margin:8px 0 10px; }.footer-consult p { color:#aebcc2; }
.footer-consult-actions { display:flex;align-items:center;gap:32px;flex:none; }.footer-phone { color:#fff;font-weight:700;font-size:1rem; }.footer-phone small { display:block;color:#70d8f7;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase; }
.footer-main { display:grid;grid-template-columns:1.35fr .7fr 1fr 1fr;gap:55px;padding-top:70px;padding-bottom:60px; }
.footer-main h3 { color:#70d8f7;margin-bottom:21px; }.footer-main p { color:#aebbb7; }.footer-main a { margin:9px 0; }
.footer-brand p { max-width:360px; }.footer-motto { margin-top:28px;color:#dbe5e7;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:9px;flex-wrap:wrap; }.footer-motto i { width:4px;height:4px;background:#18a9d5;border-radius:50%; }
.footer .footer-bottom { margin-top:0;padding:22px 0;border-top:1px solid rgba(255,255,255,.1); }.footer-bottom > div { display:flex;gap:24px; }
@media(max-width:960px){.about-hero-grid,.about-story-grid{grid-template-columns:1fr}.about-hero-mark{display:none}.about-facts .container{grid-template-columns:1fr 1fr}.about-values-grid,.vision-mission{grid-template-columns:1fr}.footer-consult .container{align-items:flex-start;flex-direction:column}.footer-main{grid-template-columns:1fr 1fr}.story-badge{right:20px}.footer-consult-actions{flex-wrap:wrap}}
@media(max-width:620px){.about-facts .container,.about-values-grid,.footer-main{grid-template-columns:1fr}.about-facts .container>div{border-right:0;border-bottom:1px solid rgba(7,30,43,.2)}.story-badge{position:relative;right:auto;bottom:auto;margin:-40px 18px 0}.vision-mission article{padding:30px 25px}.footer-consult-actions{align-items:flex-start;flex-direction:column}.footer .footer-bottom>div{flex-direction:column;gap:8px}}

/* Homepage conversion journey */
.home-intro-line { display:flex;justify-content:space-between;align-items:center;padding-bottom:28px;border-bottom:1px solid var(--line); }
.home-intro-line p { color:var(--muted);font-size:.88rem; }
.home-intro-title { display:grid;grid-template-columns:1fr .8fr;gap:90px;align-items:end;padding:52px 0 62px; }
.home-intro-title h2 { font-size:clamp(2.8rem,5.7vw,5.7rem); }
.home-intro-title p { color:var(--muted);font-size:1.08rem;max-width:520px; }
.intent-grid { display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line); }
.intent-card { min-height:390px;padding:27px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .3s ease,color .3s ease,transform .3s ease; }
.intent-card>span { color:#159fc9;font-size:.7rem;font-weight:800;letter-spacing:.12em; }
.intent-card small,.expertise-bento span { display:block;margin-bottom:14px;color:#168eb3;font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase; }
.intent-card h3 { font-size:clamp(1.4rem,2vw,1.9rem);margin-bottom:16px; }
.intent-card p { color:var(--muted);font-size:.9rem; }
.intent-card b { font-size:.67rem;letter-spacing:.08em;text-transform:uppercase; }
.intent-card:hover { background:#eef8fb;transform:translateY(-7px);box-shadow:0 22px 50px rgba(7,30,43,.09); }
.intent-card-featured { color:#fff;background:#087ca3;border-color:#087ca3; }
.intent-card-featured>span,.intent-card-featured small { color:#aeeafd; }.intent-card-featured p { color:#dcecf1; }
.intent-card-featured:hover { background:#071e2b; }

.home-counsel { min-height:760px;display:grid;grid-template-columns:1fr 1fr;background:#071e2b;color:#fff; }
.home-counsel-image { background:linear-gradient(0deg,rgba(7,30,43,.2),rgba(7,30,43,.05)),url("../images/site/dar-waterfront.jpg") center/cover; }
.home-counsel-copy { padding:clamp(65px,8vw,125px);align-self:center; }
.home-counsel-copy h2 { margin:14px 0 28px;font-size:clamp(2.7rem,4.8vw,5rem); }
.home-counsel-lead { color:#c4d2d7;font-size:1.05rem;max-width:650px; }
.counsel-promises { margin:46px 0 35px;border-top:1px solid rgba(255,255,255,.14); }
.counsel-promises div { display:grid;grid-template-columns:35px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.14); }
.counsel-promises span { color:#70d8f7;font-size:.7rem;font-weight:800; }.counsel-promises p { color:#aebdc2;font-size:.9rem; }.counsel-promises strong { color:#fff; }
.home-counsel .text-link { color:#70d8f7; }

.expertise-heading { display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:end;margin-bottom:60px; }
.expertise-heading h2 { margin-top:12px;font-size:clamp(2.7rem,5vw,5.25rem); }.expertise-heading>p { max-width:540px;color:var(--muted);font-size:1.05rem; }
.expertise-bento { display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:290px 290px;gap:14px; }
.expertise-bento a { position:relative;padding:34px;background:#fff;border:1px solid var(--line);overflow:hidden;transition:transform .28s ease,box-shadow .28s ease,background .28s ease; }
.expertise-bento h3 { max-width:390px;font-size:clamp(1.35rem,2vw,2rem); }.expertise-bento p { margin-top:20px;max-width:410px;color:var(--muted);font-size:.9rem; }
.expertise-bento b { position:absolute;right:24px;bottom:15px;color:rgba(7,30,43,.08);font-size:4rem;line-height:1; }
.expertise-bento a:hover { transform:translateY(-5px);box-shadow:0 20px 45px rgba(7,30,43,.08);background:#f8fdff; }
.expertise-large { grid-row:1/3;background:#dff4fa!important;padding:48px!important; }.expertise-large h3 { font-size:clamp(2rem,3.5vw,3.55rem); }.expertise-large b { font-size:8rem!important; }
.expertise-dark { color:#fff;background:#071e2b!important; }.expertise-dark span { color:#70d8f7; }.expertise-dark b { color:rgba(255,255,255,.08)!important; }
.expertise-all { margin-top:38px; }

.investor-story-grid { display:grid;grid-template-columns:.9fr 1.1fr;gap:110px;align-items:center; }
.investor-story-copy h2 { margin:15px 0 26px;font-size:clamp(2.7rem,4.7vw,4.9rem); }.investor-story-copy p { color:#afbec3;max-width:560px;margin-bottom:34px; }
.investor-route { border-top:1px solid rgba(255,255,255,.18); }
.investor-route>div { display:grid;grid-template-columns:52px 1fr auto;gap:22px;align-items:center;padding:27px 0;border-bottom:1px solid rgba(255,255,255,.18); }
.investor-route b { color:#70d8f7;font-size:.7rem; }.investor-route span { font-weight:700;font-size:1.08rem; }.investor-route small { color:#82969d; }
.investor-recognition { margin-top:90px;padding-top:28px;border-top:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:.7fr 1.3fr auto;gap:40px;align-items:center; }
.investor-recognition span { color:#70d8f7;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase; }.investor-recognition p { color:#aebdc2;font-size:.87rem; }.investor-recognition a { font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase; }

.people-editorial { display:grid;grid-template-columns:1.1fr .8fr .65fr;gap:18px;align-items:end; }
.people-message { padding-right:65px;align-self:center; }.people-message h2 { margin:14px 0 25px;font-size:clamp(2.7rem,4.4vw,4.7rem); }.people-message p { color:var(--muted);margin-bottom:34px;max-width:520px; }
.people-feature { position:relative;min-height:610px;overflow:hidden;background:#071e2b; }.people-feature-secondary { min-height:480px; }
.people-feature img { width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:top center;filter:saturate(.75);transition:transform .6s ease,filter .4s ease; }
.people-feature::after { content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(4,20,29,.92)); }
.people-feature>div { position:absolute;z-index:2;left:28px;right:28px;bottom:28px;color:#fff; }.people-feature small { color:#70d8f7;text-transform:uppercase;letter-spacing:.1em; }.people-feature h3 { margin:7px 0 14px;font-size:1.8rem; }.people-feature span { font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em; }
.people-feature:hover img { transform:scale(1.035);filter:saturate(1); }

.home-contact { padding:95px 0;background:#18a9d5;color:#071e2b; }
.home-contact .container { display:grid;grid-template-columns:1.2fr .8fr;gap:90px;align-items:center; }.home-contact h2 { margin-top:12px;font-size:clamp(2.6rem,4.8vw,5rem); }
.home-contact .eyebrow { color:#071e2b; }.home-contact-actions { display:grid;gap:14px; }.home-contact-actions>.btn { width:100%;background:#071e2b;color:#fff; }
.home-contact-actions>a:not(.btn) { padding:17px 0;border-bottom:1px solid rgba(7,30,43,.25);display:flex;justify-content:space-between;gap:20px; }.home-contact-actions small { text-transform:uppercase;font-weight:800;letter-spacing:.08em; }.home-contact-actions strong { font-size:.92rem; }
.home-page .footer-consult { display:none; }

@media(max-width:1050px){
  .intent-grid{grid-template-columns:1fr 1fr}.intent-card{min-height:330px}.home-counsel{grid-template-columns:.8fr 1.2fr}.home-counsel-copy{padding:70px 50px}.expertise-bento{grid-template-columns:1fr 1fr;grid-template-rows:auto}.expertise-bento a{min-height:270px}.expertise-large{grid-row:auto;grid-column:1/3}.investor-story-grid{gap:60px}.people-editorial{grid-template-columns:1fr 1fr}.people-message{grid-column:1/3;padding:0 0 45px}.people-feature-secondary{min-height:610px}
}
@media(max-width:760px){
  .home-intro-line{align-items:flex-start;gap:15px;flex-direction:column}.home-intro-title,.expertise-heading,.investor-story-grid,.home-contact .container{grid-template-columns:1fr;gap:30px}.intent-grid{grid-template-columns:1fr}.intent-card{min-height:290px}.home-counsel{grid-template-columns:1fr}.home-counsel-image{min-height:420px}.home-counsel-copy{padding:65px 24px}.expertise-bento{display:grid;grid-template-columns:1fr}.expertise-large{grid-column:auto;padding:34px!important}.expertise-bento a{min-height:250px}.investor-route>div{grid-template-columns:38px 1fr}.investor-route small{grid-column:2}.investor-recognition{grid-template-columns:1fr;gap:15px}.people-editorial{grid-template-columns:1fr}.people-message{grid-column:auto}.people-feature,.people-feature-secondary{min-height:520px}.home-contact-actions>a:not(.btn){align-items:flex-start;flex-direction:column;gap:4px}
}

/* About: IPC principles as the visual identity */
.about-hero-mark::before,.about-hero-mark::after { display:none; }
.about-hero-mark { min-height:360px; }
.about-hero-mark img { width:min(100%,540px);filter:none;opacity:1;transition:transform .45s ease,filter .45s ease; }.about-hero-mark:hover img { transform:translateY(-5px);filter:drop-shadow(0 18px 28px rgba(0,0,0,.15)); }
.ipc-values { grid-template-columns:repeat(3,1fr);gap:18px; }
.ipc-values .value-card { min-height:320px;padding:34px;display:flex;flex-direction:column;justify-content:space-between;gap:42px;background:#fff; }
.ipc-values .value-card::after { position:absolute;right:24px;top:24px;color:#9aabb1;font-size:.58rem;font-weight:800;letter-spacing:.12em; }
.ipc-values .value-card:nth-child(1)::after { content:"01"; }.ipc-values .value-card:nth-child(2)::after { content:"02"; }.ipc-values .value-card:nth-child(3)::after { content:"03"; }
.value-letter { position:relative;isolation:isolate;width:102px;height:88px;display:grid;place-items:center;color:#17222a;font:italic 700 clamp(4.8rem,7vw,6.8rem)/.8 Georgia,"Times New Roman",serif;letter-spacing:-.16em;text-indent:-.12em;text-shadow:2px 2px 0 #8b969b;transition:color .3s ease,transform .3s ease; }
.value-letter::before { content:"";position:absolute;z-index:-2;left:7px;top:4px;width:58px;height:78px;background:repeating-linear-gradient(90deg,transparent 0 7px,rgba(24,169,213,.58) 7px 9px); }
.value-letter::after { content:"";position:absolute;z-index:-1;left:0;top:0;width:34px;height:34px;border-left:2px solid #18a9d5;border-top:2px solid #18a9d5; }
.value-letter::before,.value-letter::after { transition:transform .42s ease,background-color .3s ease,border-color .3s ease; }
.ipc-values .value-card:nth-child(1):hover .value-letter { color:#087ca3;transform:translateY(-8px) rotate(-4deg); }
.ipc-values .value-card:nth-child(2):hover .value-letter { color:#087ca3;transform:translateY(-6px) scale(1.07) rotate(2deg); }
.ipc-values .value-card:nth-child(3):hover .value-letter { color:#087ca3;transform:translate(4px,-7px) rotate(-3deg); }
.ipc-values .value-card:hover .value-letter::before { transform:translateX(5px) skewX(-3deg);background-color:rgba(24,169,213,.04); }
.ipc-values .value-card:hover .value-letter::after { transform:translate(-2px,-2px);border-color:#087ca3; }
.ipc-values .value-card h3 { margin-bottom:10px;font-size:1.7rem; }.ipc-values .value-card p { color:var(--muted);font-size:.9rem; }
.value-brand-letter { position:relative;width:118px;height:105px;display:grid;place-items:center;isolation:isolate;transition:transform .38s ease,filter .38s ease; }
.value-brand-letter b { position:relative;z-index:1;color:#17222a;font:italic 700 6.6rem/.8 Georgia,"Times New Roman",serif;letter-spacing:-.12em;text-shadow:2px 2px 0 #87969d;transform:translateX(-5px); }
.value-brand-letter img { position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;pointer-events:none; }
.value-brand-letter::after { content:"";position:absolute;z-index:0;left:17px;bottom:9px;width:82px;height:4px;background:#18a9d5;transform:skewX(-28deg);opacity:.9; }
.ipc-values .value-card:nth-child(1):hover .value-brand-letter { transform:translateY(-7px) rotate(-3deg); }
.ipc-values .value-card:nth-child(2):hover .value-brand-letter { transform:translateY(-7px) scale(1.06); }
.ipc-values .value-card:nth-child(3):hover .value-brand-letter { transform:translate(4px,-7px) rotate(2deg); }
.ipc-values .value-card:hover .value-brand-letter { filter:drop-shadow(0 10px 12px rgba(7,30,43,.12)); }
@media(max-width:900px){.ipc-values{grid-template-columns:1fr}.ipc-values .value-card{min-height:250px}.about-hero-mark{display:none}}
@media(prefers-reduced-motion:reduce){.about-hero-mark img,.value-letter,.value-letter::before,.value-letter::after{transition:none}.about-hero-mark:hover img,.ipc-values .value-card:hover .value-letter,.ipc-values .value-card:hover .value-letter::before,.ipc-values .value-card:hover .value-letter::after{transform:none}}

/* Keep the Investor Support story hero on its own balanced grid. */
.page-hero.isp-story-hero { min-height:auto;padding:88px 0;display:block;background:linear-gradient(135deg,#071e2b 0%,#0a2b3a 100%); }
.page-hero.isp-story-hero::before,.page-hero.isp-story-hero::after,.page-hero.isp-story-hero .container::before { display:none; }
.isp-story-hero .isp-hero-grid { grid-template-columns:minmax(0,1.08fr) minmax(380px,.82fr);gap:72px;align-items:center; }
.isp-story-hero .isp-hero-grid>div:first-child { align-self:center;padding-bottom:8px; }
.isp-story-hero h1 { max-width:720px;font-size:clamp(2.7rem,4.25vw,4.55rem); }
.isp-story-hero .certificate-wrap { width:100%;max-width:490px;justify-self:end;transform:rotate(.65deg); }
@media(max-width:960px){
  .isp-story-hero .isp-hero-grid{grid-template-columns:1fr;gap:55px}
  .isp-story-hero .certificate-wrap{justify-self:center;max-width:560px}
}

/* Final override: individual professional profiles never use the team photograph. */
body.inner-team.profile-page .page-hero:not(.about-hero):not(.isp-story-hero)::before {
  inset:0;
  opacity:1;
  background-image:
    linear-gradient(90deg,rgba(112,216,247,.13) 1px,transparent 1px),
    linear-gradient(rgba(112,216,247,.09) 1px,transparent 1px),
    radial-gradient(circle at 82% 44%,rgba(24,169,213,.22),transparent 25%),
    linear-gradient(120deg,#071e2b 0%,#092b3b 100%);
  background-position:72% 0,72% 0,center,center;
  background-size:72px 72px,72px 72px,auto,auto;
  background-repeat:repeat,repeat,no-repeat,no-repeat;
}
body.inner-team.profile-page .page-hero:not(.about-hero):not(.isp-story-hero)::after {
  content:"";
  z-index:0;
  right:3.5vw;
  top:50%;
  bottom:auto;
  width:min(42vw,500px);
  height:300px;
  transform:translateY(-50%);
  background:url("../images/site/profile-legal-motif.svg") center/contain no-repeat;
  filter:none;
  opacity:.72;
}
@media(max-width:760px) {
  body.inner-team.profile-page .page-hero:not(.about-hero):not(.isp-story-hero)::after {
    right:-70px;
    width:360px;
    opacity:.2;
  }
}

/* Individual service heroes mirror the professional-profile treatment. */
body.inner-practice.practice-detail-page .page-hero.detail-hero {
  min-height:340px;
  padding:68px 0;
}
body.inner-practice.practice-detail-page .page-hero.detail-hero::before {
  inset:0;
  opacity:1;
  background-image:
    linear-gradient(90deg,rgba(112,216,247,.13) 1px,transparent 1px),
    linear-gradient(rgba(112,216,247,.09) 1px,transparent 1px),
    radial-gradient(circle at 82% 44%,rgba(24,169,213,.22),transparent 25%),
    linear-gradient(120deg,#071e2b 0%,#092b3b 100%);
  background-position:72% 0,72% 0,center,center;
  background-size:72px 72px,72px 72px,auto,auto;
  background-repeat:repeat,repeat,no-repeat,no-repeat;
}
body.inner-practice.practice-detail-page .page-hero.detail-hero::after { display:none; }
body.inner-practice.practice-detail-page .detail-hero>.container>.icon-wrap { display:none; }
body.inner-practice.practice-detail-page .detail-hero h1 {
  max-width:720px;
  margin-top:10px;
  font-size:clamp(2.45rem,4.5vw,4.35rem);
  line-height:1;
}
body.inner-practice.practice-detail-page .detail-hero p {
  max-width:620px;
  margin-top:18px;
  font-size:1rem;
}
.service-hero-motif {
  position:absolute;
  z-index:1;
  right:6vw;
  top:50%;
  width:min(30vw,300px);
  height:min(30vw,300px);
  display:grid;
  place-items:center;
  color:#70d8f7;
  border:1px solid rgba(112,216,247,.2);
  transform:translateY(-50%) rotate(2deg);
}
.service-hero-motif::before,.service-hero-motif::after {
  content:"";
  position:absolute;
  border:1px solid rgba(112,216,247,.12);
}
.service-hero-motif::before { inset:17px; }
.service-hero-motif::after { inset:38px;transform:rotate(45deg); }
.service-hero-motif svg {
  position:relative;
  z-index:1;
  width:54%;
  height:54%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.35;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 12px 24px rgba(24,169,213,.13));
}
@media(max-width:900px) {
  .service-hero-motif { right:-45px;width:260px;height:260px;opacity:.23; }
  body.inner-practice.practice-detail-page .detail-hero h1,
  body.inner-practice.practice-detail-page .detail-hero p { max-width:72%; }
}
@media(max-width:620px) {
  body.inner-practice.practice-detail-page .page-hero.detail-hero { min-height:300px;padding:58px 0; }
  body.inner-practice.practice-detail-page .detail-hero h1 { max-width:88%;font-size:clamp(2.2rem,10vw,3.1rem); }
  body.inner-practice.practice-detail-page .detail-hero p { max-width:82%; }
  .service-hero-motif { right:-100px;width:250px;height:250px;opacity:.16; }
}

/* Clear editorial structure for individual service content. */
.practice-detail-page .page-hero + .section {
  padding:72px 0 86px;
  background:#f3f7f9;
}
.practice-detail-page .detail-layout {
  grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);
  gap:30px;
}
.practice-detail-page .detail-prose {
  counter-reset:service-section;
  padding:42px 48px 46px;
  background:#fff;
  border:1px solid rgba(7,30,43,.1);
  box-shadow:0 15px 38px rgba(7,30,43,.055);
}
.practice-detail-page .detail-prose h2 {
  counter-increment:service-section;
  display:grid;
  grid-template-columns:38px 1fr;
  align-items:center;
  gap:13px;
  margin:36px 0 16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
  font-size:clamp(1.35rem,2vw,1.75rem);
  letter-spacing:-.025em;
}
.practice-detail-page .detail-prose h2:first-child { margin-top:0; }
.practice-detail-page .detail-prose h2::before {
  content:"0" counter(service-section);
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  color:#071e2b;
  background:#bdeeff;
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.06em;
}
.practice-detail-page .detail-prose>p {
  max-width:760px;
  margin-bottom:14px;
  font-size:.94rem;
  line-height:1.72;
}
.practice-detail-page .detail-list {
  gap:0 25px;
  margin:4px 0 7px;
}
.practice-detail-page .detail-list li {
  padding:11px 4px 11px 18px;
  font-size:.86rem;
  line-height:1.45;
}
.practice-detail-page .detail-list li::before { top:17px;width:6px;height:6px; }
.practice-detail-page .practice-nav {
  top:118px;
  padding:29px 27px;
  color:#fff;
  background:#071e2b;
  box-shadow:0 15px 38px rgba(7,30,43,.1);
}
.practice-detail-page .practice-nav h3 {
  margin-bottom:13px;
  padding-bottom:14px;
  border-bottom:2px solid #18a9d5;
  font-size:1.25rem;
}
.practice-detail-page .practice-nav a:not(.btn) {
  padding:12px 0;
  color:#c2d0d5;
  border-bottom-color:rgba(255,255,255,.13);
  font-size:.8rem;
  line-height:1.45;
}
.practice-detail-page .practice-nav a:not(.btn):hover {
  color:#70d8f7;
  padding-left:6px;
}
.practice-detail-page .practice-nav .btn {
  margin-top:24px;
  color:#071e2b;
  background:#70d8f7;
}
.practice-detail-page .practice-nav .btn:hover { color:#fff;background:#087ca3; }
@media(max-width:900px) {
  .practice-detail-page .detail-layout { grid-template-columns:1fr;gap:22px; }
  .practice-detail-page .practice-nav { position:static; }
}
@media(max-width:620px) {
  .practice-detail-page .page-hero + .section { padding:48px 0 62px; }
  .practice-detail-page .detail-prose { padding:30px 23px 34px; }
  .practice-detail-page .detail-prose h2 { grid-template-columns:34px 1fr;font-size:1.3rem; }
  .practice-detail-page .detail-prose h2::before { width:34px;height:34px; }
  .practice-detail-page .detail-list { grid-template-columns:1fr; }
}
@media(max-width:620px){.page-hero.isp-story-hero{padding:68px 0}.isp-story-hero .certificate-wrap{transform:none}}

@media(max-width:620px){.logo{width:155px}}

/* Clear, traditional homepage structure */
.classic-about-grid { display:grid;grid-template-columns:1fr .9fr;gap:100px;align-items:center; }
.classic-about-copy h2 { margin:14px 0 28px;font-size:clamp(2.7rem,4.6vw,4.8rem); }
.classic-about-copy>p { color:var(--muted);max-width:650px;margin-bottom:20px; }.classic-about-copy .classic-lead { color:#26363d;font-size:1.16rem;font-weight:600; }
.classic-about-actions { display:flex;align-items:center;gap:30px;margin-top:38px;flex-wrap:wrap; }
.classic-about-visual { position:relative;padding:0 0 52px 48px; }
.classic-about-visual>img { width:100%;height:610px;object-fit:cover;filter:saturate(.72); }
.classic-about-visual::before { content:"";position:absolute;left:0;top:45px;bottom:0;width:72%;background:#dff4fa;z-index:-1; }
.classic-signature { position:absolute;left:0;right:45px;bottom:0;background:#071e2b;color:#fff;padding:23px 28px;display:flex;align-items:center;gap:20px;box-shadow:var(--shadow); }
.classic-signature img { width:55px;filter:brightness(0) invert(1); }.classic-signature strong,.classic-signature span { display:block; }.classic-signature strong { font-size:.82rem;letter-spacing:.08em;text-transform:uppercase; }.classic-signature span { color:#9eb0b7;font-size:.78rem;margin-top:3px; }
.classic-section-head { display:grid;grid-template-columns:1fr .75fr;gap:100px;align-items:end;margin-bottom:60px; }
.classic-section-head h2 { margin-top:13px;font-size:clamp(2.6rem,4.4vw,4.6rem);max-width:760px; }.classic-section-head>p { color:var(--muted);font-size:1.02rem;max-width:540px; }
.classic-service-grid { display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line); }
.classic-service-grid>a { min-height:330px;padding:32px;position:relative;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;transition:transform .28s ease,box-shadow .28s ease,background .28s ease; }
.classic-service-grid>a:hover { z-index:2;transform:translateY(-6px);background:#f9fdff;box-shadow:0 22px 50px rgba(7,30,43,.1); }
.classic-service-grid small { position:absolute;right:27px;top:27px;color:#9ba9ae;font-weight:800; }.classic-service-grid h3 { margin:38px 0 15px;font-size:1.65rem; }.classic-service-grid p { color:var(--muted);font-size:.9rem; }.classic-service-grid b { position:absolute;left:32px;bottom:28px;font-size:.67rem;letter-spacing:.08em;text-transform:uppercase; }
.classic-service-grid .classic-service-all { color:#fff;background:#087ca3;border-color:#087ca3;padding:42px; }.classic-service-all span { color:#bceeff;font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase; }.classic-service-all h3 { font-size:2rem;margin-top:28px; }.classic-service-all:hover { background:#071e2b; }
.classic-trust-layout { display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center; }
.classic-trust-image { position:relative; }.classic-trust-image>img { width:100%;height:610px;object-fit:cover;filter:saturate(.65); }
.classic-trust-image>div { position:absolute;right:-38px;bottom:35px;padding:27px 30px;background:#18a9d5;color:#071e2b;min-width:210px; }.classic-trust-image strong,.classic-trust-image span { display:block; }.classic-trust-image strong { font-size:1.8rem;font-weight:800; }.classic-trust-image span { font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase; }
.classic-trust-list { border-top:1px solid var(--line); }.classic-trust-list article { display:grid;grid-template-columns:44px 1fr;gap:22px;padding:28px 0;border-bottom:1px solid var(--line); }.classic-trust-list article>span { color:#159fc9;font-size:.7rem;font-weight:800; }.classic-trust-list h3 { font-size:1.45rem;margin-bottom:8px; }.classic-trust-list p { color:var(--muted);font-size:.9rem;max-width:570px; }
.classic-investor { padding:85px 0;background:#071e2b;color:#fff; }.classic-investor .container { display:grid;grid-template-columns:1.1fr .8fr auto;gap:65px;align-items:center; }.classic-investor h2 { margin-top:12px;font-size:clamp(2rem,3.3vw,3.45rem); }.classic-investor p { color:#afbec3; }
.classic-contact { padding:105px 0;background:#18a9d5;color:#071e2b;text-align:center; }.classic-contact .eyebrow { color:#071e2b; }.classic-contact h2 { max-width:920px;margin:14px auto 48px;font-size:clamp(2.6rem,4.8vw,5rem); }.classic-contact .container>div { display:flex;justify-content:center;align-items:center;gap:45px;flex-wrap:wrap; }.classic-contact .btn { background:#071e2b;color:#fff; }.classic-contact-detail { text-align:left; }.classic-contact-detail small,.classic-contact-detail strong { display:block; }.classic-contact-detail small { font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px; }.classic-contact-detail strong { font-size:.95rem; }
@media(max-width:980px){.classic-about-grid,.classic-trust-layout{grid-template-columns:1fr;gap:65px}.classic-about-visual{max-width:680px}.classic-section-head{grid-template-columns:1fr;gap:25px}.classic-service-grid{grid-template-columns:1fr 1fr}.classic-investor .container{grid-template-columns:1fr 1fr}.classic-investor .btn{justify-self:start}.classic-investor .container>p{grid-column:2}.classic-trust-image>div{right:25px}}
@media(max-width:650px){.classic-about-visual{padding-left:20px}.classic-about-visual>img{height:470px}.classic-signature{right:0}.classic-service-grid{grid-template-columns:1fr}.classic-service-grid>a{min-height:300px}.classic-investor .container{grid-template-columns:1fr;gap:25px}.classic-investor .container>p{grid-column:auto}.classic-contact .container>div{align-items:flex-start;flex-direction:column;text-align:left}.classic-contact{text-align:left}.classic-contact h2{margin-left:0}.classic-contact-detail{text-align:left}}

/* Homepage refinement */
.home-classic .isp-banner { position:relative;overflow:hidden;background:#18a9d5;border-bottom:0; }
.home-classic .isp-banner::after { content:"ISP";position:absolute;right:-18px;top:50%;transform:translateY(-52%);font-size:8.5rem;font-weight:800;line-height:1;color:rgba(255,255,255,.09);letter-spacing:-.08em;pointer-events:none; }
.home-classic .isp-banner .container { grid-template-columns:84px 1fr auto;gap:28px;padding-block:25px; }
.isp-recognition-mark { width:82px;height:82px;position:relative;display:grid;place-content:center;text-align:center;color:#fff;background:#071e2b;border:1px solid rgba(255,255,255,.6);box-shadow:7px 7px 0 rgba(255,255,255,.25),inset 0 0 0 5px #071e2b,inset 0 0 0 6px rgba(112,216,247,.55);overflow:visible; }
.isp-recognition-mark::before { content:"RECOGNITION";position:absolute;left:-28px;top:50%;transform:translateY(-50%) rotate(-90deg);color:#071e2b;font-size:.42rem;font-weight:800;letter-spacing:.16em; }
.isp-recognition-mark::after { content:"";position:absolute;left:50%;bottom:-10px;width:18px;height:18px;background:#071e2b;border-right:1px solid rgba(255,255,255,.6);border-bottom:1px solid rgba(255,255,255,.6);transform:translateX(-50%) rotate(45deg);z-index:-1; }
.isp-recognition-mark span { position:relative;font-size:1.35rem;font-weight:800;line-height:1;letter-spacing:.03em; }.isp-recognition-mark span::after { content:"";display:block;width:24px;height:2px;margin:7px auto 5px;background:#70d8f7; }.isp-recognition-mark small { font-size:.44rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#bdeeff; }
.isp-recognition-copy>small { display:block;color:#0a3a4d;font-size:.61rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px; }
.home-classic .isp-banner strong { color:#071e2b;font-size:1.25rem;font-weight:800; }.home-classic .isp-banner p { color:var(--muted);font-size:.82rem;margin-top:4px; }
.home-classic .isp-banner p { color:#123a4a; }.home-classic .isp-banner .btn { z-index:1;background:#071e2b;color:#fff;border-color:#071e2b; }
.classic-about-visual { overflow:visible; }
.classic-about-photo { height:610px;overflow:hidden; }
.classic-about-photo img { width:100%;height:790px;object-fit:cover;object-position:center top;filter:saturate(.72); }
.classic-service-grid { gap:14px;border:0; }
.classic-service-grid>a { border:1px solid rgba(7,30,43,.11);box-shadow:0 8px 26px rgba(7,30,43,.045); }
.classic-service-grid .icon-wrap { width:58px;height:58px;color:#071e2b;background:#bdeeff;border:0;box-shadow:inset 0 0 0 1px rgba(7,30,43,.12); }
.classic-service-grid .icon-wrap svg { width:31px;height:31px;stroke-width:2; }
.classic-service-grid>a:hover .icon-wrap { color:#fff;background:#087ca3;transform:translateY(-3px) rotate(-2deg); }
.classic-service-grid>a::before { content:"";position:absolute;left:0;right:100%;top:0;height:3px;background:#18a9d5;transition:right .3s ease; }
.classic-service-grid>a:hover::before { right:0; }
.classic-service-grid>a.classic-service-all:hover { color:#fff;background:#071e2b;border-color:#071e2b; }
.classic-service-grid>a.classic-service-all:hover span { color:#70d8f7; }
.classic-service-grid>a.classic-service-all:hover b { color:#fff; }
.classic-trust-image>img { object-position:center; }
@media(max-width:760px){
  .home-classic .isp-banner .container{grid-template-columns:76px 1fr;gap:18px}.isp-recognition-mark{width:70px;height:70px}.isp-recognition-mark::before{display:none}.home-classic .isp-banner .btn{grid-column:1/3;width:100%}.classic-about-photo{height:470px}.classic-about-photo img{height:610px}.hero-slide-one,.hero-slide-two,.hero-slide-three{background-position:62% 30%}
}

/* Reliable button behaviour at every viewport */
.btn { max-width:100%;white-space:normal;text-align:center;line-height:1.25;padding-top:13px;padding-bottom:13px; }
@media(max-width:620px){
  .hero-actions .btn,.classic-about-actions .btn,.classic-investor .btn,.classic-contact .btn,.footer-consult-actions .btn{width:100%}
  .hero-actions,.classic-about-actions{align-items:stretch;flex-direction:column}
  .classic-about-actions .text-link{padding:10px 0}
  .home-classic .isp-banner::after{font-size:6rem;right:-12px}
}
@media(max-width:900px){
  .language-toggle{width:100%;justify-content:center;min-height:44px}
  .language-notice{left:50%;right:auto;transform:translate(-50%,-5px)}
  .language-control.show-notice .language-notice{transform:translateX(-50%)}
  .language-notice::before{left:50%;right:auto;margin-left:-5px}
}

/* Stronger ISP typography */
.isp-recognition-copy { padding-left:28px;border-left:1px solid rgba(7,30,43,.25); }
.isp-recognition-copy>small { display:inline-flex;padding:4px 8px;margin-bottom:7px;background:#071e2b;color:#fff; }
.home-classic .isp-banner strong { display:block;font-size:clamp(1.25rem,1.8vw,1.6rem);line-height:1.2;letter-spacing:-.025em; }
.home-classic .isp-banner p { max-width:710px;font-size:.86rem;font-weight:600; }

/* Carry the homepage card language through the inner pages */
.linked-services { gap:14px;border:0; }
.linked-services .service-card { position:relative;border:1px solid rgba(7,30,43,.11);box-shadow:0 8px 26px rgba(7,30,43,.045);overflow:hidden; }
.linked-services .service-card::before,.value-card::before,.trust-item::before { content:"";position:absolute;left:0;right:100%;top:0;height:3px;background:#18a9d5;transition:right .3s ease; }
.linked-services .service-card:hover::before,.value-card:hover::before,.trust-item:hover::before { right:0; }
.linked-services .icon-wrap,.value-card .icon-wrap,.trust-item .icon-wrap { width:58px;height:58px;color:#071e2b;background:#bdeeff;border:0;box-shadow:inset 0 0 0 1px rgba(7,30,43,.12); }
.linked-services .icon-wrap svg,.value-card .icon-wrap svg,.trust-item .icon-wrap svg { width:31px;height:31px;stroke-width:2; }
.value-card { grid-template-columns:58px 1fr; }
.value-card,.trust-item { position:relative;overflow:hidden;box-shadow:0 8px 26px rgba(7,30,43,.04);transition:transform .28s ease,box-shadow .28s ease; }
.value-card:hover,.trust-item:hover { transform:translateY(-5px);box-shadow:0 20px 42px rgba(7,30,43,.09); }
.team-grid .person { overflow:hidden;background:#fff;border:1px solid rgba(7,30,43,.11);box-shadow:0 8px 26px rgba(7,30,43,.045);transition:transform .28s ease,box-shadow .28s ease; }
.team-grid .person:hover { transform:translateY(-6px);box-shadow:0 22px 48px rgba(7,30,43,.1); }
.team-grid .person img { transition:transform .5s ease,filter .35s ease; }.team-grid .person:hover img { transform:scale(1.025);filter:saturate(1); }
.team-grid .person h3 { padding:0 20px;margin-top:20px; }.team-grid .person p { padding:0 20px 22px; }

/* Predictable button hover system */
.btn-primary:not(.featured-shine),.btn-outline { background-image:none; }
.btn-primary:not(.featured-shine) { background-color:#18a9d5;color:#071e2b; }
.btn-primary:not(.featured-shine):hover { background-color:#071e2b;color:#fff; }
.btn-outline { background-color:transparent; }
.btn-outline:hover { background-color:#18a9d5;color:#071e2b;border-color:#18a9d5; }
.hero .btn-primary:hover,.classic-investor .btn-primary:hover { background-color:#fff;color:#071e2b; }
.classic-contact .btn-primary { background-color:#071e2b;color:#fff; }.classic-contact .btn-primary:hover { background-color:#fff;color:#071e2b; }
.home-classic .isp-banner .featured-shine:hover { background-color:#0d3447;color:#fff;border-color:#0d3447; }
.cta-band .btn:not(.featured-shine):hover { background:#fff;color:#071e2b;border-color:#071e2b; }

/* Dark hero buttons must remain legible before interaction. */
.isp-story-hero .btn-outline {
  color:#fff;
  border-color:rgba(255,255,255,.58);
  background-color:rgba(255,255,255,.04);
}
.isp-story-hero .btn-outline:hover {
  color:#071e2b;
  border-color:#70d8f7;
  background-color:#70d8f7;
}
.isp-story-hero .btn-primary:hover {
  color:#071e2b;
  border-color:#fff;
  background-color:#fff;
}

/* Keep the rotating homepage message from moving the calls to action. */
.home-page .hero-copy [data-hero-eyebrow] { display:block;min-height:1.65em; }
.home-page .hero-copy [data-hero-title] { min-height:2.16em; }
.home-page .hero-copy [data-hero-text] { min-height:3.3em; }

/* A lighter recognition seal in place of the former block-shaped ISP badge. */
.home-classic .isp-recognition-mark {
  width:86px;
  height:86px;
  border-radius:50%;
  color:#fff;
  background:#071e2b;
  border:0;
  box-shadow:0 9px 22px rgba(7,30,43,.22);
  clip-path:polygon(50% 0,59% 6%,69% 3%,76% 12%,87% 13%,89% 24%,98% 31%,94% 41%,100% 50%,94% 59%,98% 69%,89% 76%,87% 87%,76% 88%,69% 97%,59% 94%,50% 100%,41% 94%,31% 97%,24% 88%,13% 87%,11% 76%,2% 69%,6% 59%,0 50%,6% 41%,2% 31%,11% 24%,13% 13%,24% 12%,31% 3%,41% 6%);
  overflow:hidden;
}
.home-classic .isp-recognition-mark::before {
  content:"";
  position:absolute;
  inset:9px;
  border:1px solid rgba(112,216,247,.82);
  border-radius:50%;
  transform:none;
}
.home-classic .isp-recognition-mark::after { display:none; }
.home-classic .isp-recognition-mark span { font-size:1.08rem; }
.home-classic .isp-recognition-mark span::before { content:"✓";display:grid;place-items:center;width:19px;height:19px;margin:0 auto 4px;border-radius:50%;background:#70d8f7;color:#071e2b;font-size:.72rem;font-weight:900;line-height:1; }
.home-classic .isp-recognition-mark span::after { width:18px;height:1px;margin:4px auto 3px;background:#70d8f7;opacity:.8; }
.home-classic .isp-recognition-mark small { color:#fff;font-size:.42rem; }

@media(max-width:620px) {
  .home-page .hero-copy [data-hero-title] { min-height:4.2em; }
  .home-page .hero-copy [data-hero-text] { min-height:6.6em; }
}
@media(max-width:760px){.isp-recognition-copy{padding-left:18px}.language-notice{width:min(210px,calc(100vw - 40px))}}
@media(max-width:960px){
  .nav-dropdown{display:block;width:100%}
  .nav-dropdown-toggle{width:100%;min-height:44px;padding:0 30px 0 0;text-align:left}
  .nav-dropdown-toggle::after{bottom:3px}
  .nav-dropdown-toggle i{right:8px}
  .nav-dropdown-menu,.nav-dropdown-wide .nav-dropdown-menu{position:static;width:100%;margin:0 0 8px;padding:6px;border-top:2px solid #18a9d5;box-shadow:none;opacity:1;visibility:visible;pointer-events:auto;transform:none!important;display:none!important;background:#f4f9fb}
  .nav-dropdown.open .nav-dropdown-menu,.nav-dropdown-wide.open .nav-dropdown-menu{display:block!important}
  .nav-dropdown-menu::before{display:none}
.nav-dropdown-menu a{padding:11px 12px}
}

/* Stronger, immediate navigation feedback. */
@media(min-width:961px) {
  .nav-dropdown-toggle {
    transition:color .18s ease;
  }
  .nav-dropdown:hover .nav-dropdown-toggle,
  .nav-dropdown:focus-within .nav-dropdown-toggle,
  .nav-dropdown.open .nav-dropdown-toggle {
    color:#087ca3;
  }
  .nav-dropdown-menu a {
    position:relative;
    border-left:4px solid transparent;
    transition:background-color .16s ease,border-color .16s ease,padding-left .16s ease,color .16s ease;
  }
  .nav-dropdown-menu a:hover,
  .nav-dropdown-menu a:focus-visible {
    padding-left:20px;
    color:#071e2b;
    background:#dff5fb;
    border-left-color:#18a9d5;
    outline:0;
  }
  .nav-dropdown-menu a:hover span,
  .nav-dropdown-menu a:focus-visible span {
    color:#087ca3;
  }
  .nav-dropdown-menu a:hover small,
  .nav-dropdown-menu a:focus-visible small {
    color:#334d58;
  }
  .nav-dropdown-menu,
  .nav-dropdown-wide .nav-dropdown-menu {
    transition:opacity .07s linear,transform .07s ease,visibility 0s;
  }
  .nav-dropdown-menu { transform:translate(-50%,4px); }
  .nav-dropdown-wide .nav-dropdown-menu { transform:translate(-36%,4px); }
}

/* Branded inner-page heroes */
.page-hero:not(.about-hero):not(.isp-story-hero) { position:relative;isolation:isolate;min-height:440px;padding:92px 0;display:flex;align-items:center;overflow:hidden;background:#071e2b; }
.page-hero:not(.about-hero):not(.isp-story-hero)::before { content:"";position:absolute;z-index:-2;inset:0 0 0 48%;background:linear-gradient(90deg,#071e2b 0%,rgba(7,30,43,.35) 45%,rgba(7,30,43,.08)),url("../images/site/dar-waterfront.jpg") center/cover no-repeat;opacity:.72; }
.page-hero:not(.about-hero):not(.isp-story-hero)::after { content:"";position:absolute;z-index:-1;right:-35px;bottom:-75px;width:330px;height:330px;background:url("../images/site/ipc-mark.svg") center/contain no-repeat;filter:brightness(0) invert(1);opacity:.055; }
.page-hero:not(.about-hero):not(.isp-story-hero) .container { position:relative;z-index:2; }
.page-hero:not(.about-hero):not(.isp-story-hero) .container::before { content:"";display:block;width:52px;height:3px;margin-bottom:24px;background:#18a9d5; }
.page-hero:not(.about-hero):not(.isp-story-hero) h1 { max-width:790px;font-size:clamp(2.7rem,4.6vw,4.85rem);text-wrap:balance; }
.page-hero:not(.about-hero):not(.isp-story-hero) p { max-width:650px;color:#c1d0d5; }
.inner-practice .page-hero:not(.about-hero)::before { background:linear-gradient(90deg,#071e2b 0%,rgba(7,30,43,.52) 48%,rgba(7,30,43,.2)),url("../images/site/service-3.jpg") center/cover no-repeat; }
.inner-team .page-hero:not(.about-hero)::before,.inner-gallery .page-hero:not(.about-hero)::before { inset:0 0 0 46%;background-image:linear-gradient(90deg,#071e2b 0%,rgba(7,30,43,.46) 45%,rgba(7,30,43,.12)),url("../images/site/hero-1.jpg");background-position:center,center 5%;background-size:auto,auto 165%;background-repeat:no-repeat; }
.inner-contact .page-hero:not(.about-hero)::before { background:linear-gradient(90deg,#071e2b 0%,rgba(7,30,43,.42) 48%,rgba(7,30,43,.1)),url("../images/site/dar-waterfront.jpg") center/cover no-repeat; }
@media(max-width:760px){
  .page-hero:not(.about-hero):not(.isp-story-hero){min-height:390px;padding:72px 0}
  .page-hero:not(.about-hero):not(.isp-story-hero)::before,.inner-team .page-hero:not(.about-hero)::before,.inner-gallery .page-hero:not(.about-hero)::before{inset:0;background-position:center;opacity:.42}
  .page-hero:not(.about-hero):not(.isp-story-hero){background:linear-gradient(90deg,#071e2b 0%,#071e2b 58%,#0a2b3a)}
}

/* More restrained footer typography */
.footer-main { font-size:.82rem; }
.footer-main h3 { font-size:.68rem;letter-spacing:.11em; }
.footer-main p,.footer-main a { font-size:.82rem;line-height:1.6; }
.footer-consult h2 { font-size:clamp(1.8rem,3vw,2.8rem); }
.footer-consult p { font-size:.88rem; }
.footer-phone { font-size:.88rem; }.footer-phone small { font-size:.58rem; }
.footer .footer-bottom { font-size:.7rem; }

/* Utility bar details */
.topbar-info { display:flex;align-items:center;gap:24px; }
.topbar-info>span { display:flex;align-items:center;gap:8px; }
.location-pin { width:9px;height:9px;border:1.5px solid #70d8f7;border-radius:50% 50% 50% 0;transform:rotate(-45deg); }.location-pin::after { content:"";display:block;width:2px;height:2px;margin:2px;border-radius:50%;background:#70d8f7; }
.hours-icon { width:11px;height:11px;position:relative;border:1.5px solid #70d8f7;border-radius:50%; }.hours-icon::before { content:"";position:absolute;left:4px;top:2px;width:1px;height:4px;background:#70d8f7; }.hours-icon::after { content:"";position:absolute;left:4px;top:5px;width:3px;height:1px;background:#70d8f7;transform:rotate(22deg);transform-origin:left; }

/* Organised gallery */
.gallery-feature-grid { display:grid;grid-template-columns:.72fr 1.28fr;gap:90px;align-items:center; }
.gallery-feature-copy h2 { margin:13px 0 24px;font-size:clamp(2.5rem,4.2vw,4.4rem); }.gallery-feature-copy p { color:var(--muted);margin-bottom:30px; }
.gallery-feature { margin:0;position:relative;padding:0 0 48px 42px; }.gallery-feature::before { content:"";position:absolute;z-index:-1;left:0;top:45px;bottom:0;width:58%;background:#dff4fa; }
.gallery-feature>div { height:560px;overflow:hidden; }.gallery-feature img { width:100%;height:730px;object-fit:cover;object-position:center top;filter:saturate(.75); }
.gallery-feature figcaption { position:absolute;left:0;right:38px;bottom:0;padding:22px 26px;background:#071e2b;color:#fff; }.gallery-feature figcaption span,.gallery-feature figcaption strong { display:block; }.gallery-feature figcaption span { color:#70d8f7;font-size:.62rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase; }.gallery-feature figcaption strong { margin-top:5px;font-size:.94rem; }
.gallery-team-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:15px; }
.gallery-team-grid>a,.gallery-team-quote { position:relative;min-height:390px;overflow:hidden;background:#071e2b; }
.gallery-team-grid>a img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;filter:saturate(.72);transition:transform .5s ease,filter .35s ease; }.gallery-team-grid>a::after { content:"";position:absolute;inset:48% 0 0;background:linear-gradient(transparent,rgba(4,19,28,.94)); }
.gallery-team-grid>a>div { position:absolute;z-index:2;left:22px;right:22px;bottom:21px;color:#fff; }.gallery-team-grid span { color:#70d8f7;font-size:.58rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase; }.gallery-team-grid h3 { margin-top:5px;font-size:1.25rem; }.gallery-team-grid>a:hover img { transform:scale(1.035);filter:saturate(1); }
.gallery-team-quote { padding:32px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;background:#087ca3; }.gallery-team-quote img { width:82px;margin-bottom:auto;filter:brightness(0) invert(1);opacity:.8; }.gallery-team-quote p { font-size:clamp(1.7rem,2.5vw,2.6rem);font-weight:800;line-height:1.15;letter-spacing:-.035em; }
@media(max-width:980px){.gallery-feature-grid{grid-template-columns:1fr;gap:55px}.gallery-feature-copy{max-width:690px}.gallery-team-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.topbar-info{gap:12px;flex-wrap:wrap}.gallery-feature{padding-left:20px}.gallery-feature>div{height:450px}.gallery-feature img{height:580px}.gallery-team-grid{grid-template-columns:1fr}.gallery-team-grid>a,.gallery-team-quote{min-height:480px}}

/* Immersive gallery */
.gallery-intro { display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid var(--line); }.gallery-intro h2 { margin-top:10px;font-size:clamp(2.6rem,4.3vw,4.5rem); }.gallery-intro>p { color:var(--muted);font-size:.84rem; }
.gallery-mosaic { display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:78px;grid-auto-flow:dense;gap:13px; }
.gallery-shot { grid-column:span 3;grid-row:span 5;position:relative;padding:0;border:0;background:#071e2b;overflow:hidden;cursor:zoom-in;text-align:left; }
.gallery-shot-wide { grid-column:span 6;grid-row:span 5; }.gallery-shot-tall { grid-column:span 3;grid-row:span 7; }
.gallery-shot img { width:100%;height:100%;object-fit:cover;object-position:top;filter:saturate(.74);transition:transform .55s ease,filter .4s ease; }.gallery-shot:nth-child(1) img,.gallery-shot:nth-child(3) img { height:128%;transform:translateY(-2%); }.gallery-shot:nth-child(5) img { object-position:center; }
.gallery-shot::after { content:"";position:absolute;inset:48% 0 0;background:linear-gradient(transparent,rgba(3,18,27,.88));opacity:.72;transition:opacity .3s ease; }.gallery-shot span { position:absolute;z-index:2;left:20px;right:20px;bottom:18px;color:#fff;font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;transform:translateY(5px);opacity:.86;transition:.3s ease; }
.gallery-shot:hover img { transform:scale(1.035);filter:saturate(1); }.gallery-shot:nth-child(1):hover img,.gallery-shot:nth-child(3):hover img { transform:translateY(-2%) scale(1.035); }.gallery-shot:hover::after { opacity:1; }.gallery-shot:hover span { transform:none;opacity:1; }.gallery-shot:focus-visible { outline:4px solid #18a9d5;outline-offset:3px; }
.gallery-lightbox { position:fixed;z-index:200;inset:0;padding:35px;display:grid;place-items:center;background:rgba(2,13,19,.94);opacity:0;visibility:hidden;pointer-events:none;transition:.25s ease; }.gallery-lightbox.open { opacity:1;visibility:visible;pointer-events:auto; }.gallery-lightbox figure { margin:0;max-width:min(1100px,92vw);max-height:88vh; }.gallery-lightbox img { display:block;max-width:100%;max-height:80vh;margin:auto;object-fit:contain; }.gallery-lightbox figcaption { margin-top:13px;color:#dce8eb;text-align:center;font-size:.78rem; }.gallery-lightbox>button { position:absolute;right:24px;top:20px;width:46px;height:46px;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;font-size:1.7rem;cursor:pointer;transition:.2s ease; }.gallery-lightbox>button:hover { color:#071e2b;background:#70d8f7;border-color:#70d8f7; }
body.gallery-open { overflow:hidden; }
@media(max-width:980px){.gallery-mosaic{grid-template-columns:repeat(6,1fr)}.gallery-shot{grid-column:span 3}.gallery-shot-wide{grid-column:span 6}}
@media(max-width:620px){.gallery-intro{align-items:flex-start;flex-direction:column}.gallery-mosaic{display:block}.gallery-shot,.gallery-shot-wide,.gallery-shot-tall{display:block;width:100%;height:430px;margin-bottom:13px}.gallery-lightbox{padding:20px}}

/* Individual profile heroes: intentionally image-free. Keep this last in the cascade. */
body.inner-team.profile-page .page-hero:not(.about-hero):not(.isp-story-hero)::before {
  inset:0;
  opacity:1;
  background-image:
    linear-gradient(90deg,rgba(112,216,247,.13) 1px,transparent 1px),
    linear-gradient(rgba(112,216,247,.09) 1px,transparent 1px),
    radial-gradient(circle at 82% 44%,rgba(24,169,213,.22),transparent 25%),
    linear-gradient(120deg,#071e2b 0%,#092b3b 100%);
  background-position:72% 0,72% 0,center,center;
  background-size:72px 72px,72px 72px,auto,auto;
  background-repeat:repeat,repeat,no-repeat,no-repeat;
}
