/* #region Globals */
* {
    font-family: 'Red Hat Text';
}

h1 {
    font-size: 5rem;
    line-height: 6rem;
    color:#fff;
    font-weight: 600;
    text-shadow: 0 0 1rem rgba(30, 53, 29, 0.75);
    text-align:center;
}

.herohome h1 {
    text-align:left;
    max-width:1200px;
}

/* #region Hero Animation */
h1.hero-animate {
    opacity: 0;
    transform: translateY(2rem);
    animation: heroReveal 1s cubic-bezier(0.4, 0, 0.2, 1) 0.5s forwards;
}

@keyframes heroReveal {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    h1.hero-animate {
        opacity: 1;
        transform: none;
        animation: none;
    }
}
/* #endregion */

h1 span {
    color: #fff;
    font-size: 4rem;
    line-height: 4rem;
    font-weight: 600;
    display:table;
    margin-left:auto;
    margin-right:auto;
    position:relative;
}

h2 {
    color: #5c9559;
    font-size: 3rem;
    line-height: 3rem;
    font-weight: 600;
}

h3 {
    font-size: 2rem;
    line-height: 2rem;
    color: #222;
}

h4 {
    font-size: 1.5rem;
    color: #5c9559;
}

.content ul,
.home ul,
.project-card ul {
    list-style: none;
    padding-left: 1.5rem;
}

.content ul li,
.home ul li,
.project-card ul li {
    position: relative;
    padding-left: 0.25rem;
    margin-bottom: 0.5rem;
}

.content ul li::before,
.home ul li::before,
.project-card ul li::before {
    content: '';
    position: absolute;
    left: -1rem;
    top: 0.5rem;
    width: 0.5rem;
    height: 0.5rem;
    background-color: #ebb22c;
}

.full {
    height:100%;
}

.mainlink {
    background-color: #ebb22c;
    border: 2px solid #ebb22c;
    padding: 15px 20px;
    font-weight: 600;
    color: #fff;
    display:table;
    border-radius:0.5rem;
}

.mainlink:hover {
    background-color: transparent;
    color: #ebb22c;
}

@media only screen and (max-width:1400px) {
    h1, h1 span {
        font-size: 3rem;
        line-height: 3rem;
    }

    h2 {
        font-size: 2.5rem;
        line-height: 2.5rem;
    }

    .paddbl {
        padding: 60px;
    }
}

@media only screen and (max-width:1000px) {
    .padside {
        padding-left: 30px;
        padding-right: 30px;
    }

    h1, h1 span {
        font-size: 2.5rem;
        line-height: 2.5rem;
    }
}

@media only screen and (max-width:700px) {
    h1, h1 span {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }

    h2 {
        font-size: 2rem;
        line-height: 2.25rem;
    }

    .paddbl {
        padding-left: 30px;
        padding-right: 30px;
    }
}

/* #endregion */

/* #region Header */

.header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1000;
    transition: all 0.3s ease;
}

/* Floating Subheader */
.header .subheader {
    padding: 0 1rem;
}

.header .subheader > .boxbox {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.9) 100%);
    backdrop-filter: blur(1rem);
    -webkit-backdrop-filter: blur(1rem);
    box-shadow: 
        0 0.25rem 1rem rgba(0, 0, 0, 0.1),
        inset 0 -0.0625rem 0 rgba(255, 255, 255, 0.5);
    padding: 0.5rem 1.5rem;
    border-radius: 0 0 0.75rem 0.75rem;
}

.header .quote {
    color: #1d231f;
    font-weight: 600;
    font-size: 0.875rem;
}

.header .quote a {
    color: #5c9559;
    font-weight: 700;
}

.header .quote .symbol {
    transition: all 0.2s ease;
}

.header .quote:hover .symbol {
    opacity: 0.5;
}

.header .quote .symbol:hover {
    opacity: 1;
}

.header .quote .symbol a:hover {
    color: #3d6b3a;
}

.header .contact a {
    margin-left: 0.375rem;
    color: #5c9559;
    font-weight: 600;
}

.header .contact a:hover {
    color: #3d6b3a;
}

.header .contact {
    color: #1d231f;
    font-weight: 600;
    font-size: 0.875rem;
}

.header .contact .la-solid {
    color: #5c9559;
}

header .contact .fa-brands {
    font-weight: 400;
}

.header .socials {
    font-size: 0.75rem;
    gap: 0.5rem;
}

.header .socials .fa-brands {
    color: #5c9559;
    font-size: 1rem;
}

.header .socials .fa-brands:hover {
    color: #ebb22c;
}

/* Floating Main Header */
.header .mainheader {
    margin-top: 1rem;
    padding: 0 1rem;
}

