/* #region RESET */

/* ============================================================
   JRX MEDIA — BASE RESET
   v1.0
   ============================================================ */

/* ------------------------------------------------------------
   1. BOX MODEL
   ------------------------------------------------------------ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ------------------------------------------------------------
   2. ROOT & CUSTOM PROPERTIES
   Change these per project — everything inherits from here.
   ------------------------------------------------------------ */
:root {
  /* Typography */
  --font-sans:    system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-serif:   Georgia, 'Times New Roman', serif;
  --font-mono:    'Cascadia Code', 'Fira Code', 'Courier New', monospace;

  /* Scale */
  --text-sm:   0.875rem;   /* 14px */
  --text-base: 1rem;       /* 16px */
  --text-md:   1.125rem;   /* 18px */
  --text-lg:   1.25rem;    /* 20px */
  --text-xl:   1.5rem;     /* 24px */
  --text-2xl:  2rem;       /* 32px */
  --text-3xl:  2.5rem;     /* 40px */
  --text-4xl:  3.5rem;     /* 56px */

  /* Spacing */
  --space-xs:  0.25rem;
  --space-sm:  0.5rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2rem;
  --space-2xl: 3rem;
  --space-3xl: 5rem;

  /* Layout */
  --max-width: 1400px;
  --gutter:    clamp(1rem, 5vw, 3rem);

  /* Radius */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   14px;
  --radius-full: 9999px;

  /* Transitions */
  --ease:      cubic-bezier(0.4, 0, 0.2, 1);
  --duration:  200ms;

  /* Colors — override per project */
  --color-bg:       #ffffff;
  --color-text:     #111111;
  --color-muted:    #6b7280;
  --color-border:   #e5e7eb;
  --color-accent:   #2563eb;
  --color-accent-h: #1d4ed8;  /* hover state */
}

/* ------------------------------------------------------------
   3. HTML & BODY
   ------------------------------------------------------------ */
html {
  font-size: 100%;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  tab-size: 4;
}

body {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: 1.6;
  color: var(--color-text);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  min-height: 100dvh;
}

/* ------------------------------------------------------------
   4. LAYOUT CONTAINERS
   .container    — max 1400px, centered, guttered
   .container-sm — tighter variant for editorial/text pages
   ------------------------------------------------------------ */
.container {
  width: 100%;
  max-width: var(--max-width);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.container-sm {
  width: 100%;
  max-width: 860px;
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ------------------------------------------------------------
   5. TYPOGRAPHY
   ------------------------------------------------------------ */
h1, h2, h3, h4, h5, h6 {
  line-height: 1.2;
  font-weight: 600;
  text-wrap: balance;
}

p, li, blockquote {
  max-width: 72ch;
  text-wrap: pretty;
}

a {
  color: var(--color-accent);
  text-decoration: underline;
  text-decoration-skip-ink: auto;
  transition: color var(--duration) var(--ease);
}

a:hover {
  color: var(--color-accent-h);
}

strong, b { font-weight: 600; }
em, i     { font-style: italic; }

small { font-size: var(--text-sm); }

code, kbd, samp, pre {
  font-family: var(--font-mono);
  font-size: 0.9em;
}

pre {
  overflow-x: auto;
  white-space: pre;
}

blockquote {
  border-left: 3px solid var(--color-border);
  padding-left: var(--space-lg);
  color: var(--color-muted);
}

/* ------------------------------------------------------------
   6. LISTS
   ------------------------------------------------------------ */
ul, ol {
  padding-left: var(--space-xl);
}

li + li {
  margin-top: var(--space-xs);
}

/* Utility: strip list style when used for navigation etc. */
.list-reset {
  list-style: none;
  padding-left: 0;
}

/* ------------------------------------------------------------
   7. MEDIA
   ------------------------------------------------------------ */
img, svg, video, canvas, audio, iframe, embed, object {
  display: block;
  max-width: 100%;
}

img, video {
  height: auto;
}

img {
  font-style: italic; /* alt text styling fallback */
}

svg {
  overflow: hidden;
}

/* ------------------------------------------------------------
   8. FORMS
   ------------------------------------------------------------ */
input, button, textarea, select {
  font: inherit;
  color: inherit;
  background: transparent;
  border: none;
  outline: none;
}

button {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}

textarea {
  resize: vertical;
}

fieldset {
  border: none;
}

/* Remove default appearance on selects / inputs in WebKit */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

/* ------------------------------------------------------------
   9. TABLES
   ------------------------------------------------------------ */
table {
  border-collapse: collapse;
  width: 100%;
}

th, td {
  padding: var(--space-sm) var(--space-md);
  text-align: left;
}

/* ------------------------------------------------------------
   10. INTERACTIVE & FOCUS
   ------------------------------------------------------------ */
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

/* Suppress focus ring for mouse users */
:focus:not(:focus-visible) {
  outline: none;
}

/* Pointer on interactive elements */
[role="button"],
label[for] {
  cursor: pointer;
}

/* ------------------------------------------------------------
   11. ACCESSIBILITY & MOTION
   ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ------------------------------------------------------------
   12. UTILITY CLASSES
   Keep this section thin — add per-project utilities in a
   separate utilities.css rather than bloating the reset.
   ------------------------------------------------------------ */

/* Display */
.flex   { display: flex; }
.grid   { display: grid; }
.block  { display: block; }
.hidden { display: none; }

/* Flex modifiers */
.between    { justify-content: space-between; }
.around     { justify-content: space-around; }
.justcenter { justify-content: center; }
.center     { align-items: center; }
.col        { flex-direction: column; }
.grow       { flex-grow: 1; }
.noshrink   { flex-shrink: 0; }
.wrap       { flex-wrap: wrap; }

/* Text alignment */
.text-center { text-align: center; }
.text-right  { text-align: right; }

/* Spacing helpers */
.mt-auto { margin-top: auto; }
.ml-auto { margin-left: auto; }

/* Full-width section wrapper (for edge-to-edge backgrounds) */
.section {
  padding-block: var(--space-3xl);
}

/* Padding utilities */
.padside  { padding-left: 3rem; padding-right: 3rem; }
.pad      { padding: 3rem; }
.padtop   { padding-top: 3rem; padding-bottom: 3rem; }
.padhalf  { padding: 2rem; }
.padmini  { padding: 0.3rem; }
.padside2 { padding-left: 6rem; padding-right: 6rem; }
.padsidemini { padding-left: 0.3rem; padding-right: 0.3rem; }

/* Sizing utilities */
.half    { width: 50%; }
.third   { width: 33.333%; }
.quarter { width: 25%; }

/* Spacer utilities */
.spacer > * + *      { margin-bottom: 2rem; }
.spacersmall > * + * { margin-bottom: 1rem; }
.spacerbig > * + *   { margin-bottom: 3rem; }

/* ============================================================
   END RESET
   ============================================================ */

/* #endregion */

/* #region PRELOADER */

#preloader {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #1a1a1a;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}

#preloader img {
    width: 10rem;
    animation: preloader-pulse 1.2s ease-in-out infinite;
}

#preloader.preloader-done {
    opacity: 0;
    visibility: hidden;
}

@keyframes preloader-pulse {
    0%, 100% { opacity: 0.3; }
    50%       { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    #preloader img {
        animation: none;
        opacity: 1;
    }
    #preloader.preloader-done {
        transition: none;
    }
}

/* #endregion */

/*

    Links: #618070
    Hover: #468062
    Main: #434343
    Accent: #6c8872

*/

/* #region Globals */

* {
    font-family: 'Red Hat Text';
}

h1 {
    font-size: 4rem;
    line-height: 4rem;
    color: #fff;
    text-transform: uppercase;
    font-weight:600;
}

h2 {
    font-size: 4rem;
    line-height: 4rem;
    text-transform: uppercase;
    color: #6c8872;
    font-weight:600;
}

h3 {
    color: #434343;
    font-size: 3rem;
    line-height: 3rem;
    font-weight:600;
}

h3 span {
    font-size: 1.2rem;
    text-transform: uppercase;
}

h4 {
    color: #6c8872;
    font-size: 2rem;
    line-height: 2rem;
}

.mainlink {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background-color: #618070;
    color: #fff;
    font-weight: 600;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
    border-radius: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: all 0.2s ease;
}

.mainlink:hover {
    background-color: #468062;
    transform: translateY(-0.125rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.2);
}

@media only screen and (max-width:1400px) {
    h1 {
        font-size: 3.5rem;
        line-height: 3.5rem;
    }

    h2 {
        font-size: 3rem;
        line-height: 3rem;
    }

    h3 {
        font-size:2rem;
        line-height:2rem;
    }
}

@media only screen and (max-width:800px) {
    .padside {
        padding-left: 30px;
        padding-right: 30px;
    }

    .pad {
        padding: 30px;
    }

    h1 {
        font-size: 3rem;
        line-height: 3rem;
    }

    h2 {
        font-size: 2.5rem;
        line-height: 2.5rem;
    }
}

