
:root{
  --primary:#6B3D7A; --accent:#8A9DC4; --bg:#FAF5F7; --surface:#F0E8F0;
  --text-heading:#2A1F3D; --text-body:#5A4A6A; --text-subtle:#8A7A9A;
  --border:#DDD0E8; --success:#4A6B58; --error:#A32D2D;
  --r-sm:6px; --r-md:12px; --r-lg:16px; --r-pill:100px;
  --btn-shadow:0 6px 18px rgba(107,61,122,0.22);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{overflow-x:hidden; width:100%;}
body{
  background:var(--bg); color:var(--text-body);
  font-family:'Inter',-apple-system,sans-serif; font-weight:400;
  line-height:1.6; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{ font-family:'Playfair Display', Georgia, serif; color:var(--text-heading); font-weight:500; line-height:1.2; text-wrap:pretty;}
p{text-wrap:pretty;}
a{color:var(--primary); text-decoration:none;}
a:hover{color:#54305F;}
img{max-width:100%; height:auto; display:block;}

main, .content, .page-content, article, section {
  padding-left: max(16px, env(safe-area-inset-left));
  padding-right: max(16px, env(safe-area-inset-right));
  box-sizing: border-box;
}

.wrap{max-width:1160px; margin:0 auto; padding:0 32px;}

/* Nav */
.site-nav{
  position:sticky; top:0; z-index:100;
  border-bottom:1px solid var(--border);
}
.site-nav::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(250,245,247,0.92); backdrop-filter:saturate(180%) blur(10px);
}
.site-nav .wrap{display:flex; align-items:center; justify-content:space-between; height:84px;}
.wordmark{font-family:'Playfair Display',serif; font-size:24px; font-weight:500; color:var(--text-heading); letter-spacing:0.01em;}
.nav-links{display:flex; align-items:center; gap:32px; list-style:none;}
.nav-links a{font-size:14px; font-weight:500; color:var(--text-body); letter-spacing:0.02em;}
.nav-links a:hover{color:var(--primary);}
.nav-cta{
  background:var(--primary); color:#fff !important; padding:12px 26px; border-radius:var(--r-pill);
  font-size:14px; font-weight:600; box-shadow:var(--btn-shadow); white-space:nowrap;
}
.nav-cta:hover{background:#5A3268; color:#fff !important;}
.nav-toggle{display:none;}

@media (max-width:860px){
  .nav-links{
    position:fixed; inset:84px 0 0 0; background:var(--bg); flex-direction:column;
    padding:40px 32px; gap:24px; transform:translateX(100%); transition:transform .3s ease;
    overflow-y:auto;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-toggle{
    display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; background:none; border:none; cursor:pointer; padding:10px; width:44px; height:44px; z-index:200;
  }
  .nav-toggle span{width:24px; height:2px; background:var(--text-heading); border-radius:2px;}
}

/* Footer */
.site-footer{background:var(--surface); border-top:1px solid var(--border); margin-top:120px;}
.footer-top{
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:48px; padding:64px 0 48px;
}
.footer-brand .wordmark{margin-bottom:14px; display:block;}
.footer-tagline{color:var(--text-subtle); font-size:14px; max-width:280px;}
.footer-col h4{font-size:13px; text-transform:uppercase; letter-spacing:0.08em; font-family:'Inter',sans-serif; font-weight:600; color:var(--text-subtle); margin-bottom:16px;}
.footer-col ul{list-style:none; display:flex; flex-direction:column; gap:11px;}
.footer-col a{font-size:14px; color:var(--text-body);}
.footer-col a:hover{color:var(--primary);}
.badges{display:flex; gap:10px; margin-top:18px;}
.badge{
  display:flex; align-items:center; gap:6px; background:var(--text-heading); color:#fff;
  padding:8px 14px; border-radius:var(--r-sm); font-size:11px; font-weight:500;
}
.footer-bottom{
  border-top:1px solid var(--border); padding:24px 0 40px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  font-size:13px; color:var(--text-subtle);
}
.footer-bottom a{color:var(--text-subtle);}
.footer-bottom a:hover{color:var(--primary);}
@media (max-width:760px){
  .footer-top{grid-template-columns:1fr; gap:36px;}
}

/* Responsive grids used on marketing sections (e.g. index.html hero/why) */
@media (max-width:760px){
  .wrap[style*="grid-template-columns:1.1fr 0.9fr"],
  .wrap[style*="grid-template-columns:0.9fr 1.1fr"],
  .wrap[style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns:1fr !important;
  }
  .wrap[style*="grid-template-columns:1.1fr 0.9fr"] img,
  .wrap[style*="grid-template-columns:0.9fr 1.1fr"] img{
    height:auto !important;
    aspect-ratio:4/3;
  }
}

/* Legal page shared */
.legal-hero{padding:88px 0 48px; border-bottom:1px solid var(--border);}
.legal-hero .eyebrow{font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent); font-weight:600; margin-bottom:16px;}
.legal-hero h1{font-size:clamp(36px,5vw,54px);}
.legal-meta{margin-top:20px; font-size:14px; color:var(--text-subtle);}
.legal-body{padding-top:56px; padding-bottom:40px; max-width:760px;}
.legal-body h2{font-size:26px; margin:48px 0 16px;}
.legal-body h2:first-child{margin-top:0;}
.legal-body h3{font-size:19px; color:var(--text-heading); margin:28px 0 10px; font-family:'Inter',sans-serif; font-weight:600;}
.legal-body p{margin-bottom:16px; font-size:16px;}
.legal-body ul,.legal-body ol{margin:0 0 16px 22px;}
.legal-body li{margin-bottom:8px; font-size:16px;}
.legal-body strong{color:var(--text-heading); font-weight:600;}
.legal-toc{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg);
  padding:28px 32px; margin:40px 0;
}
.legal-toc h4{font-family:'Inter',sans-serif; font-size:13px; text-transform:uppercase; letter-spacing:0.06em; color:var(--text-subtle); margin-bottom:14px; font-weight:600;}
.legal-toc ol{margin-left:18px; columns:2; column-gap:24px;}
.legal-toc a{font-size:14px;}
.contact-card{
  background:#fff; border:1px solid var(--border); border-radius:var(--r-md); padding:28px 32px; margin:24px 0;
}
table.legal-table{width:100%; border-collapse:collapse; margin:24px 0; font-size:14px;}
table.legal-table th,table.legal-table td{text-align:left; padding:12px 16px; border-bottom:1px solid var(--border);}
table.legal-table th{color:var(--text-subtle); font-weight:600; text-transform:uppercase; font-size:12px; letter-spacing:0.05em;}
