Files
hotel777/public/style.css
2026-05-02 21:51:32 +05:00

245 lines
7.2 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
:root {
--primary: #005f73;
--secondary: #0a9396;
--light: #e9d8a6;
--dark: #001219;
--bg: #f8f9fa;
--white: #ffffff;
--input-bg: #f0f4f5;
}
html { font-size: 16px; scroll-behavior: smooth; }
@media (min-width: 2000px) { html { font-size: 22px; } }
body { background: var(--bg); color: var(--dark); line-height: 1.6; }
/* ШАПКА */
header {
background: rgba(0, 18, 25, 0.95);
color: var(--white);
padding: 1rem 5%;
position: fixed;
width: 90%;
z-index: 100;
display: flex;
justify-content: space-between;
align-items: center;
backdrop-filter: blur(10px);
box-shadow: 0 2px 15px rgba(0,0,0,0.2);
}
.lang-switch {
background: rgba(255,255,255,0.1);
color: var(--white);
border: 1px solid rgba(255,255,255,0.3);
padding: 6px 10px;
border-radius: 8px;
cursor: pointer;
outline: none;
}
.lang-switch option { background: var(--dark); color: var(--white); }
nav a { color: var(--white); text-decoration: none; margin-left: clamp(10px, 2vw, 20px); font-weight: 500; transition: 0.3s; font-size: 0.9rem; }
nav a:hover { color: var(--secondary); }
/* HERO */
.hero {
height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center;
text-align: center; color: var(--white); padding: 0 20px;
background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('img/h777-tiny.webp') center/cover;
transition: background-image 1.5s ease-in-out;
}
.hero h1 { font-size: clamp(2.5rem, 8vw, 5rem); font-weight: 800; line-height: 1.1; }
/* СЕКЦИИ */
section { padding: 6rem 10%; }
.white-bg { background: var(--white); }
.section-title { font-size: clamp(2rem, 5vw, 3rem); color: var(--primary); margin-bottom: 3.5rem; text-align: center; }
.section-title::after { content: ''; display: block; width: 60px; height: 4px; background: var(--secondary); margin: 15px auto; border-radius: 2px; }
.about-grid { display: grid; grid-template-columns: 1fr; gap: 4rem; align-items: center; }
@media (min-width: 992px) { .about-grid { grid-template-columns: 1fr 1fr; } }
.about-image-wrapper { width: 100%; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 24px; box-shadow: 0 20px 40px rgba(0,0,0,0.1); }
.about-img { width: 100%; height: 100%; object-fit: cover; transition: 0.6s; }
.about-image-wrapper:hover .about-img { transform: scale(1.05); }
.signpost-img { max-width: 100%; height: auto; display: block; margin: 0 auto; }
/* Анимированная картинка-указатель */
.location-img-animate {
transition: transform 0.8s cubic-bezier(0.2, 0.9, 0.4, 1.1), opacity 0.8s ease;
transform: scale(0.85);
opacity: 0;
}
.location-img-animate.in-view {
transform: scale(1);
opacity: 1;
}
/* ФОРМА */
.booking-form {
max-width: 550px; margin: 0 auto; background: var(--white); padding: 3rem;
border-radius: 30px; box-shadow: 0 30px 60px rgba(0,18,25,0.1); border: 1px solid rgba(0,0,0,0.05);
}
.form-group { margin-bottom: 1.5rem; }
.form-group label { display: block; margin-bottom: 0.5rem; font-weight: 600; color: var(--dark); }
.form-group input {
width: 100%; padding: 14px; border: 2px solid transparent;
background: var(--input-bg); border-radius: 12px; transition: 0.3s;
}
.form-group input:focus { outline: none; border-color: var(--secondary); background: var(--white); }
.btn {
display: inline-block; padding: 16px 30px; background: var(--secondary);
color: var(--white); border-radius: 14px; font-weight: 700; border: none; cursor: pointer; transition: 0.3s;
}
.btn:hover { background: var(--primary); transform: translateY(-3px); }
.full-width { width: 100%; }
/* COOKIE & ANIMATIONS */
.cookie-banner {
position: fixed; bottom: -200px; left: 50%; transform: translateX(-50%); width: 90%; max-width: 600px;
background: var(--dark); color: var(--white); padding: 20px; border-radius: 20px; transition: 0.6s; z-index: 1000;
}
.cookie-banner.show { bottom: 20px; }
.cookie-btn { background: var(--light); border: none; padding: 8px 20px; border-radius: 8px; font-weight: 700; cursor: pointer; margin-top: 10px; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
.animate { animation: fadeIn 1s ease-out forwards; opacity: 0; }
.delay-1 { animation-delay: 0.3s; }
.delay-2 { animation-delay: 0.6s; }
footer { background: var(--dark); color: rgba(255,255,255,0.5); text-align: center; padding: 3rem; }
/* Блок с расстояниями до городов (разноцветные карточки) */
.location-cards {
display: flex;
flex-wrap: wrap;
gap: 1rem;
justify-content: center;
}
.location-card {
padding: 1rem 1.5rem;
border-radius: 12px;
text-align: center;
min-width: 120px;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.location-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}
.location-icon {
font-size: 1.5rem;
margin-bottom: 0.5rem;
}
.location-title {
font-weight: 600;
color: var(--primary);
}
.location-distance {
font-size: 0.9rem;
color: #666;
}
/* Кнопка показа карты */
.show-map-btn {
background: var(--primary);
transition: 0.3s;
}
.show-map-btn:hover {
background: var(--secondary);
transform: translateY(-2px);
}
/* Карта под картинкой (скрыта по умолчанию) */
.map-container {
width: 100%;
height: 400px;
border-radius: 24px;
overflow: hidden;
box-shadow: 0 20px 40px rgba(0,0,0,0.1);
margin-top: 1rem;
display: none;
}
@media (max-width: 768px) {
.map-container {
height: 300px;
}
}
/* Дополнительные стили для колонки с картинкой (вертикальное расположение) */
.about-image-wrapper {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
/* Стили для обновлённой секции about */
.modern-about {
gap: 3rem;
}
.about-text h3 {
font-size: 1.8rem;
color: var(--primary);
margin-bottom: 1rem;
}
.main-description {
font-size: 1.1rem;
line-height: 1.6;
color: #2c3e2f;
margin-bottom: 1.5rem;
}
.extra-description {
background: linear-gradient(135deg, #e0f2e9 0%, #f0f9f4 100%);
padding: 1.2rem;
border-radius: 20px;
margin: 1.5rem 0;
font-style: italic;
border-left: 4px solid var(--secondary);
font-size: 0.95rem;
}
.facts-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
margin-top: 2rem;
}
.fact-card {
background: var(--white);
padding: 1rem;
border-radius: 20px;
text-align: center;
box-shadow: 0 10px 20px rgba(0,0,0,0.05);
transition: transform 0.2s, box-shadow 0.2s;
border: 1px solid rgba(0,0,0,0.03);
}
.fact-card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 30px rgba(0,0,0,0.1);
}
.fact-icon {
font-size: 2rem;
margin-bottom: 0.5rem;
}
.fact-text {
font-weight: 500;
color: var(--dark);
font-size: 0.9rem;
}
@media (max-width: 768px) {
.facts-grid {
grid-template-columns: 1fr 1fr;
}
.about-text h3 {
font-size: 1.4rem;
}
}
/* Дополнительно улучшаем общий вид кнопок и карточек */
.btn {
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.about-image-wrapper {
box-shadow: 0 30px 40px rgba(0,0,0,0.08);
}