@font-face{font-family:"Playfair Display";src:url("fonts/PlayfairDisplay.woff2") format("woff2");font-weight:400 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Playfair Display";src:url("fonts/PlayfairDisplay-Italic.woff2") format("woff2");font-weight:400 700;font-style:italic;font-display:swap;}
/* ============================================================
   ALKHIELI & ASSOCIATES — 2026 Redesign
   Light · Fast · Premium · Green-forward · Legislative-led
   ============================================================ */

:root{
  --paper:#F5F1E8; --paper-2:#EDE7DA; --card:#FCFAF5; --white:#fff;
  --ink:#16140F; --ink-2:#221F17; --ink-soft:#4C4738; --ink-faint:#8A8270;
  --line:rgba(22,20,15,.12); --line-soft:rgba(22,20,15,.07);

  /* GREEN — the consistent signature accent */
  --green:#1E5A45; --green-deep:#143E2F; --green-mid:#2C7558; --green-soft:#E7EFE9;
  --glow:rgba(44,117,88,.20);

  --display:"Playfair Display",Georgia,serif;
  --sans:"Playfair Display",Georgia,serif;
  --mono:"Playfair Display",Georgia,serif;

  --maxw:1280px; --gut:clamp(20px,5vw,80px); --r:5px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ font-family:var(--sans); background:var(--paper); color:var(--ink); line-height:1.55; font-size:17px; font-weight:400; overflow-x:hidden; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--green); color:#fff; }

/* type helpers */
.kicker{ font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-faint); font-weight:500; display:inline-flex; align-items:center; gap:.7em; }
.kicker .dot{ width:6px; height:6px; border-radius:50%; background:var(--green); }
.kicker .idx{ color:var(--green); }
h1,h2,h3,h4{ font-family:var(--display); font-weight:500; line-height:1.08; letter-spacing:-.005em; }
.serif-italic{ font-style:italic; font-weight:380; color:var(--green); }
.display{ font-family:var(--display); font-size:clamp(2.6rem,7.6vw,6.6rem); line-height:1.02; letter-spacing:-.015em; font-weight:500; }
.h-section{ font-size:clamp(1.9rem,4.4vw,3.6rem); line-height:1.07; }
.lede{ font-size:clamp(1.1rem,1.8vw,1.4rem); line-height:1.42; color:var(--ink-2); font-weight:360; }
.muted{ color:var(--ink-soft); }
.nb{ white-space:nowrap; }

/* layout */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding-inline:var(--gut); position:relative; z-index:1; }
section{ position:relative; z-index:1; }
.pad{ padding-block:clamp(54px,7vw,108px); }
.pad-sm{ padding-block:clamp(38px,5vw,68px); }
.tint{ background:var(--green-soft); }
.paper2{ background:var(--paper-2); }

/* buttons / links */
.btn{ display:inline-flex; align-items:center; gap:.6em; font-family:var(--mono); font-size:13px; letter-spacing:.08em; text-transform:uppercase; padding:.9em 1.5em; border-radius:100px; border:1px solid var(--ink); background:var(--ink); color:var(--paper); transition:transform .4s var(--ease),background .3s,color .3s,box-shadow .4s; cursor:pointer; }
.btn:hover{ background:var(--green); border-color:var(--green); color:#fff; transform:translateY(-2px); box-shadow:0 14px 30px var(--glow); }
.btn--ghost{ background:transparent; color:var(--ink); }
.btn--ghost:hover{ background:var(--green); color:#fff; border-color:var(--green); }
.btn--green{ background:var(--green); border-color:var(--green); color:#fff; }
.btn--green:hover{ background:var(--green-deep); border-color:var(--green-deep); }
.btn--light{ background:var(--paper); color:var(--green-deep); border-color:var(--paper); }
.btn--light:hover{ background:#fff; color:var(--green-deep); border-color:#fff; box-shadow:0 14px 30px rgba(0,0,0,.18); }
.arrowlink{ display:inline-flex; align-items:center; gap:.55em; font-family:var(--mono); font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--green-deep); position:relative; padding-bottom:3px; }
.arrowlink::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:100%; background:var(--green); transform:scaleX(.18); transform-origin:left; transition:transform .45s var(--ease); }
.arrowlink:hover::after{ transform:scaleX(1); }
.arrowlink .ar{ transition:transform .4s var(--ease); }
.arrowlink:hover .ar{ transform:translateX(5px); }

/* ============ HEADER (light) ============ */
.hdr{ position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:16px var(--gut); transition:background .5s var(--ease),padding .5s var(--ease),border-color .5s,box-shadow .5s; border-bottom:1px solid transparent; }
.hdr.solid{ background:rgba(245,241,232,.85); backdrop-filter:blur(14px); padding-block:11px; border-bottom:1px solid var(--line-soft); box-shadow:0 6px 24px rgba(22,20,15,.05); }
.hdr__logo img{ height:58px; width:auto; display:block; }
.hdr__nav{ display:flex; align-items:center; gap:28px; }
.navlink{ font-family:var(--mono); font-size:12.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-soft); transition:color .3s; position:relative; padding-block:6px; }
.navlink::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--green); transition:width .4s var(--ease); }
.navlink:hover{ color:var(--ink); } .navlink:hover::after,.navlink.active::after{ width:100%; }
.navlink.active{ color:var(--green-deep); }
.hdr__right{ display:flex; align-items:center; gap:16px; }
.hdr__lang{ font-family:var(--mono); font-size:12.5px; letter-spacing:.1em; color:var(--ink-soft); border:1px solid var(--line); border-radius:100px; padding:6px 12px; transition:.3s; }
.hdr__lang:hover{ color:var(--green-deep); border-color:var(--green); }
.hdr__cta{ font-family:var(--mono); font-size:12.5px; letter-spacing:.07em; text-transform:uppercase; color:#fff; background:var(--green); border-radius:100px; padding:9px 18px; transition:.35s var(--ease); }
.hdr__cta:hover{ background:var(--green-deep); transform:translateY(-1px); }
.burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px; }
.burger span{ width:24px; height:2px; background:var(--ink); transition:.35s var(--ease); }
.menu-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-open .burger span:nth-child(2){ opacity:0; }
.menu-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.drawer{ position:fixed; inset:0; z-index:99; background:var(--green-deep); display:flex; flex-direction:column; justify-content:center; gap:4px; padding:0 var(--gut); transform:translateY(-100%); transition:transform .6s var(--ease); visibility:hidden; }
.menu-open .drawer{ transform:translateY(0); visibility:visible; }
.drawer a{ font-family:var(--display); font-size:clamp(1.8rem,8vw,3rem); color:var(--paper); padding:7px 0; border-bottom:1px solid rgba(255,255,255,.12); transition:color .3s,padding-left .4s var(--ease); }
.drawer a:hover{ color:#fff; padding-left:14px; }
.drawer .drawer__meta{ font-family:var(--mono); font-size:13px; color:rgba(255,255,255,.55); border:0; margin-top:22px; letter-spacing:.05em; }

/* ============ HERO (light, kinetic, green effect) ============ */
.hero{ position:relative; padding-top:clamp(140px,18vh,200px); padding-bottom:clamp(40px,6vw,72px); overflow:hidden; }
.hero__glow{ position:absolute; z-index:0; width:75vw; height:75vw; max-width:900px; max-height:900px; right:-12%; top:-8%; border-radius:50%; background:radial-gradient(circle,var(--glow),transparent 62%); filter:blur(8px); animation:float 16s var(--ease) infinite alternate; pointer-events:none; }
.hero__glow.two{ left:-20%; right:auto; top:auto; bottom:-30%; width:55vw; height:55vw; background:radial-gradient(circle,rgba(30,90,69,.12),transparent 60%); animation-duration:22s; }
@keyframes float{ to{ transform:translate(-30px,30px) scale(1.08); } }
.hero__eyebrow{ margin-bottom:24px; }
.hero h1{ font-family:var(--display); font-size:clamp(2.6rem,7.8vw,6.8rem); line-height:1.04; letter-spacing:-.015em; max-width:15ch; }
.hero h1 .w{ display:inline-block; opacity:0; transform:translateY(40%); animation:rise .9s var(--ease) forwards; }
.hero h1 .it{ font-style:italic; color:var(--green); position:relative; }
@keyframes rise{ to{ opacity:1; transform:none; } }
.hero__sub{ max-width:52ch; margin-top:30px; color:var(--ink-2); font-size:clamp(1.05rem,1.7vw,1.35rem); font-weight:340; opacity:0; animation:rise .9s var(--ease) .7s forwards; }
.hero__cta{ display:flex; gap:13px; flex-wrap:wrap; margin-top:34px; opacity:0; animation:rise .9s var(--ease) .85s forwards; }
.hero__trust{ display:flex; flex-wrap:wrap; gap:clamp(20px,4vw,56px); margin-top:clamp(40px,5vw,68px); padding-top:30px; border-top:1px solid var(--line); opacity:0; animation:rise .9s var(--ease) 1s forwards; }
.hero__trust .t b{ font-family:var(--display); font-size:clamp(1.6rem,3vw,2.4rem); display:block; line-height:1; color:var(--green-deep); }
.hero__trust .t span{ font-family:var(--mono); font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-faint); margin-top:9px; display:block; max-width:22ch; }

