/* ============================================================
   BEL RIVE REAL ESTATE — TOKENS
   ============================================================ */
:root{
  --brown:#3E362E; --brown-d:#2C2620; --brown-l:#4E453B;
  --sand:#CBB89D; --sand-d:#B09B7E; --sand-l:#DFD2BC;
  --cream:#F5F1E8; --cream-d:#EBE5D8; --white:#FFFFFF;

  --txt:#3E362E; --txt-soft:rgba(62,54,46,.72); --txt-mute:rgba(62,54,46,.52);
  --rule:rgba(62,54,46,.14); --rule-soft:rgba(62,54,46,.08);

  --display:"Oswald","Arial Narrow",Impact,sans-serif;
  --body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --wrap:1280px; --gut:40px; --header-h:92px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--txt);font-family:var(--body);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul{list-style:none;margin:0;padding:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}

.eyebrow{font-size:10px;letter-spacing:.34em;text-transform:uppercase;font-weight:500;color:var(--sand-d)}
.h1{font-family:var(--display);font-weight:300;font-size:clamp(38px,5.8vw,74px);line-height:1.02;letter-spacing:.004em;text-transform:uppercase;margin:0}
.h2{font-family:var(--display);font-weight:300;font-size:clamp(30px,4vw,50px);line-height:1.06;letter-spacing:.008em;text-transform:uppercase;margin:0}
.h3{font-family:var(--display);font-weight:400;font-size:22px;line-height:1.15;letter-spacing:.015em;text-transform:uppercase;margin:0}
.h4{font-family:var(--display);font-weight:400;font-size:17px;letter-spacing:.02em;text-transform:uppercase;margin:0}
.lead{font-size:17px;color:var(--txt-soft);max-width:62ch;margin:20px 0 0}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 30px;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;transition:.22s;
  border:1px solid transparent;white-space:nowrap}
.btn-solid{background:var(--brown);color:var(--cream)}
.btn-solid:hover{background:var(--brown-d)}
.btn-sand{background:var(--sand);color:var(--brown)}
.btn-sand:hover{background:var(--sand-l)}
.btn-line{border-color:var(--brown);color:var(--brown)}
.btn-line:hover{background:var(--brown);color:var(--cream)}
.btn-line-light{border-color:rgba(245,241,232,.45);color:var(--cream)}
.btn-line-light:hover{background:var(--cream);color:var(--brown);border-color:var(--cream)}
.btn-sm{padding:11px 20px;font-size:10px;letter-spacing:.16em}

.alink{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;font-weight:500;border-bottom:1px solid var(--rule);padding-bottom:6px;transition:.2s}
.alink:hover{border-color:var(--brown);gap:16px}

.sec{padding:110px 0}
.sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:52px;flex-wrap:wrap}
.sechead .l{max-width:64ch}
.sechead .eyebrow{margin-bottom:16px;display:block}

/* ============ TOP BAR + HEADER ============ */
.topbar{position:relative;z-index:150;background:var(--brown-d);color:rgba(245,241,232,.7);font-size:11.5px;letter-spacing:.06em}
.topbar .wrap{display:flex;align-items:center;gap:26px;height:40px}
.topbar a:hover{color:var(--sand)}
.topbar .right{margin-left:auto;display:flex;align-items:center;gap:22px}
.switch{display:flex;align-items:center;gap:7px}
.switch button{font-size:11.5px;color:rgba(245,241,232,.55);letter-spacing:.08em;padding:2px 0}
.switch button.on{color:var(--sand);font-weight:500}
.switch span{opacity:.3}

header.site{position:sticky;top:0;z-index:100;background:var(--cream);
  border-bottom:1px solid var(--rule);transition:box-shadow .25s}
header.site.stuck{box-shadow:0 2px 18px rgba(62,54,46,.09)}
.hdr{display:flex;align-items:center;gap:40px;height:var(--header-h)}
.logo img{height:44px;width:auto}

nav.main{margin-left:auto}
nav.main > ul{display:flex;gap:32px;align-items:center}
nav.main > ul > li{position:relative}
nav.main > ul > li > a{font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:500;
  padding:36px 0;display:block;position:relative}
nav.main > ul > li > a::after{content:"";position:absolute;left:0;right:100%;bottom:30px;height:1px;
  background:var(--sand-d);transition:right .25s}
nav.main > ul > li:hover > a::after{right:0}
.drop{position:absolute;top:100%;left:-24px;min-width:252px;background:var(--white);
  border:1px solid var(--rule);padding:12px 0;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.22s;box-shadow:0 14px 40px rgba(62,54,46,.12)}
nav.main li:hover .drop{opacity:1;visibility:visible;transform:translateY(0)}
.drop a{display:block;padding:10px 24px;font-size:13px;color:var(--txt-soft);transition:.16s}
.drop a:hover{background:var(--cream);color:var(--brown);padding-left:30px}

.hdr-cta{display:flex;align-items:center;gap:14px;flex:none}
.burger{display:none;width:40px;height:40px;flex-direction:column;justify-content:center;gap:5px;margin-left:auto}
.burger i{display:block;height:1.5px;background:var(--brown)}

.drawer{position:fixed;inset:0;background:var(--brown);z-index:200;padding:28px var(--gut);
  transform:translateX(100%);transition:.32s cubic-bezier(.4,0,.2,1);overflow-y:auto}
.drawer.open{transform:translateX(0)}
.drawer .x{position:absolute;top:26px;right:var(--gut);color:var(--cream);font-size:30px;line-height:1}
.drawer img{height:38px;width:auto}
.drawer ul{margin-top:56px}
.drawer li a{display:block;padding:17px 0;color:var(--cream);font-family:var(--display);font-size:26px;
  text-transform:uppercase;letter-spacing:.02em;font-weight:300;border-bottom:1px solid rgba(203,184,157,.18)}

/* ============ HERO ============ */
.hero{position:relative;background:var(--brown);color:var(--cream);overflow:hidden}
.hero-media{position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 78% 6%, rgba(203,184,157,.4) 0%, transparent 55%),
    radial-gradient(90% 70% at 8% 96%, rgba(203,184,157,.14) 0%, transparent 60%),
    linear-gradient(168deg,#4E453B 0%,#3E362E 42%,#2C2620 100%)}
.hero-media::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,rgba(245,241,232,.035) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}
.hero .wrap{position:relative;z-index:3}
.hero-in{padding:116px 0 0;max-width:980px}
.hero .h1{margin-top:24px}
.hero .h1 em{font-style:normal;color:var(--sand)}
.hero p.sub{font-size:18px;color:rgba(245,241,232,.76);max-width:58ch;margin:28px 0 0;font-weight:300}
.hero-actions{display:flex;gap:14px;margin-top:38px;flex-wrap:wrap}

.search{position:relative;z-index:3;background:var(--cream);margin-top:74px;border:1px solid rgba(62,54,46,.1)}
.search-tabs{display:flex;border-bottom:1px solid var(--rule)}
.search-tabs button{padding:17px 32px;font-size:11px;letter-spacing:.17em;text-transform:uppercase;
  font-weight:500;color:var(--txt-mute);border-bottom:2px solid transparent;margin-bottom:-1px;transition:.2s}
.search-tabs button.on{color:var(--brown);border-color:var(--sand)}
.search-row{display:grid;grid-template-columns:1.5fr 1fr 1fr auto}
.field{padding:20px 24px;border-right:1px solid var(--rule-soft)}
.field label{display:block;font-size:9px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--sand-d);font-weight:500;margin-bottom:9px}
.field select{width:100%;border:0;background:none;font-family:var(--display);font-size:17px;
  letter-spacing:.02em;color:var(--brown);outline:none;text-transform:uppercase;font-weight:400;
  appearance:none;cursor:pointer}
.search-row .go{display:flex}
.search-row .go button{background:var(--brown);color:var(--cream);padding:0 44px;font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;font-weight:500;transition:.2s}
.search-row .go button:hover{background:var(--sand);color:var(--brown)}

.stats{background:var(--cream-d);border-top:1px solid var(--rule-soft);margin-top:74px}
.stats ul{display:grid;grid-template-columns:repeat(4,1fr);max-width:var(--wrap);margin:0 auto}
.stats li{padding:34px 26px;border-right:1px solid var(--rule-soft)}
.stats li:first-child{padding-left:var(--gut)}
.stats li:last-child{border-right:0;padding-right:var(--gut)}
.stats .n{font-family:var(--display);font-size:38px;font-weight:300;line-height:1;color:var(--brown)}
.stats .l{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--txt-mute);margin-top:11px;font-weight:500}
.stats .s{font-size:12.5px;color:var(--txt-mute);margin-top:7px}