@media only screen and (max-width:500px) {
    h1 {
        font-size: 2.5rem;
        line-height: 2.5rem;
    }

    .padside {
        padding-left: 15px;
        padding-right: 15px;
    }

    .pad {
        padding: 30px 15px;
    }

}

@media only screen and (max-width:400px) {
    h1 {
        font-size: 2rem;
        line-height: 2rem;
    }
}

/* #endregion */

/* #region Header */

.header {
    background-color: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
    transition: all .5s;
    position: relative;
    z-index: 3;
}

.header .logo {
    padding: 10px 0;
}

.header .logo img {
    width: 270px;
}

.header .menuright {
    max-width: 1100px;
}

.header .subheader {
    align-self: flex-end;
    transition: all .5s;
}

.header .quote .item {
    font-weight: bold;
    padding: 1.25rem;
    padding-bottom: 0;
    color: #434343;
}

.header .quote span {
    color: #6c8872;
}

.header .quote .spacer {
    background-color: #bbb;
    width: 1px;
}

.header .mailing {
    background-color: #618070;
    color: #fff;
    margin-right: -60px;
    padding: 10px 20px;
    padding-right: 60px;
    font-size: 1.4rem;
    font-weight: bold;
    transition: all .3s;
}

.header .mailing span {
    margin-right: 10px;
    margin-top: -2px;
}

.header .mailing:hover {
    background-color: #468062;
}

.header #menu {
    padding-left: 60px;
}

.header #menu .mainmenu:hover .lower {
    top: 92px;
}

.header #menu .mainmenu .lower a:hover {
    color: #468062;
}

.header #menu .mainmenu:hover .top {
    color: #618070;
    opacity: .33;
}

.scrolled {
    position: sticky;
    top: 0;
    z-index: 9;
}

.scrolled .subheader {
    display: none;
}

.scrolled .logo img {
    width: 140px;
}

.scrolled #menu .mainmenu:hover .lower {
    top: 84px;
}

.header #menu .minilink {
    position: absolute;
    color: #618070;
    right: 60px;
    top: 75px;
}

.scrolled #menu .minilink {
    top: 18px;
}

@media only screen and (max-width:1200px) {
    .header .quote .item {
        padding: 0.75rem;
    }

    .header .mailing {
        padding: 0.75rem 1rem;
        padding-right: 3.75rem;
        font-size: 1.2rem;
    }
}

@media only screen and (max-width:1000px) {
    .header .mailing {
        display: none;
    }

    .header .quote {
        background-color: #618070;
    }

    .header .quote .item {
        color: #fff;
        padding-bottom: 0.75rem;
    }

    .header .quote span {
        color: #fff;
    }

    .header .quote .spacer {
        background-color: rgba(255, 255, 255, 0.3);
    }
}

@media only screen and (max-width:800px) {
    .header {
        flex-direction: column-reverse;
    }

    .header .subheader,
    .header .menuright {
        display: block;
    }

    .header .mailing {
        margin-left: -30px;
        margin-right: -30px;
        justify-content: center;
        padding: 10px 20px;
    }

    .header .quote {
        margin-left: -30px;
        margin-right: -30px;
        justify-content: center;
        gap: 0.5rem;
    }

    .header #menu {
        max-width: 200px;
    }

    .header #menu .minilink {
        top: 85px;
        right: 30px;
    }

    .header .logo img {
        width: 200px;
    }

    .scrolled .mailing {
        display: none;
    }

    .scrolled .logo img {
        width: 140px;
    }

    .scrolled #menu .minilink {
        top: 18px;
    }
}

@media only screen and (max-width:500px) {
    .header .quote {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
}

/* #endregion */

/* #region Menu */
header .menu .toplink,
header .menu .mainmenu {
    color: #618070;
}

header .menu .toplink:hover {
    background-color: #468062;
    color: #fff;
}

header .menu .sublink {
    display: none;
}

/* #endregion */

/* #region Home */

.home p {
    font-size: 1.4rem;
    line-height: 2.2rem;
}

.home .hero {
    background-color: #6c8872;
    min-height: 600px;
    position: relative;
}

.home .hero .herounder {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
    opacity: .25;
}

.home .hero .herounder video {
    margin-top: -10%;
    min-width: 100%;
    min-height: 110%;
}

.home .hero .herover {
    position: relative;
    z-index: 2;
}

.home .hero .herover.overleft {
    background-image: url('images/isp_hero_bg.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.home .hero h1 {
    max-width: 1000px;
    font-weight: 500;
    font-style: italic;
}

.home .hero .mainlink {
    margin-top: 1.25rem;
    align-self: flex-start;
}

.home .hero h1 span {
    background: -webkit-linear-gradient(#f2e8c3, #d1b360);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: bold;
}

.home .hero .main {
    padding: 60px;
}

.home .hero .latest {
    max-width: 500px;
    background-color: rgba(255, 255, 255, 0.70);
}

.home .hero .latest .title {
    font-size: 2rem;
}

.home .hero .latest .view {
    background-color: #618070;
    color: #fff;
    padding: 10px 15px;
    font-weight: bold;
}

.home .hero .latest .list {
    margin-top: 30px;
}

.home .hero .latest .list a {
    color: #434343;
    width: 100%;
    text-transform: uppercase;
}

.home .hero .latest .list a:hover {
    color: #468062;
}

.home .hero .latest .list a:not(:last-of-type) {
    border-bottom: 2px dotted #999;
    padding-bottom: 30px;
    margin-bottom: 30px;
}

.home .hero .latest .list a span {
    font-weight: bold;
    display: block;
}

.home .hero .latest .missing {
    font-style: italic;
    font-weight: bold;
    text-align: center;
}

.home .about .text {
    padding-top: 200px;
    padding-bottom: 200px;
}

.home .about iframe {
    width:45%;
    height:500px;
}

.home .about .map {
    background-size: contain;
    background-position: top right;
    background-repeat:no-repeat;
}

.home .highlights {
    background-image: url('images/bg_home.jpg');
    background-position: bottom center;
    background-size: 100% auto;
    background-repeat: no-repeat;
}

.home .highlights h2 {
    text-align: center;
}

.home .highlights .item {
    background-color: #fafafa;
    padding: 60px;
    width: 23%;
    font-weight: 600;
    color: #434343;
}

.home .highlights .item span {
    color: #6c8872;
    display: block;
    text-align: center;
    font-size: 6rem;
}

.home .highlights .disclaimer {
    text-align: center;
    font-weight: bold;
    font-style: italic;
    color: #434343;
}

.home .superb {
    background-image: url('images/bg_targets.jpg');
    background-size: cover;
    position: relative;
    z-index: 2;
}

.home .superb .text {
    padding-top: 160px;
    padding-bottom: 160px;
}

.home .superb h2,
.home .superb p {
    color: #fff;
}

.home .superb .pegmatite {
    background-image: url('images/home_pegmatite.png');
    background-size: cover;
    background-position: top right;
    margin-top: -60px;
    background-repeat: no-repeat;
}

.home .project {
    background-size: cover;
    position: relative;
    z-index: 2;
}

.home .project .commod {
    background-size: cover;
    background-position: top left;
    margin-top: -60px;
    background-repeat: no-repeat;
}

.home .project .text {
    padding-top: 160px;
    padding-bottom: 160px;
}

@media only screen and (max-width:1600px) {
    .home .about {
        flex-direction: column;
    }

    .home .about .map {
        width: 100%;
        height: 40vw;
    }

    .home .about .text {
        width: 100%;
        padding-top:100px;
        padding-bottom:50px;
    }

    .home .about iframe {
        margin-bottom:50px;
        width:100%;
        max-width:600px;
    }
}

@media only screen and (max-width:1400px) {
    .home .highlights .flex {
        flex-wrap: wrap;
    }

    .home .highlights .item {
        width: 47%;
    }

    .home .highlights .item:nth-child(1n+3) {
        margin-top: 60px;
    }

    .home .superb .pegmatite {
        width: 40%;
    }

    .home .superb .text {
        flex-grow: 1;
    }
}

@media only screen and (max-width:1000px) {
    .home .hero {
        display: block;
    }

    .home .hero .latest {
        max-width: 100%;
    }

    .home .project .text {
        width: 100%;
        margin-bottom: -60px;
        position: relative;
        z-index: 2;
        padding-top: 90px;
        padding-bottom: 90px;
    }

    .home .project .gold {
        width: 100%;
        height: 200px;
    }

    .home .superb {
        flex-direction: column-reverse;
    }

    .home .project {
        flex-direction: column;
    }

    .home .about .text {
        padding-top: 90px;
        padding-bottom: 90px;
    }

}

@media only screen and (max-width:800px) {
    .home .hero .main {
        padding: 60px 30px;
    }

    .home .highlights .item {
        width: 100%;
    }

    .home .highlights .item:not(:first-of-type) {
        margin-top: 30px;
    }
    .home .about iframe {
        height:300px;
    }
}

@media only screen and (max-width:500px) {
    .home .hero .latest .topflex {
        display: block;
    }

    .home .hero .latest .title {
        text-align: center;
    }

    .home .hero .latest .view {
        display: block;
        width: 100%;
        text-align: center;
        margin-top: 10px;
    }
}

/* #endregion */

/* #region Footer */

footer {
    background-color: #333;
}

footer .subscribe {
    background-color: #333;
    color: #fff;
}

footer .subscribe .presentation {
    background-color: #618070;
    width: 33%;
    color: #fff;
    text-align: center;
    font-weight: bold;
    font-size: 1.4rem;
}

footer .subscribe .subinner {
    background-image: url('images/bg_subscribe.jpg');
    background-size: cover;
    position: relative;
    z-index: 3;
    margin-top: -30px;
    border: 10px solid #6c8872;
}

footer .subscribe .subinner .title {
    font-size: 2rem;
}

footer .subscribe .subinner p {
    max-width: 700px;
}

footer .subscribe .subinner form {
    max-width: 700px;
}

footer .subscribe .subinner form input {
    font-size: 1.6rem;
    background-color: #fff;
    border: 1px solid #ccc;
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
    color: #434343;
    padding: 15px 20px;
}

footer .subscribe .subinner form button {
    font-size: 1.6rem;
    font-weight: bold;
    color: #fff;
    background-color: #618070;
    padding: 15px 20px;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
}

footer .subscribe .subinner form button:hover {
    background-color: #468062;
}

footer .logoside {
    padding-top: 60px;
    padding-right: 60px;
}

footer .logoside .socials {
    align-self: flex-end;
}

footer .logoside .logo {
    width: 200px;
}

footer .logoside .logoinfo p {
    color: #eee;
    font-size: 1rem;
    line-height: 1.6rem;
}

footer .logoside .socials {
    border: 2px solid #eee;
    padding: 10px 15px;
}

footer .logoside .socials .title {
    font-size: 1.6rem;
    margin-right: 10px;
    text-transform: uppercase;
    color: #eee;
    font-weight: 600;
    flex-shrink: 0;
}

footer .logoside .socials a {
    color: #618070;
    font-size: 2rem;
}

footer .logoside .socials a:hover {
    transform: scale(1.25);
    color: #468062;
}

footer .sitemap .mainmenu .top {
    opacity: 0.33;
    color: #fff;
}

footer .sitemap .mainmenu .lower a,
footer .sitemap .toplink {
    color: #618070;
    font-weight: bold;
    display: block;
}

footer .sitemap .mainmenu .lower a:hover,
footer .sitemap .toplink:hover {
    color: #468062;
    text-decoration: underline;
}

footer .subfooter {
    font-size: 0.9rem;
    padding: 15px 0;
    color: #eee;
    border-top: 1px solid #666;
}

footer .subfooter a {
    color: #618070;
    font-weight: bold;
}

@media only screen and (max-width:1500px) {
    footer .subscribe {
        flex-direction: column-reverse;
    }

    footer .subscribe .subinner {
        width: 100%;
    }

    footer .logoside {
        width: 100%;
        padding-right: 0;
    }

    footer .logoside p {
        max-width: 800px;
    }
}

@media only screen and (max-width:1200px) {
    footer .sitemap {
        display: block;
    }

    footer .mainfoot {
        padding-top: 30px;
        padding-bottom: 30px;
    }

    footer .sitemap .mainmenu:not(:last-of-type) {
        margin-bottom: 45px;
    }

    footer .sitemap .toplink {
        margin-top: 45px;
    }
}

@media only screen and (max-width:1000px) {
    footer .logoside .socials .title {
        font-size: 1.4rem;
    }
}

@media only screen and (max-width:800px) {
    footer .logoside .logoflex {
        display: block;
    }

    footer .logoside .socials {
        max-width: 360px;
        margin-top: 30px;
    }

    footer .subscribe .subinner form {
        display: block;
    }

    footer .subscribe .subinner form input {
        width: 100%;
        border-radius: 5px;
    }

    footer .subscribe .subinner form button {
        border-radius: 5px;
        margin-top: 10px;
        width: 100%;
        text-align: center;
    }
}

@media only screen and (max-width:500px) {
    footer .logoside .socials {
        display: block;
        width: 100%;
        max-width: unset;
    }

    footer .subfooter {
        flex-direction: column-reverse;
        text-align: center;
    }

    footer .subfooter a {
        margin-bottom: 10px;
    }
}

/* #endregion */

/* #region Custom: Content */
.contop {
    background-image: url('images/bg_hero.jpg');
    background-size: cover;
    background-position: center center;
    height: 300px;
}

.contbox {
    background-image: url('images/bg_home.jpg');
    background-position: bottom center;
    background-size: 100% auto;
    background-repeat: no-repeat;
}

@media only screen and (max-width:1200px) {

    .contbox .content {
        flex-direction: column-reverse;
    }

    .contbox .contmain {
        padding-left: 0;
        padding-right: 0;
    }

    .contbox {
        padding-bottom: 60px;
    }

}

/* #endregion */

/* #region Custom: Sidebar */
#sidex {
    align-self: auto;
}

#sidex .sidebar .sidelink:hover {
    color: #468062;
}

@media only screen and (max-width:1200px) {
    #sidex {
        width: 100%;
    }
}