.header .mainheader > .boxbox {
    background: linear-gradient(135deg, rgba(29, 35, 31, 0.85) 0%, rgba(29, 35, 31, 0.75) 100%);
    backdrop-filter: blur(1.5rem);
    -webkit-backdrop-filter: blur(1.5rem);
    border-radius: 1rem;
    padding: 1rem 2rem;
    box-shadow: 
        0 0.5rem 2rem rgba(0, 0, 0, 0.2),
        inset 0 0.0625rem 0 rgba(255, 255, 255, 0.1);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
}

.header .logo a {
    display: block;
    line-height: 0;
}

.header .logo img {
    display: block;
    height: 3.5rem;
    filter: drop-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.2));
}

/* Scrolled State */
.header.scrolled {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1000;
}

.header.scrolled .subheader {
    display: none;
}

.header.scrolled .mainheader {
    margin-top: 0.5rem;
}

.header.scrolled .mainheader > .boxbox {
    background: linear-gradient(135deg, rgba(29, 35, 31, 0.95) 0%, rgba(29, 35, 31, 0.9) 100%);
    padding: 0.75rem 2rem;
}

.header.scrolled .logo img {
    height: 2.75rem;
}

@media only screen and (max-width: 1400px) {
    .header .logo img {
        height: 3rem;
    }
}

@media only screen and (max-width: 1000px) {
    .header .subheader {
        padding: 0 0.5rem;
    }
    
    .header .subheader > .boxbox {
        border-radius: 0 0 0.5rem 0.5rem;
        padding: 0.5rem 1rem;
    }
    
    .header .mainheader {
        margin-top: 0.75rem;
        padding: 0 0.5rem;
    }
    
    .header .mainheader > .boxbox {
        padding: 0.75rem 1rem;
        border-radius: 0.75rem;
    }
    
    .header.scrolled .mainheader {
        margin-top: 0.5rem;
    }
}

@media only screen and (max-width: 800px) {
    .header .logo img {
        height: 2.5rem;
    }
    
    .header .mainheader > .boxbox {
        padding: 0.5rem 0.75rem;
    }
    
    .header .subheader .contact .item {
        display: none;
    }
    
    .header .subheader .quote {
        width: 100%;
        justify-content: center;
        gap: 1rem;
    }
    
    .header .subheader .contact {
        display: none;
    }
    
    .hero .scroll-indicator {
        bottom: 1.5rem;
    }
    
    .hero .scroll-indicator .scroll-text {
        font-size: 0.5625rem;
    }
    
    .hero .scroll-indicator .scroll-mouse {
        width: 1.25rem;
        height: 2rem;
    }
}

@media only screen and (max-width: 500px) {
    .header .mainheader {
        padding: 0 0.5rem;
        margin-top: 0.5rem;
    }
    
    .header .logo img {
        height: 2.25rem;
    }
}

/* #endregion */

/* #region Menu */

/* #endregion */

/* #region Hero */
.hero {
    background: url('images/2024-10/bg_hero.jpg');
    background-size: cover;
    background-position: center center;
    position: relative;
    z-index: 9;
    overflow: hidden;
}


.hero > .maintext {
    position: relative;
    z-index: 3;
    padding-top: 8rem;
    padding-bottom: 10rem;
}

.hero > .scroll-indicator {
    position: relative;
    z-index: 3;
}

/* Video Background */
.hero-video-wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    overflow: hidden;
}

.hero-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
    opacity: 0.9;
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0.75;
    z-index: 2;
}

.herohome {
    background: #6aab67;
    min-height: 100dvh;
}

.hero p {
    max-width: 1100px;
    color: #fff;
    font-size: 2rem;
    line-height: 2.5rem;
    text-shadow: 0 0 1rem rgba(30, 53, 29, 0.75);
}

/* Scroll Indicator */
.hero .scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    z-index: 10;
    cursor: pointer;
    transition: all 0.3s ease;
}

.hero .scroll-indicator:hover {
    transform: translateX(-50%) translateY(-0.25rem);
}

.hero .scroll-indicator .scroll-text {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    text-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.3);
}

.hero .scroll-indicator .scroll-mouse {
    width: 1.5rem;
    height: 2.5rem;
    border: 0.125rem solid rgba(255, 255, 255, 0.5);
    border-radius: 1rem;
    position: relative;
    display: flex;
    justify-content: center;
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(0.25rem);
}

.hero .scroll-indicator .scroll-wheel {
    width: 0.25rem;
    height: 0.5rem;
    background: #ebb22c;
    border-radius: 0.25rem;
    margin-top: 0.5rem;
    animation: scrollWheel 2s ease-in-out infinite;
    box-shadow: 0 0 0.5rem rgba(235, 178, 44, 0.5);
}

@keyframes scrollWheel {
    0%, 100% {
        transform: translateY(0);
        opacity: 1;
    }
    50% {
        transform: translateY(0.75rem);
        opacity: 0.3;
    }
}

