.hero { background:var(--cream); padding:9rem 2.5rem 4rem; position:relative; }
.hero-inner { max-width:1400px; margin:0 auto; }
.breadcrumb { font-family:var(--f-m); font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gray); margin-bottom:2.5rem; }
.breadcrumb a { color:var(--gray); text-decoration:none; }
.breadcrumb a:hover { color:var(--red); }
.breadcrumb .sep { margin:0 .5rem; opacity:.5; }
.breadcrumb .current { color:var(--ink); }
.hero-eyebrow { font-family:var(--f-m); font-size:.7rem; letter-spacing:.25em; text-transform:uppercase; color:var(--red); margin-bottom:1.75rem; display:flex; align-items:center; gap:.75rem; }
.hero-eyebrow::before { content:''; width:28px; height:1px; background:var(--red); flex-shrink:0; }
.hero-headline { font-family:var(--f-r); font-weight:900; font-size:clamp(2.4rem,7vw,7rem); line-height:1.04; letter-spacing:-.035em; color:var(--ink); max-width:1150px; margin-bottom:2.5rem; }
.hero-headline em { font-style:italic; color:var(--red); }
.hero-sub { font-family:var(--f-r); font-weight:400; font-size:clamp(1rem,1.5vw,1.25rem); line-height:1.7; color:var(--gray); max-width:720px; margin-bottom:3rem; }
.hero-sub strong { color:var(--ink); font-weight:700; }
.hero-cta-row { display:flex; gap:1.25rem; flex-wrap:wrap; align-items:center; }
.btn-solid { font-family:var(--f-r); font-weight:700; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; background:var(--red); color:var(--cream); padding:1rem 2rem; text-decoration:none; transition:background .2s,transform .15s; }
.btn-solid:hover { background:var(--ink); transform:translateY(-2px); }
.btn-text { font-family:var(--f-r); font-weight:600; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:2px solid var(--ink); padding-bottom:3px; transition:color .2s,border-color .2s; }
.btn-text:hover { color:var(--red); border-color:var(--red); }

.inst-bar { background:var(--dark-teal); color:var(--cream); padding:3rem 2.5rem; }
.inst-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; gap:3rem; flex-wrap:wrap; justify-content:space-between; }
.inst-label { font-family:var(--f-m); font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--teal); max-width:220px; line-height:1.6; }
.inst-types { display:flex; gap:2.5rem; flex-wrap:wrap; }
.inst-type { font-family:var(--f-r); font-weight:800; font-size:clamp(1.1rem,2vw,1.75rem); letter-spacing:-.02em; color:var(--cream); }
.inst-type span { color:var(--teal); }

.section { padding:7rem 2.5rem; }
.section-inner { max-width:1400px; margin:0 auto; }
.section-eyebrow { font-family:var(--f-m); font-size:.65rem; letter-spacing:.25em; text-transform:uppercase; color:var(--red); margin-bottom:1.5rem; display:flex; align-items:center; gap:.75rem; }
.section-eyebrow::before { content:''; width:28px; height:1px; background:var(--red); flex-shrink:0; }
.section-title { font-family:var(--f-r); font-weight:900; font-size:clamp(2rem,4.5vw,4.25rem); line-height:1.05; letter-spacing:-.03em; color:var(--ink); }
.section-title em { font-style:italic; color:var(--teal); }

.problems { background:var(--cream); }
.problems-header { margin-bottom:3.5rem; max-width:850px; }
.problems-intro { font-family:var(--f-r); font-weight:400; font-size:1.05rem; line-height:1.7; color:var(--gray); margin-top:1.5rem; max-width:700px; }
.problems-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.problem { background:var(--white); padding:2.5rem; border:1px solid rgba(0,0,0,.08); display:flex; flex-direction:column; }
.problem-num { font-family:var(--f-m); font-size:.65rem; letter-spacing:.2em; color:var(--red); margin-bottom:1.5rem; }
.problem-q { font-family:var(--f-r); font-weight:800; font-size:1.2rem; line-height:1.25; color:var(--ink); margin-bottom:.85rem; letter-spacing:-.015em; }
.problem-a { font-family:var(--f-r); font-weight:400; font-size:.88rem; line-height:1.65; color:var(--gray); }