/* #endregion */

/* #region Custom: Archive */

#archive .newschive .newsbox {
    background-color: #fff;
    position: relative;
    overflow: hidden;
}

#archive .newschive .newsbox::after {
    content: "";
    background-color: #618070;
    position: absolute;
    top: 0;
    bottom: -2px;
    left: 50%;
    width: 0;
    opacity: 0;
    z-index: 0;
    transition: all .3s cubic-bezier(0.075, 0.82, 0.165, 1);
    transform: rotate(45deg);
}

#archive .newschive .newsbox:hover::after {
    width: 100%;
    opacity: 1;
    transform: rotate(0);
    left: 0;
}

#archive .newschive .newsbox:hover {
    border-color: transparent;
}

#archive .newschive .newsbox .newslink {
    position: relative;
    z-index: 1;
    text-transform:uppercase;
}

#archive .newschive .newsbox:hover .newslink {
    color: #fff;
}

#archive .newschive .newsbox .pdflink {
    position: relative;
    z-index: 1;
}

#archive .newschive .newsbox:hover .pdflink {
    color: rgba(255, 255, 255, 0.90);
    border-color: rgba(255, 255, 255, 0.90);
}

#archive .newschive .newsbox .pdflink:hover {
    background-color: #fff;
    color: #618070;
}

/* #endregion */

/* #region Custom: Stock */
#stock .itemflex .item span {
    color: #6c8872;
}

/* #endregion */

/* #region Custom: Subscribe */
#subscribe {
    background-color: #fff;
    border: 2px solid rgba(0, 0, 0, 0.05);
}

/* #endregion */

/* #region Custom: Project */
#project {
    max-width: 1000px;
}

#project .section {
    padding: 60px;
}

#project .section:nth-child(odd) {
    background-color: #fff;
    border: 2px solid rgba(0, 0, 0, 0.05);
}

@media only screen and (max-width:800px) {
    #project .section {
        padding: 30px;
    }
}
/* #endregion */

#contact .contactform {
    background-color:#6c8872;
    z-index:2;
}

#contact .contactform h3 {
    color:#fff;
}

#contact .contactform form .text, #contact .contactform form .formrow {
    color:#fff;
    border-color:rgba(255,255,255,0.5);
}

#contact .contactform form .text::placeholder, #contact .contactform form .formrow::placeholder {
    color:rgba(255, 255, 255, 0.70);
}

#contact .mainlink {
    background-color:#618070;
    color:#fff;
}

#contact .mainlink:hover {
    background-color:#468062;
}

#contact .info a {
    color:#618070;
}

#contact .info a span {
    transition:all .2s;
}

/* #region Custom: Menu */

.menu {
    overflow: hidden;
    max-width: 1200px;
}

.noclip {
    overflow: visible;
}

.menu .menubox {
    display: none;
}

.noclip .menubox {
    display: flex;
}

.menu .minilink {
    color: #fff;
    font-size: 3rem;
    display: none;
    cursor: pointer;
}

.menu .miniclose {
    color: #fff;
    font-size: 3rem;
    position: fixed;
    top: 1.875rem;
    right: 1.875rem;
    z-index: 10;
    display: none;
}

.menu .mainmenu {
    font-size: 1.125rem;
    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 0.9375rem;
}

.menu .toplink {
    font-size: 1.125rem;
    font-weight: 600;
    transition: all 0.3s;
    text-align: center;
    text-transform: uppercase;
    color: #fff;
    padding: 0.625rem 0.9375rem;
}

.menu .toplink:hover {
    background-color: #468062;
    border-color: #468062;
    color: #fff;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.25);
}

.menu .sublink {
    font-size: 1.125rem;
    font-weight: 600;
    transition: all 0.3s;
    text-align: center;
    text-transform: uppercase;
    color: #fff;
    padding: 0.625rem 0.9375rem;
    border: 0.125rem solid #fff;
    cursor: pointer;
    white-space: nowrap;
}

