/* Hardwood Forestry Fund — site theme (replaces the missing MemberClicks template stylesheet) */

:root {
  --green-900: #1f3a24;
  --green-700: #2e5a34;
  --green-500: #4a7c43;
  --green-100: #eef4ea;
  --wood: #8a5a2b;
  --text: #2b2b2b;
  --muted: #5f6b61;
  --border: #dde5d8;
  --max: 1180px;
}

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

html { -webkit-text-size-adjust: 100%; }

body#bkg {
  margin: 0;
  font-family: 'Roboto', Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  color: var(--text);
  background: #f6f8f4;
}

img { max-width: 100%; height: auto; }
iframe, video, embed, object { max-width: 100%; }

a { color: var(--green-700); text-decoration: underline; text-underline-offset: 2px; }
a:hover, a:focus { color: var(--wood); }

h1, h2, h3, h4, h5, h6 {
  font-family: 'Roboto', Helvetica, Arial, sans-serif;
  color: var(--green-900);
  line-height: 1.25;
  margin: 1.2em 0 0.5em;
  font-weight: 700;
}
h1 { font-size: 2.1rem; margin-top: 0; }
h2, .h2 { font-size: 1.55rem; }
h3 { font-size: 1.3rem; }
h4, .h4 { font-size: 1.15rem; }
h5, h6 { font-size: 1rem; }
p { margin: 0 0 1em; }
ul, ol { padding-left: 1.4em; }

.clarence { clear: both; }

.site-width {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 20px;
}

/* Viewport markers read by mc-respond JS */
#viewports div { display: none; height: 0; overflow: hidden; }
@media (max-width: 767px) { #viewports #phone-landscape { display: block; } }
@media (min-width: 768px) and (max-width: 1023px) { #viewports #tablet-portrait { display: block; } }
@media (min-width: 1024px) { #viewports #tablet-landscape { display: block; } }

.site-container { min-height: 100vh; display: flex; flex-direction: column; }
#site-wrap { flex: 1 0 auto; }

/* Features from the old member platform that don't work on this site */
.login-container,
#search-container,
#pbmc-wrap { display: none !important; }

/* ---------- Header ---------- */
#header {
  background: #fff;
  border-bottom: 4px solid var(--green-700);
}
#header .site-width {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  padding-bottom: 14px;
}
.mc-logo-link img { display: block; width: 125px; }

/* ---------- Mobile menu bar ---------- */
#menu-button {
  display: none;
  background: var(--green-900);
  position: relative;
  z-index: 50;
}
#menu-button .site-width {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52px;
}
#menu-button a.toggle-menu,
#menu-button a.member-login-link {
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 14px 0;
}
#menu-button a.toggle-menu::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 14px;
  margin-right: 10px;
  vertical-align: -1px;
  background: linear-gradient(#fff, #fff) 0 0 / 100% 2px no-repeat,
              linear-gradient(#fff, #fff) 0 6px / 100% 2px no-repeat,
              linear-gradient(#fff, #fff) 0 12px / 100% 2px no-repeat;
  font-family: inherit !important;
}
.mobile-menu {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
}
.mobile-menu > ul {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
  background: var(--green-700);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}
.mobile-menu ul ul {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
  background: var(--green-900);
}
.mobile-menu li.expand > ul { display: block; }
.mobile-menu li a,
.mobile-menu li .separator {
  display: block;
  padding: 13px 20px;
  color: #fff;
  text-decoration: none;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  cursor: pointer;
}
.mobile-menu ul ul a { padding-left: 36px; font-size: 0.95rem; }
.mobile-menu li.parent > a,
.mobile-menu li.parent > .separator { position: relative; padding-right: 48px; }
.mobile-menu li.parent > a::after,
.mobile-menu li.parent > .separator::after {
  content: "+";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.3rem;
  line-height: 1;
}
.mobile-menu li.parent.expand > a::after,
.mobile-menu li.parent.expand > .separator::after { content: "\2212"; }
.mobile-menu li a:hover,
.mobile-menu li .separator:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }

/* ---------- Desktop menu ---------- */
#menu-container {
  background: var(--green-700);
  position: relative;
  z-index: 40;
}
#primary-menu ul { list-style: none; margin: 0; padding: 0; }
#primary-menu .resp-menu { display: flex; flex-wrap: wrap; }
#primary-menu .resp-menu > li { position: relative; }
#primary-menu .resp-menu > li > a,
#primary-menu .resp-menu > li > .separator {
  display: block;
  padding: 16px 18px;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.03em;
  cursor: pointer;
}
#primary-menu .resp-menu > li.parent > a::after,
#primary-menu .resp-menu > li.parent > .separator::after {
  content: "";
  display: inline-block;
  margin-left: 8px;
  border: 4px solid transparent;
  border-top-color: currentColor;
  vertical-align: 1px;
  transform: translateY(2px);
}
#primary-menu .resp-menu > li:hover > a,
#primary-menu .resp-menu > li:hover > .separator,
#primary-menu .resp-menu > li.active > a,
#primary-menu .resp-menu > li.active > .separator { background: var(--green-900); color: #fff; }
#primary-menu .resp-menu li ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 240px;
  background: #fff;
  border-top: 3px solid var(--wood);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15);
}
#primary-menu .resp-menu li.turn-left ul { left: auto; right: 0; }
#primary-menu .resp-menu li:hover > ul,
#primary-menu .resp-menu li:focus-within > ul { display: block; }
#primary-menu .resp-menu li ul a {
  display: block;
  padding: 11px 18px;
  color: var(--text);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
}
#primary-menu .resp-menu li ul a:hover { background: var(--green-100); color: var(--green-900); }