/* ============ PAGE HEAD (light, no banner — straight to content) ============ */
.phead{ padding-top:clamp(118px,14vw,168px); padding-bottom:clamp(8px,2vw,18px); }
.phead h1{ font-family:var(--display); font-size:clamp(2.3rem,6vw,4.6rem); line-height:1.05; letter-spacing:-.015em; margin-top:14px; max-width:18ch; }
.phead .lede{ margin-top:20px; max-width:64ch; }

/* ============ MARQUEE (green) ============ */
.marquee{ background:var(--green); color:#fff; overflow:hidden; padding:15px 0; }
.marquee__track{ display:flex; width:max-content; animation:marq 30s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__track span{ font-family:var(--display); font-style:italic; font-size:clamp(1.15rem,2.6vw,1.9rem); white-space:nowrap; display:inline-flex; align-items:center; gap:42px; padding-right:42px; opacity:.96; }
.marquee__track .star{ font-family:var(--mono); font-style:normal; font-size:.9rem; opacity:.7; }
@keyframes marq{ to{ transform:translateX(-50%); } }

/* ============ INTRO / STATEMENTS ============ */
.intro-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,6vw,86px); align-items:start; }
.intro-grid .meta{ position:sticky; top:110px; }
.intro-grid .meta .num{ font-family:var(--display); font-size:clamp(2.6rem,6vw,5rem); color:var(--green); line-height:1; }
.big-statement{ font-family:var(--display); font-weight:380; font-size:clamp(1.6rem,3.2vw,2.8rem); line-height:1.14; letter-spacing:-.015em; }
.big-statement .em{ font-style:italic; color:var(--green); }
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.stats .stat{ background:var(--card); padding:clamp(20px,3vw,36px); }
.stats .stat b{ font-family:var(--display); font-weight:430; font-size:clamp(2rem,4vw,3.2rem); display:block; line-height:1; color:var(--green-deep); }
.stats .stat span{ font-family:var(--mono); font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-faint); margin-top:11px; display:block; }

/* ============ ACCORDION (expertise) ============ */
.acc{ border-top:1px solid var(--line); }
.acc__item{ border-bottom:1px solid var(--line); }
.acc__head{ width:100%; text-align:left; background:none; border:0; cursor:pointer; display:grid; grid-template-columns:auto 1fr auto; gap:clamp(16px,3vw,40px); align-items:center; padding:clamp(20px,2.6vw,34px) 0; transition:padding-left .4s var(--ease); color:var(--ink); }
.acc__item.open .acc__head, .acc__head:hover{ padding-left:10px; }
.acc__num{ font-family:var(--mono); font-size:13px; color:var(--green); letter-spacing:.06em; }
.acc__title{ font-family:var(--display); font-size:clamp(1.45rem,3vw,2.5rem); line-height:1.02; }
.acc__title small{ display:block; font-family:var(--sans); font-style:normal; font-size:clamp(.85rem,1.3vw,1rem); color:var(--ink-faint); margin-top:7px; font-weight:360; letter-spacing:0; }
.acc__ico{ width:46px; height:46px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; flex:0 0 auto; transition:.4s var(--ease); position:relative; }
.acc__ico::before,.acc__ico::after{ content:""; position:absolute; background:var(--ink); transition:.4s var(--ease); }
.acc__ico::before{ width:15px; height:1.5px; } .acc__ico::after{ width:1.5px; height:15px; }
.acc__item.open .acc__ico{ background:var(--green); border-color:var(--green); }
.acc__item.open .acc__ico::before,.acc__item.open .acc__ico::after{ background:#fff; }
.acc__item.open .acc__ico::after{ transform:scaleY(0); }
.acc__panel{ overflow:hidden; max-height:0; transition:max-height .6s var(--ease); }
.acc__inner{ padding:0 0 clamp(28px,3vw,44px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); }
.acc__inner p.desc{ color:var(--ink-2); margin-bottom:14px; }
.acc__sub{ font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--green); margin:6px 0 16px; }
.svc{ display:grid; gap:14px; }
.svc .s{ border-left:2px solid var(--green); padding-left:14px; }
.svc .s b{ font-family:var(--display); font-weight:440; font-size:1.08rem; display:block; }
.svc .s span{ color:var(--ink-soft); font-size:.93rem; }
.explist{ list-style:none; display:grid; gap:13px; }
.explist li{ position:relative; padding-left:22px; color:var(--ink-2); font-size:.96rem; }
.explist li::before{ content:"▸"; position:absolute; left:0; color:var(--green); }
@media(max-width:820px){ .acc__inner{ grid-template-columns:1fr; } }

/* ============ SLIDERS ("desk-sweep") ============ */
.slider-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:clamp(22px,3.5vw,42px); flex-wrap:wrap; }
.slider-ctrls{ display:flex; gap:10px; }
.sbtn{ width:48px; height:48px; border-radius:50%; border:1px solid var(--line); background:var(--card); cursor:pointer; display:grid; place-items:center; transition:.35s var(--ease); color:var(--ink); }
.sbtn:hover{ background:var(--green); color:#fff; border-color:var(--green); transform:translateY(-2px); }
.sbtn:disabled{ opacity:.3; cursor:not-allowed; transform:none; background:var(--card); color:var(--ink); }
.sbtn svg{ width:18px; height:18px; }
.slider{ overflow-x:auto; overflow-y:hidden; scrollbar-width:none; -ms-overflow-style:none; cursor:grab; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.slider::-webkit-scrollbar{ display:none; }
.slider.dragging{ cursor:grabbing; scroll-snap-type:none; }
.slider.dragging *{ pointer-events:none; }
.slider__track{ display:flex; gap:clamp(16px,2vw,24px); padding:6px var(--gut); width:max-content; }
.sprog{ height:2px; background:var(--line); margin-top:28px; position:relative; border-radius:2px; overflow:hidden; }
.sprog i{ position:absolute; left:0; top:0; height:100%; background:var(--green); border-radius:2px; transition:width .15s linear,left .15s linear; }

/* expert cards */
.pcard{ scroll-snap-align:start; flex:0 0 clamp(240px,25vw,310px); cursor:pointer; }
.pcard__img{ position:relative; overflow:hidden; border-radius:var(--r); background:var(--paper-2); aspect-ratio:3/3.7; }
.pcard__img img{ width:100%; height:100%; object-fit:cover; object-position:top center; filter:grayscale(1) contrast(1.02); transition:filter .6s var(--ease),transform .9s var(--ease); }
.pcard:hover .pcard__img img{ filter:grayscale(0); transform:scale(1.04); }
.pcard__img .role{ position:absolute; left:12px; top:12px; font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; background:rgba(20,52,40,.82); color:#fff; padding:5px 10px; border-radius:100px; backdrop-filter:blur(4px); }
.pcard__img .plus{ position:absolute; right:12px; bottom:12px; width:38px; height:38px; border-radius:50%; background:var(--paper); color:var(--green-deep); display:grid; place-items:center; opacity:0; transform:translateY(8px); transition:.45s var(--ease); font-size:20px; }
.pcard:hover .pcard__img .plus{ opacity:1; transform:translateY(0); }
.pcard__name{ font-family:var(--display); font-size:1.3rem; margin-top:15px; }
.pcard__meta{ font-family:var(--mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--green); margin-top:5px; }
.pcard__pa{ color:var(--ink-faint); font-size:.86rem; margin-top:6px; }

/* expert grid */
.pgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); }
.pgrid .pcard{ flex:initial; width:auto; }
@media(max-width:980px){ .pgrid{ grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .pgrid{ grid-template-columns:1fr;} }

/* case study cards */
.ccard{ scroll-snap-align:start; flex:0 0 clamp(300px,34vw,440px); background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:clamp(26px,3vw,40px); min-height:340px; display:flex; flex-direction:column; transition:transform .5s var(--ease),box-shadow .5s var(--ease); position:relative; overflow:hidden; }
.ccard::before{ content:""; position:absolute; inset:0 auto auto 0; height:3px; width:100%; background:var(--green); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
.ccard:hover{ transform:translateY(-6px); box-shadow:0 24px 50px rgba(22,20,15,.10); }
.ccard:hover::before{ transform:scaleX(1); }
.ccard .cnum{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; color:var(--green); }
.ccard .cclient{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-top:18px; }
.ccard h3{ font-size:clamp(1.4rem,2.1vw,1.95rem); margin:8px 0 14px; line-height:1.04; }
.ccard p{ color:var(--ink-soft); font-size:.96rem; margin-top:auto; }
.ccard .tag{ display:inline-block; font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--green-deep); background:var(--green-soft); padding:5px 11px; border-radius:100px; margin-top:18px; align-self:flex-start; }

/* case study stack (page) */
.cstack{ display:grid; gap:0; border-top:1px solid var(--line); }
.crow{ display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,5vw,70px); padding:clamp(30px,4vw,56px) 0; border-bottom:1px solid var(--line); align-items:start; }
.crow .cidx{ font-family:var(--display); font-size:clamp(2.4rem,5vw,4rem); color:var(--green); line-height:.9; }
.crow .cclient{ font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.crow h3{ font-size:clamp(1.5rem,3vw,2.4rem); margin:10px 0 14px; line-height:1.05; max-width:24ch; }
.crow p{ color:var(--ink-2); max-width:68ch; }
.crow .tag{ display:inline-block; font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--green-deep); background:var(--green-soft); padding:5px 11px; border-radius:100px; margin-top:18px; }
@media(max-width:680px){ .crow{ grid-template-columns:1fr; gap:8px; } }

/* mandates grid (firm) */
.mgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.mcell{ background:var(--card); padding:clamp(24px,2.6vw,36px); transition:background .4s; }
.mcell:hover{ background:var(--green-soft); }
.mcell .mn{ font-family:var(--mono); font-size:12px; color:var(--green); letter-spacing:.08em; }
.mcell h4{ font-family:var(--display); font-size:1.2rem; margin:14px 0 10px; }
.mcell p{ color:var(--ink-soft); font-size:.92rem; }
@media(max-width:900px){ .mgrid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .mgrid{ grid-template-columns:1fr; } }

/* insight / news cards */
.icard{ scroll-snap-align:start; flex:0 0 clamp(270px,30vw,400px); background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; transition:transform .5s var(--ease),box-shadow .5s var(--ease); display:flex; flex-direction:column; }
.icard:hover{ transform:translateY(-6px); box-shadow:0 22px 46px rgba(22,20,15,.10); }
.icard__img{ aspect-ratio:16/10; overflow:hidden; background:var(--paper-2); }
.icard__img img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.icard:hover .icard__img img{ transform:scale(1.05); }
.icard__body{ padding:clamp(18px,2.2vw,28px); display:flex; flex-direction:column; flex:1; }
.icard__date{ font-family:var(--mono); font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--green); }
.icard h3{ font-size:clamp(1.2rem,1.6vw,1.5rem); margin:12px 0 16px; line-height:1.08; }
.icard .arrowlink{ margin-top:auto; }