.menu .sublink:hover {
    background-color: #468062;
    border-color: #468062;
    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: 5rem;
    opacity: 0;
    transition: all 0.3s;
    pointer-events: none;
    width: 18.75rem;
}

.menu .mainmenu:hover .lower {
    opacity: 1;
    height: auto;
    top: 2.6875rem;
}

.scrolled nav .mainmenu .lower {
    top: 3.75rem;
}

.menu .mainmenu:hover .lower {
    pointer-events: all;
    opacity: 1;
    background-color: #fff;
}

.menu .mainmenu .lower .active {
    background-color: #fff;
    border-bottom: 0 !important;
    color: #fff;
}

.menu .mainmenu .lower a {
    color: #222;
    font-size: 1rem;
    padding: 0.625rem 0.9375rem;
    font-weight: 600;
    opacity: 0.33;
    display: block;
    text-align: left;
}

.menu .mainmenu .lower a:not(:last-of-type) {
    border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}

.menu .mainmenu .lower a:hover {
    opacity: 1;
    border-bottom-color: rgba(0, 0, 0, 0.05);
    color: #468062;
}

.header .menu .contact {
    color: #0b0b0b;
    font-size: 1.125rem;
    font-weight: bold;
    padding: 0.625rem 0.9375rem;
    padding-top: 0.9375rem;
    margin-left: 3.75rem;
    transition: all 0.4s;
}

.header .menu .contact:hover {
    box-shadow: 0 0.1875rem 0.3125rem rgba(0, 0, 0, 0.25);
    background-color: #fff;
    color: #618070;
    padding-top: 0.625rem;
}

.header .menu .contact div {
    height: 0;
    width: 100%;
    background-color: #618070;
    opacity: 0;
    margin-top: 0.5rem;
    transition: all 0.4s;
}

.header .menu .contact:hover div {
    height: 0.3125rem;
    opacity: 1;
}

.menu .smallclose {
    display: none;
}

.header .smalltoggle {
    display: none;
    width: 3.125rem;
    position: relative;
    opacity: 0.9;
}

.header .smalltoggle:hover {
    opacity: 1;
}

.header .smalltoggle div {
    height: 0.3125rem;
}

.header .smalltoggle .line-1 {
    width: 100%;
    margin-bottom: 0.625rem;
    background-color: #fff;
    transition: 0.3s all;
}

.header .smalltoggle:hover .line-1 {
    width: 85%;
    margin-right: 15%;
    background-color: #697865;
}

.header .smalltoggle .line-2 {
    width: 60%;
    margin-left: 40%;
    margin-bottom: 0.625rem;
    background-color: #fff;
    transition: 0.3s all;
}

.header .smalltoggle:hover .line-2 {
    margin-right: 40%;
    margin-left: 0;
    background-color: #697865;
}

.header .smalltoggle .line-3 {
    width: 85%;
    margin-left: 15%;
    background-color: #fff;
    transition: 0.3s all;
}

.header .smalltoggle:hover .line-3 {
    width: 100%;
    margin-left: 0;
    background-color: #697865;
}

.header .navbar {
    width: 100%;
    height: 0;
}

.header .smallmenu {
    display: none;
    color: #fff;
    font-size: 2.625rem;
    font-weight: bold;
    cursor: pointer;
}

.header .smallopen {
    display: none;
}

/* 1000 Breakpoint */
.m1000 .mainmenu,
.m1000 .toplink,
.m1000 .sublink {
    font-size: 0.8rem;
    margin-left: 0;
}

.m1000 .mainmenu:hover .lower {
    top: 2.25rem;
}

/* 660 Breakpoint - Mobile Menu */
.m660 {
    flex-grow: 0;
}

