/* ===== Belenor — understated luxury advisory ===== */

:root{
  --bg:#3D2C2E;          /* dark mauve */
  --bg-deep:#2F2122;     /* deeper band */
  --bg-card:#4A373A;     /* raised dark surface */
  --bg-card-2:#523E41;
  --cream:#F3E9E0;       /* ink / light text */
  --cream-soft:rgba(243,233,224,0.74);
  --cream-faint:rgba(243,233,224,0.52);
  --light:#F6EEE5;       /* light band bg */
  --light-2:#EFE4D7;
  --dark-ink:#3A2A2C;    /* text on light */
  --dark-soft:rgba(58,42,44,0.72);
  --gold:#C7A15A;
  --gold-bright:#D9B977;
  --line-dark:rgba(243,233,224,0.14);
  --line-light:rgba(58,42,44,0.14);
  --shell:1120px;
  --r:14px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--bg);
  color:var(--cream);
  font-family:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.7;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

h1,h2,h3,blockquote{
  font-family:"Cormorant",Georgia,"Times New Roman",serif;
  font-weight:500;
  line-height:1.08;
  letter-spacing:.005em;
  margin:0;
}
h1 em,blockquote{font-style:italic;}

.shell{width:100%;max-width:var(--shell);margin:0 auto;padding:0 28px;}

.skip{
  position:absolute;left:-999px;top:0;background:var(--gold);color:#2b1f20;
  padding:10px 16px;border-radius:0 0 8px 0;z-index:200;
}
.skip:focus{left:0;}

.kicker{
  font-size:12px;letter-spacing:.32em;text-transform:uppercase;
  font-weight:500;color:var(--gold);margin:0 0 18px;
}
.kicker-dark{color:#9a6b2f;}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:18px 0;
  transition:padding .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:rgba(47,33,34,0.86);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  padding:11px 0;
  border-bottom:1px solid var(--line-dark);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-mark{width:40px;height:40px;border-radius:9px;object-fit:cover;box-shadow:0 2px 14px rgba(0,0,0,.3);}
.brand-name{
  font-family:"Cormorant",serif;font-size:26px;font-weight:600;
  letter-spacing:.06em;color:var(--cream);
}
.primary-nav{display:flex;align-items:center;gap:30px;}
.primary-nav a{
  font-size:13.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cream-soft);font-weight:400;transition:color .2s var(--ease);
}
.nav-cta{
  border:1px solid var(--gold);color:var(--gold)!important;
  padding:9px 18px;border-radius:999px;
  transition:background .25s var(--ease),color .25s var(--ease)!important;
}

.nav-toggle{
  display:none;background:none;border:0;cursor:pointer;
  width:42px;height:42px;padding:9px;flex-direction:column;justify-content:space-between;
}
.nav-toggle span{display:block;height:2px;background:var(--cream);border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease);}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:188px 0 110px;
  background:
    radial-gradient(1100px 620px at 78% 18%, rgba(199,161,90,0.16), transparent 62%),
    linear-gradient(180deg,#352527 0%, var(--bg) 46%, var(--bg-deep) 100%);
  overflow:hidden;
}
.hero-grain{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(243,233,224,0.05) 1px,transparent 1.4px);
  background-size:4px 4px;
}
.hero-inner{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center;
}
.hero-copy{max-width:600px;}
.hero h1{
  font-size:clamp(3.4rem,8vw,6rem);
  margin:4px 0 26px;color:var(--cream);
}
.hero h1 em{color:var(--gold-bright);}
.lede{font-size:clamp(1.05rem,1.6vw,1.2rem);color:var(--cream-soft);max-width:48ch;margin:0 0 34px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;}

.btn{
  display:inline-block;font-family:"Jost",sans-serif;
  font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;
  padding:14px 26px;border-radius:999px;cursor:pointer;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}
