/*!
Theme Name: transysite
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Transylvania University WordPress theme based on Underscores.
Version: 1.0.202601161637
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: transysite
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
transysite is based on Underscores https://underscores.me/, (C) 2012-2017 Automattic, Inc.
Normalizing styles assisted by Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
# BRAND COLOR PALETTE
----------------------------------------------------------------
White              — #FFFFFF
Background White   — #FAFAFA
Crimson            — #9D2235
Light Crimson      — #EC1944
Gratz Park Brick   — #671C32
Old Morrison Stone — #FFECCE  (also used as #DFD1A7 in practice)
Black              — #000000
Dark Stone         — #766E65
Cottage Grey       — #C4BFB6
Cottage Grey 60    — #DBD7D3
Cottage Grey 40    — #E7E5E2
Cottage Grey 20    — #F3F2F0
Grey 90            — rgba(0,0,0,0.9)
Pumpkin            — #F08900
Ginko Gold         — rgba(255,198,89,1)
Ginko Gold 60      — #FFDD9B
Ginko Gold 40      — #FFE8BD
Ginko Gold 20      — #FFF4DE
Grey 50            — #808080
Midnight           — #002050
Blue Jay           — rgba(62,124,140,1)
Blue Jay 60        — #8BB0BA
Blue Jay 40        — #B2CBD1
Blue Jay 20        — #D8E5E8
Transparent        — #FFFFFF00
Bluegrass Green    — #006B69
Hazelrigg Lawn     — rgba(161,164,105,1)
Hazelrigg Lawn 60  — #C7C8A5
Hazelrigg Lawn 40  — #D9DBC3
Hazelrigg Lawn 20  — #ECEDE1
--------------------------------------------------------------*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Fonts
# Normalize
# Dev / Debug Utilities
# Typography
    ## Headings
    ## Heading Spacing
    ## Lists
    ## Blockquotes
    ## Inline & Misc Text
    ## Color Palette Classes
    ## Multi-Column Layout Helpers
    ## Themed Container Classes
# Elements
    ## Base Elements
    ## Gutenberg Blocks
    ## Buttons
    ## Groups & Covers
    ## Custom Block Patterns
        ### Hero Slider
        ### Infographics
        ### Section Directory
        ### Staff Rollovers / Sliders
        ### Dates Table
        ### News Blocks
        ### Term List
        ### FAQ / QA Blocks
        ### Photo Testimonial Pattern
        ### Misc Block Customizations
# Third-Party Block Customizations
    ## Jetpack
    ## Gravity Forms
    ## Slate Contact Form
    ## Testimonial Blocks
    ## Cookie Consent
    ## Chatbot Embed
# Navigation
    ## Links
    ## Mobile Nav Toggle
    ## Mobile Nav Drawer
    ## Desktop Mega Menu
    ## Section Nav (Sidebar)
    ## Post Navigation
# Bootstrap Additions
# Forms
# Accessibility
# Clearings & Utility Classes
# Widgets
# Layout: Content Areas
    ## Header
    ## Posts & Pages
    ## Page Templates (Home, Landing)
    ## Sidebar
    ## Footer
# Search Overlay
# Comments
# Infinite Scroll
# Media
    ## Embeds & iFrames
    ## Captions
    ## Galleries
# Print Styles
# Responsive Overrides
    ## max-width: 574px
    ## min-width: 575px
    ## max-width: 782px  (tablet/mobile)
    ## min-width: 783px  (tablet+)
    ## max-width: 781px
    ## max-width: 991px
    ## min-width: 992px  (desktop)
    ## min-width: 1200px (wide desktop)
--------------------------------------------------------------*/


/* =============================================================
   # FONTS
   ============================================================= */

@import url("css/fonts/standard/standard.css");
@import url("https://use.typekit.net/les7xcf.css");


/* =============================================================
   # NORMALIZE
   normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css
   ============================================================= */

/* --- Document --- */

/* 1. Correct line height in all browsers.
   2. Prevent font-size adjustment after orientation changes in iOS. */
html {
    line-height: 1.15; /* 1 */
    -webkit-text-size-adjust: 100%; /* 2 */
}

/* Remove the margin in all browsers. */
body {
    margin: 0;
}

/* Hide body until webfonts load (prevents FOUT layout shift). */
.wf-loading body {
    opacity: 0;
}

/* Correct font size and margin on h1 in section/article contexts (Chrome, Firefox, Safari). */
h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/* --- Grouping Content --- */

/* 1. Add correct box sizing in Firefox.
   2. Show overflow in Edge and IE. */
hr {
    box-sizing: content-box; /* 1 */
    height: 0; /* 1 */
    overflow: visible; /* 2 */
}

/* 1. Correct font-size inheritance/scaling in all browsers.
   2. Correct odd em font sizing in all browsers. */
pre {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
}

/* --- Text-Level Semantics --- */

/* Remove gray background on active links in IE 10. */
a {
    background-color: transparent;
}

/* 1. Remove bottom border in Chrome 57-.
   2. Add correct text decoration in Chrome, Edge, IE, Opera, Safari. */
abbr[title] {
    border-bottom: none; /* 1 */
    text-decoration: underline dotted; /* 2 */
}

/* Add correct font weight in Chrome, Edge, Safari. */
b,
strong {
    font-weight: bolder;
}

/* 1. Correct font-size inheritance/scaling.
   2. Correct odd em font sizing. */
code,
kbd,
samp {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
}

/* Add correct font size in all browsers. */
small {
    font-size: 80%;
}

/* Prevent sub/sup from affecting line height in all browsers. */
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}
sub { bottom: -0.25em; }
sup { top: -0.5em; }

/* Remove border on images inside links in IE 10. */
img {
    border-style: none;
}

/* --- Forms --- */

/* 1. Change font styles in all browsers.
   2. Remove margin in Firefox and Safari. */
button,
input,
optgroup,
select,
textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 1 */
    line-height: 1.15; /* 1 */
    margin: 0; /* 2 */
}

/* Show overflow in IE and Edge. */
button,
input {
    overflow: visible;
}

/* Remove text-transform inheritance in Edge, Firefox, IE. */
button,
select {
    text-transform: none;
}

/* Correct inability to style clickable types in iOS and Safari. */
button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
}

/* Remove inner border and padding in Firefox. */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0;
}

/* Restore focus styles unset by previous rule. */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText;
}

fieldset {
    padding: 0.35em 0.75em 0.625em;
}

/* 1. Correct text wrapping in Edge and IE.
   2. Correct color inheritance from fieldset elements in IE.
   3. Remove padding so developers aren't caught out zeroing fieldset elements. */
legend {
    box-sizing: border-box; /* 1 */
    color: inherit; /* 2 */
    display: table; /* 1 */
    max-width: 100%; /* 1 */
    padding: 0; /* 3 */
    white-space: normal; /* 1 */
}

/* Add correct vertical alignment in Chrome, Firefox, Opera. */
progress {
    vertical-align: baseline;
}

/* Remove default vertical scrollbar in IE 10+. */
textarea {
    overflow: auto;
}

/* 1. Add correct box sizing in IE 10.
   2. Remove padding in IE 10. */
[type="checkbox"],
[type="radio"] {
    box-sizing: border-box; /* 1 */
    padding: 0; /* 2 */
}

/* Correct cursor style of increment/decrement buttons in Chrome. */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

/* 1. Correct odd appearance in Chrome and Safari.
   2. Correct outline style in Safari. */
[type="search"] {
    -webkit-appearance: textfield; /* 1 */
    outline-offset: -2px; /* 2 */
}

/* Remove inner padding in Chrome and Safari on macOS. */
[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/* 1. Correct inability to style clickable types in iOS and Safari.
   2. Change font properties to inherit in Safari. */
::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
}

/* --- Interactive --- */

/* Add correct display in Edge, IE 10+, Firefox. */
details { display: block; }

/* Add correct display in all browsers. */
summary { display: list-item; }

/* --- Misc --- */
template { display: none; } /* IE 10+ */
[hidden] { display: none; }  /* IE 10 */


/* =============================================================
   # DEV / DEBUG UTILITIES
   These rules are intentionally visible in production for
   content authors and preview tools. Remove before go-live if
   no longer needed.
   ============================================================= */

/* Visually flags .todo paragraphs left in content for editors. */
.todo {
    color: #ff6600;
    font-family: "warnock-pro", "Warnock Pro", serif;
    font-style: italic;
    font-weight: 900;
}

/* Tiles a "DRAFT" watermark on the masthead when body.draft is present. */
body.draft #masthead {
    background-image: url(images/draft_tile.png);
    background-attachment: fixed;
}

/* Reverses text direction for email obfuscation in markup. */
.obfuscate {
    unicode-bidi: bidi-override;
    direction: rtl;
}

/* WP Revisions plugin: ensure its top bar stays above all content. */
body .rvy_view_revision,
body .preview_approval_rvy {
    z-index: 999990;
}


/* =============================================================
   # TYPOGRAPHY
   ============================================================= */

body,
button,
input,
select,
optgroup,
textarea {
    color: #404040;
    font-family: neue-haas-grotesk-text, standard, 'arial', sans-serif;
    font-size: 1.2rem;
    line-height: 1.3;
}

/* --- Headings --- */

/* All headings inside #page share bold weight and bottom margin. */
#page h1, #page h2, #page h3,
#page h4, #page h5, #page h6,
#page .h1, #page .h2, #page .h3,
#page .h4, #page .h5, #page .h6 {
    font-weight: 600;
    margin-bottom: .75rem !important;
}

/* Suppress bottom margin on headings that are the last child in a container. */
#page h2.wp-block-heading:last-child,
#page h3.wp-block-heading:last-child,
#page h4.wp-block-heading:last-child,
#page h5.wp-block-heading:last-child,
#page h6.wp-block-heading:last-child,
#page .h2:last-child,
#page .h3:last-child,
#page .h4:last-child,
#page .h5:last-child,
#page .h6:last-child {
    margin-bottom: 0;
}

h1.wp-block-heading, .h1 { font-size: 3.6rem; font-weight: 700; }
h2.wp-block-heading, .h2 { font-size: 1.8rem; color: rgba(157,34,53,1); }
h3.wp-block-heading, .h3 { font-size: 1.4rem; color: #000; }
h4.wp-block-heading, .h4 { font-size: 1.2rem; color: rgba(157,34,53,1); text-transform: uppercase; }
h5.wp-block-heading, .h5 { font-size: 1.2rem; color: rgba(157,34,53,1); }
h6.wp-block-heading, .h6 { font-size: 1rem; margin-bottom: .25rem; color: rgba(157,34,53,1); }


/* --- Heading Spacing ---
   Gutenberg generates sibling selectors from blocks, so these
   !important overrides are intentional to win over block-level styles. */

/* Remove top margin from paragraphs/divs that immediately follow a heading. */
#page .h1 + p, #page .h2 + p, #page .h3 + p,
#page .h4 + p, #page .h5 + p, #page .h6 + p,
#page h1.wp-block-heading + p, #page h2.wp-block-heading + p,
#page h3.wp-block-heading + p, #page h4.wp-block-heading + p,
#page h5.wp-block-heading + p, #page h6.wp-block-heading + p,
#page .h1 + div, #page .h2 + div, #page .h3 + div,
#page .h4 + div, #page .h5 + div, #page .h6 + div,
#page h1.wp-block-heading + div, #page h2.wp-block-heading + div,
#page h3.wp-block-heading + div, #page h4.wp-block-heading + div,
#page h5.wp-block-heading + div, #page h6.wp-block-heading + div {
    margin-top: 0 !important;
}

/* Push h2 up when preceded by content blocks. */
#page p + .h2,    #page p + h2.wp-block-heading,
#page div + .h2,  #page div + h2.wp-block-heading,
#page ul + .h2,   #page ul + h2.wp-block-heading,
#page ol + .h2,   #page ol + h2.wp-block-heading {
    margin-top: 3rem !important;
}

/* Push h3 up when preceded by content blocks. */
#page p + .h3,    #page p + h3.wp-block-heading,
#page div + .h3,  #page div + h3.wp-block-heading,
#page ul + .h3,   #page ul + h3.wp-block-heading,
#page ol + .h3,   #page ol + h3.wp-block-heading {
    margin-top: 2.5rem !important;
}

/* Push h4 up when preceded by content blocks. */
#page p + .h4,    #page p + h4.wp-block-heading,
#page div + .h4,  #page div + h4.wp-block-heading,
#page ul + .h4,   #page ul + h4.wp-block-heading,
#page ol + .h4,   #page ol + h4.wp-block-heading {
    margin-top: 2rem !important;
}

/* Ensure spacing after iframes before adjacent content. */
#page iframe + h2.wp-block-heading,
#page iframe + h3.wp-block-heading,
#page iframe + h4.wp-block-heading,
#page iframe + h5.wp-block-heading,
#page iframe + h6.wp-block-heading,
#page iframe + p,
#page iframe + ul,
#page iframe + ol {
    margin-top: 1.5rem !important;
}

/* Tighten space between a paragraph and the list that follows it. */
#page p:has(+ ol),
#page p:has(+ ul) {
    margin-bottom: .333rem !important;
}

/* Events calendar: suppress default heading margins inside calendar cells. */
.tribe-events-calendar-month__calendar-event-title {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Clear headings that follow floated images so they don't wrap. */
.alignright + h1.wp-block-heading,
.alignright + h2.wp-block-heading,
.alignright + h3.wp-block-heading,
.alignright + h4.wp-block-heading,
.alignright + h5.wp-block-heading,
.alignright + h6.wp-block-heading { clear: left; }

.alignleft + h1.wp-block-heading,
.alignleft + h2.wp-block-heading,
.alignleft + h3.wp-block-heading,
.alignleft + h4.wp-block-heading,
.alignleft + h5.wp-block-heading,
.alignleft + h6.wp-block-heading { clear: right; }


/* --- Paragraphs & Body Text --- */

#page p {
    margin-bottom: 1rem;
}

/* Tighten top margin when a non-flex div precedes a paragraph. */
#page div:not(.is-layout-flex) + p {
    margin-top: 1.5em !important;
}

/* Base list item spacing. */
#page li {
    margin-top: .25rem !important;
}
#page li:first-child {
    margin-top: 0 !important;
}


/* --- Lists --- */

ul.unstyled-list {
    list-style-type: none;
    margin-left: 0;
    padding-left: 0;
}
#page ul.unstyled-list li:first-child {
    margin-top: 0 !important;
}

/* Ordered list style variants — apply as classes in the editor. */
ol.upper-alpha  { list-style-type: upper-alpha; }
ol.lower-alpha  { list-style-type: lower-alpha; }
ol.upper-roman  { list-style-type: upper-roman; }
ol.lower-roman  { list-style-type: lower-roman; }

/* Gutenberg "No bullets" style list item spacing. */
ul.is-style-none li {
    margin-bottom: .5rem !important;
}

/* Checklist: custom checkbox-style bullets using ::before. */
ul.checklist {
    list-style: none;
    font-size: 1.2rem;
    margin-left: .3rem;
}
ul.checklist a { font-weight: 600; }
ul.checklist li { margin-bottom: .5rem; }
ul.checklist li.tighten { margin-top: -.5rem; }
ul.checklist li::before {
    content: " ";
    display: inline-block;
    background-color: transparent;
    width: calc(1.2rem - 2px);
    height: calc(1.2rem - 2px);
    margin: 0 .3rem -2px -1.5rem;
    border: 1px solid #000;
}

/* Cool numbered list — uses CSS counters with a # prefix. */
.cool-list {
    counter-reset: cool;
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
}
.cool-list li {
    display: flex;
    margin-bottom: 1rem;
    counter-increment: cool;
    flex-wrap: nowrap;
}
.cool-list li::before {
    font-weight: 900;
    font-size: 2.6rem;
    content: "#" counter(cool) " ";
    font-family: standardcondensed;
    line-height: 1;
    margin-right: .4rem;
}

