/*
 * Final production corrections.
 * Loaded after every page stylesheet so fixed-width reference artboards do not
 * create white desktop gutters in WordPress.
 */
:root {
  --dorgen-desktop-max: 1600px;
  --dorgen-desktop-gutter: clamp(28px, 4vw, 72px);
  --dorgen-inner-navy: #001027;
}

html,
body,
body.dorgen-authority-theme {
  width: 100%;
  max-width: none;
  margin: 0;
  overflow-x: clip;
}

.dorgen-site-content,
.dorgen-site-content > .elementor,
.dorgen-site-content > main,
body.dorgen-authority-theme > header,
body.dorgen-authority-theme > footer,
body.dorgen-authority-theme main,
body.dorgen-authority-theme .elementor-section,
body.dorgen-authority-theme .elementor-top-section {
  width: 100%;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-shadow: none !important;
}

body.dorgen-authority-theme .elementor-section > .elementor-container,
body.dorgen-authority-theme .elementor-top-section > .elementor-container {
  width: 100%;
  max-width: none !important;
}

/* Header backgrounds span the viewport. Navigation content stays readable. */
body.dorgen-authority-theme > header .nav {
  width: min(calc(100% - (var(--dorgen-desktop-gutter) * 2)), var(--dorgen-desktop-max)) !important;
  max-width: var(--dorgen-desktop-max) !important;
  margin: 0 auto !important;
}