.btn-gold{background:var(--gold);color:#2b1f20;box-shadow:0 10px 30px rgba(199,161,90,.22);}
.btn-ghost{border:1px solid var(--line-dark);color:var(--cream);}
.btn-lg{font-size:15px;padding:17px 34px;}

/* Hero art — faceted diamond */
.hero-art{display:flex;justify-content:center;align-items:center;}
.diamond{width:min(100%,330px);height:auto;overflow:visible;
  animation:floaty 7s ease-in-out infinite;transform-origin:center;}
.diamond-body{transform-origin:160px 210px;}
.halo{animation:haloPulse 6s ease-in-out infinite;transform-origin:160px 180px;}
.facet{transition:opacity .4s ease;}
.f1{animation:shimmer 7s ease-in-out infinite;}
.f2{animation:shimmer 7s ease-in-out .9s infinite;}
.f3{animation:shimmer 7s ease-in-out 1.8s infinite;}
.f4{animation:shimmer 7s ease-in-out 2.7s infinite;}
.f5{animation:shimmer 7s ease-in-out 3.6s infinite;}
.f6{animation:shimmer 7s ease-in-out 4.5s infinite;}
.glint{opacity:0;mix-blend-mode:screen;animation:glint 7s ease-in-out infinite;}
@keyframes shimmer{0%,100%{opacity:1;}50%{opacity:.62;}}
@keyframes glint{
  0%{opacity:0;transform:translate(0,0);}
  8%{opacity:.85;}
  18%{opacity:0;}
  100%{opacity:0;}
}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes haloPulse{0%,100%{opacity:.75;transform:scale(1);}50%{opacity:1;transform:scale(1.07);}}

.hero-fade{position:absolute;left:0;right:0;bottom:0;height:120px;
  background:linear-gradient(180deg,transparent,var(--bg-deep));z-index:1;}

/* ---------- Bands ---------- */
.band{padding:104px 0;position:relative;}
.band-light{background:var(--light);color:var(--dark-ink);}
.band-light h2{color:var(--dark-ink);}
.band-dark{background:var(--bg-deep);color:var(--cream);}
.band-dark h2{color:var(--cream);}

.section-head{max-width:720px;margin:0 0 56px;}
.section-head h2{font-size:clamp(2.1rem,4vw,3.1rem);}
.section-sub{margin:18px 0 0;color:var(--cream-soft);font-size:1.05rem;}
.band-light .section-sub{color:var(--dark-soft);}

/* ---------- About ---------- */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start;}
.about-head h2{font-size:clamp(2.1rem,3.6vw,3rem);}
.about-body p{margin:0 0 20px;color:var(--dark-soft);}
.about-body p:last-child{margin-bottom:0;}
.about-head{position:sticky;top:110px;}

/* ---------- Practice ---------- */
.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.pcard{
  background:linear-gradient(180deg,var(--bg-card),var(--bg-card-2));
  border:1px solid var(--line-dark);border-radius:var(--r);
  padding:34px 28px 32px;position:relative;overflow:hidden;
  transition:box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.pcard::before{
  content:"";position:absolute;left:0;top:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--gold),var(--gold-bright));
  transition:width .4s var(--ease);
}
.pcard-num{
  font-family:"Cormorant",serif;font-size:1.6rem;font-style:italic;
  color:var(--gold);display:block;margin-bottom:14px;
}
.pcard h3{font-family:"Cormorant",serif;font-size:1.65rem;font-weight:600;color:var(--cream);margin:0 0 10px;}
.pcard p{margin:0;color:var(--cream-soft);font-size:.98rem;}