/* list rows */
.list-row{ display:grid; grid-template-columns:auto 1fr auto; gap:clamp(16px,4vw,50px); align-items:center; padding:clamp(20px,2.8vw,38px) 0; border-bottom:1px solid var(--line); transition:padding-left .5s var(--ease); position:relative; }
.list-row::before{ content:""; position:absolute; left:-100vw; right:-100vw; top:0; bottom:0; background:var(--green-soft); opacity:0; transition:.4s; z-index:-1; }
.list-row:hover{ padding-left:14px; } .list-row:hover::before{ opacity:1; }
.list-row .lr-date{ font-family:var(--mono); font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-faint); white-space:nowrap; }
.list-row h3{ font-size:clamp(1.25rem,2.4vw,2rem); line-height:1.06; }
.list-row .lr-go{ width:48px; height:48px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; transition:.4s var(--ease); flex:0 0 auto; }
.list-row:hover .lr-go{ background:var(--green); color:#fff; border-color:var(--green); transform:rotate(-45deg); }
@media(max-width:680px){ .list-row{ grid-template-columns:1fr auto; } .list-row .lr-date{ grid-column:1/-1; } }

/* featured */
.featured{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(24px,4vw,56px); align-items:center; background:var(--green-deep); color:#fff; border-radius:var(--r); padding:clamp(28px,4vw,56px); overflow:hidden; position:relative; }
.featured::before{ content:""; position:absolute; right:-15%; bottom:-40%; width:50%; height:120%; border-radius:50%; background:radial-gradient(circle,rgba(111,174,143,.25),transparent 62%); }
.featured .tag{ font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:#9ED3BB; }
.featured h2{ color:#fff; font-size:clamp(1.6rem,3vw,2.6rem); margin:16px 0; line-height:1.05; }
.featured p{ color:rgba(255,255,255,.82); margin-bottom:24px; }
@media(max-width:760px){ .featured{ grid-template-columns:1fr; } }

/* ============ MODAL (expert CV) ============ */
.modal{ position:fixed; inset:0; z-index:200; display:none; }
.modal.open{ display:block; }
.modal__veil{ position:absolute; inset:0; background:rgba(15,33,25,.5); backdrop-filter:blur(6px); opacity:0; transition:opacity .4s; }
.modal.open .modal__veil{ opacity:1; }
.modal__panel{ position:absolute; right:0; top:0; height:100%; width:min(760px,100%); background:var(--paper); overflow-y:auto; transform:translateX(100%); transition:transform .55s var(--ease); box-shadow:-30px 0 80px rgba(0,0,0,.25); }
.modal.open .modal__panel{ transform:translateX(0); }
.modal__close{ position:sticky; top:18px; float:right; margin:18px clamp(26px,4vw,44px) 0 0; width:46px; height:46px; border-radius:50%; background:var(--green); color:#fff; border:0; cursor:pointer; font-size:20px; display:grid; place-items:center; z-index:3; transition:.3s; }
.modal__close:hover{ background:var(--green-deep); transform:rotate(90deg); }
.modal__head{ display:grid; grid-template-columns:140px 1fr; gap:24px; align-items:end; padding:clamp(26px,4vw,44px) clamp(26px,4vw,44px) 0; }
.modal__head img{ width:140px; height:172px; object-fit:cover; object-position:top center; border-radius:var(--r); background:var(--paper-2); }
.modal__head .role{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--green); }
.modal__head h2{ font-size:clamp(1.9rem,4vw,2.8rem); margin:8px 0 0; }
.modal__body{ padding:clamp(26px,4vw,44px); }
.modal__pa{ font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--ink-soft); background:var(--green-soft); border-radius:var(--r); padding:12px 16px; margin-bottom:8px; }
.modal__quote{ font-family:var(--display); font-style:italic; font-size:clamp(1.2rem,2vw,1.6rem); color:var(--green-deep); line-height:1.25; margin:26px 0; }
.modal__body p{ color:var(--ink-2); margin-bottom:15px; }
.modal__body h4{ font-family:var(--mono); font-weight:500; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--green); margin:30px 0 16px; padding-top:22px; border-top:1px solid var(--line); }
.modal__body .explist li{ margin-bottom:0; }
.modal__body .dl{ margin-top:30px; }
@media(max-width:560px){ .modal__head{ grid-template-columns:1fr; } .modal__head img{ width:120px; height:150px; } }

/* ============ FORMS ============ */
.form{ display:grid; gap:18px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.field input,.field textarea{ font-family:var(--sans); font-size:1rem; color:var(--ink); background:transparent; border:0; border-bottom:1px solid var(--line); padding:12px 2px; transition:border-color .35s; resize:vertical; }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--green); }
.field input::placeholder,.field textarea::placeholder{ color:var(--ink-faint); }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,6vw,76px); align-items:start; }
@media(max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-card{ display:flex; flex-direction:column; gap:6px; padding:22px 0; border-top:1px solid var(--line); }
.contact-card .k{ font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--green); }
.contact-card .v{ font-family:var(--display); font-size:clamp(1.3rem,2.2vw,1.8rem); }
.contact-card .s{ color:var(--ink-soft); font-size:.92rem; }

/* CTA (green) */
.cta{ background:var(--green-deep); color:#fff; border-radius:var(--r); padding:clamp(38px,6vw,80px); text-align:center; position:relative; overflow:hidden; }
.cta::before{ content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 50% -20%,rgba(111,174,143,.28),transparent 55%); pointer-events:none; }
.cta > *{ position:relative; z-index:1; }
.cta h2{ color:#fff; font-size:clamp(1.9rem,4.6vw,3.6rem); position:relative; max-width:20ch; margin:0 auto 28px; }
.cta .it{ font-style:italic; color:#9ED3BB; }

/* feature image */
.feature-img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--r); }
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2vw,22px); }
.duo img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--r); }
@media(max-width:680px){ .duo{ grid-template-columns:1fr; } }

