:root { --red:#d71920; --dark:#111; --grey:#6e6e6e; --light:#f4f4f2; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; color:var(--dark); background:var(--white); font-family:"Inter",sans-serif; }
a { color:inherit; }
.header { height:92px; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; gap:40px; background:#fff; border-bottom:1px solid #e6e6e6; }
.logo { display:inline-flex; flex-direction:column; text-decoration:none; font-weight:900; font-style:italic; line-height:.88; transform:skew(-5deg); }
.logo span { color:#111; font-size:15px; letter-spacing:.04em; }
.logo strong { color:var(--red); font-size:27px; letter-spacing:-.04em; }
nav { display:flex; gap:42px; }
nav a { font-size:13px; font-weight:700; text-decoration:none; }
nav a:hover { color:var(--red); }
.header-phone { padding-left:28px; border-left:1px solid #ddd; color:var(--red); font-size:18px; font-weight:800; text-decoration:none; }
.header-phone small { margin-bottom:3px; display:block; color:#777; font-size:9px; letter-spacing:.14em; }

.hero { min-height:680px; padding:70px 0 60px 6vw; display:grid; grid-template-columns:42% 58%; align-items:center; position:relative; overflow:hidden; color:var(--dark); background:#f5f4f1; }
.hero::before { content:""; width:760px; height:760px; position:absolute; right:-170px; top:-95px; background:#e9e7e1; border-radius:50%; }
.hero::after { content:""; width:260px; height:260px; position:absolute; right:33%; bottom:-180px; border:55px solid rgba(215,25,32,.08); border-radius:50%; }
.hero-copy { min-height:0; padding:35px 0; position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; }
.availability { margin-bottom:30px; color:#666; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.availability i { width:8px; height:8px; margin-right:9px; display:inline-block; background:var(--red); border-radius:50%; box-shadow:0 0 0 5px rgba(215,25,32,.18); }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:28px; font-size:clamp(54px,5.4vw,87px); line-height:.95; letter-spacing:-.065em; }
h1 span { color:var(--red); }
.hero-copy > p { max-width:500px; margin-bottom:38px; color:#5f5f5f; font-size:16px; line-height:1.7; }
.call-button { width:max-content; min-height:68px; padding:0 28px; display:flex; align-items:center; gap:15px; color:#fff; background:var(--red); border-radius:999px; text-decoration:none; box-shadow:0 12px 30px rgba(215,25,32,.22); transition:.2s; }
.call-button:hover { background:#ee2028; transform:translateY(-2px); }
.call-button svg { width:25px; fill:#fff; }
.call-button span { font-size:20px; font-weight:800; }
.call-button small { display:block; margin-bottom:2px; font-size:9px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.hero-photo { min-width:0; position:relative; z-index:1; }
.hero-photo::after { content:""; width:70%; height:35px; position:absolute; left:15%; bottom:7%; background:rgba(0,0,0,.16); border-radius:50%; filter:blur(18px); }
.hero-photo img { width:112%; height:auto; margin-left:-9%; position:relative; z-index:1; display:block; object-fit:contain; filter:drop-shadow(0 22px 18px rgba(0,0,0,.13)); }

.facts { min-height:130px; padding:0 7vw; display:grid; grid-template-columns:repeat(3,1fr); align-items:center; background:var(--red); color:#fff; }
.facts div { padding-left:38px; border-left:1px solid rgba(255,255,255,.35); }
.facts div:first-child { padding-left:0; border-left:0; }
.facts strong,.facts span { display:block; }
.facts strong { margin-bottom:5px; font-size:23px; }
.facts span { color:rgba(255,255,255,.78); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }

.services { max-width:1200px; margin:auto; padding:120px 30px; }
.section-title { margin-bottom:70px; display:flex; align-items:flex-end; justify-content:space-between; gap:40px; }
.section-title > span,.about-copy > span { color:var(--red); font-size:11px; font-weight:800; letter-spacing:.18em; }
.section-title h2,.about h2 { margin:0; font-size:clamp(38px,4.5vw,64px); line-height:1.04; letter-spacing:-.055em; }
.service-list { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #ccc; }
.service-list article { padding:42px 42px 20px 0; position:relative; }
.service-list article + article { padding-left:42px; border-left:1px solid #ddd; }
.service-list b { position:absolute; top:22px; right:25px; color:#c4c4c4; font-size:11px; }
.service-list svg { width:48px; height:48px; margin-bottom:42px; fill:var(--red); }
.service-list h3 { margin-bottom:13px; font-size:21px; }
.service-list p { max-width:290px; color:var(--grey); font-size:14px; line-height:1.7; }

.about { display:block; background:var(--light); }
.about-photo { display:none; }
.about-copy { max-width:900px; margin:auto; padding:120px 30px; display:flex; flex-direction:column; justify-content:center; text-align:center; }
.about-copy h2 { margin:20px 0 25px; }
.about-copy p { max-width:650px; margin-left:auto; margin-right:auto; color:var(--grey); font-size:15px; line-height:1.8; }
.about-copy ul { margin:30px auto 0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; list-style:none; }
.about-copy li { padding:10px 24px; position:relative; border-left:1px solid #ccc; font-size:13px; font-weight:600; }
.about-copy li:first-child { border-left:0; }
.about-copy li::before { display:none; }

.contact { padding:110px 20px; color:#fff; background:#121212; text-align:center; }
.contact p { margin-bottom:14px; color:#aaa; font-size:11px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.contact h2 { margin-bottom:22px; font-size:clamp(38px,5vw,68px); letter-spacing:-.055em; }
.contact > a { display:block; color:var(--red); font-size:clamp(50px,7vw,96px); font-weight:900; letter-spacing:-.065em; text-decoration:none; }
.contact small { color:#888; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
footer { min-height:120px; padding:25px 5vw; display:flex; align-items:center; justify-content:space-between; gap:30px; border-top:1px solid #292929; color:#888; background:#121212; font-size:11px; }
.logo-footer span { color:#fff; }
footer a { color:#fff; font-size:15px; font-weight:800; text-decoration:none; }
.mobile-call { display:none; }

@media (max-width:900px) {
  nav { display:none; }
  .hero { padding:70px 5vw 50px; grid-template-columns:minmax(0,1fr); }
  .hero::before { width:600px; height:600px; right:-220px; top:32%; }
  .hero-copy { width:75%; padding:30px 2vw 20px; }
  .hero-photo { margin-top:-20px; }
  .hero-photo img { width:90%; margin:0 auto; }
  .facts { padding-top:28px; padding-bottom:28px; }
  .about-copy { padding:80px 7vw; }
}
@media (max-width:620px) {
  body { padding-bottom:58px; }
  .header { height:76px; padding:0 18px; }
  .header-phone { display:none; }
  .hero { min-height:0; padding:55px 20px 30px; }
  .hero-copy { width:100%; min-height:0; padding:20px 0; justify-content:center; }
  h1 { max-width:100%; font-size:43px; line-height:.96; letter-spacing:-.06em; }
  .hero-copy > p { max-width:100%; font-size:14px; line-height:1.65; }
  .call-button { min-height:64px; padding:0 24px; }
  .call-button span { font-size:18px; }
  .hero-photo { margin:10px -15px 0; }
  .hero-photo img { width:104%; margin-left:-2%; }
  .facts { padding:25px 22px; grid-template-columns:1fr; gap:20px; }
  .facts div,.facts div:first-child { padding:0 0 0 18px; border:0; border-left:2px solid rgba(255,255,255,.45); }
  .services { padding:80px 22px; }
  .section-title { align-items:flex-start; flex-direction:column; }
  .section-title h2 { font-size:39px; }
  .service-list { grid-template-columns:1fr; }
  .service-list article,.service-list article + article { padding:36px 0; border-left:0; border-bottom:1px solid #ddd; }
  .about-copy { padding:70px 22px; }
  .about-copy ul { align-items:center; flex-direction:column; }
  .about-copy li,.about-copy li:first-child { border-left:0; border-top:1px solid #ccc; }
  .contact { padding:85px 18px; }
  .contact > a { font-size:46px; }
  footer { padding:40px 22px; flex-direction:column; text-align:center; }
  .mobile-call { height:58px; padding:0 18px; display:flex; align-items:center; justify-content:center; position:fixed; z-index:50; left:0; right:0; bottom:0; color:#fff; background:var(--red); font-size:15px; font-weight:800; text-decoration:none; box-shadow:0 -5px 20px rgba(0,0,0,.25); }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