/* Link list: arrow-prefixed links, used in section directories. */
.link-list {
    padding-left: 0;
    list-style: none;
}
.link-list li {
    font-weight: bold;
    margin: 0 0 .5rem 0;
    line-height: 1.22em;
    font-size: 18px;
    text-align: left;
}
.link-list li a,
.link-list li a:visited {
    padding: 0 0 0 20px;
    display: block;
    background-image: url(https://www.transy.edu/sites/default/files/pictures/Arrow2.png);
    background-repeat: no-repeat;
    background-position: 1px center;
    background-size: 10px;
    text-decoration: none;
    transition: all .6s;
    color: rgba(0,0,0,.7);
}


/* --- Blockquotes --- */

blockquote {
    margin: 0 10px 1.5em 0;
    padding: 1rem 0 .5rem 1rem;
    quotes: "\201C" "\201D" "\2018" "\2019";
    overflow: hidden;
    position: relative;
}
blockquote.noquote {
    quotes: none;
}

/* Large decorative opening quote mark. */
blockquote::before {
    color: rgba(0,0,0,0.1);
    content: open-quote;
    font-size: 6rem;
    font-weight: 600;
    line-height: 1;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
}

/* Large decorative closing quote mark after last paragraph. */
blockquote p:last-of-type::after {
    content: close-quote;
    font-style: normal;
    color: rgba(0,0,0,0.1);
    line-height: 1;
    position: absolute;
    font-size: 6rem;
    font-weight: 600;
    z-index: 1;
    transform: translate(-10px, -10px);
}

/* Suppress quote marks on .noquote variant. */
blockquote.noquote::before,
blockquote.noquote p:last-of-type::after {
    content: '';
}

blockquote p {
    font-family: standardcondensed;
    font-size: 1.5rem;
    font-weight: 400;
    position: relative;
    z-index: 10;
    margin: 0 0 .2rem;
    color: #666;
}
blockquote .attribution {
    float: right;
    margin: 5px 0 0 10px;
    display: block;
}
blockquote cite {
    font-family: 'Warnock';
    text-align: right;
}
blockquote cite:empty,
blockquote cite:empty::before {
    display: none;
}

/* Gutenberg core quote block. */
.wp-block-quote blockquote {
    font-family: 'warnock-pro', "Warnock Pro";
}
.wp-block-quote cite::before {
    content: " –";
}

/* Gutenberg pullquote — bordered top/bottom, no quote marks. */
.wp-block-pullquote {
    padding: 1rem 0;
}
.wp-block-pullquote blockquote {
    border-top: 4px solid rgba(157,34,53,1);
    border-bottom: 4px solid rgba(157,34,53,1);
    border-left: none;
    quotes: none;
}
.wp-block-pullquote blockquote p {
    font-family: "warnock-pro", "Warnock Pro";
}
.wp-block-pullquote blockquote cite {
    display: block;
    margin: .5rem;
}


/* --- Inline & Misc Text --- */

dfn, cite, em, i { font-style: italic; }
big { font-size: 125%; }

address { margin: 0 0 1.5em !important; }

#page pre {
    background: #eee;
    font-family: "Courier 10 Pitch", Courier, monospace;
    font-size: 0.9375rem;
    line-height: 1.6;
    margin-bottom: 1.6em !important;
    max-width: 100%;
    overflow: auto;
    padding: 1.6em;
}

code, kbd, tt, var {
    font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
    font-size: 0.9375rem;
}

abbr, acronym {
    border-bottom: 1px dotted #666;
    cursor: help;
}

/* Highlight: non-color-specific marks get a soft yellow background. */
mark:not(.has-inline-color), ins {
    background: #f6f6cc;
    color: #000;
    text-decoration: none;
    padding: 0 .5px;
}
mark.has-inline-color {
    background-color: unset;
}

/* Drop cap — uses Warnock italic for an editorial look. */
.has-drop-cap:not(:focus):first-letter {
    float: left;
    font-size: 5rem;
    line-height: .5;
    font-weight: 600;
    margin: 20px 5px 0 -5px;
    font-family: 'warnock-pro', "Warnock Pro";
    text-transform: uppercase;
    font-style: normal;
    color: #9D2235;
    display: table-cell;
    vertical-align: bottom;
}
.has-drop-cap:not(:focus):after {
    content: "";
    display: none;
    clear: both;
    padding-top: 0;
}

/* Utility size modifiers */
.larger, .bigger   { font-size: 125%; }
.smaller           { font-size: 85.5%; }
.largerer, .biggerer { font-size: 150%; }
.smallerer         { font-size: 75%; }

/* Lowercase + normal tracking helper */
.lc {
    text-transform: lowercase;
    letter-spacing: normal;
}

/* Force condensed font family */
.condensed { font-family: standardcondensed !important; }


/* --- Custom Color Palette Classes ---
   These mirror the WordPress editor color palette. */

