:root{
  --bg: #ffff;
  --text: #111827;
  --muted: #6b7280;
  --line: #e5e7eb;
  --brand: #2D9F4E;
  --brand-dark: #258a42;
  --brand-main-cp: #1a7a35;
  --brand-soft: #e9f7ef;
  --radius: 12px;
  --shadow: 0 6px 20px rgba(0,0,0,.06);
}

*{box-sizing:border-box}

html,body{
    margin:0;
    padding:0;
    background-color: var(--bg);
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><rect fill="%23f0f0f0" width="100" height="100"/><g fill="%23e0e0e0"><circle cx="10" cy="10" r="2"/><circle cx="30" cy="10" r="2"/><circle cx="50" cy="10" r="2"/><circle cx="70" cy="10" r="2"/><circle cx="90" cy="10" r="2"/><circle cx="10" cy="30" r="2"/><circle cx="30" cy="30" r="2"/><circle cx="50" cy="30" r="2"/><circle cx="70" cy="30" r="2"/><circle cx="90" cy="30" r="2"/><circle cx="10" cy="50" r="2"/><circle cx="30" cy="50" r="2"/><circle cx="50" cy="50" r="2"/><circle cx="70" cy="50" r="2"/><circle cx="90" cy="50" r="2"/><circle cx="10" cy="70" r="2"/><circle cx="30" cy="70" r="2"/><circle cx="50" cy="70" r="2"/><circle cx="70" cy="70" r="2"/><circle cx="90" cy="70" r="2"/><circle cx="10" cy="90" r="2"/><circle cx="30" cy="90" r="2"/><circle cx="50" cy="90" r="2"/><circle cx="70" cy="90" r="2"/><circle cx="90" cy="90" r="2"/></g><g stroke="%23d5d5d5" stroke-width="0.5" fill="none"><line x1="20" y1="20" x2="25" y2="20"/><line x1="40" y1="20" x2="45" y2="20"/><line x1="60" y1="20" x2="65" y2="20"/><line x1="80" y1="20" x2="85" y2="20"/><line x1="20" y1="40" x2="25" y2="40"/><line x1="40" y1="40" x2="45" y2="40"/><line x1="60" y1="40" x2="65" y2="40"/><line x1="80" y1="40" x2="85" y2="40"/><line x1="20" y1="60" x2="25" y2="60"/><line x1="40" y1="60" x2="45" y2="60"/><line x1="60" y1="60" x2="65" y2="60"/><line x1="80" y1="60" x2="85" y2="60"/><line x1="20" y1="80" x2="25" y2="80"/><line x1="40" y1="80" x2="45" y2="80"/><line x1="60" y1="80" x2="65" y2="80"/><line x1="80" y1="80" x2="85" y2="80"/></g></svg>');
    background-size: 100px 100px;
    background-repeat: repeat;
    background-attachment: fixed;
    background-position: center center;
    color:var(--text);
    font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Arial;
    min-height: 100vh;
}

html::before{
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.85);
    z-index: -1;
    pointer-events: none;
}

img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{width:min(1120px,92%);margin:0 auto}

