/* Theme Name: БИТ.WMS Child Theme URI: https://bitwms.ru/ Description: GeneratePress child theme for the БИТ.WMS expert portal. Brandbook styles: corporate pink #E50071, minimalist layout, Suisse Int'l typography. Author: БИТ.WMS Author URI: https://bitwms.ru/ Template: generatepress Version: 1.0.0 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: bitwms-child */ /* ========================================================================== @font-face — Suisse Int'l (woff2 files go into fonts/ directory) Fallback to Arial until font files are deployed. ========================================================================== */ @font-face { font-family: 'Suisse Intl'; src: url('fonts/SuisseIntl-Book.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; } @font-face { font-family: 'Suisse Intl'; src: url('fonts/SuisseIntl-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; } /* ========================================================================== CSS Custom Properties — brandbook tokens ========================================================================== */ :root { /* --- Colors --- */ --color-white: #FFFFFF; --color-primary: #E50071; /* Pantone 213 C, RGB 229 0 113 — primary corporate */ --color-black: #000000; --color-gray-light: #EBEBEB; /* RGB 235 235 235 — secondary */ --color-gray-text: #666666; /* --- Typography --- */ --font-family-base: 'Suisse Intl', Arial, sans-serif; --font-heading: var(--font-family-base); --font-body: var(--font-family-base); --font-weight-book: 400; --font-weight-bold: 700; --font-size-base: 16px; --line-height-base: 1.6; /* --- Layout dimensions --- */ --sidebar-width-collapsed: 70px; --sidebar-width-expanded: 250px; --content-max-width: 1200px; --header-height: 60px; /* --- Spacing scale --- */ --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --space-xl: 40px; --space-2xl: 64px; /* --- Transition --- */ --transition-base: 0.2s ease; } /* ========================================================================== Global reset / base ========================================================================== */ *, *::before, *::after { box-sizing: border-box; } html { font-size: var(--font-size-base); -webkit-text-size-adjust: 100%; } body { margin: 0; padding: 0; font-family: var(--font-family-base); font-weight: var(--font-weight-book); font-size: var(--font-size-base); line-height: var(--line-height-base); color: var(--color-black); background-color: var(--color-white); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* ========================================================================== Headings ========================================================================== */ h1, h2, h3, h4 { font-family: var(--font-family-base); font-weight: var(--font-weight-bold); color: var(--color-black); line-height: 1.2; margin-top: 0; margin-bottom: var(--space-md); } h1 { font-size: 2.5rem; /* 40px */ } h2 { font-size: 2rem; /* 32px */ } h3 { font-size: 1.5rem; /* 24px */ } h4 { font-size: 1.125rem; /* 18px */ } /* ========================================================================== Links ========================================================================== */ a { color: var(--color-primary); text-decoration: none; transition: color var(--transition-base); } a:hover, a:focus { color: var(--color-black); text-decoration: underline; } a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; } /* ========================================================================== Paragraphs & lists ========================================================================== */ p { margin-top: 0; margin-bottom: var(--space-md); } ul, ol { margin-top: 0; margin-bottom: var(--space-md); padding-left: var(--space-lg); } /* ========================================================================== Container utility ========================================================================== */ .container { width: 100%; max-width: var(--content-max-width); margin-right: auto; margin-left: auto; padding-right: var(--space-lg); padding-left: var(--space-lg); } /* ========================================================================== Buttons ========================================================================== */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-sm); padding: 12px var(--space-lg); font-family: var(--font-family-base); font-weight: var(--font-weight-bold); font-size: 1rem; line-height: 1; text-align: center; text-decoration: none; white-space: nowrap; cursor: pointer; border: 2px solid transparent; border-radius: 0; /* brandbook: no rounded corners */ transition: background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base); -webkit-user-select: none; user-select: none; appearance: none; } .btn:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; } /* Primary — corporate pink fill */ .btn-primary { background-color: var(--color-primary); border-color: var(--color-primary); color: var(--color-white); } .btn-primary:hover, .btn-primary:focus { background-color: var(--color-black); border-color: var(--color-black); color: var(--color-white); text-decoration: none; } /* Outline — transparent with black border */ .btn-outline { background-color: transparent; border-color: var(--color-black); color: var(--color-black); } .btn-outline:hover, .btn-outline:focus { background-color: var(--color-black); color: var(--color-white); text-decoration: none; } /* Small modifier */ .btn-sm { padding: 8px var(--space-md); font-size: 0.875rem; /* 14px */ } /* ========================================================================== Badge utility ========================================================================== */ .badge { display: inline-block; padding: 2px var(--space-sm); font-family: var(--font-family-base); font-weight: var(--font-weight-book); font-size: 0.75rem; /* 12px */ line-height: 1.4; color: var(--color-black); background-color: var(--color-gray-light); border-radius: 0; white-space: nowrap; vertical-align: middle; } /* ========================================================================== Sidebar overlay (used by sidebar-nav.js) ========================================================================== */ body.sidebar-overlay::after { content: ''; position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.4); z-index: 199; } /* ========================================================================== Sidebar navigation ========================================================================== */ /* Base sidebar */ .sidebar-nav { position: fixed; top: 0; left: 0; width: var(--sidebar-width-collapsed); height: 100vh; background: var(--color-white); border-right: 1px solid var(--color-gray-light); z-index: 1000; display: flex; flex-direction: column; transition: width 0.25s ease; overflow: hidden; } .sidebar-nav:hover { width: var(--sidebar-width-expanded); } /* Logo area */ .sidebar-nav__logo { display: flex; align-items: center; justify-content: center; min-height: 60px; border-bottom: 1px solid var(--color-gray-light); flex-shrink: 0; } .sidebar-nav__logo a { display: flex; align-items: center; justify-content: center; text-decoration: none; } /* Menu / navigation area */ .sidebar-nav__menu { flex: 1; overflow-y: auto; overflow-x: hidden; } .sidebar-nav__list { list-style: none; margin: 0; padding: 0; } /* Individual links */ .sidebar-nav__link { display: flex; align-items: center; gap: 16px; padding: 12px 23px; color: var(--color-black); text-decoration: none; white-space: nowrap; transition: background-color var(--transition-base), color var(--transition-base); } .sidebar-nav__link:hover, .sidebar-nav__link:focus { background-color: var(--color-gray-light); color: var(--color-black); text-decoration: none; } /* Active item */ .sidebar-nav__item--active .sidebar-nav__link { color: var(--color-primary); font-weight: var(--font-weight-bold); } /* Icon */ .sidebar-nav__icon { flex-shrink: 0; width: 24px; height: 24px; } /* Label — hidden when collapsed, visible when sidebar hovered */ .sidebar-nav__label { opacity: 0; transition: opacity 0.2s ease; font-size: 0.9375rem; /* 15px */ } .sidebar-nav:hover .sidebar-nav__label { opacity: 1; } /* Social links at the bottom */ .sidebar-nav__social { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 16px; border-top: 1px solid var(--color-gray-light); flex-shrink: 0; } .sidebar-nav__social-link { display: flex; align-items: center; justify-content: center; color: var(--color-black); opacity: 0.6; transition: opacity var(--transition-base); text-decoration: none; } .sidebar-nav__social-link:hover, .sidebar-nav__social-link:focus { opacity: 1; text-decoration: none; color: var(--color-black); } /* Content shift on desktop — push main content right of the sidebar */ .site-content, .site-header, .site-footer { margin-left: var(--sidebar-width-collapsed); } /* Hamburger / toggle button */ .sidebar-nav__toggle { display: none; position: fixed; top: 12px; left: 12px; z-index: 1100; flex-direction: column; gap: 4px; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; background: var(--color-white); border: 1px solid var(--color-gray-light); cursor: pointer; appearance: none; -webkit-appearance: none; } .sidebar-nav__toggle:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; } .sidebar-nav__toggle-bar { display: block; width: 24px; height: 2px; background-color: var(--color-black); transition: transform 0.2s ease, opacity 0.2s ease; } /* Mobile styles */ @media (max-width: 767px) { /* Hide sidebar off-screen by default */ .sidebar-nav { transform: translateX(-100%); transition: transform 0.25s ease, width 0.25s ease; width: var(--sidebar-width-expanded); } /* Show sidebar when open */ .sidebar-nav--open { transform: translateX(0); } /* Always show labels on mobile when open */ .sidebar-nav .sidebar-nav__label { opacity: 1; } /* Show hamburger button on mobile */ .sidebar-nav__toggle { display: flex; } /* Remove content margin on mobile */ .site-content, .site-header, .site-footer { margin-left: 0; } } /* ========================================================================== Top header bar ========================================================================== */ .top-header { display: flex; align-items: center; justify-content: space-between; height: var(--header-height); padding: 0 32px; background: var(--color-white); border-bottom: 1px solid var(--color-gray-light); /* Positioned to the right of the collapsed sidebar */ position: fixed; top: 0; left: var(--sidebar-width-collapsed); right: 0; z-index: 900; } .top-header__left { display: flex; align-items: center; gap: 16px; } .top-header__logo { display: flex; align-items: center; text-decoration: none; } .top-header__logo img { height: 30px; width: auto; } .top-header__tagline { font-size: 0.875rem; color: var(--color-gray-text); } .top-header__right { display: flex; align-items: center; gap: 24px; } .top-header__phone { font-weight: 700; color: var(--color-black); text-decoration: none; font-size: 0.875rem; } .top-header__phone:hover, .top-header__phone:focus { color: var(--color-primary); text-decoration: none; } .top-header__search { display: flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: var(--color-black); padding: 4px; transition: color var(--transition-base); } .top-header__search:hover, .top-header__search:focus { color: var(--color-primary); } .top-header__search:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; } /* Offset main content below the fixed top header */ .site-content, .site-header, .site-footer { margin-top: var(--header-height); } @media (max-width: 767px) { .top-header { left: 0; padding: 0 16px 0 56px; /* leave room for hamburger button */ } .top-header__tagline { display: none; } .top-header__phone { display: none; } } /* ========================================================================== Hero section ========================================================================== */ .hero { padding: 80px 0 60px; } .hero__title { font-size: 3.5rem; line-height: 1.1; margin: 0 0 24px; max-width: 700px; } .hero__subtitle { font-size: 1.25rem; line-height: 1.6; color: var(--color-gray-text); margin: 0 0 40px; max-width: 600px; } .hero__actions { display: flex; gap: 16px; margin-bottom: 60px; } .hero__stats { display: flex; gap: 48px; } .hero__stat { display: flex; flex-direction: column; gap: 4px; } .hero__stat-number { font-family: var(--font-heading); font-weight: 700; font-size: 2.5rem; line-height: 1; color: var(--color-primary); } .hero__stat-label { font-size: 0.875rem; color: var(--color-gray-text); } @media (max-width: 767px) { .hero { padding: 40px 0 32px; } .hero__title { font-size: 2rem; } .hero__subtitle { font-size: 1rem; } .hero__actions { flex-direction: column; margin-bottom: 40px; } .hero__stats { flex-direction: column; gap: 24px; } } /* ========================================================================== Promo WMS section ========================================================================== */ .promo-wms { padding: 80px 0; background: var(--color-gray-light); } .promo-wms__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; margin-bottom: 48px; } .promo-wms__icon { font-size: 2rem; display: block; margin-bottom: 12px; } .promo-wms__actions { display: flex; gap: 16px; } @media (max-width: 767px) { .promo-wms { padding: 40px 0; } .promo-wms__grid { grid-template-columns: 1fr; gap: 24px; margin-bottom: 32px; } .promo-wms__actions { flex-direction: column; } } /* ========================================================================== Subscribe section ========================================================================== */ .subscribe-section { padding: 80px 0; } .subscribe-section__form { display: flex; gap: 12px; max-width: 500px; margin-bottom: 12px; } .subscribe-section__input { flex: 1; padding: 12px 16px; font-size: 1rem; border: 2px solid var(--color-gray-light); border-radius: 0; } .subscribe-section__input:focus { outline: none; border-color: var(--color-primary); } .subscribe-section__note { font-size: 0.75rem; color: var(--color-gray-text); } @media (max-width: 767px) { .subscribe-section { padding: 40px 0; } .subscribe-section__form { flex-direction: column; max-width: 100%; } .subscribe-section__input { width: 100%; } } /* ========================================================================== Clients section ========================================================================== */ .clients-section { padding: 60px 0 80px; border-top: 1px solid var(--color-gray-light); } .clients-section__grid { display: flex; flex-wrap: wrap; gap: 32px; align-items: center; } .clients-section__item img { max-height: 40px; filter: grayscale(100%); opacity: 0.6; transition: filter var(--transition-base), opacity var(--transition-base); } .clients-section__item img:hover { filter: grayscale(0%); opacity: 1; } .clients-section__placeholder { display: inline-block; padding: 12px 24px; background: var(--color-gray-light); font-size: 0.875rem; color: var(--color-gray-text); } @media (max-width: 767px) { .clients-section { padding: 40px 0 48px; } .clients-section__grid { gap: 16px; } } /* ========================================================================== Task 9: Content feed — filter bar + content grid (AJAX) ========================================================================== */ /* --- Filter bar --- */ .filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; padding-bottom: 24px; border-bottom: 1px solid var(--color-gray-light); } .filter-bar__btn { padding: 8px 20px; font-size: 0.875rem; background: none; border: 1px solid var(--color-gray-light); cursor: pointer; color: var(--color-black); } .filter-bar__btn:hover { border-color: var(--color-black); } .filter-bar__btn--active { background: var(--color-black); color: var(--color-white); border-color: var(--color-black); font-weight: 700; } /* --- Content grid --- */ .content-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 32px; } .content-card__link { display: block; text-decoration: none; color: inherit; } .content-card__link:hover .content-card__title { color: var(--color-primary); } .content-card__image { aspect-ratio: 16 / 10; overflow: hidden; margin-bottom: 16px; background: var(--color-gray-light); } .content-card__image img { width: 100%; height: 100%; object-fit: cover; } .content-card__placeholder { width: 100%; height: 100%; } .content-card__title { font-size: 1.125rem; margin: 0 0 8px; line-height: 1.3; } .content-card__excerpt { font-size: 0.875rem; color: var(--color-gray-text); margin: 0 0 12px; } .content-card__meta { font-size: 0.75rem; color: var(--color-gray-text); } .content-feed__more { text-align: center; margin-bottom: 60px; } /* --- Responsive breakpoints --- */ @media (max-width: 1024px) { .content-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 767px) { .content-grid { grid-template-columns: 1fr; } } /* ========================================================================== Archive pages — CPT archive-*.php ========================================================================== */ .archive-page { padding: 60px 0; } .archive-page__title { margin: 0 0 32px; } /* ========================================================================== Single CPT pages — single-case, single-webinar, single-course, single-event ========================================================================== */ .single-case, .single-webinar, .single-course, .single-event { padding: 60px 0; } /* --- Case meta bar --- */ .single-case__meta { display: flex; gap: 24px; margin-bottom: 40px; padding-bottom: 24px; border-bottom: 1px solid var(--color-gray-light); } /* --- Case / webinar / course / event content sections --- */ .single-case__section, .single-webinar__section, .single-course__section, .single-event__section { margin-bottom: 40px; } .single-case__section h2, .single-webinar__section h2, .single-course__section h2, .single-event__section h2 { font-size: 1.5rem; margin: 0 0 16px; } /* --- Webinar / course / event meta bars --- */ .single-webinar__meta, .single-course__meta, .single-event__meta { display: flex; flex-wrap: wrap; gap: 24px; margin-bottom: 40px; padding-bottom: 24px; border-bottom: 1px solid var(--color-gray-light); } /* --- Gallery grid (case) --- */ .gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 40px; } .gallery-grid img { width: 100%; height: auto; display: block; } /* --- Blockquote (case) --- */ .single-case__quote { border-left: 4px solid var(--color-primary); padding: 24px 32px; margin: 40px 0; background: var(--color-gray-light); font-style: italic; font-size: 1.125rem; } /* --- CTA blocks --- */ .single-case__cta, .single-webinar__cta, .single-course__cta, .single-event__cta { padding: 40px 0; border-top: 1px solid var(--color-gray-light); } /* --- Related posts section --- */ .related-posts { padding: 60px 0 0; border-top: 1px solid var(--color-gray-light); } /* --- Webinar video embed --- */ .single-webinar__video { margin-bottom: 40px; } .single-webinar__video iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; } /* --- Presentation download --- */ .single-webinar__presentation { margin-top: 24px; } /* ========================================================================== Pagination — the_posts_pagination() ========================================================================== */ .nav-links { display: flex; gap: 8px; justify-content: center; margin-top: 32px; } .page-numbers { padding: 8px 16px; border: 1px solid var(--color-gray-light); text-decoration: none; color: var(--color-black); transition: background 0.2s, color 0.2s; } .page-numbers:hover { background: var(--color-gray-light); } .page-numbers.current { background: var(--color-black); color: var(--color-white); border-color: var(--color-black); } /* ========================================================================== Responsive — CPT templates ========================================================================== */ @media (max-width: 1024px) { .gallery-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 767px) { .single-case__meta, .single-webinar__meta, .single-course__meta, .single-event__meta { flex-direction: column; gap: 12px; } .gallery-grid { grid-template-columns: 1fr; } .single-case__quote { padding: 16px 20px; font-size: 1rem; } } /* ========================================================================== Contacts page ========================================================================== */ .page-contacts { padding: 60px 0; } .page-contacts__title { margin-bottom: 0; } .contacts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 32px; } .contacts-list { list-style: none; margin: 24px 0 0; padding: 0; } .contacts-list__item { margin-bottom: 16px; font-size: 1rem; line-height: 1.5; } .contacts-list__item address { display: inline; font-style: normal; } .contacts-list__item a { color: var(--color-primary); text-decoration: none; } .contacts-list__item a:hover { text-decoration: underline; } /* Contact form */ .contact-form__field { margin-bottom: 20px; } .contact-form__label { display: block; font-size: 0.875rem; font-weight: var(--font-weight-bold); margin-bottom: 6px; } .contact-form__required { color: var(--color-primary); margin-left: 2px; } .contact-form__input, .contact-form__textarea { display: block; width: 100%; padding: 10px 14px; font-family: var(--font-family-base); font-size: 1rem; line-height: 1.5; color: var(--color-black); background: var(--color-white); border: 2px solid var(--color-gray-light); border-radius: 4px; transition: border-color var(--transition-base); box-sizing: border-box; } .contact-form__input:focus, .contact-form__textarea:focus { outline: none; border-color: var(--color-primary); } .contact-form__textarea { resize: vertical; min-height: 120px; } .contact-form__field--checkbox { display: flex; align-items: flex-start; gap: 10px; } .contact-form__checkbox-label { display: flex; align-items: flex-start; gap: 10px; font-size: 0.875rem; line-height: 1.5; cursor: pointer; } .contact-form__checkbox { flex-shrink: 0; margin-top: 3px; width: 16px; height: 16px; accent-color: var(--color-primary); cursor: pointer; } .contact-form__checkbox-label a { color: var(--color-primary); text-decoration: underline; } .contact-form__submit { margin-top: 8px; } @media (max-width: 767px) { .contacts-grid { grid-template-columns: 1fr; gap: 40px; } } /* ========================================================================== Custom footer ========================================================================== */ .custom-footer { border-top: 1px solid var(--color-gray-light); padding: 48px 0 24px; background: var(--color-white); } .custom-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr; gap: 32px; margin-bottom: 32px; } /* Col 1 — brand */ .custom-footer__logo-link { display: inline-block; margin-bottom: 20px; } .custom-footer__logo { display: block; max-width: 140px; height: auto; } .custom-footer__address { font-style: normal; font-size: 0.875rem; line-height: 1.6; color: var(--color-gray-text); } .custom-footer__address p { margin: 0 0 6px; } .custom-footer__address a { color: var(--color-gray-text); text-decoration: none; } .custom-footer__address a:hover { color: var(--color-primary); } /* Col headings */ .custom-footer__col h4 { font-size: 0.875rem; font-weight: var(--font-weight-bold); text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 16px; color: var(--color-black); } /* Col nav lists */ .custom-footer__col ul { list-style: none; margin: 0; padding: 0; } .custom-footer__col ul li { font-size: 0.875rem; margin-bottom: 10px; } .custom-footer__col a { color: var(--color-gray-text); text-decoration: none; transition: color var(--transition-base); } .custom-footer__col a:hover { color: var(--color-primary); } /* Col 4 — subscribe */ .custom-footer__subscribe-desc { font-size: 0.875rem; color: var(--color-gray-text); margin: 0 0 12px; line-height: 1.5; } .footer-subscribe { display: flex; gap: 8px; align-items: stretch; } .footer-subscribe__input { flex: 1; min-width: 0; padding: 8px 12px; font-family: var(--font-family-base); font-size: 0.875rem; color: var(--color-black); background: var(--color-white); border: 2px solid var(--color-gray-light); border-radius: 4px; transition: border-color var(--transition-base); box-sizing: border-box; } .footer-subscribe__input:focus { outline: none; border-color: var(--color-primary); } .footer-subscribe__btn, .btn--sm { padding: 8px 16px; font-size: 0.875rem; white-space: nowrap; flex-shrink: 0; } /* Bottom bar */ .custom-footer__bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 24px; border-top: 1px solid var(--color-gray-light); font-size: 0.75rem; color: var(--color-gray-text); } .custom-footer__bottom p { margin: 0; } .custom-footer__legal { display: flex; gap: 24px; } .custom-footer__legal a { color: var(--color-gray-text); text-decoration: none; transition: color var(--transition-base); } .custom-footer__legal a:hover { color: var(--color-primary); } /* Footer responsive */ @media (max-width: 1024px) { .custom-footer__grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 767px) { .custom-footer__grid { grid-template-columns: 1fr; gap: 32px; } .custom-footer__bottom { flex-direction: column; align-items: flex-start; gap: 12px; } .custom-footer__legal { flex-direction: column; gap: 8px; } .footer-subscribe { flex-direction: column; } .footer-subscribe__btn { width: 100%; } } /* ========================================================================== Task 10: БИТ.WMS product page ========================================================================== */ /* ------------------------------------------------------------------ 1. Hero ------------------------------------------------------------------ */ .bitwms-hero { padding: 80px 0 60px; } .bitwms-hero h1 { font-size: 4rem; line-height: 1.1; margin-bottom: var(--space-md); } .bitwms-hero__subtitle { font-size: 1.5rem; font-weight: var(--font-weight-bold); color: var(--color-gray-text); margin-bottom: var(--space-lg); } .bitwms-hero__description { font-size: 1.125rem; max-width: 680px; color: var(--color-gray-text); margin-bottom: var(--space-xl); } .bitwms-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; } @media (max-width: 767px) { .bitwms-hero { padding: 48px 0 40px; } .bitwms-hero h1 { font-size: 2.5rem; } .bitwms-hero__subtitle { font-size: 1.125rem; } .bitwms-hero__description { font-size: 1rem; } .bitwms-hero__actions { flex-direction: column; } .bitwms-hero__actions .btn { width: 100%; text-align: center; } } /* ------------------------------------------------------------------ 2. Features ------------------------------------------------------------------ */ .bitwms-features { padding: 80px 0; background: var(--color-gray-light); } .bitwms-features h2 { margin-bottom: 48px; } .features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; } .feature-card { background: var(--color-white); padding: 32px; display: flex; flex-direction: column; } .feature-card h3 { font-size: 1.25rem; margin-bottom: var(--space-md); } .feature-card p { font-size: 0.9375rem; color: var(--color-gray-text); flex: 1; } .feature-card__result { color: var(--color-primary); font-weight: var(--font-weight-bold); font-size: 0.875rem; margin-bottom: 0; } @media (max-width: 1024px) { .features-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 767px) { .bitwms-features { padding: 48px 0; } .features-grid { grid-template-columns: 1fr; } } /* ------------------------------------------------------------------ 3. Why us ------------------------------------------------------------------ */ .bitwms-why { padding: 80px 0; } .bitwms-why h2 { margin-bottom: 48px; } .why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; } .why-grid__item h3 { font-size: 1.25rem; margin-bottom: var(--space-md); position: relative; padding-bottom: 16px; } .why-grid__item h3::after { content: ''; display: block; position: absolute; bottom: 0; left: 0; width: 32px; height: 2px; background: var(--color-primary); } .why-grid__item p { font-size: 0.9375rem; color: var(--color-gray-text); } @media (max-width: 1024px) { .why-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 767px) { .bitwms-why { padding: 48px 0; } .why-grid { grid-template-columns: 1fr; gap: 24px; } } /* ------------------------------------------------------------------ 4. Cases ------------------------------------------------------------------ */ .bitwms-cases { padding: 60px 0; border-top: 1px solid var(--color-gray-light); } .bitwms-cases h2 { margin-bottom: 40px; } .bitwms-cases__more { margin-top: 40px; text-align: center; } @media (max-width: 767px) { .bitwms-cases { padding: 40px 0; } } /* ------------------------------------------------------------------ 5. Other solutions ------------------------------------------------------------------ */ .bitwms-other { padding: 60px 0; background: var(--color-gray-light); } .bitwms-other h2 { margin-bottom: 40px; } .other-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; } .other-card { background: var(--color-white); padding: 32px; display: flex; flex-direction: column; } .other-card__title { font-size: 1.25rem; margin-bottom: var(--space-md); } .other-card__description { font-size: 0.9375rem; color: var(--color-gray-text); flex: 1; margin-bottom: var(--space-lg); } @media (max-width: 1024px) { .other-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 767px) { .bitwms-other { padding: 40px 0; } .other-grid { grid-template-columns: 1fr; } } /* ------------------------------------------------------------------ 6. Demo form ------------------------------------------------------------------ */ .bitwms-demo { padding: 80px 0; } .bitwms-demo h2 { margin-bottom: var(--space-md); } .bitwms-demo__description { font-size: 1.0625rem; color: var(--color-gray-text); max-width: 600px; margin-bottom: 40px; } .demo-form { max-width: 600px; } .demo-form__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-bottom: 20px; } .demo-form__field { display: flex; flex-direction: column; gap: 6px; } .demo-form__field--full { margin-bottom: 20px; } .demo-form__label { font-size: 0.875rem; font-weight: var(--font-weight-bold); color: var(--color-black); } .demo-form__required { color: var(--color-primary); } .demo-form__input { width: 100%; padding: 12px 16px; font-family: var(--font-family-base); font-size: 1rem; color: var(--color-black); background: var(--color-white); border: 2px solid var(--color-gray-light); border-radius: 0; transition: border-color var(--transition-base); appearance: none; -webkit-appearance: none; } .demo-form__input:focus { outline: none; border-color: var(--color-primary); } .demo-form__input::placeholder { color: var(--color-gray-text); opacity: 1; } .demo-form__textarea { resize: vertical; min-height: 120px; } .demo-form__consent { margin-bottom: 24px; } .demo-form__consent-label { display: flex; align-items: flex-start; gap: 10px; font-size: 0.875rem; color: var(--color-gray-text); cursor: pointer; } .demo-form__checkbox { flex-shrink: 0; width: 18px; height: 18px; margin-top: 2px; border: 2px solid var(--color-gray-light); accent-color: var(--color-primary); cursor: pointer; } .demo-form__submit { padding: 14px 40px; } @media (max-width: 767px) { .bitwms-demo { padding: 48px 0; } .demo-form__grid { grid-template-columns: 1fr; } .demo-form { max-width: 100%; } .demo-form__submit { width: 100%; } }