.has-white-color                     { color: #FFFFFF; }
.has-background-color                { color: #FAFAFA; }
.has-black-color                     { color: #000000; text-shadow: none !important; }
.has-charcoal-color                  { color: #404040; text-shadow: none !important; }
.has-crimson-color                   { color: #9D2235; text-shadow: none !important; }
.has-om-stone-color                  { color: #DFD1A7; }
.has-om-stone-light-color            { color: #F7F4ED; }
.has-cottage-grey-color              { color: #C4BFB6; }
.has-cottage-grey-light-color        { color: #E7E6E3; }
.has-important-red-color             { color: #EC1944; }

.has-white-background-color          { background-color: #FFFFFF; }
.has-background-background-color     { background-color: #FAFAFA; }
.has-black-background-color          { background-color: #000000; }
.has-charcoal-background-color       { background-color: #404040; }
.has-crimson-background-color        { background-color: #9D2235; }
.has-om-stone-background-color       { background-color: #DFD1A7; }
.has-om-stone-light-background-color { background-color: #F7F4ED; }
.has-cottage-grey-background-color   { background-color: #C4BFB6; }
.has-cottage-grey-light-background-color { background-color: #E7E6E3; }
.has-important-red-background-color  { background-color: #EC1944; }

/* Links inside cover blocks with dark backgrounds get white treatment. */
.wp-block-cover__background.has-crimson-background-color + div a,
.wp-block-cover__background.has-crimson-background-color + div a:link,
.wp-block-cover__background.has-black-background-color + div a,
.wp-block-cover__background.has-black-background-color + div a:link,
.wp-block-cover__background.has-important-red-background-color + div a,
.wp-block-cover__background.has-important-red-background-color + div a:link {
    color: #FFF;
    text-decoration-color: rgba(255,255,255,.6);
}
.wp-block-cover__background.has-crimson-background-color + div a:visited,
.wp-block-cover__background.has-black-background-color + div a:visited,
.wp-block-cover__background.has-important-red-background-color + div a:visited {
    color: #CCC;
    text-decoration-color: rgba(204,204,204,.6);
}

/* Links on crimson backgrounds (used in .has-crimson-background-color containers). */
.has-crimson-background-color a:not(.wp-block-button__link),
.has-crimson-background-color a:not(.wp-block-button__link):link {
    color: rgba(255,255,255,1);
    text-decoration-color: rgba(255,255,255,.4);
}
.has-crimson-background-color a:visited:not(.wp-block-button__link) {
    color: rgba(250,250,250,1);
}
.has-crimson-background-color a:not(.wp-block-button__link):hover,
.has-crimson-background-color a:not(.wp-block-button__link):focus,
.has-crimson-background-color a:not(.wp-block-button__link):active {
    color: rgba(255,255,255,1);
    text-decoration-color: rgba(255,255,255,1);
}

/* Ensures underline matches text color when --has-link-color is active. */
.has-link-color a {
    text-decoration-color: currentColor;
}


/* --- Multi-Column Layout Helpers ---
   CSS multi-column classes for use in the block editor.
   NOTE: -webkit- and -moz- prefixes kept for legacy browser support;
   modern browsers use the unprefixed properties. */

/* Base column mixin — applied to .twocol, .threecol, .fourcol */
.twocol   { columns: auto 2; column-gap: 30px; clear: both; }
.threecol { columns: auto 3; column-gap: 30px; clear: both; }
.fourcol  { columns: auto 4; column-gap: 30px; clear: both; }

/* Prevent items from splitting across columns. */
.twocol li, .twocol div, .twocol p,
.threecol li, .threecol div, .threecol p,
.fourcol li, .fourcol div, .fourcol p {
    break-inside: avoid;
}

/* When a wp-block-group uses a column class, reset to 1-column on the
   outer group and apply columns to the inner container instead. */
.wp-block-group.twocol,
.wp-block-group.threecol,
.wp-block-group.fourcol { columns: auto 1; }

.wp-block-group.twocol > .wp-block-group__inner-container {
    columns: auto 2;
    column-gap: 30px;
    clear: both;
}
.wp-block-group.threecol > .wp-block-group__inner-container {
    columns: auto 3;
    column-gap: 30px;
    clear: both;
}
.wp-block-group.fourcol > .wp-block-group__inner-container {
    columns: auto 4;
    column-gap: 30px;
    clear: both;
}


/* --- Themed Container Classes ---
   Apply as additional CSS classes in the block editor. */

.cottage-grey {
    background-color: rgba(196,191,182,.35);
}
.old-morrison-stone {
    background-color: rgba(223,209,167,.35);
}
.transy-crimson {
    background-color: rgba(157,34,53,1);
    color: #FFF;
}
.transy-crimson,
.cottage-grey,
.old-morrison-stone {
    padding: 1rem;
}

/* Link styles inside the crimson container. */
.transy-crimson a {
    color: rgba(255,255,255,1);
    text-decoration: underline;
    text-decoration-color: rgba(255,255,255,.4);
    transition: all .6s;
}
.transy-crimson a:visited {
    color: rgba(255,255,255,.9);
}
.transy-crimson a:hover,
.transy-crimson a:focus,
.transy-crimson a:active {
    color: rgba(255,255,255,1);
    text-decoration-color: rgba(255,255,255,1);
    text-shadow: 0 0 .5px;
}
.transy-crimson a:focus { outline: thin dotted; }
.transy-crimson a:hover,
.transy-crimson a:active { outline: 0; }


/* =============================================================
   # ELEMENTS
   ============================================================= */

/* --- Base Elements --- */

html {
    box-sizing: border-box;
}
*, *:before, *:after {
    /* Inherit so components can override without fighting the global rule.
       See https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
    box-sizing: inherit;
}

body {
    background: #FAFAFA;
}

hr {
    background-color: #ccc;
    border: 0;
    height: 1px;
    margin: 1.5rem;
}

img {
    height: auto;
    max-width: 100%;
}
/* Disable pointer events on images inside links (avoids drag-initiating clicks). */
a > img { pointer-events: none; }

figure {
    margin: 1rem 0;
}
/* Remove trailing margin from the last figure or its figcaption. */
figure:last-child,
figure:last-child > figcaption {
    margin-bottom: 0;
}
/* Headings followed by figures should have no gap. */
.h2 + figure, .h3 + figure, .h4 + figure, .h5 + figure, .h6 + figure,
h2 + figure, h3 + figure, h4 + figure, h5 + figure, h6 + figure {
    margin-top: 0;
}

table {
    margin: 0 0 1.5rem;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}
/* Consistent cell padding; vertical-align top for multi-line content. */
tr th, tr td {
    padding: 10px;
    vertical-align: top;
}
/* Zebra-stripe table rows. */
tr:nth-child(2n) th,
tr:nth-child(2n) td {
    background-color: rgba(0,0,0,0.05);
}
/* Reset padding on bare td/th (not inside tr, e.g. standalone usage). */
td, th { padding: 0; }

dt { font-weight: bold; }
dd { margin: 0 1.5rem .8rem; }


/* --- Gutenberg Blocks --- */

/* Constrain video embeds to a readable max width when not in a wide layout. */
.entry-content :not(.is-layout-constrained) .wp-block-embed.is-type-video {
    max-width: 780px;
    padding: 0 30px;
}

/* Ensure gallery images don't stretch in a nested layout. */
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image {
    flex-grow: 0;
}

/* Block list margins override Gutenberg defaults. */
#page .wp-block-list {
    margin: 0 0 1.5rem 0 !important;
    padding: 0 0 0 1.1rem;
}
/* Nested list — tighter indent. */
li > .wp-block-list {
    margin-bottom: 0;
    margin-left: .8rem;
}

/* Aligned image helpers. */
.wp-block-image .aligncenter {
    display: block;
    text-align: center;
}
.wp-block-image:first-child { margin-top: 0; }
.wp-block-image .alignright,
.wp-block-image .alignleft  { margin-top: 1rem; }
.wp-block-image:first-child .alignright,
.wp-block-image:first-child .alignleft { margin-top: .2rem; }

/* On mobile, float-aligned images are centered instead. */
.wp-block-image figure.alignright,
.wp-block-image figure.alignleft {
    float: none;
    text-align: center;
    margin: .5rem 0;
}

/* Suppress top margin when an image block immediately precedes a paragraph. */
div.wp-block-image + p { margin-top: 0; }

/* Figcaptions — all block types share the same caption treatment. */
.wp-block-gallery figcaption,
.wp-block-image figcaption,
.wp-block-embed figcaption { text-align: center; }

.wp-block-gallery.alignright > figcaption,
.wp-block-image.alignright > figcaption,
.wp-block-embed.alignright > figcaption,
.wp-block-gallery.alignleft > figcaption,
.wp-block-image.alignleft > figcaption,
.wp-block-embed.alignleft > figcaption { display: block; text-align: left; }

.wp-block-image .aligncenter > figcaption,
.wp-block-image .alignleft  > figcaption,
.wp-block-image .alignright > figcaption { display: block; }

.wp-block-image .alignleft  figcaption,
.wp-block-image .alignright figcaption  { text-align: left; }

/* Shared figcaption typography. */
.wp-block-embed figcaption,
.wp-block-gallery figcaption,
.wp-block-table figcaption,
.wp-block-image figcaption {
    width: 100%;
    font-family: 'standard';
    font-weight: 600;
    margin: 0.2rem 0 1rem;
    font-size: .9rem;
}
.wp-block-table figcaption { margin: -.5rem 0 1.5rem; }

.wp-block-gallery figcaption strong,
.wp-block-table figcaption strong,
.wp-block-image figcaption strong { color: #111; }

/* Gallery without nested images: dark overlay figcaption. */
.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,
.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,
.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,
.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption {
    margin-bottom: 0;
    background: rgba(0,0,0,.8);
    padding-top: 10px;
}

/* Gallery with nested images: light overlay figcaption. */
.blocks-gallery-grid.has-nested-images .wp-block-image figcaption,
.blocks-gallery-grid.has-nested-images .blocks-gallery-item figcaption,
.wp-block-gallery.has-nested-images .wp-block-image figcaption,
.wp-block-gallery.has-nested-images .blocks-gallery-item figcaption,
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
    margin-bottom: 0;
    background: rgba(255,255,255,.5);
    padding-top: 10px;
    color: #000;
    text-shadow: 0 0 1.5px #FFF;
}

/* Gallery block top margin. */
figure.wp-block-gallery {
    margin: 1rem 0 1.5rem;
}

/* Hide individual image captions in multi-column galleries (clutter). */
figure.wp-block-gallery:not(.slideshow) figure figcaption { display: none; }

/* Show captions in 1–3 column galleries (legible at that density). */
figure.wp-block-gallery.columns-1 figure figcaption,
figure.wp-block-gallery.columns-2 figure figcaption,
figure.wp-block-gallery.columns-3 figure figcaption { display: block; }

/* Slideshow gallery — hide all images except first (JS handles the rest). */
figure.wp-block-gallery.slideshow > .wp-block-image { display: none; }
figure.wp-block-gallery.slideshow > .wp-block-image:first-child { display: block; }

/* Flexible table block — styled header row and alternating row stripes. */
body .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tr th {
    vertical-align: top;
    min-width: 2rem;
    background-color: #00000022;
}
body .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table thead tr th {
    background-color: var(--wp--preset--color--crimson);
    color: var(--wp--preset--color--white);
}
body .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tbody tr td {
    vertical-align: top;
    background-color: transparent;
    color: var(--wp--preset--color--grey-90);
}
body .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tbody tr th {
    color: var(--wp--preset--color--grey-90);
}
body .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tbody tr:nth-child(2n+1) td {
    vertical-align: top;
    background-color: #00000011;
}
body .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tbody tr:hover th,
body .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tbody tr:hover td {
    background-color: var(--wp--preset--color--white);
    color: var(--wp--preset--color--black);
}

/* Flex layout overrides (Gutenberg is-layout-flex). */
.is-layout-flex {
    display: flex;
    align-content: center;
    flex-wrap: wrap;
}
.is-layout-flex.is-nowrap { flex-wrap: nowrap; }
.is-layout-flex.is-nowrap > * { margin: 0; }
.wp-block-buttons.is-layout-flex { gap: 1rem; }
.is-content-justification-center { justify-content: center; }

/* Constrained layout respects the WP wide-size custom property. */
body .is-layout-constrained.alignwide > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    max-width: var(--wp--style--global--wide-size);
}

/* Media-text block: add spacing between repeated pairs. */
.wp-block-media-text + .wp-block-media-text { margin-top: 1rem; }

/* Cover block: light-background variant restores dark text/link colors. */
.wp-block-cover-image.light-background .wp-block-cover__inner-container,
.wp-block-cover.light-background .wp-block-cover__inner-container {
    z-index: 1;
    color: #404040;
}
.wp-block-cover.light-background .wp-block-cover__inner-container * { text-shadow: none; }
.wp-block-cover-image.light-background .wp-block-cover__inner-container h2,
.wp-block-cover.light-background .wp-block-cover__inner-container h2 { color: #9D2235; }

.wp-block-cover-image.light-background .wp-block-cover__inner-container a,
.wp-block-cover-image.light-background .wp-block-cover__inner-container a:visited,
.wp-block-cover.light-background .wp-block-cover__inner-container a,
.wp-block-cover.light-background .wp-block-cover__inner-container a:visited { color: #9D2235; text-decoration: underline; }

.wp-block-cover.light-background .wp-block-cover__inner-container li a,
.wp-block-cover.light-background .wp-block-cover__inner-container li a:visited,
.wp-block-cover.light-background .wp-block-cover__inner-container p a,
.wp-block-cover.light-background .wp-block-cover__inner-container p a:visited,
.wp-block-cover.light-background .wp-block-cover__inner-container cite a,
.wp-block-cover.light-background .wp-block-cover__inner-container cite a:visited { color: #9D2235; }

/* Bottom-message cover: image with a caption bar pinned to the bottom. */
.wp-block-cover.bottom-message-cover {
    align-items: flex-end;
    min-height: 0 !important;
}
.wp-block-cover.bottom-message-cover h2 {
    font-family: standardcondensed;
    font-weight: normal;
    font-size: 2rem;
    text-align: center;
    text-shadow: 0 0 5px rgba(0,0,0,1), 0 0 15px rgba(0,0,0,1), 0 0 50px rgba(0,0,0,.5);
    margin-top: 50% !important;
}

/* Vertically center columns in a columns block. */
.wp-block-columns.v-center-cols { align-items: center; }

/* Top margin for non-first columns blocks. */
.wp-block-columns:not(:first-child) { margin-top: 1.5rem; }
.is-layout-flex.wp-block-group .wp-block-columns { margin-top: 0; }

/* Suppress margin-top when a heading immediately precedes a columns block. */
.h2 + .wp-block-columns:not(:first-child),
.h3 + .wp-block-columns:not(:first-child),
.h4 + .wp-block-columns:not(:first-child),
.h5 + .wp-block-columns:not(:first-child),
.h6 + .wp-block-columns:not(:first-child),
h2 + .wp-block-columns:not(:first-child),
h3 + .wp-block-columns:not(:first-child),
h4 + .wp-block-columns:not(:first-child),
h5 + .wp-block-columns:not(:first-child),
h6 + .wp-block-columns:not(:first-child) { margin-top: 0; }

/* Prevent long words from breaking the column layout. */
.wp-block-column { word-break: normal; overflow-wrap: normal; }

/* Group block: bottom margin and overflow management. */
.wp-block-group { margin-bottom: 1.5rem; }
.wp-block-cover .wp-block-group { overflow: visible; }
.entry-content > .wp-block-group:last-child,
.wp-block-cover__inner-container > .wp-block-group:last-child { margin-bottom: 0; }
.wp-block-group .wp-block-columns:last-child { margin-bottom: 0; }

/* "container" modifier — centers and constrains the inner container. */
.wp-block-group.container .wp-block-group__inner-container {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

/* Constrained-layout wide-block override. */
body .is-layout-constrained.alignwide > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    max-width: var(--wp--style--global--wide-size);
}

/* Infographic column layouts */
.wp-block-columns.infographics,
.wp-block-group.infographics {
    margin-top: 50px;
    margin-bottom: 50px;
}
.wp-block-columns.infographics.container,
.wp-block-group.infographics.container { max-width: 960px; }
.wp-block-columns.infographics .wp-block-columns { margin: 0; }
.wp-block-columns.infographics figure,
.wp-block-group.infographics figure {
    width: 100%;
    margin: 0 auto 30px;
    padding: 20px;
}
.wp-block-columns.infographics img,
.wp-block-group.infographics img {
    width: 100%;
    height: auto;
}

/* Section directory — a two-column layout with styled heading + arrow-list. */
.wp-block-columns.section-directory { margin: 3rem auto; }
.wp-block-columns.section-directory h2,
.wp-block-columns.section-directory h3 {
    margin-top: 0;
    font-family: standardcondensed;
    color: #9D2235;
    font-size: 2rem;
}
.wp-block-columns.section-directory ul {
    padding-left: 0;
    list-style: none;
}
.wp-block-columns.section-directory ul li {
    font-weight: bold;
    margin: 0 0 .5rem 0;
    line-height: 1.22em;
    font-size: 18px;
    text-align: left;
}
.wp-block-columns.section-directory ul li a,
.wp-block-columns.section-directory ul li a:visited {
    padding: 0 0 0 20px;
    display: block;
    background-image: url(https://www.transy.edu/sites/default/files/pictures/Arrow2.png);
    background-repeat: no-repeat;
    background-position: 1px center;
    background-size: 10px;
    text-decoration: none;
    transition: all .6s;
    color: rgba(0,0,0,.7);
}
/* Full-bleed image at the top of an Old Morrison Stone group in the column after a section-directory. */
.wp-block-columns.section-directory + .wp-block-columns .wp-block-group.old-morrison-stone figure:first-child {
    margin: -10px;
    width: calc(100% + 20px);
    display: block;
    max-width: unset;
}

/* Collapse inner column top margin in image + group combos. */
.wp-block-column .old-morrison-stone > .wp-block-group__inner-container figure:first-child,
.wp-block-column .cottage-grey > .wp-block-group__inner-container figure:first-child,
.wp-block-column .transy-crimson > .wp-block-group__inner-container figure:first-child {
    margin: -1rem -1rem 0;
}

/* WP Accordion heading toggle weight. */
.wp-block-accordion-heading__toggle { font-weight: 500; }

/* Navigation block — remove default left padding on vertical variants. */
#main .wp-block-navigation.is-vertical .wp-block-navigation-item__content {
    padding-left: 0;
}
#main .wp-block-navigation.is-vertical .wp-block-navigation-item__content:hover {
    padding-left: .5rem;
    text-decoration: none;
}

/* Flex group — two/three-column grid at tablet+. */
body .is-layout-flex.twocol {
    display: grid;
    grid-template-columns: 50% 50%;
}
body .is-layout-flex.threecol {
    display: grid;
    grid-template-columns: 33.3% 33.3% 33.3%;
}

/* Video embed ratio helpers */
.ratio-override-16-9.is-type-video > .wp-block-embed__wrapper {
    padding-top: 56% !important;
    height: 0;
}
.wp-embed-aspect-2-5.is-type-video > .wp-block-embed__wrapper {
    padding-top: 40%;
    height: 0;
}
.ratio-override-16-9.is-type-video > .wp-block-embed__wrapper iframe {
    width: 100% !important;
    height: 100% !important;
}


/* --- Buttons ---
   The base .wp-block-button and .btn share the same visual language:
   condensed font, bordered, Crimson text on light background. */

.btn,
.wp-block-button > a,
.wp-block-button > a:link,
.wp-block-button > a:visited,
.wp-block-file > a.wp-block-file__button,
.wp-block-file > a.wp-block-file__button:link,
.wp-block-file > a.wp-block-file__button:visited {
    font-weight: 400;
    font-family: standardcondensed;
    font-size: 1.6rem;
    padding: .5rem;
    display: inline-block;
    border: 2px solid;
    background-color: rgba(245,245,245,1);
    text-decoration: none !important;
    color: rgba(157,34,53,1);
    border-radius: 0;
    transition: .6s ease;
}

/* Small/file button variant */
.wp-block-buttons.small a, .wp-block-button.small a, .btn-sm,
.wp-block-file > a.wp-block-file__button,
.wp-block-file > a.wp-block-file__button:link,
.wp-block-file > a.wp-block-file__button:visited {
    font-size: 1rem;
    font-weight: 700;
    padding: .4rem .4rem .25rem;
    letter-spacing: .5px;
}
.wp-block-file > a.wp-block-file__button,
.wp-block-file > a.wp-block-file__button:link,
.wp-block-file > a.wp-block-file__button:visited { min-width: 0; }

/* Primary variant: Crimson fill */
.primary .wp-block-button > a,
.primary .wp-block-button > a:link,
.primary .wp-block-button > a:visited,
.primary.wp-block-button > a,
.primary.wp-block-button > a:link,
.primary.wp-block-button > a:visited {
    color: rgba(255,255,255,1) !important;
    background-color: rgba(157,34,53,.9);
}

/* Overlay variant: semi-transparent dark fill */
.overlay .wp-block-button > a,
.overlay .wp-block-button > a:link,
.overlay .wp-block-button > a:visited,
.overlay.wp-block-button > a,
.overlay.wp-block-button > a:link,
.overlay.wp-block-button > a:visited {
    color: rgba(255,255,255,1) !important;
    background-color: rgba(0,0,0,.4);
}

/* Important variant: brighter red fill */
.important .wp-block-button > a,
.important .wp-block-button > a:link,
.important .wp-block-button > a:visited,
.important.wp-block-button > a,
.important.wp-block-button > a:link,
.important.wp-block-button > a:visited {
    color: rgba(255,255,255,1) !important;
    border-color: rgba(218,54,72,1) !important;
    background-color: rgba(218,54,72,.9);
}

/* Hover state — shared across all button variants. */
a.btn:hover,
.overlay .wp-block-button > a:hover,
.primary .wp-block-button > a:hover,
.important .wp-block-button > a:hover,
.overlay.wp-block-button > a:hover,
.primary.wp-block-button > a:hover,
.important.wp-block-button > a:hover,
.wp-block-file > a.wp-block-file__button:hover,
.wp-block-button > a:hover {
    background-color: rgba(255,255,255,.8) !important;
    color: rgb(106,22,35) !important;
    text-decoration: none;
    box-shadow: 1px 1px 0 #9D2235, -1px -1px 0 #9D2235, 1px -1px 0 #9D2235, -1px 1px 0 #9D2235;
    border-color: #9D2235;
    text-shadow: 0 0 2px #9D223588;
}

/* Focus state — full-white fill for keyboard accessibility. */
a.btn:focus,
.overlay .wp-block-button > a:focus,
.primary .wp-block-button > a:focus,
.important .wp-block-button > a:focus,
.overlay.wp-block-button > a:focus,
.primary.wp-block-button > a:focus,
.important.wp-block-button > a:focus,
.wp-block-button > a:focus {
    background-color: rgba(255,255,255,1) !important;
    color: rgba(0,0,0,1) !important;
    text-shadow: 0 0 1px rgba(0,0,0,1);
    border-color: #691723;
}

/* Active / selected state */
.wp-block-button > a:not(:disabled):not(.disabled).active,
.wp-block-button > a:not(:disabled):not(.disabled):active,
.show > .wp-block-button > a.dropdown-toggle {
    color: #9D2235;
    background-color: #FFF;
    border-color: #9D2235;
}

/* Block-display modifier: full-width stacked buttons. */
.block .wp-block-button > a,
.wp-block-button.block > a { display: block; min-width: unset; }
.block .wp-block-button + .wp-block-button,
.wp-block-button.block + .wp-block-button.block { margin-top: 3px; }
.wp-block-button.block { display: block; margin-right: 0; }
.wp-block-button.block a { display: block; }
.wp-block-buttons.block { display: block; }
.wp-block-buttons.block > .wp-block-button { display: block; }

/* Button bar: evenly spaced horizontal row of buttons. */
.wp-block-buttons { margin-bottom: 1.5rem; }
.wp-block-buttons:last-child { margin-bottom: 0; }
.wp-block-button { margin: .5rem 0; }

/* Video link: appends a play icon after the link text. */
.videolink a:after {
    content: "\f236";
    font-family: 'dashicons';
    display: inline-block;
    vertical-align: bottom;
    margin-left: 5px;
}

/* Image-as-button: full-bleed click target with overlaid caption. */
.wp-block-image.btn-cta {
    position: relative;
    height: 0;
    overflow: hidden;
    padding-top: 40%;
    margin: 0;
    background: #000;
    transition: background-color .6s;
    width: 100%;
}
.wp-block-image.btn-cta:hover { background: #FFF; }
body .entry-content .wp-block-image.btn-cta + p,
.wp-block-image.btn-cta + .wp-block-image.btn-cta { margin-top: 1.5rem; }
body .entry-content .is-layout-grid .wp-block-image.btn-cta + p,
body .entry-content .is-layout-grid .wp-block-image.btn-cta + .wp-block-image.btn-cta { margin-top: 0; }
.wp-block-image.btn-cta a {
    display: block;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    width: 100%;
    height: 100%;
}
.wp-block-image.btn-cta a img {
    transition: all .6s;
    opacity: .6;
    object-fit: cover;
    height: 100%;
    width: 100%;
}
.wp-block-image.btn-cta figcaption {
    pointer-events: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    color: rgba(255,255,255,1);
    font-family: neue-haas-grotesk-text, standard;
    text-transform: uppercase;
    font-size: 32px;
    margin: 0;
    padding: 1rem;
    transition: all .6s;
    text-shadow: 0 0 5px rgba(0,0,0,1), 0 0 15px rgba(0,0,0,1);
    font-weight: 600;
    line-height: 1;
    text-align: center;
}
.wp-block-image.btn-cta:hover a img { opacity: 0.2; }
.wp-block-image.btn-cta:hover figcaption {
    color: rgba(157,34,53,1);
    text-shadow: none;
}
@media (min-width: 783px) and (max-width: 1200px) {
    .wp-block-image.btn-cta figcaption { font-size: 2vw; }
}

/* Image button: full-overlay caption that turns crimson on hover. */
.wp-block-image.image-button { position: relative; }
.wp-block-image.image-button figcaption a {
    display: flex;
    position: absolute;
    top: 0; bottom: 0; left: 0; right: 0;
    width: 100%;
    color: rgba(255,255,255,1);
    font-family: neue-haas-grotesk-text, standard;
    text-transform: uppercase;
    font-size: 32px;
    margin: 0;
    transition: all .6s;
    text-shadow: 0 0 5px rgba(0,0,0,1), 0 0 15px rgba(0,0,0,1);
    font-weight: 600;
    line-height: 1;
    text-align: center;
    align-content: center;
    justify-content: center;
    align-items: center;
    padding: .5rem;
    text-decoration: none;
    background-color: rgba(0,0,0,.2);
}
.wp-block-image.image-button figcaption a:hover { background-color: rgba(157,34,53,.8); }


/* =============================================================
   # THIRD-PARTY BLOCK CUSTOMIZATIONS
   ============================================================= */

/* --- Jetpack --- */

body #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,
body #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date {
    opacity: 1;
    color: #474d53 !important;
}
body #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt {
    font-size: .9rem;
    margin: .5rem 0;
}
body .widget .wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__form-elements,
body .widget .wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__form-elements {
    display: block;
}


/* --- Gravity Forms ---
   Provides Bootstrap-compatible field styling for Gravity Forms. */

.gform_wrapper ul { padding-left: 0; list-style: none; }
body .gform_wrapper ul.gform_fields li.gfield { margin: 3rem 0 0; }
.gform_wrapper form { margin-bottom: 0; }

.gform_wrapper .gfield_required {
    padding-left: 1px;
    color: #b94a48;
}

/* Input/select/textarea base styles. */
.ginput_container input,
.ginput_container select,
.ginput_container textarea {
    display: block;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.428571429;
    color: #555;
    vertical-align: middle;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.ginput_container input { display: inline-block; }

/* Placeholder colors — all vendor prefixes required for cross-browser support. */
.ginput_container input:-moz-placeholder,
.ginput_container select:-moz-placeholder,
.ginput_container textarea:-moz-placeholder { color: #999; }
.ginput_container input::-moz-placeholder,
.ginput_container select::-moz-placeholder,
.ginput_container textarea::-moz-placeholder { color: #999; }
.ginput_container input:-ms-input-placeholder,
.ginput_container select:-ms-input-placeholder,
.ginput_container textarea:-ms-input-placeholder { color: #999; }
.ginput_container input::-webkit-input-placeholder,
.ginput_container select::-webkit-input-placeholder,
.ginput_container textarea::-webkit-input-placeholder { color: #999; }

.ginput_container input:focus,
.ginput_container select:focus,
.ginput_container textarea:focus {
    border-color: #66afe9;
    outline: 0;
    box-shadow: inset 0 1px 1px rgba(0,0,0,0.075), 0 0 8px rgba(102,175,233,0.6);
}

.ginput_container input[disabled],
.ginput_container select[disabled],
.ginput_container textarea[disabled],
.ginput_container input[readonly],
.ginput_container select[readonly],
.ginput_container textarea[readonly],
fieldset[disabled] .ginput_container input,
fieldset[disabled] .ginput_container select,
fieldset[disabled] .ginput_container textarea {
    cursor: not-allowed;
    background-color: #eee;
}

/* Suppress top margin on checkbox/radio containers. */
body .entry-content .gform_wrapper ul li.field_description_below div.ginput_container_checkbox,
body .entry-content .gform_wrapper ul li.field_description_below div.ginput_container_radio,
body .gform_wrapper .top_label li ul.gfield_checkbox,
body .gform_wrapper .top_label li ul.gfield_radio,
body .gform_wrapper .top_label li ul.gfield_checkbox input[type=checkbox],
body .gform_wrapper .top_label li ul.gfield_radio input[type=radio] { margin-top: 0; }

.ginput_container textarea { height: auto; }

/* Submit button */
.gform_wrapper .button,
.gform_button {
    display: inline-block;
    padding: 8px 12px 4px;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.428571429;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    background-color: #9D2235;
    border: 1px solid #9D2235;
    border-radius: .2rem;
    user-select: none;
}
.gform_wrapper .gform_footer { text-align: right; }
.gform_widget .gform_wrapper .gform_footer { padding: 0; }

.gform_wrapper .button:focus,
.gform_button:focus {
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px;
}
.gform_wrapper .button:hover,
.gform_button:hover,
.gform_button:focus { color: #333; text-decoration: none; }

.gform_wrapper .button:active,
.gform_wrapper .button.active,
.gform_button:active,
.gform_button.active {
    background-image: none;
    outline: 0;
    box-shadow: inset 0 3px 5px rgba(0,0,0,0.125);
}

/* Disabled states */
.gform_wrapper .button.disabled, .gform_button.disabled,
.gform_button[disabled], fieldset[disabled] .gform_button,
.gform_button.disabled:hover, .gform_button[disabled]:hover,
fieldset[disabled] .gform_button:hover,
.gform_button.disabled:focus, .gform_button[disabled]:focus,
fieldset[disabled] .gform_button:focus,
.gform_button.disabled:active, .gform_button[disabled]:active,
fieldset[disabled] .gform_button:active,
.gform_button.disabled.active, .gform_button[disabled].active,
fieldset[disabled] .gform_button.active {
    background-color: #428bca;
    border-color: #357ebd;
    pointer-events: none;
    cursor: not-allowed;
    opacity: .65;
    box-shadow: none;
}

/* Error states */
.gform_wrapper .gfield_error .gfield_label { color: #b94a48; }
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea {
    color: #b94a48;
    background-color: #f2dede;
    border-color: #eed3d7;
}
.gform_wrapper .gfield_error input:focus,
.gform_wrapper .gfield_error select:focus,
.gform_wrapper .gfield_error textarea:focus {
    border-color: #b94a48;
    outline: 0;
    box-shadow: inset 0 1px 1px rgba(0,0,0,0.075), 0 0 8px rgba(185,74,72,0.6);
}

/* Validation error alert box */
.validation_error {
    padding: 15px;
    margin-bottom: 20px;
    color: #b94a48;
    background-color: #f2dede;
    border: 1px solid #eed3d7;
    border-radius: 4px;
}
.validation_error h4 { margin-top: 0; color: inherit; }
.validation_error .alert-link { font-weight: bold; color: #953b39; }
.validation_error > p, .validation_error > ul { margin-bottom: 0; }
.validation_error > p + p { margin-top: 5px; }
.validation_error hr { border-top-color: #e6c1c7; }

/* Confirmation message */
#gforms_confirmation_message {
    padding: 15px;
    margin-bottom: 20px;
    border: 1px solid transparent;
    border-radius: 4px;
}
#gforms_confirmation_message h4 { margin-top: 0; color: inherit; }
#gforms_confirmation_message .alert-link { font-weight: bold; }
#gforms_confirmation_message > p,
#gforms_confirmation_message > ul { margin-bottom: 0; }
#gforms_confirmation_message > p + p { margin-top: 5px; }

/* Field labels */
.gfield_label { margin-bottom: 0; font-size: 14px; }
.ginput_complex > span > label { font-size: 11px; }

/* Honeypot / anti-spam field: visually hidden (do not remove). */
.gform_validation_container,
.gform_wrapper .gform_validation_container,
body .gform_wrapper li.gform_validation_container,
body .gform_wrapper .gform_body ul.gform_fields li.gfield.gform_validation_container,
body .gform_wrapper ul.gform_fields li.gfield.gform_validation_container {
    display: none !important;
    position: absolute !important;
    left: -9000px;
}

/* Half-width text fields: stack vertically so label aligns to bottom. */
.gform_wrapper.gravity-theme .gfield.gfield--width-half.gfield--input-type-text {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

/* Card widget wrapper */
.card-body > .gform_wrapper { margin: 0; }


/* --- Slate Contact Form ---
   Embedded Slate CRM contact form on program overview pages. */

.slate-contact { margin-bottom: 1rem; }

.slate-contact .form_question:not(.hidden) {
    display: flex !important;
    flex-direction: column;
    margin-bottom: .5rem !important;
}

/* Paragraph-style questions: left-align labels and de-bold them. */
.slate-contact .form_p.form_question .form_label,
.slate-contact .form_p.form_question .form_label > div {
    text-align: left !important;
    font-weight: 400;
}

.slate-contact .form_question .form_label {
    padding: 0 !important;
    margin: 0;
    font-weight: 700;
    font-size: .9rem;
}
.slate-contact .form_question .form_responses {
    padding: 0 !important;
    margin: 5px 0 8px;
}

/* Input fields — Bootstrap-style appearance. */
.slate-contact .form_question .form_responses input,
.slate-contact .form_question .form_responses select,
.slate-contact .form_question .form_responses textarea {
    height: 34px;
    line-height: 1.4285;
    color: #555;
    vertical-align: middle;
    background-color: #FFF;
    border: 1px solid #CCC;
    border-radius: 4px;
    box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    display: block;
}
.slate-contact .form_question .form_responses input { display: inline-block; }
.slate-contact .form_question .form_responses input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]) {
    font-size: inherit;
    font-family: inherit;
    padding: 5px 4px;
    letter-spacing: normal;
    width: 100%;
}

/* Date fields need row direction so month/day/year stay inline. */
.slate-contact div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_label { width: auto; }
.slate-contact div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_responses,
.slate-contact div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_responses_labels { flex-direction: column; }
.slate-contact div.form_container:not(.form_width_narrow) div[data-datatype="date"].form_question.form_layout_table .form_responses { flex-direction: row; }

.slate-contact .form_question fieldset {
    display: flex !important;
    flex-direction: column;
}
.slate-contact .form_question.form_select .form_responses,
.slate-contact .form_question fieldset .form_responses { display: flex !important; }
.slate-contact .form_question.form_select > .form_responses select { width: 100%; }
.slate-contact .form_question .form_response * {
    line-height: 1.1 !important;
    height: unset !important;
}

/* Submit button — right-aligned, Crimson fill */
.slate-contact .action,
.slate-contact .form_action { text-align: right; }
.slate-contact .action button,
.slate-contact .form_action button {
    font-weight: 400;
    font-family: standardcondensed;
    font-size: 1.6rem;
    padding: .5rem;
    display: inline-block;
    border: 2px solid;
    background-color: rgba(157,34,53,.9);
    text-decoration: none !important;
    color: rgba(255,255,255,1);
    border-radius: 0;
    transition: .6s ease;
}
.slate-contact .action button:hover,
.slate-contact .form_action button:hover {
    background-color: rgba(255,255,255,.8) !important;
    color: rgb(106,22,35) !important;
    text-decoration: none;
    box-shadow: 1px 1px 0 #9D2235, -1px -1px 0 #9D2235, 1px -1px 0 #9D2235, -1px 1px 0 #9D2235;
    border-color: #9D2235;
    text-shadow: 0 0 2px #9D223588;
}

/* Bootstrap focus ring for form controls (Crimson tint). */
.form-control:focus {
    box-shadow: 0 0 0 0.2rem rgba(236,25,68,.25);
}

/* Search form layout */
#searchform .form-group #blogSearch,
#searchform .form-group #s { border-radius: .2rem 0 0 .2rem; }
#searchform .btn:last-child { border-radius: 0 .2rem .2rem 0; }


/* --- Testimonial Blocks --- */

.wp-block-lees-blocks-testimonial-block { margin: 3rem 0; }
.wp-block-lees-blocks-testimonial-block.container { margin: 3rem auto; }
.wp-block-lees-blocks-testimonial-block:first-child { margin-top: 0; }

/* 2020 Testimonial: white variant — transparent background. */
.wp-block-lees-blocks-testimonial-2020-block { background-color: #9D2235; padding-right: 0; padding-left: 0; }
.wp-block-cover .wp-block-lees-blocks-testimonial-2020-block { margin-bottom: 0; }

.wp-block-lees-blocks-testimonial-2020-block.white { background: transparent; }
.wp-block-lees-blocks-testimonial-2020-block.white .testimonial-text { background: transparent; }
.wp-block-lees-blocks-testimonial-2020-block.white .testimonial-text .quote p { color: #404040; }
.wp-block-lees-blocks-testimonial-2020-block.white .testimonial-text .quote::before { color: rgba(0,0,0,.1); }
.wp-block-lees-blocks-testimonial-2020-block.white .testimonial-text .quote::after  { color: rgba(0,0,0,.1); }
.wp-block-lees-blocks-testimonial-2020-block.white .testimonial-text .sourceName  { color: rgba(218,54,72,1); }
.wp-block-lees-blocks-testimonial-2020-block.white .testimonial-text .sourceTitle { color: #404040; }

/* Flipped layout: image on right with a clip-path arrow. */
.wp-block-lees-blocks-testimonial-2020-block.flip { flex-direction: row; }
.wp-block-lees-blocks-testimonial-2020-block.flip .testimonial-image {
    clip-path: polygon(0 0, 80% 0%, 80% 30%, 100% 30%, 80% 60%, 80% 100%, 0 100%);
}
.wp-block-lees-blocks-testimonial-2020-block.flip .testimonial-text { padding: 60px 60px 60px 10px; }
@media (max-width: 1023px) {
    .wp-block-lees-blocks-testimonial-2020-block.flip .testimonial-image { clip-path: none; }
}


/* --- Cookie Consent --- */

.cli-style-v2 .cli-bar-btn_container .cli_action_button { background-color: #9D2235 !important; }
.cli-plugin-button, .cli-plugin-button:visited,
.medium.cli-plugin-button, .medium.cli-plugin-button:visited {
    font-size: 1.2rem;
    font-weight: 300;
    line-height: 1;
    font-family: standardcondensed;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.cli-tab-footer .wt-cli-privacy-accept-btn {
    background-color: #9D2235 !important;
    font-size: 1.2rem;
    font-weight: 300;
    line-height: 1;
    font-family: standardcondensed;
    text-transform: uppercase;
    letter-spacing: .5px;
}

/* Cookiebot dialog — hide the logo header to save vertical space. */
body #CybotCookiebotDialog #CybotCookiebotDialogHeader { display: none; }
body #CybotCookiebotDialog .CybotCookiebotScrollContainer { padding: .5rem 1rem 0; }
body #CybotCookiebotDialogBodyContent { padding: 0; }
body #CybotCookiebotDialogBodyContentTitle { margin-right: .5rem; display: inline; }
body #CybotCookiebotDialogBodyContentText { display: inline; }
body #CookiebotWidget:not(.CookiebotWidget-inactive) { bottom: 4rem; }
body #CookiebotWidget .CookiebotWidget-logo svg circle { fill: #9D2235; }


/* --- Chatbot Embed (AdmitHub) --- */

body ._admithub_embed-container .activation-button { bottom: 106px; right: 10px; }
body ._admithub_embed-container .message-iframe { bottom: 166px; right: -14px; }


/* --- Instagram Feed (SBI) --- */
body #sb_instagram .sbi_follow_btn a { background-color: #9D2235; }


/* --- CC Child Pages Plugin --- */
body .ccchildpages .ccchildpage { margin: 0 0 1rem; padding: 0; width: auto; }
body .ccchildpages .ccchildpage .ccpage_title_link { color: #9D2235 !important; text-decoration: underline; }


/* =============================================================
   # NAVIGATION
   ============================================================= */

/* --- Links --- */

a {
    color: rgba(157,34,53,1);
    text-decoration: underline;
    text-decoration-color: rgba(157,34,53,.4);
    transition: all .6s;
}
a:visited { color: rgba(137,72,82,1); }
a:hover, a:focus, a:active {
    color: rgba(157,34,53,1);
    text-decoration-color: rgba(157,34,53,1);
    text-shadow: 0 0 .5px;
}
a:focus { outline: thin dotted; }
a:hover, a:active { outline: 0; }


/* --- Mobile Nav Toggle (#hide-show-nav)
   Hamburger icon built with CSS pseudo-elements.
   Animates to an × when .show is applied to body. --- */

#hide-show-nav {
    position: absolute;
    left: 20px;
    top: 6px;
    background-color: rgba(255,255,255,0);
    z-index: 2000000;
    font-family: neue-haas-grotesk-text, standard, 'arial', sans-serif !important;
    line-height: 1;
    padding: .8rem;
    font-size: 1rem;
    text-decoration: none;
    border-radius: calc(.25rem - 1px);
    transition: background-color .6s ease .3s;
}
#hide-show-nav:hover { background-color: rgba(255,255,255,.9); }

.show #hide-show-nav {
    position: fixed;
    left: calc(100% - 86px);
    background-color: rgba(157,34,53,1);
}
.show #hide-show-nav:hover { background-color: rgba(157,34,53,.9); }

/* Hamburger bar (middle line via ::before on the button). */
#hide-show-nav::before {
    position: absolute;
    display: block;
    left: 20%;
    top: 50%;
    width: 60%;
    height: 4px;
    transform: translateY(-50%);
    background-color: #9D2235;
    border-radius: 5px;
    content: "";
    transition-duration: 0.6s, 0.6s;
    transition-delay: 0.3s, 0;
}
#hide-show-nav:hover::before { background-color: rgba(255,255,255,0); }
.show #hide-show-nav::before { background-color: rgba(255,255,255,1); }

/* Hidden accessible label */
#hide-show-nav span {
    display: block;
    position: relative;
    padding: .8rem 0;
    color: rgba(0,0,0,0);
    transition: all 0.6s;
    min-width: 40px;
}
#hide-show-nav span:hover { color: rgba(157,34,53,1); }

/* Top and bottom hamburger bars */
#hide-show-nav span::before,
#hide-show-nav span::after {
    position: absolute;
    display: block;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: #9D2235;
    border-radius: 5px;
    content: "";
    transition-duration: 0.6s, 0.6s;
    transition-delay: 0.3s, 0;
}
#hide-show-nav span::before { top: 0; transition-property: top, transform; }
#hide-show-nav span::after  { bottom: 0; transition-property: bottom, transform; }

/* Animate bars into an × on .show */
.show #hide-show-nav span         { color: rgba(157,34,53,0); }
.show #hide-show-nav span::before {
    transform: rotate(45deg);
    top: calc(50% - 2px);
    border-radius: 2px;
    transition: all .6s;
    background-color: rgba(255,255,255,.8);
}
.show #hide-show-nav span::after  {
    transform: rotate(-45deg);
    bottom: calc(50% - 2px);
    border-radius: 2px;
    transition: all .6s;
    background-color: rgba(255,255,255,.8);
}
.show #hide-show-nav:hover span::before,
.show #hide-show-nav:hover span::after { background-color: rgba(255,255,255,1); }

/* Search toggle button */
#show-search {
    position: absolute;
    right: 28px;
    top: 20px;
    background-color: rgba(255,255,255,0);
    z-index: 1000001;
    font-family: neue-haas-grotesk-text, standard, 'arial', sans-serif !important;
    line-height: 1;
    padding: 0;
    font-size: .8rem;
    text-decoration: none;
    border-radius: calc(.25rem - 1px);
    transition: background-color .6s ease .3s;
    background-image: url(images/Magnifying_glass_icon.svg);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    height: 50px;
    width: 50px;
}
#show-search span {
    color: rgba(157,34,53,0);
    position: absolute;
    clip: rect(0,0,0,0);
}


/* --- Mobile Nav Drawer (#site-nav)
   Off-canvas drawer that slides in from the left on .show body. --- */

#site-nav {
    position: fixed;
    z-index: 99990;
    background-color: rgba(255,255,255,.8);
    width: 100%;
    left: 0;
    height: 100%;
    padding: .5rem 0 0;
    display: flex;
    transform: translate3d(-100%,0,0);
    transition: transform .6s;
    bottom: 0;
}
.admin-bar #site-nav { height: calc(100% - 46px); }
.show #site-nav { transform: translate3d(0,0,0); }

#site-nav nav {
    display: flex;
    overflow: auto;
    touch-action: auto;
    width: 100%;
    font-family: neue-haas-grotesk-text, standard, 'arial narrow', sans-serif;
    font-weight: 600;
}
#site-nav .menu-primary-container { width: 100%; }
#site-nav #primary-menu { display: block; padding: 0; }

#site-nav #primary-menu .menu-item {
    font-size: 1.2rem;
    list-style: none;
    position: relative;
    max-height: 2000px;
    transition: all .6s;
}
#site-nav #primary-menu .menu-item a {
    color: rgba(0,0,0,.7);
    background-color: transparent;
    transition: all .6s;
    text-decoration: none;
    position: relative;
    display: block;
    padding: .5rem 90px .5rem 2.5rem;
    line-height: 1;
    border-bottom: 1px solid;
    box-shadow: none;
}
#site-nav #primary-menu .menu-item.current-menu-item > a::before {
    position: absolute;
    left: 0;
    top: 50%;
    border: solid transparent;
    content: " ";
    border-color: rgba(255,255,255,0);
    border-left-color: #FFF;
    border-width: 4px 0 4px 4px;
    margin-top: -4px;
}
#site-nav #primary-menu .menu-item a:hover {
    color: rgba(0,0,0,1);
    background-color: rgba(255,255,255,1);
}

/* Expand/collapse toggles inside the mobile nav */
#site-nav #primary-menu .menu-item-has-children a .expander,
#site-nav #primary-menu .menu-item-has-children a .collapser {
    position: absolute;
    left: .5rem;
    height: 1.6rem;
    width: 1.6rem;
    overflow: hidden;
    background-color: rgba(224,224,224,1);
    border-radius: 1px;
    top: calc(50% - 0.8rem);
    transition: all .6s;
}
#site-nav #primary-menu .menu-item-has-children a .expander:hover,
#site-nav #primary-menu .menu-item-has-children a .collapser:hover { background-color: rgba(255,255,255,1); }

#site-nav #primary-menu .menu-item-has-children.expanded > a .expander { pointer-events: none; }

/* Accessible hidden label inside expander/collapser */
#site-nav #primary-menu .menu-item-has-children a .expander span,
#site-nav #primary-menu .menu-item-has-children a .collapser span {
    overflow: hidden;
    position: absolute;
    clip: rect(0,0,0,0);
}

/* Plus icon */
#site-nav #primary-menu .menu-item-has-children a .expander::before,
#site-nav #primary-menu .menu-item-has-children a .expander::after {
    position: absolute;
    display: block;
    left: 50%;
    width: 60%;
    height: 4px;
    background-color: rgba(0,0,0,1);
    content: "";
    transition-duration: 0.6s, 0.6s;
    top: 50%;
}
#site-nav #primary-menu .menu-item-has-children a .expander::before { transform: rotate(90deg) translate(-1px,7px); }
#site-nav #primary-menu .menu-item-has-children a .expander::after  { transform: rotate(0deg) translate(-7px,-1px); }

/* Minus/collapse icon */
#site-nav #primary-menu .menu-item-has-children a .collapser::before,
#site-nav #primary-menu .menu-item-has-children a .collapser::after {
    position: absolute;
    display: block;
    left: 25%;
    width: 60%;
    height: 4px;
    background-color: #9D2235;
    content: "";
    transition-duration: 0.6s, 0.6s;
    transition-delay: 0.3s, 0;
}
#site-nav #primary-menu .menu-item-has-children a .collapser::before { transform: rotate(-45deg); top: 6px; }
#site-nav #primary-menu .menu-item-has-children a .collapser::after  { transform: rotate(45deg); bottom: 6px; }

#site-nav #primary-menu .menu-item a:focus .expander,
#site-nav #primary-menu .menu-item a:focus .collapser { background-color: rgba(255,255,255,.5); }

/* Sub-menu: max-height animation for open/close. */
#site-nav #primary-menu > .menu-item-has-children .sub-menu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 1s;
    margin-left: 0;
    padding-left: 0;
    background-color: rgba(223,209,167,.1);
}
#site-nav #primary-menu > .menu-item-has-children.expanded > .sub-menu { overflow: visible; }

/* Dim everything except the nav when open */
.show header, .show footer, .show #content, .show #show-search {
    opacity: 0.2;
    pointer-events: none;
}


/* --- Desktop Mega Menu (#site-navigation / #megamenu) --- */

/* The old site-navigation is replaced by the mega menu approach at desktop widths. */
#site-navigation { display: none; }

.navbar-transy .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,<svg viewBox='0 0 30 30' xmlns='https://www.w3.org/2000/svg'><path stroke='rgba(154,34,53, 0.8)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/></svg>");
    border-radius: 0;
}
.toggled .navbar-collapse { display: block; }

.nav-pills .show > .nav-link { background-color: rgba(154,34,53,1); }
.nav-pills .nav-link { border-radius: 0; padding: 1.2rem .5rem .8rem; }

.nav > li > a {
    background-color: #9D2235;
    color: #FFF;
    transition: all .6s;
    text-decoration: none;
    text-shadow: 0 0 0 rgba(0,0,0,1);
    box-shadow: 1px 1px 8px rgba(0,0,0,0);
}
.nav > li > a:hover {
    background-color: #ae0f27;
    text-shadow: 0 0 5px rgba(0,0,0,1);
    box-shadow: 1px 1px 8px rgba(0,0,0,.8);
}
.nav > li.active > a {
    background-color: #f8f8f8;
    color: #9D2235;
    pointer-events: none;
}

.dropdown-menu .dropdown-menu { top: 0; left: calc(100% - 1px); }
.dropdown-menu li.dropdown:hover a + ul { display: block; }
.nav-pills .dropdown-menu .nav-link { text-align: left; font-size: .8rem; color: #9D2235; }


/* --- Section Nav (Sidebar) --- */

#sectionNav { padding-left: 0; }
#sectionNav .nav { display: block; margin-top: 1rem; }
#sectionNav .nav ul { list-style: none; padding: 0; display: block; }

#sectionNav .nav ul li a {
    padding: 6px 12px;
    display: block;
    text-decoration: none;
    font-weight: 600;
    font-size: 1.2rem;
    border-bottom: none;
    color: rgba(157,34,53,1);
    background-color: transparent;
}
#sectionNav .nav ul li a:hover {
    background-color: rgba(157,34,53,1);
    color: #FFF;
    text-shadow: 0 0 1px rgba(0,0,0,1);
    box-shadow: none;
}

/* Show child pages only when current page is active or is an ancestor. */
#sectionNav .nav ul li.page_item_has_children ul { display: none; }
#sectionNav .nav ul li.page_item_has_children.current_page_item ul,
#sectionNav .nav ul li.page_item_has_children.current_page_parent ul,
#sectionNav .nav ul li.page_item_has_children.current_page_ancestor ul { display: block; }

/* Current item: non-interactive, grey text. */
#sectionNav .nav ul li.current_page_item > a {
    background-color: rgba(255,255,255,1);
    pointer-events: none;
    color: rgb(94,94,94);
}

/* Nested levels: left-border indent. */
#sectionNav .nav ul ul {
    margin-left: 0;
    border-left: 2px solid rgba(157,34,53,.5);
}
#sectionNav .nav ul ul li a              { padding-left: 10px; }
#sectionNav .nav ul ul ul               { margin-left: 6px; }
#sectionNav .nav ul ul ul li a          { padding-left: 10px; }
#sectionNav .nav ul ul ul ul            { margin-left: 12px; }
#sectionNav .nav ul ul ul ul li a       { padding-left: 10px; }
#sectionNav .nav ul ul ul ul ul         { margin-left: 18px; }
#sectionNav .nav ul ul ul ul ul li a    { padding-left: 10px; }


/* --- Post Navigation --- */

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation { margin: 0 0 1.5em; overflow: hidden; }

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous { float: left; width: 50%; }

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next { float: right; text-align: right; width: 50%; }


/* =============================================================
   # BOOTSTRAP ADDITIONS
   Crimson-branded overrides for Bootstrap 4 components used in
   the theme (buttons, cards, search widget).
   ============================================================= */

.btn {
    border-radius: .2rem;
    padding: .5rem .75rem .25rem;
}
.btn-primary,
.btn-primary:visited {
    color: #fff !important;
    background-color: #9D2235 !important;
    border-color: #9D2235 !important;
}
.btn-primary:hover {
    color: #fff !important;
    background-color: #691723 !important;
    border-color: #691723 !important;
}
.btn-primary:focus {
    color: #9D2235;
    background-color: #FFF;
    border-color: #691723;
}
.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show > .btn-primary.dropdown-toggle {
    color: #9D2235;
    background-color: #FFF;
    border-color: #9D2235;
}

.card + .card { margin-top: 15px; }
.card-header { padding: .7rem 1rem .2rem; }

/* Search widget card: borderless, transparent. */
.widget_search.card:first-child { border: none; background-color: transparent; }
.widget_search.card:first-child .card-body { padding: 0; }
.widget_search.card .card-body #searchform .form-group {
    margin-bottom: 0;
    width: 70%;
}
.widget_search.card .card-body #searchform .form-group #blogSearch,
.widget_search.card .card-body #searchform .form-group #s { width: 100%; }
.widget_search.card .card-body #searchform .btn:last-child { width: 30%; }


/* =============================================================
   # ACCESSIBILITY
   ============================================================= */

/* Visually hidden text for screen readers. */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}
/* Reveal skip-link on focus for keyboard users. */
.screen-reader-text:focus,
.screen-reader-text a:focus {
    background-color: #f1f1f1;
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0,0,0,0.6);
    clip: auto !important;
    clip-path: none;
    color: #21759b;
    display: block;
    font-size: 0.875rem;
    font-weight: bold;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}
/* Remove focus outline from the skip-link's target. */
#content[tabindex="-1"]:focus { outline: 0; }


/* =============================================================
   # CLEARINGS & UTILITY CLASSES
   ============================================================= */

/* Clearfix pattern for floated children. */
.clear:before, .clear:after,
.entry-content:before, .entry-content:after,
.comment-content:before, .comment-content:after,
.site-header:before, .site-header:after,
.site-content:before, .site-content:after,
.site-footer:before, .site-footer:after {
    content: "";
    display: table;
    table-layout: fixed;
}
.clear:after, .entry-content:after, .comment-content:after,
.site-header:after, .site-content:after, .site-footer:after { clear: both; }
.clear { clear: both; }
.noclear { clear: none; }   /* Override float-clearing when stacking is not wanted. */

/* Base alignment helpers (mobile-first; floats applied at ≥575px). */
.align-right, .align-left,
.alignright, .alignleft { margin-bottom: 1.5px; }

/* Visibility helpers */
.hidden, .hideme { display: none !important; }
.underlay { display: none !important; } /* Used as a decorative background layer at desktop widths. */

/* Flex content layout helper */
.flex-blocks .wp-block-group__inner-container {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.flex-blocks .wp-block-group__inner-container > * { margin: 0; }

/* Stat graphics responsive centering */
.wp-block-group.stat-graphics { justify-content: center; gap: 3rem; }


/* =============================================================
   # WIDGETS
   ============================================================= */

.widget {
    margin: 0 0 1.5em;
}
.widget select { max-width: 100%; }

/* Widget title in a Bootstrap card header. */
.widget-title.card-header {
    background-color: #9D2235;
    color: #EEE;
    font-size: 1.2rem;
    padding: .7rem 1rem .2rem;
    vertical-align: bottom;
}


/* =============================================================
   # LAYOUT: CONTENT AREAS
   ============================================================= */

/* --- Header --- */

#alert {
    width: 100%;
    padding: 7px;
    z-index: 2;
    font-weight: 700;
    line-height: 1.2;
    position: relative;
    background: #FFF;
}
#alert.yellow  { background: rgba(255,255,150,1); }
#alert.red     { background: rgba(218,54,72,1); color: rgba(250,250,250,1); }
#alert.crimson { color: rgba(0,0,0,1); background-color: rgba(255,255,255,1); border-bottom: 4px solid #9D2235; }
#alert.red a   { color: #9D2235 !important; text-decoration: underline; }
#alert.crimson a { color: #9D2235 !important; text-decoration: underline; }
#alert *:last-child { margin-bottom: 0 !important; }

#masthead {
    text-align: center;
    position: relative;
    padding: 0;
    margin: 0;
    height: 90px;
    border-bottom: 1px solid rgba(196,191,182,1);
    background: transparent;
    overflow: hidden;
}

/* Eyebrow bar — university sub-brand label above the masthead. */
#eyebrow {
    position: absolute;
    top: 0; left: 0; right: 0;
    background-color: rgba(154,34,53,.9);
    color: #FFF;
    line-height: 1em;
    padding: 6px 0;
    text-align: center;
}
#eyebrow p {
    margin: 0 auto;
    font-family: "warnock-pro", serif;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    font-weight: normal;
}
#eyebrow p > span { display: block; float: none; margin: 0; }

/* Site branding: centered logo positioned absolutely in the header. */
#masthead > .site-branding {
    display: flex;
    align-items: start;
    padding: 0;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    pointer-events: none;
    margin-top: 0;
}
.custom-logo-link { display: block; margin: 0 auto; }
.custom-logo-link img { width: 120px; height: auto; }

/* SVG logo: inline SVG with animated fill transitions. */
.custom-logo-link.svg-logo {
    width: 120px;
    display: block;
    position: relative;
    pointer-events: all;
}
#logoTab { margin-top: -24px; }
#logoTab path, #logoTab polygon { fill: rgba(157,34,53,1); transition: fill .6s; }
#logoIcon {
    width: 32%;
    top: 15%;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}