.m660 .menubox {
    position: fixed;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #3d5a4d;
    z-index: 9;
    opacity: 0;
    pointer-events: none;
    padding: 5rem 1.5rem 2rem;
    overflow-y: auto;
    gap: 0;
    transform: translateY(-1rem);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.m660 .menubox .mainmenu,
.m660 .menubox .toplink,
.m660 .menubox .sublink {
    width: 100%;
    text-align: center;
    height: auto;
    font-size: 1.125rem;
    display: block;
    letter-spacing: 0.1em;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.m660 .menubox .mainmenu .top,
.m660 .menubox .toplink {
    display: block;
    height: auto;
    padding: 1.25rem 1rem;
    color: #fff;
    font-weight: 600;
    background-color: transparent;
    cursor: pointer;
}

.m660 .menubox .mainmenu .top:hover,
.m660 .menubox .toplink:hover {
    background-color: rgba(255, 255, 255, 0.08);
    color: #c5dbc9;
}

.m660 .menubox .mainmenu:hover .top {
    background-color: transparent;
    color: #fff;
}

.m660 .menubox .mainmenu .lower {
    position: static;
    width: 100%;
    height: auto;
    top: 0;
    opacity: 1;
    display: none;
    background-color: rgba(0, 0, 0, 0.2);
    padding: 0.25rem 0;
}

.m660 .menubox .mainmenu .lower a {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.9375rem;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
    opacity: 1;
    text-align: center;
    border-bottom: none;
    letter-spacing: 0.05em;
}

.m660 .menubox .mainmenu .lower a:not(:last-of-type) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.m660 .menubox .mainmenu .lower a:hover {
    background-color: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.m660 .menubox .mainmenu:hover .lower {
    opacity: 1;
    height: auto;
    top: 0;
}

.m660 .menubox .sublink {
    margin-top: 1.5rem;
    padding: 1rem 2rem;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-radius: 0.25rem;
    background-color: transparent;
    font-weight: 600;
}

.m660 .menubox .sublink:hover {
    background-color: #fff;
    color: #3d5a4d;
    border-color: #fff;
}

.m660 .minilink {
    display: block;
    color: #618070;
}

.m660 .minilink:hover {
    color: #468062;
}

.menu .miniclose {
    color: #fff;
    font-size: 2rem;
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 10;
    display: none;
    cursor: pointer;
    width: 2.75rem;
    height: 2.75rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.1);
    transition: background-color 0.2s ease;
}

.menu .miniclose:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

.popped .menubox {
    opacity: 1;
    pointer-events: all;
    transform: translateY(0);
    height: 100vh;
}

.popped .menupop .top {
    background-color: rgba(255, 255, 255, 0.1);
    color: #c5dbc9;
}

.popped .miniclose {
    display: flex;
}

/* #endregion */

/* #region Custom: Stock Page */

.stock h2 {
    line-height: 3rem;
    text-transform: uppercase;
}

.stock .item {
    font-weight: 600;
    text-align: center;
    border: 2px solid #ccc;
}

.stock .item span {
    font-size: 3rem;
    display: block;
    line-height: 3rem;
}

.stock .tradingview-widget-container {
    width: 100%;
}

.stock .tradingview-widget-copyright {
    font-size: 0.75rem;
    text-align: center;
    padding: 0.5rem 0;
}

.m1100 .stock .item span {
    font-size: 2rem;
    line-height: 2rem;
}

.m800 .stock .itemflex .item {
    width: 100%;
}

.m800 .stock .itemflex .item:not(:last-of-type) {
    margin-bottom: 1.875rem;
}

.m800 .stock .itemflex .item span {
    font-size: 3rem;
    line-height: 3rem;
}

.m800 .stock .itemflex {
    display: block;
}

/* #endregion */

/* #region Custom: Management Page */

.management .item {
    width: 48%;
    flex-shrink: 0;
}

.management .item:nth-child(4n+1),
.management .item:nth-child(4n+4) {
    border: 2px solid rgba(0, 0, 0, 0.05);
    background-color: #fff;
    align-self: flex-start;
}

.management .item h4 {
    text-transform: uppercase;
}

.management .item p {
    padding-left: 0.1875rem;
}

.m900 .management .item {
    width: 100%;
    border: none;
}

.m900 .management .item:nth-child(odd) {
    border: 2px solid rgba(0, 0, 0, 0.05);
    background-color: #fff;
}

.m900 .management .item .text {
    width: 100%;
    border-right: 0;
    padding-right: 0;
    padding-bottom: 1.875rem;
}

/* #endregion */

/* #region Custom: Advisors Page */

.advisors .item {
    width: 48%;
    flex-shrink: 0;
}

.advisors .item:nth-child(4n+1),
.advisors .item:nth-child(4n+4) {
    border: 2px solid rgba(0, 0, 0, 0.05);
    background-color: #fff;
    align-self: flex-start;
}

.advisors .item h4 {
    text-transform: uppercase;
}

.advisors .item p {
    padding-left: 0.1875rem;
}

.m900 .advisors .item {
    width: 100%;
    border: none;
}

.m900 .advisors .item:nth-child(odd) {
    border: 2px solid rgba(0, 0, 0, 0.05);
    background-color: #fff;
}

.m900 .advisors .item .text {
    width: 100%;
    border-right: 0;
    padding-right: 0;
    padding-bottom: 1.875rem;
}

/* #endregion */

/* #region Custom: Corporate Page */

.corporate .item {
    background-color: #fff;
}

.corporate .item .info {
    border: 2px solid #eee;
}

.corporate .item .map iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.m800 .corporate .item {
    flex-direction: column-reverse;
}

.m800 .corporate .itemtwo {
    flex-direction: column;
}

.m800 .corporate .item .info {
    width: 100%;
}

.m800 .corporate .item .map {
    height: 300px;
}

/* #endregion */

/* #region Custom: Archive Page */

.archive .newschive .newsbox {
    border: 1px solid #bbb;
    transition: all 0.2s;
    width: 100%;
}

.archive .newschive .newsbox:not(:last-of-type) {
    margin-bottom: 1.875rem;
}

.archive .newschive .newsbox:hover {
    border-color: #888;
}

.archive .newschive .newsbox .newslink {
    padding: 1.875rem;
    color: #222;
}

.archive .newschive .newsbox .newslink:hover {
    text-decoration: underline;
}

.archive .newschive .newsbox .newslink span {
    font-weight: 600;
    display: block;
}

.archive .newschive .newsbox .pdflink {
    margin: 1.875rem;
    padding: 0.625rem 1.25rem;
    color: #222;
    border: 2px solid #222;
    text-align: center;
    font-size: 1rem;
    font-weight: bold;
}

.archive .newschive .newsbox .pdflink span {
    display: block;
    font-size: 2.5rem;
}

.archive .newschive .newsbox .nopdf {
    pointer-events: none;
    opacity: 0.1;
}

.archive .year .yearlink {
    padding: 0.3125rem 0.625rem;
    border: 3px solid #bbb;
    color: #bbb;
    font-size: 0.9rem;
    font-weight: bold;
    width: 5rem;
    text-align: center;
    margin-bottom: 0.625rem;
}

.archive .year .yearlink:hover {
    color: #222;
    border-color: #222;
}

.archive .year .yearlink:not(:last-of-type) {
    margin-right: 0.625rem;
}

.archive .year .active {
    background-color: #618070;
    border-color: #618070;
    color: #fff;
    pointer-events: none;
}

.archive .newschive .missing {
    padding: 1.25rem;
    margin-top: 1.25rem;
    border: 2px dashed #ccc;
    color: #ccc;
    font-weight: 600;
}

.m500 .archive .newschive .newsbox {
    display: block;
    padding: 0.625rem;
}

.m500 .archive .newschive .newsbox .newslink {
    padding: 0;
}

.m500 .archive .newschive .newsbox .pdflink {
    margin: 0;
    width: 100%;
    margin-top: 0.9375rem;
}

.m500 .archive .year {
    justify-content: space-between;
}

.m500 .archive .year .yearlink {
    width: 48%;
    margin-right: 0 !important;
}

/* #endregion */

/* #region Custom: Contact Page */

.contact .info a {
    font-size: 1.6rem;
    line-height: 2rem;
    transition: all 0.2s;
}

.contact .info a span {
    margin-right: 0.3125rem;
    transition: all 0.2s;
}

.contact .info a:hover span {
    margin-right: 0.9375rem;
}

.contact .contactform {
    margin: 1.875rem;
    margin-bottom: -1.875rem;
    z-index: 9;
    padding: 1.875rem;
}

.contact form .text {
    width: 50%;
    padding: 0.9375rem;
    background-color: transparent;
    border: 1px solid rgba(255, 255, 255, 0.5);
    color: #fff;
    font-weight: 600;
    font-size: 1.25rem;
    border-radius: 0.3125rem;
}

.contact form .formrow {
    width: 100%;
    padding: 0.9375rem;
    background-color: transparent;
    border: 1px solid rgba(255, 255, 255, 0.5);
    color: #fff;
    font-weight: 600;
    min-height: 200px;
    font-size: 1.25rem;
    border-radius: 0.3125rem;
}

.contact form .text::placeholder,
.contact form .formrow::placeholder {
    color: rgba(255, 255, 255, 0.7);
}

.contact form button {
    width: 100%;
    text-align: center;
}

.contact iframe {
    flex-grow: 1;
    border: 0;
    width: 100%;
    height: 25vw;
    min-height: 400px;
}

.thanks {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(97, 128, 112, 0.95);
    z-index: 100;
    opacity: 0;
    pointer-events: none;
    transition: all 0.5s;
    color: #fff;
    text-align: center;
    margin-bottom: 0 !important;
}

.thanks-on {
    opacity: 1;
    pointer-events: all;
}

.thanks span {
    display: block;
    font-size: 3rem;
    line-height: 3rem;
    font-weight: 400;
    margin-bottom: 0.9375rem;
    text-shadow: 0 0.1875rem 0.3125rem rgba(0, 0, 0, 0.25);
}

.thanks .close {
    font-size: 1.125rem;
    background-color: #eee;
    color: #618070;
    padding: 0.9375rem 6.25rem;
    font-weight: 500;
    display: inline-block;
    border-radius: 0.3125rem;
    transition: all 0.3s;
    cursor: pointer;
    opacity: 0;
}

.thanks .close:hover {
    background-color: #fff;
    color: #222;
    box-shadow: 0 0.1875rem 0.3125rem rgba(0, 0, 0, 0.25);
}

.hidedown {
    margin-top: 1.25rem;
    opacity: 0;
}

.closedown {
    margin-top: 1.25rem;
    opacity: 1 !important;
}

.m1000 .contact form .sider {
    display: block;
}

.m1000 .contact form .text {
    width: 100%;
}

.m1000 .contact form .text:first-of-type {
    margin-bottom: 1.875rem;
}

.m800 .contact .contflex {
    display: block;
}

.m800 .contact .contactform {
    width: 100%;
    margin: 0;
}

.m800 .contact .office {
    width: 100%;
}

.m800 .contact .info a {
    font-size: 1.3rem;
}

/* #endregion */

/* #region Custom: Gallery Page */

.gallery .imgbox {
    background-size: contain;
    background-repeat: no-repeat;
}

.gallery .imgbox .imgcover {
    opacity: 0;
}

.gallery .imgbox:hover {
    transform: scale(1.1);
}

.gallcat .gallhead {
    padding: 1.25rem;
    font-size: 2rem;
    border-bottom: 1px solid #ccc;
    font-weight: 500;
}

.g800 .imgbox {
    width: 45%;
    height: 20vw;
}

.g600 .imgbox {
    width: 100%;
    height: 35vw;
}

/* #endregion */

/* #region Custom: Presentation Page */

.presentation .pdfembed {
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: 80vh;
}

@media (max-aspect-ratio: 1/1) {
    .presentation .pdfembed {
        aspect-ratio: 9 / 16;
    }
}

/* #endregion */

/* #region Custom: Subscribe Page */

.subscribe .popup-notification {
    position: fixed;
    top: 1.25rem;
    right: 1.25rem;
    padding: 0.9375rem 1.25rem;
    border-radius: 0.3125rem;
    color: white;
    font-weight: bold;
    z-index: 10000;
    max-width: 18.75rem;
    box-shadow: 0 0.25rem 0.375rem rgba(0, 0, 0, 0.1);
    opacity: 0;
    transform: translateX(100%);
    transition: all 0.3s ease;
}

.subscribe .popup-notification.show {
    opacity: 1;
    transform: translateX(0);
}

.subscribe .popup-notification.success {
    background-color: #618070;
    border-left: 0.3125rem solid #468062;
}

.subscribe .popup-notification.error {
    background-color: #f44336;
    border-left: 0.3125rem solid #da190b;
}

.subscribe .popup-notification .close-btn {
    float: right;
    margin-left: 0.9375rem;
    color: white;
    font-weight: bold;
    font-size: 1.125rem;
    cursor: pointer;
    line-height: 1;
}

.subscribe .popup-notification .close-btn:hover {
    opacity: 0.8;
}

.subscribe .form-loading {
    opacity: 0.6;
    pointer-events: none;
}

.subscribe .checkbox-group {
    margin-top: 0.625rem;
    display: flex;
    align-items: center;
}

.subscribe .checkbox-label {
    display: flex !important;
    align-items: center;
    cursor: pointer;
    font-weight: normal;
}

.subscribe .checkbox-label input[type="checkbox"] {
    display: none;
}

.subscribe .custom-checkbox {
    display: block;
    width: 2rem;
    height: 2rem;
    border: 2px solid #618070;
    border-radius: 0.25rem;
    margin-right: 0.625rem;
    background: #fff;
    position: relative;
    transition: border-color 0.2s;
    flex-shrink: 0;
}

.subscribe .checkbox-label input[type="checkbox"]:checked + .custom-checkbox {
    background: #618070;
    border-color: #468062;
}

.subscribe .custom-checkbox:after {
    content: '';
    position: absolute;
    left: 0.6rem;
    top: 0.1rem;
    width: 0.5rem;
    height: 1rem;
    border: solid white;
    border-width: 0 3px 3px 0;
    opacity: 0;
    transform: rotate(45deg);
    transition: opacity 0.2s;
}

.subscribe .checkbox-label input[type="checkbox"]:checked + .custom-checkbox:after {
    opacity: 1;
}

.subscribe form {
    box-shadow: 0 0 2rem rgba(0, 0, 0, 0.1);
    border-radius: 1rem;
    background-color: #fff;
}

.subscribe .popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 10001;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.subscribe .popup-overlay.show {
    opacity: 1;
    visibility: visible;
}

.subscribe .popup-content {
    background: white;
    padding: 1.875rem;
    border-radius: 0.625rem;
    max-width: 37.5rem;
    width: 90%;
    text-align: center;
    box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.3);
    transform: scale(0.8) translateY(1.25rem);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.subscribe .popup-overlay.show .popup-content {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.subscribe .popup-buttons {
    display: flex;
    gap: 0.9375rem;
    justify-content: center;
}

.subscribe .popup-buttons button {
    padding: 0.75rem 1.5625rem;
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    font-weight: bold;
    transition: background-color 0.3s ease;
    min-width: 6.25rem;
}

.subscribe .btn-cancel {
    background-color: #6c757d;
    color: white;
}

.subscribe .btn-cancel:hover {
    background-color: #5a6268;
}

.subscribe .btn-confirm {
    background-color: #dc3545;
    color: white;
}

.subscribe .btn-confirm:hover {
    background-color: #c82333;
}

.subscribe .btn-unsubscribe {
    background-color: #dc3545;
    border-color: #dc3545;
    color: white;
}

.subscribe .btn-unsubscribe:hover {
    background-color: transparent;
    color: #dc3545;
}

.subscribe .icon {
    font-size: 4rem;
    color: #618070;
}

.subscribe .iconflex {
    gap: 2rem;
}

.m500 .subscribe .iconflex {
    flex-direction: column;
    text-align: center;
}

/* #endregion */

/* #region Custom: Subpop */

#subpop {
    background-color: rgba(108, 136, 114, 0.97);
}

#subpop .subinner form button {
    background-color: #618070;
}

#subpop .subinner form button:hover {
    background-color: #468062;
}

