/* A Team Group — site styles.
   Palette and type follow the 2026 company profile: warm paper, ink, a single red accent.
   Display headlines are set in a serif for a quieter, more editorial register; UI and body stay in Inter. */

:root{
  --paper:#F4F2EA;
  --paper-2:#F8F6EE;
  --white:#FFFFFF;
  --ink:#141414;
  --ink-2:#4A4945;
  --muted:#6E6C64;
  --rule:#D9D3C3;
  --sand:#E1DFD8;
  --red:#D42A3F;
  --red-2:#EF4458;
  --night:#141414;
  --night-2:#1C1C1A;
  --night-fg:#F4F2EA;
  --night-muted:#A9A79E;
  --night-rule:#34332F;
  --serif:"Source Serif 4","Iowan Old Style","Georgia",serif;
  --sans:"Inter","Helvetica Neue",Arial,sans-serif;
  --max:1280px;
  --gutter:clamp(16px,4vw,56px);
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.skip{position:absolute;top:8px;inset-inline-start:8px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:100;transform:translateY(-300%)}
.skip:focus{transform:none}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
.num{font-variant-numeric:tabular-nums lining-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* type */
h1,h2,h3,h4{margin:0;font-weight:400;text-wrap:balance}
.display,h1,h2{font-family:var(--serif);letter-spacing:-.018em;font-optical-sizing:auto}
h2{font-size:clamp(34px,4.6vw,60px);line-height:1.06}
h3{font-family:var(--sans);font-weight:600;font-size:clamp(18px,1.5vw,21px);line-height:1.3;letter-spacing:-.01em}
em{font-style:italic}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.eyebrow.red{color:var(--red)}
.lede{font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:var(--ink-2);max-width:60ch}
.small{font-size:14px;color:var(--muted)}

/* marks: brand symbols drawn as SVG so they stay crisp and take the text colour */
.mark{width:22px;height:22px;flex:none;color:var(--red)}
.mark.lg{width:30px;height:30px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;font:600 15px/1 var(--sans);letter-spacing:.01em;text-decoration:none;padding:17px 26px;border:1px solid currentColor;color:var(--ink);background:transparent;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.btn .arr{transition:transform .25s}
.btn:hover .arr{transform:translateX(4px)}
.btn.solid{background:var(--red);border-color:var(--red);color:#fff}
.btn.solid:hover{background:#B8233A;border-color:#B8233A}
.btn.ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.on-dark .btn.ghost{color:var(--night-fg)}
.on-dark .btn.ghost:hover{background:var(--night-fg);color:var(--ink);border-color:var(--night-fg)}
.link{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.link:hover{color:var(--red)}

/* ---------- header ---------- */
.site-head{position:fixed;inset:0 0 auto;z-index:50;color:var(--night-fg);transition:background .35s,color .35s,box-shadow .35s}
.site-head .bar{display:flex;align-items:center;justify-content:space-between;gap:24px;height:84px;transition:height .35s}
.site-head .logo{height:38px;width:auto}
.site-head .logo-ink{display:none}
.site-head.solid{background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);color:var(--ink);box-shadow:0 1px 0 var(--rule)}
.site-head.solid .bar{height:70px}
.site-head.solid .logo-paper{display:none}
.site-head.solid .logo-ink{display:block}
.nav{display:flex;align-items:center;gap:34px}
.nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.nav ul a{text-decoration:none;font-size:14.5px;font-weight:500;opacity:.82;transition:opacity .2s}
.nav ul a:hover{opacity:1}
.lang{display:flex;gap:2px;font-size:13px;font-weight:600;letter-spacing:.06em}
.lang a,.lang span{padding:6px 8px;text-decoration:none;opacity:.55}
.lang [aria-current]{opacity:1;border-bottom:1px solid currentColor}
.lang a:hover{opacity:1}
.head-cta{padding:13px 20px;font-size:14px;color:inherit}
.site-head .head-cta:hover{background:var(--red);border-color:var(--red);color:#fff}
.menu-btn{display:none;background:none;border:1px solid currentColor;color:inherit;font:600 14px var(--sans);padding:10px 16px;cursor:pointer}
@media (max-width:1060px){
  .nav ul,.head-cta{display:none}
  .menu-btn{display:inline-block}
  .nav.open{position:fixed;inset:70px 0 auto;background:var(--paper);color:var(--ink);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gutter) 24px;box-shadow:0 1px 0 var(--rule)}
  .nav.open ul{display:flex;flex-direction:column;gap:0}
  .nav.open ul a{display:block;padding:14px 0;font-size:20px;font-family:var(--serif);opacity:1;border-bottom:1px solid var(--rule)}
  .nav.open .head-cta{display:inline-flex;margin-top:20px;align-self:flex-start;color:var(--ink)}
  .nav.open .lang{margin-top:16px}
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--night);color:var(--night-fg);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);min-height:min(900px,100svh)}
.hero-copy{display:flex;flex-direction:column;justify-content:flex-end;gap:56px;padding-block:140px 56px;padding-inline:max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter))) clamp(24px,5vw,80px)}
.hero h1{font-size:clamp(52px,7.4vw,118px);line-height:.98;letter-spacing:-.03em}
.hero h1 span{display:block}
.hero h1 em{color:var(--red-2)}
.hero .lede{color:#CFCCC2;margin-top:30px;max-width:54ch}
.hero .eyebrow{color:var(--night-muted);margin-bottom:28px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px}
.hero-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--night-rule)}
.hero-facts div{padding-block-start:22px;padding-inline-end:20px}
.hero-facts b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.6vw,38px);line-height:1;letter-spacing:-.02em}
.hero-facts span{display:block;margin-top:10px;font-size:13.5px;color:var(--night-muted);max-width:24ch}
.hero-facts.geo b{font-size:clamp(22px,2vw,28px)}
.hero-media{position:relative;margin:0;overflow:hidden}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:40% 30%;transform:scale(1.04);animation:settle 2.4s cubic-bezier(.2,.6,.2,1) forwards}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--night) 0%,rgba(20,20,20,0) 28%),linear-gradient(0deg,rgba(20,20,20,.55),rgba(20,20,20,0) 40%)}
.hero-media figcaption{position:absolute;inset-inline-end:20px;bottom:20px;z-index:1;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#E9E6DC}
@keyframes settle{to{transform:scale(1)}}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hero h1 span{animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
.hero h1 span:nth-child(2){animation-delay:.08s}
.hero h1 span:nth-child(3){animation-delay:.16s}
@media (max-width:920px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding:128px var(--gutter) 40px}
  .hero-media{aspect-ratio:4/3;order:2}
  .hero-media::after{background:linear-gradient(180deg,var(--night) 0%,rgba(20,20,20,0) 30%)}
}
@media (max-width:520px){.hero-facts{grid-template-columns:1fr 1fr}.hero-facts div:last-child{grid-column:1/-1}}

/* ---------- sections ---------- */
section{scroll-margin-top:72px}
.sec{padding-block:clamp(84px,10vw,152px)}
.sec.tight{padding-block:clamp(64px,7vw,104px)}
.alt{background:var(--paper-2)}
.dark{background:var(--night);color:var(--night-fg)}
.dark .lede{color:var(--night-muted)}
.dark .eyebrow{color:var(--night-muted)}
.dark .eyebrow.red{color:var(--red-2)}
.sec-head{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);margin-bottom:clamp(48px,6vw,88px);align-items:start}
.sec-head .eyebrow{padding-top:14px}
.sec-head h2+.lede{margin-top:24px}
@media (max-width:860px){.sec-head{grid-template-columns:1fr;gap:20px}.sec-head .eyebrow{padding-top:0}}