.approach { background:var(--ink); color:var(--cream); }
.approach .section-title { color:var(--cream); }
.approach .section-title em { color:var(--teal); }
.approach-header { margin-bottom:3.5rem; max-width:850px; }
.approach-steps { border-top:1px solid rgba(242,236,224,.15); }
.astep { display:grid; grid-template-columns:100px 1fr 2fr; gap:2.5rem; padding:2.5rem 0; border-bottom:1px solid rgba(242,236,224,.12); align-items:start; }
.astep-num { font-family:var(--f-r); font-weight:900; font-size:2.5rem; color:var(--teal); line-height:1; letter-spacing:-.04em; }
.astep-title { font-family:var(--f-r); font-weight:800; font-size:1.5rem; color:var(--cream); letter-spacing:-.02em; line-height:1.1; }
.astep-desc { font-family:var(--f-r); font-weight:300; font-size:.95rem; line-height:1.7; color:rgba(242,236,224,.65); }
.astep-desc strong { color:var(--cream); font-weight:600; }

.stats { background:var(--bone); }
.stats-header { margin-bottom:3.5rem; max-width:850px; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(0,0,0,.15); }
.sblk { padding:3rem 2rem; border-right:1px solid rgba(0,0,0,.1); }
.sblk:last-child { border-right:none; }
.sblk-num { font-family:var(--f-r); font-weight:900; font-size:clamp(2.6rem,5vw,5rem); line-height:.9; letter-spacing:-.04em; color:var(--ink); margin-bottom:.5rem; }
.sblk-num .accent { color:var(--red); }
.sblk-label { font-family:var(--f-r); font-weight:600; font-size:.82rem; line-height:1.4; color:var(--gray); }

.fs-services { background:var(--cream); }
.fs-services-header { margin-bottom:3.5rem; max-width:850px; }
.fs-services-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; }
.fsvc { background:var(--white); border:1px solid rgba(0,0,0,.08); padding:2.5rem; display:flex; flex-direction:column; transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s; }
.fsvc:hover { transform:translateY(-3px); border-color:var(--teal); }
.fsvc-head { display:flex; align-items:baseline; gap:1rem; margin-bottom:1rem; }
.fsvc-num { font-family:var(--f-m); font-size:.65rem; letter-spacing:.2em; color:var(--red); flex-shrink:0; }
.fsvc-name { font-family:var(--f-r); font-weight:800; font-size:1.35rem; color:var(--ink); letter-spacing:-.02em; line-height:1.1; }
.fsvc-desc { font-family:var(--f-r); font-weight:400; font-size:.9rem; line-height:1.65; color:var(--gray); }

.feature { background:var(--accent); color:var(--ink); }
.feature-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:auto 1fr; gap:3rem; align-items:center; }
.feature-mark { font-family:var(--f-r); font-weight:900; font-size:clamp(4rem,9vw,8rem); line-height:.85; letter-spacing:-.05em; color:var(--white); }
.feature-title { font-family:var(--f-r); font-weight:800; font-size:clamp(1.5rem,3vw,2.4rem); line-height:1.15; letter-spacing:-.02em; color:var(--ink); margin-bottom:1rem; }
.feature-body { font-family:var(--f-r); font-weight:400; font-size:1rem; line-height:1.7; color:rgba(10,10,10,.72); }