.hero .scroll-indicator .scroll-arrow {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.hero .scroll-indicator .scroll-arrow span {
    display: block;
    width: 0.625rem;
    height: 0.625rem;
    border-right: 0.125rem solid rgba(255, 255, 255, 0.6);
    border-bottom: 0.125rem solid rgba(255, 255, 255, 0.6);
    transform: rotate(45deg);
    animation: scrollArrow 2s ease-in-out infinite;
}

.hero .scroll-indicator .scroll-arrow span:nth-child(1) {
    animation-delay: 0s;
}

.hero .scroll-indicator .scroll-arrow span:nth-child(2) {
    animation-delay: 0.15s;
    margin-top: -0.25rem;
}

@keyframes scrollArrow {
    0%, 100% {
        opacity: 0.3;
        transform: rotate(45deg) translateY(0);
    }
    50% {
        opacity: 1;
        transform: rotate(45deg) translateY(0.25rem);
    }
}

/* Legacy continue styles - keep for fallback */
.hero .continue {
    display: none;
}

@media only screen and (max-width:1000px) {
    .hero p {
        font-size:1.5rem;
        line-height:2rem;
    }
}

@media only screen and (max-width:700px) {
    .herohome h1 {
        font-size: 2.5rem;
        line-height: 2.75rem;
        text-align: center;
    }
    
    .hero p {
        font-size: 1.25rem;
        line-height: 1.75rem;
        text-align: center;
    }
}

/* #endregion */

/* #region Home */
.home .hometop {
    background-color:#fcfcfc;
}

.home .overview .boxbox {
    overflow:hidden;
}

.home .overview .under {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    opacity:0.1;
}

.home .overview .map {
    position:relative;
}

.home .overview .mapinner {
    background-image: url('images/2024-10/home_sf_locator.jpg');
    background-size: 100% auto;
    background-position: bottom center;
    background-repeat: no-repeat;
    position:absolute;
    left:-25%;
    right:0;
    bottom:0;
    width:150%;
    height:125%;
}

.home .overview .overtext {
    position:relative;
    z-index:2;
}

.home .overview img {
    width:100%;
}

.home .highlights p {
    text-align: center;
    max-width:1200px;
    margin-left:auto;
    margin-right:auto;
}

.home .highlights h2 {
    text-align: center;
}

.home .highlights .item {
    background-size: 30px auto;
    border:3px solid #5c9559;
    border-radius: 1rem;
    position:relative;
    background-color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.home .highlights .item .icon img {
    width:3rem;
    background-color:rgba(255,255,255,0.85);
    padding:0.5rem;
}

.home .highlights .item .icon {
    position:absolute;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    overflow: hidden;
    aspect-ratio: 1/1;
    backdrop-filter: blur(10px) brightness(1.1);
}

.home .highlights .item ul {
    margin-top:1rem;
}

.home .update {
    background-image: url('images/bg_bottom.jpg');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    color: #fff;
    padding-bottom:3rem;
}

.home .update h2 {
    color: #fff;
}

.home .update .image {
    background-image: url('images/gallery/TCEC_South-Falcon-East_Maps-&-Figures_135.jpg');
    background-size: contain;
    background-position: top center;
    background-repeat:no-repeat;
    margin-bottom: 60px;
    margin-top: -30px;
}

.home .update .highlights .item .icon img {
    background-color:transparent;
}

.home .update  .highlights .item {
    background-color:transparent;
}

.home .update .bigtext {
    font-size:1.5rem;
    max-width:1100px;
}
@media only screen and (max-width:1000px) {
    .flexcol1000 img, .flexcolrev1000 img {
        max-height:50vh;
        width:auto !important;
        max-width:100%;
        margin-left:auto;
        margin-right:auto;
        display:block;
    }

    .home .overview .boxbox {
        padding:1rem;
    }
}

@media only screen and (max-width:1500px) {
    .home .update .paddbl {
        padding: 60px;
        padding-bottom: 120px;
    }
}

@media only screen and (max-width:1100px) {
    .home .overview .overtext p {
        font-size:1.2rem;
    }

    .home .highlights .highbox {
        flex-direction: column;
        row-gap:2rem;
    }

    .home .highlights .item {
        width: 100%;
    }

    .home .update {
        flex-direction: column-reverse;
        padding-bottom:3rem;
    }

    .home .update .half {
        width: 100%;
    }

    .home .update .image {
        width: 100%;
        margin-left:0;
        height: 40vw;
        min-height: 300px;
        margin-bottom: 0;
    }
}

@media only screen and (max-width:1000px) {
    .home .overview .overtext {
        padding:2rem;
    }

    .home .update .toptext .halfgap2 {
        width: 100%;
    }

    .home .update .toptext .pad {
        padding-left:0;
        padding-right:0;
    }
}

@media only screen and (max-width:800px) {
    .home .overview .location {
        height: 70vw;
    }

    .home .update .bigtext {
        font-size:1.25rem;
    }
}

@media only screen and (max-width:600px) {
    .home .overview .overtext {
        padding:1rem;
    }
}

/* #endregion */

/* #region Footer */
.footer {
    background-color: #1d231f;
    position:relative;
}

.footer .under {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image:url('images/2025/bg_footer.jpg');
    background-size: cover;
    background-position: bottom center;
    background-repeat: no-repeat;
    opacity:0.25;
}

.footer .latestbox {
    transform:translateY(-50%);
}

.footer .latest .topper {
    color: #fff;
    font-weight: 600;
    padding-left: 15px;
    margin-bottom: 5px;
    display: block;
}

.footer .latest {
    background-color: #5c9559;
    padding:1rem;
    position: relative;
    z-index: 1;
    border-radius:0.5rem;
}

.footer .latest .news .title {
    font-size: 2rem;
    color: #fff;
    font-weight: 500;
}

.footer .latest .news .title span {
    display: block;
}

.footer .latest .news .line {
    height: 50px;
    width: 1px;
    background-color: #fff;
    opacity: .25;
    margin: 0 30px;
}

.footer .latest .news a {
    color: #ebb22c;
    font-weight: bold;
    text-transform: uppercase;
    max-width:600px;
}

.footer .latest .news a span {
    color: #fff;
    display: block;
}

.footer .latest .news a:hover {
    text-decoration: underline;
    color: #fff;
}

.footer .latest .news form input[type=email] {
    background-color: transparent;
    border: 0;
    border-bottom: 2px solid black;
    color: black;
    opacity: .5;
    font-size: 2rem;
}

.footer .latest .news form input[type=email]::placeholder {
    color: black;
}

.footer .latest .news form button {
    background-color: transparent;
    border: 0;
    font-size: 3rem;
    margin-left: 10px;
}

.footer .latest .news form button:hover {
    color: #ebb22c;
}

.footer .latest .news form p {
    color: #fff;
    display: none;
}

.footer .mainfoot .logoinfo {
    margin-right: 60px;
}

.footer .mainfoot .logo {
    width: 300px;
}

.footer .mainfoot .info {
    line-height: 1.7rem;
    color: #fff;
}

.footer .mainfoot .line {
    width: 1px;
    background-color: #000;
    opacity: .25;
    margin: 0 30px;
}

.footer .mainfoot .links a {
    display: block;
    color: #ebb22c;
    font-weight: 600;
    line-height: 2rem;
}

.footer .mainfoot .presentation {
    justify-self: flex-end;
    background-color: #144c45;
    position: relative;
    transition: .2s all;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
    text-align: center;
    width: 500px;
    border-radius: 1rem;
    overflow: hidden;
}

.footer .mainfoot .presentation span {
    color: #ebb22c;
}

.footer .mainfoot .presentation:hover {
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.75);
    transform:scale(1.05);
}

.footer .mainfoot .presentation .underlay {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-image: url('images/footer_pres_button.png');
    z-index: 1;
    transition: .2s all;
    opacity: .5;
    background-size: cover;
    background-position: center center;
}

.footer .mainfoot .presentation:hover .underlay {
    opacity: .25;
}

.footer .mainfoot .presentation .overlay {
    position: relative;
    z-index: 2;
    color: #fff;
    font-weight: 600;
    height: 100%;
}

.footer .mainfoot .presentation .overlay span {
    display: block;
}

@media only screen and (max-width:1500px) {
    .footer .mainfoot .line {
        display: none;
    }

    .footer .mainfoot .logoinfo {
        display: block;
    }

    .footer .mainfoot .logoinfo .logo {
        margin-bottom: 30px;
    }
}

@media only screen and (max-width:1200px) {
    .footer .mainfoot {
        display: block;
    }

    .footer .mainfoot .logoinfo {
        margin-left: auto;
        margin-right: auto;
        display: table;
    }

    .footer .mainfoot .logoinfo .info {
        text-align: center;
    }

    .footer .mainfoot .links {
        flex-direction: row;
        justify-content: space-between;
        padding: 30px;
    }

    .footer .mainfoot .presentation {
        height: 150px;
        width: 100%;
        display: block;
    }

    .footer .latest .line {
        display:none;
    }

    .footer .latest .title {
        flex-shrink:0;
    }

    .footer .latest .news a {
        max-width:unset;
    }

    .footer .latest .titlebox {
        column-gap:1rem;
    }

    .footer .latestbox {
        transform:translateY(-2rem);
    }
}

@media only screen and (max-width:1000px) {
    .footer .latest .news {
        display: block;
    }

    .footer .latest .news .titlebox {
        width: 100%;
    }

    .footer .latest .news form {
        width: 100%;
        padding-top: 0;
    }

    .footer .mainfoot .links {
        display: block;
        padding-left: 0;
        padding-right: 0;
    }

    .footer .mainfoot .links a {
        background-color: rgba(250, 250, 250, 0.1);
        border-radius: 0.25rem;
        padding: 5px 10px;
        text-align: center;
        margin-bottom: 5px;
        border: 1px solid #ccc;
    }

    .footer .mainfoot .links a:hover {
        background-color: rgba(250, 250, 250, 0.25);
    }

    .footer .mainfoot .links a:last-of-type {
        margin-bottom: 0;
    }
}

@media only screen and (max-width:800px) {
    .footer {
        padding-left: 30px;
        padding-right: 30px;
    }
}

@media only screen and (max-width:600px) {
    .footer .latest .news form input[type=email] {
        font-size: 1.5rem;
    }
}

@media only screen and (max-width:400px) {
    .footer .latest .news form input[type=email] {
        font-size: 1rem;
        font-weight: bold;
    }
}

/* #endregion */

/* #region Content */
.contbottom {
    height: 80px;
}

.content {
    background-color: #fefefe;
}

.sidex {
    margin-top: -20px;
}

.sidex .sideproj .sidelink {
    display: block;
}

@media only screen and (max-width:1100px) {
    .content {
        flex-direction: column-reverse;
    }

    .continner {
        padding-left: 0;
    }

    #sidex {
        width: 100%;
    }
}

