/* Follow Me Therapy: the cards and pop-ups shared by every page.
   Loaded after home.css or pages.css, so the home page and the inner pages
   show the same service and funding cards, the same pop-ups and the same
   Get started choices. Each card takes the colour of its icon. */

:root {
  --card-purple: #6b4ef0;
  --card-purple-tint: #efe9ff;
  --card-teal: #007a8a;
  --card-teal-tint: #e3f4f5;
  --card-sun: #c77c00;
  --card-sun-band: #f2a516;
  --card-sun-tint: #fff0cc;
  --card-pink: #d6457a;
  --card-pink-tint: #fde7ef;
}

/* ── Service and funding cards ──
   Left-aligned, a coloured band along the top in the icon's colour, an
   icon tile, and a lift and tilt on hover. */
.service-item,
.funding-card {
  --band: var(--card-purple);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start !important;
  text-align: left !important;
  padding: 24px !important;
  background: #fff;
  border-radius: 24px !important;
  border-top: 6px solid var(--band) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06) !important;
  cursor: pointer;
  transition:
    transform 0.35s cubic-bezier(0.3, 1.5, 0.5, 1),
    box-shadow 0.3s ease;
}
.service-item:has(.svc-stairs),
.funding-card:has(.svc-stairs) {
  --band: var(--card-teal);
}
.service-item:has(.svc-esdm),
.funding-card:has(.svc-esdm) {
  --band: var(--card-sun-band);
}
.service-item:has(.svc-assessments),
.funding-card:has(.svc-assessments) {
  --band: var(--card-pink);
}
.service-item h3,
.service-item p,
.funding-card h3,
.funding-card p {
  text-align: left !important;
}
.service-item h3,
.funding-card h3 {
  margin: 0 0 8px !important;
}
.service-item p,
.funding-card p {
  margin: 0 0 14px !important;
}
.service-item .svc-icon,
.funding-card .svc-icon {
  width: 60px !important;
  height: 60px !important;
  border-radius: 18px !important;
  margin-bottom: 12px !important;
}
.service-item .svc-icon svg,
.funding-card .svc-icon svg {
  width: 34px !important;
  height: 34px !important;
}
.service-item .more,
.funding-card .more {
  margin-top: auto;
}
.service-item:focus-visible,
.service-item:hover,
.funding-card:focus-visible,
.funding-card:hover {
  transform: translateY(-6px) rotate(1deg);
  box-shadow: 0 16px 32px rgba(43, 37, 64, 0.12) !important;
}
.service-item:nth-child(even):focus-visible,
.service-item:nth-child(even):hover,
.funding-card:nth-child(even):focus-visible,
.funding-card:nth-child(even):hover {
  transform: translateY(-6px) rotate(-1deg);
}
.service-item:active,
.funding-card:active {
  transform: scale(0.97);
}

/* ── Service and funding pop-ups ──
   A band and a soft wash of the card's colour across the top, the card's
   icon (which bobs in), a short tag, then the details, each line arriving
   in turn. */
