/* Базовые переменные и шрифты (если их нет в глобальном style.css) */
:root {
    --bg-sand: #EFECE1;    
    --dark-brown: #332315; 
    --olive: #4E5941;      
    --red: #a80019;       
    --text-dark: #2A2A2A;  
    --white: #FFFFFF;
    --gold: #d4a373;
    
    /* Переменные шрифтов */
    --serif: 'Playfair Display', serif;
    --sans: 'Manrope', sans-serif;
    
    --transition: all 0.4s ease;
}

/* Применяем Manrope ко всему тексту страницы */
body {
    font-family: var(--sans);
    color: var(--text-dark);
}

/* --- 2. ВНУТРЕННИЙ HERO --- */
.inner-hero { position: relative; height: 55vh; min-height: 400px; display: flex; align-items: center; justify-content: center; text-align: center; }
.inner-hero-bg { position: absolute; inset: 0; z-index: 1; background-size: cover; background-position: center; }
.inner-hero-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.3) 100%); }

.inner-hero-content { position: relative; z-index: 3; color: var(--white); padding: 0 20px; text-shadow: 0 4px 20px rgba(0,0,0,0.5); margin-top: 50px; }
.breadcrumbs { font-size: 11px; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 25px; opacity: 0.8; font-weight: 600; }
.breadcrumbs a { color: var(--white); transition: var(--transition); }
.breadcrumbs a:hover { color: var(--red); }
.breadcrumbs span { margin: 0 10px; opacity: 0.5; }

.inner-hero h1 { font-size: clamp(36px, 5vw, 64px); font-family: var(--serif); text-transform: uppercase; letter-spacing: 2px; margin: 0; }

/* --- 3. КОНТАКТЫ И ФОРМА --- */
.contact-section { padding: 100px 0; background: var(--white); }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }

.contact-info { padding-right: 20px; }
.info-item { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 35px; cursor: default; }
.info-icon { width: 45px; height: 45px; border: 1px solid rgba(51, 35, 21, 0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--dark-brown); font-size: 18px; flex-shrink: 0; transition: var(--transition); }
.info-item:hover .info-icon { background: var(--red); color: var(--white); border-color: var(--red); }

.info-text h4 { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; color: var(--text-dark); opacity: 0.6; margin-bottom: 8px; font-weight: 600; }
.info-text p, .info-text a { font-family: var(--serif); font-size: 22px; color: var(--dark-brown); line-height: 1.4; transition: var(--transition); }
.info-text a:hover { color: var(--red); }
.info-text .sub-text { font-family: var(--sans); font-size: 13px; color: var(--text-dark); opacity: 0.6; display: block; margin-top: 5px; font-weight: 500; }

.cta-buttons { display: flex; gap: 15px; margin: 40px 0; flex-wrap: wrap; }

.socials-wrapper { display: flex; gap: 15px; align-items: center; }
.socials-wrapper span { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-right: 10px; opacity: 0.7; }
.socials-wrapper a { width: 40px; height: 40px; border: 1px solid rgba(51, 35, 21, 0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 18px; color: var(--dark-brown); transition: var(--transition); }
.socials-wrapper a:hover { background: var(--red); color: var(--white); border-color: var(--red); transform: translateY(-3px); }

.contact-form-wrapper { background: var(--bg-sand); padding: 50px; border-radius: 8px; box-shadow: 0 20px 50px rgba(0,0,0,0.05); }
.contact-form-wrapper h3 { font-family: var(--serif); font-size: 28px; margin-bottom: 15px; color: var(--dark-brown); }
.contact-form-wrapper p { font-size: 15px; color: var(--text-dark); opacity: 0.8; margin-bottom: 35px; line-height: 1.6; font-weight: 500; }

.form-group { margin-bottom: 25px; }
.form-control { width: 100%; background: transparent; border: none; border-bottom: 1px solid rgba(51, 35, 21, 0.2); padding: 12px 0; font-family: var(--sans); font-size: 15px; color: var(--dark-brown); font-weight: 500; outline: none; transition: var(--transition); box-sizing: border-box; }
.form-control::placeholder { color: rgba(51, 35, 21, 0.4); font-weight: 400; }
.form-control:focus { border-bottom-color: var(--red); }
textarea.form-control { resize: vertical; min-height: 80px; }

.checkbox-group { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 35px; }
.checkbox-group input { margin-top: 3px; accent-color: var(--red); cursor: pointer; }
.checkbox-group label { font-size: 13px; font-weight: 500; color: var(--text-dark); opacity: 0.8; line-height: 1.5; cursor: pointer; }
.checkbox-group label a { color: var(--dark-brown); text-decoration: underline; font-weight: 600; transition: var(--transition); }
.checkbox-group label a:hover { color: var(--red); }

/* --- Стили для Contact Form 7, чтобы она выглядела как в макете --- */
.wpcf7-form-control-wrap { display: block; width: 100%; }
.wpcf7-list-item { margin: 0; }
.wpcf7-not-valid-tip { font-size: 12px; color: var(--red); margin-top: 5px; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: var(--red); }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--olive); }