/* about */
.statement{font-family:var(--serif);font-size:clamp(26px,3vw,42px);line-height:1.22;letter-spacing:-.012em;max-width:30ch}
.statement em{color:var(--red)}
.about-grid{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:start}
.about-grid>.eyebrow{padding-top:14px}
.about-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4vw,64px);margin-top:clamp(40px,5vw,64px)}
.about-body p+p{margin-top:16px}
.timeline{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.timeline li{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.timeline b{font-family:var(--serif);font-weight:400;font-size:26px;letter-spacing:-.01em}
.timeline .hl b{color:var(--red)}
.timeline span{color:var(--ink-2);font-size:15.5px}
@media (max-width:860px){.about-grid,.about-body{grid-template-columns:1fr}}

/* figures */
.figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-inline-start:1px solid var(--night-rule)}
.fig{padding:36px clamp(20px,3vw,44px) 40px;border-inline-end:1px solid var(--night-rule);border-bottom:1px solid var(--night-rule)}
.fig:nth-child(-n+3){border-top:1px solid var(--night-rule)}
.fig b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(60px,7vw,104px);line-height:.95;letter-spacing:-.035em}
.fig b i{font-style:normal;color:var(--red-2)}
.fig span{display:block;margin-top:18px;color:var(--night-muted);font-size:15px;max-width:28ch}
@media (max-width:860px){.figures{grid-template-columns:1fr 1fr}.fig:nth-child(-n+3){border-top:0}.fig:nth-child(-n+2){border-top:1px solid var(--night-rule)}}
@media (max-width:460px){.figures{grid-template-columns:1fr}.fig:nth-child(2){border-top:0}}

