/* Modern Golden Connection: letterhead palette and responsive refinements.
   Loaded last so the original template remains easy to maintain. */
:root {
  --primary-color: #317568;
  --primary-color-rgb: 49, 117, 104;
  --secondary-color: #c5a375;
  --secondary-color-rgb: 197, 163, 117;
  --mgc-gold-ink: #806549;
}
/* The template declares these variables on every element. */
* {
  --bg-dark-1: #122d29;
  --bg-dark-1-rgb: 18, 45, 41;
  --bg-dark-2: #1e4039;
  --bg-dark-3: #31574e;
  --heading-font-color: #173e35;
  --body-font-color: #596962;
  --bg-light: #f6f4ef;
  --bg-color-even: #eee9e1;
  --bg-color-odd: #f8f7f3;
}
img { max-width: 100%; }
.row > * { min-width: 0; }
h1, h2, h3, h4, p, footer a { overflow-wrap: break-word; }
.btn-main:not(.btn-line):not(.bg-white) { background-color: var(--secondary-color); color: #122d29; }
.btn-main:not(.btn-line):not(.bg-white):hover { background-color: #d7bea0; color: #122d29; }
.btn-main:focus-visible, a:focus-visible, #menu-btn:focus-visible {
  outline: 3px solid var(--secondary-color);
  outline-offset: 4px;
}
.subtitle { color: var(--mgc-gold-ink); }
.text-light .subtitle { color: #d7bea0; }
header.smaller, header.header-mobile { background: #122d29; }
footer { border-top: 3px solid var(--secondary-color); }
footer .widget h3 { font-size: clamp(20px, 2vw, 28px); line-height: 1.5; }
footer .widget .op-5 { opacity: .8; }
footer .widget a { color: inherit; text-decoration: none; }
footer .widget a:hover { color: #d7bea0; }
.mgc-contact-value { overflow-wrap: anywhere; }
.ms-80px { overflow-wrap: anywhere; }
.mgc-phones a { display: inline-block; white-space: nowrap; }
.subfooter { border-top-color: rgba(170, 140, 107, .3); }
img[src*="icons-red/"] {
  filter: brightness(0) saturate(100%) invert(68%) sepia(28%) saturate(513%) hue-rotate(355deg) brightness(93%) contrast(88%);
}
.sw-text-wrapper h1, .sw-text-wrapper h2 {
  font-size: clamp(32px, 4.65vw, 68px);
  line-height: 1.14;
  letter-spacing: -.035em;
}
.mgc-title-line { display: block; white-space: nowrap; }
.sw-text-wrapper p { max-width: 44ch; font-size: 18px; line-height: 1.7; }
.sw-text-wrapper { min-width: 0; }

@media (max-width: 991px) {
  header .header-col-mid #mainmenu { left: 0; width: 100%; padding-inline: 24px; }
  header.menu-open { overflow-y: auto; }
  #mainmenu li { max-width: 100%; }
  #mainmenu a.menu-item { min-height: 44px; }
  .sw-text-wrapper h1, .sw-text-wrapper h2 { font-size: clamp(28px, 6.2vw, 58px); }
  #extra-wrap { width: min(400px, 100vw); max-width: 100vw; }
  #extra-content { overflow-wrap: anywhere; }
}
@media (max-width: 767px) {
  h1 { font-size: clamp(30px, 8vw, 44px); }
  h2 { font-size: clamp(28px, 7vw, 38px); }
  h3 { font-size: 23px; }
  #subheader h1 { font-size: clamp(30px, 8vw, 44px); }
  section { padding-top: 60px; padding-bottom: 60px; }
  .p-60 { padding: 24px !important; }
  .sw-text-wrapper h1, .sw-text-wrapper h2 {
    font-size: clamp(22px, 7.2vw, 48px);
    line-height: 1.18;
  }
  .sw-text-wrapper p { font-size: 16px; line-height: 1.65; max-width: 42ch; }
  .mh-800 { min-height: 640px; min-height: clamp(620px, 90svh, 780px); }
  .sw-caption { padding: 28px 0 64px; }
  .sw-caption .row { --bs-gutter-x: 24px; }
  .swiper-button-next, .swiper-button-prev { top: auto; bottom: 22px; margin-top: 0; }
  .swiper-button-next { right: 20px; }
  .swiper-button-prev { left: 20px; }
  .swiper-inner { background-position: 60% center !important; }
  footer { padding-top: 48px; }
  footer h2 { font-size: 32px; }
  footer .widget h3 { font-size: clamp(18px, 5.2vw, 23px); }
  footer .widget h3 a { overflow-wrap: anywhere; }
  footer .mgc-phones span { display: none; }
  footer .mgc-phones a { display: block; }
  footer .d-flex > img { width: 40px !important; flex-shrink: 0; }
  .subfooter { padding-block: 20px; font-size: 14px; }
  .subfooter .social-icons { margin-top: 10px; }
  #extra-content { padding: 24px; }
}
@media (max-width: 374px) {
  .container { padding-left: 16px; padding-right: 16px; }
  .sw-text-wrapper p { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .animated, .wow { animation: none !important; opacity: 1 !important; }
  html { scroll-behavior: auto; }
}

/* Visible letterhead gold accents, paired with the teal foundation. */
.sw-text-wrapper .mgc-title-line { color: #d7bea0; }
.subtitle { border-left: 3px solid var(--secondary-color); padding-left: 12px; }
.subtitle:empty { display: none; }
.subtitle.id-color { color: var(--mgc-gold-ink); }
a.btn-main.btn-line { border: 2px solid var(--secondary-color); }
a.btn-main.btn-line:hover { background: var(--secondary-color); color: #122d29; }
header:not(.header-light) a.btn-main.btn-line { color: #d7bea0; }
header:not(.header-light) a.btn-main.btn-line:hover { color: #122d29; }
.bg-color.text-light .btn-line { color: #f0ddc2; }
.bg-color.text-light .btn-line:hover { color: #122d29; }
.icon_check.bg-color { background: var(--secondary-color); color: #122d29 !important; }
.relative .bg-color.text-center { background: var(--secondary-color); }
.relative .bg-color.text-center, .relative .bg-color.text-center h1 { color: #122d29 !important; }
#section-tracking { border-top: 4px solid var(--secondary-color); border-bottom: 4px solid var(--secondary-color); }
footer { border-top-width: 5px; }
footer h2, footer h5 { color: #d7bea0 !important; }
footer .widget .op-5 { color: #d7bea0; opacity: 1; }
.swiper-button-next, .swiper-button-prev { color: #d7bea0; border-color: var(--secondary-color); }

/* Header logo: share the hero's responsive container alignment. */
header .de-flex {
  min-height: 128px;
  align-items: center;
}
header .de-flex > .de-flex-col:first-child { flex-shrink: 0; }
header #logo a {
  display: flex;
  align-items: center;
  line-height: 0;
}
header div#logo img {
  width: 240px;
  max-width: 240px;
  height: auto;
  margin: 0;
}
@media (max-width: 767px) {
  header .de-flex { min-height: 100px; }
  header div#logo img { width: 180px; max-width: 180px; }
}
/* Match the template's hero gutters at narrow screen sizes. */
@media (min-width: 480px) and (max-width: 767px) {
  header.header-mobile .container { padding-left: 30px; padding-right: 30px; }
}
@media (max-width: 374px) {
  header.header-mobile .container { padding-left: 16px; padding-right: 16px; }
}

@media (min-width: 768px) and (max-width: 992px) {
  header.header-mobile .container { padding-left: 12px; padding-right: 12px; }
}

/* Scroll direction classes used by the template: scroll-down and nav-up. */
@media (min-width: 993px) {
  header { transition: transform .3s ease; }
  header.scroll-down {
    margin-top: 0 !important;
    transform: translateY(-100%) !important;
    visibility: hidden;
    pointer-events: none;
  }
  header.nav-up, header:not(.smaller):not(.scroll-down) {
    margin-top: 0 !important;
    transform: translateY(0) !important;
    visibility: visible;
    pointer-events: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  header { transition: none; }
}

/* Hero navigation: larger touch targets above decorative slider layers. */
.swiper .swiper-button-next, .swiper .swiper-button-prev {
  width: 44px;
  height: 44px;
  z-index: 20;
  pointer-events: auto;
  cursor: pointer;
  touch-action: manipulation;
}
.swiper .sw-overlay,
.swiper [class*="gradient-edge-"] { pointer-events: none; }

/* Mobile hero contrast and header/menu layout. */
@media (max-width: 992px) {
  .swiper .sw-overlay {
    opacity: 1 !important;
    background: rgba(8, 28, 25, .68);
    z-index: 1;
    pointer-events: none;
  }
  .swiper .sw-caption { z-index: 2; }
  .sw-text-wrapper p { color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.45); }
  header.header-mobile {
    position: fixed;
    top: 0;
    margin-top: 0 !important;
    transition: transform .25s ease;
  }
  header.header-mobile.scroll-down:not(.menu-open) {
    transform: translateY(-100%) !important;
    visibility: hidden;
    pointer-events: none;
  }
  header.header-mobile.nav-up,
  header.header-mobile.menu-open {
    transform: translateY(0) !important;
    visibility: visible;
    pointer-events: auto;
  }
  header.header-mobile .de-flex {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    min-height: 100px;
  }
  header.header-mobile .de-flex > .de-flex-col:first-child {
    grid-column: 1; grid-row: 1;
    justify-content: flex-start;
  }
  header.header-mobile .de-flex > .de-flex-col:last-child {
    grid-column: 2; grid-row: 1;
  }
  header.header-mobile .header-col-mid { display: none; }
  header.header-mobile.menu-open .header-col-mid {
    display: block;
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    padding-top: 12px;
  }
  header.header-mobile .header-col-mid #mainmenu {
    position: static;
    float: none;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    transform: none;
  }
  header.header-mobile.menu-open #mainmenu {
    display: block;
    opacity: 1;
    visibility: visible;
  }
  header.header-mobile #mainmenu > li { width: 100%; margin: 0; }
  header.header-mobile #mainmenu a.menu-item { color: #fff; min-height: 44px; }
  header.header-mobile.menu-open {
    max-height: 100dvh;
    overflow-y: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  header.header-mobile { transition: none; }
}
