diff --git a/src/html/mod_articles_category/default.php b/src/html/mod_articles_category/default.php
new file mode 100644
index 0000000..a6b4b17
--- /dev/null
+++ b/src/html/mod_articles_category/default.php
@@ -0,0 +1,75 @@
+
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+/**
+ * Default layout override for mod_articles_category.
+ * Adds showtitle support and respects module settings.
+ */
+
+defined('_JEXEC') or die;
+
+use Joomla\CMS\HTML\HTMLHelper;
+use Joomla\CMS\Language\Text;
+
+if (empty($list)) {
+ return;
+}
+
+$suffix = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
+$headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_COMPAT, 'UTF-8');
+$headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'UTF-8');
+?>
+
+ showtitle) : ?>
+ < class="mod-custom__title">title; ?>>
+
+ content; ?>
+
diff --git a/src/html/mod_custom/hero.php b/src/html/mod_custom/hero.php
index 75102ed..d7368d6 100644
--- a/src/html/mod_custom/hero.php
+++ b/src/html/mod_custom/hero.php
@@ -18,8 +18,10 @@ defined('_JEXEC') or die;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Uri\Uri;
-$modId = 'mod-custom' . $module->id;
-$moduleclass = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
+$modId = 'mod-custom' . $module->id;
+$suffix = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
+$headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_COMPAT, 'UTF-8');
+$headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'UTF-8');
if ($params->get('backgroundimage')) {
/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
@@ -30,9 +32,11 @@ if ($params->get('backgroundimage')) {
);
}
?>
-
-
+
+ showtitle) : ?>
+ < class="mod-custom__title">title; ?>>
+
content; ?>
diff --git a/src/html/mod_finder/default.php b/src/html/mod_finder/default.php
new file mode 100644
index 0000000..54a5879
--- /dev/null
+++ b/src/html/mod_finder/default.php
@@ -0,0 +1,48 @@
+
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+/**
+ * Default layout override for mod_finder (Smart Search).
+ * Bootstrap 5 search form with showtitle support.
+ */
+
+defined('_JEXEC') or die;
+
+use Joomla\CMS\HTML\HTMLHelper;
+use Joomla\CMS\Language\Text;
+use Joomla\CMS\Router\Route;
+
+$suffix = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
+$headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_COMPAT, 'UTF-8');
+$headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'UTF-8');
+?>
+
+ showtitle) : ?>
+ < class="mod-finder__title">title; ?>>
+
+
+
diff --git a/src/html/mod_finder/index.html b/src/html/mod_finder/index.html
new file mode 100644
index 0000000..1a6c6cf
--- /dev/null
+++ b/src/html/mod_finder/index.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
Redirecting…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Redirecting to the site root… If you are not redirected,
click here.
+
+
diff --git a/src/html/mod_footer/default.php b/src/html/mod_footer/default.php
new file mode 100644
index 0000000..75eba0d
--- /dev/null
+++ b/src/html/mod_footer/default.php
@@ -0,0 +1,30 @@
+
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+/**
+ * Default layout override for mod_footer.
+ * Adds showtitle support and respects module settings.
+ */
+
+defined('_JEXEC') or die;
+
+use Joomla\CMS\Language\Text;
+
+$suffix = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
+$headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_COMPAT, 'UTF-8');
+$headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'UTF-8');
+?>
+
diff --git a/src/html/mod_footer/index.html b/src/html/mod_footer/index.html
new file mode 100644
index 0000000..1a6c6cf
--- /dev/null
+++ b/src/html/mod_footer/index.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
Redirecting…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Redirecting to the site root… If you are not redirected,
click here.
+
+
diff --git a/src/html/mod_login/default.php b/src/html/mod_login/default.php
new file mode 100644
index 0000000..3739955
--- /dev/null
+++ b/src/html/mod_login/default.php
@@ -0,0 +1,123 @@
+
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+/**
+ * Default layout override for mod_login.
+ * Bootstrap 5 login form with showtitle support.
+ */
+
+defined('_JEXEC') or die;
+
+use Joomla\CMS\HTML\HTMLHelper;
+use Joomla\CMS\Language\Text;
+use Joomla\CMS\Router\Route;
+
+$suffix = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
+$headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_COMPAT, 'UTF-8');
+$headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'UTF-8');
+?>
+
+ showtitle) : ?>
+ < class="mod-login__title">title; ?>>
+
+
+
+
+
+
+
+
diff --git a/src/html/mod_login/index.html b/src/html/mod_login/index.html
new file mode 100644
index 0000000..1a6c6cf
--- /dev/null
+++ b/src/html/mod_login/index.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
Redirecting…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Redirecting to the site root… If you are not redirected,
click here.
+
+
diff --git a/src/html/mod_related_items/default.php b/src/html/mod_related_items/default.php
new file mode 100644
index 0000000..8014400
--- /dev/null
+++ b/src/html/mod_related_items/default.php
@@ -0,0 +1,44 @@
+
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+/**
+ * Default layout override for mod_related_items.
+ * Adds showtitle support.
+ */
+
+defined('_JEXEC') or die;
+
+use Joomla\CMS\HTML\HTMLHelper;
+
+if (empty($list)) {
+ return;
+}
+
+$suffix = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
+$headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_COMPAT, 'UTF-8');
+$headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'UTF-8');
+$showDate = $params->get('showDate', 0);
+?>
+
diff --git a/src/html/mod_related_items/index.html b/src/html/mod_related_items/index.html
new file mode 100644
index 0000000..1a6c6cf
--- /dev/null
+++ b/src/html/mod_related_items/index.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
Redirecting…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Redirecting to the site root… If you are not redirected,
click here.
+
+
diff --git a/src/html/mod_tags_popular/default.php b/src/html/mod_tags_popular/default.php
new file mode 100644
index 0000000..96e2b53
--- /dev/null
+++ b/src/html/mod_tags_popular/default.php
@@ -0,0 +1,41 @@
+
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+/**
+ * Default layout override for mod_tags_popular.
+ * Adds showtitle support with Bootstrap badge-style tags.
+ */
+
+defined('_JEXEC') or die;
+
+use Joomla\CMS\Language\Text;
+
+if (empty($list)) {
+ return;
+}
+
+$suffix = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
+$headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_COMPAT, 'UTF-8');
+$headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'UTF-8');
+?>
+
diff --git a/src/html/mod_tags_popular/index.html b/src/html/mod_tags_popular/index.html
new file mode 100644
index 0000000..1a6c6cf
--- /dev/null
+++ b/src/html/mod_tags_popular/index.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
Redirecting…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Redirecting to the site root… If you are not redirected,
click here.
+
+
diff --git a/src/html/mod_tags_similar/default.php b/src/html/mod_tags_similar/default.php
new file mode 100644
index 0000000..c850961
--- /dev/null
+++ b/src/html/mod_tags_similar/default.php
@@ -0,0 +1,38 @@
+
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+/**
+ * Default layout override for mod_tags_similar.
+ * Adds showtitle support.
+ */
+
+defined('_JEXEC') or die;
+
+use Joomla\CMS\Language\Text;
+
+if (empty($list)) {
+ return;
+}
+
+$suffix = htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_COMPAT, 'UTF-8');
+$headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_COMPAT, 'UTF-8');
+$headerClass = htmlspecialchars($params->get('header_class', ''), ENT_COMPAT, 'UTF-8');
+?>
+
diff --git a/src/html/mod_tags_similar/index.html b/src/html/mod_tags_similar/index.html
new file mode 100644
index 0000000..1a6c6cf
--- /dev/null
+++ b/src/html/mod_tags_similar/index.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
Redirecting…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Redirecting to the site root… If you are not redirected,
click here.
+
+
diff --git a/src/media/css/template.css b/src/media/css/template.css
index 518e97f..bc47436 100644
--- a/src/media/css/template.css
+++ b/src/media/css/template.css
@@ -14562,6 +14562,147 @@ iframe {
position: relative;
}
+/* ── MODULE TITLES ── */
+/* Shared styles for module titles rendered by MokoCassiopeia overrides */
+[class*="__title"] {
+ margin-top: 0;
+ margin-bottom: .75rem;
+ font-weight: 600;
+ color: var(--body-color, #212529);
+ line-height: 1.3;
+}
+
+/* Article list modules */
+.mod-articles-latest__list,
+.mod-articles-popular__list,
+.mod-articles-category__list,
+.mod-related-items__list,
+.mod-tags-similar__list {
+ list-style: none;
+ padding-left: 0;
+ margin-bottom: 0;
+}
+
+.mod-articles-latest__item,
+.mod-articles-popular__item,
+.mod-articles-category__item,
+.mod-related-items__item,
+.mod-tags-similar__item {
+ padding: .4rem 0;
+ border-bottom: 1px solid var(--border-color, #dee2e6);
+}
+
+.mod-articles-latest__item:last-child,
+.mod-articles-popular__item:last-child,
+.mod-articles-category__item:last-child,
+.mod-related-items__item:last-child,
+.mod-tags-similar__item:last-child {
+ border-bottom: 0;
+}
+
+.mod-articles-latest__item a,
+.mod-articles-popular__item a,
+.mod-articles-category__link,
+.mod-related-items__item a,
+.mod-tags-similar__item a {
+ text-decoration: none;
+ color: var(--link-color, #0d6efd);
+}
+
+.mod-articles-latest__item a:hover,
+.mod-articles-popular__item a:hover,
+.mod-articles-category__link:hover,
+.mod-related-items__item a:hover,
+.mod-tags-similar__item a:hover {
+ color: var(--link-hover-color, #0a58ca);
+ text-decoration: underline;
+}
+
+/* Article category module extras */
+.mod-articles-category__date,
+.mod-related-items__date {
+ display: block;
+ font-size: .85em;
+ color: var(--secondary-color, #6c757d);
+}
+
+.mod-articles-category__author {
+ font-size: .85em;
+ color: var(--secondary-color, #6c757d);
+}
+
+.mod-articles-category__intro,
+.mod-articles-news__intro {
+ margin-top: .25rem;
+ font-size: .9em;
+ color: var(--body-color, #212529);
+}
+
+.mod-articles-category__readmore,
+.mod-articles-news__readmore {
+ display: inline-block;
+ margin-top: .25rem;
+ font-size: .85em;
+ font-weight: 600;
+}
+
+/* Newsflash module */
+.mod-articles-news__item {
+ padding: .75rem 0;
+ border-bottom: 1px solid var(--border-color, #dee2e6);
+}
+
+.mod-articles-news__item:last-child {
+ border-bottom: 0;
+}
+
+.mod-articles-news__item-title {
+ margin-bottom: .25rem;
+ font-size: 1.1em;
+}
+
+/* Tags module */
+.mod-tags-popular__tag {
+ font-size: .85rem;
+ transition: background-color .15s ease;
+}
+
+.mod-tags-popular__tag:hover {
+ filter: brightness(1.15);
+}
+
+/* Search / Finder module */
+.mod-finder__form .input-group {
+ border-radius: var(--border-radius, .25rem);
+}
+
+/* Login module */
+.mod-login__greeting {
+ margin-bottom: 1rem;
+ font-weight: 500;
+}
+
+.mod-login__options {
+ margin-top: .5rem;
+}
+
+.mod-login__options li + li {
+ margin-top: .25rem;
+}
+
+/* Breadcrumbs module */
+.mod-breadcrumbs .breadcrumb {
+ background: transparent;
+ padding: 0;
+ margin-bottom: 0;
+}
+
+/* Footer module */
+.mod-footer__content {
+ font-size: .9em;
+ color: var(--secondary-color, #6c757d);
+}
+
/* HERO CONTAINER */
.hero-overlay {
position: relative;