/* Shared layout and content primitives for all custom page templates. */
.ogis-container {
  margin-left: auto;
  margin-right: auto;
  width: min(1160px, calc(100% - 48px));
}

.ogis-container-narrow { max-width: 900px; }
.ogis-section { padding: 92px 0; }
.ogis-section-muted { background: var(--ogis-color-surface, #f5f0e6); }

.ogis-banner {
  background: linear-gradient(135deg, var(--ogis-color-forest, #0e2219), var(--ogis-color-heading, #1a3d28) 55%, var(--ogis-color-primary, #3a8c5c));
  overflow: hidden;
  padding: 110px 0;
  position: relative;
}
.ogis-banner-grid { align-items: center; display: grid; gap: 70px; grid-template-columns: 1.08fr .92fr; position: relative; z-index: 1; }
.ogis-banner.ogis-banner h1 { color: #fff; font-family: var(--ogis-font-heading, "Roboto Slab", Georgia, serif); font-size: clamp(35px, 5vw, 53px); font-weight: 700; letter-spacing: -1px; line-height: 1.18; margin: 0 0 24px; padding: 0; }
.ogis-banner h1 em { color: var(--ogis-color-accent, #7ec99a); font-style: normal; }
.ogis-banner-lead { color: rgba(255,255,255,.8); font-size: 17px; line-height: 1.7; margin: 0 0 34px; max-width: 720px; padding: 0; }
.ogis-banner-pill { align-items: center; background: rgba(126,201,154,.16); border-radius: 30px; color: #b9dfc7; display: inline-flex; font-size: 12px; font-weight: 700; gap: 9px; margin: 0 0 22px!important; padding: 5px 13px!important; }
.ogis-banner-pill span { background: var(--ogis-color-accent, #7ec99a); border-radius: 50%; height: 7px; width: 7px; }
.ogis-banner-aside > :first-child { margin-top: 0; }
.ogis-banner-glow { border-radius: 50%; filter: blur(20px); pointer-events: none; position: absolute; }
.ogis-banner-glow-one { background: rgba(126,201,154,.18); height: 500px; left: -170px; top: 0; width: 500px; }
.ogis-banner-glow-two { background: rgba(255,255,255,.1); height: 420px; right: -140px; top: -180px; width: 420px; }

.ogis-kicker {
  color: var(--ogis-color-primary, #3a8c5c);
  font-family: var(--ogis-font-body, "Plus Jakarta Sans", Helvetica, Arial, sans-serif);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.7px;
  margin: 0 0 12px;
  padding: 0;
  text-transform: uppercase;
}

.ogis-section-heading { margin: 0 0 38px; }
.ogis-section-heading > p:last-child { max-width: 720px; }
.ogis-section-heading h2,.ogis-cta h2 {
  color: var(--ogis-color-heading, #1a3d28);
  font-family: var(--ogis-font-heading, "Roboto Slab", Georgia, serif);
  font-size: clamp(26px, 3.5vw, 30px);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.18;
  margin: 0 0 12px;
  padding: 0;
}

.ogis-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; }
.ogis-button {
  align-items: center;
  border-radius: 6px;
  display: inline-flex;
  font-family: var(--ogis-font-body, "Plus Jakarta Sans", Helvetica, Arial, sans-serif);
  font-size: 15px;
  font-weight: 750;
  gap: 14px;
  justify-content: center;
  line-height: 1.25;
  padding: 13px 24px;
  text-align: center;
  transition: .2s ease;
}
.ogis-button:hover { transform: translateY(-2px); }
.ogis-button-primary { background: var(--ogis-color-primary, #3a8c5c); color: #fff !important; }
.ogis-button-primary:hover { background: var(--ogis-color-primary-hover, #2d7048); }
.ogis-button-dark { background: var(--ogis-color-forest, #0e2219); color: #fff !important; }
.ogis-button-outline { border: 1px solid rgba(255,255,255,.45); color: #fff !important; }

.ogis-card {
  background: #fff;
  border: 1px solid #e8ebe8;
  border-radius: 13px;
  padding: 27px;
  transition: .2s ease;
}
.ogis-card:hover { box-shadow: 0 12px 30px rgba(20,60,30,.09); transform: translateY(-3px); }

.ogis-table-wrap { border: 1px solid #e6e9e6; border-radius: 13px; overflow: hidden; }
.ogis-table { border-collapse: collapse; table-layout: fixed; width: 100%; }
.ogis-table th,.ogis-table td { border: 0; font-size: 12px; padding: 13px 16px; text-align: center; vertical-align: middle; }
.ogis-table thead { background: var(--ogis-color-forest, #0e2219); color: #fff; }
.ogis-table thead th { color: #fff; font-weight: 700; }
.ogis-table thead th:first-child,.ogis-table tbody th { text-align: left; width: 36%; }
.ogis-table tbody th { color: var(--ogis-color-heading, #1a3d28); font-weight: 700; }
.ogis-table tbody tr:nth-child(odd) { background: #fff; }
.ogis-table tbody tr:nth-child(even) { background: #eaf4ef; }
.ogis-table td { color: var(--ogis-color-body, #4a6555); }

.ogis-faq .ogis-section-heading { margin-bottom: 38px; text-align: center; }
.ogis-accordion { background: #fff; border: 1px solid #e6e9e6; border-radius: 15px; padding: 0 30px; }
.ogis-faq-item { border-bottom: 1px solid #e8e8e8; }
.ogis-faq-item:last-child { border: 0; }
.ogis-faq-item button {
  align-items: center;
  background: none;
  border: 0;
  color: var(--ogis-color-heading, #1a3d28);
  cursor: pointer;
  display: flex;
  font: 600 15px/1.4 var(--ogis-font-body, "Plus Jakarta Sans", sans-serif);
  justify-content: space-between;
  padding: 21px 0;
  text-align: left;
  width: 100%;
}
.ogis-faq-item button i { align-items: center; background: #eee; border-radius: 50%; color: var(--ogis-color-primary, #3a8c5c); display: flex; flex: 0 0 25px; font-style: normal; height: 25px; justify-content: center; }
.ogis-faq-item button[aria-expanded="true"] i { background: var(--ogis-color-primary, #3a8c5c); color: #fff; }
.ogis-faq-answer p { font-size: 14px; margin: 0; padding: 0 40px 20px 0; }
.ogis-faq-answer[hidden] { display: none; }

.ogis-cta { padding: 105px 0; }
.ogis-cta-dark { background: linear-gradient(135deg, var(--ogis-color-forest, #0e2219), var(--ogis-color-heading, #1a3d28) 55%, var(--ogis-color-primary, #3a8c5c)); color: rgba(255,255,255,.8); }
.ogis-cta.ogis-cta-dark h2 { color: #fff; }
.ogis-cta-dark .ogis-kicker { color: var(--ogis-color-accent, #7ec99a); }
.ogis-cta-light { background: #dcefe3; color: var(--ogis-color-body, #4a6555); }
.ogis-cta > .ogis-container > p:not(.ogis-kicker) { font-size: 17px; margin: 0 0 32px; max-width: 850px; }
.ogis-cta-centered { text-align: center; }
.ogis-cta-centered > .ogis-container > p { margin-left: auto; margin-right: auto; }
.ogis-cta-centered .ogis-actions { justify-content: center; }

@media (max-width: 800px) {
  .ogis-section { padding: 70px 0; }
  .ogis-banner { padding: 78px 0; }
  .ogis-banner-grid { gap: 42px; grid-template-columns: 1fr; }
  .ogis-table-wrap { border-radius: 0; overflow: visible; }
  .ogis-table,.ogis-table tbody,.ogis-table tr,.ogis-table th,.ogis-table td { display: block; width: 100%; }
  .ogis-table thead { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
  .ogis-table tbody { display: grid; gap: 14px; }
  .ogis-table tbody tr { background: #fff !important; border: 1px solid #dce4de; border-radius: 10px; overflow: hidden; }
  .ogis-table tbody th { background: var(--ogis-color-forest, #0e2219); color: #fff; padding: 13px 16px; }
  .ogis-table td { display: grid; gap: 12px; grid-template-columns: 90px 1fr; padding: 10px 16px; text-align: left; }
  .ogis-table td:nth-child(odd) { background: #eaf4ef; }
  .ogis-table td::before { color: var(--ogis-color-heading, #1a3d28); content: attr(data-label); font-weight: 700; }
}

@media (max-width: 520px) {
  .ogis-container { width: min(100% - 32px, 1160px); }
  .ogis-actions { align-items: stretch; flex-direction: column; }
  .ogis-button { width: 100%; }
  .ogis-accordion { padding: 0 20px; }
}