#logoIcon path, #logoIcon polygon, #logoIcon rect { fill: rgba(255,255,255,1); transition: fill .6s; }
#logoWordmark {
    position: absolute;
    top: 54%;
    left: 50%;
    transform: translateX(-50%);
    width: 70%;
}
#logoWordmark path, #logoWordmark polygon, #logoWordmark rect { fill: rgba(255,255,255,1); transition: fill .6s; }


/* --- Hero Slider --- */

#heroSlider { position: relative; }
#heroSlider:hover .flex-direction-nav .flex-prev { opacity: 0.7; left: 25px; }
#heroSlider:hover .flex-direction-nav .flex-prev:hover { opacity: 1; }
#heroSlider:hover .flex-direction-nav .flex-next { opacity: 0.7; right: 25px; }
#heroSlider:hover .flex-direction-nav .flex-next:hover { opacity: 1; }
#heroSlider .flex-direction-nav a::before {
    color: #FFF;
    text-shadow: 0 0 .5px #000, 0 0 5px #000, 0 0 15px #FFF, 0 0 25px #FFF;
}
#heroSlider.wp-block-group.container .wp-block-group__inner-container { max-width: unset; }
#heroSlider.wp-block-group.container .wp-block-group__inner-container figure { margin-bottom: 0; }
#heroSlider.wp-block-group.container .wp-block-group__inner-container figcaption {
    margin-bottom: 0;
    font-size: 1.1rem;
    letter-spacing: 0;
    font-family: neue-haas-grotesk-text;
    text-align: left;
    font-weight: 600;
}


