/* =========================================================
   ADVANCED MATRIX — brand theme for Helix Ultimate
   Consolidated, cleaned, refined. Tune via :root variables.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,400;0,500;0,700;0,900;1,400&display=swap');

:root{
  --am-orange:#e56d27;
  --am-orange-dark:#c85a1c;
  --am-teal:#21c2d4;
  --am-teal-dark:#1aa6b6;
  --am-ink:#1c2529;
  --am-muted:#5b6668;
  --am-line:#e7e8ea;
  --am-offwhite:#f7f8f9;
  --am-footer:#12191c;
  --am-font:"Rubik","Helvetica","Tahoma","Geneva","Arial",sans-serif;
}

/* ---------- Typography ---------- */
body{ font-family:var(--am-font); color:var(--am-ink); font-size:1rem; line-height:1.5; }
h1,h2,h3,h4,h5,h6,
.sp-megamenu-parent > li > a,
.sppb-addon-title{ font-family:var(--am-font); line-height:1.2; }
h1{font-size:2.4rem;} h2{font-size:2rem;} h3{font-size:1.7rem;}
h4{font-size:1.4rem;} h5{font-size:1.2rem;} h6{font-size:1.05rem;}
small,cite{font-size:.875rem;}
a{ color:var(--am-orange); }
a:hover,a:focus{ color:var(--am-orange-dark); }

/* ---------- Top bar (hidden) ---------- */
#sp-top-bar{ display:none !important; }

/* ---------- Header: bigger logo, NO shadow / border line ---------- */
#sp-header,
#sp-header.header-sticky{ background:#fff; box-shadow:none !important; border-bottom:0 !important; }
#sp-header .logo{ display:flex; align-items:center; }
#sp-header .logo img{ max-height:96px !important; width:auto; }

/* ---------- Hide hamburger on desktop ---------- */
@media (min-width:992px){
  .sp-menu-toggler,#offcanvas-toggler,.burger-icon,.offcanvas-menu-toggler{ display:none !important; }
}

/* ---------- Main menu ---------- */
.sp-megamenu-parent > li > a{
  color:var(--am-ink); font-weight:500; text-transform:uppercase;
  font-size:.9rem; letter-spacing:.02em;
}
.sp-megamenu-parent > li:hover > a,
.sp-megamenu-parent > li.active > a,
.sp-megamenu-parent > li.current > a{ color:var(--am-orange); }
.sp-megamenu-parent > li > a::after{
  content:""; display:block; height:3px; background:var(--am-orange);
  width:0; transition:width .25s; margin-top:6px;
}
.sp-megamenu-parent > li:hover > a::after,
.sp-megamenu-parent > li.active > a::after{ width:100%; }


