/* ===========================================================================
   Overseas Capital Advisory — shared design system
   Used by index.html (Hero), services.html, transactions.html, equipe.html
   =========================================================================== */

:root{
  --accent:#2C5697;
  --navy:#16283F;
  --ink:#1A1F26;
  --tint:#F1F3F6;         /* cool grey section background */
  --line:#E2E1DA;
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --sans:'Libre Franklin',system-ui,-apple-system,'Segoe UI',sans-serif;
  --hero-grad:linear-gradient(125deg,#3f6a9c 0%,#305480 50%,#24425f 100%);
  --hero-scrim:linear-gradient(105deg,rgba(20,36,58,.55) 0%,rgba(20,36,58,.18) 55%,rgba(20,36,58,.42) 100%);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto}
body{background:#fff;font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
img{display:block}
button{font-family:inherit}
body.no-scroll{overflow:hidden}

@keyframes ocaUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes ocaFade{from{opacity:0}to{opacity:1}}
@keyframes ocaPanel{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes ocaPop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ---- Layout helpers ---- */
.wrap{max-width:1240px;margin:0 auto}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:2.6px;text-transform:uppercase;color:var(--accent)}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,44px);color:var(--navy);line-height:1.1}
.topbar{height:3px;background:var(--accent)}

/* ---- Header / nav ---- */
.hd{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid #E7E6E0}
.hd-inner{display:flex;align-items:center;justify-content:space-between;padding:14px clamp(22px,4vw,56px)}
.brand{display:flex;align-items:center;gap:12px}
.brand .back{color:#8A93A0;font-size:15px}
.brand img{height:64px;width:auto}
.hd-right{display:flex;align-items:center;gap:clamp(16px,2.4vw,30px)}
.nav{display:flex;align-items:center;gap:clamp(16px,2vw,28px)}
.navlink{font-size:13.5px;letter-spacing:.2px;color:#3C4450;transition:color .2s}
.navlink:hover{color:var(--accent)}
.navlink.active{color:var(--accent);font-weight:600}
.langtoggle{display:flex;align-items:center;border:1px solid #D8D7D0;border-radius:2px;overflow:hidden}
.langbtn{font-size:11px;letter-spacing:1px;padding:6px 11px;border:none;cursor:pointer;background:transparent;color:#6B7280;font-weight:500;transition:background .2s,color .2s}
.langbtn.active{background:var(--navy);color:#fff;font-weight:600}

.btn{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.4px;color:#fff;background:var(--navy);padding:10px 20px;border:none;border-radius:2px;cursor:pointer;transition:background .25s,transform .25s}
.btn:hover{background:var(--accent)}
.btn-ghost{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:600;letter-spacing:.4px;color:var(--navy);background:transparent;border:1px solid #D0D3DA;padding:9px 18px;border-radius:2px;cursor:pointer;transition:border-color .25s,color .25s}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-lg{font-size:15px;padding:18px 34px}
.btn-md{font-size:13.5px;padding:15px 30px}
.cbtns{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
@media(max-width:600px){.cbtns{width:100%;flex-direction:column}.cbtns>a,.cbtns>button{width:100%;justify-content:center}}
.btn-light{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;letter-spacing:.4px;color:var(--navy);background:#fff;padding:17px 32px;border-radius:2px;transition:transform .25s}
.btn-light:hover{transform:translateY(-2px)}
.btn-outline-light{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;letter-spacing:.4px;color:#fff;background:transparent;border:1px solid rgba(255,255,255,.45);padding:18px 34px;border-radius:2px;cursor:pointer;transition:background .25s,border-color .25s}
.btn-outline-light:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.85)}

/* ---- Page intro hero (sub-pages) ---- */
.pagehero{position:relative;overflow:hidden;padding:clamp(56px,8vh,96px) clamp(22px,4vw,56px) clamp(44px,5vh,62px);background:var(--hero-grad)}
.pagehero-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center right;opacity:.9;pointer-events:none}
.pagehero-waves{position:absolute;left:0;right:0;bottom:0;height:52%;pointer-events:none;z-index:1;opacity:.85}
.pagehero-waves svg{width:100%;height:100%}
.pagehero-scrim{position:absolute;inset:0;pointer-events:none;z-index:1;background:var(--hero-scrim)}
.pagehero-inner{position:relative;z-index:2;max-width:1240px;margin:0 auto}
.pagehero .kicker{display:block;font-size:11px;font-weight:600;letter-spacing:2.6px;text-transform:uppercase;color:#CFE0F1;animation:ocaUp .7s ease both}
.pagehero h1{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.6vw,58px);letter-spacing:-.5px;color:#fff;margin:14px 0 20px;line-height:1.1;animation:ocaUp .8s ease .08s both}
.pagehero .lede{font-size:clamp(16px,1.35vw,19px);line-height:1.6;color:#D6E2F0;max-width:720px;animation:ocaUp .8s ease .16s both}

/* ---- Cities row ---- */
.cities{display:flex;align-items:center;justify-content:center;gap:13px;flex-wrap:wrap}
.city{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:2.4px;text-transform:uppercase;color:#B9CBE0}
.city-dot{width:4px;height:4px;border-radius:50%;background:#5E7EA3}

/* ---- Simple footer (sub-pages) ---- */
.ft{background:#0E1B2C;padding:clamp(40px,5vh,60px) clamp(22px,4vw,56px)}
.ft-top{max-width:1240px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px}
.ft-top img{height:46px;width:auto}
.ft-links{display:flex;flex-wrap:wrap;gap:26px;align-items:center}
.ft-link{font-size:13px;color:#AEB9C6;transition:color .2s}
.ft-link:hover{color:#fff}
.ft-bottom{max-width:1240px;margin:22px auto 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.ft-copy{font-size:12px;color:#63728A}

/* ---- Detail / CV drawer ---- */
.ovl{position:fixed;inset:0;z-index:50;background:rgba(16,26,42,.42);backdrop-filter:blur(3px);display:flex;justify-content:flex-end;animation:ocaFade .3s ease both}
.drawer{width:min(var(--dw,760px),96vw);height:100%;overflow-y:auto;background:#fff;box-shadow:-30px 0 80px rgba(16,26,42,.28);animation:ocaPanel .4s cubic-bezier(.2,.7,.2,1) both}
.drawer::-webkit-scrollbar{width:8px}
.drawer::-webkit-scrollbar-thumb{background:rgba(0,0,0,.16);border-radius:4px}
.drawer-accent{height:3px;background:var(--c,var(--accent))}
.drawer-hd{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(28px,4vw,52px);background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid #ECEBE5}
.drawer-status{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--c,var(--accent))}
.drawer-status .dot{width:8px;height:8px;border-radius:50%;background:var(--c,var(--accent))}
.drawer-close{font-size:11px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:#5A6472;background:none;border:1px solid #D8D7D0;border-radius:2px;padding:9px 15px;cursor:pointer;transition:all .25s}
.drawer-close:hover{color:#16283F;border-color:#16283F}
.drawer-body{padding:clamp(30px,4vw,52px)}
.drawer-name{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.4vw,50px);letter-spacing:-.5px;color:var(--navy);margin-bottom:6px;line-height:1.02}
.drawer-sector{font-size:16px;color:#7A8493;margin-bottom:26px}
.tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}
.tag{font-size:12.5px;font-weight:600;letter-spacing:.3px;color:var(--c,var(--accent));background:var(--tintc,rgba(44,86,151,.1));padding:8px 15px;border-radius:20px}
.lead-serif{font-family:var(--serif);font-size:19px;line-height:1.6;color:#33404F;margin-bottom:34px}
.interv{font-size:11px;font-weight:600;letter-spacing:2.2px;text-transform:uppercase;color:var(--c,var(--accent))}
.bullets{display:flex;flex-direction:column;gap:16px;margin-top:20px}
.bullet{display:flex;gap:15px;align-items:flex-start}
.bullet-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--c,var(--accent));margin-top:9px}
.bullet p{font-size:16.5px;line-height:1.6;color:#3A4655}
.drawer-cta-row{margin-top:44px;padding-top:26px;border-top:1px solid #ECEBE5;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}
.drawer-cta-row span{font-size:15.5px;color:#5A6472}
.btn-drawer-cta{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;letter-spacing:.4px;color:#fff;background:var(--navy);padding:14px 26px;border-radius:2px;transition:background .25s}
.btn-drawer-cta:hover{background:var(--c,var(--accent))}
/* CV drawer head */
.cv-head{display:flex;gap:clamp(20px,3vw,30px);align-items:center;margin-bottom:30px}
.cv-photo{width:132px;height:132px;object-fit:cover;object-position:center top;border-radius:8px;flex-shrink:0;box-shadow:0 10px 26px rgba(16,26,42,.16);background:#EDEFF3;filter:grayscale(1) contrast(1.02)}
.cv-name{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,44px);letter-spacing:-.4px;color:var(--navy);line-height:1.04;margin-bottom:8px}
.cv-title{display:block;font-size:14px;letter-spacing:.4px;text-transform:uppercase;color:var(--accent);font-weight:600}
.cv-logos{display:flex;align-items:center;gap:20px;height:56px;margin-top:34px;padding-top:26px;border-top:1px solid #ECEBE5}
.cv-logos span{flex:1 1 0;min-width:0;height:36px;display:flex;align-items:center;justify-content:center}
.cv-logos img{max-height:36px;max-width:100%;width:auto;height:auto;object-fit:contain}

/* ---- Request-a-callback modal ---- */
.modal-ovl{position:fixed;inset:0;z-index:60;background:rgba(16,26,42,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;animation:ocaFade .25s ease both}
.modal{width:min(460px,100%);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 40px 90px rgba(16,26,42,.34);animation:ocaPop .35s ease both}
.modal-accent{height:3px;background:var(--accent)}
.modal-body{padding:clamp(28px,4vw,40px)}
.modal-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}
.modal-hd h3{font-family:var(--serif);font-weight:500;font-size:26px;color:var(--navy);line-height:1.1}
.modal-x{flex-shrink:0;font-size:16px;color:#8A93A0;background:none;border:none;cursor:pointer;line-height:1;margin-top:4px}
.modal-sub{font-size:15px;line-height:1.6;color:#5A6472;margin-bottom:24px}
.rc-form{display:flex;flex-direction:column;gap:14px}
.field{width:100%;font-family:var(--sans);font-size:15px;color:var(--navy);padding:13px 15px;border:1px solid #D8D7D0;border-radius:3px;outline:none;transition:border-color .2s}
.field:focus{border-color:var(--accent)}
.btn-submit{margin-top:6px;font-size:14px;font-weight:600;letter-spacing:.4px;color:#fff;background:var(--navy);padding:14px 22px;border:none;border-radius:3px;cursor:pointer;transition:background .25s}
.btn-submit:hover{background:var(--accent)}
.rc-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:24px 0 8px}
.rc-check{width:56px;height:56px;border-radius:50%;background:rgba(44,86,151,.1);display:flex;align-items:center;justify-content:center}
.rc-done p{font-size:16px;line-height:1.55;color:#3A4655}
/* État d'échec d'envoi. Même gabarit que .rc-done, pastille et texte en alerte. */
.rc-fail .rc-check{background:rgba(165,68,60,.10)}
.rc-fail p{color:#3A4655}
.rc-fail .rc-note{font-size:14px;line-height:1.55;color:#5A6472;margin-top:-6px}
.rc-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:4px}
.rc-actions .btn-submit{margin-top:0}
.btn-alt{font-size:14px;font-weight:600;letter-spacing:.4px;color:var(--navy);background:transparent;padding:14px 22px;border:1px solid var(--line);border-radius:3px;cursor:pointer;text-decoration:none;display:inline-block;transition:border-color .25s,color .25s}
.btn-alt:hover{border-color:var(--accent);color:var(--accent)}
.rc-wait{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:24px 0 8px}
.rc-wait p{font-size:16px;color:#5A6472}
.rc-spin{width:32px;height:32px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:rcspin .7s linear infinite}
@keyframes rcspin{to{transform:rotate(360deg)}}

/* ---- Responsive ---- */
/* burger button — hidden on desktop, shown in the mobile header */
.hd-burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border:1px solid #D8D7D0;border-radius:3px;background:#fff;color:var(--navy);cursor:pointer;padding:0}
.hd-burger .i-close{display:none}
.hd.nav-open .hd-burger .i-open{display:none}
.hd.nav-open .hd-burger .i-close{display:inline-flex}

@media(max-width:1040px){
  .hd .btn-ghost{display:none} /* header callback button; the in-card ones stay */
}
@media(max-width:900px){
  .brand img{height:50px}
}

/* ---- Mobile header: burger + dropdown menu ---- */
@media(max-width:820px){
  .hd-inner{position:relative}
  .hd-burger{display:inline-flex}
  .hd-right{position:absolute;top:calc(100% + 1px);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid #E7E6E0;box-shadow:0 16px 32px rgba(16,26,42,.12);padding:4px 0 14px;display:none;z-index:39}
  .hd.nav-open .hd-right{display:flex}
  .nav{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .navlink{padding:14px clamp(22px,6vw,40px);font-size:15px;border-bottom:1px solid #F1F0EB}
  .navlink.active{background:#F7F6F1}
  .langtoggle{align-self:flex-start;margin:14px clamp(22px,6vw,40px) 6px}
  .hd .btn{margin:6px clamp(22px,6vw,40px) 2px;justify-content:center}
}

/* ---- Mobile: leaner shared page-hero + footers ---- */
@media(max-width:600px){
  .pagehero{padding:44px 22px 32px}
  .pagehero h1{font-size:30px;line-height:1.06;margin:12px 0 14px}
  .pagehero .lede{font-size:15px;line-height:1.55}
  .pagehero .kicker{font-size:10.5px;letter-spacing:2px}
  .ft{padding:34px 22px}
}
@media(max-width:680px){
  .ft-bottom{grid-template-columns:1fr;justify-items:center;text-align:center;gap:12px}
}

/* ---- Shared CTA band (also used inline by services.html) ---- */
.cta-band{background:var(--tint);padding:clamp(52px,7vh,88px) clamp(22px,4vw,56px)}
.cta-inner{max-width:1240px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px}
.cta-inner .txt{max-width:640px}
.cta-inner h2{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,44px);color:var(--navy);margin:12px 0 14px;line-height:1.08}
.cta-inner p{font-size:16px;line-height:1.6;color:#5A6472}
@media(max-width:600px){
  .cta-band{padding:44px 22px}
  .cta-inner h2{font-size:25px}
  .cta-inner .btn{width:100%;justify-content:center}
}

/* ===========================================================================
   Insights — editorial listing + long-form article
   =========================================================================== */
.ins-section{background:var(--tint);border-top:1px solid #E7E6E0}
.ins-wrap{max-width:1140px;margin:0 auto;padding:clamp(44px,5.5vh,78px) clamp(22px,4vw,48px)}
.ins-block+.ins-block{margin-top:clamp(44px,5vw,68px)}
.ins-head{margin-bottom:clamp(22px,2.6vw,30px);padding-bottom:15px;border-bottom:1px solid #DAD9D1}
.ins-head .eyebrow{display:block;margin-bottom:9px}
.ins-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(25px,3vw,36px);letter-spacing:-.3px;color:var(--navy);line-height:1.1}
.ins-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2vw,24px)}
.ins-item{display:flex;flex-direction:column;background:#fff;border:1px solid #E4E3DC;border-radius:6px;padding:clamp(26px,2.6vw,34px);text-decoration:none;transition:border-color .25s,box-shadow .25s,transform .25s}
.ins-item:hover{border-color:#BFCBDB;box-shadow:0 16px 38px rgba(22,40,63,.10);transform:translateY(-2px)}
.ins-imeta{font-size:11px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;color:#96A0AE;margin-bottom:13px}
.ins-item h3{font-family:var(--serif);font-weight:500;font-size:clamp(21px,1.9vw,25px);line-height:1.2;letter-spacing:-.2px;color:var(--navy);margin-bottom:12px;transition:color .25s}
.ins-item:hover h3{color:var(--accent)}
.ins-item .ins-desc{font-size:15px;line-height:1.6;color:#5A6472;margin:0 0 16px}
.ins-take{font-size:14px;line-height:1.55;color:#45526B;margin:0 0 18px;padding-left:14px;border-left:2px solid #C7D3E4}
.ins-take b{color:var(--navy);font-weight:600}
.ins-foot{margin-top:auto}
.ins-readmore{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:1.3px;text-transform:uppercase;color:var(--navy)}
.ins-readmore .arw{transition:transform .25s}
.ins-item:hover .ins-readmore{color:var(--accent)}
.ins-item:hover .ins-readmore .arw{transform:translateX(4px)}
@media(max-width:760px){.ins-grid{grid-template-columns:1fr}}

.ins-filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:clamp(30px,3.4vw,44px)}
.ins-filterbar .fl-label{font-size:11px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;color:#8A93A2;margin-right:4px}
.ins-select{position:relative;display:inline-block}
.ins-select select{appearance:none;-webkit-appearance:none;font-family:inherit;font-size:13px;font-weight:600;color:var(--navy);background:#fff;border:1px solid #D8DCE3;border-radius:4px;padding:9px 36px 9px 15px;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.ins-select select:hover{border-color:#B9C4D4}
.ins-select select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(44,86,151,.12)}
.ins-select::after{content:"";position:absolute;right:14px;top:calc(50% - 4px);width:7px;height:7px;border-right:2px solid #8A93A2;border-bottom:2px solid #8A93A2;transform:rotate(45deg);pointer-events:none}
.ins-count{margin-left:auto;font-size:12.5px;color:#8A93A2}
.ins-block.is-hidden,.ins-item.is-hidden{display:none}
@media(max-width:560px){.ins-count{margin-left:0;width:100%}}

.article{max-width:748px;margin:0 auto;padding:clamp(36px,4.5vh,60px) clamp(22px,4vw,40px) clamp(56px,7vh,92px)}
.article-back{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--accent);margin-bottom:8px;text-decoration:none}
.article-back:hover{color:var(--navy)}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:11.5px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#96A0AE;margin-top:20px}
.article-meta .dot{width:3px;height:3px;border-radius:50%;background:#BFC7D2}
.article-body{margin-top:36px}
.article-body>p{font-size:17px;line-height:1.72;color:#3C4652;margin:0 0 22px}
.article-body>p.lead{font-size:19.5px;line-height:1.6;color:#232D39;margin-bottom:26px}
.article-body h2{font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.22;color:var(--navy);margin:46px 0 16px}
.article-body h3{font-size:15px;font-weight:700;letter-spacing:.2px;color:var(--navy);margin:28px 0 9px}
.article-body ul{margin:0 0 22px;padding-left:20px}
.article-body li{font-size:16.5px;line-height:1.68;color:#3C4652;margin-bottom:9px}
.article-body strong{color:var(--navy);font-weight:600}
.pullquote{margin:36px 0;padding:6px 0 6px 24px;border-left:3px solid var(--accent);font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.4;color:var(--navy)}
.article-note{margin-top:48px;padding:22px 26px;background:var(--tint);border-radius:8px;font-size:13.5px;line-height:1.62;color:#6A7382}
@media(max-width:600px){
  .ins-item{padding:26px 22px}
  .ins-item h3{font-size:22px}
  .article-body>p{font-size:16px}
  .article-body>p.lead{font-size:18px}
  .article-body h2{font-size:22px}
  .article-body li{font-size:15.5px}
  .pullquote{font-size:20px}
}