.modal[data-tone] .modal-content {
  --tone: var(--card-purple);
  --tone-tint: var(--card-purple-tint);
  border-top: 8px solid var(--tone);
  background: linear-gradient(180deg, var(--tone-tint) 0, #fff 150px) #fff !important;
}
.modal[data-tone="teal"] .modal-content { --tone: var(--card-teal); --tone-tint: var(--card-teal-tint); }
.modal[data-tone="sun"] .modal-content { --tone: var(--card-sun); --tone-tint: var(--card-sun-tint); }
.modal[data-tone="pink"] .modal-content { --tone: var(--card-pink); --tone-tint: var(--card-pink-tint); }
.modal-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}
.modal-hero h3 {
  margin: 0 32px !important;
  font-size: 1.6em;
}
.modal-icon {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  border-radius: 24px;
  background: #fff;
  color: var(--tone);
  box-shadow: 0 8px 20px rgba(43, 37, 64, 0.1);
}
.modal-icon svg {
  width: 44px;
  height: 44px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.modal-icon.is-fill svg {
  fill: currentColor;
  stroke: none;
}
.modal-tag {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 999px;
  background: var(--tone);
  color: #fff;
  font-weight: 700;
  font-size: 0.85em;
  letter-spacing: 0.02em;
}
.modal-lead {
  font-size: 1.1em !important;
  font-weight: 600;
  color: #2b2540;
  text-align: center;
}
.modal-body .list-label {
  margin: 4px 0 8px !important;
}
.modal-body .checklist li {
  background: #fff;
  border: 2px solid var(--tone-tint);
  border-radius: 16px;
  padding: 10px 14px 10px 44px;
  margin-bottom: 10px;
}
.modal-body .checklist li::before {
  left: 14px !important;
  top: 12px !important;
}
@media (prefers-reduced-motion: no-preference) {
  .modal.show .modal-icon {
    animation: iconBob 0.7s cubic-bezier(0.3, 1.6, 0.5, 1) both 0.1s;
  }
  .modal.show .modal-body > * {
    animation: lineIn 0.45s ease-out both;
  }
  .modal.show .modal-body > *:nth-child(2) { animation-delay: 0.08s; }
  .modal.show .modal-body > *:nth-child(3) { animation-delay: 0.16s; }
  .modal.show .modal-body .checklist li { animation: lineIn 0.45s ease-out both; }
  .modal.show .modal-body .checklist li:nth-child(1) { animation-delay: 0.18s; }
  .modal.show .modal-body .checklist li:nth-child(2) { animation-delay: 0.26s; }
  .modal.show .modal-body .checklist li:nth-child(3) { animation-delay: 0.34s; }
  .modal.show .modal-body .checklist li:nth-child(4) { animation-delay: 0.42s; }
  .modal.show .modal-body .checklist li:nth-child(5) { animation-delay: 0.5s; }
  @keyframes iconBob {
    0% { transform: scale(0.4) rotate(-14deg); opacity: 0; }
    100% { transform: none; opacity: 1; }
  }
  @keyframes lineIn {
    0% { transform: translateY(10px); opacity: 0; }
    100% { transform: none; opacity: 1; }
  }
}

/* ── Get started choices ──
   White cards with the same coloured band along the top as the service
   cards: purple for a referral, teal for a question; a chevron to go. */
.modal-choice,
.modal-choice.primary {
  --band: var(--card-purple);
  --tint: var(--card-purple-tint);
  background: #fff !important;
  color: #2b2540 !important;
  border: 2px solid #ece8fb !important;
  border-top: 6px solid var(--band) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06) !important;
}
.modal-choice:not(.primary) {
  --band: var(--card-teal);
  --tint: var(--card-teal-tint);
}
.modal-choice:hover,
.modal-choice.primary:hover {
  background: #fff !important;
  border-color: #ece8fb !important;
  border-top-color: var(--band) !important;
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(43, 37, 64, 0.12) !important;
}
.modal-choice .mc-icon,
.modal-choice.primary .mc-icon {
  background: var(--tint) !important;
  color: var(--band) !important;
}
.mc-arrow {
  display: grid;
  place-items: center;
  color: var(--band);
}
.mc-arrow svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ── Pop-ups fit the screen without scrolling ──
   On phones and short windows everything tightens a little: a smaller
   icon, closer lines, slimmer rows and button. */
