Initial commit

This commit is contained in:
Kirchik
2025-08-02 11:45:16 +02:00
parent a6a820aba2
commit a0ba937a46
1078 changed files with 7800 additions and 1115 deletions
+62
View File
@@ -0,0 +1,62 @@
/* ПОЛНОСТЬЮ НОВЫЙ ПОДХОД - очищаем все старое */
/* Убираем все рамки и фоны у поста Start */
.start-post {
background: none !important;
border: none !important;
box-shadow: none !important;
}
/* Основные стили для изображения поста Start */
.start-image img {
width: 100% !important;
height: 500px !important;
object-fit: cover !important;
display: block !important;
margin: 0 auto !important;
border-radius: 15px !important;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25) !important;
}
/* Эффект при наведении */
.start-image:hover img {
transform: scale(1.02) !important;
transition: transform 0.3s ease !important;
}
/* Стили для текста в посте "О чем этот сайт" */
.about-site-content {
font-size: 0.9em;
line-height: 1.4;
color: #333;
}
.about-site-content h3 {
font-size: 1.1em;
margin: 1em 0 0.5em 0;
color: #2c3e50;
}
.about-site-content p {
margin: 0.5em 0;
}
.about-site-content .nav-item {
margin: 0.8em 0;
padding: 0.5em 0;
}
.about-site-content .nav-item strong {
font-size: 1em;
color: #34495e;
}
/* Дополнительная страховка - если что-то не работает */
article.post.featured.start-post .image.main img,
section.post .image.main img[src*="Kavkaz-20220505-1.jpg"] {
width: 100% !important;
height: 500px !important;
object-fit: cover !important;
border-radius: 15px !important;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25) !important;
}
+65
View File
@@ -0,0 +1,65 @@
/* Современная кнопка "Вернуться в начало" */
.back-to-top-btn {
position: fixed;
bottom: 30px;
right: 30px;
background: rgba(24, 191, 239, 0.9);
color: #ffffff;
border: none;
border-radius: 50%;
width: 56px;
height: 56px;
cursor: pointer;
font-size: 1.2rem;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
opacity: 0;
visibility: hidden;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 12px rgba(24, 191, 239, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1);
backdrop-filter: blur(10px);
}
.back-to-top-btn.show {
opacity: 1;
visibility: visible;
}
.back-to-top-btn:hover {
background: rgba(24, 191, 239, 1);
transform: translateY(-2px) scale(1.05);
box-shadow: 0 8px 20px rgba(24, 191, 239, 0.4), 0 4px 8px rgba(0, 0, 0, 0.2);
}
.back-to-top-btn:active {
transform: translateY(0) scale(0.95);
transition: all 0.1s ease;
}
@media (max-width: 768px) {
.back-to-top-btn {
bottom: 20px;
right: 20px;
width: 48px;
height: 48px;
font-size: 1.1rem;
}
}
/* Анимация появления */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.back-to-top-btn.show {
animation: fadeInUp 0.3s ease-out;
}
+6
View File
@@ -0,0 +1,6 @@
/* Увеличиваем изображения в featured постах */
.post.featured .image.main img {
height: 400px;
object-fit: cover;
width: 100%;
}
+33
View File
@@ -0,0 +1,33 @@
/* Улучшение видимости copyright текста */
#copyright {
opacity: 1 !important;
color: rgba(255, 255, 255, 0.8) !important;
font-weight: 600 !important;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5) !important;
background: rgba(0, 0, 0, 0.3) !important;
padding: 10px 20px !important;
border-radius: 5px !important;
backdrop-filter: blur(5px) !important;
text-align: center !important;
}
#copyright ul {
margin: 0 !important;
padding: 0 !important;
list-style: none !important;
}
#copyright li {
display: inline-block !important;
margin: 0 5px !important;
color: rgba(255, 255, 255, 0.9) !important;
}
#copyright li:after {
content: " | " !important;
color: rgba(255, 255, 255, 0.6) !important;
}
#copyright li:last-child:after {
content: "" !important;
}
+69
View File
@@ -0,0 +1,69 @@
/* Горизонтальное меню в футере */
.footer-nav-links {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: row;
justify-content: center;
flex-wrap: wrap;
gap: 2rem;
}
.footer-nav-link {
display: flex;
flex-direction: column;
align-items: center;
padding: 0.75rem 1rem;
color: #ffffff;
text-decoration: none;
font-size: 0.85rem;
font-weight: 400;
transition: all 0.3s ease;
border-radius: 6px;
background: rgba(255, 255, 255, 0.05);
min-width: 80px;
}
.footer-nav-link:hover {
color: #18bfef;
background: rgba(24, 191, 239, 0.1);
transform: translateY(-3px);
text-decoration: none;
}
.footer-nav-link .icon {
font-size: 1.2rem;
margin-bottom: 0.4rem;
opacity: 0.9;
}
.footer-nav-link:hover .icon {
opacity: 1;
}
/* Адаптивность для мобильных */
@media (max-width: 768px) {
.footer-nav-links {
gap: 1rem;
}
.footer-nav-link {
padding: 0.6rem 0.8rem;
font-size: 0.8rem;
min-width: 70px;
}
.footer-nav-link .icon {
font-size: 1rem;
margin-bottom: 0.3rem;
}
}
/* Стиль для заголовка секции */
#footer h3 {
font-size: 1.1rem;
margin-bottom: 1rem;
color: #ffffff;
font-weight: 600;
}
+296
View File
@@ -0,0 +1,296 @@
/* Стили для форм обратной связи */
.travel-form-container, .contact-form-container {
max-width: 600px;
margin: 2rem auto;
background: rgba(255, 255, 255, 0.98);
padding: 2.5rem;
border-radius: 16px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.2);
}
.travel-form, .contact-form {
width: 100%;
}
.form-group {
margin-bottom: 1.8rem;
}
.form-group label {
display: block;
margin-bottom: 0.75rem;
font-weight: 500;
color: #2c3e50;
font-size: 0.95rem;
line-height: 1.4;
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 1rem;
border: 1px solid #e1e5e9;
border-radius: 12px;
font-size: 0.95rem;
background: #fafbfc;
transition: all 0.3s ease;
box-sizing: border-box;
font-family: inherit;
color: #2c3e50;
}
.form-group select {
width: 100%;
padding: 1rem 3rem 1rem 1rem;
border: 1px solid #e1e5e9;
border-radius: 12px;
font-size: 1rem;
background: white;
color: #333;
font-family: inherit;
appearance: none;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
background-position: right 0.5rem center;
background-repeat: no-repeat;
background-size: 1.5em 1.5em;
min-height: 3rem;
transition: all 0.3s ease;
}
.form-group select option {
background: white;
color: #333;
padding: 0.5rem;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
outline: none;
border-color: #3498db;
background: white;
box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);
transform: translateY(-1px);
}
.form-group textarea {
resize: vertical;
min-height: 100px;
}
.submit-btn {
background: transparent;
color: #2c3e50;
padding: 1.2rem 2.5rem;
border: 2px solid #2c3e50;
border-radius: 12px;
cursor: pointer;
font-size: 1rem;
font-weight: 500;
transition: all 0.3s ease;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
text-transform: none;
font-family: inherit;
letter-spacing: 0.3px;
width: 100%;
margin-top: 1rem;
}
.submit-btn:hover {
background: #2c3e50;
color: white;
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(44, 62, 80, 0.2);
}
.submit-btn:active {
transform: translateY(0);
box-shadow: 0 4px 15px rgba(44, 62, 80, 0.1);
}
.submit-btn i {
font-size: 1.1em;
}
/* Сообщения об успехе/ошибке */
.form-message {
padding: 1rem;
border-radius: 6px;
margin-bottom: 1.5rem;
font-weight: 500;
}
.form-success {
background: #d4edda;
color: #155724;
border: 1px solid #c3e6cb;
}
.form-error {
background: #f8d7da;
color: #721c24;
border: 1px solid #f5c6cb;
}
/* Мобильная адаптация */
@media (max-width: 768px) {
.travel-form-container, .contact-form-container {
margin: 1rem;
padding: 1.5rem;
}
.form-group input,
.form-group select,
.form-group textarea {
font-size: 16px; /* Предотвращает зум на iOS */
}
.submit-btn {
width: 100%;
justify-content: center;
}
}
/* Стили для радиокнопок */
.form-group input[type="radio"] {
width: 18px;
height: 18px;
margin-right: 0.75rem;
margin-top: 0.2rem;
accent-color: #3498db;
cursor: pointer;
}
.form-group label input[type="radio"] + span {
cursor: pointer;
user-select: none;
}
.form-group label:has(input[type="radio"]) {
display: flex;
align-items: flex-start;
font-weight: 400;
margin-bottom: 0.75rem;
padding: 0.5rem;
border-radius: 8px;
transition: background-color 0.2s ease;
}
.form-group label:has(input[type="radio"]):hover {
background-color: rgba(52, 152, 219, 0.05);
}
.form-group label:has(input[type="radio"]:checked) {
background-color: rgba(52, 152, 219, 0.1);
color: #2980b9;
}
/* Стили для чекбоксов */
.form-group input[type="checkbox"] {
width: 18px;
height: 18px;
margin-right: 0.75rem;
margin-top: 0.2rem;
accent-color: #3498db;
cursor: pointer;
}
.form-group label input[type="checkbox"] + span {
cursor: pointer;
user-select: none;
}
.form-group label:has(input[type="checkbox"]) {
display: flex;
align-items: flex-start;
font-weight: 400;
margin-bottom: 0.75rem;
padding: 0.5rem;
border-radius: 8px;
transition: all 0.3s ease;
cursor: pointer;
position: relative;
}
.form-group label:has(input[type="checkbox"]):hover {
background-color: rgba(52, 152, 219, 0.05);
}
.form-group label:has(input[type="checkbox"]:checked) {
background-color: rgba(39, 174, 96, 0.1);
border-color: rgba(39, 174, 96, 0.3);
color: #27ae60;
}
.form-group label:has(input[type="checkbox"]:checked)::after,
.checkbox-label:has(input[type="checkbox"]:checked)::after {
content: "✓";
position: absolute;
left: 1rem;
top: 50%;
transform: translateY(-50%);
color: #27ae60;
font-size: 1.4em;
font-weight: bold;
animation: checkmark-appear 0.3s ease;
}
@keyframes checkmark-appear {
0% {
opacity: 0;
transform: translateY(-50%) scale(0.5);
}
100% {
opacity: 1;
transform: translateY(-50%) scale(1);
}
}
/* Специфичные стили для checkbox-label */
.checkbox-label:has(input[type="checkbox"]):hover {
background-color: rgba(52, 152, 219, 0.05);
}
.checkbox-label:has(input[type="checkbox"]:checked) {
background-color: rgba(39, 174, 96, 0.1) !important;
border-color: rgba(39, 174, 96, 0.3) !important;
color: #27ae60 !important;
}
/* Плейсхолдеры */
.form-group input::placeholder,
.form-group textarea::placeholder {
color: #95a5a6;
opacity: 1;
}
/* Интеграция с темой сайта */
@media (prefers-color-scheme: dark) {
.travel-form-container, .contact-form-container {
background: rgba(30, 30, 30, 0.95);
}
.form-group label {
color: #e0e0e0;
}
.form-group input,
.form-group select,
.form-group textarea {
background: rgba(50, 50, 50, 0.8);
border-color: #555;
color: #e0e0e0;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
border-color: #4a9eff;
}
}
+120 -138
View File
@@ -1,159 +1,141 @@
/*
Put this file in /static/css/hugo-easy-gallery.css
Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/
Simple Gallery CSS - Small thumbnails in rows
*/
/*
Grid Layout Styles
*/
/* Основные стили галереи */
.gallery {
overflow: hidden;
margin: 10px;
max-width: 768px;
display: flex;
flex-wrap: wrap;
gap: 5px;
padding: 10px;
max-width: 1400px;
margin: 0 auto;
justify-content: center;
}
/* Контейнер изображения */
.gallery .box {
float: left;
position: relative;
/* Default: 1 tile wide */
width: 100%;
padding-bottom: 100%;
}
@media only screen and (min-width : 365px) {
/* Tablet view: 2 tiles */
.gallery .box {
width: 50%;
padding-bottom: 50%;
}
}
@media only screen and (min-width : 480px) {
/* Small desktop / ipad view: 3 tiles */
.gallery .box {
width: 33.3%;
padding-bottom: 33.3%; /* */
}
}
@media only screen and (min-width : 9999px) {
/* Medium desktop: 4 tiles */
.box {
width: 25%;
padding-bottom: 25%;
}
width: 300px;
height: 300px;
transition: transform 0.2s ease;
border: 3px solid white;
border-radius: 20px;
}
/*
Transition styles
*/
.gallery.hover-transition figure,
.gallery.hover-effect-zoom .img,
.gallery:not(.caption-effect-appear) figcaption,
.fancy-figure:not(.caption-effect-appear) figcaption {
-webkit-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
/*
figure styles
*/
figure {
position:relative; /* purely to allow absolution positioning of figcaption */
overflow: hidden;
/* Эффект наведения */
.gallery .box:hover {
transform: scale(1.05);
}
/* Figure элемент */
.gallery figure {
position: absolute;
left: 5px;
right: 5px;
top: 5px;
bottom: 5px;
}
.gallery.hover-effect-grow figure:hover {
transform: scale(1.05);
}
.gallery.hover-effect-shrink figure:hover {
transform: scale(0.95);
}
.gallery.hover-effect-slidedown figure:hover {
transform: translateY(5px);
}
.gallery.hover-effect-slideup figure:hover {
transform: translateY(-5px);
width: 100%;
height: 100%;
margin: 0;
position: relative;
overflow: hidden;
border: none;
}
/*
img / a styles
*/
/* Изображение */
.gallery .img {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
background-size: cover;
background-position: 50% 50%;
background-position: center;
background-repeat: no-repeat;
}
.gallery.hover-effect-zoom figure:hover .img {
transform: scale(1.05);
}
.gallery img {
display: none; /* only show the img if not inside a gallery */
}
figure a {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
border-radius: 20px;
}
/*
figcaption styles
*/
.gallery figcaption,
.fancy-figure figcaption {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: #000;
color: #FFF;
text-align: center;
font-size: 75%; /* change this if you want bigger text */
background: rgba(0, 0, 0, 0.5);
opacity: 1;
cursor: pointer;
}
.gallery.caption-position-none figcaption,
.fancy-figure.caption-position-none figcaption {
/* Скрываем обычные img теги */
.gallery img {
display: none;
}
.gallery.caption-position-center figcaption,
.fancy-figure.caption-position-center figcaption {
top: 0;
padding: 40% 5px;
}
.gallery.caption-position-bottom figcaption,
.fancy-figure.caption-position-bottom figcaption {
padding: 5px;
}
.gallery.caption-effect-fade figure:not(:hover) figcaption,
.gallery.caption-effect-appear figure:not(:hover) figcaption,
.fancy-figure.caption-effect-fade figure:not(:hover) figcaption,
.fancy-figure.caption-effect-appear figure:not(:hover) figcaption {
background: rgba(0, 0, 0, 0);
opacity: 0;
}
.gallery.caption-effect-slide.caption-position-bottom figure:not(:hover) figcaption,
.fancy-figure.caption-effect-slide.caption-position-bottom figure:not(:hover) figcaption {
margin-bottom: -100%;
}
.gallery.caption-effect-slide.caption-position-center figure:not(:hover) figcaption,
.fancy-figure.caption-effect-slide.caption-position-center figure:not(:hover) figcaption {
top: 100%;
}
figcaption p {
margin: auto; /* override style in theme */
/* Ссылка на полное изображение */
.gallery figure a {
display: block;
width: 100%;
height: 100%;
}
/* Подпись скрыта для компактности */
.gallery figcaption {
display: none;
}
/* Адаптивность */
@media (max-width: 768px) {
.gallery .box {
width: 100px;
height: 100px;
}
.gallery {
gap: 6px;
}
}
@media (max-width: 480px) {
.gallery .box {
width: 80px;
height: 80px;
border-radius: 6px;
}
.gallery {
gap: 4px;
padding: 8px;
}
}
/* Эффекты для подписей */
.gallery.caption-effect-fade figcaption {
background: rgba(0, 0, 0, 0.7);
transform: none;
opacity: 0;
transition: opacity 0.3s ease;
}
.gallery.caption-effect-fade .box:hover figcaption {
opacity: 1;
}
.gallery.caption-position-center figcaption {
top: 50%;
bottom: auto;
transform: translateY(-50%);
background: rgba(0, 0, 0, 0.7);
text-align: center;
padding: 16px;
}
.gallery.caption-position-center .box:hover figcaption {
transform: translateY(-50%);
}
.gallery.caption-position-none figcaption {
display: none;
}
/* Отдельные figure элементы (не в галерее) */
.box:not(.gallery .box) {
display: inline-block;
margin: 10px;
max-width: 300px;
}
.box:not(.gallery .box) figure {
position: relative;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
.box:not(.gallery .box) .img {
position: relative;
width: 100%;
height: 200px;
background-size: cover;
background-position: center;
}
+59
View File
@@ -0,0 +1,59 @@
/* Скрываем номера страниц на мобильных устройствах */
@media (max-width: 768px) {
/* Скрываем все элементы с номерами страниц */
.pagination .page-number-item {
display: none !important;
}
/* Дополнительная защита - скрываем по классам */
.pagination .page,
.pagination .page.active,
.pagination .extra {
display: none !important;
}
/* Центрируем оставшиеся кнопки */
.pagination {
display: flex !important;
justify-content: center !important;
align-items: center !important;
gap: 1rem !important;
margin: 1rem 0 !important;
}
.pagination ul {
display: flex !important;
justify-content: center !important;
align-items: center !important;
list-style: none !important;
padding: 0 !important;
margin: 0 !important;
gap: 1rem !important;
}
/* Стилизуем кнопки Назад/Далее */
.pagination .previous,
.pagination .next {
padding: 0.8rem 1.2rem !important;
font-size: 0.9rem !important;
min-width: 80px !important;
text-align: center !important;
border-radius: 4px !important;
display: inline-block !important;
}
/* Показываем только навигационные кнопки */
.pagination li:has(.previous),
.pagination li:has(.next) {
display: block !important;
}
}
@media (max-width: 480px) {
.pagination .previous,
.pagination .next {
padding: 0.7rem 1rem !important;
font-size: 0.8rem !important;
min-width: 70px !important;
}
}
+42
View File
@@ -0,0 +1,42 @@
/* Улучшение фона для десктопного меню навигации */
#nav {
background: rgba(0, 0, 0, 0.4) !important;
backdrop-filter: blur(8px) !important;
border-radius: 10px !important;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3) !important;
border: 1px solid rgba(255, 255, 255, 0.1) !important;
}
#nav ul.links li a {
color: rgba(255, 255, 255, 0.9) !important;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5) !important;
transition: all 0.3s ease !important;
}
#nav ul.links li a:hover {
background-color: rgba(255, 255, 255, 0.2) !important;
color: white !important;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7) !important;
}
#nav ul.links li.active {
background-color: rgba(255, 255, 255, 0.2) !important;
border-radius: 5px !important;
}
#nav ul.links li.active a {
color: white !important;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7) !important;
}
/* Иконки соцсетей */
#nav ul.icons li a {
color: rgba(255, 255, 255, 0.8) !important;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5) !important;
}
#nav ul.icons li a:hover {
color: white !important;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7) !important;
transform: scale(1.1) !important;
}
+23
View File
@@ -0,0 +1,23 @@
/* Уменьшение отступов между меню и заголовками страниц */
#main > * {
padding-top: 2rem !important;
}
/* Для мобильных устройств */
@media (max-width: 736px) {
#main > * {
padding-top: 1.5rem !important;
}
}
/* Уменьшение размера заголовков на страницах */
.post header.major h1 {
font-size: 2.5rem !important;
line-height: 1.2 !important;
}
@media (max-width: 736px) {
.post header.major h1 {
font-size: 2rem !important;
}
}
+53
View File
@@ -0,0 +1,53 @@
/* Фиксируем пагинацию */
.pagination ul {
display: flex !important;
align-items: center !important;
justify-content: center !important;
list-style: none !important;
margin: 0 !important;
padding: 0 !important;
gap: 1rem !important;
}
/* Информация о страницах для десктопа */
.pagination .page-info {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
padding: 0.4rem 0.8rem !important;
font-size: 0.8rem !important;
color: #333 !important;
background: none !important;
border: none !important;
text-align: center !important;
font-weight: 300 !important;
white-space: nowrap !important;
min-width: 60px !important;
box-sizing: border-box !important;
flex-shrink: 0 !important;
}
.pagination .page-info .current-page {
color: #333 !important;
font-weight: 400 !important;
font-size: 1em !important;
}
.pagination .page-info .separator {
margin: 0 0.3rem !important;
color: #666 !important;
font-size: 0.9em !important;
font-weight: 300 !important;
}
.pagination .page-info .total-pages {
color: #333 !important;
font-weight: 300 !important;
}
/* Скрываем информацию о страницах на мобильных */
@media (max-width: 768px) {
.pagination .page-info.desktop-only {
display: none !important;
}
}
+139
View File
@@ -0,0 +1,139 @@
/* Деликатные улучшения типографики только для контента постов */
/* Улучшения только для основного контента статей */
#main article p {
line-height: 1.7;
text-align: left;
margin-bottom: 1.25rem;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
}
/* Заголовки только в статьях */
#main article h1,
#main article h2,
#main article h3 {
text-transform: none;
font-weight: 700;
text-rendering: optimizeLegibility;
}
#main article h1 {
font-size: 2.5rem;
line-height: 1.2;
margin-bottom: 1.5rem;
}
#main article h2 {
font-size: 2rem;
line-height: 1.25;
margin-bottom: 1.25rem;
}
#main article h3 {
font-size: 1.6rem;
margin-bottom: 1rem;
}
/* Ссылки в статьях - только подсветка при наведении */
#main article a {
text-decoration: none;
transition: color 0.3s ease;
}
#main article a:hover {
color: #18bfef;
}
/* Списки в статьях */
#main article ul,
#main article ol {
line-height: 1.6;
margin-bottom: 1.5rem;
}
#main article li {
margin-bottom: 0.4rem;
line-height: 1.6;
}
/* Цитаты в статьях */
#main article blockquote {
line-height: 1.6;
padding: 1.25rem 1.5rem;
margin: 1.5rem 0;
background: rgba(24, 191, 239, 0.03);
border-radius: 0 6px 6px 0;
font-style: italic;
}
/* Код в статьях */
#main article code {
background: rgba(0, 0, 0, 0.05);
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 3px;
padding: 0.2em 0.4em;
font-size: 0.9em;
}
#main article pre {
background: #f8f9fa;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 6px;
padding: 1.25rem;
margin: 1.5rem 0;
line-height: 1.4;
}
#main article pre code {
background: none;
border: none;
padding: 0;
}
/* Улучшения для контента страниц (не меню и карточки) */
#main section > p {
line-height: 1.7;
text-align: left;
margin-bottom: 1.25rem;
}
/* Ограничиваем ширину только для статей */
#main article {
max-width: 720px;
margin: 0 auto;
}
/* Улучшения контрастности только для контента */
#main article {
color: #2c3e50;
}
#main article h1,
#main article h2,
#main article h3,
#main article h4,
#main article h5,
#main article h6 {
color: #1a252f;
}
/* Адаптивность для мобильных */
@media (max-width: 768px) {
#main article h1 {
font-size: 2rem;
}
#main article h2 {
font-size: 1.7rem;
}
#main article h3 {
font-size: 1.4rem;
}
#main article {
max-width: 95%;
padding: 0 0.5rem;
}
}
+55
View File
@@ -0,0 +1,55 @@
.yandex-map-container {
width: 100%;
max-width: 100%;
margin: 2rem 0;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
background: #f5f5f5;
}
.yandex-map-container iframe {
width: 100% !important;
height: 400px !important;
border: none;
display: block;
}
/* Мобильная версия */
@media (max-width: 768px) {
.yandex-map-container {
margin: 1.5rem -1rem; /* Выходим за границы контейнера на мобильном */
border-radius: 0;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.yandex-map-container iframe {
height: 300px !important;
}
}
/* Планшетная версия */
@media (min-width: 769px) and (max-width: 1024px) {
.yandex-map-container {
margin: 2rem 0;
max-width: 100%;
}
.yandex-map-container iframe {
height: 350px !important;
}
}
/* Десктопная версия */
@media (min-width: 1025px) {
.yandex-map-container {
margin: 2.5rem auto;
max-width: 800px; /* Ограничиваем максимальную ширину на больших экранах */
}
.yandex-map-container iframe {
height: 450px !important;
}
}
/* Убираем индикатор загрузки, так как он мешает */
-1
View File
@@ -1 +0,0 @@
1
-1
View File
@@ -1 +0,0 @@
+51
View File
@@ -0,0 +1,51 @@
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name'] ?? '');
$email = trim($_POST['email'] ?? '');
$subject = trim($_POST['subject'] ?? '');
$message = trim($_POST['message'] ?? '');
// Валидация
if (empty($name) || empty($email) || empty($subject) || empty($message)) {
$error = "Все поля обязательны для заполнения.";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error = "Некорректный email адрес.";
} else {
// Подготовка email
$to = "info@sleeptrip.ru"; // ЗАМЕНИТЕ на ваш email!
$email_subject = "Вопрос с сайта: " . $subject;
$email_body = "Новый вопрос с сайта:\n\n";
$email_body .= "Имя: " . $name . "\n";
$email_body .= "Email: " . $email . "\n";
$email_body .= "Тема: " . $subject . "\n\n";
$email_body .= "Сообщение:\n" . $message . "\n\n";
$email_body .= "---\n";
$email_body .= "Отправлено с: " . $_SERVER['HTTP_HOST'] . "\n";
$email_body .= "Дата: " . date('Y-m-d H:i:s') . "\n";
$email_body .= "IP: " . $_SERVER['REMOTE_ADDR'] . "\n";
$headers = "From: noreply@sleeptrip.ru\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
// Отправка email
if (mail($to, $email_subject, $email_body, $headers)) {
$success = "Сообщение отправлено! Мы ответим вам в ближайшее время.";
// Очистить форму
$name = $email = $subject = $message = '';
} else {
$error = "Ошибка отправки. Попробуйте еще раз или свяжитесь через Telegram.";
}
}
}
// Перенаправление обратно на страницу с результатом
if (isset($success)) {
header("Location: /ask/?success=" . urlencode($success));
exit;
} elseif (isset($error)) {
header("Location: /ask/?error=" . urlencode($error));
exit;
}
?>
+61
View File
@@ -0,0 +1,61 @@
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name'] ?? '');
$email = trim($_POST['email'] ?? '');
$phone = trim($_POST['phone'] ?? '');
$bvs_number = trim($_POST['bvs_number'] ?? '');
$trip_period = trim($_POST['trip_period'] ?? '');
$consent = isset($_POST['consent']) ? trim($_POST['consent']) : '';
$age_confirm = isset($_POST['age_confirm']) ? trim($_POST['age_confirm']) : '';
// Валидация
if (empty($name) || empty($email) || empty($consent) || empty($age_confirm)) {
$error = "Обязательные поля: Имя, Email, Согласие на обработку данных, Подтверждение возраста.";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error = "Некорректный email адрес.";
} elseif ($consent !== 'agree') {
$error = "Для отправки заявки необходимо согласие на обработку персональных данных.";
} elseif ($age_confirm !== '18+') {
$error = "Для отправки заявки необходимо подтверждение возраста 18+.";
} else {
// Подготовка email
$to = "info@sleeptrip.ru"; // ЗАМЕНИТЕ на ваш email!
$email_subject = "Новая заявка на поездку от " . $name;
$email_body = "Новая заявка на планирование поездки:\n\n";
$email_body .= "Имя: " . $name . "\n";
$email_body .= "Email: " . $email . "\n";
$email_body .= "Телефон: " . ($phone ?: 'не указан') . "\n";
$email_body .= "Учётный номер БВС/Вариант поездки: " . ($bvs_number ?: 'не указано') . "\n";
$email_body .= "Период поездки: " . ($trip_period ?: 'не выбран') . "\n";
$email_body .= "Возраст 18+: " . ($age_confirm === '18+' ? 'Подтверждено' : 'Не подтверждено') . "\n";
$email_body .= "Согласие на обработку данных: " . ($consent === 'agree' ? 'Да' : 'Нет') . "\n\n";
$email_body .= "---\n";
$email_body .= "Отправлено с: " . $_SERVER['HTTP_HOST'] . "\n";
$email_body .= "Дата: " . date('Y-m-d H:i:s') . "\n";
$email_body .= "IP: " . $_SERVER['REMOTE_ADDR'] . "\n";
$headers = "From: noreply@sleeptrip.ru\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
// Отправка email
if (mail($to, $email_subject, $email_body, $headers)) {
$success = "Заявка отправлена! Мы свяжемся с вами в ближайшее время.";
// Очистить форму
$name = $email = $phone = $bvs_number = $trip_period = $consent = $age_confirm = '';
} else {
$error = "Ошибка отправки. Попробуйте еще раз или свяжитесь через Telegram.";
}
}
}
// Перенаправление обратно на страницу с результатом
if (isset($success)) {
header("Location: /plan/?success=" . urlencode($success));
exit;
} elseif (isset($error)) {
header("Location: /plan/?error=" . urlencode($error));
exit;
}
?>