/* ---------- Approach / steps ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.step{
  display:flex;gap:22px;align-items:flex-start;
  background:var(--light-2);border:1px solid var(--line-light);border-radius:var(--r);
  padding:30px 28px;
  transition:box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.step-no{
  font-family:"Cormorant",serif;font-style:italic;font-size:2.2rem;font-weight:600;
  color:var(--gold);line-height:1;min-width:46px;
}
.step-body h3{font-family:"Cormorant",serif;font-size:1.5rem;font-weight:600;color:var(--dark-ink);margin:0 0 8px;}
.step-body p{margin:0;color:var(--dark-soft);font-size:.98rem;}

/* ---------- Quote ---------- */
.band-quote{
  background:
    radial-gradient(900px 440px at 50% 0%, rgba(199,161,90,0.16), transparent 60%),
    linear-gradient(180deg,var(--bg),#352527);
  color:var(--cream);text-align:center;padding:118px 0;
}
.quote-wrap{max-width:820px;margin:0 auto;position:relative;}
.quote-mark{
  font-family:"Cormorant",serif;font-size:7rem;line-height:.4;color:var(--gold);
  display:block;height:52px;opacity:.75;
}
.band-quote blockquote{
  font-size:clamp(1.7rem,3.6vw,2.7rem);font-weight:400;color:var(--cream);
  margin:0 0 26px;line-height:1.28;
}
.quote-src{
  font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:0;
}

/* ---------- Stats / standards ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.stat{
  border:1px solid var(--line-dark);border-radius:var(--r);
  padding:34px 26px;background:rgba(243,233,224,0.03);
  transition:box-shadow .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease);
}
.stat-num{
  font-family:"Cormorant",serif;font-size:3.1rem;font-weight:600;color:var(--gold-bright);
  display:block;line-height:1;margin-bottom:14px;
}
.stat-label{margin:0;color:var(--cream-soft);font-size:.97rem;}

/* ---------- FAQ ---------- */
.faq-shell{max-width:860px;}
.faq-list{display:flex;flex-direction:column;gap:12px;}
.faq-item{
  background:#fff;border:1px solid var(--line-light);border-radius:12px;overflow:hidden;
  transition:box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.faq-q{
  width:100%;text-align:left;background:none;border:0;cursor:pointer;
  font-family:"Jost",sans-serif;font-size:1.08rem;font-weight:500;color:var(--dark-ink);
  padding:22px 56px 22px 26px;position:relative;
}
.faq-q::after{
  content:"+";position:absolute;right:24px;top:50%;transform:translateY(-50%);
  font-family:"Cormorant",serif;font-size:1.8rem;color:var(--gold);transition:transform .3s var(--ease);
}
.faq-item.open .faq-q::after{transform:translateY(-50%) rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease);}
.faq-item.open .faq-a{max-height:300px;}
.faq-a p{margin:0;padding:0 26px 24px;color:var(--dark-soft);font-size:1rem;}

/* ---------- Contact ---------- */
.band-contact{
  background:
    radial-gradient(700px 400px at 50% 120%, rgba(199,161,90,0.2), transparent 60%),
    var(--bg-deep);
  text-align:center;padding:110px 0;
}
.contact-inner{max-width:680px;margin:0 auto;}
.contact-inner h2{font-size:clamp(2.1rem,4vw,3rem);color:var(--cream);}
.contact-sub{color:var(--cream-soft);margin:18px auto 34px;max-width:52ch;}

/* ---------- Footer ---------- */
.site-footer{background:#271b1c;color:var(--cream-soft);padding:56px 0 30px;}
.footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;}
.footer-brand{display:flex;align-items:center;gap:14px;}
.footer-brand img{border-radius:8px;}
.footer-name{font-family:"Cormorant",serif;font-size:1.4rem;font-weight:600;color:var(--cream);margin:0;letter-spacing:.05em;}
.footer-tag{margin:0;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.footer-nav{display:flex;flex-wrap:wrap;gap:22px;}
.footer-nav a{font-size:13px;letter-spacing:.06em;text-transform:uppercase;transition:color .2s var(--ease);}
.footer-note{width:100%;font-size:13.5px;color:var(--cream-faint);margin:6px 0 0;}
.footer-note a{color:var(--gold);}
.footer-legal{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;
  border-top:1px solid var(--line-dark);margin-top:34px;padding-top:22px;
}
.footer-legal p{margin:0;font-size:12.5px;color:var(--cream-faint);letter-spacing:.02em;}

/* ---------- Reveal ---------- */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.js .reveal.in{opacity:1;transform:none;}

/* ---------- Hover (after reveal so transform wins) ---------- */
@media (hover:hover) and (pointer:fine){
  .primary-nav a:not(.nav-cta):hover{color:var(--cream);}
  .nav-cta:hover{background:var(--gold);color:#2b1f20!important;}
  .btn-gold:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(199,161,90,.34);}
  .btn-ghost:hover{transform:translateY(-3px);border-color:var(--gold);color:var(--gold);}
  .pcard:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(0,0,0,.34);border-color:rgba(199,161,90,.5);}
  .pcard:hover::before{width:100%;}
  .step:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(58,42,44,.14);border-color:rgba(199,161,90,.5);}
  .stat:hover{transform:translateY(-4px);background:rgba(199,161,90,.08);border-color:rgba(199,161,90,.45);}
  .faq-item:hover{border-color:rgba(199,161,90,.5);box-shadow:0 10px 26px rgba(58,42,44,.1);}
  .footer-nav a:hover{color:var(--gold);}
}
.btn,.pcard,.step,.stat{will-change:transform;}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important;}
  .js .reveal{opacity:1;transform:none;transition:none;}
}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .hero-inner{grid-template-columns:1fr;gap:38px;}
  .hero-art{order:-1;}
  .diamond{width:min(62%,260px);}
  .about-grid{grid-template-columns:1fr;gap:30px;}
  .about-head{position:static;}
  .practice-grid{grid-template-columns:repeat(2,1fr);}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:760px){
  .nav-toggle{display:flex;}
  .primary-nav{
    position:absolute;top:calc(100% + 1px);left:0;right:0;
    background:rgba(39,27,28,0.98);backdrop-filter:blur(12px);
    flex-direction:column;align-items:stretch;gap:0;
    padding:10px 24px 22px;
    border-bottom:1px solid var(--line-dark);
    max-height:0;overflow:hidden;opacity:0;pointer-events:none;
    transition:max-height .35s var(--ease),opacity .25s var(--ease),padding .35s var(--ease);
  }
  .site-header.scrolled .primary-nav,.site-header .primary-nav{padding-top:0;}
  .primary-nav.open{max-height:420px;opacity:1;pointer-events:auto;padding-top:14px;}
  .primary-nav a{padding:13px 2px;border-bottom:1px solid var(--line-dark);}
  .primary-nav a:last-child{border-bottom:0;}
  .nav-cta{text-align:center;margin-top:10px;padding:13px 18px;}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
}
@media (max-width:620px){
  body{font-size:16px;}
  .shell{padding:0 20px;}
  .hero{padding:146px 0 82px;}
  .band{padding:76px 0;}
  .band-quote,.band-contact{padding:84px 0;}
  .practice-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:1fr;}
  .section-head{margin-bottom:40px;}
  .hero-actions .btn{flex:1 1 auto;text-align:center;}
  .footer-legal{flex-direction:column;}
}
@media (max-width:400px){
  .shell{padding:0 16px;}
  .hero h1{font-size:clamp(2.9rem,13vw,3.4rem);}
  .brand-name{font-size:23px;}
  .diamond{width:min(70%,220px);}
  .btn{padding:13px 20px;font-size:12.5px;}
}