/* --- 4. СХЕМА ПРОЕЗДА И КАРТА --- */
.route-section { padding: 100px 0; background: var(--bg-sand); }
.route-intro { max-width: 800px; margin: 0 auto 50px; text-align: center; font-size: 16px; font-weight: 500; line-height: 1.8; opacity: 0.9; }

.route-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-bottom: 50px; }
.route-card { background: var(--white); padding: 40px; border-radius: 8px; box-shadow: 0 15px 40px rgba(0,0,0,0.03); transition: var(--transition); border-left: 4px solid transparent; }
.route-card:hover { transform: translateY(-5px); box-shadow: 0 20px 50px rgba(0,0,0,0.06); border-left-color: var(--red); }
.route-card h4 { font-family: var(--serif); font-size: 22px; margin-bottom: 15px; color: var(--dark-brown); }
.route-card p { font-size: 15px; color: var(--text-dark); line-height: 1.7; opacity: 0.8; font-weight: 500; }
.coords { font-family: var(--serif); font-size: 32px; font-weight: 600; color: var(--gold); display: block; margin-top: 15px; }

.map-wrapper { width: 100%; height: 500px; border-radius: 8px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,0.08); background: var(--white); }
.map-wrapper iframe { filter: grayscale(0.4) sepia(0.2) contrast(1.1); width: 100%; height: 100%; }

/* --- 5. РЕКВИЗИТЫ --- */
.requisites-section { padding: 80px 0; background: var(--white); }
.req-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.req-item h5 { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--text-dark); opacity: 0.5; margin-bottom: 8px; letter-spacing: 1px; }
.req-item p { font-size: 14px; font-weight: 600; color: var(--dark-brown); }

/* --- АДАПТИВ ИЗ ВАШЕГО МАКЕТА --- */
@media(max-width: 1024px) {
    .contact-grid { grid-template-columns: 1fr; gap: 60px; }
    .contact-form-wrapper { max-width: 800px; margin: 0 auto; }
    .route-cards { grid-template-columns: 1fr; }
    .req-grid { grid-template-columns: repeat(2, 1fr); }
}

@media(max-width: 768px) {
    .inner-hero { height: auto; padding: 160px 0 80px; }
    .contact-section, .route-section, .requisites-section { padding: 60px 0; }
    .info-text p, .info-text a { font-size: 18px; }
    .cta-buttons { flex-direction: column; gap: 15px; }
    .btn { width: 100%; }
    .contact-form-wrapper { padding: 30px 20px; }
    .route-card { padding: 30px 20px; }
    .coords { font-size: 26px; }
    .map-wrapper { height: 350px; }
    .req-grid { grid-template-columns: 1fr; gap: 25px; }
}

/* Обработка загруженных картинок-иконок */
.info-icon img.custom-icon-img { 
    width: 20px; 
    height: 20px; 
    object-fit: contain; 
    transition: var(--transition); 
}
/* Делаем загруженную картинку белой при наведении */
.info-item:hover .info-icon img.custom-icon-img { 
    filter: brightness(0) invert(1); 
}

.btn { 
    
    border-radius: 5px; 
}

.btn img.btn-custom-icon { 
    width: 16px; 
    height: 16px; 
    object-fit: contain; 
    margin-right: 5px; 
    transition: var(--transition);
}

.socials-wrapper a img.soc-custom-img { 
    width: 20px; 
    height: 20px; 
    object-fit: contain; 
    transition: var(--transition);
}
/* Делаем соц. иконку белой при наведении */
.socials-wrapper a:hover img.soc-custom-img { 
    filter: brightness(0) invert(1); 
}

/* Очистка стилей для шорткода (если плагин добавит свои отступы) */
.custom-shortcode-form { margin-top: 20px; }

.info-text p, .info-text a { 
    font-family: var(--sans); /* Заменили --serif на --sans */
    font-size: 22px; 
    color: var(--dark-brown); 
    line-height: 1.4; 
    transition: var(--transition); 
}

.coords { 
    font-family: var(--sans); /* Заменили --serif на --sans */
    font-size: 32px; 
    font-weight: 600; 
    color: var(--gold); 
    display: block; 
    margin-top: 15px; 
}