/* ==========================================================================
   Moore 2 Bookkeeping
   Sits on top of Bootstrap 5.3 (loaded first). Same teal palette as before.
   ========================================================================== */

:root{
  --teal-900:#0B4A4A;
  --teal-700:#158080;
  --teal-600:#1B9E9E;
  --teal-500:#3BBEBE;
  --teal-100:#E6F6F6;
  --teal-50:#F4FBFB;
  --white:#FFFFFF;
  --text:#123333;
  --text-soft:#5A7878;
  --line:rgba(11,74,74,0.10);

  /* Point Bootstrap at our tokens */
  --bs-body-font-family:'Manrope', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-body-color:var(--text);
  --bs-body-bg:var(--white);
  --bs-link-color-rgb:21,128,128;
  --bs-link-hover-color-rgb:11,74,74;
  color-scheme:light;
}

html{ scroll-behavior:smooth; scroll-padding-top:5.5rem; }
body{ line-height:1.65; overflow-x:clip; -webkit-font-smoothing:antialiased; }

h1,h2,h3,h4{ color:var(--teal-900); font-weight:800; letter-spacing:-0.02em; }
:focus-visible{ outline:2px solid var(--teal-600); outline-offset:3px; }

.container.container-site{ max-width:1160px; }

.skip-link:focus{
  position:fixed; top:.75rem; left:.75rem; z-index:2000;
  background:#fff; color:var(--teal-900); padding:.6rem 1rem; border-radius:10px;
  box-shadow:0 8px 24px rgba(11,74,74,.2);
}

/* ---------- Buttons ---------- */
.btn-teal{
  --bs-btn-color:#fff;
  --bs-btn-bg:var(--teal-700);
  --bs-btn-border-color:var(--teal-700);
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:var(--teal-900);
  --bs-btn-hover-border-color:var(--teal-900);
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:var(--teal-900);
  --bs-btn-active-border-color:var(--teal-900);
  --bs-btn-disabled-bg:var(--teal-700);
  --bs-btn-disabled-border-color:var(--teal-700);
  --bs-btn-focus-shadow-rgb:59,190,190;
  --bs-btn-padding-x:1.5rem;
  --bs-btn-padding-y:.65rem;
  --bs-btn-font-weight:700;
  box-shadow:0 6px 16px rgba(21,128,128,.25);
}
.btn-outline-teal{
  --bs-btn-color:var(--teal-700);
  --bs-btn-border-color:var(--teal-600);
  --bs-btn-hover-color:var(--teal-900);
  --bs-btn-hover-bg:var(--teal-100);
  --bs-btn-hover-border-color:var(--teal-600);
  --bs-btn-active-color:var(--teal-900);
  --bs-btn-active-bg:var(--teal-100);
  --bs-btn-active-border-color:var(--teal-600);
  --bs-btn-focus-shadow-rgb:59,190,190;
  --bs-btn-padding-x:1.5rem;
  --bs-btn-padding-y:.65rem;
  --bs-btn-font-weight:700;
}
.btn-white{
  --bs-btn-color:var(--teal-700);
  --bs-btn-bg:#fff;
  --bs-btn-border-color:#fff;
  --bs-btn-hover-color:var(--teal-900);
  --bs-btn-hover-bg:var(--teal-50);
  --bs-btn-hover-border-color:var(--teal-50);
  --bs-btn-active-color:var(--teal-900);
  --bs-btn-active-bg:var(--teal-100);
  --bs-btn-disabled-color:var(--teal-700);
  --bs-btn-disabled-bg:#fff;
  --bs-btn-focus-shadow-rgb:255,255,255;
  --bs-btn-padding-x:1.6rem;
  --bs-btn-padding-y:.7rem;
  --bs-btn-font-weight:800;
}