/* #endregion */


/* #region INSP REDESIGN */

/* Font override — beats global * { font-family: 'Red Hat Text' } */
body * { font-family: 'DM Sans', 'Red Hat Text', sans-serif; }

/* ── ROOT VARIABLES ── */
:root {
    --gold:          #BD954F;
    --gold-dark:     #A5813E;
    --gold-light:    #D4AA72;
    --navy:          #111317;
    --navy-mid:      #1A2530;
    --navy-deep:     #0D1219;
    --navy-darkest:  #080C10;
    --steel:         #4C6676;
    --steel-light:   #6A8A9A;
    --cream:         #F6F7F7;
    --cream-mid:     #E8EAEB;
    --cream-dark:    #D4D8DA;
    --text-dark:     #1C1C1C;
    --text-mid:      #3A4A5A;
    --text-muted:    #4A5568;
    --text-faint:    #7A8A9A;
    --border-light:  #DDE0E2;
    --max-w:         1400px;
}

/* ── TOPBAR ── */
.topbar {
    background: var(--navy);
    color: #9CAEBB;
    font-size: 0.6875rem;
    padding: 0.4375rem 0;
    font-family: 'DM Sans', sans-serif;
}
.topbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.topbar-left  { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.ticker       { display: flex; flex-wrap: wrap; gap: 1.125rem; align-items: center; }
.ticker span  { color: #6E8A9C; }
.ticker span em { color: var(--gold); font-style: normal; font-weight: 600; }
.ticker-last  { color: #6E8A9C; }
.ticker-last b { color: #D8DDE3; font-weight: 600; }
.divider-v    { width: 0.0625rem; height: 0.875rem; background: rgba(255,255,255,0.12); }
.metals       { display: flex; gap: 1.125rem; flex-wrap: wrap; }
.metals span  { color: #6A8A9A; }
.metals span b { color: #D8DDE3; font-weight: 500; }
.topbar-right { display: flex; gap: 0.75rem; align-items: center; }
.social-top   { display: flex; gap: 0.625rem; }
.social-top a {
    color: #4E6A7A;
    text-decoration: none;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    transition: color 0.2s;
}
.social-top a:hover { color: var(--gold); }

/* ── CONTAINER ── */
.container {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 0 3rem;
}

/* ── NAV ── */
.nav-wrap {
    background: #fff;
    border-bottom: 0.0625rem solid var(--border-light);
    position: sticky;
    top: 0;
    z-index: 200;
    transition: box-shadow 0.3s;
}
.nav-wrap--scrolled {
    box-shadow: 0 0.25rem 1.25rem rgba(0,0,0,0.08);
}
.nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 4.75rem;
    gap: 1.5rem;
}
.nav-inner .logo {
    flex-shrink: 0;
    text-decoration: none;
    display: flex;
    align-items: center;
}
.nav-inner .logo img {
    height: 2.75rem;
    width: auto;
    display: block;
}
.nav-links {
    display: flex;
    gap: 0.125rem;
    align-items: center;
    flex-grow: 1;
    flex-wrap: nowrap;
}
.nav-links a,
.nav-dropdown-toggle {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--text-mid);
    letter-spacing: 0.05em;
    text-decoration: none;
    padding: 0.4375rem 1rem;
    border-radius: 0.25rem;
    text-transform: uppercase;
    transition: background 0.18s, color 0.18s;
    cursor: pointer;
    display: block;
    white-space: nowrap;
}
.nav-links a:hover,
.nav-dropdown-toggle:hover { background: var(--cream); color: var(--navy); }
.nav-links a.active,
.nav-dropdown-toggle.active { color: var(--gold); }
.nav-cta {
    flex-shrink: 0;
    background: var(--gold);
    color: #fff;
    border: none;
    padding: 0.625rem 1.375rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    border-radius: 0.25rem;
    cursor: pointer;
    font-family: 'DM Sans', sans-serif;
    transition: background 0.2s;
    white-space: nowrap;
}
.nav-cta:hover { background: var(--gold-dark); color: #fff; }

/* Dropdown */
.nav-dropdown {
    position: relative;
}
.nav-dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    min-width: 12.5rem;
    background: #fff;
    border: 0.0625rem solid var(--border-light);
    border-radius: 0.375rem;
    box-shadow: 0 0.5rem 1.5rem rgba(0,0,0,0.09);
    z-index: 100;
    padding: 0.375rem 0;
}
.nav-dropdown:hover .nav-dropdown-menu {
    display: block;
}
.nav-dropdown-menu a {
    display: block;
    padding: 0.5rem 1rem;
    font-size: 0.75rem;
    color: var(--text-mid);
    text-decoration: none;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    border-radius: 0;
    transition: background 0.15s, color 0.15s;
}
.nav-dropdown-menu a:hover { background: var(--cream); color: var(--navy); }

/* Hamburger */
.nav-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 0.3125rem;
    width: 2rem;
    height: 2rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
}
.nav-hamburger span {
    display: block;
    height: 0.125rem;
    background: var(--navy);
    border-radius: 1px;
    transition: all 0.25s;
}
.nav-hamburger--open span:nth-child(1) { transform: translateY(0.4375rem) rotate(45deg); }
.nav-hamburger--open span:nth-child(2) { opacity: 0; }
.nav-hamburger--open span:nth-child(3) { transform: translateY(-0.4375rem) rotate(-45deg); }

/* Shared section utilities */
.section-tag {
    font-size: 0.625rem;
    font-weight: 600;
    color: var(--gold);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}
.section-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.375rem;
    font-weight: 700;
    color: var(--navy);
    line-height: 1.15;
    margin-bottom: 1rem;
    text-transform: none;
}
.section-rule {
    width: 3rem;
    height: 0.125rem;
    background: var(--gold);
    margin-bottom: 1.75rem;
}
.btn-gold {
    display: inline-block;
    background: var(--gold);
    color: #fff;
    border: none;
    padding: 0.8125rem 1.75rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 0.25rem;
    cursor: pointer;
    font-family: 'DM Sans', sans-serif;
    text-decoration: none;
    transition: background 0.2s;
}
.btn-gold:hover { background: var(--gold-dark); color: #fff; }
.btn-outline-gold {
    display: inline-block;
    background: transparent;
    color: var(--gold);
    border: 0.0625rem solid rgba(189,149,79,0.5);
    padding: 0.8125rem 1.75rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 0.25rem;
    cursor: pointer;
    font-family: 'DM Sans', sans-serif;
    text-decoration: none;
    transition: all 0.2s;
}
.btn-outline-gold:hover { background: rgba(189,149,79,0.1); color: var(--gold); }

/* ── HERO ── */
.hero {
    background: linear-gradient(155deg, #0F1316 0%, #182028 45%, #1C2D3E 100%);
    min-height: 38.75rem;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.hero-bg-radial {
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse at 72% 44%, rgba(189,149,79,0.09) 0%, transparent 55%),
        radial-gradient(ellipse at 18% 78%, rgba(76,102,118,0.16) 0%, transparent 48%);
    pointer-events: none;
}
.hero-ring {
    position: absolute;
    border-radius: 50%;
    border: 0.0625rem solid rgba(189,149,79,0.1);
    pointer-events: none;
}
.hero-ring-1 { width: 37.5rem; height: 37.5rem; right: -5rem; top: -6.25rem; }
.hero-ring-2 { width: 26.25rem; height: 26.25rem; right: 3.75rem; top: 1.25rem; border-color: rgba(189,149,79,0.06); }
.hero-ring-3 { width: 16.25rem; height: 16.25rem; right: 10.625rem; top: 6.875rem; border-color: rgba(189,149,79,0.04); }
.hero-main {
    flex: 1;
    position: relative;
    z-index: 2;
    padding: 5.5rem 0 6.25rem;
}
.hero-content { max-width: 43.75rem; }
.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(189,149,79,0.14);
    border: 0.0625rem solid rgba(189,149,79,0.28);
    color: var(--gold);
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    padding: 0.375rem 1rem;
    border-radius: 1.25rem;
    margin-bottom: 1.625rem;
}
.hero h1 {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2.25rem, 5vw, 3.625rem);
    font-weight: 900;
    color: #fff;
    line-height: 1.08;
    margin-bottom: 0.875rem;
    letter-spacing: -0.01em;
    text-transform: none;
}
.hero h1 em { color: var(--gold); font-style: normal; }
.hero-sub {
    font-size: 0.8125rem;
    color: #6A8A9A;
    line-height: 1.7;
    max-width: 33.75rem;
    margin-bottom: 2.25rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 500;
}
.hero-btns { display: flex; gap: 0.875rem; flex-wrap: wrap; }
.hero-stats-bar {
    position: relative;
    z-index: 2;
    background: rgba(255,255,255,0.045);
    border-top: 0.0625rem solid rgba(255,255,255,0.09);
}
.hero-stats-bar .container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding-top: 0;
    padding-bottom: 0;
}
.hero-stat {
    padding: 1.375rem 0;
    border-right: 0.0625rem solid rgba(255,255,255,0.07);
    padding-left: 2rem;
}
.hero-stat:first-child { padding-left: 0; }
.hero-stat:last-child  { border-right: none; }
.hero-stat-val {
    font-family: 'Playfair Display', serif;
    font-size: 1.875rem;
    color: var(--gold);
    font-weight: 700;
    line-height: 1;
}
.hero-stat-lab {
    font-size: 0.625rem;
    color: #3E5E6E;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: 0.3125rem;
}

/* ── ABOUT ── */
.about { background: #fff; padding: 5.5rem 0; }
.about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4.5rem;
    align-items: start;
}
.about-body {
    font-size: 0.9375rem;
    color: var(--text-muted);
    line-height: 1.85;
    margin-bottom: 1.125rem;
}
.about-body p { margin-bottom: 1rem; }
.about-pills { display: flex; flex-wrap: wrap; gap: 0.5625rem; margin-top: 1.75rem; }
.pill {
    background: var(--cream);
    border: 0.0625rem solid var(--cream-dark);
    color: var(--text-mid);
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    padding: 0.4375rem 1rem;
    border-radius: 0.1875rem;
}
.map-placeholder {
    background: var(--cream-mid);
    border: 0.0625rem solid var(--cream-dark);
    border-radius: 0.625rem;
    min-height: 23.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0.875rem;
    color: var(--text-faint);
    position: relative;
    overflow: hidden;
}
.map-label {
    font-size: 0.6875rem;
    font-weight: 600;
    color: #586A7A;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}
.map-sublabel { font-size: 0.6875rem; color: #8FAAB8; }
.map-dot {
    width: 0.6875rem; height: 0.6875rem;
    background: var(--gold);
    border-radius: 50%;
    position: absolute;
    box-shadow: 0 0 0 0.3125rem rgba(189,149,79,0.22);
}
.map-dot-blue {
    background: var(--steel);
    box-shadow: 0 0 0 0.3125rem rgba(76,102,118,0.22);
}

/* ── HIGHLIGHTS STRIP ── */
.highlights { background: var(--navy); padding: 2.5rem 0; }
.highlights .container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}
.highlight-item {
    padding: 1.375rem 2.25rem;
    border-right: 0.0625rem solid rgba(255,255,255,0.08);
}
.highlight-item:first-child { padding-left: 0; }
.highlight-item:last-child  { border-right: none; }
.highlight-num {
    font-family: 'Playfair Display', serif;
    font-size: 2.125rem;
    color: var(--gold);
    font-weight: 700;
    line-height: 1;
}
.highlight-unit { font-size: 0.875rem; color: var(--gold); font-weight: 400; }
.highlight-lab {
    font-size: 0.625rem;
    color: #4E6A7A;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: 0.3125rem;
}

/* ── FLAGSHIP PROJECT ── */
.project { background: var(--cream); padding: 5.5rem 0; }
.project-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
    margin-top: 1rem;
}
.project-tag {
    font-size: 0.625rem;
    font-weight: 600;
    color: var(--gold);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    margin-bottom: 0.375rem;
}
.project-name {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 0.5rem;
}
.project-loc {
    font-size: 0.6875rem;
    color: var(--text-faint);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    margin-bottom: 1.375rem;
    padding-bottom: 1.375rem;
    border-bottom: 0.0625rem solid var(--border-light);
}
.project-body {
    font-size: 0.875rem;
    color: var(--text-muted);
    line-height: 1.85;
    margin-bottom: 1.75rem;
}
.highlights-heading {
    font-size: 0.625rem;
    font-weight: 600;
    color: var(--text-faint);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 0.875rem;
}
.highlights-list { list-style: none; margin-bottom: 2rem; padding: 0; }
.highlights-list li {
    font-size: 0.8125rem;
    color: var(--text-mid);
    padding: 0.5625rem 0 0.5625rem 1.25rem;
    border-bottom: 0.0625rem solid var(--cream-mid);
    position: relative;
    line-height: 1.5;
}
.highlights-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 0.4375rem; height: 0.4375rem;
    background: var(--gold);
    border-radius: 50%;
}
.stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-bottom: 2rem;
}
.stat-card {
    background: #fff;
    border: 0.0625rem solid var(--border-light);
    border-left: 0.1875rem solid var(--gold);
    border-radius: 0.375rem;
    padding: 1rem 1.125rem;
}
.stat-val {
    font-family: 'Playfair Display', serif;
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--navy);
    line-height: 1;
}
.stat-lab {
    font-size: 0.625rem;
    color: var(--text-faint);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: 0.25rem;
}
.project-img {
    background: var(--cream-mid);
    border: 0.0625rem solid var(--cream-dark);
    border-radius: 0.625rem;
    min-height: 30rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0.625rem;
    color: #8A9AAA;
    position: relative;
    overflow: hidden;
}
.project-img-label {
    font-size: 0.6875rem;
    color: #8A9AAA;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}
.project-ops-overlay {
    position: absolute;
    bottom: 1.25rem; left: 1.25rem; right: 1.25rem;
    background: rgba(15,19,22,0.85);
    backdrop-filter: blur(0.25rem);
    border-radius: 0.375rem;
    padding: 0.875rem 1.125rem;
}
.project-ops-tag {
    font-size: 0.5625rem;
    color: var(--gold);
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    margin-bottom: 0.375rem;
}
.project-ops-body {
    font-size: 0.75rem;
    color: #B0C0CC;
    line-height: 1.6;
}
.view-project-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: transparent;
    color: var(--gold);
    border: 0.0625rem solid rgba(189,149,79,0.4);
    padding: 0.8125rem 1.625rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    border-radius: 0.25rem;
    cursor: pointer;
    font-family: 'DM Sans', sans-serif;
    text-decoration: none;
    transition: background 0.2s;
}
.view-project-btn:hover { background: rgba(189,149,79,0.1); color: var(--gold); }