/* ---------- Slider ---------- */
#featured-content { background: var(--green-900); }
#featured-content .site-width { padding: 0; max-width: var(--max); }
#featured-content .moduletable { margin: 0; }
.slider-wrapper { position: relative; }
.nivoSlider { background: var(--green-900); }
.nivoSlider img { width: 100%; height: auto; display: block; }

/* ---------- Content ---------- */
#content-wrap { padding: 40px 0 56px; }
#content-wrap > .site-width { display: flex; gap: 40px; align-items: flex-start; }
#content-padding {
  flex: 1 1 auto;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 36px 40px;
}
#content-wrap .side-bar {
  flex: 0 0 280px;
  background: #fff;
  border: 1px solid var(--border);
  border-top: 4px solid var(--wood);
  border-radius: 6px;
  padding: 24px;
  font-size: 0.95rem;
}
#content-wrap .side-bar h3 { margin-top: 0; font-size: 1.2rem; }
#content-wrap .side-bar div,
#content-wrap .side-bar span { text-align: left !important; }

#component-wrap { overflow-wrap: break-word; }
table.contentpaneopen { width: 100%; border-collapse: collapse; table-layout: fixed; }
table.contentpaneopen > tbody > tr > td,
table.contentpaneopen > tr > td { padding: 0; vertical-align: top; }
.article_separator { display: none; }

/* Content tables scroll horizontally instead of breaking layout */
.table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100% !important; width: auto !important; }
.scroll-indicator { position: relative; }
#component-wrap table table { max-width: 100%; border-collapse: collapse; }
#component-wrap table table td,
#component-wrap table table th { padding: 8px 10px; vertical-align: top; }
#component-wrap img[align="left"], #component-wrap img[style*="float: left"] { margin: 0 20px 12px 0 !important; }
#component-wrap img[align="right"], #component-wrap img[style*="float: right"] { margin: 0 0 12px 20px !important; }

/* Homepage layout */
.home-template-01 .home-main .textwidget:first-of-type {
  font-size: 1.2rem;
  color: var(--green-700);
  font-weight: 700;
}
.home-template-01 .sub-modules {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 24px;
}
.home-template-01 .home-sub {
  background: var(--green-100);
  border-radius: 6px;
  padding: 24px;
}
.home-template-01 .home-sub h2 { margin-top: 0; }
#component-wrap h6 a,
.cs-button {
  display: inline-block;
  background: var(--green-700);
  color: #fff;
  text-decoration: none;
  padding: 10px 22px;
  border-radius: 4px;
  font-size: 0.95rem;
  font-weight: 700;
}
#component-wrap h6 a:hover,
.cs-button:hover { background: var(--wood); color: #fff; }

/* ---------- Coming soon ---------- */
.coming-soon-block {
  text-align: center;
  padding: 48px 12px;
}
.coming-soon-block h1,
.coming-soon-block h2 { margin-top: 12px; }
.coming-soon-block p { max-width: 560px; margin-left: auto; margin-right: auto; color: var(--muted); }
.cs-badge {
  display: inline-block;
  background: var(--green-100);
  color: var(--green-700);
  border: 1px solid var(--green-500);
  border-radius: 999px;
  padding: 4px 14px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.cs-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; }
.cs-button-alt { background: #fff; color: var(--green-700); border: 2px solid var(--green-700); }

/* ---------- Footer ---------- */
#footer {
  background: var(--green-900);
  color: rgba(255, 255, 255, 0.85);
  padding: 24px 0;
  font-size: 0.9rem;
}
#footer .site-width { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
#footer p { margin: 0; }
#footer a { color: #fff; }
#footer .socnets ul { list-style: none; margin: 0; padding: 0; }
#RTT { text-decoration: none; }
#RTT .icon-arrow-up { font-size: 0.8em; }

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
  #menu-button { display: block; }
  #menu-container { display: none; }
  #header .site-width { justify-content: center; }
  #content-wrap > .site-width { flex-direction: column; gap: 24px; }
  #content-wrap .side-bar { flex: none; width: 100%; }
}

@media (max-width: 767px) {
  body#bkg { font-size: 15px; }
  h1 { font-size: 1.65rem; }
  h2, .h2 { font-size: 1.3rem; }
  h3 { font-size: 1.15rem; }
  .site-width { padding: 0 14px; }
  #content-wrap { padding: 20px 0 32px; }
  #content-padding { padding: 22px 18px; }
  .home-template-01 .sub-modules { grid-template-columns: 1fr; }
  .nivo-directionNav { display: none; }
  #footer .site-width { flex-direction: column; text-align: center; }

  #component-wrap table table td { min-width: 120px; }
  #component-wrap img { float: none !important; display: block; margin: 0 auto 14px !important; }
  #component-wrap [style*="width"] { max-width: 100% !important; }
}