/* ---------- Navigation ---------- */
.site-nav{
  background:color-mix(in srgb, var(--white) 92%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  padding-block:.6rem;
}
.site-nav .navbar-brand{ padding:0; margin-right:2rem; }
.site-nav .navbar-brand img{ display:block; height:46px; width:auto; }
.site-nav .nav-link{
  font-weight:600; font-size:.95rem; color:var(--text-soft);
  padding:.5rem .15rem; border-bottom:2px solid transparent;
}
.site-nav .nav-link:hover{ color:var(--teal-700); }
.site-nav .nav-link.active{ color:var(--teal-900); border-bottom-color:var(--teal-500); }
.site-nav .navbar-toggler{ border-color:var(--line); }
.site-nav .navbar-toggler:focus{ box-shadow:0 0 0 .2rem rgba(59,190,190,.35); }
@media (max-width:991.98px){
  .site-nav .navbar-collapse{ padding:1rem 0 .5rem; }
  .site-nav .nav-link{ padding:.6rem 0; border-bottom:0; }
  .site-nav .nav-link.active{ color:var(--teal-700); }
}

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,6vw,5.5rem);
  background:linear-gradient(180deg, var(--teal-50), var(--white) 90%);
}
.hero-badge{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.85rem; font-weight:700; color:var(--teal-700);
  background:var(--teal-100); padding:.45rem 1rem; border-radius:999px; margin-bottom:1.5rem;
}
.hero-badge .dot{
  flex:none; width:.55rem; height:.55rem; border-radius:50%;
  background:var(--teal-600); box-shadow:0 0 0 3px rgba(27,158,158,.22);
}
.hero h1{ font-size:clamp(2.3rem,4.4vw,3.25rem); line-height:1.08; max-width:16ch; }
.hero .lead-copy{ font-size:1.15rem; color:black; max-width:44ch; margin-top:1.4rem; font-weight:500; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem; }

.hero-visual{ position:relative; }
.hero-visual::before{
  content:""; position:absolute; z-index:0; inset:10% -3% 0 8%;
  background:var(--teal-100); border-radius:32px;
}
.hero-visual img{
  position:relative; z-index:1; display:block; width:100%; height:auto;
  animation:hero-rise .8s ease-out both;
}
@keyframes hero-rise{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }

/* ---------- Sections ---------- */
.section{ padding-block:clamp(3.5rem,7vw,6rem); }
.section-tint{ background:var(--teal-50); }
.section-head h2{ font-size:clamp(1.75rem,3vw,2.4rem); margin:0; }
.section-head p{ color:var(--text-soft); margin:.9rem 0 0; font-size:1.05rem; max-width:44ch; }
.section-head .text-link{ display:inline-block; margin-top:1.25rem; font-weight:700; }
@media (min-width:992px){ .sticky-head{ position:sticky; top:6.5rem; } }

/* ---------- Services: laid out like a ledger ---------- */
.ledger{ list-style:none; margin:0; padding:0; border-top:2px solid var(--teal-900); }
.ledger-row{
  display:grid; grid-template-columns:auto 1fr; column-gap:1.15rem;
  padding:1.4rem 0; border-bottom:1px solid var(--line);
}
.ledger-icon{
  width:46px; height:46px; border-radius:12px; display:grid; place-items:center;
  background:var(--teal-100); color:var(--teal-700); font-size:1.2rem;
}
.ledger-row h3{ font-size:1.1rem; margin:0 0 .3rem; }
.ledger-row p{ margin:0; color:var(--text-soft); }

/* ---------- Why us ---------- */
.value{ padding-left:1.25rem; border-left:3px solid var(--teal-500); height:100%; }
.value h3{ font-size:1.15rem; margin-bottom:.5rem; }
.value p{ margin:0; color:var(--text-soft); }

/* ---------- Story ---------- */
.founded{
  background:var(--teal-100); border-radius:20px; padding:1.5rem 1.6rem;
  color:var(--teal-700); font-weight:700;
}
.founded strong{ display:block; font-size:1.9rem; letter-spacing:-0.02em; color:var(--teal-900); line-height:1.15; }
.story-copy p{ color:var(--text-soft); font-size:1.05rem; line-height:1.75; }
.story-copy p:last-child{ margin-bottom:0; }