/* --- Posts & Pages --- */

#content { padding: 0 15px 3vw; }
.error404 #content { max-width: 1140px; }
.sticky { display: block; }

/* Ensure links inside content columns break at word boundaries. */
#primary th a, #primary td a, #primary li a, #primary p a { word-break: break-word; }

.archive-header { margin: 2rem 0 1.5rem; }
.hentry { margin: 0 0 1.5em; }
.hentry .entry-header { margin-top: 2rem; }
.hentry .entry-header h2 { font-size: 2.4rem; }

/* Post thumbnail: full-width above the post excerpt. */
.post-thumbnail { margin: -1rem 0 1rem; display: block; }
.post-thumbnail img { width: 100%; }

/* Blog feed thumbnail: aspect-ratio crop. */
.blog-feed-block .post-thumbnail { overflow: hidden; margin-bottom: .5rem; }
.blog-feed-block .post-thumbnail a { position: relative; display: block; height: 0; padding-top: 56%; }
.blog-feed-block .post-thumbnail a img {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}
.blog-feed-block div.entry-title { color: #404040; font-size: 1.2rem; font-weight: 600; }

.updated:not(.published) { display: none; }

.page-content, .entry-content, .entry-summary { margin: 0 0 1.5em; }

/* Home/landing templates: suppress entry bottom margin. */
.bulletin-template-template-home #primary .entry-content,
.page-template-template-home .entry-content { margin-bottom: 0; }

.archive #main > .hentry { margin-bottom: 3rem; }
#main > .hentry .entry-title:first-child { margin-bottom: 1.5rem; }

/* Post title: condensed font, large on desktop. */
h1.entry-title {
    font-family: standardcondensed;
    font-size: 3.3rem;
    margin: 0;
    line-height: 1.1;
    word-break: break-word;
}

.entry-content h2:first-child,
.entry-content .wp-block-image:first-child + p,
.entry-content p:first-child { margin-top: 0; }

.page-links { clear: both; margin: 0 0 1.5em; }

/* Q&A pattern */
.qa {
    padding-left: 1.5rem;
    margin: 1.5rem 0 !important;
    padding-top: 1.5rem;
    border-top: 1px solid;
}
.qa > p { margin-bottom: .5em; position: relative; }
.qa > p:first-child {
    font-weight: bold;
    color: #9D2235;
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
}
.qa > p:first-child::before { content: "Q. "; display: block; position: absolute; left: -1.4rem; }
.qa > p:nth-child(2)::before { content: "A. "; display: block; position: absolute; left: -1.2rem; }

/* Schema FAQ plugin — non-accordion style. */
.schema-faq:not(.accordion) .schema-faq-section {
    padding-left: 1.5rem;
    margin: 1.5rem 0 !important;
    padding-top: 1.5rem;
    border-top: 1px solid;
}
.schema-faq:not(.accordion) .schema-faq-section > * { margin-bottom: .5em; position: relative; }
.schema-faq:not(.accordion) .schema-faq-section > .schema-faq-question {
    font-weight: bold;
    color: #9D2235;
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
    display: block;
}
.schema-faq:not(.accordion) .schema-faq-section > .schema-faq-question::before { content: "Q. "; display: block; position: absolute; left: -1.4rem; }
.schema-faq:not(.accordion) .schema-faq-section > .schema-faq-answer::before  { content: "A. "; display: block; position: absolute; left: -1.2rem; }

/* Schema FAQ — accordion style. */
.schema-faq.accordion .schema-faq-section {
    background: white;
    margin: 1rem 0;
    border: 2px solid rgba(0,0,0,0.13);
    border-radius: 10px;
    box-shadow: 2px 2px 6px 2px rgba(0,0,0,0.03);
}
.schema-faq.accordion .schema-faq-question {
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: opacity ease 0.25s;
    padding: 1rem;
    color: #9D2235;
    font-size: 1.2rem;
}
.schema-faq.accordion .schema-faq-question:hover { opacity: 0.75; }
.schema-faq.accordion .schema-faq-question:after {
    width: 16px; height: 20px;
    display: inline-block;
    margin-left: auto;
    margin-right: 5px;
    vertical-align: top;
    color: inherit;
    content: "+";
}
.schema-faq.accordion .schema-faq-question.expanded:after { content: "-"; }
.schema-faq.accordion .schema-faq-answer { padding: 0 1rem 1rem; display: none; }
.schema-faq.accordion .schema-faq-answer.default { display: block; }
/* Block editor: all answers visible when editing. */
.editor-styles-wrapper .accordion .schema-faq-question { cursor: text; }
.editor-styles-wrapper .accordion .schema-faq-answer { display: block; }

/* Term/stat list */
.term-list { display: block; }
.term-list li {
    display: flex;
    flex-direction: column;
    text-align: center;
    border-top: 1px solid;
    padding: .5rem 0 1.5rem;
    line-height: 1.2;
}
.term-list li:first-child { border-top: none; }
.wp-block-cover .wp-block-cover__inner-container .term-list li a,
.wp-block-cover .wp-block-cover__inner-container .term-list li a:link,
.wp-block-cover .wp-block-cover__inner-container .term-list li a:visited {
    display: flex;
    color: rgba(0,0,0,.6);
    text-decoration: none;
    word-break: normal !important;
    flex-direction: column;
}
.wp-block-cover .wp-block-cover__inner-container .term-list li a:hover { color: rgba(0,0,0,1); }
.wp-block-cover h1 .smallerer { font-size: 2rem; }
.wp-block-cover h2 { font-family: standardcondensed; }
.wp-block-cover.presentation p { font-size: 1.5rem; font-weight: bold; }
.term-list li strong {
    display: block;
    flex-basis: 50%;
    font-size: 4rem;
    font-family: standardcondensed;
    letter-spacing: 3px;
}
.term-list li em {
    display: block;
    flex-basis: 50%;
    font-style: normal;
    font-size: 1.5rem;
}

/* Dates table — calendar-style event listing. */
.dates-table table, .dates-table tbody { display: block; }
.dates-table table tr { display: flex; margin-bottom: 1rem; }
.dates-table table tr td {
    display: block;
    background: transparent;
    width: 80%;
    color: #000;
    border-width: 0;
    padding: 0 0 0 1rem;
}
.dates-table table tr td a { font-family: standardcondensed; font-size: 1.5rem; line-height: 1; }
/* First column: colored date box. */
.dates-table table tr td:first-child {
    display: table-cell;
    text-align: center;
    height: 4rem;
    width: 20%;
    background: #da3648;
    color: #FFF;
    padding: .75rem 0 0;
    vertical-align: middle;
    line-height: 1;
    font-family: standardcondensed;
    text-transform: uppercase;
}
.dates-table table tr td:first-child strong { font-size: 1.5rem; }

/* Staff rollover cards */
.staff-rollovers .wp-block-lees-blocks-staff-block {
    display: block;
    margin-bottom: 2rem;
    position: relative;
}
.staff-rollovers .wp-block-lees-blocks-staff-block .staff-image {
    position: relative;
    display: block;
    width: 100%;
    height: 0;
    overflow: hidden;
    padding-top: 115%;
    background-color: #9D2235;
}
.staff-rollovers .wp-block-lees-blocks-staff-block .staff-image img {
    position: absolute;
    display: block;
    z-index: 1;
    top: 50%; left: 50%;
    transform: translate(-50%,-50%);
    width: 100%;
    transition: opacity .6s;
}
.staff-rollovers .wp-block-lees-blocks-staff-block:hover .staff-image img { opacity: .1; }
.staff-rollovers .wp-block-lees-blocks-staff-block .staff-bio {
    position: absolute;
    z-index: 10;
    display: block;
    bottom: 10%; left: 50%;
    width: 100%;
    opacity: 1;
    transform: translateX(-50%);
    transition: opacity .6s;
}
.staff-rollovers .wp-block-lees-blocks-staff-block .staff-bio h3 {
    color: #FFF;
    text-align: center;
    font-size: 2rem;
    margin-bottom: 0;
    text-shadow: 0 0 5px #000, 0 0 15px #066;
}
.staff-rollovers .wp-block-lees-blocks-staff-block .staff-bio .atts li {
    text-align: center;
    color: #FFF;
    text-shadow: 0 0 5px #000, 0 0 15px #066;
}
.staff-rollovers .wp-block-lees-blocks-staff-block:hover .staff-bio { opacity: 0; }
.staff-rollovers .wp-block-lees-blocks-staff-block .biography {
    padding: 1rem;
    position: absolute;
    z-index: 20;
    color: #FFF;
    opacity: 0;
}
.staff-rollovers .wp-block-lees-blocks-staff-block:hover .biography { opacity: 1; }

/* Staff slider (Flexslider) */
.has-staff-slider { margin-top: 2rem; }
.flexslider-staff { max-width: 1110px; margin: 0 auto; position: relative; }
.flexslider-staff .wp-block-lees-blocks-staff-block { clear: none; margin-bottom: 0; }
.flexslider-staff .flex-direction-nav a { height: 20px; width: 20px; opacity: .7; }
.flexslider-staff .flex-direction-nav a::before {
    font-size: 20px;
    line-height: 1;
    color: #9d2235;
    background: #FFF;
    padding: 12px 10px 8px;
    height: 42px; width: 42px;
    border-radius: 21px;
    box-shadow: 3px 3px 5px #000;
    text-align: center;
}
.flexslider-staff .flex-direction-nav .flex-prev { left: -50px; right: auto; }
.flexslider-staff .flex-direction-nav .flex-prev::before { content: '\f001'; }
.flexslider-staff:hover .flex-direction-nav .flex-prev { opacity: 0.7; }
.flexslider-staff:hover .flex-direction-nav .flex-prev:hover { opacity: 1; }
.flexslider-staff .flex-direction-nav .flex-next { left: auto; right: -50px; }
.flexslider-staff .flex-direction-nav .flex-next::before { content: '\f002'; }
.flexslider-staff:hover .flex-direction-nav .flex-next { opacity: 0.7; }
.flexslider-staff:hover .flex-direction-nav .flex-next:hover { opacity: 1; }
.site-content .entry-content .flexslider-staff .staff-bio > h3 {
    font-family: standardcondensed;
    color: #9D2235;
    margin-bottom: 2px;
    font-size: 1.1rem;
}
.site-content .entry-content .flexslider-staff .staff-bio .atts li { font-size: 14px; font-weight: 400; }

/* News blocks */
.newsblocks {
    padding: 3rem 0;
    background-position: 80% 5%;
    background-repeat: no-repeat;
    background-size: 30%, 100%;
}
.newsblocks .container { margin: 0 -15px; }
.newsblocks h2 { font-family: standardcondensed; font-weight: 400; font-size: 3rem; margin-bottom: 1.5rem; }
.newsblocks figure { border: 2px solid #FFF; margin-top: 0; }
.newsblocks h3 { margin: 1rem 0 0; }
.newsblocks h3 a,
.newsblocks h3 a:visited,
.newsblocks h3 a:link {
    color: rgba(0,0,0,.8);
    font-family: standardcondensed;
    font-size: 2rem;
    font-weight: 400;
    text-decoration: none;
    letter-spacing: .3px;
}
.newsblocks h3 a:hover { color: rgba(0,0,0,1); }

/* Home page news/events template links. */
.bulletin-template-template-home .wp-block-cover h3,
.page-template-template-home .wp-block-cover h3 { margin-top: .5rem; }
.bulletin-template-template-home .wp-block-cover h3 a,
.bulletin-template-template-home .wp-block-cover h3 a:link,
.bulletin-template-template-home .wp-block-cover h3 a:visited,
.page-template-template-home .wp-block-cover h3 a,
.page-template-template-home .wp-block-cover h3 a:link,
.page-template-template-home .wp-block-cover h3 a:visited { color: #9D2235; text-decoration: none; }
.bulletin-template-template-home .wp-block-cover h3 a:hover,
.page-template-template-home .wp-block-cover h3 a:hover { color: #000000; }

/* Amenities table */
.amenitiestable th { text-align: center; }
.tabletop { font-family: standardcondensed, sans-serif; font-weight: bold; font-size: 24px; }
.amenitiestable tbody tr td.yes {
    font-size: 1px;
    text-indent: -9999px;
    min-width: 50px;
    background-image: url(/sites/deprecated/files/checkmark2.png);
    background-repeat: no-repeat;
    background-size: 16px;
    background-position: center;
}
.amenitiestable tbody tr td:empty { background-image: none; }
.amenitiestable tbody tr td:first-child { text-indent: 0; font-size: 1em; background-image: none; }

/* Panorama viewer controls */
.pano-wrap .zoom-in-out-controls { background: rgba(255,255,255,0.7); }
.pano-wrap .controls { bottom: unset !important; top: 5px; right: 5px; left: unset; background: rgba(255,255,255,0.7); }
.pano-wrap .vrgcontrols { font-size: 2rem; bottom: 10px; }


/* --- Page Templates: Home & Landing --- */

.home #primary,
.bulletin-template-template-home #primary,
.program-template-template-home #primary,
.page-template-template-home #primary,
.page-template-template-landing #primary { width: 100%; }

.home #primary .entry-header,
.bulletin-template-template-home #primary .entry-header,
.page-template-template-home #primary .entry-header,
.page-template-template-landing #primary .entry-header { display: none; }

.home #primary .page-head h1,
.bulletin-template-template-home #primary .page-head h1,
.page-template-template-home #primary .page-head h1,
.page-template-template-landing #primary .page-head h1 { font-size: 4rem; text-transform: uppercase; }

.bulletin-template-template-home #content,
.page-template-template-home #content { padding-bottom: 0; }
.bulletin-template-template-home #primary,
.page-template-template-home #primary { padding-bottom: 0; }

.bulletin-template-template-home #primary article.hentry .innerwrap,
.bulletin-template-template-home #primary .entry-content .innerwrap,
.page-template-template-home #primary article.hentry .innerwrap,
.page-template-template-home #primary .entry-content .innerwrap { display: block; text-decoration: none; opacity: .9; }
.bulletin-template-template-home #primary article.hentry .innerwrap:hover,
.bulletin-template-template-home #primary .entry-content .innerwrap:hover,
.page-template-template-home #primary article.hentry .innerwrap:hover,
.page-template-template-home #primary .entry-content .innerwrap:hover { opacity: 1; }

.bulletin-template-template-home .wp-block-cover.padded,
.bulletin-template-template-home .wp-block-group.padded,
.page-template-template-home .wp-block-cover.padded,
.page-template-template-home .wp-block-group.padded {
    padding-top: 5vw; padding-bottom: 5vw;
    margin-top: 0; margin-bottom: 0;
}

.bulletin-template-template-home .hentry:last-child,
.bulletin-template-template-home .entry-content:last-child,
.page-template-template-home .hentry:last-child,
.page-template-template-landing .hentry:last-child,
.page-template-template-home .entry-content:last-child,
.page-template-template-landing .entry-content:last-child { margin-bottom: 0; }

/* Paused campusEvents/latestNews content kept for reference — re-enable if needed. */
.bulletin-template-template-home #campusEvents,
.page-template-template-home #campusEvents { margin-bottom: 5rem; }
.bulletin-template-template-home #campusEvents h2,
.page-template-template-home #campusEvents h2 {
    font-family: standardcondensed;
    font-weight: 400;
    color: #9D2235;
    margin-bottom: 1.5rem;
}
.bulletin-template-template-home #campusEvents .event-item p:first-child,
.page-template-template-home #campusEvents .event-item p:first-child { color: rgba(101,102,92,1); margin-bottom: 0 !important; }
.bulletin-template-template-home #campusEvents .event-item h4,
.page-template-template-home #campusEvents .event-item h4 {
    font-family: standardcondensed;
    font-weight: 400;
    font-size: 1.9rem;
    margin: 0 !important;
    color: rgba(157,34,53,1);
}
.bulletin-template-template-home #campusEvents .event-item h4 a,
.page-template-template-home #campusEvents .event-item h4 a { text-decoration: none; color: rgba(157,34,53,1); transition: color 6s; }
.bulletin-template-template-home #campusEvents .event-item h4 a:hover,
.page-template-template-home #campusEvents .event-item h4 a:hover { color: rgba(101,102,92,1); }
.bulletin-template-template-home #campusEvents .event-item,
.page-template-template-home #campusEvents .event-item {
    border-top: 1px solid rgba(196,191,182,1);
    padding: 1rem 0;
    width: 100%;
}
.bulletin-template-template-home #campusEvents .event-item p,
.page-template-template-home #campusEvents .event-item p { font-size: 1.2rem; font-family: standardcondensed; font-weight: 600; }

.bulletin-template-template-home .explore-transy,
.page-template-template-home .explore-transy { margin-top: 2rem; }

.bulletin-template-template-home #transyHistory,
.page-template-template-home #transyHistory {
    border-top: 1px solid rgba(196,191,182,1);
    padding: 2rem 0;
    background: linear-gradient(90deg, rgba(196,191,182,1) 0%, rgba(196,191,182,0) 100%);
}
.bulletin-template-template-home #transyHistory .wp-block-column:first-child figure,
.page-template-template-home #transyHistory .wp-block-column:first-child figure { border: 2px solid #FFF; margin: 0 0 1rem; }
.bulletin-template-template-home #transyHistory h2,
.page-template-template-home #transyHistory h2 {
    font-family: standardcondensed;
    font-weight: 400;
    font-size: 3rem;
    color: #9D2235;
    margin-bottom: .5rem;
    margin-top: -.5rem;
}
.bulletin-template-template-home #transyHistory p,
.page-template-template-home #transyHistory p { font-size: 1.2rem; font-family: standardcondensed; font-weight: 600; }
.bulletin-template-template-home #transyHistory ul,
.page-template-template-home #transyHistory ul { font-size: 1.2rem; font-family: standardcondensed; font-weight: 600; list-style: square; }