/* practice index */
.practice-index{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.practice-index a{display:grid;grid-template-columns:80px minmax(0,1.1fr) minmax(0,1fr) 40px;gap:24px;align-items:center;padding:34px 0;border-bottom:1px solid var(--rule);text-decoration:none;transition:padding .3s,background .3s}
.practice-index .n{font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--muted)}
.practice-index h3{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,36px);letter-spacing:-.015em;line-height:1.1;display:flex;align-items:center;gap:16px}
.practice-index p{color:var(--ink-2);font-size:16px}
.practice-index .go{justify-self:end;font-size:22px;transition:transform .3s,color .3s}
.practice-index a:hover{padding-inline:16px;background:var(--paper-2)}
.practice-index a:hover .go{transform:translateX(4px);color:var(--red)}
.practice-index .core{display:inline-block;margin-inline-start:10px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--red);border:1px solid currentColor;padding:4px 8px;vertical-align:middle}
@media (max-width:860px){.practice-index a{grid-template-columns:48px 1fr;row-gap:10px}.practice-index p{grid-column:2}.practice-index .go{display:none}}

/* practice detail */
.practice{border-top:1px solid var(--rule)}
.p-head{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);margin-bottom:clamp(40px,5vw,72px)}
.p-head .tag{display:flex;align-items:center;gap:14px;padding-top:12px}
.p-head .tag span{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.p-head h2+.lede{margin-top:24px}
@media (max-width:860px){.p-head{grid-template-columns:1fr;gap:18px}}
.p-body{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:start}
.p-body>.aside{max-width:280px}
.aside h4{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--ink)}
.aside ul{list-style:none;margin:0;padding:0}
.aside li{padding:10px 0;border-bottom:1px solid var(--rule);font-size:15px;color:var(--ink-2)}
@media (max-width:860px){.p-body{grid-template-columns:1fr}.p-body>.aside{order:2;max-width:none}.aside ul{columns:2;column-gap:24px}.aside li{break-inside:avoid}}

.roman{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.roman li{display:grid;grid-template-columns:56px minmax(0,.9fr) minmax(0,1.1fr);gap:20px;padding:24px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.roman .ix{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--red)}
.roman b{font-weight:600;font-size:17px}
.roman span{color:var(--ink-2);font-size:15.5px}
@media (max-width:640px){.roman li{grid-template-columns:40px 1fr}.roman span{grid-column:2}}

.sectors{margin-top:40px;display:flex;flex-wrap:wrap;gap:10px}
.sectors span{font-size:14px;padding:9px 14px;border:1px solid var(--rule);background:var(--paper)}
.alt .sectors span{background:var(--paper-2)}

.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,44px)}
.cols.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.col h3{padding:18px 0;border-top:1px solid var(--ink);display:flex;gap:14px;align-items:baseline}
.col h3 .ix{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--red)}
.col ul{list-style:none;margin:0;padding:0}
.col li{padding:13px 0;border-top:1px solid var(--rule);color:var(--ink-2);font-size:15.5px}
.dark .col h3{border-top-color:var(--night-fg)}
.dark .col li{border-top-color:var(--night-rule);color:var(--night-muted)}
@media (max-width:980px){.cols.four{grid-template-columns:1fr 1fr;row-gap:40px}}
@media (max-width:760px){.cols{grid-template-columns:1fr;row-gap:32px}}
@media (max-width:560px){.cols.four{grid-template-columns:1fr}}

.motto{margin-top:clamp(48px,6vw,80px);padding-top:28px;border-top:1px solid var(--rule);font-family:var(--serif);font-size:clamp(26px,3vw,40px);line-height:1.15;letter-spacing:-.015em}
.motto em{color:var(--red)}
.dark .motto{border-top-color:var(--night-rule)}
.dark .motto em{color:var(--red-2)}

