
:root{
  --ink:#06111b;
  --ink-soft:#0a1723;
  --ivory:#f4efe6;
  --paper:#fbfaf7;
  --champagne:#b9975b;
  --champagne-soft:#d7c09b;
  --text:#10202b;
  --muted:#69747d;
  --line:#d9d2c5;
  --white:#fff;
  --max:1180px;
  --serif:Georgia,"Times New Roman",serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:var(--sans);
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--champagne)}
img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 42px));margin:auto}

header{
  position:sticky;top:0;z-index:50;
  background:rgba(6,17,27,.975);
  border-bottom:1px solid rgba(185,151,91,.16);
  backdrop-filter:blur(10px);
}
.nav{
  min-height:78px;display:flex;align-items:center;
  justify-content:space-between;gap:28px
}
.logo{
  font:500 32px/1 var(--serif);
  letter-spacing:.035em;color:#fff
}
.logo span{color:var(--champagne-soft)}
nav{display:flex;align-items:center;gap:24px;font-size:12px;letter-spacing:.03em;color:#e7ebee}
nav a{opacity:.88}
nav a:hover{color:var(--champagne-soft);opacity:1}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:11px 18px;
  border:1px solid var(--champagne);
  background:transparent;color:inherit;
  letter-spacing:.035em;font-size:12px;
  transition:.2s ease;cursor:pointer
}
.btn:hover{transform:translateY(-1px);background:rgba(185,151,91,.08)}
.btn.fill{background:var(--champagne);color:var(--ink);border-color:var(--champagne)}
.mobile-menu{display:none}

.hero{
  background:var(--ink);color:#fff;min-height:720px;
  display:flex;align-items:center;position:relative;overflow:hidden
}
.hero .container{padding:130px 0;position:relative;z-index:2}
.hero:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(6,17,27,.99) 0%,rgba(6,17,27,.91) 48%,rgba(6,17,27,.53) 100%)
}
.hero-bg{
  position:absolute;inset:0;
  background:url("../images/exco8-preview.png") center/cover no-repeat;
  opacity:.20;filter:saturate(.45) contrast(.95)
}
.kicker,.eyebrow{
  text-transform:uppercase;letter-spacing:.18em;
  font-size:10px;color:var(--champagne-soft);font-weight:700
}
h1,h2,h3,h4{
  font-family:var(--serif);font-weight:500;
  line-height:1.08;letter-spacing:-.01em
}
h1{font-size:clamp(54px,7.5vw,96px);max-width:900px;margin:18px 0 26px}
h2{font-size:clamp(38px,5vw,62px);margin:0 0 20px}
h3{font-size:29px;margin:0 0 12px}
h4{font-size:22px;margin:0 0 8px}
.lead{font-size:18px;max-width:710px;color:#d9e0e5;line-height:1.75}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.hero-rule{
  margin-top:78px;padding-top:18px;
  border-top:1px solid rgba(255,255,255,.14);
  font-size:10px;letter-spacing:.21em;text-transform:uppercase;color:#aeb9c1
}