@media only screen and (max-width:800px) {
    .contbox {
        padding-left: 30px;
        padding-right: 30px;
    }
}

/* #endregion */

/* #region Subfooter */
.subfooter {
    font-size: .9rem;
    padding-top: 10px;
    padding-bottom: 10px;
    background-color:rgba(0,0,0,0.1);
    backdrop-filter: blur(10px);
    color:#fff;
}

.subfooter .subfooterlink {
    font-weight: bold;
    color: #ebb22c;
}

@media only screen and (max-width:500px) {
    .subfooter {
        flex-direction: column-reverse;
        text-align:center;
    }

    .subfooter .sublink {
        margin-bottom: 5px;
    }
}

/* #endregion */

/* #region Custom Styling */

#sedar .yearbox .active {
    background-color: #5c9559;
    border-color: #5c9559;
}

#sedar .item span {
    color: #ebb22c;
}

#archive .newschive .newsbox {
    border-top: 0;
    border-left: 0;
}

#management .item, #advisors .item {
    border-top: 0;
    border-left: 0;
}

#stock .item {
    border-top: 0;
    border-left: 0;
}

#subpop {
    background-color: rgba(22, 22, 22, 0.98);
}

#subpop .logo {
    background-image: url('images/2024-10/tcec_logo.png');
}

