diff --git a/parfum-shop/public/icon-arrow-left.svg b/parfum-shop/public/icon-arrow-left.svg
new file mode 100644
index 0000000..d506bed
--- /dev/null
+++ b/parfum-shop/public/icon-arrow-left.svg
@@ -0,0 +1 @@
+
diff --git a/parfum-shop/public/icon-chat.svg b/parfum-shop/public/icon-chat.svg
new file mode 100644
index 0000000..e8fe4ee
--- /dev/null
+++ b/parfum-shop/public/icon-chat.svg
@@ -0,0 +1 @@
+
diff --git a/parfum-shop/public/icon-x.svg b/parfum-shop/public/icon-x.svg
new file mode 100644
index 0000000..cbf2f19
--- /dev/null
+++ b/parfum-shop/public/icon-x.svg
@@ -0,0 +1 @@
+
diff --git a/parfum-shop/src/App.css b/parfum-shop/src/App.css
index d540006..9e9bf2b 100644
--- a/parfum-shop/src/App.css
+++ b/parfum-shop/src/App.css
@@ -24,17 +24,56 @@ main {
min-width: 0;
}
+.shell {
+ width: var(--container-wide);
+ margin: 0 auto;
+ padding: 0 0 clamp(2.2rem, 6vw, 5rem);
+ background: transparent;
+ border: 0;
+ box-shadow: none;
+}
+
.page,
.detail-page,
.discovery-page,
.about-page,
.support-page,
-.small-page {
+.small-page,
+.impressum-page,
+.datenschutz-page {
isolation: isolate;
}
+.detail-page .navbar--light,
+.discovery-page .navbar--light,
+.about-page .navbar--light,
+.support-page .navbar--light,
+.small-page .navbar--light,
+.impressum-page .navbar--light,
+.datenschutz-page .navbar--light {
+ position: fixed;
+ top: clamp(0.75rem, 2.1vw, 1.4rem);
+ right: 0;
+ left: 0;
+ z-index: 998;
+ margin-bottom: 0;
+ padding-top: 0;
+ pointer-events: none;
+}
+
+.detail-page .navbar--light .nav-pill,
+.discovery-page .navbar--light .nav-pill,
+.about-page .navbar--light .nav-pill,
+.support-page .navbar--light .nav-pill,
+.small-page .navbar--light .nav-pill,
+.impressum-page .navbar--light .nav-pill,
+.datenschutz-page .navbar--light .nav-pill {
+ pointer-events: auto;
+}
+
.navbar--light .nav-pill,
.navbar--light .nav-link,
+.shell,
[class*="-page"],
[class*="-shell"],
[class*="-card"],
diff --git a/parfum-shop/src/components/ProductDetailPage.css b/parfum-shop/src/components/ProductDetailPage.css
index c568363..d9d10bf 100644
--- a/parfum-shop/src/components/ProductDetailPage.css
+++ b/parfum-shop/src/components/ProductDetailPage.css
@@ -5,25 +5,6 @@
background: var(--theme-bg);
}
-.detail-page .navbar--light {
- position: fixed;
- top: clamp(0.75rem, 2.1vw, 1.4rem);
- right: 0;
- left: 0;
- z-index: 998;
- margin-bottom: 0;
- padding-top: 0;
-}
-
-.detail-shell {
- width: var(--container-wide);
- margin: 0 auto;
- padding: 0 0 clamp(2.2rem, 6vw, 5rem);
- background: transparent;
- border: 0;
- box-shadow: none;
-}
-
.detail-topbar {
position: fixed;
top: clamp(0.75rem, 2.1vw, 1.4rem);
@@ -63,7 +44,13 @@
}
.back-link-arrow {
- line-height: 1;
+ display: inline-block;
+ width: 1rem;
+ height: 1rem;
+ flex: 0 0 auto;
+ background: currentColor;
+ -webkit-mask: url("/icon-arrow-left.svg") center / contain no-repeat;
+ mask: url("/icon-arrow-left.svg") center / contain no-repeat;
}
.detail-topbar-meta {
@@ -105,7 +92,7 @@
grid-template-columns: repeat(12, minmax(0, 1fr));
gap: var(--gap-md);
align-items: center;
- min-height: 100svh;
+ min-height: clamp(680px, 100svh, 940px);
padding-block: 0;
border-bottom: 0;
isolation: isolate;
@@ -116,13 +103,18 @@
grid-column: 1 / -1;
grid-row: 1;
display: grid;
- place-items: center;
+ grid-template-columns: repeat(12, minmax(0, 1fr));
+ align-items: center;
min-height: inherit;
min-width: 0;
}
.product-hero-visual {
position: relative;
+ grid-column: 4 / 10;
+ grid-row: 1;
+ justify-self: center;
+ align-self: center;
display: grid;
place-items: center;
width: 100%;
@@ -140,7 +132,7 @@
position: absolute;
top: clamp(6.5rem, 11vw, 9rem);
left: 0;
- z-index: 2;
+ z-index: 5;
width: min(26vw, 390px);
}
@@ -167,7 +159,7 @@
.product-hero-image {
position: relative;
z-index: 1;
- width: min(36vw, 600px);
+ width: min(100%, 600px);
max-height: min(62svh, 700px);
height: auto;
object-fit: contain;
@@ -198,7 +190,7 @@
min-height: 44px;
padding: 0;
border: 1px solid var(--theme-border);
- background: var(--theme-paper);
+ background: transparent;
overflow: hidden;
cursor: pointer;
transition:
@@ -222,25 +214,26 @@
.thumb-btn img {
width: 100%;
height: 100%;
- object-fit: cover;
+ object-fit: contain;
display: block;
}
.hero-fact-grid {
position: absolute;
left: 0;
- top: 50%;
+ top: auto;
+ bottom: clamp(4rem, 9svh, 7rem);
z-index: 3;
width: min(22vw, 310px);
display: grid;
grid-template-columns: 1fr;
gap: var(--gap-md);
margin-top: 0;
- transform: translateY(-42%);
+ transform: none;
}
.hero-fact-grid div,
-.character-facts div,
+.character-facts > div,
.meta-card,
.delivery-grid div {
padding-top: 1rem;
@@ -514,6 +507,14 @@
line-height: 1.62;
}
+.story-copy .character-facts p {
+ max-width: none;
+ margin: 0;
+ color: var(--theme-text);
+ font-size: var(--text-base);
+ line-height: 1.55;
+}
+
.story-visual-panel {
min-height: clamp(360px, 42vw, 620px);
display: flex;
@@ -529,21 +530,21 @@
.character-facts {
display: grid;
- grid-template-columns: 1fr 1fr;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
gap: var(--gap-sm);
margin-top: clamp(1.4rem, 3vw, 2.4rem);
max-width: 58rem;
}
-.character-facts div:last-child {
- grid-column: 1 / -1;
+.character-facts > div {
+ min-height: 132px;
}
.story-visual-panel > div {
width: 100%;
}
-.story-visual-panel span:first-child {
+.story-visual-panel > div > span:first-child {
display: block;
margin-bottom: var(--gap-sm);
color: var(--theme-text-muted);
@@ -567,6 +568,8 @@
background: rgba(255, 255, 255, 0.035);
color: var(--theme-text);
font-size: var(--text-sm);
+ letter-spacing: 0;
+ text-transform: none;
}
.product-structure-section,
@@ -922,10 +925,8 @@
}
.recommendation-heading {
- display: flex;
- justify-content: space-between;
- align-items: end;
- gap: var(--gap-lg);
+ display: block;
+ max-width: 74rem;
}
.recommendation-grid {
@@ -992,7 +993,6 @@
}
@media (max-width: 1180px) {
- .product-hero,
.product-story-grid,
.product-meta-section,
.detail-bottom-cta {
@@ -1000,33 +1000,44 @@
}
.product-hero {
- min-height: auto;
+ grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.72fr);
+ align-items: center;
+ min-height: 100svh;
+ padding-top: clamp(5.6rem, 9vw, 7.4rem);
+ padding-bottom: clamp(1rem, 2vw, 1.6rem);
}
- .product-media-column,
- .product-purchase-panel {
+ .product-media-column {
grid-column: 1;
- grid-row: auto;
+ grid-row: 1;
}
.product-media-column {
min-height: 0;
- display: block;
+ display: grid;
+ grid-template-columns: 1fr;
+ grid-template-rows: auto minmax(0, 1fr) auto auto;
+ gap: clamp(0.65rem, 1.4vw, 1rem);
+ align-self: stretch;
+ place-items: stretch;
}
.product-hero-copy {
position: static;
width: min(100%, 720px);
- margin-bottom: var(--gap-md);
+ margin-bottom: 0;
}
.product-hero-visual {
- min-height: clamp(520px, 66vw, 760px);
+ grid-column: auto;
+ grid-row: auto;
+ min-height: 0;
+ height: min(42svh, 420px);
}
.product-hero-image {
- width: min(66vw, 640px);
- max-height: none;
+ width: min(74%, 430px);
+ max-height: 100%;
}
.product-thumbs,
@@ -1041,16 +1052,46 @@
justify-content: center;
}
+ .thumb-btn {
+ width: clamp(3.6rem, 6vw, 4.8rem);
+ height: clamp(3.6rem, 6vw, 4.8rem);
+ }
+
+ .hero-fact-grid {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: var(--gap-xs);
+ }
+
+ .hero-fact-grid div {
+ padding-top: 0.75rem;
+ }
+
+ .hero-fact-grid span {
+ margin-bottom: 0.4rem;
+ font-size: 0.72rem;
+ letter-spacing: 0.16em;
+ }
+
+ .hero-fact-grid p {
+ font-size: var(--text-sm);
+ line-height: 1.38;
+ }
+
.product-purchase-panel {
- position: static;
- justify-self: center;
- width: min(100%, 720px);
+ grid-column: 2;
+ grid-row: 1;
+ position: relative;
+ justify-self: stretch;
+ align-self: center;
+ width: 100%;
max-height: none;
overflow: visible;
+ gap: var(--gap-xs);
}
.product-hero-copy h1 {
max-width: 12ch;
+ font-size: clamp(2.4rem, 5.5vw, 4.6rem);
}
.structure-timeline,
@@ -1064,13 +1105,8 @@
padding: 0;
}
- .detail-shell {
- width: var(--container-wide);
- padding-inline: 0;
- }
-
.detail-topbar {
- top: clamp(4.65rem, 15vw, 5.5rem);
+ top: clamp(4.35rem, 14vw, 5.05rem);
z-index: 999;
right: clamp(0.75rem, 4vw, 1rem);
left: clamp(0.75rem, 4vw, 1rem);
@@ -1083,20 +1119,30 @@
}
.product-hero {
- padding-top: clamp(7.6rem, 25vw, 9rem);
+ grid-template-columns: 1fr;
+ align-content: start;
+ gap: clamp(0.5rem, 1.8vw, 0.8rem);
+ min-height: 100svh;
+ padding-top: clamp(6.7rem, 20vw, 7.25rem);
+ padding-bottom: clamp(0.75rem, 2.4vw, 1rem);
+ }
+
+ .product-media-column,
+ .product-purchase-panel {
+ grid-column: 1;
+ grid-row: auto;
}
.product-hero-visual {
- min-height: clamp(390px, 102vw, 620px);
+ height: min(29svh, 250px);
+ min-height: 198px;
}
.product-hero-image {
- width: min(88%, 560px);
+ width: min(74%, 292px);
}
- .hero-fact-grid,
.character-facts,
- .size-grid,
.meta-grid,
.delivery-grid,
.comment-spotlight-grid,
@@ -1105,6 +1151,99 @@
grid-template-columns: 1fr;
}
+ .hero-fact-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+
+ .hero-fact-grid div:last-child {
+ grid-column: 1 / -1;
+ }
+
+ .size-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+
+ .product-hero-copy span {
+ margin-bottom: 0.35rem;
+ font-size: 0.68rem;
+ letter-spacing: 0.16em;
+ }
+
+ .product-hero-copy h1 {
+ font-size: clamp(2rem, 10.4vw, 3rem);
+ line-height: 0.9;
+ }
+
+ .thumb-btn {
+ width: clamp(2.8rem, 11vw, 3.25rem);
+ height: clamp(2.8rem, 11vw, 3.25rem);
+ }
+
+ .product-thumbs {
+ margin-top: -0.6rem;
+ }
+
+ .hero-fact-grid {
+ gap: 0.45rem;
+ }
+
+ .hero-fact-grid div {
+ min-width: 0;
+ padding-top: 0.45rem;
+ }
+
+ .hero-fact-grid span {
+ margin-bottom: 0.25rem;
+ font-size: 0.58rem;
+ letter-spacing: 0.09em;
+ }
+
+ .hero-fact-grid p {
+ font-size: 0.72rem;
+ line-height: 1.22;
+ overflow-wrap: anywhere;
+ }
+
+ .product-purchase-panel {
+ min-width: 0;
+ gap: 0.48rem;
+ }
+
+ .purchase-price-row {
+ display: none;
+ }
+
+ .purchase-price-row strong {
+ font-size: clamp(1.1rem, 5vw, 1.35rem);
+ white-space: nowrap;
+ }
+
+ .size-card {
+ min-height: 62px;
+ padding: 0.55rem 0.6rem;
+ }
+
+ .size-title {
+ margin-bottom: 0.25rem;
+ font-size: 0.76rem;
+ }
+
+ .size-card strong {
+ margin-bottom: 0;
+ font-size: 0.95rem;
+ }
+
+ .size-card small,
+ .purchase-discovery-note {
+ display: none;
+ }
+
+ .buy-button,
+ .restock-button {
+ min-height: 38px;
+ font-size: 0.72rem;
+ }
+
.purchase-discovery-note,
.reviews-heading,
.recommendation-heading {
@@ -1122,17 +1261,11 @@
width: min(100%, 24rem);
}
- .purchase-discovery-note a,
.buy-button,
.restock-button {
width: 100%;
}
- .purchase-price-row {
- align-items: flex-start;
- flex-direction: column;
- }
-
.review-score-block {
justify-items: start;
}
@@ -1148,13 +1281,21 @@
@media (max-width: 480px) {
.product-hero-copy h1 {
- font-size: clamp(2.6rem, 15vw, 4rem);
+ font-size: clamp(1.95rem, 10.2vw, 2.85rem);
+ }
+
+ .hero-fact-grid {
+ grid-template-columns: 1fr;
}
.product-thumbs {
flex-wrap: wrap;
}
+ .restock-button {
+ display: none;
+ }
+
.review-detail-row {
grid-template-columns: 1fr;
align-items: start;
diff --git a/parfum-shop/src/components/ProductDetailPage.jsx b/parfum-shop/src/components/ProductDetailPage.jsx
index 7e66ab2..f966cfb 100644
--- a/parfum-shop/src/components/ProductDetailPage.jsx
+++ b/parfum-shop/src/components/ProductDetailPage.jsx
@@ -530,10 +530,10 @@ function ProductDetailContent({ perfumeSlug }) {
-
+
navigate("/")}>
- ←
+
Zurück zur Startseite
diff --git a/parfum-shop/src/components/ProductTransition.css b/parfum-shop/src/components/ProductTransition.css
index 6f01e81..d37fdc3 100644
--- a/parfum-shop/src/components/ProductTransition.css
+++ b/parfum-shop/src/components/ProductTransition.css
@@ -11,11 +11,7 @@
.product-transition__wash {
position: absolute;
inset: 0;
- background:
- radial-gradient(circle at 50% 50%, rgba(var(--theme-accent-rgb) / 0.16), transparent 32rem),
- rgba(12, 12, 12, 0.78);
- backdrop-filter: blur(14px) saturate(0.9);
- -webkit-backdrop-filter: blur(14px) saturate(0.9);
+ background: var(--theme-bg);
}
.product-transition__image {
@@ -23,6 +19,7 @@
top: 0;
left: 0;
display: block;
+ max-width: none;
object-fit: contain;
transform-origin: 0 0;
will-change: transform, opacity;
diff --git a/parfum-shop/src/components/ProductTransition.jsx b/parfum-shop/src/components/ProductTransition.jsx
index 4a60a08..9514a0a 100644
--- a/parfum-shop/src/components/ProductTransition.jsx
+++ b/parfum-shop/src/components/ProductTransition.jsx
@@ -50,12 +50,21 @@ const getStageRect = (sourceRect) => {
};
};
-const getTransformForRect = (rect, sourceRect) => ({
- x: rect.left,
- y: rect.top,
- scaleX: rect.width / sourceRect.width,
- scaleY: rect.height / sourceRect.height,
-});
+const getTransformForRect = (rect, sourceRect) => {
+ const scale = Math.min(
+ rect.width / sourceRect.width,
+ rect.height / sourceRect.height
+ );
+ const width = sourceRect.width * scale;
+ const height = sourceRect.height * scale;
+
+ return {
+ x: rect.left + (rect.width - width) / 2,
+ y: rect.top + (rect.height - height) / 2,
+ scaleX: scale,
+ scaleY: scale,
+ };
+};
export function ProductTransitionProvider({ children }) {
const navigate = useNavigate();
@@ -171,9 +180,9 @@ export function ProductTransitionProvider({ children }) {
.to(
routeContent,
{
- autoAlpha: 0.16,
- filter: "blur(10px)",
- scale: 0.985,
+ autoAlpha: 0,
+ filter: "none",
+ scale: 1,
duration: 0.62,
ease: "power3.out",
},
@@ -277,7 +286,7 @@ export function ProductTransitionProvider({ children }) {
duration: 0.82,
stagger: 0.07,
ease: "power4.out",
- clearProps: "transform,opacity,visibility",
+ clearProps: "transform",
},
">-0.05"
);
diff --git a/parfum-shop/src/components/SupportChatbot.css b/parfum-shop/src/components/SupportChatbot.css
index 7ac6df4..3eef329 100644
--- a/parfum-shop/src/components/SupportChatbot.css
+++ b/parfum-shop/src/components/SupportChatbot.css
@@ -278,12 +278,48 @@
/* --- Design System Refinement Start --- */
.chatbot-trigger {
- min-height: 48px;
- right: var(--page-x);
- bottom: var(--page-x);
+ right: max(0.9rem, env(safe-area-inset-right));
+ bottom: max(0.9rem, env(safe-area-inset-bottom));
+ width: 52px;
+ height: 52px;
+ min-height: 52px;
+ min-width: 52px;
+ padding: 0;
+ display: inline-grid;
+ place-items: center;
+ font-size: 0;
box-shadow: var(--theme-shadow-soft);
}
+.chatbot-trigger.is-open {
+ padding: 0;
+}
+
+.chatbot-trigger-icon,
+.chatbot-close-icon {
+ display: block;
+ width: 1.45rem;
+ height: 1.45rem;
+ background: currentColor;
+ -webkit-mask-position: center;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: contain;
+ mask-size: contain;
+}
+
+.chatbot-trigger-icon {
+ -webkit-mask-image: url("/icon-chat.svg");
+ mask-image: url("/icon-chat.svg");
+}
+
+.chatbot-trigger.is-open .chatbot-trigger-icon,
+.chatbot-close-icon {
+ -webkit-mask-image: url("/icon-x.svg");
+ mask-image: url("/icon-x.svg");
+}
+
.chatbot-trigger:hover,
.chatbot-trigger:focus-visible {
transform: translateY(-2px);
@@ -338,8 +374,8 @@
@media (max-width: 700px) {
.chatbot-trigger {
- right: var(--page-x);
- bottom: var(--page-x);
+ right: max(0.75rem, env(safe-area-inset-right));
+ bottom: max(0.75rem, env(safe-area-inset-bottom));
}
.chatbot-window {
diff --git a/parfum-shop/src/components/SupportChatbot.jsx b/parfum-shop/src/components/SupportChatbot.jsx
index 88c5653..7746af6 100644
--- a/parfum-shop/src/components/SupportChatbot.jsx
+++ b/parfum-shop/src/components/SupportChatbot.jsx
@@ -216,7 +216,7 @@ function SupportChatbot() {
onClick={() => setIsOpen((prev) => !prev)}
aria-label={isOpen ? "Chat schliessen" : "Support Chat öffnen"}
>
- {isOpen ? "×" : "Support"}
+
{isOpen && (
@@ -232,7 +232,7 @@ function SupportChatbot() {
onClick={() => setIsOpen(false)}
aria-label="Chat schliessen"
>
- ×
+
@@ -341,4 +341,4 @@ function SupportChatbot() {
);
}
-export default SupportChatbot;
\ No newline at end of file
+export default SupportChatbot;
diff --git a/parfum-shop/src/pages/AboutPage.css b/parfum-shop/src/pages/AboutPage.css
index 80a385a..5d31257 100644
--- a/parfum-shop/src/pages/AboutPage.css
+++ b/parfum-shop/src/pages/AboutPage.css
@@ -1,543 +1,121 @@
.about-page {
min-height: 100vh;
+ padding: 0 0 var(--section-y-sm);
color: var(--theme-text);
- padding: 26px 38px 38px;
background:
- linear-gradient(to right, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.1)),
- linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.45));
-}
-
-.about-shell {
- background: var(--theme-surface);
- border: 1px solid var(--theme-border);
- padding: 38px;
+ radial-gradient(circle at 86% 8%, rgba(var(--theme-accent-rgb) / 0.13), transparent 28rem),
+ linear-gradient(180deg, var(--theme-bg), color-mix(in srgb, var(--theme-bg) 88%, #000 12%));
}
.about-kicker,
.about-label,
.about-panel-label,
.about-origin-box span,
-.about-panel-meta span {
- display: block;
- font-size: 10px;
- letter-spacing: 0.22em;
- color: var(--theme-text-muted);
-}
-
-.about-hero {
- display: grid;
- grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.8fr);
- gap: 28px;
- align-items: end;
- padding-bottom: 36px;
- border-bottom: 1px solid var(--theme-border);
-}
-
-.about-hero-copy h1 {
- margin: 14px 0 18px;
- font-size: 68px;
- line-height: 0.92;
- font-weight: 300;
- letter-spacing: 0;
- color: var(--theme-text);
-}
-
-.about-intro {
- max-width: 720px;
- margin: 0;
- font-size: 18px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.about-hero-panel {
- padding: 24px;
- background: linear-gradient(
- 180deg,
- rgba(255, 106, 0, 0.08),
- rgba(255, 106, 0, 0.03)
- );
- border: 1px solid rgba(255, 106, 0, 0.18);
-}
-
-.about-hero-panel p {
- margin: 10px 0 0;
- font-size: 16px;
- line-height: 1.6;
- color: var(--theme-text);
-}
-
-.about-panel-meta {
- display: grid;
- grid-template-columns: 1fr;
- gap: 16px;
- margin-top: 24px;
- padding-top: 20px;
- border-top: 1px solid rgba(255, 106, 0, 0.14);
-}
-
-.about-panel-meta p,
-.about-origin-box p {
- margin: 8px 0 0;
- font-size: 14px;
- line-height: 1.55;
- color: var(--theme-text);
-}
-
-.about-section {
- padding-top: 38px;
-}
-
-.about-section--split {
- display: grid;
- grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
- gap: 28px;
- align-items: start;
-}
-
-.about-section-heading h2,
-.about-origin-copy h2,
-.about-bottom-copy h2 {
- margin: 10px 0 0;
- font-size: 42px;
- line-height: 0.98;
- font-weight: 300;
- letter-spacing: 0;
- color: var(--theme-text);
-}
-
-.about-section-copy {
- display: flex;
- flex-direction: column;
- gap: 18px;
-}
-
-.about-section-copy p,
-.about-origin-copy p,
-.about-bottom-copy p {
- margin: 0;
- font-size: 16px;
- line-height: 1.7;
- color: var(--theme-text-muted);
-}
-
-.about-quote-block {
- margin-top: 38px;
- padding: 32px 36px;
- background: #1f1f1f;
- border-left: 3px solid #ff6a00;
-}
-
-.about-quote-block p {
- margin: 0;
- font-size: 28px;
- line-height: 1.3;
- font-weight: 300;
- letter-spacing: 0;
- color: #fff;
- max-width: 900px;
-}
-
-.about-grid-section {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 18px;
- margin-top: 38px;
-}
-
-.about-card {
- padding: 24px;
- background: var(--theme-bg);
- border: 1px solid var(--theme-border);
- min-height: 260px;
-}
-
-.about-card h3 {
- margin: 14px 0 12px;
- font-size: 24px;
- line-height: 1.05;
- font-weight: 400;
- color: var(--theme-text);
-}
-
-.about-card p {
- margin: 0;
- font-size: 15px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.about-origin-section {
- display: grid;
- grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
- gap: 28px;
- margin-top: 38px;
- padding-top: 38px;
- border-top: 1px solid var(--theme-border);
-}
-
-.about-origin-box {
- display: flex;
- flex-direction: column;
- gap: 18px;
- background: var(--theme-bg);
- border: 1px solid var(--theme-border);
- padding: 24px;
-}
-
-.about-origin-box > div {
- padding-bottom: 16px;
- border-bottom: 1px solid var(--theme-border);
-}
-
-.about-origin-box > div:last-child {
- border-bottom: none;
- padding-bottom: 0;
-}
-
-.about-bottom-cta {
- margin-top: 38px;
- padding: 38px;
- background: #ff6a00;
- display: grid;
- grid-template-columns: minmax(0, 1.2fr) auto;
- gap: 24px;
- align-items: end;
-}
-
-.about-bottom-copy .about-label,
-.about-bottom-copy h2,
-.about-bottom-copy p {
- color: #fff;
-}
-
-.about-bottom-copy .about-label {
- opacity: 0.85;
-}
-
-.about-bottom-copy p {
- margin-top: 16px;
- max-width: 700px;
-}
-
-.about-bottom-actions {
- display: flex;
- gap: 12px;
- flex-wrap: wrap;
-}
-
-.about-btn {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- text-decoration: none;
- padding: 12px 18px;
- font-size: 14px;
- border-radius: 999px;
- transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
-}
-
-.about-btn:hover {
- transform: translateY(-1px);
-}
-
-.about-btn--primary {
- background: var(--theme-paper);
- color: #ff6a00;
-}
-
-.about-btn--secondary {
- background: rgba(255, 255, 255, 0.14);
- color: #fff;
- backdrop-filter: blur(8px);
-}
-
-.about-proof-strip {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- gap: 14px;
- margin-top: 38px;
-}
-
-.about-proof-item {
- padding: 18px;
- border: 1px solid var(--theme-border);
- background: var(--theme-surface-soft);
-}
-
-.about-proof-item p {
- margin: 10px 0 0;
- font-size: 14px;
- line-height: 1.55;
- color: var(--theme-text-muted);
-}
-
-.about-process-section {
- margin-top: 38px;
- padding-top: 38px;
- border-top: 1px solid var(--theme-border);
-}
-
-.about-credentials-grid {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 18px;
- margin-top: 38px;
-}
-
-.about-credential-card {
- padding: 24px;
- background: linear-gradient(
- 180deg,
- rgba(255, 106, 0, 0.06),
- rgba(255, 106, 0, 0.02)
- );
- border: 1px solid rgba(255, 106, 0, 0.16);
- min-height: 220px;
-}
-
-.about-credential-card h3 {
- margin: 14px 0 12px;
- font-size: 24px;
- line-height: 1.08;
- font-weight: 400;
- color: var(--theme-text);
-}
-
-.about-credential-card p {
- margin: 0;
- font-size: 15px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.about-method-section {
- display: grid;
- grid-template-columns: minmax(0, 1fr) minmax(320px, 0.95fr);
- gap: 28px;
- margin-top: 38px;
- padding: 28px;
- background: var(--theme-bg);
- border: 1px solid var(--theme-border);
-}
-
-.about-method-copy h2 {
- margin: 10px 0 16px;
- font-size: 40px;
- line-height: 0.98;
- font-weight: 300;
- letter-spacing: 0;
- color: var(--theme-text);
-}
-
-.about-method-copy p {
- margin: 0;
- font-size: 16px;
- line-height: 1.7;
- color: var(--theme-text-muted);
-}
-
-.about-method-points {
- display: grid;
- grid-template-columns: 1fr;
- gap: 16px;
-}
-
-.about-method-points > div {
- padding-bottom: 14px;
- border-bottom: 1px solid var(--theme-border);
-}
-
-.about-method-points > div:last-child {
- border-bottom: none;
- padding-bottom: 0;
-}
-
+.about-panel-meta span,
.about-method-points span {
display: block;
- font-size: 10px;
- letter-spacing: 0.22em;
color: var(--theme-text-muted);
-}
-
-.about-method-points p {
- margin: 8px 0 0;
- font-size: 14px;
- line-height: 1.55;
- color: var(--theme-text);
-}
-
-.about-trust-note {
- margin-top: 38px;
- padding: 22px;
- border: 1px solid rgba(255, 106, 0, 0.18);
- background: linear-gradient(
- 180deg,
- rgba(255, 106, 0, 0.08),
- rgba(255, 106, 0, 0.03)
- );
-}
-
-.about-trust-note p {
- margin: 10px 0 0;
- font-size: 15px;
- line-height: 1.65;
- color: var(--theme-text);
-}
-
-@media (max-width: 1100px) {
- .about-hero,
- .about-section--split,
- .about-origin-section,
- .about-bottom-cta,
- .about-method-section {
- grid-template-columns: 1fr;
- }
-
- .about-hero-copy h1 {
- font-size: 52px;
- }
-
- .about-grid-section,
- .about-proof-strip,
- .about-credentials-grid {
- grid-template-columns: 1fr;
- }
-
- .about-method-copy h2 {
- font-size: 32px;
- }
-}
-
-@media (max-width: 700px) {
- .about-page {
- padding: 18px;
- }
-
- .about-shell {
- padding: 24px 18px;
- }
-
- .about-hero-copy h1 {
- font-size: 38px;
- }
-
- .about-section-heading h2,
- .about-origin-copy h2,
- .about-bottom-copy h2,
- .about-method-copy h2 {
- font-size: 30px;
- }
-
- .about-intro,
- .about-section-copy p,
- .about-origin-copy p,
- .about-bottom-copy p,
- .about-method-copy p,
- .about-credential-card p,
- .about-proof-item p,
- .about-trust-note p {
- font-size: 15px;
- }
-
- .about-quote-block {
- padding: 24px 20px;
- }
-
- .about-quote-block p {
- font-size: 22px;
- }
-
- .about-method-section,
- .about-bottom-cta {
- padding: 26px 20px;
- }
-}
-
-
-/* --- Design System Refinement Start --- */
-
-.about-page {
- padding: clamp(1rem, 3vw, 2.4rem) var(--page-x) clamp(2rem, 5vw, 4rem);
- background:
- radial-gradient(circle at 88% 9%, rgba(var(--theme-accent-rgb) / 0.12), transparent 28rem),
- linear-gradient(135deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.08)),
- var(--theme-bg);
-}
-
-.about-shell {
- width: var(--container-wide);
- margin: 0 auto;
- padding: clamp(1.25rem, 3vw, 2.8rem);
- border-radius: var(--radius-lg);
- box-shadow: var(--theme-shadow);
-}
-
-.about-kicker,
-.about-label,
-.about-panel-label,
-.about-origin-box span,
-.about-panel-meta span {
font-size: var(--text-xs);
+ letter-spacing: 0.22em;
+ text-transform: uppercase;
}
.about-hero {
+ display: grid;
grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.72fr);
gap: var(--gap-lg);
- padding-bottom: var(--section-y-xs);
+ align-items: end;
+ padding: clamp(2rem, 5vw, 5rem) 0 var(--section-y-sm);
+ border-bottom: 1px solid var(--theme-border);
+}
+
+.about-hero-copy {
+ min-width: 0;
}
.about-hero-copy h1 {
+ max-width: 11.4ch;
margin: clamp(0.85rem, 2vw, 1.2rem) 0 clamp(1rem, 2vw, 1.35rem);
+ color: var(--theme-text);
font-size: clamp(3rem, 7.4vw, 8.8rem);
line-height: 0.9;
+ font-weight: 300;
letter-spacing: 0;
+ text-transform: uppercase;
text-wrap: balance;
}
.about-intro {
max-width: var(--text-measure);
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-lg);
-}
-
-.about-hero-panel,
-.about-card,
-.about-origin-box,
-.about-bottom-cta,
-.about-proof-item,
-.about-credential-card,
-.about-method-section,
-.about-trust-note,
-.about-quote-block {
- border-radius: var(--radius-lg);
+ line-height: 1.65;
}
.about-hero-panel {
padding: clamp(1.25rem, 3vw, 2rem);
+ border: 1px solid rgba(var(--theme-accent-rgb) / 0.2);
+ background:
+ linear-gradient(135deg, rgba(var(--theme-accent-rgb) / 0.1), transparent 62%),
+ var(--theme-surface-soft);
+}
+
+.about-hero-panel p {
+ margin: 0.75rem 0 0;
+ color: var(--theme-text);
+ font-size: var(--text-base);
+ line-height: 1.62;
+}
+
+.about-panel-meta {
+ display: grid;
+ gap: var(--gap-sm);
+ margin-top: clamp(1.2rem, 2.6vw, 2rem);
+ padding-top: var(--gap-sm);
+ border-top: 1px solid rgba(var(--theme-accent-rgb) / 0.2);
+}
+
+.about-panel-meta p,
+.about-origin-box p,
+.about-method-points p {
+ margin: 0.45rem 0 0;
+ color: var(--theme-text);
+ font-size: var(--text-sm);
+ line-height: 1.55;
}
.about-section {
- padding-top: var(--section-y-xs);
+ padding-top: var(--section-y-sm);
}
.about-section--split,
.about-origin-section,
.about-method-section {
+ display: grid;
+ grid-template-columns: minmax(16rem, 0.72fr) minmax(0, 1.28fr);
gap: var(--gap-lg);
+ align-items: start;
}
.about-section-heading h2,
.about-origin-copy h2,
.about-bottom-copy h2,
.about-method-copy h2 {
+ margin: 0.75rem 0 0;
+ color: var(--theme-text);
font-size: clamp(2.15rem, 5.2vw, 6rem);
line-height: 0.94;
+ font-weight: 300;
letter-spacing: 0;
+ text-transform: uppercase;
text-wrap: balance;
}
.about-section-copy,
.about-method-points {
+ display: flex;
+ flex-direction: column;
gap: var(--gap-sm);
}
@@ -549,31 +127,54 @@
.about-card p,
.about-proof-item p,
.about-trust-note p {
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-base);
+ line-height: 1.7;
+}
+
+.about-section-copy p + p,
+.about-origin-copy p + p {
+ margin-top: var(--gap-sm);
}
.about-proof-strip,
.about-grid-section,
.about-credentials-grid {
+ display: grid;
gap: var(--gap-sm);
- margin-top: var(--section-y-xs);
+ margin-top: var(--section-y-sm);
}
.about-proof-strip {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
+ grid-template-columns: repeat(4, minmax(0, 1fr));
}
.about-grid-section {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
+ grid-template-columns: repeat(3, minmax(0, 1fr));
}
.about-credentials-grid {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+}
+
+.about-card,
+.about-proof-item,
+.about-credential-card,
+.about-origin-box,
+.about-method-section,
+.about-trust-note {
+ border: 1px solid var(--theme-border);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.008)),
+ var(--theme-surface-soft);
}
.about-card,
.about-proof-item,
.about-credential-card {
+ min-height: 100%;
+ padding: clamp(1.1rem, 2.4vw, 1.8rem);
transition:
transform var(--duration-med) var(--ease-out),
border-color var(--duration-med) var(--ease-out),
@@ -590,79 +191,184 @@
.about-card h3,
.about-credential-card h3 {
+ margin: 0.9rem 0 0.75rem;
+ color: var(--theme-text);
font-size: var(--text-xl);
+ line-height: 1.08;
+ font-weight: 400;
+ letter-spacing: 0;
+}
+
+.about-proof-item {
+ min-height: 9rem;
+}
+
+.about-proof-item p {
+ margin-top: 0.7rem;
}
.about-quote-block {
- margin-top: var(--section-y-xs);
+ margin-top: var(--section-y-sm);
padding: clamp(1.4rem, 4vw, 3rem);
+ overflow: hidden;
+ border-left: 3px solid var(--theme-accent);
background:
radial-gradient(circle at 100% 0%, rgba(var(--theme-accent-rgb) / 0.18), transparent 18rem),
#171717;
}
.about-quote-block p {
+ max-width: 58rem;
+ margin: 0;
+ color: #fff;
font-size: clamp(1.7rem, 4vw, 4.2rem);
line-height: 1.08;
+ font-weight: 300;
letter-spacing: 0;
}
-.about-origin-section,
.about-process-section,
-.about-faq-section {
- margin-top: var(--section-y-xs);
- padding-top: var(--section-y-xs);
+.about-origin-section {
+ margin-top: var(--section-y-sm);
+ padding-top: var(--section-y-sm);
+ border-top: 1px solid var(--theme-border);
+}
+
+.about-method-section {
+ margin-top: var(--section-y-sm);
+ padding: clamp(1.25rem, 3vw, 2.4rem);
+}
+
+.about-method-points > div,
+.about-origin-box > div {
+ padding-top: 1rem;
+ border-top: 1px solid var(--theme-border);
+}
+
+.about-origin-box {
+ display: grid;
+ gap: var(--gap-sm);
+ padding: clamp(1.1rem, 2.4vw, 1.8rem);
+}
+
+.about-trust-note {
+ margin-top: var(--section-y-sm);
+ padding: clamp(1.1rem, 2.4vw, 1.8rem);
+ border-color: rgba(var(--theme-accent-rgb) / 0.24);
+ background:
+ linear-gradient(135deg, rgba(var(--theme-accent-rgb) / 0.11), transparent 60%),
+ var(--theme-surface-soft);
+}
+
+.about-trust-note p {
+ max-width: 72rem;
+ margin-top: 0.75rem;
+ color: var(--theme-text);
}
.about-bottom-cta {
- margin-top: var(--section-y-xs);
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) auto;
+ gap: var(--gap-lg);
+ align-items: end;
+ margin-top: var(--section-y-sm);
padding: clamp(1.5rem, 4vw, 3.5rem);
+ overflow: hidden;
background:
radial-gradient(circle at 92% 0%, rgba(255, 255, 255, 0.22), transparent 20rem),
var(--theme-accent);
}
+.about-bottom-copy .about-label,
+.about-bottom-copy h2,
+.about-bottom-copy p {
+ color: #fff;
+}
+
+.about-bottom-copy p {
+ max-width: 48rem;
+ margin-top: 1rem;
+}
+
+.about-bottom-actions {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--gap-xs);
+ justify-content: flex-end;
+}
+
.about-btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
min-height: 48px;
+ padding: 0 1.1rem;
+ border: 1px solid transparent;
+ border-radius: 999px;
+ color: inherit;
+ font-size: var(--text-sm);
+ text-decoration: none;
+ transition:
+ transform var(--duration-med) var(--ease-out),
+ box-shadow var(--duration-med) var(--ease-out),
+ background-color var(--duration-med) var(--ease-out);
}
.about-btn:hover,
.about-btn:focus-visible {
+ transform: translateY(-2px);
box-shadow: var(--theme-shadow-soft);
}
-@media (max-width: 1100px) {
+.about-btn--primary {
+ background: #fff;
+ color: var(--theme-accent);
+}
+
+.about-btn--secondary {
+ border-color: rgba(255, 255, 255, 0.22);
+ background: rgba(255, 255, 255, 0.14);
+ color: #fff;
+ backdrop-filter: blur(8px);
+}
+
+@media (max-width: 1180px) {
.about-hero,
.about-section--split,
.about-origin-section,
- .about-bottom-cta,
- .about-method-section {
+ .about-method-section,
+ .about-bottom-cta {
grid-template-columns: 1fr;
}
+
+ .about-proof-strip,
+ .about-grid-section,
+ .about-credentials-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
}
-@media (max-width: 700px) {
- .about-page {
- padding-inline: var(--page-x);
- }
-
- .about-shell {
- width: var(--container-wide);
- padding-inline: clamp(0.9rem, 4vw, 1.1rem);
+@media (max-width: 760px) {
+ .about-hero {
+ padding-top: clamp(1.4rem, 5vw, 2rem);
}
.about-hero-copy h1 {
font-size: clamp(2.55rem, 13vw, 4.4rem);
}
+ .about-proof-strip,
+ .about-grid-section,
+ .about-credentials-grid {
+ grid-template-columns: 1fr;
+ }
+
.about-bottom-actions {
display: grid;
+ justify-content: stretch;
}
.about-btn {
width: 100%;
}
}
-
-/* --- Design System Refinement End --- */
-
diff --git a/parfum-shop/src/pages/AboutPage.jsx b/parfum-shop/src/pages/AboutPage.jsx
index 01a7c92..16acdc3 100644
--- a/parfum-shop/src/pages/AboutPage.jsx
+++ b/parfum-shop/src/pages/AboutPage.jsx
@@ -7,7 +7,7 @@ function AboutPage() {
-
+
diff --git a/parfum-shop/src/pages/DatenschutzPage.css b/parfum-shop/src/pages/DatenschutzPage.css
index c39dcb2..3076db0 100644
--- a/parfum-shop/src/pages/DatenschutzPage.css
+++ b/parfum-shop/src/pages/DatenschutzPage.css
@@ -1,210 +1,108 @@
.datenschutz-page {
min-height: 100vh;
+ padding: 0 0 var(--section-y-sm);
color: var(--theme-text);
- padding: 26px 38px 38px;
background:
- linear-gradient(to right, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.1)),
- linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.45));
-}
-
-.datenschutz-shell {
- background: var(--theme-surface);
- border: 1px solid var(--theme-border);
- padding: 38px;
+ radial-gradient(circle at 86% 8%, rgba(var(--theme-accent-rgb) / 0.12), transparent 28rem),
+ linear-gradient(180deg, var(--theme-bg), color-mix(in srgb, var(--theme-bg) 88%, #000 12%));
}
.datenschutz-kicker,
.datenschutz-label {
display: block;
- font-size: 10px;
- letter-spacing: 0.22em;
color: var(--theme-text-muted);
+ font-size: var(--text-xs);
+ letter-spacing: 0.22em;
+ text-transform: uppercase;
}
.datenschutz-hero {
- padding-bottom: 32px;
+ padding: clamp(2rem, 5vw, 5rem) 0 var(--section-y-sm);
border-bottom: 1px solid var(--theme-border);
}
.datenschutz-hero h1 {
- margin: 14px 0 16px;
- font-size: 64px;
- line-height: 0.92;
- font-weight: 300;
- letter-spacing: 0;
+ margin: clamp(0.85rem, 2vw, 1.2rem) 0 clamp(1rem, 2vw, 1.35rem);
color: var(--theme-text);
-}
-
-.datenschutz-intro {
- max-width: 820px;
- margin: 0;
- font-size: 17px;
- line-height: 1.7;
- color: var(--theme-text-muted);
-}
-
-.datenschutz-section {
- display: grid;
- grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
- gap: 28px;
- align-items: start;
- margin-top: 38px;
- padding-top: 38px;
- border-top: 1px solid var(--theme-border);
-}
-
-.datenschutz-section-heading h2 {
- margin: 10px 0 0;
- font-size: 38px;
- line-height: 0.98;
- font-weight: 300;
- letter-spacing: 0;
- color: var(--theme-text);
-}
-
-.datenschutz-section-copy p {
- margin: 0 0 16px;
- font-size: 16px;
- line-height: 1.75;
- color: var(--theme-text-muted);
-}
-
-.datenschutz-list {
- margin: 0;
- padding-left: 18px;
- display: grid;
- gap: 10px;
-}
-
-.datenschutz-list li {
- font-size: 16px;
- line-height: 1.7;
- color: var(--theme-text-muted);
-}
-
-.datenschutz-note-box {
- padding: 22px;
- border: 1px solid rgba(255, 106, 0, 0.18);
- background: linear-gradient(
- 180deg,
- rgba(255, 106, 0, 0.08),
- rgba(255, 106, 0, 0.03)
- );
-}
-
-.datenschutz-note-box p {
- margin: 0;
- font-size: 15px;
- line-height: 1.65;
- color: var(--theme-text);
-}
-
-@media (max-width: 1100px) {
- .datenschutz-section {
- grid-template-columns: 1fr;
- }
-
- .datenschutz-hero h1 {
- font-size: 48px;
- }
-}
-
-@media (max-width: 700px) {
- .datenschutz-page {
- padding: 18px;
- }
-
- .datenschutz-shell {
- padding: 24px 18px;
- }
-
- .datenschutz-hero h1 {
- font-size: 36px;
- }
-
- .datenschutz-section-heading h2 {
- font-size: 28px;
- }
-
- .datenschutz-intro,
- .datenschutz-section-copy p,
- .datenschutz-list li {
- font-size: 15px;
- }
-}
-
-
-/* --- Design System Refinement Start --- */
-
-.datenschutz-page {
- padding: clamp(1rem, 3vw, 2.4rem) var(--page-x) clamp(2rem, 5vw, 4rem);
- background:
- radial-gradient(circle at 88% 9%, rgba(var(--theme-accent-rgb) / 0.12), transparent 28rem),
- linear-gradient(135deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.08)),
- var(--theme-bg);
-}
-
-.datenschutz-shell {
- width: var(--container-narrow);
- margin: 0 auto;
- padding: clamp(1.25rem, 3vw, 2.8rem);
- border-radius: var(--radius-lg);
- box-shadow: var(--theme-shadow);
-}
-
-.datenschutz-kicker,
-.datenschutz-label {
- font-size: var(--text-xs);
-}
-
-.datenschutz-hero {
- padding-bottom: var(--section-y-xs);
-}
-
-.datenschutz-hero h1 {
font-size: clamp(3rem, 8vw, 7.2rem);
line-height: 0.9;
+ font-weight: 300;
letter-spacing: 0;
+ text-transform: uppercase;
}
.datenschutz-intro {
max-width: var(--text-measure);
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-lg);
+ line-height: 1.7;
}
.datenschutz-section {
+ display: grid;
+ grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1.28fr);
gap: var(--gap-lg);
- margin-top: var(--section-y-xs);
- padding-top: var(--section-y-xs);
+ align-items: start;
+ margin-top: var(--section-y-sm);
+ padding-top: var(--section-y-sm);
+ border-top: 1px solid var(--theme-border);
}
.datenschutz-section-heading h2 {
+ margin: 0.75rem 0 0;
+ color: var(--theme-text);
font-size: clamp(2rem, 4.2vw, 4.5rem);
line-height: 0.96;
+ font-weight: 300;
letter-spacing: 0;
+ text-transform: uppercase;
text-wrap: balance;
}
-.datenschutz-section-copy p,
-.datenschutz-list li,
-.datenschutz-note-box p {
+.datenschutz-section-copy p {
+ margin: 0 0 1rem;
+ color: var(--theme-text-muted);
font-size: var(--text-base);
+ line-height: 1.75;
+}
+
+.datenschutz-list {
+ display: grid;
+ gap: 0.75rem;
+ margin: 0;
+ padding-left: 1.1rem;
+}
+
+.datenschutz-list li {
+ color: var(--theme-text-muted);
+ font-size: var(--text-base);
+ line-height: 1.7;
}
.datenschutz-note-box {
- border-radius: var(--radius-lg);
+ padding: clamp(1.1rem, 2.4vw, 1.8rem);
+ border: 1px solid rgba(var(--theme-accent-rgb) / 0.24);
+ background:
+ linear-gradient(135deg, rgba(var(--theme-accent-rgb) / 0.11), transparent 60%),
+ var(--theme-surface-soft);
+}
+
+.datenschutz-note-box p {
+ margin: 0;
+ color: var(--theme-text);
+ font-size: var(--text-base);
+ line-height: 1.65;
+}
+
+@media (max-width: 900px) {
+ .datenschutz-section {
+ grid-template-columns: 1fr;
+ }
}
@media (max-width: 700px) {
- .datenschutz-page {
- padding-inline: var(--page-x);
- }
-
- .datenschutz-shell {
- width: var(--container-wide);
- padding-inline: clamp(0.9rem, 4vw, 1.1rem);
+ .datenschutz-hero {
+ padding-top: clamp(1.4rem, 5vw, 2rem);
}
}
-
-/* --- Design System Refinement End --- */
-
diff --git a/parfum-shop/src/pages/DatenschutzPage.jsx b/parfum-shop/src/pages/DatenschutzPage.jsx
index ac16de6..1dcb12b 100644
--- a/parfum-shop/src/pages/DatenschutzPage.jsx
+++ b/parfum-shop/src/pages/DatenschutzPage.jsx
@@ -6,7 +6,7 @@ function DatenschutzPage() {
-
+
RECHTLICHE ANGABEN
DATENSCHUTZ
diff --git a/parfum-shop/src/pages/DiscoverySetPage.css b/parfum-shop/src/pages/DiscoverySetPage.css
index 078ee0a..164e7d8 100644
--- a/parfum-shop/src/pages/DiscoverySetPage.css
+++ b/parfum-shop/src/pages/DiscoverySetPage.css
@@ -1,604 +1,393 @@
.discovery-page {
min-height: 100vh;
+ padding: 0 0 var(--section-y-sm);
color: var(--theme-text);
- padding: 26px 38px 38px;
background:
- linear-gradient(to right, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.1)),
- linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.45));
-}
-
-.discovery-shell {
- background: var(--theme-surface);
- border: 1px solid var(--theme-border);
- padding: 0 38px 38px;
+ radial-gradient(circle at 88% 6%, rgba(var(--theme-accent-rgb) / 0.12), transparent 30rem),
+ linear-gradient(180deg, var(--theme-bg), color-mix(in srgb, var(--theme-bg) 88%, #000 12%));
}
.discovery-topbar {
- padding: 22px 0 10px;
+ position: fixed;
+ top: clamp(0.75rem, 2.1vw, 1.4rem);
+ right: var(--page-x);
+ left: var(--page-x);
+ z-index: 997;
+ min-height: 44px;
+ margin-bottom: 0;
+ pointer-events: none;
}
.discovery-back-link {
display: inline-flex;
align-items: center;
- gap: 10px;
- background: none;
- border: none;
+ gap: 0.65rem;
+ min-height: 44px;
padding: 0;
- font-size: 13px;
- cursor: pointer;
+ border: 0;
+ background: transparent;
color: var(--theme-text);
- letter-spacing: 0.01em;
- transition: opacity 0.2s ease, transform 0.2s ease;
+ cursor: pointer;
+ font-size: var(--text-sm);
+ pointer-events: auto;
+ transition:
+ opacity var(--duration-med) var(--ease-out),
+ transform var(--duration-med) var(--ease-out);
}
-.discovery-back-link:hover {
- opacity: 0.65;
- transform: translateX(-2px);
+.discovery-back-link:hover,
+.discovery-back-link:focus-visible {
+ opacity: 0.68;
+ transform: translateX(-0.2rem);
}
.discovery-back-arrow {
display: inline-block;
- font-size: 14px;
- line-height: 1;
+ width: 1rem;
+ height: 1rem;
+ flex: 0 0 auto;
+ background: currentColor;
+ -webkit-mask: url("/icon-arrow-left.svg") center / contain no-repeat;
+ mask: url("/icon-arrow-left.svg") center / contain no-repeat;
}
.discovery-kicker,
-.discovery-label {
+.discovery-label,
+.discovery-price-row span,
+.discovery-panel-facts span,
+.discovery-product-index {
display: block;
- font-size: 10px;
+ color: var(--theme-text-muted);
+ font-size: var(--text-xs);
letter-spacing: 0.22em;
- color: var(--theme-text-muted);
+ text-transform: uppercase;
}
.discovery-hero {
+ position: relative;
display: grid;
- grid-template-columns: minmax(0, 1.2fr) minmax(360px, 0.9fr);
- gap: 42px;
- align-items: start;
- padding: 18px 0 42px;
-}
-
-.discovery-hero-copy h1 {
- margin: 14px 0 22px;
- font-size: 62px;
- line-height: 0.94;
- font-weight: 300;
- letter-spacing: 0;
- color: var(--theme-text);
-}
-
-.discovery-intro {
- max-width: 620px;
- margin: 0;
- font-size: 18px;
- line-height: 1.55;
- color: var(--theme-text-muted);
-}
-
-.discovery-benefits {
- display: grid;
- gap: 18px;
- margin-top: 42px;
- max-width: 720px;
-}
-
-.discovery-benefit {
- display: grid;
- grid-template-columns: 28px 1fr;
- gap: 16px;
- align-items: start;
-}
-
-.discovery-benefit-icon {
- font-size: 24px;
- line-height: 1;
- color: var(--theme-text);
-}
-
-.discovery-benefit strong {
- display: block;
- margin-bottom: 4px;
- font-size: 18px;
- font-weight: 400;
- color: var(--theme-text);
-}
-
-.discovery-benefit p {
- margin: 0;
- font-size: 14px;
- line-height: 1.55;
- color: var(--theme-text-muted);
-}
-
-.discovery-hero-actions {
- margin-top: 40px;
- max-width: 540px;
-}
-
-.discovery-primary-btn {
- width: 100%;
- border: none;
- background: #111;
- color: #fff;
- padding: 20px 24px;
- font-size: 15px;
- letter-spacing: 0.12em;
- cursor: pointer;
- transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
-}
-
-.discovery-primary-btn:hover {
- transform: translateY(-1px);
- box-shadow: 0 14px 32px rgba(0, 0, 0, 0.18);
-}
-
-.discovery-hero-actions p,
-.discovery-bottom-cta p {
- margin: 12px 0 0;
- text-align: center;
- font-size: 13px;
- color: var(--theme-text-muted);
-}
-
-.discovery-mood-grid {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 18px;
-}
-
-.discovery-mood-tile {
- aspect-ratio: 1 / 1;
- overflow: hidden;
- background: var(--theme-surface-soft);
-}
-
-.discovery-mood-tile img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- display: block;
-}
-
-/* Sections */
-.discovery-included,
-.discovery-comparison-section {
- padding-top: 46px;
-}
-
-.discovery-section-heading {
- margin-bottom: 28px;
-}
-
-.discovery-section-heading h2 {
- margin: 10px 0 0;
- font-size: 42px;
- line-height: 0.98;
- font-weight: 300;
- letter-spacing: 0;
- color: var(--theme-text);
-}
-
-.discovery-section-heading p {
- max-width: 940px;
- margin: 18px 0 0;
- font-size: 16px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.discovery-section-heading--center {
- text-align: center;
-}
-
-.discovery-section-heading--center p {
- margin-left: auto;
- margin-right: auto;
-}
-
-/* Products */
-.discovery-products-grid {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 26px 20px;
-}
-
-.discovery-product-card {
- display: flex;
- flex-direction: column;
- gap: 18px;
-}
-
-.discovery-product-image {
- aspect-ratio: 1 / 1;
- overflow: hidden;
- background: var(--theme-surface-soft);
-}
-
-.discovery-product-image img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- display: block;
-}
-
-.discovery-product-copy h3 {
- margin: 0 0 6px;
- font-size: 20px;
- font-weight: 400;
- color: var(--theme-text);
-}
-
-.discovery-product-copy p {
- margin: 0;
- font-size: 15px;
- line-height: 1.5;
- color: var(--theme-text-muted);
-}
-
-.discovery-product-tags {
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
- margin-top: 14px;
-}
-
-.discovery-product-tags span {
- display: inline-flex;
- align-items: center;
- min-height: 32px;
- padding: 7px 12px;
- background: var(--theme-surface-soft);
- font-size: 12px;
- color: var(--theme-text);
-}
-
-/* Steps */
-.discovery-steps-section {
- padding-top: 46px;
-}
-
-.discovery-steps-shell {
- padding: 42px 38px;
- background: #0f0f0f;
-}
-
-.discovery-steps-shell h2 {
- margin: 0 0 34px;
- text-align: center;
- font-size: 48px;
- line-height: 0.98;
- font-weight: 300;
- letter-spacing: 0;
- color: #fff;
-}
-
-.discovery-steps-grid {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 34px;
-}
-
-.discovery-step-card {
- text-align: center;
- color: #fff;
-}
-
-.discovery-step-number {
- width: 52px;
- height: 52px;
- margin: 0 auto 18px;
- display: flex;
- align-items: center;
- justify-content: center;
- background: var(--theme-surface-soft);
- color: var(--theme-text);
- font-size: 24px;
- font-weight: 300;
-}
-
-.discovery-step-card h3 {
- margin: 0 0 10px;
- font-size: 20px;
- font-weight: 400;
-}
-
-.discovery-step-card p {
- margin: 0 auto;
- max-width: 260px;
- font-size: 15px;
- line-height: 1.6;
- color: rgba(255, 255, 255, 0.84);
-}
-
-/* Comparison */
-.discovery-comparison-grid {
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 24px;
- margin-top: 34px;
-}
-
-.discovery-comparison-card {
- padding: 28px;
- border: 1px solid var(--theme-border);
- background: var(--theme-bg);
-}
-
-.discovery-comparison-card--highlight {
- border-color: rgba(255, 106, 0, 0.24);
- background: linear-gradient(
- 180deg,
- rgba(255, 106, 0, 0.08),
- rgba(255, 106, 0, 0.03)
- );
-}
-
-.discovery-comparison-head {
- display: flex;
- align-items: center;
- gap: 14px;
- margin-bottom: 14px;
-}
-
-.discovery-comparison-icon {
- font-size: 28px;
- line-height: 1;
- color: var(--theme-text);
-}
-
-.discovery-comparison-head h3 {
- margin: 0;
- font-size: 28px;
- font-weight: 400;
- color: var(--theme-text);
-}
-
-.discovery-comparison-card p {
- margin: 0;
- font-size: 16px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.discovery-bottom-cta {
- max-width: 760px;
- margin: 42px auto 0;
-}
-
-@media (max-width: 1200px) {
- .discovery-hero {
- grid-template-columns: 1fr;
- }
-
- .discovery-mood-grid {
- max-width: 760px;
- }
-}
-
-@media (max-width: 1100px) {
- .discovery-products-grid,
- .discovery-steps-grid,
- .discovery-comparison-grid {
- grid-template-columns: 1fr;
- }
-
- .discovery-hero-copy h1 {
- font-size: 48px;
- }
-
- .discovery-steps-shell h2,
- .discovery-section-heading h2 {
- font-size: 34px;
- }
-}
-
-@media (max-width: 700px) {
- .discovery-page {
- padding: 18px;
- }
-
- .discovery-shell {
- padding: 0 18px 28px;
- }
-
- .discovery-hero {
- gap: 28px;
- padding: 10px 0 30px;
- }
-
- .discovery-hero-copy h1 {
- font-size: 34px;
- }
-
- .discovery-intro {
- font-size: 16px;
- }
-
- .discovery-benefit strong {
- font-size: 16px;
- }
-
- .discovery-benefit p,
- .discovery-section-heading p,
- .discovery-product-copy p,
- .discovery-step-card p,
- .discovery-comparison-card p {
- font-size: 14px;
- }
-
- .discovery-section-heading h2,
- .discovery-steps-shell h2 {
- font-size: 28px;
- }
-
- .discovery-mood-grid {
- gap: 12px;
- }
-
- .discovery-steps-shell {
- padding: 30px 20px;
- }
-
- .discovery-comparison-card {
- padding: 22px 18px;
- }
-
- .discovery-comparison-head h3 {
- font-size: 22px;
- }
-}
-
-
-/* --- Design System Refinement Start --- */
-
-.discovery-page {
- padding: clamp(1rem, 3vw, 2.4rem) var(--page-x) clamp(2rem, 5vw, 4rem);
- background:
- radial-gradient(circle at 85% 6%, rgba(var(--theme-accent-rgb) / 0.12), transparent 28rem),
- linear-gradient(135deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.08)),
- var(--theme-bg);
-}
-
-.discovery-shell {
- width: var(--container-wide);
- margin: 0 auto;
- padding: 0 clamp(1rem, 3vw, 2.6rem) clamp(2rem, 5vw, 4.4rem);
- border: 1px solid var(--theme-border);
- border-radius: var(--radius-lg);
- background: var(--theme-surface);
- box-shadow: var(--theme-shadow);
-}
-
-.discovery-topbar {
- padding: clamp(1rem, 2.2vw, 1.5rem) 0 clamp(0.8rem, 1.6vw, 1.1rem);
-}
-
-.discovery-back-link,
-.discovery-primary-btn {
- min-height: 44px;
-}
-
-.discovery-hero {
grid-template-columns: repeat(12, minmax(0, 1fr));
- gap: var(--gap-lg);
- padding: clamp(1rem, 3vw, 2rem) 0 var(--section-y-xs);
+ gap: var(--gap-md);
+ align-items: center;
+ min-height: clamp(680px, 100svh, 940px);
+ padding-block: 0;
+ isolation: isolate;
+}
+
+.discovery-hero-stage {
+ position: relative;
+ grid-column: 1 / -1;
+ grid-row: 1;
+ display: grid;
+ grid-template-columns: repeat(12, minmax(0, 1fr));
+ align-items: center;
+ min-height: inherit;
+ min-width: 0;
}
.discovery-hero-copy {
- grid-column: 1 / span 7;
-}
-
-.discovery-mood-grid {
- grid-column: 8 / -1;
- align-self: stretch;
- grid-template-columns: repeat(6, minmax(0, 1fr));
- grid-auto-rows: minmax(7rem, 1fr);
- gap: var(--gap-xs);
-}
-
-.discovery-mood-tile {
- grid-column: span 3;
- border-radius: var(--radius-lg);
- border: 1px solid var(--theme-border);
- box-shadow: var(--theme-shadow-soft);
-}
-
-.discovery-mood-tile:nth-child(1) {
- grid-column: span 6;
- aspect-ratio: 16 / 10;
-}
-
-.discovery-mood-tile:nth-child(4),
-.discovery-mood-tile:nth-child(5) {
- grid-column: span 2;
-}
-
-.discovery-mood-tile:nth-child(6) {
- grid-column: span 2;
-}
-
-.discovery-mood-tile img {
- height: 100%;
- transition: transform var(--duration-slow) var(--ease-out);
-}
-
-.discovery-mood-tile:hover img {
- transform: scale(1.035);
-}
-
-.discovery-kicker,
-.discovery-label {
- font-size: var(--text-xs);
+ position: absolute;
+ top: clamp(6.5rem, 11vw, 9rem);
+ left: 0;
+ z-index: 5;
+ width: min(34vw, 540px);
+ min-width: 0;
}
.discovery-hero-copy h1 {
- margin: clamp(0.85rem, 1.8vw, 1.2rem) 0 clamp(1.2rem, 2.5vw, 1.8rem);
- font-size: clamp(3rem, 7vw, 8.6rem);
+ max-width: 10.8ch;
+ margin: clamp(0.75rem, 1.5vw, 1.15rem) 0 clamp(1rem, 2vw, 1.4rem);
+ color: var(--theme-text);
+ font-size: clamp(2.8rem, 4.8vw, 6rem);
line-height: 0.9;
+ font-weight: 300;
letter-spacing: 0;
+ text-transform: uppercase;
text-wrap: balance;
}
.discovery-intro {
max-width: var(--text-measure);
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-lg);
+ line-height: 1.62;
+ overflow-wrap: break-word;
}
-.discovery-benefits {
- gap: var(--gap-sm);
- margin-top: clamp(2rem, 4vw, 3.4rem);
+.discovery-hero-visual {
+ position: relative;
+ grid-column: 4 / 10;
+ grid-row: 1;
+ justify-self: center;
+ align-self: center;
+ z-index: 1;
+ display: grid;
+ place-items: center;
+ width: 100%;
+ min-height: inherit;
+ margin: 0;
+ overflow: visible;
}
+.discovery-hero-visual img {
+ position: relative;
+ z-index: 2;
+ display: block;
+ width: min(100%, 560px);
+ max-height: min(68svh, 760px);
+ object-fit: contain;
+ filter: drop-shadow(0 34px 72px rgba(0, 0, 0, 0.42));
+}
+
+.discovery-panel-facts div,
.discovery-benefit {
- grid-template-columns: 2.2rem 1fr;
- gap: var(--gap-sm);
- padding-top: var(--gap-sm);
+ padding-top: 1rem;
border-top: 1px solid var(--theme-border);
}
-.discovery-benefit-icon {
+.discovery-panel-facts p {
+ margin: 0;
+ color: var(--theme-text);
+ font-size: var(--text-base);
+ line-height: 1.55;
+}
+
+.discovery-order-panel {
+ position: relative;
+ grid-column: 10 / -1;
+ grid-row: 1;
+ z-index: 4;
+ justify-self: end;
+ align-self: center;
+ display: flex;
+ flex-direction: column;
+ gap: clamp(1rem, 1.8vw, 1.45rem);
+ width: min(100%, 390px);
+ min-width: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+}
+
+.discovery-price-row {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-end;
+ gap: var(--gap-sm);
+}
+
+.discovery-price-row strong {
+ color: var(--theme-text);
+ font-size: clamp(1.45rem, 2.3vw, 2rem);
+ font-weight: 400;
+ letter-spacing: 0;
+}
+
+.discovery-panel-facts {
+ display: grid;
+ grid-template-columns: 1fr;
+ gap: var(--gap-sm);
+}
+
+.discovery-panel-facts span {
+ margin-bottom: 0.55rem;
+}
+
+.discovery-product-tags span {
+ display: inline-flex;
+ align-items: center;
+ min-height: 34px;
+ padding: 0.45rem 0.75rem;
+ border: 1px solid var(--theme-border);
+ background: rgba(255, 255, 255, 0.035);
+ color: var(--theme-text);
+ font-size: var(--text-xs);
+ line-height: 1.2;
+}
+
+.discovery-panel-actions {
+ display: grid;
+ gap: var(--gap-xs);
+}
+
+.discovery-primary-btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+ min-height: 52px;
+ padding: 0.8rem 1.35rem;
+ border: 1px solid var(--theme-accent);
+ border-radius: 999px;
+ background: var(--theme-accent);
+ color: #fff;
+ cursor: pointer;
+ font-size: var(--text-sm);
+ letter-spacing: 0.1em;
+ line-height: 1.25;
+ text-align: center;
+ text-transform: uppercase;
+ transition:
+ transform var(--duration-med) var(--ease-out),
+ border-color var(--duration-med) var(--ease-out),
+ box-shadow var(--duration-med) var(--ease-out),
+ background-color var(--duration-med) var(--ease-out);
+}
+
+.discovery-primary-btn:hover,
+.discovery-primary-btn:focus-visible {
+ transform: translateY(-2px);
+ box-shadow: var(--theme-shadow-soft);
+}
+
+.discovery-primary-btn:active {
+ transform: translateY(0) scale(0.98);
+}
+
+.discovery-panel-actions p {
+ margin: 0;
+ color: var(--theme-text-muted);
+ font-size: var(--text-sm);
+ line-height: 1.45;
+}
+
+.discovery-story-grid,
+.discovery-comparison-section {
+ display: grid;
+ grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
+ gap: clamp(1.5rem, 5vw, 6rem);
+ align-items: stretch;
+}
+
+.discovery-story-grid,
+.discovery-process-section,
+.discovery-included,
+.discovery-comparison-section {
+ position: relative;
+ padding-block: clamp(4rem, 9vw, 9rem);
+}
+
+.discovery-story-grid {
+ margin-top: clamp(4rem, 8vw, 8rem);
+}
+
+.discovery-story-grid::before,
+.discovery-process-section::before,
+.discovery-included::before,
+.discovery-comparison-section::before {
+ position: absolute;
+ top: clamp(1.2rem, 3vw, 2rem);
+ right: 0;
+ width: min(32vw, 420px);
+ padding-top: 0.55rem;
+ border-top: 1px solid var(--theme-border);
+ color: var(--theme-text-muted);
+ font-size: var(--text-xs);
+ letter-spacing: 0.16em;
+ line-height: 1.4;
+ text-transform: uppercase;
+}
+
+.discovery-story-grid::before {
+ content: "01 / Einstieg";
+}
+
+.discovery-process-section::before {
+ content: "03 / Ablauf";
+}
+
+.discovery-included::before {
+ content: "02 / Düfte";
+}
+
+.discovery-comparison-section::before {
+ content: "04 / Entscheidung";
+}
+
+.discovery-story-copy {
+ align-self: center;
+ max-width: 58rem;
+}
+
+.discovery-story-copy h2,
+.discovery-section-heading h2,
+.discovery-section-intro h2,
+.discovery-final-cta h2 {
+ margin: 0.85rem 0 0;
+ color: var(--theme-text);
+ font-size: clamp(2.2rem, 5.6vw, 6rem);
+ font-weight: 300;
+ line-height: 0.94;
+ letter-spacing: 0;
+ text-transform: uppercase;
+ text-wrap: balance;
+}
+
+.discovery-story-copy p,
+.discovery-section-heading p,
+.discovery-final-cta p {
+ max-width: var(--text-measure);
+ margin: 1.25rem 0 0;
+ color: var(--theme-text-muted);
+ font-size: var(--text-lg);
+ line-height: 1.62;
+}
+
+.discovery-benefit-panel {
+ display: grid;
+ grid-template-columns: 1fr;
+ align-content: end;
+ gap: var(--gap-md);
+ min-height: clamp(360px, 42vw, 620px);
+ padding: clamp(1.2rem, 3vw, 2.4rem);
+ border: 1px solid var(--theme-border);
+ background:
+ radial-gradient(circle at 66% 32%, rgba(255, 255, 255, 0.1), transparent 14rem),
+ linear-gradient(135deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)),
+ var(--theme-paper);
+}
+
+.discovery-benefit {
+ display: grid;
+ grid-template-columns: 2.2rem minmax(0, 1fr);
+ gap: var(--gap-sm);
+ align-items: start;
+}
+
+.discovery-benefit-icon,
+.discovery-comparison-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2rem;
height: 2rem;
- border: 1px solid rgba(var(--theme-accent-rgb) / 0.45);
+ border: 1px solid rgba(var(--theme-accent-rgb) / 0.48);
border-radius: 999px;
color: var(--theme-accent);
font-size: 1rem;
+ line-height: 1;
}
.discovery-benefit strong {
+ display: block;
+ margin-bottom: 0.35rem;
+ color: var(--theme-text);
font-size: var(--text-base);
+ font-weight: 400;
+ line-height: 1.25;
}
-.discovery-benefit p,
-.discovery-product-copy p,
-.discovery-step-card p,
-.discovery-comparison-card p {
+.discovery-benefit p {
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-sm);
+ line-height: 1.55;
}
-.discovery-hero-actions {
- max-width: 36rem;
- margin-top: clamp(1.8rem, 3.8vw, 3rem);
-}
-
-.discovery-primary-btn {
- border-radius: 999px;
- background: #111;
- letter-spacing: 0.1em;
-}
-
-.discovery-primary-btn:hover,
-.discovery-primary-btn:focus-visible {
- box-shadow: var(--theme-shadow-soft);
-}
-
-.discovery-included,
-.discovery-comparison-section,
-.discovery-steps-section {
- padding-top: var(--section-y-sm);
+.discovery-section-intro,
+.discovery-section-heading {
+ max-width: 74rem;
}
.discovery-section-heading {
@@ -609,35 +398,72 @@
margin-bottom: clamp(1.8rem, 4vw, 3.8rem);
}
-.discovery-section-heading h2 {
+.discovery-steps-grid,
+.discovery-products-grid,
+.discovery-comparison-grid {
+ display: grid;
+ gap: var(--gap-sm);
+}
+
+.discovery-steps-grid {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ margin-top: clamp(1.6rem, 4vw, 4rem);
+}
+
+.discovery-step-card,
+.discovery-product-card,
+.discovery-comparison-card {
+ border: 1px solid var(--theme-border);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.008)),
+ var(--theme-surface-soft);
+}
+
+.discovery-step-card {
+ min-height: 280px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ gap: var(--gap-md);
+ padding: clamp(1rem, 2vw, 1.5rem);
+}
+
+.discovery-step-number {
+ color: var(--theme-accent);
+ font-size: var(--text-sm);
+ letter-spacing: 0.2em;
+}
+
+.discovery-step-card h3,
+.discovery-comparison-head h3 {
margin: 0;
- font-size: clamp(2.2rem, 5.5vw, 6.2rem);
- line-height: 0.94;
- letter-spacing: 0;
- text-wrap: balance;
+ color: var(--theme-text);
+ font-size: var(--text-lg);
+ font-weight: 400;
+ line-height: 1.08;
+ letter-spacing: 0.02em;
+ text-transform: uppercase;
}
-.discovery-section-heading p {
- max-width: var(--text-measure);
- margin-top: var(--gap-sm);
+.discovery-step-card p,
+.discovery-comparison-card p {
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-base);
-}
-
-.discovery-section-heading--center {
- display: block;
+ line-height: 1.65;
}
.discovery-products-grid {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
- gap: var(--gap-md);
+ grid-template-columns: repeat(3, minmax(0, 1fr));
}
.discovery-product-card {
+ min-height: clamp(390px, 40vw, 560px);
+ display: grid;
+ grid-template-rows: auto minmax(14rem, 1fr) auto;
gap: var(--gap-sm);
- padding: clamp(0.8rem, 1.4vw, 1rem);
- border: 1px solid var(--theme-border);
- border-radius: var(--radius-lg);
- background: var(--theme-bg);
+ padding: clamp(1rem, 2vw, 1.4rem);
+ overflow: hidden;
transition:
transform var(--duration-med) var(--ease-out),
border-color var(--duration-med) var(--ease-out),
@@ -651,132 +477,327 @@
}
.discovery-product-image {
- border-radius: var(--radius-md);
+ display: grid;
+ place-items: center;
+ min-height: 0;
+ overflow: hidden;
+ background:
+ radial-gradient(circle at 50% 44%, rgba(255, 255, 255, 0.08), transparent 48%),
+ var(--theme-paper);
}
.discovery-product-image img {
- height: 100%;
+ display: block;
+ width: min(86%, 360px);
+ height: auto;
+ object-fit: contain;
+ filter: drop-shadow(0 24px 48px rgba(0, 0, 0, 0.24));
+ transition: transform var(--duration-slow) var(--ease-out);
+}
+
+.discovery-product-card:hover .discovery-product-image img {
+ transform: scale(1.04) rotate(-0.35deg);
}
.discovery-product-copy h3 {
+ max-width: 14ch;
+ margin: 0 0 0.45rem;
+ color: var(--theme-text);
font-size: var(--text-lg);
+ font-weight: 400;
+ line-height: 1.08;
+ letter-spacing: 0.02em;
+ text-transform: uppercase;
}
-.discovery-product-tags span {
- min-height: 34px;
- border-radius: 999px;
- background: var(--theme-surface-soft);
+.discovery-product-copy p {
+ margin: 0;
+ color: var(--theme-text-muted);
+ font-size: var(--text-sm);
+ line-height: 1.5;
}
-.discovery-steps-shell {
- padding: clamp(1.5rem, 5vw, 4rem);
- border-radius: var(--radius-lg);
- background:
- radial-gradient(circle at 20% 0%, rgba(var(--theme-accent-rgb) / 0.2), transparent 24rem),
- #111;
-}
-
-.discovery-steps-shell h2 {
- font-size: clamp(2.35rem, 5.5vw, 6rem);
- letter-spacing: 0;
-}
-
-.discovery-steps-grid {
- gap: var(--gap-md);
-}
-
-.discovery-step-card {
- padding: clamp(1rem, 2vw, 1.4rem);
- border: 1px solid rgba(255, 255, 255, 0.14);
- border-radius: var(--radius-lg);
- background: rgba(255, 255, 255, 0.045);
-}
-
-.discovery-step-number {
- border-radius: 999px;
- background: var(--theme-accent);
- color: #fff;
+.discovery-product-tags {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--gap-xs);
+ margin-top: var(--gap-sm);
}
.discovery-comparison-grid {
- gap: var(--gap-md);
+ grid-column: 1 / -1;
+ grid-template-columns: 1fr 1fr;
+ align-self: start;
}
.discovery-comparison-card {
+ min-height: 240px;
padding: clamp(1.25rem, 3vw, 2.2rem);
- border-radius: var(--radius-lg);
}
-.discovery-comparison-head h3 {
- font-size: var(--text-xl);
+.discovery-comparison-card--highlight {
+ border-color: rgba(var(--theme-accent-rgb) / 0.32);
+ background:
+ linear-gradient(135deg, rgba(var(--theme-accent-rgb) / 0.12), transparent 62%),
+ var(--theme-surface-soft);
}
-.discovery-bottom-cta {
+.discovery-comparison-head {
+ display: flex;
+ align-items: center;
+ gap: var(--gap-sm);
+ margin-bottom: var(--gap-sm);
+}
+
+.discovery-comparison-icon {
+ width: 2.3rem;
+ height: 2.3rem;
+ font-size: 1.2rem;
+}
+
+.discovery-final-cta {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) auto;
+ gap: var(--gap-lg);
+ align-items: end;
+ margin-top: clamp(1rem, 3vw, 2rem);
+ padding: clamp(1.5rem, 4vw, 3.5rem);
+ overflow: hidden;
+ background:
+ radial-gradient(circle at 86% 12%, rgba(255, 255, 255, 0.24), transparent 18rem),
+ linear-gradient(135deg, var(--theme-accent), #e95700);
+}
+
+.discovery-final-cta .discovery-label,
+.discovery-final-cta h2,
+.discovery-final-cta p {
+ color: #fff;
+}
+
+.discovery-final-cta p {
max-width: 48rem;
- margin-top: var(--gap-lg);
}
-@media (max-width: 1200px) {
- .discovery-hero {
+.discovery-final-actions {
+ display: flex;
+ justify-content: flex-end;
+ min-width: min(100%, 22rem);
+}
+
+.discovery-final-actions .discovery-primary-btn {
+ border-color: rgba(255, 255, 255, 0.18);
+ background: #262626;
+}
+
+@media (max-width: 1180px) {
+ .discovery-story-grid,
+ .discovery-comparison-section,
+ .discovery-final-cta {
grid-template-columns: 1fr;
}
- .discovery-hero-copy,
- .discovery-mood-grid {
- grid-column: 1;
+ .discovery-hero {
+ grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.72fr);
+ align-items: center;
+ min-height: 100svh;
+ padding-top: clamp(5.6rem, 9vw, 7.4rem);
+ padding-bottom: clamp(1rem, 2vw, 1.6rem);
}
- .discovery-mood-grid {
- max-width: none;
+ .discovery-hero-stage {
+ grid-column: 1;
+ grid-row: 1;
+ min-height: 0;
+ display: grid;
+ grid-template-columns: 1fr;
+ grid-template-rows: auto minmax(0, 1fr) auto;
+ gap: clamp(0.65rem, 1.4vw, 1rem);
+ align-self: stretch;
+ place-items: stretch;
+ }
+
+ .discovery-hero-copy {
+ position: static;
+ width: min(100%, 720px);
+ }
+
+ .discovery-hero-copy h1 {
+ max-width: 12ch;
+ font-size: clamp(2.4rem, 5.5vw, 4.6rem);
+ }
+
+ .discovery-hero-visual {
+ grid-column: auto;
+ grid-row: auto;
+ min-height: 0;
+ height: min(42svh, 420px);
+ }
+
+ .discovery-hero-visual img {
+ width: min(78%, 480px);
+ max-height: 100%;
+ }
+
+ .discovery-order-panel {
+ grid-column: 2;
+ grid-row: 1;
+ justify-self: stretch;
+ align-self: center;
+ width: 100%;
+ gap: var(--gap-xs);
+ }
+
+ .discovery-benefit-panel {
+ min-height: auto;
+ }
+
+ .discovery-products-grid,
+ .discovery-steps-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 820px) {
- .discovery-page {
- padding-inline: var(--page-x);
+ .discovery-topbar {
+ top: clamp(4.35rem, 14vw, 5.05rem);
+ z-index: 999;
+ right: clamp(0.75rem, 4vw, 1rem);
+ left: clamp(0.75rem, 4vw, 1rem);
}
- .discovery-shell {
- width: var(--container-wide);
- padding-inline: clamp(0.9rem, 4vw, 1.1rem);
- }
-
- .discovery-section-heading {
+ .discovery-hero {
grid-template-columns: 1fr;
- gap: var(--gap-sm);
+ gap: clamp(0.75rem, 2vw, 1rem);
+ min-height: auto;
+ padding-top: clamp(6.7rem, 20vw, 7.25rem);
+ padding-bottom: clamp(1rem, 3vw, 1.5rem);
}
- .discovery-mood-grid {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- grid-auto-rows: auto;
+ .discovery-hero-stage,
+ .discovery-order-panel {
+ grid-column: 1;
+ grid-row: auto;
}
- .discovery-mood-tile,
- .discovery-mood-tile:nth-child(1),
- .discovery-mood-tile:nth-child(4),
- .discovery-mood-tile:nth-child(5),
- .discovery-mood-tile:nth-child(6) {
- grid-column: auto;
- aspect-ratio: 1 / 1;
+ .discovery-hero-copy {
+ width: 100%;
+ max-width: 100%;
}
+ .discovery-intro {
+ width: min(100%, 38ch);
+ max-width: 38ch;
+ }
+
+ .discovery-hero-copy h1 {
+ max-width: 100%;
+ font-size: clamp(2rem, 8vw, 3rem);
+ line-height: 0.9;
+ }
+
+ .discovery-intro {
+ font-size: var(--text-base);
+ }
+
+ .discovery-hero-visual {
+ height: min(30svh, 260px);
+ min-height: 190px;
+ }
+
+ .discovery-hero-visual img {
+ width: min(88%, 380px);
+ }
+
+ .discovery-panel-facts,
+ .discovery-section-heading,
+ .discovery-comparison-grid,
.discovery-products-grid,
- .discovery-steps-grid,
- .discovery-comparison-grid {
+ .discovery-steps-grid {
grid-template-columns: 1fr;
}
+
+ .discovery-price-row {
+ order: 1;
+ }
+
+ .discovery-panel-actions {
+ order: 2;
+ }
+
+ .discovery-panel-facts {
+ order: 3;
+ }
+
+ .discovery-story-grid::before,
+ .discovery-process-section::before,
+ .discovery-included::before,
+ .discovery-comparison-section::before {
+ right: auto;
+ left: 0;
+ width: min(100%, 24rem);
+ }
+
+ .discovery-story-copy h2,
+ .discovery-section-heading h2,
+ .discovery-section-intro h2,
+ .discovery-final-cta h2 {
+ font-size: clamp(2.1rem, 11vw, 4rem);
+ }
+
+ .discovery-story-grid,
+ .discovery-process-section,
+ .discovery-included,
+ .discovery-comparison-section {
+ padding-block: clamp(4rem, 14vw, 6rem);
+ }
+
+ .discovery-benefit {
+ grid-template-columns: 1fr;
+ }
+
+ .discovery-final-actions {
+ justify-content: stretch;
+ min-width: 0;
+ }
}
-@media (max-width: 430px) {
- .discovery-mood-grid {
- gap: 0.6rem;
+@media (max-width: 520px) {
+ .discovery-hero-copy h1 {
+ font-size: clamp(1.95rem, 9vw, 2.85rem);
+ }
+
+ .discovery-kicker,
+ .discovery-label,
+ .discovery-price-row span,
+ .discovery-panel-facts span,
+ .discovery-product-index {
+ font-size: 0.68rem;
+ letter-spacing: 0.16em;
+ }
+
+ .discovery-price-row {
+ align-items: flex-start;
+ flex-direction: column;
+ gap: 0.25rem;
}
.discovery-primary-btn {
+ min-height: 48px;
padding-inline: 1rem;
- font-size: 0.78rem;
+ font-size: 0.76rem;
+ white-space: normal;
+ }
+
+ .discovery-product-card {
+ min-height: 360px;
}
}
-/* --- Design System Refinement End --- */
-
+@media (prefers-reduced-motion: reduce) {
+ .discovery-primary-btn,
+ .discovery-product-card,
+ .discovery-product-image img,
+ .discovery-back-link {
+ transition: none;
+ }
+}
diff --git a/parfum-shop/src/pages/DiscoverySetPage.jsx b/parfum-shop/src/pages/DiscoverySetPage.jsx
index c901fac..31e0c61 100644
--- a/parfum-shop/src/pages/DiscoverySetPage.jsx
+++ b/parfum-shop/src/pages/DiscoverySetPage.jsx
@@ -4,15 +4,271 @@ import SharedNavbar from "../components/SharedNavbar";
import { useShop } from "../shop/useShop";
import "./DiscoverySetPage.css";
-const moodImages = [
- "/DISCOVERYSET.png",
- "/DISCOVERYSET.png",
- "/DISCOVERYSET.png",
- "/DISCOVERYSET.png",
- "/DISCOVERYSET.png",
- "/DISCOVERYSET.png",
+const DISCOVERY_SET_IMAGE = "/DISCOVERYSET.png";
+
+const discoveryPanelFacts = [
+ { label: "Umfang", value: "6 × 2ml" },
+ { label: "Gutschrift", value: "CHF 48 werden beim späteren Full-Size-Kauf berücksichtigt." },
];
+const discoveryBenefits = [
+ {
+ title: "6 × 2ml Samples aller Signature-Düfte",
+ text: "Kalter Beton, Schwarzes Benzin, Verbranntes Chrom, Blasse Seide, Weisse Asche und Nasser Marmor.",
+ },
+ {
+ title: "CHF 48 Gutschein automatisch im Set",
+ text: "Nur das erste Discovery Set erstellt den einmaligen Rabatt. Er wird bei einem späteren Full-Size-Kauf automatisch angerechnet.",
+ },
+ {
+ title: "Jedes Sample = ca. 20 Anwendungen",
+ text: "Genug, um jeden Duft mehrere Tage im Alltag und in unterschiedlichen Situationen zu testen.",
+ },
+ {
+ title: "Hochwertige Mini-Flacons",
+ text: "Sorgfältig zusammengestellt, reduziert gestaltet und als Teil des atmos Konzepts gedacht.",
+ },
+];
+
+const discoverySteps = [
+ {
+ number: "01",
+ title: "Bestellen",
+ text: "Discovery Set für CHF 48 bestellen. Nur dein erstes Set erzeugt automatisch einen einmaligen Rabatt.",
+ },
+ {
+ number: "02",
+ title: "Testen",
+ text: "Jeden Duft mindestens einige Tage tragen. Im Alltag, zu verschiedenen Anlässen und auf der eigenen Haut.",
+ },
+ {
+ number: "03",
+ title: "Entscheiden",
+ text: "Full-Size bestellen. CHF 48 werden automatisch angerechnet, sofern der Rabatt noch nicht genutzt wurde.",
+ },
+];
+
+const discoveryComparison = [
+ {
+ icon: "×",
+ title: "Traditioneller Weg",
+ text: "CHF 180+ für eine Full Size ausgeben, ohne zu wissen, ob sie wirklich passt. Risiko: Fehlkauf, Überforderung oder ein Duft, der im Regal bleibt.",
+ },
+ {
+ icon: "✓",
+ title: "Discovery Set Weg",
+ text: "CHF 48 investieren, alle Düfte testen, bewusst entscheiden. Die erste Investition wird einmalig angerechnet – der Einstieg bleibt kontrolliert, nachvollziehbar und fair.",
+ highlight: true,
+ },
+];
+
+function DiscoveryOrderPanel({ onBuy }) {
+ return (
+
+ );
+}
+
+function DiscoveryHero({ onBuy }) {
+ return (
+
+
+
+
DISCOVERY SET
+
+ DER SICHERSTE EINSTIEG
+
+ IN DIE WELT DER NISCHEN-
+
+ DÜFTE
+
+
+
+ 6 Düfte × 2ml. Jeden Duft eine Woche tragen. Verstehen, was
+ wirklich funktioniert. Ohne Risiko.
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+function DiscoveryStorySection() {
+ return (
+
+
+
+ WARUM DISCOVERY SET
+
+
DER KLÜGERE EINSTIEG IN NISCHENDÜFTE.
+
+ Nischen-Parfums sind keine Impulskäufe. Sie brauchen Zeit, um zu
+ verstehen, wie sie auf deiner Haut funktionieren, wie sie sich im
+ Alltag entwickeln und ob sie wirklich zu dir passen.
+
+
+
+
+ {discoveryBenefits.map((benefit) => (
+
+
+ ✓
+
+
+
{benefit.title}
+
{benefit.text}
+
+
+ ))}
+
+
+ );
+}
+
+function DiscoveryProcessSection() {
+ return (
+
+
+
+ ABLAUF
+
+
So funktioniert's
+
+
+
+ {discoverySteps.map((step) => (
+
+ {step.number}
+ {step.title}
+ {step.text}
+
+ ))}
+
+
+ );
+}
+
+function DiscoveryIncludedSection() {
+ return (
+
+
+
+ IM SET ENTHALTEN
+
+
ALLE 6 SIGNATURE-DÜFTE ZUM TESTEN.
+
+
+
+ {perfumes.map((perfume) => (
+
+ {perfume.id}
+
+
+
+
+
+
+
{perfume.name}
+
{perfume.text}
+
+
+ {perfume.materialTags.slice(0, 3).map((tag) => (
+ {tag}
+ ))}
+
+
+
+ ))}
+
+
+ );
+}
+
+function DiscoveryComparisonSection() {
+ return (
+
+
+ {discoveryComparison.map((item) => (
+
+
+
+ {item.icon}
+
+
{item.title}
+
+ {item.text}
+
+ ))}
+
+
+ );
+}
+
+function DiscoveryFinalCta({ onBuy }) {
+ return (
+
+
+
+ DISCOVERY SET
+
+
DER SICHERSTE EINSTIEG.
+
+ Kostenloser Versand · 2–3 Werktage · Einmalige Anrechnung bei Full-Size
+
+
+
+
+
+ DISCOVERY SET BESTELLEN – CHF 48.–
+
+
+
+ );
+}
+
function DiscoverySetPage() {
const navigate = useNavigate();
const { addToCart } = useShop();
@@ -23,219 +279,20 @@ function DiscoverySetPage() {
-
+
navigate("/")}>
- ←
+
Zurück zur Startseite
-
-
-
- DISCOVERY SET
-
-
- DER SICHERSTE EINSTIEG
-
- IN DIE WELT DER NISCHEN-
-
- DÜFTE
-
-
-
- 6 Düfte × 2ml. Jeden Duft eine Woche tragen. Verstehen, was
- wirklich funktioniert. Ohne Risiko.
-
-
-
-
-
✓
-
-
6 × 2ml Samples aller Signature-Düfte
-
- Kalter Beton, Schwarzes Benzin, Verbranntes Chrom, Blasse
- Seide, Weisse Asche und Nasser Marmor.
-
-
-
-
-
-
✓
-
-
CHF 48 Gutschein automatisch im Set
-
- Nur das erste Discovery Set erstellt den einmaligen Rabatt.
- Er wird bei einem späteren Full-Size-Kauf automatisch angerechnet.
-
-
-
-
-
-
✓
-
-
Jedes Sample = ca. 20 Anwendungen
-
- Genug, um jeden Duft mehrere Tage im Alltag und in
- unterschiedlichen Situationen zu testen.
-
-
-
-
-
-
✓
-
-
Hochwertige Mini-Flacons
-
- Sorgfältig zusammengestellt, reduziert gestaltet und als
- Teil des atmos Konzepts gedacht.
-
-
-
-
-
-
-
- DISCOVERY SET BESTELLEN – CHF 48.–
-
-
Nur das erste Set erstellt einen einmaligen CHF 48 Full-Size-Rabatt
-
-
-
-
- {moodImages.map((image, index) => (
-
-
-
- ))}
-
-
-
-
-
-
- IM SET ENTHALTEN
-
-
ALLE 6 SIGNATURE-DÜFTE ZUM TESTEN.
-
-
-
- {perfumes.map((perfume) => (
-
-
-
-
-
-
-
{perfume.name}
-
{perfume.text}
-
-
- {perfume.materialTags.slice(0, 3).map((tag) => (
- {tag}
- ))}
-
-
-
- ))}
-
-
-
-
-
-
So funktioniert's
-
-
-
- 1
- Bestellen
-
- Discovery Set für CHF 48 bestellen. Nur dein erstes Set erzeugt
- automatisch einen einmaligen Rabatt.
-
-
-
-
- 2
- Testen
-
- Jeden Duft mindestens einige Tage tragen. Im Alltag, zu
- verschiedenen Anlässen und auf der eigenen Haut.
-
-
-
-
- 3
- Entscheiden
-
- Full-Size bestellen. CHF 48 werden automatisch angerechnet,
- sofern der Rabatt noch nicht genutzt wurde.
-
-
-
-
-
-
-
-
-
- WARUM DISCOVERY SET
-
-
DER KLÜGERE EINSTIEG IN NISCHENDÜFTE.
-
- Nischen-Parfums sind keine Impulskäufe. Sie brauchen Zeit, um zu
- verstehen, wie sie auf deiner Haut funktionieren, wie sie sich im
- Alltag entwickeln und ob sie wirklich zu dir passen.
-
-
-
-
-
-
- ×
-
Traditioneller Weg
-
-
- CHF 180+ für eine Full Size ausgeben, ohne zu wissen, ob sie
- wirklich passt. Risiko: Fehlkauf, Überforderung oder ein Duft,
- der im Regal bleibt.
-
-
-
-
-
- ✓
-
Discovery Set Weg
-
-
- CHF 48 investieren, alle Düfte testen, bewusst entscheiden. Die
- erste Investition wird einmalig angerechnet – der Einstieg bleibt
- kontrolliert, nachvollziehbar und fair.
-
-
-
-
-
-
- DISCOVERY SET BESTELLEN – CHF 48.–
-
-
Kostenloser Versand · 2–3 Werktage · Einmalige Anrechnung bei Full-Size
-
-
+
+
+
+
+
+
);
diff --git a/parfum-shop/src/pages/ImpressumPage.css b/parfum-shop/src/pages/ImpressumPage.css
index 949dc19..3fa3921 100644
--- a/parfum-shop/src/pages/ImpressumPage.css
+++ b/parfum-shop/src/pages/ImpressumPage.css
@@ -1,206 +1,62 @@
.impressum-page {
min-height: 100vh;
+ padding: 0 0 var(--section-y-sm);
color: var(--theme-text);
- padding: 26px 38px 38px;
background:
- linear-gradient(to right, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.1)),
- linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.45));
-}
-
-.impressum-shell {
- background: var(--theme-surface);
- border: 1px solid var(--theme-border);
- padding: 38px;
+ radial-gradient(circle at 86% 8%, rgba(var(--theme-accent-rgb) / 0.12), transparent 28rem),
+ linear-gradient(180deg, var(--theme-bg), color-mix(in srgb, var(--theme-bg) 88%, #000 12%));
}
.impressum-kicker,
.impressum-label {
display: block;
- font-size: 10px;
- letter-spacing: 0.22em;
color: var(--theme-text-muted);
+ font-size: var(--text-xs);
+ letter-spacing: 0.22em;
+ text-transform: uppercase;
}
.impressum-hero {
- padding-bottom: 32px;
+ padding: clamp(2rem, 5vw, 5rem) 0 var(--section-y-sm);
border-bottom: 1px solid var(--theme-border);
}
.impressum-hero h1 {
- margin: 14px 0 16px;
- font-size: 64px;
- line-height: 0.92;
- font-weight: 300;
- letter-spacing: 0;
+ margin: clamp(0.85rem, 2vw, 1.2rem) 0 clamp(1rem, 2vw, 1.35rem);
color: var(--theme-text);
-}
-
-.impressum-intro {
- max-width: 760px;
- margin: 0;
- font-size: 17px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.impressum-grid {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 18px;
- margin-top: 38px;
-}
-
-.impressum-card {
- padding: 24px;
- background: var(--theme-bg);
- border: 1px solid var(--theme-border);
- min-height: 210px;
-}
-
-.impressum-card h2 {
- margin: 14px 0 12px;
- font-size: 26px;
- line-height: 1.05;
- font-weight: 400;
- color: var(--theme-text);
-}
-
-.impressum-card p {
- margin: 0;
- font-size: 15px;
- line-height: 1.7;
- color: var(--theme-text-muted);
-}
-
-.impressum-section {
- display: grid;
- grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
- gap: 28px;
- align-items: start;
- margin-top: 38px;
- padding-top: 38px;
- border-top: 1px solid var(--theme-border);
-}
-
-.impressum-section-heading h2 {
- margin: 10px 0 0;
- font-size: 38px;
- line-height: 0.98;
- font-weight: 300;
- letter-spacing: 0;
- color: var(--theme-text);
-}
-
-.impressum-section-copy p {
- margin: 0 0 16px;
- font-size: 16px;
- line-height: 1.75;
- color: var(--theme-text-muted);
-}
-
-.impressum-note-box {
- padding: 22px;
- border: 1px solid rgba(255, 106, 0, 0.18);
- background: linear-gradient(
- 180deg,
- rgba(255, 106, 0, 0.08),
- rgba(255, 106, 0, 0.03)
- );
-}
-
-.impressum-note-box p {
- margin: 0;
- font-size: 15px;
- line-height: 1.65;
- color: var(--theme-text);
-}
-
-@media (max-width: 1100px) {
- .impressum-grid,
- .impressum-section {
- grid-template-columns: 1fr;
- }
-
- .impressum-hero h1 {
- font-size: 48px;
- }
-}
-
-@media (max-width: 700px) {
- .impressum-page {
- padding: 18px;
- }
-
- .impressum-shell {
- padding: 24px 18px;
- }
-
- .impressum-hero h1 {
- font-size: 36px;
- }
-
- .impressum-section-heading h2 {
- font-size: 28px;
- }
-
- .impressum-intro,
- .impressum-card p,
- .impressum-section-copy p {
- font-size: 15px;
- }
-}
-
-
-/* --- Design System Refinement Start --- */
-
-.impressum-page {
- padding: clamp(1rem, 3vw, 2.4rem) var(--page-x) clamp(2rem, 5vw, 4rem);
- background:
- radial-gradient(circle at 88% 9%, rgba(var(--theme-accent-rgb) / 0.12), transparent 28rem),
- linear-gradient(135deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.08)),
- var(--theme-bg);
-}
-
-.impressum-shell {
- width: var(--container-narrow);
- margin: 0 auto;
- padding: clamp(1.25rem, 3vw, 2.8rem);
- border-radius: var(--radius-lg);
- box-shadow: var(--theme-shadow);
-}
-
-.impressum-kicker,
-.impressum-label {
- font-size: var(--text-xs);
-}
-
-.impressum-hero {
- padding-bottom: var(--section-y-xs);
-}
-
-.impressum-hero h1 {
font-size: clamp(3rem, 8vw, 7.2rem);
line-height: 0.9;
+ font-weight: 300;
letter-spacing: 0;
+ text-transform: uppercase;
}
.impressum-intro {
max-width: var(--text-measure);
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-lg);
+ line-height: 1.65;
}
.impressum-grid {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
gap: var(--gap-sm);
- margin-top: var(--section-y-xs);
+ margin-top: var(--section-y-sm);
}
.impressum-card,
.impressum-note-box {
- border-radius: var(--radius-lg);
+ border: 1px solid var(--theme-border);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.008)),
+ var(--theme-surface-soft);
}
.impressum-card {
+ min-height: 210px;
+ padding: clamp(1.1rem, 2.4vw, 1.8rem);
transition:
transform var(--duration-med) var(--ease-out),
border-color var(--duration-med) var(--ease-out),
@@ -213,42 +69,74 @@
box-shadow: var(--theme-shadow-soft);
}
-.impressum-card h2,
-.impressum-section-heading h2 {
+.impressum-card h2 {
+ margin: 0.9rem 0 0.75rem;
+ color: var(--theme-text);
+ font-size: var(--text-xl);
+ line-height: 1.08;
+ font-weight: 400;
letter-spacing: 0;
}
-.impressum-card h2 {
- font-size: var(--text-xl);
+.impressum-card p {
+ margin: 0;
+ color: var(--theme-text-muted);
+ font-size: var(--text-base);
+ line-height: 1.7;
}
.impressum-section {
+ display: grid;
+ grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1.28fr);
gap: var(--gap-lg);
- margin-top: var(--section-y-xs);
- padding-top: var(--section-y-xs);
+ align-items: start;
+ margin-top: var(--section-y-sm);
+ padding-top: var(--section-y-sm);
+ border-top: 1px solid var(--theme-border);
}
.impressum-section-heading h2 {
+ margin: 0.75rem 0 0;
+ color: var(--theme-text);
font-size: clamp(2rem, 4.2vw, 4.5rem);
line-height: 0.96;
+ font-weight: 300;
+ letter-spacing: 0;
+ text-transform: uppercase;
+ text-wrap: balance;
}
-.impressum-card p,
-.impressum-section-copy p,
-.impressum-note-box p {
+.impressum-section-copy p {
+ margin: 0 0 1rem;
+ color: var(--theme-text-muted);
font-size: var(--text-base);
+ line-height: 1.75;
+}
+
+.impressum-note-box {
+ padding: clamp(1.1rem, 2.4vw, 1.8rem);
+ border-color: rgba(var(--theme-accent-rgb) / 0.24);
+ background:
+ linear-gradient(135deg, rgba(var(--theme-accent-rgb) / 0.11), transparent 60%),
+ var(--theme-surface-soft);
+}
+
+.impressum-note-box p {
+ margin: 0;
+ color: var(--theme-text);
+ font-size: var(--text-base);
+ line-height: 1.65;
+}
+
+@media (max-width: 900px) {
+ .impressum-grid,
+ .impressum-section {
+ grid-template-columns: 1fr;
+ }
}
@media (max-width: 700px) {
- .impressum-page {
- padding-inline: var(--page-x);
- }
-
- .impressum-shell {
- width: var(--container-wide);
- padding-inline: clamp(0.9rem, 4vw, 1.1rem);
+ .impressum-hero {
+ padding-top: clamp(1.4rem, 5vw, 2rem);
}
}
-
-/* --- Design System Refinement End --- */
-
diff --git a/parfum-shop/src/pages/ImpressumPage.jsx b/parfum-shop/src/pages/ImpressumPage.jsx
index de927b3..566e5d7 100644
--- a/parfum-shop/src/pages/ImpressumPage.jsx
+++ b/parfum-shop/src/pages/ImpressumPage.jsx
@@ -6,7 +6,7 @@ function ImpressumPage() {
-
+
RECHTLICHE ANGABEN
diff --git a/parfum-shop/src/pages/LandingPage.css b/parfum-shop/src/pages/LandingPage.css
index e5ee078..acdcd8e 100644
--- a/parfum-shop/src/pages/LandingPage.css
+++ b/parfum-shop/src/pages/LandingPage.css
@@ -447,9 +447,22 @@
align-items: center;
justify-content: center;
min-width: 2rem;
+ width: 2rem;
+ height: 2rem;
color: var(--theme-accent);
- font-size: clamp(1.5rem, 2.5vw, 2rem);
- line-height: 1;
+ font-size: 0;
+ line-height: 0;
+}
+
+.arrow::before {
+ content: "";
+ display: block;
+ width: clamp(1.35rem, 2.2vw, 1.75rem);
+ height: clamp(1.35rem, 2.2vw, 1.75rem);
+ background: currentColor;
+ transform: rotate(180deg);
+ -webkit-mask: url("/icon-arrow-left.svg") center / contain no-repeat;
+ mask: url("/icon-arrow-left.svg") center / contain no-repeat;
}
.product-id,
diff --git a/parfum-shop/src/pages/LandingPage.jsx b/parfum-shop/src/pages/LandingPage.jsx
index a6eeb1e..24a18d7 100644
--- a/parfum-shop/src/pages/LandingPage.jsx
+++ b/parfum-shop/src/pages/LandingPage.jsx
@@ -450,7 +450,7 @@ function LandingPage() {
))}
diff --git a/parfum-shop/src/pages/SmallBatchPage.css b/parfum-shop/src/pages/SmallBatchPage.css
index 71249c8..808cdb6 100644
--- a/parfum-shop/src/pages/SmallBatchPage.css
+++ b/parfum-shop/src/pages/SmallBatchPage.css
@@ -1,193 +1,90 @@
.small-page {
min-height: 100vh;
- padding: 26px 38px 38px;
- background: var(--theme-bg);
+ padding: 0 0 var(--section-y-sm);
color: var(--theme-text);
-}
-
-.small-shell {
- background: var(--theme-surface);
- border: 1px solid var(--theme-border);
- padding: 38px;
-}
-
-.small-hero {
- max-width: 780px;
- padding-bottom: 34px;
- border-bottom: 1px solid var(--theme-border);
- margin-bottom: 28px;
-}
-
-.small-kicker {
- display: block;
- margin-bottom: 12px;
- color: var(--theme-text-muted);
- font-size: 10px;
- letter-spacing: 0.22em;
-}
-
-.small-hero h1,
-.small-panel h2 {
- margin: 0 0 14px;
- letter-spacing: 0;
-}
-
-.small-hero h1 {
- font-size: clamp(42px, 8vw, 92px);
- line-height: 0.92;
-}
-
-.small-hero p,
-.small-panel p,
-.release-card p {
- margin: 0;
- color: var(--theme-text-muted);
- line-height: 1.55;
-}
-
-.small-panel,
-.release-card,
-.small-error {
- background: var(--theme-surface-soft);
- border: 1px solid var(--theme-border);
- padding: 22px;
-}
-
-.small-panel button,
-.release-card button {
- min-height: 44px;
- margin-top: 18px;
- border: 1px solid #1f1f1f;
- border-radius: 0;
- background: #1f1f1f;
- color: #fff;
- padding: 0 18px;
- cursor: pointer;
-}
-
-.small-requirements {
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 12px;
- margin-top: 18px;
-}
-
-.small-requirement {
- display: flex;
- justify-content: space-between;
- gap: 12px;
- padding: 14px;
- background: var(--theme-surface-soft);
- border: 1px solid var(--theme-border);
-}
-
-.small-requirement span,
-.release-card span {
- color: var(--theme-text-muted);
- font-size: 10px;
- letter-spacing: 0.18em;
- text-transform: uppercase;
-}
-
-.small-requirement strong.met {
- color: #ff6a00;
-}
-
-.release-grid {
- display: grid;
- grid-template-columns: repeat(3, minmax(0, 1fr));
- gap: 16px;
- margin-top: 22px;
-}
-
-.release-card h3 {
- margin: 10px 0 12px;
-}
-
-.small-error {
- margin: 16px 0 0;
- border-color: #ff6a00;
-}
-
-@media (max-width: 760px) {
- .small-page {
- padding: 18px;
- }
-
- .small-shell {
- padding: 24px 18px;
- }
-
- .small-requirements,
- .release-grid {
- grid-template-columns: 1fr;
- }
-}
-
-
-/* --- Design System Refinement Start --- */
-
-.small-page {
- padding: clamp(1rem, 3vw, 2.4rem) var(--page-x) clamp(2rem, 5vw, 4rem);
background:
- radial-gradient(circle at 84% 7%, rgba(var(--theme-accent-rgb) / 0.12), transparent 28rem),
- var(--theme-bg);
-}
-
-.small-shell {
- width: var(--container-wide);
- margin: 0 auto;
- padding: clamp(1.25rem, 3vw, 2.8rem);
- border-radius: var(--radius-lg);
- box-shadow: var(--theme-shadow);
+ radial-gradient(circle at 84% 8%, rgba(var(--theme-accent-rgb) / 0.13), transparent 28rem),
+ linear-gradient(180deg, var(--theme-bg), color-mix(in srgb, var(--theme-bg) 88%, #000 12%));
}
.small-hero {
- max-width: min(100%, 58rem);
- padding-bottom: var(--section-y-xs);
- margin-bottom: var(--gap-lg);
+ max-width: 64rem;
+ padding: clamp(2rem, 5vw, 5rem) 0 var(--section-y-sm);
+ border-bottom: 1px solid var(--theme-border);
}
.small-kicker,
.small-requirement span,
.release-card span {
+ display: block;
+ margin-bottom: 0.75rem;
+ color: var(--theme-text-muted);
font-size: var(--text-xs);
+ letter-spacing: 0.22em;
+ text-transform: uppercase;
}
.small-hero h1,
.small-panel h2 {
+ margin: 0 0 clamp(0.85rem, 2vw, 1.2rem);
+ color: var(--theme-text);
+ font-weight: 300;
letter-spacing: 0;
+ text-transform: uppercase;
}
.small-hero h1 {
- font-size: clamp(3rem, 9vw, 9rem);
+ font-size: clamp(3rem, 8.6vw, 9rem);
line-height: 0.88;
text-wrap: balance;
}
+.small-panel h2 {
+ font-size: clamp(2.2rem, 5vw, 5.4rem);
+ line-height: 0.94;
+}
+
.small-hero p,
.small-panel p,
.release-card p {
max-width: var(--text-measure);
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-base);
+ line-height: 1.65;
}
.small-panel,
.release-card,
-.small-error,
-.small-requirement {
- border-radius: var(--radius-lg);
+.small-error {
+ border: 1px solid var(--theme-border);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.008)),
+ var(--theme-surface-soft);
}
-.small-panel,
-.release-card {
- padding: clamp(1.2rem, 3vw, 2rem);
+.small-panel {
+ max-width: 68rem;
+ margin-top: var(--section-y-sm);
+ padding: clamp(1.25rem, 3vw, 2.2rem);
}
.small-panel button,
.release-card button {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
min-height: 48px;
+ margin-top: 1.2rem;
+ padding: 0 1.1rem;
+ border: 1px solid #111;
border-radius: 999px;
+ background: #111;
+ color: #fff;
+ cursor: pointer;
+ font-size: var(--text-sm);
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
transition:
transform var(--duration-med) var(--ease-out),
box-shadow var(--duration-med) var(--ease-out),
@@ -203,21 +100,60 @@
}
.small-requirements {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
gap: var(--gap-sm);
+ margin-top: clamp(1.4rem, 3vw, 2.4rem);
}
.small-requirement {
- min-height: 4.5rem;
+ min-height: 7rem;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ gap: var(--gap-xs);
+ padding: clamp(1rem, 2vw, 1.4rem);
+ border: 1px solid var(--theme-border);
+ background: var(--theme-paper);
+}
+
+.small-requirement span {
+ margin-bottom: 0;
+}
+
+.small-requirement strong {
+ color: var(--theme-text);
+ font-size: var(--text-base);
+ font-weight: 400;
+ line-height: 1.3;
+}
+
+.small-requirement strong.met {
+ color: var(--theme-accent);
+}
+
+.small-error {
+ max-width: 68rem;
+ margin: var(--gap-sm) 0 0;
+ padding: clamp(1rem, 2vw, 1.4rem);
+ border-color: rgba(var(--theme-accent-rgb) / 0.45);
+ color: var(--theme-text);
}
.release-grid {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
gap: var(--gap-sm);
- margin-top: var(--gap-lg);
+ margin-top: var(--section-y-sm);
}
.release-card {
+ min-height: 280px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ gap: var(--gap-sm);
+ padding: clamp(1.1rem, 2.4vw, 1.8rem);
transition:
transform var(--duration-med) var(--ease-out),
border-color var(--duration-med) var(--ease-out),
@@ -230,23 +166,42 @@
box-shadow: var(--theme-shadow-soft);
}
+.release-card span {
+ margin-bottom: 0;
+}
+
.release-card h3 {
+ margin: 0;
+ color: var(--theme-text);
font-size: var(--text-xl);
line-height: 1.08;
+ font-weight: 400;
letter-spacing: 0;
}
-@media (max-width: 760px) {
- .small-page {
- padding-inline: var(--page-x);
- }
-
- .small-shell {
- width: var(--container-wide);
- padding-inline: clamp(0.9rem, 4vw, 1.1rem);
+@media (max-width: 1180px) {
+ .small-requirements,
+ .release-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
-/* --- Design System Refinement End --- */
+@media (max-width: 760px) {
+ .small-hero {
+ padding-top: clamp(1.4rem, 5vw, 2rem);
+ }
+ .small-hero h1 {
+ font-size: clamp(2.55rem, 13vw, 4.4rem);
+ }
+ .small-requirements,
+ .release-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .small-panel button,
+ .release-card button {
+ width: 100%;
+ }
+}
diff --git a/parfum-shop/src/pages/SmallBatchPage.jsx b/parfum-shop/src/pages/SmallBatchPage.jsx
index 13c0a58..6ffd089 100644
--- a/parfum-shop/src/pages/SmallBatchPage.jsx
+++ b/parfum-shop/src/pages/SmallBatchPage.jsx
@@ -62,7 +62,7 @@ function SmallBatchPage() {
-
+
SMALL BATCH / ARCHIVE / PROTOTYPE
diff --git a/parfum-shop/src/pages/SupportPage.css b/parfum-shop/src/pages/SupportPage.css
index 070eaf3..d73d86b 100644
--- a/parfum-shop/src/pages/SupportPage.css
+++ b/parfum-shop/src/pages/SupportPage.css
@@ -1,16 +1,10 @@
.support-page {
min-height: 100vh;
+ padding: 0 0 var(--section-y-sm);
color: var(--theme-text);
- padding: 26px 38px 38px;
background:
- linear-gradient(to right, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.1)),
- linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.45));
-}
-
-.support-shell {
- background: var(--theme-surface);
- border: 1px solid var(--theme-border);
- padding: 38px;
+ radial-gradient(circle at 86% 8%, rgba(var(--theme-accent-rgb) / 0.13), transparent 28rem),
+ linear-gradient(180deg, var(--theme-bg), color-mix(in srgb, var(--theme-bg) 88%, #000 12%));
}
.support-kicker,
@@ -18,435 +12,119 @@
.support-panel-label,
.support-panel-meta span {
display: block;
- font-size: 10px;
- letter-spacing: 0.22em;
color: var(--theme-text-muted);
+ font-size: var(--text-xs);
+ letter-spacing: 0.22em;
+ text-transform: uppercase;
}
.support-hero {
display: grid;
- grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.8fr);
- gap: 28px;
+ grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.72fr);
+ gap: var(--gap-lg);
align-items: end;
- padding-bottom: 36px;
+ padding: clamp(2rem, 5vw, 5rem) 0 var(--section-y-sm);
border-bottom: 1px solid var(--theme-border);
}
-.support-hero-copy h1 {
- margin: 14px 0 18px;
- font-size: 68px;
- line-height: 0.92;
- font-weight: 300;
- letter-spacing: 0;
- color: var(--theme-text);
-}
-
-.support-intro {
- max-width: 720px;
- margin: 0;
- font-size: 18px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.support-hero-panel {
- padding: 24px;
- background: linear-gradient(
- 180deg,
- rgba(255, 106, 0, 0.08),
- rgba(255, 106, 0, 0.03)
- );
- border: 1px solid rgba(255, 106, 0, 0.18);
-}
-
-.support-hero-panel p {
- margin: 10px 0 0;
- font-size: 16px;
- line-height: 1.6;
- color: var(--theme-text);
-}
-
-.support-panel-meta {
- display: grid;
- grid-template-columns: 1fr;
- gap: 16px;
- margin-top: 24px;
- padding-top: 20px;
- border-top: 1px solid rgba(255, 106, 0, 0.14);
-}
-
-.support-panel-meta p {
- margin: 8px 0 0;
- font-size: 14px;
- line-height: 1.55;
- color: var(--theme-text);
-}
-
-.support-quick-grid {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 18px;
- margin-top: 38px;
-}
-
-.support-quick-card {
- padding: 24px;
- background: var(--theme-bg);
- border: 1px solid var(--theme-border);
- min-height: 240px;
-}
-
-.support-quick-card h3 {
- margin: 14px 0 12px;
- font-size: 24px;
- line-height: 1.08;
- font-weight: 400;
- color: var(--theme-text);
-}
-
-.support-quick-card p {
- margin: 0;
- font-size: 15px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.support-section {
- padding-top: 38px;
-}
-
-.support-section--split {
- display: grid;
- grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
- gap: 28px;
- align-items: start;
-}
-
-.support-section-heading h2,
-.support-bottom-copy h2 {
- margin: 10px 0 0;
- font-size: 42px;
- line-height: 0.98;
- font-weight: 300;
- letter-spacing: 0;
- color: var(--theme-text);
-}
-
-.support-section-copy {
- display: flex;
- flex-direction: column;
- gap: 18px;
-}
-
-.support-section-copy p,
-.support-bottom-copy p {
- margin: 0;
- font-size: 16px;
- line-height: 1.7;
- color: var(--theme-text-muted);
-}
-
-.support-info-grid {
- display: grid;
- grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
- gap: 18px;
- margin-top: 38px;
-}
-
-.support-info-box {
- padding: 24px;
- border: 1px solid var(--theme-border);
- background: var(--theme-surface-soft);
-}
-
-.support-info-box h3 {
- margin: 14px 0 12px;
- font-size: 28px;
- line-height: 1.02;
- font-weight: 400;
- color: #fff;
-}
-
-.support-info-box p {
- margin: 0;
- font-size: 15px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.support-info-box--dark {
- background: #1f1f1f;
- border-color: var(--theme-text);
-}
-
-.support-info-box--dark .support-label,
-.support-info-box--dark p {
- color: rgba(255, 255, 255, 0.78);
-}
-
-.support-list {
- margin: 14px 0 0;
- padding-left: 18px;
- display: grid;
- gap: 10px;
-}
-
-.support-list li {
- font-size: 15px;
- line-height: 1.6;
- color: var(--theme-text);
-}
-
-.support-mail-btn {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- margin-top: 18px;
- text-decoration: none;
- padding: 12px 18px;
- border-radius: 999px;
- background: #ff6a00;
- color: #fff;
- font-size: 14px;
- transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
-}
-
-.support-mail-btn:hover {
- transform: translateY(-1px);
-}
-
-.support-faq-section {
- margin-top: 38px;
- padding-top: 38px;
- border-top: 1px solid var(--theme-border);
-}
-
-.support-faq-grid {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 18px;
- margin-top: 28px;
-}
-
-.support-faq-card {
- padding: 24px;
- border: 1px solid var(--theme-border);
- background: var(--theme-bg);
- min-height: 210px;
-}
-
-.support-faq-card h3 {
- margin: 0 0 12px;
- font-size: 22px;
- line-height: 1.08;
- font-weight: 400;
- color: var(--theme-text);
-}
-
-.support-faq-card p {
- margin: 0;
- font-size: 15px;
- line-height: 1.65;
- color: var(--theme-text-muted);
-}
-
-.support-bottom-cta {
- margin-top: 38px;
- padding: 38px;
- background: #ff6a00;
- display: grid;
- grid-template-columns: minmax(0, 1.2fr) auto;
- gap: 24px;
- align-items: end;
-}
-
-.support-bottom-copy .support-label,
-.support-bottom-copy h2,
-.support-bottom-copy p {
- color: #fff;
-}
-
-.support-bottom-copy .support-label {
- opacity: 0.85;
-}
-
-.support-bottom-copy p {
- margin-top: 16px;
- max-width: 700px;
-}
-
-.support-bottom-actions {
- display: flex;
- gap: 12px;
- flex-wrap: wrap;
-}
-
-.support-btn {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- text-decoration: none;
- padding: 12px 18px;
- font-size: 14px;
- border-radius: 999px;
- transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
-}
-
-.support-btn:hover {
- transform: translateY(-1px);
-}
-
-.support-btn--primary {
- background: var(--theme-paper);
- color: #ff6a00;
-}
-
-.support-btn--secondary {
- background: rgba(255, 255, 255, 0.14);
- color: #fff;
- backdrop-filter: blur(8px);
-}
-
-@media (max-width: 1100px) {
- .support-hero,
- .support-section--split,
- .support-info-grid,
- .support-bottom-cta {
- grid-template-columns: 1fr;
- }
-
- .support-hero-copy h1 {
- font-size: 52px;
- }
-
- .support-quick-grid,
- .support-faq-grid {
- grid-template-columns: 1fr;
- }
-}
-
-@media (max-width: 700px) {
- .support-page {
- padding: 18px;
- }
-
- .support-shell {
- padding: 24px 18px;
- }
-
- .support-hero-copy h1 {
- font-size: 38px;
- }
-
- .support-section-heading h2,
- .support-bottom-copy h2 {
- font-size: 30px;
- }
-
- .support-intro,
- .support-section-copy p,
- .support-bottom-copy p,
- .support-quick-card p,
- .support-faq-card p {
- font-size: 15px;
- }
-
- .support-bottom-cta {
- padding: 26px 20px;
- }
-}
-
-
-/* --- Design System Refinement Start --- */
-
-.support-page {
- padding: clamp(1rem, 3vw, 2.4rem) var(--page-x) clamp(2rem, 5vw, 4rem);
- background:
- radial-gradient(circle at 88% 9%, rgba(var(--theme-accent-rgb) / 0.12), transparent 28rem),
- linear-gradient(135deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.08)),
- var(--theme-bg);
-}
-
-.support-shell {
- width: var(--container-wide);
- margin: 0 auto;
- padding: clamp(1.25rem, 3vw, 2.8rem);
- border-radius: var(--radius-lg);
- box-shadow: var(--theme-shadow);
-}
-
-.support-kicker,
-.support-label,
-.support-panel-label,
-.support-panel-meta span {
- font-size: var(--text-xs);
-}
-
-.support-hero {
- grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.72fr);
- gap: var(--gap-lg);
- padding-bottom: var(--section-y-xs);
+.support-hero-copy {
+ min-width: 0;
}
.support-hero-copy h1 {
+ max-width: 10.8ch;
margin: clamp(0.85rem, 2vw, 1.2rem) 0 clamp(1rem, 2vw, 1.35rem);
+ color: var(--theme-text);
font-size: clamp(3rem, 7.4vw, 8.8rem);
line-height: 0.9;
+ font-weight: 300;
letter-spacing: 0;
+ text-transform: uppercase;
text-wrap: balance;
}
.support-intro {
max-width: var(--text-measure);
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-lg);
-}
-
-.support-hero-panel,
-.support-quick-card,
-.support-info-box,
-.support-faq-card,
-.support-bottom-cta {
- border-radius: var(--radius-lg);
+ line-height: 1.65;
}
.support-hero-panel {
padding: clamp(1.25rem, 3vw, 2rem);
+ border: 1px solid rgba(var(--theme-accent-rgb) / 0.2);
+ background:
+ linear-gradient(135deg, rgba(var(--theme-accent-rgb) / 0.1), transparent 62%),
+ var(--theme-surface-soft);
+}
+
+.support-hero-panel p {
+ margin: 0.75rem 0 0;
+ color: var(--theme-text);
+ font-size: var(--text-base);
+ line-height: 1.62;
+}
+
+.support-panel-meta {
+ display: grid;
+ gap: var(--gap-sm);
+ margin-top: clamp(1.2rem, 2.6vw, 2rem);
+ padding-top: var(--gap-sm);
+ border-top: 1px solid rgba(var(--theme-accent-rgb) / 0.2);
+}
+
+.support-panel-meta p {
+ margin: 0.45rem 0 0;
+ color: var(--theme-text);
+ font-size: var(--text-sm);
+ line-height: 1.55;
}
.support-quick-grid,
.support-info-grid,
.support-faq-grid {
+ display: grid;
gap: var(--gap-sm);
- margin-top: var(--section-y-xs);
}
.support-quick-grid {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ margin-top: var(--section-y-sm);
}
-.support-faq-grid {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
-}
-
-.support-section {
- padding-top: var(--section-y-xs);
+.support-section,
+.support-faq-section {
+ padding-top: var(--section-y-sm);
}
.support-section--split,
-.support-info-grid,
-.support-bottom-cta {
+.support-info-grid {
+ display: grid;
+ grid-template-columns: minmax(16rem, 0.72fr) minmax(0, 1.28fr);
gap: var(--gap-lg);
+ align-items: start;
+}
+
+.support-info-grid {
+ margin-top: var(--section-y-sm);
}
.support-section-heading h2,
.support-bottom-copy h2 {
+ margin: 0.75rem 0 0;
+ color: var(--theme-text);
font-size: clamp(2.15rem, 5.2vw, 6rem);
line-height: 0.94;
+ font-weight: 300;
letter-spacing: 0;
+ text-transform: uppercase;
text-wrap: balance;
}
.support-section-copy {
+ display: flex;
+ flex-direction: column;
gap: var(--gap-sm);
}
@@ -456,12 +134,21 @@
.support-faq-card p,
.support-info-box p,
.support-list li {
+ margin: 0;
+ color: var(--theme-text-muted);
font-size: var(--text-base);
+ line-height: 1.7;
}
.support-quick-card,
.support-faq-card,
.support-info-box {
+ min-height: 100%;
+ padding: clamp(1.1rem, 2.4vw, 1.8rem);
+ border: 1px solid var(--theme-border);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.008)),
+ var(--theme-surface-soft);
transition:
transform var(--duration-med) var(--ease-out),
border-color var(--duration-med) var(--ease-out),
@@ -479,72 +166,170 @@
.support-quick-card h3,
.support-faq-card h3,
.support-info-box h3 {
+ margin: 0.9rem 0 0.75rem;
+ color: var(--theme-text);
font-size: var(--text-xl);
+ line-height: 1.08;
+ font-weight: 400;
letter-spacing: 0;
}
.support-info-box--dark {
+ border-color: rgba(255, 255, 255, 0.16);
background:
radial-gradient(circle at 100% 0%, rgba(var(--theme-accent-rgb) / 0.18), transparent 18rem),
#171717;
}
+.support-info-box--dark .support-label,
+.support-info-box--dark p {
+ color: rgba(255, 255, 255, 0.78);
+}
+
+.support-info-box--dark h3 {
+ color: #fff;
+}
+
+.support-list {
+ display: grid;
+ gap: 0.75rem;
+ margin: 1rem 0 0;
+ padding-left: 1.1rem;
+}
+
+.support-mail-btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 48px;
+ margin-top: 1.15rem;
+ padding: 0 1.1rem;
+ border-radius: 999px;
+ background: var(--theme-accent);
+ color: #fff;
+ font-size: var(--text-sm);
+ text-decoration: none;
+ transition:
+ transform var(--duration-med) var(--ease-out),
+ box-shadow var(--duration-med) var(--ease-out);
+}
+
+.support-mail-btn:hover,
+.support-mail-btn:focus-visible {
+ transform: translateY(-2px);
+ box-shadow: var(--theme-shadow-soft);
+}
+
.support-faq-section {
- margin-top: var(--section-y-xs);
- padding-top: var(--section-y-xs);
+ margin-top: var(--section-y-sm);
+ border-top: 1px solid var(--theme-border);
+}
+
+.support-faq-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ margin-top: clamp(1.6rem, 4vw, 3rem);
}
.support-bottom-cta {
- margin-top: var(--section-y-xs);
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) auto;
+ gap: var(--gap-lg);
+ align-items: end;
+ margin-top: var(--section-y-sm);
padding: clamp(1.5rem, 4vw, 3.5rem);
+ overflow: hidden;
background:
radial-gradient(circle at 92% 0%, rgba(255, 255, 255, 0.22), transparent 20rem),
var(--theme-accent);
}
-.support-btn,
-.support-mail-btn {
+.support-bottom-copy .support-label,
+.support-bottom-copy h2,
+.support-bottom-copy p {
+ color: #fff;
+}
+
+.support-bottom-copy p {
+ max-width: 48rem;
+ margin-top: 1rem;
+}
+
+.support-bottom-actions {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--gap-xs);
+ justify-content: flex-end;
+}
+
+.support-btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
min-height: 48px;
+ padding: 0 1.1rem;
+ border: 1px solid transparent;
+ border-radius: 999px;
+ color: inherit;
+ font-size: var(--text-sm);
+ text-decoration: none;
+ transition:
+ transform var(--duration-med) var(--ease-out),
+ box-shadow var(--duration-med) var(--ease-out),
+ background-color var(--duration-med) var(--ease-out);
}
.support-btn:hover,
-.support-btn:focus-visible,
-.support-mail-btn:hover,
-.support-mail-btn:focus-visible {
+.support-btn:focus-visible {
+ transform: translateY(-2px);
box-shadow: var(--theme-shadow-soft);
}
-@media (max-width: 1100px) {
+.support-btn--primary {
+ background: #fff;
+ color: var(--theme-accent);
+}
+
+.support-btn--secondary {
+ border-color: rgba(255, 255, 255, 0.22);
+ background: rgba(255, 255, 255, 0.14);
+ color: #fff;
+ backdrop-filter: blur(8px);
+}
+
+@media (max-width: 1180px) {
.support-hero,
.support-section--split,
.support-info-grid,
.support-bottom-cta {
grid-template-columns: 1fr;
}
+
+ .support-quick-grid,
+ .support-faq-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
}
-@media (max-width: 700px) {
- .support-page {
- padding-inline: var(--page-x);
- }
-
- .support-shell {
- width: var(--container-wide);
- padding-inline: clamp(0.9rem, 4vw, 1.1rem);
+@media (max-width: 760px) {
+ .support-hero {
+ padding-top: clamp(1.4rem, 5vw, 2rem);
}
.support-hero-copy h1 {
font-size: clamp(2.55rem, 13vw, 4.4rem);
}
+ .support-quick-grid,
+ .support-faq-grid {
+ grid-template-columns: 1fr;
+ }
+
.support-bottom-actions {
display: grid;
+ justify-content: stretch;
}
.support-btn {
width: 100%;
}
}
-
-/* --- Design System Refinement End --- */
-
diff --git a/parfum-shop/src/pages/SupportPage.jsx b/parfum-shop/src/pages/SupportPage.jsx
index fae656c..090b805 100644
--- a/parfum-shop/src/pages/SupportPage.jsx
+++ b/parfum-shop/src/pages/SupportPage.jsx
@@ -7,7 +7,7 @@ function SupportPage() {