/* ── OPS ── */
.ops { background: var(--navy); padding: 5rem 0; }
.ops .section-title { color: #E4E8EC; }
.ops-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.375rem;
    margin-top: 2.5rem;
    margin-bottom: 2.25rem;
}
.op-card {
    background: rgba(255,255,255,0.05);
    border: 0.0625rem solid rgba(255,255,255,0.1);
    border-radius: 0.5rem;
    padding: 1.75rem;
}
.op-icon {
    width: 2.375rem; height: 2.375rem;
    background: rgba(189,149,79,0.14);
    border-radius: 0.4375rem;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1.125rem;
}
.op-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #D8DDE3;
    margin-bottom: 0.625rem;
    text-transform: none;
}
.op-body {
    font-size: 0.8125rem;
    color: #4E6A7A;
    line-height: 1.75;
}
.op-body a { color: var(--gold); text-decoration: underline; }

/* ── NEWS ── */
.news { background: #fff; padding: 5.5rem 0; }
.news-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 2.75rem;
    flex-wrap: wrap;
    gap: 1rem;
}
.news-header .section-title { margin-bottom: 0; }
.see-all {
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--gold);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    transition: color 0.2s;
}
.see-all:hover { color: var(--gold-dark); }
.news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.625rem;
}
.news-card {
    background: var(--cream);
    border: 0.0625rem solid var(--border-light);
    border-radius: 0.5rem;
    overflow: hidden;
    transition: border-color 0.2s, transform 0.2s;
}
.news-card:hover { border-color: var(--gold); transform: translateY(-0.125rem); }
.news-card-accent { height: 0.3125rem; }
.accent-gold  { background: var(--gold); }
.accent-steel { background: var(--steel); }
.accent-teal  { background: #2A4A5A; }
.news-card-body { padding: 1.625rem; }
.news-date {
    font-size: 0.625rem;
    color: #8FAAB8;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    margin-bottom: 0.6875rem;
}
.news-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--navy);
    line-height: 1.4;
    margin-bottom: 0.8125rem;
    text-transform: none;
}
.news-title a { color: inherit; text-decoration: none; }
.news-title a:hover { color: var(--gold); }
.news-excerpt {
    font-size: 0.8125rem;
    color: #5A6878;
    line-height: 1.75;
    margin-bottom: 1.125rem;
}
.news-link {
    font-size: 0.625rem;
    font-weight: 600;
    color: var(--gold);
    letter-spacing: 0.09em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s;
}
.news-link:hover { color: var(--gold-dark); }

