Homepage relaunch: contrast fix, heading hierarchy, order widget refactor, final CTA band, depth & polish

This commit is contained in:
2026-08-15 09:35:00 +00:00
parent cc5667bf7b
commit 85334fc4d2
7 changed files with 982 additions and 93 deletions
+253 -28
View File
@@ -44,12 +44,18 @@ img {
}
:root {
--primary: #714b67;
--primary-hover: #65435c;
--secondary: #f0cda8;
--dark: #1b1319;
--light: #f6f5f4;
--border: #e5e3e0;
--success: #1a7f37;
--radius: 0.6rem;
--radius-lg: 1rem;
--shadow-rest: 0 2px 8px rgba(27, 19, 25, 0.07);
--shadow-hover: 0 14px 32px rgba(27, 19, 25, 0.14);
--shadow-primary: 0 8px 20px rgba(113, 75, 103, 0.28);
--shadow-featured: 0 10px 28px rgba(113, 75, 103, 0.18);
}
.container {
width: 80%;
@@ -135,19 +141,21 @@ img {
border-color: var(--primary);
}
.btn-primary:hover {
background: #5e3f55;
border-color: #5e3f55;
background: var(--primary-hover);
border-color: var(--primary-hover);
transform: translateY(-1px);
box-shadow: var(--shadow-primary);
}
.btn-outline-primary {
color: #65435c;
border-color: #65435c;
color: var(--primary-hover);
border-color: var(--primary-hover);
background: transparent;
}
.btn-outline-primary:hover {
color: #fff;
background: #65435c;
border-color: #65435c;
background: var(--primary-hover);
border-color: var(--primary-hover);
box-shadow: var(--shadow-primary);
}
.btn-lg {
padding: 0.75rem 2rem;
@@ -389,15 +397,16 @@ img {
display: flex;
flex-direction: column;
transition: all 0.3s;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
box-shadow: var(--shadow-rest);
}
.pcard:hover {
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
transform: translateY(-3px);
box-shadow: var(--shadow-hover);
transform: translateY(-4px);
}
.pcard.featured {
border: 2px solid var(--primary);
position: relative;
box-shadow: var(--shadow-featured);
}
.pcard.featured::before {
content: "Most Popular";
@@ -512,10 +521,11 @@ img {
padding-bottom: 2rem;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.footer h5 {
.footer h4 {
color: #fff;
margin-bottom: 0.8rem;
font-weight: 600;
font-size: 1rem;
}
.footer ul {
list-style: none;
@@ -586,10 +596,220 @@ img {
font-size: 0.82rem;
color: rgba(255, 255, 255, 0.5);
}
@media (max-width: 992px) {
@media (max-width: 768px) {
.fgrid {
grid-template-columns: 1fr;
}
.footer {
padding-bottom: 5rem;
}
}
/* ---- Order Widget ---- */
.ow-overlay {
position: fixed;
inset: 0;
z-index: 999;
display: none;
background: rgba(0,0,0,0.6);
align-items: center;
justify-content: center;
cursor: pointer;
}
.ow-panel {
background: #fff;
border-radius: 1rem;
max-width: 460px;
width: 90%;
overflow: hidden;
position: relative;
cursor: default;
box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}
.ow-close {
position: absolute;
top: 0.75rem;
right: 0.75rem;
z-index: 10;
background: #fff;
border: 1px solid var(--border);
width: 2.8rem;
height: 2.8rem;
border-radius: 50%;
cursor: pointer;
font-size: 1.4rem;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
color: #555;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.2s;
}
.ow-close:hover {
background: var(--light);
color: var(--dark);
transform: scale(1.05);
}
.ow-content {
padding: 2rem;
}
.ow-title {
font-size: clamp(1rem, 2vw, 1.24rem);
margin-bottom: 0.5rem;
color: var(--dark);
}
.ow-price {
font-size: 0.8rem;
color: rgba(33,37,41,0.6);
margin-bottom: 1rem;
}
.ow-price .ow-price-amount {
font-size: 1rem;
font-weight: 600;
color: var(--dark);
}
.ow-price .ow-price-tax {
font-size: 0.7rem;
color: rgba(33,37,41,0.45);
}
.ow-coupon-msg {
font-size: 0.78rem;
color: var(--success);
margin-bottom: 1rem;
display: none;
}
.ow-yearly-save {
font-size: 0.78rem;
color: var(--success);
margin-bottom: 1rem;
display: none;
}
.ow-field-label {
font-size: 0.78rem;
font-weight: 500;
display: block;
margin-bottom: 0.25rem;
color: var(--dark);
}
.ow-select {
width: 100%;
padding: 0.6rem 0.8rem;
font-size: 0.85rem;
border: 1px solid var(--border);
border-radius: 0.5rem;
background: #fff;
color: var(--dark);
margin-bottom: 1.5rem;
font-family: Inter, sans-serif;
cursor: pointer;
transition: border-color 0.2s;
}
.ow-select:focus {
border-color: var(--primary);
outline: none;
}
.ow-coupon-row {
display: flex;
gap: 0.5rem;
margin-bottom: 1rem;
}
.ow-input {
flex: 1;
padding: 0.55rem 0.8rem;
font-size: 0.85rem;
border: 1px solid var(--border);
border-radius: 0.5rem;
background: #fff;
color: var(--dark);
font-family: Inter, sans-serif;
transition: border-color 0.2s;
}
.ow-input:focus {
border-color: var(--primary);
outline: none;
}
.ow-btn-apply {
padding: 0.55rem 1rem;
font-size: 0.78rem;
background: var(--primary);
color: #fff;
border: none;
border-radius: 0.5rem;
cursor: pointer;
font-family: Inter, sans-serif;
font-weight: 500;
transition: all 0.2s;
}
.ow-btn-apply:hover {
background: var(--primary-hover);
}
.ow-coupon-status {
font-size: 0.75rem;
margin-top: 0.3rem;
display: none;
}
.ow-buy {
width: 100%;
text-align: center;
display: block;
box-sizing: border-box;
}
.ow-note {
font-size: 0.72rem;
color: rgba(33,37,41,0.45);
text-align: center;
margin-top: 0.6rem;
}
/* ---- Final CTA ---- */
.final-cta {
padding: 4rem 0;
background: linear-gradient(135deg, #1b1319, #2a1a26, #3d2235);
text-align: center;
position: relative;
overflow: hidden;
}
.final-cta::after {
content: '';
position: absolute;
inset: 0;
background: url('images/holland.webp') center/cover no-repeat;
opacity: 0.06;
z-index: 0;
}
.final-cta .container {
position: relative;
z-index: 1;
}
.final-cta h2 {
font-size: clamp(1.6rem, 3.2vw, 2.4rem);
font-weight: 800;
color: #fff;
margin-bottom: 0.75rem;
}
.final-cta p {
font-size: 1.05rem;
color: rgba(255,255,255,0.7);
max-width: 520px;
margin: 0 auto 1.5rem;
line-height: 1.7;
}
.final-cta .btn-hero {
display: inline-block;
padding: 0.85rem 2.5rem;
background: var(--secondary);
color: var(--dark);
border-radius: 0.5rem;
font-family: "Inter Tight", sans-serif;
font-size: 1rem;
font-weight: 700;
text-decoration: none;
transition: opacity 0.2s, transform 0.2s, box-shadow 0.2s;
}
.final-cta .btn-hero:hover {
opacity: 0.9;
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(113, 75, 103, 0.3);
}
.spinner-overlay {
position: absolute;
@@ -641,9 +861,9 @@ img {
}
.toggle-label small {
display: block;
font-size: 0.62rem;
font-weight: 400;
color: #28a745;
font-size: 0.72rem;
font-weight: 500;
color: var(--success);
margin-top: 0.1rem;
}
.toggle-switch {
@@ -674,9 +894,9 @@ img {
left: 25px;
}
.price-save {
font-size: 0.6rem;
font-size: 0.72rem;
font-weight: 700;
color: #28a745;
color: var(--success);
margin-top: 0.15rem;
}
.price-period {
@@ -836,38 +1056,43 @@ img {
}
.blog-badge {
display: inline-block;
padding: 0.15rem 0.5rem;
padding: 0.2rem 0.6rem;
border-radius: 3rem;
font-size: 0.6rem;
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
color: #08080c;
}
.blog-badge-speed-run {
background: #f472b6;
background: #f0cda8;
color: #1b1319;
}
.blog-badge-guide {
background: #a78bfa;
background: #d9c4d8;
color: #1b1319;
}
.blog-badge-howto {
background: #00f5ff;
background: #cbb3cc;
color: #1b1319;
}
.blog-badge-news {
background: #ffaa00;
background: #e8c9a8;
color: #1b1319;
}
.blog-badge-default {
background: #a78bfa;
background: #d9c4d8;
color: #1b1319;
}
.blog-agent {
display: inline-block;
padding: 0.15rem 0.45rem;
padding: 0.2rem 0.55rem;
border-radius: 3rem;
font-size: 0.56rem;
font-size: 0.7rem;
font-weight: 600;
background: rgba(0, 245, 255, 0.15);
color: #00f5ff;
border: 1px solid rgba(0, 245, 255, 0.25);
background: rgba(113, 75, 103, 0.15);
color: #714b67;
border: 1px solid rgba(113, 75, 103, 0.25);
}
.blog-date {
font-size: 0.82rem;