/* #region Menu */
.menu {
    overflow: visible;
    max-width: 75rem;
}

.menu .menubox {
    display: flex;
}

.menu .minilink {
    color: #fff;
    font-size: 2rem;
    display: none;
    cursor: pointer;
}

.menu .miniclose {
    color: #fff;
    font-size: 2rem;
    position: fixed;
    top: 1.875rem;
    right: 1.875rem;
    z-index: 10;
    display: none;
}

.menu .mainmenu {
    font-size: 1rem;
    font-weight: 600;
    transition: all 0.3s;
    text-align: center;
    text-transform: uppercase;
    height: 100%;
    color: #fff;
    position: relative;
}

.menu .mainmenu:first-of-type {
    margin-left: 0;
}

.menu .mainmenu .top {
    cursor: default;
    transition: all 0.4s;
    height: 100%;
    padding: 0.625rem 1rem;
    border-radius: 0.25rem 0.25rem 0 0;
}

.menu .toplink {
    font-size: 1rem;
    font-weight: 600;
    transition: all 0.3s;
    text-align: center;
    text-transform: uppercase;
    color: #fff;
    padding: 0.625rem 1rem;
    border-radius: 0.25rem;
}

.menu .toplink:hover {
    background-color: #ebb22c;
    border-color: #ebb22c;
    color: #fff;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.25);
}

.menu .sublink {
    font-size: 1rem;
    font-weight: 600;
    transition: all 0.3s;
    text-align: center;
    text-transform: uppercase;
    color: #fff;
    padding: 0.625rem 1rem;
    border: 0.125rem solid #fff;
    border-radius: 0.25rem;
    cursor: pointer;
    white-space: nowrap;
}

.menu .sublink:hover {
    background-color: #ebb22c;
    border-color: #ebb22c;
    color: #fff;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.25);
}

.menu .mainmenu:hover .top {
    background-color: #fff;
    color: #222;
}

.menu .mainmenu .lower {
    height: 0;
    position: absolute;
    left: 0;
    top: 100%;
    opacity: 0;
    transition: opacity 0.3s, height 0.3s;
    pointer-events: none;
    width: 18.75rem;
    border-radius: 0 0 0.25rem 0.25rem;
    overflow: hidden;
}

.menu .mainmenu:hover .lower {
    opacity: 1;
    height: auto;
    pointer-events: all;
    background-color: #fff;
}

.menu .mainmenu .lower a {
    color: #222;
    font-size: 1rem;
    padding: 0.625rem 1rem;
    font-weight: 600;
    opacity: 0.33;
    display: block;
    text-align: left;
}

