/* Latitude - all site styling lives here. One file, ten pages (EN + FR). */

:root{--ink:#101418;--paper:#E7E8E3;--field:#FFFFFF;--rule:#C4C7C0;--parcel:#E3B505;--depth:#223A5E;--slate:#5A5F63;
--display:'Archivo',system-ui,sans-serif;--body:'Source Serif 4',Georgia,serif;--mono:'IBM Plex Mono',ui-monospace,monospace;
--gut:clamp(20px,5vw,88px)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.62;-webkit-font-smoothing:antialiased}
.wrap{max-width:1320px;margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:820px}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:500}
.mono.lc{text-transform:none;letter-spacing:.03em}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.025em;line-height:1.06}
.num{font-variant-numeric:tabular-nums}
a{color:inherit}
img{display:block;width:100%;height:auto}
.ph{background:var(--field);border:1px dashed var(--rule);display:flex;align-items:center;justify-content:center;text-align:center;padding:22px}
.ph span{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--slate);line-height:1.8;text-transform:none}

header{border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--paper);z-index:30}
.hbar{display:flex;align-items:center;justify-content:space-between;height:66px;gap:20px}
.mark{display:flex;align-items:baseline;gap:10px;text-decoration:none;flex-shrink:0}
.mark .w{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:-.045em;display:flex;align-items:center;gap:9px}
.chip{width:11px;height:11px;background:var(--ink);clip-path:polygon(0 0,100% 0,100% 68%,68% 100%,0 100%)}
.mark .d{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate)}
nav{display:flex;gap:26px}
nav a{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;white-space:nowrap}
nav a:hover{border-bottom-color:var(--ink)}
nav a.on{border-bottom-color:var(--parcel)}

.plan{width:100%;height:auto;display:block}
.bdry{stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 2s cubic-bezier(.4,0,.2,1) .25s forwards}
.env{opacity:0;animation:fade .7s ease 1.9s forwards}
.late{opacity:0;animation:fade .6s ease 2.3s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.bdry,.env,.late{animation:none;stroke-dashoffset:0;opacity:1}}
.cap{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--slate);padding-top:9px;text-transform:none}
.figframe{background:var(--field);border:1px solid var(--rule);padding:10px}
.band{margin:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);overflow:hidden;max-height:330px}
.band img{object-fit:cover}

section{padding:clamp(50px,5.5vw,88px) 0;border-bottom:1px solid var(--rule)}
.eyebrow{color:var(--slate);margin-bottom:24px}
h2{font-size:clamp(27px,3.1vw,40px);max-width:18em}
h3{font-size:clamp(21px,2.2vw,27px)}
.lede{font-size:19px;max-width:34em;margin-top:20px}
.sm{font-size:15.5px;color:#33383C;max-width:42em;line-height:1.55}
.prose p{font-size:18.5px;max-width:36em;margin-top:18px}

.pull{margin:36px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:22px 0;display:grid;grid-template-columns:150px 1fr;gap:26px;max-width:1040px}
.pull .t{font-family:var(--display);font-weight:600;font-size:16px;line-height:1.25}
.prose .pull{grid-template-columns:1fr;max-width:36em;gap:9px;border-top:0;border-bottom:0;border-left:2px solid var(--parcel);padding:5px 0 5px 20px;margin:32px 0}
.pull p{font-size:15px;line-height:1.55;color:#33383C;margin:0;max-width:none}

.mand{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:36px}
.m{background:var(--paper);padding:28px 24px 30px}
.m:hover{background:var(--field)}
.m h3{font-size:21px;margin-bottom:6px}
.m .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--depth);margin-bottom:16px}
.m p{font-size:16px;line-height:1.55}
.m ul{list-style:none;margin-top:18px;padding-top:15px;border-top:1px solid var(--rule)}
.m li{font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--slate);padding:4px 0}