/* Keep the approved light homepage identity while removing the outer artboard. */
.home-page > header.home-header {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.home-page main,
.home-page footer {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
}

/* Use the About-page navy identity on every inner page. */
body.dorgen-authority-theme:not(.home-page) > header.inner-header {
  width: 100% !important;
  max-width: none !important;
  height: 78px !important;
  margin: 0 !important;
  background: var(--dorgen-inner-navy) !important;
  border-bottom: 3px solid #b18125 !important;
  backdrop-filter: none !important;
}

body.admin-bar.dorgen-authority-theme:not(.home-page) > header.inner-header {
  top: 32px;
}

.inner-header .inner-nav {
  min-height: 78px;
  gap: clamp(14px, 1.8vw, 30px) !important;
}

.inner-header .inner-brand {
  min-width: clamp(250px, 24vw, 345px) !important;
  padding: 0 !important;
  background: transparent !important;
}

.inner-header .inner-brand::before,
.inner-header .inner-brand::after {
  display: none !important;
}

.inner-header .inner-logo,
.inner-header .about-logo {
  display: block;
  width: auto !important;
  height: 64px !important;
  max-width: clamp(255px, 22vw, 325px) !important;
  max-height: none !important;
  object-fit: contain;
  object-position: left center;
  background: transparent !important;
  image-rendering: auto;
}

.inner-header .links {
  margin-left: auto;
  gap: clamp(12px, 1.35vw, 23px) !important;
}

.inner-header .links a {
  color: #fff !important;
  font-size: clamp(.59rem, .55vw, .72rem) !important;
  font-weight: 600 !important;
  white-space: nowrap;
}

.inner-header .links a:hover,
.inner-header .links a.active,
.inner-header .links a[aria-current='page'] {
  color: #e0b34f !important;
}

.inner-header .btn-primary {
  flex: 0 0 auto;
  padding: 11px 15px !important;
  background: #b18125 !important;
  border-color: #b18125 !important;
  color: #fff !important;
  font-size: .65rem !important;
  white-space: nowrap;
}

.inner-header .menu {
  color: #fff !important;
}

/* Desktop homepage hero proportions from the approved reference. */
@media (min-width: 1024px) {
  .home-hero {
    width: 100%;
    min-height: clamp(470px, 34vw, 560px) !important;
    grid-template-columns: minmax(0, 60%) minmax(0, 40%) !important;
  }

  .home-hero-copy {
    padding-top: clamp(58px, 5vw, 88px) !important;
    padding-right: clamp(34px, 3.5vw, 64px) !important;
    padding-bottom: clamp(48px, 4vw, 72px) !important;
    padding-left: max(var(--dorgen-desktop-gutter), calc((100vw - var(--dorgen-desktop-max)) / 2 + var(--dorgen-desktop-gutter))) !important;
  }

  .home-hero-copy h1 {
    max-width: 850px !important;
    margin-bottom: 18px !important;
    font-size: clamp(2.65rem, 2.85vw, 3.15rem) !important;
    line-height: 1.045 !important;
  }

  .home-hero-copy p {
    max-width: 650px !important;
    font-size: clamp(.82rem, .78vw, .98rem) !important;
  }

  .home-hero-image {
    min-height: inherit;
  }

  .home-hero-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 50% 18% !important;
  }

  .home-role-rail,
  .home-audience,
  .home-transform,
  .home-assurance {
    width: 100%;
  }

  /* Full-width inner-page hero backgrounds, controlled copy scale. */
  .about-hero,
  .speaker-hero,
  .consult-hero,
  .res-hero,
  .mind-hero,
  .media-hero,
  .contact-hero,
  .ref-hero {
    width: 100% !important;
    max-width: none !important;
    min-height: clamp(390px, 28vw, 470px) !important;
  }

  .about-hero,
  .speaker-hero,
  .consult-hero,
  .res-hero,
  .mind-hero,
  .media-hero,
  .contact-hero,
  .ref-hero {
    grid-template-columns: minmax(0, 56%) minmax(0, 44%) !important;
  }

  .about-copy,
  .speaker-hero-copy,
  .consult-copy,
  .res-copy,
  .mind-copy,
  .media-copy,
  .contact-copy,
  .ref-hero .copy {
    padding-left: max(var(--dorgen-desktop-gutter), calc((100vw - var(--dorgen-desktop-max)) / 2 + var(--dorgen-desktop-gutter))) !important;
    padding-right: clamp(34px, 3.5vw, 66px) !important;
  }

  .about-copy h1,
  .speaker-hero-copy h1,
  .consult-copy h1,
  .res-copy h1,
  .mind-copy h1,
  .media-copy h1,
  .contact-copy h1,
  .ref-hero .copy h1 {
    max-width: 860px !important;
    font-size: clamp(2.55rem, 3vw, 3.7rem) !important;
    line-height: 1.035 !important;
  }

  .about-image,
  .speaker-hero-image,
  .consult-art,
  .res-art,
  .mind-art,
  .media-art,
  .contact-art,
  .ref-hero .image {
    min-height: inherit;
  }

  .about-image img,
  .speaker-hero-image img,
  .consult-art img,
  .res-art img,
  .mind-art img,
  .media-art img,
  .contact-art img,
  .ref-hero .image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  /* Standard reference sections use screen-aware inner spacing. */
  .about-section,
  .speaker-section,
  .consult-section,
  .res-section,
  .mind-section,
  .media-sec,
  .contact-sec,
  .ref-section {
    padding-left: max(var(--dorgen-desktop-gutter), calc((100vw - var(--dorgen-desktop-max)) / 2 + var(--dorgen-desktop-gutter))) !important;
    padding-right: max(var(--dorgen-desktop-gutter), calc((100vw - var(--dorgen-desktop-max)) / 2 + var(--dorgen-desktop-gutter))) !important;
  }

  /* Generic support, legal, archive and detail heroes. */
  .support-page .hero,
  .legal-page .hero,
  .page-hero,
  .dorgen-archive {
    width: 100% !important;
    max-width: none !important;
    padding-left: max(var(--dorgen-desktop-gutter), calc((100vw - var(--dorgen-desktop-max)) / 2 + var(--dorgen-desktop-gutter))) !important;
    padding-right: max(var(--dorgen-desktop-gutter), calc((100vw - var(--dorgen-desktop-max)) / 2 + var(--dorgen-desktop-gutter))) !important;
  }
}

