/* =========================================================
   Oase Gemeente — Global Design Layer
   Source: Oase Website Redevelopment Pack v1
   Cleaned working version
   ========================================================= */

/* ---------------------------------------------------------
   1. Design tokens
--------------------------------------------------------- */

:root {
  --oase-teal: #0099A8;
  --oase-teal-dark: #007A85;
  --oase-teal-deep-dark: #015057;
  --oase-cyan: #00A6CE;
  --oase-green: #00AE42;
  --oase-leaf: #61A60E;
  --oase-charcoal: #51534A;
  --oase-text: #2F332E;
  --oase-muted: #6B7067;
  --oase-soft-bg: #FAF8F3;
  --oase-soft-teal: #EAF8FA;
  --oase-border: #DCE7E4;

  --oase-radius-lg: 28px;
  --oase-radius-md: 18px;
  --oase-radius-pill: 999px;

  --oase-shadow-soft: 0 12px 35px rgba(47, 51, 46, 0.08);
  --oase-shadow-card: 0 10px 26px rgba(47, 51, 46, 0.07);

  --oase-container: 1180px;

  --oase-font-heading: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --oase-font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --oase-font-accent: "Kalam", cursive;
}

/* ---------------------------------------------------------
   2. Base styles
--------------------------------------------------------- */

body {
  background: var(--oase-soft-bg);
  color: var(--oase-text);
  font-family: var(--oase-font-body);
}

.wp-site-blocks > main,
.entry-content {
  overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--oase-charcoal);
  font-family: var(--oase-font-heading);
  line-height: 1.08;
  letter-spacing: -0.03em;
}

p {
  color: var(--oase-muted);
  line-height: 1.7;
}

a {
  color: var(--oase-teal-dark);
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--oase-teal);
}

/* ---------------------------------------------------------
   3. Layout helpers
--------------------------------------------------------- */

.oase-container {
  max-width: var(--oase-container);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1rem, 4vw, 2rem);
  padding-right: clamp(1rem, 4vw, 2rem);
}

.entry-content > .oase-container,
.wp-block-post-content > .oase-container {
  max-width: var(--oase-container);
  width: calc(100% - 32px);
  margin-left: auto;
  margin-right: auto;
}

.entry-content > .alignfull,
.wp-block-post-content > .alignfull {
  max-width: none;
}

.oase-section {
  padding-top: clamp(3rem, 6vw, 5.5rem);
  padding-bottom: clamp(3rem, 6vw, 5.5rem);
}

.oase-section-tight {
  padding-top: clamp(2rem, 4vw, 3.5rem);
  padding-bottom: clamp(2rem, 4vw, 3.5rem);
}

.oase-card {
  background: #ffffff;
  border: 1px solid var(--oase-border);
  border-radius: var(--oase-radius-lg);
  box-shadow: var(--oase-shadow-card);
  padding: clamp(1.2rem, 2vw, 1.8rem);
}

.oase-card p:last-child {
  margin-bottom: 0;
}

.oase-accent {
  color: var(--oase-teal-dark);
  font-family: var(--oase-font-accent);
  font-weight: 700;
  margin-bottom: 0.4rem;
}

@media (max-width: 782px) {
  .oase-card {
    border-radius: 22px;
  }

  .oase-section {
    padding-top: 2.8rem;
    padding-bottom: 2.8rem;
  }
}

/* ---------------------------------------------------------
   4. Buttons
--------------------------------------------------------- */

.wp-block-button__link,
.wp-element-button {
  border-radius: var(--oase-radius-pill);
  padding: 0.85rem 1.35rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: none;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
  transform: translateY(-1px);
  box-shadow: var(--oase-shadow-soft);
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--oase-teal);
  color: #ffffff;
}

.wp-block-button.is-style-outline .wp-block-button__link {
  border: 1.5px solid var(--oase-teal);
  color: var(--oase-teal-dark);
  background: transparent;
}

/* ---------------------------------------------------------
   5. Header
--------------------------------------------------------- */

.wp-block-template-part:has(.oase-site-header) {
  position: sticky;
  top: 0;
  z-index: 999;
}

.oase-site-header {
  background: transparent;
  position: relative;
  top: 0;
  z-index: 50;
  padding-top: 14px;
  padding-bottom: 10px;
}

.oase-header-row {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1rem, 3vw, 2rem);
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--oase-border);
  border-radius: var(--oase-radius-lg);
  box-shadow: var(--oase-shadow-soft);
  backdrop-filter: blur(10px);
}

.oase-header-row.oase-container {
  max-width: var(--oase-container);
  width: calc(100% - 32px);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1rem, 3vw, 1.6rem);
  padding-right: clamp(0.6rem, 2vw, 1rem);
}

.oase-header-row .wp-block-site-logo,
.oase-header-row .wp-block-site-title {
  flex: 0 0 auto;
}

.oase-header-row .wp-block-site-logo img {
  max-height: 54px;
  width: auto;
}

.oase-header-row .wp-block-navigation {
  flex: 1 1 auto;
  justify-content: center;
}

.oase-header-row .wp-block-navigation,
.oase-header-row .wp-block-navigation a,
.oase-header-row .wp-block-buttons,
.oase-header-row .wp-block-button__link {
  font-family: var(--oase-font-body);
}

.oase-header-row .wp-block-navigation a {
  color: var(--oase-charcoal);
  font-weight: 650;
  text-decoration: none;
}

.oase-header-row .wp-block-navigation a:hover {
  color: var(--oase-teal-dark);
}

.oase-header-row .wp-block-site-title a {
  color: var(--oase-charcoal);
  font-weight: 800;
  text-decoration: none;
}

.oase-header-row .wp-block-buttons {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  margin-bottom: 0;
}

.oase-header-row .wp-block-button {
  margin-bottom: 0;
}

.oase-header-row .wp-block-button__link,
.oase-header-row .wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding-top: 0.72rem !important;
  padding-bottom: 0.72rem !important;
  line-height: 1.1 !important;
}

body.admin-bar .wp-block-template-part:has(.oase-site-header) {
  top: 32px;
}

@media (max-width: 782px) {
  .oase-site-header {
    padding-top: 10px;
    padding-bottom: 8px;
  }

  .oase-header-row {
    min-height: 66px;
    border-radius: 28px;
  }

  .oase-header-row .wp-block-site-logo img {
    max-height: 44px;
  }

  body.admin-bar .wp-block-template-part:has(.oase-site-header) {
    top: 46px;
  }
}

/* ---------------------------------------------------------
   6. Footer
--------------------------------------------------------- */

.oase-site-footer {
  background: var(--oase-charcoal);
  color: #ffffff;
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding-top: clamp(2.2rem, 5vw, 3.4rem);
  padding-bottom: clamp(1.1rem, 2.5vw, 1.7rem);
  font-size: 0.95rem;
}

.oase-footer-inner.oase-container {
  max-width: var(--oase-container);
  width: calc(100% - 32px);
  margin-left: auto;
  margin-right: auto;
}

.oase-footer-inner,
.oase-footer-inner p,
.oase-footer-inner li,
.oase-footer-inner a,
.oase-footer-inner .wp-block-button__link {
  font-family: var(--oase-font-body);
}

.oase-footer-inner {
  color: #ffffff;
}

.oase-footer-inner h2,
.oase-footer-inner h3,
.oase-footer-inner h4 {
  color: #ffffff;
  font-size: clamp(1.05rem, 1.2vw, 1.2rem);
  line-height: 1.2;
  margin-bottom: 0.75rem;
}

.oase-footer-inner p,
.oase-footer-inner li,
.oase-footer-inner a {
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(0.88rem, 0.95vw, 0.95rem);
  line-height: 1.45;
}

.oase-footer-inner p {
  margin-top: 0;
  margin-bottom: 0.35rem;
}

.oase-footer-inner ul {
  margin-top: 0.4rem;
  margin-bottom: 0;
  padding-left: 1.1rem;
}

.oase-footer-inner li {
  margin-bottom: 0.28rem;
}

.oase-footer-inner a {
  text-decoration: none;
}