/* ============ FOOTER (green) ============ */
.ftr{ background:var(--green-deep); color:#fff; padding-top:clamp(50px,6vw,88px); position:relative; z-index:1; }
.ftr__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:clamp(24px,4vw,48px); padding-bottom:54px; border-bottom:1px solid rgba(255,255,255,.14); }
.ftr__brand img{ height:34px; margin-bottom:18px; }
.ftr__brand p{ color:rgba(255,255,255,.66); font-size:.95rem; max-width:32ch; }
.ftr h5{ font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:#9ED3BB; margin-bottom:16px; font-weight:500; }
.ftr ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.ftr ul a{ color:rgba(255,255,255,.78); font-size:.95rem; transition:color .3s,padding-left .3s; }
.ftr ul a:hover{ color:#fff; padding-left:6px; }
.ftr__bottom{ display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap; padding:24px 0; font-family:var(--mono); font-size:12px; letter-spacing:.03em; color:rgba(255,255,255,.55); }
@media(max-width:820px){ .ftr__top{ grid-template-columns:1fr 1fr; } }
@media(max-width:480px){ .ftr__top{ grid-template-columns:1fr; } }

/* reveal */
[data-reveal]{ opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal][data-d="1"]{ transition-delay:.08s; }
[data-reveal][data-d="2"]{ transition-delay:.16s; }
[data-reveal][data-d="3"]{ transition-delay:.24s; }

/* responsive */
@media(max-width:980px){
  .hdr__nav{ display:none; } .burger{ display:flex; }
  .intro-grid{ grid-template-columns:1fr; } .intro-grid .meta{ position:static; }
  .stats{ grid-template-columns:1fr 1fr; }
}
@media(max-width:560px){ body{ font-size:16px; } .stats{ grid-template-columns:1fr 1fr; } }
@media(prefers-reduced-motion:reduce){
  *{ animation:none !important; scroll-behavior:auto !important; }
  [data-reveal]{ opacity:1; transform:none; }
  .hero h1 .w,.hero__sub,.hero__cta,.hero__trust{ opacity:1; }
}

/* ============ LEGISLATIVE CASE STUDIES — methodology flow ============ */
.tag{ display:inline-block; font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--green-deep); background:var(--green-soft); padding:5px 11px; border-radius:100px; white-space:nowrap; }
.flow{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,26px); }
.flow::before{ content:""; position:absolute; top:24px; left:12.5%; right:12.5%; height:2px; background:var(--green); opacity:.28; z-index:0; }
.flow__step{ position:relative; text-align:center; z-index:1; }
.flow__node{ width:48px; height:48px; border-radius:50%; background:var(--green); color:#fff; font-family:var(--mono); font-size:15px; display:grid; place-items:center; margin:0 auto 18px; box-shadow:0 0 0 6px var(--green-soft); position:relative; z-index:1; }
.proj__method .flow__node{ box-shadow:0 0 0 6px #fff; }
.flow__box b{ display:block; font-family:var(--display); font-weight:450; font-size:1.04rem; line-height:1.1; }
.flow__box span{ display:block; color:var(--ink-soft); font-size:.85rem; margin-top:8px; line-height:1.4; }
@media(max-width:760px){
  .flow{ grid-template-columns:1fr; gap:0; }
  .flow::before{ display:none; }
  .flow__step{ text-align:left; display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start; padding-bottom:26px; }
  .flow__node{ margin:0; }
  .flow__step:not(:last-child)::after{ content:""; position:absolute; left:23px; top:50px; bottom:0; width:2px; background:var(--green); opacity:.25; }
  .flow__box{ padding-top:10px; }
}
/* project blocks */
.proj{ border-top:1px solid var(--line); }
.proj__head{ display:grid; grid-template-columns:auto 1fr auto; gap:clamp(16px,3vw,34px); align-items:start; }
.proj__n{ font-family:var(--display); font-size:clamp(2.6rem,6vw,4.6rem); color:var(--green); line-height:.82; }
.proj__client{ font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.proj__head h2{ font-size:clamp(1.5rem,3.2vw,2.5rem); margin:9px 0 8px; line-height:1.03; }
.proj__sub{ font-family:var(--display); font-style:italic; font-size:clamp(1.02rem,1.6vw,1.25rem); color:var(--green-deep); }
.proj__narr{ color:var(--ink-2); max-width:80ch; margin:24px 0 0; }
.facts{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; margin:28px 0; }
.factbox{ background:var(--card); padding:18px 20px; display:flex; flex-direction:column; gap:6px; }
.tint .factbox{ background:var(--paper); }
.factbox .k{ font-family:var(--mono); font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--green); }
.factbox .v{ font-family:var(--display); font-weight:450; font-size:1.12rem; line-height:1.1; }
.proj__method{ background:var(--green-soft); border-radius:var(--r); padding:clamp(22px,3vw,40px); }
.tint .proj__method{ background:#fff; }
@media(max-width:680px){ .proj__head{ grid-template-columns:1fr; gap:10px; } .facts{ grid-template-columns:1fr; } .proj__head .tag{ justify-self:start; } }

/* ============ GREEN HERO + OVER-DARK HEADER ============ */
.hero--green{ background:var(--green-deep); color:#fff; }
.hero--green .kicker{ color:rgba(255,255,255,.72); }
.hero--green .kicker .dot{ background:#9ED3BB; }
.hero--green h1{ color:#fff; }
.hero--green .hero h1 .it, .hero--green h1 .it{ color:#9ED3BB; }
.hero--green .hero__sub{ color:rgba(255,255,255,.84); }
.hero--green .hero__glow{ background:radial-gradient(circle,rgba(158,211,187,.20),transparent 62%); }
.hero--green .hero__glow.two{ background:radial-gradient(circle,rgba(158,211,187,.12),transparent 60%); }
.hero--green .btn--ghost{ color:#fff; border-color:rgba(255,255,255,.45); }
.hero--green .btn--ghost:hover{ background:#fff; color:var(--green-deep); border-color:#fff; }
.hero--green .btn--light{ background:#fff; color:var(--green-deep); border-color:#fff; }
.hero--green .btn--light:hover{ background:var(--green-soft); border-color:var(--green-soft); color:var(--green-deep); }

/* header transparent-over-dark state (home) — reverts to light when .solid on scroll */
/* logo swap handled by .logo-dark/.logo-light visibility */
.hdr__logo .logo-light{ display:none; }
.hdr.over-dark:not(.solid) .hdr__logo .logo-dark{ display:none; }
.hdr.over-dark:not(.solid) .hdr__logo .logo-light{ display:block; }
.hdr.over-dark:not(.solid) .navlink{ color:rgba(255,255,255,.82); }
.hdr.over-dark:not(.solid) .navlink:hover,.hdr.over-dark:not(.solid) .navlink.active{ color:#fff; }
.hdr.over-dark:not(.solid) .navlink::after{ background:#fff; }
.hdr.over-dark:not(.solid) .navlink.active::after{ width:100%; }
.hdr.over-dark:not(.solid) .hdr__lang{ color:#fff; border-color:rgba(255,255,255,.4); }
.hdr.over-dark:not(.solid) .hdr__lang:hover{ border-color:#fff; }
.hdr.over-dark:not(.solid) .hdr__cta{ background:#fff; color:var(--green-deep); }
.hdr.over-dark:not(.solid) .hdr__cta:hover{ background:var(--green-soft); }
.hdr.over-dark:not(.solid) .burger span{ background:#fff; }

/* ============ BIGGER, CRISP LOGO ============ */
.hdr__logo img{ height:58px; }
.hdr.solid .hdr__logo img{ height:46px; }
.ftr__brand img.ftr__logo{ height:84px; margin-bottom:24px; }

/* ============ BENTO — OUR EXPERTISE (billion-dollar tech feel) ============ */
.bento{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; grid-auto-rows:minmax(196px,auto); }
.btile{ position:relative; border:1px solid transparent; border-radius:18px; background-color:var(--green-deep); color:#fff; padding:28px; display:flex; flex-direction:column; justify-content:space-between; gap:34px; cursor:pointer; overflow:hidden; transition:transform .55s var(--ease),box-shadow .55s var(--ease); }
.btile::after{ content:""; position:absolute; inset:0; background:radial-gradient(130% 110% at 100% 0%,rgba(158,211,187,.18),transparent 55%); opacity:0; transition:opacity .55s; pointer-events:none; }
.btile:hover,.btile:focus-visible{ transform:translateY(-7px); box-shadow:0 28px 56px rgba(13,44,33,.34); outline:none; }
.btile:hover::after{ opacity:1; }
.btile__top{ display:flex; align-items:center; justify-content:space-between; position:relative; z-index:1; }
.btile__num{ font-family:var(--mono); font-size:13px; letter-spacing:.1em; color:#9ED3BB; }
.btile__go{ width:34px; height:34px; color:#fff; opacity:0; transform:translateX(-8px); transition:.5s var(--ease); }
.btile__go svg{ width:20px; height:20px; }
.btile:hover .btile__go{ opacity:1; transform:translateX(0); }
.btile__body{ position:relative; z-index:1; }
.btile h3{ font-family:var(--display); font-weight:500; font-size:clamp(1.3rem,2vw,1.9rem); line-height:1.04; color:#fff; }
.btile small{ display:block; margin-top:11px; font-family:var(--mono); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:rgba(255,255,255,.74); }
.btile--feature{ grid-column:span 2; }
.btile--feature::after{ opacity:0; }
@keyframes meshmove{ to{ transform:translate(-12%,10%) scale(1.18);} }
.btile--feature .btile__num{ color:#9ED3BB; }
.btile--feature .btile__go{ color:#fff; }
.btile--feature h3{ font-size:clamp(1.9rem,3.6vw,3.1rem); }
.btile--feature small{ color:rgba(255,255,255,.72); }
@media(max-width:820px){ .bento{ grid-template-columns:repeat(2,1fr);} .btile--feature{ grid-column:span 2;} }
@media(max-width:520px){ .bento{ grid-template-columns:1fr;} .btile--feature{ grid-column:span 1;} .btile{ min-height:158px;} }

/* practice detail panel head */
.modal__head--prac{ grid-template-columns:1fr; }
.modal__head--prac .role{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--green); }

/* ============ SELECTED WORK — big-number bento ============ */
.swbento{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; grid-auto-rows:minmax(158px,1fr); }
.sw{ position:relative; border:1px solid var(--line); border-radius:18px; background:var(--card); padding:26px; display:flex; flex-direction:column; justify-content:space-between; gap:18px; overflow:hidden; transition:transform .55s var(--ease),box-shadow .55s var(--ease); }
.sw:hover{ transform:translateY(-6px); box-shadow:0 24px 50px rgba(22,20,15,.11); }
.sw .tag{ align-self:flex-start; }
.sw__num{ font-family:var(--display); font-weight:440; font-size:clamp(2.6rem,4.6vw,4rem); line-height:.86; color:var(--green-deep); letter-spacing:-.02em; }
.sw__label{ color:var(--ink-soft); font-size:.93rem; }
.sw--feature{ grid-column:span 2; grid-row:span 2; background:linear-gradient(150deg,var(--green-mid),var(--green-deep)); color:#fff; border-color:transparent; }
.sw--feature::after{ content:""; position:absolute; inset:0; background:radial-gradient(120% 100% at 100% 0%,rgba(158,211,187,.24),transparent 56%); pointer-events:none; animation:meshmove 15s var(--ease) infinite alternate; }
.sw--feature>*{ position:relative; z-index:1; }
.sw--feature .sw__val{ font-family:var(--display); font-weight:430; font-size:clamp(3.2rem,8vw,6.4rem); line-height:.82; letter-spacing:-.03em; }
.sw--feature .sw__title{ font-family:var(--display); font-weight:440; font-size:clamp(1.5rem,2.6vw,2.2rem); margin-top:14px; line-height:1.02; }
.sw--feature p{ color:rgba(255,255,255,.84); margin-top:14px; }
.sw--feature .tag{ background:rgba(255,255,255,.16); color:#fff; }
@media(max-width:820px){ .swbento{ grid-template-columns:repeat(2,1fr);} .sw--feature{ grid-column:span 2; grid-row:span 1;} }
@media(max-width:520px){ .swbento{ grid-template-columns:1fr;} .sw--feature{ grid-column:span 1;} }

/* ============ CASE STUDIES — immersive band + ghost numbers ============ */
/* full-bleed image band */
.imgband{ position:relative; width:100%; min-height:clamp(300px,42vw,500px); display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; }
.imgband img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-2; }
.imgband::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(13,44,33,.12) 0%,rgba(13,44,33,.10) 42%,rgba(13,44,33,.80) 100%); }
.imgband .wrap{ padding-block:clamp(26px,4vw,46px); }
.imgband__cap{ max-width:36ch; }
.imgband__cap .kicker{ color:rgba(255,255,255,.82); }
.imgband__cap .kicker .dot{ background:#9ED3BB; }
.imgband__cap h3{ color:#fff; font-size:clamp(1.45rem,3.2vw,2.5rem); line-height:1.1; margin-top:14px; }
.imgband__cap h3 .it{ font-style:italic; color:#9ED3BB; }

.band{ border-radius:24px; }
.band--green{ background:var(--green-deep); color:#fff; padding:clamp(32px,5vw,72px); position:relative; overflow:hidden; }
.band--green::before{ content:""; position:absolute; right:-12%; top:-50%; width:55%; height:180%; border-radius:50%; background:radial-gradient(circle,rgba(158,211,187,.18),transparent 60%); pointer-events:none; }
.band--green>*{ position:relative; z-index:1; }
.band--green .kicker{ color:rgba(255,255,255,.74); }
.band--green .kicker .dot{ background:#9ED3BB; }
.band--green h2{ color:#fff; }
.band--green .flow::before{ background:rgba(255,255,255,.34); opacity:1; }
.band--green .flow__node{ background:#fff; color:var(--green-deep); box-shadow:0 0 0 6px rgba(255,255,255,.10); }
.band--green .flow__box b{ color:#fff; }
.band--green .flow__box span{ color:rgba(255,255,255,.72); }
.band--green .flow__step:not(:last-child)::after{ background:rgba(255,255,255,.3); }
.proj{ position:relative; overflow:hidden; }
.proj .wrap{ position:relative; z-index:1; }
.proj__ghost{ position:absolute; z-index:0; right:1%; top:-2.6rem; font-family:var(--display); font-weight:430; font-size:clamp(9rem,26vw,23rem); line-height:1; color:var(--green); opacity:.05; pointer-events:none; user-select:none; }
.tint .proj__ghost{ opacity:.07; }

/* ============ HEADER FIT (Contact tab + Company profile button) ============ */
.hdr__cta{ white-space:nowrap; }
.hdr__cta .dlico{ font-size:1.05em; margin-left:.1em; }
.hdr__nav{ gap:22px; }
.drawer a[download]{ font-size:clamp(1.1rem,4vw,1.5rem); color:#9ED3BB; }
@media(max-width:1120px){ .hdr__nav{ display:none; } .burger{ display:flex; } }
@media(max-width:420px){ .hdr__cta{ padding:8px 12px; font-size:11.5px; } }

/* ============ HERO — KAFD skyline backdrop (green-tinted) ============ */
.hero--green{
  background:
    linear-gradient(104deg, rgba(15,49,37,.97) 0%, rgba(17,55,42,.90) 40%, rgba(20,62,47,.62) 72%, rgba(20,62,47,.42) 100%),
    url('kafd.jpg');
  background-size:cover; background-position:center right; background-repeat:no-repeat;
  min-height:clamp(580px,90vh,920px); display:flex; align-items:center;
}
.hero--green .hero__glow{ mix-blend-mode:screen; opacity:.6; }
@media(max-width:820px){
  .hero--green{ background:
    linear-gradient(160deg, rgba(15,49,37,.95) 0%, rgba(17,55,42,.90) 55%, rgba(20,62,47,.80) 100%),
    url('kafd.jpg'); background-position:center center; min-height:auto; }
}

/* ============ REPRESENTATIVE WORK — editorial matter list ============ */
.mwork{ border-top:1px solid var(--line); }
.mrow{ display:grid; grid-template-columns:auto minmax(150px,210px) 1fr auto; gap:clamp(16px,3vw,44px); align-items:center;
  padding:clamp(22px,2.8vw,34px) 0; border-bottom:1px solid var(--line); position:relative; color:var(--ink); transition:padding-left .45s var(--ease); }
.mrow::before{ content:""; position:absolute; left:-100vw; right:-100vw; top:0; bottom:0; background:var(--green-soft); opacity:0; transition:opacity .4s; z-index:-1; }
.mrow:hover{ padding-left:14px; } .mrow:hover::before{ opacity:1; }
.mrow__n{ font-family:var(--display); font-weight:430; font-size:clamp(1.6rem,2.6vw,2.4rem); color:var(--green); line-height:1; }
.mrow__tag{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--green-deep); }
.mrow__title{ display:block; font-family:var(--display); font-weight:440; font-size:clamp(1.2rem,1.9vw,1.6rem); line-height:1.08; }
.mrow__desc{ display:block; color:var(--ink-soft); font-size:.95rem; margin-top:7px; max-width:60ch; }
.mrow__go{ width:48px; height:48px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; flex:0 0 auto; color:var(--ink); transition:.45s var(--ease); }
.mrow__go svg{ width:18px; height:18px; }
.mrow:hover .mrow__go{ background:var(--green); color:#fff; border-color:var(--green); transform:rotate(-45deg); }
@media(max-width:880px){
  .mrow{ grid-template-columns:auto 1fr auto; gap:18px 20px; }
  .mrow__tag{ grid-column:2; }
  .mrow__main{ grid-column:1 / -1; padding-left:0; }
}
@media(max-width:520px){ .mrow__go{ display:none; } }

/* ============ ISLAMIC BRAND ATMOSPHERE (subtle, sparse) ============ */
/* No tiling — a single refined girih flourish, used sparingly in side whitespace */
.flourish{ position:relative; overflow:hidden; }
.flourish::after{ content:""; position:absolute; width:560px; height:560px; right:-230px; top:50%; transform:translateY(-50%);
  background:url('motif.svg') center/contain no-repeat; opacity:.08; pointer-events:none; z-index:0; }
.flourish--left::after{ right:auto; left:-250px; }
.flourish > *{ position:relative; z-index:1; }
@media(max-width:1000px){ .flourish::after{ display:none; } }

/* ============ FIRM SECTION (home) ============ */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; margin-top:clamp(26px,4vw,46px); }
.pillar{ background:var(--card); padding:clamp(24px,3vw,38px); }
.pillar .pn{ font-family:var(--mono); font-size:12px; letter-spacing:.08em; color:var(--green); }
.pillar h4{ font-family:var(--display); font-weight:440; font-size:clamp(1.2rem,1.8vw,1.55rem); margin:14px 0 10px; }
.pillar p{ color:var(--ink-soft); font-size:.95rem; }
@media(max-width:820px){ .pillars{ grid-template-columns:1fr; } }

/* ============ VALUES (expertise) ============ */
.values{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.vcell{ background:var(--card); padding:clamp(24px,2.6vw,34px); transition:background .4s; }
.vcell:hover{ background:var(--green-soft); }
.vcell .vn{ font-family:var(--display); font-size:clamp(1.8rem,3vw,2.6rem); color:var(--green); line-height:1; }
.vcell h4{ font-family:var(--display); font-weight:450; font-size:1.2rem; margin:16px 0 10px; }
.vcell p{ color:var(--ink-soft); font-size:.92rem; }
@media(max-width:900px){ .values{ grid-template-columns:1fr 1fr; } }
@media(max-width:540px){ .values{ grid-template-columns:1fr; } }

/* ============ CAREERS BOX (people) ============ */
.careers{ background:var(--green-deep); color:#fff; border-radius:var(--r); padding:clamp(34px,5vw,68px); position:relative; overflow:hidden;
  display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(24px,4vw,48px); align-items:center; }
.careers::after{ content:""; position:absolute; right:-150px; top:50%; width:500px; height:500px; transform:translateY(-50%);
  background:url('motif.svg') center/contain no-repeat; opacity:.10; filter:brightness(0) invert(1); pointer-events:none; }
.careers > *{ position:relative; z-index:1; }
.careers .kicker{ color:#9ED3BB; } .careers .kicker .dot{ background:#9ED3BB; }
.careers h2{ color:#fff; font-size:clamp(1.7rem,3.4vw,2.8rem); margin:14px 0 0; }
.careers p{ color:rgba(255,255,255,.82); margin-top:16px; }
.careers__cta{ display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
@media(max-width:760px){ .careers{ grid-template-columns:1fr; } .careers__cta{ align-items:stretch; } }

/* ============ PIONEERS NARRATIVE (case studies) ============ */
.pioneer{ background:var(--green-deep); color:#fff; border-radius:24px; padding:clamp(36px,6vw,84px); position:relative; overflow:hidden;
  }
.pioneer::after{ content:""; position:absolute; left:-200px; bottom:-200px; width:560px; height:560px;
  background:url('motif.svg') center/contain no-repeat; opacity:.09; filter:brightness(0) invert(1); pointer-events:none; }
.pioneer > *{ position:relative; z-index:1; max-width:62ch; }
.pioneer .kicker{ color:#9ED3BB; } .pioneer .kicker .dot{ background:#9ED3BB; }
.pioneer h2{ color:#fff; font-size:clamp(1.9rem,4vw,3rem); margin:16px 0 20px; line-height:1.05; }
.pioneer p{ color:rgba(255,255,255,.85); font-size:clamp(1.02rem,1.5vw,1.2rem); line-height:1.5; }
.pioneer .it{ font-style:italic; color:#9ED3BB; }

/* ============ MOSAIC DIVIDER (zellij, overt green) ============ */
.divider{ height:27px; background:url('mosaic.svg') repeat-x center; background-size:auto 27px; opacity:1; }
@media(max-width:600px){ .divider{ height:22px; background-size:auto 22px; } }

/* ============ NEWS (home) — mandate artwork + click-to-open ============ */
.news{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.ncard{ position:relative; isolation:isolate; min-height:244px; border-radius:18px; overflow:hidden; cursor:pointer;
  display:flex; flex-direction:column; justify-content:flex-end; padding:26px; color:#fff;
  background-color:var(--green-deep); background-image:linear-gradient(150deg,var(--green-mid),var(--green-deep)); transition:transform .55s var(--ease),box-shadow .55s var(--ease); }
.ncard::before{ content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(120% 90% at 100% 0%,rgba(158,211,187,.16),transparent 55%); }
.ncard__art{ position:absolute; right:-14px; top:-10px; width:148px; height:148px; color:#9ED3BB; opacity:.30; z-index:0; pointer-events:none; }
.ncard__art svg{ width:100%; height:100%; }
.ncard:hover{ transform:translateY(-6px); box-shadow:0 26px 54px rgba(13,44,33,.32); }
.ncard:hover .ncard__art{ opacity:.42; }
.ncard__date{ font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#9ED3BB; position:relative; z-index:1; }
.ncard h3{ font-family:var(--display); font-weight:500; font-size:clamp(1.12rem,1.5vw,1.42rem); line-height:1.14; margin-top:11px; position:relative; z-index:1; }
.ncard__go{ font-family:var(--mono); font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:#fff; display:inline-flex; align-items:center; gap:.5em; margin-top:16px; opacity:.92; position:relative; z-index:1; }
.ncard__go svg{ width:16px; height:16px; }
.ncard--feature{ grid-column:span 3; min-height:clamp(300px,36vw,400px); padding:clamp(28px,4vw,52px); }
.ncard--feature .ncard__art{ width:300px; height:300px; right:2%; top:50%; transform:translateY(-50%); opacity:.20; }
.ncard--feature h3{ font-size:clamp(1.6rem,3.2vw,2.6rem); max-width:18ch; }
@media(max-width:820px){ .news{ grid-template-columns:1fr 1fr; } .ncard--feature{ grid-column:span 2; } }
@media(max-width:540px){ .news{ grid-template-columns:1fr; } .ncard--feature{ grid-column:span 1; } }

/* news article panel */
.news-hero{ background:linear-gradient(150deg,var(--green-mid),var(--green-deep)); color:#fff; padding:clamp(30px,4vw,46px) clamp(26px,4vw,44px); position:relative; overflow:hidden; }
.news-hero::after{ content:""; position:absolute; inset:0; background:radial-gradient(120% 100% at 100% 0%,rgba(158,211,187,.18),transparent 55%); }
.news-hero__art{ position:absolute; right:-20px; top:50%; transform:translateY(-50%); width:200px; height:200px; color:#9ED3BB; opacity:.26; }
.news-hero__art svg{ width:100%; height:100%; }
.news-hero__txt{ position:relative; z-index:1; }
.news-hero .role{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:#9ED3BB; }
.news-hero h2{ color:#fff; font-size:clamp(1.5rem,2.6vw,2.1rem); margin-top:12px; line-height:1.1; max-width:22ch; }
#news-modal .modal__body p{ color:var(--ink-2); margin-bottom:15px; }
#news-modal .modal__close{ background:var(--green); }

/* ============ NEWS PANEL — published / press / advisers / mosaic foot ============ */
#news-modal .modal__panel, #prac-modal .modal__panel{ display:flex; flex-direction:column; }
#news-modal .modal__body, #prac-modal .modal__body{ flex:0 0 auto; }
.news-pub{ font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--ink-soft); padding-bottom:16px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.news-pub:empty{ display:none; }
.news-pub__k{ color:var(--green); text-transform:uppercase; letter-spacing:.1em; margin-right:6px; }
.news-links{ margin-top:26px; } .news-links:empty{ display:none; }
.news-links h4, .news-team h4{ font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--green); margin-bottom:14px; }
.news-links a{ display:block; padding:12px 0; border-top:1px solid var(--line); color:var(--ink); font-size:.95rem; transition:color .3s,padding-left .3s; }
.news-links a:hover{ color:var(--green); padding-left:6px; }
.news-team{ margin-top:30px; } .news-team:empty{ display:none; }
.news-team__row{ display:flex; flex-wrap:wrap; gap:14px; }
.lwyr{ display:flex; align-items:center; gap:13px; background:var(--green-soft); border-radius:14px; padding:10px 20px 10px 10px; }
.lwyr__ph{ width:48px; height:60px; border-radius:10px; background:var(--green-mid) top center/cover no-repeat; flex:0 0 auto; }
.lwyr__tx{ display:flex; flex-direction:column; line-height:1.2; }
.lwyr__tx b{ font-family:var(--display); font-weight:500; font-size:1rem; }
.lwyr__tx span{ font-family:var(--mono); font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); margin-top:3px; }
.news-foot{ flex:1 1 auto; min-height:110px; margin-top:30px; background:url('mosaic.svg') repeat; background-size:48px 48px; opacity:1; border-radius:0 0 var(--r) var(--r); }

/* news panel hero with photo */
.news-hero--photo{ background-size:cover; background-position:center; min-height:clamp(180px,26vh,260px); }

/* practice panel: image hero tag + mosaic foot */
#prac-modal .news-hero{ min-height:clamp(190px,26vh,260px); }
.prac-tag{ display:inline-block; margin-top:16px; font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  background:rgba(255,255,255,.16); color:#fff; padding:7px 14px; border-radius:999px; }
#prac-modal .modal__body h4{ font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--green); margin:30px 0 14px; }

/* ===== practice tile icon art (resembles each practice) ===== */
.btile__art{ position:absolute; right:-12px; top:50%; transform:translateY(-50%); width:150px; height:150px; color:#9ED3BB; opacity:.22; z-index:0; pointer-events:none; }
.btile__art svg{ width:100%; height:100%; }
.btile--feature .btile__art{ width:230px; height:230px; right:3%; opacity:.18; }
.btile:hover .btile__art{ opacity:.32; }
.btile__top,.btile__body{ position:relative; z-index:1; }

/* ===== modern mosaic weave woven on top of the closing boxes ===== */
.weave{ position:relative; overflow:hidden; }
.weave::before{ content:""; position:absolute; left:0; right:0; top:0; height:27px;
  background:url('mosaic.svg') repeat-x center; background-size:auto 27px; opacity:1; pointer-events:none; z-index:1; }
.weave > *{ position:relative; z-index:2; }
@media(max-width:600px){ .weave::before{ height:21px; background-size:auto 21px; } }

@media(max-width:700px){ .hdr__logo img{ height:42px !important; } .ftr__brand img.ftr__logo{ height:64px; } }

/* ===================== Chat assistant ===================== */
.chat{ position:fixed; right:22px; bottom:22px; z-index:200; font-family:var(--sans); }
.chat__launch{ display:inline-flex; align-items:center; justify-content:center; background:var(--green); color:#fff; border:none; width:58px; height:58px; border-radius:50%; padding:0; font-family:var(--mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; overflow:hidden; cursor:pointer; box-shadow:0 16px 36px rgba(20,62,47,.34); transition:width .35s var(--ease),border-radius .35s var(--ease),padding .35s var(--ease),background .3s,transform .3s,opacity .3s; }
.chat__launch:hover{ background:var(--green-deep); width:auto; border-radius:100px; padding:0 22px; transform:translateY(-2px); }
.chat__launch-txt{ max-width:0; opacity:0; transition:max-width .35s var(--ease),opacity .25s,margin .35s; }
.chat__launch:hover .chat__launch-txt{ max-width:240px; opacity:1; margin-left:10px; }
.chat__launch-ic{ width:20px; height:20px; }
.chat--open .chat__launch{ opacity:0; pointer-events:none; transform:scale(.9); }
.chat__panel[hidden]{ display:none !important; }
.chat__panel{ position:absolute; right:0; bottom:0; width:372px; max-width:calc(100vw - 32px); height:564px; max-height:calc(100vh - 90px); background:var(--paper); border:1px solid var(--line-soft); border-radius:20px; box-shadow:0 32px 74px rgba(20,20,15,.30); display:flex; flex-direction:column; overflow:hidden; animation:chatIn .35s var(--ease); }
@keyframes chatIn{ from{ opacity:0; transform:translateY(16px) scale(.98);} to{ opacity:1; transform:none;} }
.chat__head{ display:flex; align-items:center; gap:12px; padding:15px 18px; background:var(--green-deep); color:#fff; }
.chat__avatar{ width:38px; height:38px; border-radius:50%; background:var(--green); border:1px solid #9ED3BB; display:flex; align-items:center; justify-content:center; font-family:var(--display); font-size:18px; color:#9ED3BB; flex:0 0 auto; }
.chat__who{ display:flex; flex-direction:column; line-height:1.25; flex:1; min-width:0; }
.chat__who b{ font-family:var(--display); font-weight:500; font-size:15px; }
.chat__who span{ font-size:11px; color:rgba(255,255,255,.72); }
.chat__close{ background:none; border:none; color:#fff; font-size:25px; line-height:1; cursor:pointer; opacity:.8; padding:0 2px; }
.chat__close:hover{ opacity:1; }
.chat__log{ flex:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:10px; }
.chat__msg{ max-width:85%; padding:10px 14px; border-radius:15px; font-size:14px; line-height:1.45; }
.chat__msg--bot{ align-self:flex-start; background:#fff; border:1px solid var(--line-soft); color:var(--ink); border-bottom-left-radius:4px; }
.chat__msg--user{ align-self:flex-end; background:var(--green); color:#fff; border-bottom-right-radius:4px; }
.chat__typing{ display:flex; gap:5px; align-items:center; }
.chat__typing span{ width:6px; height:6px; border-radius:50%; background:var(--ink-faint); animation:chatdot 1s infinite; }
.chat__typing span:nth-child(2){ animation-delay:.15s; } .chat__typing span:nth-child(3){ animation-delay:.3s; }
@keyframes chatdot{ 0%,60%,100%{ opacity:.3; transform:translateY(0);} 30%{ opacity:1; transform:translateY(-3px);} }
.chat__quick{ display:flex; flex-wrap:wrap; gap:8px; padding:0 18px; }
.chat__quick:not(:empty){ padding-bottom:8px; }
.chat__chip{ background:var(--green-soft); color:var(--green-deep); border:1px solid #9ED3BB; border-radius:100px; padding:7px 13px; font-size:12.5px; cursor:pointer; transition:.25s; }
.chat__chip:hover{ background:var(--green); color:#fff; border-color:var(--green); }
.chat__form{ display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--line-soft); background:var(--card); }
.chat__input{ flex:1; border:1px solid var(--line); border-radius:100px; padding:11px 16px; font-size:14px; font-family:var(--sans); background:#fff; outline:none; transition:border-color .25s; }
.chat__input:focus{ border-color:var(--green); }
.chat__send{ flex:0 0 auto; width:42px; height:42px; border-radius:50%; background:var(--green); color:#fff; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .25s; }
.chat__send:hover{ background:var(--green-deep); }
.chat__send svg{ width:18px; height:18px; }
.chat__foot{ text-align:center; font-size:10.5px; color:var(--ink-faint); padding:0 0 10px; background:var(--card); }
@media(max-width:480px){ .chat{ right:14px; bottom:14px; } .chat__launch{ width:54px; height:54px; } .chat__launch:hover{ width:54px; padding:0; } .chat__launch-txt{ display:none; } .chat__panel{ width:calc(100vw - 28px); height:calc(100vh - 84px); } }

/* ===================== LinkedIn icons ===================== */
.li-ic{ width:100%; height:100%; display:block; }
/* header LinkedIn (replaces old profile button) */
.hdr__li{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; color:var(--green); border:1px solid var(--line); transition:background .25s,color .25s,border-color .25s,transform .25s; }
.hdr__li .li-ic{ width:18px; height:18px; }
.hdr__li:hover{ background:var(--green); color:#fff; border-color:var(--green); transform:translateY(-1px); }
.hdr.over-dark:not(.solid) .hdr__li{ color:#fff; border-color:rgba(255,255,255,.5); }
.hdr.over-dark:not(.solid) .hdr__li:hover{ background:#fff; color:var(--green-deep); border-color:#fff; }
/* lawyer card LinkedIn overlay */
.pcard__img{ position:relative; }
.pcard__li{ position:absolute; top:12px; right:12px; z-index:3; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(20,62,47,.55); color:#fff; backdrop-filter:blur(3px); opacity:0; transform:translateY(-4px); transition:.3s var(--ease); }
.pcard__li .li-ic{ width:17px; height:17px; }
.pcard:hover .pcard__li,.pcard:focus-within .pcard__li{ opacity:1; transform:none; }
.pcard__li:hover{ background:var(--green); }
/* bio modal LinkedIn */
.modal__li{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; color:var(--green); border:1px solid var(--line); margin-top:10px; transition:background .25s,color .25s; }
.modal__li .li-ic{ width:17px; height:17px; }
.modal__li:hover{ background:var(--green); color:#fff; }

/* ===================== The firm — manifesto + framework ledger ===================== */
.firm2__grid{ display:grid; grid-template-columns:1.02fr 1fr; gap:clamp(38px,5.5vw,84px); align-items:start; }
.firm2__lead{ max-width:60ch; }
.firm2__stats{ display:flex; gap:clamp(22px,3.4vw,46px); margin-top:clamp(28px,4vw,42px); flex-wrap:wrap; }
.firm2__stats .stat{ display:flex; flex-direction:column; }
.firm2__stats b{ font-family:var(--display); font-weight:500; font-size:clamp(2rem,3.6vw,2.9rem); color:var(--green); line-height:1; }
.firm2__stats span{ font-family:var(--mono); font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-faint); margin-top:9px; max-width:19ch; line-height:1.5; }

.firm2__ledger{ border:1px solid var(--line); border-radius:16px; background:var(--card); overflow:hidden; box-shadow:0 22px 50px rgba(20,40,32,.07); }
.firm2__ledger-h{ display:flex; justify-content:space-between; align-items:center; padding:14px 22px; font-family:var(--mono); font-size:10px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-faint); border-bottom:1px solid var(--line); background:var(--paper); }
.fw{ display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:16px; padding:17px 22px; border-bottom:1px solid var(--line-soft); position:relative; overflow:hidden; transition:background .3s var(--ease); }
.firm2__rows .fw:last-child{ border-bottom:none; }
.fw::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--green); transform:scaleY(0); transform-origin:center; transition:transform .4s var(--ease); }
.fw:hover{ background:var(--green-soft); }
.fw:hover::before{ transform:scaleY(1); }
.fw__i{ font-family:var(--mono); font-size:11px; color:var(--green); letter-spacing:.04em; }
.fw__t{ font-family:var(--display); font-size:clamp(1.02rem,1.35vw,1.2rem); color:var(--ink); line-height:1.25; transition:transform .35s var(--ease); }
.fw:hover .fw__t{ transform:translateX(4px); }
.fw__s{ font-family:var(--mono); font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); white-space:nowrap; }
.fw__ar{ color:var(--green); opacity:0; transform:translateX(-6px); transition:.35s var(--ease); font-size:15px; }
.fw:hover .fw__ar{ opacity:1; transform:none; }
.firm2__ledger-f{ display:flex; align-items:center; gap:9px; padding:13px 22px; font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); background:var(--paper); border-top:1px solid var(--line); }
.firm2__ledger-f .dot{ width:6px; height:6px; border-radius:50%; background:var(--green-mid); display:inline-block; }
/* staggered reveal of rows */
.firm2__ledger .fw{ opacity:0; transform:translateY(10px); transition:opacity .5s var(--ease),transform .5s var(--ease),background .3s var(--ease); }
.firm2__ledger.in .fw{ opacity:1; transform:none; }
.firm2__ledger.in .fw:nth-child(2){ transition-delay:.04s; } .firm2__ledger.in .fw:nth-child(3){ transition-delay:.08s; }
.firm2__ledger.in .fw:nth-child(4){ transition-delay:.12s; } .firm2__ledger.in .fw:nth-child(5){ transition-delay:.16s; }
.firm2__ledger.in .fw:nth-child(6){ transition-delay:.2s; } .firm2__ledger.in .fw:nth-child(7){ transition-delay:.24s; }
@media(max-width:860px){ .firm2__grid{ grid-template-columns:1fr; } .fw__s{ display:none; } .fw{ grid-template-columns:auto 1fr auto; } }

/* ===================== The firm — founders + testimonials ===================== */
.founders__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,3vw,40px); margin-top:clamp(32px,5vw,56px); }
.founder{ background:var(--card); border:1px solid var(--line); border-radius:18px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 22px 50px rgba(20,40,32,.07); }
.founder__img{ position:relative; aspect-ratio:5/4; background:linear-gradient(135deg,var(--green-mid),var(--green-deep)); }
.founder__img img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.founder__li{ position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(20,62,47,.6); color:#fff; backdrop-filter:blur(3px); transition:background .25s; }
.founder__li .li-ic{ width:18px; height:18px; }
.founder__li:hover{ background:var(--green); }
.founder__body{ padding:clamp(22px,3vw,34px); display:flex; flex-direction:column; flex:1; }
.founder__role{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--green); }
.founder__body h3{ font-family:var(--display); font-weight:500; font-size:clamp(1.4rem,2.2vw,1.95rem); margin:8px 0 13px; line-height:1.05; }
.founder__bio{ color:#4a463c; font-size:15px; line-height:1.6; margin:0 0 18px; }
.founder__ach{ list-style:none; margin:0 0 20px; padding:0; display:flex; flex-direction:column; gap:10px; }
.founder__ach li{ position:relative; padding-left:21px; font-size:13.5px; color:var(--ink); line-height:1.45; }
.founder__ach li::before{ content:""; position:absolute; left:0; top:6px; width:7px; height:7px; background:var(--green); transform:rotate(45deg); }
.founder__quote{ font-family:var(--display); font-style:italic; font-size:15.5px; color:var(--green-deep); border-top:1px solid var(--line-soft); padding-top:17px; margin:auto 0 0; }

.quotes{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,2.4vw,26px); }
.quote-card{ position:relative; background:var(--card); border:1px solid var(--line); border-radius:16px; padding:clamp(24px,3vw,34px); margin:0; display:flex; flex-direction:column; }
.quote-card__mark{ font-family:var(--display); font-size:74px; line-height:.6; color:#9ED3BB; height:30px; }
.quote-card blockquote{ font-family:var(--display); font-weight:450; font-size:clamp(1.08rem,1.5vw,1.34rem); line-height:1.42; color:var(--ink); margin:10px 0 20px; flex:1; }
.quote-card figcaption b{ display:block; font-family:var(--display); font-size:14.5px; }
.quote-card figcaption span{ font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); }
.quote-card--feature{ background:var(--green-deep); border-color:transparent; }
.quote-card--feature blockquote{ color:#fff; }
.quote-card--feature figcaption b{ color:#fff; }
.quote-card--feature figcaption span{ color:rgba(255,255,255,.62); }
@media(max-width:860px){ .founders__grid{ grid-template-columns:1fr; } .quotes{ grid-template-columns:1fr; } .founder__img{ aspect-ratio:4/3; } }

/* ===================== Image page-hero (About / Expertise / People) ===================== */
.phh{ position:relative; background:var(--green-deep); color:#fff; overflow:hidden; isolation:isolate; }
.phh__bg{ position:absolute; inset:0; z-index:-2; }
.phh__bg img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.phh__veil{ position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(20,62,47,.60) 0%,rgba(20,62,47,.88) 100%); }
.phh__inner{ padding-top:clamp(140px,17vw,212px); padding-bottom:clamp(48px,6vw,78px); }
.phh .kicker{ color:rgba(255,255,255,.82); }
.phh .kicker .dot{ background:#9ED3BB; }
.phh h1{ font-family:var(--display); font-size:clamp(2.4rem,6vw,4.8rem); line-height:1.05; letter-spacing:-.015em; margin-top:14px; max-width:21ch; }
.phh h1 .serif-italic{ color:#9ED3BB; }
.phh__lede{ color:rgba(255,255,255,.84); max-width:62ch; margin-top:18px; font-size:clamp(1rem,1.4vw,1.18rem); line-height:1.6; }

/* ===================== Home: firm teaser ===================== */
.firm-teaser__grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.firm-teaser__media{ position:relative; border-radius:18px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 26px 60px rgba(20,40,32,.16); }
.firm-teaser__media img{ width:100%; height:100%; object-fit:cover; }
.firm-teaser__tag{ position:absolute; left:16px; bottom:14px; font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#fff; background:rgba(20,62,47,.62); backdrop-filter:blur(4px); padding:6px 12px; border-radius:100px; }
.firm-teaser__body{ max-width:52ch; }
@media(max-width:860px){ .firm-teaser__grid{ grid-template-columns:1fr; } .firm-teaser__media{ aspect-ratio:16/10; } }

/* ===================== About: who we are ===================== */
.about-intro{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(28px,5vw,76px); align-items:start; }
.about-intro__body p{ font-size:clamp(1.02rem,1.35vw,1.2rem); line-height:1.7; color:#3f3b32; margin:0 0 18px; }
.about-intro__body p:last-of-type{ margin-bottom:0; }
.about-intro__body .firm2__stats{ margin-top:30px; }
@media(max-width:860px){ .about-intro{ grid-template-columns:1fr; } }

/* ===================== About: vision band ===================== */
.vision{ position:relative; background:var(--green-deep); color:#fff; border-radius:20px; padding:clamp(48px,6vw,84px) clamp(26px,5vw,68px); overflow:hidden; text-align:center; }
.vision .kicker{ color:rgba(255,255,255,.8); justify-content:center; }
.vision .kicker .dot{ background:#9ED3BB; }
.vision__statement{ font-family:var(--display); font-weight:500; font-size:clamp(1.9rem,4.2vw,3.3rem); line-height:1.14; margin:18px auto 0; max-width:20ch; }
.vision__statement .serif-italic{ color:#9ED3BB; }
.vision__sub{ font-family:var(--sans); color:rgba(255,255,255,.8); max-width:62ch; margin:22px auto 0; line-height:1.65; font-size:15px; }

.btn{ white-space:nowrap; }
.btn svg{ width:18px; height:18px; flex:0 0 auto; }
.btn--green:hover{ background:var(--green-deep); }
