@bytebrand/fe-ui-core-autobahn 1.0.154 → 1.0.156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/locales/de/autobahn.json +2 -2
- package/locales/en/autobahn.json +1 -1
- package/package.json +1 -1
- package/theme/md3.css +749 -175
package/locales/de/autobahn.json
CHANGED
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"detailsShow": "Details anzeigen",
|
|
89
89
|
"paymentLabel": "Zahlung",
|
|
90
90
|
"paymentValue": "Überweisung",
|
|
91
|
-
"warrantyLabel": "
|
|
91
|
+
"warrantyLabel": "Zusatzgarantie (Multipart)",
|
|
92
92
|
"warrantyValue": "1 Jahr inklusive",
|
|
93
93
|
"deliveryLabel": "Lieferung",
|
|
94
94
|
"deliveryValue": "ca. 7–14 Tage · oder Abholung",
|
|
@@ -701,7 +701,7 @@
|
|
|
701
701
|
},
|
|
702
702
|
"modal": {
|
|
703
703
|
"leasingDetails": "Leasingdetails",
|
|
704
|
-
"financingDetails": "
|
|
704
|
+
"financingDetails": "Finanzierungsdetails",
|
|
705
705
|
"close": "Schließen",
|
|
706
706
|
"vehiclePrice": "Fahrzeugpreis ggf. inkl. MwSt.",
|
|
707
707
|
"leasingAmount": "Leasingbetrag",
|
package/locales/en/autobahn.json
CHANGED
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"detailsShow": "Show details",
|
|
89
89
|
"paymentLabel": "Payment",
|
|
90
90
|
"paymentValue": "Bank transfer",
|
|
91
|
-
"warrantyLabel": "
|
|
91
|
+
"warrantyLabel": "Additional warranty (Multipart)",
|
|
92
92
|
"warrantyValue": "1 year included",
|
|
93
93
|
"deliveryLabel": "Delivery",
|
|
94
94
|
"deliveryValue": "approx. 7–14 days · or collection",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytebrand/fe-ui-core-autobahn",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.156",
|
|
4
4
|
"description": "auto.de md3 (Autobahn) design system — UI primitives, cards, chrome, VDP modules, theme CSS and locales. Ships raw TypeScript source (like fe-ui-core before it); each consumer's bundler compiles it.",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"license": "UNLICENSED",
|
package/theme/md3.css
CHANGED
|
@@ -1657,6 +1657,7 @@ line-height: 31px;
|
|
|
1657
1657
|
font-size: 11px;
|
|
1658
1658
|
line-height: 150%;
|
|
1659
1659
|
color: #5B6B7F;
|
|
1660
|
+
text-align: justify;
|
|
1660
1661
|
}
|
|
1661
1662
|
.md3 .co-footer-inner p b {
|
|
1662
1663
|
font-weight: 700;
|
|
@@ -1821,6 +1822,14 @@ line-height: 31px;
|
|
|
1821
1822
|
gap: 8px;
|
|
1822
1823
|
flex-wrap: wrap;
|
|
1823
1824
|
}
|
|
1825
|
+
/* Figma 64860-62117 (Kaufen only): ground-truth design-context pull — "row" is gap-[14px]
|
|
1826
|
+
items-start, not the shared gap-8/align-center financing/leasing's own row keeps (base rule
|
|
1827
|
+
above, untouched) — the taller 2-row old-price stack (badge above struck price, see
|
|
1828
|
+
.cf-rate-old--buy below) needs top alignment against the big price instead of centering. */
|
|
1829
|
+
.md3 .cf-rate-row.cf-rate-row--buy {
|
|
1830
|
+
gap: 14px;
|
|
1831
|
+
align-items: flex-start;
|
|
1832
|
+
}
|
|
1824
1833
|
.md3 .cf-rate-amount {
|
|
1825
1834
|
font-family: 'Arial';
|
|
1826
1835
|
font-style: normal;
|
|
@@ -1829,6 +1838,16 @@ line-height: 31px;
|
|
|
1829
1838
|
line-height: 58px;
|
|
1830
1839
|
color: #005CFF;
|
|
1831
1840
|
}
|
|
1841
|
+
/* Figma 64860-62117 (Kaufen only): exact text spec pasted by user — Arimo/700/36px/100%
|
|
1842
|
+
line-height/-1.6px letter-spacing — smaller + tighter than the shared 54px Arial price
|
|
1843
|
+
financing/leasing keep (base rule above, untouched). 2-class selector scopes to
|
|
1844
|
+
.cf-rate-amount--buy only; the ≤600px rule further down already matches this 36px size. */
|
|
1845
|
+
.md3 .cf-rate-amount.cf-rate-amount--buy {
|
|
1846
|
+
font-family: 'Arimo';
|
|
1847
|
+
font-size: 36px;
|
|
1848
|
+
line-height: 100%;
|
|
1849
|
+
letter-spacing: -1.6px;
|
|
1850
|
+
}
|
|
1832
1851
|
.md3 .cf-rate-side {
|
|
1833
1852
|
display: flex;
|
|
1834
1853
|
flex-direction: column;
|
|
@@ -1855,6 +1874,51 @@ line-height: 31px;
|
|
|
1855
1874
|
color: #0E2238;
|
|
1856
1875
|
white-space: nowrap;
|
|
1857
1876
|
}
|
|
1877
|
+
/* Figma 64860-62117 (Kaufen only): ground-truth design-context pull ("uvp" node) — flex column
|
|
1878
|
+
(badge row stacked above the struck price, gap 1px), Arimo/700/15px/normal line-height/0
|
|
1879
|
+
letter-spacing/native line-through, color var(--semantic-error, #ba1a1a) — replaces the shared
|
|
1880
|
+
Arial/400/20px dark .cf-rate-old treatment financing/leasing's own isStrike price keeps
|
|
1881
|
+
untouched below. 2-class selector scopes this to .cf-rate-old--buy only. */
|
|
1882
|
+
.md3 .cf-rate-old.cf-rate-old--buy {
|
|
1883
|
+
display: flex;
|
|
1884
|
+
flex-direction: column;
|
|
1885
|
+
align-items: flex-start;
|
|
1886
|
+
gap: 1px;
|
|
1887
|
+
font-family: 'Arimo';
|
|
1888
|
+
font-weight: 700;
|
|
1889
|
+
font-size: 15px;
|
|
1890
|
+
line-height: normal;
|
|
1891
|
+
letter-spacing: 0;
|
|
1892
|
+
color: #BA1A1A;
|
|
1893
|
+
}
|
|
1894
|
+
/* line-through lives on .cf-rate-old-text (the price span) only, not the flex container above —
|
|
1895
|
+
a descendant's own text-decoration:none is NOT reliable for "undoing" an ancestor's decoration
|
|
1896
|
+
line (well-known CSS quirk: the line is drawn across the ancestor's whole inline content
|
|
1897
|
+
regardless), which was still drawing the strike through the badge's "2" one level up. */
|
|
1898
|
+
.md3 .cf-panel .cf-rate-old--buy .cf-rate-old-text {
|
|
1899
|
+
text-decoration: line-through;
|
|
1900
|
+
}
|
|
1901
|
+
/* replaces the custom red diagonal bar for Kaufen only — financing/leasing's own isStrike price
|
|
1902
|
+
keeps the shared ::after bar (base rule below, untouched). */
|
|
1903
|
+
.md3 .cf-rate-old.cf-rate-old--buy::after {
|
|
1904
|
+
display: none;
|
|
1905
|
+
}
|
|
1906
|
+
/* Same Figma frame ("footnote" node): a plain 13x13 ring in brand/primary, Arimo Regular 8px
|
|
1907
|
+
text-primary (#0e2238) — sits in normal flow as its own row above the struck price (the
|
|
1908
|
+
flex-column .cf-rate-old--buy above), not absolutely overlaid — scoped to .cf-rate-old--buy,
|
|
1909
|
+
financing/leasing's isStrike badge keeps the shared corner-overlay .pp-eyebrow-badge rule
|
|
1910
|
+
(top-right, bigger ring) untouched below. */
|
|
1911
|
+
.md3 .cf-panel .cf-rate-old--buy .pp-eyebrow-badge {
|
|
1912
|
+
position: static;
|
|
1913
|
+
width: 13px;
|
|
1914
|
+
height: 13px;
|
|
1915
|
+
font-family: 'Arimo';
|
|
1916
|
+
font-weight: 400;
|
|
1917
|
+
font-size: 8px;
|
|
1918
|
+
line-height: normal;
|
|
1919
|
+
border-width: 1px;
|
|
1920
|
+
color: #0E2238;
|
|
1921
|
+
}
|
|
1858
1922
|
/* must stay AFTER the base .cf-rate-amount/.cf-rate-old rules above — equal specificity means
|
|
1859
1923
|
source order decides the tie (same rule as the .co-form media query elsewhere in this file). */
|
|
1860
1924
|
@media (max-width: 600px) {
|
|
@@ -1967,6 +2031,20 @@ line-height: 31px;
|
|
|
1967
2031
|
gap: 6px;
|
|
1968
2032
|
}
|
|
1969
2033
|
}
|
|
2034
|
+
/* Figma 64860-62117 (Kaufen only): ground-truth "hero" node is a plain gap-[10px] row (price
|
|
2035
|
+
block + rating column packed together on the left), not the shared space-between push-to-
|
|
2036
|
+
far-edge financing/leasing's own hero row keeps (base rule above, untouched) — the 10px gap
|
|
2037
|
+
itself lives on .fin-eval-col--buy's margin-left just below, so this only cancels the
|
|
2038
|
+
space-between/gap-16 that would otherwise ADD to it. 2-class selector scopes to
|
|
2039
|
+
.cf-rate-top--buy; applies at every width (.fin-eval-col--buy's margin-left is the only
|
|
2040
|
+
intended gap, mobile included). */
|
|
2041
|
+
.md3 .cf-rate-top.cf-rate-top--buy {
|
|
2042
|
+
justify-content: flex-start;
|
|
2043
|
+
gap: 0;
|
|
2044
|
+
}
|
|
2045
|
+
.md3 .cf-panel .fin-eval-col.fin-eval-col--buy {
|
|
2046
|
+
margin-left: 10px;
|
|
2047
|
+
}
|
|
1970
2048
|
.md3 .cf-rate-left {
|
|
1971
2049
|
display: flex;
|
|
1972
2050
|
flex-direction: column;
|
|
@@ -1981,13 +2059,15 @@ line-height: 31px;
|
|
|
1981
2059
|
line-height: 15px;
|
|
1982
2060
|
color: #0E2238;
|
|
1983
2061
|
}
|
|
1984
|
-
/* Kaufen's compact "Überweisung ·
|
|
1985
|
-
desktop
|
|
1986
|
-
(.cf-buy-info)
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
2062
|
+
/* Kaufen's compact "Überweisung · sofort verfügbar" recap — Figma 64860-62117 renders it
|
|
2063
|
+
unconditionally (desktop AND mobile) right under the price, alongside the separate Zahlung/
|
|
2064
|
+
Zusatzgarantie/Verfügbar rows further down (.cf-buy-info) — previously hidden on desktop
|
|
2065
|
+
(show-mobile) on the wrong assumption that it only duplicated those rows; removed from JSX.
|
|
2066
|
+
5px (ground-truth "Rate" column gap) replaces the shared 10px .co-aside-cond gap financing/
|
|
2067
|
+
leasing's own cond line keeps (base rule above, untouched) — was mobile-only before; Figma's
|
|
2068
|
+
same frame carries this gap at any width, so it's no longer scoped to the ≤600px query. */
|
|
2069
|
+
.md3 .cf-panel .co-aside-cond.co-aside-cond--buy {
|
|
2070
|
+
margin-top: 5px;
|
|
1991
2071
|
}
|
|
1992
2072
|
/* .fin-eval-col's shared base rule is `display: contents` (a CSS-grid trick that relies on a
|
|
1993
2073
|
`.fin-price-grid` grid ancestor with named areas — cf-panel isn't a grid), so it needs the
|
|
@@ -1998,6 +2078,10 @@ line-height: 31px;
|
|
|
1998
2078
|
gap: 8px;
|
|
1999
2079
|
flex: none;
|
|
2000
2080
|
align-items: stretch;
|
|
2081
|
+
/* Figma 64860-62117: fixed 106px column so the pill (below, display:flex + align-items:
|
|
2082
|
+
stretch cascading down) and the bar (already width:100%) both span the same width instead
|
|
2083
|
+
of shrink-wrapping to whichever tier label happens to be widest. */
|
|
2084
|
+
width: 106px;
|
|
2001
2085
|
}
|
|
2002
2086
|
@media (max-width: 600px) {
|
|
2003
2087
|
.md3 .cf-panel .fin-eval-col {
|
|
@@ -2200,6 +2284,31 @@ line-height: 31px;
|
|
|
2200
2284
|
width: 40px;
|
|
2201
2285
|
height: 40px;
|
|
2202
2286
|
}
|
|
2287
|
+
/* Rundum-Sorglos-Paket title "i" popover — same reasoning/pattern as the .cf-toggle override
|
|
2288
|
+
above (inherited rule is tuned for the small UVP-Rate footnote badge, top:16px/left:0/
|
|
2289
|
+
width:260px): left:0 was relative to the title's own 20px padding box, bleeding the popover
|
|
2290
|
+
past the card's left border. left:20px nudges it to align with the title's own content edge
|
|
2291
|
+
instead (close to the original 260px width — a full left:0/right:0/width:auto span was tried
|
|
2292
|
+
and was too wide/plain). right:20px + max-width is the mobile safety net: on a narrow card it
|
|
2293
|
+
shrinks instead of overflowing; on a normal-width card max-width wins and the box just sits
|
|
2294
|
+
280px wide, anchored at left:20px (CSS over-constrained resolution recalculates the unused
|
|
2295
|
+
"right" rather than stretching). 3 class-selectors deep so it always wins over the 2-deep base
|
|
2296
|
+
rule regardless of source order. */
|
|
2297
|
+
.md3 .cf-panel .co-card-title .pp-uvp-tooltip {
|
|
2298
|
+
top: 28px;
|
|
2299
|
+
left: 40px;
|
|
2300
|
+
right: 20px;
|
|
2301
|
+
width: auto;
|
|
2302
|
+
max-width: 280px;
|
|
2303
|
+
}
|
|
2304
|
+
/* same box, narrower safety margin so the 280px cap still comfortably fits a phone-width card
|
|
2305
|
+
instead of being cut flush against the right edge. */
|
|
2306
|
+
@media (max-width: 600px) {
|
|
2307
|
+
.md3 .cf-panel .co-card-title .pp-uvp-tooltip {
|
|
2308
|
+
left: 20px;
|
|
2309
|
+
right: 12px;
|
|
2310
|
+
}
|
|
2311
|
+
}
|
|
2203
2312
|
.md3 .cf-toggle .md-title-sm {
|
|
2204
2313
|
display: inline-flex;
|
|
2205
2314
|
align-items: center;
|
|
@@ -2211,6 +2320,14 @@ line-height: 31px;
|
|
|
2211
2320
|
line-height: 15px;
|
|
2212
2321
|
color: #1A1B22;
|
|
2213
2322
|
}
|
|
2323
|
+
/* Rundum-Sorglos-Paket's toggle label should read the same size as the Zahlung/Zusatzgarantie/
|
|
2324
|
+
Verfügbarkeit rows above it (.cf-buy-info .calcrow-label, 15px/17px) — .cf-panel scopes this to
|
|
2325
|
+
CheckoutFinancePanelNext only, leaving AdditionalServicesNext's unrelated .co-rundum-footer
|
|
2326
|
+
.cf-toggle (step 4) at its own 13px untouched. */
|
|
2327
|
+
.md3 .cf-panel .cf-toggle .md-title-sm {
|
|
2328
|
+
font-size: 15px;
|
|
2329
|
+
line-height: 17px;
|
|
2330
|
+
}
|
|
2214
2331
|
.md3 .cf-toggle .md-title-sm svg {
|
|
2215
2332
|
cursor: pointer;
|
|
2216
2333
|
}
|
|
@@ -2404,7 +2521,7 @@ line-height: 31px;
|
|
|
2404
2521
|
.md3 .co-form {
|
|
2405
2522
|
display: flex;
|
|
2406
2523
|
flex-direction: column;
|
|
2407
|
-
gap:
|
|
2524
|
+
gap: 20px;
|
|
2408
2525
|
padding-bottom: 20px;
|
|
2409
2526
|
border-bottom: 1px solid #C5C6D2;
|
|
2410
2527
|
}
|
|
@@ -2422,10 +2539,19 @@ line-height: 31px;
|
|
|
2422
2539
|
.md3 .co-form.co-form--payment-details {
|
|
2423
2540
|
border-bottom: 0;
|
|
2424
2541
|
}
|
|
2425
|
-
/* order-overview step only — same reasoning, see OrderOverviewNext.tsx's "co-form oo-page".
|
|
2542
|
+
/* order-overview step only — same reasoning, see OrderOverviewNext.tsx's "co-form oo-page".
|
|
2543
|
+
gap also overridden to the shared ≤600px value (14px) at ALL widths, desktop included, per
|
|
2544
|
+
explicit request — the base .co-form's 20px (every other checkout step, except
|
|
2545
|
+
additional-services below) is untouched. */
|
|
2426
2546
|
.md3 .co-form.oo-page {
|
|
2547
|
+
gap: 14px;
|
|
2427
2548
|
border-bottom: 0;
|
|
2428
2549
|
}
|
|
2550
|
+
/* additional-services step only — see AdditionalServicesNext.tsx's "co-form co-form--additional-
|
|
2551
|
+
services". Same reasoning/value as .oo-page above, desktop included, per explicit request. */
|
|
2552
|
+
.md3 .co-form.co-form--additional-services {
|
|
2553
|
+
gap: 14px;
|
|
2554
|
+
}
|
|
2429
2555
|
.md3 .co-step-title {
|
|
2430
2556
|
font: 700 22px var(--md-font-display, var(--md-font));
|
|
2431
2557
|
margin: 0;
|
|
@@ -2505,6 +2631,12 @@ line-height: 31px;
|
|
|
2505
2631
|
padding: 14px 20px;
|
|
2506
2632
|
border-bottom: 1px solid #C5C6D2;
|
|
2507
2633
|
}
|
|
2634
|
+
/* Kaufen: .co-rundum-footer (the "in die Rate einrechnen" toggle) isn't rendered at all, so
|
|
2635
|
+
.co-rundum-box is the card's last element — the border-bottom above would just be a dangling
|
|
2636
|
+
line with nothing below it. */
|
|
2637
|
+
.md3 .cf-panel .co-rundum-box.co-rundum-box--buy {
|
|
2638
|
+
border-bottom: 0;
|
|
2639
|
+
}
|
|
2508
2640
|
.md3 .cf-panel .co-rundum-footer {
|
|
2509
2641
|
padding: 14px 20px;
|
|
2510
2642
|
}
|
|
@@ -4555,6 +4687,23 @@ line-height: 31px;
|
|
|
4555
4687
|
justify-content: space-between;
|
|
4556
4688
|
gap: 10px;
|
|
4557
4689
|
}
|
|
4690
|
+
/* "2. Rechnungsadresse" / "3. Lieferadresse" (.oo-addr-grid's two cards only — the shared 10px
|
|
4691
|
+
above still fits "Lieferung & Services"/Zahldetails fine, which have a whole row to themselves)
|
|
4692
|
+
— the base gap left too little room for "Rechnungsadresse" next to "Ändern" in the half-width
|
|
4693
|
+
grid column, wrapping the title to 2 lines. align-items: center (inherited from the base rule
|
|
4694
|
+
above) only centers against the FULL flex-row height, so while wrapped it centered "Ändern"
|
|
4695
|
+
against both title lines instead of matching the first one. */
|
|
4696
|
+
.md3 .oo-addr-grid .oo-card-title--action {
|
|
4697
|
+
gap: 4px;
|
|
4698
|
+
}
|
|
4699
|
+
/* The button has no explicit line-height, so the UA default ("normal", ~1.15-1.2x its 13px font)
|
|
4700
|
+
gives it a taller box than its own glyphs — align-items: center then centers that whole taller
|
|
4701
|
+
box against the title's 23px line-height box, landing "Ändern"'s visible text a bit low. line-
|
|
4702
|
+
height: 1 collapses the button's box to its font-size itself, so both sides center on their
|
|
4703
|
+
actual text instead of on mismatched leading. */
|
|
4704
|
+
.md3 .oo-addr-grid .oo-card-action {
|
|
4705
|
+
line-height: 1;
|
|
4706
|
+
}
|
|
4558
4707
|
.md3 .oo-card-action {
|
|
4559
4708
|
font-family: Arial;
|
|
4560
4709
|
font-weight: 700;
|
|
@@ -4667,79 +4816,279 @@ line-height: 31px;
|
|
|
4667
4816
|
border-left: 0 !important;
|
|
4668
4817
|
}
|
|
4669
4818
|
}
|
|
4670
|
-
/* "
|
|
4671
|
-
|
|
4672
|
-
|
|
4673
|
-
.
|
|
4674
|
-
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
4680
|
-
|
|
4681
|
-
|
|
4819
|
+
/* "2 Jahre Garantie" "i" popover (OrderOverviewNext.tsx) — same AddServicesTooltipBody/
|
|
4820
|
+
pp-uvp-tooltip markup as step 3's title info trigger, but there's no .cf-panel ancestor here to
|
|
4821
|
+
inherit the shared "grey card" look from, so the full style (not just a position override) is
|
|
4822
|
+
defined fresh under .oo-ls-title-row. Anchored right:0 (the garantie cell is the row's last/
|
|
4823
|
+
rightmost of 3) so the box opens leftward instead of overflowing past the card's right edge;
|
|
4824
|
+
max-width keeps it inside a narrow phone screen once .oo-ls-row stacks to full width below. */
|
|
4825
|
+
.md3 .oo-ls-title-row .pp-uvp-tooltip {
|
|
4826
|
+
position: absolute;
|
|
4827
|
+
top: 24px;
|
|
4828
|
+
left: auto;
|
|
4829
|
+
right: 0;
|
|
4830
|
+
z-index: 20;
|
|
4831
|
+
width: 300px;
|
|
4832
|
+
max-width: calc(100vw - 48px);
|
|
4833
|
+
padding: 10px 12px;
|
|
4834
|
+
border-radius: 15px;
|
|
4835
|
+
background: #c5c6d2;
|
|
4836
|
+
box-shadow: var(--md-e2, 0 4px 12px rgba(0, 0, 0, 0.15));
|
|
4837
|
+
white-space: normal;
|
|
4838
|
+
cursor: default;
|
|
4839
|
+
}
|
|
4840
|
+
.md3 .oo-ls-title-row .pp-uvp-tooltip-close {
|
|
4841
|
+
position: absolute;
|
|
4842
|
+
top: -14px;
|
|
4843
|
+
right: -14px;
|
|
4844
|
+
display: flex;
|
|
4845
|
+
align-items: center;
|
|
4846
|
+
justify-content: center;
|
|
4847
|
+
width: 26px;
|
|
4848
|
+
height: 26px;
|
|
4849
|
+
border-radius: 50%;
|
|
4850
|
+
background: rgba(11, 19, 32, 0.55);
|
|
4851
|
+
border: 1.5px solid rgba(255, 255, 255, 0.25);
|
|
4852
|
+
padding: 0;
|
|
4853
|
+
cursor: pointer;
|
|
4854
|
+
}
|
|
4855
|
+
.md3 .oo-ls-title-row .pp-uvp-tooltip-body {
|
|
4856
|
+
font-family: 'Arimo';
|
|
4857
|
+
font-weight: 400;
|
|
4858
|
+
font-size: 11px;
|
|
4859
|
+
line-height: 13px;
|
|
4860
|
+
color: #0e2238;
|
|
4861
|
+
}
|
|
4862
|
+
/* "5. Monatlich zu zahlen" / "5. Gesamtpreis" (Figma: Finanzierung 64763:107263, Leasing
|
|
4863
|
+
64794:110315, Kaufen 64794:109673) — own "oo-pay-*" namespace, NOT the shared
|
|
4864
|
+
.cf-rate-row/.fin-eval-* classes CheckoutFinancePanelNext.tsx (step 3) uses: that component
|
|
4865
|
+
still renders the OLDER rate-hero pattern, and this card's Figma ("auto.de / Price Block") is
|
|
4866
|
+
a newer, differently-proportioned design (54px/38px amounts, different UVP layout) — reusing
|
|
4867
|
+
the old shared classes here would either look wrong or risk step 3 regressions if tweaked to
|
|
4868
|
+
fit. EvalBar is still the shared component (only the pill/bar's own wrapper sizing is new). */
|
|
4869
|
+
.md3 .oo-pay-rate {
|
|
4870
|
+
display: flex;
|
|
4871
|
+
flex-direction: column;
|
|
4872
|
+
gap: 6px;
|
|
4873
|
+
width: 100%;
|
|
4874
|
+
}
|
|
4875
|
+
/* Mobile-only condensed line under the price block (Figma: 63571:28425 financing / 64794:110041
|
|
4876
|
+
leasing) — see .show-mobile below for the display toggle. */
|
|
4877
|
+
.md3 .oo-pay-mobile-summary {
|
|
4682
4878
|
margin: 0;
|
|
4879
|
+
font-family: Arimo, Arial, sans-serif;
|
|
4880
|
+
font-size: 13px;
|
|
4881
|
+
color: #0E2238;
|
|
4882
|
+
width: 100%;
|
|
4683
4883
|
}
|
|
4684
|
-
.md3 .oo-
|
|
4884
|
+
.md3 .oo-pay-price-row {
|
|
4885
|
+
position: relative;
|
|
4685
4886
|
display: flex;
|
|
4686
4887
|
align-items: center;
|
|
4687
4888
|
justify-content: space-between;
|
|
4688
4889
|
gap: 16px;
|
|
4689
4890
|
width: 100%;
|
|
4690
4891
|
}
|
|
4691
|
-
/*
|
|
4692
|
-
|
|
4693
|
-
|
|
4892
|
+
/* UVP footnote popover (both the Buy "②" and the Financing/Leasing "UVP-Rate ③" branches above —
|
|
4893
|
+
oo-pay-buy-uvp-row and oo-pay-secondary respectively, both descendants of this row) — same
|
|
4894
|
+
"grey card" pp-uvp-tooltip look step 3's .cf-panel scope and order-overview's own
|
|
4895
|
+
.oo-ls-title-row scope already give it, but nothing scoped it under this card's own oo-pay-*
|
|
4896
|
+
namespace, so it rendered as plain unstyled text. position:relative lives on this shared
|
|
4897
|
+
ancestor (not each branch's own element) since one rule here covers both. */
|
|
4898
|
+
.md3 .oo-pay-price-row .pp-uvp-tooltip {
|
|
4899
|
+
position: absolute;
|
|
4900
|
+
top: 28px;
|
|
4901
|
+
left: 0;
|
|
4902
|
+
z-index: 20;
|
|
4903
|
+
width: 300px;
|
|
4904
|
+
max-width: calc(100vw - 48px);
|
|
4905
|
+
padding: 10px 12px;
|
|
4906
|
+
border-radius: 15px;
|
|
4907
|
+
background: #c5c6d2;
|
|
4908
|
+
box-shadow: var(--md-e2, 0 4px 12px rgba(0, 0, 0, 0.15));
|
|
4909
|
+
white-space: normal;
|
|
4910
|
+
cursor: default;
|
|
4911
|
+
}
|
|
4912
|
+
.md3 .oo-pay-price-row .pp-uvp-tooltip-close {
|
|
4913
|
+
position: absolute;
|
|
4914
|
+
top: -14px;
|
|
4915
|
+
right: -14px;
|
|
4916
|
+
display: flex;
|
|
4917
|
+
align-items: center;
|
|
4918
|
+
justify-content: center;
|
|
4919
|
+
width: 26px;
|
|
4920
|
+
height: 26px;
|
|
4921
|
+
border-radius: 50%;
|
|
4922
|
+
background: rgba(11, 19, 32, 0.55);
|
|
4923
|
+
border: 1.5px solid rgba(255, 255, 255, 0.25);
|
|
4924
|
+
padding: 0;
|
|
4925
|
+
cursor: pointer;
|
|
4926
|
+
}
|
|
4927
|
+
.md3 .oo-pay-price-row .pp-uvp-tooltip-body {
|
|
4928
|
+
font-family: 'Arimo';
|
|
4929
|
+
font-weight: 400;
|
|
4930
|
+
font-size: 11px;
|
|
4931
|
+
line-height: 13px;
|
|
4932
|
+
color: #0e2238;
|
|
4933
|
+
}
|
|
4934
|
+
.md3 .oo-pay-left {
|
|
4935
|
+
display: flex;
|
|
4936
|
+
align-items: center;
|
|
4937
|
+
gap: 8px;
|
|
4938
|
+
flex: 1 0 0;
|
|
4939
|
+
min-width: 0;
|
|
4940
|
+
}
|
|
4941
|
+
.md3 .oo-pay-amount {
|
|
4942
|
+
font-family: Arimo, Arial, sans-serif;
|
|
4943
|
+
font-weight: 700;
|
|
4944
|
+
font-size: 54px;
|
|
4945
|
+
line-height: 58px;
|
|
4946
|
+
color: #005CFF;
|
|
4947
|
+
white-space: nowrap;
|
|
4948
|
+
}
|
|
4949
|
+
.md3 .oo-pay-secondary {
|
|
4694
4950
|
display: flex;
|
|
4695
4951
|
flex-direction: column;
|
|
4696
|
-
align-items: flex-end;
|
|
4697
4952
|
gap: 2px;
|
|
4953
|
+
align-items: flex-start;
|
|
4698
4954
|
}
|
|
4699
|
-
.md3 .oo-
|
|
4955
|
+
.md3 .oo-pay-uvp-row {
|
|
4700
4956
|
display: flex;
|
|
4701
4957
|
align-items: center;
|
|
4702
|
-
gap:
|
|
4958
|
+
gap: 3px;
|
|
4703
4959
|
}
|
|
4704
|
-
.md3 .oo-
|
|
4705
|
-
font-family: Arial;
|
|
4960
|
+
.md3 .oo-pay-uvp-label {
|
|
4961
|
+
font-family: Arimo, Arial, sans-serif;
|
|
4962
|
+
font-size: 11px;
|
|
4963
|
+
color: #0E2238;
|
|
4964
|
+
white-space: nowrap;
|
|
4965
|
+
}
|
|
4966
|
+
/* Buy's own "UVP" label (17.14px, no footnote circle immediately after it — the circle sits
|
|
4967
|
+
after the struck amount instead) — kept separate from .oo-pay-uvp-label (11px, financing/
|
|
4968
|
+
leasing) since the two aren't the same text node in Figma. */
|
|
4969
|
+
.md3 .oo-pay-buy-uvp-label {
|
|
4970
|
+
font-family: Arimo, Arial, sans-serif;
|
|
4706
4971
|
font-size: 17px;
|
|
4707
|
-
line-height: normal;
|
|
4708
|
-
/* Figma's "text-primary" token (#0e2238) — NOT var(--md-on-surface)/"text/strong" (#1a1b22),
|
|
4709
|
-
same distinction as .oo-mzz-cond below; matches the literal #0E2238 already hardcoded on
|
|
4710
|
-
.cf-rate-old/.co-card-title/.cf-panel .co-aside-cond elsewhere in this file. */
|
|
4711
4972
|
color: #0E2238;
|
|
4973
|
+
white-space: nowrap;
|
|
4712
4974
|
}
|
|
4713
|
-
.md3 .oo-
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4975
|
+
.md3 .oo-pay-footnote {
|
|
4976
|
+
display: flex;
|
|
4977
|
+
align-items: center;
|
|
4978
|
+
justify-content: center;
|
|
4979
|
+
flex: none;
|
|
4980
|
+
width: 13px;
|
|
4981
|
+
height: 13px;
|
|
4982
|
+
border-radius: 999px;
|
|
4983
|
+
border: 1px solid #005CFF;
|
|
4984
|
+
background: #FFFFFF;
|
|
4985
|
+
font-family: Arimo, Arial, sans-serif;
|
|
4986
|
+
font-size: 7px;
|
|
4718
4987
|
color: #005CFF;
|
|
4719
4988
|
}
|
|
4720
|
-
|
|
4721
|
-
|
|
4989
|
+
/* Buy's "①" next to the big price — plain text, no circle (Figma: no border/background on that
|
|
4990
|
+
node, unlike .oo-pay-footnote's "②"/"③"). */
|
|
4991
|
+
.md3 .oo-pay-footnote-plain {
|
|
4992
|
+
font-family: Arimo, Arial, sans-serif;
|
|
4993
|
+
font-size: 9px;
|
|
4994
|
+
color: #005CFF;
|
|
4722
4995
|
}
|
|
4723
|
-
/*
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4996
|
+
/* Struck UVP amount — same mechanism as the shared .cf-rate-old::after (red bar, -10deg), kept
|
|
4997
|
+
as its own rule since .cf-rate-old itself is step 3's shared class (see file header above). */
|
|
4998
|
+
.md3 .oo-pay-uvp-amount {
|
|
4999
|
+
position: relative;
|
|
5000
|
+
display: inline-block;
|
|
5001
|
+
font-family: Arimo, Arial, sans-serif;
|
|
5002
|
+
font-size: 20px;
|
|
5003
|
+
color: #0E2238;
|
|
5004
|
+
white-space: nowrap;
|
|
5005
|
+
}
|
|
5006
|
+
.md3 .oo-pay-uvp-amount::after {
|
|
5007
|
+
content: '';
|
|
5008
|
+
position: absolute;
|
|
5009
|
+
left: -2px;
|
|
5010
|
+
right: -2px;
|
|
5011
|
+
top: 50%;
|
|
5012
|
+
height: 2px;
|
|
5013
|
+
background: #D92D20;
|
|
5014
|
+
transform: rotate(-10deg);
|
|
5015
|
+
transform-origin: center;
|
|
5016
|
+
}
|
|
5017
|
+
.md3 .oo-pay-unit {
|
|
5018
|
+
font-family: Arimo, Arial, sans-serif;
|
|
5019
|
+
font-weight: 700;
|
|
5020
|
+
font-size: 18px;
|
|
5021
|
+
color: #5B6B7F;
|
|
4730
5022
|
}
|
|
4731
|
-
.md3 .oo-
|
|
5023
|
+
.md3 .oo-pay-rating-col {
|
|
5024
|
+
display: flex;
|
|
5025
|
+
flex-direction: column;
|
|
5026
|
+
align-items: center;
|
|
5027
|
+
gap: 8px;
|
|
5028
|
+
flex: none;
|
|
4732
5029
|
width: 120px;
|
|
4733
5030
|
}
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
5031
|
+
/* Buy's price block uses its own 108px rating column (Figma: 64794:109673 desktop and 64833:89153
|
|
5032
|
+
mobile both specify 108px, not 120px) — same value at both breakpoints, unlike Financing/
|
|
5033
|
+
Leasing's column which only changes WIDTH BEHAVIOUR (fixed → flexible) on mobile, not this
|
|
5034
|
+
number, so this rule isn't itself inside a media query. */
|
|
5035
|
+
.md3 .oo-pay-rating-col--buy {
|
|
5036
|
+
width: 108px;
|
|
5037
|
+
}
|
|
5038
|
+
.md3 .oo-pay-rating-badge {
|
|
5039
|
+
display: flex;
|
|
5040
|
+
align-items: center;
|
|
5041
|
+
justify-content: center;
|
|
5042
|
+
width: 100%;
|
|
5043
|
+
padding: 5px 10px;
|
|
5044
|
+
border-radius: 16px;
|
|
5045
|
+
box-sizing: border-box;
|
|
5046
|
+
font-family: Arimo, Arial, sans-serif;
|
|
5047
|
+
font-weight: 700;
|
|
5048
|
+
font-size: 12px;
|
|
5049
|
+
line-height: 18px;
|
|
5050
|
+
white-space: nowrap;
|
|
5051
|
+
}
|
|
5052
|
+
.md3 .oo-pay-rating-bar {
|
|
5053
|
+
width: 100%;
|
|
5054
|
+
}
|
|
5055
|
+
/* Buy's price block — right-aligned column (UVP above, big price below), unlike Financing/
|
|
5056
|
+
Leasing's side-by-side .oo-pay-left/.oo-pay-secondary. */
|
|
5057
|
+
.md3 .oo-pay-buy-price-col {
|
|
5058
|
+
display: flex;
|
|
5059
|
+
flex-direction: column;
|
|
5060
|
+
align-items: flex-end;
|
|
5061
|
+
gap: 2px;
|
|
5062
|
+
}
|
|
5063
|
+
/* Figma 64794-109673 "secondaryStack": items-start, not center — the footnote badge (now a
|
|
5064
|
+
direct sibling of .oo-pay-uvp-amount, moved out so the struck price's own ::after bar doesn't
|
|
5065
|
+
draw its strike across the badge too) sits top-aligned/raised next to the price instead of
|
|
5066
|
+
vertically centered against it. */
|
|
5067
|
+
.md3 .oo-pay-buy-uvp-row {
|
|
5068
|
+
display: flex;
|
|
5069
|
+
align-items: flex-start;
|
|
5070
|
+
gap: 2px;
|
|
5071
|
+
}
|
|
5072
|
+
.md3 .oo-pay-buy-leftgroup {
|
|
5073
|
+
display: flex;
|
|
5074
|
+
align-items: flex-start;
|
|
5075
|
+
gap: 2px;
|
|
5076
|
+
}
|
|
5077
|
+
.md3 .oo-pay-buy-amount {
|
|
5078
|
+
font-family: Arimo, Arial, sans-serif;
|
|
5079
|
+
font-weight: 700;
|
|
5080
|
+
font-size: 38px;
|
|
5081
|
+
line-height: 52px;
|
|
5082
|
+
color: #005CFF;
|
|
5083
|
+
white-space: nowrap;
|
|
5084
|
+
}
|
|
5085
|
+
.md3 .oo-pay-cond {
|
|
5086
|
+
margin: 0;
|
|
5087
|
+
font-family: Arimo, Arial, sans-serif;
|
|
4737
5088
|
font-size: 13px;
|
|
4738
|
-
line-height: normal;
|
|
4739
|
-
/* Figma's "text-primary" (#0e2238), not "text/strong" — see .oo-mzz-uvp-label above. */
|
|
4740
5089
|
color: #0E2238;
|
|
4741
5090
|
}
|
|
4742
|
-
.md3 .oo-
|
|
5091
|
+
.md3 .oo-pay-cond-link {
|
|
4743
5092
|
background: none;
|
|
4744
5093
|
border: 0;
|
|
4745
5094
|
padding: 0;
|
|
@@ -4749,137 +5098,296 @@ line-height: 31px;
|
|
|
4749
5098
|
text-decoration: underline;
|
|
4750
5099
|
cursor: pointer;
|
|
4751
5100
|
}
|
|
4752
|
-
.md3 .oo-
|
|
5101
|
+
.md3 .oo-pay-row {
|
|
4753
5102
|
display: flex;
|
|
4754
5103
|
align-items: flex-start;
|
|
4755
5104
|
width: 100%;
|
|
4756
|
-
margin-top: 12px;
|
|
4757
5105
|
}
|
|
4758
|
-
|
|
4759
|
-
.md3 .oo-mzz-buy-list {
|
|
5106
|
+
.md3 .oo-pay-col-left {
|
|
4760
5107
|
display: flex;
|
|
4761
5108
|
flex-direction: column;
|
|
4762
5109
|
gap: 8px;
|
|
4763
|
-
|
|
4764
|
-
|
|
4765
|
-
padding-
|
|
4766
|
-
border-top: 1px solid var(--md-outline-variant);
|
|
5110
|
+
flex: none;
|
|
5111
|
+
width: 266px;
|
|
5112
|
+
padding-right: 20px;
|
|
4767
5113
|
box-sizing: border-box;
|
|
5114
|
+
font-family: Arimo, Arial, sans-serif;
|
|
5115
|
+
font-size: 14px;
|
|
5116
|
+
line-height: 1.4;
|
|
4768
5117
|
}
|
|
4769
|
-
.md3 .oo-
|
|
5118
|
+
.md3 .oo-pay-col-right {
|
|
4770
5119
|
display: flex;
|
|
4771
5120
|
flex-direction: column;
|
|
5121
|
+
gap: 10px;
|
|
4772
5122
|
flex: 1 0 0;
|
|
4773
5123
|
min-width: 0;
|
|
5124
|
+
padding-left: 20px;
|
|
5125
|
+
box-sizing: border-box;
|
|
5126
|
+
font-family: Arimo, Arial, sans-serif;
|
|
5127
|
+
font-size: 14px;
|
|
5128
|
+
line-height: 1.4;
|
|
4774
5129
|
}
|
|
4775
|
-
.md3 .oo-
|
|
4776
|
-
gap: 8px;
|
|
4777
|
-
padding-right: 24px;
|
|
4778
|
-
}
|
|
4779
|
-
.md3 .oo-mzz-kv-col--right {
|
|
4780
|
-
gap: 10px;
|
|
4781
|
-
padding-left: 24px;
|
|
4782
|
-
}
|
|
4783
|
-
.md3 .oo-mzz-kv-rule {
|
|
5130
|
+
.md3 .oo-pay-divider {
|
|
4784
5131
|
flex: none;
|
|
4785
5132
|
align-self: stretch;
|
|
4786
5133
|
width: 1px;
|
|
4787
|
-
background:
|
|
5134
|
+
background: #C5C6D2;
|
|
4788
5135
|
}
|
|
4789
|
-
.md3 .oo-
|
|
5136
|
+
.md3 .oo-pay-kv-row {
|
|
4790
5137
|
display: flex;
|
|
4791
5138
|
align-items: baseline;
|
|
4792
|
-
|
|
4793
|
-
gap: 12px;
|
|
5139
|
+
gap: 8px;
|
|
4794
5140
|
width: 100%;
|
|
4795
|
-
font-family: Arial;
|
|
4796
|
-
font-size: 14px;
|
|
4797
|
-
line-height: 1.4;
|
|
4798
5141
|
}
|
|
4799
|
-
.
|
|
5142
|
+
/* Left column: short fixed label, value fills/right-aligns. Right column: label fills/wraps,
|
|
5143
|
+
value stays fixed — same inversion Figma itself uses between the two columns. */
|
|
5144
|
+
.md3 .oo-pay-kv-row--left .oo-pay-kv-label {
|
|
5145
|
+
flex: none;
|
|
5146
|
+
white-space: nowrap;
|
|
5147
|
+
}
|
|
5148
|
+
.md3 .oo-pay-kv-row--left .oo-pay-kv-value {
|
|
4800
5149
|
flex: 1 0 0;
|
|
4801
5150
|
min-width: 0;
|
|
4802
|
-
|
|
5151
|
+
text-align: right;
|
|
5152
|
+
}
|
|
5153
|
+
.md3 .oo-pay-kv-row--right {
|
|
5154
|
+
gap: 12px;
|
|
5155
|
+
align-items: center;
|
|
5156
|
+
}
|
|
5157
|
+
.md3 .oo-pay-kv-row--right .oo-pay-kv-label {
|
|
5158
|
+
flex: 1 0 0;
|
|
5159
|
+
min-width: 0;
|
|
5160
|
+
display: flex;
|
|
5161
|
+
align-items: center;
|
|
5162
|
+
gap: 8px;
|
|
4803
5163
|
}
|
|
4804
|
-
.md3 .oo-
|
|
5164
|
+
.md3 .oo-pay-kv-row--right .oo-pay-kv-value {
|
|
5165
|
+
flex: none;
|
|
5166
|
+
text-align: right;
|
|
5167
|
+
}
|
|
5168
|
+
/* Icon rows (Anschluss-Garantie / Rundum-Sorglos) invert the Fahrzeugrate row's flex roles in
|
|
5169
|
+
Figma: there the LABEL is the fixed, non-wrapping element (shrink-0 whitespace-nowrap) and the
|
|
5170
|
+
VALUE flexes/right-aligns into the remaining space — not the other way around, which is what
|
|
5171
|
+
made the long "2 Jahre Anschluss-Garantie"/icon combination wrap onto a second line. */
|
|
5172
|
+
.md3 .oo-pay-kv-row--icon .oo-pay-kv-label {
|
|
4805
5173
|
flex: none;
|
|
4806
|
-
color: var(--md-on-surface);
|
|
4807
5174
|
white-space: nowrap;
|
|
4808
5175
|
}
|
|
4809
|
-
.md3 .oo-
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
5176
|
+
.md3 .oo-pay-kv-row--icon .oo-pay-kv-value {
|
|
5177
|
+
flex: 1 0 0;
|
|
5178
|
+
min-width: 0;
|
|
5179
|
+
white-space: nowrap;
|
|
5180
|
+
}
|
|
5181
|
+
.md3 .oo-pay-kv-label {
|
|
5182
|
+
color: #44464F;
|
|
5183
|
+
}
|
|
5184
|
+
.md3 .oo-pay-kv-value {
|
|
5185
|
+
color: #1A1B22;
|
|
5186
|
+
}
|
|
5187
|
+
.md3 .oo-pay-info-icon {
|
|
5188
|
+
flex: none;
|
|
5189
|
+
}
|
|
5190
|
+
/* Same "open the Garantie explainer in a new tab" onClick behaviour as the Zulassung card's
|
|
5191
|
+
info trigger elsewhere in OrderOverviewNext.tsx — unstyled button wrapper so the icon keeps
|
|
5192
|
+
its inline position in the kv-label. */
|
|
5193
|
+
.md3 .oo-pay-info-trigger {
|
|
5194
|
+
display: inline-flex;
|
|
5195
|
+
align-items: center;
|
|
5196
|
+
justify-content: center;
|
|
5197
|
+
flex: none;
|
|
5198
|
+
width: 18px;
|
|
5199
|
+
height: 18px;
|
|
5200
|
+
background: none;
|
|
5201
|
+
border: 0;
|
|
5202
|
+
padding: 0;
|
|
5203
|
+
margin: 0;
|
|
5204
|
+
appearance: none;
|
|
5205
|
+
line-height: 0;
|
|
5206
|
+
cursor: pointer;
|
|
4813
5207
|
}
|
|
4814
|
-
.md3 .oo-
|
|
5208
|
+
.md3 .oo-pay-rule-h {
|
|
4815
5209
|
width: 100%;
|
|
4816
5210
|
height: 1px;
|
|
4817
5211
|
border: 0;
|
|
4818
5212
|
margin: 0;
|
|
4819
|
-
background:
|
|
5213
|
+
background: #C5C6D2;
|
|
4820
5214
|
}
|
|
4821
|
-
.md3 .oo-
|
|
4822
|
-
|
|
4823
|
-
|
|
5215
|
+
.md3 .oo-pay-total-row {
|
|
5216
|
+
display: flex;
|
|
5217
|
+
align-items: baseline;
|
|
5218
|
+
gap: 3px;
|
|
5219
|
+
width: 100%;
|
|
5220
|
+
font-family: Arimo, Arial, sans-serif;
|
|
5221
|
+
font-weight: 700;
|
|
5222
|
+
font-size: 14px;
|
|
5223
|
+
color: #1A1B22;
|
|
5224
|
+
}
|
|
5225
|
+
.md3 .oo-pay-total-row .oo-pay-kv-label {
|
|
5226
|
+
color: #1A1B22;
|
|
5227
|
+
}
|
|
5228
|
+
.md3 .oo-pay-total-row .oo-pay-kv-value {
|
|
5229
|
+
flex: 1 0 0;
|
|
5230
|
+
text-align: right;
|
|
5231
|
+
color: #1A1B22;
|
|
5232
|
+
}
|
|
5233
|
+
.md3 .oo-pay-vat-line {
|
|
5234
|
+
margin: 0;
|
|
5235
|
+
font-family: Arimo, Arial, sans-serif;
|
|
4824
5236
|
font-size: 13px;
|
|
5237
|
+
color: #44464F;
|
|
5238
|
+
width: 100%;
|
|
5239
|
+
}
|
|
5240
|
+
.md3 .oo-pay-kaufpreis {
|
|
5241
|
+
width: 100%;
|
|
5242
|
+
padding-bottom: 12px;
|
|
5243
|
+
border-bottom: 1px solid #AAB3BF;
|
|
5244
|
+
box-sizing: border-box;
|
|
5245
|
+
}
|
|
5246
|
+
.md3 .oo-pay-kaufpreis p {
|
|
5247
|
+
margin: 0;
|
|
5248
|
+
font-family: Arimo, Arial, sans-serif;
|
|
5249
|
+
font-size: 15px;
|
|
5250
|
+
line-height: 1.35;
|
|
5251
|
+
color: #0E2238;
|
|
5252
|
+
}
|
|
5253
|
+
/* Kaufen only — single list (no left/right KV split), Figma's own "list" node. */
|
|
5254
|
+
.md3 .oo-pay-buy-list {
|
|
5255
|
+
display: flex;
|
|
5256
|
+
flex-direction: column;
|
|
5257
|
+
gap: 8px;
|
|
5258
|
+
width: 100%;
|
|
5259
|
+
padding-top: 12px;
|
|
5260
|
+
border-top: 1px solid #C5C6D2;
|
|
5261
|
+
box-sizing: border-box;
|
|
5262
|
+
font-family: Arimo, Arial, sans-serif;
|
|
5263
|
+
font-size: 14px;
|
|
4825
5264
|
line-height: 1.4;
|
|
4826
|
-
color: var(--md-on-surface);
|
|
4827
5265
|
}
|
|
4828
|
-
.md3 .oo-
|
|
5266
|
+
.md3 .oo-pay-buy-row {
|
|
5267
|
+
display: flex;
|
|
5268
|
+
align-items: baseline;
|
|
5269
|
+
gap: 12px;
|
|
5270
|
+
width: 100%;
|
|
5271
|
+
}
|
|
5272
|
+
.md3 .oo-pay-buy-row--icon {
|
|
5273
|
+
align-items: center;
|
|
5274
|
+
}
|
|
5275
|
+
.md3 .oo-pay-buy-row .oo-pay-kv-label {
|
|
5276
|
+
flex: 1 0 0;
|
|
5277
|
+
min-width: 0;
|
|
5278
|
+
display: flex;
|
|
5279
|
+
align-items: center;
|
|
5280
|
+
gap: 8px;
|
|
5281
|
+
}
|
|
5282
|
+
.md3 .oo-pay-buy-row .oo-pay-kv-value {
|
|
5283
|
+
flex: none;
|
|
5284
|
+
text-align: right;
|
|
5285
|
+
}
|
|
5286
|
+
/* Same Figma inversion as .oo-pay-kv-row--icon above: icon rows fix the label and flex the value. */
|
|
5287
|
+
.md3 .oo-pay-buy-row--icon .oo-pay-kv-label {
|
|
5288
|
+
flex: none;
|
|
5289
|
+
white-space: nowrap;
|
|
5290
|
+
}
|
|
5291
|
+
.md3 .oo-pay-buy-row--icon .oo-pay-kv-value {
|
|
5292
|
+
flex: 1 0 0;
|
|
5293
|
+
min-width: 0;
|
|
5294
|
+
white-space: nowrap;
|
|
5295
|
+
}
|
|
5296
|
+
.md3 .oo-pay-buy-total {
|
|
5297
|
+
display: flex;
|
|
5298
|
+
align-items: baseline;
|
|
5299
|
+
gap: 12px;
|
|
5300
|
+
width: 100%;
|
|
5301
|
+
font-weight: 700;
|
|
5302
|
+
color: #1A1B22;
|
|
5303
|
+
}
|
|
5304
|
+
.md3 .oo-pay-buy-total .oo-pay-kv-label {
|
|
5305
|
+
flex: 1 0 0;
|
|
5306
|
+
color: #1A1B22;
|
|
5307
|
+
}
|
|
5308
|
+
.md3 .oo-pay-buy-total .oo-pay-kv-value {
|
|
5309
|
+
flex: none;
|
|
5310
|
+
color: #1A1B22;
|
|
5311
|
+
}
|
|
5312
|
+
.md3 .oo-pay-hinweis {
|
|
4829
5313
|
display: flex;
|
|
4830
5314
|
align-items: center;
|
|
4831
5315
|
gap: 10px;
|
|
4832
5316
|
width: 100%;
|
|
4833
|
-
margin-top: 12px;
|
|
4834
5317
|
padding: 12px 14px;
|
|
4835
5318
|
border-radius: 12px;
|
|
4836
5319
|
background: #F4F5FA;
|
|
4837
5320
|
box-sizing: border-box;
|
|
4838
5321
|
}
|
|
4839
|
-
.md3 .oo-
|
|
5322
|
+
.md3 .oo-pay-hinweis svg {
|
|
4840
5323
|
flex: none;
|
|
4841
5324
|
}
|
|
4842
|
-
.md3 .oo-
|
|
4843
|
-
flex: 1 0 0;
|
|
4844
|
-
min-width: 0;
|
|
4845
|
-
font-family: Arial;
|
|
4846
|
-
font-size: 13px;
|
|
4847
|
-
line-height: 1.4;
|
|
4848
|
-
color: var(--md-on-surface-variant);
|
|
4849
|
-
margin: 0;
|
|
4850
|
-
}
|
|
4851
|
-
.md3 .oo-mzz-hinweis-link {
|
|
5325
|
+
.md3 .oo-pay-hinweis-link {
|
|
4852
5326
|
flex: none;
|
|
4853
5327
|
background: none;
|
|
4854
5328
|
border: 0;
|
|
4855
5329
|
padding: 0;
|
|
4856
|
-
font-family: Arial;
|
|
5330
|
+
font-family: Arimo, Arial, sans-serif;
|
|
4857
5331
|
font-weight: 700;
|
|
4858
5332
|
font-size: 13px;
|
|
4859
|
-
|
|
4860
|
-
color: var(--md-primary);
|
|
5333
|
+
color: #005CFF;
|
|
4861
5334
|
cursor: pointer;
|
|
4862
5335
|
}
|
|
4863
|
-
.md3 .oo-
|
|
5336
|
+
.md3 .oo-pay-hinweis-link:hover {
|
|
4864
5337
|
text-decoration: underline;
|
|
4865
5338
|
}
|
|
4866
|
-
|
|
4867
|
-
|
|
4868
|
-
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
|
|
5339
|
+
/* Figma's "CK / Content" wrapper holds rate/row(-or-buy-list)/kaufpreis(-or-vat-line)/hinweis in
|
|
5340
|
+
a flex-col with gap:12px — .co-card itself isn't a flex container, so that inter-section gap
|
|
5341
|
+
has to be reproduced as margin-top on each section that can follow .oo-pay-rate. */
|
|
5342
|
+
.md3 .co-card > .oo-pay-row,
|
|
5343
|
+
.md3 .co-card > .oo-pay-buy-list,
|
|
5344
|
+
.md3 .co-card > .oo-pay-kaufpreis,
|
|
5345
|
+
.md3 .co-card > .oo-pay-vat-line,
|
|
5346
|
+
.md3 .co-card > .oo-pay-hinweis {
|
|
5347
|
+
margin-top: 12px;
|
|
5348
|
+
}
|
|
5349
|
+
/* Leasing only: "inkl. 19 % MwSt." is grouped with Monatliche Gesamtbelastung in its own
|
|
5350
|
+
gap-[12px] sub-wrapper in Figma, not the surrounding .oo-pay-col-right's gap:10px. */
|
|
5351
|
+
.md3 .oo-pay-col-right .oo-pay-vat-line {
|
|
5352
|
+
margin-top: 2px;
|
|
5353
|
+
}
|
|
5354
|
+
/* 600px to match the project-wide .show-mobile/.hide-mobile breakpoint (and the real Figma mobile
|
|
5355
|
+
frames: 63571:28425 financing / 64794:110041 leasing / 64833:89153 buy) — the earlier 800px
|
|
5356
|
+
generic-reflow rule guessed at a mobile layout before those frames existed; this replaces it. */
|
|
5357
|
+
@media (max-width: 600px) {
|
|
5358
|
+
/* Figma mobile swaps which side of the price row grows: the rating column flexes/shrinks and
|
|
5359
|
+
the price+UVP group stays at its natural width, the reverse of desktop's fixed 120px rating
|
|
5360
|
+
column + flexible price group. Buy's own price row (.oo-pay-buy-price-col/-leftgroup, 108px
|
|
5361
|
+
rating column) is unchanged between breakpoints, hence the :not() scope. */
|
|
5362
|
+
.md3 .oo-pay-left {
|
|
5363
|
+
flex: none;
|
|
4875
5364
|
}
|
|
4876
|
-
.md3 .oo-
|
|
4877
|
-
|
|
4878
|
-
|
|
5365
|
+
.md3 .oo-pay-rating-col:not(.oo-pay-rating-col--buy) {
|
|
5366
|
+
flex: 1 0 0;
|
|
5367
|
+
min-width: 0;
|
|
5368
|
+
width: auto;
|
|
4879
5369
|
}
|
|
4880
|
-
|
|
5370
|
+
/* The desktop two-column Laufzeit/Anzahlung/… | Fahrzeugrate/Garantie/RSP/… layout collapses
|
|
5371
|
+
into a single full-width list on mobile — col-left and the vertical divider disappear, and
|
|
5372
|
+
col-right (unchanged content, already exactly Figma's mobile "list") picks up the divider's
|
|
5373
|
+
old job as a border-top + padding-top instead of a padding-left. Figma's mobile "list" node
|
|
5374
|
+
also uses gap:8px row-to-row, not the desktop "rechts" column's gap:10px — same 8px buy's
|
|
5375
|
+
own (unchanged) list already uses. */
|
|
5376
|
+
.md3 .oo-pay-col-left,
|
|
5377
|
+
.md3 .oo-pay-divider {
|
|
4881
5378
|
display: none;
|
|
4882
5379
|
}
|
|
5380
|
+
.md3 .oo-pay-col-right {
|
|
5381
|
+
width: 100%;
|
|
5382
|
+
gap: 8px;
|
|
5383
|
+
padding-left: 0;
|
|
5384
|
+
padding-top: 12px;
|
|
5385
|
+
border-top: 1px solid #C5C6D2;
|
|
5386
|
+
box-sizing: border-box;
|
|
5387
|
+
}
|
|
5388
|
+
.md3 .oo-pay-hinweis {
|
|
5389
|
+
align-items: flex-start;
|
|
5390
|
+
}
|
|
4883
5391
|
}
|
|
4884
5392
|
.md3 .oo-car {
|
|
4885
5393
|
display: flex;
|
|
@@ -5056,11 +5564,15 @@ line-height: 31px;
|
|
|
5056
5564
|
muted gray as the body copy (var(--md-on-surface-variant) === Figma's var(--text/muted,
|
|
5057
5565
|
#44464f) fallback exactly), not the design system's usual blue link color (.oo-underline,
|
|
5058
5566
|
used elsewhere), so links here are styled with underline only. No border per explicit
|
|
5059
|
-
request. Sits
|
|
5060
|
-
|
|
5061
|
-
|
|
5567
|
+
request. Sits right after card 10, at the very bottom of the card stack (before .oo-next) on
|
|
5568
|
+
both desktop and mobile per explicit request — a spot this exact node isn't shown at in Figma
|
|
5569
|
+
(its own component description has it above the buy button instead). margin: 0 (not just
|
|
5570
|
+
margin-top) per explicit request — a bare <p> otherwise keeps the UA stylesheet's default
|
|
5571
|
+
margin-top AND margin-bottom (~1em each), which was still showing even after margin-top alone
|
|
5572
|
+
was removed. Spacing on every side now comes only from the parent .co-form.oo-page's own flex
|
|
5573
|
+
gap (14px), same as every other direct child in this step. */
|
|
5062
5574
|
.md3 .oo-legal-notice {
|
|
5063
|
-
margin
|
|
5575
|
+
margin: 0;
|
|
5064
5576
|
font-family: Arial;
|
|
5065
5577
|
font-size: 13px;
|
|
5066
5578
|
line-height: 1.5;
|
|
@@ -5079,7 +5591,6 @@ line-height: 31px;
|
|
|
5079
5591
|
display: flex;
|
|
5080
5592
|
align-items: center;
|
|
5081
5593
|
gap: 16px;
|
|
5082
|
-
margin-top: 24px;
|
|
5083
5594
|
padding-top: 18px;
|
|
5084
5595
|
border-top: 1px solid #C5C6D2;
|
|
5085
5596
|
}
|
|
@@ -5139,6 +5650,24 @@ line-height: 31px;
|
|
|
5139
5650
|
}
|
|
5140
5651
|
.md3 .oo-buy-btn {
|
|
5141
5652
|
width: 100%;
|
|
5653
|
+
height: 48px;
|
|
5654
|
+
font-size: 24px;
|
|
5655
|
+
}
|
|
5656
|
+
/* Figma 63492:4515 ("auto.de / Checkout CTA Bar") — mobile only, per explicit request: only
|
|
5657
|
+
the full-width buy button remains visible (Zurück/Schritt X already hidden above), so .oo-next
|
|
5658
|
+
itself becomes just that button's own white, padded shell instead of the desktop 3-up row.
|
|
5659
|
+
margin: 0 -23px breaks it out of .contentWrapper.nextLayout's own 23px mobile side padding
|
|
5660
|
+
(CheckoutPage.styl) for a true full-bleed white bar + top border — exact same technique/value
|
|
5661
|
+
already proven for .co-next's identical breakout a few hundred lines up in this file; that
|
|
5662
|
+
padding's parent (.contentContainer) already has overflow:visible at this width for exactly
|
|
5663
|
+
this purpose, so nothing else needs touching. */
|
|
5664
|
+
.md3 .oo-next {
|
|
5665
|
+
flex-direction: column;
|
|
5666
|
+
align-items: flex-start;
|
|
5667
|
+
margin: 0 -23px;
|
|
5668
|
+
gap: 8px;
|
|
5669
|
+
padding: 24px 16px;
|
|
5670
|
+
background: #FFFFFF;
|
|
5142
5671
|
}
|
|
5143
5672
|
}
|
|
5144
5673
|
@media (max-width: 800px) {
|
|
@@ -5151,9 +5680,13 @@ line-height: 31px;
|
|
|
5151
5680
|
800px the row collapses to 4 full-width stacked rows (adding "Hinweise zur Beschaffenheit"),
|
|
5152
5681
|
each divided by a horizontal rule instead — unlike .oo-ls-row's mobile stack, this card's own
|
|
5153
5682
|
Figma mobile variant keeps dividers between every row, so it can't reuse .oo-ls-cell as-is. */
|
|
5683
|
+
/* .oo-fb-notes is now a 4th (conditional) child of .oo-fb-row instead of a separate sibling —
|
|
5684
|
+
flex-wrap + its own flex-basis:100% drops it to its own full-width line on desktop, same as
|
|
5685
|
+
before; on mobile (below) the row becomes one plain stacked column so wrap no longer matters. */
|
|
5154
5686
|
.md3 .oo-fb-row {
|
|
5155
5687
|
display: flex;
|
|
5156
5688
|
align-items: flex-start;
|
|
5689
|
+
flex-wrap: wrap;
|
|
5157
5690
|
gap: 20px;
|
|
5158
5691
|
}
|
|
5159
5692
|
.md3 .oo-fb-cell {
|
|
@@ -5164,15 +5697,15 @@ line-height: 31px;
|
|
|
5164
5697
|
}
|
|
5165
5698
|
.md3 .oo-fb-row .oo-fb-cell {
|
|
5166
5699
|
flex: 1 0 0;
|
|
5167
|
-
padding: 0 20px;
|
|
5168
|
-
}
|
|
5169
|
-
.md3 .oo-fb-row .oo-fb-cell:first-child {
|
|
5170
|
-
padding-left: 0;
|
|
5171
|
-
}
|
|
5172
|
-
.md3 .oo-fb-row .oo-fb-cell:last-child {
|
|
5173
|
-
padding-right: 0;
|
|
5174
5700
|
}
|
|
5175
|
-
|
|
5701
|
+
/* Figma (64755:99667) has no padding on the cells themselves — the 41px total gap between two
|
|
5702
|
+
cells' content is the row's own 20px gap, a 1px divider, then another 20px gap, modelled here
|
|
5703
|
+
as a border-left (no extra divider element needed) plus 20px padding-left so the border doesn't
|
|
5704
|
+
sit flush against the next cell's icon. Padding on every cell (both sides) double-counted with
|
|
5705
|
+
the row gap and made the gap 61px instead of 41px. Excludes .oo-fb-notes — that one gets its own
|
|
5706
|
+
full-width/horizontal-divider treatment below, never this vertical one. */
|
|
5707
|
+
.md3 .oo-fb-row .oo-fb-cell:not(:first-child):not(.oo-fb-notes) {
|
|
5708
|
+
padding-left: 20px;
|
|
5176
5709
|
border-left: 1px solid var(--md-outline-variant);
|
|
5177
5710
|
}
|
|
5178
5711
|
.md3 .oo-fb-cell svg {
|
|
@@ -5202,20 +5735,37 @@ line-height: 31px;
|
|
|
5202
5735
|
color: var(--md-on-surface-variant);
|
|
5203
5736
|
overflow-wrap: break-word;
|
|
5204
5737
|
}
|
|
5205
|
-
.md3 .oo-fb-notes {
|
|
5738
|
+
.md3 .oo-fb-row .oo-fb-cell.oo-fb-notes {
|
|
5739
|
+
flex-basis: 100%;
|
|
5206
5740
|
width: 100%;
|
|
5207
5741
|
margin-top: 14px;
|
|
5208
5742
|
padding-top: 14px;
|
|
5209
5743
|
border-top: 1px solid var(--md-outline-variant);
|
|
5210
5744
|
}
|
|
5211
|
-
|
|
5745
|
+
/* Mobile (Figma 63571:28484 used-car / 64800:111786 new-car, 3 rows, no Hinweise): the 3-cell row
|
|
5746
|
+
+ separate full-width notes strip both collapse into ONE vertical list — every item gets the
|
|
5747
|
+
same icon+text row with a horizontal divider, first row has no top border/padding, last row has
|
|
5748
|
+
no bottom padding. :last-child picks whichever row (Fahrzeughalter or Hinweise) actually ends up
|
|
5749
|
+
last, since .oo-fb-notes is a real (conditionally-rendered) child of .oo-fb-row now, not a
|
|
5750
|
+
sibling CSS couldn't reach from here. 600px to match the project-wide mobile breakpoint — this
|
|
5751
|
+
used to be 800px, a guess from before any mobile Figma frame for this card existed. */
|
|
5752
|
+
@media (max-width: 600px) {
|
|
5212
5753
|
.md3 .oo-fb-row {
|
|
5213
5754
|
flex-direction: column;
|
|
5755
|
+
flex-wrap: nowrap;
|
|
5214
5756
|
gap: 0;
|
|
5215
5757
|
}
|
|
5216
5758
|
.md3 .oo-fb-row .oo-fb-cell {
|
|
5759
|
+
flex-basis: auto;
|
|
5217
5760
|
width: 100%;
|
|
5218
5761
|
padding: 12px 0;
|
|
5762
|
+
}
|
|
5763
|
+
/* Same selector (and so the same specificity) as the desktop vertical-divider rule above —
|
|
5764
|
+
.oo-fb-row .oo-fb-cell{border-left:0} alone is LESS specific than that :not():not() rule
|
|
5765
|
+
(5 selector components vs 3), so it was silently losing to it and leaving the desktop
|
|
5766
|
+
border-left:1px/padding-left:20px active on mobile, stacked on top of the new border-top. */
|
|
5767
|
+
.md3 .oo-fb-row .oo-fb-cell:not(:first-child):not(.oo-fb-notes) {
|
|
5768
|
+
padding-left: 0;
|
|
5219
5769
|
border-left: 0;
|
|
5220
5770
|
}
|
|
5221
5771
|
.md3 .oo-fb-row .oo-fb-cell:first-child {
|
|
@@ -5224,7 +5774,15 @@ line-height: 31px;
|
|
|
5224
5774
|
.md3 .oo-fb-row .oo-fb-cell:not(:first-child) {
|
|
5225
5775
|
border-top: 1px solid var(--md-outline-variant);
|
|
5226
5776
|
}
|
|
5227
|
-
.md3 .oo-fb-
|
|
5777
|
+
.md3 .oo-fb-row .oo-fb-cell:last-child {
|
|
5778
|
+
padding-bottom: 0;
|
|
5779
|
+
}
|
|
5780
|
+
/* Same specificity as the desktop .oo-fb-row .oo-fb-cell.oo-fb-notes rule (not just .oo-fb-notes
|
|
5781
|
+
alone) — otherwise that rule's margin-top:14px/flex-basis:100%/width:100% would still win here
|
|
5782
|
+
even inside this media query, since media nesting doesn't change specificity. */
|
|
5783
|
+
.md3 .oo-fb-row .oo-fb-cell.oo-fb-notes {
|
|
5784
|
+
flex-basis: auto;
|
|
5785
|
+
width: 100%;
|
|
5228
5786
|
margin-top: 0;
|
|
5229
5787
|
padding-top: 12px;
|
|
5230
5788
|
}
|
|
@@ -5519,15 +6077,7 @@ line-height: 31px;
|
|
|
5519
6077
|
the JSX, not here. Both graphic blocks (the EU statutory-warranty notice, the GARAN
|
|
5520
6078
|
certificate) are static images, not hand-coded — see the long comment above WARRANTY_NOTICE_IMG
|
|
5521
6079
|
in OrderOverviewNext.tsx for why (Figma ships them fully vector-flattened). */
|
|
5522
|
-
/* same fix as .oo-promo-card above — .co-card-title's shared margin-bottom:16px leaves a
|
|
5523
|
-
stray gap under the title when the card is collapsed; .oo-warranty-body's own margin-top
|
|
5524
|
-
restores that 16px only once actually expanded (both cards default expanded, but the user can
|
|
5525
|
-
still collapse them). */
|
|
5526
|
-
.md3 .oo-warranty-card .co-card-title {
|
|
5527
|
-
margin-bottom: 0;
|
|
5528
|
-
}
|
|
5529
6080
|
.md3 .oo-warranty-body {
|
|
5530
|
-
margin-top: 16px;
|
|
5531
6081
|
display: flex;
|
|
5532
6082
|
flex-direction: column;
|
|
5533
6083
|
gap: 12px;
|
|
@@ -5535,13 +6085,61 @@ line-height: 31px;
|
|
|
5535
6085
|
.md3 .oo-warranty-notice-img {
|
|
5536
6086
|
display: block;
|
|
5537
6087
|
width: 100%;
|
|
5538
|
-
max-width:
|
|
6088
|
+
max-width: 331px; /* Figma desktop (node 64763:84703): "Amtliche Mitteilung" 330.5x467.4, not stretched */
|
|
5539
6089
|
height: auto;
|
|
5540
6090
|
}
|
|
6091
|
+
@media (max-width: 600px) {
|
|
6092
|
+
.md3 .oo-warranty-notice-img {
|
|
6093
|
+
max-width: 251px; /* Figma mobile (node 64850:108036): 251.2x355.2 */
|
|
6094
|
+
}
|
|
6095
|
+
}
|
|
6096
|
+
/* Card 9 only — its image+link are centered (Figma: items-center). Card 10's open-state image+
|
|
6097
|
+
link are left-aligned (Figma: both sit at x=0 in their 572px-wide content), so this centering
|
|
6098
|
+
must NOT live on the shared .oo-warranty-notice-img/.oo-warranty-link rules themselves. */
|
|
6099
|
+
.md3 .oo-warranty-body--centered .oo-warranty-notice-img,
|
|
6100
|
+
.md3 .oo-warranty-body--centered .oo-warranty-link {
|
|
6101
|
+
align-self: center;
|
|
6102
|
+
}
|
|
5541
6103
|
.md3 .oo-warranty-garan-img {
|
|
5542
6104
|
display: block;
|
|
5543
6105
|
width: 100%;
|
|
5544
|
-
max-width: 320px;
|
|
6106
|
+
max-width: 320px; /* Figma (node 64669:36509): "vollständig" label, 320x336.8 */
|
|
6107
|
+
height: auto;
|
|
6108
|
+
}
|
|
6109
|
+
@media (max-width: 600px) {
|
|
6110
|
+
.md3 .oo-warranty-garan-img {
|
|
6111
|
+
/* Figma (node 64669:105484, dev-mode inspect): 215x226.31, centered — desktop (64669:36509)
|
|
6112
|
+
is left-aligned at 320px; mobile is centered and narrower, a real per-breakpoint
|
|
6113
|
+
difference in the file, not a mistake. */
|
|
6114
|
+
max-width: 215px;
|
|
6115
|
+
}
|
|
6116
|
+
/* .oo-warranty-garan-img-wrap (the role="img" host) is the actual flex child of
|
|
6117
|
+
.oo-warranty-body — align-self on .oo-warranty-garan-img itself (a grandchild) would be a
|
|
6118
|
+
no-op. */
|
|
6119
|
+
.md3 .oo-warranty-garan-img-wrap {
|
|
6120
|
+
align-self: center;
|
|
6121
|
+
}
|
|
6122
|
+
/* Card 10's "Weitere Informationen" link is left-aligned on desktop (confirmed, node
|
|
6123
|
+
64669:36509) but centered on mobile along with the image above it — same real
|
|
6124
|
+
per-breakpoint difference, not scoped via .oo-warranty-body--centered since that's card 9's
|
|
6125
|
+
own (desktop-centered-too) modifier. */
|
|
6126
|
+
.md3 .oo-warranty-link {
|
|
6127
|
+
align-self: center;
|
|
6128
|
+
}
|
|
6129
|
+
}
|
|
6130
|
+
.md3 .oo-warranty-garan-strip-btn {
|
|
6131
|
+
display: block;
|
|
6132
|
+
width: 208px; /* Figma (node 64535:6410): "nested display" strip, 208x32 */
|
|
6133
|
+
max-width: 100%;
|
|
6134
|
+
background: none;
|
|
6135
|
+
border: 0;
|
|
6136
|
+
padding: 0;
|
|
6137
|
+
margin: 0;
|
|
6138
|
+
cursor: pointer;
|
|
6139
|
+
}
|
|
6140
|
+
.md3 .oo-warranty-garan-nested-img {
|
|
6141
|
+
display: block;
|
|
6142
|
+
width: 100%;
|
|
5545
6143
|
height: auto;
|
|
5546
6144
|
}
|
|
5547
6145
|
.md3 .oo-warranty-link {
|
|
@@ -5557,35 +6155,11 @@ line-height: 31px;
|
|
|
5557
6155
|
font-family: Arial, Helvetica, Arimo, sans-serif;
|
|
5558
6156
|
font-weight: 400;
|
|
5559
6157
|
font-size: 13px;
|
|
6158
|
+
line-height: 1.35;
|
|
5560
6159
|
color: var(--md-primary);
|
|
5561
6160
|
text-decoration: underline;
|
|
5562
6161
|
text-align: left;
|
|
5563
6162
|
}
|
|
5564
|
-
a.oo-warranty-link--icon {
|
|
5565
|
-
text-decoration: none;
|
|
5566
|
-
}
|
|
5567
|
-
a.oo-warranty-link--icon:hover {
|
|
5568
|
-
text-decoration: underline;
|
|
5569
|
-
}
|
|
5570
|
-
.md3 .oo-warranty-link--pending {
|
|
5571
|
-
cursor: default;
|
|
5572
|
-
}
|
|
5573
|
-
.md3 .oo-warranty-years-title {
|
|
5574
|
-
margin: 0;
|
|
5575
|
-
font-family: Arial, Helvetica, Arimo, sans-serif;
|
|
5576
|
-
font-weight: 700;
|
|
5577
|
-
font-size: 14px;
|
|
5578
|
-
line-height: 1.35;
|
|
5579
|
-
color: #0E2238;
|
|
5580
|
-
}
|
|
5581
|
-
.md3 .oo-warranty-years-desc {
|
|
5582
|
-
margin: 0;
|
|
5583
|
-
font-family: Arial, Helvetica, Arimo, sans-serif;
|
|
5584
|
-
font-weight: 400;
|
|
5585
|
-
font-size: 13px;
|
|
5586
|
-
line-height: 1.35;
|
|
5587
|
-
color: #44464F;
|
|
5588
|
-
}
|
|
5589
6163
|
|
|
5590
6164
|
/* ---------- Bestellungen (orders) ---------- */
|
|
5591
6165
|
.md3 .mo-page {
|