feat: add contacts page template and custom footer

This commit is contained in:
2026-04-03 01:16:50 +05:00
parent 7ff8d06780
commit fe22b37b0e
3 changed files with 742 additions and 0 deletions
+494
View File
@@ -826,6 +826,500 @@ body.sidebar-overlay::after {
}
}
/* ==========================================================================
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
========================================================================== */