.flow{margin-top:44px}
.flowhead{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.track{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.stp{background:var(--field);padding:0 0 16px}
.bar{background:var(--parcel)}
.stp .in{padding:12px 13px 0}
.stp .n{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--slate)}
.stp .l{font-family:var(--display);font-weight:600;font-size:15px;margin-top:7px;letter-spacing:-.015em}
.stp .s{font-size:12.5px;line-height:1.4;color:#4A5054;margin-top:5px}
.stp .lv{font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--slate);margin-top:10px;padding-top:8px;border-top:1px solid #E4E5E0}

.pay{margin-top:36px;border:1px solid var(--rule);background:var(--field);padding:28px 30px 30px;max-width:840px}
.pay h3{font-size:20px}
.pay p{font-size:16.5px;margin-top:14px;line-height:1.55}
.pay b{font-family:var(--display);font-weight:600}
.pay .last{border-top:1px solid var(--rule);margin-top:18px;padding-top:16px}

details.d{margin-top:26px;border:1px solid var(--rule);background:var(--field)}
details.d>summary{list-style:none;cursor:pointer;padding:20px 26px;display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center}
details.d>summary::-webkit-details-marker{display:none}
details.d>summary:hover{background:#FBFBF9}
.wtitle{font-family:var(--display);font-weight:600;font-size:21px;letter-spacing:-.02em}
.wmeta{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-top:7px}
.open{font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;border-bottom:1px solid var(--parcel);padding-bottom:3px;white-space:nowrap}
details.d[open]>summary{border-bottom:1px solid var(--rule)}
details.d[open] .open .a{display:none}
details.d:not([open]) .open .b{display:none}
.wbody{padding:30px 26px 34px}

.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.st{background:var(--field);padding:17px}
.st .k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.st .v{font-family:var(--display);font-weight:600;font-size:27px;letter-spacing:-.03em;margin-top:4px}
.st.hl{background:var(--parcel)}.st.hl .k{color:#5C4A00}.st.hl .v{color:#2A2100}
.wtop{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:start}
.figs{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}
.wsec{margin-top:28px;display:grid;grid-template-columns:150px 1fr;gap:26px;border-top:1px solid var(--rule);padding-top:18px}
.wsec h4{font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--slate);font-weight:500;padding-top:5px}
.wsec p,.wsec li{font-size:16px;line-height:1.56}
.wsec p+p{margin-top:13px}
.wsec ul{list-style:none}
.wsec li{padding:7px 0;border-bottom:1px solid #E0E1DC}
.wsec li:last-child{border-bottom:0}
.wsec li b{font-family:var(--display);font-weight:600}

.teaser{display:grid;grid-template-columns:210px 1fr;gap:36px;align-items:start;margin-top:30px}
.teaser p{font-size:18px;max-width:34em}
.teaser p+p{margin-top:14px}
.more{display:inline-block;margin-top:20px;font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;border-bottom:1px solid var(--parcel);padding-bottom:3px;text-decoration:none}
.rows{margin-top:26px;border-top:1px solid var(--rule)}
.row{display:grid;grid-template-columns:190px 1fr;gap:26px;padding:15px 0;border-bottom:1px solid var(--rule)}
.row .l{font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--slate);padding-top:4px}
.row .r{font-size:16.5px;line-height:1.5}
.row .r b{font-family:var(--display);font-weight:600}

.notes{margin-top:26px;border-top:1px solid var(--rule)}
.note{display:grid;grid-template-columns:130px 1fr 70px;gap:24px;padding:20px 0;border-bottom:1px solid var(--rule);align-items:baseline;text-decoration:none}
.note:hover{background:var(--field)}
.note .meta{color:var(--slate)}
.note .ttl{font-family:var(--display);font-weight:500;font-size:20px;letter-spacing:-.02em}
.note .rt{color:var(--slate);text-align:right}

article.n{border-top:1px solid var(--ink);padding-top:26px;margin-top:56px;max-width:760px}
article.n h2{font-size:clamp(26px,3vw,36px);max-width:24em;margin-top:14px}
article.n h3{font-family:var(--display);font-weight:600;font-size:19px;margin-top:34px;letter-spacing:-.015em}
article.n p{font-size:18.5px;margin-top:16px}
article.n p.first{margin-top:22px}
article.n .kv{margin:26px 0;border:1px solid var(--rule);background:var(--field)}
article.n table{width:100%;border-collapse:collapse;font-size:15.5px}
article.n th,article.n td{padding:11px 16px;text-align:right;border-bottom:1px solid var(--rule)}
article.n th:first-child,article.n td:first-child{text-align:left}
article.n thead th{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--slate);font-weight:500}
article.n tbody tr:last-child td{border-bottom:0}
article.n .big{background:var(--parcel);padding:20px 22px;margin:26px 0}
article.n .big p{margin:0;font-size:18px;color:#2A2100}
article.n .sig{margin-top:34px;padding-top:16px;border-top:1px solid var(--rule);font-size:15px;color:var(--slate);font-style:italic}

.ico{width:40px;height:40px;display:block;margin-bottom:15px}
.geo{width:52px;height:auto;display:block;margin-bottom:9px}
.wsec > *:not(h4){grid-column:2}
.wsec ul{grid-column:2}
/* ---- motion & interaction ---- */
*{-webkit-tap-highlight-color:transparent}
a,.m,.row,.note,.stp,.figframe img,.ico,.geo,.chip,.cta,.lang,details.d>summary,.more,.rd{
transition:transform .38s cubic-bezier(.2,.7,.3,1),opacity .38s ease,background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .38s ease}

/* wordmark */
.mark:hover .chip{transform:scale(1.35) rotate(-4deg)}
.mark:hover .d{color:var(--ink)}

/* nav underline slides in */
nav a{position:relative;border-bottom:0!important;padding-bottom:3px}
nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--ink);transition:right .32s cubic-bezier(.2,.7,.3,1)}
nav a:hover::after{right:0}
nav a.on::after{right:0;background:var(--parcel);height:2px}

/* buttons */
.cta{position:relative;overflow:hidden}
.cta:hover{transform:translateY(-2px);box-shadow:0 6px 0 -3px rgba(16,20,24,.22)}
.cta span,.more,.rd{display:inline-block}
.cta:hover span{transform:translateX(5px)}
.more:hover,.rd:hover{color:#7A6000}
.lang:hover{transform:translateY(-1px)}

/* service cards */
.m{position:relative;overflow:hidden}
.m::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--parcel);transform:scaleY(0);transform-origin:top;transition:transform .42s cubic-bezier(.2,.7,.3,1)}
.m:hover::before{transform:scaleY(1)}
.m:hover{transform:translateY(-3px)}
.m:hover .ico{transform:scale(1.09) translateY(-2px)}

