@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,400;0,6..72,500;1,6..72,300;1,6..72,400&family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400&family=Josefin+Sans:wght@400;600&display=swap');
/* Rainscourt homepage — scoped to .rc-home, .rc-home */

:root { --ink:        #06262F;   
  --ink-2:      #0B3441;   
  --pine:       #005167;   
  --pine-soft:  #0A6B85;
  --paper:      #FBFAF7;
  --card:       #FFFFFF;
  --tint:       #EEF2F0;   
  --gold:       #FFD300;   
  --gold-deep:  #E0BA00;
  --text:       #2C3438;
  --text-soft:  #5A6468;
  --line:       #DCE0DE;
  --line-dark:  rgba(255,255,255,.16);

  --font-display:'Newsreader', Georgia, serif;
  --font-body:'Atkinson Hyperlegible', system-ui, sans-serif;
  --font-brand:'Josefin Sans', sans-serif;

  --wrap: 1180px;
  --ease: cubic-bezier(.22,.61,.36,1); }
.rc-home * { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
.rc-home { font-family:var(--font-body); font-size:1.0625rem; line-height:1.7;
  color:var(--text); background:var(--paper);
  -webkit-font-smoothing:antialiased; }
.rc-home img { max-width:100%; display:block; }
.rc-home .wrap { max-width:var(--wrap); margin-inline:auto; padding-inline:28px; }
.rc-home .center { text-align:center; }
.rc-home .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.rc-home .skip-link { position:absolute; left:-999px; top:0; background:var(--ink); color:#fff; padding:.6em 1em; z-index:100; }
.rc-home .skip-link:focus { left:8px; top:8px; }
.rc-home h1, .rc-home h2, .rc-home h3 { font-family:var(--font-display); font-weight:400; line-height:1.06; letter-spacing:-.015em; color:var(--ink); }
.rc-home h1 { font-size:clamp(2.9rem, 7vw, 5.4rem); max-width:14em; }
.rc-home h1 em, .rc-home .final-cta em { font-style:italic; color:var(--gold); }
.rc-home h2 { font-size:clamp(2rem, 4.2vw, 3.2rem); max-width:18em; }
.rc-home h3 { font-size:1.45rem; line-height:1.2; }
.rc-home .kicker { font-family:var(--font-brand); font-weight:600; font-size:.8rem;
  letter-spacing:.3em; text-transform:uppercase; color:var(--gold);
  margin-bottom:2rem; }
.rc-home .sec-num { font-family:var(--font-brand); font-weight:600; font-size:.85rem;
  letter-spacing:.3em; color:var(--pine);
  padding-bottom:1.1rem; margin-bottom:1.6rem;
  border-bottom:1px solid var(--line); }
.rc-home .sec-num::after { content:""; display:inline-block; width:38px; height:3px; background:var(--gold); margin-left:14px; vertical-align:.2em; }
.rc-home .sec-head { margin-bottom:clamp(40px,5vw,64px); }
.rc-home .sec-lede { font-size:1.15rem; color:var(--text-soft); max-width:42em; margin-top:1.2rem; }
.rc-home .lede { font-size:clamp(1.1rem, 1.6vw, 1.3rem); line-height:1.65; color:#C8D6DA; max-width:33em; }
.rc-home .btn { display:inline-block; font-family:var(--font-body); font-weight:700; font-size:1rem;
  text-decoration:none; border-radius:6px; padding:.9em 1.7em;
  transition:transform .25s var(--ease), background .25s, color .25s, border-color .25s; }
.rc-home .btn-lg { padding:1.05em 2.1em; font-size:1.02rem; }
.rc-home .btn-gold { background:var(--gold); color:var(--ink); }
.rc-home .btn-gold:hover { background:var(--gold-deep); transform:translateY(-2px); }
.rc-home .btn-line { color:#fff; border:1px solid var(--line-dark); }
.rc-home .btn-line:hover { border-color:var(--gold); color:var(--gold); transform:translateY(-2px); }
.rc-home .btn:focus-visible, .rc-home a:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.rc-home .text-link { display:inline-block; margin-top:.6em; color:var(--pine); font-weight:700;
  text-decoration:none; border-bottom:2px solid var(--gold); padding-bottom:2px; }
.rc-home .text-link:hover { color:var(--pine-soft); }
.rc-home .site-header { position:sticky; top:0; z-index:50;
  background:rgba(6,38,47,.88); backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-dark); }
.rc-home .header-inner { display:flex; align-items:center; justify-content:space-between; padding-block:16px; }
.rc-home .logo { font-family:var(--font-brand); font-weight:600; font-size:1.3rem;
  letter-spacing:.3em; text-transform:uppercase; color:#fff;
  text-decoration:none; line-height:1; }
.rc-home .logo-sub { display:block; font-family:var(--font-brand); font-weight:400; font-size:.58rem;
  letter-spacing:.34em; text-transform:uppercase; color:#9FB6BC;
  margin-top:5px; padding-bottom:6px; border-bottom:2px solid var(--gold); width:fit-content; }
.rc-home .nav-list { display:flex; align-items:center; gap:28px; list-style:none; }
.rc-home .nav-list a:not(.btn) { text-decoration:none; color:#E6EEF0; font-size:.95rem; }
.rc-home .nav-list a:not(.btn):hover { color:var(--gold); }
.rc-home .nav-cta .btn { padding:.6em 1.3em; font-size:.9rem; }
.rc-home .nav-toggle { display:none; }
.rc-home .hero { background:linear-gradient(165deg, var(--ink) 55%, var(--ink-2) 100%);
  color:#fff; padding-block:clamp(72px,10vw,140px) 0; }
.rc-home .hero h1 { color:#fff; margin-bottom:clamp(28px,4vw,48px); }
.rc-home .hero-cols { display:grid; grid-template-columns:1.5fr 1fr; gap:48px; align-items:center; margin-bottom:clamp(32px,4vw,52px); }
.rc-home .hero-actions { display:flex; flex-wrap:wrap; gap:16px; padding-bottom:clamp(48px,6vw,72px); }
.rc-home .hero-side { display:flex; justify-content:flex-end; }
.rc-home .hero-foot { display:flex; flex-wrap:wrap; gap:12px 48px; padding-block:22px;
  border-top:1px solid var(--line-dark); }
.rc-home .hero-foot p { font-family:var(--font-brand); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:#9FB6BC; }
.rc-home .dial { width:min(220px, 56vw); }
.rc-home .dial-track { fill:none; stroke:var(--line-dark); stroke-width:1.5; }
.rc-home .dial-arc { fill:none; stroke:var(--gold); stroke-width:4; stroke-linecap:round; transform:rotate(-90deg); transform-origin:center; transition:stroke-dashoffset 1.6s var(--ease) .4s; }
.rc-home .dial-num { font-family:var(--font-display); font-size:58px; fill:#fff; text-anchor:middle; }
.rc-home .dial-label { font-family:var(--font-body); font-size:14px; fill:var(--gold); text-anchor:middle; font-weight:700; }
.rc-home .dial-label-sm { font-family:var(--font-body); font-size:12px; fill:#9FB6BC; text-anchor:middle; }
.rc-home .section { padding-block:clamp(72px,10vw,128px); }
.rc-home .section-tint { background:var(--tint); }
.rc-home .duo { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:clamp(48px,6vw,72px); }
.rc-home .duo-card { position:relative; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:clamp(32px,3.5vw,48px); }
.rc-home .duo-card .duo-marker { display:block; width:56px; height:4px; background:var(--gold); margin-bottom:1.6rem; }
.rc-home .duo-card h3 { margin-bottom:.7em; }
.rc-home .duo-card p { color:var(--text-soft); margin:0; }
.rc-home .duo-card--invert { background:var(--ink); border-color:var(--ink); }
.rc-home .duo-card--invert h3 { color:#fff; }
.rc-home .duo-card--invert p { color:#C8D6DA; }
.rc-home .services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.rc-home .svc { position:relative; display:flex; flex-direction:column; justify-content:space-between;
  min-height:170px; padding:26px 28px;
  background:var(--card); border:1px solid var(--line); border-radius:14px;
  text-decoration:none; color:var(--ink); overflow:hidden;
  transition:transform .35s var(--ease), border-color .35s var(--ease), background .35s var(--ease), color .35s var(--ease), box-shadow .35s var(--ease); }
.rc-home .svc-num { font-family:var(--font-brand); font-weight:600; font-size:.78rem; letter-spacing:.24em;
  color:var(--pine); transition:color .35s var(--ease); }
.rc-home .svc-name { font-family:var(--font-display); font-size:1.45rem; line-height:1.15; margin-top:auto; max-width:11em; }
.rc-home .svc-arrow { position:absolute; top:24px; right:26px; font-size:1.2rem; color:var(--gold);
  opacity:0; transform:translate(-6px,6px);
  transition:opacity .35s var(--ease), transform .35s var(--ease); }
.rc-home .svc:hover, .rc-home .svc:focus-visible { background:var(--ink); border-color:var(--ink); color:#fff;
  transform:translateY(-4px); box-shadow:0 18px 40px rgba(6,38,47,.18); outline:none; }
.rc-home .svc:hover .svc-num, .rc-home .svc:focus-visible .svc-num { color:var(--gold); }
.rc-home .svc:hover .svc-arrow, .rc-home .svc:focus-visible .svc-arrow { opacity:1; transform:none; }
.rc-home .svc--feature { background:var(--ink); border-color:var(--ink); color:#fff; }
.rc-home .svc--feature .svc-num { color:var(--gold); }
.rc-home .svc--feature .svc-arrow { color:var(--gold); opacity:1; transform:none; }
.rc-home .svc--feature:hover, .rc-home .svc--feature:focus-visible { background:var(--pine); border-color:var(--pine); }
.rc-home .package { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:start; }
.rc-home .package-stages { list-style:none; display:grid; }
.rc-home .stage { display:flex; gap:24px; align-items:flex-start;
  padding:26px 4px; border-top:1px solid var(--line); }
.rc-home .package-stages .stage:last-child { border-bottom:1px solid var(--line); }
.rc-home .stage-num { flex:0 0 auto; font-family:var(--font-display); font-size:1.9rem; color:var(--pine);
  line-height:1; width:1.4em; }
.rc-home .stage h3 { margin-bottom:.3em; font-size:1.3rem; }
.rc-home .stage p { margin:0; color:var(--text-soft); font-size:.98rem; }
.rc-home .price-card { position:sticky; top:104px;
  background:var(--ink); color:#fff; border-radius:10px;
  padding:38px 36px; border-top:5px solid var(--gold); }
.rc-home .price-name { font-family:var(--font-brand); font-weight:600; letter-spacing:.26em; text-transform:uppercase; font-size:.8rem; color:var(--gold); }
.rc-home .price-amount { font-family:var(--font-display); font-size:3.8rem; line-height:1; color:#fff; margin:.25rem 0 .1rem; }
.rc-home .price-vat { color:#9FB6BC; font-size:.92rem; margin-bottom:1.5rem; }
.rc-home .price-list { list-style:none; margin:0 0 1.7rem; padding:1.5rem 0 0; border-top:1px solid var(--line-dark); display:grid; gap:.65rem; }
.rc-home .price-list li { position:relative; padding-left:1.7rem; color:#DCE7EA; font-size:.97rem; }
.rc-home .price-list li::before { content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--gold); }
.rc-home .price-cta { display:block; text-align:center; width:100%; }
.rc-home .price-foot { text-align:center; font-size:.85rem; color:#9FB6BC; margin-top:1rem; }
.rc-home .team-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); max-width:920px; }
.rc-home .team-photo-wrap { overflow:hidden; border-radius:10px; margin-bottom:1.4rem; background:var(--tint); }
.rc-home .team-photo { aspect-ratio:4/3.6; width:100%; object-fit:cover;
  filter:grayscale(1) contrast(1.04); transition:filter .6s var(--ease), transform .8s var(--ease); }
.rc-home .team-photo-james { object-position:72% 18%; }
.rc-home .team-photo-katie { object-position:26% 22%; }
.rc-home .team-card:hover .team-photo { filter:grayscale(0); transform:scale(1.025); }
.rc-home .team-role { font-family:var(--font-brand); font-weight:600; font-size:.74rem; letter-spacing:.26em;
  text-transform:uppercase; color:var(--pine); margin:.3rem 0 1rem;
  padding-bottom:.9rem; border-bottom:1px solid var(--line); }
.rc-home .team-bio { color:var(--text-soft); font-size:.99rem; }
.rc-home .pull-quote { margin-bottom:clamp(40px,5vw,64px); }
.rc-home .pull-quote p { font-family:var(--font-display); font-style:italic; font-weight:300;
  font-size:clamp(1.6rem,3.4vw,2.5rem); line-height:1.3; color:var(--ink); max-width:24em; }
.rc-home .pull-quote figcaption { margin-top:1.4rem; font-family:var(--font-brand); font-weight:600; font-size:.74rem;
  letter-spacing:.26em; text-transform:uppercase; color:var(--text-soft); }
.rc-home .quote-pair { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); }
.rc-home .quote { border-top:1px solid var(--line); padding-top:1.4rem; }
.rc-home .quote p { font-family:var(--font-display); font-style:italic; font-size:1.2rem; line-height:1.45; color:var(--ink); margin-bottom:1rem; }
.rc-home .quote footer { font-family:var(--font-brand); font-weight:600; font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; color:var(--text-soft); }
.rc-home .fees-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(32px,5vw,72px); align-items:start; }
.rc-home .fees-grid .sec-head { margin-bottom:0; }
.rc-home .fees-copy p { font-size:1.12rem; }
.rc-home .final-cta { background:linear-gradient(195deg, var(--ink) 55%, var(--ink-2) 100%);
  color:#fff; padding-block:clamp(80px,11vw,140px); }
.rc-home .final-cta h2 { color:#fff; margin-inline:auto; }
.rc-home .final-cta .sec-lede { color:#C8D6DA; margin-inline:auto; }
.rc-home .final-cta .btn { margin-top:2rem; }
.rc-home .site-footer { background:var(--ink); color:#C8D6DA; padding-block:64px 36px; border-top:1px solid var(--line-dark); }
.rc-home .footer-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:40px; margin-bottom:36px; }
.rc-home .footer-logo { font-size:1.15rem; margin-bottom:1rem; }
.rc-home .footer-small { font-size:.85rem; color:#9FB6BC; max-width:34em; }
.rc-home .footer-links { list-style:none; display:flex; flex-wrap:wrap; gap:10px 28px; justify-content:flex-end; }
.rc-home .footer-links a { color:#E6EEF0; text-decoration:none; font-size:.95rem; }
.rc-home .footer-links a:hover { color:var(--gold); }
.rc-home .footer-legal { border-top:1px solid var(--line-dark); padding-top:26px; line-height:1.6; max-width:none; }
.rc-home .reveal { opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.rc-home .reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
html { scroll-behavior:auto; }
.rc-home .reveal { opacity:1; transform:none; transition:none; }
.rc-home .dial-arc, .rc-home .btn, .rc-home .team-photo, .rc-home .index-list a { transition:none; }}
@media (max-width:960px){
.rc-home .hero-cols { grid-template-columns:1fr; gap:36px; }
.rc-home .hero-side { justify-content:flex-start; }
.rc-home .duo, .rc-home .quote-pair, .rc-home .team-grid { grid-template-columns:1fr; }
.rc-home .services-grid { grid-template-columns:repeat(2,1fr); }
.rc-home .package { grid-template-columns:1fr; }
.rc-home .price-card { position:static; }
.rc-home .fees-grid { grid-template-columns:1fr; gap:28px; }
.rc-home .footer-grid { grid-template-columns:1fr; }
.rc-home .footer-links { justify-content:flex-start; }}
@media (max-width:560px){
.rc-home .services-grid { grid-template-columns:1fr; }}
@media (max-width:820px){
.rc-home .nav-toggle { display:block; background:none; border:0; cursor:pointer; padding:10px; }
.rc-home .nav-toggle-bar { display:block; width:26px; height:2.5px; background:#fff; margin:6px 0; transition:transform .3s var(--ease); }
.rc-home .nav-toggle[aria-expanded="true"] .nav-toggle-bar:first-child { transform:translateY(8.5px) rotate(45deg); }
.rc-home .nav-toggle[aria-expanded="true"] .nav-toggle-bar:last-child { transform:translateY(-8.5px) rotate(-45deg); }
.rc-home .nav-list { position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:flex-start; gap:0;
    background:var(--ink); border-bottom:1px solid var(--line-dark);
    padding:10px 28px 24px; display:none; }
.rc-home .nav-list.is-open { display:flex; }
.rc-home .nav-list li { width:100%; }
.rc-home .nav-list a:not(.btn) { display:block; padding:13px 0; font-size:1.05rem; }
.rc-home .nav-cta { margin-top:12px; }}
.rc-home .ffd-band { background:var(--pine); color:#fff; }
.rc-home .ffd-inner { display:flex; align-items:center; justify-content:space-between; gap:40px;
  padding-block:clamp(40px,5vw,56px); }
.rc-home .ffd-label { font-family:var(--font-brand); font-weight:600; font-size:.72rem;
  letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin-bottom:.7rem; }
.rc-home .ffd-title { color:#fff; font-size:clamp(1.5rem,2.8vw,2.1rem); margin-bottom:.6rem; }
.rc-home .ffd-title span { color:var(--gold); font-style:italic; }
.rc-home .ffd-scope { color:#CFE0E4; font-size:1rem; max-width:46em; margin:0; }
.rc-home .ffd-action { flex:0 0 auto; }
.rc-home .ffd-band .btn-line { border-color:rgba(255,255,255,.4); }
.rc-home .ffd-band .btn-line:hover { border-color:var(--gold); color:var(--gold); }
@media (max-width:820px){
.rc-home .ffd-inner { flex-direction:column; align-items:flex-start; gap:24px; }}
.rc-home .wrap.narrow { max-width:880px; }
.rc-home .page-hero { background:linear-gradient(165deg, var(--ink) 55%, var(--ink-2) 100%);
  color:#fff; padding-block:clamp(64px,9vw,120px); }
.rc-home .page-hero h1 { color:#fff; font-size:clamp(2.4rem,5.5vw,4.2rem); margin-bottom:clamp(28px,4vw,44px); }
.rc-home .page-hero-cols { display:grid; grid-template-columns:1.4fr .8fr; gap:48px; align-items:end; }
.rc-home .ffd-price { background:rgba(255,255,255,.05); border:1px solid var(--line-dark);
  border-top:5px solid var(--gold); border-radius:10px; padding:30px 30px 32px; }
.rc-home .ffd-price .price-name { font-family:var(--font-brand); font-weight:600; letter-spacing:.24em; text-transform:uppercase; font-size:.78rem; color:var(--gold); }
.rc-home .ffd-price .price-amount { font-family:var(--font-display); font-size:3.4rem; line-height:1; color:#fff; margin:.2rem 0 .1rem; }
.rc-home .ffd-price .price-vat { color:#9FB6BC; font-size:.9rem; margin-bottom:1.4rem; }
.rc-home .ffd-price .price-cta { display:block; text-align:center; width:100%; }
.rc-home .process { list-style:none; display:grid; }
.rc-home .proc { display:flex; gap:26px; align-items:flex-start; padding:26px 4px; border-top:1px solid var(--line); }
.rc-home .process .proc:last-child { border-bottom:1px solid var(--line); }
.rc-home .proc-num { flex:0 0 auto; font-family:var(--font-display); font-size:1.9rem; color:var(--pine); line-height:1; width:1.4em; }
.rc-home .proc h3 { font-size:1.25rem; margin-bottom:.3em; }
.rc-home .proc p { margin:0; color:var(--text-soft); font-size:.99rem; }
.rc-home .scope-list { list-style:none; display:grid; gap:0; }
.rc-home .scope-list li { padding:1.2rem 0; border-top:1px solid var(--line); color:var(--text-soft); }
.rc-home .scope-list li:last-child { border-bottom:1px solid var(--line); }
.rc-home .scope-list strong { color:var(--ink); font-weight:700; }
.rc-home .scope-foot { margin-top:1.8rem; font-family:var(--font-display); font-style:italic; font-size:1.2rem; color:var(--ink); }
@media (max-width:820px){
.rc-home .page-hero-cols { grid-template-columns:1fr; gap:32px; }}
/* Logo lockup — centre the strapline + underline under RAINSCOURT */
.rc-home a.logo{ display:inline-block; text-align:center; line-height:1; }
.rc-home a.logo .logo-sub{
  display:block;
  width:auto;
  text-align:center;
  margin:6px 0 0;
  padding-bottom:6px;
  border-bottom:2px solid var(--gold);
}