section{padding:110px 0}
.dark{background:var(--ink);color:#fff}
.ivory{background:var(--ivory)}
.center{text-align:center}
.narrow{max-width:760px;margin:auto}
.rule{height:1px;background:var(--line);margin:42px 0}
.statement{font-family:var(--serif);font-size:clamp(34px,4vw,54px);line-height:1.16}
.muted{color:var(--muted)}

.grid{display:grid;gap:22px}
.grid2{grid-template-columns:repeat(2,1fr)}
.grid3{grid-template-columns:repeat(3,1fr)}
.grid4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--line);padding:32px}
.dark .card{background:#0a1824;border-color:#263a48}
.card p{margin-bottom:0}
.card .eyebrow{margin-bottom:16px}
.number{font:500 27px var(--serif);color:var(--champagne-soft);display:block;margin-bottom:10px}

.editorial-split{display:grid;grid-template-columns:.82fr 1.18fr;gap:70px;align-items:start}
.review-steps{
  display:grid;grid-template-columns:repeat(2,1fr);
  border-top:1px solid #2b4455;border-left:1px solid #2b4455
}
.review-step{padding:28px;border-right:1px solid #2b4455;border-bottom:1px solid #2b4455}
.review-step p{color:#c5ced4;margin-bottom:0}
.quote{font:500 46px/1.18 var(--serif);color:var(--champagne-soft);margin-top:48px}

.qualify{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:40px}
.qualify .card h3{font-size:25px}
.checklist{list-style:none;padding:0;margin:0}
.checklist li{padding:13px 0;border-bottom:1px solid var(--line)}
.checklist li:before{content:"—";color:var(--champagne);margin-right:12px}

.membership-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:end}
.memberships{margin-top:48px;border-top:1px solid var(--line)}
.member{
  display:grid;grid-template-columns:1fr 1fr 1.3fr;
  gap:30px;align-items:start;padding:35px 0;border-bottom:1px solid var(--line)
}
.member.featured{
  background:var(--ink);color:#fff;padding:35px 30px;
  margin:0 -30px;border-bottom:none
}
.member .price{font:500 34px var(--serif);white-space:nowrap}
.member .price small{font:12px var(--sans);color:var(--muted)}
.member.featured .price small,.member.featured .muted{color:#bfc8ce}
.member ul{margin:0;padding-left:18px}
.member li{margin:7px 0}
.tag{
  display:inline-block;border:1px solid var(--champagne);
  color:var(--champagne-soft);padding:5px 9px;
  font-size:9px;text-transform:uppercase;letter-spacing:.14em;margin-bottom:12px
}

.panel{border:1px solid var(--line);padding:30px;background:#fff}
.confidential{background:var(--ink-soft);color:#fff}
.confidential p{color:#c8d0d5}

.page-hero{background:var(--ink);color:#fff;padding:120px 0 105px}
.page-hero h1{font-size:clamp(54px,7vw,86px);max-width:900px}
.page-hero .lead{max-width:760px}

.form-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}
.form{background:#fff;padding:34px;border:1px solid var(--line)}
label{
  display:block;font-size:10px;text-transform:uppercase;
  letter-spacing:.12em;font-weight:700;margin:15px 0 7px;color:#43505a
}
input,select,textarea{
  width:100%;padding:14px;border:1px solid #cfc8bb;background:#fff;font:inherit
}
textarea{min-height:150px;resize:vertical}
.form button{margin-top:20px;color:var(--ink)}

.article-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.article{background:#fff;border:1px solid var(--line)}
.article-img{
  height:185px;background:url("../images/exco8-preview.png") center/cover;
  filter:saturate(.45)
}
.article-body{padding:25px}
.article h3{font-size:25px}
.article p{font-size:14px;color:var(--muted)}

.service-standard{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
.service-standard .card{padding:26px}
.service-standard h3{font-size:24px}
.smallprint{font-size:12px;color:var(--muted);line-height:1.65}

.notice{padding:18px 20px;border-left:2px solid var(--champagne);background:#f0e8da}

footer{background:#040b11;color:#bdc6cd;padding:54px 0;font-size:12px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:35px}
.footer-links{display:grid;gap:9px}
.fine{font-size:10px;color:#7c8992}

@media(max-width:950px){
  nav{display:none}
  .mobile-menu{display:block;background:none;border:1px solid #324757;color:#fff;padding:9px 12px}
  .editorial-split,.membership-intro,.form-wrap,.footer-grid{grid-template-columns:1fr}
  .grid4{grid-template-columns:repeat(2,1fr)}
  .grid3{grid-template-columns:1fr 1fr}
  .article-list{grid-template-columns:1fr 1fr}
  .member{grid-template-columns:1fr 1fr}
  .member>div:last-child{grid-column:1/-1}
  .service-standard{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:650px){
  .container{width:min(var(--max),calc(100% - 28px))}
  section{padding:76px 0}
  .hero{min-height:640px}
  .hero .container{padding:90px 0}
  h1{font-size:50px}
  .grid2,.grid3,.grid4,.qualify,.review-steps,.article-list,.member,.service-standard{grid-template-columns:1fr}
  .member>div:last-child{grid-column:auto}
  .member.featured{margin:0 -14px;padding:30px 14px}
  .hero-rule{margin-top:52px}
  .nav{min-height:68px}
  .logo{font-size:28px}
}


/* Joomla integration */
.site-main > .com-content-article,
.site-main > .blog,
.site-main > .com-contact {
  width: 100%;
}
.item-page > .page-header,
.com-content-article > .page-header { display:none; }
.item-page > .icons,
.com-content-article > .icons { display:none; }

.primary-nav .mod-menu {
  display:flex; align-items:center; gap:24px;
  margin:0; padding:0; list-style:none;
}
.primary-nav .mod-menu > li { list-style:none; }
.primary-nav .mod-menu a {
  color:#e7ebee; font-size:12px; letter-spacing:.03em; opacity:.9;
}
.primary-nav .mod-menu a:hover,
.primary-nav .mod-menu .active > a { color:var(--champagne-soft); }

.primary-nav .mod-menu > li:last-child > a {
  display:inline-flex; min-height:44px; align-items:center;
  padding:10px 17px; border:1px solid var(--champagne);
  color:#fff;
}
.skip-link {
  position:absolute; left:-9999px; top:0;
  background:#fff; color:#000; z-index:9999; padding:10px;
}
.skip-link:focus { left:10px; top:10px; }
.announcement { background:#0a1723; color:#dce2e6; font-size:12px; padding:8px 0; }
.site-footer { background:#040b11; color:#bdc6cd; padding:54px 0; font-size:12px; }
.site-footer .mod-menu { list-style:none; padding:0; margin:0; display:grid; gap:9px; }
.site-footer .mod-menu a { color:#bdc6cd; }
.site-main .system-message-container { width:min(var(--max),calc(100% - 42px)); margin:20px auto; }

/* Joomla category/blog styling for Executive Briefing */
.blog {
  width:min(1120px,calc(100% - 80px));
  margin:0 auto;
  padding:90px 0;
}
.blog .page-header {
  text-align:center;
  margin:0 auto 48px;
}
.blog .page-header h1 {
  font-size:clamp(42px,5vw,68px);
  margin-left:auto;
  margin-right:auto;
}
.blog-items {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}
.blog-item {
  background:#fff;
  border:1px solid var(--line);
  padding:24px;
}
.blog-item h2 { font-size:28px; }
.blog-item .article-info { font-size:11px; color:var(--muted); }
.blog-item .readmore .btn { color:var(--ink); }
.com-content-article__body { width:100%; }

/* Joomla native Contacts form — intentionally restrained */
.com-contact { background:var(--paper); }
.com-contact .contact { width:min(var(--max),calc(100% - 42px)); margin:0 auto; padding:90px 0; }
.com-contact .page-header h1,
.com-contact .contact-name { font-size:clamp(42px,5vw,64px); }
.com-contact .contact-form {
  max-width:760px;
  margin:30px auto 0;
  background:#fff;
  border:1px solid var(--line);
  padding:36px;
}

/* Keep the useful contact intro, remove Joomla's duplicated Miscellaneous Information labels. */
.com-contact .exco8-hide-misc-heading,
.com-contact > h2:has(+ .com-contact__miscinfo),
.com-contact > h3:has(+ .com-contact__miscinfo) {
  display:none;
}
.com-contact .com-contact__miscinfo {
  max-width:760px;
  margin:0 auto 34px;
}
.com-contact .com-contact__miscinfo dl,
.com-contact .com-contact__miscinfo dd {
  margin:0;
}
.com-contact .com-contact__miscinfo dt {
  display:none;
}

/* Centre Joomla's Contact Form heading along with the form itself. */
.com-contact > h2:has(+ .contact-form),
.com-contact > h3:has(+ .contact-form),
.com-contact 
.com-contact fieldset { border:0; margin:0; padding:0; }
.com-contact legend { font:500 28px var(--serif); margin-bottom:20px; }
.com-contact .control-group { margin-bottom:18px; }
.com-contact .control-label label {
  display:block; margin:0 0 7px; color:#43505a;
  font-size:10px; text-transform:uppercase; letter-spacing:.12em; font-weight:700;
}
.com-contact .controls input[type="text"],
.com-contact .controls input[type="email"],
.com-contact .controls textarea {
  width:100%; padding:14px; border:1px solid #cfc8bb; background:#fff; font:inherit;
}
.com-contact .controls textarea { min-height:180px; }
.com-contact button[type="submit"] {
  min-height:44px; padding:11px 18px; border:1px solid var(--champagne);
  background:var(--champagne); color:var(--ink); font-size:12px;
  letter-spacing:.035em; cursor:pointer;
}
.com-contact .form-check { display:flex; gap:10px; align-items:flex-start; }
.com-contact .form-check input { width:auto; }

/* Pagination */
.pagination { display:flex; gap:8px; list-style:none; padding:0; }
.pagination a,.pagination span { padding:8px 12px; border:1px solid var(--line); }

/* Search / generic Joomla forms */
.form-control, .form-select {
  width:100%; padding:12px 14px; border:1px solid #cfc8bb; background:#fff; font:inherit;
}

@media(max-width:950px){
  .primary-nav { display:none; position:absolute; top:68px; left:0; right:0; background:var(--ink); padding:20px; }
  .primary-nav.is-open { display:block; }
  .primary-nav .mod-menu { display:grid; gap:12px; }
  .blog-items { grid-template-columns:1fr 1fr; }
}
@media(max-width:650px){
  .blog {
    width:calc(100% - 32px);
    padding:64px 0;
  }
  .blog .page-header { margin-bottom:34px; }
  .blog-items { grid-template-columns:1fr; gap:20px; }
  .blog-item { padding:22px; }
  .com-contact .contact-form { padding:24px; }
}

/* ==========================================================
   EXCO 8 navigation — clean child-menu dropdowns
   Joomla's collapsible arrows are removed by the mod_menu override.
   ========================================================== */
.primary-nav .mod-menu > li {
  position: relative;
}

/* Child menu foundation */
.primary-nav .mod-menu li > .mod-menu__sub {
  list-style: none;
  margin: 0;
  padding: 10px 0;
}

/* First-level desktop dropdown */
.primary-nav .mod-menu > li > .mod-menu__sub {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  transform: translate(-50%, 8px);
  min-width: 245px;
  max-width: min(330px, calc(100vw - 32px));
  background: #071521;
  border: 1px solid rgba(185,151,91,.32);
  box-shadow: 0 18px 45px rgba(0,0,0,.30);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index: 100;
}

/* Hover bridge avoids losing the dropdown crossing the small gap. */
.primary-nav .mod-menu > li > .mod-menu__sub::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -17px;
  height: 17px;
}

/* Desktop: show on hover or keyboard focus. */
.primary-nav .mod-menu > li:hover > .mod-menu__sub,
.primary-nav .mod-menu > li:focus-within > .mod-menu__sub {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.primary-nav .mod-menu__sub > li {
  position: relative;
  display: block;
  margin: 0;
}

.primary-nav .mod-menu__sub > li > a,
.primary-nav .mod-menu__sub > li > span {
  display: block;
  padding: 11px 18px;
  color: #e7ebee;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .025em;
  white-space: normal;
  opacity: .93;
}

.primary-nav .mod-menu__sub > li > a:hover,
.primary-nav .mod-menu__sub > li > a:focus,
.primary-nav .mod-menu__sub > li.active > a,
.primary-nav .mod-menu__sub > li.current > a {
  background: rgba(185,151,91,.09);
  color: var(--champagne-soft);
}

.primary-nav .mod-menu__sub > li + li {
  border-top: 1px solid rgba(255,255,255,.055);
}

/* Deeper nested menus fly out to the right on desktop. */
.primary-nav .mod-menu__sub li > .mod-menu__sub {
  position: absolute;
  left: calc(100% - 4px);
  top: -11px;
  min-width: 235px;
  background: #071521;
  border: 1px solid rgba(185,151,91,.32);
  box-shadow: 0 18px 45px rgba(0,0,0,.30);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index: 101;
}

.primary-nav .mod-menu__sub li:hover > .mod-menu__sub,
.primary-nav .mod-menu__sub li:focus-within > .mod-menu__sub {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}

/* No Joomla toggle buttons/arrows in EXCO 8 navigation. */
.primary-nav .mod-menu__toggle-sub,
.primary-nav .icon-chevron-down {
  display: none !important;
}

@media(max-width:950px){
  .primary-nav {
    max-height: calc(100vh - 68px);
    overflow-y: auto;
  }

  /*
   * On mobile the main Menu button opens the nav.
   * Child items are shown inline beneath their parent, avoiding tiny
   * secondary arrow controls and keeping the parent page clickable.
   */
  .primary-nav .mod-menu li > .mod-menu__sub,
  .primary-nav .mod-menu > li > .mod-menu__sub,
  .primary-nav .mod-menu__sub li > .mod-menu__sub {
    position: static;
    display: block;
    width: auto;
    min-width: 0;
    max-width: none;
    margin: 4px 0 7px 10px;
    padding: 3px 0 3px 12px;
    background: transparent;
    border: 0;
    border-left: 1px solid rgba(185,151,91,.28);
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

  .primary-nav .mod-menu__sub > li > a,
  .primary-nav .mod-menu__sub > li > span {
    padding: 8px 10px;
    font-size: 11px;
  }

  .primary-nav .mod-menu > li:last-child > a {
    width: max-content;
  }
}


/* EXCO 8 contact form refinement */
.com-contact .contact-form .exco8-contact-legend {
  width: 100%;
  margin: 0 0 26px;
  padding: 0 0 14px;
  border: 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(30px, 3vw, 40px);
  font-weight: 500;
  line-height: 1.1;
  text-align: center;
}

.com-contact .contact-form .controls {
  text-align: left;
}

.com-contact .contact-form .control-group:last-child .controls {
  text-align: center;
}


/* EXCO 8 LinkedIn footer link */
.linkedin-footer-link {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  margin-top: 16px;
  color: #e4eaee;
  text-decoration: none;
  transition: transform .18s ease, color .18s ease;
}

.linkedin-footer-link img {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
}

.linkedin-footer-link span {
  display: grid;
  line-height: 1.2;
  font-size: 12px;
  letter-spacing: .03em;
}

.linkedin-footer-link small {
  margin-bottom: 3px;
  color: #8e9aa3;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .13em;
}

.linkedin-footer-link:hover,
.linkedin-footer-link:focus {
  color: var(--champagne-soft);
  transform: translateY(-1px);
}

.linkedin-footer-link:focus-visible {
  outline: 1px solid var(--champagne);
  outline-offset: 5px;
}
