/* ==========================================================================
   1. IMPORTS & GLOBAL RESET
   ========================================================================== */
/* Import Montserrat (the only site typeface) from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  position: relative;
  font-size: 16px;
}

body {
  overflow-x: hidden;
  position: relative;
  min-height: 100%;
  margin: 0;
  padding: 0 !important;
  font-family: "Montserrat", sans-serif;
  background: #fff;
  color: #000;
}

/* ==========================================================================
   2. UTILITY CLASSES
   ========================================================================== */
p {
  font-family: "Montserrat", sans-serif;
  font-size: 1.05rem !important;
  line-height: 1.8 !important;
  color: #222 !important;
  margin: 1.2em 0 !important;
}

ul,
ul li {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: #00113f;
  text-decoration: none !important;
  display: inline-block;
}

form a {
  color: #00113f;
}

.pl-0 { padding-left: 0 !important; }
.pr-0 { padding-right: 0 !important; }

/* ==========================================================================
   3. TYPOGRAPHY
   ========================================================================== */
h1,
.fHeading .fModuleTitle h3 {
  font-family: "Montserrat", sans-serif;
  line-height: 1;
  margin-bottom: 1rem;
}

h1 { font-size: 1.5rem; }

.fHeading .fModuleTitle {
  text-align: center;
  margin-bottom: 20px;
}

.fHeading .fModuleTitle h3 {
  font-size: 1.8rem;
  font-weight: 700;
}

/* ==========================================================================
   4. LAYOUT
   ========================================================================== */
.fModule {
  margin: 1rem 0;
  padding: 1rem 0;
}

header .fModule,
footer .fModule { 
  margin: 0; 
}

.fTable.f-table tr.heading th {
  background-color: #000;
  color: #fff;
}

header {
  background: #fff;
  color: #fff;
  text-align: left;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 999;
  box-shadow: none;
  transition: 0.6s all ease;
}

.path-home- header {
  background: transparent;
  transition: 0.6s all ease;
}

.f-scrolled header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 1);
  -moz-box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 1);
  box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 1);
}

header .wrap {
  max-width: 100%;
  width: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
}

.region-header.row { align-items: center; }

header h1 { font-size: 1.5rem; }

/* ==========================================================================
   5. NAVIGATION (Desktop)
   ========================================================================== */
nav ul {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4rem;
  text-align: right;
  flex-wrap: nowrap;
}

nav ul li { list-style: none; }

nav ul li a {
  color: #fff;
  padding: 0 8px;
  transition: color 0.3s ease;
  white-space: nowrap;
}

/* Primary menu links */
.main-menu a {
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  text-transform: capitalize;
  letter-spacing: 0;
  color: #6a752a;
  position: relative;
}

.path-home- .main-menu a {
  color: #fff;
}

.f-scrolled .main-menu a {
  color: #6a752a;
}

.main-menu a::before {
  content: '';
  position: absolute;
  bottom: 0; 
  left: 0;
  width: 0; 
  height: 2px;
  background: #e5030b;
  transition: width 0.6s ease;
}

