
:root{
  --plum:#4b155c;
  --plum-2:#6f3a86;
  --lavender:#c9b1d7;
  --lavender-soft:#f1e9f5;
  --mint:#dceee5;
  --teal:#2f696c;
  --ink:#17242a;
  --muted:#56616a;
  --cream:#fffaf1;
  --white:#ffffff;
  --gold:#f5c76c;
  --danger:#7e2344;
  --shadow:0 18px 48px rgba(38,22,45,.12);
  --radius:24px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--ink);background:var(--cream);line-height:1.6;font-size:17px}
a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em}
a:hover{text-decoration-thickness:.14em}
img{max-width:100%;height:auto}
.skip-link{position:absolute;left:-999px;top:1rem;background:#fff;color:#000;padding:.75rem 1rem;border-radius:.5rem;z-index:99}
.skip-link:focus{left:1rem}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,250,241,.95);backdrop-filter:blur(16px);border-bottom:1px solid rgba(75,21,92,.12)}
.announcement{background:var(--plum);color:#fff;text-align:center;padding:.55rem 1rem;font-size:.92rem;line-height:1.35}
.announcement-line{display:block}.announcement-line+ .announcement-line{margin-top:.12rem}.announcement a{font-weight:900}
.nav-wrap{max-width:var(--max);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem}
.brand,.footer-brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.brand-mark{display:grid;place-items:center;flex:0 0 auto;width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--plum),var(--plum-2));color:#fff;font-weight:900;letter-spacing:-.06em;box-shadow:0 12px 28px rgba(75,21,92,.22)}
.brand small{display:block;color:var(--muted);font-size:.82rem;margin-top:-.15rem}
.primary-nav{display:flex;align-items:center;gap:.2rem;flex-wrap:wrap;justify-content:flex-end}
.primary-nav a{padding:.55rem .7rem;border-radius:999px;text-decoration:none;font-size:.94rem;color:#263238}
.primary-nav a:hover,.primary-nav a[aria-current="page"]{background:var(--lavender-soft);color:var(--plum)}
.primary-nav .nav-donate{background:var(--gold);color:#211a04;font-weight:800;margin-left:.35rem}
.menu-button{display:none;border:0;border-radius:999px;background:var(--plum);color:#fff;padding:.65rem 1rem;font-weight:800}
.section{max-width:var(--max);margin:auto;padding:4.5rem 1.25rem}
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:2.5rem;align-items:center;min-height:650px;position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;right:8%;top:12%;width:260px;height:260px;background:var(--mint);border-radius:999px;z-index:-1;filter:blur(1px)}
.hero:after{content:"";position:absolute;right:25%;bottom:13%;width:180px;height:180px;background:var(--lavender);border-radius:999px;z-index:-1;opacity:.55}
.kicker{font-weight:900;color:var(--plum);text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;margin:0 0 .75rem}
h1,h2,h3{line-height:1.08;margin:0 0 1rem;color:var(--ink)}
h1{font-size:clamp(2.7rem,7vw,5.9rem);letter-spacing:-.07em;max-width:960px}
h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.055em}
h3{font-size:1.35rem;letter-spacing:-.03em}.lead{font-size:clamp(1.16rem,2.2vw,1.45rem);color:#33424a;max-width:780px}.hero-actions,.button-row{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.7rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.15rem;border-radius:999px;background:var(--plum);color:#fff!important;text-decoration:none;font-weight:900;border:2px solid var(--plum);box-shadow:0 12px 26px rgba(75,21,92,.18)}.button:hover{transform:translateY(-1px)}.button-soft{background:#fff!important;color:var(--plum)!important;border-color:rgba(75,21,92,.2);box-shadow:none}.hero-panel{min-height:440px;border-radius:40px;background:radial-gradient(circle at 30% 20%,#fff 0 16%,transparent 17%),linear-gradient(145deg,var(--plum),#7e5695 60%,var(--lavender));color:#fff;padding:2rem;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero-panel:before{content:"";position:absolute;inset:auto -80px -120px auto;width:300px;height:300px;background:rgba(255,255,255,.16);border-radius:50%}.rc-mark{font-size:9rem;font-weight:1000;letter-spacing:-.1em;line-height:.8;opacity:.9}.hero-panel p{font-size:1.15rem;max-width:360px;position:relative}.hero-badge{align-self:flex-start;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);padding:.55rem .85rem;border-radius:999px;font-weight:800;margin-top:.5rem;position:relative}.section-heading{max-width:760px;margin-bottom:2rem}.section-heading.compact{max-width:900px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}.card-grid.three{grid-template-columns:repeat(3,1fr)}.card{background:#fff;border:1px solid rgba(75,21,92,.12);border-radius:var(--radius);padding:1.45rem;box-shadow:0 12px 28px rgba(38,22,45,.07)}.card-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--lavender-soft);color:var(--plum);font-weight:900;margin-bottom:1rem}.text-link{font-weight:900;color:var(--plum)}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.42fr);gap:2rem;align-items:start}.muted{background:linear-gradient(180deg,rgba(241,233,245,.8),rgba(220,238,229,.45));max-width:none}.muted>*{max-width:var(--max);margin-left:auto;margin-right:auto}.timetable-card,.callout{background:#fff;border-radius:var(--radius);padding:1.55rem;box-shadow:var(--shadow);border:1px solid rgba(75,21,92,.12)}.callout.lavender{background:var(--lavender-soft)}.tick-list{list-style:none;margin:1rem 0 0;padding:0}.tick-list li{position:relative;padding-left:1.65rem;margin:.62rem 0}.tick-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--teal);font-weight:1000}.impact-strip{background:#fff;border-top:1px solid rgba(75,21,92,.08);border-bottom:1px solid rgba(75,21,92,.08);max-width:none}.impact-strip>*{max-width:var(--max);margin-left:auto;margin-right:auto}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.5rem auto}.stat{border-radius:24px;background:var(--plum);color:#fff;padding:1.35rem;min-height:150px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 14px 30px rgba(75,21,92,.16)}.stat:nth-child(even){background:var(--teal)}.stat strong{display:block;font-size:clamp(2.1rem,5vw,4rem);line-height:.95;letter-spacing:-.07em}.stat p{margin:.35rem 0 0;font-weight:800}.stat span{font-size:.84rem;opacity:.85}.steps{counter-reset:step;list-style:none;margin:0;padding:0}.steps li{counter-increment:step;background:#fff;border:1px solid rgba(75,21,92,.12);border-radius:18px;padding:1.15rem 1.15rem 1.15rem 4.2rem;margin:1rem 0;position:relative}.steps li:before{content:counter(step);position:absolute;left:1rem;top:1rem;width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--plum);color:#fff;font-weight:900}.accordion{display:grid;gap:.65rem}.accordion button{width:100%;text-align:left;background:#fff;border:1px solid rgba(75,21,92,.12);border-radius:18px;padding:1rem 3rem 1rem 1rem;font:inherit;font-weight:900;color:var(--ink);cursor:pointer;position:relative}.accordion button:after{content:"+";position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-weight:900;color:var(--plum)}.accordion button[aria-expanded="true"]:after{content:"–"}.accordion div{display:none;background:#fff;border-radius:18px;padding:0 1rem 1rem;margin-top:-.7rem;border:1px solid rgba(75,21,92,.12);border-top:0}.accordion button[aria-expanded="true"]+div{display:block}.urgent-box{background:#fff1f5;border:1px solid rgba(126,35,68,.18);border-radius:36px;margin-top:2rem;margin-bottom:2rem}.urgent-box h2{color:var(--danger)}.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.contact-card h2{font-size:2rem}.donation-panel{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;background:var(--plum);color:#fff;max-width:none}.donation-panel>*{max-width:var(--max)}.donation-panel h2,.donation-panel .kicker{color:#fff}.giving-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.giving-grid div{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:1rem}.giving-grid strong{display:block;font-size:2rem}.giving-grid span{display:block}.narrow-page{max-width:850px}.note{color:var(--muted)}.site-footer{background:#211029;color:#fff;padding:3rem 1.25rem 1.2rem}.site-footer a{color:#fff}.footer-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.3fr .8fr .8fr 1fr;gap:2rem}.footer-grid h2{font-size:1.05rem;color:#fff;letter-spacing:0}.footer-grid ul{list-style:none;padding:0;margin:.5rem 0}.footer-grid li{margin:.42rem 0}.footer-brand{margin-bottom:1rem}.small{font-size:.88rem;color:rgba(255,255,255,.72)}.footer-bottom{max-width:var(--max);margin:2rem auto 0;padding-top:1rem;border-top:1px solid rgba(255,255,255,.16);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.92rem;color:rgba(255,255,255,.8)}
@media (max-width:920px){.menu-button{display:inline-flex}.primary-nav{position:absolute;left:1rem;right:1rem;top:calc(100% + .5rem);background:#fff;border-radius:24px;padding:1rem;box-shadow:var(--shadow);display:none;flex-direction:column;align-items:stretch}.primary-nav.open{display:flex}.primary-nav a{padding:.8rem 1rem}.hero,.split,.donation-panel{grid-template-columns:1fr}.hero{min-height:auto}.hero-panel{min-height:280px}.card-grid,.card-grid.three,.stats-grid,.contact-grid,.footer-grid{grid-template-columns:1fr 1fr}.footer-grid{gap:1.2rem}}
@media (max-width:620px){body{font-size:16px}.announcement{text-align:left}.nav-wrap{padding:.85rem}.brand small{display:none}.brand-mark{width:42px;height:42px}.section{padding:3rem 1rem}.hero-actions,.button-row{flex-direction:column}.button{width:100%}.card-grid,.card-grid.three,.stats-grid,.contact-grid,.footer-grid,.giving-grid{grid-template-columns:1fr}.footer-bottom{display:block}.rc-mark{font-size:6rem}.hero-panel{border-radius:28px}h1{font-size:2.75rem}.urgent-box{border-radius:24px}.donation-panel{padding:3rem 1rem}}
@media (prefers-reduced-motion:no-preference){.button,.card{transition:transform .2s ease, box-shadow .2s ease}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}}
:focus-visible{outline:4px solid var(--gold);outline-offset:3px}


/* Video and lived-experience quote sections */
.video-feature{background:linear-gradient(135deg,rgba(241,233,245,.92),rgba(255,255,255,.95) 52%,rgba(220,238,229,.88));max-width:none;position:relative;overflow:hidden}
.video-feature:before{content:"";position:absolute;left:-90px;top:-90px;width:260px;height:260px;border-radius:999px;background:rgba(245,199,108,.45)}
.video-feature:after{content:"";position:absolute;right:-110px;bottom:-120px;width:320px;height:320px;border-radius:999px;background:rgba(75,21,92,.10)}
.video-feature-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:minmax(0,.92fr) minmax(340px,1.08fr);gap:2.4rem;align-items:center;position:relative;z-index:1}
.video-copy p{font-size:1.08rem;max-width:650px}.video-side{display:grid;gap:1rem}.video-card{position:relative;overflow:hidden;border-radius:32px;background:#111;aspect-ratio:16/9;box-shadow:0 24px 70px rgba(38,22,45,.18);border:1px solid rgba(75,21,92,.15)}
.video-card iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.quote-stack{display:grid;gap:.85rem;margin-top:1.4rem}.quote-stack blockquote{margin:0;background:rgba(255,255,255,.82);border:1px solid rgba(75,21,92,.12);border-left:6px solid var(--gold);border-radius:18px;padding:1rem 1.1rem;font-weight:900;color:var(--ink);box-shadow:0 10px 26px rgba(38,22,45,.06)}
.transcript-accordion{margin-top:.2rem}.transcript-accordion button{background:rgba(255,255,255,.9)}.quote-list{margin:.5rem 0 0;padding-left:1.2rem}.quote-list li{margin:.65rem 0}.quote-band{padding-top:3.5rem;padding-bottom:3.5rem}.quote-panel{background:#fff;border:1px solid rgba(75,21,92,.12);border-radius:32px;padding:2rem;box-shadow:var(--shadow);max-width:var(--max);margin:auto}.large-quote h2{max-width:980px;color:var(--plum)}.quote-cards .quote-card{display:flex;align-items:flex-end;min-height:170px;background:linear-gradient(145deg,#fff,var(--lavender-soft))}.quote-card p{font-size:1.35rem;line-height:1.25;font-weight:900;color:var(--plum);margin:0}.about-video{padding-top:3.5rem;padding-bottom:3.5rem}
@media (max-width:920px){.video-feature-grid{grid-template-columns:1fr}.video-feature{padding-top:3.5rem;padding-bottom:3.5rem}.quote-panel{border-radius:24px}.quote-card p{font-size:1.2rem}}
@media (max-width:620px){.video-card{border-radius:22px}.quote-stack blockquote{font-size:.98rem}.quote-panel{padding:1.35rem}.large-quote h2{font-size:1.8rem}.quote-band{padding-top:2.5rem;padding-bottom:2.5rem}}


/* Lifted Recovery Cymru image assets */
.brand-logo{display:block;width:58px;height:58px;border-radius:16px;object-fit:contain;background:#fff;padding:.32rem;box-shadow:0 10px 24px rgba(75,21,92,.16);border:1px solid rgba(75,21,92,.10)}
.footer-brand .brand-logo{width:54px;height:54px;background:#fff}
.hero-image-card{position:relative;margin:0;min-height:440px;border-radius:40px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(75,21,92,.15);background:#fff}
.hero-image-card img{width:100%;height:100%;min-height:440px;object-fit:cover;display:block}
.hero-image-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(33,16,41,.72) 100%)}
.hero-image-card figcaption{position:absolute;left:1.25rem;right:1.25rem;bottom:1.25rem;z-index:1;color:#fff;font-weight:900;background:rgba(75,21,92,.72);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.24);padding:.75rem 1rem;border-radius:18px}
.card-media{width:100%;height:180px;border-radius:20px;object-fit:cover;margin:0 0 1rem;background:var(--lavender-soft);border:1px solid rgba(75,21,92,.12)}
.card-media.icon{height:120px;object-fit:contain;padding:1rem;background:var(--lavender-soft)}
.image-card{margin:0;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid rgba(75,21,92,.12);overflow:hidden}
.image-card img{display:block;width:100%;height:auto}.image-card figcaption{padding:.9rem 1rem;color:var(--muted);font-size:.92rem}
.timetable-image-card{align-self:start}.timetable-image-card img{background:#fff}.timetable-image-card figcaption{font-weight:800;color:var(--plum)}
.logo-strip{background:#fff;max-width:none;border-top:1px solid rgba(75,21,92,.08);border-bottom:1px solid rgba(75,21,92,.08)}
.logo-strip-inner{max-width:var(--max);margin:auto;display:grid;grid-template-columns:minmax(0,.7fr) minmax(320px,1fr);gap:2rem;align-items:center}.logo-strip img{background:#fff;border-radius:20px;border:1px solid rgba(75,21,92,.08);padding:1rem;box-shadow:0 10px 28px rgba(38,22,45,.06)}
.asset-note{font-size:.85rem;color:var(--muted);margin-top:.8rem}.badge-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:1rem}.badge-row img{max-width:110px;height:auto;background:#fff;border-radius:18px;padding:.5rem;border:1px solid rgba(75,21,92,.12)}
@media (max-width:920px){.hero-image-card,.hero-image-card img{min-height:320px}.logo-strip-inner{grid-template-columns:1fr}.card-media{height:220px}}
@media (max-width:620px){.brand-logo{width:46px;height:46px}.hero-image-card{border-radius:28px}.hero-image-card,.hero-image-card img{min-height:260px}.hero-image-card figcaption{font-size:.9rem}.card-media{height:180px}}


.legal-page h2 { margin-top: 2rem; }
.legal-page .button-row { margin: 1.5rem 0 2rem; }
.legal-page p { max-width: 74ch; }


/* Mobile optimisation patch */
html, body { max-width: 100%; overflow-x: hidden; }
img, svg, video, iframe { max-width: 100%; }
.nav-wrap { position: relative; }
.menu-button { min-height: 44px; min-width: 44px; align-items: center; justify-content: center; touch-action: manipulation; }
.button, .primary-nav a, .accordion button, .text-link { touch-action: manipulation; }
.site-header { isolation: isolate; }

@media (hover: none) {
  .button:hover, .card:hover { transform: none; box-shadow: 0 12px 28px rgba(38,22,45,.07); }
}

@media (max-width: 920px) {
  .site-header { position: sticky; }
  .announcement { padding: .5rem 1rem; line-height: 1.32; }
  .nav-wrap { padding: .75rem 1rem; }
  .primary-nav {
    z-index: 80;
    top: calc(100% + .35rem);
    left: .75rem;
    right: .75rem;
    max-height: calc(100dvh - 128px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .primary-nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    border-radius: 16px;
    font-size: 1rem;
  }
  .primary-nav .nav-donate { margin-left: 0; justify-content: center; }
  .hero { padding-top: 2.2rem; gap: 1.8rem; }
  .hero-copy { min-width: 0; }
  .hero-image-card, .hero-image-card img { min-height: 300px; }
  .card { min-width: 0; }
  .split { gap: 1.4rem; }
  .video-feature-grid, .video-side, .video-copy { min-width: 0; }
  .footer-grid { align-items: start; }
}

@media (max-width: 620px) {
  body { font-size: 16px; line-height: 1.58; }
  .announcement { font-size: .82rem; padding: .45rem .85rem; }
  .announcement strong { display: inline; }
  .nav-wrap { gap: .55rem; padding: .7rem .85rem; }
  .brand { gap: .55rem; min-width: 0; }
  .brand > span { min-width: 0; }
  .brand strong { display: block; max-width: 160px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .menu-button { padding: .6rem .85rem; }
  .primary-nav { left: .6rem; right: .6rem; border-radius: 20px; padding: .7rem; }
  .section { padding: 2.55rem 1rem; }
  .hero { padding-top: 1.7rem; gap: 1.25rem; }
  h1 { font-size: clamp(2.1rem, 11vw, 2.75rem); letter-spacing: -.052em; }
  h2 { font-size: clamp(1.75rem, 8vw, 2.25rem); letter-spacing: -.045em; }
  h3 { font-size: 1.18rem; }
  .lead { font-size: 1.06rem; }
  .kicker { font-size: .76rem; letter-spacing: .095em; }
  .hero-actions, .button-row { gap: .65rem; margin-top: 1.25rem; }
  .button { min-height: 50px; padding: .78rem 1rem; }
  .hero-image-card { border-radius: 24px; }
  .hero-image-card, .hero-image-card img { min-height: 230px; }
  .hero-image-card figcaption { left: .8rem; right: .8rem; bottom: .8rem; padding: .65rem .75rem; border-radius: 14px; font-size: .88rem; }
  .card { padding: 1.1rem; border-radius: 20px; }
  .card-media { height: 155px; border-radius: 16px; }
  .card-media.icon { height: 96px; padding: .75rem; object-fit: contain; }
  .card-icon { width: 40px; height: 40px; border-radius: 12px; margin-bottom: .7rem; }
  .stats-grid { gap: .75rem; }
  .stat { min-height: 112px; padding: 1rem; border-radius: 20px; }
  .stat strong { font-size: clamp(2.2rem, 15vw, 3.25rem); }
  .steps li { padding: 1rem 1rem 1rem 3.65rem; border-radius: 16px; }
  .steps li:before { width: 36px; height: 36px; border-radius: 12px; left: .8rem; top: .95rem; }
  .accordion button { min-height: 50px; padding: .85rem 2.6rem .85rem .9rem; border-radius: 16px; }
  .accordion div { border-radius: 16px; }
  .video-feature { padding-top: 2.6rem; padding-bottom: 2.6rem; }
  .video-feature-grid { gap: 1.35rem; }
  .video-card { border-radius: 18px; box-shadow: 0 14px 36px rgba(38,22,45,.16); }
  .quote-stack { gap: .65rem; }
  .quote-stack blockquote { padding: .85rem .9rem; border-radius: 14px; border-left-width: 5px; }
  .quote-card p { font-size: 1.08rem; }
  .timetable-image-card img { width: 100%; max-height: 75vh; object-fit: contain; }
  .image-card { border-radius: 20px; }
  .logo-strip-inner { gap: 1.1rem; }
  .logo-strip img { padding: .6rem; border-radius: 16px; }
  .contact-card h2 { font-size: 1.55rem; }
  .donation-panel { gap: 1.2rem; }
  .footer-grid { gap: 1.35rem; }
  .footer-brand { align-items: center; }
  .footer-bottom p { margin: .75rem 0; }
}

@media (max-width: 420px) {
  .brand-logo { width: 42px; height: 42px; border-radius: 13px; }
  .brand strong { max-width: 138px; font-size: .95rem; }
  .menu-button { font-size: .92rem; padding: .55rem .72rem; }
  .section { padding-left: .85rem; padding-right: .85rem; }
  h1 { font-size: 2.05rem; }
  .lead { font-size: 1rem; }
  .hero-image-card, .hero-image-card img { min-height: 210px; }
  .card-media { height: 145px; }
  .footer-grid { grid-template-columns: 1fr; }
}

@supports (padding: max(0px)) {
  @media (max-width: 620px) {
    .section, .site-footer { padding-left: max(1rem, env(safe-area-inset-left)); padding-right: max(1rem, env(safe-area-inset-right)); }
    .nav-wrap { padding-left: max(.85rem, env(safe-area-inset-left)); padding-right: max(.85rem, env(safe-area-inset-right)); }
  }
}


/* Sticky header restoration patch
   Keeps the urgent support banner and main navigation visible while scrolling.
   JS below measures the live header height so the page never hides underneath it. */
:root { --site-header-offset: 132px; }
body { padding-top: var(--site-header-offset); }
.site-header {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1000;
  box-shadow: 0 10px 30px rgba(38,22,45,.10);
}
html { scroll-padding-top: calc(var(--site-header-offset) + 16px); }
.primary-nav { z-index: 1001; }
@media (max-width: 920px) {
  :root { --site-header-offset: 122px; }
  .primary-nav { max-height: calc(100dvh - var(--site-header-offset) - 18px); }
}
@media (max-width: 620px) {
  :root { --site-header-offset: 118px; }
  .site-header { box-shadow: 0 8px 22px rgba(38,22,45,.12); }
}


/* Image fit patch: show the full wide peer-led community banner instead of cropping it. */
.hero-image-card--contain {
  min-height: unset;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #ffffff, var(--lavender-soft));
  aspect-ratio: 16 / 9;
}
.hero-image-card--contain img {
  width: 100%;
  height: 100%;
  min-height: 0 !important;
  object-fit: contain !important;
  background: #ffffff;
}
.hero-image-card--contain:after {
  background: linear-gradient(180deg, rgba(0,0,0,0) 56%, rgba(33,16,41,.62) 100%);
}
@media (max-width: 620px) {
  .hero-image-card--contain { aspect-ratio: 16 / 10; }
  .hero-image-card--contain img { min-height: 0 !important; }
}


/* Additional Recovery Cymru image variety patch */
.card-media--contain{object-fit:contain;background:#fff;padding:.6rem}
.card-media--tall{height:320px}
.hero-image-card--contain{background:#fff}
.hero-image-card--contain img{object-fit:contain;background:#fff;padding:.35rem}
.hero-image-card--contain:after{display:none}
.image-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.image-story-grid .image-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.image-story-grid .image-card:nth-child(2) img{object-fit:contain;background:#fff;padding:.5rem}
@media (max-width:720px){.image-story-grid{grid-template-columns:1fr}.card-media--tall{height:260px}}


/* Subpage image tidy patch
   Homepage remains unchanged; these rules make supporting-page images feel more deliberate. */
.hero-image-card--photo img {
  object-fit: cover;
  object-position: center;
}
.hero-image-card--square img {
  object-position: center top;
}
.hero-image-card--contain {
  background: #fff;
  padding: .45rem;
}
.hero-image-card--contain img {
  object-fit: contain !important;
  padding: .25rem;
  background: #fff;
}
.card-media--wide {
  height: auto !important;
  max-height: 235px;
  aspect-ratio: 16 / 9;
  object-fit: contain !important;
  background: #fff;
  padding: .55rem;
}
.card-media--photo {
  object-position: center;
}
.image-card--contain img {
  aspect-ratio: 1 / 1;
  object-fit: contain !important;
  background: #fff;
  padding: .85rem;
}
.image-card--photo img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
}
.image-card--photo figcaption,
.image-card--contain figcaption {
  font-weight: 700;
}
@media (max-width: 620px) {
  .card-media--wide { max-height: 185px; }
  .image-card--contain img, .image-card--photo img { aspect-ratio: 16 / 10; }
}


/* Welsh language switch, transcript and smaller urgent banner patch */
.language-switch{display:inline-flex;align-items:center;justify-content:center;border:2px solid rgba(75,21,92,.18);border-radius:999px;background:#fff;color:var(--plum);font-weight:900;text-decoration:none;padding:.48rem .78rem;white-space:nowrap;box-shadow:0 8px 18px rgba(38,22,45,.06)}
.language-switch:hover{background:var(--lavender-soft);text-decoration:none}
.transcript-box{margin-top:1rem;background:#fff;border:1px solid rgba(75,21,92,.12);border-radius:20px;box-shadow:0 12px 28px rgba(38,22,45,.07);overflow:hidden}
.transcript-box summary{cursor:pointer;font-weight:900;color:var(--plum);padding:1rem 1.15rem;list-style:none}
.transcript-box summary::-webkit-details-marker{display:none}
.transcript-box summary:after{content:"+";float:right;font-weight:1000}
.transcript-box[open] summary:after{content:"–"}
.transcript-box>div{padding:0 1.15rem 1.1rem}
.transcript-box p{font-size:.98rem;margin:.7rem 0}
@media (max-width:620px){.announcement{font-size:.74rem!important;padding:.32rem .72rem!important;line-height:1.2!important;text-align:left}.announcement-line{display:block}.announcement-line+ .announcement-line{margin-top:.08rem}.announcement strong{display:inline!important;margin-right:.18rem}.language-switch{font-size:.82rem;padding:.48rem .58rem}.brand strong{max-width:145px}.menu-button{font-size:.9rem}.nav-wrap{padding-top:.58rem!important;padding-bottom:.58rem!important}.transcript-box summary{padding:.85rem .95rem}.transcript-box>div{padding:0 .95rem .95rem}}
@media (max-width:420px){.language-switch{font-size:.78rem;padding:.42rem .5rem}.brand strong{max-width:116px}.menu-button{padding:.52rem .62rem}}


/* Bells and whistles feature patch */
.calm-toggle{display:inline-flex;align-items:center;justify-content:center;border:2px solid rgba(75,21,92,.18);border-radius:999px;background:#fff;color:var(--plum);font-weight:900;text-decoration:none;padding:.48rem .78rem;white-space:nowrap;box-shadow:0 8px 18px rgba(38,22,45,.06);cursor:pointer}.calm-toggle[aria-pressed="true"]{background:var(--teal);color:#fff;border-color:var(--teal)}
body.calm-mode{--shadow:0 8px 24px rgba(38,22,45,.08);background:#fffaf1}body.calm-mode .hero-image-card,body.calm-mode .card-media,body.calm-mode .image-card{display:none!important}body.calm-mode .card,body.calm-mode .quote-panel,body.calm-mode .timetable-card{box-shadow:none!important}body.calm-mode .section{padding-top:2.4rem;padding-bottom:2.4rem}body.calm-mode *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
.support-guide{background:linear-gradient(135deg,#fff 0%,var(--lavender-soft) 54%,#e7f4f1 100%);max-width:none}.support-guide>*{max-width:var(--max);margin-left:auto;margin-right:auto}.guide-layout{display:grid;grid-template-columns:minmax(280px,.45fr) 1fr;gap:1.25rem;align-items:stretch}.guide-options{display:grid;gap:.65rem}.guide-option,.timetable-filters button,.impact-choice-buttons button{border:1px solid rgba(75,21,92,.16);background:#fff;color:var(--ink);border-radius:18px;padding:.9rem 1rem;font:inherit;font-weight:900;text-align:left;cursor:pointer}.guide-option.active,.guide-option[aria-selected="true"],.timetable-filters button.active,.impact-choice-buttons button.active{background:var(--plum);color:#fff;border-color:var(--plum)}.guide-result{background:#fff;border:1px solid rgba(75,21,92,.12);border-radius:28px;padding:1.6rem;box-shadow:var(--shadow)}.guide-result h3{font-size:clamp(1.7rem,3vw,2.4rem);margin-top:.2rem}.guide-result[hidden]{display:none!important}
.quote-wall{background:#fff;max-width:none}.quote-wall>*{max-width:var(--max);margin-left:auto;margin-right:auto}.quote-wall-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.quote-wall blockquote{margin:0;background:linear-gradient(145deg,#fff,var(--lavender-soft));border:1px solid rgba(75,21,92,.12);border-radius:24px;padding:1.25rem;min-height:160px;display:flex;align-items:flex-end;font-size:1.2rem;line-height:1.25;font-weight:900;color:var(--plum);box-shadow:0 12px 26px rgba(38,22,45,.06);opacity:0;transform:translateY(18px)}.quote-wall blockquote.visible{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease}
.stat strong{font-variant-numeric:tabular-nums}.accessible-timetable{background:linear-gradient(180deg,#fff,var(--cream));max-width:none}.accessible-timetable>*{max-width:var(--max);margin-left:auto;margin-right:auto}.timetable-filters{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:1.1rem}.timetable-filters button{text-align:center;border-radius:999px;padding:.65rem 1rem}.accessible-schedule{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.accessible-schedule article{background:#fff;border:1px solid rgba(75,21,92,.13);border-radius:18px;padding:1rem;box-shadow:0 10px 24px rgba(38,22,45,.055)}.accessible-schedule article strong,.accessible-schedule article span{display:block}.accessible-schedule article strong{color:var(--plum);font-size:.9rem;text-transform:uppercase;letter-spacing:.06em}.accessible-schedule article span{font-weight:900;color:var(--ink);margin:.25rem 0}.accessible-schedule article p{margin:.35rem 0 0}.accessible-schedule article.is-hidden{display:none}
.reassurance-cards{background:#fff;max-width:none}.reassurance-cards>*{max-width:var(--max);margin-left:auto;margin-right:auto}.donation-selector{background:#fff}.impact-choice-layout{display:grid;grid-template-columns:minmax(260px,.4fr) 1fr;gap:1.2rem}.impact-choice-buttons{display:grid;gap:.6rem}.impact-choice-card{background:linear-gradient(145deg,var(--plum),#6f2a82);color:#fff;border-radius:30px;padding:2rem;box-shadow:var(--shadow)}.impact-choice-card h3{font-size:clamp(1.8rem,3vw,2.7rem);margin-top:0}.impact-choice-card .button{background:#fff!important;color:var(--plum)!important;border-color:#fff}.copy-tools{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}.copy-tools button{border:1px solid rgba(75,21,92,.18);border-radius:999px;background:#fff;color:var(--plum);padding:.55rem .8rem;font-weight:900;cursor:pointer}.copy-tools button.copied{background:var(--teal);color:#fff;border-color:var(--teal)}
.floating-support{position:fixed;right:1rem;bottom:1rem;z-index:950}.floating-support__trigger{border:0;border-radius:999px;background:var(--plum);color:#fff;font-weight:1000;padding:.85rem 1.05rem;box-shadow:0 16px 40px rgba(75,21,92,.28);cursor:pointer}.floating-support__panel{position:absolute;right:0;bottom:calc(100% + .7rem);width:min(320px,calc(100vw - 2rem));background:#fff;border:1px solid rgba(75,21,92,.16);border-radius:24px;padding:1rem;box-shadow:0 22px 70px rgba(38,22,45,.2);display:none}.floating-support.open .floating-support__panel{display:grid;gap:.55rem}.floating-support__panel p{margin:.2rem 0 .5rem}.floating-support__panel a{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:14px;background:var(--lavender-soft);color:var(--plum);font-weight:900;text-decoration:none;padding:.55rem}.floating-support__close{position:absolute;top:.5rem;right:.65rem;border:0;background:transparent;font-size:1.4rem;line-height:1;color:var(--plum);cursor:pointer}
@media (max-width:920px){.guide-layout,.impact-choice-layout{grid-template-columns:1fr}.accessible-schedule{grid-template-columns:repeat(2,1fr)}.quote-wall-grid{grid-template-columns:1fr 1fr}.calm-toggle{font-size:.88rem;padding:.48rem .58rem}}
@media (max-width:620px){.calm-toggle{order:3;font-size:.76rem;padding:.42rem .48rem}.support-guide,.accessible-timetable,.quote-wall{padding-top:2.6rem;padding-bottom:2.6rem}.guide-result,.impact-choice-card{padding:1.2rem;border-radius:22px}.guide-option,.impact-choice-buttons button{border-radius:16px;padding:.78rem .85rem}.accessible-schedule{grid-template-columns:1fr}.quote-wall-grid{grid-template-columns:1fr}.quote-wall blockquote{min-height:120px;font-size:1.06rem}.floating-support{left:1rem;right:1rem;bottom:max(.75rem,env(safe-area-inset-bottom))}.floating-support__trigger{width:100%;min-height:48px}.floating-support__panel{left:0;right:0;width:auto}.site-footer{padding-bottom:5.5rem}}


/* Compact collapsible accessible timetable */
.timetable-hint{margin:-.45rem auto 1rem;color:var(--muted);font-weight:700;max-width:var(--max)}
.accessible-schedule.day-accordion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;align-items:start}
.timetable-day{background:#fff;border:1px solid rgba(75,21,92,.13);border-radius:22px;box-shadow:0 10px 24px rgba(38,22,45,.055);overflow:hidden}
.timetable-day[hidden]{display:none!important}
.timetable-day summary{list-style:none;cursor:pointer;padding:1rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:950;color:var(--ink);min-height:62px}
.timetable-day summary::-webkit-details-marker{display:none}
.timetable-day summary:after{content:'+';display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:12px;background:var(--lavender-soft);color:var(--plum);font-weight:1000;font-size:1.15rem}
.timetable-day[open] summary{border-bottom:1px solid rgba(75,21,92,.1);background:linear-gradient(90deg,#fff,var(--lavender-soft))}
.timetable-day[open] summary:after{content:'–'}
.day-name{font-size:1.08rem}.day-count{font-size:.84rem;color:var(--plum);background:rgba(75,21,92,.08);padding:.32rem .55rem;border-radius:999px;white-space:nowrap}
.day-sessions{padding:.55rem;display:grid;gap:.45rem}.day-sessions .session-card{box-shadow:none;border:1px solid rgba(75,21,92,.1);border-radius:15px;padding:.75rem .85rem;background:#fff;display:grid;grid-template-columns:minmax(95px,.28fr) 1fr;gap:.65rem;align-items:start}.day-sessions .session-card span{margin:0;color:var(--plum);font-weight:950}.day-sessions .session-card p{margin:0;line-height:1.35}.day-sessions .session-card.is-hidden{display:none!important}
@media (max-width:780px){.accessible-schedule.day-accordion{grid-template-columns:1fr}.timetable-filters{display:grid;grid-template-columns:1fr 1fr}.timetable-filters button{padding:.62rem .72rem}.timetable-hint{font-size:.95rem;margin-top:-.2rem}.timetable-day summary{padding:.85rem .9rem;min-height:56px}.day-sessions .session-card{grid-template-columns:1fr;gap:.15rem;padding:.7rem .75rem}.day-sessions .session-card span{font-size:.95rem}.day-count{font-size:.78rem}.accessible-timetable .section-heading{margin-bottom:1.05rem}}

/* Compact homepage timetable call-to-action */
.timetable-cta{background:linear-gradient(180deg,rgba(241,233,245,.75),rgba(255,250,241,.95));max-width:none}
.timetable-cta>*{max-width:var(--max);margin-left:auto;margin-right:auto}
.timetable-cta-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.4rem;align-items:center;background:#fff;border:1px solid rgba(75,21,92,.13);border-radius:30px;padding:1.6rem;box-shadow:var(--shadow)}
.timetable-cta-card h2{margin-top:.15rem}
.timetable-cta-card p:last-child{margin-bottom:0}
.timetable-cta-actions{justify-content:flex-end;min-width:260px}
.timetable-download-panel .callout{align-self:stretch}
@media (max-width:760px){.timetable-cta-card{grid-template-columns:1fr;padding:1.2rem;border-radius:24px}.timetable-cta-actions{justify-content:stretch;min-width:0}.timetable-cta-actions .button{width:100%;text-align:center}}

/* Final contrast polish: make all text inside purple action panels readable */
.impact-choice-card,
.impact-choice-card h1,
.impact-choice-card h2,
.impact-choice-card h3,
.impact-choice-card p,
.impact-choice-card span,
.impact-choice-card strong,
.donation-panel,
.donation-panel h1,
.donation-panel h2,
.donation-panel h3,
.donation-panel p,
.donation-panel span,
.donation-panel strong {
  color: #fff !important;
}
.impact-choice-card .button,
.donation-panel .button-soft {
  color: var(--plum) !important;
}
