Files
infrait/static/css/styles.css
2026-02-12 18:47:12 +03:00

560 lines
8.1 KiB
CSS

:root {
--bg: #f2f5f8;
--surface: #ffffff;
--surface-2: #e9eef3;
--text: #112031;
--muted: #5a6b7d;
--brand: #0f8c7a;
--brand-dark: #0b695c;
--accent: #f59f00;
--border: #d6e0ea;
--shadow: 0 12px 30px rgba(17, 32, 49, 0.08);
--radius: 18px;
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
font-family: "Manrope", sans-serif;
color: var(--text);
line-height: 1.5;
background:
radial-gradient(circle at 15% -10%, #d4fff6 0, transparent 34%),
radial-gradient(circle at 90% 0%, #ffefcc 0, transparent 28%),
var(--bg);
}
.container {
width: min(1140px, 92vw);
margin: 0 auto;
}
.hero {
padding: 24px 0 40px;
}
.topbar {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 18px;
margin-bottom: 36px;
}
.brand {
display: inline-flex;
align-items: center;
text-decoration: none;
margin-right: auto;
}
.brand img {
display: block;
width: clamp(273px, 29vw, 399px);
height: auto;
object-fit: contain;
transform: translateX(-18px);
}
.brand-fallback {
display: none;
font-family: "Montserrat", sans-serif;
font-size: 1.35rem;
font-weight: 800;
letter-spacing: 0.4px;
color: var(--text);
}
.nav {
display: flex;
gap: 16px;
flex-wrap: wrap;
justify-content: flex-end;
}
.nav a {
font-weight: 600;
opacity: 0.88;
}
.nav a,
.phone,
.footer a {
text-decoration: none;
color: var(--text);
}
.phone {
font-weight: 700;
}
.hero-grid {
display: grid;
grid-template-columns: 1.3fr 1fr;
gap: 24px;
align-items: start;
}
.badge {
display: inline-block;
background: #d6fff6;
color: var(--brand-dark);
border-radius: 999px;
padding: 7px 14px;
font-weight: 700;
font-size: 0.9rem;
}
h1,
h2,
h3 {
font-family: "Montserrat", sans-serif;
margin-top: 0;
line-height: 1.2;
}
h1 {
margin: 16px 0;
font-size: clamp(1.8rem, 3vw, 2.8rem);
}
h2 {
margin-bottom: 10px;
font-size: clamp(1.5rem, 2.2vw, 2.2rem);
}
.lead,
.section-subtitle {
color: var(--muted);
font-size: 1.03rem;
}
.cta-row {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin: 22px 0;
}
.btn {
border: 0;
border-radius: 12px;
padding: 12px 18px;
font-weight: 700;
text-decoration: none;
display: inline-block;
transition: 0.2s ease;
}
.btn-primary {
background: var(--brand);
color: #fff;
}
.btn-primary:hover {
background: var(--brand-dark);
}
.btn-secondary {
background: var(--surface-2);
color: var(--text);
}
.btn-secondary:hover {
background: #dce4ed;
}
.geo-note {
margin-top: 8px;
padding: 13px 15px;
border-left: 4px solid var(--accent);
background: #fff9ec;
border-radius: 0 10px 10px 0;
}
.hero-card,
.card,
.price-card,
.panel,
.lead-form,
.faq-list details {
background: var(--surface);
border: 1px solid var(--border);
box-shadow: var(--shadow);
border-radius: var(--radius);
}
.hero-card {
padding: 20px;
}
.hero-card h3 {
margin-bottom: 10px;
}
.hero-card ul,
.card ul,
.price-card ul,
.panel ul,
.contacts,
.panel ol {
margin: 0;
padding-left: 20px;
}
.section {
padding: 46px 0;
}
.cards {
margin-top: 22px;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
}
.cards.two {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.card {
padding: 18px;
}
.card h3 {
margin-bottom: 8px;
}
.highlight,
.muted {
background: linear-gradient(180deg, rgba(15, 140, 122, 0.06), rgba(15, 140, 122, 0));
}
.pricing-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
}
.price-card {
padding: 20px;
}
.price-card.featured {
border: 2px solid var(--brand);
transform: translateY(-6px);
}
.chip {
display: inline-block;
background: var(--brand);
color: #fff;
border-radius: 999px;
padding: 4px 10px;
font-size: 0.83rem;
margin-bottom: 8px;
}
.price {
font-size: 1.35rem;
font-weight: 800;
margin: 8px 0;
}
.for,
.pricing-note {
color: var(--muted);
}
.two-col {
display: grid;
gap: 16px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.panel {
padding: 20px;
}
.benefits-grid {
display: grid;
gap: 12px;
grid-template-columns: repeat(5, minmax(0, 1fr));
}
.benefits-grid article {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 14px;
padding: 14px;
}
.seo p {
color: #25384d;
}
.faq-list {
display: grid;
gap: 10px;
}
.faq-list details {
padding: 14px;
}
.faq-list summary {
cursor: pointer;
font-weight: 700;
}
.contact {
background: linear-gradient(175deg, #e8fff8 0%, #eff5ff 100%);
}
.contacts {
list-style: none;
padding: 0;
}
.contacts li {
margin-bottom: 8px;
}
.lead-form {
padding: 18px;
display: grid;
gap: 10px;
}
.lead-form label {
display: grid;
gap: 5px;
font-weight: 600;
}
input,
textarea {
width: 100%;
border: 1px solid #bfd0df;
border-radius: 10px;
padding: 10px;
font: inherit;
}
input:focus,
textarea:focus {
outline: 2px solid rgba(15, 140, 122, 0.28);
border-color: var(--brand);
}
.form-success,
.form-error {
margin: 0;
border-radius: 9px;
padding: 10px;
font-weight: 700;
}
.form-success {
background: #dcffee;
color: #0f684f;
}
.form-error {
background: #ffe2e2;
color: #ab2a2a;
}
.footer {
border-top: 1px solid var(--border);
background: #f8fbff;
}
.footer-inner {
padding: 18px 0;
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
}
.footer-logo {
display: inline-flex;
margin-bottom: 8px;
}
.footer-logo img {
width: clamp(231px, 25vw, 336px);
height: auto;
object-fit: contain;
transform: translateX(-18px);
}
.mobile-sticky-cta {
display: none;
}
@media (max-width: 1040px) {
.hero-grid,
.pricing-grid,
.cards,
.benefits-grid,
.two-col,
.cards.two {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.benefits-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 760px) {
body {
background:
radial-gradient(circle at 12% -8%, #d4fff6 0, transparent 45%),
radial-gradient(circle at 88% 0%, #ffe7c2 0, transparent 38%),
var(--bg);
}
.container {
width: min(1140px, 94vw);
}
.hero {
padding: 16px 0 24px;
}
.topbar {
flex-direction: column;
align-items: start;
gap: 12px;
margin-bottom: 20px;
}
.brand img {
width: clamp(231px, 62vw, 336px);
transform: translateX(-12px);
}
.nav {
flex-wrap: nowrap;
overflow-x: auto;
width: 100%;
padding-bottom: 4px;
scrollbar-width: thin;
}
.nav a {
white-space: nowrap;
background: #ffffffb3;
border: 1px solid var(--border);
border-radius: 999px;
padding: 7px 12px;
font-size: 0.92rem;
}
.phone {
background: var(--surface);
border: 1px solid var(--border);
padding: 9px 12px;
border-radius: 10px;
}
.hero-grid,
.pricing-grid,
.cards,
.cards.two,
.two-col,
.benefits-grid {
grid-template-columns: 1fr;
}
.price-card.featured {
transform: none;
}
h1 {
font-size: clamp(1.6rem, 8vw, 2.1rem);
margin: 12px 0;
}
h2 {
font-size: clamp(1.35rem, 7vw, 1.8rem);
}
.lead {
font-size: 0.98rem;
}
.cta-row {
gap: 10px;
}
.btn {
width: 100%;
text-align: center;
padding: 13px 16px;
}
.hero-card,
.card,
.price-card,
.panel,
.lead-form,
.faq-list details {
border-radius: 14px;
box-shadow: 0 8px 22px rgba(17, 32, 49, 0.08);
}
.section {
padding: 32px 0;
}
.cards,
.pricing-grid,
.faq-list {
gap: 12px;
}
.lead-form {
gap: 9px;
padding: 14px;
}
.footer-inner {
flex-direction: column;
align-items: start;
padding-bottom: 84px;
}
.footer-logo img {
width: clamp(210px, 56vw, 315px);
transform: translateX(-10px);
}
.mobile-sticky-cta {
position: fixed;
left: 12px;
right: 12px;
bottom: 12px;
display: block;
text-align: center;
text-decoration: none;
background: linear-gradient(90deg, var(--brand), #22a88f);
color: #fff;
font-weight: 800;
padding: 14px 16px;
border-radius: 12px;
box-shadow: 0 10px 28px rgba(11, 105, 92, 0.35);
z-index: 999;
}
}