msos/css/pages/_member.css

267 lines
18 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ==========================================================================
Become a Member page
========================================================================== */
.member-page { font-family: 'Inter', sans-serif; color: #101828; --mm-orange: #F2762E; --mm-teal: #2D738C; }
.mm-h2 { font-size: 32px; line-height: 1.15; text-align: center; margin: 0 0 12px; color: #101828; }
.mm-h2--light { color: #FFFFFF; }
.mm-lead { text-align: center; max-width: 640px; margin: 0 auto 36px; font-size: 18px; line-height: 28px; color: #475467; }
.mm-note { font-size: 12px; color: #667085; }
.mm-note--center { text-align: center; margin-top: 20px; }
.mm-center { text-align: center; margin-top: 32px; }
.mm-section { max-width: 1120px; margin: 0 auto; padding: 72px 24px; }
.mm-section--soft { background: #F7FAFB; max-width: none; }
.mm-section--soft > * { max-width: 1120px; margin-left: auto; margin-right: auto; }
/* ---- hero ---- */
.mm-hero {
position: relative;
padding: 120px 24px 64px;
display: grid;
grid-template-columns: 1.05fr 0.95fr;
gap: 48px;
align-items: center;
max-width: 1200px;
margin: 0 auto;
}
/* Full-bleed gradient band behind the centred content: spans edge to edge
while the text/images stay within the 1200px column. */
.mm-hero::before {
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 50%;
width: 100vw;
transform: translateX(-50%);
background: linear-gradient(115deg, #FFD3B8 0%, #FFE7D6 42%, #DCEBEE 100%);
z-index: -1;
}
.mm-eyebrow { display: inline-block; color: var(--mm-orange); font-weight: 700; font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 14px; }
.mm-hero h1 { font-size: 52px; line-height: 1.05; margin: 0 0 18px; letter-spacing: -0.02em; }
.mm-hero-lead { font-size: 19px; line-height: 30px; color: #475467; margin: 0 0 28px; max-width: 520px; }
.mm-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin-bottom: 4px; }
/* Both hero buttons share one size so they align cleanly */
.mm-hero-cta .btn { padding: 14px 28px; font-size: 16px; line-height: 24px; border-radius: 10px; }
.mm-hero-collage { position: relative; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 16px; height: 460px; }
.mm-hero-photo { border-radius: 18px; overflow: hidden; box-shadow: 0 16px 32px rgba(16,24,40,0.12); }
.mm-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mm-hero-photo--1 { grid-row: 1 / span 2; }
.mm-hero-photo--2 { }
.mm-hero-photo--3 { }
/* ---- benefits (bento grid: 7 icon cards + 2 real photo tiles) ---- */
.mm-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
.mm-benefit { background: #FFFFFF; border: 1px solid #EAECF0; border-radius: 16px; padding: 26px; transition: transform 0.18s ease, box-shadow 0.18s ease; }
.mm-benefit:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(16,24,40,0.08); }
.mm-benefit-ico { width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px; color: var(--mm-orange); background: #FFF1E8; margin-bottom: 16px; transition: transform 0.2s ease, background 0.2s ease; }
.mm-benefit:hover .mm-benefit-ico { transform: scale(1.08) rotate(-4deg); background: #FFE3D1; }
.mm-benefit h3 { font-size: 18px; margin: 0 0 8px; }
.mm-benefit p { font-size: 15px; line-height: 23px; color: #667085; margin: 0; }
/* photo tiles */
.mm-benefit-photo { position: relative; margin: 0; min-height: 240px; border-radius: 16px; overflow: hidden; box-shadow: 0 14px 28px rgba(16,24,40,0.12); }
.mm-benefit-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.mm-benefit-photo:hover img { transform: scale(1.06); }
.mm-benefit-photo figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px; color: #FFFFFF; font-weight: 700; font-size: 16px; line-height: 22px; background: linear-gradient(to top, rgba(16,24,40,0.78), rgba(16,24,40,0.15) 70%, rgba(16,24,40,0)); }
@media (max-width: 900px) { .mm-benefits { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .mm-benefits { grid-template-columns: 1fr; } }
/* ---- numbers ---- */
.mm-numbers-section { background: var(--mm-teal); padding: 64px 24px; text-align: center; }
.mm-numbers { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 24px; max-width: 960px; margin: 44px auto 0; }
.mm-num { color: #FFFFFF; }
.mm-num-value { display: block; font-size: 46px; font-weight: 700; line-height: 1; letter-spacing: -0.02em; }
.mm-num-label { display: block; margin-top: 8px; font-size: 15px; color: rgba(255,255,255,0.85); }
.mm-numbers-section .mm-note { color: rgba(255,255,255,0.6); margin-top: 24px; }
/* ---- ways (hub-style auto-scrolling slider) ---- */
/* Mechanics (.hub-carousel/.hub-uses/.hub-track/.hub-group), the marquee
animation, the photo (.hub-use-img), the legibility gradient (::after) and
the bottom-anchored body are all reused from _hub.css; the JS clone step
(setupHubCarousel) runs on every page and picks up the .hub-track here.
These rules only tweak card size and add a small icon badge over the photo. */
.mm-ways-carousel { margin-top: 4px; }
.mm-use { width: clamp(240px, 24vw, 300px); aspect-ratio: 5 / 6; }
/* Photos only — drop the coloured placeholder cards inherited from _hub.css.
Two classes beat _hub.css's later-loaded .hub-use:nth-child() rules. */
.mm-use.hub-use,
.mm-use.hub-use:nth-child(3n+2),
.mm-use.hub-use:nth-child(3n+3) { background: none; }
/* Brand icon as a subtle glass badge floating over the photo. */
.mm-use-ico {
position: absolute; top: 14px; left: 14px; z-index: 3;
display: inline-flex; align-items: center; justify-content: center;
width: 44px; height: 44px; border-radius: 12px;
background: rgba(10, 18, 26, 0.42);
-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
color: #fff; font-size: 19px;
}
.mm-use .hub-use-body h3 { font-size: 19px; line-height: 1.25; }
.mm-use .hub-use-body p { font-size: 14px; line-height: 21px; }
/* ---- membership in real life ---- */
.mm-reals { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 40px; }
.mm-real { display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; border: 1px solid #EAECF0; background: #FFFFFF; text-decoration: none; color: inherit; transition: transform 0.18s ease, box-shadow 0.18s ease; }
.mm-real:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(16,24,40,0.10); }
.mm-real-media { height: 170px; background: #F2F4F7; }
.mm-real-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mm-real-body { padding: 18px; }
.mm-real-body h3 { font-size: 17px; margin: 0 0 6px; }
.mm-real-body p { font-size: 14px; line-height: 21px; color: #667085; margin: 0 0 10px; }
.mm-real-link { font-size: 14px; font-weight: 600; color: #B4531A; display: inline-flex; align-items: center; gap: 6px; } /* was --mm-orange (2.8:1) — darkened for WCAG AA */
/* ---- testimonials ---- */
.mm-tests { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-top: 40px; }
.mm-test { margin: 0; background: #FFFFFF; border: 1px solid #EAECF0; border-radius: 16px; padding: 26px; box-shadow: 0 6px 16px rgba(16,24,40,0.04); }
.mm-test blockquote { margin: 0 0 18px; font-size: 17px; line-height: 27px; color: #101828; }
.mm-test blockquote::before { content: '\201C'; color: var(--mm-orange); font-size: 40px; line-height: 0; vertical-align: -18px; margin-right: 4px; }
.mm-test figcaption strong { display: block; font-size: 15px; }
.mm-test figcaption span { font-size: 13px; color: #667085; }
/* ---- projects showcase ---- */
.mm-shows { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-top: 40px; }
.mm-show { display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; border: 1px solid #EAECF0; text-decoration: none; color: inherit; background: #FFFFFF; transition: transform 0.18s ease, box-shadow 0.18s ease; }
.mm-show:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(16,24,40,0.10); }
.mm-show-media { height: 180px; background: #F2F4F7; }
.mm-show-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mm-show h3 { font-size: 16px; margin: 0; padding: 16px 18px; line-height: 1.3; }
/* ---- floating "Become a member" CTA (appears after the hero, hides near the form) ---- */
.mm-sticky-cta {
position: fixed; right: 24px; bottom: 24px; z-index: 900;
display: inline-flex; align-items: center; gap: 10px;
background: var(--mm-orange); color: #FFFFFF; font-weight: 700; font-size: 15px;
padding: 14px 22px; border-radius: 999px; text-decoration: none;
box-shadow: 0 10px 28px rgba(242,118,46,0.45);
transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.25s ease;
}
.mm-sticky-cta[hidden] { display: none; }
.mm-sticky-cta.is-hiding { opacity: 0; transform: translateY(14px); pointer-events: none; }
.mm-sticky-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(242,118,46,0.55); }
@media (max-width: 600px) {
.mm-sticky-cta { right: 16px; bottom: 16px; padding: 12px 18px; font-size: 14px; }
}
/* ---- multi-step form ---- */
.ms-section { max-width: 760px; margin: 0 auto; padding: 72px 24px; --mm-orange: #F2762E; --mm-teal: #2D738C; }
.ms-head { text-align: center; margin-bottom: 28px; }
.ms-eyebrow { display: inline-block; color: var(--mm-orange); font-weight: 700; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 10px; }
.ms-head h2 { font-size: 30px; margin: 0 0 8px; }
.ms-head p { color: #667085; font-size: 16px; margin: 0; }
.ms-form { background: #FFFFFF; border: 1px solid #EAECF0; border-radius: 20px; box-shadow: 0 16px 40px rgba(16,24,40,0.06); padding: 28px; }
.ms-progress { margin-bottom: 22px; }
.ms-progress[hidden] { display: none; }
.ms-progress-track { height: 6px; background: #F2F4F7; border-radius: 999px; overflow: hidden; }
.ms-progress-bar { height: 100%; width: 0; background: var(--mm-orange); border-radius: 999px; transition: width 0.3s ease; }
.ms-progress-text { display: block; margin-top: 8px; font-size: 12px; font-weight: 600; color: #667085; }
.ms-alert { background: #FEF3F2; color: #B42318; border: 1px solid #FECDCA; border-radius: 10px; padding: 10px 14px; font-size: 14px; margin-bottom: 16px; }
.ms-alert[hidden] { display: none; }
/* honeypot: off-screen, hidden from users and assistive tech, visible to naive bots */
.ms-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ms-step[hidden] { display: none; }
.ms-step h3 { font-size: 20px; margin: 0 0 6px; }
.ms-hint { font-size: 14px; color: #667085; margin: 0 0 16px; }
/* path choice: two rich, colour-accented cards (student = orange, supporter = teal) */
.ms-step--path { text-align: center; }
.ms-path-prompt { font-size: 18px; margin: 0 0 20px; }
.ms-paths { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 8px; }
.ms-path { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 32px 22px; border: 2px solid #EAECF0; border-radius: 18px; background: #FFFFFF; cursor: pointer; font-family: inherit; transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; }
.ms-path-ico { width: 58px; height: 58px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; transition: transform 0.18s ease; }
.ms-path--student .ms-path-ico { color: var(--mm-orange); background: #FFF1E8; }
.ms-path--supporter .ms-path-ico { color: var(--mm-teal); background: #E7F1F4; }
.ms-path strong { font-size: 18px; color: #101828; }
.ms-path-desc { font-size: 14px; line-height: 21px; color: #667085; }
.ms-path-go { margin-top: 4px; font-size: 13px; font-weight: 700; letter-spacing: 0.02em; display: inline-flex; align-items: center; gap: 6px; opacity: 0; transform: translateY(4px); transition: opacity 0.18s ease, transform 0.18s ease; }
.ms-path--student .ms-path-go { color: var(--mm-orange); }
.ms-path--supporter .ms-path-go { color: var(--mm-teal); }
.ms-path:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(16,24,40,0.10); }
.ms-path:hover .ms-path-ico { transform: scale(1.06); }
.ms-path:hover .ms-path-go, .ms-path.is-selected .ms-path-go { opacity: 1; transform: translateY(0); }
.ms-path--student:hover, .ms-path--student.is-selected { border-color: var(--mm-orange); }
.ms-path--supporter:hover, .ms-path--supporter.is-selected { border-color: var(--mm-teal); }
.ms-path--student.is-selected { background: #FFF7F1; }
.ms-path--supporter.is-selected { background: #EFF5F7; }
.ms-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 6px; }
.ms-field { display: flex; flex-direction: column; gap: 6px; }
.ms-field span { font-size: 13px; font-weight: 600; color: #344054; }
.ms-field input, .ms-field select, .ms-form textarea {
font-family: inherit; font-size: 16px; color: #101828; /* 16px avoids iOS Safari focus-zoom */
padding: 11px 14px; border: 1px solid #D0D5DD; border-radius: 10px; background: #FFFFFF; width: 100%;
}
.ms-field input:focus, .ms-field select:focus, .ms-form textarea:focus { outline: none; border-color: var(--mm-orange); box-shadow: 0 0 0 3px rgba(242,118,46,0.12); }
.ms-form textarea { margin-top: 6px; resize: vertical; }
.ms-cond { margin-top: 16px; }
.ms-cond[hidden] { display: none; }
.ms-radios { display: grid; gap: 10px; margin-top: 6px; }
.ms-radio { text-align: left; padding: 14px 16px; border: 1px solid #D0D5DD; border-radius: 12px; background: #FFFFFF; font-family: inherit; font-size: 15px; color: #344054; cursor: pointer; transition: border-color 0.15s ease, background 0.15s ease; }
.ms-radio:hover { border-color: #F6C9A8; }
.ms-radio.is-selected { border-color: var(--mm-orange); background: #FFF7F1; color: #101828; font-weight: 600; }
.ms-multi { display: flex; flex-wrap: wrap; gap: 10px; }
.ms-chip { padding: 10px 16px; border-radius: 999px; border: 1px solid #D0D5DD; background: #FFFFFF; font-family: inherit; font-size: 14px; font-weight: 500; color: #475467; cursor: pointer; transition: all 0.15s ease; }
.ms-chip:hover { border-color: #F6C9A8; }
.ms-chip.is-selected { border-color: var(--mm-orange); background: var(--mm-orange); color: #FFFFFF; }
.ms-msg { margin: 16px 0 0; padding: 12px 16px; background: #F0F6F8; border-left: 3px solid var(--mm-teal); border-radius: 8px; font-size: 14px; line-height: 21px; color: #344054; }
.ms-msg[hidden] { display: none; }
.ms-check { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; font-size: 14px; line-height: 21px; color: #344054; cursor: pointer; }
.ms-check input { margin-top: 3px; width: 16px; height: 16px; accent-color: var(--mm-orange); flex: 0 0 auto; }
.ms-check a { color: var(--mm-teal); }
.ms-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 24px; }
.ms-nav .ms-back { margin-right: auto; }
.ms-nav [hidden] { display: none; }
/* success */
.ms-success { text-align: center; background: #FFFFFF; border: 1px solid #EAECF0; border-radius: 20px; box-shadow: 0 16px 40px rgba(16,24,40,0.06); padding: 44px 28px; }
.ms-success[hidden] { display: none; }
.ms-success-icon { font-size: 48px; color: #2E9E6B; margin-bottom: 14px; }
.ms-success-title { font-size: 26px; margin: 0 0 10px; }
.ms-success-text { color: #667085; font-size: 16px; line-height: 25px; max-width: 520px; margin: 0 auto 24px; }
.ms-success-next { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #667085; margin: 0 0 14px; }
.ms-success-links { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
/* allow long labels (e.g. MK "Прочитајте го Водичот за добредојде") to wrap
inside the button instead of overflowing the box (base .btn is nowrap) */
.ms-success-links .btn { white-space: normal; }
/* ---- faq ---- */
.mm-faqs { max-width: 780px; margin: 32px auto 0; }
.mm-faq { border: 1px solid #EAECF0; border-radius: 12px; margin-bottom: 12px; background: #FFFFFF; }
.mm-faq summary { list-style: none; cursor: pointer; padding: 18px 20px; font-weight: 600; font-size: 16px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.mm-faq summary::-webkit-details-marker { display: none; }
.mm-faq summary::after { content: '\f078'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 13px; color: var(--mm-orange); transition: transform 0.2s ease; }
.mm-faq[open] summary::after { transform: rotate(180deg); }
.mm-faq-a { padding: 0 20px 20px; color: #667085; font-size: 15px; line-height: 24px; }
.mm-faq-a p { margin: 0; }
/* ---- final cta ---- */
.mm-final { text-align: center; padding: 80px 24px; background: linear-gradient(135deg, #F2762E 0%, #E85D2A 100%); color: #FFFFFF; }
.mm-final h2 { font-size: 32px; margin: 0 auto 12px; max-width: 720px; }
.mm-final p { font-size: 18px; line-height: 28px; margin: 0 auto 28px; max-width: 640px; color: rgba(255,255,255,0.92); }
.mm-final .btn { background: #FFFFFF; color: #E85D2A; border: none; }
.mm-final .btn:hover { background: #FFF3EC; }
/* ---- responsive ---- */
@media (max-width: 900px) {
.mm-hero { grid-template-columns: 1fr; padding: 100px 20px 48px; }
.mm-hero h1 { font-size: 38px; }
.mm-hero-collage { height: 340px; }
.mm-who { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
/* body already offsets the fixed header on mobile — trim the hero's top. */
.mm-hero { padding-top: 40px; }
}
@media (max-width: 600px) {
.mm-h2 { font-size: 26px; }
.ms-grid, .ms-paths { grid-template-columns: 1fr; }
.ms-form { padding: 20px; }
.mm-num-value { font-size: 38px; }
.ms-success-links .btn { width: 100%; }
}