:root{
  --bg:#ffffff;
  --ink:#0b0f17;
  --muted:#6b7280;
  --muted2:#9ca3af;
  --line: rgba(15, 23, 42, .10);
  --accent:#8F0D12;

  --max: 1120px;
  --h1: clamp(40px, 5.2vw, 84px);
  --h2: clamp(28px, 3.0vw, 48px);
  --k: 14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--ink);
  background: var(--bg) url("assets/bg.jpg") center/cover fixed no-repeat;
  line-height:1.45;
}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
.container{width:min(var(--max),92%); margin:0 auto}

.skip-link{position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden}
.skip-link:focus{left:16px; top:16px; width:auto; height:auto; padding:10px 12px; background:#fff; border:1px solid var(--line); border-radius: 0px; z-index:9999}

header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.nav{display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 0}
.brand{display:flex; align-items:center; gap:10px}
.brand img{height:32px}
.brand small{display:block; font-size:12px; color:var(--muted); font-weight:650; margin-top:2px}
.menu{display:flex; gap:22px; align-items:center; list-style:none; margin:0; padding:0}
.menu a{font-size:13px; font-weight:900; letter-spacing:.02em; color: rgba(11,15,23,.86)}
.menu a:hover{color:var(--accent)}
.actions{display:flex; gap:10px; align-items:center}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px; border-radius: 0px;
  border:1px solid var(--line); background:#fff;
  font-weight:900; font-size:13px; letter-spacing:.01em;
  cursor:pointer;
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.btn:hover{transform: translateY(-1px)}
.btn.primary{border-color: transparent; background: var(--accent); color:#fff}
.btn.ghost{background: transparent; border-color: rgba(11,15,23,.18)}

.hero{
  min-height: 100vh;
  position:relative;
  display:flex;
  align-items:center;
  padding-top: 78px;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background: url("assets/hero.jpg") center/cover no-repeat;
  transform: scale(1.03);
  z-index:0;
}
.hero::after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.86) 42%, rgba(255,255,255,.70) 70%, rgba(255,255,255,.62) 100%);
  z-index:1;
}
.hero-inner{position:relative; z-index:2; width: min(1120px, 92%); padding: clamp(52px, 7vh, 92px) 0}
.hero-kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-size: var(--k);
  color: rgba(11,15,23,.78);
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hero h1{
  margin: 18px 0 16px;
  font-size: var(--h1);
  line-height: 0.98;
  letter-spacing: -.03em;
  font-weight: 900;
}
.lead{
  margin: 0 0 20px;
  font-size: 18px;
  color: rgba(11,15,23,.74);
  max-width: 60ch;
  font-weight: 650;
}
.meta{
  display:flex; flex-wrap:wrap; gap:12px;
  margin: 10px 0 26px;
  color: rgba(11,15,23,.72);
  font-weight: 800;
  font-size: 13px;
}
.pill{
  display:inline-flex; align-items:center; gap:8px;
  padding: 8px 12px;
  border: 1px solid rgba(15,23,42,.12);
  border-radius: 0px;
  background: rgba(255,255,255,.72);
}
.hero-cta{display:flex; flex-wrap:wrap; gap:12px; align-items:center}

section.block{
  padding: clamp(64px, 9vh, 120px) 0;
  background: rgba(255,255,255,.92);
  border-top: 1px solid rgba(15,23,42,.08);
}
.block .title{
  font-size: var(--h2);
  letter-spacing: -.02em;
  line-height: 1.05;
  margin: 0 0 14px;
  font-weight: 950;
}
.block .copy{
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  max-width: 80ch;
  font-weight: 650;
}
.specialize{display:flex; flex-direction:column; gap:26px}
.marks{
  display:flex; flex-wrap:wrap; gap:14px 18px;
  font-weight: 950;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(11,15,23,.55);
  font-size: 13px;
}
.range{background: rgba(246,247,248,.94)}
.range-grid{display:grid; grid-template-columns: 1.15fr .85fr; gap:34px; align-items:start}
.words{
  font-size: clamp(30px, 3.6vw, 58px);
  line-height: 1.02;
  letter-spacing: -.02em;
  font-weight: 950;
}
.words div{padding: 10px 0; border-bottom: 1px solid rgba(15,23,42,.08)}
.words div:last-child{border-bottom:none}
.range-note{position: sticky; top:110px}
.range-note p{margin:0 0 14px; color: rgba(11,15,23,.70); font-weight:650; font-size:16px}
.range-note ul{margin:0; padding-left:18px; color: rgba(11,15,23,.66); font-weight:650}
.range-note li{margin:8px 0}

.process-line{display:grid; grid-template-columns: repeat(4, 1fr); gap:20px; margin-top:34px}
.step{padding:14px 0; border-top: 1px solid rgba(15,23,42,.08)}
.step b{display:block; font-size:44px; letter-spacing:-.02em; color:var(--accent); font-weight:950}
.step span{display:block; margin-top:6px; font-weight:950; letter-spacing:.02em}
.step small{display:block; margin-top:8px; color: rgba(11,15,23,.66); font-weight:650; font-size:13px; max-width:28ch}

.contact{display:grid; grid-template-columns: 1.1fr .9fr; gap:34px; align-items:start; margin-top:34px}
.form{
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 0px;
  padding: 18px;
}
.form .row{display:grid; grid-template-columns: 1fr 1fr; gap:12px}
.field{display:flex; flex-direction:column; gap:8px; margin-bottom:14px}
label{font-size:12px; color: rgba(11,15,23,.62); font-weight:950; letter-spacing:.08em; text-transform: uppercase}
input, textarea{
  font: inherit;
  padding: 14px 14px;
  border-radius: 0px;
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.96);
  outline: none;
}
textarea{min-height:140px; resize:vertical}
.helper{margin-top:10px; font-size:12px; color: rgba(11,15,23,.56); font-weight:650}

.side{padding-top:6px}
.side h3{margin:0 0 10px; font-size:18px; font-weight:950}
.side .line{display:flex; justify-content:space-between; gap:12px; padding:14px 0; border-bottom: 1px solid rgba(15,23,42,.08)}
.side .line:last-child{border-bottom:none}
.side .k{color: rgba(11,15,23,.62); font-weight:800; font-size:12px; letter-spacing:.08em; text-transform: uppercase}
.side .v{font-weight:850; color: rgba(11,15,23,.86); text-align:right}

footer{
  background: rgba(255,255,255,.94);
  border-top: 1px solid rgba(15,23,42,.08);
  padding: 28px 0 34px;
  color: rgba(11,15,23,.62);
  font-weight: 650;
  font-size: 13px;
}
.footer-row{display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap}
.footer-row a{color: rgba(11,15,23,.86); font-weight:900}

@media (max-width: 980px){
  .menu{display:none}
  .hero::after{
    background: linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.78) 45%, rgba(255,255,255,.64) 100%);
  }
  .range-grid{grid-template-columns: 1fr}
  .range-note{position: static}
  .process-line{grid-template-columns: 1fr 1fr}
  .contact{grid-template-columns: 1fr}
  .form .row{grid-template-columns: 1fr}
}
@media (max-width: 520px){
  .process-line{grid-template-columns: 1fr}
  .hero-kicker{letter-spacing:.12em}
}


/* HARD OVERRIDE: sharp corners */
.btn, input, textarea, .form, .pill, .skip-link:focus { border-radius: 0 !important; }
