Geizkragen/assets/css/productpage.css

276 lines
5.4 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

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

/* ==========================================================
PRODUCT PAGE Detailed product view & shop offers
========================================================== */
/* ─── Wrapper ─── */
.product-wrapper {
max-width: 1200px;
margin: 3rem auto;
padding: 0 1.5rem;
display: flex;
gap: 3.5rem;
}
/* ─── Left Column (Image) ─── */
.product-left {
flex: 1;
}
.product-image-box {
background: rgba(255, 255, 255, 0.95);
padding: 2.5rem;
border-radius: var(--radius-xl);
border: 1px solid var(--border-subtle);
box-shadow: var(--shadow-md);
text-align: center;
transition: box-shadow var(--transition-smooth);
}
.product-image-box:hover {
box-shadow: var(--shadow-lg);
}
.product-image-box img {
max-width: 100%;
height: auto;
object-fit: contain;
}
/* ─── Right Column (Details) ─── */
.product-right {
flex: 1.2;
}
.product-title {
font-size: 1.85rem;
color: var(--text-primary);
font-weight: 700;
margin-bottom: 1.5rem;
padding-bottom: 1rem;
border-bottom: 1px solid var(--border-subtle);
letter-spacing: -0.5px;
line-height: 1.3;
}
.product-desc {
font-size: 1rem;
line-height: 1.7;
color: var(--text-secondary);
margin-bottom: 1.5rem;
}
.product-specs {
display: flex;
color: var(--text-primary);
flex-direction: column;
gap: 0.6rem;
}
.product-specs p {
padding: 0.65rem 1rem;
background: var(--bg-surface);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-md);
font-size: 0.92rem;
transition: background var(--transition-fast);
}
.product-specs p:hover {
background: rgba(26, 35, 50, 0.9);
}
.product-specs p strong {
color: var(--text-secondary);
font-weight: 500;
margin-right: 0.5rem;
}
/* ─── Spec Rows (alternative layout) ─── */
.spec-row {
display: flex;
justify-content: space-between;
padding: 0.75rem 1rem;
background: var(--bg-surface);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-md);
transition: background var(--transition-fast);
}
.spec-row:hover {
background: rgba(26, 35, 50, 0.9);
}
.spec-name {
font-weight: 500;
color: var(--text-secondary);
}
.spec-value {
font-weight: 600;
color: var(--text-primary);
}
/* ─── Responsive Product Page ─── */
@media (max-width: 900px) {
.product-wrapper {
flex-direction: column;
gap: 2rem;
margin: 2rem auto;
}
.product-title {
font-size: 1.5rem;
}
}
/* ==========================================================
SHOP OFFERS
========================================================== */
.shop-offers {
max-width: 1200px;
margin: 0 auto 4rem;
padding: 0 1.5rem;
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.shop-line {
display: grid;
grid-template-columns: 250px 1fr auto;
align-items: center;
gap: 1.5rem;
background: var(--bg-card);
border: 1px solid var(--border-subtle);
border-radius: var(--radius-lg);
padding: 1rem 1.5rem;
transition: border-color var(--transition-fast),
transform var(--transition-fast),
box-shadow var(--transition-fast);
}
.shop-line:hover {
border-color: var(--border-strong);
transform: translateY(-2px);
box-shadow: var(--shadow-md);
}
.shop-left {
display: flex;
align-items: center;
gap: 1rem;
}
.shop-logo {
display: flex;
align-items: center;
height: 40px;
flex-shrink: 0;
}
.shop-logo img {
max-height: 36px;
max-width: 90px;
object-fit: contain;
border-radius: var(--radius-sm);
}
.shop-name {
font-weight: 600;
font-size: 0.95rem;
}
.shop-name a {
color: var(--text-primary);
text-decoration: none;
transition: color var(--transition-fast);
}
.shop-name a:hover {
color: var(--color-primary);
}
.shop-middle {
display: flex;
align-items: center;
gap: 2rem;
font-size: 0.88rem;
color: var(--text-secondary);
}
.shop-shipping {
display: flex;
flex-direction: column;
gap: 2px;
line-height: 1.4;
}
.shop-stock {
font-weight: 500;
display: inline-flex;
align-items: center;
gap: 6px;
padding: 0.3rem 0.75rem;
border-radius: var(--radius-full);
font-size: 0.82rem;
}
.shop-stock.in-stock {
color: var(--color-accent);
background: var(--color-accent-soft);
}
.shop-stock.in-stock::before {
content: "✔";
}
.shop-stock.out-stock {
color: var(--color-danger);
background: var(--color-danger-soft);
}
.shop-stock.out-stock::before {
content: "✖";
}
.shop-price {
font-size: 1.35rem;
font-weight: 700;
color: var(--color-accent);
white-space: nowrap;
letter-spacing: -0.3px;
}
.no-shop {
background: var(--bg-card);
border: 1px solid var(--border-subtle);
padding: 2rem;
border-radius: var(--radius-lg);
color: var(--text-secondary);
text-align: center;
font-size: 0.95rem;
}
/* ─── Responsive Shop Offers ─── */
@media (max-width: 900px) {
.shop-line {
grid-template-columns: 1fr;
gap: 0.75rem;
padding: 1rem;
}
.shop-middle {
flex-wrap: wrap;
gap: 0.75rem;
}
.shop-price {
font-size: 1.2rem;
}
}
@media (max-width: 600px) {
.shop-offers {
padding: 0 1rem;
}
}