Files
hotel777/public/style.css
2026-05-03 12:31:01 +05:00

536 lines
10 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;
margin: 0;
font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
/* ШАПКА */
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);
}
.logo {
font-weight: 800;
font-size: 1.2rem;
letter-spacing: 1px;
}
.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);
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.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;
font-size: 1rem;
}
.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;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.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;
text-align: center;
}
.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;
cursor: pointer;
}
.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 (модерн) */
.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;
}
}
/* Модальное окно для фактов о городах */
.modal {
display: none;
position: fixed;
z-index: 2000;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.7);
justify-content: center;
align-items: center;
}
.modal-content {
background: var(--white);
margin: 10% auto;
padding: 2rem;
border-radius: 30px;
width: 90%;
max-width: 500px;
box-shadow: 0 30px 50px rgba(0, 0, 0, 0.3);
position: relative;
animation: fadeIn 0.3s ease;
}
.modal-close {
position: absolute;
top: 1rem;
right: 1.5rem;
font-size: 2rem;
cursor: pointer;
color: #666;
transition: 0.2s;
}
.modal-close:hover {
color: var(--primary);
}
.modal-content h3 {
color: var(--primary);
margin-bottom: 1rem;
font-size: 1.8rem;
}
.modal-facts {
display: flex;
flex-direction: column;
gap: 1rem;
margin-top: 1rem;
}
.modal-fact-item {
padding: 0.8rem;
background: var(--bg);
border-radius: 20px;
border-left: 4px solid var(--secondary);
font-size: 1rem;
}
/* Блок с расстояниями до городов (карточки в стиле fact-card) */
.location-cards {
display: flex;
flex-wrap: wrap;
gap: 1rem;
justify-content: center;
}
.location-card {
background: var(--white); /* как у fact-card */
padding: 1rem;
border-radius: 20px; /* как у fact-card */
text-align: center;
min-width: 120px;
transition: transform 0.2s ease, box-shadow 0.2s ease;
cursor: pointer;
border: 1px solid rgba(0, 0, 0, 0.03);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
}
.location-card:hover {
transform: translateY(-5px); /* как у fact-card */
box-shadow: 0 20px 30px rgba(0, 0, 0, 0.1);
}
.location-icon {
font-size: 2rem; /* увеличенная иконка, как .fact-icon */
margin-bottom: 0.5rem;
}
.location-title {
font-weight: 600;
color: var(--primary);
font-size: 0.9rem; /* под размер .fact-text */
}
.location-distance {
font-size: 0.9rem;
color: #666;
}