/* ============================================================
   MEDIVEXA LABS — LEGAL PAGES (shared)
   Used by terms-conditions.aspx, privacy-policy.aspx and
   refund-policy.aspx. Loaded after style.css. All three pages
   share this one template: a simple hero, a sticky table-of-
   contents sidebar (built by legal.js from the h2s in the page),
   and a prose column. No new hex values — shared tokens only.
   ============================================================ */

/* ============ HERO ============ */
.legal-hero{
  position:relative;padding:64px 0 56px;background:var(--tint);
  border-bottom:1px solid var(--line);overflow:hidden;
}
.legal-hero .ph-deco{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.legal-hero .ph-ring{
  position:absolute;top:-260px;right:-180px;width:620px;height:620px;
  border-radius:50%;border:1px dashed rgba(73,66,225,.16);
  animation:ringSpinLegal 60s linear infinite;
}
@keyframes ringSpinLegal{to{transform:rotate(360deg)}}
.legal-hero .container{position:relative;z-index:1;max-width:900px}
.crumb{display:flex;align-items:center;gap:8px;margin-bottom:22px;
  font-family:var(--fm);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}
.crumb a{color:var(--violet)}
.crumb a:hover{text-decoration:underline;text-underline-offset:3px}
.crumb svg{opacity:.5}
.legal-hero h1{
  font-size:clamp(2rem,3.6vw,2.8rem);font-weight:700;letter-spacing:-.025em;
  line-height:1.16;margin:18px 0 14px;text-wrap:balance;
}
.legal-intro{color:var(--ink2);font-size:1.02rem;line-height:1.75;max-width:640px}
.legal-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.lm-chip{
  display:inline-flex;align-items:center;gap:7px;padding:.55rem 1rem;border-radius:999px;
  background:#fff;border:1px solid var(--line);
  font-family:var(--fm);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);
}
.lm-chip svg{color:var(--violet);flex-shrink:0}
.lm-chip b{color:var(--ink);font-weight:600;text-transform:none;letter-spacing:0;font-family:var(--fb);font-size:.78rem}

/* ============ BODY LAYOUT ============ */
.legal-body{padding:88px 0 100px;background:#fff}
.legal-body .container{max-width:1140px}
.legal-layout{display:grid;grid-template-columns:.3fr 1fr;gap:56px;align-items:start}

/* ---- TOC sidebar ---- */
.legal-toc{position:sticky;top:104px;display:flex;flex-direction:column;gap:20px}
.lt-card{
  background:#fff;border:1px solid #EDEAF8;border-radius:var(--r-md);padding:1.4rem 1.3rem;
  box-shadow:var(--sh-card);
}
.lt-label{display:block;font-family:var(--fm);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px}
#tocList{list-style:none;display:flex;flex-direction:column;gap:2px}
#tocList a{
  display:block;padding:.5rem .65rem;border-radius:9px;font-size:.85rem;color:var(--ink2);
  line-height:1.4;transition:.25s;
}
#tocList a:hover{background:var(--tint);color:var(--ink)}
#tocList a.active{background:var(--grad-soft);color:var(--violet);font-weight:600}

.legal-help{
  background:linear-gradient(158deg,#171034 0%,#2A2178 46%,#4F46CC 100%);
  color:#fff;border-radius:22px;padding:1.6rem 1.5rem;position:relative;overflow:hidden;
  box-shadow:0 30px 60px -28px rgba(26,21,51,.32);
}
.legal-help::before{
  content:"";position:absolute;top:-110px;right:-90px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(204,95,246,.5),transparent 68%);
}
.legal-help>*{position:relative;z-index:1}
.legal-help b{display:block;font-family:var(--fd);font-size:1rem;font-weight:600;margin-bottom:8px}
.legal-help p{font-size:.82rem;line-height:1.65;color:rgba(255,255,255,.75);margin-bottom:16px}
.legal-help .btn{width:100%;background:#fff;color:var(--indigo);box-shadow:none}
.legal-help .btn::after{display:none}
.legal-help .btn:hover{box-shadow:0 16px 32px -12px rgba(0,0,0,.45)}

/* ---- prose content (same language as .post-content) ---- */
.legal-content{font-size:1.02rem;line-height:1.85;color:var(--ink2)}
.legal-content h2{
  font-family:var(--fd);font-size:1.35rem;font-weight:600;color:var(--ink);
  margin:44px 0 16px;letter-spacing:-.01em;scroll-margin-top:112px;
}
.legal-content h2:first-child{margin-top:0}
.legal-content h3{font-family:var(--fd);font-size:1.05rem;font-weight:600;color:var(--ink);margin:26px 0 10px;scroll-margin-top:112px}
.legal-content p{margin-bottom:18px}
.legal-content ul{margin:0 0 22px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.legal-content ul li{position:relative;padding-left:28px;font-size:.96rem;line-height:1.65}
.legal-content ul li::before{
  content:"";position:absolute;left:0;top:.5em;width:14px;height:14px;border-radius:5px;background:var(--grad-soft);
}
.legal-content ul li::after{
  content:"";position:absolute;left:4.5px;top:.7em;width:5px;height:5px;border-radius:50%;background:var(--violet);
}
.legal-content ol{margin:0 0 22px;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.legal-content ol li{font-size:.96rem;line-height:1.65;padding-left:6px}
.legal-content strong{color:var(--ink);font-weight:600}
.legal-content a{color:var(--indigo);text-decoration:underline;text-underline-offset:3px}
.legal-content table{width:100%;border-collapse:collapse;margin:0 0 26px;font-size:.9rem}
.legal-content th,.legal-content td{padding:.7rem .9rem;border:1px solid var(--line);text-align:left;vertical-align:top}
.legal-content th{background:var(--tint);font-family:var(--fd);font-weight:600;color:var(--ink)}

/* ---- callouts ---- */
.legal-callout{
  display:flex;gap:14px;align-items:flex-start;background:var(--tint);border:1px solid var(--line);
  border-left:3px solid var(--indigo);border-radius:var(--r-md);padding:1.3rem 1.4rem;margin:0 0 26px;
}
.legal-callout.warn{border-left-color:var(--danger);background:#FDF1F3;border-color:#F6D9DF}
.legal-callout.success{border-left-color:var(--success);background:#EDFAF2;border-color:#CFEEDA}
.lc-ico{flex-shrink:0;color:var(--indigo);margin-top:.1em}
.legal-callout.warn .lc-ico{color:var(--danger)}
.legal-callout.success .lc-ico{color:var(--success)}
.legal-callout p{margin:0;font-size:.94rem;color:var(--ink2);line-height:1.7}
.legal-callout b{color:var(--ink)}

/* ---- inline definition list (used for "what we collect" / "what's not covered" tables) ---- */
.legal-content .lc-title{font-family:var(--fd);font-weight:600;color:var(--ink);margin-bottom:4px;display:block}

/* ============ RESPONSIVE ============ */
@media(max-width:1080px){
  .legal-layout{grid-template-columns:1fr;gap:36px}
  .legal-toc{position:static;flex-direction:row;flex-wrap:wrap}
  .lt-card{flex:1 1 260px}
  .legal-help{flex:1 1 260px}
}
@media(max-width:640px){
  .legal-hero{padding:44px 0 40px}
  .legal-meta{gap:8px}
  .legal-body{padding:64px 0 70px}
  .legal-toc{flex-direction:column}
  .legal-content h2{margin:34px 0 14px;font-size:1.18rem}
  .legal-callout{flex-direction:column;gap:8px}
}