/* Portal Login (last item) as a button */
.sp-megamenu-parent > li.sp-menu-item:last-child > a{
  background:var(--am-orange); color:#fff !important;
  padding:8px 18px !important; border-radius:4px; margin-left:10px;
}
.sp-megamenu-parent > li.sp-menu-item:last-child > a:hover{ background:var(--am-orange-dark); color:#fff !important; }
.sp-megamenu-parent > li.sp-menu-item:last-child > a::after{ display:none; }

/* Dropdown submenu — more transparent */
.sp-megamenu-parent .sp-dropdown{
  background:rgba(12,17,20,.68) !important;
  backdrop-filter:blur(4px);
  border:0; border-radius:0 0 4px 4px;
  box-shadow:0 10px 24px rgba(0,0,0,.2);
}
.sp-megamenu-parent .sp-dropdown .sp-dropdown-inner{ background:transparent; border-top:3px solid var(--am-orange); }
.sp-megamenu-parent .sp-dropdown li.sp-menu-item > a{ color:#eef2f3; }
.sp-megamenu-parent .sp-dropdown li.sp-menu-item > a:hover{ color:#fff; background:rgba(229,109,39,.2); }

/* ---------- Forms & buttons ---------- */
input,textarea,select{ border-radius:.1875rem; }
.btn,.sppb-btn-primary,.sppb-btn-default{
  background:var(--am-orange); border-color:var(--am-orange); color:#fff;
  font-family:var(--am-font); font-weight:500; text-transform:uppercase;
  letter-spacing:.02em; border-radius:.1875rem; transition:all .2s;
}
.btn:hover,.sppb-btn-primary:hover,.sppb-btn-default:hover{
  background:var(--am-orange-dark); border-color:var(--am-orange-dark); color:#fff; transform:translateY(-1px);
}
.sppb-btn.btn-teal,.btn.btn-teal{ background:var(--am-teal); border-color:var(--am-teal); color:#fff; }
.sppb-btn.btn-teal:hover,.btn.btn-teal:hover{ background:var(--am-teal-dark); border-color:var(--am-teal-dark); color:#fff; }

/* ---------- Article / page titles (smaller, lighter) ---------- */
.item-page .page-header h1,.item-page .page-header h2,
.article-header h1,.article-header h2,
#sp-component h1.article-title,#sp-title h1,
.com-content-article__title,.com-content-category__title{
  font-size:1.7rem !important; font-weight:400 !important; color:var(--am-ink); margin-bottom:16px;
}

/* ---------- Main body: trimmed padding ---------- */
#sp-main-body{ padding:24px 0 !important; }

/* ---------- Homepage: hide article title, remove top gap ---------- */
.item-page:has(.am-home) .article-header,
.article-details:has(.am-home) .article-header{ display:none !important; }
.item-page:has(.am-home){ padding:0 !important; margin:0 !important; }
#sp-main-body:has(.am-home){ padding-top:0 !important; }
.am-home{ margin-top:0; }

/* ---------- Hero carousel — fixed height ---------- */
.am-hero .sppb-carousel,
.am-hero .sppb-carousel-inner,
.am-hero .sppb-carousel-item,
.am-hero .sppb-carousel-item-inner{ height:480px !important; }
.am-hero .sppb-carousel-item-inner img,
.am-hero .sppb-carousel-item img{ height:480px !important; width:100% !important; object-fit:cover !important; }

/* ---------- Interior sidebar — grouped, bigger bolder headings, gap per group ---------- */
#sp-left .sp-module ul.menu{ list-style:none; margin:0; padding:0; }
#sp-left .sp-module ul.menu > li{ display:block; margin-bottom:34px; }
#sp-left .sp-module ul.menu > li:last-child{ margin-bottom:0; }
#sp-left .sp-module ul.menu > li > a,
#sp-left .sp-module ul.menu > li.parent > a{
  font-family:var(--am-font); font-weight:700; text-transform:uppercase;
  color:var(--am-ink); font-size:1.15rem; letter-spacing:.02em;
  padding:0 0 10px; margin:0 0 12px; display:block; cursor:default;
  border-bottom:2px solid var(--am-orange);
}
#sp-left .sp-module ul.menu ul{ list-style:none; margin:0; padding:0; }
#sp-left .sp-module ul.menu ul li{ margin:0 0 8px; }
#sp-left .sp-module ul.menu ul li a{
  font-weight:400; text-transform:none; color:#4a5459; font-size:.95rem;
  padding:0; display:block; transition:color .2s;
}
#sp-left .sp-module ul.menu ul li a::before{ content:"\203A"; color:var(--am-orange); margin-right:8px; }
#sp-left .sp-module ul.menu ul li a:hover{ color:var(--am-orange); }
#sp-left{ padding-top:30px; }        /* the LEFT SIDEBAR — increase/decrease this number */
#sp-component{ padding-top:30px; }   /* the ARTICLE/content area — this number */

/* ---------- Footer — tight padding, no top line, columns grouped left ---------- */
#sp-footer{ background:var(--am-footer); color:#c7d0d3; padding:20px 0 10px !important; border-top:0 !important; }
#sp-footer .container-inner{
  padding:0 !important;
  display:flex; justify-content:flex-start; gap:44px; flex-wrap:wrap;
}
#sp-footer .sp-module{ flex:0 0 auto; min-width:120px; margin:0; text-align:left; }
#sp-footer .sp-module h5,
#sp-footer .sp-module .sp-module-title{ 
  color:#fff; font-family:var(--am-font); text-transform:uppercase !important;
  font-size:.8rem; font-weight:500; letter-spacing:.05em; margin:0 0 10px; text-align:left !important;
}
#sp-footer .sp-module ul.menu{ list-style:none; margin:0; padding:0; }
#sp-footer .sp-module ul.menu li{ display:block; margin-bottom:6px; text-align:left; }
#sp-footer .sp-module ul.menu li a{ color:#9aa6aa; padding:0; text-align:left; transition:color .2s; }
#sp-footer .sp-module ul.menu li a::before{ content:"\203A"; color:var(--am-orange); margin-right:8px; }
#sp-footer .sp-module ul.menu li a:hover{ color:var(--am-teal); }

/* ---------- Copyright — flush, smaller text, no divider ---------- */
#sp-copyright{ background:var(--am-footer); color:#8a969a; padding:0 0 12px !important; border-top:0 !important; margin-top:0 !important; }
#sp-copyright p{ margin:0; font-size:.72rem !important; }
#sp-copyright a{ color:var(--am-teal); }

/* ---------- Reusable accents ---------- */
.am-rule{ width:64px; height:4px; background:var(--am-orange); border:0; border-radius:2px; margin:16px auto 0; }
.am-band-light{ background:var(--am-offwhite); }

/* ================= BATCH FIXES ================= */

/* Kill any white line/border/shadow above or around the footer */
#sp-footer,
#sp-footer::before,
#sp-footer .container,
#sp-footer .container-inner,
#sp-footer .sp-module{ border:0 !important; box-shadow:none !important; }
#sp-main-body{ border-bottom:0 !important; box-shadow:none !important; }
#sp-footer2, #sp-bottom{ border-top:0 !important; }

/* Copyright text smaller (win over any other rule) */
#sp-copyright, #sp-copyright *{ font-size:.7rem !important; }
#sp-copyright{ padding:0 0 12px !important; }

/* Contact page section headings — smaller */
.com-contact h3, .contact h3, #sp-component .contact h3,
.contact .contact-address h3, .contact-form h3, .contact-miscinfo h3,
#sp-component .item-page h3{ font-size:1.15rem !important; font-weight:700 !important; margin:0 0 12px; }
.com-contact h2, #sp-component .contact h2{ font-size:1.5rem !important; font-weight:500 !important; }

/* Logo a touch bigger (note: source image is ~100px tall; larger will soften) */
#sp-header .logo img{ max-height:104px !important; }
#sp-header #sp-logo, #sp-header .logo{ height:auto !important; }

/* Sidebar: never collapse — always show all sub-items */
#sp-left .sp-module ul.menu,
#sp-left .sp-module ul.menu ul,
#sp-left .sp-module ul.menu li,
#sp-left .sp-module ul.menu li.deeper > ul,
#sp-left .sp-module ul.menu li.collapse,
#sp-left .sp-module ul.menu li.collapsing{
  display:block !important;
  height:auto !important;
  visibility:visible !important;
}


/* Contact page — headings sized to match the rest of the site */
#sp-component .com-contact h1,
#sp-component .contact h1{ font-size:1.7rem !important; font-weight:400 !important; margin-bottom:16px; }
#sp-component .com-contact h2,
#sp-component .com-contact h3,
#sp-component .contact h2,
#sp-component .contact h3,
#sp-component .contact dl.contact-address dt,
#sp-component .contact legend{
  font-size:1.2rem !important; font-weight:700 !important; margin:0 0 12px !important;
}


/* Joomla default contact page - frame style */
.com-contact__contact,
.com-contact__form,
.com-contact__miscinfo,
.contact-address,
.contact-form,
.contact-miscinfo {
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 22px;
    margin-bottom: 24px;
    background: #ffffff;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}

/* Headings inside each frame */
.com-contact h3,
.contact h3 {
    margin-top: 0;
    padding-bottom: 10px;
    border-bottom: 1px solid #eee;
}