.cta-section { background:var(--red); color:var(--cream); padding:8rem 2.5rem; position:relative; overflow:hidden; }
.cta-section::before { content:''; position:absolute; top:-40%; right:-10%; width:600px; height:600px; border-radius:50%; background:rgba(0,0,0,.12); pointer-events:none; }
.cta-inner { max-width:1100px; margin:0 auto; position:relative; z-index:1; }
.cta-eyebrow { font-family:var(--f-m); font-size:.7rem; letter-spacing:.25em; text-transform:uppercase; color:rgba(242,236,224,.6); margin-bottom:2rem; display:flex; align-items:center; gap:.75rem; }
.cta-eyebrow::before { content:''; width:28px; height:1px; background:rgba(242,236,224,.6); flex-shrink:0; }
.cta-title { font-family:var(--f-r); font-weight:900; font-size:clamp(2.8rem,8vw,8rem); line-height:.95; letter-spacing:-.035em; margin-bottom:2rem; }
.cta-title em { font-style:italic; }
.cta-body { font-family:var(--f-r); font-weight:400; font-size:1.05rem; line-height:1.7; color:rgba(242,236,224,.85); max-width:580px; margin-bottom:3rem; }
.cta-contact { display:flex; gap:3rem; padding-top:2rem; border-top:1px solid rgba(242,236,224,.25); flex-wrap:wrap; }
.cci { display:flex; flex-direction:column; gap:.25rem; }
.cci-label { font-family:var(--f-m); font-size:.55rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(242,236,224,.55); }
.cci-val { font-family:var(--f-r); font-weight:700; font-size:1rem; color:var(--cream); text-decoration:none; }
.cci-val:hover { text-decoration:underline; }

footer { background:var(--ink); color:var(--cream); padding:2rem 2.5rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.footer-logo { display:flex; align-items:center; gap:.55rem; text-decoration:none; }
.footer-logo img { width:22px; opacity:.55; }
.footer-logo-text { font-family:var(--f-r); font-weight:700; font-size:.8rem; color:rgba(242,236,224,.45); }
.footer-links { display:flex; gap:1.5rem; flex-wrap:wrap; }
.footer-link { font-family:var(--f-r); font-weight:500; font-size:.6rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(242,236,224,.4); text-decoration:none; }
.footer-link:hover { color:var(--cream); }
.footer-copy { font-family:var(--f-m); font-size:.58rem; letter-spacing:.1em; color:rgba(242,236,224,.3); }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1); }
.reveal.visible { opacity:1; transform:translateY(0); }

@media (max-width:1024px) {
  .problems-grid { grid-template-columns:1fr 1fr; }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .sblk:nth-child(2) { border-right:none; }
  .sblk:nth-child(1),.sblk:nth-child(2) { border-bottom:1px solid rgba(0,0,0,.1); }
  .astep { grid-template-columns:70px 1fr; }
  .astep-desc { grid-column:2; }
}
@media (max-width:768px) {
  nav { padding:1rem 1.5rem; }
  .nav-right { display:none; }
  .hamburger { display:block; }
  .hero { padding:7rem 1.5rem 3.5rem; }
  .hero-headline { font-size:clamp(2rem,9vw,3.4rem); line-height:1.1; }
  .inst-bar { padding:2.5rem 1.5rem; }
  .inst-inner { flex-direction:column; align-items:flex-start; gap:1.5rem; }
  .inst-types { gap:1.25rem; }
  .section { padding:4.5rem 1.5rem; }
  .problems-grid { grid-template-columns:1fr; }
  .fs-services-grid { grid-template-columns:1fr; }
  .astep { grid-template-columns:1fr; gap:.75rem; padding:2rem 0; }
  .astep-num { font-size:2rem; }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .sblk { padding:2rem 1.25rem; }
  .feature-inner { grid-template-columns:1fr; gap:1.5rem; }
  .cta-section { padding:6rem 1.5rem; }
  .cta-contact { gap:1.75rem; }
  footer { padding:1.5rem; flex-direction:column; align-items:flex-start; }
}
@media (max-width:380px) {
  .stats-grid { grid-template-columns:1fr; }
  .sblk:nth-child(n) { border-right:none; border-bottom:1px solid rgba(0,0,0,.1); }
  .sblk:last-child { border-bottom:none; }
  .inst-types { gap:.9rem; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
body.menu-open { overflow:hidden; }