.main-menu a:hover { color: #e5030b; }
.main-menu a:hover::before { width: 100%; }

/* Submenu (dropdown) */
.main-menu .fmenu li { position: relative; }

.main-menu .fmenu ul {
  position: absolute;
  top: 100%;
  left: 0;
  width: 300px;
  padding: 0;
  text-align: left;
  display: none !important;
  background: #fff;
  border: 1px solid #e6e6e6;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}

.main-menu .fmenu > li > ul > li ul {
  z-index: 999;
  right: 300px;
  left: auto;
}

.main-menu .fmenu > li:hover > ul { display: block !important; }
.main-menu .fmenu > li > ul > li:hover ul { display: block !important; }
.main-menu .fmenu ul li { margin: 0; }

.main-menu .fmenu ul li a {
  display: block;
  padding: 0.5rem 0.75rem;
  color: #6a752a;
  white-space: nowrap;
}

.main-menu .fmenu ul li a:hover {
  background: #f7f7f7;
  color: #e5030b;
}

.main-menu .fMenu ul {
  display: block !important;
  flex-direction: column !important;
  min-width: 220px;
}

.main-menu .fMenu ul li {
  display: block;
  width: 100%;
}

.main-menu .fMenu > li {
  position: relative;
}

/* Keep desktop dropdowns open while moving between menu levels.
   The small overlap removes the pointer dead zone and the delayed
   visibility change gives the cursor a little forgiveness diagonally. */
@media (min-width: 481px) {
  .main-menu .fmenu ul,
  .main-menu .fMenu ul {
    display: block !important;
    z-index: 10000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(4px);
    transition:
      opacity 0.16s ease,
      transform 0.16s ease,
      visibility 0s linear 0.28s;
  }

  /* First dropdown slightly overlaps the main-menu item. */
  .main-menu .fmenu > li > ul,
  .main-menu .fMenu > li > ul {
    top: calc(100% - 2px);
  }

  /* Second dropdown opens to the left and overlaps by 5px. */
  .main-menu .fmenu > li > ul > li > ul,
  .main-menu .fMenu > li > ul > li > ul {
    top: -1px;
    right: calc(100% - 5px);
    left: auto;
    transform: translateX(4px);
  }

  .main-menu .fmenu li:hover > ul,
  .main-menu .fmenu li:focus-within > ul,
  .main-menu .fMenu li:hover > ul,
  .main-menu .fMenu li:focus-within > ul {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(0, 0);
    transition-delay: 0s;
  }
}

/* ========================================================================== 
   6. FORM ELEMENTS
   ========================================================================== */
.fForm label {
  display: block;
  width: 100%;
  margin: 0.625rem 0 0;
  font-weight: normal;
  color: #000;
}

.fForm input[type="text"],
.fForm input[type="email"],
.fForm input[type="password"],
.fForm textarea,
.fForm select,
.fForm .form-item .date {
  width: 100%;
  max-width: 100%;
  height: 42px;
  padding: 0 0.9375rem;
  border: 1px solid #dbdbdb;
  border-radius: 5px;
  background: #fff;
  transition: border-color 0.3s ease;
}

.fForm input[type="text"]:hover,
.fForm input[type="email"]:hover,
.fForm input[type="password"]:hover,
.fForm textarea:hover,
.fForm input[type="text"]:focus,
.fForm input[type="email"]:focus,
.fForm input[type="password"]:focus,
.fForm textarea:focus { 
  border-color: #92def5; 
}

.fForm .buttons { 
  clear: both; 
  padding-left: 0; 
}

.fForm .buttons input,
a.fButton,
a.fButton2,
.fForm input[type='submit'] {
  display: inline-block;
  margin: 0.75rem 0 0 0;
  padding: 12px 35px;
  min-width: 200px;
  min-height: 42px;
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  line-height: 1;
  color: #fff;
  text-align: center;
  background: #3f5c26;
  border: none;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.3s ease;
}

.fForm .buttons input:hover,
a.fButton:hover,
.fbutton-btn a:hover,
.fForm input[type="submit"]:hover {
  background: #3f5c26;
  color: #fff;
  transform: translateY(-2px);
}

/* ==========================================================================
   7. ICON SET & INPUT SPECS
   ========================================================================== */
.iconset .fMenu {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: stretch;
  justify-content: center;
  padding: 0;
  margin: 0;
}

.iconset .fMenu > li {
  flex: 1 1 280px;
  list-style: none;
  padding: 1rem !important;
  background: #f5f5f5;
  border: 1px solid #eaeaea;
  border-radius: 5px;
  position: relative;
  text-align: left;
  transition: transform 0.5s ease;
}

.iconset .fMenu > li:hover { 
  transform: translateY(-5px); 
}

.iconset .fMenu > li > a {
  font-weight: bold;
  color: #000;
  display: block;
}

.iconset img { 
  max-width: 64px; 
  margin-bottom: 0.5rem; 
}

.iconset .fMenu ul {
  margin: 1rem 0 0 1.375rem !important;
  display: block;
}

.iconset .fMenu ul li {
  margin-bottom: 0.25rem !important;
  list-style: square inside;
  text-align: left;
}

.iconset .fMenu ul a { 
  font-weight: 500; 
  color: #000; 
}

form.fForm .form-item {
  padding-top: 0;
  padding-bottom: 1rem;
}

form.fForm label {
  width: 100%;
  text-align: left;
  display: block;
  padding-top: 0;
  font-weight: bold;
}

form.fForm fieldset legend,
.path-user-login- form label {
  padding: 0.5rem 0;
  font-size: 1.25rem;
  color: #00113f;
  margin-bottom: 0;
  font-weight: bold;
}

input[type="text"],
input[type="password"],
input[type="email"],
select,
textarea {
  width: calc(100% - 2px);
  margin: 2px;
  height: 42px;
  padding: .375rem .75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: .25rem;
  box-shadow: inset 0 0 0 transparent;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.fForm .hint,
.fForm .error { 
  margin-left: 0 !important; 
}

/* ==========================================================================
   8. HIDE & UTILITY OVERRIDES
   ========================================================================== */
.no-title .fPageTitle,
.no-header header,
.no-footer footer,
#nav-up { 
  display: none !important; 
}

.fLogo img { max-height: 75px; }

.fPageTitle {
  background: #6a752a;
  padding-top: 7.5rem;
  padding-bottom: 1rem;
}

.fPageTitle h1 {
  color: #fff;
  padding-left: 1.5rem;
  text-align: center;
  margin: 0;
}

/* ==========================================================================
   9. CUSTOM WIDGETS & MODULES
   ========================================================================== */
.bg-grey { background: #dbdbdb; }

.fBanner .fGalleryText {
  position: absolute;
  top: 40%;
  left: 9%;
  transform: translateY(-50%);
  width: 33%;
}

.fBanner .fGalleryText div .fButton { 
  background: #fff; 
  color: #000; 
}

.fBanner .fGalleryText h3 {
  color: #fff;
  font-size: 40px;
  margin-bottom: 0;
}

.fBanner .fGalleryText p {
  font-size: 16px;
  color: #fff;
  margin: 10px 0;
}

.banner-wrapper { position: relative; }

.fHeading .fModuleTitle { 
  margin-bottom: 20px; 
  text-align: left; 
}

.fHeading .fModuleTitle h3 {
  display: inline-block;
  padding-bottom: 10px;
  position: relative;
  color: #000836;
}

.fHeading .fModuleTitle h3:after {
  content: '';
  position: absolute;
  left: 0; 
  bottom: 0;
  width: 50%; 
  height: 2px;
  background: #000836;
}

footer p, footer h3 { color: #24c0d6; }

.fModule table { width: 100%; }

.fModule table th,
.fModule table td {
  border: 1px solid #ccc;
  padding: 0.5rem;
  vertical-align: top;
}

.fModule table th {
  background: #16d6ee;
  color: #000;
}

#fModule-53313 table { margin-bottom: 10px; }

.fCustomList li {
  padding-left: 40px !important;
  margin-bottom: 10px !important;
  position: relative;
}

.fCustomList li:after {
  content: '';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 20px; 
  height: 20px;
  background-image: url(https://img.icons8.com/material-rounded/24/arrow.png);
  background-repeat: no-repeat;
  background-size: contain;
  left: 0;
  animation: mymove 1s infinite;
}

@keyframes mymove {
  from { left: 0px; }
  to { left: 10px; }
}

.fImgWrap li { margin-bottom: 20px !important; }

.fImgWrap .fGalleryImage {
  display: block;
  width: 220px; 
  height: 220px;
  margin: 0 auto;
}

.fImgWrap .fGalleryImage img {
  object-fit: contain;
  width: 100%; 
  height: 100%;
}

.fImgWrap .fGalleryText { 
  width: 220px; 
  margin: 0 auto; 
}

.fImgWrap .fGalleryText h3 { 
  font-size: 1.2rem; 
  margin-top: 0.5rem; 
}

.fForm .user-register-group {
  padding: 0;
  border-top: none;
  margin-top: 20px;
}

.fForm .user-register-group legend { display: none; }
.fForm .user-register-group label { display: flex; align-items: center; }
.fForm .user-register-group .f-table td { padding: 0; }

.fForm fieldset { margin: 0; padding: 0; }

.f-table-invoice { margin-top: 20px; }
.f-table th, .f-table tr.thead td { background: #00113f; }

.discount-code .form-item {
  display: flex;
  align-items: stretch;
  gap: 5px;
  flex-wrap: wrap;
}

.discount-code .form-item > * { flex: 0 0 auto; }
.discount-code .form-item label { width: 100%; }
.discount-code .form-item input[type='text'] { width: 80%; }
.discount-code .form-item input[type='submit'] { width: 18%; margin: 0; }

#f-messages .item {
  padding: .7em 1em;
  background-color: #88d4e8;
  color: #000;
  margin-bottom: .1em;
  font-size: 110%;
  position: fixed;
  z-index: 9999;
  width: 100%;
  text-align: center;
  left: 0; 
  right: 0;
}

/* ==========================================================================
   10. MEDIA QUERIES (Mobile UI)
   ========================================================================== */
@media (max-width: 480px) {
  body { padding-bottom: 0 !important; }
  .body { padding: 0 0.9375rem; }

  header { 
    background: #000 !important; 
    position: relative; 
  }

  .navbar-toggle-container {
    display: block;
    text-align: right;
    padding: 0.5rem;
  }

  .navbar-toggle {
    border: 1px solid #fff;
    padding: 5px;
  }

  .navbar-toggle span {
    display: block;
    width: 25px; 
    height: 2px;
    background: #fff;
    margin-bottom: 5px;
  }

  .navbar-toggle span:last-child { margin-bottom: 0; }

  .main-menu nav {
    position: absolute;
    background: #fff;
    width: 300px;
    right: 0;
    top: 100%;
    z-index: 9999;
    box-shadow: 0px 0px 18px -10px rgba(0, 0, 0, 0.75);
    display: none !important;
    transition: right 0.4s ease;
  }

  .main-menu nav.show,
  .main-menu nav.active { 
    display: block !important; 
  }

  .main-menu nav ul li { border-bottom: 2px dashed #fff; }
  .main-menu nav ul li:last-child { border-bottom: none; }

  .main-menu nav ul { flex-direction: column; gap: 0; }

  .main-menu nav ul li a {
    padding: 0.625rem;
    text-align: center;
  }

  .main-menu .fmenu ul {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    padding: 0;
    text-align: center;
    display: none !important;
    background: #fff;
    border: 1px solid #e6e6e6;
    box-shadow: 0 10px 24px rgba(0,0,0,.12);
  }

  .main-menu .fmenu > li > ul > li ul { right: auto; }
  .path-home- .main-menu a { font-size: 0.8rem; color: #6a752a; }

  .fBanner .fGalleryText { width: 92%; top: 35%; }
  .fBanner .fGalleryText h3 { font-size: 19px; }

  .banner-wrapper .fTimer {
    position: relative !important;
    left: auto !important;
    transform: translateY(0%) !important;
    top: auto !important;
    padding: 1rem !important;
  }

  .fTimer .row {
    gap: 11px !important;
    justify-content: space-between;
    display: flex;
    margin: 0;
  }

  footer { position: relative; }

  html { height: auto; min-height: auto; }
  body { overflow-x: hidden; }

  header .fModule {
    padding: 1rem 15px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  .fModule { margin: 1rem 0; padding: 1rem 0; }

  .main-menu .navbar-toggle { display: inline-block; }

  .main-menu .navbar-toggle span {
    display: block;
    width: 30px; 
    height: 2px;
    background: #fff;
    margin-bottom: 5px;
    transform: rotate(0);
    transition: 0.6s all;
  }

  .main-menu .navbar-toggle span:last-child { margin-bottom: 0; }

  .main-menu .navbar-toggle-container { text-align: right; }

  .main-menu li { display: block; text-align: center; padding-bottom: 8px !important; }

  .main-menu .fMenu { display: block; padding: 0; }

  .main-menu .fMenu > li > a { line-height: 20px; }

  .main-menu .fMenu a { color: #000; }

  .iconset nav { display: block !important; }
  .iconset ul { padding: 0; }

  .fForm .buttons { padding-left: 15px !important; }

  .discount-code .form-item input[type="text"] { width: 100%; }
  .discount-code .form-item input[type="submit"] { width: auto; }

  .bx-wrapper { margin: 0 !important; }

  #fContent > .row { margin: 0; }
  .path-home- #fMatter { padding: 0; }

  .fPageTitle { padding-top: 1rem; padding-bottom: 1rem; }

  .user-inner-profile-page .f-list-item-content span { width: 100%; }
  
  .main-menu .fMenu > li > ul > li > a,
  .main-menu .fMenu a {
    color: #6a752a !important;
  }
  
  .main-menu .fMenu li:hover > ul {
    position: relative;
    width: 100%;
  }

  form .form-item label {
    height: auto !important;
  }

  body:not(.path-home-) #fMatter {
    padding-top: 20px !important;
  }
}

/* ==========================================================================
   11. SESSION & USER PROFILES
   ========================================================================== */
.abstract-guidelines ul {
  list-style-type: disc !important;
  list-style-position: outside !important;
  margin: 0 0 1rem 1.5em !important;
  padding: 0 !important;
}

.abstract-guidelines ul li { margin-bottom: 0.5em; }

.user-inner-profile-page .f-content-item-teaser-image {
  width: 150px; 
  height: 150px; 
  margin: 20px 0;
}

.user-inner-profile-page .f-content-item-teaser-image img {
  object-fit: contain; 
  width: 100%; 
  height: 100%;
}

.user-inner-profile-page .f-list-item-content {
  display: flex; 
  align-items: center; 
  gap: 1%; 
  flex-wrap: wrap;
}

.user-inner-profile-page .f-list-item-content span {
  display: block; 
  flex: 0 0 auto; 
  width: 31%; 
  margin: 10px 0;
}

.user-inner-profile-page .f-list-item-content span#f-list-node-33364 { width: 100%; }

.fModule .session-container { page-break-after: always; margin-bottom: 3rem; overflow: auto; }
.fModule .session-container:last-child { page-break-after: auto; }
.fModule .session-container table { border-collapse: collapse; }
.fModule .session-time { text-align: center; }
.fModule .session-container td, .fModule .session-container th { padding: 0.5rem; transition: all 0.5s; }
.fModule .session-container th { background: #333; color: #fff; font-weight: bold; }
.fModule .session-item { border-bottom: 1px dashed #ccc; background: #fff; flex-grow: 1; }
.fModule td.session-time { width: 140px; }
.fModule .session-item-status-2.session-item-sender-0 { background: #fce4d6 !important; text-align: center; } 
.fModule .session-time.session-item-status-2.session-item-sender-0 { text-align: left; }
.fModule .session-time-date { display: none; }
.fModule .session-time-start, .session-time-end { position: relative; display: inline; }
.fModule .session-time-end::before { content: "-"; display: inline-block; }
.fModule .session-container td.session-details { padding: 0; }
.fModule .session-details-row { text-align: left; }
.fModule .session-item:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0 none; }
.fModule .session-item-container { padding: 0.5rem 1rem; justify-content: space-between; display: flex; position: relative; }
.fModule .session-item-container .f-list-item-node { align-self: center; }
.fModule .session-item-status-2.session-item-sender-0 .f-list-item-node { width: 100%; }
.fModule .session-title, .fModule .session-time-start { font-weight: bold; position: relative; }
.f-button-success { background: #6a752a; }
.fModule .session-details .f-button { padding: 0.15rem 0.5rem; height: 31px; }
.session-full { margin: 20px 0; }
.session-full .session-time-date { display: inline-block; }
.session-full .session-time-start, .session-full .session-time-end { position: relative; }
.session-full .session-time-start::before { content: "("; display: inline-block; }
.session-full .session-time-end::after { content: ")"; display: inline-block; }
.session-full .session-time-end::before { content: "-"; display: inline-block; }
.session-action { padding-top: 1.5rem; padding-bottom: 1.5rem; text-align: center; }
.f-button-danger { background: #cc0000; }
.session-item-container .session-title a { color: #000 !important; font-size: 20px; }
.fModule .session-item-status-1 { opacity: 1; background: #c6e0b4; }
.session-item-status-2.session-item-sender-683922 { background: #ffff00 !important; }
.session-intro { font-size: 0.8rem; }

/* Submenu text color (desktop) */
.main-menu .fMenu > li > ul > li > a {
  color: #6a752a !important;
}

/* Hover/active states for submenu links */
.main-menu .fMenu > li > ul > li > a:hover,
.main-menu .fMenu > li > ul > li > a:focus {
  color: #e5030b !important;
  background: #f7f7f7;
}

.f-table {
  margin-top: 30px;
}

.iconset .fModuleContent a:hover {
  transform: translateY(0) !important;
  box-shadow: none !important;
}

/* ==========================================================================
   12. COMMUNITIES WIDGET
   ========================================================================== */
.communities-widget {
  color: #2f2f2f;
  line-height: 1.6;
  background-color: #ffffff;
}

.communities-widget .hero {
  background: linear-gradient(135deg, #f3f4e6, #e6e8c8);
  padding: 60px 20px;
  text-align: center;
}

.communities-widget .hero h1 {
  font-size: 40px;
  color: #6c6f2b;
  margin: 0;
  font-weight: 700;
  letter-spacing: -0.5px;
}

.communities-widget .container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 50px 20px 70px;
}

.communities-widget .section {
  margin-bottom: 60px;
}

.communities-widget .section h2 {
  font-size: 26px;
  color: #3f4220;
  margin-bottom: 16px;
  font-weight: 600;
}

.communities-widget p {
  font-size: 16px;
  margin-bottom: 16px;
  color: #444;
}

.communities-widget .example {
  background-color: #f7f8ef;
  border-left: 4px solid #6c6f2b;
  padding: 20px 24px;
  margin: 24px 0;
}

.communities-widget .example p {
  margin-bottom: 10px;
}

.communities-widget .highlight {
  background-color: #fbfcf6;
  padding: 24px 28px;
  border-radius: 8px;
  margin: 24px 0;
}

.communities-widget .highlight ul {
  padding-left: 18px;
  margin: 0;
}

.communities-widget .highlight li {
  font-size: 16px;
  margin-bottom: 12px;
  color: #3b3b3b;
}

.communities-widget .takeaway {
  font-weight: 600;
  color: #555822;
  margin-top: 18px;
}

.communities-widget .commitment {
  background: linear-gradient(135deg, #6c6f2b, #8a8e3b);
  padding: 50px 30px;
  border-radius: 12px;
  color: #ffffff;
  text-align: center;
}

.communities-widget .commitment h2 {
  font-size: 30px;
  margin-bottom: 14px;
  font-weight: 700;
}

.communities-widget .commitment p {
  font-size: 16px;
  max-width: 800px;
  margin: 0 auto;
  color: #f3f3e8;
}

@media (max-width: 768px) {
  .communities-widget .hero {
    padding: 40px 16px;
  }

  .communities-widget .hero h1 {
    font-size: 32px;
  }

  .communities-widget .section h2 {
    font-size: 22px;
  }

  .communities-widget .commitment h2 {
    font-size: 26px;
  }
  
  .toft-section-box {
    margin-top: 35px;
  }
}

/* ==========================================================================
   13. PAGE SPECIFIC & FOOTER FIX
   ========================================================================== */
.fForm .checks {
  height: auto !important;
}

.path-financial-invoices- .icon-status {
  display: none;
}

.about-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: 200px 20px 160px;
  text-align: center;
  color: #fff;
  background: linear-gradient(rgba(0, 0, 0, .18), rgba(0, 0, 0, .18)), url("https://storage.unitedwebnetwork.com/files/1328/918d8365cb0c2b753f47fa9bf389cce0.jpg") center 42%/cover no-repeat;
}

.about-hero .inner {
  max-width: 900px;
  margin: auto;
}

.about-hero h1 {
  margin: 0;
  font-weight: 700;
  font-size: clamp(2.2rem, 3vw + 1rem, 3rem);
  letter-spacing: 2px;
  text-transform: uppercase;
  text-shadow: 0 3px 10px rgba(0, 0, 0, .25);
}

body:not(.path-home-) #fMatter {
  padding-top: 0px !important;
}

/* TOFT Footer Fix */
.toft-section-box {
  position: relative;
  display: block;
  width: 100%;
  clear: both;
  overflow: hidden;
  margin: 50px 0 0;
  z-index: 1;
}

.toft-card {
  position: relative;
  display: block;
}

.toft-section {
  position: relative;
}

.toft-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 26px;
}






/* =====================================================
   MY SCHEDULE - CLEAN & SIMPLE STYLING
===================================================== */

/* 1. Disable Modal Click on Name (COMMENTED OUT TO TEST MODAL) */
.com-event.view-meeting-my .session-title a {
/*    pointer-events: none !important; */
/*    cursor: default !important; */
    text-decoration: none !important;
    color: #222222 !important;
    font-weight: 700 !important;
}

/* 2. Fix Broken Layout on Time Column */
.com-event.view-meeting-my td.session-time {
    white-space: nowrap !important;
    text-align: center !important;
    vertical-align: middle !important;
    padding: 12px 16px !important;
}

.com-event.view-meeting-my .session-time-start::after {
    content: " - " !important;
    margin: 0 4px !important;
}

.com-event.view-meeting-my .session-time-date {
    display: none !important; /* Hides duplicate date if present */
}

/* 3. Clean Up Table Rows & Spacing */
.com-event.view-meeting-my table.fTable {
    border-collapse: separate !important;
    border-spacing: 0 8px !important;
}

.com-event.view-meeting-my tr.session-row {
    background: #ffffff !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 8px !important;
}

.com-event.view-meeting-my tr.session-row td {
    padding: 14px 18px !important;
}

/* 4. Action Buttons Styling */
.com-event.view-meeting-my .session-item-node-actions {
    display: inline-flex !important;
    gap: 8px !important;
    vertical-align: middle !important;
    margin-left: 15px !important;
}

/* Edit / Main Button */
.com-event.view-meeting-my .f-button {
    background-color: #6a752a !important;
    color: #ffffff !important;
    border: 1px solid #6a752a !important;
    border-radius: 6px !important;
    padding: 6px 14px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: background 0.2s ease !important;
}

.com-event.view-meeting-my .f-button:hover {
    background-color: #535c20 !important;
    border-color: #535c20 !important;
}

/* Cancel Button */
.com-event.view-meeting-my .f-button-danger {
    background-color: #ffffff !important;
    color: #d32f2f !important;
    border: 1px solid #d32f2f !important;
}

.com-event.view-meeting-my .f-button-danger:hover {
    background-color: #d32f2f !important;
    color: #ffffff !important;
}

/* 5. Clean Up Status Text */
.com-event.view-meeting-my .session-intro {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #d97706 !important;
    text-transform: uppercase !important;
    margin-top: 4px !important;
}

/* ==========================================================================
14. FONT CONSISTENCY — Montserrat across the whole site
Page and widget code pasted from documents carries Arial / Georgia / Poppins /
system fonts. This guard keeps every text element on Montserrat while leaving
icon fonts (Font Awesome etc.) untouched. Sizes and weights are not changed.
========================================================================== */
button, input, select, textarea, optgroup { font-family: inherit; }

body:not(#toft-font-guard) :is(h1, h2, h3, h4, h5, h6, p, a, span, li, dt, dd, td, th, caption, label, legend, strong, b, em, small, blockquote, figcaption, button, input, select, textarea, option, div, section, article, nav, header, footer, ul, ol, table, form, fieldset):not([class*="fa-"]):not(.fa):not(.fas):not(.far):not(.fab):not(.fa-solid):not(.fa-regular):not(.fa-brands):not([class^="bi-"]):not([class*=" bi-"]):not(.material-icons):not(.glyphicon) {
font-family: "Montserrat", Arial, sans-serif !important;
}

/* Main menu: Montserrat is wider than the previous condensed face,
so scale the top-level links between tablet and desktop widths. */
@media (min-width: 481px) and (max-width: 1399px) {
.main-menu .fmenu > li > a,
.main-menu .fMenu > li > a {
font-size: clamp(13px, 1.15vw, 16px);
padding: 0 6px;
}
}

/* ==========================================================================
15. TOFT CERTIFICATION PAGES (TOFT Certification / PUG / Footprint)
Widgets carry Stylesheet Class "toft-cert-content"; clean-up script in Template JS.
========================================================================== */
.toft-cert-content {
--cert-green: #34430f;
--cert-green-2: #4b5f19;
--cert-leaf: #839447;
--cert-orange: #f47a2a;
--cert-cream: #f6f4eb;
--cert-text: #4f5849;
background: var(--cert-cream) !important;
padding: 72px 20px 86px !important;
}
.toft-cert-content .fModuleContent {
width: min(1120px, 100%) !important;
margin: auto !important;
padding: 0 !important;
}
.toft-cert-content * { box-sizing: border-box; }
.toft-cert-content p,
.toft-cert-content li,
.toft-cert-content td,
.toft-cert-content th {
color: var(--cert-text) !important;
font-size: 16px !important;
line-height: 1.8 !important;
white-space: normal !important;
}
.toft-cert-content span { color: inherit !important; font-size: inherit !important; white-space: normal !important; }
.toft-cert-content p { margin: 0 0 18px !important; }
.toft-cert-content strong, .toft-cert-content b { color: var(--cert-green) !important; font-weight: 700 !important; }
.toft-cert-content h1,
.toft-cert-content h2,
.toft-cert-content h3,
.toft-cert-content .toft-cert-heading {
position: relative;
margin: 64px 0 22px !important;
padding: 0 0 0 42px !important;
color: var(--cert-green) !important;
font-size: clamp(26px, 3.4vw, 38px) !important;
font-weight: 700 !important;
line-height: 1.2 !important;
letter-spacing: -.02em !important;
text-transform: none !important;
}
.toft-cert-content h1::before,
.toft-cert-content h2::before,
.toft-cert-content h3::before,
.toft-cert-content .toft-cert-heading::before {
position: absolute; left: 0; top: .6em;
width: 27px; height: 3px; border-radius: 3px;
background: var(--cert-orange); content: "";
}
.toft-cert-content .fModuleContent > :first-child { margin-top: 0 !important; }
.toft-cert-content h4 {
margin: 25px 0 0 !important;
padding: 18px 22px !important;
border-radius: 14px 14px 0 0;
background: linear-gradient(135deg, var(--cert-green), var(--cert-green-2));
color: #fff !important;
font-size: 17px !important;
font-weight: 700 !important;
line-height: 1.4 !important;
}
.toft-cert-content h4 + p,
.toft-cert-content h4 + ul,
.toft-cert-content h4 + .toft-cert-body {
margin-top: 0 !important;
}
.toft-cert-content .toft-cert-body {
margin: 0 0 8px !important;
padding: 22px 23px 6px !important;
border: 1px solid rgba(52,67,15,.13);
border-top: 0;
border-radius: 0 0 14px 14px;
background: #fff;
box-shadow: 0 12px 28px rgba(43,55,20,.07);
}
.toft-cert-content .toft-cert-body ul { margin: 6px 0 16px !important; }
.toft-cert-content hr {
width: 86px; height: 4px;
margin: 62px 0 0 !important;
border: 0 !important; border-radius: 4px;
background: linear-gradient(90deg, var(--cert-orange), #ffad74);
opacity: 1 !important;
}
.toft-cert-content ul,
.toft-cert-content ol {
display: grid;
grid-template-columns: repeat(2, minmax(0,1fr));
gap: 15px;
margin: 26px 0 35px !important;
padding: 0 !important;
list-style: none !important;
}
.toft-cert-content ul > li,
.toft-cert-content ol > li {
position: relative; min-width: 0;
margin: 0 !important;
padding: 18px 21px 18px 54px !important;
border: 1px solid rgba(52,67,15,.12);
border-radius: 14px;
background: #fff;
box-shadow: 0 10px 24px rgba(43,55,20,.06);
}
.toft-cert-content .toft-cert-body ul > li { box-shadow: none; background: #fbfaf5; }
.toft-cert-content ul > li::before {
position: absolute; left: 20px; top: 22px;
width: 20px; height: 20px; border-radius: 50%;
background: var(--cert-leaf);
box-shadow: inset 0 0 0 6px #eef1df;
content: "";
}
.toft-cert-content ol { counter-reset: cert-step; }
.toft-cert-content ol > li { counter-increment: cert-step; }
.toft-cert-content ol > li::before {
position: absolute; left: 17px; top: 18px;
display: grid; place-items: center;
width: 27px; height: 27px; border-radius: 50%;
background: var(--cert-green); color: #fff;
content: counter(cert-step);
font-size: 12px; font-weight: 700;
}
.toft-cert-content li p { margin: 0 !important; }
.toft-cert-content a.toft-cert-btn {
display: inline-flex; align-items: center; gap: 10px;
margin: 6px 0 18px;
padding: 13px 22px;
border-radius: 999px;
background: var(--cert-green);
color: #fff !important;
font-size: 14px !important; font-weight: 700 !important; line-height: 1.35 !important;
text-decoration: none !important;
box-shadow: 0 10px 25px rgba(52,67,15,.18);
transition: transform .25s ease, background .25s ease;
}
.toft-cert-content a.toft-cert-btn svg { width: 16px; height: 16px; flex: 0 0 auto; }
.toft-cert-content a.toft-cert-btn:hover,
.toft-cert-content a.toft-cert-btn:focus-visible {
background: var(--cert-green-2); color: #fff !important; transform: translateY(-2px);
}
.toft-cert-content p > a:not(.toft-cert-btn) { color: var(--cert-green-2) !important; font-weight: 600; text-decoration: underline !important; }
.toft-cert-content .toft-cert-table {
width: 100%; margin: 28px 0 42px; overflow-x: auto;
border: 1px solid rgba(52,67,15,.13); border-radius: 16px;
background: #fff; box-shadow: 0 14px 32px rgba(43,55,20,.08);
}
.toft-cert-content table { width: 100% !important; min-width: 560px; margin: 0 !important; border: 0 !important; border-collapse: collapse !important; }
.toft-cert-content table td, .toft-cert-content table th {
padding: 15px 18px !important; border: 0 !important;
border-bottom: 1px solid rgba(52,67,15,.11) !important; vertical-align: top !important;
background: transparent;
}
.toft-cert-content table td p { margin: 0 !important; }
.toft-cert-content table tr:first-child td, .toft-cert-content table tr:first-child th { background: var(--cert-green); }
.toft-cert-content table tr:first-child td *, .toft-cert-content table tr:first-child th *,
.toft-cert-content table tr:first-child td, .toft-cert-content table tr:first-child th { color: #fff !important; font-weight: 700 !important; }
.toft-cert-content table tr:nth-child(even) td { background: #f8f7f1; }
.toft-cert-content table tr:last-child td { border-bottom: 0 !important; }
.toft-cert-content .toft-cert-mark {
display: flex; align-items: center; gap: 26px;
margin: 6px 0 22px; padding: 20px;
border: 1px solid rgba(52,67,15,.12); border-radius: 16px; background: #fff;
}
.toft-cert-content .toft-cert-mark img { width: 120px; height: auto; flex: 0 0 auto; border-radius: 6px; }
.toft-cert-content .toft-cert-mark p { margin: 0 !important; }
.toft-cert-content .toft-cert-cta {
margin: 70px 0 0; padding: 36px 36px 30px;
border-radius: 20px;
background: linear-gradient(135deg, #20300b, var(--cert-green-2));
}
.toft-cert-content .toft-cert-cta h3 { margin-top: 0 !important; color: #fff !important; }
.toft-cert-content .toft-cert-cta p { color: rgba(255,255,255,.88) !important; }
.toft-cert-content .toft-cert-cta a.toft-cert-btn { background: #fff; color: var(--cert-green) !important; margin-top: 8px; }
.toft-cert-content .toft-cert-cta a.toft-cert-btn:hover { background: #eef1df; }
.toft-cert-content .toft-cert-programmes {
display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 26px; margin: 28px 0 10px;
}
.toft-cert-content .toft-cert-card {
display: flex; flex-direction: column;
padding: 30px; border-radius: 20px; background: #fff;
border: 1px solid rgba(52,67,15,.12); box-shadow: 0 16px 34px rgba(43,55,20,.08);
}
.toft-cert-content .toft-cert-card h4 {
margin: 0 0 14px !important; padding: 0 !important; background: none; border-radius: 0;
color: var(--cert-green) !important; font-size: 22px !important;
}
.toft-cert-content .toft-cert-card .toft-cert-logo {
display: grid; place-items: center; height: 220px; margin: 0 0 22px !important;
border-radius: 14px; background: var(--cert-cream);
}
.toft-cert-content .toft-cert-card .toft-cert-logo img { max-height: 190px; width: auto; max-width: 80%; }
.toft-cert-content .toft-cert-card p:last-child { margin-top: auto !important; margin-bottom: 0 !important; }
.toft-cert-content .toft-cert-card a.toft-cert-btn { margin: 8px 0 0; }
.toft-cert-content .toft-cert-hidden { display: none !important; }
@media (max-width: 760px) {
.toft-cert-content { padding: 46px 16px 60px !important; }
.toft-cert-content h1, .toft-cert-content h2, .toft-cert-content h3, .toft-cert-content .toft-cert-heading {
margin-top: 46px !important; padding-left: 34px !important; font-size: 26px !important;
}
.toft-cert-content h1::before, .toft-cert-content h2::before, .toft-cert-content h3::before, .toft-cert-content .toft-cert-heading::before { width: 21px; }
.toft-cert-content ul, .toft-cert-content ol, .toft-cert-content .toft-cert-programmes { grid-template-columns: 1fr; }
.toft-cert-content p, .toft-cert-content li, .toft-cert-content td { font-size: 15px !important; }
.toft-cert-content .toft-cert-cta { padding: 28px 22px 22px; }
.toft-cert-content .toft-cert-mark { flex-direction: column; align-items: flex-start; }
.toft-cert-content .toft-cert-card { padding: 22px; }
.toft-cert-content a.toft-cert-btn { width: 100%; justify-content: center; text-align: center; }
}

/* ==========================================================================
16. PAGE HERO (same format as Training & Certification)
Markup sits at the top of the page's content widget:
section.toft-page-hero > img.toft-page-hero-image + div.toft-page-hero-content
(div.toft-page-hero-eyebrow, h1, p). Template JS moves it above the widget.
========================================================================== */
body.toft-has-hero .fPageTitle { display: none !important; }
.toft-page-hero,
.toft-page-hero * { box-sizing: border-box; }
.toft-page-hero {
position: relative;
left: 50%;
width: 100vw;
max-width: none;
min-height: 560px;
display: flex;
align-items: flex-end;
margin: 30px 0 0;
overflow: hidden;
transform: translateX(-50%);
background: #173f32;
}
.toft-page-hero .toft-page-hero-image {
position: absolute;
inset: 0;
width: 100% !important;
height: 100% !important;
max-width: none !important;
margin: 0 !important;
object-fit: cover;
object-position: center;
transition: transform 7s ease;
}
.toft-page-hero:hover .toft-page-hero-image { transform: scale(1.04); }
.toft-page-hero::before {
content: "";
position: absolute;
z-index: 1;
inset: 0;
background: linear-gradient(90deg, rgba(12,42,31,.94) 0%, rgba(12,42,31,.8) 43%, rgba(12,42,31,.34) 76%, rgba(12,42,31,.12) 100%);
}
.toft-page-hero::after {
content: "";
position: absolute;
z-index: 1;
right: -100px;
bottom: -200px;
width: 420px;
height: 420px;
border: 1px solid rgba(255,255,255,.18);
border-radius: 50%;
}
.toft-page-hero .toft-page-hero-content {
position: relative;
z-index: 2;
width: 100%;
max-width: 1180px;
margin: 0 auto;
padding: 110px 30px 78px;
}
.toft-page-hero .toft-page-hero-eyebrow {
display: flex;
align-items: center;
gap: 14px;
margin: 0 0 22px;
color: #ffad70;
font-size: 13px;
font-weight: 700;
line-height: 1.4;
letter-spacing: 2.7px;
text-transform: uppercase;
}
.toft-page-hero .toft-page-hero-eyebrow::before {
content: "";
width: 43px;
height: 2px;
flex-shrink: 0;
background: #e97828;
}
.toft-page-hero h1 {
max-width: 850px;
margin: 0 0 24px !important;
padding: 0 !important;
color: #fff !important;
font-size: clamp(42px, 5.5vw, 72px) !important;
font-weight: 500 !important;
line-height: 1.12 !important;
letter-spacing: .5px !important;
text-align: left !important;
}
.toft-page-hero h1::before { display: none !important; content: none !important; }
.toft-page-hero p {
max-width: 700px;
margin: 0 !important;
padding: 0 !important;
color: rgba(255,255,255,.86) !important;
font-size: 17px !important;
line-height: 1.8 !important;
text-align: left !important;
}
@media (max-width: 767px) {
.toft-page-hero { min-height: 460px; margin-top: 0; }
.toft-page-hero .toft-page-hero-content { padding: 90px 20px 52px; }
.toft-page-hero .toft-page-hero-eyebrow { font-size: 11px; letter-spacing: 2px; gap: 10px; }
.toft-page-hero .toft-page-hero-eyebrow::before { width: 30px; }
.toft-page-hero h1 { font-size: 40px !important; }
.toft-page-hero p { font-size: 15px !important; }
}

/* Main-menu dropdowns: size to the longest link so labels never spill out */
@media (min-width: 481px) {
.main-menu .fmenu ul,
.main-menu .fMenu ul {
width: max-content !important;
min-width: 260px;
max-width: 380px;
}
.main-menu .fmenu ul li a,
.main-menu .fMenu ul li a {
white-space: normal !important;
font-size: 15px;
line-height: 1.35;
padding: .6rem 1rem;
}
}

/* Certification content runs full width beneath its hero (same format as Training & Certification) */
.toft-cert-content {
position: relative;
left: 50%;
width: 100vw !important;
max-width: none !important;
margin: 0 !important;
transform: translateX(-50%);
}

/* Portrait / small hero photos: show the whole photo on the right instead of stretching it */
.toft-page-hero.toft-page-hero--portrait { background: #0e140d; }
.toft-page-hero--portrait .toft-page-hero-image { object-fit: contain; object-position: 88% center; }
.toft-page-hero--portrait:hover .toft-page-hero-image { transform: none; }
@media (max-width: 767px) {
.toft-page-hero--portrait .toft-page-hero-image { object-position: center; opacity: .6; }
}