/* ---------- Team ---------- */
.person{
  height:100%; background:var(--white); border:1px solid var(--line);
  border-radius:20px; padding:1.9rem;
}
.person .avatar{
  width:54px; height:54px; border-radius:14px; margin-bottom:1.1rem;
  display:grid; place-items:center; color:#fff; font-weight:800; font-size:1.25rem;
  background:linear-gradient(135deg,var(--teal-500),var(--teal-700));
}
.person h3{ font-size:1.15rem; margin:0 0 .15rem; }
.person .role{ color:var(--teal-700); font-weight:700; font-size:.9rem; margin-bottom:.7rem; }
.person p{ margin:0; color:var(--text-soft); }

/* ---------- Testimonials ---------- */
.quote{ margin:0; height:100%; padding:2rem; border-radius:20px; border:1px solid var(--line); background:var(--white); }
.quote .bi{ font-size:2.6rem; line-height:1; color:var(--teal-500); display:block; margin-bottom:.25rem; }
.quote blockquote{ margin:0; }
.quote blockquote p{ margin:0; color:black; font-weight:600; line-height:1.6; font-size:1.08rem; }
.quote figcaption{ margin-top:1.1rem; color:var(--text-soft); font-weight:700; font-size:.92rem; }
.quote-lead{ background:var(--teal-100); border-color:transparent; }
.quote-lead blockquote p{ font-size:clamp(1.2rem,2.2vw,1.55rem); font-weight:700; letter-spacing:-0.01em; }