/* Full-width detail pages with readable inner content. */
@media (min-width: 1024px) {
  .detail-main,
  .detail-footer {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: max(var(--dorgen-desktop-gutter), calc((100vw - var(--dorgen-desktop-max)) / 2 + var(--dorgen-desktop-gutter))) !important;
    padding-right: max(var(--dorgen-desktop-gutter), calc((100vw - var(--dorgen-desktop-max)) / 2 + var(--dorgen-desktop-gutter))) !important;
  }

  .detail-main > h1,
  .detail-main > p,
  .detail-main > .detail-card {
    max-width: 980px;
  }
}

/* Footer spans the viewport while its columns remain aligned. */
body.dorgen-authority-theme > footer {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.dorgen-authority-theme > footer .footer-top,
body.dorgen-authority-theme > footer .footer-bottom {
  width: min(calc(100% - (var(--dorgen-desktop-gutter) * 2)), var(--dorgen-desktop-max));
  max-width: var(--dorgen-desktop-max);
  margin-left: auto;
  margin-right: auto;
}

body.dorgen-authority-theme > footer .footer-top {
  grid-template-columns: minmax(245px, 1.3fr) repeat(4, minmax(145px, .72fr));
}

.footer-contact a,
.footer-address a,
.developer-credit {
  color: inherit;
  text-decoration: none;
}

.footer-contact a:hover,
.footer-address a:hover,
.developer-credit:hover {
  color: #e0b34f;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.dorgen-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 15px;
}

.dorgen-social-links a {
  color: #e0b34f;
  font-size: .7rem;
  font-weight: 600;
}

.footer-contact,
.footer-address {
  margin-top: 13px;
  color: #bac8cb;
  font-size: .72rem;
  line-height: 1.7;
}

@media (max-width: 1100px) {
  .inner-header .inner-brand {
    min-width: 230px !important;
  }
  .inner-header .inner-logo,
  .inner-header .about-logo {
    width: auto !important;
    height: 58px !important;
    max-width: 235px !important;
  }
  .inner-header .links {
    gap: 10px !important;
  }
  body.dorgen-authority-theme > footer .footer-top {
    grid-template-columns: 1.2fr repeat(2, .8fr);
  }
}

@media (max-width: 850px) {
  body.admin-bar.dorgen-authority-theme:not(.home-page) > header.inner-header {
    top: 46px;
  }
  body.dorgen-authority-theme:not(.home-page) > header.inner-header,
  .inner-header .inner-nav {
    height: 70px !important;
    min-height: 70px !important;
  }
  .inner-header .inner-brand {
    min-width: 205px !important;
  }
  .inner-header .inner-logo,
  .inner-header .about-logo {
    width: auto !important;
    height: 50px !important;
    max-width: 205px !important;
    max-height: none !important;
  }
  .inner-header .links.open {
    top: 70px !important;
    width: 100vw !important;
    left: 50% !important;
    transform: translateX(-50%);
    background: var(--dorgen-inner-navy) !important;
    border-bottom: 3px solid #b18125 !important;
  }
  .inner-header .links.open a {
    color: #fff !important;
    font-size: .78rem !important;
  }
  body.dorgen-authority-theme > footer .footer-top {
    grid-template-columns: 1fr 1fr;
  }
}

/* Responsive stability corrections. */
.consult-middle > *,
.mind-intro > *,
.mind-feature > *,
.host-grid > *,
.featured > *,
.ref-media > *,
.ref-two > *,
.consult-form-wrap > * {
  min-width: 0;
  max-width: 100%;
}

.consult-middle img,
.mind-intro img,
.mind-feature img,
.host-grid img,
.featured img,
.ref-media img {
  max-width: 100%;
}

@media (max-width: 850px) {
  .consult-middle,
  .mind-intro,
  .mind-feature,
  .host-grid,
  .featured,
  .ref-media,
  .ref-two,
  .consult-form-wrap {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  /* Reference strips use a desktop full-bleed margin of 46px. Mobile
     sections use 23px padding, so match the bleed to the mobile gutter. */
  .ref-page .ref-feature-strip[style] {
    width: calc(100% + 46px) !important;
    margin-left: -23px !important;
    margin-right: -23px !important;
  }

  .inner-header .menu {
    min-width: 44px;
    min-height: 44px;
    display: inline-grid;
    place-items: center;
  }

  .inner-header .links.open a,
  .home-header .links.open a {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  .contact-form input,
  .contact-form select,
  .contact-form textarea,
  .speaker-form input,
  .speaker-form select,
  .speaker-form textarea,
  .consult-form input,
  .consult-form select,
  .consult-form textarea,
  .ref-form input,
  .ref-form select,
  .ref-form textarea,
  #mediaForm input,
  #mediaForm select,
  #mediaForm textarea,
  #subscribeForm input,
  #mindSubscribe input {
    font-size: 16px !important;
  }
}

@media (max-width: 560px) {
  :root {
    --dorgen-desktop-gutter: 20px;
  }

  body.dorgen-authority-theme > header .nav {
    width: calc(100% - 30px) !important;
  }

  body.dorgen-authority-theme > footer .footer-top,
  body.dorgen-authority-theme > footer .footer-bottom {
    width: calc(100% - 40px);
  }

  body.dorgen-authority-theme > footer .footer-top {
    grid-template-columns: 1fr;
  }

  .consult-middle,
  .mind-intro,
  .mind-feature,
  .host-grid,
  .featured {
    width: 100%;
  }
}

/* Phone header correction for Terms, Privacy and Accessibility pages.
   Their legacy page CSS used generic .nav and .links selectors, which caused
   the logo, drawer button and opened menu to wrap into scattered rows. */
@media (max-width: 850px) {
  body.legal-page > header.inner-header .inner-nav,
  body.support-page > header.inner-header .inner-nav {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    min-height: 70px !important;
    height: 70px !important;
    padding: 0 !important;
    position: relative !important;
  }

  body.legal-page > header.inner-header .inner-brand,
  body.support-page > header.inner-header .inner-brand {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 56px) !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.legal-page > header.inner-header .inner-logo,
  body.legal-page > header.inner-header .about-logo,
  body.support-page > header.inner-header .inner-logo,
  body.support-page > header.inner-header .about-logo {
    display: block !important;
    width: auto !important;
    max-width: min(205px, 100%) !important;
    height: 50px !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  body.legal-page > header.inner-header .links,
  body.support-page > header.inner-header .links {
    display: none !important;
    margin: 0 !important;
  }

  body.legal-page > header.inner-header .links.open,
  body.support-page > header.inner-header .links.open {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    position: absolute !important;
    top: 70px !important;
    left: 50% !important;
    width: 100vw !important;
    max-height: calc(100vh - 70px) !important;
    margin: 0 !important;
    padding: 14px 20px 18px !important;
    overflow-y: auto !important;
    transform: translateX(-50%) !important;
    background: var(--dorgen-inner-navy) !important;
    border-bottom: 3px solid #b18125 !important;
    box-shadow: 0 14px 28px rgba(0, 16, 39, .22) !important;
    z-index: 9999 !important;
  }

  body.legal-page > header.inner-header .links.open a,
  body.support-page > header.inner-header .links.open a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 9px 4px !important;
    font-size: .78rem !important;
    line-height: 1.25 !important;
    white-space: normal !important;
  }

  body.legal-page > header.inner-header .btn,
  body.support-page > header.inner-header .btn {
    display: none !important;
  }

  body.legal-page > header.inner-header .menu,
  body.support-page > header.inner-header .menu {
    display: inline-grid !important;
    flex: 0 0 44px !important;
    place-items: center !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 0 0 auto !important;
    padding: 0 !important;
    position: static !important;
    border: 0 !important;
    background: transparent !important;
    color: #fff !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
  }
}

@media (max-width: 420px) {
  body.legal-page > header.inner-header .inner-logo,
  body.legal-page > header.inner-header .about-logo,
  body.support-page > header.inner-header .inner-logo,
  body.support-page > header.inner-header .about-logo {
    max-width: min(184px, 100%) !important;
    height: 46px !important;
  }
}
