/* ============================================================
   Heal&Grow: additions made after the original design system.
   Kept in their own file so style.css stays exactly as designed.
   Contents: logo (c) mark and footer logo link, mobile menu close
   button, footer credit link, cookie banner.
   Uses the colour/type tokens defined in style.css.
   ============================================================ */

/* ---- logo: small (c) mark beside the wordmark (header and footer) ----
   line-height:0 keeps it from changing the height of the line it sits in. */
.logo-c{
  font-family: var(--font-body); font-style: normal; font-weight: 600;
  font-size: .45em; line-height: 0; vertical-align: super; margin-left: 3px;
}

/* ---- footer logo is a link to the home page: keep the logo's own colour, no underline ---- */
.footer-logo a{ color: inherit; }
.footer-logo a:hover{ text-decoration: none; }
.footer-logo a:focus-visible{ outline: 3px solid var(--clay-tint); outline-offset: 4px; border-radius: 4px; }

/* ---- mobile menu: close button inside the slide-out panel ---- */
.nav-close{ display: none; }
@media (max-width: 900px){
  .nav-close{
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: 18px; right: 18px; width: 44px; height: 44px;
    background: none; border: 1px solid rgba(251,244,232,.35); border-radius: 50%;
    color: var(--cream); font-size: 1.3rem; line-height: 1; cursor: pointer;
  }
  .nav-close:hover{ background: rgba(251,244,232,.1); }
  .nav-close:focus-visible{ outline: 3px solid var(--clay-tint); outline-offset: 3px; }
  /* while the panel is slid out of view, keep its close button out of the tab order */
  .main-nav:not(.open) .nav-close{ visibility: hidden; }
}

/* ---- footer credit ---- */
.footer-bottom .footer-credit{
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---- cookie banner ---- */
.cookie-visually-hidden{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden;
  clip: rect(0 0 0 0); white-space:nowrap; border:0;
}

.cookie-banner{
  position: fixed; left:0; right:0; bottom:0; z-index: 70;
  background: var(--forest-deep); color: var(--cream);
  border-top: 3px solid var(--clay);
  box-shadow: 0 -14px 40px -12px rgba(0, 0, 0, .45);
  font-size: 1.05rem; line-height: 1.5;
  max-height: 92vh; overflow-y: auto;
}
.cookie-banner[hidden]{ display:none; }
.cookie-banner:focus{ outline: none; }
.cookie-inner{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap: 18px 36px; padding-top: 22px; padding-bottom: 22px;
}
.cookie-text{ flex: 1 1 420px; min-width: 0; }
.cookie-banner h2.cookie-title{
  color: var(--cream); font-size: 1.4rem; margin: 0 0 6px;
}
.cookie-banner p{ margin: 0; opacity:.92; }
.cookie-banner p a{ color: var(--clay-tint); text-decoration: underline; text-underline-offset: 3px; }
.cookie-banner p a:hover{ color: var(--white); }

.cookie-actions{ display:flex; flex-wrap:wrap; align-items:center; gap: 12px 14px; flex: 0 1 auto; }
.cookie-banner .btn{ padding: 12px 22px; font-size: 1.05rem; }
.cookie-manage{
  background:none; border:0; padding: 10px 4px; cursor:pointer;
  font-family: var(--font-body); font-weight:700; font-size: 1.05rem;
  color: var(--cream); text-decoration: underline; text-underline-offset: 4px;
}
.cookie-manage:hover{ color: var(--clay-tint); }

.cookie-banner button:focus-visible,
.cookie-banner a:focus-visible,
.cookie-banner input:focus-visible,
[data-cookie-settings]:focus-visible{
  outline: 3px solid var(--clay-tint); outline-offset: 3px;
}

.cookie-prefs{
  flex: 1 1 100%; border-top: 1px solid rgba(251,244,232,.18); padding-top: 18px;
}
.cookie-prefs[hidden]{ display:none; }
.cookie-prefs fieldset{ border:0; margin:0 0 16px; padding:0; min-width:0; }
.cookie-prefs legend{
  padding:0; margin-bottom: 8px; font-weight:700; letter-spacing:.08em;
  text-transform: uppercase; font-size:.9rem; color: var(--clay-tint);
}
.cookie-option{
  display:grid; grid-template-columns: 26px 1fr; gap: 4px 12px; align-items:start;
  padding: 10px 0; border-bottom: 1px solid rgba(251,244,232,.1);
}
.cookie-option:last-child{ border-bottom:0; }
.cookie-option input{ width:20px; height:20px; margin:4px 0 0; accent-color: var(--clay); }
.cookie-option label{ font-weight:700; cursor:pointer; }
.cookie-option .cookie-option-desc{ grid-column: 2; margin:0; opacity:.82; font-size:.95rem; }

@media (max-width: 700px){
  .cookie-banner{ font-size: .95rem; }
  .cookie-inner{ padding-top: 14px; padding-bottom: 14px; gap: 12px; }
  .cookie-banner h2.cookie-title{ font-size: 1.25rem; margin-bottom: 4px; }
  .cookie-actions{ flex: 1 1 100%; gap: 8px; }
  .cookie-banner .btn{ padding: 10px 18px; font-size: 1rem; }
  .cookie-actions .btn{ flex: 1 1 100%; justify-content:center; }
  .cookie-manage{ flex: 1 1 100%; text-align:center; padding: 6px 4px; font-size: .95rem; }
}
