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
+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;
}
}