From c5a37daf45f056dea747ae3bb6ed7d56918e176c Mon Sep 17 00:00:00 2001 From: Teddy Middleton-Smith Date: Fri, 25 Jul 2025 21:16:02 +0100 Subject: [PATCH] Feat(UI): Improved content and styling for home page. --- models/model_view_base.py | 2 + static/css/pages/core/home.css | 34 +-- static/css/sections/core.css | 23 +- static/dist/css/core_admin_home.bundle.css | 21 +- .../dist/css/core_admin_home.bundle.css.map | 2 +- static/dist/css/core_contact.bundle.css | 21 +- static/dist/css/core_contact.bundle.css.map | 2 +- static/dist/css/core_home.bundle.css | 55 +++-- static/dist/css/core_home.bundle.css.map | 2 +- templates/layouts/layout.html | 68 +++--- templates/pages/core/_home.html | 208 +++++++++--------- 11 files changed, 253 insertions(+), 185 deletions(-) diff --git a/models/model_view_base.py b/models/model_view_base.py index a45357b..ade4c7c 100644 --- a/models/model_view_base.py +++ b/models/model_view_base.py @@ -207,6 +207,7 @@ class Model_View_Base(BaseModel, ABC): FLAG_OBEDIENCE_LEVEL: ClassVar[str] = Obedience_Level.FLAG_OBEDIENCE_LEVEL FLAG_OVERLAY: ClassVar[str] = 'overlay' FLAG_PAGE_BODY: ClassVar[str] = 'page-body' + FLAG_PRICING: ClassVar[str] = 'pricing' FLAG_QUANTITY: ClassVar[str] = 'quantity' FLAG_RESPONSE_QUALITY_METRIC: ClassVar[str] = Response_Quality_Metric.FLAG_RESPONSE_QUALITY_METRIC FLAG_RIGHT_HAND_SIDE: ClassVar[str] = 'rhs' @@ -223,6 +224,7 @@ class Model_View_Base(BaseModel, ABC): FLAG_TABLE_MAIN: ClassVar[str] = 'table-main' FLAG_TEMPORARY_ELEMENT: ClassVar[str] = 'temporary-element' FLAG_USER: ClassVar[str] = User.FLAG_USER + # FLAG_VALUE_PROPOSITION: ClassVar[str] = 'value-proposition' FLAG_WEATHER: ClassVar[str] = Weather.FLAG_WEATHER FLAG_WEBSITE: ClassVar[str] = Base.FLAG_WEBSITE HASH_GET_ALTCHA_CHALLENGE: ClassVar[str] = '/altcha/create-challenge' diff --git a/static/css/pages/core/home.css b/static/css/pages/core/home.css index 7023492..37e792d 100644 --- a/static/css/pages/core/home.css +++ b/static/css/pages/core/home.css @@ -14,17 +14,13 @@ ul li { font-size: 16px; } -section.problem, section.benefits, -section.features, -section.faq { - padding: 6rem 0; +section.solution { + padding: 4rem 0; background: var(--colour-text-background); } -section.problem .card.problem, section.benefits .card.benefits, -section.features .card.features, -section.faq .card.faq { +section.solution .card.solution { padding: 2rem; background: var(--colour-page-background); border-radius: 8px; @@ -32,13 +28,13 @@ section.faq .card.faq { display: block; } -section.solution, -section.social-proof { - padding: 6rem 0; +section.problem, +section.early-access { + padding: 4rem 0; background: var(--colour-page-background-1); } -section.solution .card.solution, -section.social-proof .card.social-proof { +section.problem .card.problem, +section.early-access .card.early-access { background: var(--colour-text-background); padding: 2rem; border-radius: 8px; @@ -47,6 +43,13 @@ section.social-proof .card.social-proof { box-shadow: 0 4px 6px rgba(0,0,0,0.1); } + +section.benefits ul li, +section.solution ul li, +section.early-access ul li { + list-style: none; +} + /* Hero Section */ .hero { padding: 8rem 0 4rem; @@ -80,14 +83,19 @@ section.problem .problem.card:hover { transform: translateY(-5px); } */ +section.problem .section-subtitle { + /* font-size: 18px; */ + font-weight: bold; +} /* Solution Section */ -/* Benefits Section */ +/* Benefits Section * / section.benefits .section-subtitle { font-size: 18px; font-weight: bold; } +*/ /* Social Proof Section * / section.social-proof { diff --git a/static/css/sections/core.css b/static/css/sections/core.css index e4caaa4..4e9c32a 100644 --- a/static/css/sections/core.css +++ b/static/css/sections/core.css @@ -28,7 +28,7 @@ header { gap: 2rem; display: flex; flex-wrap: wrap; - max-width: 70vw; + max-width: 58vw; } .nav-links a { @@ -44,9 +44,9 @@ header { } .container { - max-width: 1200px; + max-width: min(2000px, 90vw); margin: 0 auto; - padding: 0 1.5rem; + padding: 0 5vw; } /* Header */ @@ -67,9 +67,9 @@ header { } .logo { - font-size: 1.5rem; + font-size: 2rem; font-weight: bold; - color: var(--primary); + color: var(--colour-secondary); } .nav-links { @@ -105,6 +105,7 @@ header { color: #fff; margin-bottom: 1rem; font-size: 1.2rem; + text-align: center; } .footer-section ul { @@ -138,6 +139,16 @@ header { color: aquamarine; } +.footer-section.contact { + width: 100%; +} +.footer-section .container { + padding: 0; +} +.footer-section .container.row .container.column { + padding: 1vh 2vw; +} + @media (max-width: 768px) { .footer-content { grid-template-columns: 1fr; @@ -145,7 +156,7 @@ header { } } -@media (max-width: 515px) { +@media (max-width: 450px) { .nav-links { display: none; } diff --git a/static/dist/css/core_admin_home.bundle.css b/static/dist/css/core_admin_home.bundle.css index d74422d..af4ab90 100644 --- a/static/dist/css/core_admin_home.bundle.css +++ b/static/dist/css/core_admin_home.bundle.css @@ -28,7 +28,7 @@ header { gap: 2rem; display: flex; flex-wrap: wrap; - max-width: 70vw; + max-width: 58vw; } .nav-links a { @@ -44,9 +44,9 @@ header { } .container { - max-width: 1200px; + max-width: min(2000px, 90vw); margin: 0 auto; - padding: 0 1.5rem; + padding: 0 5vw; } /* Header */ @@ -67,9 +67,9 @@ header { } .logo { - font-size: 1.5rem; + font-size: 2rem; font-weight: bold; - color: var(--primary); + color: var(--colour-secondary); } .nav-links { @@ -105,6 +105,7 @@ header { color: #fff; margin-bottom: 1rem; font-size: 1.2rem; + text-align: center; } .footer-section ul { @@ -138,6 +139,16 @@ header { color: aquamarine; } +.footer-section.contact { + width: 100%; +} +.footer-section .container { + padding: 0; +} +.footer-section .container.row .container.column { + padding: 1vh 2vw; +} + @media (max-width: 768px) { .footer-content { grid-template-columns: 1fr; diff --git a/static/dist/css/core_admin_home.bundle.css.map b/static/dist/css/core_admin_home.bundle.css.map index defaa95..c5e2d7f 100644 --- a/static/dist/css/core_admin_home.bundle.css.map +++ b/static/dist/css/core_admin_home.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/core_admin_home.bundle.css","mappings":";AACA;CACC;AACD;IACI,iBAAiB;IACjB,qCAAqC;IACrC;aACS;IACT,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;AACzB;;AAEA;IACI,aAAa;IACb,SAAS;IACT,aAAa;IACb,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,qBAAqB;IACrB,eAAe;AACnB;AACA;IACI,YAAY;IACZ,cAAc;AAClB;;AAEA;IACI,iBAAiB;IACjB,cAAc;IACd,iBAAiB;AACrB;;AAEA,WAAW;AACX;IACI,iBAAiB;IACjB,qCAAqC;IACrC;aACS;IACT,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;AACzB;;AAEA;IACI,aAAa;IACb,SAAS;AACb;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,qBAAqB;AACzB;AACA;IACI,YAAY;AAChB;;AAEA,WAAW;AACX;IACI,mBAAmB;IACnB,cAAc;IACd,oBAAoB;AACxB;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,mBAAmB;IACnB,iBAAiB;AACrB;;AAEA;IACI,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,cAAc;IACd,qBAAqB;IACrB,2BAA2B;AAC/B;;AAEA;IACI,WAAW;IACX,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI;QACI,0BAA0B;QAC1B,kBAAkB;IACtB;AACJ;;AAEA;IACI;QACI,aAAa;IACjB;AACJ,C;ACvJA;IACI,uBAAuB;AAC3B;;AAEA;IACI,WAAW;AACf,C","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/admin_home.css"],"sourcesContent":["\n/* Home page\n*/\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n display: flex;\n flex-wrap: wrap;\n max-width: 70vw;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n font-size: 1rem;\n}\n.nav-links a.button {\n color: white;\n margin: 0 auto;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 1.5rem;\n}\n\n/* Header */\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 0 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 450px) {\n .nav-links {\n display: none;\n }\n}","#pageBody > .card:first-of-type {\n width: min(80vw, 500px);\n}\n\n.container.row {\n width: auto;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/core_admin_home.bundle.css","mappings":";AACA;CACC;AACD;IACI,iBAAiB;IACjB,qCAAqC;IACrC;aACS;IACT,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;AACzB;;AAEA;IACI,aAAa;IACb,SAAS;IACT,aAAa;IACb,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,qBAAqB;IACrB,eAAe;AACnB;AACA;IACI,YAAY;IACZ,cAAc;AAClB;;AAEA;IACI,4BAA4B;IAC5B,cAAc;IACd,cAAc;AAClB;;AAEA,WAAW;AACX;IACI,iBAAiB;IACjB,qCAAqC;IACrC;aACS;IACT,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,eAAe;AACnB;;AAEA;IACI,eAAe;IACf,iBAAiB;IACjB,8BAA8B;AAClC;;AAEA;IACI,aAAa;IACb,SAAS;AACb;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,qBAAqB;AACzB;AACA;IACI,YAAY;AAChB;;AAEA,WAAW;AACX;IACI,mBAAmB;IACnB,cAAc;IACd,oBAAoB;AACxB;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,cAAc;IACd,qBAAqB;IACrB,2BAA2B;AAC/B;;AAEA;IACI,WAAW;IACX,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,WAAW;AACf;AACA;IACI,UAAU;AACd;AACA;IACI,gBAAgB;AACpB;;AAEA;IACI;QACI,0BAA0B;QAC1B,kBAAkB;IACtB;AACJ;;AAEA;IACI;QACI,aAAa;IACjB;AACJ,C;AClKA;IACI,uBAAuB;AAC3B;;AAEA;IACI,WAAW;AACf,C","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/admin_home.css"],"sourcesContent":["\n/* Home page\n*/\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n display: flex;\n flex-wrap: wrap;\n max-width: 58vw;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n font-size: 1rem;\n}\n.nav-links a.button {\n color: white;\n margin: 0 auto;\n}\n\n.container {\n max-width: min(2000px, 90vw);\n margin: 0 auto;\n padding: 0 5vw;\n}\n\n/* Header */\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 2rem;\n font-weight: bold;\n color: var(--colour-secondary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 0 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n text-align: center;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n.footer-section.contact {\n width: 100%;\n}\n.footer-section .container {\n padding: 0;\n}\n.footer-section .container.row .container.column {\n padding: 1vh 2vw;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 450px) {\n .nav-links {\n display: none;\n }\n}","#pageBody > .card:first-of-type {\n width: min(80vw, 500px);\n}\n\n.container.row {\n width: auto;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/core_contact.bundle.css b/static/dist/css/core_contact.bundle.css index d53a7c7..efa0e4c 100644 --- a/static/dist/css/core_contact.bundle.css +++ b/static/dist/css/core_contact.bundle.css @@ -28,7 +28,7 @@ header { gap: 2rem; display: flex; flex-wrap: wrap; - max-width: 70vw; + max-width: 58vw; } .nav-links a { @@ -44,9 +44,9 @@ header { } .container { - max-width: 1200px; + max-width: min(2000px, 90vw); margin: 0 auto; - padding: 0 1.5rem; + padding: 0 5vw; } /* Header */ @@ -67,9 +67,9 @@ header { } .logo { - font-size: 1.5rem; + font-size: 2rem; font-weight: bold; - color: var(--primary); + color: var(--colour-secondary); } .nav-links { @@ -105,6 +105,7 @@ header { color: #fff; margin-bottom: 1rem; font-size: 1.2rem; + text-align: center; } .footer-section ul { @@ -138,6 +139,16 @@ header { color: aquamarine; } +.footer-section.contact { + width: 100%; +} +.footer-section .container { + padding: 0; +} +.footer-section .container.row .container.column { + padding: 1vh 2vw; +} + @media (max-width: 768px) { .footer-content { grid-template-columns: 1fr; diff --git a/static/dist/css/core_contact.bundle.css.map b/static/dist/css/core_contact.bundle.css.map index 380e074..cdbe338 100644 --- a/static/dist/css/core_contact.bundle.css.map +++ b/static/dist/css/core_contact.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/core_contact.bundle.css","mappings":"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","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/contact.css"],"sourcesContent":["\n/* Home page\n*/\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n display: flex;\n flex-wrap: wrap;\n max-width: 70vw;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n font-size: 1rem;\n}\n.nav-links a.button {\n color: white;\n margin: 0 auto;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 1.5rem;\n}\n\n/* Header */\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 0 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 450px) {\n .nav-links {\n display: none;\n }\n}","\n.contact-section {\n padding: 2rem 2rem 4rem;\n}\n.contact-section h1 {\n margin: 1rem auto;\n}\n.contact-section p {\n margin: 0.5rem auto;\n}\n\n.contact-form {\n max-width: 60vw;\n width: fit-content;\n margin: 0 auto;\n background: #fff;\n padding: 2rem;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n.contact-form textarea {\n max-width: 40vw;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: 1.5rem;\n margin-bottom: 1rem;\n}\n.form-label {\n padding-top: 0.5rem;\n font-weight: 500;\n}\n.form-input {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 1rem;\n}\ntextarea.form-input {\n min-height: 120px;\n}\n\n.marketing-consent input {\n display: inline-block;\n margin-left: 20%;\n margin-bottom: 1.25rem;\n}\n\n.container.captcha > div:first-child > label:first-child {\n display: flex;\n justify-content: center;\n width: fit-content;\n text-align: center;\n margin: 0 auto;\n}\n.container.captcha > p:last-child{\n font-size: 0.9rem;\n margin: 1vh 0;\n}\n.container.captcha .altcha-main {\n padding-left: 1rem;\n padding-top: 0.75rem;\n padding-bottom: 0;\n}\n.container.captcha .altcha-main > :last-child {\n display: none;\n}\n.container.captcha .altcha,\naltcha-widget > div:first-child,\n.container.captcha > div > .altcha-widget > div {\n width: fit-content;\n display: flex;\n margin-left: auto;\n margin-right: auto;\n}\n\ninput[type=\"submit\"] {\n margin-left: 40%;\n padding: 0.75rem 1.5rem;\n background: #2563eb;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 1rem;\n}\n\ninput[type=\"submit\"]:hover {\n background: #1d4ed8;\n}\n\n.data-notice {\n margin-top: 3rem;\n padding: 1.5rem;\n background: #f3f4f6;\n border-radius: 4px;\n font-size: 0.95rem;\n}\n\n.data-notice h3 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n}\n\n.data-notice ul li {\n list-style-position: inside;\n}\n\n@media (max-width: 768px) {\n .contact-form {\n max-width: 80vw;\n }\n .contact-form textarea {\n max-width: 60vw;\n }\n .form-grid {\n grid-template-columns: 1fr;\n gap: 0.5rem;\n }\n\n .form-label {\n padding-top: 0;\n }\n\n .submit-button {\n margin-left: 0;\n width: 100%;\n }\n}\n\n@media (max-width: 400px) {\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/core_contact.bundle.css","mappings":"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","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/contact.css"],"sourcesContent":["\n/* Home page\n*/\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n display: flex;\n flex-wrap: wrap;\n max-width: 58vw;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n font-size: 1rem;\n}\n.nav-links a.button {\n color: white;\n margin: 0 auto;\n}\n\n.container {\n max-width: min(2000px, 90vw);\n margin: 0 auto;\n padding: 0 5vw;\n}\n\n/* Header */\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 2rem;\n font-weight: bold;\n color: var(--colour-secondary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 0 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n text-align: center;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n.footer-section.contact {\n width: 100%;\n}\n.footer-section .container {\n padding: 0;\n}\n.footer-section .container.row .container.column {\n padding: 1vh 2vw;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 450px) {\n .nav-links {\n display: none;\n }\n}","\n.contact-section {\n padding: 2rem 2rem 4rem;\n}\n.contact-section h1 {\n margin: 1rem auto;\n}\n.contact-section p {\n margin: 0.5rem auto;\n}\n\n.contact-form {\n max-width: 60vw;\n width: fit-content;\n margin: 0 auto;\n background: #fff;\n padding: 2rem;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n.contact-form textarea {\n max-width: 40vw;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: 1.5rem;\n margin-bottom: 1rem;\n}\n.form-label {\n padding-top: 0.5rem;\n font-weight: 500;\n}\n.form-input {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 1rem;\n}\ntextarea.form-input {\n min-height: 120px;\n}\n\n.marketing-consent input {\n display: inline-block;\n margin-left: 20%;\n margin-bottom: 1.25rem;\n}\n\n.container.captcha > div:first-child > label:first-child {\n display: flex;\n justify-content: center;\n width: fit-content;\n text-align: center;\n margin: 0 auto;\n}\n.container.captcha > p:last-child{\n font-size: 0.9rem;\n margin: 1vh 0;\n}\n.container.captcha .altcha-main {\n padding-left: 1rem;\n padding-top: 0.75rem;\n padding-bottom: 0;\n}\n.container.captcha .altcha-main > :last-child {\n display: none;\n}\n.container.captcha .altcha,\naltcha-widget > div:first-child,\n.container.captcha > div > .altcha-widget > div {\n width: fit-content;\n display: flex;\n margin-left: auto;\n margin-right: auto;\n}\n\ninput[type=\"submit\"] {\n margin-left: 40%;\n padding: 0.75rem 1.5rem;\n background: #2563eb;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 1rem;\n}\n\ninput[type=\"submit\"]:hover {\n background: #1d4ed8;\n}\n\n.data-notice {\n margin-top: 3rem;\n padding: 1.5rem;\n background: #f3f4f6;\n border-radius: 4px;\n font-size: 0.95rem;\n}\n\n.data-notice h3 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n}\n\n.data-notice ul li {\n list-style-position: inside;\n}\n\n@media (max-width: 768px) {\n .contact-form {\n max-width: 80vw;\n }\n .contact-form textarea {\n max-width: 60vw;\n }\n .form-grid {\n grid-template-columns: 1fr;\n gap: 0.5rem;\n }\n\n .form-label {\n padding-top: 0;\n }\n\n .submit-button {\n margin-left: 0;\n width: 100%;\n }\n}\n\n@media (max-width: 400px) {\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/core_home.bundle.css b/static/dist/css/core_home.bundle.css index 6462bca..be77f36 100644 --- a/static/dist/css/core_home.bundle.css +++ b/static/dist/css/core_home.bundle.css @@ -28,7 +28,7 @@ header { gap: 2rem; display: flex; flex-wrap: wrap; - max-width: 70vw; + max-width: 58vw; } .nav-links a { @@ -44,9 +44,9 @@ header { } .container { - max-width: 1200px; + max-width: min(2000px, 90vw); margin: 0 auto; - padding: 0 1.5rem; + padding: 0 5vw; } /* Header */ @@ -67,9 +67,9 @@ header { } .logo { - font-size: 1.5rem; + font-size: 2rem; font-weight: bold; - color: var(--primary); + color: var(--colour-secondary); } .nav-links { @@ -105,6 +105,7 @@ header { color: #fff; margin-bottom: 1rem; font-size: 1.2rem; + text-align: center; } .footer-section ul { @@ -138,6 +139,16 @@ header { color: aquamarine; } +.footer-section.contact { + width: 100%; +} +.footer-section .container { + padding: 0; +} +.footer-section .container.row .container.column { + padding: 1vh 2vw; +} + @media (max-width: 768px) { .footer-content { grid-template-columns: 1fr; @@ -166,17 +177,13 @@ ul li { font-size: 16px; } -section.problem, section.benefits, -section.features, -section.faq { - padding: 6rem 0; +section.solution { + padding: 4rem 0; background: var(--colour-text-background); } -section.problem .card.problem, section.benefits .card.benefits, -section.features .card.features, -section.faq .card.faq { +section.solution .card.solution { padding: 2rem; background: var(--colour-page-background); border-radius: 8px; @@ -184,13 +191,13 @@ section.faq .card.faq { display: block; } -section.solution, -section.social-proof { - padding: 6rem 0; +section.problem, +section.early-access { + padding: 4rem 0; background: var(--colour-page-background-1); } -section.solution .card.solution, -section.social-proof .card.social-proof { +section.problem .card.problem, +section.early-access .card.early-access { background: var(--colour-text-background); padding: 2rem; border-radius: 8px; @@ -199,6 +206,13 @@ section.social-proof .card.social-proof { box-shadow: 0 4px 6px rgba(0,0,0,0.1); } + +section.benefits ul li, +section.solution ul li, +section.early-access ul li { + list-style: none; +} + /* Hero Section */ .hero { padding: 8rem 0 4rem; @@ -232,14 +246,19 @@ section.problem .problem.card:hover { transform: translateY(-5px); } */ +section.problem .section-subtitle { + /* font-size: 18px; */ + font-weight: bold; +} /* Solution Section */ -/* Benefits Section */ +/* Benefits Section * / section.benefits .section-subtitle { font-size: 18px; font-weight: bold; } +*/ /* Social Proof Section * / section.social-proof { diff --git a/static/dist/css/core_home.bundle.css.map b/static/dist/css/core_home.bundle.css.map index d79aa12..3151f76 100644 --- a/static/dist/css/core_home.bundle.css.map +++ b/static/dist/css/core_home.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/core_home.bundle.css","mappings":"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","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/home.css"],"sourcesContent":["\n/* Home page\n*/\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n display: flex;\n flex-wrap: wrap;\n max-width: 70vw;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n font-size: 1rem;\n}\n.nav-links a.button {\n color: white;\n margin: 0 auto;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 1.5rem;\n}\n\n/* Header */\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 0 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 450px) {\n .nav-links {\n display: none;\n }\n}","/* Common */\np {\n width: 100%;\n font-size: 16px;\n}\np.section-title,\np.section-subtitle {\n margin: 0 auto;\n}\n.section-subtitle {\n font-size: 18px;\n}\nul li {\n font-size: 16px;\n}\n\nsection.problem,\nsection.benefits,\nsection.features,\nsection.faq {\n padding: 6rem 0;\n background: var(--colour-text-background);\n}\nsection.problem .card.problem,\nsection.benefits .card.benefits,\nsection.features .card.features,\nsection.faq .card.faq {\n padding: 2rem;\n background: var(--colour-page-background);\n border-radius: 8px;\n transition: transform 0.3s ease;\n display: block;\n}\n\nsection.solution,\nsection.social-proof {\n padding: 6rem 0;\n background: var(--colour-page-background-1);\n}\nsection.solution .card.solution,\nsection.social-proof .card.social-proof {\n background: var(--colour-text-background);\n padding: 2rem;\n border-radius: 8px;\n max-width: 800px;\n margin: 3rem auto 0;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n}\n\n/* Hero Section */\n.hero {\n padding: 8rem 0 4rem;\n background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */\n}\n\n.hero-content {\n max-width: 600px;\n}\n\n.hero h1 {\n font-size: 3rem;\n line-height: 1.2;\n margin-bottom: 1.5rem;\n color: var(--colour-text);\n}\n\n.hero p {\n font-size: 1.25rem;\n margin-bottom: 2rem;\n color: var(--colour-secondary);\n}\n\n\n\n/* Problem Section */\n\n\n/*\nsection.problem .problem.card:hover {\n transform: translateY(-5px);\n}\n*/\n\n/* Solution Section */\n\n/* Benefits Section */\nsection.benefits .section-subtitle {\n font-size: 18px;\n font-weight: bold;\n}\n\n/* Social Proof Section * /\nsection.social-proof {\n padding: 6rem 0;\n background: white;\n}\n\nsection.social-proof .card.social-proof {\n background: var(--colour-page-background);\n padding: 2rem;\n border-radius: 8px;\n text-align: center;\n max-width: 400px;\n margin: 3rem auto 0;\n}\n\nsection.social-proof ul {\n list-style: none;\n margin: 0;\n}\n* /\n\nsection.social-proof .section-subtitle {\n font-size: 16px;\n}\n*/\nsection.social-proof ul li {\n font-size: 14px;\n}\n\n/* Early Access Section * /\nsection.early-access {\n padding: 6rem 0;\n background: white;\n}\n\nsection.early-access .card.early-access {\n background: var(--colour-page-background);\n padding: 2rem;\n border-radius: 8px;\n text-align: center;\n max-width: 400px;\n margin: 3rem auto 0;\n}\n\nsection.early-access ul {\n list-style: none;\n margin: 0;\n}\nsection.early-access a.button {\n margin: 0.25rem;\n}\n*/\n\n/* Features section */\nsection.features .button {\n margin-top: 0;\n}\n\n/* CTA Section */\n.cta-1,\n.cta-2 {\n padding: 6rem 0;\n background: var(--colour-primary);\n color: white;\n text-align: center;\n}\n\n/* FAQs * /\nsection.faq .button {\n margin-bottom: 0.25rem;\n}\n*/\n\n/* Animations */\n/* Fallback styles to ensure content is visible without JS */\n.reveal {\n opacity: 1; /* Default visible state */\n}\n\n/* Only hide elements if browser supports Intersection Observer */\n@supports (animation-name: fade) {\n .reveal {\n opacity: 0;\n }\n\n .reveal.active {\n animation: fade-up 0.8s ease-out forwards;\n }\n}\n\n@keyframes fade-up {\n 0% {\n opacity: 0;\n transform: translateY(30px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.delay-1 { animation-delay: 0.1s; }\n.delay-2 { animation-delay: 0.2s; }\n.delay-3 { animation-delay: 0.3s; }\n.delay-4 { animation-delay: 0.4s; }\n\n/* Buttons */\n.button {\n display: inline-block;\n padding: 0.75rem 1.5rem;\n border-radius: 6px;\n text-decoration: none;\n font-weight: 500;\n transition: all 0.3s ease;\n width: fit-content;\n margin: 0.75rem;\n font-size: 18px;\n}\n\n.button-primary {\n background: var(--colour-primary);\n color: white;\n}\n\n.button-primary:hover {\n background: var(--colour-secondary);\n}\n\n.button-light {\n background: white;\n color: var(--colour-primary);\n}\n\n.button-light:hover {\n background: var(--colour-page-background);\n}\n\n.logo:hover{\n cursor: pointer;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/core_home.bundle.css","mappings":"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","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/home.css"],"sourcesContent":["\n/* Home page\n*/\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n display: flex;\n flex-wrap: wrap;\n max-width: 58vw;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n font-size: 1rem;\n}\n.nav-links a.button {\n color: white;\n margin: 0 auto;\n}\n\n.container {\n max-width: min(2000px, 90vw);\n margin: 0 auto;\n padding: 0 5vw;\n}\n\n/* Header */\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 2rem;\n font-weight: bold;\n color: var(--colour-secondary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 0 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n text-align: center;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n.footer-section.contact {\n width: 100%;\n}\n.footer-section .container {\n padding: 0;\n}\n.footer-section .container.row .container.column {\n padding: 1vh 2vw;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 450px) {\n .nav-links {\n display: none;\n }\n}","/* Common */\np {\n width: 100%;\n font-size: 16px;\n}\np.section-title,\np.section-subtitle {\n margin: 0 auto;\n}\n.section-subtitle {\n font-size: 18px;\n}\nul li {\n font-size: 16px;\n}\n\nsection.benefits,\nsection.solution {\n padding: 4rem 0;\n background: var(--colour-text-background);\n}\nsection.benefits .card.benefits,\nsection.solution .card.solution {\n padding: 2rem;\n background: var(--colour-page-background);\n border-radius: 8px;\n transition: transform 0.3s ease;\n display: block;\n}\n\nsection.problem,\nsection.early-access {\n padding: 4rem 0;\n background: var(--colour-page-background-1);\n}\nsection.problem .card.problem,\nsection.early-access .card.early-access {\n background: var(--colour-text-background);\n padding: 2rem;\n border-radius: 8px;\n max-width: 800px;\n margin: 3rem auto 0;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n}\n\n\nsection.benefits ul li,\nsection.solution ul li,\nsection.early-access ul li {\n list-style: none;\n}\n\n/* Hero Section */\n.hero {\n padding: 8rem 0 4rem;\n background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */\n}\n\n.hero-content {\n max-width: 600px;\n}\n\n.hero h1 {\n font-size: 3rem;\n line-height: 1.2;\n margin-bottom: 1.5rem;\n color: var(--colour-text);\n}\n\n.hero p {\n font-size: 1.25rem;\n margin-bottom: 2rem;\n color: var(--colour-secondary);\n}\n\n\n\n/* Problem Section */\n\n\n/*\nsection.problem .problem.card:hover {\n transform: translateY(-5px);\n}\n*/\nsection.problem .section-subtitle {\n /* font-size: 18px; */\n font-weight: bold;\n}\n\n/* Solution Section */\n\n/* Benefits Section * /\nsection.benefits .section-subtitle {\n font-size: 18px;\n font-weight: bold;\n}\n*/\n\n/* Social Proof Section * /\nsection.social-proof {\n padding: 6rem 0;\n background: white;\n}\n\nsection.social-proof .card.social-proof {\n background: var(--colour-page-background);\n padding: 2rem;\n border-radius: 8px;\n text-align: center;\n max-width: 400px;\n margin: 3rem auto 0;\n}\n\nsection.social-proof ul {\n list-style: none;\n margin: 0;\n}\n* /\n\nsection.social-proof .section-subtitle {\n font-size: 16px;\n}\n*/\nsection.social-proof ul li {\n font-size: 14px;\n}\n\n/* Early Access Section * /\nsection.early-access {\n padding: 6rem 0;\n background: white;\n}\n\nsection.early-access .card.early-access {\n background: var(--colour-page-background);\n padding: 2rem;\n border-radius: 8px;\n text-align: center;\n max-width: 400px;\n margin: 3rem auto 0;\n}\n\nsection.early-access ul {\n list-style: none;\n margin: 0;\n}\nsection.early-access a.button {\n margin: 0.25rem;\n}\n*/\n\n/* Features section */\nsection.features .button {\n margin-top: 0;\n}\n\n/* CTA Section */\n.cta-1,\n.cta-2 {\n padding: 6rem 0;\n background: var(--colour-primary);\n color: white;\n text-align: center;\n}\n\n/* FAQs * /\nsection.faq .button {\n margin-bottom: 0.25rem;\n}\n*/\n\n/* Animations */\n/* Fallback styles to ensure content is visible without JS */\n.reveal {\n opacity: 1; /* Default visible state */\n}\n\n/* Only hide elements if browser supports Intersection Observer */\n@supports (animation-name: fade) {\n .reveal {\n opacity: 0;\n }\n\n .reveal.active {\n animation: fade-up 0.8s ease-out forwards;\n }\n}\n\n@keyframes fade-up {\n 0% {\n opacity: 0;\n transform: translateY(30px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.delay-1 { animation-delay: 0.1s; }\n.delay-2 { animation-delay: 0.2s; }\n.delay-3 { animation-delay: 0.3s; }\n.delay-4 { animation-delay: 0.4s; }\n\n/* Buttons */\n.button {\n display: inline-block;\n padding: 0.75rem 1.5rem;\n border-radius: 6px;\n text-decoration: none;\n font-weight: 500;\n transition: all 0.3s ease;\n width: fit-content;\n margin: 0.75rem;\n font-size: 18px;\n}\n\n.button-primary {\n background: var(--colour-primary);\n color: white;\n}\n\n.button-primary:hover {\n background: var(--colour-secondary);\n}\n\n.button-light {\n background: white;\n color: var(--colour-primary);\n}\n\n.button-light:hover {\n background: var(--colour-page-background);\n}\n\n.logo:hover{\n cursor: pointer;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/templates/layouts/layout.html b/templates/layouts/layout.html index 2e1ce91..c948b92 100644 --- a/templates/layouts/layout.html +++ b/templates/layouts/layout.html @@ -426,34 +426,50 @@
  • Accessibility Statement
  • - - - - - - - + + + + diff --git a/templates/pages/core/_home.html b/templates/pages/core/_home.html index 8fb042a..312fef2 100644 --- a/templates/pages/core/_home.html +++ b/templates/pages/core/_home.html @@ -8,13 +8,13 @@ {% endblock %} {% block page_nav_links %} +Benefits Problem Solution -Benefits -Social Proof - +Early Access + Contact Us {% endblock %} @@ -22,84 +22,112 @@
    -

    Track Every Tail Wag of Progress

    -

    The UK's first professional dog training management platform that transforms how you document, measure, and showcase training success!

    - Get Early Access +

    Transform Your Dog Training Business with Smart Progress Tracking

    +

    The first UK-built platform designed specifically for professional dog trainers. Track progress, measure success, and keep clients engaged like never before.

    + + Join the Waitlist
    - +

    Running a successful dog training business shouldn't mean drowning in paperwork or losing track of client progress. Fetch Metrics brings clarity to every session, ensuring both you and your clients stay perfectly synchronized.

    -

    Key features:

    - +
    +

    Key benefits:

    + +
    - -->
    -

    Still Using Spreadsheets and Paper Notes?

    - -
    -

    You're not alone. Most UK dog trainers spend hours each week juggling multiple systems, trying to remember which dog knows which commands, and struggling to show clients real progress.

    -

    What if you could track every command, every session, and every breakthrough in one simple system?

    + +

    Fetch Metrics solves these challenges with purpose-built tools that streamline your workflow and enhance client results. Spend less time on paperwork and more time doing what you love.

    -

    Professional Progress Tracking Made Simple

    - -

    Finally, a system built specifically for how dog trainers actually work. Document command mastery, track skill progression, and generate professional progress reports that wow your clients.

    -
    +
    +
    + +
    +
    +

    Be Among the First

    +

    We're putting the finishing touches on something special. Join our early access list to:

    +
      -
    • Command Performance Tracking: Monitor success rates for every command, from basic sit-stay to advanced behaviours
    • -
    • Skill Level Assessment: Automatically track progression through training levels with detailed performance metrics
    • -
    • Professional Progress Reports: Generate impressive client reports that showcase real, measurable improvement
    • -
    • Session History: Never lose track of what you worked on last week or which exercises need reinforcement
    • +
    • ✓ Get exclusive first access when we launch
    • +
    • ✓ Lock in founder pricing (up to 50% off)
    • +
    • ✓ Shape the features that matter most to you
    • +
    • ✓ Join a community of forward-thinking trainers
    + Reserve My Spot +
    +
    +
    + + - - - - -
    -
    -

    Everything You Need to Run a Modern Training Business

    -
    -
      -
    • ✓ Detailed command performance tracking
    • -
    • ✓ Multi-level skill progression monitoring
    • -
    • ✓ Professional progress report generation
    • -
    • ✓ Client and dog profile management
    • -
    • ✓ Session planning and note-taking
    • -
    • ✓ Mobile-friendly for field use
    • -
    • ✓ Secure cloud-based storage
    • -
    • ✓ GDPR compliant
    • -
    - Reserve Your Spot Now -

    30-day money-back guarantee • Cancel anytime • No setup fees

    -
    -
    -
    - - - +
    -

    Stop Losing Track of Training Progress

    -

    Your expertise deserves professional tools. Join innovative UK trainers who are already transforming how they track, measure, and showcase training success.

    - Join the Waitlist -

    Enter your email for updates and exclusive early access

    +

    Built for UK Trainers, by UK Trainers

    +

    Fetch Metrics isn't another generic business tool trying to fit your needs. We're building this specifically for the unique requirements of professional dog training in the UK.

    + Questions?