.menu .mainmenu .lower a:not(:last-of-type) {
    border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.15);
}

.menu .mainmenu .lower a:hover {
    opacity: 1;
    border-bottom-color: rgba(0, 0, 0, 0.05);
    color: #ebb22c;
}

/* Menu 1000px breakpoint */
@media only screen and (max-width: 1000px) {
    .menu .mainmenu,
    .menu .toplink,
    .menu .sublink {
        font-size: 0.8rem;
        margin-left: 0;
    }
    
    .menu .mainmenu:hover .lower {
        top: 2.25rem;
    }
}

/* Menu 900px breakpoint - mobile hamburger */
@media only screen and (max-width: 900px) {
    /* Hide desktop menu, show hamburger */
    .menu {
        flex-grow: 0;
    }
    
    .menu .menubox {
        display: none;
    }
    
    .menu .minilink {
        display: block;
    }
    
    .menu .miniclose {
        display: none;
    }
}

/* Mobile Menu Animations */
@keyframes menuFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes menuItemSlideIn {
    from {
        opacity: 0;
        transform: translateX(-1.5rem);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes menuCloseIn {
    from {
        opacity: 0;
        transform: rotate(-90deg) scale(0.5);
    }
    to {
        opacity: 1;
        transform: rotate(0) scale(1);
    }
}

/* Mobile Menu Overlay - triggered by body.menu-open */
body.menu-open {
    overflow: hidden;
}

body.menu-open .header .subheader {
    display: none;
}

body.menu-open .header .mainheader {
    position: static;
}

body.menu-open .header .mainheader > .boxbox {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: transparent;
    box-shadow: none;
}

body.menu-open .header .mainheader .logo {
    display: none;
}

body.menu-open .menu .minilink {
    display: none;
}

body.menu-open .menu .miniclose {
    display: block;
    position: fixed;
    top: 1.5rem;
    right: 1.5rem;
    z-index: 100001;
    cursor: pointer;
    animation: menuCloseIn 0.3s ease-out forwards;
}

body.menu-open .menu .menubox {
    display: flex !important;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background-color: rgba(51, 107, 100, 0.98);
    z-index: 100000 !important;
    padding: 5rem 2rem 2rem 2rem;
    overflow-y: auto;
    animation: menuFadeIn 0.25s ease-out forwards;
}

body.menu-open .menu .menubox .mainmenu,
body.menu-open .menu .menubox .toplink {
    width: 100%;
    text-align: left;
    height: auto;
    font-size: 1.5rem;
    display: block;
    padding: 1rem 0;
    border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.2);
    opacity: 0;
    animation: menuItemSlideIn 0.35s ease-out forwards;
}

body.menu-open .menu .menubox .mainmenu:nth-child(1),
body.menu-open .menu .menubox .toplink:nth-child(1) {
    animation-delay: 0.05s;
}

body.menu-open .menu .menubox .mainmenu:nth-child(2),
body.menu-open .menu .menubox .toplink:nth-child(2) {
    animation-delay: 0.1s;
}

body.menu-open .menu .menubox .mainmenu:nth-child(3),
body.menu-open .menu .menubox .toplink:nth-child(3) {
    animation-delay: 0.15s;
}

body.menu-open .menu .menubox .mainmenu:nth-child(4),
body.menu-open .menu .menubox .toplink:nth-child(4) {
    animation-delay: 0.2s;
}

body.menu-open .menu .menubox .mainmenu:nth-child(5),
body.menu-open .menu .menubox .toplink:nth-child(5) {
    animation-delay: 0.25s;
}

body.menu-open .menu .menubox .sublink {
    width: 100%;
    text-align: center;
    height: auto;
    font-size: 1.25rem;
    display: block;
    padding: 1rem 1.5rem;
    margin-top: 1.5rem;
    border: 0.125rem solid #fff;
    border-radius: 0.5rem;
    opacity: 0;
    animation: menuItemSlideIn 0.35s ease-out forwards;
    animation-delay: 0.3s;
}

body.menu-open .menu .menubox .mainmenu .top {
    display: block;
    height: auto;
    padding: 0;
    border-radius: 0;
    background-color: transparent;
    cursor: pointer;
}

/* Disable desktop hover styles on mobile */
body.menu-open .menu .menubox .mainmenu:hover .top {
    background-color: transparent;
    color: #fff;
}

/* Mobile submenu - only show when menupop class is added via click */
body.menu-open .menu .menubox .mainmenu .lower {
    position: static !important;
    width: 100% !important;
    max-height: 0 !important;
    height: auto !important;
    opacity: 0 !important;
    overflow: hidden !important;
    background-color: transparent !important;
    pointer-events: none !important;
    transition: max-height 0.3s ease-out, opacity 0.3s ease-out, padding 0.3s ease-out;
    padding: 0 !important;
    border-radius: 0 !important;
    top: auto !important;
}

body.menu-open .menu .menubox .mainmenu.menupop .lower {
    max-height: 31.25rem !important;
    opacity: 1 !important;
    padding: 0.5rem 0 !important;
    pointer-events: all !important;
}

body.menu-open .menu .menubox .mainmenu .lower a {
    color: #fff;
    opacity: 0.7;
    padding: 0.75rem 1.5rem;
    font-size: 1.125rem;
    transition: opacity 0.2s ease, color 0.2s ease;
    display: block;
}

body.menu-open .menu .menubox .mainmenu .lower a:hover {
    opacity: 1;
    color: #ebb22c;
}

body.menu-open .menu .menubox .mainmenu .lower a:not(:last-of-type) {
    border-bottom: none;
}

.menu .miniclose {
    cursor: pointer;
}
/* #endregion */

#sedar .item span {
    color: #ebb22c;
}

