/* London PWS shared chrome stylesheet.
   Header, nav, mobile drawer, footer, sticky contact bar, plus the
   accessibility override layer. Loaded via partials/chrome-css.blade.php.
   Cascade order that everything depends on:
       site.css  ->  THIS FILE  ->  the page's own stylesheet
*/
:root{--green:#092F3E;--green-hover:#4A6B63;--gold:#C4964A;--gold-hover:#B3863E;--cream:#F5F2EC;--linen:#EDE8DF;--text:#4A4A44;--text-light:#6B6860;--border:rgba(9,47,62,0.12);--max-w:1280px;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;font-size:clamp(15px,1.1vw,17px);line-height:1.75;color:var(--text);background:var(--cream);padding-bottom:62px;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.container{width:calc(100% - 48px);max-width:min(84vw,1280px);margin:0 auto;}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px;width:calc(100% - 48px);max-width:min(84vw,1280px);margin:0 auto;}
.nav-logo{display:flex;align-items:center;gap:10px;}
.nav-logo img{height:38px;width:auto;}
.nav-logo-text{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;color:var(--green);line-height:1.2;}
.nav-logo-text small{display:block;font-family:'Inter',sans-serif;font-size:10px;font-weight:500;color:var(--text-light);letter-spacing:0.08em;text-transform:uppercase;}
.nav-links{display:flex;align-items:center;gap:4px;list-style:none;}
.nav-links a{padding:8px 12px;border-radius:6px;font-size:14px;font-weight:500;color:var(--text);transition:color 0.2s,background 0.2s;}
.nav-links a:hover{color:var(--green);background:rgba(9,47,62,0.06);}
.nav-phone{color:var(--green)!important;font-weight:600!important;}
.nav-cta{background:var(--gold);color:#fff!important;padding:10px 20px!important;border-radius:6px;font-weight:600!important;transition:background 0.2s!important;}
.nav-cta:hover{background:var(--gold-hover)!important;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--green);transition:all 0.3s;}
.nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.active span:nth-child(2){opacity:0;}
.nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu-scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:300;}
.mobile-menu-scrim.open{display:block;}
.mobile-menu{position:fixed;top:0;right:-320px;width:300px;height:100%;background:#fff;z-index:400;transition:right 0.35s cubic-bezier(0.4,0,0.2,1);overflow-y:auto;padding:24px;}
.mobile-menu.open{right:0;}
.mobile-menu-header{display:flex;align-items:center;gap:10px;margin-bottom:32px;padding-bottom:20px;border-bottom:1px solid var(--border);}
.mobile-menu-header img{height:32px;}
.mobile-menu-header span{font-family:'Playfair Display',serif;font-size:14px;font-weight:700;color:var(--green);line-height:1.3;}
.mobile-menu-header small{display:block;font-family:'Inter',sans-serif;font-size:10px;font-weight:500;color:var(--text-light);text-transform:uppercase;letter-spacing:0.08em;}
.mobile-menu-links{list-style:none;margin-bottom:28px;}
.mobile-menu-links li{border-bottom:1px solid var(--border);}
.mobile-menu-links a{display:block;padding:14px 0;font-weight:500;color:var(--text);font-size:15px;}
.mobile-menu-cta{display:block;background:var(--gold);color:#fff;text-align:center;padding:14px;border-radius:8px;font-weight:600;margin-bottom:20px;}
.mobile-menu-contact{display:flex;flex-direction:column;gap:10px;}
.mobile-menu-contact a{display:flex;align-items:center;gap:8px;color:var(--green);font-weight:500;font-size:14px;}
.mobile-menu-contact svg{flex-shrink:0;width:16px;height:16px;}
.btn-gold{display:inline-block;background:var(--gold);color:#fff;padding:16px 32px;border-radius:8px;font-weight:600;font-size:15px;transition:background 0.2s;}
.btn-gold:hover{background:var(--gold-hover);}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,0.12);}
.footer-col h4{color:#fff;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:16px;}
.footer-contact-item{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;font-size:14px;color:rgba(255,255,255,0.65);}
.footer-contact-item svg{flex-shrink:0;margin-top:3px;width:14px;height:14px;}
.footer-contact-item a{color:rgba(255,255,255,0.65);transition:color 0.2s;}
.footer-contact-item a:hover{color:#fff;}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding:20px 0;font-size:13px;color:rgba(255,255,255,0.45);}
.sticky-bar{position:fixed;bottom:0;left:0;right:0;z-index:500;display:none;background:#fff;border-top:1px solid var(--border);box-shadow:0 -2px 12px rgba(0,0,0,0.1);}
.sticky-bar-inner{display:flex;}
@media(max-width:1024px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px;}
}
@media(max-width:767px){
  .nav-links{display:none;}
  .nav-toggle{display:flex;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;gap:12px;text-align:center;}
  .sticky-bar{display:block;}
}
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 60px;
  padding: 6px 0;
  width: calc(100% - 48px);
  max-width: none;
  margin: 0 auto;
}
@media (min-width: 1024px){
  .nav-inner {
    width: min(84vw, var(--max-w));
    height: 54px;
    padding: 0;
  }
}
.nav-logo {
  display: flex;
  align-items: center;
  gap: 16px;
  position: relative;
  z-index: 1002;
}
.nav-logo img {
  height: 43px;
  width: auto;
  object-fit: contain;
}
@media (min-width: 1024px){
  .nav-logo img { height: 48px; }
}
.nav-logo-text {
  font-family: 'Playfair Display', serif;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  display: none;
}
@media (min-width: 1024px){
  .nav-logo-text { display: block; }
}
.nav-logo-text small {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 9.5px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  color: rgba(255,255,255,0.88);
  margin-top: 3px;
}
.nav-links {
  display: none;
  align-items: center;
  gap: 36px;
  list-style: none;
}
/* 0.88 not 0.65: on the #092F3E bar, 0.65 measures 4.31:1 which fails WCAG AA
   for small text (needs 4.5:1). 0.88 measures 6.34:1 and still sits below the
   pure-white active state, so the hierarchy survives. */
.nav-links a {
  position: relative;
  color: rgba(255,255,255,0.88);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 0 0 3px;
  border-radius: 0;
  background: transparent;
  transition: color 0.2s;
}
.nav-links a:hover {
  color: #fff;
  background: transparent;
}
/* Lighter gold than the brand --gold (#C4964A) because this sits on the dark
   green bar, where #C4964A measures only 2.83:1 and fails WCAG AA. #EBCE96
   measures 5.00:1. Brand gold is unchanged everywhere it sits on light. */
.nav-phone {
  color: #EBCE96 !important;
  font-weight: 600 !important;
  font-size: 14px !important;
}
.nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--gold);
  color: #fff !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em;
  padding: 10px 20px !important;
  border-radius: 0;
  transition: background 0.22s;
  white-space: nowrap;
}
.nav-cta:hover { background: var(--gold-hover) !important; }
.nav-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  position: relative;
  z-index: 1002;
}
.nav-toggle span {
  display: block;
  width: 28px;
  height: 3px;
  background: #fff;
  opacity: 1;
  border-radius: 999px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.35);
  transition: transform 0.3s ease, opacity 0.3s ease;
  position: absolute;
}
.nav-toggle.active span:nth-child(1) { transform: rotate(45deg); }
.nav-toggle.active span:nth-child(2) { opacity: 0; }
.nav-toggle.active span:nth-child(3) { transform: rotate(-45deg); }
@media (min-width: 1024px){
  .nav-links { display: flex; }
  .nav-toggle { display: none; }
  .mobile-menu { display: none !important; }
}
.mobile-menu {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: auto;
  max-height: 76vh;
  background: var(--green);
  z-index: 1001;
  display: flex;
  flex-direction: column;
  padding: 0 28px 20px;
  transform: translateY(-100%);
  opacity: 0;
  visibility: hidden;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease, visibility 0.3s ease;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,0.3);
}
.mobile-menu.open {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}
.mobile-menu-header {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 60px;
  flex-shrink: 0;
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.mobile-menu-header img {
  height: 36px;
  width: auto;
}
.mobile-menu-header span {
  font-family: 'Playfair Display', serif;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}
.mobile-menu-header small {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 8.5px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.3);
  margin-top: 2px;
}
.mobile-menu-links {
  list-style: none;
  padding: 0;
  margin: 0;
}
.mobile-menu-links li { border-bottom: 1px solid rgba(255,255,255,0.06); }
.mobile-menu-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: rgba(255,255,255,0.85);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  transition: color 0.2s;
}
.mobile-menu-links a::after {
  content: '\203A';
  font-size: 14px;
  color: rgba(255,255,255,0.15);
  font-weight: 300;
}
.mobile-menu-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--gold);
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 14px 24px;
  margin: 14px 0 12px;
  border-radius: 0;
  transition: background 0.22s;
  width: 100%;
}
.mobile-menu-contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 12px;
}
.mobile-menu-contact a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 11px 8px;
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 500;
  transition: border-color 0.2s, background 0.2s;
}
.mobile-menu-contact svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.mobile-menu-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-shrink: 0;
}
.mobile-menu-scrim {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.4);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.mobile-menu-scrim.open {
  display: block;
  opacity: 1;
  visibility: visible;
}
.footer {
  background: var(--green);
  color: #fff;
  padding: clamp(48px, 7vw, 80px) 0 0;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  padding-bottom: 0;
  border-bottom: none;
}
@media (min-width: 768px){
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px){
  .footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; }
}
.footer-col h4 {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #fff;
  margin-bottom: 20px;
}
.footer-brand-logo {
  height: 44px;
  width: auto;
  margin-bottom: 16px;
  filter: none;
}
.footer-brand-text {
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--text-on-dark);
  margin-bottom: 16px;
  max-width: 320px;
}
.footer-links {
  list-style: none;
  display: block;
}
.footer-links li { margin-bottom: 10px; }
.footer-links a {
  font-size: 13.5px;
  color: var(--text-on-dark);
  transition: color 0.2s;
}
.footer-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 12px;
  font-size: 13.5px;
  color: var(--text-on-dark);
}
.footer-contact-item svg {
  width: 14px;
  height: 14px;
  color: var(--gold);
  flex-shrink: 0;
  margin-top: 4px;
}
.footer-contact-item a {
  color: inherit;
  transition: color 0.2s;
}
.footer-contact-item a:hover { color: #fff; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: clamp(32px, 5vw, 48px);
  padding: 20px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  justify-content: flex-start;
}
@media (min-width: 768px){
  .footer-bottom {
    flex-direction: row;
    justify-content: space-between;
  }
}
.footer-copy {
  font-size: 12px;
  color: rgba(255,255,255,0.35);
}
.footer-legal {
  display: flex;
  gap: 20px;
}
.footer-legal a {
  font-size: 12px;
  color: rgba(255,255,255,0.35);
  transition: color 0.2s;
}
.footer-legal a:hover { color: rgba(255,255,255,0.7); }
.sticky-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--gold);
  z-index: 999;
  height: 58px;
  display: block;
  border-top: none;
  box-shadow: none;
}
.sticky-bar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 100%;
  width: calc(100% - 48px);
  margin: 0 auto;
}
.sticky-bar a {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
}
.sticky-bar svg {
  width: 18px;
  height: 18px;
}
.sticky-bar-text {
  font-size: 13px;
  color: rgba(255,255,255,0.8);
  font-weight: 400;
}
@media (min-width: 768px){
  .sticky-bar-inner { gap: 16px; }
}
.whatsapp-fab {
  position: fixed;
  bottom: 74px;
  right: 16px;
  width: 52px;
  height: 52px;
  background: #25D366;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 998;
  box-shadow: 0 4px 16px rgba(0,0,0,0.2);
  transition: transform 0.2s, box-shadow 0.2s;
}
.whatsapp-fab:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 24px rgba(0,0,0,0.25);
}
.whatsapp-fab svg {
  width: 26px;
  height: 26px;
  fill: currentColor;
}
.trust-bar-inner{display:flex;align-items:center;height:40px;gap:20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.trust-bar-inner::-webkit-scrollbar{display:none;}
.trust-bar-item{font-size:10.5px;font-weight:500;color:var(--text-light);text-transform:uppercase;letter-spacing:0.09em;white-space:nowrap;flex-shrink:0;}
.trust-bar-item strong{color:var(--green);}
.trust-bar-div{width:1px;height:18px;background:rgba(9,47,62,0.15);flex-shrink:0;display:none;}
@media (min-width:1024px){
  .trust-bar-inner{justify-content:space-between;overflow:visible;}
  .trust-bar-div{display:block;}
}

/* ── New: Services / Who We Help dropdowns ─────────────────────────────
   The winning nav rules above are the DARK bar: green background, links at
   rgba(255,255,255,0.65), gold phone and CTA. The toggle below deliberately
   mirrors `.nav-links a` so a dropdown parent is indistinguishable from a
   plain link until it is opened. Desktop only - the mobile drawer renders a
   flat list, matching the 1024px breakpoint used by `.nav-links`.        */
.nav-dropdown{position:relative;}
.nav-dropdown-toggle{position:relative;display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;padding:0 0 3px;font-family:inherit;font-size:13.5px;font-weight:500;letter-spacing:0.01em;color:rgba(255,255,255,0.88);cursor:pointer;transition:color 0.2s;}
.nav-dropdown-toggle:hover,.nav-dropdown-toggle.is-active,.nav-dropdown:focus-within .nav-dropdown-toggle{color:#fff;}
.nav-caret{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4.5px solid currentColor;opacity:0.9;transition:transform 0.2s;}
.nav-dropdown:hover .nav-caret,.nav-dropdown:focus-within .nav-caret{transform:rotate(180deg);}

/* Panel: opens on hover AND focus-within, so it is keyboard reachable with no JS. */
.nav-dropdown-menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(-6px);min-width:252px;background:#fff;border:1px solid rgba(9,47,62,0.14);box-shadow:0 14px 38px rgba(0,0,0,0.18);padding:8px;list-style:none;opacity:0;visibility:hidden;transition:opacity 0.18s ease,transform 0.18s ease,visibility 0.18s ease;z-index:1003;}
/* .is-open is set by site.js on click/tap - hover alone leaves touch users on wide
   screens with no way to open a panel. */
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu,.nav-dropdown.is-open .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.nav-dropdown-menu li{list-style:none;border-bottom:none;}
/* Scoped under .nav-links deliberately: the page templates define
   `.nav-links a { color: rgba(255,255,255,0.65) }` for the dark bar, which has the
   same specificity as a bare `.nav-dropdown-menu a` and loads LATER (page CSS wins).
   Without the extra `.nav-links` these links render white on the white panel. */
.nav-links .nav-dropdown-menu a{display:block;padding:11px 14px;color:var(--text);font-size:13.5px;font-weight:500;white-space:nowrap;background:transparent;border-radius:0;transition:color 0.18s,background 0.18s;}
.nav-links .nav-dropdown-menu a:hover{color:var(--green);background:rgba(9,47,62,0.06);}

/* Hover-intent bridge so the panel survives the gap under the toggle. */
.nav-dropdown::after{content:"";position:absolute;top:100%;left:0;right:0;height:16px;}

/* Current-page indicator, shared by nav, dropdown panel and mobile drawer. */
.nav-links a[aria-current="page"]{color:#fff;font-weight:600;}
.nav-links .nav-dropdown-menu a[aria-current="page"]{color:var(--green);font-weight:600;background:rgba(9,47,62,0.06);}
.mobile-menu-links a[aria-current="page"]{color:var(--gold);font-weight:600;}

@media (max-width:1023px){
  .nav-dropdown{display:none;}
}

/* ── Mobile drawer (mnav-*) ─────────────────────────────────────────────
   Full-screen overlay in the brand green with large Playfair links, modelled on
   the Keyledgers mobile menu. Deliberately NOT named .mobile-menu-* : the page
   templates each carry a copy of the legacy .mobile-menu CSS that loads after
   this file and would override it.                                          */
.mnav-scrim{position:fixed;inset:0;background:rgba(15,27,24,0.55);opacity:0;visibility:hidden;transition:opacity 0.3s ease,visibility 0.3s ease;z-index:1000;}
.mnav-scrim.open{opacity:1;visibility:visible;}

.mnav{position:fixed;inset:0;background:var(--green);z-index:1001;display:flex;flex-direction:column;transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform 0.42s cubic-bezier(0.16,1,0.3,1),opacity 0.3s ease,visibility 0.3s ease;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
.mnav.open{transform:translateY(0);opacity:1;visibility:visible;}

/* Light top bar carrying the logo and the close control, as Keyledgers does - it
   keeps the brand legible against the dark panel and anchors the close affordance. */
.mnav-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:var(--cream);border-bottom:1px solid rgba(9,47,62,0.14);}
.mnav-brand{display:flex;align-items:center;gap:12px;}
.mnav-brand img{height:40px;width:auto;}
.mnav-brand span{font-family:'Playfair Display',serif;font-size:14px;font-weight:700;color:var(--green);line-height:1.2;}
.mnav-brand small{display:block;font-family:'Inter',sans-serif;font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:0.13em;color:var(--text-light);margin-top:3px;}
.mnav-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;padding:0;border:1px solid rgba(9,47,62,0.22);background:transparent;color:var(--green);cursor:pointer;transition:border-color 0.2s,color 0.2s;}
.mnav-close:hover{border-color:var(--green);background:rgba(9,47,62,0.06);}
.mnav-close svg{width:20px;height:20px;}

.mnav-body{padding:24px 22px 44px;}
.mnav-heading{display:block;font-family:'Inter',sans-serif;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:0.16em;color:var(--gold);margin:24px 0 10px;}
.mnav-body > .mnav-heading:first-child{margin-top:0;}
.mnav-list{list-style:none;margin:0;padding:0;}
.mnav-list li{border:none;list-style:none;}
.mnav-list a{display:block;font-family:'Playfair Display',serif;font-size:26px;font-weight:400;line-height:1.25;color:rgba(255,255,255,0.85);padding:9px 0;transition:color 0.2s;}
.mnav-list a:hover{color:#fff;}
.mnav-list a[aria-current="page"]{color:var(--gold);}
.mnav-list--sub{padding-left:16px;border-left:1px solid rgba(255,255,255,0.14);}
.mnav-list--sub a{font-size:19px;color:rgba(255,255,255,0.86);padding:8px 0;}

.mnav-phone{display:block;font-family:'Playfair Display',serif;font-size:28px;color:var(--gold);margin-top:30px;}
.mnav-cta{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;padding:15px 22px;background:var(--gold);color:#fff;font-family:'Inter',sans-serif;font-size:14px;font-weight:600;letter-spacing:0.02em;transition:background 0.2s;}
.mnav-cta:hover{background:var(--gold-hover);}
.mnav-icons{display:flex;gap:10px;margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,255,255,0.10);}
.mnav-icons a{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid rgba(255,255,255,0.18);color:rgba(255,255,255,0.80);transition:color 0.2s,border-color 0.2s;}
.mnav-icons a:hover{color:var(--gold);border-color:var(--gold);}
.mnav-icons svg{width:19px;height:19px;}

@media (min-width:1121px){
  .mnav,.mnav-scrim{display:none!important;}
}

/* ── Accessible gold variants ───────────────────────────────────────────
   The brand gold #C4964A is kept for large display type and for button FILLS,
   where it carries the identity. As TEXT it only reaches 2.4-2.8:1 and fails
   WCAG AA, so two derived tones are used instead:

     --gold-ink    #8A6420   gold text on white / cream   5.36:1 / 4.80:1
     --gold-light  #EBCB8C   gold text on the green       4.80:1
     --on-gold     #26332F   text sitting ON a gold fill  4.88:1

   !important is used deliberately below. Each page template ships its own copy of
   these colour rules and loads AFTER this file, so specificity alone loses. This
   block is the site's accessibility override layer - keep it the only place that
   uses !important. */
:root{--gold-ink:#825E1E;--gold-light:#EBCB8C;--on-gold:#26332F;}

/* Gold text on light backgrounds */
.sec-label span,
.faq-group-title,
.bio-role,
.post-related-label,
.post-related-all,
.author-bio a,
.hero-card__callout,
.blog-card-cat,
.post-related-cat,
.post-related-arrow,
.post-faq-label,
.linen-col-label,
.notice-section-ref,
.option-num,
.value-num,
.blog-featured-badge,
.pricing-card__tag,
.prose p a,
.post-article p a,
.post-article li a{color:var(--gold-ink) !important;}

/* Text sitting on a gold fill - white only reaches 2.69:1.
   .post-cta .post-cta-btn is compound because the blog template sets
   `color:#fff !important` on the bare class and loads after this file. */
.btn-gold,
.hero-phone-top a,
.appoint-fees-btn,
.post-cta .post-cta-btn,
.post-cat-pill,
.sticky-bar-inner a{color:var(--on-gold) !important;}

/* Gold text on the dark green - the darker ink would be WORSE here (1.42:1), so
   these use the lighter tone. Scoped to the dark containers that actually exist. */
.about-bio .sec-label span,
.footer-credit a,
.blog-hero-eyebrow,
.blog-hero-h1 em,
.btn-outline-gold,
.stat-item__number,
.post-cta-h em,
.post-cta-phone a,
.post-article .cta-block a,
.pricing-card--featured .pricing-card__tag,
.pricing-card--featured .sec-label span{color:var(--gold-light) !important;}
.btn-outline-gold{border-color:var(--gold-light) !important;}

/* Low-alpha white on green: 3.57-4.31:1, just under AA */
.footer-contact-item span,
.bio-stat span,
.cta-band-inner p{color:rgba(255,255,255,0.82) !important;}

/* ── Trust bar: wrap instead of clipping on narrow screens ─────────────
   The strip was a nowrap horizontally-scrollable row, so on a 390px screen it
   read as cut off mid-word ("FIXED FEE...") with no scroll affordance. Wrapping
   to two centred lines shows all five proof points without a hidden interaction. */
@media (max-width:767px){
  .trust-bar .trust-bar-inner{flex-wrap:wrap;justify-content:center;height:auto;gap:6px 14px;padding:9px 0;overflow-x:visible;}
  .trust-bar .trust-bar-item{white-space:nowrap;}
  .trust-bar .trust-bar-div{display:none;}
}

/* ── Sticky contact bar: phone + WhatsApp share the bar on mobile ───────
   The floating .whatsapp-fab is hidden below 1024px because it overlapped real
   controls on every page (contact email input, submit button, homepage CTA, FAQ
   accordion triggers, blog related links). Above 1024px there is no sticky bar,
   so the floating button stays. */
.sticky-bar-inner{align-items:center;gap:10px;padding:0 14px;}
.sticky-bar .sticky-bar-text{white-space:nowrap;}
.sticky-bar .sticky-bar-phone{display:inline-flex;align-items:center;gap:8px;flex:1 1 auto;justify-content:center;min-height:52px;font-weight:700;white-space:nowrap;}
/* Three items do not fit on a 390px bar - the label is the expendable one, the
   number and the WhatsApp action are not. */
@media (max-width:479px){
  .sticky-bar .sticky-bar-text{display:none;}
}
.sticky-bar .sticky-bar-wa{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 auto;background:#25D366;color:#fff;border-radius:50%;}
.sticky-bar .sticky-bar-wa svg{width:26px;height:26px;}
.sticky-bar .sticky-bar-wa:hover{background:#1FB855;}

@media (max-width:1023px){
  .whatsapp-fab{display:none !important;}
}
@media (min-width:1024px){
  .sticky-bar .sticky-bar-wa{display:none;}
}

/* ── Contrast repairs on shared chrome ─────────────────────────────────
   Measured on mobile at 390px against the resolved background.
   .sticky-bar-text was white at 0.6-0.8 alpha on the gold strip: 1.87-2.25:1.
   Solid dark green on gold reaches 4.9:1 and keeps the strip's colour. */
.sticky-bar .sticky-bar-text{color:#26332F;font-weight:600;}
.sticky-bar a{color:#1F2A26;}

/* Trust bar sat at 4.41:1, just under AA at 10.5px. */
.trust-bar .trust-bar-item{color:#5A5750;}
.trust-bar .trust-bar-item strong{color:var(--green);}

/* Respect a reduced-motion preference: the drawer slide, the dropdown fade and
   the site-wide smooth scroll are all vestibular triggers. */
@media (prefers-reduced-motion:reduce){
  .mnav,.mnav-scrim,.nav-dropdown-menu,.nav-caret{transition:none !important;}
  html{scroll-behavior:auto !important;}
}

/* ── Footer on mobile: two link columns, like Keyledgers ────────────────
   Scoped as `.footer .footer-col` (0,2,0) so it outranks the page templates'
   own `.footer-grid` rules, which load later but are only (0,1,0).          */
.footer .footer-grid{grid-template-columns:1fr 1fr;gap:28px 20px;}
.footer .footer-col:first-child,.footer .footer-col:last-child{grid-column:1 / -1;}
/* Keyledgers pattern: SERVICES left-aligned and COMPANY right-aligned, sharing one
   row, each heading sitting on a rule that spans its column. Grid children are
   1 = brand block, 2 = Services, 3 = Company, 4 = Contact. */
.footer .footer-col:nth-child(3){text-align:right;}

@media (min-width:1024px){
  .footer .footer-grid{grid-template-columns:2fr 1fr 1fr 1.5fr;gap:48px;}
  .footer .footer-col:first-child,.footer .footer-col:last-child{grid-column:auto;}
  .footer .footer-col:nth-child(3){text-align:left;}
}

/* ── Footer credit: last line, centred, below the legal links ───────────
   Sits after .footer-bottom (copy left, legal right) as its own centred row. */
/* Bottom padding clears the fixed WhatsApp button, which floats above the sticky
   phone strip and otherwise sits on top of this text at the end of the page. */
.footer-credit-row{text-align:center;padding:0 0 78px;}
@media (min-width:1024px){
  .footer-credit-row{padding-bottom:22px;}
}

/* ── WCAG AA contrast on the green footer ───────────────────────────────
   Measured against #092F3E. The page templates set these at alpha 0.35-0.65,
   which computes to 2.36:1 - 4.31:1 and fails AA for body text. Raised to the
   lowest alpha that clears 4.5:1. Scoped under .footer so these outrank the
   page templates' own rules, which load later. */
.footer .footer-copy{color:rgba(255,255,255,0.78);}
.footer .footer-legal a{color:rgba(255,255,255,0.78);}
.footer .footer-links a{color:rgba(255,255,255,0.80);}
.footer .footer-credit{color:rgba(255,255,255,0.78);}
.footer .footer-brand-text{color:rgba(255,255,255,0.78);}
.footer .footer-contact-item{color:rgba(255,255,255,0.80);}
.footer .footer-contact-item a{color:rgba(255,255,255,0.80);}
.footer .footer-legal a:hover,.footer .footer-links a:hover,.footer .footer-contact-item a:hover{color:#fff;}

/* Footer column headings are h3 (see footer.blade.php) - mirror the legacy
   .footer-col h4 styling so nothing shifts visually. */
.footer .footer-col h3{color:#fff;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:14px;padding-bottom:9px;border-bottom:2px solid var(--gold);}
@media (min-width:1024px){
  .footer .footer-col h3{margin-bottom:16px;padding-bottom:0;border-bottom:none;}
}

/* ── Touch targets (WCAG 2.5.8 / 2.5.5) ────────────────────────────────
   Footer links computed 17-21px tall and the burger 40x40. Padding is applied
   below the desktop breakpoint only, so the desktop footer spacing is unchanged. */
@media (max-width:1023px){
  /* display:block so the whole column width is tappable - short labels like "FAQ"
     and "Blog" are only ~27px wide as inline text. */
  .footer .footer-links a{display:block;padding:14px 0;}
  /* nowrap so a two-word label never breaks as "Privacy / Policy"; the row itself
     still wraps between links. */
  .footer .footer-legal a{display:inline-block;padding:12px 7px;white-space:nowrap;}
  .footer .footer-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 10px;}
  .footer .footer-links li{margin-bottom:0;}
  .nav-toggle{width:44px;height:44px;}
}
/* One step smaller than the copyright and legal links above, which compute to
   12px - so this sits at 11px and reads as a subordinate credit line. */
.footer-credit{font-size:11px;line-height:1.5;color:rgba(255,255,255,0.68);}
.footer-credit-row .footer-credit a{color:var(--gold);font-weight:500;transition:color 0.2s;}
.footer-credit-row .footer-credit a:hover{color:#fff;text-decoration:underline;}
@media (max-width:767px){
  .footer-credit-row{padding-top:4px;}
}

/* ── Premium site chrome, standardised from the approved home-2 version ── */
.nav{
  height:72px;
  background:#0D2822;
  border-bottom:1px solid rgba(255,255,255,0.12);
  transition:height 0.28s ease,box-shadow 0.28s ease;
}
.nav-inner{
  height:72px;
  width:min(88vw,1640px);
  padding:0;
  transition:height 0.28s ease;
}
.nav-logo{gap:0;}
.nav-logo img{
  height:58px;
  background:transparent;
  transition:height 0.28s ease;
}
.nav-logo-text{display:none !important;}
.nav-links{gap:27px;}
.nav-links>.nav-item--faq,
.nav-links>.nav-item--blog,
.nav-links>.nav-item--contact{display:none;}
.nav-mobile-home{display:none;}
@media(max-width:1120px){
  .nav-inner{gap:8px;}
  .nav-logo{flex:0 1 auto;min-width:0;}
  .nav .nav-mobile-home{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin-left:auto;padding:8px;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:4px;font-size:13px;font-weight:600;}
  .nav-toggle{flex:0 0 auto;}
}
.nav-links>li>a,
.nav-dropdown-toggle{
  font-size:12px;
  font-weight:600;
  letter-spacing:0.025em;
  color:rgba(255,255,255,0.82);
}
.nav-phone{
  font-family:'Playfair Display',serif !important;
  font-size:20px !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:-0.01em !important;
  color:#fff !important;
}
.nav-cta{
  padding:14px 20px !important;
  background:#C99A4B;
  color:#0D2822 !important;
  font-weight:700 !important;
}
.nav-cta:hover{background:#E4C480 !important;}
.nav.is-compact{
  height:56px;
  box-shadow:0 10px 26px rgba(5,24,19,0.22);
}
.nav.is-compact .nav-inner{height:56px;}
.nav.is-compact .nav-logo img{height:45px;}

.trust-bar{
  height:28px;
  background:#F1EADF;
  border:0;
}
.trust-bar .trust-bar-inner{
  height:28px;
  width:min(88vw,1640px);
  justify-content:center;
  gap:52px;
  padding:0;
  overflow:visible;
}
.trust-bar .trust-bar-item{
  font-size:9px;
  letter-spacing:0.13em;
  color:#5F6B67;
}
.trust-bar .trust-bar-div{
  display:block;
  width:3px;
  height:3px;
  border-radius:50%;
  background:#C99A4B;
}
.trust-bar .trust-bar-inner>:nth-child(n+6){display:none;}

.footer{
  padding:38px 0 0;
  background:#0B241F;
  border-top:5px solid #C99A4B;
}
.footer .footer-grid{
  grid-template-columns:1.35fr 0.78fr 1.05fr 0.78fr 1.2fr;
  gap:28px;
  padding-bottom:28px;
  border-bottom:1px solid rgba(255,255,255,0.12);
}
.footer .footer-col:first-child,
.footer .footer-col:last-child{grid-column:auto;}
.footer .footer-col:nth-child(3){text-align:left;}
.footer .footer-col h3{
  margin-bottom:13px;
  padding-bottom:0;
  border-bottom:0;
  font-size:10px;
  letter-spacing:0.14em;
  color:#E4C480;
}
.footer .footer-brand-logo{height:49px;margin-bottom:11px;}
.footer .footer-brand-text{
  max-width:285px;
  margin-bottom:0;
  font-size:12px;
  line-height:1.55;
}
.footer .footer-links li{margin-bottom:6px;line-height:1.3;}
.footer .footer-links a{font-size:12px;}
.footer .footer-contact-item{margin-bottom:8px;font-size:12px;line-height:1.45;}
.footer .footer-bottom{margin-top:0;padding:15px 0 11px;}
.footer .footer-copy,
.footer .footer-legal a{font-size:10px;}
.footer .footer-credit-row{padding:9px 0 14px;}
.footer .footer-credit{font-size:9px;}

@media (min-width:1024px) and (max-width:1120px){
  .nav-links{display:none !important;}
  .nav-toggle{display:flex !important;}
}
@media (max-width:1220px){
  .nav-links{gap:18px;}
  .nav-links>li>a,
  .nav-dropdown-toggle{font-size:11px;}
  .nav-phone{font-size:17px !important;}
}
@media (min-width:1024px) and (max-width:1199px){
  .footer .footer-grid{grid-template-columns:1.2fr 1fr 1fr;gap:28px 24px;}
}
@media (max-width:1023px){
  .nav{height:68px;}
  .nav-inner{height:68px;width:calc(100% - 36px);padding:0;}
  .nav-logo img{height:53px;}
  .trust-bar{display:none;}

  .footer .footer-grid{
    grid-template-columns:1fr 1fr 1fr;
    gap:28px 24px;
  }
  .footer .footer-col:first-child,
  .footer .footer-col:last-child{grid-column:auto;}
  .footer .footer-col:nth-child(3){text-align:left;}
  .footer .footer-links li{margin-bottom:0;}
  .footer .footer-links a{
    display:flex;
    align-items:center;
    min-height:44px;
    padding:6px 0;
  }
}
@media (max-width:767px){
  .footer{padding-top:30px;}
  .footer .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:25px 18px;
    padding-bottom:24px;
  }
  .footer .footer-col:first-child,
  .footer .footer-col:last-child{grid-column:1 / -1;}
  .footer .footer-credit-row{padding:9px 0 72px;}
}