.oase-footer-inner a:hover {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.oase-footer-inner .wp-block-columns {
  gap: clamp(2rem, 5vw, 4rem);
}

.oase-footer-inner .wp-block-button__link,
.oase-footer-inner .wp-element-button {
  font-size: 0.9rem;
  padding: 0.72rem 1.1rem;
}

.oase-site-footer .wp-block-button__link,
.oase-site-footer .wp-element-button {
  background-color: var(--oase-teal) !important;
  color: #ffffff !important;
  border: 1px solid var(--oase-teal) !important;
  text-decoration: none !important;
}

.oase-site-footer .wp-block-button__link:hover,
.oase-site-footer .wp-block-button__link:focus,
.oase-site-footer .wp-block-button__link:active,
.oase-site-footer .wp-element-button:hover,
.oase-site-footer .wp-element-button:focus,
.oase-site-footer .wp-element-button:active {
  background-color: var(--oase-soft-teal) !important;
  color: var(--oase-charcoal) !important;
  border-color: var(--oase-soft-teal) !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

@media (max-width: 782px) {
  .oase-site-footer {
    margin-top: 2.5rem;
  }
}

/* ---------------------------------------------------------
   7. Compact page header
--------------------------------------------------------- */

.oase-page-header {
  text-align: center;
}

.oase-page-header.oase-section-tight {
  padding-top: clamp(1.4rem, 3vw, 2.4rem);
  padding-bottom: clamp(2rem, 4vw, 3rem);
}

.oase-page-header h1,
.oase-page-header h2 {
  max-width: 760px;
  margin-top: 0;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0.9rem;
}

.oase-page-header p:not(.oase-accent) {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
}

.oase-page-header p {
  margin-bottom: 0;
}

.oase-page-header .oase-accent {
  font-size: clamp(1.45rem, 2.2vw, 1.9rem);
  line-height: 1.05;
  margin-bottom: 0.35rem;
}

/* ---------------------------------------------------------
   8. Info bar
--------------------------------------------------------- */

.oase-info-bar {
  background: var(--oase-teal-dark);
  color: #ffffff;
  border-radius: 18px;
  box-shadow: var(--oase-shadow-soft);
  padding: clamp(1.1rem, 2vw, 1.4rem) clamp(1.2rem, 2.5vw, 2rem);
}

.oase-info-bar p,
.oase-info-bar a,
.oase-info-bar strong {
  color: #ffffff;
}

.oase-info-bar .wp-block-columns {
  margin-bottom: 0;
  gap: 0;
}

.oase-info-bar .wp-block-column {
  border-right: 2px solid rgba(255, 255, 255, 0.22);
  padding-left: clamp(0.9rem, 1.8vw, 1.4rem);
  padding-right: clamp(0.9rem, 1.8vw, 1.4rem);
}

.oase-info-bar .wp-block-column:first-child {
  padding-left: 0;
}

.oase-info-bar .wp-block-column:last-child {
  border-right: none;
  padding-right: 0;
}

.oase-info-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.oase-info-icon {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  margin: 0;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.oase-info-icon svg {
  width: 34px;
  height: 34px;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.oase-info-icon svg circle,
.oase-info-icon svg path {
  stroke: currentColor;
}

.oase-info-label {
  margin: 0 0 0.18rem 0;
  color: #ffffff !important;
  font-family: var(--oase-font-body);
  font-size: clamp(0.9rem, 1vw, 1rem);
  font-weight: 800;
  line-height: 1.2;
}

.oase-info-text {
  margin: 0;
  color: rgba(255, 255, 255, 0.84) !important;
  font-family: var(--oase-font-body);
  font-size: clamp(0.78rem, 0.9vw, 0.9rem);
  line-height: 1.35;
}

.oase-info-bar h1,
.oase-info-bar h2,
.oase-info-bar h3,
.oase-info-bar h4,
.oase-info-bar h5,
.oase-info-bar h6 {
  color: #ffffff !important;
  font-size: 1rem;
  line-height: 1.2;
  margin: 0;
}

@media (max-width: 900px) {
  .oase-info-bar .wp-block-columns {
    flex-wrap: wrap !important;
  }

  .oase-info-bar .wp-block-column {
    flex-basis: 50% !important;
    border-right: none;
    border-bottom: 2px solid rgba(255, 255, 255, 0.18);
    padding: 1rem;
  }

  .oase-info-bar .wp-block-column:nth-child(odd) {
    border-right: 2px solid rgba(255, 255, 255, 0.18);
  }

  .oase-info-bar .wp-block-column:nth-last-child(-n + 2) {
    border-bottom: none;
  }
}

@media (max-width: 782px) {
  .oase-info-bar .wp-block-column {
    border-right: none;
    border-bottom: 2px solid rgba(255, 255, 255, 0.22);
    padding-right: 0;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
  }

  .oase-info-bar .wp-block-column:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
  }
}

@media (max-width: 600px) {
  .oase-info-bar .wp-block-column {
    flex-basis: 100% !important;
    border-right: none !important;
    border-bottom: 2px solid rgba(255, 255, 255, 0.18);
    padding: 1rem 0;
  }

  .oase-info-bar .wp-block-column:first-child {
    padding-top: 0;
  }

  .oase-info-bar .wp-block-column:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
}

/* ---------------------------------------------------------
   9. Soft card grid
--------------------------------------------------------- */

.oase-card-section {
  text-align: center;
}

.oase-card-section > h2,
.oase-card-section > .wp-block-heading:first-child {
  position: relative;
  display: inline-block;
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(1.45rem, 2vw, 2rem);
  line-height: 1.1;
}

.oase-card-section > h2::after,
.oase-card-section > .wp-block-heading:first-child::after {
  content: "";
  display: block;
  width: 52px;
  height: 3px;
  border-radius: 999px;
  background: var(--oase-teal);
  margin: 0.55rem auto 0 auto;
}

.oase-card-section > p {
  display: none;
}

.oase-card-grid {
  gap: clamp(1rem, 2vw, 1.4rem);
  margin-top: 0.35rem;
}

.oase-soft-card {
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 18px;
  box-shadow: 0 8px 22px rgba(47, 51, 46, 0.045);
  padding: 0.95rem 1.15rem;
  text-align: left;
  height: 100%;
}

.oase-soft-card-row {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.oase-soft-card-content {
  flex: 1 1 auto;
}

.oase-soft-card-content h3,
.oase-soft-card-content h4,
.oase-soft-card h3,
.oase-soft-card h4 {
  margin: 0 0 0.35rem 0;
  font-size: clamp(0.95rem, 1vw, 1.08rem);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.oase-soft-card-content p,
.oase-soft-card p {
  margin: 0;
  font-size: clamp(0.78rem, 0.88vw, 0.88rem);
  line-height: 1.45;
  color: var(--oase-muted);
}

.oase-card-icon {
  width: 56px;
  height: 56px;
  min-width: 56px;
  border-radius: 999px;
  background: #eef8f8;
  color: var(--oase-teal-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.oase-card-icon svg {
  width: 32px;
  height: 32px;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.oase-card-icon svg path,
.oase-card-icon svg circle,
.oase-card-icon svg rect {
  stroke: currentColor;
}

@media (max-width: 900px) {
  .oase-soft-card {
    padding: 1.15rem 1.2rem;
  }
}

@media (max-width: 782px) {
  .oase-soft-card-row {
    align-items: flex-start;
  }
}

/* ---------------------------------------------------------
   10. Link card grid
--------------------------------------------------------- */

.oase-link-section {
  text-align: center;
}

.oase-link-section > h2,
.oase-link-section > .wp-block-heading:first-child {
  position: relative;
  display: inline-block;
  margin-top: 0;
  margin-bottom: 1.2rem;
  font-size: clamp(1.25rem, 1.6vw, 1.65rem);
  line-height: 1.1;
}

.oase-link-section > h2::after,
.oase-link-section > .wp-block-heading:first-child::after {
  content: "";
  display: block;
  width: 52px;
  height: 3px;
  border-radius: 999px;
  background: var(--oase-teal);
  margin: 0.55rem auto 0 auto;
}

.oase-link-grid {
  gap: clamp(0.9rem, 1.8vw, 1.2rem);
  margin-top: 0.35rem;
}

.oase-link-card {
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 18px;
  box-shadow: 0 8px 22px rgba(47, 51, 46, 0.045);
  padding: 1.1rem 0.85rem;
  text-align: center;
  height: 100%;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.oase-link-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(47, 51, 46, 0.075);
  border-color: rgba(0, 153, 168, 0.25);
}

.oase-link-card a {
  text-decoration: none;
  color: inherit;
}

.oase-link-section .oase-link-grid .oase-link-card h3,
.oase-link-section .oase-link-grid .oase-link-card h4,
.oase-link-section .oase-link-grid .oase-link-card .wp-block-heading,
.oase-link-card .wp-block-heading.has-manrope-font-family,
.oase-link-card .wp-block-heading.has-kalam-font-family,
.oase-link-card .wp-block-heading.has-inter-font-family {
  margin: 0.45rem 0 0.3rem 0 !important;
  font-family: var(--oase-font-heading) !important;
  font-size: clamp(0.82rem, 0.9vw, 0.92rem) !important;
  line-height: 1.18 !important;
  font-weight: 800 !important;
  color: var(--oase-charcoal) !important;
  text-decoration: none !important;
  letter-spacing: -0.01em !important;
}

.oase-link-section .oase-link-grid .oase-link-card h3 a,
.oase-link-section .oase-link-grid .oase-link-card h4 a,
.oase-link-section .oase-link-grid .oase-link-card .wp-block-heading a {
  font-family: var(--oase-font-heading) !important;
  color: var(--oase-charcoal) !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  text-decoration: none !important;
}

.oase-link-section .oase-link-grid .oase-link-card h3::after,
.oase-link-section .oase-link-grid .oase-link-card h4::after,
.oase-link-section .oase-link-grid .oase-link-card .wp-block-heading::after {
  content: none !important;
  display: none !important;
}

.oase-link-card p {
  margin: 0;
  font-size: clamp(0.74rem, 0.82vw, 0.82rem);
  line-height: 1.4;
  color: var(--oase-muted);
}

.oase-link-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 0.2rem auto;
  color: var(--oase-teal-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.oase-link-icon svg {
  width: 34px;
  height: 34px;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.oase-link-icon svg path,
.oase-link-icon svg circle,
.oase-link-icon svg rect {
  stroke: currentColor;
}

@media (max-width: 900px) {
  .oase-link-grid {
    flex-wrap: wrap !important;
  }

  .oase-link-grid .wp-block-column {
    flex-basis: calc(33.333% - 1rem) !important;
    flex-grow: 1;
  }
}

@media (max-width: 600px) {
  .oase-link-grid .wp-block-column {
    flex-basis: 100% !important;
  }
}

/* ---------------------------------------------------------
   11. CTA banner
--------------------------------------------------------- */

.oase-cta-section {
  padding-top: clamp(2rem, 4vw, 3rem);
  padding-bottom: clamp(2rem, 4vw, 3rem);
}

.oase-cta-banner {
  position: relative;
  overflow: hidden;
  background: var(--oase-teal-dark);
  color: #ffffff;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-soft);
  padding: clamp(1.6rem, 4vw, 2.4rem) clamp(1.6rem, 5vw, 3rem);
}

.oase-cta-banner::before {
  content: "";
  position: absolute;
  left: -40px;
  bottom: -60px;
  width: 220px;
  height: 220px;
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-radius: 48% 52% 46% 54%;
  transform: rotate(-18deg);
}

.oase-cta-row {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1.2rem, 4vw, 2rem);
}

.oase-cta-content {
  max-width: 720px;
}

.oase-cta-banner .oase-accent {
  color: #ffffff;
  font-size: clamp(1.6rem, 3vw, 2.5rem);
  line-height: 1.1;
  margin: 0 0 0.55rem 0;
}

.oase-cta-banner p:not(.oase-accent) {
  color: rgba(255, 255, 255, 0.88);
  margin: 0;
  font-size: clamp(1rem, 1.2vw, 1.1rem);
}

.oase-cta-banner .oase-cta-content,
.oase-cta-banner .oase-cta-content p {
  text-align: left !important;
}

.oase-cta-banner .wp-block-button__link,
.oase-cta-banner .wp-element-button {
  background: #ffffff;
  color: var(--oase-teal-dark);
  border: 1px solid #ffffff;
  text-decoration: none;
  white-space: nowrap;
  font-family: var(--oase-font-body) !important;
  font-weight: 700;
}

.oase-cta-banner .wp-block-button__link:hover,
.oase-cta-banner .wp-element-button:hover {
  background: var(--oase-soft-teal);
  color: var(--oase-teal-dark);
  border-color: var(--oase-soft-teal);
  text-decoration: none;
  box-shadow: none;
}

@media (max-width: 782px) {
  .oase-cta-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .oase-cta-banner .wp-block-buttons {
    width: 100%;
  }

  .oase-cta-banner .wp-block-button,
  .oase-cta-banner .wp-block-button__link {
    width: 100%;
    text-align: center;
  }
}

/* ---------------------------------------------------------
   12. Homepage hero
--------------------------------------------------------- */

.oase-hero-section {
  padding-top: clamp(2.5rem, 6vw, 5rem);
  padding-bottom: clamp(3rem, 6vw, 5.5rem);
}

.oase-hero-grid {
  align-items: center;
  gap: clamp(2rem, 5vw, 4rem);
  margin-bottom: 0;
}

.oase-hero-content {
  max-width: 560px;
}

.oase-hero-content .oase-accent {
  color: var(--oase-teal-dark);
  font-family: var(--oase-font-accent);
  font-size: clamp(2.25rem, 3.5vw, 3.05rem);
  font-weight: 700;
  line-height: 0.95;
  margin: 0 0 0.12rem 0;
}

.oase-hero-content h1 {
  max-width: 520px;
  margin-top: 0;
  margin-bottom: 1rem;
  color: var(--oase-charcoal);
  font-family: var(--oase-font-heading);
  font-size: clamp(2.05rem, 3.85vw, 3.25rem);
  line-height: 1.04;
  font-weight: 760;
  letter-spacing: -0.04em;
}

.oase-hero-content p:not(.oase-accent) {
  max-width: 540px;
  margin-top: 0;
  margin-bottom: 1.45rem;
  color: var(--oase-text);
  font-family: var(--oase-font-body);
  font-size: clamp(0.98rem, 1.1vw, 1.06rem);
  line-height: 1.68;
}

.oase-hero-content .wp-block-buttons {
  margin-top: 1.25rem;
}

.oase-hero-content .wp-block-button__link,
.oase-hero-content .wp-element-button {
  font-family: var(--oase-font-body) !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
  padding: 0.88rem 1.4rem !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.oase-hero-content .wp-block-button:first-child .wp-block-button__link {
  background: var(--oase-teal-dark) !important;
  color: #ffffff !important;
  border: 1px solid var(--oase-teal-dark) !important;
}

.oase-hero-content .wp-block-button:first-child .wp-block-button__link:hover,
.oase-hero-content .wp-block-button:first-child .wp-block-button__link:focus {
  background: var(--oase-teal) !important;
  color: #ffffff !important;
  border-color: var(--oase-teal) !important;
}

.oase-hero-content .wp-block-button:last-child .wp-block-button__link {
  background: #ffffff !important;
  color: var(--oase-teal-dark) !important;
  border: 1.5px solid rgba(0, 122, 133, 0.45) !important;
}

.oase-hero-content .wp-block-button:last-child .wp-block-button__link:hover,
.oase-hero-content .wp-block-button:last-child .wp-block-button__link:focus {
  background: var(--oase-soft-teal) !important;
  color: var(--oase-teal-dark) !important;
  border-color: rgba(0, 122, 133, 0.65) !important;
}

.oase-hero-visual {
  position: relative;
  min-height: 460px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.oase-hero-visual::before {
  content: "";
  position: absolute;
  width: min(94%, 420px);
  aspect-ratio: 1;
  border: 2px dashed rgba(0, 153, 168, 0.35);
  border-radius: 48% 52% 45% 55% / 52% 45% 55% 48%;
  transform: translate(58px, -50px) rotate(10deg);
  pointer-events: none;
}

.oase-hero-visual::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 42%;
  width: 87px;
  height: 160px;
  background-image: url("../images/oase-leaf.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  opacity: 1;
  pointer-events: none;
  z-index: 0;
  transform: translateX(28px) rotate(-23deg);
}

.oase-hero-visual img {
  position: relative;
  z-index: 1;
  display: block;
  width: min(88%, 390px);
  aspect-ratio: 1;
  height: auto;
  object-fit: cover;
  border-radius: 50%;
  box-shadow: var(--oase-shadow-soft);
  transform: translate(76px, -65px);
}

.oase-hero-badge {
  position: absolute;
  z-index: 2;
  right: 1.5%;
  bottom: 30%;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: #0a8590;
  opacity: 0.95;
  color: #ffffff;
  box-shadow: var(--oase-shadow-card);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1rem;
  transform: translateX(-10px);
}

.oase-hero-badge p {
  margin: 0;
  color: #ffffff !important;
  font-family: var(--oase-font-body);
  line-height: 1.25;
}

.oase-hero-badge p:nth-child(1),
.oase-hero-badge p:nth-child(3) {
  font-size: 0.82rem;
  font-weight: 700;
  opacity: 0.9;
}

.oase-hero-badge p:nth-child(2),
.oase-hero-badge p:nth-child(4) {
  font-size: 1rem;
  font-weight: 800;
}

.oase-hero-badge .wp-block-separator {
  width: 48px;
  margin: 0.65rem 0;
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.45);
}

@media (max-width: 900px) {
  .oase-hero-grid {
    gap: 1.8rem;
  }

  .oase-hero-visual {
    min-height: 390px;
    margin-top: 0.5rem;
  }

  .oase-hero-visual::before {
    width: min(82vw, 360px);
    border-width: 1.4px;
    transform: translate(12px, -4px) rotate(7deg);
  }

  .oase-hero-visual::after {
    left: 2%;
    bottom: 30%;
    width: 60px;
    height: 120px;
    opacity: 0.85;
    transform: translateX(8px) rotate(-18deg);
  }

  .oase-hero-visual img {
    width: min(76vw, 330px);
    transform: translate(8px, -6px);
  }

  .oase-hero-badge {
    width: 122px;
    height: 122px;
    right: 6%;
    bottom: 18%;
    transform: none;
  }
}

@media (max-width: 782px) {
  .oase-hero-content .wp-block-buttons {
    margin-bottom: 1.8rem;
  }

  .oase-hero-visual {
    min-height: 350px;
    margin-top: 0;
  }

  .oase-hero-visual::before {
    width: min(82vw, 315px);
    border-width: 1.3px;
    transform: translate(6px, -2px) rotate(6deg);
  }

  .oase-hero-visual::after {
    left: 1%;
    bottom: 29%;
    width: 52px;
    height: 108px;
    opacity: 0.78;
    transform: translateX(3px) rotate(-18deg);
  }

  .oase-hero-visual img {
    width: min(74vw, 285px);
    transform: translate(0, -4px);
  }

  .oase-hero-badge {
    width: 106px;
    height: 106px;
    right: 5%;
    bottom: 15%;
    padding: 0.75rem;
  }

  .oase-hero-badge p:nth-child(1),
  .oase-hero-badge p:nth-child(3) {
    font-size: 0.72rem;
  }

  .oase-hero-badge p:nth-child(2),
  .oase-hero-badge p:nth-child(4) {
    font-size: 0.88rem;
  }
}

@media (max-width: 480px) {
  .oase-hero-content .wp-block-buttons {
    margin-bottom: 2.1rem;
  }

  .oase-hero-visual {
    min-height: 325px;
  }

  .oase-hero-visual::before {
    width: 285px;
    max-width: 84vw;
    transform: translate(2px, -2px) rotate(6deg);
  }

  .oase-hero-visual::after {
    left: 0;
    bottom: 28%;
    width: 46px;
    height: 96px;
    opacity: 0.72;
    transform: translateX(0) rotate(-18deg);
  }

  .oase-hero-visual img {
    width: min(74vw, 265px);
    transform: translate(0, -2px);
  }

  .oase-hero-badge {
    width: 98px;
    height: 98px;
    right: 3%;
    bottom: 14%;
  }
}

/* ---------------------------------------------------------
   13. Homepage spacing
--------------------------------------------------------- */

.home .entry-content > .oase-container,
.home .wp-block-post-content > .oase-container {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.home .entry-content > * + *,
.home .wp-block-post-content > * + * {
  margin-block-start: 0 !important;
}

.home .oase-hero-section {
  padding-bottom: clamp(1rem, 2vw, 1.7rem) !important;
}

.home .oase-card-section.oase-section {
  padding-top: clamp(0.8rem, 1.6vw, 1.3rem);
  padding-bottom: clamp(1.4rem, 2.5vw, 2rem) !important;
}

.home .oase-hero-section + .oase-card-section.oase-section {
  margin-top: -2rem !important;
  padding-top: 0 !important;
}

.home .oase-info-bar {
  margin-top: 0 !important;
  margin-bottom: clamp(1.4rem, 2.5vw, 2rem) !important;
}

.home .oase-link-section.oase-section-tight {
  padding-top: clamp(1rem, 2vw, 1.6rem) !important;
  padding-bottom: clamp(1.2rem, 2.4vw, 1.9rem) !important;
}

.home .oase-cta-section {
  padding-top: clamp(1rem, 2vw, 1.6rem) !important;
  padding-bottom: clamp(1.8rem, 3vw, 2.8rem) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   14. Simple content cards
--------------------------------------------------------- */

.oase-content-card-section {
  text-align: center;
}

.oase-content-card-section > h2,
.oase-content-card-section > .wp-block-heading:first-child {
  position: relative;
  display: inline-block;
  margin-top: 0;
  margin-bottom: 0.9rem;
  font-size: clamp(1.35rem, 1.8vw, 1.85rem);
  line-height: 1.1;
}

.oase-content-card-section > h2::after,
.oase-content-card-section > .wp-block-heading:first-child::after {
  content: "";
  display: block;
  width: 52px;
  height: 3px;
  border-radius: 999px;
  background: var(--oase-teal);
  margin: 0.55rem auto 0 auto;
}

.oase-content-card-section > p {
  max-width: 720px;
  margin: 0 auto 1.5rem auto;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.oase-content-card-grid {
  gap: clamp(1rem, 2vw, 1.35rem);
  margin-top: 0.5rem;
}

.oase-content-card {
  height: 100%;
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 20px;
  box-shadow: 0 8px 22px rgba(47, 51, 46, 0.045);
  padding: clamp(1.25rem, 2vw, 1.65rem);
  text-align: left;
}

.oase-content-card h3,
.oase-content-card h4,
.oase-content-card .wp-block-heading {
  margin-top: 0;
  margin-bottom: 0.55rem;
  color: var(--oase-charcoal);
  font-family: var(--oase-font-heading);
  font-size: clamp(1rem, 1.1vw, 1.15rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.015em;
}

.oase-content-card p {
  margin: 0;
  color: var(--oase-muted);
  font-size: clamp(0.86rem, 0.95vw, 0.95rem);
  line-height: 1.55;
}

@media (max-width: 782px) {
  .oase-content-card-section {
    text-align: left;
  }

  .oase-content-card-section > h2,
  .oase-content-card-section > .wp-block-heading:first-child {
    display: block;
  }

  .oase-content-card-section > h2::after,
  .oase-content-card-section > .wp-block-heading:first-child::after {
    margin-left: 0;
    margin-right: 0;
  }

  .oase-content-card-section > p {
    margin-left: 0;
    margin-right: 0;
  }
}

/* ---------------------------------------------------------
   15. Kids section
--------------------------------------------------------- */

.oase-kids-section {
  position: relative;
}

.oase-kids-grid {
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 0;
}

.oase-kids-content {
  max-width: 560px;
}

.oase-kids-content .oase-accent {
  font-size: clamp(1.35rem, 2.2vw, 1.9rem);
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.oase-kids-content h2 {
  margin-top: 0;
  margin-bottom: 0.9rem;
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
}

.oase-kids-content p {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.68;
}

.oase-kids-content p:last-child {
  margin-bottom: 0;
}

.oase-kids-card {
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-card);
  padding: clamp(1.4rem, 2.5vw, 2rem);
}

.oase-kids-card h3 {
  margin-top: 0;
  margin-bottom: 0.65rem;
  font-size: clamp(1.08rem, 1.25vw, 1.25rem);
  line-height: 1.2;
}

.oase-kids-card p {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(0.88rem, 0.95vw, 0.96rem);
  line-height: 1.6;
}

.oase-kids-card ul {
  margin: 0;
  padding-left: 1.1rem;
}

.oase-kids-card li {
  margin-bottom: 0.45rem;
  color: var(--oase-muted);
  font-size: clamp(0.88rem, 0.95vw, 0.96rem);
  line-height: 1.45;
}

.oase-kids-card li:last-child {
  margin-bottom: 0;
}

@media (max-width: 782px) {
  .oase-kids-content {
    max-width: none;
  }

  .oase-kids-card {
    border-radius: 22px;
  }
}

/* ---------------------------------------------------------
   16. Inner page section rhythm
--------------------------------------------------------- */

/* Remove WordPress-added vertical gaps between our main page sections */
.entry-content > .oase-container + .oase-container,
.wp-block-post-content > .oase-container + .oase-container {
  margin-top: 0 !important;
}

/* General tighter rhythm when one tight section follows another */
.entry-content > .oase-section-tight + .oase-section-tight,
.wp-block-post-content > .oase-section-tight + .oase-section-tight {
  padding-top: clamp(1rem, 2vw, 1.6rem);
}

/* Specific rhythm: Wat kan jy verwag? → Vir jou kinders */
.entry-content > .oase-content-card-section,
.wp-block-post-content > .oase-content-card-section {
  padding-bottom: clamp(1.3rem, 2.4vw, 2rem);
}

.entry-content > .oase-content-card-section + .oase-kids-section,
.wp-block-post-content > .oase-content-card-section + .oase-kids-section {
  padding-top: clamp(1rem, 2vw, 1.5rem);
}

/* Specific rhythm: Vir jou kinders → CTA banner */
.entry-content > .oase-kids-section,
.wp-block-post-content > .oase-kids-section {
  padding-bottom: clamp(1rem, 2vw, 1.5rem);
}

.entry-content > .oase-kids-section + .oase-cta-section,
.wp-block-post-content > .oase-kids-section + .oase-cta-section {
  padding-top: clamp(0.5rem, 1.2vw, 0.9rem);
}

/* ---------------------------------------------------------
   17. Help panel section
--------------------------------------------------------- */

.oase-help-section {
  padding-top: clamp(1rem, 2vw, 1.6rem);
  padding-bottom: clamp(1rem, 2vw, 1.6rem);
}

.oase-help-panel {
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-card);
  padding: clamp(1.4rem, 3vw, 2.2rem);
}

.oase-help-grid {
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 0;
}

.oase-help-content .oase-accent {
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.oase-help-content h2 {
  margin-top: 0;
  margin-bottom: 0.8rem;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.oase-help-content p {
  margin-top: 0;
  margin-bottom: 0;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.oase-help-card {
  background: var(--oase-soft-teal);
  border-radius: 20px;
  padding: clamp(1.1rem, 2vw, 1.5rem);
}

.oase-help-card h3 {
  margin-top: 0;
  margin-bottom: 0.7rem;
  font-size: clamp(1rem, 1.1vw, 1.15rem);
}

.oase-help-card ul {
  margin-top: 0;
  margin-bottom: 1.1rem;
  padding-left: 1.35rem;
  text-align: left;
}

.oase-help-card li {
  margin-bottom: 0.4rem;
  color: var(--oase-muted);
  font-size: clamp(0.86rem, 0.95vw, 0.95rem);
  line-height: 1.45;
  text-align: left;
}

.oase-help-card li:last-child {
  margin-bottom: 0;
}

.oase-help-card .wp-block-buttons {
  display: flex;
  justify-content: center;
  margin-top: 1rem;
}

.oase-help-card .wp-block-button {
  margin-left: auto;
  margin-right: auto;
}

.oase-help-card .wp-block-button__link,
.oase-help-card .wp-element-button {
  font-family: var(--oase-font-body) !important;
  font-size: 0.9rem;
  font-weight: 700;
  padding: 0.75rem 1.15rem;
}

/* Specific rhythm: Help panel → CTA banner */
.entry-content > .oase-help-section + .oase-cta-section,
.wp-block-post-content > .oase-help-section + .oase-cta-section {
  padding-top: clamp(0.5rem, 1.2vw, 0.9rem);
}

/* ---------------------------------------------------------
   18. Story panel section
--------------------------------------------------------- */

.oase-story-section {
  padding-top: clamp(1rem, 2vw, 1.6rem);
  padding-bottom: clamp(1.2rem, 2.4vw, 1.8rem);
}

.oase-story-panel {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-card);
  padding: clamp(1.6rem, 3.5vw, 2.8rem);
  text-align: left;
}

.oase-story-panel .oase-accent {
  font-size: clamp(1.3rem, 2vw, 1.8rem);
  line-height: 1.1;
  margin-bottom: 0.4rem;
}

.oase-story-panel h2 {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(1.55rem, 2.5vw, 2.25rem);
  max-width: 720px;
}

.oase-story-panel p {
  max-width: 760px;
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.7;
}

.oase-story-panel p:last-child {
  margin-bottom: 0;
}

/* Specific rhythm: Content cards → Story panel */
.entry-content > .oase-content-card-section + .oase-story-section,
.wp-block-post-content > .oase-content-card-section + .oase-story-section {
  padding-top: clamp(0.8rem, 1.8vw, 1.3rem);
}

/* ---------------------------------------------------------
   19. Pastor profile section
--------------------------------------------------------- */

.oase-pastor-section {
  padding-top: clamp(1rem, 2vw, 1.6rem);
  padding-bottom: clamp(1.2rem, 2.4vw, 1.8rem);
}

.oase-pastor-grid {
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 0;
}

.oase-pastor-image-wrap {
  position: relative;
  z-index: 0;
}

.oase-pastor-image-wrap::before {
  content: "";
  position: absolute;
  inset: 14px -14px -14px 14px;
  border-radius: 26px;
  background: var(--oase-soft-teal);
  z-index: 0;
  pointer-events: none;
}

.oase-pastor-image-wrap .wp-block-image,
.oase-pastor-image-wrap figure,
.oase-pastor-image-wrap img,
.oase-pastor-image,
.oase-pastor-image img {
  position: relative;
  z-index: 2;
}

.oase-pastor-image-wrap .wp-block-image,
.oase-pastor-image-wrap figure,
.oase-pastor-image {
  display: block;
  width: 100%;
  margin: 0;
}

.oase-pastor-image-wrap img,
.oase-pastor-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-card);
}

.oase-pastor-content {
  max-width: 640px;
}

.oase-pastor-content .oase-accent {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.oase-pastor-content h2 {
  margin-top: 0;
  margin-bottom: 0.9rem;
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
}

.oase-pastor-content p {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.68;
}

.oase-pastor-content p:last-child {
  margin-bottom: 0;
}

/* Specific rhythm: Story panel → Pastor section */
.entry-content > .oase-story-section + .oase-pastor-section,
.wp-block-post-content > .oase-story-section + .oase-pastor-section {
  padding-top: clamp(1rem, 2vw, 1.5rem);
}

/* Specific rhythm: Pastor section → CTA banner */
.entry-content > .oase-pastor-section + .oase-cta-section,
.wp-block-post-content > .oase-pastor-section + .oase-cta-section {
  padding-top: clamp(0.5rem, 1.2vw, 0.9rem);
}

@media (max-width: 782px) {
  .oase-pastor-image-wrap::before {
    inset: 10px -10px -10px 10px;
    border-radius: 22px;
  }

  .oase-pastor-image,
  .oase-pastor-image img {
    border-radius: 22px;
  }

  .oase-pastor-content {
    max-width: none;
  }
}

/* ---------------------------------------------------------
   20. Growth pathway section
--------------------------------------------------------- */

.oase-pathway-section {
  padding-top: clamp(0.8rem, 1.8vw, 1.3rem);
  padding-bottom: clamp(1.2rem, 2.4vw, 1.8rem);
  text-align: center;
}

.oase-pathway-section > h2,
.oase-pathway-section > .wp-block-heading:first-child {
  position: relative;
  display: inline-block;
  margin-top: 0;
  margin-bottom: 0.9rem;
  font-size: clamp(1.35rem, 1.8vw, 1.85rem);
  line-height: 1.1;
}

.oase-pathway-section > h2::after,
.oase-pathway-section > .wp-block-heading:first-child::after {
  content: "";
  display: block;
  width: 52px;
  height: 3px;
  border-radius: 999px;
  background: var(--oase-teal);
  margin: 0.55rem auto 0 auto;
}

.oase-pathway-section > p {
  max-width: 720px;
  margin: 0 auto 1.5rem auto;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.oase-pathway-grid {
  gap: clamp(1rem, 2vw, 1.35rem);
  margin-top: 0.5rem;
  margin-bottom: 0;
}

.oase-pathway-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 22px;
  box-shadow: var(--oase-shadow-card);
  padding: clamp(1.3rem, 2.4vw, 1.8rem);
  text-align: left;
}

.oase-pathway-card h3,
.oase-pathway-card .wp-block-heading {
  margin-top: 0;
  margin-bottom: 0.65rem;
  color: var(--oase-charcoal);
  font-family: var(--oase-font-heading);
  font-size: clamp(1.08rem, 1.25vw, 1.25rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.015em;
}

.oase-pathway-card p {
  margin-top: 0;
  margin-bottom: 1.2rem;
  color: var(--oase-muted);
  font-size: clamp(0.88rem, 0.95vw, 0.96rem);
  line-height: 1.6;
}

.oase-pathway-card .wp-block-buttons {
  margin-top: auto;
}

.oase-pathway-card .wp-block-button__link,
.oase-pathway-card .wp-element-button {
  font-family: var(--oase-font-body) !important;
  font-size: 0.9rem;
  font-weight: 700;
  padding: 0.75rem 1.15rem;
}

/* Specific rhythm: Simple cards → Growth pathways */
.entry-content > .oase-content-card-section + .oase-pathway-section,
.wp-block-post-content > .oase-content-card-section + .oase-pathway-section {
  padding-top: clamp(0.8rem, 1.8vw, 1.3rem);
}

/* Specific rhythm: Growth pathways → CTA banner */
.entry-content > .oase-pathway-section + .oase-cta-section,
.wp-block-post-content > .oase-pathway-section + .oase-cta-section {
  padding-top: clamp(0.5rem, 1.2vw, 0.9rem);
}

@media (max-width: 782px) {
  .oase-pathway-section {
    text-align: left;
  }

  .oase-pathway-section > h2,
  .oase-pathway-section > .wp-block-heading:first-child {
    display: block;
  }

  .oase-pathway-section > h2::after,
  .oase-pathway-section > .wp-block-heading:first-child::after {
    margin-left: 0;
    margin-right: 0;
  }

  .oase-pathway-section > p {
    margin-left: 0;
    margin-right: 0;
  }
}

/* ---------------------------------------------------------
   21. Prayer guidance section
--------------------------------------------------------- */

.oase-prayer-section {
  padding-top: clamp(0.8rem, 1.8vw, 1.3rem);
  padding-bottom: clamp(1rem, 2vw, 1.6rem);
}

.oase-prayer-panel {
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-card);
  padding: clamp(1.4rem, 3vw, 2.2rem);
}

.oase-prayer-grid {
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 0;
}

.oase-prayer-content .oase-accent {
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.oase-prayer-content h2 {
  margin-top: 0;
  margin-bottom: 0.8rem;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.oase-prayer-content p {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.oase-prayer-content p:last-child {
  margin-bottom: 0;
}

.oase-prayer-card {
  background: var(--oase-soft-teal);
  border-radius: 20px;
  padding: clamp(1.15rem, 2vw, 1.55rem);
  text-align: left;
}

.oase-prayer-card h3 {
  margin-top: 0;
  margin-bottom: 0.7rem;
  font-size: clamp(1rem, 1.1vw, 1.15rem);
}

.oase-prayer-card ul {
  margin-top: 0;
  margin-bottom: 1rem;
  padding-left: 1.35rem;
  text-align: left;
}

.oase-prayer-card li {
  margin-bottom: 0.4rem;
  color: var(--oase-muted);
  font-size: clamp(0.86rem, 0.95vw, 0.95rem);
  line-height: 1.45;
  text-align: left;
}

.oase-prayer-card li:last-child {
  margin-bottom: 0;
}

.oase-prayer-card p {
  margin: 0;
  color: var(--oase-muted);
  font-size: clamp(0.86rem, 0.95vw, 0.95rem);
  line-height: 1.55;
}

/* Specific rhythm: Simple cards → Prayer guidance */
.entry-content > .oase-content-card-section + .oase-prayer-section,
.wp-block-post-content > .oase-content-card-section + .oase-prayer-section {
  padding-top: clamp(0.8rem, 1.8vw, 1.3rem);
}

/* Specific rhythm: Prayer guidance → CTA/Form section */
.entry-content > .oase-prayer-section + .oase-cta-section,
.wp-block-post-content > .oase-prayer-section + .oase-cta-section {
  padding-top: clamp(0.5rem, 1.2vw, 0.9rem);
}

/* ---------------------------------------------------------
   22. Prayer form section
--------------------------------------------------------- */

.oase-prayer-form-section {
  padding-top: clamp(0.6rem, 1.4vw, 1rem);
  padding-bottom: clamp(1.8rem, 3vw, 2.6rem);
}

.oase-prayer-form-panel {
  max-width: 840px;
  margin-left: auto;
  margin-right: auto;
  background: var(--oase-teal-dark);
  color: #ffffff;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-soft);
  padding: clamp(1.6rem, 3.5vw, 2.6rem);
  text-align: center;
}

.oase-prayer-form-panel .oase-accent {
  color: #ffffff;
  font-size: clamp(1.35rem, 2.2vw, 1.9rem);
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.oase-prayer-form-panel h2 {
  margin-top: 0;
  margin-bottom: 0.8rem;
  color: #ffffff;
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
}

.oase-prayer-form-panel p {
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.oase-form-placeholder {
  margin-top: 1.4rem;
  background: rgba(255, 255, 255, 0.12);
  border: 1px dashed rgba(255, 255, 255, 0.45);
  border-radius: 18px;
  padding: clamp(1.2rem, 3vw, 2rem);
}

.oase-form-placeholder p {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.95rem;
}

/* Specific rhythm: Prayer guidance → Prayer form */
.entry-content > .oase-prayer-section + .oase-prayer-form-section,
.wp-block-post-content > .oase-prayer-section + .oase-prayer-form-section {
  padding-top: clamp(0.5rem, 1.2vw, 0.9rem);
}

/* ---------------------------------------------------------
   23. Giving section
--------------------------------------------------------- */

.oase-giving-section {
  padding-top: clamp(0.8rem, 1.8vw, 1.3rem);
  padding-bottom: clamp(1.2rem, 2.4vw, 1.8rem);
}

.oase-giving-panel {
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-card);
  padding: clamp(1.4rem, 3vw, 2.2rem);
}

.oase-giving-grid {
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 0;
}

.oase-giving-content .oase-accent {
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.oase-giving-content h2 {
  margin-top: 0;
  margin-bottom: 0.8rem;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.oase-giving-content p {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.oase-giving-content p:last-child {
  margin-bottom: 0;
}

.oase-giving-options {
  display: grid;
  gap: 1rem;
}

.oase-giving-card {
  background: var(--oase-soft-teal);
  border-radius: 20px;
  padding: clamp(1.15rem, 2vw, 1.55rem);
  text-align: left;
}

.oase-giving-card h3 {
  margin-top: 0;
  margin-bottom: 0.8rem;
  font-size: clamp(1rem, 1.1vw, 1.15rem);
}

.oase-giving-card p {
  margin-top: 0;
  margin-bottom: 0.45rem;
  color: var(--oase-muted);
  font-size: clamp(0.86rem, 0.95vw, 0.95rem);
  line-height: 1.5;
}

.oase-giving-card p:last-child {
  margin-bottom: 0;
}

.oase-giving-card .wp-block-buttons {
  display: flex;
  justify-content: center;
  margin-top: 1.1rem;
}

.oase-giving-card .wp-block-button {
  margin-left: auto;
  margin-right: auto;
}

.oase-giving-card .wp-block-button__link,
.oase-giving-card .wp-element-button {
  font-family: var(--oase-font-body) !important;
  font-size: 0.9rem;
  font-weight: 700;
  padding: 0.75rem 1.15rem;
}

/* Specific rhythm: Simple cards → Giving section */
.entry-content > .oase-content-card-section + .oase-giving-section,
.wp-block-post-content > .oase-content-card-section + .oase-giving-section {
  padding-top: clamp(0.8rem, 1.8vw, 1.3rem);
}

/* Specific rhythm: Giving section → CTA banner */
.entry-content > .oase-giving-section + .oase-cta-section,
.wp-block-post-content > .oase-giving-section + .oase-cta-section {
  padding-top: clamp(0.5rem, 1.2vw, 0.9rem);
}

@media (max-width: 782px) {
  .oase-giving-grid {
    gap: 1.3rem;
  }
}

/* ---------------------------------------------------------
   24. Website forms
   Used for Contact and Prayer Request forms
--------------------------------------------------------- */

.oase-contact-left a,
.oase-contact-left a:visited {
  font-family: "Inter", sans-serif !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  color: var(--oase-teal, #2f6f6c);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.oase-contact-details a {
  font-family: var(--wp--preset--font-family--inter, "Inter", sans-serif);
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.oase-form {
  display: grid;
  gap: 1rem;
  width: 100%;
}

.oase-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.oase-form-group {
  display: grid;
  gap: 0.4rem;
}

.oase-form-label {
  font-family: var(--wp--preset--font-family--inter, "Inter", sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--oase-dark, #173f3f);
}

.oase-form-input,
.oase-form-textarea {
  width: 100%;
  border: 1px solid rgba(23, 63, 63, 0.16);
  border-radius: 16px;
  background: #ffffff;
  padding: 0.9rem 1rem;
  font-family: var(--wp--preset--font-family--inter, "Inter", sans-serif);
  font-size: 1rem;
  color: var(--oase-dark, #173f3f);
  box-shadow: 0 8px 22px rgba(23, 63, 63, 0.05);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.oase-form-textarea {
  min-height: 140px;
  resize: vertical;
}

.oase-form-input:focus,
.oase-form-textarea:focus {
  outline: none;
  border-color: var(--oase-teal, #2f6f6c);
  box-shadow: 0 10px 26px rgba(47, 111, 108, 0.14);
}

.oase-form-input::placeholder,
.oase-form-textarea::placeholder {
  color: rgba(23, 63, 63, 0.42);
}

.oase-form-help {
  font-size: 0.85rem;
  line-height: 1.5;
  color: rgba(23, 63, 63, 0.7);
}

.oase-form-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: rgba(23, 63, 63, 0.82);
}

.oase-form-consent input {
  margin-top: 0.25rem;
  accent-color: var(--oase-teal, #2f6f6c);
}

.oase-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  border: none;
  border-radius: 999px;
  background: var(--oase-teal, #2f6f6c);
  color: #ffffff;
  padding: 0.9rem 1.35rem;
  font-family: var(--wp--preset--font-family--inter, "Inter", sans-serif);
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(47, 111, 108, 0.22);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.oase-submit-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 34px rgba(47, 111, 108, 0.28);
}

.oase-submit-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}

.oase-form-message {
  display: none;
  border-radius: 16px;
  padding: 0.9rem 1rem;
  font-size: 0.92rem;
  line-height: 1.5;
}

.oase-form-message.is-visible {
  display: block;
}

.oase-form-message.is-success {
  background: rgba(47, 111, 108, 0.1);
  color: var(--oase-dark, #173f3f);
  border: 1px solid rgba(47, 111, 108, 0.22);
}

.oase-form-message.is-error {
  background: rgba(160, 65, 45, 0.1);
  color: #7a2f22;
  border: 1px solid rgba(160, 65, 45, 0.22);
}

.oase-loading {
  display: none;
  font-size: 0.9rem;
  color: rgba(23, 63, 63, 0.72);
}

.oase-loading.is-visible {
  display: block;
}

@media (max-width: 720px) {
  .oase-form-row {
    grid-template-columns: 1fr;
  }

  .oase-submit-btn {
    width: 100%;
  }
}

.oase-form {
  box-sizing: border-box;
}

.oase-form-input,
.oase-form-textarea,
.oase-form select,
.oase-form button {
  box-sizing: border-box;
}

.oase-form-row {
  align-items: start;
}

.oase-form-group {
  min-width: 0;
}

.oase-form-input,
.oase-form-textarea {
  display: block;
  max-width: 100%;
}

/* ---------------------------------------------------------
   24b. Prayer form dark-panel overrides
--------------------------------------------------------- */

#oasePrayerForm .oase-form-label,
#oasePrayerForm .oase-form-consent,
#oasePrayerForm .oase-form-consent span,
#oasePrayerForm .oase-form-help,
#oasePrayerForm .oase-loading {
  color: #ffffff;
}

#oasePrayerForm .oase-form-consent a,
#oasePrayerForm .oase-form-help a {
  color: #ffffff;
}

#oasePrayerForm .oase-form-message {
  background: #ffffff;
  color: var(--oase-dark, #173f3f);
  border: none;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.10);
}

#oasePrayerForm .oase-form-message.is-success {
  background: #ffffff;
  color: var(--oase-dark, #173f3f);
  border: none;
}

#oasePrayerForm .oase-form-message.is-error {
  background: #ffffff;
  color: #7a2f22;
  border: none;
}

/* ---------------------------------------------------------
   25. Kontak page rhythm refinements
--------------------------------------------------------- */

.entry-content > .oase-container:has(.oase-info-bar),
.wp-block-post-content > .oase-container:has(.oase-info-bar) {
  margin-bottom: clamp(1rem, 2.2vw, 1.6rem) !important;
}

body:not(.home) .oase-site-footer {
  margin-top: clamp(1.4rem, 3vw, 2.2rem);
}

.oase-contact-section h2 {
  font-size: clamp(1.3rem, 1.8vw, 1.75rem);
}

/* ---------------------------------------------------------
   26. Heading rhythm refinement
--------------------------------------------------------- */

/* Main centered section headings */
.oase-content-card-section > h2,
.oase-content-card-section > .wp-block-heading:first-child,
.oase-pathway-section > h2,
.oase-pathway-section > .wp-block-heading:first-child,
.oase-link-section > h2,
.oase-link-section > .wp-block-heading:first-child,
.oase-card-section > h2,
.oase-card-section > .wp-block-heading:first-child {
  font-size: clamp(1.3rem, 1.75vw, 1.75rem);
}

/* Slightly wider teal underline */
.oase-content-card-section > h2::after,
.oase-content-card-section > .wp-block-heading:first-child::after,
.oase-pathway-section > h2::after,
.oase-pathway-section > .wp-block-heading:first-child::after,
.oase-link-section > h2::after,
.oase-link-section > .wp-block-heading:first-child::after,
.oase-card-section > h2::after,
.oase-card-section > .wp-block-heading:first-child::after {
  width: 52px;
}

/* Panel-based headings should not compete with page titles */
.oase-help-content h2,
.oase-prayer-content h2,
.oase-giving-content h2,
.oase-kids-content h2,
.oase-pastor-content h2,
.oase-story-panel h2,
.oase-prayer-form-panel h2,
.oase-contact-section h2 {
  font-size: clamp(1.25rem, 1.55vw, 1.6rem);
}

/* ---------------------------------------------------------
   27. Boodskappe page
--------------------------------------------------------- */

.oase-message-feature-section {
  padding-top: clamp(0.8rem, 1.8vw, 1.3rem);
  padding-bottom: clamp(1.2rem, 2.4vw, 1.8rem);
}

.oase-message-feature-panel {
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-card);
  padding: clamp(1.4rem, 3vw, 2.2rem);
}

.oase-message-feature-grid {
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 0;
}

.oase-message-content .oase-accent {
  font-size: clamp(1.35rem, 2.2vw, 1.9rem);
  line-height: 1.05;
  margin-bottom: 0.35rem;
}

.oase-message-content h2 {
  margin-top: 0;
  margin-bottom: 0.75rem;
  font-size: clamp(1.25rem, 1.55vw, 1.6rem);
}

.oase-message-meta {
  margin-top: 0;
  margin-bottom: 0.9rem;
  color: var(--oase-teal-dark);
  font-family: var(--oase-font-body);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.45;
}

.oase-message-content p:not(.oase-accent):not(.oase-message-meta) {
  margin-top: 0;
  margin-bottom: 0;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.oase-audio-box {
  background: var(--oase-soft-teal);
  border-radius: 22px;
  padding: clamp(1.2rem, 2.4vw, 1.8rem);
}

.oase-audio-box h3 {
  margin-top: 0;
  margin-bottom: 0.8rem;
  font-size: clamp(1rem, 1.1vw, 1.15rem);
}

.oase-audio-placeholder {
  border: 1.5px dashed rgba(0, 153, 168, 0.45);
  border-radius: 18px;
  padding: clamp(0.8rem, 1.5vw, 1rem);
  background: rgba(255, 255, 255, 0.55);
}

.oase-audio-placeholder .wp-block-ss-player,
.oase-audio-placeholder .wp-block-seriously-simple-podcasting-player,
.oase-audio-placeholder .castos-player,
.oase-audio-placeholder .ssp-player,
.oase-audio-placeholder iframe,
.oase-audio-placeholder audio {
  width: 100% !important;
  max-width: 100% !important;
}

.oase-audio-placeholder a {
  font-family: var(--oase-font-body) !important;
  color: var(--oase-teal-dark);
  font-weight: 700;
}

.oase-audio-placeholder p,
.oase-audio-placeholder span {
  font-family: var(--oase-font-body) !important;
}

.oase-audio-placeholder p {
  margin: 0;
  color: var(--oase-muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

/* Hide plugin-generated links/meta below featured audio player */
.oase-message-feature-section .oase-audio-placeholder > p,
.oase-message-feature-section .oase-audio-placeholder > div:not(:first-child):not(.wp-block-audio):not(.wp-block-ss-player):not(.wp-block-seriously-simple-podcasting-player):not(.castos-player):not(.ssp-player) {
  display: none;
}

.oase-message-feature-section .oase-audio-placeholder .castos-player,
.oase-message-feature-section .oase-audio-placeholder .ssp-player,
.oase-message-feature-section .oase-audio-placeholder iframe,
.oase-message-feature-section .oase-audio-placeholder audio {
  font-size: 1rem;
}

.oase-message-card-section {
  text-align: center;
}

.oase-message-card-section > h2,
.oase-message-card-section > .wp-block-heading:first-child {
  position: relative;
  display: inline-block;
  margin-top: 0;
  margin-bottom: 0.9rem;
  font-size: clamp(1.3rem, 1.75vw, 1.75rem);
  line-height: 1.1;
}

.oase-message-card-section > h2::after,
.oase-message-card-section > .wp-block-heading:first-child::after {
  content: "";
  display: block;
  width: 52px;
  height: 3px;
  border-radius: 999px;
  background: var(--oase-teal);
  margin: 0.55rem auto 0 auto;
}

.oase-message-card-section > p {
  max-width: 720px;
  margin: 0 auto 1.5rem auto;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.oase-message-card-grid {
  gap: clamp(1rem, 2vw, 1.35rem);
  margin-top: 0.5rem;
}

.oase-message-card {
  height: 100%;
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 20px;
  box-shadow: 0 8px 22px rgba(47, 51, 46, 0.045);
  padding: clamp(1.25rem, 2vw, 1.65rem);
  text-align: left;
}

.oase-message-card h3 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  color: var(--oase-charcoal);
  font-family: var(--oase-font-heading);
  font-size: clamp(1rem, 1.1vw, 1.15rem);
  font-weight: 800;
  line-height: 1.2;
}

.oase-message-card .oase-message-meta {
  margin-bottom: 0.7rem;
  font-size: 0.82rem;
}

.oase-message-card p:not(.oase-message-meta) {
  margin-top: 0;
  margin-bottom: 1rem;
  color: var(--oase-muted);
  font-size: clamp(0.86rem, 0.95vw, 0.95rem);
  line-height: 1.55;
}

.oase-message-card .wp-block-buttons {
  margin-top: auto;
}

.oase-message-card .wp-block-button__link,
.oase-message-card .wp-element-button {
  font-family: var(--oase-font-body) !important;
  font-size: 0.9rem;
  font-weight: 700;
  padding: 0.75rem 1.15rem;
}

/* Specific rhythm: Header → Featured message */
.entry-content > .oase-page-header + .oase-message-feature-section,
.wp-block-post-content > .oase-page-header + .oase-message-feature-section {
  padding-top: clamp(0.5rem, 1.2vw, 0.9rem);
}

/* Specific rhythm: Featured message → Recent messages */
.entry-content > .oase-message-feature-section + .oase-message-card-section,
.wp-block-post-content > .oase-message-feature-section + .oase-message-card-section {
  padding-top: clamp(1rem, 2vw, 1.5rem);
}

@media (max-width: 782px) {
  .oase-message-card-section {
    text-align: left;
  }

  .oase-message-card-section > h2,
  .oase-message-card-section > .wp-block-heading:first-child {
    display: block;
  }

  .oase-message-card-section > h2::after,
  .oase-message-card-section > .wp-block-heading:first-child::after {
    margin-left: 0;
    margin-right: 0;
  }
}

/* Boodskappe: tighter rhythm from recent messages to CTA */
.entry-content > .oase-message-card-section + .oase-cta-section,
.wp-block-post-content > .oase-message-card-section + .oase-cta-section {
  padding-top: clamp(0.5rem, 1.2vw, 0.9rem);
}

/* ---------------------------------------------------------
   28. Single Podcast Episode
--------------------------------------------------------- */

.oase-single-episode-main {
  background: var(--oase-soft-bg);
}

.oase-episode-header {
  text-align: center;
}

.oase-episode-header .oase-accent {
  font-size: clamp(1.45rem, 2.2vw, 1.9rem);
  line-height: 1.05;
  margin-bottom: 0.35rem;
}

.oase-episode-header h1 {
  max-width: 820px;
  margin: 0 auto 0.9rem auto;
  font-size: clamp(2rem, 4vw, 3.2rem);
}

.oase-episode-intro {
  max-width: 680px;
  margin: 0 auto 1.3rem auto;
  font-size: clamp(1rem, 1.25vw, 1.12rem);
}

.oase-episode-back {
  display: flex;
  justify-content: center;
  margin-top: 1.2rem;
}

.oase-episode-content-section {
  padding-top: clamp(0.6rem, 1.4vw, 1rem);
}

.oase-episode-card {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
  padding: clamp(1.4rem, 3vw, 2.4rem);
}

.oase-episode-card .entry-content,
.oase-episode-card .wp-block-post-content {
  max-width: none;
}

.oase-episode-player-wrap {
  width: 100%;
}

.oase-episode-player-wrap > *:first-child {
  margin-top: 0;
}

.oase-episode-player-wrap > *:last-child {
  margin-bottom: 0;
}

.oase-episode-player-wrap p {
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.7;
}

.oase-episode-player-wrap h2,
.oase-episode-player-wrap h3,
.oase-episode-player-wrap h4 {
  margin-top: 1.6rem;
  margin-bottom: 0.7rem;
}

.oase-episode-player-wrap audio,
.oase-episode-player-wrap iframe,
.oase-episode-player-wrap .castos-player,
.oase-episode-player-wrap .ssp-player {
  max-width: 100%;
}

@media (max-width: 782px) {
  .oase-episode-header {
    text-align: left;
  }

  .oase-episode-header h1,
  .oase-episode-intro {
    margin-left: 0;
    margin-right: 0;
  }

  .oase-episode-back {
    justify-content: flex-start;
  }

  .oase-episode-back .wp-block-button,
  .oase-episode-back .wp-block-button__link {
    width: 100%;
    text-align: center;
  }

  .oase-episode-card {
    border-radius: 22px;
  }
}

/* Single episode back button */
.oase-episode-back {
  display: flex;
  justify-content: center;
  margin-top: 1.2rem;
}

.oase-episode-back-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ffffff !important;
  color: var(--oase-teal-dark) !important;
  border: 1.5px solid rgba(0, 122, 133, 0.45) !important;
  border-radius: var(--oase-radius-pill) !important;
  padding: 0.82rem 1.25rem !important;
  font-family: var(--oase-font-body) !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.oase-episode-back-button:hover,
.oase-episode-back-button:focus {
  background: var(--oase-soft-teal) !important;
  color: var(--oase-teal-dark) !important;
  border-color: rgba(0, 122, 133, 0.65) !important;
  text-decoration: none !important;
  transform: translateY(-1px);
  box-shadow: var(--oase-shadow-soft) !important;
}

@media (max-width: 782px) {
  .oase-episode-back {
    justify-content: flex-start;
  }

  .oase-episode-back-button {
    width: 100%;
    text-align: center;
  }
}

/* Single episode spacing refinement */
.oase-single-episode-main {
  padding-top: clamp(0.4rem, 1.2vw, 0.9rem);
}

.oase-single-episode-main .oase-episode-header.oase-section-tight {
  padding-top: clamp(0.6rem, 1.4vw, 1rem);
  padding-bottom: clamp(1.2rem, 2.4vw, 1.8rem);
}

.oase-single-episode-main .oase-episode-content-section.oase-section-tight {
  padding-top: clamp(0.4rem, 1vw, 0.8rem);
  padding-bottom: clamp(1.4rem, 2.6vw, 2rem);
}

.oase-single-episode-main .oase-cta-section {
  padding-top: clamp(0.8rem, 1.8vw, 1.3rem);
  padding-bottom: clamp(1.8rem, 3vw, 2.6rem);
}

.oase-single-episode-main .oase-episode-header .oase-accent {
  margin-bottom: 0.2rem;
}

.oase-single-episode-main .oase-episode-header h1 {
  margin-bottom: 0.55rem;
}

.oase-single-episode-main .oase-episode-intro {
  margin-bottom: 0.85rem;
}

.oase-single-episode-main .oase-episode-back {
  margin-top: 0.9rem;
}

.oase-single-episode-main .oase-episode-card {
  padding-top: clamp(1.2rem, 2.4vw, 1.8rem);
  padding-bottom: clamp(1.2rem, 2.4vw, 1.8rem);
}

.oase-single-episode-main .oase-episode-card::before {
  margin-bottom: 1rem;
}

/* Footer alignment fix for PHP-loaded templates */
/* .oase-site-footer .wp-block-group:last-child,
.oase-site-footer .wp-block-group:last-child p {
  text-align: right;
}

@media (max-width: 782px) {
  .oase-site-footer .wp-block-group:last-child,
  .oase-site-footer .wp-block-group:last-child p {
    text-align: left;
  }
} */

/* Footer copyright alignment */
.oase-footer-copyright {
  text-align: right !important;
  margin-left: auto !important;
}

.oase-footer-copyright p,
.oase-footer-copyright a {
  text-align: right !important;
}

@media (max-width: 782px) {
  .oase-footer-copyright,
  .oase-footer-copyright p,
  .oase-footer-copyright a {
    text-align: left !important;
  }
}

/* Footer copyright alignment fix — single podcast template only */
body.single-podcast .oase-site-footer .oase-footer-copyright-wrap {
  display: flex !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.single-podcast .oase-site-footer .oase-footer-copyright-wrap p,
body.single-podcast .oase-site-footer .oase-footer-copyright-wrap a,
body.single-podcast .oase-site-footer .oase-footer-copyright {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ---------------------------------------------------------
   Content card buttons
--------------------------------------------------------- */

.oase-content-card .wp-block-button__link,
.oase-content-card .wp-element-button {
  font-family: var(--oase-font-body) !important;
}

/* ---------------------------------------------------------
   29. Dark Feature Panel Pattern
--------------------------------------------------------- */

.oase-dark-feature-section {
  padding-top: clamp(1rem, 2vw, 1.6rem);
  padding-bottom: clamp(1.2rem, 2.6vw, 2rem);
}

.oase-dark-feature {
  position: relative;
  overflow: hidden;
  background: var(--oase-teal-dark);
  color: #ffffff;
  border-radius: 24px;
  box-shadow: var(--oase-shadow-soft);
  padding: clamp(1.6rem, 4vw, 2.7rem);
}

.oase-dark-feature::before {
  content: "";
  position: absolute;
  left: -58px;
  bottom: -78px;
  width: 230px;
  height: 230px;
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-radius: 48% 52% 46% 54%;
  transform: rotate(-18deg);
  pointer-events: none;
}

.oase-dark-feature::after {
  content: "";
  position: absolute;
  right: -70px;
  top: -85px;
  width: 260px;
  height: 260px;
  border: 2px dashed rgba(255, 255, 255, 0.14);
  border-radius: 50%;
  pointer-events: none;
}

.oase-dark-feature-grid {
  position: relative;
  z-index: 1;
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 0;
}

.oase-dark-feature-content {
  max-width: 680px;
}

.oase-dark-feature .oase-accent {
  color: #ffffff;
  font-size: clamp(1.5rem, 2.6vw, 2.2rem);
  line-height: 1.1;
  margin: 0 0 0.45rem 0;
}

.oase-dark-feature h2,
.oase-dark-feature h3 {
  color: #ffffff;
  margin-top: 0;
  margin-bottom: 0.85rem;
  font-size: clamp(1.55rem, 2.7vw, 2.35rem);
  line-height: 1.1;
}

.oase-dark-feature p {
  color: rgba(255, 255, 255, 0.88);
  margin-top: 0;
  font-size: clamp(0.96rem, 1.1vw, 1.06rem);
  line-height: 1.65;
}

.oase-dark-feature p:last-child {
  margin-bottom: 0;
}

.oase-dark-feature-list {
  display: grid;
  gap: 0.8rem;
}

.oase-dark-feature-item {
  background: rgba(255, 255, 255, 0.11);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 18px;
  padding: 1rem 1.1rem;
}

.oase-dark-feature-item h3,
.oase-dark-feature-item h4 {
  color: #ffffff;
  margin: 0 0 0.25rem 0;
  font-family: var(--oase-font-heading);
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  font-weight: 800;
  line-height: 1.2;
}

.oase-dark-feature-item p {
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
  font-size: clamp(0.82rem, 0.9vw, 0.9rem);
  line-height: 1.45;
}

@media (max-width: 782px) {
  .oase-dark-feature {
    border-radius: 22px;
  }

  .oase-dark-feature-grid {
    gap: 1.2rem;
  }
}

/* ---------------------------------------------------------
   30. Soft Image Feature Panel Pattern
--------------------------------------------------------- */

.oase-soft-image-section {
  padding-top: clamp(1rem, 2.4vw, 1.8rem);
  padding-bottom: clamp(1.2rem, 2.8vw, 2.2rem);
}

.oase-soft-image-panel {
  background: var(--oase-soft-teal);
  border-radius: 26px;
  box-shadow: var(--oase-shadow-soft);
  padding: clamp(1.1rem, 2.4vw, 1.5rem);
}

.oase-soft-image-inner {
  border: 1.5px dashed rgba(0, 122, 133, 0.28);
  border-radius: 22px;
  padding: clamp(1.4rem, 4vw, 2.6rem);
}

.oase-soft-image-grid {
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 0;
}

.oase-soft-image-content {
  max-width: 620px;
}

.oase-soft-image-content .oase-accent {
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.oase-soft-image-content h2 {
  margin-top: 0;
  margin-bottom: 0.85rem;
  font-size: clamp(1.55rem, 2.5vw, 2.15rem);
}

.oase-soft-image-content p {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.68;
}

.oase-soft-image-content p:last-child {
  margin-bottom: 0;
}

.oase-soft-image-visual {
  display: flex;
  justify-content: center;
}

.oase-soft-image-visual figure,
.oase-soft-image-visual .wp-block-image {
  width: min(100%, 410px);
  margin: 0;
}

.oase-soft-image-visual img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  height: auto;
  object-fit: cover;
  border: 6px solid rgba(255, 255, 255, 0.85);
  border-radius: 22px;
  box-shadow: var(--oase-shadow-card);
}

.oase-soft-image-note {
  display: inline-flex;
  align-items: center;
  margin-top: 1.1rem;
  padding: 0.7rem 0.95rem;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(0, 122, 133, 0.18);
  border-radius: 999px;
  color: var(--oase-teal-dark);
  font-family: var(--oase-font-body);
  font-size: 0.88rem;
  font-weight: 750;
  line-height: 1.2;
}

/* Reverse layout option */
.oase-soft-image-reverse .oase-soft-image-grid {
  flex-direction: row-reverse;
}

@media (max-width: 782px) {
  .oase-soft-image-panel {
    border-radius: 22px;
    padding: 0.9rem;
  }

  .oase-soft-image-inner {
    border-radius: 18px;
    padding: 1.25rem;
  }

  .oase-soft-image-grid {
    gap: 1.3rem;
  }

  .oase-soft-image-content {
    max-width: none;
  }

  .oase-soft-image-visual {
    justify-content: flex-start;
  }

  .oase-soft-image-visual figure,
  .oase-soft-image-visual .wp-block-image {
    width: 100%;
  }

  .oase-soft-image-visual img {
    border-radius: 18px;
  }
}

/* ---------------------------------------------------------
   31. Next Steps / Dotted Panel Pattern
--------------------------------------------------------- */

.oase-next-steps-section {
  padding-top: clamp(1rem, 2.4vw, 1.8rem);
  padding-bottom: clamp(1.2rem, 2.8vw, 2.2rem);
}

.oase-next-steps-panel {
  background: var(--oase-teal-dark);
  color: #ffffff;
  border-radius: 26px;
  box-shadow: var(--oase-shadow-soft);
  padding: clamp(1.1rem, 2.4vw, 1.5rem);
}

.oase-next-steps-inner {
  border: 1.5px dashed rgba(255, 255, 255, 0.38);
  border-radius: 22px;
  padding: clamp(1.4rem, 4vw, 2.6rem);
}

.oase-next-steps-grid {
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-bottom: 0;
}

.oase-next-steps-content {
  max-width: 600px;
}

.oase-next-steps-content .oase-accent {
  color: #ffffff;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.oase-next-steps-content h2 {
  color: #ffffff;
  margin-top: 0;
  margin-bottom: 0.85rem;
  font-size: clamp(1.55rem, 2.5vw, 2.15rem);
}

.oase-next-steps-content p {
  color: rgba(255, 255, 255, 0.88);
  margin-top: 0;
  margin-bottom: 0;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.68;
}

.oase-next-steps-list {
  display: grid;
  gap: 0.85rem;
}

.oase-next-step-item {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  background: rgba(255, 255, 255, 0.11);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 18px;
  padding: 1rem 1.1rem;
}

.oase-next-step-number {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--oase-teal-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--oase-font-body);
  font-size: 0.9rem;
  font-weight: 850;
  line-height: 1;
}

.oase-next-step-text h3,
.oase-next-step-text h4 {
  color: #ffffff;
  margin: 0 0 0.25rem 0;
  font-family: var(--oase-font-heading);
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  font-weight: 800;
  line-height: 1.2;
}

.oase-next-step-text p {
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
  font-size: clamp(0.82rem, 0.9vw, 0.9rem);
  line-height: 1.45;
}

@media (max-width: 782px) {
  .oase-next-steps-panel {
    border-radius: 22px;
    padding: 0.9rem;
  }

  .oase-next-steps-inner {
    border-radius: 18px;
    padding: 1.25rem;
  }

  .oase-next-steps-grid {
    gap: 1.3rem;
  }

  .oase-next-steps-content {
    max-width: none;
  }
}

/* Next Steps pattern — force correct block layout */
.oase-next-steps-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.85rem !important;
  width: 100% !important;
}

.oase-next-step-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 0.85rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.oase-next-step-number {
  flex: 0 0 34px !important;
  width: 34px !important;
  min-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  margin: 0 !important;
}

.oase-next-step-text {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.oase-next-step-text h3,
.oase-next-step-text h4,
.oase-next-step-text p {
  width: auto !important;
  max-width: none !important;
  white-space: normal !important;
}

/* Force Next Steps list to stack correctly */
.oase-next-steps-list,
.wp-block-group.oase-next-steps-list,
.oase-next-steps-list.is-layout-flex,
.oase-next-steps-list.is-horizontal,
.oase-next-steps-list.is-nowrap {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0.85rem !important;
  width: 100% !important;
}

.oase-next-steps-list > .wp-block-group,
.oase-next-steps-list > .oase-next-step-item {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
  flex-basis: auto !important;
}

.oase-next-step-item,
.wp-block-group.oase-next-step-item,
.oase-next-step-item.is-layout-flex,
.oase-next-step-item.is-horizontal,
.oase-next-step-item.is-nowrap {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 0.85rem !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.oase-next-step-number {
  flex: 0 0 34px !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  margin: 0 !important;
}

.oase-next-step-text {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
}

.oase-next-step-text h3,
.oase-next-step-text h4,
.oase-next-step-text p {
  width: auto !important;
  max-width: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* ---------------------------------------------------------
   32. Light Pathway Steps Pattern
--------------------------------------------------------- */

.oase-light-steps-section {
  padding-top: clamp(1rem, 2.4vw, 1.8rem);
  padding-bottom: clamp(1.2rem, 2.8vw, 2.2rem);
  text-align: center;
}

.oase-light-steps-section > h2,
.oase-light-steps-section > .wp-block-heading:first-child {
  position: relative;
  display: inline-block;
  margin-top: 0;
  margin-bottom: 0.9rem;
  font-size: clamp(1.35rem, 1.8vw, 1.85rem);
  line-height: 1.1;
}

.oase-light-steps-section > h2::after,
.oase-light-steps-section > .wp-block-heading:first-child::after {
  content: "";
  display: block;
  width: 52px;
  height: 3px;
  border-radius: 999px;
  background: var(--oase-teal);
  margin: 0.55rem auto 0 auto;
}

.oase-light-steps-section > p {
  max-width: 720px;
  margin: 0 auto 1.6rem auto;
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.oase-light-steps-grid {
  position: relative;
  gap: clamp(1rem, 2vw, 1.35rem);
  margin-top: 0.8rem;
  margin-bottom: 0;
}

.oase-light-step-card {
  position: relative;
  height: 100%;
  background: #ffffff;
  border: 1px solid #edf3f1;
  border-radius: 22px;
  box-shadow: var(--oase-shadow-card);
  padding: clamp(1.35rem, 2.4vw, 1.8rem);
  text-align: left;

  /* NEW: layout for number + heading */
  display: grid;
  grid-template-columns: 44px 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.9rem;
  row-gap: 0.5rem;
  align-items: start;
}

.oase-light-step-number {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: var(--oase-teal-dark);
  color: #ffffff !important; /* force white number */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--oase-font-body);
  font-size: 1rem;
  font-weight: 850;
  line-height: 1;
  margin: 0;

  grid-column: 1;
  grid-row: 1;
}

.oase-light-step-card h3,
.oase-light-step-card h4,
.oase-light-step-card .wp-block-heading {
  margin: 0;
  color: var(--oase-charcoal);
  font-family: var(--oase-font-heading);
  font-size: clamp(1rem, 1.1vw, 1.15rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.015em;

  grid-column: 2;
  grid-row: 1;

  display: flex;
  align-items: center;
  min-height: 44px; /* vertically centers heading beside circle */
}

.oase-light-step-card p:not(.oase-light-step-number) {
  margin: 0;
  color: var(--oase-muted);
  font-size: clamp(0.86rem, 0.95vw, 0.95rem);
  line-height: 1.55;

  grid-column: 2;
  grid-row: 2;
}

/* Heavier connector line */
/* .oase-light-step-card::after {
  content: "";
  position: absolute;
  top: 46px;
  right: -34px;
  width: 68px;
  height: 4px;
  background: var(--oase-teal);
  border-radius: 999px;
  z-index: 2;
} */

/* Heavier arrow head */
/* .oase-light-step-card::before {
  content: "";
  position: absolute;
  top: 40px;
  right: -38px;
  width: 0;
  height: 0;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 12px solid var(--oase-teal);
  z-index: 3;
} */

/* Remove connector after the last / 3rd card */
/* .oase-light-steps-grid .wp-block-column:last-child .oase-light-step-card::after,
.oase-light-steps-grid .wp-block-column:last-child .oase-light-step-card::before,
.oase-light-steps-grid > .wp-block-column:last-child .oase-light-step-card::after,
.oase-light-steps-grid > .wp-block-column:last-child .oase-light-step-card::before {
  display: none !important;
} */

/* .oase-light-steps-grid .wp-block-column:last-of-type .oase-light-step-card::after,
.oase-light-steps-grid .wp-block-column:last-of-type .oase-light-step-card::before {
  display: none !important;
} */

/* Reset: no arrows by default */
.oase-light-step-card::before,
.oase-light-step-card::after {
  display: none;
  content: "";
}

/* Draw arrows only where manually enabled */
.oase-light-step-card.oase-step-has-arrow::after {
  display: block;
  content: "";
  position: absolute;
  top: 46px;
  right: -34px;
  width: 68px;
  height: 4px;
  background: var(--oase-teal);
  border-radius: 999px;
  z-index: 2;
}

.oase-light-step-card.oase-step-has-arrow::before {
  display: block;
  content: "";
  position: absolute;
  top: 40px;
  right: -38px;
  width: 0;
  height: 0;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 12px solid var(--oase-teal);
  z-index: 3;
}

/* Mobile: no arrows */
@media (max-width: 782px) {
  .oase-light-step-card::before,
  .oase-light-step-card::after {
    display: none !important;
  }
}

@media (max-width: 782px) {
  .oase-light-steps-section {
    text-align: left;
  }

  .oase-light-steps-section > h2,
  .oase-light-steps-section > .wp-block-heading:first-child {
    display: block;
  }

  .oase-light-steps-section > h2::after,
  .oase-light-steps-section > .wp-block-heading:first-child::after {
    margin-left: 0;
    margin-right: 0;
  }

  .oase-light-steps-section > p {
    margin-left: 0;
    margin-right: 0;
  }

  .oase-light-step-card::after,
  .oase-light-step-card::before {
    display: none;
  }

  .oase-light-step-card {
    border-radius: 20px;
  }
}