Public Access
hide [hidden] site-wide: one [hidden] { display:none !important } in style.css
A filtered-out directory card stayed visible. The card is targeted by an
id-based ready-state selector (`.js #directory[data-dir-state="ready"]
#dirGrid > .dev-card`, two ids), which outranked the old per-element patch
`.dev-card[hidden] { display:none }` — so `card.hidden = true` set the
attribute and every card stayed on screen while the count line correctly
read "Showing 1 of 4".
Fix: one rule, `[hidden] { display:none !important }`, early in /style.css.
A class- or id-based `display` can no longer beat the attribute, so this
cannot recur with the next class that sets `display`. The per-element
`[hidden]` patches are removed so a single mechanism governs:
- odoo-community-developers: cards + filter row + pager + modal
(load-bearing — each sets `display`); focus-sliders/noscript (redundant)
- index/de/es `.hero-notice[hidden]`, odoo-black-friday `.ads-consent[hidden]`
(redundant — those elements set no `display`)
Re-fingerprint local assets (style.css changed): /style.css?v 3332fbba93 ->
061517baef across 51 pages.
Measured in a real browser (local harness, stubbed webhook; no record created,
no probe write) — computed display + geometry, never the `hidden` property:
- filtered to one card: the other three report display:none and height 0;
the visible set (1) equals the count line ("Showing 1 of 4") — 1 == 1
- HEAD (pre-fix) reproduces the defect: 3 cards hidden=true yet display:flex,
height 599.38 each; 4 visible vs the count's 1
- pager: display:none height 0 with one page; display:flex height 66.83 with
12 cards (Page 1 of 2); page 2 hides page-1 cards (display:none)
- modals closed: display:none height 0; load state: cards 0, pager/empty
display:none, filter row visibility:hidden by design
- 375 px: same result, no horizontal overflow; avatar ask-row top identical
across a row (2053.97 / links 2086.91)
This commit is contained in:
1 parent
634f4fcdf1
commit
9d14652a57
52 files changed
+90
-76
No files matched your search
+1
-1
@@ -28,7 +28,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Australia landing page (page-scoped; additive) ---- */
|
/* ---- Australia landing page (page-scoped; additive) ---- */
|
||||||
.cmp-sr-only {
|
.cmp-sr-only {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
.blog-header {
|
.blog-header {
|
||||||
padding: 2rem 0;
|
padding: 2rem 0;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap"
|
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap"
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* Blog post specific overrides — matching homepage light theme */
|
/* Blog post specific overrides — matching homepage light theme */
|
||||||
body {
|
body {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
* {
|
* {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" rel="stylesheet" />
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* Blog post specific styles — leverages CSS vars from style.css */
|
/* Blog post specific styles — leverages CSS vars from style.css */
|
||||||
:root {
|
:root {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
.container {
|
.container {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="../../style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
|
|||||||
+4
-2
@@ -128,7 +128,9 @@
|
|||||||
.hero-stats{display:flex;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.hero-stat{display:flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.65);font-size:.85rem}.hero-stat i{color:var(--brass);font-size:.75rem}
|
.hero-stats{display:flex;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.hero-stat{display:flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.65);font-size:.85rem}.hero-stat i{color:var(--brass);font-size:.75rem}
|
||||||
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
|
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
|
||||||
.hero-notice{position:absolute;top:1.25rem;right:1.25rem;z-index:3;display:flex;align-items:center;gap:.55rem;max-width:min(360px,calc(100% - 2rem));padding:.6rem .85rem .6rem 1rem;background:#f5c542;color:var(--midnight);border:1px solid rgba(13,27,46,.14);border-radius:var(--radius);box-shadow:0 8px 24px rgba(13,27,46,.3);font-family:Inter,sans-serif;font-size:.82rem;line-height:1.4;animation:heroNoticeIn .4s cubic-bezier(.16,1,.3,1)}
|
.hero-notice{position:absolute;top:1.25rem;right:1.25rem;z-index:3;display:flex;align-items:center;gap:.55rem;max-width:min(360px,calc(100% - 2rem));padding:.6rem .85rem .6rem 1rem;background:#f5c542;color:var(--midnight);border:1px solid rgba(13,27,46,.14);border-radius:var(--radius);box-shadow:0 8px 24px rgba(13,27,46,.3);font-family:Inter,sans-serif;font-size:.82rem;line-height:1.4;animation:heroNoticeIn .4s cubic-bezier(.16,1,.3,1)}
|
||||||
.hero-notice[hidden]{display:none}
|
/* `.hero-notice[hidden]{display:none}` used to live here; the site-wide `[hidden]`
|
||||||
|
rule in /style.css hides it (`.hero-notice` sets `display:flex`, which outranked
|
||||||
|
the UA rule). */
|
||||||
.hero-notice i{color:var(--midnight);font-size:.9rem;flex-shrink:0}
|
.hero-notice i{color:var(--midnight);font-size:.9rem;flex-shrink:0}
|
||||||
.hero-notice-text{flex:1;min-width:0;overflow-wrap:anywhere}
|
.hero-notice-text{flex:1;min-width:0;overflow-wrap:anywhere}
|
||||||
.hero-notice-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;padding:0;border:0;border-radius:50%;background:rgba(13,27,46,.12);color:var(--midnight);font-size:1rem;line-height:1;cursor:pointer;transition:background .2s}
|
.hero-notice-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;padding:0;border:0;border-radius:50%;background:rgba(13,27,46,.12);color:var(--midnight);font-size:1rem;line-height:1;cursor:pointer;transition:background .2s}
|
||||||
@@ -220,7 +222,7 @@
|
|||||||
#customQuoteModal .biz-success p{color:var(--midnight)}
|
#customQuoteModal .biz-success p{color:var(--midnight)}
|
||||||
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
|
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<!-- Privacy-friendly analytics by Plausible -->
|
<!-- Privacy-friendly analytics by Plausible -->
|
||||||
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
||||||
.oc-sr-only {
|
.oc-sr-only {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
||||||
.bc-sr-only {
|
.bc-sr-only {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
||||||
.cmp-sr-only {
|
.cmp-sr-only {
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
||||||
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
||||||
|
|||||||
+4
-2
@@ -128,7 +128,9 @@
|
|||||||
.hero-stats{display:flex;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.hero-stat{display:flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.65);font-size:.85rem}.hero-stat i{color:var(--brass);font-size:.75rem}
|
.hero-stats{display:flex;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.hero-stat{display:flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.65);font-size:.85rem}.hero-stat i{color:var(--brass);font-size:.75rem}
|
||||||
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
|
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
|
||||||
.hero-notice{position:absolute;top:1.25rem;right:1.25rem;z-index:3;display:flex;align-items:center;gap:.55rem;max-width:min(360px,calc(100% - 2rem));padding:.6rem .85rem .6rem 1rem;background:#f5c542;color:var(--midnight);border:1px solid rgba(13,27,46,.14);border-radius:var(--radius);box-shadow:0 8px 24px rgba(13,27,46,.3);font-family:Inter,sans-serif;font-size:.82rem;line-height:1.4;animation:heroNoticeIn .4s cubic-bezier(.16,1,.3,1)}
|
.hero-notice{position:absolute;top:1.25rem;right:1.25rem;z-index:3;display:flex;align-items:center;gap:.55rem;max-width:min(360px,calc(100% - 2rem));padding:.6rem .85rem .6rem 1rem;background:#f5c542;color:var(--midnight);border:1px solid rgba(13,27,46,.14);border-radius:var(--radius);box-shadow:0 8px 24px rgba(13,27,46,.3);font-family:Inter,sans-serif;font-size:.82rem;line-height:1.4;animation:heroNoticeIn .4s cubic-bezier(.16,1,.3,1)}
|
||||||
.hero-notice[hidden]{display:none}
|
/* `.hero-notice[hidden]{display:none}` used to live here; the site-wide `[hidden]`
|
||||||
|
rule in /style.css hides it (`.hero-notice` sets `display:flex`, which outranked
|
||||||
|
the UA rule). */
|
||||||
.hero-notice i{color:var(--midnight);font-size:.9rem;flex-shrink:0}
|
.hero-notice i{color:var(--midnight);font-size:.9rem;flex-shrink:0}
|
||||||
.hero-notice-text{flex:1;min-width:0;overflow-wrap:anywhere}
|
.hero-notice-text{flex:1;min-width:0;overflow-wrap:anywhere}
|
||||||
.hero-notice-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;padding:0;border:0;border-radius:50%;background:rgba(13,27,46,.12);color:var(--midnight);font-size:1rem;line-height:1;cursor:pointer;transition:background .2s}
|
.hero-notice-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;padding:0;border:0;border-radius:50%;background:rgba(13,27,46,.12);color:var(--midnight);font-size:1rem;line-height:1;cursor:pointer;transition:background .2s}
|
||||||
@@ -220,7 +222,7 @@
|
|||||||
#customQuoteModal .biz-success p{color:var(--midnight)}
|
#customQuoteModal .biz-success p{color:var(--midnight)}
|
||||||
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
|
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<!-- Privacy-friendly analytics by Plausible -->
|
<!-- Privacy-friendly analytics by Plausible -->
|
||||||
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
||||||
.oc-sr-only {
|
.oc-sr-only {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
||||||
.bc-sr-only {
|
.bc-sr-only {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
||||||
.cmp-sr-only {
|
.cmp-sr-only {
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
||||||
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Utility page, same shell as /freelancer-edit/ and the top bar of
|
/* Utility page, same shell as /freelancer-edit/ and the top bar of
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Utility page. Deliberately small: no hero, no footer, no site chrome beyond a
|
/* Utility page. Deliberately small: no hero, no footer, no site chrome beyond a
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Utility page. Deliberately small: no hero, no footer, no site chrome beyond a brand
|
/* Utility page. Deliberately small: no hero, no footer, no site chrome beyond a brand
|
||||||
|
|||||||
+4
-2
@@ -128,7 +128,9 @@
|
|||||||
.hero-stats{display:flex;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.hero-stat{display:flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.65);font-size:.85rem}.hero-stat i{color:var(--brass);font-size:.75rem}
|
.hero-stats{display:flex;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.hero-stat{display:flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.65);font-size:.85rem}.hero-stat i{color:var(--brass);font-size:.75rem}
|
||||||
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
|
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
|
||||||
.hero-notice{position:absolute;top:1.25rem;right:1.25rem;z-index:3;display:flex;align-items:center;gap:.55rem;max-width:min(360px,calc(100% - 2rem));padding:.6rem .85rem .6rem 1rem;background:#f5c542;color:var(--midnight);border:1px solid rgba(13,27,46,.14);border-radius:var(--radius);box-shadow:0 8px 24px rgba(13,27,46,.3);font-family:Inter,sans-serif;font-size:.82rem;line-height:1.4;animation:heroNoticeIn .4s cubic-bezier(.16,1,.3,1)}
|
.hero-notice{position:absolute;top:1.25rem;right:1.25rem;z-index:3;display:flex;align-items:center;gap:.55rem;max-width:min(360px,calc(100% - 2rem));padding:.6rem .85rem .6rem 1rem;background:#f5c542;color:var(--midnight);border:1px solid rgba(13,27,46,.14);border-radius:var(--radius);box-shadow:0 8px 24px rgba(13,27,46,.3);font-family:Inter,sans-serif;font-size:.82rem;line-height:1.4;animation:heroNoticeIn .4s cubic-bezier(.16,1,.3,1)}
|
||||||
.hero-notice[hidden]{display:none}
|
/* `.hero-notice[hidden]{display:none}` used to live here; the site-wide `[hidden]`
|
||||||
|
rule in /style.css hides it (`.hero-notice` sets `display:flex`, which outranked
|
||||||
|
the UA rule). */
|
||||||
.hero-notice i{color:var(--midnight);font-size:.9rem;flex-shrink:0}
|
.hero-notice i{color:var(--midnight);font-size:.9rem;flex-shrink:0}
|
||||||
.hero-notice-text{flex:1;min-width:0;overflow-wrap:anywhere}
|
.hero-notice-text{flex:1;min-width:0;overflow-wrap:anywhere}
|
||||||
.hero-notice-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;padding:0;border:0;border-radius:50%;background:rgba(13,27,46,.12);color:var(--midnight);font-size:1rem;line-height:1;cursor:pointer;transition:background .2s}
|
.hero-notice-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;padding:0;border:0;border-radius:50%;background:rgba(13,27,46,.12);color:var(--midnight);font-size:1rem;line-height:1;cursor:pointer;transition:background .2s}
|
||||||
@@ -230,7 +232,7 @@
|
|||||||
.bf-topbar-cta{color:var(--brass);white-space:nowrap}
|
.bf-topbar-cta{color:var(--brass);white-space:nowrap}
|
||||||
.bf-topbar:hover .bf-topbar-cta,.bf-topbar:focus-visible .bf-topbar-cta{color:var(--brass-bright)}
|
.bf-topbar:hover .bf-topbar-cta,.bf-topbar:focus-visible .bf-topbar-cta{color:var(--brass-bright)}
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="style.css?v=061517baef" />
|
||||||
<!-- Privacy-friendly analytics by Plausible -->
|
<!-- Privacy-friendly analytics by Plausible -->
|
||||||
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
.legal-hero {
|
.legal-hero {
|
||||||
padding: 4rem 0 2.5rem;
|
padding: 4rem 0 2.5rem;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" /></noscript>
|
<noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Black Friday 2026 page (page-scoped; additive) ---- */
|
/* ---- Odoo Black Friday 2026 page (page-scoped; additive) ---- */
|
||||||
.bf-sr-only {
|
.bf-sr-only {
|
||||||
@@ -525,9 +525,9 @@
|
|||||||
border-top: 2px solid var(--brass, #c9a227);
|
border-top: 2px solid var(--brass, #c9a227);
|
||||||
box-shadow: 0 -8px 30px rgba(13, 27, 46, 0.28);
|
box-shadow: 0 -8px 30px rgba(13, 27, 46, 0.28);
|
||||||
}
|
}
|
||||||
.ads-consent[hidden] {
|
/* `.ads-consent[hidden]{display:none}` used to live here. The banner sets no
|
||||||
display: none;
|
`display` of its own, so the UA rule already hid it — the patch was redundant;
|
||||||
}
|
it is gone so the site-wide `[hidden]` rule in /style.css is the one mechanism. */
|
||||||
.ads-consent-inner {
|
.ads-consent-inner {
|
||||||
width: 86%;
|
width: 86%;
|
||||||
max-width: 1200px;
|
max-width: 1200px;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- "Odoo Community + AI agent" page (page-scoped; additive).
|
/* ---- "Odoo Community + AI agent" page (page-scoped; additive).
|
||||||
Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already
|
Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Freelancer records — admin (page-scoped). Internal page, never linked. ---- */
|
/* ---- Freelancer records — admin (page-scoped). Internal page, never linked. ---- */
|
||||||
.adm-bar {
|
.adm-bar {
|
||||||
|
|||||||
@@ -29,13 +29,19 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- "Odoo Community developers" directory (page-scoped; additive).
|
/* ---- "Odoo Community developers" directory (page-scoped; additive).
|
||||||
Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already
|
Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already
|
||||||
shipped on odoo-staging-environment/ and odoo-community-ai/.
|
shipped on odoo-staging-environment/ and odoo-community-ai/.
|
||||||
Additions this page needs and no other: .dir-* (the directory, filters and forms),
|
Additions this page needs and no other: .dir-* (the directory, filters and forms),
|
||||||
.dev-* (one freelancer card), .form-* (the three forms). ---- */
|
.dev-* (one freelancer card), .form-* (the three forms). ---- */
|
||||||
|
|
||||||
|
/* `hidden` for this page is handled by the one site-wide `[hidden]` rule in
|
||||||
|
/style.css (a class- or id-based `display` outranks the UA's `[hidden]` rule, so
|
||||||
|
the old per-element patches here — on the cards, the filter row, the pager and
|
||||||
|
the modal — could not beat this page's id-based ready-state selector). No
|
||||||
|
per-element `[hidden]` rule lives here any more, so nothing disagrees. */
|
||||||
.oca-sr-only {
|
.oca-sr-only {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 1px;
|
width: 1px;
|
||||||
@@ -229,13 +235,9 @@
|
|||||||
.dir-search {
|
.dir-search {
|
||||||
min-width: 240px;
|
min-width: 240px;
|
||||||
}
|
}
|
||||||
/* `hidden` must really hide. The filter bar and each card set `display` in their own
|
/* (A filtered-out card used to be patched here and on `.dir-filters`; both are covered
|
||||||
class rules, and a class rule beats the UA's [hidden] rule — so without this a
|
by the single `[hidden]` rule in /style.css, which the id-based ready selector
|
||||||
filtered-out card (and a dead bar with JavaScript off) would stay on screen. */
|
cannot outrank.) */
|
||||||
.dir-filters[hidden],
|
|
||||||
.dev-card[hidden] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.dir-filter input[type="search"] {
|
.dir-filter input[type="search"] {
|
||||||
font-family: Inter, sans-serif;
|
font-family: Inter, sans-serif;
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
@@ -334,7 +336,7 @@
|
|||||||
|
|
||||||
/* Pagination — nine cards per page. Script-dependent BY DESIGN: with JavaScript
|
/* Pagination — nine cards per page. Script-dependent BY DESIGN: with JavaScript
|
||||||
off the element keeps its `hidden` attribute and every build-time card shows.
|
off the element keeps its `hidden` attribute and every build-time card shows.
|
||||||
`[hidden]` needs its own rule because this class sets `display`. */
|
(`hidden` is honoured by the single `[hidden]` rule in /style.css.) */
|
||||||
.dir-pager {
|
.dir-pager {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
@@ -344,9 +346,6 @@
|
|||||||
max-width: 1000px;
|
max-width: 1000px;
|
||||||
margin: 1.75rem auto 0;
|
margin: 1.75rem auto 0;
|
||||||
}
|
}
|
||||||
.dir-pager[hidden] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.dir-pager-pages {
|
.dir-pager-pages {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
@@ -652,9 +651,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ---- The ask-a-question modal (ships dark; opened only when wired) ---- */
|
/* ---- The ask-a-question modal (ships dark; opened only when wired) ---- */
|
||||||
.contact-modal[hidden] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.contact-modal {
|
.contact-modal {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
inset: 0;
|
inset: 0;
|
||||||
@@ -1127,10 +1123,9 @@
|
|||||||
width: 4rem;
|
width: 4rem;
|
||||||
margin-left: 0.35rem;
|
margin-left: 0.35rem;
|
||||||
}
|
}
|
||||||
.focus-sliders[hidden],
|
/* (`.focus-sliders[hidden]` / `.focus-noscript[hidden]` were patched here; neither
|
||||||
.focus-noscript[hidden] {
|
element sets `display`, so the patch was redundant. The single `[hidden]` rule in
|
||||||
display: none;
|
/style.css covers them, so nothing is left disagreeing.) */
|
||||||
}
|
|
||||||
.focus-counter {
|
.focus-counter {
|
||||||
font-size: 0.78rem;
|
font-size: 0.78rem;
|
||||||
color: var(--ink-soft);
|
color: var(--ink-soft);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
||||||
.oc-sr-only {
|
.oc-sr-only {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
||||||
.bc-sr-only {
|
.bc-sr-only {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
||||||
.cmp-sr-only {
|
.cmp-sr-only {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Hosting Offers (evergreen hub) page (page-scoped; additive) ---- */
|
/* ---- Odoo Hosting Offers (evergreen hub) page (page-scoped; additive) ---- */
|
||||||
.of-sr-only {
|
.of-sr-only {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- ODOO x N8N Masterclass landing page (page-scoped; additive).
|
/* ---- ODOO x N8N Masterclass landing page (page-scoped; additive).
|
||||||
The block below is the bootcamp page's page-scoped CSS, reused so the two
|
The block below is the bootcamp page's page-scoped CSS, reused so the two
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- "Odoo staging environment" guide page (page-scoped; additive).
|
/* ---- "Odoo staging environment" guide page (page-scoped; additive).
|
||||||
Reuses the top bar, band rhythm, hero and FAQ treatment already shipped on
|
Reuses the top bar, band rhythm, hero and FAQ treatment already shipped on
|
||||||
|
|||||||
+2
-2
@@ -27,8 +27,8 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" media="print" onload="this.media='all'" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" media="print" onload="this.media='all'" />
|
||||||
<noscript><link rel="stylesheet" href="/style.css?v=3332fbba93" /></noscript>
|
<noscript><link rel="stylesheet" href="/style.css?v=061517baef" /></noscript>
|
||||||
<style>
|
<style>
|
||||||
/* ---- Partner briefing for Andrew (page-scoped; additive) ---- */
|
/* ---- Partner briefing for Andrew (page-scoped; additive) ---- */
|
||||||
.andrew-sr-only {
|
.andrew-sr-only {
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
.legal-hero {
|
.legal-hero {
|
||||||
padding: 4rem 0 2.5rem;
|
padding: 4rem 0 2.5rem;
|
||||||
|
|||||||
@@ -6,6 +6,19 @@
|
|||||||
========================================================= */
|
========================================================= */
|
||||||
|
|
||||||
* { box-sizing: border-box; }
|
* { box-sizing: border-box; }
|
||||||
|
|
||||||
|
/* `hidden` must really hide — everywhere, not one element at a time. The UA's own
|
||||||
|
`[hidden] { display: none }` is the weakest possible declaration: any page rule that
|
||||||
|
sets `display` on the same element outranks it. A class rule (`.dir-pager`,
|
||||||
|
`.dev-card`, `.hero-notice`) already beats it, and an id-based state selector such as
|
||||||
|
`.js #directory[data-dir-state="ready"] #dirGrid > .dev-card` (two ids) beat the old
|
||||||
|
per-element patch — so setting `el.hidden = true` set the attribute and the element
|
||||||
|
stayed on screen (measured on /odoo-community-developers/: four cards visible, the
|
||||||
|
count line reading "Showing 1 of 4"). This one rule, with `!important`, beats every
|
||||||
|
class- or id-based `display`, so the attribute hides its element no matter which
|
||||||
|
later rule sets `display`. It is the single mechanism for `[hidden]` site-wide; the
|
||||||
|
per-element `[hidden]` rules are gone so nothing disagrees. */
|
||||||
|
[hidden] { display: none !important; }
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-family: Inter, 'Segoe UI', sans-serif;
|
font-family: Inter, 'Segoe UI', sans-serif;
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
||||||
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
.legal-hero {
|
.legal-hero {
|
||||||
padding: 4rem 0 2.5rem;
|
padding: 4rem 0 2.5rem;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- "What Can I Use Odoo For?" guide page (page-scoped; additive).
|
/* ---- "What Can I Use Odoo For?" guide page (page-scoped; additive).
|
||||||
The block below is odoo-community-upgrade.html's page-scoped CSS, reused so
|
The block below is odoo-community-upgrade.html's page-scoped CSS, reused so
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
<link rel="stylesheet" href="/style.css?v=061517baef" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Workshops and Classes hub page (page-scoped; additive).
|
/* ---- Workshops and Classes hub page (page-scoped; additive).
|
||||||
The block below is the bootcamp page's page-scoped CSS, reused so the two
|
The block below is the bootcamp page's page-scoped CSS, reused so the two
|
||||||
|
|||||||
Reference in new issue
Block a user