/* Featured Event block — full-bleed with overlay text */
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block,
.page-template-template-home .wp-block-lees-blocks-featured-event-block {
    justify-content: left;
    align-items: flex-end;
    color: #FFF;
    text-decoration: none;
    position: relative;
    background: #333;
}
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-image,
.page-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-image { opacity: .7; transition: all .6s; }
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block:hover .featured-event-image,
.page-template-template-home .wp-block-lees-blocks-featured-event-block:hover .featured-event-image { opacity: 1; }
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text,
.page-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text { position: relative; left: 0; right: 0; bottom: 0; }
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .block-headline-text .headline,
.page-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .block-headline-text .headline {
    width: calc(100% - 70px);
    padding: 0 1rem 0 4rem;
    margin-top: 1rem;
}
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .block-headline-text .headline p,
.page-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .block-headline-text .headline p {
    font-size: 3rem;
    font-family: standardcondensed;
    font-weight: 400;
    font-style: italic;
    line-height: .9;
    padding-bottom: 1rem;
    text-shadow: none;
    transition: all 6s;
}
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block:hover .featured-event-text .block-headline-text .headline p,
.page-template-template-home .wp-block-lees-blocks-featured-event-block:hover .featured-event-text .block-headline-text .headline p {
    text-shadow: 0 0 5px rgba(0,0,0,1), 0 0 15px rgba(0,0,0,1);
}
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .block-headline-text .details,
.page-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .block-headline-text .details {
    position: relative;
    background-color: rgba(101,102,92,.9);
    padding: .5rem 2rem .5rem 4rem;
    width: calc(100% - 70px);
    z-index: 1;
    margin-bottom: 1rem;
    font-family: standardcondensed;
    font-size: 1.5rem;
    letter-spacing: .5px;
}
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .moreInfo,
.page-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .moreInfo {
    margin-bottom: .5rem;
    letter-spacing: -.5px;
    width: calc(100% - 70px);
    padding: 0 1rem 0 4rem;
}
.bulletin-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .moreInfo:empty,
.page-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text .moreInfo:empty { display: none; }

