/*
 Theme Name:   Lumoria Child
 Theme URI:    https://wdtlumoria.wpengine.com/
 Description:  Lumoria Child Theme
 Author:       the WeDesignTech team
 Author URI:   https://wedesignthemes.com/
 Template:     lumoria
 Version:      1.0.8
 Text Domain:  lumoria-child
 Tested up to: 6.8 
 Requires PHP: 7.4
 Tags: Blog,Portfolio
 License: GNU General Public License v2 or later License URI: https: //www.gnu.org/licenses/gpl-2.0.html
 Copyright (C) 2025 designthemes. All rights reserved.
*/
/* ===== ECOGEO brand overrides (Stage 2 + Stage 3 fonts) ===== */
:root{--ecogeo-green:#1F6B3B;--ecogeo-green-2:#2E9E5B;--ecogeo-graphite:#1C3A4B;}
/* Body / all running text -> Montserrat (Stage 3; was Inter) */
body,p,li,blockquote,.elementor-widget-text-editor,.entry-content{font-family:"Montserrat",sans-serif;}
/* Headings + buttons -> Unbounded (Stage 3; enforcement over kit/child overrides) */
h1,h2,h3,h4,h5,h6,
.elementor-heading-title,.wdt-heading-title,.entry-title,.page-title,
.elementor-button,.elementor-button-text,
button,input[type="submit"],.wp-block-button__link,.ecg-btn{
  font-family:"Unbounded",sans-serif !important;
}

/* ECOGEO clients grid (Block 6) */
.ecogeo-clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin:28px 0;}
.ecogeo-client{display:flex;align-items:center;justify-content:center;min-height:96px;padding:18px;background:#fff;border:1px solid #e3e8e5;border-radius:12px;text-align:center;transition:.2s ease;height:100%;}
.ecogeo-client:hover{box-shadow:0 8px 24px rgba(31,107,59,.12);transform:translateY(-2px);border-color:#cfe3d7;}
.ecogeo-client img{max-height:58px;width:auto;filter:grayscale(100%);opacity:.85;transition:.2s;}
.ecogeo-client:hover img{filter:none;opacity:1;}
.ecogeo-client-name{font-weight:600;color:#1C3A4B;font-size:14px;line-height:1.35;font-family:"Montserrat",sans-serif;}
.ecogeo-client-link{text-decoration:none;display:block;height:100%;}

/* neutralize leftover WP preset gold (Block 4) */
:root{--wp--preset--color--primary:#1F6B3B !important;}
.ecogeo-home-clients{padding:64px 0;background:#F5F7F6;}
.ecogeo-home-clients h2{text-align:center;margin-bottom:8px;font-family:"Montserrat",sans-serif;color:#1A1A1A;}
.ecogeo-home-clients .ecogeo-sub{text-align:center;color:#5A6B72;margin-bottom:28px;}

/* ECOGEO inner-page components (Block 5) */
.ecg-btn{display:inline-block;background:#1F6B3B;color:#fff !important;padding:12px 26px;border-radius:8px;font-weight:600;text-decoration:none;font-family:"Montserrat",sans-serif;transition:.2s;}
.ecg-btn:hover{background:#2E9E5B;color:#fff;}
.ecg-steps{list-style:none;counter-reset:s;padding:0;margin:28px 0;}
.ecg-steps li{position:relative;padding:18px 18px 18px 76px;margin-bottom:16px;background:#fff;border:1px solid #e3e8e5;border-radius:12px;}
.ecg-steps li:before{counter-increment:s;content:counter(s);position:absolute;left:18px;top:18px;width:42px;height:42px;background:#1F6B3B;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:"Montserrat",sans-serif;}
.ecg-steps li strong{display:block;font-family:"Montserrat",sans-serif;color:#1A1A1A;margin-bottom:4px;font-size:17px;}
.ecg-team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin:28px 0;}
.ecg-team-card{background:#fff;border:1px solid #e3e8e5;border-radius:14px;padding:24px;text-align:center;transition:.2s;}
.ecg-team-card:hover{box-shadow:0 10px 28px rgba(31,107,59,.12);transform:translateY(-3px);}
.ecg-team-ava{width:84px;height:84px;border-radius:50%;margin:0 auto 14px;background:linear-gradient(135deg,#1F6B3B,#2E9E5B);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;font-family:"Montserrat",sans-serif;}
.ecg-team-name{font-weight:700;font-family:"Montserrat",sans-serif;color:#1A1A1A;font-size:16px;margin-bottom:4px;}
.ecg-team-pos{color:#1F6B3B;font-weight:600;font-size:14px;margin-bottom:2px;}
.ecg-team-exp{color:#5A6B72;font-size:13px;}
.ecg-faq details{background:#fff;border:1px solid #e3e8e5;border-radius:10px;margin-bottom:12px;padding:0 18px;}
.ecg-faq summary{cursor:pointer;font-weight:600;font-family:"Montserrat",sans-serif;color:#1A1A1A;padding:16px 0;list-style:none;}
.ecg-faq summary::-webkit-details-marker{display:none;}
.ecg-faq details[open] summary{color:#1F6B3B;}
.ecg-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:24px 0;}
.ecg-contact-card{background:#fff;border:1px solid #e3e8e5;border-radius:12px;padding:22px;}
.ecg-contact-card h4{font-family:"Montserrat",sans-serif;color:#1F6B3B;margin:0 0 10px;}
.ecg-map{margin:28px 0;border-radius:12px;overflow:hidden;border:1px solid #e3e8e5;}

/* ============================================================
 * ECOGEO Stage 3-FIX (2026-06-26)
 * Part 4: fonts. Theme drove everything off Josefin Sans (no Cyrillic)
 * via CSS vars --wdtFontTypo_*. Override the vars + explicit selectors.
 * Part 5: kill theme Title Case (text-transform:capitalize) for RU.
 * ============================================================ */
:root{
  --wdtFontTypo_Base:"Montserrat",sans-serif !important;
  --wdtFontTypo_Ext:"Montserrat",sans-serif !important;
  --wdtFontTypo_Alt:"Unbounded",sans-serif !important;
}
body,button,input,textarea,select,optgroup,p,li,blockquote,figcaption,label,
.elementor-widget-text-editor,.entry-content{font-family:"Montserrat",sans-serif !important;}
h1,h2,h3,h4,h5,h6,
h1 *,h2 *,h3 *,h4 *,h5 *,h6 *,
.wdt-heading-title,.elementor-heading-title,.entry-title,.page-title,.widget-title,
.elementor-button,.elementor-button-text,.wdt-button,.wdt-button-text,
button,input[type="submit"],input[type="button"],.wp-block-button__link,.ecg-btn,.wpcf7-submit{
  font-family:"Unbounded",sans-serif !important;
}
/* Part 5 — remove Title Case (capitalize) -> normal RU sentence case */
h1,h2,h3,h4,h5,h6,.wdt-heading-title,.elementor-heading-title,.entry-title,.page-title,.widget-title,
.elementor-button,.wdt-button,button,input[type="submit"],input[type="button"],.wp-block-button__link,.wpcf7-submit,
.widget.widget_categories ul li>a,
.wdt-header-menu a,.main-menu a,.menu-item a,nav a,
.wdt-tabs-list .wdt-content-title,.wdt-tabs-list .wdt-content-subtitle{text-transform:none !important;}

/* ============================================================
 * ECOGEO Stage 3-FIX — hero slide split form (native wdt slider)
 * ============================================================ */
.ecg-slide-text{color:#fff;}
.ecg-slide-text .wdt-heading-title,.ecg-slide-text .wdt-heading-title-wrapper{color:#fff !important;}
.ecg-slide-text .wdt-heading-content-wrapper,.ecg-slide-text p{color:rgba(255,255,255,.9) !important;}
/* CF7 form inside slide */
.ecg-slide-form .ecg-hero-cf7{display:flex;gap:10px;flex-wrap:wrap;align-items:center;max-width:480px;margin-top:6px;}
.ecg-slide-form .wpcf7-form-control-wrap{flex:1 1 200px;display:block;}
.ecg-slide-form input[type="tel"]{width:100%;height:52px;border:1.5px solid #d7e0db;border-radius:10px;padding:0 16px;font-family:"Montserrat",sans-serif;font-size:16px;color:#1A1A1A;background:#fff;}
.ecg-slide-form input[type="tel"]:focus{outline:none;border-color:#2E9E5B;box-shadow:0 0 0 3px rgba(46,158,91,.18);}
.ecg-slide-form .wpcf7-response-output{margin:10px 2px 0 !important;font-size:13px;border-radius:8px;padding:8px 12px !important;background:#fff;color:#1A1A1A;}
.ecg-slide-form .wpcf7-not-valid-tip{font-size:12px;color:#ffd9d9;}
.ecg-form-micro{margin:10px 2px 0;font-size:12px;line-height:1.4;color:rgba(255,255,255,.72);font-family:"Montserrat",sans-serif;max-width:480px;}
.ecg-slide-img{min-height:600px;}
@media (max-width:1024px){.ecg-slide-img{min-height:280px;}}
@media (max-width:480px){.ecg-slide-form .ecg-hero-cf7{flex-direction:column;}.ecg-slide-form input[type="submit"]{width:100%;}}

/* ============================================================
 * ECOGEO Stage 3-FIX3 (2026-06-26) — modern PILL submit, hero-scoped
 * White pill + dark-green Unbounded text + green arrow.
 * Arrow = background-SVG (CF7 submit is <input>, has no ::after);
 * hover shifts background-position-x so the arrow slides right.
 * Scoped to hero only (carousel / .ecg-slide-form) — contacts CF7 2557 untouched.
 * ============================================================ */
.wdt-advanced-carousel .wpcf7 input[type="submit"],
.wdt-advanced-carousel .wpcf7-submit,
.ecg-slide-form .wpcf7 input[type="submit"],
.ecg-slide-form .wpcf7-submit{
  background-color:#ffffff !important;
  color:#1F6B3B !important;
  border:0 !important;
  border-radius:999px !important;
  font-family:"Unbounded",sans-serif !important;
  font-weight:600 !important;
  font-size:15px !important;
  text-transform:none !important;
  letter-spacing:.2px !important;
  height:52px !important;
  line-height:1 !important;
  padding:0 48px 0 28px !important;
  margin:0 !important;
  opacity:1 !important;
  text-shadow:none !important;
  cursor:pointer !important;
  box-shadow:0 6px 18px rgba(0,0,0,.18) !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%231F6B3B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13'/%3E%3Cpath d='M12 5l7 7-7 7'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 24px center !important;
  background-size:18px 18px !important;
  -webkit-appearance:none !important;appearance:none !important;
  transition:transform .25s ease, box-shadow .25s ease, background-position .25s ease !important;
}
.wdt-advanced-carousel .wpcf7 input[type="submit"]:hover,
.wdt-advanced-carousel .wpcf7-submit:hover,
.ecg-slide-form .wpcf7 input[type="submit"]:hover,
.ecg-slide-form .wpcf7-submit:hover{
  background-color:#ffffff !important;
  color:#1F6B3B !important;
  transform:translateY(-2px) !important;
  box-shadow:0 12px 26px rgba(0,0,0,.26) !important;
  background-position:right 20px center !important;
}
.wdt-advanced-carousel .wpcf7 input[type="submit"]:active,
.wdt-advanced-carousel .wpcf7-submit:active,
.ecg-slide-form .wpcf7-submit:active{
  transform:translateY(0) !important;
  box-shadow:0 4px 12px rgba(0,0,0,.18) !important;
}
/* AJAX spinner glyph visible (green) on the white button */
.wdt-advanced-carousel .wpcf7-spinner,
.ecg-slide-form .wpcf7-spinner{background-color:#1F6B3B !important;}

/* ============================================================
   ECOGEO Этап 7 — ФИКС ХЕДЕРА (глобально): меню в одну строку,
   вертикальное выравнивание логотип/меню/контакты, без пустот.
   Скоуп — только десктоп (≥1025px); мобильное off-canvas меню не трогаем.
   ============================================================ */
@media (min-width:1025px){
  /* вертикально центрировать ряды хедера (логотип — меню — телефон/кнопка) */
  .wdt-header-tpl .e-con.e-flex{align-items:center;}
  /* десктоп-навигация — блочный ul с inline-пунктами: держим ВСЕ 6 в одну строку */
  .wdt-header-tpl .wdt-primary-nav{white-space:nowrap !important;overflow:visible !important;}
  .wdt-header-tpl .wdt-primary-nav > li{white-space:nowrap;margin:0 !important;letter-spacing:0;}
  .wdt-header-tpl .wdt-primary-nav > li > a{padding:0 7px !important;font-size:14px !important;letter-spacing:0 !important;}
  /* меню занимает всю ширину своей колонки, ничего не обрезаем */
  .wdt-header-tpl .wdt-header-menu,
  .wdt-header-tpl .wdt-header-menu .menu-container{width:100%;overflow:visible !important;}
  /* компактный логотип: не даём колонке логотипа «съедать» ширину меню */
  .wdt-header-tpl .wdt-logo img,
  .wdt-header-tpl .wdt-logo a > img{max-height:56px;max-width:200px;width:auto;object-fit:contain;}
}

/* ============================================================
   ECOGEO Этап 8 — фикс выпадающего меню «Услуги».
   Причина overlap: Этап-7 white-space:nowrap на .wdt-primary-nav
   каскадил на вложенный .sub-menu → пункты в одну строку внахлёст.
   Решение: сброс для подменю, аккуратный вертикальный столбик.
   ============================================================ */
@media (min-width:1025px){
  .wdt-header-tpl .wdt-primary-nav .sub-menu{
    white-space:normal !important;
    width:max-content !important; min-width:255px; max-width:350px;
    display:block !important;
  }
  .wdt-header-tpl .wdt-primary-nav .sub-menu li,
  .wdt-header-tpl .wdt-primary-nav .sub-menu > li{
    display:block !important; width:100% !important; float:none !important;
    white-space:normal !important; margin:0 !important; letter-spacing:0 !important;
  }
  .wdt-header-tpl .wdt-primary-nav .sub-menu li > a{
    display:block !important; white-space:normal !important;
    padding:9px 18px !important; line-height:1.32; font-size:14px !important;
    letter-spacing:0 !important;
  }
}
/* пустые структурные li в подменю (overlay-заглушки темы) — убрать верхний пробел */
@media (min-width:1025px){
  .wdt-header-tpl .wdt-primary-nav .sub-menu li:empty{display:none !important;}
  .wdt-header-tpl .wdt-primary-nav .sub-menu li:not(:has(a)){display:none !important;}
}
/* ============================================================
   Часть 4 (2026-07-24) — пустота (~36px) над первым пунктом выпадашки хедера.
   Причина: правило Этапа-8 выше `.sub-menu li{display:block!important}` перекрыло
   тему-скрытие служебных МОБИЛЬНЫХ li (.close-nav 18px + .go-back 18px), которые
   тема прячет на десктопе (min-width:1281) БЕЗ !important → они снова заняли высоту.
   .see-all уже скрыт правилом :not(:has(a)) выше. Эти li — реальные контролы
   МОБИЛЬНОГО off-canvas меню (× закрыть / ‹ назад / смотреть все) → НЕ удаляем из
   разметки, только скрываем в ДЕСКТОПНОМ меню (.menu-container) на брейкпоинте темы.
   Мобильное меню живёт в отдельном .mobile-nav-container/.mobile-menu — не затронуто.
   ============================================================ */
@media (min-width:1281px){
  .wdt-header-tpl .menu-container .wdt-primary-nav .sub-menu > li.close-nav,
  .wdt-header-tpl .menu-container .wdt-primary-nav .sub-menu > li.go-back,
  .wdt-header-tpl .menu-container .wdt-primary-nav .sub-menu > li.see-all{
    display:none !important;
  }
}

/* ECOGEO Этап 8 — фото-ряд на «О компании» (оживление текстовых секций) */
.ecg-about-strip{display:flex;gap:16px;flex-wrap:wrap;margin:28px 0 34px;}
.ecg-about-strip img{flex:1 1 0;min-width:230px;height:235px;object-fit:cover;border-radius:16px;box-shadow:0 12px 30px rgba(19,33,26,.13);}
.ecg-about-strip figcaption{display:none;}
@media(max-width:640px){.ecg-about-strip img{min-width:100%;height:210px;}}

/* ===== Заход А (A2): футер — брендовые шрифты (Unbounded заголовки / Montserrat текст) ===== */
#footer h1,#footer h2,#footer h3,#footer h4,#footer h5,#footer h6,
#footer .wdt-heading-title,#footer .elementor-heading-title,
#footer .wdt-content-item-title,#footer .widget-title{
	font-family:"Unbounded",sans-serif !important;
	letter-spacing:.01em;
}
#footer,#footer p,#footer li,#footer a,#footer span,
#footer .elementor-icon-list-text,#footer .wdt-content-element{
	font-family:"Montserrat",sans-serif !important;
}

/* ECOGEO Этап 13 — переключатель языка (i18n пилот) */
.ecg-lang{display:inline-flex;align-items:center;gap:2px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:3px;vertical-align:middle;line-height:1}
.ecg-lang__i{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:24px;padding:0 8px;border-radius:999px;font-family:"Montserrat",sans-serif;font-size:12px;font-weight:700;letter-spacing:.03em;color:#fff;text-decoration:none;transition:background .15s ease,color .15s ease;cursor:pointer}
.ecg-lang__i:hover{background:rgba(255,255,255,.16);color:#fff}
.ecg-lang__i.is-active{background:#fff;color:#175230}
.ecg-lang__soon{opacity:.4;cursor:not-allowed;pointer-events:none}
.ecg-lang--desk{margin:0 14px}
/* мобайл-переключатель в бургер-меню */
.ecg-lang--mob{display:none;margin:14px 20px}
@media (max-width:1024px){
  .ecg-lang--desk{display:none}
  .ecg-lang--mob{display:inline-flex;background:rgba(31,107,59,.10);border-color:rgba(31,107,59,.25)}
  .ecg-lang--mob .ecg-lang__i{color:#175230}
  .ecg-lang--mob .ecg-lang__i.is-active{background:#1F6B3B;color:#fff}
}
