/* ── Skip to main content (accessibility) ── */
.skip-to-content{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-to-content:focus{position:fixed;top:8px;left:20px;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;background:#F08A00;color:#fff;padding:12px 20px;border-radius:8px;font-weight:800;font-family:'Nunito',sans-serif;font-size:14px;z-index:99999;text-decoration:none}
/* Burger as button reset */
button.jnav-burger{background:none;border:none;cursor:pointer}

/* ── Decorative backgrounds — truly behind content, part of section bg ── */
/* Sun/smiley — used on dark sections */
.deco-sun {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cellipse cx='40' cy='13' rx='7' ry='13' fill='%23FFB800' opacity='.12' transform='rotate(0 40 40)'/%3E%3Cellipse cx='40' cy='13' rx='7' ry='13' fill='%23FFB800' opacity='.12' transform='rotate(45 40 40)'/%3E%3Cellipse cx='40' cy='13' rx='7' ry='13' fill='%23FFB800' opacity='.12' transform='rotate(90 40 40)'/%3E%3Cellipse cx='40' cy='13' rx='7' ry='13' fill='%23FFB800' opacity='.12' transform='rotate(135 40 40)'/%3E%3Cellipse cx='40' cy='13' rx='7' ry='13' fill='%23FFB800' opacity='.12' transform='rotate(180 40 40)'/%3E%3Cellipse cx='40' cy='13' rx='7' ry='13' fill='%23FFB800' opacity='.12' transform='rotate(225 40 40)'/%3E%3Cellipse cx='40' cy='13' rx='7' ry='13' fill='%23FFB800' opacity='.12' transform='rotate(270 40 40)'/%3E%3Cellipse cx='40' cy='13' rx='7' ry='13' fill='%23FFB800' opacity='.12' transform='rotate(315 40 40)'/%3E%3Ccircle cx='40' cy='40' r='16' fill='%23F08A00' opacity='.10'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: top right;
  background-size: 220px 220px;
}
/* Heart — used on light/hero sections */
.deco-heart {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cpath d='M30 55C30 55 5 38 5 18c0-9 7-14 12-11 2 1 13 10 13 10s11-9 13-10c5-3 12 2 12 11C55 38 30 55 30 55z' fill='%23E8175D' opacity='.09'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 200px 200px;
}
/* Star burst — used on light/NDIS sections */
.deco-star {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 90'%3E%3Ccircle cx='45' cy='45' r='8' fill='%23FFB800' opacity='.10'/%3E%3Crect x='42' y='8' width='6' height='20' rx='3' fill='%23FFB800' opacity='.10'/%3E%3Crect x='42' y='62' width='6' height='20' rx='3' fill='%23FFB800' opacity='.10'/%3E%3Crect x='8' y='42' width='20' height='6' rx='3' fill='%23FFB800' opacity='.10'/%3E%3Crect x='62' y='42' width='20' height='6' rx='3' fill='%23FFB800' opacity='.10'/%3E%3Crect x='42' y='8' width='6' height='20' rx='3' fill='%23FFB800' opacity='.10' transform='rotate(45 45 45)'/%3E%3Crect x='42' y='8' width='6' height='20' rx='3' fill='%23FFB800' opacity='.10' transform='rotate(135 45 45)'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 240px 240px;
}

/* ── Joyful Support — Shared Styles ──────────────────────────── */

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#ddd;font-family:'Nunito',sans-serif;color:#1a1a1a}
a{text-decoration:none}

/* ── SHARED NAV ── */
.jnav {
  position: sticky; top: 0; z-index: 9999;
  background: #fff;
  box-shadow: 0 2px 16px rgba(0,0,0,.1);
}
.jnav-inner {
  display: flex; align-items: stretch;
  max-width: 1200px; margin: 0 auto; padding: 0 32px;
  height: 68px;
}
.jnav-logo {
  display: flex; align-items: center; gap: 10px;
  text-decoration: none; flex-shrink: 0; margin-right: 40px;
}
.jnav-logo img { width: 44px; height: 44px; border-radius: 10px; object-fit: cover; }
.jnav-logo-text { font-family: 'Fredoka One', cursive; font-size: 20px; color: #1a1a1a; }

/* Desktop links */
.jnav-links {
  display: flex; align-items: stretch; gap: 0; flex: 1; justify-content: flex-start;
}
.jnav-item {
  position: relative; display: flex; align-items: center;
}
.jnav-link {
  display: flex; align-items: center; gap: 5px;
  padding: 0 11px; font-size: 13px; font-weight: 800;
  color: #666; cursor: pointer; white-space: nowrap;
  border-bottom: 3px solid transparent;
  transition: color .15s, border-color .15s;
  height: 100%;
  font-family: 'Nunito', sans-serif;
}
.jnav-link:hover, .jnav-item:hover .jnav-link { color: #F08A00; border-bottom-color: #F08A00; }
.jnav-link.active { color: #F08A00; border-bottom-color: #F08A00; }
.jnav-link svg { transition: transform .2s; }
.jnav-item:hover .jnav-link svg { transform: rotate(180deg); }

/* Dropdown */
.jnav-dropdown {
  position: absolute; top: calc(100% + 3px); left: 0;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 40px rgba(0,0,0,.14);
  min-width: 260px;
  opacity: 0; pointer-events: none;
  transform: translateY(-8px);
  transition: opacity .2s, transform .2s;
  border: 1px solid rgba(0,0,0,.06);
  overflow: hidden;
}
.jnav-item:hover .jnav-dropdown {
  opacity: 1; pointer-events: all; transform: translateY(0);
}
.jnav-dd-header {
  padding: 14px 16px 10px;
  font-size: 10px; font-weight: 900; color: #ccc;
  letter-spacing: .1em; text-transform: uppercase;
  border-bottom: 1px solid #f5f5f5;
  font-family: 'Nunito', sans-serif;
}
.jnav-dd-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px; cursor: pointer;
  transition: background .12s;
}
.jnav-dd-item:hover { background: #fff9f0; }
.jnav-dd-icon {
  width: 36px; height: 36px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; flex-shrink: 0;
}
.jnav-dd-label { font-size: 13px; font-weight: 800; color: #1a1a1a; font-family: 'Nunito', sans-serif; }
.jnav-dd-sub { font-size: 11px; color: #aaa; font-weight: 600; font-family: 'Nunito', sans-serif; }
.jnav-dd-footer {
  padding: 12px 16px; border-top: 1px solid #f5f5f5;
  display: flex; align-items: center; justify-content: space-between;
}
.jnav-dd-footer span { font-size: 12px; font-weight: 800; color: #F08A00; font-family: 'Nunito', sans-serif; }

/* CTA */
.jnav-cta {
  display: flex; align-items: center; margin-left: auto;
  flex-shrink: 0;
}
.jnav-cta-btn {
  background: #F08A00; color: #fff;
  font-size: 13px; font-weight: 900;
  padding: 10px 22px; border-radius: 999px;
  cursor: pointer; white-space: nowrap;
  font-family: 'Nunito', sans-serif;
  transition: background .15s;
}
.jnav-cta-btn:hover { background: #d47a00; }

/* Hamburger */
.jnav-burger {
  display: none; flex-direction: column; gap: 5px;
  cursor: pointer; padding: 8px; margin-left: auto;
  justify-content: center; align-items: center;
}
.jnav-burger span {
  display: block; width: 24px; height: 2.5px;
  background: #1a1a1a; border-radius: 2px;
  transition: all .3s;
}
.jnav-burger.open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.jnav-burger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.jnav-burger.open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* Mobile drawer */
.jnav-drawer {
  max-height: 0;
  overflow: hidden;
  background: #fff;
  transition: max-height .35s cubic-bezier(.4,0,.2,1);
  border-top: 1px solid #f0f0f0;
}
.jnav-drawer.open { max-height: 2000px; }
.jnav-m-link {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 24px; font-size: 16px; font-weight: 800;
  color: #1a1a1a; border-bottom: 1px solid #f5f5f5;
  cursor: pointer; font-family: 'Nunito', sans-serif;
}
.jnav-m-link:hover { background: #fff9f0; color: #F08A00; }
.jnav-m-section {
  padding: 12px 24px 6px;
  font-size: 10px; font-weight: 900; color: #ccc;
  letter-spacing: .1em; text-transform: uppercase;
  font-family: 'Nunito', sans-serif;
}
.jnav-m-service {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 24px; cursor: pointer;
  border-bottom: 1px solid #f9f9f9;
  font-family: 'Nunito', sans-serif;
}
.jnav-m-service:hover { background: #fff9f0; }
.jnav-m-service-icon {
  width: 38px; height: 38px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; flex-shrink: 0;
}
.jnav-m-service-label { font-size: 14px; font-weight: 800; color: #1a1a1a; }
.jnav-m-cta {
  padding: 24px; border-top: 1px solid #f0f0f0; margin-top: 8px;
  display: flex; flex-direction: column; gap: 12px;
}
.jnav-m-cta-btn {
  background: #F08A00; color: #fff; text-align: center;
  padding: 14px; border-radius: 999px;
  font-size: 15px; font-weight: 900; cursor: pointer;
  font-family: 'Nunito', sans-serif;
}
.jnav-m-cta-outline {
  border: 2.5px solid #1a1a1a; color: #1a1a1a; text-align: center;
  padding: 12px; border-radius: 999px;
  font-size: 15px; font-weight: 900; cursor: pointer;
  font-family: 'Nunito', sans-serif;
}

/* Rainbow bar under nav */
.jnav-rainbow {
  height: 4px;
  background: linear-gradient(90deg,#FF5733,#FF8C00,#FFD700,#32CD32,#1E90FF,#9400D3);
}

/* ── MASTER NAV (legacy) ── */
.mnav{position:sticky;top:0;z-index:9999;background:#fff;display:flex;align-items:stretch;box-shadow:0 2px 12px rgba(0,0,0,0.1);border-bottom:4px solid #F08A00}
.mnav .brand{display:flex;align-items:center;padding:6px 16px;border-right:1px solid #f0f0f0;gap:8px;cursor:pointer}
.mnav .brand img{width:42px;height:42px;border-radius:8px;object-fit:cover}
.mnav .brand-name{font-family:'Fredoka One',cursive;font-size:18px;color:#1a1a1a}
.mnav a.tab{color:#999;text-decoration:none;padding:0 16px;font-size:13px;font-weight:800;display:flex;align-items:center;border-bottom:4px solid transparent;margin-bottom:-4px;cursor:pointer;white-space:nowrap;transition:all .15s}
.mnav a.tab:hover{color:#F08A00;border-bottom-color:#FFB800}
.mnav a.tab.on{color:#1a1a1a;border-bottom-color:#F08A00}
.wf-bar{background:#F08A00;padding:6px 20px;font-size:11px;font-weight:900;color:#fff;letter-spacing:.1em;text-transform:uppercase}

/* ── PAGES ── */
.pg{display:none;background:#fff}
.pg.on{display:block}

/* ── SHARED ── */
.wrap{max-width:1000px;margin:0 auto;padding:0 40px}
h1,h2,h3,h4{font-family:'Fredoka One',cursive;font-weight:400;line-height:1.1}
.eyebrow{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#F08A00;margin-bottom:12px;font-family:'Nunito',sans-serif}
.sub{font-size:16px;color:#888;line-height:1.8;margin-top:10px}

/* ── REAL FORMS ── */
.jf-form { width: 100%; }
.jf-field { margin-bottom: 18px; }

/* Labels — clear and readable */
.jf-label {
  display: block;
  font-size: 13px;
  font-weight: 800;
  color: #333;
  margin-bottom: 8px;
  font-family: 'Nunito', sans-serif;
  letter-spacing: .01em;
}

/* Inputs & textareas */
.jf-input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: #fafafa;
  border: 2px solid #e8e8e8;
  border-radius: 12px;
  padding: 13px 16px;
  font-size: 15px;
  font-family: 'Nunito', sans-serif;
  color: #1a1a1a;
  transition: border-color .2s, box-shadow .2s, background .2s;
  -webkit-appearance: none;
  appearance: none;
  min-height: 50px;
  line-height: 1.5;
}
.jf-input:focus {
  outline: none;
  border-color: #F08A00;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(240,138,0,.12);
}
.jf-input::placeholder { color: #bbb; }
textarea.jf-input { min-height: 110px; resize: vertical; line-height: 1.65; }

/* Two-col row */
.jf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 600px) { .jf-row { grid-template-columns: 1fr; } }

/* Pills — role selector */
.jf-pill-group { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.jf-pill { position: relative; }
.jf-pill input[type="radio"],
.jf-pill input[type="checkbox"] {
  position: absolute; opacity: 0; width: 0; height: 0;
}
.jf-pill label {
  display: inline-block;
  background: #f2f2f2;
  border: 2px solid #e4e4e4;
  color: #666;
  font-size: 13px;
  font-weight: 800;
  padding: 9px 20px;
  border-radius: 999px;
  cursor: pointer;
  font-family: 'Nunito', sans-serif;
  transition: all .15s;
  user-select: none;
  white-space: nowrap;
  line-height: 1;
}
.jf-pill label:hover { border-color: #F08A00; color: #F08A00; background: #fff9f0; }
.jf-pill input[type="radio"]:checked + label,
.jf-pill input[type="checkbox"]:checked + label {
  background: #F08A00;
  border-color: #F08A00;
  color: #fff;
}
.jf-pill input:focus + label { box-shadow: 0 0 0 3px rgba(240,138,0,.2); }

/* Consent checkbox */
.jf-consent { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
.jf-consent input[type="checkbox"] {
  width: 20px; height: 20px; min-width: 20px;
  border: 2px solid #ddd; border-radius: 5px;
  cursor: pointer; margin-top: 2px;
  accent-color: #F08A00; flex-shrink: 0;
}
.jf-consent span { font-size: 13px; color: #777; line-height: 1.6; font-family: 'Nunito', sans-serif; }

/* Submit button */
.jf-submit {
  width: 100%;
  background: #F08A00;
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: 17px 24px;
  font-size: 16px;
  font-weight: 900;
  font-family: 'Nunito', sans-serif;
  cursor: pointer;
  transition: background .2s, transform .1s, box-shadow .2s;
  min-height: 56px;
  letter-spacing: .02em;
  box-shadow: 0 4px 16px rgba(240,138,0,.3);
}
.jf-submit:hover { background: #d67a00; box-shadow: 0 6px 20px rgba(240,138,0,.4); transform: translateY(-1px); }
.jf-submit:active { transform: scale(0.98); box-shadow: none; }
.jf-submit:disabled { background: #f0c060; cursor: not-allowed; transform: none; box-shadow: none; }

/* Success message */
.jf-success {
  display: none;
  margin-top: 16px;
  background: #e8fdf5;
  border: 2px solid #1ABBA0;
  border-radius: 14px;
  padding: 20px 24px;
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  color: #1ABBA0;
  font-family: 'Nunito', sans-serif;
  line-height: 1.5;
}

.btn-orange{display:inline-block;background:#F08A00;color:#fff;padding:14px 32px;border-radius:999px;font-size:15px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;transition:background .18s,transform .12s,box-shadow .18s}
.btn-orange:hover{background:#d67a00;box-shadow:0 4px 16px rgba(240,138,0,.35);transform:translateY(-1px)}
.btn-orange:active{transform:scale(.97)}
.btn-yellow{display:inline-block;background:#FFB800;color:#1a1a1a;padding:14px 32px;border-radius:999px;font-size:15px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;transition:background .18s,transform .12s,box-shadow .18s}
.btn-yellow:hover{background:#e0a200;box-shadow:0 4px 16px rgba(255,184,0,.35);transform:translateY(-1px)}
.btn-yellow:active{transform:scale(.97)}
.btn-dark{display:inline-block;background:#1a1a1a;color:#fff;padding:14px 32px;border-radius:999px;font-size:15px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;transition:background .18s,transform .12s,box-shadow .18s}
.btn-dark:hover{background:#333;box-shadow:0 4px 16px rgba(0,0,0,.25);transform:translateY(-1px)}
.btn-dark:active{transform:scale(.97)}
.btn-outline{display:inline-block;border:2.5px solid #1a1a1a;color:#1a1a1a;padding:12px 30px;border-radius:999px;font-size:15px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;transition:background .18s,color .18s,border-color .18s,transform .12s}
.btn-outline:hover{background:#1a1a1a;color:#fff;transform:translateY(-1px)}
.btn-outline:active{transform:scale(.97)}
.pill{display:inline-block;padding:7px 18px;border-radius:999px;font-size:13px;font-weight:700}
.tag{display:inline-block;font-size:12px;font-weight:700;padding:5px 14px;border-radius:999px;margin:3px}

/* ── SITE NAV (page level) ── */
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 40px;background:#fff;border-bottom:1px solid #f5f5f5}
.nav-left{display:flex;align-items:center;gap:10px}
.nav-left img{width:44px;height:44px;border-radius:8px;object-fit:cover}
.nav-left span{font-family:'Fredoka One',cursive;font-size:20px;color:#1a1a1a}
.nav-links{display:flex;gap:24px;font-size:13px;color:#bbb;font-weight:700}
.nav-links .active{color:#F08A00}
.nav-cta{background:#F08A00;color:#fff;font-size:13px;font-weight:800;padding:10px 22px;border-radius:30px;cursor:pointer;font-family:'Nunito',sans-serif}

/* ── RAINBOW ── */
.rainbow-text{background:linear-gradient(90deg,#FF5733,#FF8C00,#FFD700,#32CD32,#1E90FF,#9400D3);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.rainbow-bar{height:6px;background:linear-gradient(90deg,#FF5733,#FF8C00,#FFD700,#32CD32,#1E90FF,#9400D3);border-radius:3px}

/* ── FOOTER ── */
.footer{background:#1a1a1a;padding:36px 40px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.footer-logo{display:flex;align-items:center;gap:10px}
.footer-logo img{width:40px;height:40px;border-radius:8px}
.footer-logo span{font-family:'Fredoka One',cursive;font-size:18px;color:#FFB800}
.footer-links{display:flex;gap:20px;font-size:13px;color:rgba(255,255,255,.35);font-weight:700}

/* ── Services ── */
.svcnav-item {
  display: flex; align-items: center; padding: 12px 16px;
  font-size: 12px; font-weight: 800; color: #888;
  transition: all .15s; font-family: 'Nunito', sans-serif;
  gap: 6px;
}
.svcnav-item:hover { color: #F08A00; background: #fff; }
.svcnav-item.active { color: #F08A00; border-bottom-color: #F08A00; background: #fff; }

.svc-pg{display:none}
.svc-pg.on{display:block;background:#fff;min-height:100vh}

/* ── Service card grids (activity etc.) — consistent emoji + rounded corners ── */
.svc-card-grid > div {
  transform: translateZ(0); /* force GPU layer so overflow:hidden clips correctly in Safari */
}
.svc-card-grid > div > div:first-child {
  line-height: 1 !important; /* remove browser default line-height gap above emoji */
}
.svc-card-grid > div > div:last-child {
  border-radius: 0 0 16px 16px; /* explicitly round bottom corners of text area */
}

/* ════════════════════════════════════════
   MOBILE — max-width: 768px
   ════════════════════════════════════════ */

@media (max-width: 768px) {

  /* ── Nav ── */
  .jnav-links, .jnav-cta { display: none !important; }
  .jnav-burger { display: flex !important; margin-left: auto; }
  .jnav-drawer { display: block; }
  .jnav-inner {
    padding: 0 16px;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    height: 60px;
  }
  .jnav-logo { margin-right: 0 !important; }

  /* ── Typography ── */
  [style*="font-size:54px"] { font-size: 32px !important; line-height: 1.2 !important; }
  [style*="font-size:52px"] { font-size: 30px !important; line-height: 1.2 !important; }
  [style*="font-size:50px"] { font-size: 30px !important; line-height: 1.2 !important; }
  [style*="font-size:48px"] { font-size: 28px !important; line-height: 1.2 !important; }
  [style*="font-size:44px"] { font-size: 26px !important; line-height: 1.25 !important; }
  [style*="font-size:42px"] { font-size: 26px !important; line-height: 1.25 !important; }
  [style*="font-size:40px"] { font-size: 24px !important; line-height: 1.3 !important; }
  [style*="font-size:38px"] { font-size: 24px !important; line-height: 1.3 !important; }
  [style*="font-size:36px"] { font-size: 22px !important; line-height: 1.3 !important; }
  [style*="font-size:34px"] { font-size: 22px !important; line-height: 1.3 !important; }

  /* ── Wrap ── */
  .wrap { padding: 0 16px !important; }

  /* ── Section padding (40px horizontal → 16px) ── */
  [style*="padding:100px 40px"] { padding: 48px 16px !important; }
  [style*="padding:80px 40px"]  { padding: 40px 16px !important; }
  [style*="padding:72px 40px"]  { padding: 36px 16px !important; }
  [style*="padding:60px 40px"]  { padding: 32px 16px !important; }
  [style*="padding:56px 40px"]  { padding: 28px 16px !important; }
  [style*="padding:48px 40px"]  { padding: 24px 16px !important; }
  [style*="padding:40px 40px"]  { padding: 24px 16px !important; }
  [style*="padding:36px 40px"]  { padding: 20px 16px !important; }

  /* ── Section padding (60px horizontal → 16px) ── */
  [style*="padding:72px 60px"]  { padding: 36px 16px !important; }
  [style*="padding:60px 60px"]  { padding: 32px 16px !important; }
  [style*="padding:0 60px"]     { padding: 24px 16px 36px !important; }
  [style*="padding:56px 60px"]  { padding: 28px 16px !important; }
  [style*="padding:52px 60px"]  { padding: 28px 16px !important; }
  [style*="padding:48px 60px"]  { padding: 24px 16px !important; }
  [style*="padding:40px 60px"]  { padding: 24px 16px !important; }
  [style*="padding:36px 60px"]  { padding: 20px 16px !important; }
  [style*="padding:32px 60px"]  { padding: 20px 16px !important; }
  [style*="padding:24px 60px"]  { padding: 16px !important; }

  /* ── Section padding (56px/64px horizontal → 16px) ── */
  [style*="padding:80px 56px"]  { padding: 40px 16px !important; }
  [style*="padding:72px 56px"]  { padding: 36px 16px !important; }
  [style*="padding:56px 64px"]  { padding: 28px 16px !important; }
  [style*="padding:48px 64px"]  { padding: 24px 16px !important; }

  /* ── Section padding (various) ── */
  [style*="padding:40px 48px"]  { padding: 24px 16px !important; }
  [style*="padding:36px 28px"]  { padding: 20px 16px !important; }
  [style*="padding:32px 36px"]  { padding: 20px 16px !important; }
  [style*="padding:24px 36px"]  { padding: 16px !important; }
  [style*="padding:28px 36px"]  { padding: 16px !important; }
  /* Contact method cards (border-radius:20px) inner padding */
  [style*="border-radius:20px"][style*="box-shadow"] > div[style*="padding:36px"] { padding: 20px 16px !important; }
  /* Dark NDIS promo card (border-radius:28px) */
  [style*="background:#1a1a1a"][style*="border-radius:28px"] { padding: 28px 20px !important; }
  /* Large stat font sizes */
  [style*="font-size:96px"]  { font-size: 52px !important; line-height: 1.1 !important; }
  [style*="font-size:100px"] { font-size: 56px !important; line-height: 1.1 !important; }
  /* Neil book strip — stack to column so middle text isn't crushed */
  .neil-book-row { flex-direction: column !important; align-items: flex-start !important; gap: 20px !important; }
  .neil-book-row > a[style*="white-space:nowrap"] { width: 100% !important; justify-content: center !important; box-sizing: border-box !important; }

  /* ── Stack ALL grids to single column ── */
  [style*="grid-template-columns"] {
    display: block !important;
    min-height: auto !important;
    gap: 0 !important;
  }
  [style*="grid-template-columns"] > * {
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: auto !important;
  }

  /* ── Photo columns: restore visible height ── */
  /* Photo containers have BOTH position:relative AND overflow:hidden (they hold an absolute img).
     Exclude .bio-text-col — those also have position:relative+overflow:hidden but are text columns
     that must expand to their full content height, not be capped at 260px. */
  [style*="grid-template-columns"] > [style*="position:relative"][style*="overflow:hidden"]:not(.bio-text-col):not(.bio-photo-col):not(.refer-hero-photo) {
    height: 260px !important;
    min-height: 260px !important;
  }
  .refer-hero-photo { height: 420px !important; min-height: 420px !important; }
  [style*="grid-template-columns"] > [style*="min-height:500px"],
  [style*="grid-template-columns"] > [style*="min-height:460px"],
  [style*="grid-template-columns"] > [style*="min-height:400px"],
  [style*="grid-template-columns"] > [style*="min-height:580px"],
  [style*="grid-template-columns"] > [style*="min-height:560px"] {
    height: 280px !important;
    min-height: 280px !important;
  }

  /* ── Service cards: stack cleanly with gaps, no fixed height ── */
  [style*="grid-template-columns"] > [style*="border-radius"][style*="overflow:hidden"][style*="box-shadow"] {
    height: auto !important;
    min-height: auto !important;
    margin-bottom: 16px !important;
  }
  /* Reduce inner content padding inside service cards */
  [style*="border-radius:20px"][style*="overflow:hidden"][style*="box-shadow"] > div[style*="padding:24px"] {
    padding: 14px 16px !important;
  }
  /* Reduce large heading gap above card grids */
  [style*="margin-bottom:60px"] { margin-bottom: 24px !important; }

  /* ── Step/number rows (72px circle + text): stay side-by-side on mobile ── */
  [style*="grid-template-columns:72px 1fr"] {
    display: flex !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }
  /* Lock the number circle to its exact square size so border-radius:50% stays a circle */
  [style*="grid-template-columns:72px 1fr"] > *:first-child {
    width: 56px !important;
    min-width: 56px !important;
    height: 56px !important;
    flex-shrink: 0 !important;
  }
  [style*="grid-template-columns:72px 1fr"] > *:last-child {
    flex: 1 !important;
    min-width: 0 !important;
    width: auto !important;
  }

  /* ── Transport card (nested grid inside service grid): stack it too ── */
  [style*="grid-template-columns:280px 1fr"] {
    display: block !important;
  }
  [style*="grid-template-columns:280px 1fr"] > * {
    width: 100% !important;
    height: auto !important;
  }
  [style*="grid-template-columns:280px 1fr"] img {
    width: 100% !important;
    height: 180px !important;
    object-fit: cover !important;
  }

  /* BUG FIX — find-support.html: 240px 1fr grid not previously handled */
  [style*="grid-template-columns:240px 1fr"] {
    display: block !important;
  }
  [style*="grid-template-columns:240px 1fr"] > * {
    width: 100% !important;
    height: auto !important;
  }
  [style*="grid-template-columns:240px 1fr"] img {
    width: 100% !important;
    height: 180px !important;
    object-fit: cover !important;
  }

  /* ── Text columns: strip horizontal padding down to 16px ── */
  [style*="grid-template-columns"] > div[style*="padding"] {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  /* Also compress top/bottom in text columns so they don't tower */
  [style*="grid-template-columns"] > div[style*="padding:72px"],
  [style*="grid-template-columns"] > div[style*="padding:80px"] { padding-top: 32px !important; padding-bottom: 32px !important; }
  [style*="grid-template-columns"] > div[style*="padding:56px"] { padding-top: 28px !important; padding-bottom: 28px !important; }

  /* ── Gap between stacked grid items (3-col card grids) ── */
  [style*="grid-template-columns:1fr 1fr 1fr"] > * + * { margin-top: 16px !important; }
  [style*="grid-template-columns:1fr 1fr 1fr 1fr"] > * + * { margin-top: 16px !important; }
  /* BUG FIX — refer.html: repeat(5,1fr) cards had zero gap when stacked */
  [style*="grid-template-columns:repeat(5,1fr)"] > * + * { margin-top: 16px !important; }
  /* BUG FIX — about.html: border-right on stacked 3-col gap:0 cells becomes spurious full-width lines */
  [style*="grid-template-columns:1fr 1fr 1fr"][style*="gap:0"] > [style*="border-right"] { border-right: none !important; }

  /* 2-col content grids: gap between stacked children */
  [style*="grid-template-columns:1fr 1fr"] > * + *,
  [style*="grid-template-columns:1fr 1.2fr"] > * + *,
  [style*="grid-template-columns:1fr 1.3fr"] > * + *,
  [style*="grid-template-columns:1.2fr 1fr"] > * + * { margin-top: 24px !important; }

  /* Photo+text pairs: no gap — photo columns have both position:relative and overflow:hidden */
  [style*="grid-template-columns:1fr 1fr"] > [style*="position:relative"][style*="overflow:hidden"] + * { margin-top: 0 !important; }
  [style*="grid-template-columns:1fr 1fr"] > * + [style*="position:relative"][style*="overflow:hidden"] { margin-top: 0 !important; }

  /* ── Neil / Joy / Eaj bio sections ── */
  .neil-text-col { padding: 32px 16px !important; }
  /* Neil: put photo above text on mobile using flex column + order */
  .neil-img-col  {
    height: 620px !important;
    min-height: 620px !important;
    order: -1 !important;
    background: #1a1a1a !important;
    margin-top: 0 !important;
  }
  /* Make Neil's grid section a flex column so order works */
  .deco-sun > [style*="grid-template-columns:1fr 1fr"] {
    display: flex !important;
    flex-direction: column !important;
  }
  /* Photo columns: lock height so absolutely-positioned img fills correctly */
  .bio-photo-col { height: 560px !important; min-height: 560px !important; overflow: hidden !important; }
  /* Eaj's photo needs more height — original is 460px tall, 280px cuts off at head level */
  .bio-photo-col[style*="min-height:460px"] { height: 460px !important; min-height: 460px !important; }
  /* Text columns: let content breathe — no height cap, no clipping */
  .bio-text-col  { overflow: visible !important; height: auto !important; min-height: auto !important; padding: 32px 16px !important; }

  /* ── Footer ── */
  footer, .footer { padding-left: 16px !important; padding-right: 16px !important; }
  .m-footer-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 24px !important; }
  .m-footer-grid > *:not(:last-child) { margin-bottom: 0 !important; }

  /* ── Hero ── */
  .m-hero-text { padding: 36px 16px 32px !important; }
  .m-hero-text h1 { font-size: 32px !important; line-height: 1.2 !important; }
  .m-hero-img { display: none !important; }

  /* ── Stats ── */
  .m-stats-row { flex-wrap: wrap !important; }
  .m-stats-row > * { width: 50% !important; border-right: none !important; box-sizing: border-box; padding: 20px 10px !important; }

  /* ── Service nav ── */
  .svcnav-inner { padding: 0 12px !important; }
  .svcnav-item { font-size: 12px !important; padding: 14px 10px !important; white-space: nowrap; }

  /* ── Service hero ── */
  .m-svc-hero { padding: 36px 16px !important; max-width: 100% !important; }
  .m-svc-hero h1 { font-size: 30px !important; line-height: 1.4 !important; }
  .m-svc-hero p  { font-size: 14px !important; }
  .m-svc-hero-wrap { min-height: auto !important; }

  /* ── Testimonials ── */
  .jf-testimonials { padding: 48px 16px !important; }
  .jf-testimonials .wrap { padding: 0 !important; }
  .jf-quote-feature { padding: 32px 20px !important; }
  .jf-quote-feature p { font-size: 20px !important; }
  .jf-quote-grid { gap: 14px !important; }
  .jf-quote-box { padding: 24px 16px !important; }

  /* ── Forms: full width ── */
  .jf-row { grid-template-columns: 1fr !important; }
  .jf-form, .jf-input, .jf-submit { width: 100% !important; box-sizing: border-box !important; }
  .jf-form-body { padding: 20px 16px !important; }
  /* Form card header */
  [style*="padding:24px 36px"] { padding: 20px 16px !important; }

  /* ════════════════════════════════════════
     GLOBAL INNER CARD PADDING FIXES
     Prevents nested padding from crushing text to thin columns
     ════════════════════════════════════════ */

  /* Dark compliance/commitment cards (padding:48px → 28px 20px) */
  [style*="background:#1a1a1a"][style*="padding:48px"] { padding: 28px 20px !important; }
  [style*="background:#1a1a1a"][style*="border-radius:20px"] { padding: 28px 20px !important; }

  /* Inner tiles inside dark cards */
  [style*="background:rgba(255,255,255,.06)"][style*="padding:24px"] { padding: 16px !important; }
  [style*="background:rgba(255,255,255,.05)"][style*="padding:28px"] { padding: 16px !important; }

  /* Feature/icon+text rows (f9f9f9 boxes): stack icon above text, no wide indent */
  [style*="background:#f9f9f9"][style*="border-left"][style*="display:flex"] {
    flex-direction: column !important;
    gap: 8px !important;
    padding: 16px !important;
  }
  /* Don't indent text under icon — restore left margin to edge of card */
  [style*="background:#f9f9f9"][style*="border-left"][style*="display:flex"] > * {
    width: 100% !important;
  }

  /* Coloured eligibility/info boxes */
  [style*="background:#fff5f5"][style*="padding:32px"] { padding: 20px 16px !important; }
  [style*="background:#f0faf7"][style*="padding:32px"] { padding: 20px 16px !important; }
  [style*="background:#f9f9f9"][style*="padding:32px"] { padding: 16px !important; }

  /* White quote/info cards with heavy padding */
  [style*="border-radius:16px"][style*="padding:32px"] { padding: 20px 16px !important; }
  [style*="border-radius:16px"][style*="padding:36px"] { padding: 20px 16px !important; }

  /* About page / find-support value cards */
  [style*="border-radius:20px"][style*="box-shadow"] > div[style*="padding:32px"] { padding: 16px !important; }
  [style*="border-top"][style*="padding:36px"] { padding: 20px 16px !important; }

  /* Plan manager section inner card tops (respite) */
  [style*="background:rgba(255,255,255,.05)"][style*="border-radius:16px"] { padding: 16px !important; }

  /* ── Respite 3-value/4-value section paddings (not caught by 2-value rules) ── */
  [style*="padding:48px 60px 56px"] { padding: 24px 16px !important; }
  [style*="padding:52px 60px 40px"] { padding: 24px 16px !important; }
  [style*="padding:40px 60px 52px"] { padding: 20px 16px !important; }
  [style*="padding:40px 48px 40px 60px"] { padding: 20px 16px !important; }
  [style*="padding:40px 60px 40px 48px"] { padding: 20px 16px !important; }

  /* ════════════════════════════════════════ */

  /* ── Stack icon+text flex rows so text gets full width, not cramped under icon ── */
  [style*="display:flex"][style*="gap:16px"][style*="align-items:flex-start"],
  [style*="display:flex"][style*="gap:18px"][style*="align-items:flex-start"],
  [style*="display:flex"][style*="gap:20px"][style*="align-items:flex-start"] {
    flex-direction: column !important;
    gap: 10px !important;
  }

  /* ── Catch-all: single-value large inner-card paddings (not covered by 2-value rules) ── */
  /* :not([style*="padding:Xpx "]) safely excludes 2-value variants like padding:48px 60px */
  [style*="padding:48px"]:not([style*="padding:48px "]) { padding: 24px 16px !important; }
  [style*="padding:40px"]:not([style*="padding:40px "]) { padding: 20px 16px !important; }

  /* ── Reduce oversized margin-bottom values that create excessive gaps ── */
  [style*="margin-bottom:80px"] { margin-bottom: 32px !important; }
  [style*="margin-bottom:64px"] { margin-bottom: 24px !important; }
  [style*="margin-bottom:48px"] { margin-bottom: 20px !important; }
  [style*="margin-bottom:40px"] { margin-bottom: 20px !important; }
  [style*="margin-bottom:36px"] { margin-bottom: 16px !important; }

  /* ── CTA button rows (exclude bullet items which have align-items:flex-start) ── */
  [style*="display:flex;gap:14px"]:not([style*="align-items:flex-start"]) { flex-direction: column !important; align-items: stretch !important; gap: 10px !important; }
  [style*="display:flex;gap:14px"]:not([style*="align-items:flex-start"]) > * { text-align: center; }

  /* ── Centered flex rows stay horizontal ── */
  [style*="justify-content:center"][style*="flex-wrap:wrap"] { flex-direction: row !important; align-items: center !important; }

  /* ── Questions before submitting box (respite) ── */
  [style*="background:rgba(123,82,212,.2)"][style*="display:flex"] {
    flex-direction: column !important;
    padding: 24px 16px !important;
    gap: 12px !important;
  }
  [style*="background:rgba(123,82,212,.2)"] [style*="display:flex;gap:12px"] {
    flex-direction: column !important;
    gap: 10px !important;
  }
  [style*="background:rgba(123,82,212,.2)"] a {
    width: 100% !important;
    box-sizing: border-box !important;
    justify-content: center !important;
    word-break: break-all;
  }

  /* ── Dark sections on respite page ── */
  [style*="background:#111117"] { border-radius: 0 !important; }
  [style*="background:linear-gradient(135deg,#1a1a1a"] { padding: 28px 16px !important; flex-direction: column !important; gap: 24px !important; }
  [style*="background:linear-gradient(135deg,#1a1a1a"] img { width: 160px !important; }

  /* ── 2-col grid inside dark section ── */
  [style*="background:#111117"] > [style*="grid-template-columns:1fr 1fr"] { display: block !important; }
  [style*="background:#111117"] [style*="border-right:1px"] { border-right: none !important; border-bottom: 1px solid rgba(255,255,255,.08) !important; padding: 24px 16px !important; }

  /* ── Border-left section headings (Eligibility, Compliance, etc.) — reduce indent on mobile ── */
  [style*="border-left:5px solid"][style*="padding-left:18px"] { padding-left: 10px !important; }
  [style*="padding-left:23px"] { padding-left: 12px !important; }

}

/* ════════════════════════════════════════
   SMALL MOBILE — max-width: 480px
   ════════════════════════════════════════ */
@media (max-width: 480px) {
  .m-footer-grid { grid-template-columns: 1fr !important; }
  .m-stats-row > * { width: 100% !important; }
}
