:root{
  --ri-bg:#f4f6f9;
  --ri-panel:#fff;
  --ri-text:#14233f;
  --ri-heading:#17355f;
  --ri-muted:#65758b;
  --ri-line:#dce4ee;
  --ri-line-soft:#e9eef4;
  --ri-brand:#2f66ad;
  --ri-brand-dark:#24558f;
  --ri-nav:#101f3d;
  --ri-soft:#f7f9fc;
  --ri-warn:#8a4b00;
  --ri-warn-bg:#fff8e8;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--ri-bg);
  color:var(--ri-text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  font-size:15px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--ri-brand);text-underline-offset:2px}
a:hover{color:var(--ri-brand-dark)}

.ri-legal-topbar{
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:12px clamp(18px,4.5vw,58px);
  background:var(--ri-nav);
  border-bottom:1px solid rgba(255,255,255,.08);
  color:#fff;
}
.ri-legal-brand{
  display:flex!important;
  align-items:center!important;
  gap:11px!important;
  flex:0 0 auto!important;
  color:#fff!important;
  text-decoration:none!important;
}
.ri-legal-brand .ri-legal-brand-mark{
  display:block!important;
  width:40px!important;
  height:44px!important;
  min-width:40px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent url("relaisimmo-symbol-topbar.png") no-repeat center/contain!important;
  color:transparent!important;
  font-size:0!important;
}
.ri-legal-brand>span:last-child{
  display:block!important;
  color:#fff!important;
  font-size:17px!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
  line-height:1.04!important;
}
.ri-legal-brand small{
  display:block!important;
  margin-top:4px!important;
  color:#d9e6ff!important;
  font-size:8px!important;
  font-weight:800!important;
  letter-spacing:.10em!important;
  line-height:1.15!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
.ri-legal-back{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  color:#f4f7fc;
  font-size:12px;
  font-weight:750;
  text-decoration:none;
  white-space:nowrap;
}
.ri-legal-back:hover{
  background:rgba(255,255,255,.07);
  color:#fff;
}

.ri-legal-nav{
  display:flex;
  align-items:stretch;
  gap:4px;
  padding:0 clamp(18px,4.5vw,58px);
  overflow-x:auto;
  background:#fff;
  border-bottom:1px solid var(--ri-line);
  scrollbar-width:thin;
  scrollbar-color:#c8d2df transparent;
}
.ri-legal-nav a{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:0 12px;
  border-bottom:2px solid transparent;
  color:#63738a;
  font-size:12px;
  font-weight:760;
  text-decoration:none;
  white-space:nowrap;
}
.ri-legal-nav a:hover{color:var(--ri-brand)}
.ri-legal-nav a.active{
  color:var(--ri-brand);
  border-bottom-color:var(--ri-brand);
}

.ri-legal-main{
  width:100%;
  padding:30px 18px 52px;
}
.ri-legal-document{
  width:min(100%,980px);
  margin:0 auto;
  overflow:hidden;
  background:var(--ri-panel);
  border:1px solid var(--ri-line);
  border-radius:14px;
}
.ri-legal-heading{
  padding:28px clamp(24px,4vw,42px) 26px;
  background:#fff;
  border-bottom:1px solid var(--ri-line);
}
.ri-legal-heading>span{
  display:block;
  margin-bottom:6px;
  color:#8190a5;
  font-size:10px;
  font-weight:800;
  letter-spacing:.085em;
  text-transform:uppercase;
}
.ri-legal-heading h1{
  margin:0;
  max-width:820px;
  color:var(--ri-heading);
  font-size:clamp(27px,4vw,36px);
  line-height:1.12;
  letter-spacing:-.035em;
}
.ri-legal-heading p{
  margin:10px 0 0;
  max-width:760px;
  color:var(--ri-muted);
  font-size:14px;
  line-height:1.55;
}

.ri-legal-document section{
  padding:24px clamp(24px,4vw,42px);
  border-bottom:1px solid var(--ri-line-soft);
}
.ri-legal-document section:last-child{border-bottom:0}
.ri-legal-document h2{
  margin:0 0 10px;
  color:var(--ri-heading);
  font-size:19px;
  line-height:1.3;
  letter-spacing:-.018em;
}
.ri-legal-document p,
.ri-legal-document ul,
.ri-legal-document ol{
  max-width:80ch;
  color:#52627a;
}
.ri-legal-document p{margin:8px 0}
.ri-legal-document ul,
.ri-legal-document ol{
  margin:11px 0;
  padding-left:22px;
}
.ri-legal-document li{margin:6px 0}
.ri-legal-document strong{color:#293c59}
.ri-legal-document code{
  padding:2px 5px;
  border-radius:5px;
  background:#eef2f6;
  color:#34445d;
  font-size:.92em;
}

.ri-legal-details{
  display:grid;
  gap:0;
  margin:15px 0 4px;
  overflow:hidden;
  border:1px solid var(--ri-line);
  border-radius:10px;
  background:#fff;
}
.ri-legal-details div{
  display:grid;
  grid-template-columns:minmax(170px,.4fr) minmax(0,1fr);
  gap:18px;
  padding:11px 13px;
  border-bottom:1px solid var(--ri-line-soft);
}
.ri-legal-details div:last-child{border-bottom:0}
.ri-legal-details dt{
  color:#738198;
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.ri-legal-details dd{
  min-width:0;
  margin:0;
  color:#334761;
  font-weight:650;
  overflow-wrap:anywhere;
}

.ri-legal-table-wrap{
  width:100%;
  margin:15px 0 4px;
  overflow-x:auto;
  border:1px solid var(--ri-line);
  border-radius:10px;
  background:#fff;
  -webkit-overflow-scrolling:touch;
}
.ri-legal-table{
  width:100%;
  min-width:640px;
  border-collapse:collapse;
}
.ri-legal-table th,
.ri-legal-table td{
  padding:11px 13px;
  border-bottom:1px solid var(--ri-line-soft);
  color:#52627a;
  text-align:left;
  vertical-align:top;
}
.ri-legal-table th{
  background:#f8fafc;
  color:#6d7d93;
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.ri-legal-table tr:last-child td{border-bottom:0}

.ri-legal-warning{
  margin-top:16px;
  padding:12px 14px;
  border:1px solid #efc470;
  border-radius:9px;
  background:var(--ri-warn-bg);
  color:var(--ri-warn);
}
.ri-legal-missing{
  display:inline-block;
  padding:2px 6px;
  border:1px solid #f3cba7;
  border-radius:6px;
  background:#fff4e8;
  color:#984d18;
}
.ri-legal-contact-button{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:8px 13px;
  border:1px solid var(--ri-brand);
  border-radius:8px;
  background:var(--ri-brand);
  color:#fff!important;
  font-weight:760;
  text-decoration:none;
}
.ri-legal-contact-button:hover{
  border-color:var(--ri-brand-dark);
  background:var(--ri-brand-dark);
}

.ri-legal-footer{
  padding:22px 18px 32px;
  color:#7c899b;
  font-size:12px;
  text-align:center;
}
.ri-legal-footer p{margin:0 0 9px}
.ri-legal-footer nav{
  display:flex;
  justify-content:center;
  gap:7px 15px;
  flex-wrap:wrap;
}
.ri-legal-footer a{color:#5f6d81}

@media(max-width:760px){
  .ri-legal-topbar{
    min-height:64px;
    padding:10px 14px;
    gap:10px;
  }
  .ri-legal-brand{gap:8px!important}
  .ri-legal-brand .ri-legal-brand-mark{
    width:35px!important;
    height:38px!important;
    min-width:35px!important;
  }
  .ri-legal-brand>span:last-child{font-size:15px!important}
  .ri-legal-brand small{display:none!important}
  .ri-legal-back{
    min-height:34px;
    padding:6px 8px;
    font-size:11px;
  }

  .ri-legal-nav{
    padding:0 8px;
    gap:0;
  }
  .ri-legal-nav a{
    min-height:42px;
    padding:0 10px;
    font-size:11px;
  }

  .ri-legal-main{padding:16px 10px 34px}
  .ri-legal-document{
    border-radius:11px;
  }
  .ri-legal-heading{padding:22px 18px 20px}
  .ri-legal-heading h1{
    font-size:27px;
    line-height:1.14;
  }
  .ri-legal-heading p{
    font-size:13px;
    line-height:1.5;
  }
  .ri-legal-document section{padding:20px 18px}
  .ri-legal-document h2{font-size:18px}
  .ri-legal-document p,
  .ri-legal-document ul,
  .ri-legal-document ol{
    font-size:14px;
    line-height:1.6;
  }
  .ri-legal-details div{
    grid-template-columns:1fr;
    gap:3px;
    padding:10px 11px;
  }
  .ri-legal-details dt{font-size:9px}
  .ri-legal-table{min-width:600px}

  .ri-legal-footer{
    padding:18px 14px 26px;
  }
  .ri-legal-footer nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 12px;
    max-width:380px;
    margin:0 auto;
  }
  .ri-legal-footer a{
    display:block;
    padding:4px 0;
  }
}

@media(max-width:420px){
  .ri-legal-back{font-size:0}
  .ri-legal-back::after{
    content:"Retour";
    font-size:11px;
  }
  .ri-legal-heading h1{font-size:24px}
  .ri-legal-document section{padding:18px 16px}
  .ri-legal-table{min-width:560px}
  .ri-legal-contact-button{
    width:100%;
    justify-content:center;
    text-align:center;
    overflow-wrap:anywhere;
  }
  .ri-legal-footer nav{grid-template-columns:1fr 1fr}
}