/* ── SUBSCRIBE ── */
.subscribe { background: var(--navy-mid); padding: 4.5rem 0; text-align: center; }
.subscribe h2 {
    font-family: 'Playfair Display', serif;
    font-size: 2.125rem;
    color: #E4E8EC;
    font-weight: 700;
    margin-bottom: 0.75rem;
    text-transform: none;
}
.subscribe p {
    font-size: 0.875rem;
    color: #4E6A7A;
    max-width: 30rem;
    margin: 0 auto 2.25rem;
    line-height: 1.75;
}
.subscribe-form {
    display: flex;
    gap: 0;
    max-width: 31.25rem;
    margin: 0 auto;
    border-radius: 0.3125rem;
    overflow: hidden;
    border: 0.0625rem solid rgba(255,255,255,0.14);
}
.subscribe-input {
    flex: 1;
    padding: 0.9375rem 1.25rem;
    font-size: 0.875rem;
    background: rgba(255,255,255,0.08);
    border: none;
    border-right: 0.0625rem solid rgba(255,255,255,0.12);
    color: #E4E8EC;
    font-family: 'DM Sans', sans-serif;
    outline: none;
}
.subscribe-input::placeholder { color: #3E5E6E; }
.subscribe-btn {
    background: var(--gold);
    color: #fff;
    border: none;
    padding: 0.9375rem 1.625rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    cursor: pointer;
    font-family: 'DM Sans', sans-serif;
    transition: background 0.2s;
    white-space: nowrap;
}
.subscribe-btn:hover { background: var(--gold-dark); }

/* ── FOOTER ── */
footer {
    background: var(--navy-deep);
    padding: 4.5rem 0 0;
    color: #263E4C;
    font-family: 'DM Sans', sans-serif;
}
.footer-grid {
    display: grid;
    grid-template-columns: 2.2fr 1fr 1fr 1fr 1fr;
    gap: 3rem;
    margin-bottom: 3.5rem;
}
.footer-logo-img {
    max-width: 12.5rem;
    height: auto;
    display: block;
    margin-bottom: 1.125rem;
}
.footer-brand-body {
    font-size: 0.75rem;
    color: #263E4C;
    line-height: 1.85;
    max-width: 18.75rem;
    margin-bottom: 1.5rem;
}
.footer-brand-body p { margin-bottom: 0.5rem; color: #263E4C; }
.footer-ticker {
    margin-top: 1.625rem;
    padding: 1rem 1.125rem;
    background: rgba(255,255,255,0.04);
    border: 0.0625rem solid rgba(255,255,255,0.08);
    border-radius: 0.375rem;
    max-width: 18.75rem;
}
.footer-ticker-label {
    font-size: 0.5625rem;
    color: #243644;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    margin-bottom: 0.625rem;
}
.footer-ticker-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.375rem;
}
.footer-ticker-row:last-child { margin-bottom: 0; }
.ticker-sym { font-size: 0.6875rem; font-weight: 600; color: #4E7888; }
.ticker-val { font-size: 0.6875rem; color: var(--gold); }
.footer-social { display: flex; gap: 0.5rem; margin-top: 1.375rem; }
.footer-social a {
    width: 2.125rem; height: 2.125rem;
    background: rgba(255,255,255,0.06);
    border: 0.0625rem solid rgba(255,255,255,0.1);
    border-radius: 0.25rem;
    display: flex; align-items: center; justify-content: center;
    color: #263E4C;
    font-size: 0.625rem;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 0.04em;
    transition: all 0.2s;
}
.footer-social a:hover {
    background: rgba(189,149,79,0.14);
    border-color: rgba(189,149,79,0.3);
    color: var(--gold);
}
.footer-col-title {
    font-size: 0.5625rem;
    font-weight: 600;
    color: var(--gold);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 1.125rem;
}
.footer-links { list-style: none; padding: 0; }
.footer-links li { margin-bottom: 0.6875rem; }
.footer-links a {
    font-size: 0.8125rem;
    color: #263E4C;
    text-decoration: none;
    transition: color 0.2s;
    line-height: 1;
}
.footer-links a:hover { color: var(--gold); }

/* ── SUBFOOTER ── */
.subfooter {
    background: var(--navy-darkest);
    padding: 1rem 0;
    border-top: 0.0625rem solid rgba(255,255,255,0.05);
}
.subfooter .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.subfooter-left { font-size: 0.6875rem; color: #1C2C38; }
.subfooter-right { display: flex; gap: 1.375rem; }
.subfooter-right a {
    font-size: 0.6875rem;
    color: #1C2C38;
    text-decoration: none;
    transition: color 0.2s;
}
.subfooter-right a:hover { color: var(--gold); }

/* ── CONTENT AREA (inner pages) ── */
.contop {
    background: var(--navy);
    padding: 3rem 0;
}
.contop h1 {
    font-family: 'Playfair Display', serif;
    font-size: 2.5rem;
    font-weight: 700;
    color: #fff;
    text-transform: none;
    line-height: 1.2;
}
.contbox { padding: 3rem 0; }

/* ── RESPONSIVE ── */
@media (max-width: 68.75rem) {
    .footer-grid { grid-template-columns: 1fr 1fr 1fr; }
    .footer-grid > .footer-brand-col { grid-column: 1 / -1; }
}
@media (max-width: 56.25rem) {
    .about-grid, .project-grid { grid-template-columns: 1fr; }
    .news-grid, .ops-grid     { grid-template-columns: 1fr 1fr; }
    .hero-stats-bar .container { grid-template-columns: repeat(2, 1fr); }
    .highlights .container     { grid-template-columns: repeat(2, 1fr); }
    .highlight-item { padding-left: 1rem; border-right: none; border-bottom: 0.0625rem solid rgba(255,255,255,0.08); }
    .highlight-item:last-child { border-bottom: none; }
    .container { padding: 0 1.5rem; }
    .nav-inner { padding: 0 1.5rem; }
}
@media (max-width: 56.25rem) {
    .nav-hamburger { display: flex; }
    .nav-links {
        display: none;
        position: fixed;
        inset: 0;
        top: 4.75rem;
        background: #fff;
        flex-direction: column;
        align-items: stretch;
        padding: 1.5rem;
        z-index: 199;
        overflow-y: auto;
        gap: 0;
    }
    .nav-links.nav-open { display: flex; }
    .nav-links a,
    .nav-dropdown-toggle {
        font-size: 1rem;
        padding: 0.875rem 1rem;
        border-bottom: 0.0625rem solid var(--border-light);
        border-radius: 0;
        text-transform: uppercase;
    }
    .nav-dropdown-menu {
        position: static;
        box-shadow: none;
        border: none;
        border-radius: 0;
        display: block;
        padding: 0 0 0 1rem;
    }
    .nav-cta { display: none; }
}
@media (max-width: 37.5rem) {
    .hero h1 { font-size: 2rem; }
    .section-title { font-size: 1.75rem; }
    .subscribe h2 { font-size: 1.5rem; }
    .news-grid, .ops-grid { grid-template-columns: 1fr; }
    .topbar { display: none; }
    .subscribe-form { flex-direction: column; border-radius: 0.25rem; }
    .subscribe-input { border-right: none; border-bottom: 0.0625rem solid rgba(255,255,255,0.12); border-radius: 0.25rem 0.25rem 0 0; }
    .subscribe-btn { border-radius: 0 0 0.25rem 0.25rem; }
}

/* #endregion */