.grid8{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.grid8 li{padding-block:26px 32px;padding-inline:0 24px;border-bottom:1px solid var(--rule);min-height:150px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.grid8 li+li{padding-inline-start:24px;border-inline-start:1px solid var(--rule)}
.grid8 li:nth-child(4n+1){padding-inline-start:0;border-inline-start:0}
.grid8 .ix{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--red)}
.grid8 b{font-family:var(--serif);font-weight:400;font-size:clamp(20px,1.7vw,24px);line-height:1.2;letter-spacing:-.01em}
@media (max-width:860px){.grid8{grid-template-columns:1fr 1fr}.grid8 li:nth-child(4n+1){padding-inline-start:24px;border-inline-start:1px solid var(--rule)}.grid8 li:nth-child(2n+1){padding-inline-start:0;border-inline-start:0}}
@media (max-width:440px){.grid8{grid-template-columns:1fr}.grid8 li{min-height:0;padding-inline-start:0!important;border-inline-start:0!important}}

/* full-bleed photo band */
.band{position:relative;height:clamp(260px,38vw,520px);overflow:hidden;background:var(--night)}
.band img{width:100%;height:100%;object-fit:cover;filter:saturate(.75)}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,20,20,.5),rgba(20,20,20,0) 50%)}
.band p{position:absolute;left:0;right:0;bottom:clamp(24px,4vw,48px);z-index:1;color:#fff;font-family:var(--serif);font-size:clamp(22px,2.6vw,36px);line-height:1.2;letter-spacing:-.01em}
.band p span{display:block;max-width:26ch}

/* engagement model */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(20px,3vw,44px)}
.steps li{border-top:1px solid var(--night-rule);padding-top:26px;display:flex;flex-direction:column;gap:14px}
.steps li:first-child{border-top-color:var(--red-2)}
.steps .ix{font-family:var(--serif);font-size:clamp(40px,4vw,56px);line-height:1;letter-spacing:-.03em}
.steps h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2vw,27px);letter-spacing:-.01em}
.steps p{color:var(--night-muted);font-size:15.5px}
@media (max-width:980px){.steps{grid-template-columns:1fr 1fr;row-gap:44px}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* leadership */
.people{display:grid;gap:clamp(64px,8vw,112px)}
.person{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start}
.portrait{position:relative;margin:0;background:var(--sand);aspect-ratio:4/5;overflow:hidden;max-width:420px}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;filter:grayscale(.15)}
.person .role{margin-top:12px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.person h3.name{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.8vw,52px);line-height:1.05;letter-spacing:-.02em}
.person .bio{margin-top:28px;display:grid;gap:16px;color:var(--ink-2);max-width:66ch}
.person .bio p:first-child{font-size:clamp(17px,1.35vw,19px);color:var(--ink)}
.pstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:36px;max-width:720px}
.pstats.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:480px}
.pstats div{border-top:1px solid var(--ink);padding-top:14px}
.pstats b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.4vw,46px);line-height:1;letter-spacing:-.02em}
.pstats b i{font-style:normal;color:var(--red)}
.pstats span{display:block;margin-top:10px;font-size:13.5px;color:var(--muted)}
.creds{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.creds span{font-size:13px;font-weight:500;padding:7px 12px;border:1px solid var(--rule)}
details.more{margin-top:20px;max-width:66ch}
details.more summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;border-bottom:1px solid currentColor;padding-bottom:3px}
details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"+";font-weight:400;font-size:18px;line-height:1}
details.more[open] summary::after{content:"–"}
details.more summary:hover{color:var(--red)}
details.more .bio{margin-top:20px}
@media (max-width:860px){.person{grid-template-columns:1fr}.portrait{max-width:320px}}
@media (max-width:480px){.pstats{grid-template-columns:1fr}}

