diff --git a/odoo-black-friday/index.html b/odoo-black-friday/index.html index 184ae80..54de149 100644 --- a/odoo-black-friday/index.html +++ b/odoo-black-friday/index.html @@ -152,56 +152,16 @@ margin-bottom: 1.25rem; } - /* Reveal mechanic — native
/: the panel is in the DOM in both states, - keyboard-operable, and works with JavaScript disabled. CSS reveals it; JS only mirrors - the open state to aria-expanded. The panel is never display:none by our stylesheet. */ - .bf-reveal { - border-top: 1px solid var(--line); - } - .bf-reveal-summary { - cursor: pointer; - list-style: none; - display: block; - padding: 1.25rem 0 1rem; - } - .bf-reveal-summary::-webkit-details-marker { - display: none; - } - .bf-reveal-summary:focus-visible { - outline: 2px solid var(--brass); - outline-offset: 3px; - border-radius: var(--radius); - } + /* Both offer cards are always open: the Black Friday price and the code are readable on + arrival, with no reveal and no click. The scroll animation further down is presentation + only — the base state is fully visible, so the offer is complete with JavaScript off, + under reduced motion, or if the animation never runs. */ .bf-teaser { font-size: 1.02rem; color: var(--ink); line-height: 1.6; margin: 0 0 1rem; } - .bf-open-label { - display: inline-flex; - align-items: center; - gap: 0.5rem; - font-family: Inter, sans-serif; - font-weight: 600; - font-size: 0.82rem; - letter-spacing: 0.04em; - text-transform: uppercase; - color: var(--midnight); - background: var(--brass); - border-radius: var(--radius-pill); - padding: 0.6rem 1.25rem; - } - .bf-open-label::after { - content: "+"; - font-size: 1.05rem; - line-height: 1; - } - /* closed state only: the label is the invitation, so it goes once the panel is open. - `[open]` is set by the browser natively — this needs no JavaScript. */ - .bf-reveal[open] .bf-open-label { - display: none; - } .bf-panel { padding: 0.25rem 0 1.25rem; border-top: 1px solid var(--line); @@ -236,6 +196,62 @@ .bf-mechanism strong { color: var(--midnight); } + /* The code lives on the offer surface only. It is readable on arrival; the chip is easy to + select so it can be copied at checkout. */ + .bf-code-wrap { + display: flex; + flex-wrap: wrap; + align-items: baseline; + gap: 0.4rem 0.7rem; + } + .bf-code-label { + font-family: Inter, sans-serif; + font-weight: 600; + font-size: 0.72rem; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--brass-deep); + } + .bf-code { + font-family: Marcellus, Georgia, serif; + font-size: 1.3rem; + letter-spacing: 0.12em; + color: var(--midnight); + background: var(--brass); + border-radius: var(--radius-pill); + padding: 0.2rem 0.9rem; + user-select: all; + } + .bf-code-note { + font-size: 0.9rem; + color: var(--ink-soft); + } + /* Presentation only: the code fades and rises a little as it scrolls into view. Opacity and + transform only — never visibility. The base state is fully opaque, so a build where the + animation never fires still shows the code. Everything here is behind @supports, so an + unsupported browser renders the static, visible code. */ + @media (prefers-reduced-motion: no-preference) { + @supports (animation-timeline: view()) { + .bf-code { + animation-name: bf-code-in; + animation-timing-function: linear; + animation-fill-mode: both; + animation-duration: auto; + animation-timeline: view(); + animation-range: entry 0% cover 45%; + } + } + } + @keyframes bf-code-in { + from { + opacity: 0.8; + transform: translateY(8px); + } + to { + opacity: 1; + transform: translateY(0); + } + } .bf-deadline { font-size: 0.85rem; color: var(--ink-soft); @@ -264,6 +280,41 @@ outline: 3px solid var(--midnight); outline-offset: 2px; } + /* Hosting CTA: a native form that posts the plan straight to the shop basket, so one click + from this page lands the visitor in checkout with the plan already in the cart. Works with + JavaScript off (it is a plain form POST). */ + .bf-cta-form { + margin: 0 0 0.75rem; + } + .bf-cta-form .btn { + display: inline-block; + font-family: Marcellus, Georgia, serif; + font-size: 0.9rem; + letter-spacing: 0.04em; + color: var(--midnight); + background: var(--brass); + border: 0; + border-radius: var(--radius-pill); + padding: 0.8rem 1.75rem; + cursor: pointer; + } + .bf-cta-form .btn:hover { + background: var(--brass-bright); + color: var(--midnight); + } + .bf-cta-form .btn:focus-visible { + outline: 3px solid var(--midnight); + outline-offset: 2px; + } + .bf-cta-secondary { + font-size: 0.85rem; + margin: 0; + } + .bf-cta-secondary a { + color: var(--brass-deep); + text-decoration: underline; + text-underline-offset: 3px; + } /* FAQ (native details/summary — no JS) */ .cmp-faq-grid { @@ -523,53 +574,50 @@ - +

Bootcamp: ten live sessions to a working system

-
- -
-

USD 595.00 for the full programme. Black Friday adds a second year of hosted Odoo Community Edition, on top of the one already included.

-

Ten live Thursday sessions, 18:00–19:00 Central Time, starting Thursday 21 January 2027. Six seats, and no more. Your first hosted year is included as standard; the second year is the Black Friday add-on.

- -

Black Friday: a second year of hosted Odoo Community Edition. One redemption per customer.

-

Ends Monday 30 November 2026.

- -

See the Bootcamp and what you build

-
-
+
+

A working system for your business in ten live sessions, USD 595 — with a second hosted year added for Black Friday.

+

USD 595.00 for the full programme. Black Friday adds a second year of hosted Odoo Community Edition, on top of the one already included.

+

Ten live Thursday sessions, 18:00–19:00 Central Time, starting Thursday 21 January 2027. Six seats, and no more. Your first hosted year is included as standard; the second year is the Black Friday add-on.

+ +

Black Friday: a second year of hosted Odoo Community Edition. One redemption per customer.

+

Ends Monday 30 November 2026.

+ +

See the Bootcamp and what you build

+

Hosting: On the Rise

-
- -
-

$395.00 a year — $295.00 for your first year.

-

Then it renews at the $395 list price. One yearly price, no per-user licence, no setup fee. We run the server, the backups, your certificate and the version upgrades for you.

- -

Black Friday: $100 off your first year with code HOST27. One redemption per customer.

-

Ends Monday 30 November 2026.

- -

See what a year of hosting includes

-
-
+
+

Your whole business in one system. The Black Friday price is right here — no code to hunt for.

+

$395.00 a year — $295.00 for your first year.

+

Then it renews at the $395 list price. One yearly price, no per-user licence, no setup fee. We run the server, the backups, your certificate and the version upgrades for you.

+ +

Your codeHOST27takes $100 off your first year at checkout. One redemption per customer.

+

Ends Monday 30 November 2026.

+ +
+ + + +
+

See everything a year of hosting includes

+
@@ -661,21 +709,5 @@
Copyright © ODOO4projects LLC
- -