Ship College Craft public site and point CI deploys at college_craft.
Deploy Beta / unit-tests (push) Successful in 21s
Deploy Beta / docker (push) Successful in 26s
Deploy Beta / deploy-beta (push) Successful in 6m25s

Replaces template branding with College Craft pages, assets, and copy, and
matches Gitea deploy workflows to the server-infra catalog name and master
branch so beta deploys actually run.

Closes #1
This commit is contained in:
2026-09-02 09:42:43 -05:00
parent b62357c8be
commit b46e192138
191 changed files with 2404 additions and 2041 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+103 -175
View File
@@ -1,121 +1,80 @@
/* EXIT Realty / MKDRealtor public brand overrides on Real Estate theme */
/* College Craft public brand overrides on the Propaint theme */
:root {
--monica-primary: #00626c;
--monica-primary-light: #008898;
--monica-ink: #212121;
--monica-muted: #6b7280;
--monica-surface: #f4f7f7;
--monica-border: #d9e3e4;
--cc-primary: #a92121;
--cc-primary-dark: #8a1a1a;
--cc-accent: #ffeb38;
--cc-ink: #212121;
--cc-muted: #6b7280;
--cc-surface: #f4f7f7;
--cc-border: #d9e3e4;
}
.footer-brand-row {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 8px;
/* Theme CSS starts `.page` at opacity:0 until a `.preloader` runs pageTransition.
This site has no preloader, so without this the homepage is a blank white screen. */
.page {
opacity: 1;
}
.footer-brand-row img {
height: 40px;
.rd-navbar-brand .brand img,
.rd-navbar-brand .brand-logo-dark,
.rd-navbar-brand .brand-logo-light {
height: 52px;
width: auto;
}
.about-subtitle {
font-size: 18px;
color: var(--monica-muted);
max-width: 200px;
}
.page .button-primary,
.page .button-primary:focus,
.page .button-primary:active,
.page .button-default,
.page .button-default:focus,
.page .button-default:active,
.cookie-consent-banner .button-primary,
.cookie-consent-banner .button-primary:focus,
.cookie-consent-banner .button-primary:active {
background-color: var(--monica-primary) !important;
border-color: var(--monica-primary) !important;
background-color: var(--cc-primary) !important;
border-color: var(--cc-primary) !important;
color: #fff !important;
}
.page .button-primary:hover,
.cookie-consent-banner .button-primary:hover {
background-color: var(--monica-primary-light) !important;
border-color: var(--monica-primary-light) !important;
color: #fff !important;
}
/* Theme default blue (#0045b6) → EXIT Realty teal on public chrome */
html .page .text-primary {
color: var(--monica-primary) !important;
}
.page .breadcrumbs-custom-path a,
.page a.link-default {
color: var(--monica-primary);
}
.page a.link-default:hover {
color: var(--monica-primary-light);
}
.page .button-gray-bordered:hover,
.page .button-gray-bordered:active,
.page .button-default:hover,
.page .button-default:active,
.page .button-accent-outline:hover,
.page .button-accent-outline:active,
.page .button-primary-outline:hover,
.page .button-primary-outline:active,
.page .button-primary-white:hover,
.page .button-primary-white:active,
.page .button.button-primary-lighten,
.page .button.button-primary-lighten:focus {
background-color: var(--monica-primary) !important;
border-color: var(--monica-primary) !important;
.cookie-consent-banner .button-primary:hover {
background-color: var(--cc-primary-dark) !important;
border-color: var(--cc-primary-dark) !important;
color: #fff !important;
}
.page .button.button-primary-lighten:hover,
.page .button.button-primary-lighten:active {
background-color: var(--monica-ink) !important;
border-color: var(--monica-ink) !important;
html .page .text-primary {
color: var(--cc-primary) !important;
}
.page .button-accent-outline,
.page .button-accent-outline:focus {
border-color: var(--monica-primary) !important;
.page a.link-default,
.page .contact-link,
.page .breadcrumbs-custom-path a {
color: var(--cc-primary);
}
.page .button-video:hover {
color: var(--monica-primary) !important;
}
.page .btn-primary,
.page .btn-primary:active,
.page .btn-primary:focus {
background: var(--monica-primary) !important;
border-color: var(--monica-primary) !important;
}
.page .box-chloe__icon,
.page .box-light-icon,
.page .box-minimal-icon .box-chloe__icon {
color: var(--monica-primary);
.page a.link-default:hover,
.page .contact-link:hover {
color: var(--cc-primary-dark);
}
/* Mobile drawer active/hover — theme uses #0045b6 */
.rd-navbar-fixed .rd-nav-item:hover .rd-nav-link,
.rd-navbar-fixed .rd-nav-item.focus .rd-nav-link,
.rd-navbar-fixed .rd-nav-item.active .rd-nav-link,
.rd-navbar-fixed .rd-nav-item.opened .rd-nav-link {
background: var(--monica-primary) !important;
color: #fff !important;
color: var(--cc-primary) !important;
}
/* Scroll-to-top (injected outside .page) */
.ui-to-top {
background: var(--monica-primary) !important;
background: var(--cc-primary) !important;
color: #fff !important;
box-shadow: 0 6px 16px rgba(0, 98, 108, 0.35);
}
.ui-to-top:hover,
.ui-to-top:focus {
background: var(--monica-primary-light) !important;
background: var(--cc-primary-dark) !important;
color: #fff !important;
}
/* Django flash messages */
.flash {
list-style: none;
margin: 0;
@@ -125,9 +84,9 @@ html .page .text-primary {
max-width: 1200px;
margin: 0 auto 8px;
padding: 12px 16px;
background: #e8f4f5;
border-left: 3px solid #00626c;
color: #0d4a52;
background: #fde8e8;
border-left: 3px solid var(--cc-primary);
color: #7f1d1d;
font-size: 14px;
}
.flash li.error,
@@ -137,8 +96,8 @@ html .page .text-primary {
color: #991b1b;
}
/* Form field errors */
.form-wrap .errorlist {
.form-wrap .errorlist,
.errorlist {
list-style: none;
margin: 6px 0 0;
padding: 0;
@@ -146,7 +105,6 @@ html .page .text-primary {
font-size: 13px;
}
/* Cookie consent — match public EXIT Realty teal brand */
.cookie-consent-banner {
position: fixed;
bottom: 0;
@@ -155,9 +113,8 @@ html .page .text-primary {
z-index: 11000;
padding: 1rem 1.25rem;
background: rgba(17, 24, 28, 0.96);
border-top: 2px solid var(--monica-primary);
border-top: 2px solid var(--cc-primary);
box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.28);
font-family: "Work Sans", sans-serif;
}
.cookie-consent-content {
max-width: 1200px;
@@ -174,8 +131,6 @@ html .page .text-primary {
font-size: 0.9375rem;
line-height: 1.45;
margin: 0;
font-family: "Work Sans", sans-serif;
font-weight: 400;
}
.cookie-consent-text-short {
display: none;
@@ -185,15 +140,6 @@ html .page .text-primary {
gap: 0.75rem;
flex-shrink: 0;
}
.cookie-consent-banner .button {
min-width: 10rem;
padding-left: 1.5rem;
padding-right: 1.5rem;
letter-spacing: 0.04em;
text-transform: uppercase;
font-family: "Work Sans", sans-serif;
font-weight: 500;
}
.visually-hidden {
position: absolute;
width: 1px;
@@ -209,7 +155,7 @@ html .page .text-primary {
background: none;
border: none;
padding: 0;
color: #7dd3da;
color: var(--cc-primary);
font: inherit;
font-size: 13px;
cursor: pointer;
@@ -217,11 +163,10 @@ html .page .text-primary {
}
.footer-link-btn:hover {
text-decoration: underline;
color: #a8e8ed;
color: var(--cc-primary-dark);
}
.cookie-consent-link {
color: #7dd3da;
color: var(--cc-accent);
text-decoration: underline;
text-underline-offset: 2px;
}
@@ -234,7 +179,7 @@ html .page .text-primary {
}
.legal-prose .legal-lead {
font-size: 1.05rem;
color: var(--monica-ink);
color: var(--cc-ink);
margin-bottom: 1.75rem;
}
.legal-prose h2 {
@@ -252,64 +197,20 @@ html .page .text-primary {
.legal-prose .legal-updated {
margin-top: 2.5rem;
font-size: 0.875rem;
color: var(--monica-muted);
color: var(--cc-muted);
}
/* Contact form — breathe on narrow viewports */
@media (max-width: 767.98px) {
.contact-form-section > .container {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
.contact-form-section .section-lg {
padding-top: 2.5rem;
padding-bottom: 2.5rem;
}
.contact-form-section h3 {
margin-bottom: 1.25rem;
padding-right: 0.25rem;
}
.contact-message-form .form-wrap {
margin-bottom: 0.35rem;
}
.contact-message-form .form-label-outside {
margin-bottom: 0.35rem;
}
.contact-message-form .row-10 {
margin-left: 0;
margin-right: 0;
}
.contact-message-form .row-10 > [class*="col-"] {
padding-left: 0;
padding-right: 0;
}
}
.footer-aside-copy {
text-align: right;
}
.footer-aside-copy .rights {
margin: 0;
}
.footer-made-by {
margin: 6px 0 0;
margin: 10px 0 0;
font-size: 13px;
color: #9ca3af;
font-family: "Work Sans", sans-serif;
color: #6b7280;
}
.footer-made-by a {
color: #d1d5db;
color: var(--cc-primary);
text-decoration: underline;
}
.footer-made-by a:hover {
color: #fff;
}
.footer-minimal .footer-made-by {
margin-top: 8px;
}
.footer-minimal-inner {
flex-wrap: wrap;
gap: 12px;
color: var(--cc-primary-dark);
}
.pref-check {
@@ -317,7 +218,7 @@ html .page .text-primary {
align-items: center;
gap: 10px;
font-size: 15px;
color: var(--monica-ink);
color: var(--cc-ink);
cursor: pointer;
}
.pref-check input {
@@ -325,6 +226,54 @@ html .page .text-primary {
height: 16px;
}
.testimonial-card {
height: 100%;
padding: 28px 24px;
background: #fff;
border: 1px solid #e5e5e5;
}
.testimonial-card blockquote {
margin: 0 0 16px;
font-size: 16px;
line-height: 1.6;
color: #333;
}
.testimonial-card cite {
display: block;
font-style: normal;
font-weight: 600;
color: var(--cc-primary);
font-size: 14px;
}
.choice-list {
list-style: none;
margin: 0;
padding: 0;
display: grid;
gap: 8px;
}
.choice-list label {
display: flex;
align-items: center;
gap: 10px;
font-weight: 500;
cursor: pointer;
}
.form-label-outside {
display: block;
margin-bottom: 6px;
font-weight: 500;
}
@media (max-width: 767.98px) {
.contact-form-section > .container {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
}
@media (max-width: 640px) {
.cookie-consent-banner {
padding: 0.625rem 0.75rem;
@@ -350,24 +299,3 @@ html .page .text-primary {
width: 100%;
}
}
/* Keep hero slide-2 heading visually aligned with slide-1 h1 (SEO: one h1). */
.swiper-slider-minimal .jumbotron-classic-content h1.font-weight-bold,
.swiper-slider-minimal .jumbotron-classic-content h2.font-weight-bold {
font-size: 2.5rem;
line-height: 1.15;
margin-bottom: 0.5rem;
}
@media (min-width: 768px) {
.swiper-slider-minimal .jumbotron-classic-content h1.font-weight-bold,
.swiper-slider-minimal .jumbotron-classic-content h2.font-weight-bold {
font-size: 3.5rem;
}
}
@media (min-width: 1200px) {
.swiper-slider-minimal .jumbotron-classic-content h1.font-weight-bold,
.swiper-slider-minimal .jumbotron-classic-content h2.font-weight-bold {
font-size: 4.5rem;
}
}