/* clients */
.plate{background:var(--white);border:1px solid var(--rule);padding:clamp(20px,4vw,56px)}
/* client logos sit directly on the page colour, as in the company profile */
#clients .plate{background:transparent;border:0;padding:clamp(8px,2vw,24px) 0}
#clients .trusted .plate{justify-content:flex-start;gap:32px clamp(40px,7vw,96px)}
.logo-grid{position:relative}
.logo-grid .balcon{position:absolute;left:84.6%;top:42.5%;width:13.2%}
.logo-row{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(32px,6vw,88px);padding:32px 0 0}
.logo-row img{height:44px;width:auto;object-fit:contain}
.logo-row img.tall{height:64px}
.trusted{margin-top:clamp(40px,5vw,64px);display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:center}
.trusted .plate{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-around;gap:32px 48px}
.trusted .plate img{height:46px;width:auto}
.trusted .plate img.sq{height:70px}
/* Google rating */
.rating{margin-top:clamp(48px,6vw,80px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:start}
.score b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(64px,7vw,96px);line-height:.9;letter-spacing:-.03em}
.stars{display:block;margin-top:14px;color:var(--red);font-size:19px;letter-spacing:4px}
.score small{display:block;margin-top:8px;font-size:14px;color:var(--muted)}
.rating blockquote{margin:0}
.rating blockquote p{font-family:var(--serif);font-size:clamp(22px,2.2vw,30px);line-height:1.3;letter-spacing:-.01em;max-width:36ch}
.rating cite{display:block;margin-top:18px;font-style:normal;font-size:14px;color:var(--muted)}
.rating .link{margin-top:28px}
.g-badge{display:inline-flex;align-items:center;gap:10px;margin-top:20px;font-size:14px;color:var(--ink-2);text-decoration:none}
.g-badge b{font-weight:600;color:var(--ink)}
.g-badge .stars{display:inline;margin:0;font-size:14px;letter-spacing:2px}
.g-badge:hover{color:var(--red)}
@media (max-width:860px){.rating{grid-template-columns:1fr}}

.experience{margin-top:clamp(72px,9vw,128px)}
.plate.paper{background:var(--paper-2)}
.contact .lede{margin-top:24px}
.disclaimer{margin-top:18px;font-size:13.5px;color:var(--muted);max-width:80ch}
@media (max-width:860px){.trusted{grid-template-columns:1fr}}
/* on phones the logo walls scroll sideways instead of shrinking to illegibility */
@media (max-width:640px){
  .plate.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .plate.scroll>*{min-width:620px}
}

/* why */
.why{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--night-rule)}
.why>div{padding-block:36px 40px;padding-inline:0 clamp(16px,2.4vw,36px);display:flex;flex-direction:column;gap:18px}
.why>div+div{padding-inline-start:clamp(16px,2.4vw,36px);border-inline-start:1px solid var(--night-rule)}
.why h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2vw,28px);line-height:1.15;letter-spacing:-.01em}
.why p{color:var(--night-muted);font-size:15.5px}
.why .mark{color:var(--red-2)}
@media (max-width:980px){.why{grid-template-columns:1fr 1fr}.why>div:nth-child(3){padding-inline-start:0;border-inline-start:0}.why>div:nth-child(n+3){border-top:1px solid var(--night-rule)}}
@media (max-width:560px){.why{grid-template-columns:1fr}.why>div{padding-inline-start:0!important;border-inline-start:0!important}.why>div+div{border-top:1px solid var(--night-rule)}}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px)}
.contact h2{font-size:clamp(38px,5vw,68px)}
.details{margin:40px 0 0;display:grid;border-top:1px solid var(--ink)}
.details>div{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--rule)}
.details dt{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.details dd{margin:0;display:flex;flex-direction:column;gap:4px}
.details a{text-decoration:none}
.details a:hover{color:var(--red)}
.wa{display:inline-flex;align-items:center;gap:10px;margin-top:28px}
.wa svg{width:18px;height:18px}
form.enquiry{display:grid;grid-template-columns:1fr 1fr;gap:26px 28px;background:var(--paper-2);border:1px solid var(--rule);padding:clamp(24px,3.6vw,48px);align-self:start;min-width:0}
.enquiry h3{grid-column:1/-1;font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.2vw,30px)}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{font:16px var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--rule);border-radius:0;padding:10px 0;width:100%}
.field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:24px}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--ink)}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.form-foot small{font-size:13px;color:var(--muted);max-width:44ch}
.notice{grid-column:1/-1;padding:14px 16px;border-inline-start:2px solid var(--red);background:var(--paper);font-size:15px}
@media (max-width:900px){.contact{grid-template-columns:1fr}}
@media (max-width:560px){form.enquiry{grid-template-columns:1fr}.details>div{grid-template-columns:1fr;gap:4px}}

/* footer */
.site-foot{background:var(--night);color:var(--night-muted);padding:72px 0 40px;font-size:14px}
.foot-top{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,1fr));gap:40px;padding-bottom:48px;border-bottom:1px solid var(--night-rule)}
.foot-top .logo{height:40px;width:auto}
.foot-top p{margin-top:20px;max-width:34ch;line-height:1.55}
.foot-top h4{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--night-fg);margin-bottom:16px}
.foot-top ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot-top a{text-decoration:none}
.foot-top a:hover{color:var(--night-fg)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:28px;font-size:13px}
@media (max-width:860px){.foot-top{grid-template-columns:1fr 1fr}.foot-top>div:first-child{grid-column:1/-1}}
@media (max-width:440px){.foot-top{grid-template-columns:1fr}}