/* Header */
header{position:sticky;top:0;z-index:20;background:#fff;box-shadow:0 1px 0 var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.brand{display:flex;align-items:center;gap:12px}
.logo-img{height:50px;width:auto}
.logoTag{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:10px;background:var(--brand);color:#fff;font-weight:800;letter-spacing:.3px; white-space: nowrap;}
.nav-right{display:flex;align-items:center;gap:14px}

/* =================================================================== */
/* ФИНАЛЬНЫЙ КОД ДЛЯ КОНТАКТОВ В ШАПКЕ (ДЕСКТОП + МОБИЛЬНЫЕ) */
/* =================================================================== */

/* 1. Основные (десктопные) стили */
.phone a {
    display: block;
    text-align: right;
    white-space: nowrap;
    text-decoration: none;
    color: var(--brand) !important;
    transition: opacity 0.2s;
}

.phone a:hover {
    opacity: 0.8;
}

.phone a[href^="tel:"] {
    font-weight: 800;
    font-size: 16px;
    margin-bottom: 2px;
}

.phone a[href^="mailto:"] {
    font-size: 16px;
}

.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;background:var(--brand);color:#fff;font-weight:700;border:1px solid transparent;white-space:nowrap;cursor:pointer; font-size: 15px;}
.btn:hover{background:var(--brand-dark)}
.btn.ghost{background:#fff;color:var(--brand);border-color:var(--brand)}
.btn.ghost:hover{background:var(--brand-soft)}

/* Hero */
.hero{padding:34px 0 18px;border-bottom:none;background:transparent}
.hero-banner-content{
    padding:30px 0;
    position:relative;
    z-index:2;
    color:#fff;
}
.hero-banner{
    background:rgba(10, 45, 20, 0.75);
    border-radius:var(--radius);
    margin-bottom:0;
    box-shadow: var(--shadow);
    overflow: hidden;
    position: relative;
}
.hero-banner::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background: url('img/baner.jpg') no-repeat center center; 
    background-size: cover;
    opacity: 0.5;
    filter: brightness(80%);
    z-index: 1;
}
.hero-banner .btn {
    margin-top: 50px;
    position: relative;
    z-index: 2;
    border: 1px solid #ffff;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 2px 8px rgba(255, 255, 255, 0.2) inset;
    transition: all 0.3s ease;
}
.hero-banner .btn:hover {
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(255, 255, 255, 0.3) inset;
    transform: translateY(-2px);
}
.hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}
h1{font-size:clamp(28px,3.5vw,42px);line-height:1.15;margin:8px 0 10px;color:#fff;position:relative;z-index:2;text-shadow: 0 2px 5px rgba(0,0,0,0.5);}
.lead{color:#e0e0e0;font-size:clamp(16px,1.6vw,18px);margin:0 0 14px;position:relative;z-index:2;text-shadow: 0 1px 4px rgba(0,0,0,0.6);}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 16px;position:relative;z-index:2}
.badge{border:1px solid #ffff30;border-radius:999px;padding:6px 10px;color:#fff;background:transparent}

/* Hero form */
.hero-form{border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:#fff;box-shadow:var(--shadow);margin-top:0}
.hero-form h3{margin:0 0 10px;font-size:18px}
.hero-form form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hero-form .full{grid-column:1/-1}
label{display:block;font-size:13px;color:var(--muted);margin:0 0 6px}
.required{color:#e74c3c}
input, textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;color:var(--text);font-family:inherit}
input:focus, textarea:focus{outline:none;border-color:var(--brand)}
textarea{min-height:90px;resize:vertical}
.note{font-size:12px;color:var(--muted)}

/* Section Head */
.section-head{
    margin-bottom:24px;
    margin-top: 24px;
}
.section-head h3{font-size:clamp(24px,2.5vw,32px);margin:0 0 8px;color:var(--text)}
.section-sub{color:var(--muted);font-size:16px;margin:0}

/* Services */
.service-img-wrap{
    height:200px;
    background:#f3f4f6;
    border-radius:var(--radius);
    overflow:hidden;
    margin-bottom:10px;
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-size: 14px;
    font-weight: 600;
}
.service-img-wrap img{
    width:100%;
    height:100%;
    object-fit:cover;
}

#services .grid.cols-3 > .card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

#services .grid.cols-3 > .card .list {
    flex-grow: 1;
}

#services .grid.cols-3 > .card .actions-inline {
    margin-top: auto;
}

.grid{display:grid;gap:14px}
.cols-3{grid-template-columns:repeat(3,1fr)}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.card h4{margin:6px 0 8px}
.card p{margin:0 0 8px;color:var(--muted)}
.list{margin:0;padding-left:16px;color:var(--text)}
.list li{margin:4px 0}

/* Стили для галереи с решениями */
.image-gallery {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding-bottom: 10px;
}
.image-gallery img {
    max-height: 250px;
    width: auto;
    flex-shrink: 0;
    border-radius: var(--radius);
}

.band{border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:var(--brand-soft);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.contact-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}
.contact{padding-bottom: 40px}
.contact .card{box-shadow:var(--shadow)}
.actions-inline{display:flex;gap:10px;flex-wrap:wrap}
footer{padding:20px 0 34px;border-top:1px solid var(--line);color:var(--muted);background:#fff}
.foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* Modal */
.modal{display:none;position:fixed;z-index:2000;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,0.5);animation:fadeIn 0.3s}
.modal-content{background-color:white;margin:15% auto;padding:2.5rem;border-radius:var(--radius);max-width:450px;position:relative;box-shadow:0 10px 40px rgba(0,0,0,0.2);text-align:center;animation:slideDown 0.3s}
.close{color:#aaa;position:absolute;top:15px;right:20px;font-size:28px;font-weight:bold;cursor:pointer;line-height:20px;transition:color 0.2s}
.close:hover{color:#000}
.modal-content h2{color:var(--brand);margin:0 0 1rem;font-size:24px}
.modal-content p{color:var(--muted);font-size:16px;margin:0}
.modal-icon{font-size:48px;margin-bottom:1rem}

@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideDown{from{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}

/* =================================================================== */
/* ИСПРАВЛЕННЫЙ БЛОК: УЛУЧШЕНИЕ КОПИРОВАНИЯ ПОЧТЫ */
/* =================================================================== */
/* Применяем стиль к почте в шапке И к почте в контактах по её ID */
.phone a[href^="mailto:"],
#email {
    -webkit-user-select: all; /* Для Safari */
    -moz-user-select: all;    /* Для Firefox */
    -ms-user-select: all;     /* Для Internet Explorer/Edge */
    user-select: all;         /* Стандартное свойство */
}

/* ==== АДАПТИВНОСТЬ ==== */

/* Стили для мобильных устройств и планшетов (до 768px) */
@media (max-width: 768px) {
    .hero-inner,
    .cols-3,
    .contact-wrap,
    .hero-form form {
        grid-template-columns: 1fr;
    }

    .hero-form {
        margin-top: 10px;
    }

    html, body {
        background-size: 80px 80px;
    }

    .hero-banner::before {
        background-position: center center;
        opacity: 0.4;
    }

    .service-img-wrap {
        height: 180px;
    }

    .nav {
        justify-content: space-between;
        padding: 8px 0;
    }

    .nav-right .btn {
        display: none;
    }

    .btn {
        padding: 9px 14px;
        font-size: 14px;
    }

    .logo-img {
        height: 40px;
    }

    .hero-banner .btn {
        margin-bottom: 25px;
        box-shadow: 0 4px 15px rgba(45, 159, 78, 0.4);
    }
    
    .image-gallery {
        flex-direction: column;
        align-items: center;
        overflow-x: hidden;
    }
    .image-gallery img {
        width: 100%;
        max-height: none;
        height: auto;
    }

    footer .container {
        text-align: center;
        display: flex;
        flex-direction: column;
    }

    footer .brand {
        order: 2;
        justify-content: center;
        margin-top: 12px;
    }

    footer .container > div:first-child {
        order: 1;
    }

    /* 2. Мобильные стили для контактов */
    .phone {
        margin-left: auto;
    }

    .phone a[href^="tel:"] {
        font-size: 14px;
    }

    .phone a[href^="mailto:"] {
        font-size: 14px;
    }
}

/* Стили для планшетов в альбомной ориентации и небольших ноутбуков (769px - 1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
    .logoTag {
        max-width: 120px;
        font-size: 14px;
    }

    .hero-banner .btn {
        box-shadow: 0 4px 15px rgba(45, 159, 78, 0.4);
    }
}

/* Стили для больших экранов (1025px+) */
@media (min-width: 1025px) {
    .hero-banner .btn {
        box-shadow: 0 4px 15px rgba(45, 159, 78, 0.4);
    }
}