1<!DOCTYPE html> 2<html lang="en-US"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 8 9 <!-- This site is optimized with the Yoast SEO plugin v20.8 - https://yoast.com/wordpress/plugins/seo/ --> 10 <title>Search | Cape Fear Community College</title> 11 <meta name="description" content="Search - What are you waiting for? Get started today!" /> 12 <link rel="canonical" href="https://cfcc.edu/search/" /> 13 <meta property="og:locale" content="en_US" /> 14 <meta property="og:type" content="article" /> 15 <meta property="og:title" content="Search | Cape Fear Community College" /> 16 <meta property="og:url" content="https://cfcc.edu/search/" /> 17 <meta property="og:site_name" content="Cape Fear Community College" /> 18 <meta property="article:publisher" content="https://www.facebook.com/capefearcc/" /> 19 <meta property="article:modified_time" content="2025-06-16T11:38:23+00:00" /> 20 <meta name="twitter:card" content="summary_large_image" /> 21 <meta name="twitter:site" content="@cfcc" /> 22 <meta name="twitter:label1" content="Est. reading time" /> 23 <meta name="twitter:data1" content="1 minute" /> 24
24<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://cfcc.edu/search/","url":"https://cfcc.edu/search/","name":"Search | Cape Fear Community College","isPartOf":{"@id":"https://cfcc.edu/#website"},"datePublished":"2019-02-14T14:40:15+00:00","dateModified":"2025-06-16T11:38:23+00:00","breadcrumb":{"@id":"https://cfcc.edu/search/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://cfcc.edu/search/"]}]},{"@type":"BreadcrumbList","@id":"https://cfcc.edu/search/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://cfcc.edu/"},{"@type":"ListItem","position":2,"name":"Search"}]},{"@type":"WebSite","@id":"https://cfcc.edu/#website","url":"https://cfcc.edu/","name":"Cape Fear Community College","description":"Success starts here!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://cfcc.edu/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"}]}</script>
24 25 <!-- / Yoast SEO plugin. --> 26 27 28<link rel='dns-prefetch' href='//translate.google.com' /> 29<link rel='dns-prefetch' href='//www.google.com' /> 30<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 31<link rel="alternate" type="application/rss+xml" title="Cape Fear Community College » Feed" href="https://cfcc.edu/feed/" /> 32<link rel="alternate" type="application/rss+xml" title="Cape Fear Community College » Comments Feed" href="https://cfcc.edu/comments/feed/" /> 33<link rel='stylesheet' id='sbi_styles-css' href='https://cfcc.edu/wp-content/plugins/instagram-feed/css/sbi-styles.min.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 34<link rel='stylesheet' id='reset-style-css' href='https://cfcc.edu/wp-content/themes/pagecells/css/reset.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 35<link rel='stylesheet' id='bootstrap-style-css' href='https://cfcc.edu/wp-content/themes/pagecells/css/bootstrap.min.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 36<link rel='stylesheet' id='pagecells-css' href='https://cfcc.edu/wp-content/plugins/intelliwidget-framework/css/pagecells.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 37<link rel='stylesheet' id='intelliwidget-css' href='https://cfcc.edu/wp-content/plugins/intelliwidget-framework/css/intelliwidget.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 38<link rel='stylesheet' id='flexslider-style-css' href='https://cfcc.edu/wp-content/plugins/intelliwidget-framework/css/flexslider.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 39<link rel='stylesheet' id='iwmenuicons-css' href='https://cfcc.edu/wp-content/plugins/intelliwidget-framework/css/iwmenuicons.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 40<link rel='stylesheet' id='wp-block-library-css' href='https://cfcc.edu/wp-includes/css/dist/block-library/style.min.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 41<style id='safe-svg-svg-icon-style-inline-css' type='text/css'> 42.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{height:100%;max-height:100%;max-width:100%;width:100%} 43 44</style> 45<link rel='stylesheet' id='classic-theme-styles-css' href='https://cfcc.edu/wp-includes/css/classic-themes.min.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 46<style id='global-styles-inline-css' type='text/css'> 47body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
47--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale: url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale: url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow: url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red: url('#wp-duotone-blue-red');--wp--preset--duotone--midnight: url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow: url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green: url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange: url('#wp-duotone-blue-orange');--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
47.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 48.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;} 49:where(.wp-block-columns.is-layout-flex){gap: 2em;} 50.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;} 51</style> 52<link rel='stylesheet' id='google-language-translator-css' href='https://cfcc.edu/wp-content/plugins/google-language-translator/css/style.css?ver=3.0.1.17050194278' type='text/css' media='' /> 53<link rel='stylesheet' id='glt-toolbar-styles-css' href='https://cfcc.edu/wp-content/plugins/google-language-translator/css/toolbar.css?ver=3.0.1.17050194278' type='text/css' media='' /> 54<link rel='stylesheet' id='ctct_form_styles-css' href='https://cfcc.edu/wp-content/plugins/constant-contact-forms/assets/css/style.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 55<link rel='stylesheet' id='splash_notice-css' href='https://cfcc.edu/wp-content/plugins/splash-notice/assets/style.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 56<link rel='stylesheet' id='chld_thm_cfg_ext1-css' href='https://fonts.googleapis.com/css?family=Caveat%7CPoppins%3A400%2C600%7CNunito+Sans%3A300%2C300i%2C400%2C400i%2C600%2C600i%2C700%2C700i%7CDomine%3A400%2C700&ver=6846f8d17210e5ffca75b9f6be482cdc' type='text/css' media='all' /> 57<link rel='stylesheet' id='chld_thm_cfg_ext2-css' href='https://cfcc.edu/wp-content/themes/cfcc/css/cfccicons/style.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 58<link rel='stylesheet' id='chld_thm_cfg_ext3-css' href='https://cfcc.edu/wp-content/themes/cfcc/xicons/style.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 59<link rel='stylesheet' id='dashicons-css' href='https://cfcc.edu/wp-includes/css/dashicons.min.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 60<link rel='stylesheet' id='pagecells-parent-style-css' href='https://cfcc.edu/wp-content/themes/pagecells/style.css?ver=3.0.1.17050194278' type='text/css' media='all' /> 61<link rel='stylesheet' id='pagecells-style-css' href='https://cfcc.edu/wp-content/themes/cfcc/style.css?ver=3.0.1.17050194278' type='text/css' media='all' />
62<script type='text/javascript' src='https://cfcc.edu/wp-includes/js/jquery/jquery.min.js?ver=3.6.4' id='jquery-core-js'></script>
vendor: 1 bytes, line 62
62
63<script type='text/javascript' src='https://cfcc.edu/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.0' id='jquery-migrate-js'></script>
vendor: 1 bytes, line 63
63
64<script type='text/javascript' src='https://cfcc.edu/wp-content/plugins/splash-notice/assets/jquery.cookie.min.js?ver=6846f8d17210e5ffca75b9f6be482cdc' id='splash_persist-js'></script>
vendor: 1 bytes, line 64
64
65<script type='text/javascript' id='splash_notice-js-extra'> 66/* <![CDATA[ */ 67var splashNoticeVars = {"ajaxurl":"https:\/\/cfcc.edu\/wp-admin\/admin-ajax.php"}; 68/* ]]> */ 69</script>
vendor: 1 bytes, line 69
69
70<script type='text/javascript' src='https://cfcc.edu/wp-content/plugins/splash-notice/assets/script.js?ver=6846f8d17210e5ffca75b9f6be482cdc' id='splash_notice-js'></script>
vendor: 1 bytes, line 70
70
71<script type='text/javascript' src='https://cfcc.edu/wp-content/themes/cfcc/js/scripts.js?ver=1.0' id='cfcc-scripts-js'></script>
71 72<link rel="https://api.w.org/" href="https://cfcc.edu/wp-json/" /><link rel="alternate" type="application/json" href="https://cfcc.edu/wp-json/wp/v2/pages/48" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://cfcc.edu/xmlrpc.php?rsd" /> 73<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://cfcc.edu/wp-includes/wlwmanifest.xml" /> 74 75<link rel='shortlink' href='https://cfcc.edu/?p=48' /> 76<link rel="alternate" type="application/json+oembed" href="https://cfcc.edu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcfcc.edu%2Fsearch%2F" /> 77<link rel="alternate" type="text/xml+oembed" href="https://cfcc.edu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcfcc.edu%2Fsearch%2F&format=xml" /> 78<!-- start Simple Custom CSS and JS -->
79<script type="text/javascript"> 80function cfccSwitchTab(evt, tabId) { 81 var wrapper = evt.currentTarget.closest('.cfcc-program-wrapper'); 82 var panels = wrapper.querySelectorAll('.cfcc-tab-panel'); 83 var buttons = wrapper.querySelectorAll('.cfcc-tab-btn'); 84 85 panels.forEach(function(panel) { 86 panel.classList.remove('active'); 87 }); 88 buttons.forEach(function(btn) { 89 btn.classList.remove('active'); 90 }); 91 92 document.getElementById(tabId).classList.add('active'); 93 evt.currentTarget.classList.add('active'); 94} 95 96document.addEventListener('DOMContentLoaded', function() { 97 // Secondary DOM Guard: Verify body class matches post/page ID 43151 98 var bodyClasses = document.body.classList; 99 var isTargetPage = bodyClasses.contains('postid-43151') || bodyClasses.contains('page-id-43151'); 100 101 if (!isTargetPage) { 102 return; 103 } 104 105 var containers = document.querySelectorAll('.cfcc-js-program-container'); 106 107 containers.forEach(function(container) { 108 var programCode = container.getAttribute('data-program'); 109 var catalogYear = container.getAttribute('data-year'); 110 111 if (!programCode || !catalogYear) return; 112 113 var apiUrl = 'https://www3.cfcc.edu/programs/get_programs_of_study.php?program=' + programCode + '&year=' + catalogYear; 114 115 fetch(apiUrl) 116 .then(function(response) { 117 return response.text(); 118 }) 119 .then(function(rawText) { 120 // Check if response is HTML error page instead of JSON 121 if (rawText.trim().startsWith('<')) { 122 container.innerHTML = '<div class="cfcc-error-message"><strong>Connection Notice:</strong> Server returned HTML instead of JSON. Inspect console for raw output.</div>'; 123 console.error('CFCC Endpoint Error (HTML Returned):', rawText); 124 return; 125 } 126 127 var data = JSON.parse(rawText); 128 if (!data || !data.program) { 129 container.innerHTML = '<div class="cfcc-error-message">Program data structure missing in feed.</div>'; 130 return; 131 } 132 133 renderProgramData(container, data); 134 }) 135 .catch(function(error) { 136 console.error('CFCC Fetch Error:', error); 137 container.innerHTML = '<div class="cfcc-error-message">Unable to reach www3 endpoint. Check CORS permissions.</div>'; 138 }); 139 }); 140 141 function renderProgramData(container, data) { 142 var prog = data.program; 143 var reqs = data.requirements || []; 144 var html = ''; 145 146 html += '<div class="cfcc-program-header">'; 147 html += ' <h2 class="cfcc-program-title">' + escapeHtml(prog.title) + '</h2>'; 148 html += ' <div class="cfcc-program-meta">'; 149 html += ' <span class="cfcc-badge">' + escapeHtml(prog.degree) + ' - ' + escapeHtml(prog.degree_description) + '</span>'; 150 html += ' <span class="cfcc-meta-item">Code: <strong>' + escapeHtml(prog.id) + '</strong></span>'; 151 html += ' <span class="cfcc-meta-item">Division: <strong>' + escapeHtml(prog.division) + '</strong></span>'; 152 html += ' </div>'; 153 if (prog.description) { 154 html += ' <div class="cfcc-program-description">' + prog.description + '</div>'; 155 } 156 html += '</div>'; 157 158 html += '<h3 class="cfcc-section-title">Course Requirements</h3>'; 159 160 if (reqs.length > 0) { 161 reqs.forEach(function(reqBlock) { 162 if (reqBlock.groups && reqBlock.groups.length > 0) { 163 reqBlock.groups.forEach(function(group) { 164 html += '<div class="cfcc-course-group">'; 165 html += ' <h4 class="cfcc-group-heading">' + escapeHtml(group.label) + '</h4>'; 166 167 if (group.course_groups && group.course_groups.length > 0) { 168 group.course_groups.forEach(function(subGroup) { 169 if (subGroup.min_credits) { 170 html += '<p class="cfcc-instruction">Take at least <strong>' + subGroup.min_credits + ' credits</strong> from the following:</p>'; 171 } 172 173 html += '<table class="cfcc-table"><thead><tr>'; 174 html += '<th style="width:20%;">Course</th>';
175 html += '<th style="width:65%;">Title</th>'; 176 html += '<th style="width:15%; text-align:right;">Credits</th>'; 177 html += '</tr></thead><tbody>'; 178 179 if (subGroup.courses && subGroup.courses.length > 0) { 180 subGroup.courses.forEach(function(course) { 181 html += '<tr>'; 182 html += '<td class="cfcc-code">' + escapeHtml(course.name) + '</td>'; 183 html += '<td>' + escapeHtml(course.title) + '</td>'; 184 html += '<td style="text-align:right;">' + course.credits + '</td>'; 185 html += '</tr>'; 186 }); 187 } 188 189 html += '</tbody></table>'; 190 }); 191 } 192 html += '</div>'; 193 }); 194 } 195 }); 196 } else { 197 html += '<p>No requirements available.</p>'; 198 } 199 200 container.innerHTML = html; 201 } 202 203 function escapeHtml(text) { 204 if (!text) return ''; 205 return text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); 206 } 207});</script>
207 208<!-- end Simple Custom CSS and JS --> 209<!-- start Simple Custom CSS and JS -->
210<script type="text/javascript"> 211document.addEventListener("DOMContentLoaded", () => { 212 // 1. Safety Check: Ensure document.body exists and matches Page ID 44191 213 if (!document.body || !document.body.classList.contains("page-id-44191")) { 214 return; // Exit cleanly if on a different page 215 } 216 217 // 2. Add structural chat state classes to document root and body 218 if (document.documentElement) { 219 document.documentElement.classList.add("has-chat", "has-agent"); 220 } 221 document.body.classList.add("has-chat", "has-agent"); 222 223 // 3. Text Chat Button Listener (#sera-chat-launch) 224 const chatBtn = document.getElementById("sera-chat-launch"); 225 if (chatBtn) { 226 chatBtn.addEventListener("click", (e) => { 227 e.preventDefault(); 228 229 if (window.Shell451 && Shell451.Messenger451) { 230 // First parameter is null so no message is auto-sent; 231 // Second parameter tells Element451 to load Sera's settings. 232 Shell451.Messenger451.askAssistant( 233 null, 234 "cfcc.conversation_settings.1665253" 235 ); 236 } 237 }); 238 } 239 240 // 4. Voice Chat Button Listener (#sera-talk-launch) 241 const talkBtn = document.getElementById("sera-talk-launch"); 242 if (talkBtn) { 243 talkBtn.addEventListener("click", (e) => { 244 e.preventDefault(); 245 246 if (window.Shell451 && Shell451.Messenger451) { 247 Shell451.Messenger451.talkToAssistant( 248 "cfcc.conversation_settings.1665253", 249 null 250 ); 251 } 252 }); 253 } 254}); 255 256</script>
256 257<!-- end Simple Custom CSS and JS --> 258<!-- start Simple Custom CSS and JS -->
259<script type="text/javascript"> 260<!-- Combined Campaign Script: User Memory & Slide-Out Menu --> 261 262jQuery(document).ready(function($) { 263 264 // ========================================================================== 265 // FEATURE 1: USER PERSISTENCE (LOCAL STORAGE) 266 // ========================================================================== 267 268 // 1. Storage Keys 269 var cardKey = 'cfcc_last_selected_card'; 270 var nameKey = 'cfcc_last_selected_name'; 271 272 // 2. Read storage on load to see if this is a returning user 273 var lastSavedId = localStorage.getItem(cardKey); 274 var lastSavedName = localStorage.getItem(nameKey); 275 276 if (lastSavedId && lastSavedName) { 277 // Find the target card based on the stored ID 278 var targetCardCol = $('[data-card-id="' + lastSavedId + '"]'); 279 280 if (targetCardCol.length) { 281 // Reveal the Welcome Back Banner and inject the saved program name 282 $('#memory-program-name').text(lastSavedName); 283 $('#campaign-memory-banner').removeClass('d-none'); 284 285 // Apply the highlight visual class to the card wrapper 286 var targetCard = targetCardCol.find('.card'); 287 targetCard.addClass('last-selected-card'); 288 289 // Prepend a "Last Viewed" badge above the main title inside the card body 290 targetCard.find('.card-body').prepend('<span class="last-viewed-badge">Continue Where You Left Off</span>'); 291 } 292 } 293 294 // 3. Track clicks on CTA buttons to store the user's active intent 295 $('.prog-card-view .btn-primary').on('click', function() { 296 var parentCol = $(this).closest('[data-card-id]'); 297 298 if (parentCol.length) { 299 var programId = parentCol.attr('data-card-id'); 300 var programName = parentCol.attr('data-program-name'); 301 302 // Commit the values to the browser's persistent LocalStorage 303 localStorage.setItem(cardKey, programId); 304 localStorage.setItem(nameKey, programName); 305 } 306 }); 307 308 309 // ========================================================================== 310 // FEATURE 2: VERTICAL MENU & SLIDE-OUT DRAWER 311 // ========================================================================== 312 313 var flag = $('#menuFlagTrigger'); 314 var drawer = $('#campaignDrawer'); 315 var overlay = $('#drawerOverlay'); 316 var closeBtn = $('#drawerCloseBtn'); 317 318 // 1. Open the drawer when clicking the vertical flag 319 flag.on('click', function(e) { 320 e.preventDefault(); 321 drawer.addClass('drawer-open'); 322 overlay.addClass('overlay-active'); 323 324 // Hide the sticky flag while the drawer is open to prevent visual overlap 325 flag.css('opacity', '0'); 326 }); 327 328 // 2. Drawer Closure Actions 329 function closeDrawer() { 330 drawer.removeClass('drawer-open'); 331 overlay.removeClass('overlay-active'); 332 flag.css('opacity', '1'); 333 } 334 335 // 3. Bind all closure interactions 336 closeBtn.on('click', closeDrawer); 337 overlay.on('click', closeDrawer); 338 339 // Close on keyboard ESC press 340 $(document).on('keydown', function(e) { 341 if (e.key === "Escape") { 342 closeDrawer(); 343 } 344 }); 345 346});</script>
346 347<!-- end Simple Custom CSS and JS --> 348<!-- start Simple Custom CSS and JS -->
349<script type="text/javascript"> 350 function loadCalendar(url, calendarName) { 351 document.getElementById('eventCalendarFrame').src = url; 352 document.getElementById("eventCalendarTitle").textContent = calendarName; 353 } 354 355</script>
355 356<!-- end Simple Custom CSS and JS --> 357<!-- start Simple Custom CSS and JS --> 358<style type="text/css"> 359 360.cfcc-program-wrapper { 361 font-family: inherit; 362 margin: 20px 0; 363} 364.cfcc-program-header { 365 margin-bottom: 20px; 366 display: flex; 367 align-items: center; 368 gap: 15px; 369} 370.cfcc-badge { 371 background-color: #800000; 372 color: #ffffff; 373 padding: 4px 10px; 374 border-radius: 3px; 375 font-size: 0.85rem; 376 font-weight: bold; 377 text-transform: uppercase; 378} 379.cfcc-meta-text { 380 font-size: 0.95rem; 381 color: #555; 382} 383.cfcc-tab-buttons { 384 display: flex; 385 border-bottom: 2px solid #e2e8f0; 386 margin-bottom: 25px; 387} 388.cfcc-tab-btn { 389 background: none; 390 border: none; 391 padding: 10px 20px; 392 font-size: 1rem; 393 font-weight: bold; 394 color: #555; 395 cursor: pointer; 396 border-bottom: 3px solid transparent; 397 transition: all 0.2s ease; 398} 399.cfcc-tab-btn.active { 400 color: #800000; 401 border-bottom-color: #800000; 402} 403.cfcc-tab-panel { 404 display: none; 405} 406.cfcc-tab-panel.active { 407 display: block; 408} 409.cfcc-course-group { 410 margin-bottom: 30px; 411} 412.cfcc-group-heading { 413 color: #003366; 414 font-size: 1.15rem; 415 margin-bottom: 5px; 416} 417.cfcc-instruction { 418 font-size: 0.9rem; 419 color: #666; 420 margin-bottom: 10px; 421} 422.cfcc-table { 423 width: 100%; 424 border-collapse: collapse; 425 margin-bottom: 15px; 426} 427.cfcc-table th, .cfcc-table td { 428 padding: 10px 12px; 429 border-bottom: 1px solid #e2e8f0; 430 text-align: left; 431} 432.cfcc-table th { 433 background-color: #f8fafc; 434 font-size: 0.85rem; 435 text-transform: uppercase; 436 color: #475569; 437} 438.cfcc-code { 439 color: #800000; 440} 441</style> 442<!-- end Simple Custom CSS and JS --> 443<!-- start Simple Custom CSS and JS --> 444<style type="text/css"> 445.simcal-event-start, .simcal-event-end { 446 font-weight: bold !important; 447 font-size:1.2em !important; 448 color:#54575a 449} 450 451 452/* Container cleanup - only if scoped */ 453.simcal-calendar-list { 454 background: transparent !important; 455 border: none !important; 456} 457 458/* The Individual Card */ 459.simcal-calendar-list .simcal-event { 460 display: flex !important; 461 flex-direction: row; 462 align-items: center; 463 justify-content: space-between; 464/* background: #ffffff; 465 border: 1px solid #e0e0e0; 466 border-left: 6px solid #00467f; CFCC Navy 467 border-radius: 4px;*/ 468 padding: 15px 20px; 469 margin-bottom: 12px; 470/* box-shadow: 0 2px 4px rgba(0,0,0,0.05); 471 transition: transform 0.2s ease;*/ 472} 473 474.simcal-calendar-list .simcal-event:hover { 475 transform: translateY(-2px); 476 box-shadow: 0 4px 8px rgba(0,0,0,0.1); 477} 478 479/* Event Title & Details */ 480div.simcal-event-details p { 481 flex-grow: 1; 482 padding-right: 20px; 483 font-size:1em 484} 485.simcal-default-calendar-list .simcal-event-details .simcal-event-description p { 486 font-size:1.2em !important; 487} 488 489 490.simcal-event-title { 491 font-size: 1.1rem !important; 492 font-weight: 700 !important; 493 color: #00467f !important; 494 margin-bottom: 4px !important; 495 display: block; 496} 497 498/* Date/Time Stamp */ 499.simcal-event-start { 500 font-weight: 600; 501 color: #54575a; 502 font-size: 0.9rem; 503} 504 505.simcal-register-btn/*, 506.ems-card-view .simcal-event-description*/ { 507 display: none !important; 508} 509.simcal-event-description a { 510 font-weight:700; 511} 512/* Mobile Responsiveness: Stack them on small screens */ 513@media (max-width: 768px) { 514 .simcal-calendar-list .simcal-event { 515 flex-direction: column; 516 align-items: flex-start; 517 } 518} 519 520.simcal-events li{ 521/* margin:0px !important; 522 padding:0px !important;*/ 523 margin-left: 0px !important; 524} 525 526/* Container for the faculty list */ 527.faculty_list { 528 display: flex; 529 flex-wrap: wrap; 530 gap: 20px; 531 justify-content: center; 532 padding: 20px 0; 533} 534 535/* Individual Card Styling */ 536.faculty { 537 background: #ffffff; 538 border: 1px solid #e1e1e1; 539 border-radius: 8px; 540 padding: 20px; 541 text-align: center; 542 max-width: 300px; 543 box-shadow: 0 4px 6px rgba(0,0,0,0.05); 544} 545 546.faculty__image { 547 width: 150px; 548 height: 150px; 549 border-radius: 50%; 550 object-fit: cover; 551 margin-bottom: 15px; 552 border: 3px solid #00467f; /* CFCC Navy */ 553} 554 555.faculty__name { 556 font-size: 1.25rem; 557 color: #00467f; 558 margin: 10px 0 5px 0; 559 font-weight: 700; 560} 561 562.faculty__role { 563 font-size: 1rem; 564 color: #666; 565 margin-bottom: 15px; 566 text-transform: uppercase; 567 letter-spacing: 1px; 568} 569 570.faculty__office { 571 font-size: 0.85rem; 572 color: #999; 573 margin-bottom: 10px; 574 border-top: 1px solid #eee; 575 padding-top: 10px; 576} 577 578.full-bio-link { 579 display: inline-block; 580 margin: 5px 0; 581 color: #00467f; 582 text-decoration: none; 583 font-weight: 600; 584} 585 586.full-bio-link:hover { 587 text-decoration: underline; 588}</style> 589<!-- end Simple Custom CSS and JS --> 590<!-- start Simple Custom CSS and JS --> 591<style type="text/css"> 592/* 1. COMPLETELY HIDE GLOBAL HEADERS ON THIS PAGE */ 593.page-id-44083 #wpr14, .page-id-44225 #wpr14, .page-id-44262 #wpr14, .page-id-44275 #wpr14 { 594 display: none !important; 595} 596/* 2. STYLE THE STICKY VERTICAL FLAG (RIGHT-ALIGNED) */ 597.campaign-menu-flag { 598 position: fixed; 599 right: 0; /* Pinned to the right margin */ 600 left: auto !important; /* Force override of any legacy left-aligns */ 601 top: 35%; /* Centered vertically relative to your hero background */ 602 writing-mode: vertical-rl; /* Text flows vertically on the right margin */ 603 background-color: #00467f; /* CFCC Navy */ 604 color: #ffffff !important; 605 padding: 22px 14px; 606 font-size: 13px; 607 font-weight: 800; 608 text-transform: uppercase; 609 letter-spacing: 2.5px; 610 border-radius: 8px 0 0 8px !important; /* Rounded corners on the inner left edge only */ 611 cursor: pointer; 612 z-index: 9999; 613 box-shadow: -4px 0 15px rgba(0, 0, 0, 0.15); /* Cast shadow to the left */ 614 transition: all 0.25s ease-in-out; 615} 616 617.campaign-menu-flag:hover { 618 background-color: #ffc107; /* CFCC Gold */ 619 color: #00467f !important; 620 transform: translateX(-4px); /* Interactive slide-out shift to the left */ 621} 622 623/* 3. SLIDE-OUT CAMPAIGN DRAWER STYLING (RIGHT-ALIGNED) */ 624.campaign-drawer { 625 position: fixed; 626 top: 0; 627 right: -320px; /* Hidden entirely off-screen to the right */ 628 left: auto !important; 629 width: 320px; 630 height: 100vh; 631 background-color: #00213d; /* Extra Dark Theme Navy */ 632 z-index: 10000; 633 box-shadow: -5px 0 25px rgba(0, 0, 0, 0.3); /* Cast shadow to the left */ 634 transition: right 0.3s cubic-bezier(0.25, 1, 0.5, 1); 635 padding: 40px 30px; 636} 637 638/* Active open state for the drawer panel */ 639.campaign-drawer.drawer-open { 640 right: 0; 641 left: auto !important; 642} 643 644/* Modal backdrop overlay to darken the page background */ 645.campaign-drawer-overlay { 646 position: fixed; 647 top: 0; 648 left: 0; 649 width: 100vw; 650 height: 100vh; 651 background: rgba(0, 33, 61, 0.5); 652 z-index: 9998; 653 opacity: 0; 654 display: none; 655 transition: opacity 0.3s ease; 656} 657 658.campaign-drawer-overlay.overlay-active { 659 opacity: 1;
660 display: block; 661} 662 663/* 4. NAVIGATION LINKS INSIDE THE DRAWER */ 664.campaign-drawer .drawer-logo { 665 max-width: 180px; 666 margin-bottom: 40px; 667 filter: brightness(0) invert(1); /* Forces logo to white */ 668} 669 670.campaign-drawer ul { 671 list-style: none; 672 padding: 0; 673 margin: 0; 674} 675 676.campaign-drawer ul li { 677 padding: 15px 0; 678 border-bottom: 1px solid rgba(255, 255, 255, 0.08); 679} 680 681.campaign-drawer ul li a { 682 color: #ffffff !important; 683 font-size: 16px; 684 font-weight: 700; 685 text-decoration: none; 686 transition: color 0.2s ease; 687} 688 689.campaign-drawer ul li a:hover { 690 color: #ffc107 !important; /* Gold on hover */ 691} 692 693.campaign-drawer .drawer-close { 694 position: absolute; 695 top: 15px; 696 left: 20px; /* Shifted close button to the left edge of the right drawer */ 697 background: transparent; 698 border: none; 699 color: #ffffff; 700 font-size: 28px; 701 cursor: pointer; 702 line-height: 1; 703} 704/* ========================================================================== 705 PERSISTENT USER MEMORY STYLES 706 ========================================================================== */ 707 708/* The highlight state applied to the card the user clicked last time */ 709.last-selected-card { 710 border-color: #ffc107 !important; /* Accent Gold */ 711 box-shadow: 0 8px 24px rgba(0, 70, 127, 0.18) !important; 712 transform: translateY(-4px); 713} 714 715/* Custom indicator badge dynamically injected into the selected card */ 716.last-viewed-badge { 717 background-color: #ffc107 !important; 718 color: #00467f !important; 719 font-size: 0.65rem; 720 font-weight: 800; 721 text-transform: uppercase; 722 letter-spacing: 1px; 723 padding: 3px 10px; 724 border-radius: 3px; 725 display: inline-block; 726 margin-bottom: 12px; 727 animation: pulseGlow 2s infinite ease-in-out; 728} 729 730/* Subtle pulse animation to draw the returning user's eye */ 731@keyframes pulseGlow { 732 0% { opacity: 0.9; } 733 50% { opacity: 1; transform: scale(1.02); } 734 100% { opacity: 0.9; } 735} 736 737.prog-card-type-2 { 738 background-color: #00213d; 739 color: #ffffff !important; 740 font-size: 0.75rem; 741 font-weight: 800; 742 text-transform: uppercase; 743 letter-spacing: 1.5px; 744 padding: 8px 15px; 745 border-radius: 0px 5px 0 0; 746 display: block; 747 width: 100%; 748} 749/* 1. Gradient Overlay Pseudo-Element */ 750.header-overlay-gradient { 751 position: absolute; 752 top: 0; 753 left: 0; 754 right: 0; 755 bottom:0; 756 /* Gradient: Dark Navy (#002e5d) at 75% opacity to 25% black */ 757 background: linear-gradient(90deg, rgba(0, 46, 93, 0.75) 0%, rgba(0, 0, 0, 0.25) 70%); 758 z-index: 1; 759 pointer-events: none; /* Allows user clicks to pass through */ 760 height:510px; 761} 762 763/* 2. Position the logo absolutely over the background image */ 764.header-overlay-logo { 765 position: absolute; 766 top: 50px; /* Vertical offset from top edge */ 767 left: auto; 768 right: auto; /* Horizontal offset from left edge */ 769 max-width: 220px; /* Constrains logo size on desktop */ 770 height: auto; /* Maintains natural aspect ratio */ 771 z-index: 9999; /* Ensures image sits above background overlays */ 772 pointer-events: auto; 773} 774/* ========================================================================== 775 GENERIC CAMPAIGN & PROGRAM CARD VIEW STYLES 776 ========================================================================== */ 777 778/* Target icon style placeholder - easily customizable per program folder 779li.cfimgicon-prog a:before, .cfimgicon-prog:not(li):before { 780 background-image: url(https://cfcc.edu/wp-content/uploads/2026/03/program-default-icn.png); 781} 782*/ 783/* Global Form Header Cleanup 784div.gform_heading { 785 display: none !important; 786} 787*/ 788/* Universal Card Canvas Box */ 789.prog-card-view .card { 790 display: flex !important; 791 flex-direction: column; 792 background: #ffffff; 793 border: 1px solid #d1dce5 !important; 794 border-radius: 6px !important; 795 padding: 0; /* Let card body and header badges calculate padding */ 796 margin-bottom: 25px; 797 box-shadow: 0 2px 5px rgba(0,0,0,0.08); 798 transition: all 0.2s ease-in-out; 799} 800 801/* Interactive Border Transitions */ 802.prog-card-view .card:hover { 803 border-color: #00467f !important; 804 box-shadow: 0 4px 12px rgba(0,0,0,0.12); 805} 806 807/* Universal Primary Accent Border Modifier */ 808.prog-card-view .prog-accent-card { 809 border-left: 1px solid #d1dce5 !important; 810} 811 812/* Clear Typography Overrides */ 813.prog-card-view .card-title { 814 color: #00467f !important; 815 font-weight: 800 !important; 816} 817 818/* Universal Campaign Buttons */ 819.prog-card-view .btn-primary { 820 background-color: #00467f !important; 821 border-color: #00467f !important; 822 font-weight: 700; 823 text-transform: uppercase; 824 letter-spacing: 0.5px; 825 border-radius: 4px; 826 transition: background 0.2s ease; 827} 828 829.prog-card-view .btn-primary:hover { 830 background-color: #00213d !important; 831 border-color: #00213d !important; 832} 833 834/* Highlight Box / Value Proposition Wrapper */ 835.prog-why-box { 836 background-color: #f8fafc; 837 border: 1px solid #e2e8f0; 838 border-radius: 8px; 839 padding: 40px; 840} 841 842/* TOP CARD TYPE / REGISTRATION CLASSIFICATION BADGE */ 843.prog-card-type { 844 background-color: #00213d; /* Theme Dark Navy */ 845 color: #ffffff !important; 846 font-size: 0.75rem; 847 font-weight: 800; 848 text-transform: uppercase; 849 letter-spacing: 1.5px; 850 padding: 8px 15px; 851 border-radius: 5px 5px 0 0; /* Aligns with card top-rounded corners */ 852 display: block; 853 width: 100%; 854} 855 856/* Card Body Boundary Adjustments */ 857.prog-card-view .card-body { 858 border-radius: 0 0 6px 6px; 859} 860 861/* Hover Accent Shift for Top Type Badges */ 862.prog-card-view .card:hover .prog-card-type { 863 background-color: #00467f; /* Smooth transition shift to CFCC Navy */ 864 transition: background 0.2s ease; 865} 866 867/* UNIVERSAL CORNER RIBBON ARCHITECTURE */ 868.prog-ribbon-wrap, .prog-card-ribbon-wrap { 869 position: relative; 870 overflow: hidden; /* Clips the diagonal ribbon inside card boundaries */ 871} 872 873.prog-ribbon { 874 width: 200px; 875 height: 30px; 876 background-color: #ffc107; /* CFCC Accent Gold */ 877 color: #00467f; /* Theme Navy for high legibility */ 878 position: absolute; 879 top: 35px; 880 right: -45px; 881 text-align: center; 882 line-height: 30px; 883 letter-spacing: 1px; 884 font-weight: 800; 885 font-size: 10px; 886 text-transform: uppercase; 887 transform: rotate(45deg); 888 z-index: 100; 889 box-shadow: 0 2px 5px rgba(0,0,0,0.2); 890 pointer-events: none; /* Allows direct pointer clicks through to underlying layout links */ 891} 892 893/* Horizontal banner overwrite layout class */ 894.prog-card-ribbon-wrap .prog-ribbon { 895 top: 0px; 896 right: 0px; 897 font-size: 13px; 898 transform: rotate(0deg); 899} 900 901/* Strip Ghost Empty Paragraph Tags (Generated by CMS visual editors) */ 902.prog-card-view p:empty { 903 display: none !important; 904} 905 906#film-head {margin-top:35px;} 907 908 909/* MOBILE DEVICE RESPONSIVE ADJUSTMENTS */ 910@media (max-width: 767.98px) { 911 .prog-card-ribbon-wrap .prog-ribbon { 912 position: relative; 913 transform: rotate(0deg); 914 top: 0; 915 right: 0; 916 margin: 0 auto 20px auto; 917 display: inline-block; 918 width: 100%; 919 z-index: 10; 920 } 921 922 923 924/* 3. Responsive scaling for smaller tablet & mobile screens */ 925 926 .header-overlay-logo { 927 top: 15px; 928 left: 15px; 929 max-width: 150px; /* Shrinks logo to fit mobile viewports */ 930 } 931 932/* ========================================================================== 933 MOBILE HEADER IMAGE OVERRIDE (Film & Video Landing Page) 934 ========================================================================== */ 935 936 .page-id-44083 #cnr54 { 937 /* 1. Force the mobile square poster image to load */ 938 background-image: url('https://cfcc.edu/wp-content/uploads/2026/07/Film-and-Video-mobile.jpg') !important; 939 940 /* 2. Ensure the background image centers perfectly on mobile screens */ 941 background-position: center center !important; 942 background-size: cover !important; 943 944 /* 3. OPTIONAL: If the aspect ratio feels too squished/narrow on mobile, 945 uncomment the lines below to adjust the height to fit a square image */ 946 /* 947 padding-bottom: 100% !important; 948 height: auto !important; 949 */ 950 } 951 952 953 .page-id-44225 #cnr54 { 954 /* 1. Force the mobile square poster image to load */ 955 background-image: url('https://cfcc.edu/wp-content/uploads/2026/07/accounting-poster.jpg') !important; 956 957 /* 2. Ensure the background image centers perfectly on mobile screens */ 958 background-position: center center !important; 959 background-size: cover !important; 960 961 /* 3. OPTIONAL: If the aspect ratio feels too squished/narrow on mobile, 962 uncomment the lines below to adjust the height to fit a square image */ 963 /* 964 padding-bottom: 100% !important; 965 height: auto !important; 966 */ 967 } 968 969 970 .page-id-5 nav[aria-label="Breadcrumb"] { 971 display: none !important; 972} 973 #film-head {margin-top:25px;} 974} 975</style> 976<!-- end Simple Custom CSS and JS --> 977<!-- start Simple Custom CSS and JS --> 978<style type="text/css"> 979/* HSAAS CARD VIEW STYLES 980li.cfimgicon-aviation a:before, .cfimgicon-aviation:not(li):before { 981 background-image: url(https://cfcc.edu/wp-content/uploads/2026/03/hsaas-program-icn-e1774556873587.png ); 982}*/ 983 984div.gform_heading {
985 display:none!important; 986} 987.hsaas-card-view .card { 988 display: flex !important; 989 flex-direction: column; 990 background: #ffffff; 991 border: 1px solid #d1dce5 !important; 992 border-radius: 6px !important; 993 padding: 0; /* Let card-body handle padding */ 994 margin-bottom: 20px; 995 box-shadow: 0 2px 5px rgba(0,0,0,0.08); 996 transition: all 0.2s ease-in-out; 997} 998 999.hsaas-card-view .card:hover { 1000 border-color: #00467f !important; 1001 box-shadow: 0 4px 12px rgba(0,0,0,0.12); 1002} 1003 1004/* Primary Accent Border for Degree Tracks */ 1005.hsaas-card-view .hsaas-accent-card { 1006 border-left:1px solid #d1dce5 !important; /*6px solid #00467f !important;*/ 1007} 1008 1009.hsaas-card-view .card-title { 1010 color: #00467f !important; 1011 font-weight: 800 !important; 1012} 1013 1014.hsaas-card-view .btn-primary { 1015 background-color: #00467f !important; 1016 border-color: #00467f !important; 1017 font-weight: 700; 1018 text-transform: uppercase; 1019 letter-spacing: 0.5px; 1020} 1021 1022/* Value Proposition Section Styling */ 1023.hsaas-why-box { 1024 background-color: #f8fafc; 1025 border: 1px solid #e2e8f0; 1026 border-radius: 8px; 1027 padding: 40px; 1028} 1029 1030/* HSAAS CARD TYPE HEADER */ 1031.hsaas-card-type { 1032 background-color: #00213d; /* Extra Dark Navy */ 1033 color: #ffffff !important; 1034 font-size: 0.7rem; 1035 font-weight: 800; 1036 text-transform: uppercase; 1037 letter-spacing: 1.5px; 1038 padding: 6px 15px; 1039 border-radius: 5px 5px 0 0; /* Matches card top corners */ 1040 display: block; 1041 width: 100%; 1042} 1043 1044/* Ensure the card-body doesn't have top-rounded corners now */ 1045.hsaas-card-view .card-body { 1046 border-radius: 0 0 6px 6px; 1047} 1048 1049/* Hover effect for the new header */ 1050.hsaas-card-view .card:hover .hsaas-card-type { 1051 background-color: #00467f; /* Shifts to CFCC Navy on hover */ 1052 transition: background 0.2s ease; 1053} 1054 1055/* HSAAS CORNER RIBBON */ 1056.hsaas-ribbon-wrap, .hsaas-card-ribbon-wrap { 1057 position: relative; 1058 overflow: hidden; /* This keeps the ribbon from sticking out of the card */ 1059} 1060 1061.hsaas-ribbon { 1062 width: 200px; 1063 height: 30px; 1064 background-color: #ffc107; /* CFCC Gold */ 1065 color: #00467f; /* CFCC Navy for contrast */ 1066 position: absolute; 1067 top: -10px; 1068 right: 55px; 1069 text-align: center; 1070 line-height: 30px; 1071 letter-spacing: 1px; 1072 font-weight: 800; 1073 font-size: 12px; 1074 text-transform: uppercase; 1075 /* transform: rotate(45deg);*/ 1076 z-index: 100; 1077 box-shadow: 0 2px 5px rgba(0,0,0,0.2); 1078 pointer-events: none; /* Allows the stretched-link to work through the ribbon */ 1079} 1080/* Page-specific ribbon positioning override */ 1081.hsaas-card-ribbon-wrap .hsaas-ribbon { 1082 top: 0px; /* Moves it down slightly for a larger container */ 1083 right: 0px; /* Adjusts the horizontal overhang */ 1084 font-size:13px; 1085 transform: rotate(0deg); 1086} 1087 1088/* Cleanup for Ghosting P tags (Option 1) */ 1089.hsaas-card-view p:empty { 1090 display: none !important; 1091} 1092.rounded-bottom-only { 1093 border-radius: 0 0 5px 5px; 1094} 1095/* HSAAS FLAG MOBILE OVERRIDE */ 1096/* Target screens smaller than 768px (Bootstrap's mobile breakpoint) */ 1097@media (max-width: 767.98px) { 1098 /* Replace .coming-fall-flag with the actual class name of the banner */ 1099 .hsaas-card-ribbon-wrap .hsaas-ribbon { 1100 /* Step 1: Remove absolute positioning to make it flow with the text */ 1101 position: relative; 1102 1103 /* Step 2: Remove the 45-degree rotation */ 1104 transform: rotate(0deg); 1105 1106 /* Step 3: Clear previous offsets */ 1107 top: 0; 1108 right: 0; 1109 margin: 0 auto 20px auto; /* Centers it horizontally and adds bottom space */ 1110 1111 /* Step 4: Improve readability for the new horizontal layout */ 1112 display: inline-block; /* Or use 'block' for full width */ 1113 width: 100%; /* Fits the width of the text */ 1114 /*padding: 10px 20px; Adjust padding for better look when horizontal */ 1115 z-index: 10; /* Ensure it stays above content if needed */ 1116 } 1117} 1118 1119/* Workforce Edge Custom Callout Component */ 1120.workforce-edge-callout { 1121 background-color: #f7f7f7 !important; 1122 border: 1px solid #e2e8f0; 1123 border-top: 6px solid #00467f !important; 1124 font-size: 15px !important; 1125 line-height: 1.6; 1126} 1127 1128.workforce-edge-callout h4 { 1129 color: #00467f !important; 1130 font-weight: 700 !important; 1131 font-size: 1.35rem; 1132 margin-bottom: 15px; 1133 letter-spacing: -0.3px; 1134} 1135 1136.workforce-edge-callout ul { 1137 margin-bottom: 0; 1138 padding-left: 20px; 1139 color: #333333 !important; 1140}</style> 1141<!-- end Simple Custom CSS and JS --> 1142<!-- start Simple Custom CSS and JS --> 1143<style type="text/css"> 1144/* --- FULL-WIDTH BREAKOUT LOGIC --- */ 1145/* This forces the carousel to ignore parent container padding and hit the screen edges */ 1146.full-width-carousel { 1147 width: 100vw; 1148 position: relative; 1149 left: 50%; 1150 right: 50%; 1151 margin-left: -50vw; 1152 margin-right: -50vw; 1153 background-color: #00213d; /* Dark Navy base */ 1154 overflow: hidden; 1155} 1156 1157/* --- CAROUSEL INNER & ITEM SIZING --- */ 1158.career-area-slider .carousel-inner { 1159 height: 550px; 1160} 1161 1162.career-area-slider .carousel-item { 1163 height: 550px; 1164 background-color: #00213d; 1165} 1166 1167.career-area-slider .carousel-item img { 1168 object-fit: cover; /* Required for position to work */ 1169 height: 100%; 1170 width: 100%; 1171 filter: brightness(45%); 1172 transition: object-position 0.3s ease; /* Optional: smooths out any transitions */ 1173} 1174 1175/* --- CAPTION & TYPOGRAPHY --- */ 1176.career-area-slider .carousel-caption { 1177 bottom: 20%; 1178 left: 10%; 1179 text-align: left; 1180 max-width: 650px; 1181 padding-left: 25px; 1182 border-left: 6px solid #ffc107; /* Gold vertical accent */ 1183 right: auto; /* Overrides Bootstrap default centered behavior */ 1184 z-index: 10; 1185} 1186 1187/* Force White Title & Teaser */ 1188.career-area-slider .carousel-caption h3 { 1189 font-size: 2.8rem; 1190 font-weight: 700 !important; 1191 color: #ffffff !important; 1192 text-transform: uppercase; 1193 margin-bottom: 10px; 1194 line-height: 1.1; 1195} 1196 1197.career-area-slider .carousel-caption p { 1198 font-size: 1.2rem; 1199 font-weight: 400; 1200 color: #ffffff !important; 1201 margin-bottom: 25px; 1202 line-height: 1.5; 1203} 1204 1205/* --- THEME BUTTON STYLING --- */ 1206/* Uses your "button btn" class logic with CFCC Gold styling */ 1207.career-area-slider .button.btn { 1208 background-color: #ffc107 !important; 1209 color: #00213d !important; 1210 border: none !important; 1211 padding: 12px 30px !important; 1212 font-weight: 700 !important; 1213 text-transform: uppercase; 1214 display: inline-block; 1215 border-radius: 4px; 1216 transition: all 0.3s ease; 1217 text-decoration: none !important; 1218} 1219 1220.career-area-slider .button.btn:hover {
1221 background-color: #e0a800 !important; 1222 color: #000000 !important; 1223 box-shadow: 0 4px 8px rgba(0,0,0,0.3); 1224} 1225 1226/* --- CONTROLS & INDICATORS --- */ 1227.career-area-slider .carousel-control-prev, 1228.career-area-slider .carousel-control-next { 1229 width: 7%; 1230 z-index: 15; 1231 opacity: 0.7; 1232} 1233 1234.career-area-slider .carousel-control-prev:hover, 1235.career-area-slider .carousel-control-next:hover { 1236 opacity: 1; 1237} 1238 1239.career-area-slider .carousel-indicators { 1240 bottom: 20px; 1241 margin-bottom: 0; 1242} 1243 1244.career-area-slider .carousel-indicators li { 1245 background-color: #ffc107 !important; 1246 width: 12px; 1247 height: 12px; 1248 border-radius: 50%; 1249 margin: 0 6px; 1250 border: none; 1251 opacity: 0.5; 1252} 1253 1254.career-area-slider .carousel-indicators li.active { 1255 opacity: 1; 1256} 1257 1258/* --- MOBILE RESPONSIVENESS --- */ 1259@media (max-width: 991px) { 1260 .career-area-slider .carousel-caption { 1261 left: 5%; 1262 max-width: 80%; 1263 } 1264} 1265 1266@media (max-width: 767.98px) { 1267 .career-area-slider .carousel-inner, 1268 .career-area-slider .carousel-item { 1269 height: 450px; 1270 } 1271 1272 .career-area-slider .carousel-caption { 1273 bottom: 10%; 1274 left: 20px; 1275 right: 20px; 1276 padding-left: 15px; 1277 border-left-width: 4px; 1278 } 1279 1280 .career-area-slider .carousel-caption h3 { 1281 font-size: 1.8rem; 1282 } 1283 1284 .career-area-slider .carousel-caption p { 1285 font-size: 1rem; 1286 } 1287 1288 /* Ensure indicators don't clutter small mobile screens */ 1289 .career-area-slider .carousel-indicators { 1290 display: none; 1291 } 1292}</style> 1293<!-- end Simple Custom CSS and JS --> 1294<!-- start Simple Custom CSS and JS --> 1295<style type="text/css"> 1296 /* THE SUPER HAMMER: Suppress phantom WP paragraphs */ 1297 .oh-simple-alert-wrapper p:empty, 1298 .oh-simple-alert-wrapper p:blank, 1299 .oh-simple-alert-wrapper p:has(br:only-child) { 1300 display: none !important; 1301 margin: 0 !important; 1302 padding: 0 !important; 1303 } 1304 1305 /* Bar Styling */ 1306 .oh-simple-alert-wrapper { 1307 width: 100%; 1308 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; 1309 } 1310 1311 .oh-simple-bar { 1312 background-color: #ffc107; 1313 color: #00467f; 1314 border-bottom: 2px solid #00467f; 1315 padding: 12px 0; 1316 } 1317 1318 .oh-inner-wrap { 1319 max-width: 1200px; 1320 margin: 0 auto; 1321 padding: 0 20px; 1322 } 1323 1324 .oh-bar-content { 1325 display: flex; 1326 justify-content: center; 1327 align-items: center; 1328 gap: 20px; 1329 } 1330 1331 .oh-bar-text { 1332 font-weight: 700; 1333 font-size: 18px; 1334 color: #00467f; 1335 margin: 0 !important; /* Forces hammer compliance */ 1336 line-height: 1.2; 1337 } 1338 1339 /* Standard Button Styling for Bar Context */ 1340 .oh-bar-action .button { 1341 margin: 0 !important; 1342 white-space: nowrap; 1343 background-color: #00467f; 1344 color: #ffffff !important; 1345 padding: 10px 24px; 1346 border-radius: 4px; 1347 font-weight: 700; 1348 text-transform: uppercase; 1349 font-size: 14px; 1350 text-decoration: none !important; 1351 display: inline-block; 1352 } 1353 1354 .oh-bar-action .button:hover { 1355 background-color: #003366; 1356 } 1357 1358 /* Responsive Mobile Handling */ 1359 @media (max-width: 991px) { 1360 .oh-bar-content { 1361 flex-direction: column; 1362 text-align: center; 1363 gap: 15px; 1364 } 1365 .oh-bar-text { 1366 font-size: 16px; 1367 } 1368 }</style> 1369<!-- end Simple Custom CSS and JS --> 1370<!-- start Simple Custom CSS and JS --> 1371<style type="text/css"> 1372/* AVIATION CARD VIEW STYLES */ 1373li.cfimgicon-aviation a:before, .cfimgicon-aviation:not(li):before { 1374 background-image: url(https://cfcc.edu/wp-content/uploads/2026/03/aviation-program-icn-e1774556873587.png ); 1375} 1376 1377div.gform_heading { 1378 display:none!important; 1379} 1380.aviation-card-view .card { 1381 display: flex !important; 1382 flex-direction: column; 1383 background: #ffffff; 1384 border: 1px solid #d1dce5 !important; 1385 border-radius: 6px !important; 1386 padding: 0; /* Let card-body handle padding */ 1387 margin-bottom: 20px; 1388 box-shadow: 0 2px 5px rgba(0,0,0,0.08); 1389 transition: all 0.2s ease-in-out; 1390} 1391 1392.aviation-card-view .card:hover { 1393 border-color: #00467f !important; 1394 box-shadow: 0 4px 12px rgba(0,0,0,0.12); 1395} 1396 1397/* Primary Accent Border for Degree Tracks */ 1398.aviation-card-view .aviation-accent-card { 1399 border-left:1px solid #d1dce5 !important; /*6px solid #00467f !important;*/ 1400} 1401 1402.aviation-card-view .card-title { 1403 color: #00467f !important; 1404 font-weight: 800 !important; 1405} 1406 1407.aviation-card-view .btn-primary { 1408 background-color: #00467f !important; 1409 border-color: #00467f !important; 1410 font-weight: 700; 1411 text-transform: uppercase; 1412 letter-spacing: 0.5px; 1413} 1414 1415/* Value Proposition Section Styling */ 1416.aviation-why-box { 1417 background-color: #f8fafc; 1418 border: 1px solid #e2e8f0; 1419 border-radius: 8px; 1420 padding: 40px; 1421} 1422 1423/* AVIATION CARD TYPE HEADER */ 1424.aviation-card-type { 1425 background-color: #00213d; /* Extra Dark Navy */ 1426 color: #ffffff !important; 1427 font-size: 0.7rem; 1428 font-weight: 800; 1429 text-transform: uppercase; 1430 letter-spacing: 1.5px; 1431 padding: 6px 15px; 1432 border-radius: 5px 5px 0 0; /* Matches card top corners */ 1433 display: block; 1434 width: 100%; 1435} 1436 1437/* Ensure the card-body doesn't have top-rounded corners now */ 1438.aviation-card-view .card-body { 1439 border-radius: 0 0 6px 6px; 1440} 1441 1442/* Hover effect for the new header */ 1443.aviation-card-view .card:hover .aviation-card-type { 1444 background-color: #00467f; /* Shifts to CFCC Navy on hover */ 1445 transition: background 0.2s ease; 1446} 1447 1448/* AVIATION CORNER RIBBON */ 1449.aviation-ribbon-wrap, .aviation-card-ribbon-wrap { 1450 position: relative; 1451 overflow: hidden; /* This keeps the ribbon from sticking out of the card */ 1452} 1453 1454.aviation-ribbon { 1455 width: 200px; 1456 height: 30px; 1457 background-color: #ffc107; /* CFCC Gold */ 1458 color: #00467f; /* CFCC Navy for contrast */ 1459 position: absolute; 1460 top: 35px; 1461 right: -45px; 1462 text-align: center; 1463 line-height: 30px; 1464 letter-spacing: 1px; 1465 font-weight: 800; 1466 font-size: 10px; 1467 text-transform: uppercase; 1468 transform: rotate(45deg); 1469 z-index: 100; 1470 box-shadow: 0 2px 5px rgba(0,0,0,0.2); 1471 pointer-events: none; /* Allows the stretched-link to work through the ribbon */ 1472} 1473/* Page-specific ribbon positioning override */ 1474.aviation-card-ribbon-wrap .aviation-ribbon { 1475 top: 0px; /* Moves it down slightly for a larger container */ 1476 right: 0px; /* Adjusts the horizontal overhang */ 1477 font-size:13px; 1478 transform: rotate(0deg); 1479} 1480 1481/* Cleanup for Ghosting P tags (Option 1) */ 1482.aviation-card-view p:empty { 1483 display: none !important; 1484} 1485/* AVIATION FLAG MOBILE OVERRIDE */ 1486/* Target screens smaller than 768px (Bootstrap's mobile breakpoint) */ 1487@media (max-width: 767.98px) { 1488 /* Replace .coming-fall-flag with the actual class name of the banner */ 1489 .aviation-card-ribbon-wrap .aviation-ribbon { 1490 /* Step 1: Remove absolute positioning to make it flow with the text */ 1491 position: relative; 1492 1493 /* Step 2: Remove the 45-degree rotation */ 1494 transform: rotate(0deg); 1495 1496 /* Step 3: Clear previous offsets */ 1497 top: 0; 1498 right: 0; 1499 margin: 0 auto 20px auto; /* Centers it horizontally and adds bottom space */ 1500 1501 /* Step 4: Improve readability for the new horizontal layout */ 1502 display: inline-block; /* Or use 'block' for full width */ 1503 width: 100%; /* Fits the width of the text */ 1504 /*padding: 10px 20px; Adjust padding for better look when horizontal */ 1505 z-index: 10; /* Ensure it stays above content if needed */ 1506 } 1507}</style> 1508<!-- end Simple Custom CSS and JS --> 1509<!-- start Simple Custom CSS and JS --> 1510<style type="text/css"> 1511/* Add your CSS code here. 1512 1513For example: 1514.example { 1515 color: red; 1516} 1517 1518For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_
1518syntax.asp 1519 1520End of comment */ 1521.fc-event a 1522 { 1523 border: 1px solid #00467f !important; 1524 background-color: #00467f !important; 1525 color: #fff; 1526 font-size: .85em; 1527 cursor: default; 1528} 1529#menu-top-left { 1530 justify-content: space-between; 1531} 1532#menu-top-right { 1533 justify-content: space-between; 1534} 1535#intelliwidget_imagebuttons_5 .intelliwidget-menu-title a { 1536 background:#00467F; 1537} 1538 1539 1540 1541 1542/* 1. Base Container Setup */ 1543.flexmason-item .flexmason-content > * { 1544 position: absolute; 1545 height: 100%; 1546 width: 100%; 1547 left: 0; 1548 top: 0; 1549 box-sizing: border-box; 1550 padding: 0; 1551 margin: 0; 1552} 1553 1554/* 2. Aspect Ratio Keeper (Square or Portrait) */ 1555.flexmason-item .flexmason-content:before { 1556 display: block; 1557 padding-top: 100%; /* Creates a 1:1 square. Adjust if needed */ 1558 content: ''; 1559} 1560 1561/* 3. The Overlay (FIXED FOR CONTRAST) */ 1562.flexmason-item .flexmason-content > a:before { 1563 display: block; 1564 content: ''; 1565 height: 100%; 1566 width: 100%; 1567 left: 0; 1568 top: 0; 1569 transition: background 0.3s ease; /* Smooth color transition */ 1570 1571 /* FIX: Stronger Gradient. 1572 Instead of starting at 0% opacity, we start at 20% and go to 90% black at the bottom. 1573 This ensures text at the bottom always sits on dark grey/black. */ 1574 background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.6) 50%, rgba(0,0,0,0.95) 100%); 1575 z-index: 1; /* Ensures overlay sits on top of image but below text */ 1576} 1577 1578/* 4. Text Styling */ 1579.program-title-container { 1580 position: absolute; 1581 bottom: 0; 1582 left: 0; 1583 width: 100%; 1584 padding: 15px; 1585 z-index: 2; /* Ensures text sits on top of overlay */ 1586 text-align: center; /* Center align looks better in grids */ 1587 background: rgba(0,0,0,0.55) 1588} 1589 1590.flexmason-item h3.program-title, 1591.flexmason-item .program-subheading { 1592 color: #fff; 1593 /* FIX: Stronger Text Shadow for extra legibility */ 1594 text-shadow: 0px 0px 10px rgba(0,0,0,0.9); 1595 margin: 0; 1596 display: block; 1597} 1598 1599/* 5. Hover States (FIXED) */ 1600.flexmason-item:hover h3.program-title, 1601.flexmason-item:hover .program-subheading { 1602 /* Yellow (#ffbe36) on Black background ratio is 12.8:1 (PASS) */ 1603 color: #ffbe36; 1604} 1605 1606.flexmason-item:hover .flexmason-content > a:before { 1607 /* CRITICAL FIX: DO NOT REDUCE OPACITY. 1608 Instead, we keep it dark or make it slightly darker to make the yellow pop. */ 1609 background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.8) 50%, rgba(0,0,0,1) 100%); 1610 opacity: 1 !important; 1611} 1612 1613 1614/* for smaller phones no side scroll */ 1615 1616/* Fix Datepicker Horizontal Scroll on Mobile */ 1617@media screen and (max-width: 768px) { 1618 1619 .badge, .dropdown-header, .dropdown-item, .dropdown-toggle, .input-group-text, .navbar-brand, .progress-bar { 1620 white-space:normal !important; 1621 } 1622 1623 /* 1. Force the calendar popup to fit within the screen width */ 1624 #ui-datepicker-div { 1625 width: 90% !important; /* Use almost full width */ 1626 max-width: 350px !important; /* Don't let it get too huge */ 1627 left: 50% !important; /* Center it horizontally */ 1628 transform: translateX(-50%) !important; /* Perfect centering */ 1629 box-sizing: border-box; /* Include padding in width calc */ 1630 } 1631 1632 /* 2. Reduce internal padding so the calendar days fit */ 1633 .ui-datepicker table { 1634 font-size: 0.9em !important; /* Slightly smaller text */ 1635 margin: 0 !important; 1636 width: 100% !important; 1637 } 1638 1639 .ui-datepicker td span, 1640 .ui-datepicker td a { 1641 padding: 0.2em !important; /* Reduce click target padding slightly */ 1642 text-align: center !important; 1643 } 1644 1645 /* 3. Ensure the previous/next arrows don't push width out */ 1646 .ui-datepicker .ui-datepicker-prev, 1647 .ui-datepicker .ui-datepicker-next { 1648 width: 1.5em !important; 1649 height: 1.5em !important; 1650 } 1651 .header-image { 1652 max-width: 160px !important; 1653 }
1654 .footer .nowrap { 1655 line-height:3em; 1656 } 1657 1658 .img-enhanced:before, .testimonial-thumbnail-container:before, .bg-grid:before { 1659 display:none!important; 1660 } 1661} 1662 1663 1664@media only screen and (max-width: 500px) { 1665 1666#messenger-root { 1667 /* display:none !important;*/ 1668 } 1669} 1670 1671 1672 .eap-container { 1673 max-width: 1200px; 1674 margin: 20px auto; 1675 color: #333; 1676 font-size: 1rem; 1677 } 1678 .eap-table { 1679 width: 100%; 1680 border-collapse: collapse; 1681 margin-bottom: 40px; 1682 border: 1px solid #ddd; 1683 box-shadow: 0 2px 5px rgba(0,0,0,0.1); 1684 } 1685 .head { 1686 background-color: #333; 1687 color: #fff; 1688 text-transform: uppercase; 1689 letter-spacing: 1px; 1690 padding: 15px; 1691 text-align: center; 1692 font-size: 0.9rem; 1693 } 1694 .eap-table td, .eap-table th { 1695 padding: 15px; 1696 vertical-align: middle; 1697 line-height: 1.5; 1698 } 1699.eap-table td { 1700 border: 1px solid rgba(230,230,230,.9); 1701} 1702.eap-table thead, tr { border:none; } 1703 1704 /* Protocol Colors */ 1705 .row-hold { background-color: #682a7a; color: #ffffff; } 1706 .row-hold td { border:none; } 1707 .row-secure { background-color: #0071da; color: #ffffff; } 1708 .row-secure td { border:none; } 1709 .row-lockdown { background-color: #e01920; color: #ffffff; } 1710 .row-lockdown td { border:none; } 1711 .row-evacuate { background-color: #017f13; color: #ffffff; } 1712 .row-evacuate td { border:none; } 1713 .row-shelter { background-color: #f37b01; color: #000000; } 1714 .row-shelter td { border:none; } 1715 /* Column Sizing */ 1716 .col-action { width: 25%; font-weight: bold; } 1717 .col-staff { width: 37.5%; } 1718 .col-student { width: 37.5%; } 1719 .protocol-title { 1720 display: block; 1721 font-size: 1.75rem; 1722 text-align:center; 1723 } 1724 .protocol-desc { 1725 display: block; 1726 font-size: 1.4rem; 1727 font-weight: 600; 1728 font-style: italic; 1729 text-align:center; 1730 } 1731 .eap-table ul { 1732 margin: 5px 0 0 0; 1733 padding-left: 20px; 1734 } 1735 .eap-table h4 { 1736 margin: 25px 0 10px 0; 1737 text-decoration: underline; 1738 } 1739 @media (max-width: 768px) { 1740 .eap-table, .eap-table tbody, .eap-table tr, .eap-table td { 1741 display: block; 1742 width: 100%; 1743 } 1744 .eap-table thead { display: none; border:none; } 1745 .eap-table td { 1746 box-sizing: border-box; 1747 border: 1px solid rgba(230,230,230,1); 1748 } 1749 .eap-table td::before { 1750 content: attr(data-label); 1751 display: block; 1752 font-weight: bold; 1753 text-transform: uppercase; 1754 font-size: 0.7rem; 1755 margin-bottom: 5px; 1756 opacity: 0.7; 1757 } 1758 } 1759</style> 1760<!-- end Simple Custom CSS and JS --> 1761<!-- start Simple Custom CSS and JS --> 1762<style type="text/css"> 1763li.cfimgicon-badge a:before, .cfimgicon-badge:not(li):before { 1764 background-image: url(https://cfcc.edu/wp-content/themes/cfcc/css/cfccicons/svg-icons/cfcc-public-safety-icon.svg); 1765} 1766li.cfimgicon-publicservice a:before, .cfimgicon-publicservice:not(li):before { 1767 background-image: url(https://cfcc.edu/wp-content/themes/cfcc/css/cfccicons/svg-icons/cfcc-public-service-icon.svg); 1768} 1769 1770/* ========================================================= 1771 PUBLIC SAFETY PAGE - 320px / MOBILE AUDIT FIXES 1772 ========================================================= */ 1773 1774@media screen and (max-width: 768px) { 1775 1776 /* 1. EMERGENCY ALERT BAR (Stop the squish) 1777 Your current CSS forces a 65% / 35% split. At 320px, the text is unreadable 1778 and the image breaks the container. We need them to stack vertically. */ 1779 .emergency-alert-bar { 1780 flex-direction: column !important; /* Stack text on top of image */ 1781 text-align: center; 1782 padding: 15px 10px !important; 1783 } 1784 #intelliwidget-9 div.text-right { 1785 display:none; 1786 } 1787 1788 .emergency-alert-bar .alert-content, 1789 .emergency-alert-bar .alert-image { 1790 flex: 0 0 100% !important; /* Take up full width */ 1791 max-width: 100% !important; 1792 margin-bottom: 15px; /* Add spacing between stacked items */ 1793 } 1794 1795 /* 2. CIRCULAR IMAGE BUTTONS (Fix the padding blowout) 1796 Your custom CSS added 80px of left padding for the icon. On a 320px screen, 1797 this pushes long text right off the edge of the screen. */ 1798 .imagebuttons-circular .intelliwidget-menu-item a {
1799 padding: 1.5rem 1rem 1.5rem 60px !important; /* Reduce icon padding */ 1800 font-size: 0.95em; /* Scale font down slightly */ 1801 word-wrap: break-word; /* Force long titles to break instead of scroll */ 1802 } 1803 1804 /* 3. GLASS CARDS (Prevent rigid widths) 1805 Your .careers-glass-card has max-width: 400px. If it sits inside a container 1806 with padding, it will force a horizontal scroll on 320px devices. */ 1807 .careers-glass-card { 1808 max-width: 100% !important; 1809 margin-left: 0 !important; 1810 margin-right: 0 !important; 1811 box-sizing: border-box; /* Ensure borders don't add to 100% width */ 1812 } 1813 1814 /* 4. THE DARK TIMELINE (Fix negative margins) 1815 Your .cfcc-timeline-darkbg uses negative margins (-20px) to pull the 1816 numbers to the outside. On a small screen, this pulls them off the page! */ 1817 .cfcc-timeline-darkbg li:nth-child(odd):before, 1818 .cfcc-timeline-darkbg li:nth-child(even):before { 1819 /* Pull the timeline bubbles inside the box so they don't break the viewport */ 1820 position: relative !important; 1821 display: inline-block !important; 1822 margin: 0 auto 10px auto !important; 1823 left: auto !important; 1824 right: auto !important; 1825 } 1826 .cfcc-timeline-darkbg li:nth-child(odd), 1827 .cfcc-timeline-darkbg li:nth-child(even) { 1828 /* Reset the borders and margins so it flows in a straight vertical line */ 1829 margin: 0 0 15px 0 !important; 1830 border: 2px solid #00ADEF !important; 1831 border-radius: 10px !important; 1832 padding: 15px !important; 1833 text-align: center !important; 1834 } 1835 /* Hide the vertical white line since we are stacking them */ 1836 .cfcc-timeline-darkbg ul:before, 1837 .cfcc-timeline-darkbg ul:after { 1838 display: none !important; 1839 } 1840 1841 /* 5. PUBLIC SAFETY TABLES (BLET / Fire Academy Requirements) 1842 Force any standard tables on this page to allow swiping rather than breaking */ 1843 .cfcc-table { 1844 display: block !important; 1845 width: 100% !important; 1846 overflow-x: auto !important; 1847 -webkit-overflow-scrolling: touch; /* Smooth iOS scrolling */ 1848 } 1849} 1850 1851@media (max-width:600px) { 1852.imagebuttons-circular .intelliwidget-menu-item a { 1853 display: block; 1854 position: relative; 1855 border: 1px solid #ababab; 1856 -ms-flex-direction: column; 1857 flex-direction: column; 1858 text-align: left; 1859 text-decoration: none; 1860 background-color: transparent; 1861 color: #00467f; 1862 font-weight: 700; 1863 -moz-border-radius: 0; 1864 -webkit-border-radius: 0; 1865 -o-border-radius: 0; 1866 border-radius: 8px; 1867 padding: 2rem 1rem 2rem 80px; 1868} 1869}</style> 1870<!-- end Simple Custom CSS and JS --> 1871<!-- start Simple Custom CSS and JS --> 1872<style type="text/css"> 1873.emergency-alert-bar { 1874 display: flex; /* 1. Enable Flexbox */ 1875 1876 /* 2. Vertical Alignment: Aligns the content and image blocks to the vertical middle */ 1877 align-items: center; 1878 1879 /* 3. Horizontal Spacing: Distributes space evenly between the content and the image */ 1880 justify-content: space-evenly; 1881 1882 width: 100%; /* Ensure the bar uses full available width */ 1883 padding: 20px; /* Add internal padding */ 1884 /* background-color: #ff0000; /* Example: High-visibility emergency color */ 1885 /* color: white;*/ 1886} 1887 1888.alert-content { 1889 /* Set the proportional width for the text content (65% equivalent) */ 1890 flex: 0 0 65%; 1891 max-width: 65%; 1892} 1893 1894.alert-image { 1895 /* Set the proportional width for the image container (35% equivalent) */ 1896 flex: 0 0 35%; 1897 max-width: 35%; 1898 1899 /* Ensures the image is centered within its 35% container */ 1900 text-align: center; 1901} 1902 1903/* Cleanup for internal spacing, as H tags have default margins */ 1904.alert-content h2, 1905.alert-content h3, 1906.alert-content h4, 1907.alert-content p { 1908 margin: 0 0 5px 0; /* Tighten up vertical spacing for the emergency text */ 1909} 1910.alert-content h3, 1911.alert-content h4 { 1912 text-transform:none; 1913} 1914.alert-content h2 { 1915 font-weight:600; 1916} 1917 1918/* Ensure the image scales properly within its container */ 1919.alert-image img { 1920 max-width: 100%; 1921 height: auto; 1922 display: block; 1923 margin: 0 auto; 1924} 1925 1926</style> 1927<!-- end Simple Custom CSS and JS --> 1928<!-- start Simple Custom CSS and JS --> 1929<style type="text/css"> 1930/* OVERRIDE: Increase specificity to ensure the alert bar displays */ 1931.home #rw9a #intelliwidget-16 { 1932 display: flex !important; 1933} 1934 1935/* Base Container & Horizontal Centering 1936.home .alert-bar { 1937 text-align: center; 1938 margin:-0px 0px 20px 0px; 1939 padding-top:10px; 1940 padding-bottom:10px; 1941 background: #ffbe36; 1942}*/ 1943/* when using interactive bar */ 1944.home .alert-bar { 1945 text-align: center; 1946 margin:0px; 1947 padding:0px; 1948 background: #ffbe36; 1949} 1950.alert-bar-wrapper { 1951width:100% !important; 1952} 1953 1954/* Main Alert Content Block */ 1955.home #intelliwidget-16 { 1956 /* max-width: 900px; 1957 min-height: 80px; comment out when using interactive bar */ 1958 1959 margin: 0 auto; 1960 display: flex !important; 1961 1962} 1963 1964/* Vertical Alignment and Content Sizing */ 1965.home .alert-text { 1966 width: 100%; 1967 display: flex;
1968 align-items: center; 1969 padding-left: 15px; 1970 font-weight:500; 1971 font-size:120%; 1972 /*color: #FFFFFF;*/ 1973 color:#143552; 1974} 1975.home .alert-time { 1976 font-size:16px; 1977} 1978 1979.home .alert-button-container { 1980 width: 40%; 1981 display: flex; 1982 align-items: center; 1983 justify-content: flex-end; 1984 padding-right: 15px; 1985} 1986 1987/*@media only screen and (max-width: 600px) { 1988 .alert-time { 1989 display:none; 1990 } 1991} 1992 1993 Basic Button Styling 1994.home .alert-button-container .button { 1995 text-decoration: none; 1996 background-color: #0d47a1; 1997 color: white; 1998 padding: 10px 20px; 1999 border-radius: 5px; 2000 white-space: nowrap; 2001}*/</style> 2002<!-- end Simple Custom CSS and JS --> 2003<!-- start Simple Custom CSS and JS --> 2004<style type="text/css"> 2005#image-margin-right { 2006 margin-right: 2em !important; 2007} 2008 2009html { 2010 scroll-behavior: smooth; 2011} 2012 2013 2014.careers-glass-card { 2015 background: rgba(255, 255, 255, 0.3); 2016 border-radius: 15px; 2017 max-width: 400px; 2018 backdrop-filter: blur(10px); 2019 box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); 2020 border: 1px solid rgb(255, 255, 255); 2021 2022} 2023 2024.careers-glass-card p{ 2025 padding: 10px; 2026} 2027 2028.careers-glass-card img{ 2029 aspect-ratio: 16/10; 2030 width: 100%; 2031 object-fit: cover; 2032} 2033 2034.careers-large-text { 2035 font-size: clamp(3vw ,1rem + 6vw, 5em); 2036} 2037 2038</style> 2039<!-- end Simple Custom CSS and JS --> 2040<!-- start Simple Custom CSS and JS --> 2041<style type="text/css"> 2042.filter-item { 2043 transform: scale(1); 2044 transition: transform 0.3s ease; 2045 display: flex; 2046} 2047 2048.filter-item.hidden-item { 2049 transform: scale(0); 2050 display: none; 2051}</style> 2052<!-- end Simple Custom CSS and JS --> 2053<!-- start Simple Custom CSS and JS --> 2054<style type="text/css"> 2055.imagebutton-title-alt { 2056 justify-content: center; 2057 align-content: center; 2058 text-align: center; 2059 text-decoration: none; 2060 color: #fff; 2061 font-weight: 700; 2062 padding-top: .5rem; 2063} 2064.imagebutton-title-alt3 { 2065 justify-content: center; 2066 align-content: center; 2067 text-align: center; 2068 text-decoration: none; 2069 color: #fff; 2070 font-weight: 700; 2071 padding-top: .5rem; 2072} 2073 2074.imagebutton-title-alt a:hover { 2075 color: #ffbe36; 2076} 2077 2078.imagebutton-title-alt2 { 2079 justify-content: center; 2080 align-content: center; 2081 text-align: center; 2082 text-decoration: none; 2083 color: #fff; 2084 font-size:14px; 2085 line-height:1em; 2086 font-weight: 700; 2087 padding-top: .1rem; 2088} 2089.imagebutton-title-alt2 a:hover { 2090 color: #ffbe36; 2091} 2092p.imagebutton-title-alt3 { 2093 margin-bottom:.5rem; 2094}</style> 2095<!-- end Simple Custom CSS and JS --> 2096<!-- start Simple Custom CSS and JS --> 2097<style type="text/css"> 2098/* alternative accordion */ 2099.accordion-alt-heading { 2100 background-color: #00477F; 2101 color: white; 2102 padding: 10px; 2103} 2104 2105.accordion-alt-container { 2106 background-color: #f7f7f7; 2107 padding: 18px; 2108} 2109 2110.accordion-alt-heading .iwi-accordion-control:before { 2111 color: white; 2112} 2113 2114.accordion-alt-heading a { 2115 color: white; 2116} 2117 2118</style> 2119<!-- end Simple Custom CSS and JS --> 2120<!-- start Simple Custom CSS and JS --> 2121<style type="text/css"> 2122.cfcc-timeline-darkbg p { 2123 margin-bottom: 0; 2124 margin-left: 10px; 2125 margin-right: 10px; 2126} 2127.cfcc-timeline-darkbg ul:before, .cfcc-timeline-darkbg ul:after { 2128 content: ""; 2129 background: #fff; 2130 width: 0px; 2131 height: 60px; 2132 position: absolute; 2133 z-index: 2; 2134} 2135 2136.cfcc-timeline-darkbg ul:before { 2137 margin: 0 0 0 -1px; 2138} 2139 2140.cfcc-timeline-darkbg ul:after { 2141 margin: -50px 0 0 -1px; 2142} 2143 2144.cfcc-timeline-darkbg li { 2145 list-style-type: none; 2146 border: 2px solid; 2147 border-color: #00ADEF !important; 2148 margin:0 0 -2px 0; 2149 padding: 20px; 2150 counter-increment: li; 2151 position: relative; 2152} 2153 2154.cfcc-timeline-darkbg li:nth-child(odd):before, .cfcc-timeline-darkbg li:nth-child(even):before { 2155 content: counter(li); 2156 display: flex; 2157 -ms-flex-pack: center!important; 2158 justify-content: center!important; 2159 -ms-flex-align: center!important; 2160 align-items: center!important; 2161 2162 position: absolute; 2163 border-radius: 50%; 2164 height: 50px; 2165 width: 50px; 2166 background-color: #00ADEF; 2167 color: white; 2168 font-weight: bold; 2169 z-index: 3; 2170} 2171 2172.cfcc-timeline-darkbg li:nth-child(odd):before { 2173 right: 100%; 2174 margin-right: -20px; 2175} 2176 2177.cfcc-timeline-darkbg li:nth-child(even):before { 2178 left: 100%; 2179 margin-left: -20px; 2180} 2181 2182.cfcc-timeline-darkbg li:nth-child(odd) {
2183 border-right: none; 2184 border-left: 2px solid; 2185 border-top-left-radius: 10px; 2186 border-bottom-left-radius: 10px; 2187 margin-right: 30px; 2188 padding-right: 0; 2189} 2190 2191.cfcc-timeline-darkbg li:nth-child(even) { 2192 border-left: none; 2193 border-right: 2px solid; 2194 border-top-right-radius: 10px; 2195 border-bottom-right-radius: 10px; 2196 margin-left: 30px; 2197 padding-left: 0; 2198 text-align: right; 2199} 2200 2201.cfcc-timeline-darkbg li:first-child { 2202 border-top: none; 2203 border-top-right-radius:0; 2204 border-top-left-radius:0; 2205} 2206 2207.cfcc-timeline-darkbg li:last-child { 2208 border-bottom: none; 2209 border-bottom-right-radius:0; 2210 border-bottom-left-radius:0; 2211} 2212</style> 2213<!-- end Simple Custom CSS and JS --> 2214<!-- start Simple Custom CSS and JS --> 2215<style type="text/css"> 2216.cfcc-table { 2217 width: 100%; 2218 margin-bottom: 1rem; 2219 color: #212529; 2220 border-collapse: collapse; 2221} 2222 2223.cfcc-table th, 2224.cfcc-table td { 2225 padding: 0.75rem; 2226 vertical-align: top; 2227 border-top: 1px solid #dee2e6; 2228} 2229 2230.cfcc-table thead th { 2231 vertical-align: bottom; 2232 border-bottom: 2px solid #dee2e6; 2233} 2234 2235.cfcc-table tbody + tbody { 2236 border-top: 2px solid #dee2e6; 2237} 2238 2239.cfcc-table-bordered { 2240 border: 1px solid #dee2e6; 2241} 2242 2243.cfcc-table-bordered th, 2244.cfcc-table-bordered td { 2245 border: 1px solid #dee2e6; 2246} 2247 2248.cfcc-table-striped > tbody > tr:nth-of-type(odd) > * { 2249 --bs-cfcc-table-accent-bg: rgba(0, 0, 0, 0.05); 2250 color: var(--bs-cfcc-table-striped-color); 2251 background-color: var(--bs-cfcc-table-accent-bg); 2252} 2253 2254.cfcc-table-striped > tbody > tr:nth-of-type(odd) > * { 2255 background-color: #f8f9fa; 2256} 2257 2258 2259 2260</style> 2261<!-- end Simple Custom CSS and JS --> 2262 2263<link rel='stylesheet' id='30022-css' href='//cfcc.edu/wp-content/uploads/custom-css-js/30022.css?v=2882' type="text/css" media='all' /> 2264<style>p.hello{font-size:12px;color:darkgray;}#google_language_translator,#flags{text-align:left;}#google_language_translator{clear:both;}#flags{width:165px;}#flags a{display:inline-block;margin-right:2px;}#google_language_translator{width:auto!important;}div.skiptranslate.goog-te-gadget{display:inline!important;}.goog-tooltip{display: none!important;}.goog-tooltip:hover{display: none!important;}.goog-text-highlight{background-color:transparent!important;border:none!important;box-shadow:none!important;}#google_language_translator select.goog-te-combo{color:#32373c;}#google_language_translator{color:transparent;}body{top:0px!important;}#goog-gt-{display:none!important;}#glt-translate-trigger{left:20px;right:auto;}#glt-translate-trigger > span{color:#ffffff;}#glt-translate-trigger{background:#42296e;}.goog-te-gadget .goog-te-combo{width:100%;}</style><meta name="pageid" content="48"> 2265
2265<script> 2266(function($){ 2267 // 1. Run immediately on Document Ready 2268 $(document).ready(function() { 2269 2270 // --- YOUR EXISTING CODE --- 2271 $('.post-type-archive-directory .has-post-thumbnail').find('.contact-name').find('a').append('</br><span style="font-size: 12px;text-decoration: underline #046b7d dotted;color: #046b7d;font-weight: 500;">Read full profile <span class="iwicon-circle-arrow-right"></span></span>'); 2272 2273 // ADA FIX: Prevented this from targeting spans inside Gravity Forms 2274 $('#intelliwidget-7 ul li span:not(form span)').addClass('iwi-control iwi-menu-control').attr('aria-expanded', 'false'); 2275 $('#intelliwidget-7 .sub-menu li span').removeClass('iwi-control iwi-menu-control').attr('aria-expanded', ''); 2276 2277 // --- NEW ADA FIXES START HERE --- 2278 2279 // A. Menu & Toggle Fixes 2280 // ------------------------------------------ 2281 $( '.iwi-menu' ).each( function( ndx, el ){ 2282 var id = el.getAttribute( 'id' ); 2283 if( $(el).iwinterface ) { 2284 $( el ).iwinterface( { aria: 'menu', activeclass: 'open', bodyclass: 'undefined' === id ? false : id + '-open', overlayclass: 'iwi-overlay-scroll' } ); 2285 } 2286 }); 2287 2288 // Add labels to sub-menu toggle buttons (ADA FIX: Strictly ignoring forms!) 2289 $( '.iwi-menu-control:not(form .iwi-menu-control)' ).each(function() { 2290 var linkText = $(this).prev('a').text().trim(); 2291 $(this).attr( 'aria-label', linkText ? 'Toggle submenu for ' + linkText : 'Toggle submenu' ); 2292 }); 2293 2294 // Mobile Toggle accessibility 2295 $( '.iwi-mobile-toggle' ).attr('role', 'button'); 2296 2297 // B. Search Bar Fixes 2298 // ------------------------------------------ 2299 $( 'input.search-input' ).attr( 'aria-label', 'Search site content' ); 2300 2301 // C. Gravity Forms Universal Fix (WCAG 1.3.5) 2302 // ------------------------------------------ 2303 // Standard Fields 2304 $( '.ginput_container_email input' ).attr( 'autocomplete', 'email' ); 2305 $( '.ginput_container_phone input' ).attr( 'autocomplete', 'tel' ); 2306 $( '.ginput_container_website input' ).attr( 'autocomplete', 'url' ); 2307 2308 // Name Fields 2309 $( '.name_first input' ).attr( 'autocomplete', 'given-name' ); 2310 $( '.name_last input' ).attr( 'autocomplete', 'family-name' ); 2311 $( '.name_middle input' ).attr( 'autocomplete', 'additional-name' ); 2312 $( '.name_suffix input' ).attr( 'autocomplete', 'honorific-suffix' ); 2313 2314 // Address Fields 2315 $( '.address_line_1 input' ).attr( 'autocomplete', 'street-address' ); 2316 $( '.address_line_2 input' ).attr( 'autocomplete', 'address-line2' ); 2317 $( '.address_city input' ).attr( 'autocomplete', 'address-level2' ); 2318 $( '.address_state select, .address_state input' ).attr( 'autocomplete', 'address-level1' ); 2319 $( '.address_zip input' ).attr( 'autocomplete', 'postal-code' ); 2320 $( '.address_country select' ).attr( 'autocomplete', 'country' ); 2321 2322 $( 'body' ).removeClass( 'iwi-loading' ); 2323 }); 2324 2325 // 2. Run delayed (Wait for Google & External Scripts) 2326 $(window).on('load', function() { 2327 setTimeout(function() { 2328 // Google Translate Fix 2329 $('#goog-gt-votingForm input').each(function() { 2330 var inputName = $(this).attr('name'); 2331 $(this).attr('aria-label', 'Google Translate voting parameter ' + inputName); 2332 }); 2333 2334 // Datepicker Fix (Prevent horizontal scroll on mobile) 2335 // Just in case CSS doesn't catch it, we ensure it's centered 2336 if( window.innerWidth < 769 ) { 2337 $('#ui-datepicker-div').css({'left': '50%', 'transform': 'translateX(-50%)'}); 2338 } 2339 }, 1500); 2340 }); 2341 2342})(jQuery); 2343</script>
2343 2344<meta name="date" content="2025-06-16T11:38:23+00:00"> 2345<!-- Google Tag Manager -->
2346<script>
vendor: 327 bytes, lines 2346-2350
2346(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 2347new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 2348j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 2349'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 2350})(window,document,'script','dataLayer','
2350GTM-TNX265N8
vendor: 3 bytes, line 2350
2350');
2350</script>
2350 2351<!-- End Google Tag Manager --> 2352<!-- SilkTide -->
2353<script defer src="https://analytics.silktide.com/9f3da649550947f7cf479c13ff75d0fe.js"></script>
vendor: 1 bytes, line 2353
2353
2354<script> 2355 (function (s,i,l,k,y) { 2356 s[i] = s[i] || y; 2357 s[l] = s[l] || []; 2358 s[k] = function(e, p) { p = p || {}; p.event = e; p.time = Date.now(); s[l].push(p); }; 2359 s[k]('page_load'); 2360 })(window, 'stConfig', 'stEvents', 'silktide', {}); 2361</script>
2361 2362<!-- END SilkTide --> 2363 2364<!--
2365<script src="https://kit.fontawesome.com/af99ce5453.js" crossorigin="anonymous"></script>
2365 --> 2366 2367<!-- Snap Pixel Code -->
2368<script type='text/javascript'> 2369(function(e,t,n){if(e.snaptr)return;var a=e.snaptr=function() 2370{a.handleRequest?a.handleRequest.apply(a,arguments):a.queue.push(arguments)}; 2371a.queue=[];var s='script';r=t.createElement(s);r.async=!0; 2372r.src=n;var u=t.getElementsByTagName(s)[0]; 2373u.parentNode.insertBefore(r,u);})(window,document, 2374'https://sc-static.net/scevent.min.js'); 2375 2376snaptr('init', 'd503f4ef-0879-4156-b2c1-4b63d4895c94', { 2377'user_email': '__INSERT_USER_EMAIL__' 2378}); 2379 2380snaptr('track', 'PAGE_VIEW'); 2381 2382</script>
2382 2383<!-- End Snap Pixel Code --> 2384 2385<!-- Begin Constant Contact Active Forms
2386<script> var _ctct_m = "ca927ba6176edff62af30b20bc76cc66"; </script>
vendor: 1 bytes, line 2386
2386
2387<script id="signupScript" src="//static.ctctcdn.com/js/signup-form-widget/current/signup-form-widget.min.js" async defer></script>
2387--> 2388<!-- End Constant Contact Active Forms --> 2389 2390<!-- element451 -->
2391<script type="text/javascript" async="true" src="https://cfcc.shell.451.io/" id="shell451"></script>
2391 2392 2393<!-- monsido -->
2394<script type="text/javascript"> 2395 window._monsido = window._monsido || { 2396 token: "l09rLuPdPhIn1HcFsU66RA", 2397 }; 2398</script>
vendor: 1 bytes, line 2398
2398
2399<script type="text/javascript" async src="https://app-script.monsido.com/v2/monsido-script.js"></script>
2399 2400<!-- End monsido --> 2401 2402<!-- Meta Pixel Code -->
2403<script> 2404 !function(f,b,e,v,n,t,s) 2405 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 2406 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 2407 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 2408 n.queue=[];t=b.createElement(e);t.async=!0; 2409 t.src=v;s=b.getElementsByTagName(e)[0]; 2410 s.parentNode.insertBefore(t,s)}(window, document,'script', 2411 'https://connect.facebook.net/en_US/fbevents.js'); 2412 2413 // Initialize Pixel 1 2414 fbq('init', '2594080867298048'); 2415 // Initialize Pixel 2 2416 fbq('init', '1289396158203435'); 2417 2418 // Track PageView for both 2419 fbq('track', 'PageView'); 2420</script>
2420 2421<noscript> 2422 <img height="1" width="1" style="display:none" alt="" src="https://www.facebook.com/tr?id=2594080867298048&ev=PageView&noscript=1"/> 2423 <img height="1" width="1" style="display:none" alt="" src="https://www.facebook.com/tr?id=1289396158203435&ev=PageView&noscript=1"/> 2424</noscript> 2425<!-- End Meta Pixel Code --> 2426 <style type="text/css" id="wp-custom-css"> 2427 2428.pum-theme-20988 .pum-content, .pum-theme-cutting-edge .pum-content{ 2429 font-weight: 400; 2430 font-size: 1.125rem; 2431 line-height: 1.4; 2432color: #00467f; 2433} 2434 2435.pum-theme-20988 .pum-title, .pum-theme-cutting-edge .pum-title { 2436text-shadow: none; 2437 font-family: Poppins, sans-serif; 2438 font-weight: 400; 2439 font-size: 2rem; 2440 line-height: 1.2; 2441 color: #00467f; 2442} 2443 2444.pum-theme-20988 .pum-container, .pum-theme-cutting-edge .pum-container { 2445 font-family: "Nunito Sans",sans-serif; 2446 font-size: 1.5rem; 2447 font-weight:400; 2448 border: none; 2449 max-height: 80vh; 2450 overflow: visible; 2451 width: 95vw; 2452 max-width: 980px; 2453 box-sizing: border-box; 2454 -webkit-border-radius: .5rem; 2455 border-radius: .5rem; 2456 padding: 5vw; 2457 background-color: #fff; 2458 margin: 0; 2459 position: fixed; 2460 bottom: 50%; 2461 right: 50%; 2462 left:auto !important; 2463 top:auto !important; 2464 -webkit-transform: translateY(50%) translateX(50%); 2465 transform: translateY(50%) translateX(50%); 2466 transition: all .3s; 2467} 2468 2469.pum-theme-20988 .pum-content + .pum-close, .pum-theme-cutting-edge .pum-content + .pum-close { 2470 color: #fff; 2471border: none; 2472box-shadow: none; 2473text-shadow: none; 2474 height: 2rem; 2475 width: 2rem; 2476 display: block; 2477 -webkit-border-radius: 50%; 2478 border-radius: 50%; 2479 border: 3px solid transparent; 2480 color: #000; 2481 background-color: #fff; 2482 cursor: pointer; 2483 text-align: center; 2484 box-sizing: border-box; 2485 position: absolute; 2486 top: -2vw; 2487 right: -2vw; 2488 left: auto; 2489 font-size: 1.5rem; 2490 font-style: normal; 2491 font-weight: 700; 2492 font-family: sans-serif; 2493 line-height: 1; 2494} 2495 2496/* BBTEAM Jordan Added Image Box CSS */ 2497 2498.popmake-content { 2499 outline: none !important; 2500} 2501 2502ul.iw-custom-menu.row.three-col li { 2503 width: 33%; 2504} 2505 2506ul.iw-custom-menu.row.three-col li .bgcover { 2507 transition: 2s ease-in; 2508} 2509 2510ul.iw-custom-menu.row.three-col li:hover .bgcover { 2511 transform: scale( 1.375 ) rotate( -3deg ); 2512} 2513 2514ul.iw-custom-menu.row.three-col li .intelliwidget-menu-title { 2515 transition: background-color .3s ease; 2516} 2517 2518ul.iw-custom-menu.row.three-col li:hover .intelliwidget-menu-title { 2519 background: #00467f; 2520} 2521 2522@media screen and (max-width:900px) { 2523ul.iw-custom-menu.row.three-col li { 2524 width: 100%; 2525 } 2526 2527} 2528/* 2529@media screen and (max-width: 768px) { 2530.table td, .table th { 2531 border-top: 0!important; 2532 display: inherit!important; 2533 } 2534} 2535*/ 2536 2537/* end BBTEAM Jordan Added Image Box CSS */ 2538 2539.has-sticky-sidebar .sticky-sidebar { 2540 position: sticky; 2541 position: -webkit-sticky; 2542 top: 200px; 2543} 2544 2545.footer .xicon-twitter-x { 2546 display: inline-block; 2547 font-size: 2.5em; 2548 padding-left: .5em; 2549 text-decoration: none; 2550 line-height: .75; 2551} 2552 2553.video-container::after { 2554 content:''; 2555 top:0; 2556 left:0; 2557 height:100%; 2558 width:100%; 2559 background:rgba(0,0,0,0); 2560 position:absolute; 2561} </style> 2562 </head> 2563 2564<body class="page-template page-template-pagecells page-template-lyt5f page-template-pagecellslyt5f-php page page-id-48 ctct-pagecells"> 2565<a class="skip-link screen-reader-text" href="#content">Skip to content</a> 2566<div id="rw9a" class="layout-item-row alert-bar" ><div id="intelliwidget-16" class=" widget widget_intelliwidget"></div></div><div id="wpr14" class="layout-item-wrapper masthead bg-white" ><div id="rw2_outer" class="top-nav-container px-0 px-lg-3" ><div id="rw2" class="center-page layout-item-row d-flex flex-row" ><div id="top-left-nav" class="layout-item-menu d-none d-lg-block col-lg-4" ><div role="navigation" aria-label="Top Left Menu" class="menu-top-left-container"><ul id="menu-top-left" class="menu"><li id="menu-item-19614" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19614"><a href="/admissions/">Apply</a></li> 2567<li id="menu-item-19623" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19623"><a href="/campus-visits/">Visit CFCC</a></li> 2568<li id="menu-item-17467" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17467"><a href="https://cfcc.edu/request-information/">Request Information</a></li> 2569</ul></div></div><div id="cnr3e" class="layout-item-container mb-0" > <div class="bg-white text-center p-2 py-lg-0"> <a href="/" aria-label="Cape Fear Community College"> <img src="/wp-content/uploads/2019/06/cfcc-logo.png" height="98" width="271" alt="Cape Fear Community College" class="header-image" /> </a> </div> </div><div id="mn40" class="layout-item-menu d-none d-lg-block col-lg-4" ><div role="navigation" aria-label="Top Right Menu" class="menu-top-right-container"><ul id="menu-top-right" class="menu"><li id="menu-item-19615" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19615"><a href="/about/community-services/">Community Services</a></li> 2570<li id="menu-item-19616" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19616"><a href="https://wilsoncentertickets.com">Wilson Center</a></li> 2571<li id="menu-item-17468" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17468"><a href="https://cfcc.edu/foundation/">Donate</a></li> 2572</ul></div></div><div id="cnr41" class="layout-item-container d-flex d-lg-none col-2 mb-0
2572search-toggle-container" > <a href="#" class="toggle-search d-flex iwi-modal-toggle iwi-target-searchbox_mobile iwi-use-overlay" aria-label="Toggle Search"> <span class="iwicon-search"></span> </a> <div id="searchbox_mobile" class="searchbox p-5" style="display:none;"> <div class="searchbox"> <form class="searchform" action="/search/" aria-live="polite" ><!-- 2573 FIX 1: Add a dedicated error message container. 2574 This container is empty and hidden by default, but has the 2575 ARIA roles needed to announce messages to screen readers. 2576 --><div class="search-error" role="status" aria-live="polite" style="display: none; color: red; margin-bottom: 10px;"> </div><!-- Your existing search input and hidden fields --><input type="hidden" name="cx" value="004637514235636343015:yhzbsku25vo" autocomplete="off"> 2577 <input type="hidden" name="cof" value="FORID:11" autocomplete="off" /><!-- 2578 The search input field. We need to add aria-describedby 2579 to link it to our new error container. 2580 --><input name="q" class="search-input" type="text" maxlength="256" autocomplete="off" 2581 title="Search CFCC.edu" placeholder="Search CFCC" 2582 required /> 2583 2584 <input type="submit" autocomplete="off" class="search-button" name="submit" value="Search" /> 2585</form> </div> </div> </div><div id="cnr42" class="layout-item-container d-flex d-lg-none col-2 mb-0 mobile-toggle-container" > <a href="#" class="d-flex iwi-mobile-toggle iwi-use-overlay iwi-change-trans" data-iwi-clones=".menu-primary-nav-container,.menu-top-left-container,.menu-top-right-container" data-iwi-menus="#menu-primary-nav,#menu-primary-nav-1,#menu-top-right,#menu-top-left" aria-label="Toggle Menus"> <span class="iwicon-menu-lt"></span> </a> </div></div></div><div id="rw12_outer" class="bg-dark" ><div id="rw12" class="center-page layout-item-row d-none d-lg-block" ><div id="mnd" class=" layout-item-menu bg-dark" ><div role="navigation" aria-label="Main Menu" class="menu-primary-nav-container"><ul id="menu-primary-nav-1" class="primary-nav flex-row d-flex iwi-menu iwi-use-toggles iwi-change-fade iwi-use-hover iwi-menupane-slide"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-234"><a href="https://cfcc.edu/about/">About CFCC</a> 2586<ul class="sub-menu"> 2587 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-387"><a href="https://cfcc.edu/about/leadership/">College Leadership</a></li> 2588 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-29518"><a href="https://cfcc.edu/directory/">Faculty & Staff Directory</a></li> 2589 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-388"><a href="https://cfcc.edu/about/institutional-effectiveness-and-planning/accreditation/">Accreditation</a></li> 2590 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-415"><a href="https://cfcc.edu/academic-resources/academic-calendar/">Academic Calendar</a></li> 2591 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17338"><a href="/foundation/">Foundation</a></li> 2592 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17469"><a href="/human-resources/">Jobs at CFCC</a></li> 2593 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-390"><a href="https://cfcc.edu/about/statements-and-policies/">Statements and Policies</a> 2594 <ul class="sub-menu"> 2595 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20570"><a href="/statement-of-non-discrimination">Statement of Non-Discrimination</a></li> 2596 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20571"><a href="/office-of-student-affairs/title-ix-policies/">Title IX Policies</a></li> 2597 </ul> 2598</li> 2599 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-392"><a href="https://cfcc.edu/about/contact-us/">Contact Us</a></li> 2600 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-41455"><a href="https://cfcc.edu/viewbook/">Viewbook</a></li> 2601 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20516"><a href="https://cfcc.edu/college-catalogs/">Student Catalogs and Handbooks</a></li> 2602 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-393"><a href="https://cfcc.edu/about/campus-safety/">Campus Safety</a></li> 2603 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27656"><a href="https://cfcc.edu/heerf-disclosures/">HEERF Disclosures</a></li> 2604 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-394"><a href="https://cfcc.edu/about/parking-at-cfcc/">Parking at CFCC</a></li> 2605 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20178"><a href="https://cfcc.edu/rent-event-space/">Request Event Space</a></li> 2606 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20185"><a href="/category/now-at-cape-fear/">News</a></li> 2607 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-396"><a href="https://cfcc.edu/about/community-services/">Community Services</a></li> 2608 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-397"><a href="https://cfcc.edu/about/maps-locations/">Maps and Locations</a></li> 2609 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22739"><a href="https://cfcc.edu/marketing">Marketing</a></li> 2610 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19621"><a href="https://cfcc.edu/marketing/social-media-cfcc/">Social Media @ CFCC</a></li> 2611 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19622"><a href="/marketing/public-information-requests/">Public Information Requests</a></li> 2612 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31192"><a href="https://cfcc.edu/alumni/">Alumni</a></li> 2613 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-38366"><a href="https://cfcc.edu/about/demographics/">Demographics</a></li> 2614</ul> 2615</li> 2616<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-17476"><a href="/admissions/">
2616Admissions</a> 2617<ul class="sub-menu"> 2618 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17475"><a href="/admissions/admissions-steps/">Admissions Steps</a></li> 2619 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17473"><a href="/admissions/new-student-orientation/">New Student Orientation</a></li> 2620 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17472"><a href="/testing-services/">Testing Services</a></li> 2621 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20028"><a href="//cfcc.edu/records-registration/register-for-classes/">Registration Information</a></li> 2622 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17474"><a href="/admissions/health-sciences-enrollment/">Health Sciences Admissions</a></li> 2623 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17470"><a href="/paying-for-cfcc/tuition-and-fees/">Tuition and Fees</a></li> 2624 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24646"><a href="https://cfcc.edu/admissions/residency-information/">Residency Information</a></li> 2625 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-34687"><a href="https://cfcc.edu/admissions/bienvenidos/">¡Bienvenidos!</a></li> 2626</ul> 2627</li> 2628<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-111"><a href="https://cfcc.edu/academics/">Academics</a> 2629<ul class="sub-menu"> 2630 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-409"><a href="https://cfcc.edu/academics/programs-of-study/">Programs of Study</a></li> 2631 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19647"><a href="/cape-fear-online">Online Learning</a></li> 2632 <li class="iwi-no-toggle menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-19646"><a href="https://cfcc.edu/division/university-transfer/">University Transfer Programs</a> 2633 <ul class="sub-menu"> 2634 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20886"><a href="https://cfcc.edu/advising/university-transfer-guide/">University Transfer Guide</a></li> 2635 </ul> 2636</li> 2637 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24422"><a href="https://cfcc.edu/division/nursing-health-sciences/">Health and Human Services Programs</a></li> 2638 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24477"><a href="https://cfcc.edu/division/math-engineering-technology-science/">Math, Engineering, Technology, and Science</a></li> 2639 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40806"><a href="https://cfcc.edu/division/education/">Education</a></li> 2640 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24478"><a href="https://cfcc.edu/division/liberal-arts-languages-social-sciences/">Liberal Arts, Languages, and Social Sciences</a></li> 2641 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-42812"><a href="https://cfcc.edu/academics/programs-of-study/aviation-programs/">Aviation Programs</a></li> 2642 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24479"><a href="https://cfcc.edu/division/marine-technology/">Marine Technology</a></li> 2643 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40805"><a href="https://cfcc.edu/division/public-safety/">Public Safety</a></li> 2644 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24480"><a href="https://cfcc.edu/division/education-public-service/">Public Service</a></li> 2645 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24481"><a href="https://cfcc.edu/division/business-information-technology/">Business and Information Technology</a></li> 2646 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24482"><a href="https://cfcc.edu/division/fine-arts-film-design/">Fine Arts, Film, and Design</a></li> 2647 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24483"><a href="https://cfcc.edu/division/vocational-trade/">Career and Technical</a></li> 2648 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-19652"><a href="/records-registration/register-for-classes/">Register for Classes</a> 2649 <ul class="sub-menu"> 2650 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19654"><a href="/records-registration/how-to-register/">How to Register</a></li> 2651 </ul> 2652</li> 2653 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-33297"><a href="https://cfcc.edu/high-school-students/">For High School Students</a> 2654 <ul class="sub-menu"> 2655 <li class="menu-item menu-item-type-taxonomy menu-item-object-linkage menu-item-19868"><a href="https://cfcc.edu/career-and-college-promise">Career and College Promise (Dual Enrollment)</a></li> 2656 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-33298"><a href="https://cfcc.edu/division/ccp-workforce-continuing-education-
2656pathways/">Workforce Continuing Education</a></li> 2657 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-33299"><a href="https://cfcc.edu/career-and-college-promise/cooperative-innovative-high-schools/">Cooperative Innovative High Schools</a></li> 2658 </ul> 2659</li> 2660 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19655"><a href="/records-registration/request-transcript/">Request a Transcript</a></li> 2661</ul> 2662</li> 2663<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-116"><a href="https://cfcc.edu/services-and-support/">Services & Support</a> 2664<ul class="sub-menu"> 2665 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17333"><a href="/counseling/">Counseling</a></li> 2666 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17331"><a href="/advising/">Academic Advising</a></li> 2667 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-41063"><a href="https://cfcc.edu/boost/">Boost Program</a></li> 2668 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17332"><a href="/career-services/">Career Services</a></li> 2669 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28442"><a href="https://cfcc.edu/admissions/health-sciences-admissions/">Health Sciences Enrollment Center</a></li> 2670 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-427"><a href="https://cfcc.edu/about/parking-at-cfcc/">Parking Services</a></li> 2671 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19591"><a href="/testing-services/">Testing Services</a></li> 2672 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17471"><a href="/records-registration/">Records and Registration</a></li> 2673 <li class="menu-item menu-item-type-taxonomy menu-item-object-linkage menu-item-19662"><a href="https://cfcc.edu/library">Library</a></li> 2674 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17337"><a href="/learning-lab/tutoring/">Tutoring</a></li> 2675 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19661"><a href="/counseling/personal-support/">Personal Support</a></li> 2676 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17336"><a href="/student-accessibility-services/">Student Accessibility Services</a></li> 2677 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19551"><a href="/veterans/">Veterans Center</a></li> 2678 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-425"><a href="https://cfcc.edu/about/campus-safety/">Campus Safety</a></li> 2679 <li class="menu-item menu-item-type-taxonomy menu-item-object-linkage menu-item-19663"><a href="https://cfcc.edu/bookstore">Sea Devil Bookstore</a></li> 2680 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19545"><a href="/office-of-student-affairs/">Student Affairs</a></li> 2681 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20329"><a href="https://my.cfcc.edu/web/helpdesk/home">Student Help Desk</a></li> 2682 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20897"><a href="https://cfcc.edu/food-pantry/">CFCC Food Pantry</a></li> 2683 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-30108"><a href="https://cfcc.edu/student-life/mentoring-program/">Student Mentoring Program</a></li> 2684 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31699"><a href="https://cfcc.edu/cape-fear-online/online-services/">Canvas Help</a></li> 2685 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-32851"><a href="https://cfcc.edu/drop-in-childcare/">Drop-In Childcare</a></li> 2686</ul> 2687</li> 2688<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-114"><a href="https://cfcc.edu/paying-for-cfcc/">Paying For CFCC</a> 2689<ul class="sub-menu"> 2690 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17478"><a href="/paying-for-cfcc/tuition-and-fees/">Tuition and Fees</a></li> 2691 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-430"><a href="https://cfcc.edu/paying-for-cfcc/pay-your-tuition/">Pay Your Tuition</a></li> 2692 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-431"><a href="https://cfcc.edu/paying-for-cfcc/payment-plan/">Payment Plan</a></li> 2693 <li class="iwi-no-toggle menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-19535"><a href="/financial-aid/">Financial Aid</a> 2694 <ul class="sub-menu"> 2695 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19533"><a href="/foundation/money-for-college/">
2695Scholarships</a></li> 2696 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19534"><a href="/financial-aid/grants/">Grants</a></li> 2697 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19532"><a href="/financial-aid/loans/">Loans</a></li> 2698 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19575"><a href="/financial-aid/federal-work-study/">Work Study</a></li> 2699 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19537"><a href="/financial-aid/financial-aid-forms/">Financial Aid Forms</a></li> 2700 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19548"><a href="/financial-aid/satisfactory-academic-progress-policy-2/">Keeping Your Financial Aid</a></li> 2701 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19664"><a href="/financial-aid/frequently-asked-questions">Frequently Asked Questions</a></li> 2702 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19665"><a href="//cfcc.edu/resources/netprice/">Net Price Calculator</a></li> 2703 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19553"><a href="/financial-aid/important-dates/">Important Dates</a></li> 2704 </ul> 2705</li> 2706 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-40782"><a href="https://cfcc.edu/paying-for-cfcc/managing-your-personal-finances/">Managing Your Personal Finances</a></li> 2707</ul> 2708</li> 2709<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-19613"><a href="/continuing-education/">Workforce Development</a> 2710<ul class="sub-menu"> 2711 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19626"><a href="/continuing-education/schedule-of-classes/">Schedule of Classes</a></li> 2712 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19598"><a href="/job-training/">Job Training</a></li> 2713 <li class="iwi-no-toggle menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-19599"><a href="/business-and-industry-services/">Business and Industry Services</a> 2714 <ul class="sub-menu"> 2715 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19944"><a href="//cfcc.edu/business-and-industry-services/corporate-training-workforce-development/">Corporate Training</a></li> 2716 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19600"><a href="/small-business-center/">Small Business Center</a></li> 2717 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22666"><a href="https://cfcc.edu/military-business-center/">NC Military Business Center</a></li> 2718 </ul> 2719</li> 2720 <li class="iwi-no-toggle menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-19601"><a href="/academic-career-readiness/">Academic and Career Readiness</a> 2721 <ul class="sub-menu"> 2722 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19628"><a href="https://cfcc.edu/academic-career-readiness/adult-high-school/">Adult High School</a></li> 2723 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19630"><a href="/academic-career-readiness/english-as-a-second-language/">English as a Second Language</a></li> 2724 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19935"><a href="//cfcc.edu/academic-career-readiness/high-school-equivalency/">High School Equivalency (GED®)</a></li> 2725 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19627"><a href="/academic-career-readiness/resume-writing-interview-skills/">Resume Writing & Interview Skills</a></li> 2726 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19936"><a href="//cfcc.edu/academic-career-readiness/career-discovery/">Career Discovery</a></li> 2727 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19937"><a href="/academic-career-readiness/integrated-education-and-training/">Integrated Education and Training (IET)</a></li> 2728 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43645"><a href="https://cfcc.edu/academic-career-readiness/bridge-to-independence-program/">Bridge to Independence</a></li> 2729 </ul> 2730</li> 2731 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-24061"><a href="https://cfcc.edu/continuing-education/apprenticeship-programs/">Apprenticeships</a></li> 2732 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19602"><a href="/community-enrichment/">Community Enrichment</a></li> 2733 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19605"><a href="/division/public-safety/">Fire, EMS, Law Training</a></li> 2734 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19636"><a href="/continuing-education/online-classes/">Online Classes</a></li> 2735 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19656"><a href="/records-registration/request-transcript/">Request a Transcript</a></li> 2736 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-25165"><a href="https://cfcc.edu/continuing-education/summer-camps-and-programs/">Summer Camps and Programs</a> 2737 <ul class="sub-menu"> 2738 <li class="menu-item menu-item-type-taxonomy menu-item-object-linkage menu-item-19843"><a href="/continuing-education/summer-camps/">Summer Camps</a></li> 2739 </ul> 2740</li> 2741</ul> 2742</li> 2743<li class="menu-item menu-item-type-taxonomy menu-item-object-linkage menu-item-has-children menu-item-19800"><a href="https://cfcc.edu/student-life">Student Life</a> 2744<ul class="sub-menu"> 2745 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19474"><a href="https://www.goseadevils.com">Athletics</a></li> 2746 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19803"><a href="/student-life/clubs-organizations/">Student Clubs and Organizations</a></li> 2747 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28384"><a href="https://cfcc.edu/student-life/literary-and-arts-publications/">Literary & Arts Publications</a></li> 2748 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-41368"><a href="https://cfcc.edu/paying-for-cfcc/managing-your-personal-finances/">Managing Your Personal Finances</a></li> 2749 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20025"><a href="https://cfcc.edu/student-life/student-life/student-achievement/">Student Achievement</a></li> 2750 <li class="menu-item menu-item-type-taxonomy menu-item-object-linkage menu-item-19802"><a href="https://cfcc.edu/ambassadors">Student Ambassador Program</a></li> 2751 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20801"><a href="/student-life/student-government-association/">Student Government Association</a></li> 2752 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19977"><a href="//cfcc.edu/honors-program/honors-experience/">Honors Experience</a></li> 2753 <li class="menu-item menu-item-type-taxonomy menu-item-object-linkage menu-item-19799"><a href="https://cfcc.edu/graduation">Graduation</a></li> 2754</ul> 2755</li> 2756<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20195"><a href="https://my.cfcc.edu/">myCFCC</a></li> 2757<li class="search-toggle iwi-target-searchbox d-none d-lg-block iwi-nohover menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-48 current_page_item menu-item-115"><a href="https://cfcc.edu/search/" aria-current="page">Search</a></li> 2758</ul></div></div><ul id="searchbox" class="layout-item-container searchbox sub-menu" ><li class="" ><div class="searchbox">
2759<form class="searchform" action="/search/" aria-live="polite" > 2760 2761 <!-- 2762 FIX 1: Add a dedicated error message container. 2763 This container is empty and hidden by default, but has the 2764 ARIA roles needed to announce messages to screen readers. 2765 --> 2766 <div class="search-error" role="status" aria-live="polite" style="display: none; color: red; margin-bottom: 10px;"> 2767 </div> 2768 2769 <!-- Your existing search input and hidden fields --> 2770 <input type="hidden" name="cx" value="004637514235636343015:yhzbsku25vo" autocomplete="off"> 2771 <input type="hidden" name="cof" value="FORID:11" autocomplete="off" /> 2772 2773 <!-- 2774 The search input field. We need to add aria-describedby 2775 to link it to our new error container. 2776 --> 2777 <input name="q" class="search-input" type="text" maxlength="256" autocomplete="off" 2778 title="Search CFCC.edu" placeholder="Search CFCC" 2779 required /> 2780 2781 <input type="submit" autocomplete="off" class="search-button" name="submit" value="Search" /> 2782</form> 2783</div> 2784</li></ul></div></div></div><div id="rw85" class="layout-item-row bg-highlight bar-narrow" ></div><div id="content" class="row center-page px-3 px-md-4 layout-item-row content-main flex-wrap" ><div id="cnr62" class="layout-item-container col-lg-8" ><nav aria-label="Breadcrumb"><ul class="breadcrumb-links"><li><a href="https://cfcc.edu">Home</a> </li><li aria-hidden="true" class="breadcrumb-delimiter">/</li><li> <span class="breadcrumb-current" aria-current="page">Search</span></li></ul></nav><div id="post-48" class="post-48 page type-page status-publish hentry post-seq-1 odd clearfix"><h1 class=" post-title" >Search</h1><!--[searchbox] <div id="cse-search-results"> </div>
2784<script type="text/javascript">var googleSearchIframeName="cse-search-results",googleSearchFormName="cse-search-box",googleSearchFrameWidth=700,googleSearchDomain="www.google.com",googleSearchPath="/cse";</script>
2784<script type="text/javascript" src="https://www.google.com/afsonline/show_afs_search.js"></script>
2784--> 2785<!--
2786<script async src="https://cse.google.com/cse.js?cx=004637514235636343015:yhzbsku25vo"></script>
2786 <div class="gcse-search"> </div> --> 2787<p>
2787<script async src="https://cse.google.com/cse.js?cx=7205f529defe145d9"> 2788</script>
2788</p> <div class="gcse-search"> </div> </div></div><div id="cnr68" class="layout-item-container col-lg-4 sidebar pl-5 mt-4" ><div id="wgt69" class="layout-item-widget sticky-sidebar" ><div id="intelliwidget-11" class=" widget-container widget_intelliwidget"><div class="row"><div class="col-6"><a class="button btn-plain" href="/campus-visits/">Plan a Visit</a></div> 2789<div class="col-6"><a class="button btn-plain" href="https://cfcc.edu/request-information/">Get Info</a></div> 2790<div class="col-12"><div class="bg-med bg-grid text-center p-3"><h2 class="text-hand text-white h3">What are you waiting for?</h2> <a class="button btn-rev" href="/admissions/apply"><span class="text-highlight">Apply</span> Now</a></div></div></div> 2791</div></div></div></div><div id="cnr6b" class="layout-item-container" ><div id="wgt6d" class="layout-item-widget" ></div></div><div id="rwf_outer" class="colophon bg-dark" ><div id="rwf" class="flex-row d-flex flex-wrap center-page px-3 px-md-4 layout-item-row justify-content-between" ><div id="cnr45" class="layout-item-container" > <a href="/" aria-label="Cape Fear Community College"> <img src="/wp-content/uploads/2019/06/cfcc-logo-rev.png" height="98" width="271" alt="Cape Fear Community College" /> </a> <h3 class="widget-title" style="padding-left:1.8em"> <a href="tel:9103627000"> (910) 362-7000 </a> </h3></div><div id="cnr46" class="layout-item-container" ><h3 class="widget-title">Online Services:</h3><div id="mn4a" class="layout-item-menu" ><div role="navigation" aria-label="Online Services Menu" class="menu-online-services-container"><ul id="menu-online-services" class="menu"><li id="menu-item-17450" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17450"><a href="https://my.cfcc.edu">myCFCC</a></li> 2792<li id="menu-item-17451" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17451"><a href="https://cfcc.instructure.com/">Canvas</a></li> 2793<li id="menu-item-17452" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17452"><a href="https://sso.quicklaunch.io/admin/secured/991/api/launch/4267">Self Service</a></li> 2794<li id="menu-item-20076" class="menu-item menu-item-type-taxonomy menu-item-object-linkage menu-item-20076"><a href="https://cfcc.edu/bookstore">Bookstore</a></li> 2795<li id="menu-item-37322" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37322"><a href="https://cfcc.edu/sitemap/">Sitemap</a></li> 2796</ul></div></div></div><div id="cnr47" class="layout-item-container" ><h3 class="widget-title">Quick Links:</h3><div id="mn4b" class="layout-item-menu" ><div role="navigation" aria-label="Quick Links Menu" class="menu-quick-links-container"><ul id="menu-quick-links" class="menu"><li id="menu-item-17453" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17453"><a href="//cfcc.edu/human-resources/">Jobs at CFCC</a></li> 2797<li id="menu-item-30546" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-30546"><a href="https://cfcc.edu/about/events/">Events Calendar</a></li> 2798<li id="menu-item-20074" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20074"><a href="//cfcc.edu/disability-support-services/website-accessibility/">Accessibility</a></li> 2799<li id="menu-item-252" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-252"><a href="https://cfcc.edu/about/statements-and-policies/">Statements & Policies</a></li> 2800<li id="menu-item-33861" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-33861"><a href="https://cfcc.edu/office-of-student-affairs/">Title IX</a></li> 2801<li id="menu-item-38403" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-38403"><a href="https://cfcc.edu/about/consumer-information/">Consumer Information</a></li> 2802<li id="menu-item-44578" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44578"><a href="https://cfcc.edu/office-of-student-affairs/incident-reporting-form/">Report an Incident</a></li> 2803</ul></div></div></div><div id="cnr48" class="layout-item-container" ><h3 class="widget-title">Get In Touch:</h3><div id="mn4c" class="layout-item-menu" ><div role="navigation" aria-label="Get In Touch Menu" class="menu-get
2803-in-touch-container"><ul id="menu-get-in-touch" class="menu"><li id="menu-item-134" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-134"><a href="https://cfcc.edu/about/contact-us/">Contact</a></li> 2804<li id="menu-item-243" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-243"><a href="https://cfcc.edu/about/maps-locations/">Maps & Locations</a></li> 2805<li id="menu-item-241" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-241"><a href="https://cfcc.edu/about/campus-safety/">Campus Safety</a></li> 2806<li id="menu-item-17082" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17082"><a href="/directory/">Faculty & Staff Directory</a></li> 2807</ul></div></div></div></div></div><div id="rw6_outer" class="footer bg-med" ><div id="rw6" class="flex-row d-flex flex-wrap center-page px-3 px-md-4 layout-item-row justify-content-between" > <div class="d text-center"> <span class="nowrap">©2026 Cape Fear Community College</span> </div> <div class="d text-center"> <span class="nowrap"> <a href="https://cfcc.edu/counseling/#lifeline" class="link"> Suicide and Crisis Lifeline </a> </span> <span class="nowrap"> <a href="/statement-of-non-discrimination" class="link"> Statement of Non-discrimination </a> </span> <span class="nowrap"> <a href="/about/statements-and-policies/privacy-policy/" class="link"> Privacy Statement </a> </span><br><span class="nowrap">Closings & Delays: <a href="tel:8777992322"> 1-877-799-2322 </a> </span> <span class="nowrap"> <a href="https://cfcc.edu/web-accessibility-policy/" target="_blank" rel="noopener noreferrer" class="link"> Web Accessibility Policy <span class="visually-hidden">(opens in a new tab)</span> </a> </span> </div> <div class="d text-center"> <ul class="nowrap social-media-list" style="list-style: none; padding: 0; margin: 0; display: inline-flex; gap: 10px;"> 2808 <li> <a href="https://www.facebook.com/capefearcc" target="_blank" aria-label="Facebook (opens in new tab)" rel="noopener noreferrer" class="iwicon-facebook"> </a> </li> 2809 <li> <a href="https://www.tiktok.com/@capefearcc" target="_blank" aria-label="TikTok (opens in new tab)" rel="noopener noreferrer" class="sicon-tiktok" style="padding-left:0px;"> </a> </li> 2810 <li> <a href="https://www.youtube.com/cfccnc" target="_blank" aria-label="YouTube (opens in new tab)" rel="noopener noreferrer" class="iwicon-youtube"> </a> </li> 2811 <li> <a href="https://www.linkedin.com/school/cape-fear-community-college" target="_blank" aria-label="LinkedIn (opens in new tab)" rel="noopener noreferrer" class="sicon-linkedin"> </a> </li> 2812 <li> <a href="https://www.instagram.com/capefearcc" target="_blank" aria-label="Instagram (opens in new tab)" rel="noopener noreferrer" class="iwicon-instagram"> </a> </li> 2813</ul> </div> </div></div><div id="glt-translate-trigger"><span class="notranslate">Translate »</span></div><div id="glt-toolbar"></div><div id="flags" style="display:none" class="size18"><ul id="sortable" class="ui-sortable"><li id="English"><a href="#" title="English" class="nturl notranslate en flag united-states"></a></li><li id="French"><a href="#" title="French" class="nturl notranslate fr flag French"></a></li><li id="Korean"><a href="#" title="Korean" class="nturl notranslate ko flag Korean"></a></li><li id="Portuguese"><a href="#" title="Portuguese" class="nturl notranslate pt flag Portuguese"></a></li><li id="Russian"><a href="#" title="Russian" class="nturl notranslate ru flag Russian"></a></li><li id="Spanish"><a href="#" title="Spanish" class="nturl notranslate es flag mexico"></a></li><li id="Vietnamese"><a href="#" title="Vietnamese" class="nturl notranslate vi flag Vietnamese"></a></li></ul></div><div id='glt-footer'><div id="google_language_translator" class="default-language-en"></div></div>
2813<script>function GoogleLanguageTranslatorInit() { new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages:'en,fr,ko,pt,ru,es,vi', autoDisplay: false}, 'google_language_translator');}</script>
2813
2813<script src="https://js.adsrvr.org/up_loader.1.1.0.js" type="text/javascript"></script>
2813 2814
2814<script type="text/javascript"> 2815 ttd_dom_ready( function() { 2816 if (typeof TTDUniversalPixelApi === 'function') { 2817 var universalPixelApi = new TTDUniversalPixelApi(); 2818 universalPixelApi.init("l19yiob", ["iqobvoe"], "https://insight.adsrvr.org/track/up"); 2819 } 2820 }); 2821 </script>
2821<!-- Instagram Feed JS -->
2822<script type="text/javascript"> 2823var sbiajaxurl = "https://cfcc.edu/wp-admin/admin-ajax.php"; 2824</script>
2824 2825<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 2825-2826
2825 2826<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2826GTM-TNX265N8
vendor: 83 bytes, lines 2826-2827
2826" 2827height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2828<!-- End Google Tag Manager (noscript) -->
2829<script type="text/javascript"> 2830/* ========================================================= 2831 CHATBOTS (ELEMENT451 & BOLT AI) - ADA FIX (WCAG 1.3.1) 2832 ========================================================= */ 2833window.addEventListener('DOMContentLoaded', (event) => { 2834 // Create an observer to constantly watch the DOM for injected widgets 2835 const chatObserver = new MutationObserver(function(mutations, observer) { 2836 2837 // --- 1. ELEMENT451 CHATBOT FIX --- 2838 const elementIframe = document.querySelector('#messenger-root iframe'); 2839 if (elementIframe && elementIframe.getAttribute('role') === 'dialog') { 2840 elementIframe.removeAttribute('role'); // Strip bad role 2841 2842 const elementRoot = document.getElementById('messenger-root'); 2843 if (elementRoot) { 2844 elementRoot.setAttribute('role', 'dialog'); 2845 elementRoot.setAttribute('aria-label', 'Live Chat Window'); 2846 } 2847 elementIframe.setAttribute('title', 'Live Chat Assistant'); 2848 } 2849 2850 // --- 2. BOLT DISCOVERY AI FIX --- 2851 const boltIframe = document.querySelector('iframe[src*="discoveredu.ai"]'); 2852 if (boltIframe && boltIframe.getAttribute('role') === 'dialog') { 2853 boltIframe.removeAttribute('role'); // Strip bad role 2854 2855 // Move the role and label to whatever container Bolt injected it into 2856 const boltRoot = boltIframe.parentElement; 2857 if (boltRoot) { 2858 boltRoot.setAttribute('role', 'dialog'); 2859 boltRoot.setAttribute('aria-label', 'Bolt AI Assistant'); 2860 } 2861 } 2862 }); 2863 2864 // Start watching the entire body for these injected scripts 2865 chatObserver.observe(document.body, { childList: true, subtree: true }); 2866}); 2867/* ========================================================= 2868 VAGUE LINKS & CONTACT - ADA CONTEXT FIX (WCAG 2.4.4) 2869 - 1. Checks for a title="" attribute on the link or sibling links 2870 - 2. Uses Local Post Title (H2/H3/H4) 2871 - 3. Falls back to H1 (Page Topic) for global context 2872 - EXCLUDES main navigation wrapper (#wpr14) to protect global links 2873 ========================================================= */ 2874window.addEventListener('DOMContentLoaded', (event) => { 2875 // 1. The vague buttons we are hunting 2876 const vaguePhrases = ['here', 'click here', 'learn more', 'read more', 'find out more', 'details', 'view details', 'read full profile', 'contact us', 'contact', 'apply now']; 2877 2878 // 2. Grab the main Page Title (H1) for global fallback 2879 const h1Element = document.querySelector('h1'); 2880 const pageContext = h1Element 2881 ? h1Element.textContent.replace(/\s+/g, ' ').trim() 2882 : document.title.split('|')[0].trim(); 2883 2884 // 3. Grab every single link on the page that doesn't already have an aria-label 2885 const allLinks = document.querySelectorAll('a:not([aria-label])'); 2886 2887 allLinks.forEach(link => { 2888 2889 // --- THE MAIN NAVIGATION SHIELD --- 2890 const isInMainNav = link.closest('#wpr14'); 2891 const isSearchLink = link.classList.contains('toggle-search') || 2892 link.classList.contains('search-toggle') || 2893 link.closest('.searchbox'); 2894 2895 if (isInMainNav && !isSearchLink) { 2896 return; 2897 } 2898 // ----------------------------------- 2899 2900 const linkTextClean = link.textContent.replace(/\s+/g, ' ').trim().toLowerCase(); 2901 2902 // 4. If the link text matches one of our vague phrases... 2903 if (vaguePhrases.includes(linkTextClean)) { 2904 const originalText = link.textContent.replace(/\s+/g, ' ').trim(); 2905 let finalContext = ''; 2906 2907 // STRATEGY 1: Check the link itself for a title attribute 2908 if (link.hasAttribute('title')) { 2909 finalContext = link.getAttribute('title').trim(); 2910 } 2911 2912 // Find the container block for Strategies 2 and 3 2913 const container = link.closest('.cell, .cell2, article, .post, .widget, .elementor-widget, .col-md-6, .col-md-4, .directory-item'); 2914 2915 // STRATEGY 2: Look for ANY title attribute in the same post block (e.g., thumbnail links) 2916 if (!finalContext && container) { 2917 const titleLink = container.querySelector('a[title]'); 2918 if (titleLink) { 2919 finalContext = titleLink.getAttribute('title').trim(); 2920 } 2921 } 2922 2923 // STRATEGY 3: Fallback to the local heading text 2924 if (!finalContext && container) { 2925 const localHeading = container.querySelector('h2, h3, h4, h5'); 2926 if (localHeading) { 2927 finalContext = localHeading.textContent.replace(/\s+/g, ' ').trim(); 2928 } 2929 } 2930 2931 // STRATEGY 4: Absolute fallback to global page title 2932 if (!finalContext) { 2933 finalContext = pageContext; 2934 } 2935 2936 // CLEANUP: Strip out annoying WordPress "Permalink to" text if it exists 2937 finalContext = finalContext.replace(/^Permalink to /i, '').trim(); 2938 2939 if (finalContext) { 2940 // If the title attribute already includes the words "Read more", just use it as-is 2941 // to prevent "Read more about Read more..." 2942 if (finalContext.toLowerCase().includes(linkTextClean)) { 2943 link.setAttribute('aria-label', finalContext); 2944 } else { 2945 link.setAttribute('aria-label', `${originalText} about ${finalContext}`); 2946 } 2947 } 2948 } 2949 }); 2950}); 2951 2952</script>
2952<script type='text/javascript' src='https://cfcc.edu/wp-content/plugins/intelliwidget-framework/js/iw.flexslider.js?ver=2.2.0' id='flexslider-js-js'></script>
vendor: 1 bytes, line 2952
2952
2953<script type='text/javascript' src='https://cfcc.edu/wp-content/plugins/intelliwidget-framework/js/iwinterface.js?ver=2.2.0' id='iwinterface-js'></script>
vendor: 1 bytes, line 2953
2953
2954<script type='text/javascript' src='https://cfcc.edu/wp-content/plugins/intelliwidget-framework/js/iwcarousel.js?ver=2.2.0' id='iwcarousel-js'></script>
vendor: 1 bytes, line 2954
2954
2955<script type='text/javascript' src='https://cfcc.edu/wp-content/plugins/intelliwidget-framework/js/pagecells.js?ver=2.2.0' id='pagecells-js-js'></script>
vendor: 1 bytes, line 2955
2955
2956<script type='text/javascript' src='https://cfcc.edu/wp-content/plugins/google-language-translator/js/scripts.js?ver=6.0.19' id='scripts-js'></script>
vendor: 1 bytes, line 2956
2956
2957<script type='text/javascript' src='//translate.google.com/translate_a/element.js?cb=GoogleLanguageTranslatorInit' id='scripts-google-js'></script>
vendor: 1 bytes, line 2957
2957
2958<script type='text/javascript' src='https://cfcc.edu/wp-content/plugins/constant-contact-forms/assets/js/ctct-plugin-recaptcha-v2.min.js?ver=1.14.0' id='recaptcha-v2-js'></script>
vendor: 187 bytes, lines 2958-2959
2958 2959<script async="async" defer type='text/javascript' src='//www.google.com/recaptcha/api.js?onload=renderReCaptcha&render=explicit&ver=1.14.0' id='recaptcha-lib-v2-js'></script>
2960<script type='text/javascript' src='https://cfcc.edu/wp-content/plugins/constant-contact-forms/assets/js/ctct-plugin-frontend.min.js?ver=1.14.0' id='ctct_frontend_forms-js'></script>
2960 2961<style> 2962 /* 1. ACCESSIBILITY: Visible Focus Indicators */ 2963 .iwi-tabs a:focus, 2964 .iwi-control:focus, 2965 .iwi-tab-control:focus, 2966 .iwi-mobile-toggle:focus, 2967 .iwi-accordion-control:focus, 2968 .intelliwidget-menu-title a:focus, 2969 .intelliwidget-menu-item a:focus { 2970 outline: 3px solid #046b7d !important; 2971 outline-offset: 2px !important; 2972 box-shadow: 0 0 0 3px #ffc107 !important; 2973 border-radius: inherit !important; 2974 } 2975</style> 2976
2977<script> 2978( function( $ ){ 2979 /** 2980 * SYNC ARIA: Fixes the "Empty Button" issue flagged by Silktide. 2981 * Targets both the container spans and the actual <button> tags. 2982 */ 2983 function syncAria() { 2984 $( '.iwi-control, .iwi-menu-control' ).each( function() { 2985 var $el = $(this); 2986 var isButton = $el.is('button'); 2987 var $link = isButton ? $el : $el.find('a').first(); 2988 2989 if ( $link.length ) { 2990 // 1. Assign Role (if not already a button) 2991 if (!isButton) { 2992 $link.attr( 'role', 'button' ); 2993 } 2994 2995 // 2. DISCERNIBLE NAME FIX: Hunt for context 2996 var txt = $link.text().trim(); 2997 2998 // If the element is empty (like the button you found), 2999 // look at the sibling or parent text to see what it toggles. 3000 if ( !txt ) { 3001 // Try to find the nearest menu text in the same list item 3002 var $parentLi = $el.closest('li'); 3003 txt = $parentLi.find('.intelliwidget-menu-title').first().text().trim() || 3004 $parentLi.find('> a').first().text().trim(); 3005 } 3006 3007 var labelText = ( txt ) ? 'Toggle ' + txt + ' submenu' : 'Toggle submenu'; 3008 3009 // Force the aria-label so Silktide sees a "name" for the button 3010 if ( !$link.attr('aria-label') ) { 3011 $link.attr('aria-label', labelText); 3012 } 3013 3014 // 3. CLEANUP (CRITICAL) 3015 // If $el was a container for a link, strip the container attributes 3016 // so Silktide doesn't think there are TWO buttons. 3017 if (!isButton) { 3018 $el.removeAttr('aria-expanded').removeAttr('role'); 3019 } 3020 } 3021 }); 3022 } 3023 3024 function init(){ 3025 // Original Menu Initialization 3026 $( '.iwi-menu' ).each( function( ndx, el ){ 3027 var id = el.getAttribute( 'id' ); 3028 $( el ).iwinterface( { aria: 'menu', activeclass: 'open', bodyclass: 'undefined' === id ? false : id + '-open', overlayclass: 'iwi-overlay-scroll' } ); 3029 } ); 3030 3031 $( '.iwi-accordion' ).iwinterface( { change: 'slide', activeclass: 'open', speed: 'fast', aria: 'accordion' } ); 3032 $( '.iwi-tabs' ).iwinterface( { change: 'display', activeclass: 'open', aria: 'tab' } ); 3033 3034 $( '.iwi-mobile-toggle' ).iwinterface( { aria: 'pane', change: 'class' } ); 3035 $( '.iwi-modal-toggle' ).iwinterface( { aria: 'modal', change: 'fade', dismiss: true, activatecb: ( 'function' === typeof iwmodalcb ? iwmodalcb : null ) } ); 3036 3037 // Final Sync 3038 syncAria(); 3039 setTimeout( syncAria, 500 ); 3040 setTimeout( syncAria, 2000 ); 3041 3042 $( 'body' ).removeClass( 'iwi-loading' ); 3043 } 3044 3045 $( document ).ready( init ); 3046 window.addEventListener('load', syncAria); 3047 3048})( jQuery ); 3049</script>
3049 3050<!-- start Simple Custom CSS and JS -->
3051<script type="text/javascript"> 3052window.addEventListener("load", function() { 3053 var jobsDataSelect = document.getElementById("jobData-select"); 3054 var jobsDataPanes = document.querySelectorAll("#iframe-wrapper .jobData-iframe"); 3055 if (!jobsDataSelect || !jobsDataPanes.length) return; 3056 function showSelected() { 3057 var code = jobsDataSelect.value; 3058 jobsDataPanes.forEach(function(p) { 3059 p.style.display = (p.getAttribute("data-code") === code) ? "block" : "none"; 3060 }); 3061 } 3062 jobsDataSelect.addEventListener("change", showSelected); 3063 showSelected(); 3064});</script>
3064 3065<!-- end Simple Custom CSS and JS --> 3066<!-- start Simple Custom CSS and JS -->
3067<script type="text/javascript"> 3068window.addEventListener("load", function () { 3069 const filters = document.querySelectorAll("[data-filter]"); 3070 const keywordInput = document.getElementById("keyword-search"); 3071 const resetButton = document.getElementById("reset-filters"); 3072 3073 if (filters.length === 0 && !keywordInput) { 3074 return; 3075 } 3076 3077 const filterItems = document.querySelectorAll(".filter-item"); 3078 3079 function filterItemsFunction() { 3080 var activeFilters = {}; 3081 var keywordValue = keywordInput ? keywordInput.value.trim().toLowerCase() : ""; 3082 3083 //console.log("Applying filters..."); 3084 //console.log("Keyword Filter Value:", keywordValue); 3085 3086 // Collect active filters 3087 filters.forEach(filter => { 3088 const filterKey = filter.dataset.filter; 3089 3090 if (filter.type === "checkbox") { 3091 const checkedBoxes = document.querySelectorAll(`[data-filter="${filterKey}"]:checked`); 3092 const checkedValues = Array.from(checkedBoxes).map(cb => cb.value); 3093 if (checkedValues.length > 0) { 3094 activeFilters[filterKey] = checkedValues; 3095 } 3096 } else if (filter.type === "range" || filter.type === "number") { 3097 const numValue = parseFloat(filter.value); 3098 if (!isNaN(numValue)) { 3099 activeFilters[filterKey] = numValue; 3100 } 3101 } else { 3102 const textValue = filter.value.trim(); 3103 if (textValue !== "") { 3104 activeFilters[filterKey] = textValue; 3105 } 3106 } 3107 }); 3108 3109 filterItems.forEach(item => { 3110 var isVisible = true; 3111 var matchesFilters = true; 3112 var itemText = item.textContent.trim().toLowerCase(); 3113 3114 //console.log(`\nChecking item: "${item.textContent.trim()}"`); 3115 3116 // Apply keyword filtering (partial match) 3117 if (keywordValue !== "" && !itemText.includes(keywordValue)) { 3118 //console.log(" - Matches Keyword? â No"); 3119 isVisible = false; 3120 } else { 3121 //console.log(" - Matches Keyword? â Yes"); 3122 } 3123 3124 // Apply other filters 3125 for (const [filterType, filterValues] of Object.entries(activeFilters)) { 3126 const datasetKey = `filter${filterType.charAt(0).toUpperCase() + filterType.slice(1)}`; 3127 let itemValue = item.getAttribute(`data-${datasetKey.replace(/([A-Z])/g, "-$1").toLowerCase()}`); 3128 3129 // ð¨ Fix: Skip this filter check if the item does NOT have this data attribute 3130 if (itemValue === null) { 3131 //console.log(` - Skipping filter "${filterType}" (Not Found in Item)`); 3132 continue; 3133 } 3134 3135 itemValue = itemValue.trim(); 3136 //console.log(` - Checking filter "${filterType}" with item value: "${itemValue}"`); 3137 3138 if (!itemValue) { 3139 matchesFilters = false; 3140 break; 3141 } 3142 3143 if (Array.isArray(filterValues)) { 3144 const itemValuesArray = itemValue.split(",").map(val => val.trim()); 3145 if (!filterValues.some(value => itemValuesArray.includes(value))) { 3146 matchesFilters = false; 3147 break; 3148 } 3149 } else if (typeof filterValues === "number") { 3150 const numericValue = parseFloat(itemValue) || 0; 3151 if (numericValue > filterValues) { 3152 matchesFilters = false; 3153 break; 3154 } 3155 } else { 3156 const itemValuesArray = itemValue.split(",").map(val => val.trim()); 3157 if (!itemValuesArray.includes(filterValues)) { 3158 matchesFilters = false; 3159 break; 3160 } 3161 } 3162 } 3163 3164 // Final visibility decision 3165 isVisible = isVisible && matchesFilters; 3166 3167 //console.log(` - Matches Filters? ${matchesFilters ? "â Yes" : "â No"}`); 3168 //console.log(` - Final Visibility: ${isVisible ? "â Show" : "â Hide"}`); 3169 3170 // Show/hide items 3171 if (isVisible) { 3172 item.style.display = "flex"; 3173 requestAnimationFrame(() => { 3174 item.classList.remove("hidden-item"); 3175 }); 3176 } else { 3177 item.classList.add("hidden-item"); 3178 item.addEventListener("transitionend", function hideItem() { 3179 if (item.classList.contains("hidden-item")) { 3180 item.style.display = "none"; 3181 } 3182 item.removeEventListener("transitionend", hideItem); 3183 }); 3184 } 3185 }); 3186 } 3187
3188 filters.forEach(filter => { 3189 filter.addEventListener("change", filterItemsFunction); 3190 filter.addEventListener("input", filterItemsFunction); 3191 filter.addEventListener("touchend", filterItemsFunction); 3192 }); 3193 3194 if (keywordInput) { 3195 keywordInput.addEventListener("input", filterItemsFunction); 3196 } 3197 3198 // ð Reset Filters Function 3199 function resetFilters() { 3200 keywordInput.value = ""; // Clear text input 3201 filters.forEach(filter => { 3202 if (filter.type === "checkbox" || filter.type === "radio") { 3203 filter.checked = false; // Uncheck checkboxes/radios 3204 } else if (filter.type === "range" || filter.type === "number") { 3205 filter.value = filter.defaultValue; // Reset number/range to default 3206 } else { 3207 filter.value = ""; // Reset text and select inputs 3208 } 3209 }); 3210 filterItemsFunction(); // Reapply filtering after reset 3211 } 3212 3213 // ð Add Event Listener for Reset Button 3214 if (resetButton) { 3215 resetButton.addEventListener("click", function (event) { 3216 event.preventDefault(); // Prevents page jump 3217 resetFilters(); // Calls the reset function 3218 }); 3219 } 3220 3221 3222 filterItemsFunction(); 3223}); 3224</script>
3224 3225<!-- end Simple Custom CSS and JS --> 3226
3226<script type="text/javascript"> 3227 (function($) { 3228 3229 // 1. Define the Tagger Function 3230 function runLinkAutoTagger() { 3231 $('a').each(function() { 3232 var $link = $(this); 3233 var href = $link.attr('href'); 3234 var target = $link.attr('target'); 3235 3236 // Safety Checks: Skip anchors, JS, or empty links 3237 if (!href || href.indexOf('#') === 0 || href.indexOf('javascript') === 0) return; 3238 3239 // Get current accessible label (Prioritize aria-label, fallback to text) 3240 var currentLabel = $link.attr('aria-label') || $link.text().trim(); 3241 3242 // If the link has no text (e.g. an icon with no label), skip it to avoid breaking layout 3243 if (!currentLabel) return; 3244 3245 var newLabel = currentLabel; 3246 var modified = false; 3247 3248 // CHECK A: Is it External? (Doesn't contain 'cfcc.edu') 3249 // We check the hostname property for accuracy 3250 if (this.hostname && this.hostname.indexOf('cfcc.edu') === -1) { 3251 // Only add if not already present 3252 if (newLabel.indexOf('external') === -1) { 3253 newLabel += ' (external link)'; 3254 modified = true; 3255 } 3256 } 3257 3258 // CHECK B: Does it open in a new tab? 3259 if (target === '_blank') { 3260 // Only add if not already present 3261 if (newLabel.indexOf('new tab') === -1) { 3262 newLabel += ' (opens in new tab)'; 3263 modified = true; 3264 } 3265 } 3266 3267 // APPLY: Update the aria-label if we made changes 3268 if (modified) { 3269 $link.attr('aria-label', newLabel); 3270 } 3271 }); 3272 } 3273 3274 // 2. RUN IMMEDIATELY (Catches 90% of links) 3275 $(document).ready(function() { 3276 runLinkAutoTagger(); 3277 }); 3278 3279 // 3. RUN DELAYED (Catches the "Slipping Through" Widget Links) 3280 $(window).on('load', function() { 3281 setTimeout(function() { 3282 // Run it again to catch anything that loaded late (tabs, popups) 3283 runLinkAutoTagger(); 3284 }, 2000); // 2 second delay 3285 }); 3286 3287 })(jQuery); 3288 </script>
3288 3289
3289<script type="text/javascript"> 3290 (function($) { 3291 $(document).ready(function() { 3292 // 1. Listen for clicks on the "Skip to Content" link 3293 $('.skip-link, a[href*="#content"], a[href*="#main"]').on('click', function(event) { 3294 3295 // 2. Find the target element based on the link's hash (e.g., #content) 3296 var targetId = this.hash; 3297 var $target = $(targetId); 3298 3299 // 3. Check if the target exists 3300 if ($target.length) { 3301 // 4. Temporarily give it focus power (tabindex="-1") 3302 // We only do this to the ONE element we are skipping to. 3303 if (!$target.attr('tabindex')) { 3304 $target.attr('tabindex', '-1'); 3305 3306 // Optional: Clean up the tabindex after the user moves away 3307 // so your DOM stays clean. 3308 $target.one('blur focusout', function() { 3309 $(this).removeAttr('tabindex'); 3310 }); 3311 } 3312 3313 // 5. Force the browser to move focus NOW 3314 $target.focus(); 3315 } 3316 }); 3317 }); 3318 })(jQuery); 3319 </script>
3319 3320
3320<script type="text/javascript"> 3321 (function($) { 3322 $(document).ready(function() { 3323 3324 3325 // --- 2. GTRANSLATE FIX --- 3326 var $gtranslate = $('.gtranslate_wrapper, #flags, .glt-links'); 3327 if ($gtranslate.length) { 3328 $gtranslate.attr('role', 'list'); 3329 $gtranslate.find('a, span.glink').attr('role', 'listitem'); 3330 } 3331 3332 }); 3333 })(jQuery); 3334 </script>
3334
3334<script type="text/javascript"> 3335 (function($) { 3336 $(document).ready(function() { 3337 // 1. Find the specific Social Media table 3338 var $table = $('table:contains("Social Media Directory")'); 3339 3340 if ($table.length > 0) { 3341 // 2. Capture the Column Headers (Facebook, Instagram, etc.) 3342 var colHeaders = []; 3343 $table.find('thead th').each(function(index) { 3344 colHeaders[index] = $(this).text().trim(); 3345 }); 3346 3347 // 3. Loop through every row in the body 3348 $table.find('tbody tr').each(function() { 3349 var $row = $(this); 3350 3351 // Get the Row Name (The first header in the row, e.g., "The Wilson Center") 3352 var rowName = $row.find('th').text().trim(); 3353 3354 // 4. Loop through the data cells (td) containing links 3355 $row.find('td').each(function(index) { 3356 var $link = $(this).find('a'); 3357 3358 // Proceed only if there is a link and we have a Row Name 3359 if ($link.length > 0 && rowName) { 3360 3361 // MATCHING LOGIC: 3362 // The 'td' index 0 corresponds to Column Header index 1 3363 // (because the Row Header took up the first slot). 3364 var platformName = colHeaders[index + 1]; 3365 3366 if (platformName) { 3367 // Create the accessible label 3368 // Result: "The Wilson Center Facebook" 3369 var newLabel = rowName + " " + platformName; 3370 $link.attr('aria-label', newLabel); 3371 3372 // Optional: If you want to force the 'External Link' text here too 3373 // you can append it manually if your other script misses it. 3374 // $link.attr('aria-label', newLabel + " (external link)"); 3375 } 3376 } 3377 }); 3378 }); 3379 } 3380 }); 3381 })(jQuery); 3382 </script>
3382 3383
3384<script type="text/javascript" id="cfcc-search-ada-fix-final"> 3385window.addEventListener('load', (event) => { 3386 3387 const searchForms = document.querySelectorAll('form.searchform[action="/search/"]'); 3388 3389 if (searchForms.length === 0) { 3390 return; 3391 } 3392 3393 searchForms.forEach((form) => { 3394 3395 // Find the critical elements *within* this specific form 3396 const errorContainer = form.querySelector('.search-error'); 3397 const searchInput = form.querySelector('input[name="q"]'); 3398 const submitButton = form.querySelector('input[type="submit"]'); 3399 3400 if (!searchInput || !errorContainer || !submitButton) { 3401 return; // If we're missing pieces, don't attach listeners 3402 } 3403 3404 // --- 1. The Validation Function (Stops form and injects ARIA message) --- 3405 const validateSearch = (e) => { 3406 if (searchInput.value.trim() === '') { 3407 // 1. Stop the form submission (Critical) 3408 e.preventDefault(); 3409 e.stopImmediatePropagation(); 3410 3411 // 2. Show the error message (WCAG 3.3.1) 3412 errorContainer.textContent = 'Please enter a search term.'; 3413 errorContainer.style.display = 'block'; 3414 3415 // 3. Set focus (Helps user, WCAG 4.1.3) 3416 searchInput.focus(); 3417 return false; 3418 } else { 3419 // Clear errors on valid submission 3420 errorContainer.textContent = ''; 3421 errorContainer.style.display = 'none'; 3422 return true; 3423 } 3424 }; 3425 3426 // --- 2. Event Listeners (The winning combination) --- 3427 3428 // Listener A: This listener hides the error as soon as the user types 3429 searchInput.addEventListener('input', () => { 3430 if (errorContainer.style.display === 'block') { 3431 errorContainer.textContent = ''; 3432 errorContainer.style.display = 'none'; 3433 } 3434 }, true); 3435 3436 // Listener B: Catches 'submit' (Enter key or form submit) 3437 form.addEventListener('submit', validateSearch, true); 3438 3439 // Listener C: Catches 'click' on the button (Ensures we win the event conflict) 3440 submitButton.addEventListener('click', validateSearch, true); 3441 3442 }); 3443}); 3444</script>
3444 3445</body></html> 3446<!-- 3447Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/ 3448 3449Page Caching using Memcache 3450Database Caching 1/145 queries in 0.079 seconds using Memcache (Request-wide modification query) 3451 3452Served from: cfcc.edu @ 2026-10-01 06:42:25 by W3 Total Cache 3453-->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.