/* Landing page template */
.page-template-template-landing .entry-content h2:first-child {
    font-family: "akzidenz-grotesk--condensed", sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: -1px;
    color: #686158;
    font-size: 36px;
}

/* Lees Blocks testimonial 2020 */
.wp-block-lees-blocks-testimonial-2020-block.white .testimonial-text .sourceName { color: rgba(218,54,72,1); }

/* Program info block: image followed by content gets a small gap. */
.wp-block-group.program-info .wp-block-image + * { margin-top: .5rem; }

/* New page header stack layout */
#headerStack { gap: 0; margin-bottom: 0; }
#headerStack .is-layout-flex { align-content: unset; }
#headerStack nav ul { gap: .5rem; }

/* Two-one-three stacked layout (custom editorial layout) */
.two-one-three-stack { text-align: center; }
.two-one-three-stack > * { margin-left: auto; margin-right: auto; text-align: left; }

/* Photo Testimonial Pattern */
body .entry-content > .photoTestimonialPattern { margin: 0; }
.photoTestimonialPattern blockquote { padding: 3rem .5rem 1rem; }
.photoTestimonialPattern blockquote::before {
    content: "\201C";
    position: absolute;
    z-index: 9;
    font-size: 300px;
    font-family: 'neue-haas-grotesk-text', 'arial black', arial;
    font-weight: 700;
    color: rgba(0,0,0,.1);
    line-height: 0;
    left: -10px;
    top: 116px;
}
.photoTestimonialPattern blockquote::after {
    content: "\201D";
    position: absolute;
    z-index: 9;
    font-size: 160px;
    font-family: 'neue-haas-grotesk-text', 'arial black', arial;
    font-weight: 700;
    color: rgba(0,0,0,.1);
    line-height: 0;
    right: 3rem;
    bottom: -10px;
}
.entry-content .photoTestimonialPattern .is-vertical .wp-block-embed.is-type-video { width: 100%; padding: 0; }
.photoTestimonialPattern .is-vertical { height: 100%; margin: 0; }
.photoTestimonialPattern .wp-block-image img { object-fit: cover; object-position: 50% 50%; }
.photoTestimonialPattern .has-crimson-background-color blockquote::before { color: rgba(236,25,68,.5); }
.photoTestimonialPattern .has-crimson-background-color blockquote::after  { color: rgba(236,25,68,.5); }
.photoTestimonialPattern .wp-block-image {
    clip-path: polygon(20% 0, 100% 0%, 100% 100%, 20% 100%, 20% 60%, 0 30%, 20% 30%);
}


/* --- Sidebar --- */

#secondary .widget:first-child { margin-top: 6.6rem; }


/* --- Footer --- */

/* Social follow bar above footer */
#followFooter {
    display: flex;
    background-color: rgb(245,243,243);
    bottom: 0; left: 0; right: 0;
    z-index: 1000;
    transition: all .6s;
    border-top: 1px solid rgba(101,102,92,.5);
}
#followFooter ul { flex-direction: row; width: 100%; padding: 2vw 0; }
#followFooter ul li {
    display: block;
    width: auto;
    text-align: center;
    flex-grow: 1;
    border: .5px solid rgba(101,102,92,.5);
    border-top: none;
    border-bottom: none;
    margin-top: 0;
}
#followFooter ul li:first-child { border-left: none; }
#followFooter ul li:last-child  { border-right: none; }
#followFooter ul li a {
    background-color: transparent;
    color: rgba(157,34,53,1);
    font-family: standardcondensed;
    font-weight: 400;
    text-transform: uppercase;
    width: 100%;
    display: block;
    font-size: 1.8rem;
    padding: 1.5vw 2vw;
    margin: -2vw 0;
    text-shadow: 0 0 15px rgba(255,255,255,1);
}
#followFooter ul li a:hover {
    box-shadow: none;
    text-shadow: 0 0 0px rgba(157,34,53,1), 0 0 1px rgba(40,40,36,1), 0 0 15px rgba(255,255,255,1);
    color: rgba(40,40,36,1);
}

/* Main footer (colophon) */
#colophon {
    border-top: 2px solid #e3e3e3;
    background: #9D2235;
    font-size: .9rem;
    color: #FFF;
    padding: 5rem 0;
}
#colophon a { color: #FFF; text-decoration: underline; text-decoration-color: rgba(255,255,255,.8); transition: all .6s; }
#colophon li a { text-decoration-color: rgba(255,255,255,0); }
#colophon a:hover, #colophon li a:hover { text-decoration-color: rgba(236,25,68,1); }

/* Social links inside footer */
#socialLinks {
    padding: 0 0 2rem;
    background-color: transparent;
    border-bottom: 1px solid rgba(236,25,68,1);
}
#socialLinks h2, #socialLinks h3 {
    text-align: center;
    font-size: 2rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 400;
    line-height: 1;
    margin-bottom: 1rem;
    color: #FFF;
}
#socialLinks .social { display: block; text-align: center; float: none; }
#socialLinks .social li { display: inline-block; float: none; }
#socialLinks .social li a {
    display: inline-block;
    position: relative;
    width: 45px; height: 45px;
    margin: 4px;
    padding: 0;
    background-color: rgba(255,255,255,0);
    border-radius: 24px;
    border: 1px solid #FFF;
}
#socialLinks .social li a svg { position: absolute; width: 100%; height: 100%; top: 0; left: 0; }
#socialLinks .social li a svg path,
#socialLinks .social li a svg circle { fill: rgba(255,255,255,1); transition: fill 0.6s; }
#socialLinks .social li a:hover { background-color: rgba(255,255,255,1); }
#socialLinks .social li a:hover svg path,
#socialLinks .social li a:hover svg circle { fill: rgba(157,34,53,1); }

/* Helpful links section in footer */
#colophon #helpfulLinks { padding: 2rem 2rem 1rem; margin-bottom: 1rem; border-bottom: 1px solid rgba(236,25,68,1); }
#colophon #helpfulLinks h3 { color: rgba(247,244,237,1); font-family: neue-haas-grotesk-text, standard; font-size: 1.1rem; margin-top: 1rem; margin-bottom: 0; }
#colophon #helpfulLinks ul { padding: 0; list-style: none; }
#colophon #helpfulLinks ul li { margin-bottom: 3px; }
#colophon #helpfulLinks ul li a { font-size: 1rem; }

/* Footer SVG logo */
#footerLogo.custom-logo-link.svg-logo { width: 50%; display: block; position: relative; margin: 2rem auto; text-align: center; }
#footerLogo.custom-logo-link.svg-logo svg path,
#footerLogo.custom-logo-link.svg-logo svg rect,
#footerLogo.custom-logo-link.svg-logo svg circle,
#footerLogo.custom-logo-link.svg-logo svg polygon { fill: rgba(255,255,255,1); }
#footerLogoIcon { display: none; width: 70%; margin: 0 auto 1rem; }

#colophon address { text-align: center; }
/* Show only every other <br> in address — creates "City, State Zip" on one line. */
#colophon address br { display: none; }
#colophon address br:nth-of-type(2n) { display: inline; }

#colophon .accessibility { margin: 1rem 0; text-align: center; }
#colophon .accessibility p { margin: 0 auto .5rem; max-width: 800px; }
#colophon .ownership { opacity: .9; text-align: center; }


/* =============================================================
   # SEARCH OVERLAY
   Full-screen search triggered by #show-search click.
   ============================================================= */

#search_form {
    position: fixed;
    z-index: 0;
    top: 50%; left: 0; right: 0; bottom: 50%;
    padding-left: 50vw;
    background-color: rgba(154,34,53,.95);
    overflow: hidden;
    transition: all .6s;
}
body.showsearch #search_form {
    z-index: 9999999;
    padding-top: 50vh;
    top: 0; bottom: 0;
}
#search_form > form { display: none; }
body.showsearch #search_form > form { display: block; }
#search_form > .form-inline { transform: translate3d(-50%,-50%,0); width: 60vw; }
#search_form > .form-inline .form-group { width: 54vw; }
#search_form > .form-inline .form-group #blogSearch,
#search_form > .form-inline .form-group #s {
    background: transparent;
    border: none;
    border-bottom: 1px dashed #FFF;
    color: #FFF;
    font-family: neue-haas-grotesk-text, standard;
    padding: 0;
    height: 8vw; width: 54vw;
    font-size: 6vw;
    vertical-align: bottom;
}
#search_form input::placeholder { color: rgba(255,255,255,.8); }
#search_form > .form-inline .btn { border-radius: 0; border: 0; padding: 0; background: transparent; }
#search_form > .form-inline .btn span { position: absolute; clip: rect(0,0,0,0); }
#search_form > .form-inline .btn::after {
    display: block;
    content: "";
    background-image: url(images/Magnifying_glass_icon.svg);
    background-position: center;
    background-size: 90%;
    background-repeat: no-repeat;
    width: 6vw; height: 6vw;
    background-color: transparent;
}
/* Backdrop: clicking outside the form closes search. */
#hide-search { position: absolute; left: 0; right: 0; top: 0; bottom: 0; }
.page-content #hide-search { display: none; }

/* Search results page heading */
h1.search-title { margin-bottom: 1rem; position: relative; padding-top: 2rem; }
h1 .search-prefix {
    position: absolute;
    font-size: 1.2rem;
    font-family: neue-haas-grotesk-text, standard;
    top: 1rem; left: 0;
}


/* =============================================================
   # COMMENTS
   ============================================================= */

.comment-content a { word-wrap: break-word; }
.bypostauthor { display: block; }


/* =============================================================
   # INFINITE SCROLL
   ============================================================= */

/* Hide pagination and footer while Infinite Scroll is running. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer { display: none; }

/* Re-show footer once all posts have loaded. */
.infinity-end.neverending .site-footer { display: block; }


/* =============================================================
   # MEDIA
   ============================================================= */

/* Suppress emoji borders/margins added by WordPress. */
.page-content .wp-smiley, .entry-content .wp-smiley, .comment-content .wp-smiley {
    border: none; margin-bottom: 0; margin-top: 0; padding: 0;
}

/* Embeds and iframes fit their containers. */
embed, iframe, object { max-width: 100%; border: none; }

/* Responsive 16:9 video wrapper. */
.videoembed {
    position: relative;
    width: 100%;
    height: 0;
    padding: 0 0 56% 0;
    margin: 2vw 0;
}
.videoembed:first-child { margin-top: 0; }
.videoembed > iframe {
    position: absolute;
    left: 0; right: 0; top: 0; bottom: 0;
    width: 100% !important;
    height: 100% !important;
}
/* Extra bottom margin + border on accessible video buttons. */
.videoembed.accessible-btn { margin-bottom: 80px; border-bottom: 1px solid #9D2235; }
.videoembed.accessible-btn iframe + a.btn { position: absolute; top: 100%; right: 0; }


/* --- Captions --- */

.wp-caption { margin-bottom: 1.5em; max-width: 100%; }
.wp-caption img[class*="wp-image-"] { display: block; margin-left: auto; margin-right: auto; }
.wp-caption .wp-caption-text { margin: 0.8075em 0; }
.wp-caption-text { text-align: center; }


/* --- Galleries --- */

.gallery { margin-bottom: 1.5em; }
.gallery-item { display: inline-block; text-align: center; vertical-align: top; width: 100%; }
.gallery-columns-2 .gallery-item { max-width: 50%; }
.gallery-columns-3 .gallery-item { max-width: 33.33%; }
.gallery-columns-4 .gallery-item { max-width: 25%; }
.gallery-columns-5 .gallery-item { max-width: 20%; }
.gallery-columns-6 .gallery-item { max-width: 16.66%; }
.gallery-columns-7 .gallery-item { max-width: 14.28%; }
.gallery-columns-8 .gallery-item { max-width: 12.5%; }
.gallery-columns-9 .gallery-item { max-width: 11.11%; }
.gallery-caption { display: block; }


/* =============================================================
   # PRINT STYLES
   ============================================================= */

@media print {
    html { margin: 0; }

    /* Remove chrome elements */
    #sectionNav, #masthead, #followFooter, #colophon,
    #site-nav, #siteControls, #alert, #header1780, #CookiebotWidget { display: none; }

    /* Flex layouts don't render well in print — collapse to block. */
    body .is-layout-flex { display: block; }

    /* Clearfix pseudo-elements break print column flow. */
    .clear:before, .clear:after, .entry-content:before, .entry-content:after,
    .comment-content:before, .comment-content:after,
    .site-header:before, .site-header:after,
    .site-content:before, .site-content:after,
    .site-footer:before, .site-footer:after { display: none; }

    /* Full-width primary column. */
    #contentRow { display: block; }
    #primary { width: 100% !important; max-width: unset; display: block; }

    /* Bootstrap columns: full width in print. */
    .entry-content [class*="col-"] { width: 100% !important; }
    .entry-content .row { display: block; }

    /* Absolute/relative positioned items that won't reflow: make static. */
    .entry-content [style*="absolute"],
    .entry-content [style*="relative"] { position: static !important; height: auto !important; }

    .entry-content > * { clear: none; }
}


/* =============================================================
   # RESPONSIVE OVERRIDES
   ============================================================= */

/* --- max-width: 574px (small mobile) --- */
@media (max-width: 574px) {
    .container { max-width: calc(100% - 30px); }
    .wp-block-cover .container { max-width: 100%; }
    .container.mobile-100 { max-width: 100%; padding-left: 0; padding-right: 0; margin-left: 0; margin-right: 0; }

    .home #primary .page-head h1,
    .page-template-template-landing #primary .page-head h1 { font-size: 2.5rem; }

    body .is-nowrap { flex-wrap: wrap; }
    .mobile-head-12vw { font-size: 12vw !important; }

    .bulletin-template-template-home #latestNews,
    .page-template-template-home #latestNews { background-position: top; }

    /* Chatbot: compact layout on small screens. */
    body ._admithub_embed-container .message-iframe { display: none !important; }
    body ._admithub_embed-container .activation-button {
        bottom: 66px;
        padding: 0 !important;
        justify-content: center !important;
        flex-direction: column !important;
    }
    body ._admithub_embed-container .activation-button .text-white {
        overflow: hidden;
        clip: rect(0,0,0,0);
        display: block;
        width: 0; height: 0;
    }
    ._admithub_embed-container #admithub_webchat_iframe { z-index: 2000001; display: block; }
}


/* --- min-width: 575px (float-based alignments activate) --- */
@media (min-width: 575px) {
    .align-left, .alignleft  { display: inline; float: left; margin-right: 1.5em; }
    .align-right, .alignright { display: inline; float: right; margin-left: 1.5em; }
    .aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; text-align: center; }

    .nocol { column-count: 1; }

    .wp-block-group.align-left,  .wp-block-group.alignleft  { margin-right: 2rem; }
    .wp-block-group.align-right, .wp-block-group.alignright { margin-left: 2rem; }

    /* Featured event: text becomes absolutely positioned over the image. */
    .bulletin-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text,
    .page-template-template-home .wp-block-lees-blocks-featured-event-block .featured-event-text { position: absolute; }

    /* Left gradient overlay on lead message cover. */
    #leadMessage .wp-block-cover__gradient-background {
        background: linear-gradient(90deg, rgb(0,0,0) 0%, rgba(255,255,255,.5) 30%, rgba(255,255,255,0) 55%, rgba(255,255,255,0) 100%) !important;
    }
}


/* --- max-width: 782px (tablet and below) --- */
@media (max-width: 782px) {
    .is-nowrap { flex-wrap: wrap !important; }
    .mobile-single-column { flex-direction: column; }
    .page-template-template-home .entry-content > div { padding-left: 1rem; padding-right: 1rem; }
}


/* --- min-width: 783px (tablet landscape and desktop) --- */
@media (min-width: 783px) {
    body, button, input, select, optgroup, textarea { font-size: 1rem; }

    .entry-content .wp-block-embed.is-type-video { padding: 0; }

    /* Admin bar offset. */
    .admin-bar #hide-show-nav { top: 46px; }
    .admin-bar #show-search { top: 50px; }

    /* Section nav: smaller text in sidebar. */
    #sectionNav .nav ul li a { padding: 3px 4px; font-size: .8rem; }

    /* Button bar: horizontal row. */
    .wp-block-buttons.button-bar {
        display: flex;
        justify-content: space-evenly;
        flex-direction: row;
        flex-wrap: nowrap;
    }
    .wp-block-buttons.button-bar .wp-block-button { display: flex; margin: 5px; flex-basis: auto; flex-grow: 1; }
    .wp-block-buttons.button-bar .wp-block-button a { min-width: 0; display: block; }

    /* Images: enable floats and max-width. */
    .wp-block-image { text-align: inherit; }
    .wp-block-image figure.alignright { max-width: 60%; float: right; margin: 0 0 .5rem 1rem; }
    .wp-block-image figure.alignleft  { max-width: 60%; float: left;  margin: 0 1rem .5rem 0; }
    .wp-block-image a { display: inline-block; }

    /* Light-background cover: limit inner container width for readability. */
    .wp-block-cover-image.light-background .wp-block-cover__inner-container,
    .wp-block-cover.light-background .wp-block-cover__inner-container { width: calc(100% - 70px); }

    /* Footer: multi-column layout. */
    #colophon #helpfulLinks h3 { margin-top: 0; }
    #colophon #helpfulLinks { border-bottom: none; margin-bottom: 0; }
    #footerLogoIcon { display: block; }
    #footerLogo.custom-logo-link.svg-logo { width: 80%; }
    #colophon .logo-container { border-right: 1px solid rgba(236,25,68,1); padding: 1rem; }
    #colophon address br { display: inline; }
    #colophon .accessibility { margin-top: 3rem; }

    h1.entry-title { font-size: 5.5rem; }

    .wp-block-cover.bottom-message-cover h2 { font-size: 4rem; margin-top: 30% !important; }

    body .is-layout-flex.twocol   { display: grid; grid-template-columns: 50% 50%; }
    body .is-layout-flex.threecol { display: grid; grid-template-columns: 33.3% 33.3% 33.3%; }
}


