/* Clovantis — photographic editorial direction. Mobile-first interactions. */
:root { --font-display: var(--font-sans); --container-wide: 1376px; --gutter: clamp(1.25rem,4.6vw,4.5rem); --section-y: clamp(4rem,7.5vw,7.5rem); --bg:#091323; --bg-raised:#101d30; --bg-elevated:#15243a; --text:#f3f6fb; --text-soft:#bdcbdc; --text-muted:#9aacc3; --accent:#7cb5ff; --accent-2:#e2b37c; }
:root[data-theme="light"] { --bg:#fff; --bg-raised:#f3f6f8; --bg-elevated:#fff; --text:#101e31; --text-soft:#495b70; --text-muted:#586a7e; --text-faint:#65768a; --accent:#215edd; --accent-strong:#245fe5; --accent-soft:#e7eefc; --accent-2:#906032; --accent-2-soft:#f3e9dc; }
h1,h2,h3,h4 { font-family:var(--font-sans); font-weight:500; letter-spacing:-.055em; }
h2 { font-size:clamp(2rem,3.4vw,3.25rem); line-height:1.12; }
p { text-wrap:pretty; }
.grain::after { display:none; }
[hidden] { display:none !important; }
.header { inset:14px 26px auto; max-width:1352px; border-radius:14px; border:1px solid var(--hairline); background:color-mix(in srgb,var(--bg) 95%,transparent); box-shadow:none; }
.header__inner { height:70px; padding-inline:22px; }
.header.is-stuck { background:color-mix(in srgb,var(--bg) 96%,transparent); box-shadow:0 8px 24px #0013290a; }
.header.is-hidden { transform:translateY(calc(-100% - 20px)); }
body[data-page="home"] .header:not(.is-stuck) { color:#fff; border-color:#ffffff24; background:#07172c35; --text:#fff; --text-soft:#e4eaf4; --accent:#aacaff; }
body[data-page="home"] .header:not(.is-stuck) .lang__menu { --bg-raised:#10213a; --text:#fff; --text-muted:#dce5f3; --surface-hover:#243751; color:#fff; background:#10213a; }
.brand__word { letter-spacing:-.055em; font-size:1.45rem; }
.brand__mark { width:31px; height:31px; }
.brand:hover .brand__mark { transform:none; }
.nav__link { font-size:.85rem; padding-inline:.75rem; }
.lang__toggle > svg { width:16px; height:16px; }
.btn { border-radius:7px; font-weight:500; letter-spacing:-.018em; min-height:48px; box-shadow:none; background:var(--accent-strong); color:#fff; transition:background .2s,transform .2s; }
.btn::before { display:none; }
.btn:hover { background:#164fc6; box-shadow:none; transform:translateY(-2px); }
.btn--lg { min-height:56px; padding:.9rem 1.45rem; font-size:.96rem; }
.btn--sm { min-height:42px; }
.btn--ghost { color:var(--text); background:transparent; }
.btn--ghost:hover { background:var(--surface-hover); }
.btn svg { width:18px; height:18px; }
.text-link { display:inline-flex; align-items:center; gap:.7rem; min-height:44px; font-size:.92rem; font-weight:500; color:var(--accent); }
.text-link svg { width:18px; height:18px; flex:none; transition:transform .25s; }
.text-link:hover svg { transform:translateX(4px); }
.text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.section-label { font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; font-weight:600; color:var(--accent); margin-bottom:1.2rem; }
.section-heading { display:grid; grid-template-columns:1.1fr .8fr; gap:12%; align-items:end; margin-bottom:2.8rem; }
.section-heading h2 { max-width:21ch; }
.section-heading .lede { max-width:45ch; font-size:1.08rem; line-height:1.7; }
.section-heading > .text-link { justify-self:end; }
.section-heading--split { grid-template-columns:1fr auto; }
/* The photograph carries the first impression. No carousel or looping motion. */
.client-hero { position:relative; isolation:isolate; margin:10px 10px 0; border-radius:18px; overflow:hidden; min-height:720px; min-block-size:0; height:calc(100svh - 20px); max-height:950px; padding:0; color:#fff; background:#081b32; }
.hero__media { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.hero__photo { width:100%; height:100%; object-fit:cover; object-position:center 53%; animation:hero-settle 1.8s cubic-bezier(.2,.7,.2,1) both; }
.hero__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#07162dbd 0%,#07162d53 57%,#07162d0d 100%),linear-gradient(0deg,#07162deb 0%,transparent 45%,#06152955 100%); }
.client-hero .hero__inner { height:100%; display:flex; flex-direction:column; align-items:stretch; justify-content:center; gap:0; padding-top:110px; padding-bottom:110px; position:relative; }
.client-hero .hero__copy { max-width:none; gap:1.75rem; animation:none; }
.client-hero .hero__title, :root[lang="fr"] .client-hero .hero__title { font-size:clamp(3.4rem,6.6vw,6.25rem); font-weight:450; line-height:1.06; letter-spacing:-.06em; margin:0; color:#fff; }
.hero__title > span { display:block; animation:headline-arrive .9s cubic-bezier(.16,1,.3,1) both; }
.hero__title > span + span { animation-delay:.1s; color:#e1eaff; }
.client-hero .hero__lede { color:#eef3fb; max-width:53ch; font-size:1.14rem; font-weight:400; line-height:1.7; animation:headline-arrive .9s .18s both; }
.client-hero .hero__actions { display:flex; flex-direction:row; align-items:center; flex-wrap:wrap; gap:1.6rem; margin-top:.5rem; animation:headline-arrive .9s .27s both; }
.client-hero .btn { background:#fff; color:#112640; border:1px solid #fff; }
.client-hero .btn:hover { background:#e8effa; }
.hero__secondary { display:inline-flex; align-items:center; gap:.7rem; min-height:48px; color:#fff; font-size:.92rem; border-bottom:1px solid #ffffff68; }
.hero__secondary svg { width:18px; height:18px; transition:transform .25s; }
.hero__secondary:hover svg { transform:translateX(4px); }
.hero__foot { position:absolute; bottom:32px; left:var(--gutter); right:var(--gutter); display:flex; justify-content:space-between; align-items:center; padding-top:20px; border-top:1px solid #ffffff30; font-size:.78rem; color:#e0e8f5; }
.hero__signature { letter-spacing:.025em; }
.hero__destination { display:flex; align-items:center; gap:.6rem; min-height:44px; }
.hero__destination .location-dot { width:6px; height:6px; background:#b6d5ff; }
.hero__down { display:grid; place-items:center; width:34px; height:34px; border:1px solid #ffffff55; border-radius:50%; margin-left:.7rem; }
.qualitative-band { border-bottom:1px solid var(--hairline); }
.qualitative-band > div { display:grid; grid-template-columns:1fr 1fr 1.15fr; }
.qualitative-band p { display:flex; align-items:center; gap:1rem; padding:1.8rem 1.6rem; color:var(--text-soft); font-size:.87rem; line-height:1.55; }
.qualitative-band p:first-child { padding-left:0; }
.qualitative-band p:last-child { padding-right:0; }
.qualitative-band p + p { border-left:1px solid var(--hairline); }
.band-icon { flex:none; color:var(--accent); }
.band-icon svg { width:24px; height:24px; }
/* Two photographic practices, with each destination retaining its own mandate. */
.practice-pair { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-bottom:1.5rem; }
.practice { min-width:0; }
.practice__image { display:block; position:relative; aspect-ratio:1.38; overflow:hidden; border-radius:12px; background:#16324c; color:#fff; }
.practice__image::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#06182abe,transparent 60%); pointer-events:none; }
.practice__image > img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.practice--dubai .practice__image > img { object-position:65% center; }
.practice__image:hover > img { transform:scale(1.035); }
.practice__city { position:absolute; left:30px; bottom:27px; z-index:1; display:grid; gap:.25rem; }
.practice__city > span { font-size:clamp(2.4rem,3.8vw,3.8rem); line-height:1; font-weight:450; letter-spacing:-.05em; }
.practice__city small { font-size:.8rem; color:#edf2f8; }
.practice__arrow { position:absolute; right:25px; bottom:28px; z-index:1; width:44px; height:44px; border:1px solid #ffffff77; border-radius:50%; display:grid; place-items:center; transition:background .2s; }
.practice__arrow svg { width:22px; height:22px; transform:rotate(-35deg); }
.practice__image:hover .practice__arrow { background:#ffffff30; }
.practice__body { padding:1.6rem .2rem 1rem; }
.practice__body h3 { font-size:1.65rem; margin-bottom:.7rem; letter-spacing:-.04em; }
.practice__body p { max-width:47ch; color:var(--text-soft); font-size:.98rem; line-height:1.7; }
.presence-copy .audience-note { font-size:.81rem; line-height:1.65; color:var(--text-muted); border-left:2px solid var(--accent); padding-left:1rem; margin-top:1.15rem; max-width:48ch; }
.country-tags { display:flex; flex-wrap:wrap; gap:.45rem 1rem; list-style:none; padding:1rem 0 0; font-size:.75rem; color:var(--text-muted); }
.country-tags li { display:flex; align-items:center; gap:.45rem; }
.country-tags li::before { content:""; width:3px; height:3px; border-radius:50%; background:currentColor; }
.practice-note { max-width:85ch; color:var(--text-soft); padding-top:1.5rem; border-top:1px solid var(--hairline); }
.location-dot { display:inline-block; flex:none; width:8px; height:8px; border-radius:50%; background:var(--accent); }
.location-dot--tunis { background:var(--accent-2); }
/* Services use a readable editorial list rather than four heavy panels. */
.section--raised { background:var(--bg-raised); }
.services-editorial { display:grid; grid-template-columns:.9fr 1.1fr; gap:9%; align-items:start; }
.services-editorial__intro h2 { max-width:18ch; }
.services-editorial__description { color:var(--text-soft); font-size:1rem; line-height:1.8; max-width:43ch; margin-top:1.5rem; }
.services-editorial__intro > .text-link { margin-top:1.2rem; }
.services-editorial__photo { aspect-ratio:2.5; overflow:hidden; border-radius:9px; margin-top:2rem; max-width:400px; }
.services-editorial__photo img { width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.mandate-grid { display:grid; grid-template-columns:1fr; }
.mandate-detail { border-top:1px solid var(--hairline); padding-inline:1.4rem; }
.mandate-detail:last-child { border-bottom:1px solid var(--hairline); }
.mandate-detail[open] { background:var(--bg); border-radius:10px; border:1px solid var(--hairline); margin-bottom:1rem; }
.mandate-detail[open] + .mandate-detail { border-top:0; }
.mandate-detail summary { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.6rem 0; list-style:none; cursor:pointer; }
.mandate-detail summary::-webkit-details-marker { display:none; }
.mandate-detail__summary { display:grid; gap:.6rem; }
.mandate-detail__title { font-size:1.33rem; font-weight:500; letter-spacing:-.035em; line-height:1.3; color:var(--text); }
.mandate-detail__description { font-size:.89rem; color:var(--text-soft); line-height:1.65; }
.mandate-detail__toggle { flex:none; width:32px; height:32px; border:1px solid var(--hairline-loud); border-radius:50%; display:grid; place-items:center; color:var(--text); transition:background .2s,color .2s; }
.mandate-detail__toggle svg { width:17px; height:17px; }
.mandate-detail[open] .toggle-vertical { opacity:0; }
.mandate-detail[open] .mandate-detail__toggle { color:#fff; background:var(--accent-strong); border-color:transparent; }
.mandate-detail summary:hover .mandate-detail__title { color:var(--accent); }
.mandate-detail__body { border-top:1px solid var(--hairline-soft); padding:1.2rem 0 1rem; }
.mandate-detail__body > p { font-size:.9rem; color:var(--text-soft); line-height:1.8; max-width:58ch; }
.mandate-detail__body h3 { margin:1.2rem 0 .65rem; font-size:.78rem; font-weight:600; letter-spacing:0; }
.mandate-deliverables { display:grid; gap:.45rem; }
.mandate-deliverables li { display:flex; align-items:baseline; gap:.65rem; font-size:.86rem; color:var(--text-soft); line-height:1.6; }
.mandate-deliverables li::before { content:""; display:block; width:5px; height:5px; border-radius:50%; background:var(--accent); flex:none; }
.mandate-detail__actions { display:flex; flex-wrap:wrap; gap:.3rem 1.5rem; margin-top:1.25rem; border-top:1px solid var(--hairline); padding-top:.5rem; }
.mandate-detail__actions .text-link { font-size:.78rem; }
.mandate-detail__actions .text-link + .text-link { color:var(--text-soft); text-decoration:underline; text-underline-offset:4px; }
/* A restrained geographic atlas, with true country outlines and no connecting route. */
.office-map { min-width:0; border:1px solid var(--hairline); border-radius:14px; background:var(--bg-raised); overflow:hidden; display:grid; grid-template-columns:1fr; }
.office-map__canvas { position:relative; width:100%; align-self:center; aspect-ratio:1000/860; overflow:hidden; background:#eef3f7; }
.office-map__land { position:absolute; inset:0; width:100%; height:100%; }
.atlas-grid { stroke:#dae2ea; stroke-width:1; stroke-dasharray:3 8; opacity:.6; }
.atlas-countries { fill:#dce5ec; stroke:#f8fbfe; stroke-width:1.4; }
.atlas-countries [data-map-region="dubai"] { fill:#91b4e6; }
.atlas-countries [data-map-region="tunis"] { fill:#ccb390; }
[data-active-office="dubai"] [data-map-region="dubai"] { fill:#5389d4; }
[data-active-office="tunis"] [data-map-region="tunis"] { fill:#b6854f; }
.atlas-countries [data-map-region] { transition:fill .4s ease; }
:root[data-theme="dark"] .office-map__canvas { background:#102137; }
:root[data-theme="dark"] .atlas-grid { stroke:#31465f; }
:root[data-theme="dark"] .atlas-countries { fill:#20364b; stroke:#102137; }
:root[data-theme="dark"] .atlas-countries [data-map-region="dubai"] { fill:#5389d4; }
:root[data-theme="dark"] .atlas-countries [data-map-region="tunis"] { fill:#9d7a51; }
:root[data-theme="dark"] [data-active-office="dubai"] [data-map-region="dubai"] { fill:#8fb9f0; }
:root[data-theme="dark"] [data-active-office="tunis"] [data-map-region="tunis"] { fill:#e2b37c; }
.office-pin { position:absolute; z-index:2; transform:translate(-50%,-18px); min-height:64px; min-width:64px; padding:10px 8px; display:flex; flex-direction:column; align-items:center; gap:7px; touch-action:manipulation; }
.office-pin__dot { width:15px; height:15px; background:#2765c7; border:3px solid #fff; border-radius:50%; box-shadow:0 0 0 1px #2765c7,0 2px 8px #16305640; }
.office-pin--tunis .office-pin__dot { background:#986335; box-shadow:0 0 0 1px #986335; }
.office-pin[aria-pressed="true"] .office-pin__dot { box-shadow:0 0 0 1px #2765c7,0 0 0 9px #2765c720; }
.office-pin--tunis[aria-pressed="true"] .office-pin__dot { box-shadow:0 0 0 1px #986335,0 0 0 9px #98633525; }
.office-pin__name { padding:3px 10px; border-radius:4px; background:#fff; color:#182c45; font-size:.82rem; font-weight:600; box-shadow:0 2px 8px #08224416; }
.office-map__region { position:absolute; pointer-events:none; font-size:.76rem; text-transform:uppercase; letter-spacing:.19em; color:#567189; }
.office-map__region--africa { left:38%; top:53%; }
.office-map__region--gulf { right:6%; top:17%; }
:root[data-theme="dark"] .office-map__region { color:#91a9c1; }
.office-map__compass { position:absolute; right:20px; bottom:20px; font-size:.65rem; letter-spacing:.1em; color:#718399; }
.office-map__info { display:flex; flex-direction:column; min-width:0; background:var(--bg); }
.office-map__controls { display:grid; grid-template-columns:1fr 1fr; border-block:1px solid var(--hairline); }
.office-map__controls button { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.1rem .6rem; padding:1rem; min-height:73px; text-align:left; font-size:.96rem; font-weight:500; border-bottom:2px solid transparent; }
.office-map__controls button + button { border-left:1px solid var(--hairline); }
.office-map__controls button small { grid-column:2; font-size:.68rem; font-weight:400; color:var(--text-muted); }
.office-map__controls button[aria-pressed="true"] { border-bottom-color:var(--accent); background:var(--accent-soft); }
.office-map__controls button[data-office="tunis"][aria-pressed="true"] { border-bottom-color:var(--accent-2); background:var(--accent-2-soft); }
.office-map__details { padding:1.2rem 1.4rem .5rem; }
.office-map__photo { width:100%; height:110px; object-fit:cover; border-radius:7px; margin-bottom:1.3rem; }
.office-map__details h3 { font-size:1.35rem; letter-spacing:-.03em; }
.office-map__details .country-tags { padding-top:.8rem; align-content:start; gap:.4rem .8rem; }
.office-map__scope { font-size:.86rem; line-height:1.75; color:var(--text-soft); margin-top:1.15rem; max-width:47ch; }
.office-map__links { display:flex; flex-direction:column; align-items:flex-start; margin-top:.85rem; }
.office-map__links a + a { color:var(--text-muted); font-size:.7rem; }
.office-map__details a { display:inline-flex; gap:.6rem; align-items:center; min-height:44px; color:var(--accent); font-size:.78rem; }
.office-map__details a svg { width:16px; height:16px; }
.office-map__note { margin-top:auto; padding:1rem 1.4rem; font-size:.64rem; color:var(--text-muted); }
.section--atlas .office-map { grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); }
.section--atlas .office-map__canvas { aspect-ratio:1000/860; }
.section--atlas .office-map__land { height:100%; top:0; }
.section--atlas .office-map__info { border-left:1px solid var(--hairline); justify-content:center; }
.section--atlas .office-map__controls { border-top:0; }
.section--atlas .office-map__photo { height:170px; }
.section--atlas .office-map__details { padding:1.5rem 1.8rem .5rem; }
.section--atlas .office-map__details h3 { font-size:1.8rem; max-width:14ch; line-height:1.12; }
.section--atlas .office-map__note { margin-top:0; padding-inline:1.8rem; }
.section--method { background:var(--bg-raised); }
.method-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem; padding:0; list-style:none; }
.method-grid li { border-top:1px solid var(--hairline-loud); padding-top:1.3rem; }
.method-step { font-size:.75rem; color:var(--accent); }
.method-grid h3 { font-size:1.55rem; margin:.8rem 0; letter-spacing:-.035em; }
.method-grid p { font-size:.94rem; color:var(--text-soft); line-height:1.75; }
.method-grid li { display:flex; flex-direction:column; }
.method-output { margin-top:auto; padding-top:1.5rem; display:grid; gap:.4rem; }
.method-output > span { font-size:.67rem; color:var(--text-muted); }
.method-output > strong { font-size:.85rem; font-weight:500; line-height:1.5; border-left:2px solid var(--accent); padding-left:.7rem; }
.working-frame { margin-top:3.5rem; background:var(--bg); border:1px solid var(--hairline); border-radius:12px; padding:2rem; }
.working-frame__heading { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; border-bottom:1px solid var(--hairline); padding-bottom:1.5rem; }
.working-frame__heading h3 { font-size:1.65rem; letter-spacing:-.035em; line-height:1.2; }
.working-frame__heading p { font-size:.9rem; line-height:1.7; max-width:46ch; color:var(--text-soft); }
.working-frame__principles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; padding-top:1.6rem; }
.working-frame__principles h4 { font-size:1rem; font-weight:500; letter-spacing:-.025em; margin-bottom:.6rem; }
.working-frame__principles p { font-size:.85rem; color:var(--text-soft); line-height:1.75; }
.insight-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.insight-card { display:flex; flex-direction:column; align-items:start; min-width:0; }
.insight-cover { position:relative; width:100%; aspect-ratio:1.48; overflow:hidden; border-radius:9px; background:#102c48; margin-bottom:1.2rem; }
.insight-cover > img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.insight-cover--0 > img { object-position:70% center; }
.insight-cover::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#06162c8c,transparent 65%); }
.insight-category { position:absolute; bottom:18px; left:18px; color:#fff; z-index:1; font-size:.7rem; }
.insight-cover__arrow { position:absolute; top:16px; right:16px; border-radius:50%; width:34px; height:34px; display:grid; place-items:center; z-index:1; color:#fff; background:#071b334d; backdrop-filter:blur(8px); border:1px solid #ffffff60; }
.insight-cover__arrow svg { width:18px; height:18px; transform:rotate(-35deg); }
.insight-card:hover .insight-cover > img { transform:scale(1.04); }
.insight-meta,.article-byline { display:flex; flex-wrap:wrap; gap:.2rem 1rem; color:var(--text-muted); font-size:.7rem; margin-bottom:.8rem; }
.insight-card h3 { font-size:1.45rem; line-height:1.3; letter-spacing:-.035em; margin-bottom:.9rem; }
.insight-card__intro { color:var(--text-soft); font-size:.9rem; line-height:1.75; margin-bottom:1rem; }
.insight-card .text-link { font-size:.8rem; margin-top:auto; }
.insight-card:hover h3 { color:var(--accent); }
.cta { text-align:left; border-radius:14px; min-height:360px; padding:4rem; color:#fff; border:0; background:#0e213b; }
.cta::before { background:linear-gradient(90deg,#07162ee8,#07162e40); opacity:1; }
.cta__photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 58%; z-index:-2; }
.cta__inner { max-width:none; }
.cta h2 { max-width:16ch; color:#fff; font-size:clamp(2.25rem,4vw,4rem); }
.cta__text { color:#dce7f7; margin:1.2rem 0 1.5rem; font-size:1rem; }
.cta__actions { justify-content:start; }
.cta .btn { background:#fff; color:#132a47; }
.cta .btn:hover { background:#e3edfa; }
.footer { padding-top:4.5rem; }
.footer__col > .brand { margin-bottom:1rem; }
.footer__col > p { margin-top:1rem; max-width:35ch; font-size:.84rem; }
.footer__links a { font-size:.84rem; line-height:1.6; }
.footer__watermark { font-family:var(--font-sans); font-weight:500; letter-spacing:-.075em; color:var(--text); opacity:.08; }
.to-top > svg { transform:rotate(-90deg); }
.phead { padding-top:165px; padding-bottom:3.8rem; }
.phead__inner { max-width:1050px; gap:1.6rem; }
.phead h1 { max-width:22ch; font-size:clamp(2.5rem,4.6vw,4.4rem); line-height:1.1; }
.phead .lede { font-size:1.08rem; line-height:1.8; max-width:65ch; }
.about-editorial { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:center; }
.about-editorial h2 { margin-bottom:1.5rem; }
.about-editorial p { margin-bottom:1.2rem; color:var(--text-soft); }
.about-editorial .photo-card img { aspect-ratio:4/5; object-fit:cover; border-radius:12px; }
.photo-card figcaption { line-height:1.6; font-size:.8rem; }
.engagement-nav { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:3rem; }
.engagement-nav a { border:1px solid var(--hairline); border-radius:6px; padding:.7rem 1rem; font-size:.85rem; color:var(--text-soft); }
.engagement-nav a:hover { color:var(--accent); border-color:var(--accent); }
.engagement-detail { display:grid; grid-template-columns:1.1fr 1fr; gap:8%; padding:3.5rem 0; border-top:1px solid var(--hairline); scroll-margin-top:110px; }
.engagement-detail h2 { font-size:2.5rem; max-width:23ch; margin-bottom:1.3rem; }
.engagement-detail .lede { font-size:1.05rem; line-height:1.8; margin-bottom:1rem; }
.engagement-detail h3 { font-size:1.1rem; letter-spacing:-.02em; line-height:1.5; margin-bottom:1.5rem; }
.engagement-detail .ticks { gap:1rem; }
.engagement-fit { border-left:2px solid var(--accent); padding-left:1rem; margin-bottom:1.8rem; }
.engagement-fit .engagement-fit__label { font-size:.73rem; font-weight:600; color:var(--accent); margin-bottom:.6rem; }
.engagement-fit p { font-size:.93rem; color:var(--text-soft); line-height:1.8; }
.markets-overview { display:grid; grid-template-columns:1.2fr 1fr; gap:8%; align-items:center; }
.markets-overview__copy h2 { max-width:20ch; margin-bottom:1.5rem; }
.markets-overview__copy p { color:var(--text-soft); max-width:54ch; line-height:1.8; margin-bottom:2rem; }
.office-kicker { color:var(--accent); margin-bottom:.8rem; }
#tunis .office-kicker { color:var(--accent-2); }
.section--region { border-top:1px solid var(--hairline); }
.country-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 3rem; }
.country-card { border-top:1px solid var(--hairline); padding:1.8rem 0; }
.country-card h3 { font-size:1.75rem; margin-bottom:1rem; }
.country-card p { color:var(--text-soft); max-width:55ch; }
.country-card .text-link { margin-top:.8rem; font-size:.85rem; }
.client-article { max-width:72ch; margin-inline:auto; }
.client-article h2 { font-size:1.9rem; margin-top:2.8rem; line-height:1.3; }
.client-article h2:first-child { margin-top:0; }
.client-article .source-link { font-size:.83rem; line-height:1.7; margin:.6rem 0 1.7rem; }
.article-note { border-top:1px solid var(--hairline); padding-top:1.5rem; font-size:.86rem; color:var(--text-muted); }
.client-contact { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:7%; align-items:start; }
.contact-direct { margin-bottom:2rem; }
.contact-direct h2 { font-size:1.65rem; }
.contact-direct p { margin-top:1rem; font-size:.9rem; }
.contact-email { display:inline-block; font-size:clamp(1rem,1.7vw,1.4rem); color:var(--accent); margin:.8rem 0; overflow-wrap:anywhere; }
.market-fieldset { border:0; padding:0; min-width:0; }
.market-fieldset legend { color:var(--text-soft); margin-bottom:.65rem; font-size:.88rem; }
.form .choice-grid { gap:.5rem; }
.form .choice span { font-size:.84rem; }
.form-submit { display:grid; gap:1rem; justify-items:start; }
.form-submit .form-note { max-width:58ch; line-height:1.75; }
.form input,.form textarea,.form select { font-size:16px; }
.drawer__link { min-height:48px; font-family:var(--font-sans); font-size:2rem; letter-spacing:-.04em; }
.chat__chips { max-height:min(230px,30dvh); overflow-y:auto; overscroll-behavior:contain; }
.chat[data-guided="true"] .chat__chips { max-height:min(260px,38dvh); }
.chat-launcher { box-shadow:0 5px 24px #06152b24; }
.will-enter { opacity:0; transform:translateY(24px); transition:opacity .65s ease,transform .75s cubic-bezier(.16,1,.3,1); }
.will-enter.is-visible { opacity:1; transform:none; }
.will-enter:focus-within { opacity:1; transform:none; }
@keyframes headline-arrive { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
@keyframes hero-settle { from { transform:scale(1.04); } to { transform:scale(1); } }
@media (max-width:1100px) {
  .header { inset-inline:20px; }
  .header__inner { padding-inline:18px; }
  .client-hero { min-height:680px; max-height:900px; }
  .client-hero .hero__title,:root[lang="fr"] .client-hero .hero__title { font-size:clamp(3.5rem,7.5vw,5.5rem); }
  .section-heading { gap:6%; }
  .services-editorial { gap:6%; }
  .section--atlas .office-map { grid-template-columns:1.3fr 1fr; }
  .section--atlas .office-map__photo { height:125px; }
  .section--atlas .office-map__details { padding:1.2rem; }
  .section--atlas .office-map__details h3 { font-size:1.5rem; }
  .section--atlas .office-map__note { padding:1rem 1.2rem; }
  .insight-grid { gap:1.3rem; }
  .insight-meta { font-size:.65rem; }
}
@media (max-width:850px) {
  .client-hero { min-height:700px; }
  .hero__media::after { background:linear-gradient(90deg,#07162b9e,#07162b20),linear-gradient(0deg,#07162bea,transparent 80%); }
  .hero__photo { object-position:62% center; }
  .client-hero .hero__inner { padding-top:80px; }
  .section-heading { grid-template-columns:1fr; gap:1.3rem; }
  .section-heading > .text-link { justify-self:start; }
  .section-heading h2 { max-width:24ch; }
  .qualitative-band p { gap:.7rem; padding:1.25rem 1rem; font-size:.78rem; }
  .band-icon svg { width:20px; height:20px; }
  .practice-pair { gap:1.3rem; }
  .practice__image { aspect-ratio:1; }
  .practice__city { left:20px; bottom:22px; }
  .practice__arrow { right:18px; width:38px; height:38px; bottom:22px; }
  .practice__body h3 { font-size:1.4rem; }
  .services-editorial { grid-template-columns:1fr; gap:2rem; }
  .services-editorial__intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.6fr); align-items:start; gap:0 2rem; }
  .services-editorial__intro .section-label,.services-editorial__intro h2,.services-editorial__intro .text-link,.services-editorial__description { grid-column:1; }
  .services-editorial__photo { grid-column:2; grid-row:1/5; margin:0; width:100%; height:100%; min-width:0; aspect-ratio:auto; }
  .method-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .about-editorial,.markets-overview,.client-contact { grid-template-columns:1fr; gap:2rem; }
  .about-editorial .photo-card img { aspect-ratio:16/10; }
  .engagement-detail { gap:2rem; }
  .engagement-detail h2 { font-size:2rem; }
  .markets-overview .office-map { display:grid; grid-template-columns:1.2fr 1fr; }
  .markets-overview .office-map__info { border-left:1px solid var(--hairline); }
  .insight-grid { grid-template-columns:1fr; gap:2rem; }
  .insight-card { display:grid; grid-template-columns:1fr 1fr; gap:0 1.5rem; align-content:start; }
  .insight-cover { grid-row:1/5; margin:0; }
  .insight-card > :not(.insight-cover) { grid-column:2; }
  .insight-meta { margin-top:.4rem; font-size:.72rem; }
  .insight-card h3 { font-size:1.4rem; }
  .insight-card .text-link { margin-top:0; align-self:end; }
  .cta { padding:3rem; }
}
@media (max-width:600px) {
  :root { --gutter:1.3rem; }
  .header { inset:16px 16px auto; border-radius:10px; }
  .header__inner { height:58px; padding-inline:12px; gap:8px; }
  .header__actions { gap:2px; }
  .brand { gap:6px; }
  .brand__mark { width:27px; height:27px; }
  .brand__word { font-size:1.25rem; }
  .lang__toggle { padding:.3rem .35rem; gap:4px; font-size:.75rem; min-width:42px; min-height:44px; }
  .lang__toggle > svg { display:none; }
  .icon-btn { width:38px; height:44px; }
  .client-hero { margin:7px 7px 0; border-radius:12px; height:calc(100svh - 14px); min-height:690px; max-height:850px; }
  .client-hero .hero__inner { justify-content:flex-end; padding-top:140px; padding-bottom:122px; padding-inline:22px; }
  .client-hero .hero__copy { gap:1.25rem; }
  .client-hero .hero__title,:root[lang="fr"] .client-hero .hero__title { font-size:clamp(2.2rem,8.9vw,3.3rem); line-height:1.1; letter-spacing:-.062em; font-weight:500; }
  .client-hero .hero__lede { font-size:1.01rem; max-width:29ch; line-height:1.65; }
  .hero__photo { object-position:65% center; }
  .hero__media::after { background:linear-gradient(0deg,#061529f0 0%,#06152998 42%,#06152905 85%),linear-gradient(180deg,#0615295e,transparent 35%); }
  .client-hero .hero__actions { display:grid; align-items:start; justify-items:start; gap:.75rem; margin-top:.3rem; }
  .client-hero .hero__actions .btn { min-height:54px; padding:.9rem 1rem; border-radius:8px; font-size:.87rem; gap:.6rem; width:auto; white-space:normal; text-align:left; justify-content:space-between; box-shadow:none; }
  .hero__secondary { min-height:43px; font-size:.85rem; }
  .hero__foot { left:22px; right:22px; bottom:18px; padding-top:12px; }
  .hero__signature { max-width:21ch; font-size:.66rem; line-height:1.6; }
  .hero__destination { font-size:.71rem; gap:.4rem; margin-right:45px; }
  .hero__down { display:none; }
  .qualitative-band > div { grid-template-columns:1fr; }
  .qualitative-band p,.qualitative-band p:first-child,.qualitative-band p:last-child { padding:1rem 0; gap:1rem; font-size:.8rem; }
  .qualitative-band p + p { border-left:0; border-top:1px solid var(--hairline); }
  .section-heading { margin-bottom:2rem; }
  .section-heading h2 { font-size:2.15rem; }
  .section-heading .lede { font-size:1rem; }
  .section-label { font-size:.65rem; margin-bottom:.9rem; }
  .practice-pair { grid-template-columns:1fr; gap:1.6rem; }
  .practice__image { aspect-ratio:1.17; }
  .practice__city > span { font-size:2.9rem; }
  .practice__body { padding-top:1.2rem; }
  .practice__body h3 { font-size:1.5rem; }
  .practice__body p { font-size:.94rem; }
  .country-tags { font-size:.73rem; gap:.4rem .8rem; }
  .services-editorial__intro { display:block; }
  .services-editorial__intro h2 { max-width:19ch; font-size:2.15rem; }
  .services-editorial__photo { display:none; }
  .services-editorial__description { font-size:.95rem; margin-top:1.2rem; }
  .mandate-detail { padding-inline:.8rem; }
  .mandate-detail summary { gap:.7rem; padding-block:1.25rem; }
  .mandate-detail__title { font-size:1.15rem; }
  .mandate-detail__description { font-size:.84rem; }
  .mandate-detail__body > p { font-size:.86rem; }
  .mandate-detail__toggle { width:28px; height:28px; }
  .mandate-detail__actions { gap:.1rem 1rem; }
  .mandate-detail__actions .text-link { font-size:.73rem; }
  .mandate-deliverables li { font-size:.8rem; }
  .section--atlas .office-map,.markets-overview .office-map { grid-template-columns:1fr; }
  .section--atlas .office-map__info,.markets-overview .office-map__info { border-left:0; }
  .office-map__controls button { padding:.9rem 1rem; }
  .office-map__controls button small { font-size:.67rem; }
  .office-map__details,.section--atlas .office-map__details { padding:1rem 1.2rem .3rem; }
  .office-map__details [data-office-panel] { display:flow-root; min-height:150px; }
  .office-map__photo,.section--atlas .office-map__photo { width:100px; height:125px; float:right; margin:0 0 .7rem .9rem; object-fit:cover; }
  .office-map__details h3,.section--atlas .office-map__details h3 { font-size:1.35rem; max-width:15ch; line-height:1.2; }
  .office-map__details .country-tags { min-height:0; font-size:.69rem; padding-top:.7rem; gap:.2rem .65rem; display:block; }
  .office-map__scope { clear:both; font-size:.82rem; padding-top:.65rem; margin-top:.5rem; }
  .office-map__links { margin-top:.5rem; }
  .office-map__details a { font-size:.69rem; gap:.3rem; }
  .office-map__note,.section--atlas .office-map__note { padding:.6rem 1.2rem .9rem; font-size:.6rem; }
  .office-map__region { font-size:.65rem; }
  .method-grid { gap:1.5rem 1rem; }
  .method-grid h3 { font-size:1.4rem; }
  .method-grid p { font-size:.86rem; }
  .method-output { padding-top:1rem; }
  .method-output > strong { font-size:.78rem; }
  .working-frame { margin-top:2.5rem; padding:1.4rem; }
  .working-frame__heading { grid-template-columns:1fr; gap:1rem; padding-bottom:1.3rem; }
  .working-frame__heading h3 { font-size:1.5rem; }
  .working-frame__principles { grid-template-columns:1fr; gap:1.4rem; padding-top:1.3rem; }
  .working-frame__principles > div + div { padding-top:1.2rem; border-top:1px solid var(--hairline-soft); }
  .working-frame__principles p { font-size:.85rem; }
  .insight-card { display:flex; }
  .insight-cover { aspect-ratio:1.6; margin-bottom:1.1rem; }
  .insight-meta { margin-top:0; font-size:.7rem; }
  .insight-card h3 { font-size:1.5rem; }
  .cta { min-height:350px; padding:2.2rem 1.3rem; }
  .cta h2 { font-size:2.25rem; }
  .cta__text { font-size:.93rem; max-width:26ch; }
  .cta .btn { width:100%; padding-inline:.8rem; font-size:.85rem; justify-content:space-between; white-space:normal; }
  .cta__photo { object-position:65% center; }
  .cta::before { background:#07182ebb; }
  .phead { padding-top:128px; padding-bottom:2.6rem; }
  .phead h1 { font-size:2.4rem; }
  .phead .lede { font-size:1rem; }
  .engagement-nav { display:grid; grid-template-columns:1fr; }
  .engagement-detail { grid-template-columns:1fr; padding-block:2.4rem; gap:1.5rem; }
  .engagement-detail h2 { font-size:2rem; }
  .country-grid { grid-template-columns:1fr; }
  .client-article h2 { font-size:1.75rem; }
  .form-submit { justify-items:stretch; }
  .contact-sidebar { min-width:0; }
  .footer__watermark { font-size:19vw; }
}
@media (max-width:360px) {
  .client-hero .hero__inner { padding-inline:18px; }
  .client-hero .hero__title,:root[lang="fr"] .client-hero .hero__title { font-size:2.05rem; }
  .client-hero .hero__actions .btn { font-size:.79rem; padding-inline:.75rem; }
  .hero__foot { left:18px; right:18px; }
  .brand__word { font-size:1.12rem; }
  .brand__mark { width:24px; height:24px; }
  .header__inner { padding-inline:9px; }
  .header__actions .icon-btn { width:33px; }
  .office-map__photo,.section--atlas .office-map__photo { width:75px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .hero__photo,.hero__title > span,.client-hero .hero__lede,.client-hero .hero__actions { animation:none; }
  .will-enter,.will-enter.is-visible { opacity:1; transform:none; transition:none; }
  .practice__image img,.insight-cover > img,.atlas-countries [data-map-region],.btn,.text-link svg { transition:none; }
  .practice__image:hover > img,.insight-card:hover .insight-cover > img,.btn:hover { transform:none; }
}