/* plain pages: privacy policy, 404 */
.legal{padding:clamp(130px,14vw,180px) 0 clamp(72px,9vw,120px)}
.legal .wrap{max-width:860px}
.legal h1{font-size:clamp(38px,5vw,60px);line-height:1.08;margin-top:18px}
.legal .meta{margin-top:16px;font-size:14px;color:var(--muted)}
.legal h2{font-family:var(--sans);font-weight:600;font-size:19px;line-height:1.4;letter-spacing:0;margin-top:44px;padding-top:24px;border-top:1px solid var(--rule)}
.legal p,.legal li{color:var(--ink-2);font-size:16.5px}
.legal p{margin-top:14px}
.legal ul{margin:12px 0 0;padding-inline-start:22px}
.legal li{margin-top:6px}
.legal a{color:var(--ink)}
.legal .intro{font-size:clamp(17px,1.4vw,19px);color:var(--ink);margin-top:28px}
.not-found{min-height:100svh;display:flex;align-items:center}
.not-found .big{font-family:var(--serif);font-size:clamp(96px,16vw,200px);line-height:1;color:var(--red)}
.not-found .langs{display:grid;gap:28px;margin-top:40px}
.not-found .langs div{border-top:1px solid var(--rule);padding-top:20px}
.not-found .langs p{color:var(--ink-2);margin-top:6px}
.foot-bottom a{text-decoration:none}
.foot-bottom a:hover{color:var(--night-fg)}
.foot-legal{display:flex;flex-wrap:wrap;gap:24px;align-items:center}

/* reveal on scroll */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}

/* ---------- Arabic (RTL) ----------
   Layout mirrors through logical properties above; these rules handle what does not mirror on its own.
   Letter-spacing is removed everywhere because it breaks the joins between Arabic letters. */
html[lang="ar"]{--serif:"Noto Naskh Arabic","Source Serif 4",serif;--sans:"IBM Plex Sans Arabic","Inter",sans-serif}
[lang="ar"],[lang="ar"] *{letter-spacing:0!important}
html[lang="ar"] body{font-size:18px;line-height:1.85}
html[lang="ar"] em,html[lang="ar"] i,html[lang="ar"] .roman .ix{font-style:normal}
html[lang="ar"] h1,html[lang="ar"] h2{font-weight:500}
html[lang="ar"] .hero h1{font-size:clamp(48px,6.6vw,104px);line-height:1.3}
html[lang="ar"] h2{line-height:1.4}
html[lang="ar"] h3,html[lang="ar"] .practice-index h3,html[lang="ar"] .grid8 b,html[lang="ar"] .why h3,html[lang="ar"] .steps h3,html[lang="ar"] .person h3.name{line-height:1.5}
html[lang="ar"] .statement{line-height:1.6}
html[lang="ar"] .lede{line-height:1.9}
html[lang="ar"] .rating blockquote p,html[lang="ar"] .band p{line-height:1.6}
html[lang="ar"] .eyebrow,html[lang="ar"] .p-head .tag span,html[lang="ar"] .aside h4,html[lang="ar"] .person .role,html[lang="ar"] .details dt,html[lang="ar"] .field label,html[lang="ar"] .foot-top h4{font-size:14px}
html[lang="ar"] .hero-facts span,html[lang="ar"] .fig span,html[lang="ar"] .pstats span,html[lang="ar"] .timeline span{font-size:15.5px}
html[lang="ar"] .hero-media figcaption{font-size:13px}
[dir="rtl"] .fig b,[dir="rtl"] .pstats b,[dir="rtl"] .timeline b,[dir="rtl"] .score b{direction:ltr;text-align:right}
[dir="rtl"] .btn:hover .arr,[dir="rtl"] .practice-index a:hover .go{transform:translateX(-4px)}
[dir="rtl"] .field select{background-position:10px 55%,15px 55%;padding-right:0;padding-left:24px}
[dir="rtl"] input[type="email"],[dir="rtl"] input[type="tel"]{text-align:right}
@media (min-width:921px){
  [dir="rtl"] .hero-media::after{background:linear-gradient(270deg,var(--night) 0%,rgba(20,20,20,0) 28%),linear-gradient(0deg,rgba(20,20,20,.55),rgba(20,20,20,0) 40%)}
}