@media (max-width: 600px), (max-height: 820px) {
  .modal .modal-content {
    width: min(600px, calc(100% - 24px)) !important;
    padding: 26px 18px 18px !important;
    max-height: calc(100dvh - 24px) !important;
  }
  .modal-hero {
    gap: 4px;
    margin-bottom: 10px;
  }
  .modal-icon {
    width: 54px;
    height: 54px;
    border-radius: 18px;
  }
  .modal-icon svg {
    width: 32px;
    height: 32px;
  }
  .modal-tag {
    font-size: 0.78em;
    padding: 3px 10px;
  }
  .modal-hero h3 {
    font-size: 1.3em;
    margin: 0 30px !important;
  }
  .modal-body p,
  .modal-lead {
    font-size: 0.95em !important;
    line-height: 1.45 !important;
    margin: 0 0 8px !important;
  }
  .modal-body .checklist {
    margin: 0 0 8px !important;
  }
  .modal-body .checklist li {
    font-size: 0.93em !important;
    line-height: 1.4 !important;
    padding: 7px 10px 7px 34px;
    margin-bottom: 6px !important;
    border-radius: 12px;
  }
  .modal-body .checklist li::before {
    left: 10px !important;
    top: 9px !important;
    width: 16px;
    height: 16px;
  }
  .modal-note {
    font-size: 0.88em !important;
    margin: 4px 0 8px !important;
  }
  .modal .btn-secondary,
  .modal .btn {
    padding-top: 11px !important;
    padding-bottom: 11px !important;
    margin-top: 6px !important;
  }
  .modal .close {
    top: 6px !important;
    right: 8px !important;
  }
}
/* Very short screens (an iPhone SE): the icon tile gives way, so even the
   longest pop-up fits. The band, tint and tag still carry its colour. */
@media (max-height: 700px) {
  .modal-icon {
    display: none !important;
  }
  .modal .modal-content {
    padding-top: 20px !important;
    padding-bottom: 14px !important;
  }
  .modal-hero {
    margin-bottom: 6px;
  }
  .modal-body .checklist li {
    padding-top: 5px;
    padding-bottom: 5px;
  }
  .modal-body .checklist li::before {
    top: 7px !important;
  }
}
@media (max-height: 700px) {
  .modal .modal-content {
    font-size: 15px !important;
  }
  .modal .modal-content h3 {
    font-size: 1.25rem !important;
  }
  .modal-body p,
  .modal-body .checklist li,
  .modal-lead {
    font-size: 0.95rem !important;
  }
}
@media (max-height: 660px) {
  .modal-tag {
    display: none !important;
  }
  .modal .modal-content {
    padding: 16px 16px 12px !important;
  }
  .modal-body .checklist li {
    margin-bottom: 4px !important;
  }
}
@media (max-height: 660px) {
  .modal-hero h3 {
    font-size: 1.15rem !important;
  }
  .modal-body p,
  .modal-lead,
  .modal-body .checklist li {
    line-height: 1.35 !important;
  }
}

/* ── Information notes ──
   The "Every session…" line, the research note and the notes on the inner
   pages: a soft tinted strip with a round coloured badge on the left
   holding an icon (a heart, a book, an "i"), and the words beside it. No
   card, no shadow, no shapes to stretch: it holds any length of text at
   any width. */
.info-note {
  display: flex !important;
  align-items: center;
  gap: 18px;
  text-align: left !important;
  max-width: 720px !important;
  margin: 40px auto 0 !important;
  padding: 20px 24px !important;
  border: 0 !important;
  border-radius: 22px !important;
  background: var(--note-tint, #efe9ff) !important;
  box-shadow: none !important;
  filter: none !important;
  animation: none !important;
  transform: none !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
}
.info-note::before {
  content: "" !important;
  position: static !important;
  flex: none;
  width: 52px !important;
  height: 52px !important;
  border-radius: 50%;
  transform: none !important;
  filter: none !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5'/%3E%3Cpath d='M12 7.6v.1'/%3E%3C/svg%3E") center / 26px 26px no-repeat, var(--note-ink, #6b4ef0) !important;
  box-shadow: 0 6px 14px rgba(43, 37, 64, 0.12);
}
.info-note::after {
  content: none !important;
}
.info-note > span {
  flex: 1;
  min-width: 0;
}
/* The "Every session…" line: the practice's promise, so it's larger and
   in the heading face, with a heart. */
.callout.info-note {
  --note-tint: #fff;
  --note-ink: #6b4ef0;
  font-family: "Fredoka", "Quicksand", sans-serif;
  font-weight: 500;
  font-size: 1.2rem !important;
  color: #2b2540;
  padding: 24px 28px !important;
  margin-top: 56px !important;
  margin-bottom: 8px !important;
}
.callout.info-note::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z'/%3E%3C/svg%3E") center / 26px 26px no-repeat, var(--note-ink) !important;
}
/* The research behind telehealth: a book, in teal. */
.evidence.info-note {
  --note-tint: #e3f4f5;
  --note-ink: #007a8a;
}
.evidence.info-note::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5.5c3-1.3 6-1.3 9 .5 3-1.8 6-1.8 9-.5V19c-3-1.3-6-1.3-9 .5-3-1.8-6-1.8-9-.5z'/%3E%3Cpath d='M12 6v13.5'/%3E%3C/svg%3E") center / 26px 26px no-repeat, var(--note-ink) !important;
}
@media (max-width: 600px) {
  .info-note {
    align-items: flex-start;
    gap: 14px;
    padding: 18px !important;
    margin-top: 32px !important;
  }
  .info-note::before {
    width: 44px !important;
    height: 44px !important;
    background-size: 22px 22px, auto !important;
  }
  .callout.info-note {
    font-size: 1.08rem !important;
    padding: 20px !important;
    margin: 44px 4px 8px !important;
  }
}