#sedar .item:hover {
    background-color: #3e6f58;
}

.project .highlights {
    background-color:#f9f9f9;
    box-shadow:0 2px 5px rgba(0,0,0,0.15);
    padding:30px;
    border-radius:5px;
}

.project table {
    width:100%;
    text-align:center;
}

.project table tr:first-of-type td, .project table tr:nth-child(2) td {
    background-color:#5c9559;
    color:#fff;
}

.project table tr:nth-child(odd) td {
    background-color:#f5f5f5;
    color:#333;
}

.project table tr:nth-child(even) td {
    background-color:#e8e8e8;
    color:#333;
}

.project .secalt {
    background-color:#3e6f58;
    padding:30px;
    border-radius:5px;
    color:#fff;
}

.project .secalt h3 {
    color:#fff;
}

@media only screen and (min-width:1400px) {
    .project p, .project ul li {
        font-size:1.5rem;
    }
}

@media only screen and (min-width:600px) {
    .project p, .project ul li {
        font-size:1.25rem;
    }
}

/* #endregion */

/* #region Standardized Tables */
.data-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    border-radius: 0.5rem;
    overflow: hidden;
    font-size: 0.9375rem;
}

.data-table th,
.data-table td {
    padding: 0.75rem 1rem;
    text-align: center;
    border-bottom: 0.0625rem solid #ddd;
}

.data-table th {
    font-weight: 600;
    font-size: 0.875rem;
}

.data-table tr:last-child td {
    border-bottom: none;
}

/* Table theme - solid colors */
.data-table th {
    background: #5c9559;
    color: #fff;
}

.data-table td {
    color: #333;
    background: inherit;
}

.data-table tbody tr:nth-child(odd) {
    background: #f5f5f5;
}

.data-table tbody tr:nth-child(odd) td {
    color: #333;
}

.data-table tbody tr:nth-child(even) {
    background: #e8e8e8;
}

.data-table tbody tr:nth-child(even) td {
    color: #333;
}

.data-table td:first-child {
    font-weight: 600;
    color: #1d231f;
}

/* Highlight row (optional) */
.data-table tr.row-highlight td {
    background: #d4e8d3;
    color: #1d231f;
    font-weight: 600;
}

/* Responsive tables */
@media only screen and (max-width: 1000px) {
    .data-table {
        font-size: 0.875rem;
    }
    
    .data-table th,
    .data-table td {
        padding: 0.5rem 0.75rem;
    }
}

@media only screen and (max-width: 600px) {
    .data-table {
        font-size: 0.75rem;
    }
    
    .data-table th,
    .data-table td {
        padding: 0.5rem;
    }
}
/* #endregion */

/* #region PRESENTATIONS PAGE */
.presentations .item {
    background-color: #f5f5f5;
    border: 0.0625rem solid #ddd;
}

.presentations .item a.hidden {
    display: none;
}

.presentations .item .preview img {
    width: 20rem;
    background-size: contain;
    background-position: center;
}

.presentations .item .preview img:hover {
    opacity: 0.8;
}

.presentations .item h3 {
    color: #1d231f;
    font-size: 1.25rem;
    margin-bottom: 0.25rem;
}

.presentations .item h4 {
    color: #5c9559;
    font-size: 0.875rem;
    font-weight: 400;
}

.presentations .item .linkflex {
    margin-top: 1rem;
}

.presentations .item .mainlink {
    font-size: 0.875rem;
    padding: 0.625rem 1rem;
}

.presentations .emptystate {
    text-align: center;
    color: #666;
    padding: 3rem;
}

