├── images ├── logo ├── logo.png ├── logo.svg └── дмитрий.jpg ├── README.md ├── script.js ├── styles.css └── index.html /images/logo: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/дмитрий.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gritsenko/RoyalRangersMoscow/main/images/дмитрий.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Визитка — Цпрские Охотники 2 | 3 | Простая статическая одностраничная визитка для организации «Цпрские Охотники». Файлы: 4 | 5 | - `index.html` — главная страница 6 | - `styles.css` — стили 7 | - `script.js` — простая логика: меню, форма (локально), vCard 8 | 9 | Как запустить: 10 | 11 | Откройте `index.html` в браузере. Для локального сервера (рекомендуется) можно использовать `python -m http.server` или расширение Live Server в VS Code. 12 | 13 | Примечание: контакты и тексты — примеры. Замените на реальные данные при необходимости. 14 | -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | // Small interactive behaviors: nav toggle, form handling, vCard download 2 | document.addEventListener('DOMContentLoaded',function(){ 3 | // year 4 | document.getElementById('year').textContent = new Date().getFullYear(); 5 | 6 | // nav toggle 7 | const toggle = document.querySelector('.nav-toggle'); 8 | const nav = document.querySelector('.site-nav'); 9 | toggle.addEventListener('click',()=>{nav.style.display = nav.style.display === 'flex' ? 'none' : 'flex'}); 10 | 11 | // form 12 | const form = document.getElementById('contactForm'); 13 | const msg = document.getElementById('formMessage'); 14 | const clear = document.getElementById('clearForm'); 15 | 16 | form.addEventListener('submit',function(e){ 17 | e.preventDefault(); 18 | const data = new FormData(form); 19 | // Fake send: show success message and reset 20 | msg.textContent = 'Спасибо! Сообщение отправлено (локальный демонстрационный режим).'; 21 | form.reset(); 22 | }); 23 | clear.addEventListener('click',()=>{form.reset();msg.textContent='';}); 24 | 25 | // vCard 26 | document.getElementById('downloadVcard').addEventListener('click',()=>{ 27 | const vcard = [ 28 | 'BEGIN:VCARD', 29 | 'VERSION:3.0', 30 | 'FN:Цпрские Охотники', 31 | 'ORG:Цпрские Охотники', 32 | 'TEL;WORK;VOICE:+70000000000', 33 | 'EMAIL:info@cprhunters.example', 34 | 'END:VCARD' 35 | ].join('\r\n'); 36 | const blob = new Blob([vcard],{type:'text/vcard;charset=utf-8'}); 37 | const url = URL.createObjectURL(blob); 38 | const a = document.createElement('a'); 39 | a.href = url; a.download = 'cprskie_ohotniki.vcf'; document.body.appendChild(a); a.click(); a.remove(); URL.revokeObjectURL(url); 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | /* Basic reset */ 2 | *{box-sizing:border-box;margin:0;padding:0} 3 | :root{--accent:#2b6cb0;--muted:#6b7280;--bg:#f7fafc;--card:#ffffff} 4 | body{font-family:Inter,Segoe UI,Arial,Helvetica,sans-serif;line-height:1.5;color:#0f1724;background:linear-gradient(180deg,var(--bg),#fff)} 5 | .container{max-width:900px;margin:0 auto;padding:1rem} 6 | .site-header{background:#fff;border-bottom:1px solid #e6e9ef} 7 | .header-inner{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0} 8 | .logo{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--accent);text-decoration:none;font-size:1.125rem} 9 | .logo-img{width:44px;height:44px;object-fit:contain;border-radius:6px} 10 | .logo-text{font-size:1rem} 11 | .site-nav{display:flex;gap:.5rem} 12 | .site-nav a{color:#0f1724;text-decoration:none;padding:.5rem;border-radius:6px} 13 | .site-nav a:hover{background:#f1f5f9} 14 | .nav-toggle{display:none;background:transparent;border:0;font-size:1.25rem} 15 | .hero{padding:3rem 0;background:linear-gradient(90deg,rgba(43,108,176,0.06),rgba(43,108,176,0.02))} 16 | .hero h1{font-size:2rem;margin-bottom:.25rem} 17 | .tagline{color:var(--muted);margin-bottom:1rem} 18 | .btn{display:inline-block;background:var(--accent);color:#fff;padding:.6rem .9rem;border-radius:8px;text-decoration:none;border:0;cursor:pointer} 19 | .btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)} 20 | .about h2,.services h2,.gallery h2,.contact h2{margin:1rem 0} 21 | .services-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;list-style:none} 22 | .card{background:var(--card);padding:1rem;border:1px solid #eef2f6;border-radius:8px;text-align:center} 23 | .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem} 24 | .gallery-img{display:block;max-width:100%;height:auto;border-radius:6px} 25 | .contact-form{display:grid;gap:.5rem;max-width:560px} 26 | .contact-form label{display:flex;flex-direction:column;gap:.25rem} 27 | .contact-form input,.contact-form textarea{padding:.5rem;border:1px solid #dbe3ee;border-radius:6px} 28 | .form-actions{display:flex;gap:.5rem;margin-top:.5rem} 29 | .form-message{color:var(--muted);margin-top:.5rem} 30 | .site-footer{border-top:1px solid #e6e9ef;margin-top:2rem;background:#fff} 31 | .footer-inner{display:flex;justify-content:space-between;align-items:center;padding:1rem} 32 | .social a{margin-left:.5rem;color:var(--muted);text-decoration:none} 33 | @media (max-width:700px){ 34 | .site-nav{display:none;flex-direction:column;background:#fff;position:absolute;right:1rem;top:64px;padding:.5rem;border-radius:8px;box-shadow:0 6px 18px rgba(12,15,20,.08)} 35 | .nav-toggle{display:block} 36 | .header-inner{position:relative} 37 | } 38 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Царские Охотники — Визитка 7 | 8 | 9 | 10 | 11 | 26 | 27 |
28 |
29 |
30 |

Царские Охотники

31 |

Профессионалы в охоте и природоохранных работах

32 |
33 | Связаться 34 | 35 |
36 |
37 |
38 | 39 |
40 |

О нас

41 |

«Царские Охотники» — объединение специалистов в области охоты, разведения и сохранения популяций диких животных. Мы работаем с частными клиентами и организациями, предоставляем консультации, обучение и полевую поддержку.

42 |
43 | 44 |
45 |

Услуги

46 | 60 |
61 | 62 | 72 | 73 |
74 |

Контакты

75 |

Телефон: +7 (000) 000-00-00

76 |

Email: info@cprhunters.example

77 | 78 |
79 | 83 | 87 | 91 |
92 | 93 | 94 |
95 |

96 |
97 |
98 |
99 | 100 | 109 | 110 | 111 | 112 | 113 | --------------------------------------------------------------------------------