/* --- max-width: 781px (stacked columns on mobile) --- */
@media (max-width: 781px) {
    .wp-block-group.is-content-justification-space-between { justify-content: center !important; }
    .wp-block-column:empty { display: none; }

    /* Gutenberg columns: stack vertically by default on mobile. */
    .wp-block-columns:not(.is-not-stacked-on-mobile) { gap: 0; }
    .wp-block-column:not(:only-child),
    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        flex-basis: 100% !important;
        margin-left: 0 !important;
        margin-top: 0;
        margin-bottom: 3rem;
    }
    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column:last-child { margin-bottom: 0; }
    .wp-block-column + .wp-block-column { margin-top: 3rem; }
    .wp-block-column:empty + .wp-block-column { margin-top: 0; }

    /* Preserve horizontal layout for explicitly opted-out columns. */
    .is-not-stacked-on-mobile .wp-block-column + .wp-block-column { margin-top: 0; }
    .tiles .wp-block-column + .wp-block-column { margin-top: 0; }

    .wp-block-columns.infographics .wp-block-column + .wp-block-column { margin-top: 0; }
    .wp-block-columns.infographics figure { max-width: 340px; }
}


/* --- max-width: 991px (home page column stacking) --- */
@media (max-width: 991px) {
    .bulletin-template-template-home #latestNews .wp-block-column,
    .page-template-template-home #latestNews .wp-block-column { flex-basis: 100% !important; margin: 0 0 2rem; }
    .bulletin-template-template-home #campusEvents .wp-block-column,
    .page-template-template-home #campusEvents .wp-block-column { flex-basis: 100% !important; margin-bottom: 2rem; margin-left: 0; }

    /* Photo testimonial: reverse column order and remove clip-path on small screens. */
    .photoTestimonialPattern .wp-block-columns { flex-direction: column-reverse; }
    .photoTestimonialPattern .wp-block-image { clip-path: none; padding: 10% 10% 0; }
    .photoTestimonialPattern .is-vertical { margin-right: var(--wp--preset--spacing--40); }
}


/* --- min-width: 992px (desktop) --- */
@media (min-width: 992px) {
    .container.narrow { max-width: 720px; }

    .home #primary .page-head { margin: 45px 0 0; }

    .bulletin-template-template-home .wp-block-cover h2,
    .page-template-template-home .wp-block-cover h2 { font-size: 4rem; font-weight: 500; }

    /* Decorative underlay image: absolutely positioned, behind content. */
    .underlay {
        display: block;
        position: absolute;
        opacity: .1;
        width: calc(125% + 22.5px);
        max-width: unset;
        z-index: -1;
    }

    /* In a two-thirds layout, allow content to bleed wider. */
    .page .col-lg-8 .full-width,
    .single .col-lg-8 .full-width { max-width: unset; width: calc(125% + 22.5px); }
    .page #primary.col-lg-8 .entry-header h1,
    .single #primary.col-lg-8 .entry-header h1 { width: calc(125% + 22.5px); }

    /* Dim content when menu is open. */
    body.showmenu { background-color: rgba(223,209,167,.2); }
    body.showmenu #content, body.showmenu #colophon { pointer-events: none; }

    /* Show menu toggle at desktop widths in "showmenu" mode. */
    .showmenu #hide-show-nav {
        position: fixed; left: 0;
        display: block;
        background-color: transparent;
    }
    .showmenu #hide-show-nav:hover { background-color: rgba(255,255,255,.6); }
    .showmenu #hide-show-nav::before { background-color: rgba(255,255,255,0); }
    .showmenu #hide-show-nav span { color: rgba(157,34,53,0); }
    .showmenu #hide-show-nav span::before {
        transform: rotate(45deg); top: calc(50% - 2px);
        border-radius: 2px; transition: all .6s;
    }
    .showmenu #hide-show-nav span::after {
        transform: rotate(-45deg); bottom: calc(50% - 2px);
        border-radius: 2px; transition: all .6s;
    }
    .showmenu #hide-show-nav:hover span::before,
    .showmenu #hide-show-nav:hover span::after { background-color: rgba(157,34,53,1); }

    /* Hide mobile hamburger at desktop. */
    #hide-show-nav { display: none; }
    #show-search { top: 18px; }

    /* Opacity management when menu is open. */
    .showmenu header  { opacity: 1; }
    .showmenu #footer, .showmenu #content { opacity: .2; }
    .showmenu #followFooter { opacity: 1; }

    /* Desktop logo sizing. */
    .custom-logo-link.svg-logo { width: 140px; }

    /* Desktop nav: transform to horizontal bar, absolutely positioned. */
    #site-nav {
        transform: none;
        height: auto;
        position: absolute;
        top: 20px;
        width: 100%;
        bottom: auto;
        background-color: transparent;
        pointer-events: none;
    }
    .admin-bar #site-nav { top: 50px; height: auto; text-align: center; background: transparent; }
    /* Hide site-nav when WP revisions bar is visible (full-screen preview). */
    .admin-bar:has(#pp_revisions_top_bar) #site-nav { display: none; }
    .admin-bar:has(#pp_revisions_top_bar) #show-search { display: none; }

    #site-nav nav { max-width: 960px; padding-left: 162px; margin: 0 auto; padding-right: 82px; overflow: visible; }

    /* Desktop nav items: horizontal flex, no mobile borders. */
    #site-nav #primary-menu { display: flex; padding: 0 0 0 5px; position: relative; pointer-events: initial; }
    #site-nav #primary-menu .menu-item {
        font-size: 1.4rem;
        font-family: standardcondensed;
        position: static;
        text-align: left;
        margin-top: 0 !important;
    }
    #site-nav #primary-menu .menu-item a { padding: .4rem; border-bottom: none; }

    /* Hide mobile expander/collapser buttons. */
    #site-nav #primary-menu .menu-item-has-children a .collapser,
    #site-nav #primary-menu .menu-item-has-children a .expander { display: none; }

    /* Current item: no background change on desktop. */
    #site-nav #primary-menu .menu-item > a:hover,
    #site-nav #primary-menu .menu-item.current-menu-item > a { background-color: transparent; }

    /* Desktop dropdown sub-menus: 4-column grid. */
    #site-nav #primary-menu > .menu-item-has-children .sub-menu {
        display: none;
        position: absolute;
        max-height: initial;
        height: auto;
        left: 0; right: 0;
        background: rgba(255,255,255,.9);
    }
    #site-nav #primary-menu > .menu-item-has-children > .sub-menu {
        column-count: 4;
        padding: 1rem;
        border: 1px solid rgba(157,150,141,.3);
    }
    /* JS-free hover fallback. */
    .nojs #site-nav #primary-menu > .menu-item-has-children:hover .sub-menu { display: block; }

    #site-nav #primary-menu .menu-item-has-children .sub-menu li {
        flex-grow: 1;
        break-inside: avoid;
        font-family: neue-haas-grotesk-text, standard;
        font-size: .8rem;
        line-height: 1;
        margin-right: 0;
    }
    #site-nav #primary-menu > .menu-item-has-children .sub-menu li a { border-bottom: none; padding: .2rem; }
    #site-nav #primary-menu > .menu-item-has-children > .sub-menu > li > a { color: #9D2235; }
    #site-nav #primary-menu > .menu-item-has-children .sub-menu li a:hover { color: #FFF; background-color: #9D2235; }

    /* Sub-sub-menus: always visible, indented. */
    #site-nav #primary-menu > .menu-item-has-children .sub-menu .sub-menu { display: block; position: static; background: transparent; }
    #site-nav #primary-menu > .menu-item-has-children > .sub-menu > li > .sub-menu { border-left: 1px solid rgba(157,150,141,1); }
    #site-nav #primary-menu > .menu-item-has-children .sub-menu .sub-menu li a       { padding: .2rem .2rem .2rem .6rem; }
    #site-nav #primary-menu > .menu-item-has-children .sub-menu .sub-menu .sub-menu li a { padding: .2rem .2rem .2rem 1rem; }
    #site-nav #primary-menu > .menu-item-has-children .sub-menu .sub-menu .sub-menu .sub-menu li a { padding: .2rem .2rem .2rem 1.4rem; }

    /* Masthead: switch to horizontal layout. */
    #masthead {
        background: rgba(250,250,250,1);
        overflow: visible;
        text-align: left;
        height: 80px;
        margin: 0;
        border-bottom: 1px solid rgba(196,191,182,1);
    }
    #masthead > .site-branding {
        display: block;
        transform: none;
        position: relative;
        left: auto;
        z-index: 3000;
        transition: all .6s;
    }
    .showmenu #masthead > .site-branding { top: -58px; }

    /* Logo color transitions when mega menu is open. */
    .showmenu #logoTab * { fill: rgba(255,255,255,0); }
    .showmenu #logoIcon * { fill: rgba(255,255,255,0); }
    .showmenu #logoWordmark * { fill: rgba(157,34,53,1); }
    .custom-logo-link { text-align: left; margin: 0; }
    .custom-logo-link img { width: 145px; }

    /* Mega menu: slides down from the masthead. */
    #megamenu {
        position: absolute;
        top: 100%;
        background: rgba(250,250,250,.98);
        left: 0; right: 0;
        z-index: 3;
        overflow: hidden;
        max-height: 0;
        height: 0;
        transition: all .6s;
    }
    .showmenu #megamenu { max-height: 100vh; border-bottom: 1px solid rgba(196,191,182,1); }
    #megamenu .expander, #megamenu .collapser { display: none; }

    #megamenu .menu-item a { padding: .4rem; border-bottom: none; }
    #megamenu > .sub-menu {
        column-count: 4;
        list-style: none;
        padding: 15px;
        margin: 0 auto !important;
    }
    #megamenu .sub-menu li { font-size: 1.05rem; break-inside: avoid; margin-bottom: .3rem; }
    #megamenu .sub-menu li a { border-bottom: none; padding: .2rem; display: block; text-decoration: none; }
    #megamenu > .sub-menu > li > a {
        color: rgba(157,34,53,.9);
        font-weight: 700;
        text-decoration-color: rgba(157,34,53,.2);
    }
    #megamenu .sub-menu li a:hover { color: rgba(157,34,53,1); text-decoration-color: rgba(157,34,53,1); text-shadow: 0 0 1px rgba(157,34,53,1); }
    #megamenu .sub-menu .sub-menu { display: block; position: static; background: transparent; list-style: none; margin: 0 0 .5rem .3rem; padding: 0; }
    #megamenu > .sub-menu > li > .sub-menu { border-left: 1px solid rgba(157,150,141,1); }
    #megamenu .sub-menu .sub-menu li { font-weight: 400; display: block; margin-bottom: 0; font-size: .9rem; }
    #megamenu .sub-menu .sub-menu li a { color: rgba(0,0,0,1); padding: 2px 5px 2px 10px; text-decoration-color: rgba(157,34,53,0); }
    #megamenu .sub-menu .sub-menu li a:hover { color: rgba(157,34,53,1); }
    #megamenu .sub-menu .sub-menu .sub-menu li a { padding: .2rem .2rem .2rem 1rem; }
    #megamenu .sub-menu .sub-menu .sub-menu .sub-menu li a { padding: .2rem .2rem .2rem 1.4rem; }

    /* Archive content row max-width. */
    .archive #content #contentRow { max-width: 1170px; }

    #sectionNav { padding-top: 5rem; }

    /* Floater sidebar element — right-floated in the main content. */
    .floater-right { width: 33%; float: right; margin: 0 0 15px 15px; }
    .col-lg-8 .floater-right { margin: 0; margin-right: calc(-25% - 15px); margin-left: 15px; }
    .floater-right + h2 { clear: left; }

    /* Term list: horizontal layout at desktop. */
    .term-list li { flex-direction: row; text-align: left; border-top: none; }
    .wp-block-cover .wp-block-cover__inner-container .term-list li a,
    .wp-block-cover .wp-block-cover__inner-container .term-list li a:link,
    .wp-block-cover .wp-block-cover__inner-container .term-list li a:visited { flex-direction: row; text-decoration: none; }
    .term-list li strong { text-align: right; line-height: 1; padding: 0 7.5px; color: #9D2235; }
    .term-list li a strong { text-decoration: underline; text-decoration-color: rgba(157,34,53,.2); transition: 0.6s ease; }
    .term-list li a:hover strong { text-decoration-color: rgba(157,34,53,1); }
    .term-list li em { padding: 0 7.5px; align-self: center; }

    /* Home page: large viewport heading sizes. */
    .home #primary .page-head h1,
    .bulletin-template-template-home #primary .page-head h1,
    .page-template-template-home #primary .page-head h1,
    .page-template-template-landing #primary .page-head h1 { font-size: 6vw; margin: 0; }

    .bulletin-template-template-home #campusEvents .event-item:first-child,
    .page-template-template-home #campusEvents .event-item:first-child { border-top: none; padding-top: 0; }

    .home #primary .page-head,
    .bulletin-template-template-home #primary .page-head,
    .page-template-template-home #primary .page-head,
    .page-template-template-landing #primary .page-head { margin-top: 0; }

    /* New header stack: overlay block inset from cover. */
    #headerStack .overlay { max-width: 900px; margin: 0 auto; transform: translateX(-140px); margin-top: -100px !important; background: #fafafa; }

    /* Right-floated header group: negative margin pulls it outside content column. */
    .wp-block-group.header-right { margin-bottom: -12rem; }
}


/* --- min-width: 1200px (wide desktop) --- */
@media (min-width: 1200px) {
    .custom-logo-link.svg-logo { width: 160px; }

    #site-nav nav { max-width: 1140px; padding-left: 198px; padding-right: 98px; }
    #site-nav #primary-menu .menu-item { margin-right: 1.5rem; }
    #site-nav #primary-menu .menu-item a:focus,
    #site-nav #primary-menu .menu-item a:hover { color: rgba(157,34,53,1); }
    #site-nav #primary-menu > .menu-item-has-children > .sub-menu > li { margin-bottom: .5rem; }
    #site-nav #primary-menu .menu-item-has-children .sub-menu li { font-size: .9rem; }

    /* Wider mega menu inner padding. */
    #megamenu > .sub-menu { padding: 30px 50px; max-width: 1190px; margin: 0 auto; }

    #sectionNav { padding-right: 30px; }

    /* Footer logo and social links: side-by-side at wide widths. */
    #footerLogo.custom-logo-link.svg-logo { width: 50%; margin-top: 0; }
    #colophon #helpfulLinks { padding: 2rem 2rem 0; }
    #socialLinks { display: flex; margin-left: 2rem; }
    #socialLinks h2, #socialLinks h3 { display: inline-block; margin: 0; text-align: left; line-height: 62px; }
    #socialLinks .social { display: inline-block; text-align: left; }
    #colophon .logo-container { padding-top: 0; padding-bottom: 0; }
    #colophon address { margin: 0; }

    /* Full-height presentation cover. */
    .wp-block-cover.presentation { height: calc(100vh - 150px); }


    /* Two-one-three layout: complex editorial stack at full width. */
    .two-one-three-stack { position: relative; }
    .two-one-three-stack > header {
        position: relative;
        max-width: 1110px;
        margin-right: auto;
        margin-left: auto;
        max-height: 14rem;
        z-index: 100;
        text-align: left;
    }
    .two-one-three-stack > header .wp-block-group {
        display: flex;
        margin-bottom: 0;
        flex-direction: row-reverse;
        gap: 60px;
        max-height: 240px;
    }
    .two-one-three-stack > header .wp-block-group h2 { padding: 0 !important; max-height: 200px; }
    .two-one-three-stack > header .wp-block-group figure img { max-width: 600px; }
    .two-one-three-stack > .article { position: relative; }
    .two-one-three-stack > .article .wp-block-group { max-width: 1110px; margin: 0 auto; padding-left: 660px; }
}