@media (max-width: 768px) {
    .presentations .item .preview img {
        width: 100%;
        max-width: 15rem;
    }
    
    .presentations .item {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    
    .presentations .item .linkflex {
        justify-content: center;
    }
}
/* #endregion */

@media only screen and (max-width:1400px) {
    .hugetext {
        font-size:1.5rem;
    }

    .bigtext {
        font-size:1.25rem;
    }

    .midtext {
        font-size:1rem;
    }
}

@media only screen and (max-width:600px) {
    .hugetext {
        font-size:1.25rem;
    }

    .bigtext {
        font-size:1rem;
    }
}

.preheader {
    background-color:#fec834;
    color:#111;
    text-align:center;
    padding:0.5rem 1rem;
}

.preheader a {
    font-weight:bold;
    padding:0.25rem 0.5rem;
    border-radius:0.25rem;
    background-color:#111;
    color:#fff;
    font-size:0.8rem;
}

.preheader:hover a {
    opacity:0.5;
}

.preheader a:hover {
    opacity:1;
    background-color:#fff;
    color:#111;
}

@media only screen and (max-width:800px) {
    .preheader span {
        width:100%;
    }
}

/* #region Release Page PDF Button */
.release .pdfbtn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    background-color: #5c9559;
    border-color: #5c9559;
}

.release .pdfbtn:hover {
    background-color: #3d6b3a;
    border-color: #3d6b3a;
    color: #fff;
}

.release .pdfbtn .la-solid {
    font-size: 1.125rem;
}

.release .pdfbtn.inactive {
    background-color: #ccc;
    border-color: #ccc;
    color: #666;
    pointer-events: none;
    cursor: not-allowed;
}

.release .pdfbtn.inactive:hover {
    background-color: #ccc;
    color: #666;
}
/* #endregion */

/* #region News Archive */
#archive {
    padding: 2rem 0;
}

#archive .year {
    gap: 0.5rem;
    margin-bottom: 2rem;
}

#archive .yearlink {
    padding: 0.5rem 1.25rem;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 0.875rem;
    color: #5c9559;
    background-color: #f5f5f5;
    border: 0.125rem solid transparent;
    transition: all 0.2s ease;
}

#archive .yearlink:hover {
    background-color: #e8e8e8;
    color: #3d6b3a;
}

#archive .yearlink.active {
    background-color: #5c9559;
    color: #fff;
    border-color: #5c9559;
}

#archive .newschive {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

#archive .newschive .item {
    flex-direction: column;
    align-items: flex-start;
    background-color: #fff;
    border: 0.0625rem solid #e0e0e0;
    border-radius: 0.75rem;
    padding: 2rem;
    gap: 1.5rem;
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.04);
    transition: all 0.25s ease;
}

#archive .newschive .item:hover {
    border-color: #5c9559;
    box-shadow: 0 0.25rem 1rem rgba(92, 149, 89, 0.15);
    transform: translateY(-0.125rem);
}

#archive .newschive .newslink {
    display: flex;
    align-items: center;
    color: #1d231f;
    font-size: 1rem;
    line-height: 1.5;
}

#archive .newschive .newslink div {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

#archive .newschive .newslink .date {
    display: block;
    font-size: 0.875rem;
    color: #5c9559;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

#archive .newschive .newslink .link1 {
    display: block;
    color: #1d231f;
    font-weight: 600;
    text-transform: uppercase;
    transition: color 0.2s ease;
}

#archive .newschive .item:hover .newslink .link1 {
    color: #333;
}

#archive .newschive .pdflink {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    background-color: #5c9559;
    color: #fff;
    font-weight: 600;
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

#archive .newschive .pdflink .la-solid {
    font-size: 1rem;
}

#archive .newschive .pdflink:hover {
    background-color: #3d6b3a;
    transform: scale(1.05);
}

#archive .newschive .pdflink.nopdf {
    background-color: #ccc;
    color: #888;
    pointer-events: none;
    opacity: 0.6;
}

#archive .newschive .newslink {
    flex-grow: 1;
}

#archive .newschive .item .pdflink {
    margin-top: auto;
    width: 100%;
    justify-content: center;
}

#archive .missing {
    width: 100%;
    text-align: center;
    padding: 3rem 1.5rem;
    color: #666;
    font-size: 1rem;
    background-color: #f9f9f9;
    border-radius: 0.75rem;
    border: 0.0625rem dashed #ddd;
}

#archive .missing .textlink {
    color: #5c9559;
    font-weight: 600;
    text-decoration: underline;
}

#archive .missing .textlink:hover {
    color: #ebb22c;
}

@media only screen and (max-width: 1100px) {
    #archive .newschive {
        grid-template-columns: repeat(2, 1fr);
    }
    
    #archive .newschive .item {
        padding: 1.5rem;
        gap: 1.25rem;
    }
}

@media only screen and (max-width: 700px) {
    #archive .newschive {
        grid-template-columns: 1fr;
    }
    
    #archive .newschive .item {
        padding: 1.25rem;
        gap: 1rem;
    }
    
    #archive .year {
        justify-content: center;
    }
}

@media only screen and (max-width: 500px) {
    #archive .yearlink {
        padding: 0.375rem 0.75rem;
        font-size: 0.75rem;
    }
    
    #archive .newschive .newslink .link1 {
        font-size: 0.9375rem;
    }
}
/* #endregion */