/* Funding icons are always drawn in lines (the footprints' solid fill is
   only for the 5 Steps Forward card). */
.fund-svg svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* Links inside a pop-up: a row each, with a right chevron, in the pop-up's
   colour. */
.modal-links {
  display: grid;
  gap: 8px;
  margin: 6px 0 12px;
}
.modal-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 11px 14px 11px 16px;
  border-radius: 14px;
  background: var(--tone-tint, #efe9ff);
  color: #2b2540 !important;
  font-weight: 700;
  text-decoration: none !important;
  text-align: left;
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.modal-link svg {
  flex: none;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: var(--tone, #6b4ef0);
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.2s ease;
}
.modal-link:hover svg,
.modal-link:focus-visible svg {
  transform: translateX(3px);
}
.modal-link:focus-visible {
  outline: 3px solid var(--tone, #6b4ef0);
  outline-offset: 2px;
}
@media (max-width: 600px), (max-height: 820px) {
  .modal-links {
    gap: 6px;
    margin: 4px 0 8px;
  }
  .modal-link {
    padding: 8px 12px 8px 14px;
    font-size: 0.92em;
  }
}
@media (max-height: 700px) {
  .modal-links {
    margin: 2px 0 6px;
    gap: 4px;
  }
  .modal-link {
    padding: 6px 12px;
  }
  .modal .btn-secondary,
  .modal .btn {
    margin-top: 2px !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }
}
@media (max-height: 700px) {
  .modal-hero {
    margin-bottom: 2px !important;
  }
  .modal-body .list-label {
    margin: 2px 0 4px !important;
  }
}

/* The notes' badges are squircles, like the icon tiles on the cards: a
   soft tile of colour with the icon drawn in lines. */
.info-note::before {
  border-radius: 16px !important;
  box-shadow: none !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b4ef0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5'/%3E%3Cpath d='M12 7.6v.1'/%3E%3C/svg%3E") center / 26px 26px no-repeat, #fff !important;
}
.callout.info-note::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b4ef0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z'/%3E%3C/svg%3E") center / 26px 26px no-repeat, #efe9ff !important;
}
.evidence.info-note::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23007a8a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5.5c3-1.3 6-1.3 9 .5 3-1.8 6-1.8 9-.5V19c-3-1.3-6-1.3-9 .5-3-1.8-6-1.8-9-.5z'/%3E%3Cpath d='M12 6v13.5'/%3E%3C/svg%3E") center / 26px 26px no-repeat, #fff !important;
}
@media (max-width: 600px) {
  .info-note::before {
    border-radius: 14px !important;
    background-size: 22px 22px, auto !important;
  }
}

/* A link that leaves the site (to the NDIS or Services Australia) shows an
   "open outside" mark instead of a chevron. */
.modal-link.is-external {
  background: #fff;
  border: 2px solid var(--tone-tint, #efe9ff);
}