/* gold bullets */
.m ul{margin-top:20px;padding-top:16px}
.m li{display:flex;align-items:baseline;gap:10px;font-family:var(--body);font-size:15.5px;letter-spacing:0;
text-transform:none;color:#2C3135;padding:5px 0;line-height:1.4}
.m li::before{content:"";flex:0 0 auto;width:6px;height:6px;margin-top:.5em;background:var(--parcel);
border:.5px solid #B08D04;transform:rotate(45deg);transition:transform .3s ease}
.m:hover li::before{transform:rotate(45deg) scale(1.25)}

/* country rows */
.row{padding-left:0;transition:padding-left .34s cubic-bezier(.2,.7,.3,1),background-color .3s ease}
.rows .row:hover{background:var(--field);padding-left:12px}
.rows .row:hover .geo{transform:scale(1.12)}

/* images */
.figframe{overflow:hidden}
.figframe img{transform:scale(1.001)}
.figframe:hover img{transform:scale(1.035)}

/* notes list */
.note{padding-left:0;position:relative;transition:padding-left .34s cubic-bezier(.2,.7,.3,1),background-color .3s ease}
.note:hover{padding-left:12px}
.note .ttl::after{content:" 92";opacity:0;transition:opacity .3s ease}
.note:hover .ttl::after{opacity:1}

/* frieze */
.stp{cursor:default}
.stp:hover{background:#FCFCFA}
.stp:hover .bar{transform:scaleY(1.14);transform-origin:bottom}
.bar{transition:transform .4s cubic-bezier(.2,.7,.3,1)}

/* accordion */
details.d>summary .open{position:relative}
details.d:hover>summary{background:#FBFBF9}
details.d:hover>summary .wtitle{color:#000}

/* eyebrow tick */
.eyebrow{display:flex;align-items:center;gap:9px}
.eyebrow::before{content:"";width:14px;height:2px;background:var(--parcel);flex:0 0 auto}

/* scroll reveal */
.rv{opacity:0;transform:translateY(18px)}
.rv.in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}

@media(prefers-reduced-motion:reduce){
*{transition:none!important;animation:none!important}
.rv{opacity:1;transform:none}
}
@media(hover:none){
.m:hover,.note:hover,.rows .row:hover{transform:none;padding-left:0}
.figframe:hover img{transform:none}
}

/* ---- contact box ---- */
.cbox{background:var(--field);border:1px solid var(--rule);padding:26px 26px 28px}
.cbox label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);margin-bottom:7px}
.cbox input,.cbox textarea{width:100%;font-family:var(--body);font-size:16.5px;color:var(--ink);
background:var(--paper);border:1px solid var(--rule);padding:11px 13px;margin-bottom:16px;border-radius:0;
transition:border-color .25s ease,background-color .25s ease}
.cbox input:focus,.cbox textarea:focus{outline:0;border-color:var(--ink);background:#fff}
.cbox textarea{min-height:104px;resize:vertical;line-height:1.5}
.cbox .send{width:100%;justify-content:center;margin-top:2px;cursor:pointer;font-family:var(--mono);border-radius:0}
.cbox .note-s{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;color:var(--slate);margin-top:13px;line-height:1.7;text-transform:none}
footer{padding:clamp(52px,6vw,88px) 0 30px}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr;gap:50px;align-items:end}
.fgrid h2{font-size:clamp(24px,2.7vw,34px)}
.fmeta div{padding:9px 0;border-bottom:1px solid var(--rule);color:var(--slate)}
.legal{margin-top:44px;padding-top:15px;border-top:1px solid var(--ink);display:flex;justify-content:space-between;gap:14px;color:var(--slate);flex-wrap:wrap;font-size:10px}
@media(max-width:900px){
 .hbar{flex-direction:column;align-items:stretch;height:auto;gap:0}
 .mark{padding:13px 0}
 nav{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--rule);padding:11px 0}
 nav a{font-size:10.5px;letter-spacing:.07em}
 .mand,.track,.wtop,.figs,.wsec,.row,.pull,.prose .pull,.fgrid,.note,.teaser{grid-template-columns:1fr}
 .track{display:block}
 .stp{border-bottom:1px solid var(--rule)}
 .teaser{gap:22px}
 .teaser .ph{max-width:230px}
 .nums{grid-template-columns:1fr 1fr}
}

.hright{display:flex;align-items:center;gap:24px}
.lang{display:flex;align-items:center;gap:7px;text-decoration:none;font-family:var(--mono);font-size:10.5px;
letter-spacing:.1em;text-transform:uppercase;color:var(--slate);border:1px solid var(--rule);padding:5px 9px;flex-shrink:0}
.lang:hover{border-color:var(--ink);color:var(--ink)}
.lang svg{width:19px;height:13px;display:block}
@media(max-width:900px){
 .hright{width:100%;border-top:1px solid var(--rule);padding:10px 0;gap:14px}
 .hright nav{border-top:0;padding:0;flex:1}
 .lang{padding:4px 7px}
}

/* ---- homepage only ---- */

.hero{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(26px,4vw,60px);align-items:center;padding:clamp(40px,4.5vw,70px) 0 clamp(28px,3vw,44px)}
.p-home h1{font-size:clamp(40px,5.4vw,72px)}
.deck{font-size:clamp(17px,1.2vw,20px);max-width:30em;margin-top:22px;color:#22272B}
.cta{display:inline-flex;align-items:center;gap:10px;margin-top:30px;background:var(--parcel);color:#3A2D00;font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;padding:14px 24px;text-decoration:none;border:1px solid #B08D04}
.cta:hover{background:#F0C31A}
.cart{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:repeat(4,1fr)}
.cart div{padding:14px 0;border-right:1px solid var(--rule);color:var(--slate)}
.cart div:last-child{border-right:0}
.cart div:not(:first-child){padding-left:20px}
@media(max-width:900px){.hero{grid-template-columns:1fr}.cart{grid-template-columns:1fr 1fr}.cart div{border-right:0;padding-left:0!important;border-bottom:1px solid var(--rule)}}

/* ---- about page only ---- */

.ahero{display:grid;grid-template-columns:1.35fr .58fr;gap:clamp(28px,4vw,60px);padding:clamp(40px,4.5vw,70px) 0 clamp(28px,3vw,46px);align-items:start}
.p-about h1{font-size:clamp(36px,4.4vw,58px)}
.role{font-family:var(--mono);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--slate);margin-bottom:18px}
.intro{font-size:21px;margin-top:20px;max-width:26em}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:32px}
.nc{background:var(--field);padding:19px 17px;display:flex;flex-direction:column;justify-content:space-between;min-height:124px}
.nc .v{font-family:var(--display);font-weight:600;font-size:31px;letter-spacing:-.035em}
.nc .k{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--slate);margin-top:6px;line-height:1.5}
@media(max-width:900px){.ahero{grid-template-columns:1fr}.nums{grid-template-columns:1fr 1fr}}
