initial commit
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
/* ============================================================
|
||||
ABOUT — LAYOUT B
|
||||
Full-width centered text block. Stats row inline below.
|
||||
No split — content breathes with generous whitespace.
|
||||
============================================================ */
|
||||
|
||||
.about-b {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-bg);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Top: centered text block ──────────────────────────── */
|
||||
.about-b-text {
|
||||
max-width: 680px;
|
||||
margin: 0 auto 4rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.about-b-text .section-title {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.about-b-body {
|
||||
font-size: 1rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.85;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.about-b-body + .about-b-body { margin-bottom: 2rem; }
|
||||
|
||||
.about-b-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
/* ── Stats bar ─────────────────────────────────────────── */
|
||||
.about-b-stats {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
border: 1px solid var(--color-border);
|
||||
border-radius: var(--radius-xl);
|
||||
overflow: hidden;
|
||||
margin-bottom: 4rem;
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.about-b-stat {
|
||||
padding: 2rem 1.5rem;
|
||||
text-align: center;
|
||||
border-right: 1px solid var(--color-border);
|
||||
transition: background-color 0.3s ease;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.about-b-stat:last-child { border-right: none; }
|
||||
|
||||
.about-b-stat::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0; left: 0; right: 0;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
|
||||
transform: scaleX(0);
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.about-b-stat:hover { background-color: var(--color-surface); }
|
||||
.about-b-stat:hover::after { transform: scaleX(1); }
|
||||
|
||||
.about-b-stat-number {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 2.4rem;
|
||||
font-weight: 900;
|
||||
color: var(--color-primary);
|
||||
line-height: 1;
|
||||
margin-bottom: 0.4rem;
|
||||
}
|
||||
|
||||
.about-b-stat-label {
|
||||
font-size: 0.78rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
color: var(--color-text-muted);
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.about-b-stat-desc {
|
||||
font-size: 0.8rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* ── Tags row ──────────────────────────────────────────── */
|
||||
.about-b-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
justify-content: center;
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.about-b-tag {
|
||||
display: inline-block;
|
||||
padding: 0.35rem 0.9rem;
|
||||
border-radius: var(--radius-md);
|
||||
border: 1px solid var(--color-border);
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-muted);
|
||||
background-color: var(--color-surface);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.about-b-tag:hover {
|
||||
border-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
/* ── Team strip ────────────────────────────────────────── */
|
||||
.about-b-team {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.about-b-team-avatars {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.about-b-team-avatars span {
|
||||
width: 40px; height: 40px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid var(--color-bg);
|
||||
background-color: var(--color-surface-2);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-size: 0.72rem; font-weight: 700;
|
||||
color: var(--color-text);
|
||||
margin-right: -10px;
|
||||
}
|
||||
|
||||
.about-b-team-avatars span:last-child {
|
||||
background-color: var(--color-primary);
|
||||
color: var(--color-btn-text);
|
||||
font-size: 0.65rem;
|
||||
}
|
||||
|
||||
.about-b-team-text {
|
||||
padding-left: 18px;
|
||||
font-size: 0.875rem;
|
||||
color: var(--color-text-muted);
|
||||
}
|
||||
|
||||
.about-b-team-text strong {
|
||||
color: var(--color-heading);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 700px) {
|
||||
.about-b-stats { grid-template-columns: 1fr 1fr; }
|
||||
.about-b-stat:nth-child(2) { border-right: none; }
|
||||
.about-b-stat:nth-child(3),
|
||||
.about-b-stat:nth-child(4) { border-top: 1px solid var(--color-border); }
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.about-b-stats { grid-template-columns: 1fr; }
|
||||
.about-b-stat { border-right: none; border-bottom: 1px solid var(--color-border); }
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
/* ============================================================
|
||||
ABOUT — LAYOUT C
|
||||
Reversed 40/60 split: decorative image panel left,
|
||||
rich text content right. Bold visual weight on left.
|
||||
============================================================ */
|
||||
|
||||
.about-c {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-surface);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.about-c-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 3fr;
|
||||
gap: 5rem;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* ── Left: image panel ─────────────────────────────────── */
|
||||
.about-c-visual {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.about-c-img-placeholder {
|
||||
aspect-ratio: 4/5;
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-xl);
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.about-c-img-placeholder::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: linear-gradient(135deg, var(--color-primary-soft) 0%, transparent 60%);
|
||||
}
|
||||
|
||||
.about-c-img-label {
|
||||
font-size: 0.75rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.1em;
|
||||
text-transform: uppercase;
|
||||
color: var(--color-text-muted);
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Floating accent card on image */
|
||||
.about-c-img-card {
|
||||
position: absolute;
|
||||
bottom: 1.5rem;
|
||||
right: -1.5rem;
|
||||
background-color: var(--color-primary);
|
||||
color: var(--color-btn-text);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 1rem 1.25rem;
|
||||
font-size: 0.82rem;
|
||||
font-weight: 700;
|
||||
box-shadow: 0 8px 24px var(--color-shadow);
|
||||
z-index: 2;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.about-c-img-card-num {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.6rem;
|
||||
font-weight: 900;
|
||||
display: block;
|
||||
line-height: 1;
|
||||
margin-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
/* ── Right: content ────────────────────────────────────── */
|
||||
.about-c-content {}
|
||||
|
||||
.about-c-content .section-title { margin-bottom: 1rem; }
|
||||
|
||||
.about-c-body {
|
||||
font-size: 0.95rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.85;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.about-c-body + .about-c-body { margin-bottom: 2rem; }
|
||||
|
||||
/* ── Inline stats ──────────────────────────────────────── */
|
||||
.about-c-stats {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 1rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.about-c-stat {
|
||||
padding: 1.25rem;
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-md);
|
||||
transition: border-color 0.3s ease, transform 0.3s ease;
|
||||
}
|
||||
|
||||
.about-c-stat:hover {
|
||||
border-color: var(--card-hover-border);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.about-c-stat-num {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.8rem;
|
||||
font-weight: 900;
|
||||
color: var(--color-primary);
|
||||
line-height: 1;
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.about-c-stat-label {
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-muted);
|
||||
}
|
||||
|
||||
/* ── Tags ──────────────────────────────────────────────── */
|
||||
.about-c-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.about-c-tag {
|
||||
display: inline-block;
|
||||
padding: 0.35rem 0.9rem;
|
||||
border-radius: var(--radius-md);
|
||||
border: 1px solid var(--color-border);
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-muted);
|
||||
background-color: var(--color-surface);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.about-c-tag:hover {
|
||||
border-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 900px) {
|
||||
.about-c-inner {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 3rem;
|
||||
}
|
||||
|
||||
.about-c-img-placeholder { aspect-ratio: 16/7; }
|
||||
.about-c-img-card { right: 1rem; }
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
/* ============================================================
|
||||
ABOUT US COMPONENT
|
||||
Split layout: left text content, right stat/image block
|
||||
============================================================ */
|
||||
|
||||
.about {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-bg);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.about-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 5rem;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* ── Left: content ─────────────────────────────────────── */
|
||||
.about-content .section-subtitle {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.about-body {
|
||||
font-size: 0.95rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.8;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.about-body + .about-body {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.about-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.about-tag {
|
||||
display: inline-block;
|
||||
padding: 0.35rem 0.9rem;
|
||||
border-radius: var(--radius-md);
|
||||
border: 1px solid var(--color-border);
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-muted);
|
||||
background-color: var(--color-surface);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.about-tag:hover {
|
||||
border-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
/* ── Right: visual panel ───────────────────────────────── */
|
||||
.about-visual {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.about-stat-row {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.about-stat-card {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 1.75rem 1.5rem;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: border-color 0.3s ease, transform 0.3s ease;
|
||||
}
|
||||
|
||||
.about-stat-card:hover {
|
||||
border-color: var(--card-hover-border);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.about-stat-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0; left: 0; right: 0;
|
||||
height: 2px;
|
||||
background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.about-stat-card:hover::before {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.about-stat-number {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 2.2rem;
|
||||
font-weight: 900;
|
||||
color: var(--color-primary);
|
||||
line-height: 1;
|
||||
margin-bottom: 0.4rem;
|
||||
}
|
||||
|
||||
.about-stat-label {
|
||||
font-size: 0.82rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-muted);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.06em;
|
||||
}
|
||||
|
||||
.about-stat-desc {
|
||||
font-size: 0.8rem;
|
||||
color: var(--color-text-muted);
|
||||
margin-top: 0.4rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* ── Team row ──────────────────────────────────────────── */
|
||||
.about-team-card {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 1.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.about-team-card:hover {
|
||||
border-color: var(--card-hover-border);
|
||||
}
|
||||
|
||||
.about-team-avatars {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.about-team-avatars span {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid var(--color-bg);
|
||||
background-color: var(--color-surface-2);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-text);
|
||||
margin-right: -10px;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.about-team-avatars span:last-child {
|
||||
background-color: var(--color-primary);
|
||||
color: var(--color-btn-text);
|
||||
font-size: 0.65rem;
|
||||
}
|
||||
|
||||
.about-team-info {
|
||||
padding-left: 14px;
|
||||
}
|
||||
|
||||
.about-team-title {
|
||||
font-size: 0.9rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
.about-team-sub {
|
||||
font-size: 0.8rem;
|
||||
color: var(--color-text-muted);
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 900px) {
|
||||
.about-inner {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 3rem;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
/* ============================================================
|
||||
CONTACT — LAYOUT B
|
||||
Centered single card. No left info column.
|
||||
Clean, focused, minimal.
|
||||
============================================================ */
|
||||
|
||||
.contact-b {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-bg);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.contact-b-header {
|
||||
text-align: center;
|
||||
max-width: 560px;
|
||||
margin: 0 auto 3rem;
|
||||
}
|
||||
|
||||
.contact-b-header .section-subtitle { margin: 0 auto; }
|
||||
|
||||
/* ── Centered card ─────────────────────────────────────── */
|
||||
.contact-b-card {
|
||||
max-width: 680px;
|
||||
margin: 0 auto;
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-xl);
|
||||
padding: 3rem;
|
||||
box-shadow: var(--color-card-shadow);
|
||||
transition: all 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Form elements (reuse from contact.css patterns) ────── */
|
||||
.contact-b-form-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 1.25rem;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.contact-b-form-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.contact-b-form-group.full-width { grid-column: 1 / -1; }
|
||||
|
||||
.contact-b-label {
|
||||
font-size: 0.82rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.contact-b-label span { color: var(--color-primary); margin-left: 2px; }
|
||||
|
||||
.contact-b-input,
|
||||
.contact-b-textarea,
|
||||
.contact-b-select {
|
||||
background-color: var(--color-surface);
|
||||
border: 1.5px solid var(--color-border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 0.7rem 1rem;
|
||||
font-family: var(--font-body);
|
||||
font-size: 0.9rem;
|
||||
color: var(--color-text);
|
||||
outline: none;
|
||||
width: 100%;
|
||||
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.contact-b-input::placeholder,
|
||||
.contact-b-textarea::placeholder { color: var(--color-text-muted); opacity: 0.7; }
|
||||
|
||||
.contact-b-input:focus,
|
||||
.contact-b-textarea:focus,
|
||||
.contact-b-select:focus {
|
||||
border-color: var(--color-primary);
|
||||
box-shadow: 0 0 0 3px var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.contact-b-textarea { resize: vertical; min-height: 130px; line-height: 1.6; }
|
||||
|
||||
.contact-b-select-wrap { position: relative; }
|
||||
|
||||
.contact-b-select-wrap::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
right: 1rem; top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 0; height: 0;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 5px solid var(--color-text-muted);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* ── Submit row ────────────────────────────────────────── */
|
||||
.contact-b-submit-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
margin-top: 1.75rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.contact-b-privacy {
|
||||
font-size: 0.78rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.5;
|
||||
max-width: 260px;
|
||||
}
|
||||
|
||||
.contact-b-privacy a {
|
||||
color: var(--color-primary);
|
||||
text-decoration: underline;
|
||||
text-decoration-color: transparent;
|
||||
transition: text-decoration-color 0.2s ease;
|
||||
}
|
||||
|
||||
.contact-b-privacy a:hover { text-decoration-color: var(--color-primary); }
|
||||
|
||||
/* ── Success state ─────────────────────────────────────── */
|
||||
.contact-b-success {
|
||||
display: none;
|
||||
text-align: center;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.contact-b-success.is-visible { display: block; }
|
||||
|
||||
.contact-b-success-icon {
|
||||
width: 56px; height: 56px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary-soft);
|
||||
border: 2px solid var(--color-primary);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
margin: 0 auto 1.25rem;
|
||||
}
|
||||
|
||||
.contact-b-success-icon svg {
|
||||
width: 24px; height: 24px;
|
||||
stroke: var(--color-primary); fill: none;
|
||||
stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.contact-b-success-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.4rem; font-weight: 800;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.contact-b-success-text {
|
||||
font-size: 0.9rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 600px) {
|
||||
.contact-b-card { padding: 1.5rem; }
|
||||
.contact-b-form-grid { grid-template-columns: 1fr; }
|
||||
.contact-b-submit-row { flex-direction: column; align-items: stretch; text-align: center; }
|
||||
.contact-b-privacy { max-width: 100%; }
|
||||
}
|
||||
@@ -0,0 +1,260 @@
|
||||
/* ============================================================
|
||||
CONTACT — LAYOUT C
|
||||
3-column: info left, form center, decorative accent right.
|
||||
Editorial feel, visually rich.
|
||||
============================================================ */
|
||||
|
||||
.contact-c {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-bg);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.contact-c-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr 1fr;
|
||||
gap: 3rem;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
/* ── Left: info ────────────────────────────────────────── */
|
||||
.contact-c-info {}
|
||||
|
||||
.contact-c-info .section-label { margin-bottom: 0.5rem; }
|
||||
|
||||
.contact-c-info .section-title {
|
||||
font-size: 1.6rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.contact-c-info .section-subtitle {
|
||||
font-size: 0.9rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.contact-c-details {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1.25rem;
|
||||
}
|
||||
|
||||
.contact-c-detail-item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.contact-c-detail-icon {
|
||||
width: 36px; height: 36px;
|
||||
flex-shrink: 0;
|
||||
border-radius: var(--radius-md);
|
||||
background-color: var(--color-primary-soft);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.contact-c-detail-icon svg {
|
||||
width: 16px; height: 16px;
|
||||
stroke: var(--color-primary); fill: none;
|
||||
stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
|
||||
transition: stroke 0.3s ease;
|
||||
}
|
||||
|
||||
.contact-c-detail-item:hover .contact-c-detail-icon { background-color: var(--color-primary); }
|
||||
.contact-c-detail-item:hover .contact-c-detail-icon svg { stroke: var(--color-btn-text); }
|
||||
|
||||
.contact-c-detail-label {
|
||||
font-size: 0.7rem; font-weight: 700;
|
||||
letter-spacing: 0.08em; text-transform: uppercase;
|
||||
color: var(--color-text-muted); margin-bottom: 0.15rem;
|
||||
}
|
||||
|
||||
.contact-c-detail-value {
|
||||
font-size: 0.88rem; font-weight: 500;
|
||||
color: var(--color-heading);
|
||||
}
|
||||
|
||||
/* ── Center: form ──────────────────────────────────────── */
|
||||
.contact-c-form-wrap {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-xl);
|
||||
padding: 2rem;
|
||||
box-shadow: var(--color-card-shadow);
|
||||
}
|
||||
|
||||
.contact-c-form-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.contact-c-form-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.4rem;
|
||||
}
|
||||
|
||||
.contact-c-form-group.full-width { grid-column: 1 / -1; }
|
||||
|
||||
.contact-c-label {
|
||||
font-size: 0.78rem; font-weight: 600;
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.contact-c-label span { color: var(--color-primary); margin-left: 2px; }
|
||||
|
||||
.contact-c-input,
|
||||
.contact-c-textarea,
|
||||
.contact-c-select {
|
||||
background-color: var(--color-surface);
|
||||
border: 1.5px solid var(--color-border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 0.65rem 0.875rem;
|
||||
font-family: var(--font-body);
|
||||
font-size: 0.875rem;
|
||||
color: var(--color-text);
|
||||
outline: none;
|
||||
width: 100%;
|
||||
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.contact-c-input::placeholder,
|
||||
.contact-c-textarea::placeholder { color: var(--color-text-muted); opacity: 0.7; }
|
||||
|
||||
.contact-c-input:focus,
|
||||
.contact-c-textarea:focus,
|
||||
.contact-c-select:focus {
|
||||
border-color: var(--color-primary);
|
||||
box-shadow: 0 0 0 3px var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.contact-c-textarea { resize: vertical; min-height: 110px; line-height: 1.6; }
|
||||
|
||||
.contact-c-select-wrap { position: relative; }
|
||||
.contact-c-select-wrap::after {
|
||||
content: '';
|
||||
position: absolute; right: 0.875rem; top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 0; height: 0;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 5px solid var(--color-text-muted);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.contact-c-submit-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
gap: 1rem;
|
||||
margin-top: 1.25rem;
|
||||
}
|
||||
|
||||
/* ── Success ───────────────────────────────────────────── */
|
||||
.contact-c-success {
|
||||
display: none;
|
||||
text-align: center;
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.contact-c-success.is-visible { display: block; }
|
||||
|
||||
.contact-c-success-icon {
|
||||
width: 48px; height: 48px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary-soft);
|
||||
border: 2px solid var(--color-primary);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
margin: 0 auto 1rem;
|
||||
}
|
||||
|
||||
.contact-c-success-icon svg {
|
||||
width: 20px; height: 20px;
|
||||
stroke: var(--color-primary); fill: none;
|
||||
stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.contact-c-success-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.2rem; font-weight: 800;
|
||||
color: var(--color-heading); margin-bottom: 0.4rem;
|
||||
}
|
||||
|
||||
.contact-c-success-text {
|
||||
font-size: 0.85rem; color: var(--color-text-muted); line-height: 1.7;
|
||||
}
|
||||
|
||||
/* ── Right: decorative accent panel ───────────────────── */
|
||||
.contact-c-accent {
|
||||
background-color: var(--color-primary);
|
||||
border-radius: var(--radius-xl);
|
||||
padding: 2rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1.5rem;
|
||||
position: sticky;
|
||||
top: 5rem;
|
||||
}
|
||||
|
||||
.contact-c-accent-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.1rem; font-weight: 800;
|
||||
color: var(--color-btn-text);
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.contact-c-accent-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.contact-c-accent-item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.6rem;
|
||||
font-size: 0.82rem;
|
||||
color: var(--color-btn-text);
|
||||
opacity: 0.85;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.contact-c-accent-item svg {
|
||||
width: 14px; height: 14px;
|
||||
stroke: var(--color-btn-text); fill: none;
|
||||
stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
|
||||
flex-shrink: 0; margin-top: 2px;
|
||||
}
|
||||
|
||||
.contact-c-accent-divider {
|
||||
height: 1px;
|
||||
background-color: rgba(255,255,255,0.2);
|
||||
}
|
||||
|
||||
.contact-c-accent-response {
|
||||
font-size: 0.8rem;
|
||||
color: var(--color-btn-text);
|
||||
opacity: 0.7;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.contact-c-accent-response strong {
|
||||
opacity: 1;
|
||||
display: block;
|
||||
font-size: 0.85rem;
|
||||
margin-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 1024px) {
|
||||
.contact-c-inner { grid-template-columns: 1fr 2fr; }
|
||||
.contact-c-accent { display: none; }
|
||||
}
|
||||
|
||||
@media (max-width: 700px) {
|
||||
.contact-c-inner { grid-template-columns: 1fr; }
|
||||
.contact-c-form-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
@@ -0,0 +1,286 @@
|
||||
/* ============================================================
|
||||
CONTACT FORM COMPONENT
|
||||
Split layout: left info panel, right form card
|
||||
============================================================ */
|
||||
|
||||
.contact {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-surface);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.contact-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1.6fr;
|
||||
gap: 5rem;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
/* ── Left: info ────────────────────────────────────────── */
|
||||
.contact-info .section-title {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.contact-info .section-subtitle {
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
|
||||
.contact-details {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1.25rem;
|
||||
}
|
||||
|
||||
.contact-detail-item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.contact-detail-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
flex-shrink: 0;
|
||||
border-radius: var(--radius-md);
|
||||
background-color: var(--color-primary-soft);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.contact-detail-icon svg {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
stroke: var(--color-primary);
|
||||
fill: none;
|
||||
stroke-width: 2;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
transition: stroke 0.3s ease;
|
||||
}
|
||||
|
||||
.contact-detail-item:hover .contact-detail-icon {
|
||||
background-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.contact-detail-item:hover .contact-detail-icon svg {
|
||||
stroke: var(--color-btn-text);
|
||||
}
|
||||
|
||||
.contact-detail-label {
|
||||
font-size: 0.75rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
color: var(--color-text-muted);
|
||||
margin-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
.contact-detail-value {
|
||||
font-size: 0.92rem;
|
||||
color: var(--color-heading);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* ── Right: form card ──────────────────────────────────── */
|
||||
.contact-form-card {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-xl);
|
||||
padding: 2.5rem;
|
||||
box-shadow: var(--color-card-shadow);
|
||||
transition: all 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Form elements ─────────────────────────────────────── */
|
||||
.form-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 1.25rem;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.form-group.full-width {
|
||||
grid-column: 1 / -1;
|
||||
}
|
||||
|
||||
.form-label {
|
||||
font-size: 0.82rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text);
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
|
||||
.form-label span {
|
||||
color: var(--color-primary);
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.form-input,
|
||||
.form-textarea,
|
||||
.form-select {
|
||||
background-color: var(--color-surface);
|
||||
border: 1.5px solid var(--color-border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 0.7rem 1rem;
|
||||
font-family: var(--font-body);
|
||||
font-size: 0.9rem;
|
||||
color: var(--color-text);
|
||||
outline: none;
|
||||
transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.3s ease;
|
||||
width: 100%;
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
.form-input::placeholder,
|
||||
.form-textarea::placeholder {
|
||||
color: var(--color-text-muted);
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.form-input:focus,
|
||||
.form-textarea:focus,
|
||||
.form-select:focus {
|
||||
border-color: var(--color-primary);
|
||||
box-shadow: 0 0 0 3px var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.form-textarea {
|
||||
resize: vertical;
|
||||
min-height: 130px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* Select arrow */
|
||||
.form-select-wrap {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.form-select-wrap::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
right: 1rem;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 5px solid var(--color-text-muted);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* ── Submit row ────────────────────────────────────────── */
|
||||
.form-submit-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
margin-top: 1.75rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.form-privacy {
|
||||
font-size: 0.78rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.5;
|
||||
max-width: 260px;
|
||||
}
|
||||
|
||||
.form-privacy a {
|
||||
color: var(--color-primary);
|
||||
text-decoration: underline;
|
||||
text-decoration-color: transparent;
|
||||
transition: text-decoration-color 0.2s ease;
|
||||
}
|
||||
|
||||
.form-privacy a:hover {
|
||||
text-decoration-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.form-submit-row .btn {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* ── Success state ─────────────────────────────────────── */
|
||||
.form-success {
|
||||
display: none;
|
||||
text-align: center;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.form-success.is-visible {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.form-success-icon {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary-soft);
|
||||
border: 2px solid var(--color-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 1.25rem;
|
||||
}
|
||||
|
||||
.form-success-icon svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
stroke: var(--color-primary);
|
||||
fill: none;
|
||||
stroke-width: 2.5;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.form-success-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.4rem;
|
||||
font-weight: 800;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.form-success-text {
|
||||
font-size: 0.9rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 900px) {
|
||||
.contact-inner {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 3rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 540px) {
|
||||
.form-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.contact-form-card {
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.form-submit-row {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.form-privacy {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,157 @@
|
||||
/* ============================================================
|
||||
CTA — LAYOUT B
|
||||
Split: left text + trust items, right email capture card.
|
||||
More functional, conversion-focused.
|
||||
============================================================ */
|
||||
|
||||
.cta-b {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--cta-bg);
|
||||
background-image: var(--cta-gradient);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.cta-b::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 600px; height: 600px;
|
||||
border-radius: 50%;
|
||||
background: radial-gradient(circle, var(--color-primary-soft) 0%, transparent 70%);
|
||||
top: -300px; left: -150px;
|
||||
opacity: 0.4;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.cta-b-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 5rem;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* ── Left: text ────────────────────────────────────────── */
|
||||
.cta-b-content {}
|
||||
|
||||
.cta-b-label {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
font-size: 0.78rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.1em;
|
||||
text-transform: uppercase;
|
||||
color: var(--color-primary);
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.cta-b-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: clamp(1.8rem, 3.5vw, 2.8rem);
|
||||
font-weight: 900;
|
||||
color: var(--color-heading);
|
||||
line-height: 1.12;
|
||||
letter-spacing: -0.025em;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.cta-b-title em { font-style: normal; color: var(--color-primary); }
|
||||
|
||||
.cta-b-subtitle {
|
||||
font-size: 1rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.75;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.cta-b-trust {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.6rem;
|
||||
}
|
||||
|
||||
.cta-b-trust-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
font-size: 0.85rem;
|
||||
color: var(--color-text-muted);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.cta-b-trust-item svg {
|
||||
width: 14px; height: 14px;
|
||||
stroke: var(--color-primary); fill: none;
|
||||
stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* ── Right: capture card ───────────────────────────────── */
|
||||
.cta-b-card {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-xl);
|
||||
padding: 2.5rem;
|
||||
box-shadow: var(--color-card-shadow), var(--color-glow);
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.cta-b-card-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.25rem;
|
||||
font-weight: 800;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.4rem;
|
||||
}
|
||||
|
||||
.cta-b-card-sub {
|
||||
font-size: 0.88rem;
|
||||
color: var(--color-text-muted);
|
||||
margin-bottom: 1.75rem;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.cta-b-form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.85rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.cta-b-input {
|
||||
background-color: var(--color-surface);
|
||||
border: 1.5px solid var(--color-border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 0.75rem 1rem;
|
||||
font-family: var(--font-body);
|
||||
font-size: 0.9rem;
|
||||
color: var(--color-text);
|
||||
outline: none;
|
||||
width: 100%;
|
||||
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
|
||||
.cta-b-input::placeholder { color: var(--color-text-muted); opacity: 0.7; }
|
||||
|
||||
.cta-b-input:focus {
|
||||
border-color: var(--color-primary);
|
||||
box-shadow: 0 0 0 3px var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.cta-b-card .btn { width: 100%; justify-content: center; }
|
||||
|
||||
.cta-b-note {
|
||||
font-size: 0.75rem;
|
||||
color: var(--color-text-muted);
|
||||
text-align: center;
|
||||
margin-top: 0.75rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 860px) {
|
||||
.cta-b-inner { grid-template-columns: 1fr; gap: 3rem; }
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
/* ============================================================
|
||||
CTA — LAYOUT C
|
||||
Full-bleed panel. Large decorative BG word. Bold & loud.
|
||||
Uses the primary color as background for max contrast.
|
||||
============================================================ */
|
||||
|
||||
.cta-c {
|
||||
padding: 7rem 0;
|
||||
background-color: var(--color-primary);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Large decorative word ─────────────────────────────── */
|
||||
.cta-c::before {
|
||||
content: 'START';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-family: var(--font-heading);
|
||||
font-size: clamp(10rem, 22vw, 20rem);
|
||||
font-weight: 900;
|
||||
color: var(--color-btn-text);
|
||||
opacity: 0.05;
|
||||
letter-spacing: -0.05em;
|
||||
white-space: nowrap;
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.cta-c-inner {
|
||||
text-align: center;
|
||||
max-width: 680px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.cta-c-label {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
font-size: 0.78rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.1em;
|
||||
text-transform: uppercase;
|
||||
color: var(--color-btn-text);
|
||||
opacity: 0.7;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.cta-c-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: clamp(2.4rem, 5vw, 4rem);
|
||||
font-weight: 900;
|
||||
color: var(--color-btn-text);
|
||||
line-height: 1.08;
|
||||
letter-spacing: -0.03em;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.cta-c-subtitle {
|
||||
font-size: 1.05rem;
|
||||
color: var(--color-btn-text);
|
||||
opacity: 0.8;
|
||||
line-height: 1.75;
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
|
||||
/* ── Inverted buttons ──────────────────────────────────── */
|
||||
.cta-c-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.cta-c .btn-solid {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.75rem 1.75rem;
|
||||
border-radius: var(--radius-md);
|
||||
font-family: var(--font-body);
|
||||
font-size: 0.95rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
border: 2px solid var(--color-btn-text);
|
||||
background-color: var(--color-btn-text);
|
||||
color: var(--color-primary);
|
||||
transition: all 0.25s ease;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.cta-c .btn-solid:hover {
|
||||
background-color: transparent;
|
||||
color: var(--color-btn-text);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.cta-c .btn-ghost {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.75rem 1.75rem;
|
||||
border-radius: var(--radius-md);
|
||||
font-family: var(--font-body);
|
||||
font-size: 0.95rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
border: 2px solid rgba(255,255,255,0.4);
|
||||
background-color: transparent;
|
||||
color: var(--color-btn-text);
|
||||
transition: all 0.25s ease;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.cta-c .btn-ghost:hover {
|
||||
border-color: var(--color-btn-text);
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
/* ── Trust row ─────────────────────────────────────────── */
|
||||
.cta-c-trust {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1.5rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.cta-c-trust-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
font-size: 0.82rem;
|
||||
color: var(--color-btn-text);
|
||||
opacity: 0.75;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.cta-c-trust-item svg {
|
||||
width: 14px; height: 14px;
|
||||
stroke: var(--color-btn-text); fill: none;
|
||||
stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.cta-c-divider {
|
||||
width: 4px; height: 4px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-btn-text);
|
||||
opacity: 0.3;
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
/* ============================================================
|
||||
CTA COMPONENT
|
||||
Centered call-to-action section with background treatment
|
||||
============================================================ */
|
||||
|
||||
.cta-section {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--cta-bg);
|
||||
background-image: var(--cta-gradient);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Background decoration ─────────────────────────────── */
|
||||
.cta-section::before,
|
||||
.cta-section::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.cta-section::before {
|
||||
width: 500px; height: 500px;
|
||||
background: radial-gradient(circle, var(--color-primary-soft) 0%, transparent 70%);
|
||||
top: -200px; left: -100px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.cta-section::after {
|
||||
width: 400px; height: 400px;
|
||||
background: radial-gradient(circle, var(--color-accent-soft) 0%, transparent 70%);
|
||||
bottom: -150px; right: -50px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.cta-inner {
|
||||
text-align: center;
|
||||
max-width: 680px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* ── Label ─────────────────────────────────────────────── */
|
||||
.cta-label {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
font-size: 0.78rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.1em;
|
||||
text-transform: uppercase;
|
||||
color: var(--color-primary);
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
/* ── Headline ──────────────────────────────────────────── */
|
||||
.cta-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: clamp(2rem, 4.5vw, 3.2rem);
|
||||
font-weight: 900;
|
||||
color: var(--color-heading);
|
||||
line-height: 1.12;
|
||||
letter-spacing: -0.025em;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.cta-title em {
|
||||
font-style: normal;
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.cta-subtitle {
|
||||
font-size: 1.05rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.75;
|
||||
margin-bottom: 2.5rem;
|
||||
max-width: 500px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* ── Actions ───────────────────────────────────────────── */
|
||||
.cta-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
/* ── Trust line ────────────────────────────────────────── */
|
||||
.cta-trust {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1.5rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.cta-trust-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
font-size: 0.82rem;
|
||||
color: var(--color-text-muted);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.cta-trust-item svg {
|
||||
width: 14px; height: 14px;
|
||||
stroke: var(--color-primary);
|
||||
fill: none;
|
||||
stroke-width: 2.5;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.cta-divider {
|
||||
width: 4px; height: 4px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-border);
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.cta-divider {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
/* ============================================================
|
||||
FAQ — LAYOUT B
|
||||
Full-width centered accordion. No sidebar heading.
|
||||
Heading centered above the list. Clean and open.
|
||||
============================================================ */
|
||||
|
||||
.faq-b {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-bg);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.faq-b-header {
|
||||
text-align: center;
|
||||
max-width: 600px;
|
||||
margin: 0 auto 4rem;
|
||||
}
|
||||
|
||||
.faq-b-header .section-subtitle { margin: 0 auto; }
|
||||
|
||||
.faq-b-contact-nudge {
|
||||
font-size: 0.88rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.6;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.faq-b-contact-nudge a {
|
||||
color: var(--color-primary);
|
||||
font-weight: 600;
|
||||
text-decoration: underline;
|
||||
text-decoration-color: transparent;
|
||||
transition: text-decoration-color 0.2s ease;
|
||||
}
|
||||
|
||||
.faq-b-contact-nudge a:hover {
|
||||
text-decoration-color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* ── Accordion list ────────────────────────────────────── */
|
||||
.faq-b-list {
|
||||
max-width: 760px;
|
||||
margin: 0 auto;
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.faq-b-item {
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.faq-b-item.is-open { border-bottom-color: var(--color-primary); }
|
||||
|
||||
.faq-b-question {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
padding: 1.5rem 0;
|
||||
cursor: pointer;
|
||||
background: none;
|
||||
border: none;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.faq-b-question-text {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.05rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
line-height: 1.4;
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.faq-b-item.is-open .faq-b-question-text { color: var(--color-primary); }
|
||||
|
||||
.faq-b-icon {
|
||||
flex-shrink: 0;
|
||||
width: 28px; height: 28px;
|
||||
border-radius: 50%;
|
||||
border: 1.5px solid var(--color-border);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
transition: all 0.3s ease;
|
||||
background-color: var(--color-surface);
|
||||
}
|
||||
|
||||
.faq-b-item.is-open .faq-b-icon {
|
||||
background-color: var(--color-primary);
|
||||
border-color: var(--color-primary);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.faq-b-icon svg {
|
||||
width: 12px; height: 12px;
|
||||
stroke: var(--color-text-muted); fill: none;
|
||||
stroke-width: 2.5; stroke-linecap: round;
|
||||
transition: stroke 0.3s ease;
|
||||
}
|
||||
|
||||
.faq-b-item.is-open .faq-b-icon svg { stroke: var(--color-btn-text); }
|
||||
|
||||
.faq-b-answer {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
transition: max-height 0.4s ease;
|
||||
}
|
||||
|
||||
.faq-b-item.is-open .faq-b-answer { max-height: 300px; }
|
||||
|
||||
.faq-b-answer-inner {
|
||||
padding-bottom: 1.5rem;
|
||||
font-size: 0.93rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.8;
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
/* ============================================================
|
||||
FAQ — LAYOUT C
|
||||
Two-column accordion grid. Questions split into two columns.
|
||||
Each column has its own independent accordion behavior.
|
||||
============================================================ */
|
||||
|
||||
.faq-c {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-surface);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.faq-c-header {
|
||||
text-align: center;
|
||||
max-width: 600px;
|
||||
margin: 0 auto 4rem;
|
||||
}
|
||||
|
||||
.faq-c-header .section-subtitle { margin: 0 auto; }
|
||||
|
||||
.faq-c-contact-nudge {
|
||||
font-size: 0.88rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.6;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.faq-c-contact-nudge a {
|
||||
color: var(--color-primary);
|
||||
font-weight: 600;
|
||||
text-decoration: underline;
|
||||
text-decoration-color: transparent;
|
||||
transition: text-decoration-color 0.2s ease;
|
||||
}
|
||||
|
||||
.faq-c-contact-nudge a:hover {
|
||||
text-decoration-color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* ── Two-col grid ──────────────────────────────────────── */
|
||||
.faq-c-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 0 4rem;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
/* ── Column ────────────────────────────────────────────── */
|
||||
.faq-c-col {
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
/* ── Item ──────────────────────────────────────────────── */
|
||||
.faq-c-item {
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.faq-c-item.is-open { border-bottom-color: var(--color-primary); }
|
||||
|
||||
.faq-c-question {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
padding: 1.35rem 0;
|
||||
cursor: pointer;
|
||||
background: none;
|
||||
border: none;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.faq-c-question-text {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 0.98rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
line-height: 1.4;
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.faq-c-item.is-open .faq-c-question-text { color: var(--color-primary); }
|
||||
|
||||
.faq-c-icon {
|
||||
flex-shrink: 0;
|
||||
width: 24px; height: 24px;
|
||||
border-radius: 50%;
|
||||
border: 1.5px solid var(--color-border);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
transition: all 0.3s ease;
|
||||
background-color: var(--card-bg);
|
||||
}
|
||||
|
||||
.faq-c-item.is-open .faq-c-icon {
|
||||
background-color: var(--color-primary);
|
||||
border-color: var(--color-primary);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.faq-c-icon svg {
|
||||
width: 10px; height: 10px;
|
||||
stroke: var(--color-text-muted); fill: none;
|
||||
stroke-width: 2.5; stroke-linecap: round;
|
||||
transition: stroke 0.3s ease;
|
||||
}
|
||||
|
||||
.faq-c-item.is-open .faq-c-icon svg { stroke: var(--color-btn-text); }
|
||||
|
||||
.faq-c-answer {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
transition: max-height 0.4s ease;
|
||||
}
|
||||
|
||||
.faq-c-item.is-open .faq-c-answer { max-height: 300px; }
|
||||
|
||||
.faq-c-answer-inner {
|
||||
padding-bottom: 1.35rem;
|
||||
font-size: 0.88rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 768px) {
|
||||
.faq-c-grid { grid-template-columns: 1fr; gap: 0; }
|
||||
.faq-c-col:last-child { border-top: none; }
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
/* ============================================================
|
||||
FAQ COMPONENT
|
||||
Accordion-style questions with smooth expand/collapse
|
||||
============================================================ */
|
||||
|
||||
.faq {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-surface);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.faq-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr;
|
||||
gap: 5rem;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
/* ── Left: heading ─────────────────────────────────────── */
|
||||
.faq-heading {
|
||||
position: sticky;
|
||||
top: 5rem;
|
||||
}
|
||||
|
||||
.faq-heading .section-title {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.faq-heading .section-subtitle {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.faq-contact-nudge {
|
||||
font-size: 0.88rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.faq-contact-nudge a {
|
||||
color: var(--color-primary);
|
||||
font-weight: 600;
|
||||
text-decoration: underline;
|
||||
text-decoration-color: transparent;
|
||||
transition: text-decoration-color 0.2s ease;
|
||||
}
|
||||
|
||||
.faq-contact-nudge a:hover {
|
||||
text-decoration-color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* ── Right: accordion list ─────────────────────────────── */
|
||||
.faq-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
/* ── Individual item ───────────────────────────────────── */
|
||||
.faq-item {
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.faq-item.is-open {
|
||||
border-bottom-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.faq-question {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
padding: 1.5rem 0;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
list-style: none;
|
||||
background: none;
|
||||
border: none;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.faq-question::-webkit-details-marker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.faq-question-text {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.05rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
line-height: 1.4;
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.faq-item.is-open .faq-question-text {
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.faq-icon {
|
||||
flex-shrink: 0;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 50%;
|
||||
border: 1.5px solid var(--color-border);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: all 0.3s ease;
|
||||
background-color: var(--color-surface);
|
||||
}
|
||||
|
||||
.faq-item.is-open .faq-icon {
|
||||
background-color: var(--color-primary);
|
||||
border-color: var(--color-primary);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.faq-icon svg {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
stroke: var(--color-text-muted);
|
||||
fill: none;
|
||||
stroke-width: 2.5;
|
||||
stroke-linecap: round;
|
||||
transition: stroke 0.3s ease;
|
||||
}
|
||||
|
||||
.faq-item.is-open .faq-icon svg {
|
||||
stroke: var(--color-btn-text);
|
||||
}
|
||||
|
||||
/* ── Answer panel ──────────────────────────────────────── */
|
||||
.faq-answer {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
transition: max-height 0.4s ease, padding 0.3s ease;
|
||||
}
|
||||
|
||||
.faq-item.is-open .faq-answer {
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
.faq-answer-inner {
|
||||
padding-bottom: 1.5rem;
|
||||
font-size: 0.93rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 860px) {
|
||||
.faq-inner {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 2.5rem;
|
||||
}
|
||||
|
||||
.faq-heading {
|
||||
position: static;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
/* ============================================================
|
||||
FEATURES — LAYOUT B
|
||||
Alternating rows: icon + title + text on left, visual on right.
|
||||
Even rows flip. More spacious, editorial feel.
|
||||
============================================================ */
|
||||
|
||||
.features-b {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-surface);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.features-b-header {
|
||||
text-align: center;
|
||||
margin-bottom: 5rem;
|
||||
}
|
||||
|
||||
.features-b-header .section-subtitle { margin: 0 auto; }
|
||||
|
||||
/* ── Each row ──────────────────────────────────────────── */
|
||||
.features-b-row {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 4rem;
|
||||
align-items: center;
|
||||
padding: 3.5rem 0;
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.features-b-row:last-child { border-bottom: 1px solid var(--color-border); }
|
||||
|
||||
/* Flip even rows */
|
||||
.features-b-row:nth-child(even) .features-b-text { order: 2; }
|
||||
.features-b-row:nth-child(even) .features-b-visual { order: 1; }
|
||||
|
||||
/* ── Text side ─────────────────────────────────────────── */
|
||||
.features-b-text {}
|
||||
|
||||
.features-b-icon {
|
||||
width: 52px; height: 52px;
|
||||
background-color: var(--color-primary-soft);
|
||||
border-radius: var(--radius-md);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
margin-bottom: 1.25rem;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.features-b-icon svg {
|
||||
width: 24px; height: 24px;
|
||||
stroke: var(--color-primary); fill: none;
|
||||
stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
|
||||
transition: stroke 0.3s ease;
|
||||
}
|
||||
|
||||
.features-b-row:hover .features-b-icon {
|
||||
background-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.features-b-row:hover .features-b-icon svg {
|
||||
stroke: var(--color-btn-text);
|
||||
}
|
||||
|
||||
.features-b-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.6rem;
|
||||
font-weight: 800;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.75rem;
|
||||
line-height: 1.2;
|
||||
letter-spacing: -0.02em;
|
||||
}
|
||||
|
||||
.features-b-desc {
|
||||
font-size: 0.95rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.8;
|
||||
margin-bottom: 1.25rem;
|
||||
max-width: 420px;
|
||||
}
|
||||
|
||||
.features-b-link {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
font-size: 0.875rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-primary);
|
||||
transition: gap 0.2s ease;
|
||||
}
|
||||
|
||||
.features-b-link:hover { gap: 0.65rem; }
|
||||
|
||||
.features-b-link svg {
|
||||
width: 14px; height: 14px;
|
||||
stroke: currentColor; fill: none;
|
||||
stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
|
||||
}
|
||||
|
||||
/* ── Visual side: accent block with sub-points ─────────── */
|
||||
.features-b-visual {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-xl);
|
||||
padding: 2rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.features-b-row:hover .features-b-visual {
|
||||
border-color: var(--card-hover-border);
|
||||
}
|
||||
|
||||
.features-b-point {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.75rem;
|
||||
padding: 0.75rem;
|
||||
border-radius: var(--radius-md);
|
||||
background-color: var(--color-surface);
|
||||
border: 1px solid var(--color-border);
|
||||
transition: border-color 0.2s ease;
|
||||
}
|
||||
|
||||
.features-b-point:hover { border-color: var(--color-primary); }
|
||||
|
||||
.features-b-point-dot {
|
||||
width: 8px; height: 8px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary);
|
||||
flex-shrink: 0;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.features-b-point-text {
|
||||
font-size: 0.875rem;
|
||||
color: var(--color-text);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.features-b-point-text strong {
|
||||
color: var(--color-heading);
|
||||
font-weight: 700;
|
||||
display: block;
|
||||
margin-bottom: 0.1rem;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 800px) {
|
||||
.features-b-row {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
.features-b-row:nth-child(even) .features-b-text,
|
||||
.features-b-row:nth-child(even) .features-b-visual { order: unset; }
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
/* ============================================================
|
||||
FEATURES — LAYOUT C
|
||||
Single column, oversized numbered list. Bold & editorial.
|
||||
Each item spans full width with a large number accent.
|
||||
============================================================ */
|
||||
|
||||
.features-c {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-bg);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.features-c-header {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 3rem;
|
||||
align-items: end;
|
||||
margin-bottom: 4rem;
|
||||
padding-bottom: 3rem;
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.features-c-header .section-subtitle { margin: 0; }
|
||||
|
||||
/* ── List ──────────────────────────────────────────────── */
|
||||
.features-c-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
/* ── Each item ─────────────────────────────────────────── */
|
||||
.features-c-item {
|
||||
display: grid;
|
||||
grid-template-columns: 80px 1fr auto;
|
||||
gap: 2rem;
|
||||
align-items: center;
|
||||
padding: 2rem 0;
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
cursor: default;
|
||||
transition: padding 0.3s ease;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.features-c-item::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -1.5rem; top: 0; bottom: 0;
|
||||
width: 3px;
|
||||
background-color: var(--color-primary);
|
||||
transform: scaleY(0);
|
||||
transition: transform 0.3s ease;
|
||||
transform-origin: bottom;
|
||||
}
|
||||
|
||||
.features-c-item:hover::before { transform: scaleY(1); }
|
||||
.features-c-item:hover { padding-left: 0.5rem; }
|
||||
|
||||
/* ── Number ────────────────────────────────────────────── */
|
||||
.features-c-number {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 3rem;
|
||||
font-weight: 900;
|
||||
color: var(--color-primary);
|
||||
opacity: 0.25;
|
||||
line-height: 1;
|
||||
transition: opacity 0.3s ease;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.features-c-item:hover .features-c-number { opacity: 1; }
|
||||
|
||||
/* ── Content ───────────────────────────────────────────── */
|
||||
.features-c-content {}
|
||||
|
||||
.features-c-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.25rem;
|
||||
font-weight: 800;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.4rem;
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.features-c-item:hover .features-c-title { color: var(--color-primary); }
|
||||
|
||||
.features-c-desc {
|
||||
font-size: 0.9rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.7;
|
||||
max-width: 560px;
|
||||
}
|
||||
|
||||
/* ── Right: icon ───────────────────────────────────────── */
|
||||
.features-c-icon {
|
||||
width: 48px; height: 48px;
|
||||
border-radius: var(--radius-md);
|
||||
background-color: var(--color-surface);
|
||||
border: 1px solid var(--color-border);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
flex-shrink: 0;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.features-c-icon svg {
|
||||
width: 22px; height: 22px;
|
||||
stroke: var(--color-text-muted); fill: none;
|
||||
stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
|
||||
transition: stroke 0.3s ease;
|
||||
}
|
||||
|
||||
.features-c-item:hover .features-c-icon {
|
||||
background-color: var(--color-primary);
|
||||
border-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.features-c-item:hover .features-c-icon svg {
|
||||
stroke: var(--color-btn-text);
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 768px) {
|
||||
.features-c-header { grid-template-columns: 1fr; }
|
||||
|
||||
.features-c-item {
|
||||
grid-template-columns: 50px 1fr;
|
||||
gap: 1.25rem;
|
||||
}
|
||||
|
||||
.features-c-icon { display: none; }
|
||||
.features-c-number { font-size: 2rem; }
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
/* ============================================================
|
||||
FEATURES COMPONENT
|
||||
3-column feature grid with icon, title, description
|
||||
============================================================ */
|
||||
|
||||
.features {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-surface);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.features-header {
|
||||
text-align: center;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
.features-header .section-subtitle {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* ── Grid ──────────────────────────────────────────────── */
|
||||
.features-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
/* ── Card ──────────────────────────────────────────────── */
|
||||
.feature-card {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 2rem;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.feature-card::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
|
||||
transform: scaleX(0);
|
||||
transform-origin: left;
|
||||
transition: transform 0.35s ease;
|
||||
}
|
||||
|
||||
.feature-card:hover {
|
||||
border-color: var(--card-hover-border);
|
||||
transform: translateY(-4px);
|
||||
box-shadow: var(--color-card-shadow);
|
||||
}
|
||||
|
||||
.feature-card:hover::after {
|
||||
transform: scaleX(1);
|
||||
}
|
||||
|
||||
/* ── Icon ──────────────────────────────────────────────── */
|
||||
.feature-icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
background-color: var(--color-primary-soft);
|
||||
border-radius: var(--radius-md);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 1.25rem;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.feature-icon svg {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
color: var(--color-primary);
|
||||
stroke: var(--color-primary);
|
||||
fill: none;
|
||||
stroke-width: 2;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
transition: color 0.3s ease, stroke 0.3s ease;
|
||||
}
|
||||
|
||||
.feature-card:hover .feature-icon {
|
||||
background-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.feature-card:hover .feature-icon svg {
|
||||
color: var(--color-btn-text);
|
||||
stroke: var(--color-btn-text);
|
||||
}
|
||||
|
||||
/* ── Text ──────────────────────────────────────────────── */
|
||||
.feature-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.15rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.6rem;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.feature-desc {
|
||||
font-size: 0.92rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.7;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.feature-link {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.35rem;
|
||||
margin-top: 1rem;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-primary);
|
||||
transition: gap 0.2s ease, color 0.2s ease;
|
||||
}
|
||||
|
||||
.feature-link:hover {
|
||||
gap: 0.6rem;
|
||||
}
|
||||
|
||||
.feature-link svg {
|
||||
width: 14px; height: 14px;
|
||||
stroke: currentColor;
|
||||
fill: none;
|
||||
stroke-width: 2.5;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 900px) {
|
||||
.features-grid {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 580px) {
|
||||
.features-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
/* ============================================================
|
||||
FOOTER — LAYOUT B
|
||||
Two rows: top = centered nav links, bottom = brand + copy.
|
||||
Airy, minimal, centered everything.
|
||||
============================================================ */
|
||||
|
||||
.footer-b {
|
||||
background-color: var(--footer-bg);
|
||||
padding: 3.5rem 0 0;
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Top row: nav columns centered ────────────────────── */
|
||||
.footer-b-nav {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 5rem;
|
||||
padding-bottom: 3rem;
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.footer-b-col {}
|
||||
|
||||
.footer-b-col-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 0.78rem; font-weight: 700;
|
||||
letter-spacing: 0.1em; text-transform: uppercase;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
[data-theme="midnight"] .footer-b .footer-b-col-title,
|
||||
[data-theme="neon"] .footer-b .footer-b-col-title { color: #f0f6ff; }
|
||||
[data-theme="linen"] .footer-b .footer-b-col-title { color: #faf7f2; }
|
||||
[data-theme="petal"] .footer-b .footer-b-col-title { color: #fdf8ff; }
|
||||
|
||||
.footer-b-links {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.6rem;
|
||||
}
|
||||
|
||||
.footer-b-links a {
|
||||
font-size: 0.88rem;
|
||||
color: var(--footer-text);
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.footer-b-links a:hover { color: var(--color-primary); }
|
||||
|
||||
/* ── Bottom row: brand center ──────────────────────────── */
|
||||
.footer-b-bottom {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 1.25rem;
|
||||
padding: 2.5rem 0;
|
||||
text-align: center;
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.footer-b-logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.6rem;
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.2rem; font-weight: 800;
|
||||
color: var(--color-heading);
|
||||
letter-spacing: -0.02em;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
[data-theme="midnight"] .footer-b .footer-b-logo,
|
||||
[data-theme="neon"] .footer-b .footer-b-logo { color: #f0f6ff; }
|
||||
[data-theme="linen"] .footer-b .footer-b-logo { color: #faf7f2; }
|
||||
[data-theme="petal"] .footer-b .footer-b-logo { color: #fdf8ff; }
|
||||
|
||||
.footer-b-logo .logo-mark {
|
||||
width: 28px; height: 28px;
|
||||
background-color: var(--color-primary);
|
||||
border-radius: var(--radius-sm);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-size: 0.85rem; font-weight: 900;
|
||||
color: var(--color-btn-text);
|
||||
}
|
||||
|
||||
.footer-b-tagline {
|
||||
font-size: 0.85rem;
|
||||
color: var(--footer-text);
|
||||
max-width: 340px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.footer-b-social {
|
||||
display: flex;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.footer-b-social a {
|
||||
width: 34px; height: 34px;
|
||||
border-radius: var(--radius-sm);
|
||||
border: 1px solid var(--color-border);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
color: var(--footer-text);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.footer-b-social a:hover {
|
||||
border-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.footer-b-social a svg {
|
||||
width: 14px; height: 14px;
|
||||
stroke: currentColor; fill: none;
|
||||
stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.footer-b-copy {
|
||||
font-size: 0.8rem;
|
||||
color: var(--footer-text);
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
/* ============================================================
|
||||
FOOTER — LAYOUT C
|
||||
Ultra-minimal: single full-width bar.
|
||||
Logo left, nav links center, copy right. One line.
|
||||
============================================================ */
|
||||
|
||||
.footer-c {
|
||||
background-color: var(--footer-bg);
|
||||
border-top: 1px solid var(--color-border);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.footer-c-bar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 64px;
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
/* ── Logo ──────────────────────────────────────────────── */
|
||||
.footer-c-logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.1rem; font-weight: 800;
|
||||
letter-spacing: -0.02em;
|
||||
flex-shrink: 0;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
[data-theme="midnight"] .footer-c .footer-c-logo,
|
||||
[data-theme="neon"] .footer-c .footer-c-logo { color: #f0f6ff; }
|
||||
[data-theme="linen"] .footer-c .footer-c-logo { color: #faf7f2; }
|
||||
[data-theme="petal"] .footer-c .footer-c-logo { color: #fdf8ff; }
|
||||
|
||||
.footer-c-logo:hover { color: var(--color-primary) !important; }
|
||||
|
||||
.footer-c-logo .logo-mark {
|
||||
width: 26px; height: 26px;
|
||||
background-color: var(--color-primary);
|
||||
border-radius: var(--radius-sm);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-size: 0.78rem; font-weight: 900;
|
||||
color: var(--color-btn-text);
|
||||
}
|
||||
|
||||
/* ── Center nav ────────────────────────────────────────── */
|
||||
.footer-c-nav {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1.75rem;
|
||||
flex: 1;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.footer-c-nav a {
|
||||
font-size: 0.82rem; font-weight: 500;
|
||||
color: var(--footer-text);
|
||||
transition: color 0.2s ease;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.footer-c-nav a:hover { color: var(--color-primary); }
|
||||
|
||||
/* ── Right: copy ───────────────────────────────────────── */
|
||||
.footer-c-copy {
|
||||
font-size: 0.78rem;
|
||||
color: var(--footer-text);
|
||||
flex-shrink: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 768px) {
|
||||
.footer-c-bar {
|
||||
flex-direction: column;
|
||||
height: auto;
|
||||
padding: 1.5rem 0;
|
||||
gap: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.footer-c-nav {
|
||||
flex-wrap: wrap;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
/* ============================================================
|
||||
FOOTER COMPONENT
|
||||
4-column link grid + bottom bar with copyright
|
||||
============================================================ */
|
||||
|
||||
.site-footer {
|
||||
background-color: var(--footer-bg);
|
||||
padding: 4rem 0 0;
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Main grid ─────────────────────────────────────────── */
|
||||
.footer-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr 1fr 1fr;
|
||||
gap: 3rem;
|
||||
padding-bottom: 3rem;
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
/* ── Brand column ──────────────────────────────────────── */
|
||||
.footer-brand .header-logo {
|
||||
margin-bottom: 1rem;
|
||||
color: var(--color-heading);
|
||||
}
|
||||
|
||||
[data-theme="midnight"] .site-footer .header-logo {
|
||||
color: #f0f6ff;
|
||||
}
|
||||
|
||||
[data-theme="linen"] .site-footer .header-logo {
|
||||
color: #faf7f2;
|
||||
}
|
||||
|
||||
[data-theme="linen"] .site-footer .logo-mark {
|
||||
color: #1c1208;
|
||||
}
|
||||
|
||||
.footer-tagline {
|
||||
font-size: 0.9rem;
|
||||
color: var(--footer-text);
|
||||
line-height: 1.7;
|
||||
max-width: 240px;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.footer-social {
|
||||
display: flex;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.footer-social a {
|
||||
width: 36px; height: 36px;
|
||||
border-radius: var(--radius-sm);
|
||||
border: 1px solid var(--color-border);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--footer-text);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.footer-social a:hover {
|
||||
border-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.footer-social a svg {
|
||||
width: 16px; height: 16px;
|
||||
stroke: currentColor;
|
||||
fill: none;
|
||||
stroke-width: 2;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
/* ── Link columns ──────────────────────────────────────── */
|
||||
.footer-col-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 0.8rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.1em;
|
||||
text-transform: uppercase;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
[data-theme="linen"] .site-footer .footer-col-title {
|
||||
color: #faf7f2;
|
||||
}
|
||||
|
||||
[data-theme="midnight"] .site-footer .footer-col-title {
|
||||
color: #f0f6ff;
|
||||
}
|
||||
|
||||
.footer-links {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.7rem;
|
||||
}
|
||||
|
||||
.footer-links a {
|
||||
font-size: 0.9rem;
|
||||
color: var(--footer-text);
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.footer-links a:hover {
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* ── Bottom bar ────────────────────────────────────────── */
|
||||
.footer-bottom {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 1.5rem 0;
|
||||
gap: 1rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.footer-copy {
|
||||
font-size: 0.82rem;
|
||||
color: var(--footer-text);
|
||||
}
|
||||
|
||||
.footer-bottom-links {
|
||||
display: flex;
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
.footer-bottom-links a {
|
||||
font-size: 0.82rem;
|
||||
color: var(--footer-text);
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.footer-bottom-links a:hover {
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 900px) {
|
||||
.footer-grid {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.footer-grid {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
.footer-bottom {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
/* ============================================================
|
||||
HEADER — LAYOUT B
|
||||
Centered: logo centered top, nav centered below it
|
||||
Full-width underline, no right-side CTA buttons in nav row
|
||||
============================================================ */
|
||||
|
||||
.header-b {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
background-color: var(--nav-bg);
|
||||
border-bottom: 1px solid var(--nav-border);
|
||||
backdrop-filter: blur(12px);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
transition: background-color 0.4s ease, border-color 0.4s ease;
|
||||
}
|
||||
|
||||
.header-b-inner {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 1rem 0 0;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
/* ── Logo row ──────────────────────────────────────────── */
|
||||
.header-b-top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
padding-bottom: 0.85rem;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.header-b-top .header-logo {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.35rem;
|
||||
font-weight: 800;
|
||||
color: var(--color-heading);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.6rem;
|
||||
letter-spacing: -0.02em;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.header-b-top .header-logo:hover { color: var(--color-primary); }
|
||||
|
||||
.header-b-top .logo-mark {
|
||||
width: 32px; height: 32px;
|
||||
background-color: var(--color-primary);
|
||||
border-radius: var(--radius-sm);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-size: 0.9rem; font-weight: 900;
|
||||
color: var(--color-btn-text);
|
||||
flex-shrink: 0;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
/* CTA tucked to the right absolutely */
|
||||
.header-b-top .header-b-cta {
|
||||
position: absolute;
|
||||
right: 1.5rem;
|
||||
display: flex;
|
||||
gap: 0.6rem;
|
||||
}
|
||||
|
||||
.header-b-top .header-b-cta .btn {
|
||||
padding: 0.5rem 1.1rem;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
|
||||
/* ── Nav row ───────────────────────────────────────────── */
|
||||
.header-b-nav {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0;
|
||||
border-top: 1px solid var(--color-border);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.header-b-nav a {
|
||||
padding: 0.7rem 1.4rem;
|
||||
font-size: 0.875rem;
|
||||
font-weight: 500;
|
||||
color: var(--color-text-muted);
|
||||
position: relative;
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.header-b-nav a::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0; left: 0; right: 0;
|
||||
height: 2px;
|
||||
background-color: var(--color-primary);
|
||||
transform: scaleX(0);
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
|
||||
.header-b-nav a:hover { color: var(--color-heading); }
|
||||
.header-b-nav a:hover::after { transform: scaleX(1); }
|
||||
|
||||
/* ── Mobile toggle ─────────────────────────────────────── */
|
||||
.header-b-top .mobile-toggle {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 1rem;
|
||||
flex-direction: column;
|
||||
gap: 5px;
|
||||
cursor: pointer;
|
||||
padding: 0.5rem;
|
||||
border: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.header-b-top .mobile-toggle span {
|
||||
display: block; width: 24px; height: 2px;
|
||||
background-color: var(--color-text);
|
||||
border-radius: 2px;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
/* ── Mobile menu ───────────────────────────────────────── */
|
||||
.mobile-menu {
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
border-top: 1px solid var(--color-border);
|
||||
padding: 1rem 0;
|
||||
background-color: var(--nav-bg);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mobile-menu a {
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-size: 0.95rem; font-weight: 500;
|
||||
color: var(--color-text);
|
||||
transition: color 0.2s ease, background-color 0.2s ease;
|
||||
}
|
||||
|
||||
.mobile-menu a:hover {
|
||||
color: var(--color-primary);
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.mobile-menu .mobile-menu-actions {
|
||||
display: flex; gap: 0.75rem;
|
||||
padding: 1rem 1.5rem 0;
|
||||
border-top: 1px solid var(--color-border);
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 768px) {
|
||||
.header-b-nav,
|
||||
.header-b-top .header-b-cta { display: none; }
|
||||
.header-b-top .mobile-toggle { display: flex; }
|
||||
.mobile-menu.is-open { display: flex; }
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
/* ============================================================
|
||||
HEADER — LAYOUT C
|
||||
Ultra-minimal: logo left, single CTA right.
|
||||
Nav hidden behind a menu button that opens a full-width
|
||||
dropdown drawer instead of an inline nav bar.
|
||||
============================================================ */
|
||||
|
||||
.header-c {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
background-color: var(--nav-bg);
|
||||
backdrop-filter: blur(12px);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.header-c-inner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
/* ── Logo ──────────────────────────────────────────────── */
|
||||
.header-c-inner .header-logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.6rem;
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.3rem;
|
||||
font-weight: 800;
|
||||
color: var(--color-heading);
|
||||
letter-spacing: -0.02em;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.header-c-inner .header-logo:hover { color: var(--color-primary); }
|
||||
|
||||
.header-c-inner .logo-mark {
|
||||
width: 32px; height: 32px;
|
||||
background-color: var(--color-primary);
|
||||
border-radius: var(--radius-sm);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-size: 0.9rem; font-weight: 900;
|
||||
color: var(--color-btn-text);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* ── Right: CTA + menu trigger ─────────────────────────── */
|
||||
.header-c-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.header-c-right .btn {
|
||||
padding: 0.5rem 1.25rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
/* ── Menu trigger ──────────────────────────────────────── */
|
||||
.header-c-menu-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.5rem 0.85rem;
|
||||
border: 1.5px solid var(--color-border);
|
||||
border-radius: var(--radius-md);
|
||||
background: none;
|
||||
cursor: pointer;
|
||||
font-family: var(--font-body);
|
||||
font-size: 0.82rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.header-c-menu-btn:hover {
|
||||
border-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.header-c-menu-btn svg {
|
||||
width: 16px; height: 16px;
|
||||
stroke: currentColor; fill: none;
|
||||
stroke-width: 2; stroke-linecap: round;
|
||||
}
|
||||
|
||||
/* ── Full-width nav drawer ─────────────────────────────── */
|
||||
.header-c-drawer {
|
||||
display: none;
|
||||
border-top: 1px solid var(--color-border);
|
||||
background-color: var(--nav-bg);
|
||||
}
|
||||
|
||||
.header-c-drawer.is-open { display: block; }
|
||||
|
||||
.header-c-drawer-inner {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.header-c-drawer-link {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.25rem;
|
||||
padding: 1.25rem 1.5rem;
|
||||
border-right: 1px solid var(--color-border);
|
||||
transition: background-color 0.2s ease;
|
||||
}
|
||||
|
||||
.header-c-drawer-link:last-child { border-right: none; }
|
||||
|
||||
.header-c-drawer-link:hover {
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.header-c-drawer-link-title {
|
||||
font-size: 0.9rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.header-c-drawer-link:hover .header-c-drawer-link-title {
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.header-c-drawer-link-desc {
|
||||
font-size: 0.78rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 600px) {
|
||||
.header-c-right .btn-outline { display: none; }
|
||||
|
||||
.header-c-drawer-inner {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.header-c-drawer-link:nth-child(2) { border-right: none; }
|
||||
.header-c-drawer-link:nth-child(3),
|
||||
.header-c-drawer-link:nth-child(4) {
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
/* ============================================================
|
||||
HEADER / NAV COMPONENT
|
||||
Sticky, blurred, responsive navigation bar
|
||||
============================================================ */
|
||||
|
||||
.site-header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
background-color: var(--nav-bg);
|
||||
border-bottom: 1px solid var(--nav-border);
|
||||
backdrop-filter: blur(12px);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
transition: background-color 0.4s ease, border-color 0.4s ease;
|
||||
}
|
||||
|
||||
.header-inner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 68px;
|
||||
}
|
||||
|
||||
/* ── Logo ──────────────────────────────────────────────── */
|
||||
.header-logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.6rem;
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.3rem;
|
||||
font-weight: 800;
|
||||
color: var(--color-heading);
|
||||
letter-spacing: -0.02em;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.header-logo:hover {
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.logo-mark {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
background-color: var(--color-primary);
|
||||
border-radius: var(--radius-sm);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.9rem;
|
||||
font-weight: 900;
|
||||
color: var(--color-btn-text);
|
||||
flex-shrink: 0;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
/* ── Nav links ─────────────────────────────────────────── */
|
||||
.header-nav {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
.header-nav a {
|
||||
font-size: 0.9rem;
|
||||
font-weight: 500;
|
||||
color: var(--color-text-muted);
|
||||
transition: color 0.2s ease;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.header-nav a::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -3px;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background-color: var(--color-primary);
|
||||
transition: width 0.2s ease;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.header-nav a:hover {
|
||||
color: var(--color-heading);
|
||||
}
|
||||
|
||||
.header-nav a:hover::after {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* ── CTA group ─────────────────────────────────────────── */
|
||||
.header-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.header-actions .btn {
|
||||
padding: 0.55rem 1.25rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
/* ── Mobile toggle ─────────────────────────────────────── */
|
||||
.mobile-toggle {
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
gap: 5px;
|
||||
cursor: pointer;
|
||||
padding: 0.5rem;
|
||||
border: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.mobile-toggle span {
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 2px;
|
||||
background-color: var(--color-text);
|
||||
border-radius: 2px;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
/* ── Mobile menu ───────────────────────────────────────── */
|
||||
.mobile-menu {
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
border-top: 1px solid var(--color-border);
|
||||
padding: 1rem 0;
|
||||
background-color: var(--nav-bg);
|
||||
}
|
||||
|
||||
.mobile-menu a {
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
color: var(--color-text);
|
||||
transition: color 0.2s ease, background-color 0.2s ease;
|
||||
}
|
||||
|
||||
.mobile-menu a:hover {
|
||||
color: var(--color-primary);
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.mobile-menu .mobile-menu-actions {
|
||||
display: flex;
|
||||
gap: 0.75rem;
|
||||
padding: 1rem 1.5rem 0;
|
||||
border-top: 1px solid var(--color-border);
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 768px) {
|
||||
.header-nav,
|
||||
.header-actions {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mobile-toggle {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.mobile-menu.is-open {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
/* ============================================================
|
||||
HERO — LAYOUT B
|
||||
Centered, full-width headline. No right-side card.
|
||||
Email capture inline. Trust logos bar below.
|
||||
============================================================ */
|
||||
|
||||
.hero-b {
|
||||
background-color: var(--hero-bg);
|
||||
background-image: var(--hero-gradient);
|
||||
padding: 8rem 0 6rem;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Grid lines ────────────────────────────────────────── */
|
||||
.hero-b::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background-image:
|
||||
linear-gradient(var(--color-border) 1px, transparent 1px),
|
||||
linear-gradient(90deg, var(--color-border) 1px, transparent 1px);
|
||||
background-size: 60px 60px;
|
||||
opacity: 0.2;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.hero-b-inner {
|
||||
max-width: 780px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* ── Badge ─────────────────────────────────────────────── */
|
||||
.hero-b-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.4rem 0.9rem;
|
||||
background-color: var(--color-primary-soft);
|
||||
border: 1px solid var(--color-primary);
|
||||
border-radius: 99px;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-primary);
|
||||
letter-spacing: 0.04em;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.hero-b-badge-dot {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary);
|
||||
animation: pulse-dot 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
/* ── Headline ──────────────────────────────────────────── */
|
||||
.hero-b-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: clamp(3rem, 6vw, 5rem);
|
||||
font-weight: 900;
|
||||
line-height: 1.05;
|
||||
color: var(--color-heading);
|
||||
letter-spacing: -0.035em;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.hero-b-title em {
|
||||
font-style: normal;
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.hero-b-subtitle {
|
||||
font-size: 1.15rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.75;
|
||||
max-width: 560px;
|
||||
margin: 0 auto 2.5rem;
|
||||
}
|
||||
|
||||
/* ── Email capture row ─────────────────────────────────── */
|
||||
.hero-b-capture {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
max-width: 480px;
|
||||
margin: 0 auto 1.5rem;
|
||||
background-color: var(--card-bg);
|
||||
border: 1.5px solid var(--card-border);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 0.4rem 0.4rem 0.4rem 1.1rem;
|
||||
transition: border-color 0.25s ease, box-shadow 0.25s ease;
|
||||
}
|
||||
|
||||
.hero-b-capture:focus-within {
|
||||
border-color: var(--color-primary);
|
||||
box-shadow: 0 0 0 3px var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.hero-b-input {
|
||||
flex: 1;
|
||||
background: none;
|
||||
border: none;
|
||||
outline: none;
|
||||
font-family: var(--font-body);
|
||||
font-size: 0.92rem;
|
||||
color: var(--color-text);
|
||||
padding: 0.4rem 0;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.hero-b-input::placeholder {
|
||||
color: var(--color-text-muted);
|
||||
}
|
||||
|
||||
.hero-b-capture .btn {
|
||||
flex-shrink: 0;
|
||||
padding: 0.6rem 1.25rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.hero-b-note {
|
||||
font-size: 0.8rem;
|
||||
color: var(--color-text-muted);
|
||||
margin-bottom: 3.5rem;
|
||||
}
|
||||
|
||||
/* ── Stats row ─────────────────────────────────────────── */
|
||||
.hero-b-stats {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0;
|
||||
border-top: 1px solid var(--color-border);
|
||||
padding-top: 3rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.hero-b-stat {
|
||||
flex: 1;
|
||||
min-width: 140px;
|
||||
padding: 0 2rem;
|
||||
border-right: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.hero-b-stat:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.hero-b-stat-value {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 2rem;
|
||||
font-weight: 900;
|
||||
color: var(--color-primary);
|
||||
line-height: 1;
|
||||
margin-bottom: 0.35rem;
|
||||
}
|
||||
|
||||
.hero-b-stat-label {
|
||||
font-size: 0.8rem;
|
||||
color: var(--color-text-muted);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 600px) {
|
||||
.hero-b-capture {
|
||||
flex-direction: column;
|
||||
padding: 0.75rem;
|
||||
border-radius: var(--radius-md);
|
||||
}
|
||||
|
||||
.hero-b-input {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hero-b-capture .btn {
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.hero-b-stats {
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
.hero-b-stat {
|
||||
border-right: none;
|
||||
min-width: 100px;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
/* ============================================================
|
||||
HERO — LAYOUT C
|
||||
Asymmetric 60/40. Left: large headline + feature pill list.
|
||||
Right: stacked notification-style cards. Bold & editorial.
|
||||
============================================================ */
|
||||
|
||||
.hero-c {
|
||||
background-color: var(--hero-bg);
|
||||
background-image: var(--hero-gradient);
|
||||
padding: 6rem 0 5rem;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Decorative large bg text ──────────────────────────── */
|
||||
.hero-c::after {
|
||||
content: 'HERO';
|
||||
position: absolute;
|
||||
bottom: -2rem;
|
||||
right: -1rem;
|
||||
font-family: var(--font-heading);
|
||||
font-size: clamp(8rem, 16vw, 14rem);
|
||||
font-weight: 900;
|
||||
color: var(--color-primary);
|
||||
opacity: 0.03;
|
||||
line-height: 1;
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
letter-spacing: -0.05em;
|
||||
}
|
||||
|
||||
.hero-c-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 3fr 2fr;
|
||||
gap: 4rem;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* ── Left: content ─────────────────────────────────────── */
|
||||
.hero-c-content {}
|
||||
|
||||
.hero-c-eyebrow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.hero-c-eyebrow-line {
|
||||
width: 32px;
|
||||
height: 2px;
|
||||
background-color: var(--color-primary);
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.hero-c-eyebrow-text {
|
||||
font-size: 0.78rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.12em;
|
||||
text-transform: uppercase;
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.hero-c-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: clamp(2.8rem, 5.5vw, 4.5rem);
|
||||
font-weight: 900;
|
||||
line-height: 1.05;
|
||||
color: var(--color-heading);
|
||||
letter-spacing: -0.035em;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.hero-c-title em {
|
||||
font-style: normal;
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.hero-c-subtitle {
|
||||
font-size: 1.05rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.75;
|
||||
max-width: 480px;
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
|
||||
/* ── Feature pill list ─────────────────────────────────── */
|
||||
.hero-c-features {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.6rem;
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
|
||||
.hero-c-feature {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
font-size: 0.92rem;
|
||||
color: var(--color-text);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.hero-c-feature-check {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary-soft);
|
||||
border: 1.5px solid var(--color-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.hero-c-feature-check svg {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
stroke: var(--color-primary);
|
||||
fill: none;
|
||||
stroke-width: 3;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
transition: stroke 0.3s ease;
|
||||
}
|
||||
|
||||
.hero-c-feature:hover .hero-c-feature-check {
|
||||
background-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.hero-c-feature:hover .hero-c-feature-check svg {
|
||||
stroke: var(--color-btn-text);
|
||||
}
|
||||
|
||||
/* ── Actions ───────────────────────────────────────────── */
|
||||
.hero-c-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
/* ── Right: notification cards stack ──────────────────── */
|
||||
.hero-c-visual {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.85rem;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.hero-c-notif {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 1rem 1.25rem;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.85rem;
|
||||
transition: border-color 0.3s ease, transform 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.hero-c-notif::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0; top: 0; bottom: 0;
|
||||
width: 3px;
|
||||
background-color: var(--color-primary);
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.hero-c-notif:hover {
|
||||
border-color: var(--card-hover-border);
|
||||
transform: translateX(4px);
|
||||
}
|
||||
|
||||
.hero-c-notif:hover::before {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Offset cards for depth */
|
||||
.hero-c-notif:nth-child(2) { margin-left: 1.5rem; }
|
||||
.hero-c-notif:nth-child(3) { margin-left: 0.75rem; }
|
||||
.hero-c-notif:nth-child(4) { margin-left: 2rem; }
|
||||
|
||||
.hero-c-notif-icon {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: var(--radius-md);
|
||||
background-color: var(--color-primary-soft);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
font-size: 1rem;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.hero-c-notif:hover .hero-c-notif-icon {
|
||||
background-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.hero-c-notif-body {}
|
||||
|
||||
.hero-c-notif-title {
|
||||
font-size: 0.85rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.15rem;
|
||||
}
|
||||
|
||||
.hero-c-notif-text {
|
||||
font-size: 0.78rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.hero-c-notif-time {
|
||||
font-size: 0.7rem;
|
||||
color: var(--color-text-muted);
|
||||
margin-left: auto;
|
||||
flex-shrink: 0;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 900px) {
|
||||
.hero-c-inner {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 3rem;
|
||||
}
|
||||
|
||||
.hero-c-notif:nth-child(2),
|
||||
.hero-c-notif:nth-child(3),
|
||||
.hero-c-notif:nth-child(4) {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,286 @@
|
||||
/* ============================================================
|
||||
HERO COMPONENT
|
||||
Full-width split hero with headline, sub, CTA, and badge
|
||||
============================================================ */
|
||||
|
||||
.hero {
|
||||
background-color: var(--hero-bg);
|
||||
background-image: var(--hero-gradient);
|
||||
padding: 7rem 0 6rem;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
/* ── Decorative grid lines ─────────────────────────────── */
|
||||
.hero::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background-image:
|
||||
linear-gradient(var(--color-border) 1px, transparent 1px),
|
||||
linear-gradient(90deg, var(--color-border) 1px, transparent 1px);
|
||||
background-size: 60px 60px;
|
||||
opacity: 0.25;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.hero-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 4rem;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* ── Left: content ─────────────────────────────────────── */
|
||||
.hero-content {
|
||||
max-width: 560px;
|
||||
}
|
||||
|
||||
.hero-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.4rem 0.9rem;
|
||||
background-color: var(--color-primary-soft);
|
||||
border: 1px solid var(--color-primary);
|
||||
border-radius: 99px;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-primary);
|
||||
letter-spacing: 0.04em;
|
||||
margin-bottom: 1.75rem;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.hero-badge-dot {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary);
|
||||
animation: pulse-dot 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes pulse-dot {
|
||||
0%, 100% { opacity: 1; transform: scale(1); }
|
||||
50% { opacity: 0.5; transform: scale(0.8); }
|
||||
}
|
||||
|
||||
.hero-title {
|
||||
font-family: var(--font-heading);
|
||||
font-size: clamp(2.6rem, 5vw, 3.8rem);
|
||||
font-weight: 900;
|
||||
line-height: 1.08;
|
||||
color: var(--color-heading);
|
||||
letter-spacing: -0.03em;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.hero-title em {
|
||||
font-style: normal;
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.hero-subtitle {
|
||||
font-size: 1.15rem;
|
||||
color: var(--color-text-muted);
|
||||
line-height: 1.75;
|
||||
margin-bottom: 2.25rem;
|
||||
max-width: 480px;
|
||||
}
|
||||
|
||||
.hero-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
|
||||
.hero-social-proof {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.hero-avatars {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.hero-avatars span {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid var(--color-bg);
|
||||
background-color: var(--color-surface-2);
|
||||
font-size: 0.7rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-text);
|
||||
margin-right: -10px;
|
||||
transition: background-color 0.3s ease, border-color 0.3s ease;
|
||||
}
|
||||
|
||||
.hero-proof-text {
|
||||
font-size: 0.85rem;
|
||||
color: var(--color-text-muted);
|
||||
padding-left: 18px;
|
||||
}
|
||||
|
||||
.hero-proof-text strong {
|
||||
color: var(--color-heading);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* ── Right: visual card ────────────────────────────────── */
|
||||
.hero-visual {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.hero-card {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-xl);
|
||||
padding: 2rem;
|
||||
box-shadow: var(--color-card-shadow), var(--color-glow);
|
||||
transition: all 0.4s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.hero-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0; left: 0; right: 0;
|
||||
height: 2px;
|
||||
background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.hero-card-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.hero-card-dot {
|
||||
width: 10px; height: 10px; border-radius: 50%;
|
||||
}
|
||||
|
||||
.hero-card-dot:nth-child(1) { background: #ff5f57; }
|
||||
.hero-card-dot:nth-child(2) { background: #ffbd2e; }
|
||||
.hero-card-dot:nth-child(3) { background: #28ca41; }
|
||||
|
||||
.hero-stat-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 1rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.hero-stat {
|
||||
background-color: var(--color-surface);
|
||||
border: 1px solid var(--color-border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 1rem;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.hero-stat-value {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 1.6rem;
|
||||
font-weight: 900;
|
||||
color: var(--color-primary);
|
||||
line-height: 1;
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.hero-stat-label {
|
||||
font-size: 0.78rem;
|
||||
color: var(--color-text-muted);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.hero-chart-bar {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
gap: 6px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.hero-chart-bar span {
|
||||
flex: 1;
|
||||
background-color: var(--color-primary-soft);
|
||||
border-radius: var(--radius-sm) var(--radius-sm) 0 0;
|
||||
transition: background-color 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.hero-chart-bar span::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0; left: 0; right: 0;
|
||||
background-color: var(--color-primary);
|
||||
border-radius: inherit;
|
||||
transition: height 0.8s ease;
|
||||
}
|
||||
|
||||
.hero-chart-bar span:nth-child(1)::after { height: 40%; }
|
||||
.hero-chart-bar span:nth-child(2)::after { height: 65%; }
|
||||
.hero-chart-bar span:nth-child(3)::after { height: 50%; }
|
||||
.hero-chart-bar span:nth-child(4)::after { height: 80%; }
|
||||
.hero-chart-bar span:nth-child(5)::after { height: 60%; }
|
||||
.hero-chart-bar span:nth-child(6)::after { height: 90%; }
|
||||
.hero-chart-bar span:nth-child(7)::after { height: 75%; }
|
||||
|
||||
/* ── Floating badge ──────────────────────────────────── */
|
||||
.hero-float-badge {
|
||||
position: absolute;
|
||||
bottom: -1rem;
|
||||
right: -1rem;
|
||||
background-color: var(--color-primary);
|
||||
color: var(--color-btn-text);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 0.75rem 1.25rem;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 700;
|
||||
box-shadow: 0 8px 24px var(--color-shadow);
|
||||
animation: float-badge 4s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes float-badge {
|
||||
0%, 100% { transform: translateY(0); }
|
||||
50% { transform: translateY(-6px); }
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 900px) {
|
||||
.hero-inner {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hero-content {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.hero-actions {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.hero-social-proof {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.hero-subtitle {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
/* ============================================================
|
||||
TESTIMONIALS — LAYOUT B
|
||||
One large featured quote center-stage.
|
||||
Author selector row below — click to cycle testimonials.
|
||||
============================================================ */
|
||||
|
||||
.testimonials-b {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-surface);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.testimonials-b-header {
|
||||
text-align: center;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
.testimonials-b-header .section-subtitle { margin: 0 auto; }
|
||||
|
||||
/* ── Big quote card ────────────────────────────────────── */
|
||||
.testimonials-b-stage {
|
||||
max-width: 820px;
|
||||
margin: 0 auto 3rem;
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-xl);
|
||||
padding: 3.5rem;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: border-color 0.3s ease;
|
||||
box-shadow: var(--color-card-shadow);
|
||||
}
|
||||
|
||||
.testimonials-b-stage::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0; left: 0; right: 0;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
|
||||
}
|
||||
|
||||
.testimonials-b-quote-mark {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 5rem;
|
||||
line-height: 0.6;
|
||||
color: var(--color-primary);
|
||||
opacity: 0.2;
|
||||
margin-bottom: 1.5rem;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Testimonial slides */
|
||||
.testimonials-b-slide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.testimonials-b-slide.is-active {
|
||||
display: block;
|
||||
animation: tb-fade-in 0.4s ease;
|
||||
}
|
||||
|
||||
@keyframes tb-fade-in {
|
||||
from { opacity: 0; transform: translateY(8px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
.testimonials-b-text {
|
||||
font-size: 1.2rem;
|
||||
color: var(--color-text);
|
||||
line-height: 1.8;
|
||||
font-style: italic;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.testimonials-b-stars {
|
||||
display: flex;
|
||||
gap: 3px;
|
||||
justify-content: center;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.testimonials-b-stars span { color: var(--color-accent); font-size: 1rem; }
|
||||
|
||||
.testimonials-b-author {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.85rem;
|
||||
}
|
||||
|
||||
.testimonials-b-avatar {
|
||||
width: 44px; height: 44px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary-soft);
|
||||
border: 2px solid var(--color-primary);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-size: 0.8rem; font-weight: 800;
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.testimonials-b-name {
|
||||
font-size: 0.92rem; font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.15rem;
|
||||
}
|
||||
|
||||
.testimonials-b-role {
|
||||
font-size: 0.8rem;
|
||||
color: var(--color-text-muted);
|
||||
}
|
||||
|
||||
/* ── Author selector row ───────────────────────────────── */
|
||||
.testimonials-b-selectors {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.testimonials-b-selector {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.6rem;
|
||||
padding: 0.6rem 1.1rem;
|
||||
border-radius: 99px;
|
||||
border: 1.5px solid var(--color-border);
|
||||
background: none;
|
||||
cursor: pointer;
|
||||
font-family: var(--font-body);
|
||||
font-size: 0.82rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-muted);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.testimonials-b-selector.is-active,
|
||||
.testimonials-b-selector:hover {
|
||||
border-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
.testimonials-b-sel-avatar {
|
||||
width: 24px; height: 24px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-surface-2);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-size: 0.6rem; font-weight: 800;
|
||||
color: var(--color-text);
|
||||
flex-shrink: 0;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.testimonials-b-selector.is-active .testimonials-b-sel-avatar,
|
||||
.testimonials-b-selector:hover .testimonials-b-sel-avatar {
|
||||
background-color: var(--color-primary);
|
||||
color: var(--color-btn-text);
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
/* ============================================================
|
||||
TESTIMONIALS — LAYOUT C
|
||||
Full-width stacked list. Each testimonial is a wide row
|
||||
with a large number, quote, and author inline.
|
||||
============================================================ */
|
||||
|
||||
.testimonials-c {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-bg);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.testimonials-c-header {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 3rem;
|
||||
align-items: end;
|
||||
margin-bottom: 4rem;
|
||||
padding-bottom: 3rem;
|
||||
border-bottom: 2px solid var(--color-border);
|
||||
}
|
||||
|
||||
.testimonials-c-header .section-subtitle { margin: 0; }
|
||||
|
||||
/* ── List ──────────────────────────────────────────────── */
|
||||
.testimonials-c-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
/* ── Each row ──────────────────────────────────────────── */
|
||||
.testimonials-c-item {
|
||||
display: grid;
|
||||
grid-template-columns: 60px 1fr auto;
|
||||
gap: 2.5rem;
|
||||
align-items: center;
|
||||
padding: 2.5rem 0;
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
cursor: default;
|
||||
transition: background-color 0.2s ease;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.testimonials-c-item:hover {
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
margin-left: -1rem;
|
||||
margin-right: -1rem;
|
||||
background-color: var(--color-surface);
|
||||
border-radius: var(--radius-md);
|
||||
}
|
||||
|
||||
/* ── Big number ────────────────────────────────────────── */
|
||||
.testimonials-c-num {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 2.5rem;
|
||||
font-weight: 900;
|
||||
color: var(--color-primary);
|
||||
opacity: 0.2;
|
||||
line-height: 1;
|
||||
transition: opacity 0.3s ease;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.testimonials-c-item:hover .testimonials-c-num { opacity: 1; }
|
||||
|
||||
/* ── Quote ─────────────────────────────────────────────── */
|
||||
.testimonials-c-body {}
|
||||
|
||||
.testimonials-c-stars {
|
||||
display: flex;
|
||||
gap: 2px;
|
||||
margin-bottom: 0.6rem;
|
||||
}
|
||||
|
||||
.testimonials-c-stars span { color: var(--color-accent); font-size: 0.85rem; }
|
||||
|
||||
.testimonials-c-text {
|
||||
font-size: 0.98rem;
|
||||
color: var(--color-text);
|
||||
line-height: 1.75;
|
||||
font-style: italic;
|
||||
margin-bottom: 0.75rem;
|
||||
max-width: 680px;
|
||||
}
|
||||
|
||||
/* ── Author inline ─────────────────────────────────────── */
|
||||
.testimonials-c-author {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.6rem;
|
||||
}
|
||||
|
||||
.testimonials-c-avatar {
|
||||
width: 32px; height: 32px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary-soft);
|
||||
border: 1.5px solid var(--color-primary);
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-size: 0.65rem; font-weight: 800;
|
||||
color: var(--color-primary);
|
||||
flex-shrink: 0;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.testimonials-c-item:hover .testimonials-c-avatar {
|
||||
background-color: var(--color-primary);
|
||||
color: var(--color-btn-text);
|
||||
}
|
||||
|
||||
.testimonials-c-name {
|
||||
font-size: 0.85rem; font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
}
|
||||
|
||||
.testimonials-c-role {
|
||||
font-size: 0.78rem;
|
||||
color: var(--color-text-muted);
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
/* ── Right: company badge ──────────────────────────────── */
|
||||
.testimonials-c-badge {
|
||||
padding: 0.35rem 0.85rem;
|
||||
border: 1px solid var(--color-border);
|
||||
border-radius: 99px;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-muted);
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.testimonials-c-item:hover .testimonials-c-badge {
|
||||
border-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
background-color: var(--color-primary-soft);
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 768px) {
|
||||
.testimonials-c-header { grid-template-columns: 1fr; }
|
||||
|
||||
.testimonials-c-item {
|
||||
grid-template-columns: 40px 1fr;
|
||||
gap: 1.25rem;
|
||||
}
|
||||
|
||||
.testimonials-c-badge { display: none; }
|
||||
.testimonials-c-num { font-size: 1.8rem; }
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
/* ============================================================
|
||||
TESTIMONIALS COMPONENT
|
||||
3-column card grid with quote, avatar, name, role
|
||||
============================================================ */
|
||||
|
||||
.testimonials {
|
||||
padding: 6rem 0;
|
||||
background-color: var(--color-bg);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
.testimonials-header {
|
||||
text-align: center;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
.testimonials-header .section-subtitle {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* ── Grid ──────────────────────────────────────────────── */
|
||||
.testimonials-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 1.5rem;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
/* ── Card ──────────────────────────────────────────────── */
|
||||
.testimonial-card {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 2rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1.25rem;
|
||||
position: relative;
|
||||
transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
.testimonial-card:hover {
|
||||
border-color: var(--card-hover-border);
|
||||
transform: translateY(-3px);
|
||||
box-shadow: var(--color-card-shadow);
|
||||
}
|
||||
|
||||
/* Offset second card slightly for visual interest */
|
||||
.testimonials-grid .testimonial-card:nth-child(2) {
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
|
||||
/* ── Stars ─────────────────────────────────────────────── */
|
||||
.testimonial-stars {
|
||||
display: flex;
|
||||
gap: 3px;
|
||||
}
|
||||
|
||||
.testimonial-stars span {
|
||||
color: var(--color-accent);
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
/* ── Quote mark ────────────────────────────────────────── */
|
||||
.testimonial-quote-mark {
|
||||
font-family: var(--font-heading);
|
||||
font-size: 4rem;
|
||||
line-height: 0.5;
|
||||
color: var(--color-primary);
|
||||
opacity: 0.3;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/* ── Text ──────────────────────────────────────────────── */
|
||||
.testimonial-text {
|
||||
font-size: 0.93rem;
|
||||
color: var(--color-text);
|
||||
line-height: 1.8;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* ── Divider ───────────────────────────────────────────── */
|
||||
.testimonial-divider {
|
||||
height: 1px;
|
||||
background-color: var(--color-border);
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
/* ── Author ────────────────────────────────────────────── */
|
||||
.testimonial-author {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.85rem;
|
||||
}
|
||||
|
||||
.testimonial-avatar {
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary-soft);
|
||||
border: 2px solid var(--color-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.78rem;
|
||||
font-weight: 800;
|
||||
color: var(--color-primary);
|
||||
flex-shrink: 0;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.testimonial-card:hover .testimonial-avatar {
|
||||
background-color: var(--color-primary);
|
||||
color: var(--color-btn-text);
|
||||
}
|
||||
|
||||
.testimonial-name {
|
||||
font-size: 0.9rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-heading);
|
||||
margin-bottom: 0.15rem;
|
||||
}
|
||||
|
||||
.testimonial-role {
|
||||
font-size: 0.78rem;
|
||||
color: var(--color-text-muted);
|
||||
}
|
||||
|
||||
/* ── Featured card (middle) ────────────────────────────── */
|
||||
.testimonial-card.is-featured {
|
||||
border-color: var(--color-primary);
|
||||
background: linear-gradient(160deg, var(--color-primary-soft) 0%, var(--card-bg) 50%);
|
||||
}
|
||||
|
||||
.testimonial-card.is-featured::before {
|
||||
content: 'Featured';
|
||||
position: absolute;
|
||||
top: -1px;
|
||||
right: 1.5rem;
|
||||
background-color: var(--color-primary);
|
||||
color: var(--color-btn-text);
|
||||
font-size: 0.68rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
padding: 0.25rem 0.7rem;
|
||||
border-radius: 0 0 var(--radius-sm) var(--radius-sm);
|
||||
}
|
||||
|
||||
/* ── Responsive ─────────────────────────────────────────── */
|
||||
@media (max-width: 900px) {
|
||||
.testimonials-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.testimonials-grid .testimonial-card:nth-child(2) {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user