/* ---------- Contact band ---------- */
.cta-band{
  background:linear-gradient(135deg,var(--teal-700),var(--teal-900));
  color:#fff; border-radius:28px; padding:clamp(2rem,5vw,4rem);
}
.cta-band h2{ color:#fff; font-size:clamp(1.75rem,3vw,2.4rem); }
.cta-band .cta-copy{ color:rgba(255,255,255,.85); max-width:38ch; margin-top:1rem; font-size:1.05rem; }
.cta-band label{ font-size:.85rem; font-weight:700; color:rgba(255,255,255,.9); margin-bottom:.35rem; }
.cta-band .form-control{ border:1px solid rgba(255,255,255,.25); border-radius:12px; padding:.7rem .9rem; color:#0C2626; }
.cta-band .form-control::placeholder{ color:#7A8F8F; }
.cta-band .form-control:focus{ border-color:var(--teal-500); box-shadow:0 0 0 .25rem rgba(59,190,190,.4); }
.cta-band .invalid-feedback{ color:#FFE3E3; font-weight:600; }
.form-status{
  margin-top:1rem; padding:.8rem 1rem; border-radius:12px; font-weight:600;
  background:#fff; color:var(--teal-900);
}
.form-status.is-error{ background:#FFF1F1; color:#7A1F1F; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---------- Footer ---------- */
.site-footer{ padding:3rem 0 2.5rem; font-size:.9rem; color:var(--text-soft); }
.site-footer a{ text-decoration:none; font-weight:600; color:var(--teal-700); }
.site-footer a:hover{ text-decoration:underline; color:var(--teal-900); }
.site-footer ul{ list-style:none; display:flex; flex-wrap:wrap; gap:.5rem 1.75rem; padding:0; margin:0; }

/* ---------- Policy / document pages ---------- */
.doc-hero{ padding:clamp(2.5rem,5vw,4rem) 0 1.5rem; background:linear-gradient(180deg,var(--teal-50),var(--white)); }
.doc-wrap{ max-width:820px; margin-inline:auto; }
.back-link{ display:inline-block; font-weight:700; text-decoration:none; margin-bottom:1.25rem; font-size:.92rem; }
.back-link:hover{ text-decoration:underline; }
.doc-hero h1{ font-size:clamp(2rem,4vw,2.7rem); line-height:1.1; }
.doc-hero .lead-copy{ color:var(--text-soft); font-size:1.12rem; max-width:58ch; margin:1rem 0 0; font-weight:500; }
.doc-section{ padding:2.1rem 0; border-top:1px solid var(--line); }
.doc-section:first-child{ border-top:0; padding-top:.5rem; }
.doc-section h2{ font-size:1.3rem; margin-bottom:1rem; }
.doc-section ul{ margin:0; padding-left:1.25rem; }
.doc-section li{ color:var(--text-soft); line-height:1.7; margin-bottom:.5rem; }
.doc-section li::marker{ color:var(--teal-500); }
.doc-section p{ color:var(--text-soft); line-height:1.75; margin-bottom:1rem; }
.doc-section p:last-child{ margin-bottom:0; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}

/* ---------- Disclosure page extras ---------- */
.doc-section ol{ margin:0; padding-left:1.4rem; }
.doc-section ol li{ color:var(--text-soft); line-height:1.7; margin-bottom:.6rem; padding-left:.25rem; }
.doc-section ol li::marker{ color:var(--teal-700); font-weight:800; }
.doc-section a{ font-weight:600; }
.practitioner{ display:grid; grid-template-columns:max-content 1fr; gap:.6rem 1.5rem; margin:0; padding:1.4rem 1.5rem; background:var(--teal-50); border-radius:16px; }
.practitioner dt{ color:var(--teal-900); font-weight:700; }
.practitioner dd{ margin:0; color:var(--text-soft); }
.placeholder{ background:#FFF3C4; color:#5C4300; padding:0 .3em; border-radius:4px; font-weight:700; }
@media (max-width:575.98px){ .practitioner{ grid-template-columns:1fr; gap:.15rem; } .practitioner dd{ margin-bottom:.6rem; } }
.doc-section h3{ font-size:1.05rem; margin:1.6rem 0 .5rem; }
.doc-section h3:first-of-type{ margin-top:0; }
.doc-section p + h3, .doc-section ul + h3{ margin-top:1.6rem; }

.captcha{ max-width:100%; overflow-x:auto; }

/* Contact details in the teal panel */
.contact-details{ list-style:none; margin:2rem 0 0; padding:0; display:grid; gap:1rem; }
.contact-details li{ display:flex; align-items:center; gap:.9rem; color:#fff; font-weight:600; }
.contact-details .bi{ flex:none; width:2.5rem; height:2.5rem; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.14); font-size:1.05rem; }
.contact-details a{ color:#fff; text-decoration:none; }
.contact-details a:hover{ text-decoration:underline; }
.contact-details address{ margin:0; line-height:1.5; }

/* 404 page */
.notfound{ padding:clamp(4rem,12vw,9rem) 0; background:linear-gradient(180deg,var(--teal-50),var(--white)); }
.notfound-code{ font-size:clamp(5rem,16vw,9rem); font-weight:800; line-height:1; letter-spacing:-0.04em; margin:0 0 .5rem; background:linear-gradient(135deg,var(--teal-500),var(--teal-700)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.notfound .lead-copy{ color:var(--text-soft); font-size:1.15rem; max-width:44ch; margin:1rem auto 0; font-weight:500; }

/* Cookie notice */
.cookie-notice{
  position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:1050;
  max-width:640px; margin-inline:auto;
  display:flex; flex-wrap:wrap; align-items:center; gap:.9rem 1.25rem;
  background:var(--teal-900); color:#fff;
  padding:1rem 1.25rem; border-radius:16px;
  box-shadow:0 16px 40px rgba(11,74,74,.35);
  animation:hero-rise .4s ease-out both;
}
.cookie-notice p{ margin:0; flex:1 1 260px; font-size:.9rem; line-height:1.5; }