From 3b4c69f490cf349a2c7502507243bd074fd327df Mon Sep 17 00:00:00 2001 From: Danny Date: Sun, 13 Sep 2026 11:58:12 +0100 Subject: [PATCH] Charity costs added --- css/estimates.css | 132 +++- css/style.css | 1 + estimates.php | 94 ++- index.php | 42 +- js/estimates.js | 23 +- js/main.js | 24 +- nc_assets/css/style.css | 447 ++++++++++++ .../fonts/museo-sans-300-italic-webfont.eot | Bin 0 -> 33789 bytes .../fonts/museo-sans-300-italic-webfont.svg | 633 +++++++++++++++++ .../fonts/museo-sans-300-italic-webfont.ttf | Bin 0 -> 73336 bytes .../fonts/museo-sans-300-italic-webfont.woff | Bin 0 -> 39606 bytes nc_assets/fonts/museo-sans-300-webfont.eot | Bin 0 -> 30083 bytes nc_assets/fonts/museo-sans-300-webfont.svg | 593 ++++++++++++++++ nc_assets/fonts/museo-sans-300-webfont.ttf | Bin 0 -> 63016 bytes nc_assets/fonts/museo-sans-300-webfont.woff | Bin 0 -> 35241 bytes .../fonts/museo-sans-500-italic-webfont.eot | Bin 0 -> 33186 bytes .../fonts/museo-sans-500-italic-webfont.svg | 636 +++++++++++++++++ .../fonts/museo-sans-500-italic-webfont.ttf | Bin 0 -> 71088 bytes .../fonts/museo-sans-500-italic-webfont.woff | Bin 0 -> 38690 bytes nc_assets/fonts/museo-sans-500-webfont.eot | Bin 0 -> 29177 bytes nc_assets/fonts/museo-sans-500-webfont.svg | 596 ++++++++++++++++ nc_assets/fonts/museo-sans-500-webfont.ttf | Bin 0 -> 60856 bytes nc_assets/fonts/museo-sans-500-webfont.woff | Bin 0 -> 34573 bytes .../fonts/museo-sans-700-italic-webfont.eot | Bin 0 -> 32341 bytes .../fonts/museo-sans-700-italic-webfont.svg | 640 ++++++++++++++++++ .../fonts/museo-sans-700-italic-webfont.ttf | Bin 0 -> 68544 bytes .../fonts/museo-sans-700-italic-webfont.woff | Bin 0 -> 37730 bytes nc_assets/fonts/museo-sans-700-webfont.eot | Bin 0 -> 28356 bytes nc_assets/fonts/museo-sans-700-webfont.svg | 602 ++++++++++++++++ nc_assets/fonts/museo-sans-700-webfont.ttf | Bin 0 -> 59776 bytes nc_assets/fonts/museo-sans-700-webfont.woff | Bin 0 -> 33342 bytes nc_assets/img/featured/600/ready-to-go.png | Bin 0 -> 12490 bytes nc_assets/img/icons/checkmark-hd.png | Bin 0 -> 346 bytes nc_assets/img/icons/icon-info-hd.png | Bin 0 -> 2186 bytes nc_assets/img/logos/namecheap-hd.png | Bin 0 -> 10161 bytes nc_assets/img/nc-icon/favicon.ico | Bin 0 -> 8348 bytes .../img/nc-icon/namecheap-icon-114x114.png | Bin 0 -> 1058 bytes .../img/nc-icon/namecheap-icon-120x120.png | Bin 0 -> 1088 bytes .../img/nc-icon/namecheap-icon-144x144.png | Bin 0 -> 1341 bytes .../img/nc-icon/namecheap-icon-152x152.png | Bin 0 -> 1438 bytes .../img/nc-icon/namecheap-icon-57x57.png | Bin 0 -> 546 bytes .../img/nc-icon/namecheap-icon-72x72.png | Bin 0 -> 670 bytes .../img/nc-icon/namecheap-icon-76x76.png | Bin 0 -> 725 bytes nc_assets/img/pictograms/150/browser-red.png | Bin 0 -> 479 bytes nc_assets/img/pictograms/150/email-red.png | Bin 0 -> 484 bytes nc_assets/img/pictograms/150/news-red.png | Bin 0 -> 1017 bytes nc_assets/img/pictograms/150/server-red.png | Bin 0 -> 16346 bytes nc_assets/img/pictograms/150/support-red.png | Bin 0 -> 1877 bytes nc_assets/img/pictograms/150/tools-red.png | Bin 0 -> 17060 bytes send.php | 65 +- terms.php | 13 +- 51 files changed, 4484 insertions(+), 57 deletions(-) create mode 100644 nc_assets/css/style.css create mode 100644 nc_assets/fonts/museo-sans-300-italic-webfont.eot create mode 100644 nc_assets/fonts/museo-sans-300-italic-webfont.svg create mode 100644 nc_assets/fonts/museo-sans-300-italic-webfont.ttf create mode 100644 nc_assets/fonts/museo-sans-300-italic-webfont.woff create mode 100644 nc_assets/fonts/museo-sans-300-webfont.eot create mode 100644 nc_assets/fonts/museo-sans-300-webfont.svg create mode 100644 nc_assets/fonts/museo-sans-300-webfont.ttf create mode 100644 nc_assets/fonts/museo-sans-300-webfont.woff create mode 100644 nc_assets/fonts/museo-sans-500-italic-webfont.eot create mode 100644 nc_assets/fonts/museo-sans-500-italic-webfont.svg create mode 100644 nc_assets/fonts/museo-sans-500-italic-webfont.ttf create mode 100644 nc_assets/fonts/museo-sans-500-italic-webfont.woff create mode 100644 nc_assets/fonts/museo-sans-500-webfont.eot create mode 100644 nc_assets/fonts/museo-sans-500-webfont.svg create mode 100644 nc_assets/fonts/museo-sans-500-webfont.ttf create mode 100644 nc_assets/fonts/museo-sans-500-webfont.woff create mode 100644 nc_assets/fonts/museo-sans-700-italic-webfont.eot create mode 100644 nc_assets/fonts/museo-sans-700-italic-webfont.svg create mode 100644 nc_assets/fonts/museo-sans-700-italic-webfont.ttf create mode 100644 nc_assets/fonts/museo-sans-700-italic-webfont.woff create mode 100644 nc_assets/fonts/museo-sans-700-webfont.eot create mode 100644 nc_assets/fonts/museo-sans-700-webfont.svg create mode 100644 nc_assets/fonts/museo-sans-700-webfont.ttf create mode 100644 nc_assets/fonts/museo-sans-700-webfont.woff create mode 100644 nc_assets/img/featured/600/ready-to-go.png create mode 100644 nc_assets/img/icons/checkmark-hd.png create mode 100644 nc_assets/img/icons/icon-info-hd.png create mode 100644 nc_assets/img/logos/namecheap-hd.png create mode 100644 nc_assets/img/nc-icon/favicon.ico create mode 100644 nc_assets/img/nc-icon/namecheap-icon-114x114.png create mode 100644 nc_assets/img/nc-icon/namecheap-icon-120x120.png create mode 100644 nc_assets/img/nc-icon/namecheap-icon-144x144.png create mode 100644 nc_assets/img/nc-icon/namecheap-icon-152x152.png create mode 100644 nc_assets/img/nc-icon/namecheap-icon-57x57.png create mode 100644 nc_assets/img/nc-icon/namecheap-icon-72x72.png create mode 100644 nc_assets/img/nc-icon/namecheap-icon-76x76.png create mode 100644 nc_assets/img/pictograms/150/browser-red.png create mode 100644 nc_assets/img/pictograms/150/email-red.png create mode 100644 nc_assets/img/pictograms/150/news-red.png create mode 100644 nc_assets/img/pictograms/150/server-red.png create mode 100644 nc_assets/img/pictograms/150/support-red.png create mode 100644 nc_assets/img/pictograms/150/tools-red.png diff --git a/css/estimates.css b/css/estimates.css index 997df00..83cf59d 100644 --- a/css/estimates.css +++ b/css/estimates.css @@ -190,6 +190,43 @@ border-top: 1px solid rgba(255,255,255,0.08); } +/* Charity concessions footnote - sits at the end of each pricing section */ +.charity-note { + margin-top: 20px; + padding-top: 12px; + border-top: 1px dashed rgba(251,191,36,0.25); + text-align: center; +} +.charity-note-lead { + font-size: 0.74rem; + color: rgba(255,255,255,0.45); + margin-bottom: 8px; +} +.charity-note-lead i { color: var(--gold); margin-right: 4px; } +.charity-note-lead strong { color: rgba(255,255,255,0.7); font-weight: 700; } +.charity-table { + display: inline-flex; + gap: 28px; + font-size: 0.72rem; +} +.charity-col { + display: flex; + flex-direction: column; + gap: 5px; +} +.charity-item { + display: flex; + gap: 8px; + white-space: nowrap; +} +.charity-name { color: rgba(255,255,255,0.6); } +.charity-price { color: var(--gold); font-weight: 700; } +@media (max-width: 600px) { + .charity-table { flex-direction: column; gap: 4px; font-size: 0.68rem; } + .charity-col { gap: 4px; } + .charity-item { white-space: normal; justify-content: center; } +} + /* Wizard's Bench - wide card */ .bench-card { background: rgba(255,255,255,0.07); @@ -304,6 +341,12 @@ font-weight: 800; color: var(--gold); line-height: 1.15; + margin-bottom: 8px; +} +.ward-term { + font-size: 0.8rem; + line-height: 1.4; + color: rgba(255,255,255,0.55); margin-bottom: 20px; } .ward-price span { @@ -312,6 +355,60 @@ color: rgba(255,255,255,0.4); } +/* Extra hours note under the ward grid */ +.ward-extra { + margin-top: 32px; + background: rgba(255,255,255,0.05); + border: 1px solid rgba(255,255,255,0.12); + border-radius: var(--radius); + padding: 28px 32px; +} +.ward-extra-title { + font-family: var(--font-head); + font-size: 1.05rem; + font-weight: 800; + color: var(--white); + margin-bottom: 8px; +} +.ward-extra-title i { color: var(--gold); margin-right: 9px; } +.ward-extra-lead { + color: rgba(255,255,255,0.6); + font-size: 0.93rem; + line-height: 1.7; + margin-bottom: 20px; +} +.ward-extra-rates { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 16px; + list-style: none; + margin: 0; + padding: 0; +} +.ward-extra-rates li { + background: rgba(255,255,255,0.05); + border-radius: calc(var(--radius) / 2); + padding: 16px 18px; +} +.ward-extra-rate { + display: block; + font-family: var(--font-head); + font-size: 1.6rem; + font-weight: 800; + color: var(--gold); + line-height: 1.1; + margin-bottom: 4px; +} +.ward-extra-desc { + font-size: 0.85rem; + line-height: 1.45; + color: rgba(255,255,255,0.55); +} +@media (max-width: 900px) { + .ward-extra-rates { grid-template-columns: 1fr; } + .ward-extra { padding: 24px; } +} + /* Enquire button on each package */ .pricing-enquire { margin-top: 18px; @@ -320,7 +417,7 @@ font-size: 0.85rem; padding: 12px 18px; } -.bench-enquire { margin-top: 22px; } +.bench-enquire { display: inline-flex; margin-top: 20px; } .ward-enquire { margin-top: 20px; } /* "See full details" trigger */ @@ -333,7 +430,9 @@ font-size: 0.78rem; font-weight: 700; letter-spacing: 0.03em; - display: inline-flex; + /* block-level so it never shares a line with the enquire button */ + display: flex; + width: fit-content; align-items: center; gap: 7px; margin-top: 16px; @@ -347,9 +446,6 @@ .pkg-modal-overlay { position: fixed; inset: 0; - background: rgba(10,6,30,0.78); - -webkit-backdrop-filter: blur(4px); - backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; @@ -357,9 +453,31 @@ z-index: 1000; opacity: 0; visibility: hidden; - transition: opacity 0.25s ease, visibility 0.25s ease; + transition: opacity 0.2s ease, visibility 0.2s ease; +} +/* The darkening lives on its own layer so it can fade slowly + without dragging the modal's opacity down with it. */ +.pkg-modal-overlay::before { + content: ''; + position: absolute; + inset: 0; + background: rgba(10,6,30,0.78); + -webkit-backdrop-filter: blur(4px); + backdrop-filter: blur(4px); + opacity: 0; + /* closing fade */ + transition: opacity 0.25s ease; +} +.pkg-modal-overlay.open { + opacity: 1; + visibility: visible; + transition: opacity 0.2s ease, visibility 0s; +} +/* opening darken is deliberately slow */ +.pkg-modal-overlay.open::before { + opacity: 1; + transition: opacity 1.4s ease; } -.pkg-modal-overlay.open { opacity: 1; visibility: visible; } .pkg-modal { background: linear-gradient(160deg, #2D1F6E 0%, #1E1550 100%); border: 1px solid rgba(251,191,36,0.25); diff --git a/css/style.css b/css/style.css index 359a50b..861b2d6 100644 --- a/css/style.css +++ b/css/style.css @@ -213,6 +213,7 @@ ul { list-style: none; } z-index: 102; } .logo-icon { font-size: 1.5rem; line-height: 1; } +.logo-icon-img { height: 1.5rem; width: auto; vertical-align: middle; } .logo-dot { color: var(--orange); } .nav-links { diff --git a/estimates.php b/estimates.php index 45dd4ac..1078d8e 100644 --- a/estimates.php +++ b/estimates.php @@ -173,6 +173,21 @@ + +
+

Doing good work for the community? Registered charities get 25% off every package below — just say so when you reach out.

+
+
+
The First SparkFrom £190
+
The Enchanted Workshop£565–£1,125
+
The Arcane Forge£1,125–£2,250
+
+
+
The Merchant's Portal£2,250–£3,750
+
The Grand Emporium£3,750–£5,625+
+
+
+
@@ -223,6 +238,18 @@ + +
+

Need a custom tool but watching the budget? Charities get 25% off a bespoke build too.

+
+
+
The Cantrip£565–£1,500
+
+
+
The Grand Working£2,250–£7,500+
+
+
+
@@ -308,6 +335,20 @@ + +
+

Good causes deserve to look good too — charities get 25% off all creative work.

+
+
+
The Sigil WorkshopFrom £115
+
The Moving PictureFrom £265
+
+
+
The Third DimensionFrom £225
+
Sonic AlchemyFrom £150
+
+
+
@@ -341,6 +382,15 @@ + +
+

Gremlin trouble on a charity budget? You get 25% off the bench rate, no quibbles.

+
+
+
The Wizard's Bench£30 / hour
+
+
+
@@ -350,19 +400,21 @@

Ongoing Care

Protection Charms

-

Monthly plans to keep your website healthy, secure and performing at its best.

+

Monthly plans to keep your website healthy, secure and performing at its best — and cheaper than calling on The Wizard’s Bench each time something needs doing. All plans run on a minimum 6 month term, then continue month to month.

Tier 1

Minor Ward

-
£10 / month
+
£25 / month
+

Minimum 6 month term, then rolling monthly.


  • WordPress updates
  • Security monitoring
  • Monthly backups
  • +
  • 2 quick support requests a month
Enquire about this @@ -373,13 +425,15 @@ + +
+

Need more than your plan covers?

+

Plan members pay less than the standard £40/hour bench rate on any extra work, and the longer the job, the lower the rate.

+
    +
  • £36 per hour
  • +
  • £33 per hour, over 4 hours
  • +
  • £30 per hour for a full day — £240 per day
  • +
+
+ +
+

Ongoing care shouldn't strain a charity budget — every plan is 25% off for you.

+
+
+
Minor Ward£18.75 / month
+
Greater Ward£37.50 / month
+
+
+
Merchant's Ward£56.25 / month
+
+
+
@@ -432,4 +510,4 @@ - \ No newline at end of file + diff --git a/index.php b/index.php index 71a827b..48aa583 100644 --- a/index.php +++ b/index.php @@ -1,11 +1,22 @@ @@ -27,7 +38,7 @@ $form_error = isset($_GET['error']) && $_GET['error'] === '1';

Friendly website design, online apps, tech support and creative wizardry - with a touch of enchantment. Based in Oxfordshire.

- - wizard@fraxle.net + + Contact us Explore the magic @@ -147,7 +158,7 @@ $form_error = isset($_GET['error']) && $_GET['error'] === '1';
- Danny the tech-wizard +Danny the tech-wizard
@@ -292,7 +303,7 @@ $form_error = isset($_GET['error']) && $_GET['error'] === '1';
@@ -119,7 +124,7 @@

08 Privacy

-

Any personal details you share with us (for example through the contact form) are used only to respond to your enquiry and provide the services you've requested. We don't sell your data, and we keep it only as long as needed. If you'd like your details removed, just email us at wizard@fraxle.net.

+

Any personal details you share with us (for example through the contact form) are used only to respond to your enquiry and provide the services you've requested. We don't sell your data, and we keep it only as long as needed. If you'd like your details removed, just email us at Contact us.

@@ -133,7 +138,7 @@
- These terms are provided as a friendly, plain-English summary and don't constitute legal advice. For anything business-critical, it's always worth checking with a qualified professional. Got a question? Drop us a line at wizard@fraxle.net. + These terms are provided as a friendly, plain-English summary and don't constitute legal advice. For anything business-critical, it's always worth checking with a qualified professional. Got a question? Drop us a line at Contact us.