/* ============ NEEDS / APPROACH ============ */
.needs{background:var(--white)}
.ngrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.ncell{background:var(--white);padding:40px 30px 36px;transition:.25s;cursor:default}
.ncell:hover{background:var(--cream)}
.ncell .num{font-family:var(--display);font-size:12px;letter-spacing:.2em;color:var(--sand-d);font-weight:500}
.ncell .h3{margin:18px 0 0}
.ncell p{font-size:14.5px;color:var(--txt-soft);margin:14px 0 0}
.ncell .mk{margin-top:22px;padding-top:16px;border-top:1px solid var(--rule-soft);
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sand-d);font-weight:600}

/* ============ CATALOGUE ============ */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px}
.filters button{padding:10px 20px;font-size:11px;letter-spacing:.15em;text-transform:uppercase;
  font-weight:500;border:1px solid var(--rule);color:var(--txt-soft);transition:.2s}
.filters button:hover{border-color:var(--sand-d)}
.filters button.on{background:var(--brown);color:var(--cream);border-color:var(--brown)}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.pcard{background:var(--white);border:1px solid var(--rule-soft);transition:.28s;display:flex;flex-direction:column}
.pcard:hover{box-shadow:0 18px 44px rgba(62,54,46,.13);transform:translateY(-4px)}
.pmedia{position:relative;aspect-ratio:4/3;overflow:hidden}
.ph{position:absolute;inset:0;transition:transform .6s cubic-bezier(.2,.6,.2,1)}
.pcard:hover .ph{transform:scale(1.05)}
.ph-1{background:linear-gradient(150deg,#6E6152,#3E362E 55%,#241F1A)}
.ph-2{background:linear-gradient(150deg,#CBB89D,#8C7C66 50%,#3E362E)}
.ph-3{background:linear-gradient(150deg,#5A5045,#8C7C66 48%,#2C2620)}
.ph-4{background:linear-gradient(150deg,#A08D74,#4E453B 60%,#2C2620)}
.ph-5{background:linear-gradient(150deg,#463D34,#6E6152 45%,#CBB89D)}
.ph-6{background:linear-gradient(150deg,#7E6F5C,#3E362E 58%,#191512)}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(28,24,20,.72) 0%,transparent 46%)}
.badge{position:absolute;top:16px;left:16px;z-index:2;background:var(--cream);color:var(--brown);
  padding:7px 13px;font-size:9px;letter-spacing:.22em;text-transform:uppercase;font-weight:600}
.badge.rtm{background:var(--sand)}
.pflag{position:absolute;top:16px;right:16px;z-index:2;color:var(--cream);font-size:9.5px;
  letter-spacing:.24em;text-transform:uppercase;font-weight:500;background:rgba(28,24,20,.55);padding:7px 12px}
.pmedia .over{position:absolute;left:20px;right:20px;bottom:18px;z-index:2;color:var(--cream)}
.pmedia .over .dev{font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--sand);font-weight:500}
.pmedia .over .nm{font-family:var(--display);font-size:25px;text-transform:uppercase;letter-spacing:.02em;
  font-weight:400;line-height:1.06;margin-top:7px}
.pbody{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.ploc{font-size:12.5px;color:var(--txt-mute)}
.pspecs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-soft);
  margin-top:20px;border:1px solid var(--rule-soft)}
.pspecs div{background:var(--white);padding:13px 15px}
.pspecs .k{font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.pspecs .v{font-family:var(--display);font-size:17px;letter-spacing:.02em;margin-top:5px}
.pfoot{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:22px;
  padding-top:19px;border-top:1px solid var(--rule-soft)}
.pprice .k{font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.pprice .v{font-family:var(--display);font-size:23px;margin-top:4px}
.pmore{font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  border-bottom:1px solid var(--sand);padding-bottom:4px;transition:.2s}
.pcard:hover .pmore{border-color:var(--brown)}
.catfoot{display:flex;justify-content:center;margin-top:56px}

/* ============ APP / ASSET MANAGEMENT ============ */
.app{color:var(--cream);position:relative;overflow:hidden;padding:110px 0;
  background:linear-gradient(100deg,#4E453B 0%,#453D34 26%,#37302A 58%,#2A2521 100%)}
.app::before{content:"";position:absolute;left:-12%;top:0;width:62%;height:100%;
  background:radial-gradient(60% 60% at 40% 45%,rgba(203,184,157,.13) 0%,transparent 68%)}
.app .wrap{position:relative;z-index:2}
.app .eyebrow{color:var(--sand)}
.appgrid{display:grid;grid-template-columns:1fr .82fr;gap:80px;align-items:center}
.app p.lead{color:rgba(245,241,232,.74)}
.applist{margin-top:36px}
.applist li{display:flex;gap:20px;padding:20px 0;border-top:1px solid rgba(203,184,157,.2)}
.applist li:first-child{border-top:0}
.applist .n{font-family:var(--display);font-size:13px;color:var(--sand);min-width:26px;font-weight:500;padding-top:3px}
.applist .h4{color:var(--cream);margin-bottom:6px}
.applist p{margin:0;font-size:14.5px;color:rgba(245,241,232,.66)}
.appbtns{display:flex;gap:12px;margin-top:36px;flex-wrap:wrap}

/* phone mock */
.phone{width:100%;max-width:320px;margin:0 auto;aspect-ratio:9/18.5;background:#151210;
  border:9px solid #211C18;border-radius:38px;padding:20px 16px;position:relative;
  box-shadow:0 30px 70px rgba(0,0,0,.42)}
.phone::before{content:"";position:absolute;top:11px;left:50%;transform:translateX(-50%);
  width:78px;height:5px;border-radius:3px;background:#2E2822}
.ptop{display:flex;align-items:center;justify-content:space-between;margin-top:14px}
.ptop img{height:20px;width:auto}
.ptop .av{width:24px;height:24px;border-radius:50%;background:var(--sand);opacity:.85}
.pval{margin-top:26px}
.pval .k{font-size:8px;letter-spacing:.26em;text-transform:uppercase;color:var(--sand);font-weight:600}
.pval .v{font-family:var(--display);font-size:36px;font-weight:300;color:var(--cream);margin-top:8px;line-height:1}
.pval .d{font-size:11px;color:#7FBF8F;margin-top:6px}
.pbars{display:flex;align-items:flex-end;gap:6px;height:56px;margin-top:22px}
.pbars i{flex:1;background:rgba(203,184,157,.3);display:block}
.pbars i:nth-child(1){height:38%}.pbars i:nth-child(2){height:52%}
.pbars i:nth-child(3){height:44%}.pbars i:nth-child(4){height:68%}
.pbars i:nth-child(5){height:60%}.pbars i:nth-child(6){height:82%}
.pbars i:nth-child(7){height:74%}.pbars i:nth-child(8){height:100%;background:var(--sand)}
.prow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;
  border-bottom:1px solid rgba(203,184,157,.14)}
.prow:first-of-type{margin-top:22px;border-top:1px solid rgba(203,184,157,.14)}
.prow .t{font-size:11.5px;color:rgba(245,241,232,.86)}
.prow .s{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,241,232,.4);margin-top:3px}
.prow .g{font-family:var(--display);font-size:14px;color:var(--sand)}
.pnav{position:absolute;left:16px;right:16px;bottom:18px;display:flex;justify-content:space-between;
  padding-top:14px;border-top:1px solid rgba(203,184,157,.14)}
.pnav span{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,241,232,.35)}
.pnav span.on{color:var(--sand)}

/* ============ MARKETS ============ */
.mgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.mcard{background:var(--cream);padding:34px 26px 30px;transition:.28s}
.mcard:hover{background:var(--white)}
.mcard .flag{font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.mcard .cty{font-family:var(--display);font-size:30px;font-weight:300;text-transform:uppercase;
  letter-spacing:.02em;margin-top:13px;line-height:1}
.mcard .cities{font-size:12.5px;color:var(--txt-mute);margin-top:11px;line-height:1.55}
.mkv{margin-top:26px;padding-top:20px;border-top:1px solid var(--rule-soft)}
.mkv div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:12px}
.mkv .k{color:var(--txt-mute)}
.mkv .v{font-family:var(--display);font-size:15px;letter-spacing:.02em}
.mcard .go{margin-top:24px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  font-weight:600;color:var(--sand-d);display:flex;align-items:center;gap:8px;transition:gap .2s}
.mcard:hover .go{gap:14px;color:var(--brown)}

/* ============ SERVICES ============ */
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.scard{background:var(--cream);padding:42px 34px 38px;transition:.25s}
.scard:hover{background:var(--white)}
.scard .num{font-family:var(--display);font-size:12px;letter-spacing:.2em;color:var(--sand-d);font-weight:500}
.scard .h3{margin:18px 0 0}
.scard p{font-size:14.5px;color:var(--txt-soft);margin:14px 0 0}
.scard .alink{margin-top:22px;border-color:transparent;padding-bottom:0}

/* ============ NEWS ============ */
.news{background:var(--cream-d)}
.news-lead{display:grid;grid-template-columns:1.45fr 1fr;gap:30px;margin-bottom:30px}
.nfeat{position:relative;min-height:420px;overflow:hidden;background-size:cover;background-position:center;
  background-color:#3E362E}
.nfeat::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(28,24,20,.86) 4%,rgba(28,24,20,.15) 62%)}
.nfeat .c{position:absolute;left:38px;right:38px;bottom:34px;z-index:2;color:var(--cream)}
.ncat{display:inline-block;background:var(--sand);color:var(--brown);padding:6px 12px;
  font-size:9px;letter-spacing:.22em;text-transform:uppercase;font-weight:600}
.nfeat h3{font-family:var(--display);font-weight:300;font-size:clamp(24px,2.6vw,36px);line-height:1.1;
  text-transform:uppercase;letter-spacing:.01em;margin:18px 0 0}
.nmeta{font-size:11.5px;color:rgba(245,241,232,.6);margin-top:14px;letter-spacing:.06em}
.nlist{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--rule-soft)}
.nlist .nhead{padding:20px 26px;border-bottom:1px solid var(--rule-soft);display:flex;
  align-items:center;justify-content:space-between;gap:14px}
.nlist .nhead .t{font-family:var(--display);font-size:14px;letter-spacing:.16em;text-transform:uppercase;font-weight:500}
.live{display:flex;align-items:center;gap:7px;font-size:9.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--sand-d);font-weight:600}
.live i{width:6px;height:6px;border-radius:50%;background:var(--sand-d);animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.nitem{padding:20px 26px;border-bottom:1px solid var(--rule-soft);transition:.2s;display:block}
.nitem:hover{background:var(--cream)}
.nitem .d{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.nitem .t{font-size:15px;line-height:1.42;margin-top:8px;font-weight:500}
.nlist .nfoot{margin-top:auto;padding:20px 26px;border-top:1px solid var(--rule-soft)}
.nrow{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.ncard{background:var(--white);border:1px solid var(--rule-soft);transition:.26s;display:flex;flex-direction:column}
.ncard:hover{box-shadow:0 14px 34px rgba(62,54,46,.11);transform:translateY(-3px)}
.ncard .m{aspect-ratio:16/10;position:relative;overflow:hidden}
.ncard .m > i{position:absolute;inset:0;display:block}
.ncard .m img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.6,.2,1)}
.ncard:hover .m img{transform:scale(1.04)}
.nm-1{background:linear-gradient(140deg,#8C7C66,#3E362E)}
.nm-2{background:linear-gradient(140deg,#CBB89D,#5A5045)}
.nm-3{background:linear-gradient(140deg,#4E453B,#241F1A)}
.nm-4{background:linear-gradient(140deg,#A08D74,#3E362E)}
.ncard .b{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.ncard .cat{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.ncard h4{font-size:16.5px;line-height:1.38;margin:12px 0 0;font-weight:500}
.ncard .dt{font-size:11.5px;color:var(--txt-mute);margin-top:auto;padding-top:18px;letter-spacing:.05em}

/* ============ ABOUT ============ */
.about{background:var(--white)}
.about-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:center}
.about-media{aspect-ratio:4/5;background:linear-gradient(155deg,#CBB89D,#8C7C66 42%,#3E362E);position:relative}
.about-media .tag{position:absolute;bottom:0;left:0;background:var(--brown);color:var(--cream);padding:26px 30px;max-width:80%}
.about-media .tag .n{font-family:var(--display);font-size:34px;font-weight:300;line-height:1}
.about-media .tag .l{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);margin-top:9px;font-weight:500}
.tlist{margin-top:38px}
.tlist li{display:flex;gap:22px;padding:22px 0;border-top:1px solid var(--rule-soft)}
.tlist li:first-child{border-top:0}
.tlist .n{font-family:var(--display);font-size:13px;color:var(--sand-d);min-width:26px;font-weight:500;padding-top:3px}
.tlist .h4{margin-bottom:7px}
.tlist p{margin:0;font-size:14.5px;color:var(--txt-soft)}
.offices{border-top:1px solid var(--rule);margin-top:80px;padding-top:44px;
  display:grid;grid-template-columns:repeat(6,1fr);gap:26px}
.offices .v{font-family:var(--display);font-size:20px;text-transform:uppercase;letter-spacing:.02em}
.offices .a{font-size:12.5px;color:var(--txt-mute);margin-top:6px;line-height:1.5}

/* ============ GUIDE ============ */
.guide{background:var(--sand);color:var(--brown)}
.gg{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.guide .eyebrow{color:rgba(62,54,46,.55)}
.guide p{color:rgba(62,54,46,.78);max-width:52ch;margin:22px 0 0}
.gform{background:var(--cream);border:1px solid rgba(62,54,46,.14);padding:38px 34px}
.gform .fr{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.gform label{display:block;font-size:9px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--sand-d);font-weight:600;margin-bottom:8px}
.gform input,.gform select{width:100%;padding:13px 0;background:none;border:0;
  border-bottom:1px solid var(--rule);color:var(--brown);font-family:var(--body);font-size:15px;outline:none;transition:.2s}
.gform input::placeholder{color:var(--txt-mute)}
.gform input:focus,.gform select:focus{border-color:var(--brown)}
.gform .full{margin-top:20px}
.gform .btn{width:100%;margin-top:30px}
.gform .fine{font-size:11px;color:var(--txt-mute);margin-top:16px;line-height:1.5}

/* ============ PRESS + FINAL ============ */
.press{background:var(--cream-d);padding:52px 0}
.press .wrap{display:flex;align-items:center;gap:44px;flex-wrap:wrap;justify-content:center}
.press .lbl{font-size:9.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--txt-mute);font-weight:600}
.press .logos{display:flex;gap:46px;flex-wrap:wrap;align-items:center;justify-content:center}
.press .logos span{font-family:var(--display);font-size:20px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--txt-mute);opacity:.65;transition:.2s}
.press .logos span:hover{opacity:1;color:var(--brown)}

.final{background:var(--brown);color:var(--cream);text-align:center}
.final .eyebrow{color:var(--sand)}
.final .h2{max-width:22ch;margin:22px auto 0}
.final p{max-width:54ch;margin:22px auto 0;color:rgba(245,241,232,.72)}
.final .btns{display:flex;gap:14px;justify-content:center;margin-top:38px;flex-wrap:wrap}

/* ============ FOOTER ============ */
footer.site{background:var(--brown-d);color:rgba(245,241,232,.62);padding:82px 0 0;font-size:13.5px}
.fmain{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:40px;padding-bottom:62px}
.fbrand img{height:44px;width:auto}
.fbrand p{margin:24px 0 0;max-width:34ch;line-height:1.62}
.fbrand .contact{margin-top:22px;line-height:1.9}
.fbrand .contact a:hover{color:var(--sand)}
.fcol h5{font-family:var(--display);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sand);margin:0 0 20px;font-weight:500}
.fcol li{margin-bottom:11px}
.fcol a:hover{color:var(--sand)}
.fseo{border-top:1px solid rgba(203,184,157,.14);padding:34px 0;font-size:12px;
  color:rgba(245,241,232,.34);line-height:2}
.fseo a:hover{color:var(--sand)}
.fseo span{opacity:.35;margin:0 9px}
.fdisc{border-top:1px solid rgba(203,184,157,.14);padding:28px 0;font-size:11.5px;
  color:rgba(245,241,232,.34);line-height:1.75;max-width:none}
.fbot{border-top:1px solid rgba(203,184,157,.14);padding:26px 0 34px;display:flex;
  justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:12px;color:rgba(245,241,232,.4)}
.fsoc{display:flex;gap:22px}
.fsoc a:hover{color:var(--sand)}

/* ============ RESPONSIVE ============ */
@media(max-width:1180px){
  .grid,.sgrid,.nrow,.ngrid{grid-template-columns:repeat(2,1fr)}
  .mgrid{grid-template-columns:repeat(3,1fr)}
  .offices{grid-template-columns:repeat(3,1fr)}
  .stats ul{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:980px){
  :root{--gut:24px;--header-h:74px}
  nav.main,.hdr-cta{display:none}
  .burger{display:flex}
  .logo img{height:36px}
  .hero-in{padding:72px 0 0}
  .search-row{grid-template-columns:1fr 1fr}
  .search-row .go{grid-column:1/-1}
  .search-row .go button{width:100%;padding:20px}
  .field{border-right:0;border-bottom:1px solid var(--rule-soft)}
  .about-grid,.gg,.news-lead,.appgrid{grid-template-columns:1fr;gap:44px}
  .fmain{grid-template-columns:1fr 1fr}
  .sec{padding:76px 0}
}
@media(max-width:680px){
  .grid,.sgrid,.nrow,.mgrid,.ngrid{grid-template-columns:1fr}
  .offices{grid-template-columns:repeat(2,1fr)}
  .stats li{border-right:0;border-bottom:1px solid var(--rule-soft);padding-left:var(--gut)!important;padding-right:var(--gut)!important}
  .fmain{grid-template-columns:1fr}
  .topbar .hide-sm{display:none}
  .gform .fr{grid-template-columns:1fr}
}

/* ============================================================
   ADDITIONS — multi-page, search, team, listing, journal, contact
   ============================================================ */

/* ---- flags ---- */
.flags{display:flex;gap:6px;align-items:center}
.flag-ic{width:19px;height:13px;display:block;border:1px solid rgba(62,54,46,.18);flex:none}
.flags-dark .flag-ic{border-color:rgba(245,241,232,.25)}

/* ---- search: country/city + budget ---- */
.search-row{grid-template-columns:1fr 1fr 1fr 1.25fr auto}
.field select:disabled{opacity:.4;cursor:not-allowed}
.budget{display:flex;align-items:center;gap:10px}
.budget input{width:100%;border:0;background:none;font-family:var(--display);font-size:17px;
  letter-spacing:.02em;color:var(--brown);outline:none;text-transform:uppercase;font-weight:400;
  border-bottom:1px solid var(--rule-soft);padding-bottom:3px}
.budget input::placeholder{color:var(--txt-mute)}
.budget span{color:var(--txt-mute);font-size:12px;flex:none}
.budget .cur{font-family:var(--display);font-size:13px;color:var(--sand-d);flex:none}
.chips{display:flex;gap:6px;margin-top:11px;flex-wrap:wrap}
.chips button{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  padding:5px 9px;border:1px solid var(--rule);color:var(--txt-mute);transition:.18s}
.chips button:hover{border-color:var(--sand-d);color:var(--brown)}

/* ---- page hero (inner pages) ---- */
.phero{background:var(--brown);color:var(--cream);position:relative;overflow:hidden;
  padding:96px 0 88px}
.phero::before{content:"";position:absolute;inset:0;
  background:linear-gradient(172deg,#2A2420 0%,#1F1B17 48%,#141110 100%);
  background-size:cover;background-position:center}
.phero.pic::before{
  background:linear-gradient(98deg,rgba(20,17,14,.93) 0%,rgba(20,17,14,.82) 34%,rgba(20,17,14,.5) 70%,rgba(20,17,14,.3) 100%),
             var(--pic) center/cover no-repeat}
.phero.pic .phero-aura{display:none}
.ph-projects{--pic:url("ph-projects.jpg")}
.ph-team{--pic:url("ph-team.jpg")}
.ph-journal{--pic:url("ph-journal.jpg")}
.ph-asset{--pic:url("ph-asset.jpg")}
.ph-contact{--pic:url("ph-contact.jpg")}
.phero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.28;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.5'/></svg>")}
.phero-aura{position:absolute;inset:-30%;z-index:1;pointer-events:none;display:block}
.phero-aura i{position:absolute;display:block;border-radius:50%}
.phero-aura i:nth-child(1){width:56vw;height:56vw;right:0;top:-22vw;
  background:radial-gradient(circle,rgba(203,184,157,.30) 0%,rgba(203,184,157,.08) 40%,transparent 66%);
  filter:blur(90px);animation:drift1 46s ease-in-out infinite alternate}
.phero-aura i:nth-child(2){width:40vw;height:40vw;left:4vw;bottom:-18vw;
  background:radial-gradient(circle,rgba(176,155,126,.20) 0%,transparent 66%);
  filter:blur(110px);animation:drift2 62s ease-in-out infinite alternate}
.phero .wrap{position:relative;z-index:2}
.phero .eyebrow{color:var(--sand)}
.phero .h1{margin-top:20px;font-size:clamp(34px,5vw,64px)}
.phero p{color:rgba(245,241,232,.74);max-width:62ch;margin:24px 0 0;font-size:17px;font-weight:300}
.crumb{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,241,232,.45);margin-bottom:26px}
.crumb a:hover{color:var(--sand)}

/* ---- team ---- */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.tgrid.lead{grid-template-columns:repeat(3,1fr);margin-bottom:64px}
.member{background:var(--white);border:1px solid var(--rule-soft);display:flex;flex-direction:column;transition:.26s}
.member:hover{box-shadow:0 18px 44px rgba(62,54,46,.12);transform:translateY(-3px)}
.mphoto{aspect-ratio:4/5;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.mphoto .ini{font-family:var(--display);font-size:64px;font-weight:200;color:rgba(245,241,232,.72);letter-spacing:.06em}
.mg-1{background:linear-gradient(150deg,#6E6152,#3E362E 60%,#241F1A)}
.mg-2{background:linear-gradient(150deg,#CBB89D,#8C7C66 52%,#4E453B)}
.mg-3{background:linear-gradient(150deg,#5A5045,#8C7C66 46%,#2C2620)}
.mg-4{background:linear-gradient(150deg,#A08D74,#4E453B 58%,#2C2620)}
.mbody{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.mname{font-family:var(--display);font-size:22px;text-transform:uppercase;letter-spacing:.02em;font-weight:400;line-height:1.1}
.mrole{font-size:10px;letter-spacing:.19em;text-transform:uppercase;color:var(--sand-d);font-weight:600;margin-top:9px;line-height:1.5}
.mloc{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12.5px;color:var(--txt-mute)}
.mloc .flag-ic{width:18px;height:13px}
.mfoot{margin-top:auto;padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:14px;
  border-top:1px solid var(--rule-soft)}
.msocial{display:flex;gap:14px;align-items:center}
.msocial a{color:var(--txt-mute);transition:color .18s}
.msocial a:hover{color:var(--brown)}
.msocial svg{width:15px;height:15px;display:block}
.mlangs{display:flex;gap:5px;align-items:center}
.mlangs .flag-ic{width:17px;height:12px}

/* ---- listing page ---- */
.listbar{background:var(--cream-d);border-bottom:1px solid var(--rule);padding:22px 0}
.listbar .wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.listbar .count{font-family:var(--display);font-size:17px;letter-spacing:.02em;text-transform:uppercase}
.listbar .right{margin-left:auto;display:flex;gap:8px;align-items:center}
.srcnote{background:var(--cream-d);border:1px solid var(--rule);padding:20px 24px;margin-bottom:38px;
  font-size:13.5px;color:var(--txt-soft);display:flex;gap:16px;align-items:flex-start}
.srcnote b{font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sand-d);flex:none;padding-top:2px}

/* ---- journal page ---- */
.jgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.jcats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:40px}
.jcats button{padding:10px 20px;font-size:11px;letter-spacing:.15em;text-transform:uppercase;
  font-weight:500;border:1px solid var(--rule);color:var(--txt-soft);transition:.2s}
.jcats button.on{background:var(--brown);color:var(--cream);border-color:var(--brown)}

/* ---- contact page ---- */
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.cform{background:var(--white);border:1px solid var(--rule);padding:40px 36px}
.cform .fr{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cform label{display:block;font-size:9px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--sand-d);font-weight:600;margin-bottom:8px}
.cform input,.cform select,.cform textarea{width:100%;padding:13px 0;background:none;border:0;
  border-bottom:1px solid var(--rule);color:var(--brown);font-family:var(--body);font-size:15px;outline:none}
.cform textarea{resize:vertical;min-height:90px}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--brown)}
.cform .full{margin-top:22px}
.cform .btn{width:100%;margin-top:32px}
.cinfo li{padding:22px 0;border-top:1px solid var(--rule-soft)}
.cinfo li:first-child{border-top:0}
.cinfo .k{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.cinfo .v{font-family:var(--display);font-size:22px;text-transform:uppercase;letter-spacing:.02em;margin-top:8px}
.cinfo .s{font-size:13.5px;color:var(--txt-mute);margin-top:6px}

@media(max-width:1180px){
  .tgrid,.tgrid.lead,.jgrid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:980px){
  .search-row{grid-template-columns:1fr 1fr}
  .cgrid{grid-template-columns:1fr;gap:44px}
}
@media(max-width:680px){
  .tgrid,.tgrid.lead,.jgrid{grid-template-columns:1fr}
  .cform .fr{grid-template-columns:1fr}
}

/* ============================================================
   PROJECT DETAIL PAGE
   ============================================================ */
.pjhead{background:var(--brown);color:var(--cream);padding:34px 0 0;position:relative}
.pjhead .crumb{margin-bottom:20px}
.pjtop{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;padding-bottom:28px}
.pjtitle .dev{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--sand);font-weight:600}
.pjtitle h1{font-family:var(--display);font-weight:300;font-size:clamp(30px,4.6vw,58px);
  text-transform:uppercase;letter-spacing:.01em;line-height:1.02;margin:12px 0 0}
.pjtitle .loc{font-size:14px;color:rgba(245,241,232,.66);margin-top:12px}
.pjtags{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.pjtag{font-size:9px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  padding:6px 11px;border:1px solid rgba(203,184,157,.4);color:var(--sand)}
.pjtag.solid{background:var(--sand);color:var(--brown);border-color:var(--sand)}
.pjprice{text-align:right}
.pjprice .k{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--sand);font-weight:600}
.pjprice .v{font-family:var(--display);font-size:clamp(26px,3.4vw,40px);font-weight:300;line-height:1;margin-top:9px}
.pjprice .btn{margin-top:18px}

/* gallery */
.gal{display:grid;grid-template-columns:2.1fr 1fr;gap:8px;height:min(58vh,520px);min-height:340px}
.gal .main,.gal .side>span{position:relative;overflow:hidden;display:block}
.gal .side{display:grid;grid-template-rows:1fr 1fr;gap:8px}
.gal i{position:absolute;inset:0;display:block;transition:transform .7s cubic-bezier(.2,.6,.2,1)}
.gal a:hover i{transform:scale(1.04)}
.gal .more{position:absolute;right:16px;bottom:16px;background:rgba(28,24,20,.72);color:var(--cream);
  padding:9px 14px;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  backdrop-filter:blur(4px);z-index:2}
.gal .cap{position:absolute;left:16px;bottom:16px;z-index:2;color:var(--cream);font-size:10px;
  letter-spacing:.2em;text-transform:uppercase;font-weight:600;background:rgba(28,24,20,.55);padding:8px 12px}

/* sub nav */
.pjnav{position:sticky;top:var(--header-h);z-index:50;background:var(--cream);
  border-bottom:1px solid var(--rule)}
.pjnav .wrap{display:flex;gap:30px;overflow-x:auto;align-items:center}
.pjnav a{padding:19px 0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;color:var(--txt-mute);white-space:nowrap;border-bottom:2px solid transparent;
  margin-bottom:-1px;transition:.2s}
.pjnav a:hover,.pjnav a.on{color:var(--brown);border-color:var(--sand)}
.pjnav .cta{margin-left:auto;padding:0}

/* key facts */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin-bottom:0}
.facts div{background:var(--cream);padding:24px 22px}
.facts .k{font-size:8.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.facts .v{font-family:var(--display);font-size:21px;letter-spacing:.02em;margin-top:8px;text-transform:uppercase}

/* two-col layout */
.pjbody{display:grid;grid-template-columns:1fr 360px;gap:60px;align-items:start}
.pjmain > section{padding:56px 0;border-top:1px solid var(--rule)}
.pjmain > section:first-child{border-top:0;padding-top:0}
.pjmain h2{font-family:var(--display);font-weight:300;font-size:32px;text-transform:uppercase;
  letter-spacing:.01em;margin:0 0 26px}
.pjmain p{color:var(--txt-soft);max-width:66ch}
.pjmain p + p{margin-top:16px}

/* layouts table */
.ltable{width:100%;border-collapse:collapse;font-size:14px}
.ltable th{text-align:left;font-size:8.5px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--sand-d);font-weight:600;padding:0 14px 13px 0;border-bottom:1px solid var(--rule)}
.ltable td{padding:17px 14px 17px 0;border-bottom:1px solid var(--rule-soft);vertical-align:middle}
.ltable .ty{font-family:var(--display);font-size:18px;text-transform:uppercase;letter-spacing:.02em}
.ltable .pr{font-family:var(--display);font-size:17px}
.ltable td:last-child{text-align:right;padding-right:0}
.ltable .req{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  border:1px solid var(--brown);padding:9px 14px;display:inline-block;transition:.2s}
.ltable .req:hover{background:var(--brown);color:var(--cream)}

/* payment plan */
.plan{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.plan div{background:var(--cream);padding:26px 22px;position:relative}
.plan .pc{font-family:var(--display);font-size:34px;font-weight:300;line-height:1;color:var(--brown)}
.plan .st{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--sand-d);font-weight:600;margin-bottom:12px}
.plan .ds{font-size:12.5px;color:var(--txt-mute);margin-top:10px;line-height:1.5}
.planbar{display:flex;height:6px;margin-top:20px;border:1px solid var(--rule)}
.planbar span{display:block;background:var(--sand);border-right:1px solid var(--cream)}
.planbar span:last-child{border-right:0;background:var(--brown)}

/* amenities */
.amen{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule-soft);
  border:1px solid var(--rule-soft)}
.amen div{background:var(--cream);padding:18px 20px;font-size:13.5px;color:var(--txt-soft);
  display:flex;align-items:center;gap:11px}
.amen div::before{content:"";width:5px;height:5px;background:var(--sand-d);flex:none}

/* progress */
.prog{border:1px solid var(--rule);padding:28px 26px;background:var(--cream)}
.prog .top{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.prog .pc{font-family:var(--display);font-size:40px;font-weight:300;line-height:1}
.prog .dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--txt-mute);font-weight:600}
.prog .track{height:8px;background:var(--cream-d);margin-top:18px;border:1px solid var(--rule)}
.prog .fill{height:100%;background:var(--sand)}
.prog .ms{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}
.prog .ms div{font-size:11.5px;color:var(--txt-mute)}
.prog .ms .s{font-family:var(--display);font-size:13px;color:var(--brown);text-transform:uppercase;letter-spacing:.04em}

/* map */
.mapbox{aspect-ratio:16/8;border:1px solid var(--rule);position:relative;overflow:hidden;
  background:
    repeating-linear-gradient(0deg,rgba(62,54,46,.07) 0 1px,transparent 1px 34px),
    repeating-linear-gradient(90deg,rgba(62,54,46,.07) 0 1px,transparent 1px 34px),
    linear-gradient(150deg,var(--cream-d),#E2DACA)}
.mapbox .pin{position:absolute;left:50%;top:48%;transform:translate(-50%,-100%);text-align:center}
.mapbox .pin b{display:block;width:14px;height:14px;background:var(--brown);border-radius:50%;
  margin:0 auto 8px;box-shadow:0 0 0 6px rgba(62,54,46,.14)}
.mapbox .pin span{font-family:var(--display);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  background:var(--brown);color:var(--cream);padding:6px 11px}
.nearby{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-soft);
  border:1px solid var(--rule-soft);border-top:0}
.nearby div{background:var(--cream);padding:18px 20px}
.nearby .k{font-size:12.5px;color:var(--txt-soft)}
.nearby .v{font-family:var(--display);font-size:17px;margin-top:5px}

/* developer card */
.devcard{border:1px solid var(--rule);padding:30px 28px;display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.devcard .mark{width:64px;height:64px;background:var(--brown);color:var(--sand);flex:none;
  display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:23px;letter-spacing:.04em}
.devcard .n{font-family:var(--display);font-size:24px;text-transform:uppercase;letter-spacing:.02em}
.devcard p{margin:12px 0 0;font-size:14px}
.devstats{display:flex;gap:34px;margin-top:20px;flex-wrap:wrap}
.devstats .k{font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.devstats .v{font-family:var(--display);font-size:19px;margin-top:5px}

/* sidebar */
.pjside{position:sticky;top:calc(var(--header-h) + 78px)}
.sidecard{border:1px solid var(--rule);background:var(--white);padding:30px 28px}
.sidecard + .sidecard{margin-top:20px}
.sidecard .k{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.sidecard .v{font-family:var(--display);font-size:30px;font-weight:300;margin-top:8px;line-height:1}
.sidecard .btn{width:100%;margin-top:20px}
.sidecard .btn + .btn{margin-top:10px}
.sidecard .fine{font-size:11.5px;color:var(--txt-mute);margin-top:16px;line-height:1.55}
.sidelist{margin-top:20px;padding-top:18px;border-top:1px solid var(--rule-soft)}
.sidelist div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px}
.sidelist .k2{color:var(--txt-mute);letter-spacing:0;font-size:13px;text-transform:none;font-weight:400}
.sidelist .v2{font-family:var(--display);font-size:15px}
.advisor{display:flex;gap:16px;align-items:center;margin-top:18px}
.advisor .av{width:54px;height:66px;flex:none;display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-size:20px;color:rgba(245,241,232,.75)}
.advisor .nm{font-family:var(--display);font-size:18px;text-transform:uppercase;letter-spacing:.02em}
.advisor .rl{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--sand-d);font-weight:600;margin-top:5px}

/* sync badge */
.sync{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;color:var(--txt-mute)}
.sync i{width:6px;height:6px;border-radius:50%;background:#5C9B6B;animation:pulse 2.4s infinite}

/* mobile sticky bar */
.pjbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--brown);
  color:var(--cream);padding:12px 20px;align-items:center;gap:14px;
  box-shadow:0 -6px 24px rgba(0,0,0,.22)}
.pjbar .k{font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);font-weight:600}
.pjbar .v{font-family:var(--display);font-size:20px;line-height:1;margin-top:4px}
.pjbar .btn{margin-left:auto}

@media(max-width:1180px){
  .pjbody{grid-template-columns:1fr;gap:0}
  .pjside{position:static;margin-top:44px}
  .facts{grid-template-columns:repeat(2,1fr)}
  .plan,.nearby{grid-template-columns:repeat(2,1fr)}
  .amen{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:980px){
  .pjnav{top:0}
  .gal{grid-template-columns:1fr;height:auto}
  .gal .main{aspect-ratio:16/10}
  .gal .side{grid-template-rows:none;grid-template-columns:1fr 1fr;height:130px}
  .pjbar{display:flex}
  body{padding-bottom:70px}
  .prog .ms{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .facts,.plan,.nearby,.amen{grid-template-columns:1fr}
  .ltable td:last-child,.ltable th:last-child{display:none}
}

/* ---- real photography ---- */
.about-media{background:url("office-portrait.jpg") center/cover no-repeat var(--brown)}

.hero-media.photo{
  background:linear-gradient(95deg,rgba(28,24,20,.93) 0%,rgba(28,24,20,.7) 46%,rgba(28,24,20,.3) 100%),
             url("office-corridor.jpg") center/cover no-repeat}
.hero-media.photo::after{content:none}

/* ============================================================
   ANIMATED HERO
   ============================================================ */
/* ============================================================
   HERO — one frame per market, 4s each, long cross-dissolve
   ============================================================ */
.hero-media{z-index:0;background:linear-gradient(168deg,#2A2420,#1F1B17 46%,#141110)}
.hero-slides{position:absolute;inset:0;overflow:hidden}
.hero-slides span{position:absolute;inset:0;display:block;
  background-size:cover;background-position:center;opacity:0;
  animation:heroFade 16s cubic-bezier(.4,0,.2,1) infinite both;
  will-change:opacity,transform;transform:scale(1.012)}
.hero-slides span:nth-child(1){animation-delay:0s}
.hero-slides span:nth-child(2){animation-delay:4s}
.hero-slides span:nth-child(3){animation-delay:8s}
.hero-slides span:nth-child(4){animation-delay:12s}
/* 1.4s dissolve, 4s hold, plus a scale drift small enough to stay invisible */
@keyframes heroFade{
  0%    {opacity:0;transform:scale(1.000)}
  8.75% {opacity:1}
  25%   {opacity:1}
  33.75%{opacity:0;transform:scale(1.028)}
  100%  {opacity:0;transform:scale(1.028)}
}

.hero-veil{position:absolute;inset:0;z-index:6;pointer-events:none;
  background:linear-gradient(96deg,rgba(20,17,14,.93) 0%,rgba(20,17,14,.84) 30%,rgba(20,17,14,.52) 62%,rgba(20,17,14,.28) 100%),
             linear-gradient(to top,rgba(20,17,14,.82) 0%,rgba(20,17,14,.06) 48%)}
.hero-sweep{position:absolute;inset:0;pointer-events:none;z-index:7;
  background:radial-gradient(52% 62% at 80% 12%,rgba(203,184,157,.13) 0%,transparent 62%)}
.hero-aura{display:none}
@media(prefers-reduced-motion:reduce){
  .hero-slides span{animation:none;opacity:0;transform:none}
  .hero-slides span:first-child{opacity:1}
}
.hero-in{max-width:980px}

.hs-1{background-image:url("hero-1.jpg")}
.hs-2{background-image:url("hero-2.jpg")}
.hs-3{background-image:url("hero-3.jpg")}
.hs-4{background-image:url("hero-4.jpg")}

/* ============================================================
   APP MOCK — My Properties
   ============================================================ */
.phone{width:100%;max-width:326px;margin:0 auto;aspect-ratio:9/18.6;background:#000;
  border:9px solid #211C18;border-radius:40px;padding:0;position:relative;overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,.45);display:flex;flex-direction:column}
.phone::before{content:"";position:absolute;top:9px;left:50%;transform:translateX(-50%);
  width:82px;height:5px;border-radius:3px;background:#2E2822;z-index:5}
.psb{display:flex;justify-content:space-between;align-items:center;padding:14px 20px 2px;
  font-size:11px;color:#fff;font-weight:600;letter-spacing:.02em}
.psb .ic{display:flex;gap:5px;align-items:center;opacity:.9}
.psb .ic i{display:block;width:13px;height:9px;background:
  linear-gradient(to top,#fff 0 100%);clip-path:polygon(0 70%,20% 70%,20% 100%,0 100%,0 70%,
  27% 45%,47% 45%,47% 100%,27% 100%,27% 45%,54% 22%,74% 22%,74% 100%,54% 100%,54% 22%,
  81% 0,100% 0,100% 100%,81% 100%)}
.psb .bat{width:20px;height:10px;border:1px solid rgba(255,255,255,.55);border-radius:2px;position:relative}
.psb .bat::after{content:"";position:absolute;left:1px;top:1px;bottom:1px;width:22%;background:#F0C245}
.pttl{display:flex;align-items:center;justify-content:center;padding:10px 20px 14px;position:relative}
.pttl h4{margin:0;font-family:var(--body);font-size:16px;font-weight:600;color:#fff;letter-spacing:-.01em}
.pttl .plus{position:absolute;right:20px;color:#fff;font-size:23px;line-height:1;font-weight:300}
.plist{flex:1;overflow:hidden;padding:0 14px;display:flex;flex-direction:column;gap:13px}
.pitem{background:#171512;border-radius:13px;overflow:hidden}
.pitem .im{height:96px;position:relative;overflow:hidden}
.pitem .im i{position:absolute;inset:0;display:block}
.pi-1{background:url("app-1.jpg") center/cover no-repeat}
.pi-2{background:url("app-2.jpg") center/cover no-repeat}
.pi-3{background:url("app-3.jpg") center/cover no-repeat}
.pitem .bd{padding:12px 14px 14px}
.pitem .nm{font-size:13.5px;color:#fff;font-weight:600;line-height:1.25;letter-spacing:-.01em}
.pitem .pr{display:flex;align-items:center;gap:10px;margin-top:11px}
.pitem .tr{flex:1;height:5px;border-radius:3px;background:rgba(255,255,255,.14);overflow:hidden}
.pitem .fi{height:100%;background:var(--sand);border-radius:3px}
.pitem .pc{font-size:11.5px;color:rgba(255,255,255,.6);font-weight:600;flex:none}
.ptabs{display:flex;border-top:1px solid rgba(255,255,255,.1);padding:10px 0 16px;background:#0A0A0A}
.ptabs div{flex:1;text-align:center;font-size:9.5px;letter-spacing:.02em;color:rgba(255,255,255,.35)}
.ptabs div.on{color:#fff}
.ptabs .gl{display:block;width:16px;height:16px;margin:0 auto 5px;opacity:.5}
.ptabs div.on .gl{opacity:1}
.phome{position:absolute;left:50%;bottom:7px;transform:translateX(-50%);width:104px;height:4px;
  border-radius:3px;background:rgba(255,255,255,.55)}

/* ---- team search ---- */
.tsearch{display:flex;align-items:center;gap:11px;border:1px solid var(--rule);background:var(--white);
  padding:13px 18px;min-width:320px;transition:border-color .2s}
.tsearch:focus-within{border-color:var(--brown)}
.tsearch svg{width:16px;height:16px;color:var(--txt-mute);flex:none}
.tsearch input{border:0;background:none;outline:none;font-family:var(--body);font-size:14.5px;
  color:var(--brown);width:100%;appearance:none}
.tsearch input::placeholder{color:var(--txt-mute)}
.tsearch input::-webkit-search-cancel-button{filter:grayscale(1);opacity:.5}
.member.hide{display:none}
.jnone,.tnone{display:none;margin:44px 0 0;text-align:center;color:var(--txt-mute);font-size:14.5px}
.jnone.on,.tnone.on{display:block}
@media(max-width:680px){.tsearch{min-width:0;width:100%}}

/* ---- offices: single HQ + reach ---- */
.offices.single{grid-template-columns:1fr 2fr;gap:60px;align-items:start}
.offices .k{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.offices.single .v{font-family:var(--display);font-size:38px;font-weight:300;letter-spacing:.01em;
  text-transform:uppercase;margin-top:12px;line-height:1}
.offices.single .a{margin-top:10px;max-width:56ch}
.offices.single .spread .a{margin-top:14px;font-size:15px;color:var(--txt-soft);line-height:1.65}
@media(max-width:980px){.offices.single{grid-template-columns:1fr;gap:34px}}

/* ============================================================
   TOP BAR — currency & language dropdowns
   ============================================================ */
.sel{position:relative}
.selbtn{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:11.5px;
  letter-spacing:.08em;color:rgba(245,241,232,.72);border:1px solid transparent;transition:.18s}
.selbtn:hover,.sel.open .selbtn{color:var(--sand);border-color:rgba(203,184,157,.28)}
.selflag{width:17px;height:12px;border:1px solid rgba(245,241,232,.22)}
.caret{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;
  border-top:4px solid currentColor;opacity:.6;transition:transform .2s}
.sel.open .caret{transform:rotate(180deg)}
.selmenu{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;z-index:200;
  background:var(--cream);border:1px solid rgba(62,54,46,.16);padding:6px 0;
  box-shadow:0 16px 40px rgba(12,10,9,.30);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s}
.sel.open .selmenu{opacity:1;visibility:visible;transform:translateY(0)}
.selmenu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 16px;
  font-size:13px;letter-spacing:.02em;color:var(--txt-soft);text-align:left;transition:.15s}
.selmenu button:hover{background:var(--cream-d);color:var(--brown)}
.selmenu button[aria-selected="true"]{color:var(--brown);font-weight:500}
.selmenu .flag-ic{width:18px;height:13px;flex:none}
@media(max-width:680px){.selmenu{min-width:160px}}

/* ============================================================
   ARTICLE
   ============================================================ */
.artwide{margin:0;background:var(--brown)}
.artwide img{width:100%;height:auto;display:block}
.artwide figcaption{max-width:var(--wrap);margin:0 auto;padding:14px var(--gut) 0;
  font-size:12px;color:var(--txt-mute);letter-spacing:.02em}
.artbody{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;align-items:start}
.artmain{max-width:70ch;font-size:17px;line-height:1.72;color:var(--txt-soft)}
.artmain > p:first-of-type{font-size:20px;line-height:1.6;color:var(--txt)}
.artmain h2{font-family:var(--display);font-weight:300;font-size:30px;text-transform:uppercase;
  letter-spacing:.01em;color:var(--txt);margin:52px 0 20px}
.artmain h3{font-family:var(--display);font-weight:400;font-size:19px;text-transform:uppercase;
  letter-spacing:.02em;color:var(--txt);margin:34px 0 12px}
.artmain p{margin:0 0 20px}
.artmain ul{margin:0 0 22px;padding:0}
.artmain li{position:relative;padding-left:22px;margin-bottom:11px}
.artmain li::before{content:"";position:absolute;left:0;top:12px;width:6px;height:1px;background:var(--sand-d)}
.artmain strong{color:var(--txt);font-weight:600}
.artmain a{border-bottom:1px solid var(--sand);color:var(--txt)}
.artmain a:hover{border-color:var(--brown)}
.pull{margin:36px 0;padding:4px 0 4px 24px;border-left:2px solid var(--sand);
  font-family:var(--display);font-weight:300;font-size:26px;line-height:1.28;
  text-transform:uppercase;letter-spacing:.01em;color:var(--txt)}
.keyfacts{border:1px solid var(--rule);background:var(--white);padding:26px 24px;margin:34px 0}
.keyfacts .t{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--sand-d);font-weight:600}
.keyfacts div.r{display:flex;justify-content:space-between;gap:16px;padding:11px 0;
  border-bottom:1px solid var(--rule-soft);font-size:14px}
.keyfacts div.r:last-child{border-bottom:0}
.keyfacts .v{font-family:var(--display);font-size:16px;color:var(--txt);flex:none}
.artmeta{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:11.5px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(245,241,232,.55);margin-top:22px}
.artmeta .cat{background:var(--sand);color:var(--brown);padding:5px 11px;font-size:9px;
  letter-spacing:.22em;font-weight:600}
.artside{position:sticky;top:calc(var(--header-h) + 28px)}
.artside .sidecard{padding:26px 24px}
.artside h4{font-family:var(--display);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  margin:0 0 16px;color:var(--sand-d);font-weight:500}
.artside .rel{display:block;padding:13px 0;border-top:1px solid var(--rule-soft);font-size:14px;
  line-height:1.45;color:var(--txt-soft);transition:.16s}
.artside .rel:first-of-type{border-top:0}
.artside .rel:hover{color:var(--brown)}
.artside .rel span{display:block;font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sand-d);font-weight:600;margin-bottom:5px}
.disclaimer{margin-top:48px;padding-top:22px;border-top:1px solid var(--rule);
  font-size:12.5px;color:var(--txt-mute);line-height:1.6}
@media(max-width:1100px){
  .artbody{grid-template-columns:1fr;gap:44px}
  .artside{position:static}
}

/* ---- booking page ---- */
.ph-book{--pic:url("hero-1.jpg")}
.bookgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:52px;align-items:start}
.bookcal{background:var(--white);border:1px solid var(--rule);overflow:hidden}
.bookfall{padding:16px 22px;border-top:1px solid var(--rule-soft);font-size:12.5px;color:var(--txt-mute)}
.bookfall a{border-bottom:1px solid var(--sand);color:var(--txt)}
.bookside{position:sticky;top:calc(var(--header-h) + 28px)}
.booklist{margin:0}
.booklist li{display:flex;gap:14px;padding:13px 0;border-top:1px solid var(--rule-soft);
  font-size:14px;color:var(--txt-soft);line-height:1.55}
.booklist li:first-child{border-top:0;padding-top:0}
.booklist span{font-family:var(--display);font-size:12px;color:var(--sand-d);font-weight:500;flex:none}
@media(max-width:1100px){
  .bookgrid{grid-template-columns:1fr;gap:40px}
  .bookside{position:static}
}

/* ---- sell page ---- */
.ph-sell{--pic:url("ph-sell.jpg")}
.sellgrid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:56px;align-items:start}
.sellform{background:var(--white);border:1px solid var(--rule);padding:40px 38px}
.fset{border:0;margin:0 0 38px;padding:0}
.fset:last-of-type{margin-bottom:0}
.fset legend{font-family:var(--display);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sand-d);font-weight:500;padding:0 0 18px;width:100%;border-bottom:1px solid var(--rule);margin-bottom:24px}
.fset legend span{font-family:var(--body);font-size:11px;letter-spacing:.02em;text-transform:none;
  color:var(--txt-mute);font-weight:400;margin-left:10px}
.frow{display:grid;gap:20px;margin-bottom:22px}
.frow.two{grid-template-columns:1fr 1fr}
.frow.three{grid-template-columns:1fr 1fr 1fr}
.frow:last-child{margin-bottom:0}
.sellform label{display:block;font-size:9px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--sand-d);font-weight:600;margin-bottom:8px}
.sellform input,.sellform select,.sellform textarea{width:100%;padding:12px 0;background:none;border:0;
  border-bottom:1px solid var(--rule);color:var(--brown);font-family:var(--body);font-size:15px;outline:none;
  transition:border-color .2s}
.sellform select{font-family:var(--body)}
.sellform textarea{resize:vertical;min-height:96px}
.sellform input:focus,.sellform select:focus,.sellform textarea:focus{border-color:var(--brown)}
.sellform input::placeholder,.sellform textarea::placeholder{color:var(--txt-mute)}
.pillrow{display:flex;gap:8px;flex-wrap:wrap}
.pillrow input{display:none}
.pillrow label{margin:0;padding:10px 16px;border:1px solid var(--rule);cursor:pointer;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--txt-soft);
  transition:.18s;letter-spacing:.1em}
.pillrow input:checked + label{background:var(--brown);color:var(--cream);border-color:var(--brown)}
.pillrow label:hover{border-color:var(--sand-d)}
.withunit{display:flex;align-items:baseline;gap:10px}
.withunit select{width:auto;flex:none;font-family:var(--display);font-size:15px;color:var(--sand-d)}
.sellform .btn{width:100%;margin-top:34px}
.sellform .fine{font-size:11.5px;color:var(--txt-mute);margin-top:16px;line-height:1.55}
.sellside{position:sticky;top:calc(var(--header-h) + 28px)}
.steplist{margin:0}
.steplist li{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--rule-soft);
  font-size:14px;color:var(--txt-soft);line-height:1.55}
.steplist li:first-child{border-top:0;padding-top:0}
.steplist span{font-family:var(--display);font-size:12px;color:var(--sand-d);font-weight:500;flex:none}
@media(max-width:1100px){.sellgrid{grid-template-columns:1fr;gap:44px}.sellside{position:static}}
@media(max-width:680px){.frow.two,.frow.three{grid-template-columns:1fr}.sellform{padding:30px 24px}}

/* ---- file upload ---- */
.upl{border:1px dashed var(--rule);background:var(--cream);padding:38px 26px 34px;text-align:center;
  transition:.2s;display:block}
.upl .btn{margin-top:22px;padding:13px 32px;width:auto}
.upl:hover,.upl.over{border-color:var(--sand-d);background:var(--cream-d)}
.upl.over{border-style:solid}
.upl input[type=file]{display:none}
.upl .ic{width:30px;height:30px;margin:0 auto 14px;display:block;color:var(--sand-d)}
.upl .t{font-family:var(--display);font-size:16px;text-transform:uppercase;letter-spacing:.03em;color:var(--brown)}
.upl .s{font-size:12.5px;color:var(--txt-mute);margin-top:8px;line-height:1.55}
.upl .s b{color:var(--txt-soft);font-weight:500}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px;margin-top:18px}
.thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--cream-d);
  border:1px solid var(--rule-soft)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb .x{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;
  background:rgba(20,17,14,.72);color:var(--cream);font-size:14px;line-height:20px;text-align:center;
  cursor:pointer;transition:.16s;padding:0}
.thumb .x:hover{background:var(--brown)}
.thumb .nm{position:absolute;left:0;right:0;bottom:0;background:rgba(20,17,14,.66);color:var(--cream);
  font-size:9px;letter-spacing:.04em;padding:5px 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filemeta{display:flex;justify-content:space-between;gap:14px;margin-top:14px;font-size:12px;
  color:var(--txt-mute);flex-wrap:wrap}
.filemeta button{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:var(--txt-soft);border-bottom:1px solid var(--rule)}
.filemeta button:hover{color:var(--brown);border-color:var(--brown)}
.filewarn{color:#A8452F;margin-top:10px;font-size:12.5px;display:none}
.filewarn.on{display:block}

/* ============================================================================
   Catalogue dynamique, fiche projet et pages legales — ajouts v2
   ========================================================================== */

/* --- selecteur de langue : les entrees sont des liens --- */
.selmenu a{display:flex;align-items:center;gap:10px;width:100%;padding:9px 16px;
  font-size:12.5px;color:var(--txt-soft);background:none;border:0;text-align:left;
  cursor:pointer;transition:.18s;text-decoration:none}
.selmenu a:hover{background:var(--cream-d);color:var(--brown)}
.selmenu a[aria-current="true"]{color:var(--brown);font-weight:500}

/* --- etats du catalogue (chargement, vide, erreur) --- */
.catstate{display:none;padding:44px 0;text-align:center;color:var(--txt-mute);
  font-size:14px;line-height:1.6}
.catstate.on{display:block}
.catstate a{color:var(--brown);text-decoration:underline;text-underline-offset:3px}
.catfoot{gap:14px;flex-wrap:wrap}

/* --- squelette de chargement des cartes --- */
@keyframes brpulse{0%,100%{opacity:.55}50%{opacity:.85}}
.pcard.skel{pointer-events:none;animation:brpulse 1.4s ease-in-out infinite}

/* --- tableau des typologies sur la fiche projet --- */
.ptab{width:100%;border-collapse:collapse;margin-top:8px;font-size:13.5px}
.ptab th{text-align:left;font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sand-d);font-weight:600;padding:0 14px 12px 0;border-bottom:1px solid var(--rule)}
.ptab td{padding:14px 14px 14px 0;border-bottom:1px solid var(--rule-soft);color:var(--txt-soft)}
.ptab tr:last-child td{border-bottom:0}
@media(max-width:640px){.ptab{font-size:12.5px}.ptab th,.ptab td{padding-right:8px}}

/* --- projets voisins dans la colonne de droite --- */
.simlink{display:block;padding:13px 0;border-bottom:1px solid var(--rule-soft);text-decoration:none}
.simlink:last-child{border-bottom:0}
.simlink b{display:block;font-size:13.5px;color:var(--brown);font-weight:500}
.simlink span{display:block;font-size:11.5px;color:var(--txt-mute);margin-top:3px}
.simlink:hover b{text-decoration:underline;text-underline-offset:3px}

/* --- pages legales --- */
.legal{max-width:74ch}
.legal h2{font-family:var(--display);font-weight:300;font-size:26px;text-transform:uppercase;
  letter-spacing:.03em;margin:44px 0 16px}
.legal h2:first-child{margin-top:0}
.legal p{color:var(--txt-soft);line-height:1.75;margin-bottom:14px}
.legal a{color:var(--brown);text-decoration:underline;text-underline-offset:3px}

/* --- bandeau langue disponible (articles non encore traduits) --- */
.langnote{background:var(--sand);color:var(--brown);font-size:12.5px;text-align:center;
  padding:11px 20px;line-height:1.5}
.langnote a{color:var(--brown);font-weight:600;text-decoration:underline;text-underline-offset:3px}


/* ============================================================================
   Visionneuse plein ecran de la galerie projet
   ========================================================================== */
.gal.cliquable .main,
.gal.cliquable .side > span{cursor:zoom-in}
.gal.cliquable .main:focus-visible,
.gal.cliquable .side > span:focus-visible{outline:2px solid var(--sand);outline-offset:3px}

.lb{position:fixed;inset:0;z-index:1000;background:rgba(20,17,14,.94);
  display:flex;align-items:center;justify-content:center;padding:56px 72px;
  animation:lb-in .18s ease-out}
@keyframes lb-in{from{opacity:0}to{opacity:1}}
.lb img{max-width:100%;max-height:100%;object-fit:contain;cursor:pointer;
  box-shadow:0 30px 90px rgba(0,0,0,.5)}
.lb button{position:absolute;background:rgba(245,241,232,.10);border:1px solid rgba(245,241,232,.22);
  color:var(--cream);cursor:pointer;transition:.18s;line-height:1;
  display:flex;align-items:center;justify-content:center}
.lb button:hover{background:rgba(245,241,232,.22);border-color:rgba(245,241,232,.5)}
.lb-x{top:18px;right:18px;width:44px;height:44px;font-size:26px}
.lb-p,.lb-n{top:50%;transform:translateY(-50%);width:52px;height:78px;font-size:34px}
.lb-p{left:14px}
.lb-n{right:14px}
.lb-c{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  color:rgba(245,241,232,.72);font-size:11.5px;letter-spacing:.18em;
  background:rgba(20,17,14,.6);padding:7px 16px}
@media(max-width:680px){
  .lb{padding:56px 12px}
  .lb-p,.lb-n{width:42px;height:62px;font-size:26px}
  .lb-p{left:4px}
  .lb-n{right:4px}
}


/* --- Champ appat des formulaires -------------------------------------------
   Hors ecran plutot que display:none : certains robots ignorent les champs
   masques par le style, mais remplissent tout ce qui existe dans le DOM. */
.piege{position:absolute!important;left:-9999px!important;width:1px!important;
  height:1px!important;opacity:0!important;pointer-events:none}

/* --- Retour d'envoi --------------------------------------------------------- */
.fmsg{display:none;margin:18px 0 0;padding:14px 18px;font-size:13.5px;line-height:1.55}
.fmsg.on{display:block}
.fmsg.ok{background:rgba(203,184,157,.22);border-left:3px solid var(--sand-d);color:var(--brown)}
.fmsg.ko{background:rgba(190,80,60,.10);border-left:3px solid #b4553f;color:#8c3a29}
.champ-en-faute{border-color:#b4553f!important}
