/* recall-update.css */
/* Recall website refresh. Shared additions retain the existing colour system. */
.footer-platform {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.65);
}
.footer-social { align-items: center; flex-wrap: wrap; }
.hero-logo-img { filter: brightness(0) invert(1); }


.leaflet-services { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.leaflet-services .service-card { padding: 26px 22px; }
.service-icon-wrap.leaflet-icon { background: transparent; border-radius: 0; width: 44px; height: 44px; }
.leaflet-icon img { display: block; width: 40px; height: 40px; }
.leaflet-services .service-title { color: var(--teal); font-size: 17px; }
.service-scope-note { margin-top: 26px; font-size: 13px; line-height: 1.7; color: var(--text-muted); max-width: 880px; }
.microsoft-section { background: var(--teal-xlight); }
.microsoft-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.microsoft-heading-icon { margin-bottom: 20px; }
.microsoft-layout .btn { margin-top: 26px; }
.microsoft-copy h3 { color: var(--teal-dark); font-size: 20px; margin-bottom: 20px; letter-spacing: -.02em; }
.microsoft-list { list-style: none; margin: 0; padding: 0; }
.microsoft-list li { border-top: 1px solid var(--border); padding: 16px 0; }
.microsoft-list strong { display: block; color: var(--text); font-size: 15px; margin-bottom: 4px; }
.microsoft-list span, .microsoft-note { color: var(--text-mid); font-size: 14px; line-height: 1.7; }
.microsoft-note { font-size: 12px; margin-top: 14px; }
.plan-name { margin: 0; }
.plan-tagline { margin-bottom: 0; min-height: 40px; }
.plan-price { min-height: 80px; }
.plan-cta { width: 100%; justify-content: center; }
.plan-boundaries { margin-top: 26px; color: var(--text-mid); font-size: 13px; line-height: 1.7; }
.plan-boundaries strong { color: var(--teal-dark); }
.support-calendar { margin-top: 20px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); overflow: hidden; }
.support-calendar summary { padding: 18px 22px; cursor: pointer; color: var(--teal-dark); font-size: 14px; font-weight: 700; }
.support-calendar summary span { margin-left: 12px; color: var(--text-muted); font-size: 12px; font-weight: 500; }
.support-calendar summary:focus-visible { outline: 3px solid var(--teal); outline-offset: -4px; }
.calendar-content { padding: 0 22px 20px; font-size: 13px; line-height: 1.7; color: var(--text-mid); }
.calendar-content dl { margin: 0; }
.calendar-content dl div { display: grid; grid-template-columns: 220px 1fr; gap: 24px; padding: 12px 0; border-top: 1px solid var(--border); }
.calendar-content dt { font-weight: 700; color: var(--text); }
.calendar-content dd { margin: 0; }
.calendar-content p { margin: 10px 0 0; }
.hero-card-body { line-height: 1.65; }
.form-error { border: 1px solid #ad5748; border-radius: 12px; padding: 14px; color: #8e3024; font-size: 13px; line-height: 1.6; }
select.form-input { min-height: 44px; }
.contact-layout > *, .contact-detail > div { min-width: 0; }
.contact-detail strong { overflow-wrap: anywhere; }
.mobile-cta { width: max-content; max-width: calc(100% - 32px); }
.mobile-cta a { white-space: nowrap; }
.service-card::before { pointer-events: none; }
@media (max-width: 1080px) {
  .leaflet-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .microsoft-layout { gap: 40px; }
}
@media (max-width: 760px) {
  .microsoft-layout { grid-template-columns: 1fr; gap: 36px; }
  .calendar-content dl div { grid-template-columns: 1fr; gap: 4px; }
  .support-calendar summary span { display: block; margin: 4px 0 0 18px; }
  .plan-tagline, .plan-price { min-height: 0; }
}
@media (max-width: 540px) {
  .leaflet-services { grid-template-columns: 1fr; }
  .leaflet-services .service-card { padding: 24px; }
  .trust-bar .container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trust-item { min-width: 0; padding: 16px 8px; gap: 8px; }
  .trust-text { min-width: 0; }
  .trust-icon-wrap { width: 32px; height: 32px; flex-shrink: 0; }
  .trust-val { font-size: 16px; }
  .trust-label { font-size: 10px; overflow-wrap: anywhere; }
}

/* recall-theme.css */
/* Shared light/dark appearance, including native forms and every supporting page. */
:root { color-scheme:light; --theme-ink:#036a70; --theme-control-bg:var(--surface); --theme-control-border:#6f878d; --theme-focus:#036a70; }
.theme-control { display:none; align-items:center; gap:5px; padding:5px 8px; height:36px; border:1px solid var(--theme-control-border); border-radius:10px; color:var(--text); background:var(--theme-control-bg); margin-left:auto; flex-shrink:0; }
:root[data-theme] .theme-control { display:inline-flex; }
.theme-control svg { flex-shrink:0; }
.form-input { border-color:#6f878d; }
.contact-detail-icon { color:#fff; }
.theme-control select { font:600 12px var(--font); color:inherit; background:transparent; border:0; padding:2px; width:66px; cursor:pointer; }
.theme-control select option { color:var(--text); background:var(--surface); }
#mainNav:not(.scrolled) .theme-control { color:#fff; border-color:rgba(255,255,255,.65); background:rgba(255,255,255,.1); }
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid var(--theme-focus); outline-offset:3px; }
.theme-control:focus-within { box-shadow:0 0 0 3px var(--theme-focus); }
.footer-nav-label,.footer-credit { color:rgba(255,255,255,.65); }
.footer-brand-tagline,.footer-nav-group a,.footer-bottom,.footer-badge { color:rgba(255,255,255,.65); }
@media (max-width:1100px) {
 #mainNav .nav-links,#mainNav .nav-cta { display:none; }
 #mainNav .nav-hamburger { display:flex; }
}
@media (max-width:540px) {
 .nav-inner { padding-left:12px; padding-right:12px; gap:8px; }
 .nav-logo { font-size:15px; gap:8px; }
 .nav-logo img { width:28px; height:28px; }
 .theme-control { gap:3px; padding:4px 6px; }
 .theme-control select { width:58px; font-size:11px; }
 .nav-hamburger { width:36px; height:36px; }
 .nav:not(#mainNav) .nav-cta { font-size:0; padding:8px 10px; }
 .nav:not(#mainNav) .nav-cta::after { content:'Contact'; font-size:12px; }
}

/* Keep the established pale footer symbols and readable primary actions in both modes. */
.btn-primary { background:linear-gradient(135deg,#05d8e0,#45c6c9); color:#003438 !important; }
.nav-mobile:not(.open) { visibility:hidden; pointer-events:none; }
.nav-mobile.open { visibility:visible; pointer-events:auto; }
#mainNav:not(.scrolled),.hero-section,.mot-banner,.cta-banner,footer { --theme-focus:#fff; }
:root footer .footer-nav-group a,:root footer .footer-bottom a { color:rgba(255,255,255,.65); }
:root footer .footer-social a,:root footer .footer-platform { color:rgba(255,255,255,.75); }
:root footer a:hover { color:#fff; }
/* Automatic appearance remains available when JavaScript is disabled. */
@media (prefers-color-scheme:dark) {
:root:not([data-theme="light"]) .plan-card { background: #0c1c20; border-color: #1a2e33; }
:root:not([data-theme="light"]) .plans-note { background: #011619; border-color: rgba(3,122,128,.2); }
:root:not([data-theme="light"]) { --bg:          #060e10;
        --surface:     #0b1a1d;
        --border:      #1a2e33;
        --text:        #ddeaed;
        --footer-bg:   #0a1a1e;
        --text-mid:    #a0bcc2;
        --text-muted:  #6a8890;
        --teal-light:  #012326;
        --teal-xlight: #011619;
        --shadow:      0 20px 60px rgba(0,0,0,.7);
        --shadow-sm:   0 4px 16px rgba(0,0,0,.5); }
:root:not([data-theme="light"]) body { background: var(--bg); }
:root:not([data-theme="light"]) .trust-bar { background: var(--surface); border-color: var(--border); }
:root:not([data-theme="light"]) .service-card { background: #0c1c20; border-color: #1a2e33; }
:root:not([data-theme="light"]) .service-card:hover { border-color: rgba(3,122,128,.5); }
:root:not([data-theme="light"]) .service-card::before { background: linear-gradient(135deg, rgba(3,122,128,.08), transparent); }
:root:not([data-theme="light"]) .why-card { background: #0c1c20; border-color: #1a2e33; }
:root:not([data-theme="light"]) .step-card {  }
:root:not([data-theme="light"]) .about-stat-card-sm { background: #0c1c20; border-color: #1a2e33; }
:root:not([data-theme="light"]) .faq-item { background: #0c1c20; border-color: #1a2e33; }
:root:not([data-theme="light"]) .faq-btn { color: var(--text); }
:root:not([data-theme="light"]) .faq-btn:hover,
:root:not([data-theme="light"]) .faq-btn[aria-expanded="true"] { background: #011619; }
:root:not([data-theme="light"]) .faq-chevron { background: #1a2e33; border-color: #1a2e33; }
:root:not([data-theme="light"]) .faq-body-inner { border-color: #1a2e33; }
:root:not([data-theme="light"]) .form-input { background: #0c1c20; border-color: #1a2e33; color: var(--text); }
:root:not([data-theme="light"]) .form-input:focus { background: #0c1c20; border-color: var(--teal); }
:root:not([data-theme="light"]) .contact-detail { background: #011619; border-color: rgba(3,122,128,.2); }
:root:not([data-theme="light"]) .coverage-tag { background: #011619; border-color: rgba(3,122,128,.2); }
:root:not([data-theme="light"]) .btn-ghost { background: #0c1c20; color: #5eead4 !important; border-color: #1a2e33; }
:root:not([data-theme="light"]) .btn-ghost:hover { background: #011619; }
:root:not([data-theme="light"]) .nav.scrolled { background: rgba(9,20,24,.9); box-shadow: 0 1px 0 rgba(0,0,0,.3); }
:root:not([data-theme="light"]) .nav-links a:hover,
:root:not([data-theme="light"]) .nav-links a.active { background: #011619; }
:root:not([data-theme="light"]) .nav-mobile { background: rgba(9,20,24,.97); border-color: #1a2e33; }
:root:not([data-theme="light"]) .nav-mobile a:hover { background: #011619; }
:root:not([data-theme="light"]) .hero-badge { background: rgba(255,255,255,.07); }
:root:not([data-theme="light"]) .form-success { background: #012316; color: #6ee7b7; border-color: #0f766e; }
:root:not([data-theme="light"]) { --bg:#060e10; --surface:#0b1a1d; --border:#1a2e33;
        --text:#ddeaed; --text-mid:#a0bcc2; --text-muted:#6a8890;
        --footer-bg:#0a1a1e;
        --teal-light:#012326; --teal-xlight:#011619;
        --shadow:0 20px 60px rgba(0,0,0,.7); }
:root:not([data-theme="light"]) body { background:var(--bg); }
:root:not([data-theme="light"]) .nav:not(#mainNav) { background:rgba(9,20,24,.9); box-shadow:0 1px 0 rgba(0,0,0,.3); }
:root:not([data-theme="light"]) .nav:not(#mainNav) .nav-logo { color:var(--text); }
:root:not([data-theme="light"]) .toc { background:#0c1c20; border-color:#1a2e33; }
:root:not([data-theme="light"]) table.legal-table th { background:#011619; }
:root:not([data-theme="light"]) .callout { background:#011619; border-color:rgba(3,122,128,.3); }
:root:not([data-theme="light"]) .callout strong { color:#5eead4; }
:root:not([data-theme="light"]) .todo { background:#241d05; border-color:#5c4a10; color:#e8d9a0; }
:root:not([data-theme="light"]) .todo strong { color:#f0c85a; }
:root:not([data-theme="light"]) .legal-contact { background:#011619; border-color:rgba(3,122,128,.25); }
:root:not([data-theme="light"]) .microsoft-section { background: #08262b; }
:root:not([data-theme="light"]) .microsoft-copy h3,
:root:not([data-theme="light"]) .plan-boundaries strong,
:root:not([data-theme="light"]) .support-calendar summary { color: #70d4d8; }
:root:not([data-theme="light"]) .service-scope-note,
:root:not([data-theme="light"]) .microsoft-note,
:root:not([data-theme="light"]) .microsoft-list span,
:root:not([data-theme="light"]) .plan-boundaries,
:root:not([data-theme="light"]) .calendar-content { color: #b6cbd0; }
:root:not([data-theme="light"]) .form-error { color: #f4b5a9; }
:root:not([data-theme="light"]) { color-scheme: dark; --text-muted:#a0b7bd; --theme-ink:#7bdadd; --theme-control-bg:#102c32; --theme-control-border:#57767e; --theme-focus:#7bdadd; }
:root:not([data-theme="light"]) a,
:root:not([data-theme="light"]) .section-label,
:root:not([data-theme="light"]) .plan-price,
:root:not([data-theme="light"]) .plans-note strong,
:root:not([data-theme="light"]) .service-link,
:root:not([data-theme="light"]) .leaflet-services .service-title,
:root:not([data-theme="light"]) .faq-btn[aria-expanded="true"],
:root:not([data-theme="light"]) .coverage-tag,
:root:not([data-theme="light"]) .nav-links a:hover,
:root:not([data-theme="light"]) .nav-links a.active,
:root:not([data-theme="light"]) .nav-mobile a:hover { color:var(--theme-ink); }
:root:not([data-theme="light"]) .microsoft-copy h3,
:root:not([data-theme="light"]) .plan-boundaries strong,
:root:not([data-theme="light"]) .support-calendar summary { color:var(--theme-ink); }
:root:not([data-theme="light"]) .contact-info-body,
:root:not([data-theme="light"]) .service-scope-note,
:root:not([data-theme="light"]) .microsoft-note,
:root:not([data-theme="light"]) .microsoft-list span,
:root:not([data-theme="light"]) .plan-boundaries,
:root:not([data-theme="light"]) .calendar-content { color:var(--text-mid); }
:root:not([data-theme="light"]) .leaflet-icon,
:root:not([data-theme="light"]) .microsoft-heading-icon { background:#f4f5ef; border-radius:12px; padding:5px; width:50px; height:50px; }
:root:not([data-theme="light"]) .microsoft-heading-icon img { display:block; width:40px; height:40px; }
:root:not([data-theme="light"]) .service-icon-wrap:not(.leaflet-icon) { background:#163e45; }
:root:not([data-theme="light"]) .service-icon-wrap svg,
:root:not([data-theme="light"]) .why-icon-wrap svg,
:root:not([data-theme="light"]) .trust-icon-wrap svg,
:root:not([data-theme="light"]) .tech-badge-icon svg,
:root:not([data-theme="light"]) .about-stat-icon svg,
:root:not([data-theme="light"]) .plans-note svg { stroke:var(--theme-ink); }
:root:not([data-theme="light"]) .form-input { background:#0c1c20; color:var(--text); border-color:#5d7c84; }
:root:not([data-theme="light"]) .form-input:focus { background:#10272d; border-color:var(--theme-focus); }
:root:not([data-theme="light"]) .form-input::placeholder { color:#a0b7bd; opacity:1; }
:root:not([data-theme="light"]) .form-error { color:#ffc4b8; background:#301b19; border-color:#d38d7c; }
:root:not([data-theme="light"]) .theme-control { background:var(--theme-control-bg); border-color:var(--theme-control-border); color:var(--text); }
:root:not([data-theme="light"]) select option { background:var(--surface); color:var(--text); }
}

/* An explicit selection takes precedence over the device preference. */
:root[data-theme="dark"] .plan-card { background: #0c1c20; border-color: #1a2e33; }
:root[data-theme="dark"] .plans-note { background: #011619; border-color: rgba(3,122,128,.2); }
:root[data-theme="dark"] { --bg:          #060e10;
        --surface:     #0b1a1d;
        --border:      #1a2e33;
        --text:        #ddeaed;
        --footer-bg:   #0a1a1e;
        --text-mid:    #a0bcc2;
        --text-muted:  #6a8890;
        --teal-light:  #012326;
        --teal-xlight: #011619;
        --shadow:      0 20px 60px rgba(0,0,0,.7);
        --shadow-sm:   0 4px 16px rgba(0,0,0,.5); }
:root[data-theme="dark"] body { background: var(--bg); }
:root[data-theme="dark"] .trust-bar { background: var(--surface); border-color: var(--border); }
:root[data-theme="dark"] .service-card { background: #0c1c20; border-color: #1a2e33; }
:root[data-theme="dark"] .service-card:hover { border-color: rgba(3,122,128,.5); }
:root[data-theme="dark"] .service-card::before { background: linear-gradient(135deg, rgba(3,122,128,.08), transparent); }
:root[data-theme="dark"] .why-card { background: #0c1c20; border-color: #1a2e33; }
:root[data-theme="dark"] .step-card {  }
:root[data-theme="dark"] .about-stat-card-sm { background: #0c1c20; border-color: #1a2e33; }
:root[data-theme="dark"] .faq-item { background: #0c1c20; border-color: #1a2e33; }
:root[data-theme="dark"] .faq-btn { color: var(--text); }
:root[data-theme="dark"] .faq-btn:hover,
:root[data-theme="dark"] .faq-btn[aria-expanded="true"] { background: #011619; }
:root[data-theme="dark"] .faq-chevron { background: #1a2e33; border-color: #1a2e33; }
:root[data-theme="dark"] .faq-body-inner { border-color: #1a2e33; }
:root[data-theme="dark"] .form-input { background: #0c1c20; border-color: #1a2e33; color: var(--text); }
:root[data-theme="dark"] .form-input:focus { background: #0c1c20; border-color: var(--teal); }
:root[data-theme="dark"] .contact-detail { background: #011619; border-color: rgba(3,122,128,.2); }
:root[data-theme="dark"] .coverage-tag { background: #011619; border-color: rgba(3,122,128,.2); }
:root[data-theme="dark"] .btn-ghost { background: #0c1c20; color: #5eead4 !important; border-color: #1a2e33; }
:root[data-theme="dark"] .btn-ghost:hover { background: #011619; }
:root[data-theme="dark"] .nav.scrolled { background: rgba(9,20,24,.9); box-shadow: 0 1px 0 rgba(0,0,0,.3); }
:root[data-theme="dark"] .nav-links a:hover,
:root[data-theme="dark"] .nav-links a.active { background: #011619; }
:root[data-theme="dark"] .nav-mobile { background: rgba(9,20,24,.97); border-color: #1a2e33; }
:root[data-theme="dark"] .nav-mobile a:hover { background: #011619; }
:root[data-theme="dark"] .hero-badge { background: rgba(255,255,255,.07); }
:root[data-theme="dark"] .form-success { background: #012316; color: #6ee7b7; border-color: #0f766e; }
:root[data-theme="dark"] { --bg:#060e10; --surface:#0b1a1d; --border:#1a2e33;
        --text:#ddeaed; --text-mid:#a0bcc2; --text-muted:#6a8890;
        --footer-bg:#0a1a1e;
        --teal-light:#012326; --teal-xlight:#011619;
        --shadow:0 20px 60px rgba(0,0,0,.7); }
:root[data-theme="dark"] body { background:var(--bg); }
:root[data-theme="dark"] .nav:not(#mainNav) { background:rgba(9,20,24,.9); box-shadow:0 1px 0 rgba(0,0,0,.3); }
:root[data-theme="dark"] .nav:not(#mainNav) .nav-logo { color:var(--text); }
:root[data-theme="dark"] .toc { background:#0c1c20; border-color:#1a2e33; }
:root[data-theme="dark"] table.legal-table th { background:#011619; }
:root[data-theme="dark"] .callout { background:#011619; border-color:rgba(3,122,128,.3); }
:root[data-theme="dark"] .callout strong { color:#5eead4; }
:root[data-theme="dark"] .todo { background:#241d05; border-color:#5c4a10; color:#e8d9a0; }
:root[data-theme="dark"] .todo strong { color:#f0c85a; }
:root[data-theme="dark"] .legal-contact { background:#011619; border-color:rgba(3,122,128,.25); }
:root[data-theme="dark"] .microsoft-section { background: #08262b; }
:root[data-theme="dark"] .microsoft-copy h3,
:root[data-theme="dark"] .plan-boundaries strong,
:root[data-theme="dark"] .support-calendar summary { color: #70d4d8; }
:root[data-theme="dark"] .service-scope-note,
:root[data-theme="dark"] .microsoft-note,
:root[data-theme="dark"] .microsoft-list span,
:root[data-theme="dark"] .plan-boundaries,
:root[data-theme="dark"] .calendar-content { color: #b6cbd0; }
:root[data-theme="dark"] .form-error { color: #f4b5a9; }
:root[data-theme="dark"] { color-scheme: dark; --text-muted:#a0b7bd; --theme-ink:#7bdadd; --theme-control-bg:#102c32; --theme-control-border:#57767e; --theme-focus:#7bdadd; }
:root[data-theme="dark"] a,
:root[data-theme="dark"] .section-label,
:root[data-theme="dark"] .plan-price,
:root[data-theme="dark"] .plans-note strong,
:root[data-theme="dark"] .service-link,
:root[data-theme="dark"] .leaflet-services .service-title,
:root[data-theme="dark"] .faq-btn[aria-expanded="true"],
:root[data-theme="dark"] .coverage-tag,
:root[data-theme="dark"] .nav-links a:hover,
:root[data-theme="dark"] .nav-links a.active,
:root[data-theme="dark"] .nav-mobile a:hover { color:var(--theme-ink); }
:root[data-theme="dark"] .microsoft-copy h3,
:root[data-theme="dark"] .plan-boundaries strong,
:root[data-theme="dark"] .support-calendar summary { color:var(--theme-ink); }
:root[data-theme="dark"] .contact-info-body,
:root[data-theme="dark"] .service-scope-note,
:root[data-theme="dark"] .microsoft-note,
:root[data-theme="dark"] .microsoft-list span,
:root[data-theme="dark"] .plan-boundaries,
:root[data-theme="dark"] .calendar-content { color:var(--text-mid); }
:root[data-theme="dark"] .leaflet-icon,
:root[data-theme="dark"] .microsoft-heading-icon { background:#f4f5ef; border-radius:12px; padding:5px; width:50px; height:50px; }
:root[data-theme="dark"] .microsoft-heading-icon img { display:block; width:40px; height:40px; }
:root[data-theme="dark"] .service-icon-wrap:not(.leaflet-icon) { background:#163e45; }
:root[data-theme="dark"] .service-icon-wrap svg,
:root[data-theme="dark"] .why-icon-wrap svg,
:root[data-theme="dark"] .trust-icon-wrap svg,
:root[data-theme="dark"] .tech-badge-icon svg,
:root[data-theme="dark"] .about-stat-icon svg,
:root[data-theme="dark"] .plans-note svg { stroke:var(--theme-ink); }
:root[data-theme="dark"] .form-input { background:#0c1c20; color:var(--text); border-color:#5d7c84; }
:root[data-theme="dark"] .form-input:focus { background:#10272d; border-color:var(--theme-focus); }
:root[data-theme="dark"] .form-input::placeholder { color:#a0b7bd; opacity:1; }
:root[data-theme="dark"] .form-error { color:#ffc4b8; background:#301b19; border-color:#d38d7c; }
:root[data-theme="dark"] .theme-control { background:var(--theme-control-bg); border-color:var(--theme-control-border); color:var(--text); }
:root[data-theme="dark"] select option { background:var(--surface); color:var(--text); }

:root[data-theme="dark"] .plan-features li svg { color:var(--theme-ink); }
@media (prefers-color-scheme:dark) { :root:not([data-theme="light"]) .plan-features li svg { color:var(--theme-ink); } }

/* recall-design.css */
/* Recall refinement: one hierarchy, the original palette and service illustrations. */
:root { --shadow:0 10px 28px rgba(9,30,34,.08); --shadow-sm:0 2px 10px rgba(9,30,34,.05); }
.section-wrap { padding:72px 0; }
.section-header { margin-bottom:34px; }
.section-intro { font-size:16px; line-height:1.7; }
.section-anchor { display:block; scroll-margin-top:90px; }
.btn { border-radius:12px; }
.btn-primary,.btn-solid,.nav-cta,.btn-ghost { box-shadow:none; }
.btn-primary:hover,.btn-solid:hover,.nav-cta:hover,.btn-ghost:hover { box-shadow:none; transform:translateY(-1px); }
.nav-cta { border-radius:12px; }
#mainNav { top:0; }
#mobileMenu .nav-cta { display:inline-flex; }
:root:not(.js-ready) #mainNav { background:#025d64; }
:root:not(.js-ready) #mainNav .nav-hamburger { display:none; }
.no-script-link { color:white !important; font-size:13px; text-decoration:underline; }
.hero-section { min-height:0; padding-top:108px; padding-bottom:64px; }
.hero-inner { gap:48px; }
.hero-logo-img { width:220px; max-width:100%; }
.hero-logo-wrap { margin-bottom:24px; }
.hero-title { font-size:clamp(36px,4.4vw,56px); line-height:1.1; }
.hero-sub { max-width:560px; font-size:17px; line-height:1.7; }
.hero-actions { gap:12px; }
.hero-copy > *,.hero-visual,.hero-blob { animation:none; }
.hero-blob-2,.hero-blob-3 { display:none; }
.hero-badge { background:transparent; border:0; padding:0; }
.hero-badge svg { color:rgba(255,255,255,.85); }
.hero-overview { padding:28px; border:1px solid rgba(255,255,255,.25); border-radius:20px; background:rgba(255,255,255,.06); }
.hero-overview-label { color:rgba(255,255,255,.8); font-size:12px; font-weight:600; margin-bottom:12px; }
.hero-overview-row { display:flex; gap:16px; align-items:center; padding:18px 0; border-top:1px solid rgba(255,255,255,.18); }
.hero-overview-row img { width:44px; height:44px; padding:4px; background:#f4f5ef; border-radius:9px; flex-shrink:0; }
.hero-overview-row strong { display:block; color:white; font-size:16px; margin-bottom:3px; }
.hero-overview-row span { display:block; color:rgba(255,255,255,.8); font-size:13px; line-height:1.6; }
.trust-item { padding-top:22px; padding-bottom:22px; }
.trust-val { font-size:19px; }
.trust-label { font-size:11px; }
/* Package cards: illustrated headers, aligned comparison rows and a clear action footer. */
:root {
 --plan-body:var(--surface); --plan-line:#d5e5e6; --plan-header:linear-gradient(135deg,#e6f4f4,#f3fafa);
 --plan-featured-header:linear-gradient(135deg,#d5eeee,#edf8f8); --plan-footer:#f5fafa;
 --plan-icon-bg:#edf7f7; --plan-neutral:#f0f3f4; --plan-halo:rgba(3,122,128,.055);
 --plan-card-shadow:0 6px 20px rgba(9,30,34,.05);
}
.plans-grid { gap:22px; align-items:stretch; }
.plan-card { position:relative; border-radius:22px; padding:0; gap:0; overflow:hidden; }
:root .plans-grid .plan-card { background:var(--plan-body); border:1px solid var(--plan-line); box-shadow:var(--plan-card-shadow); }
:root .plans-grid .plan-card.featured { border-color:var(--theme-ink); box-shadow:0 0 0 1px var(--theme-ink),var(--plan-card-shadow); }
.plan-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--teal-dark),var(--accent)); z-index:2; }
.plan-heading { position:relative; overflow:hidden; min-height:0; padding:32px 24px 24px; background:var(--plan-header); border-bottom:1px solid var(--plan-line); }
.plan-card.featured .plan-heading { background:var(--plan-featured-header); }
.plan-heading::before { content:''; position:absolute; right:-70px; top:-70px; width:200px; height:200px; border:30px solid var(--plan-halo); border-radius:50%; pointer-events:none; }
.plan-heading > * { position:relative; }
.plan-brand { display:flex; align-items:center; gap:14px; min-height:54px; margin-bottom:20px; }
.plan-package-icon { display:flex; align-items:center; justify-content:center; width:54px; height:54px; padding:7px; border-radius:14px; background:#f7f8f2; border:1px solid rgba(3,122,128,.12); flex-shrink:0; }
.plan-package-icon img { width:40px; height:40px; }
.plan-name { font-size:16px; letter-spacing:-.02em; }
.plan-badge { top:0; left:auto; right:16px; transform:none; border-radius:0 0 8px 8px; font-size:10px; padding:5px 10px; letter-spacing:.05em; box-shadow:none; z-index:3; }
.plan-purpose { color:var(--text); font-size:24px; font-weight:800; letter-spacing:-.03em; line-height:1.25; min-height:0; margin:0 0 12px; }
.plan-tagline { min-height:0; margin:0; font-size:14px; color:var(--text-mid); line-height:1.65; }
.plan-features { display:flex; flex-direction:column; gap:0; margin:0; padding:8px 24px; flex:1; }
.plan-features li { display:grid; grid-template-columns:28px minmax(0,1fr); align-content:start; gap:12px; min-height:0; padding:15px 0; border-top:0; border-bottom:1px solid var(--plan-line); font-size:14.5px; color:var(--text-mid); line-height:1.6; }
.plan-features li:last-child { border-bottom:0; }
.plan-detail-icon { display:flex; align-items:center; justify-content:center; width:28px; height:28px; margin-top:1px; border-radius:8px; background:var(--plan-icon-bg); color:var(--theme-ink); }
.plan-features li .plan-detail-icon svg { margin:0; }
.plan-feature-excluded .plan-detail-icon { background:var(--plan-neutral); }
.plan-feature-copy { min-width:0; }
.plan-feature-label { display:block; color:var(--text); font-size:11px; font-weight:700; letter-spacing:.025em; margin-bottom:4px; }
.plan-not-included { color:var(--text-muted); }
.plan-footer { padding:18px 24px 24px; background:var(--plan-footer); border-top:1px solid var(--plan-line); }
.plan-quote { color:var(--text-muted); font-size:12px; margin:0 0 12px; }
.plan-cta { min-height:48px; width:100%; margin:0; display:flex; justify-content:space-between; gap:10px; }
.plan-cta svg { flex-shrink:0; }
:root .plans-grid .plan-card:hover { transform:none; border-color:var(--theme-ink); box-shadow:var(--plan-card-shadow); }
:root .plans-grid .plan-card.featured:hover { box-shadow:0 0 0 1px var(--theme-ink),var(--plan-card-shadow); }
@supports (grid-template-rows:subgrid) {
 .plans-grid { grid-template-rows:repeat(6,auto); row-gap:0; }
 .plan-card { display:grid; grid-row:span 6; grid-template-rows:subgrid; row-gap:0; }
 .plan-features { display:grid; grid-row:span 4; grid-template-rows:subgrid; row-gap:0; }
}
.plan-help { margin-top:20px; color:var(--text-mid); font-size:14px; line-height:1.7; }
.plan-help a { font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.plan-boundaries { max-width:920px; font-size:13px; }
.support-calendar { border-radius:14px; }
.service-card { border-radius:18px; box-shadow:none; }
.service-card::before { display:none; }
:root .service-card:hover { transform:none; box-shadow:none; }
.leaflet-services .service-card { padding:24px; }
.service-body { font-size:14px; line-height:1.7; }
.tech-strip { padding:22px 0 44px; }
.tech-strip-title { margin-bottom:16px; font-size:11px; }
.tech-badges { gap:8px; }
.tech-badge { border-color:transparent; background:transparent; box-shadow:none; padding:6px 9px; }
.tech-badge span { font-size:12px; }
.tech-badge:hover { transform:none; box-shadow:none; border-color:transparent; }
.microsoft-layout { gap:48px; }
.about-layout { grid-template-columns:1.15fr 1fr; gap:56px; align-items:start; }
.about-body .section-title { margin-bottom:22px; }
.about-body p { font-size:16px; }
.about-body .btn { margin-top:12px; }
.recall-principles { background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:30px; }
.recall-principles > img { margin-bottom:20px; border-radius:10px; }
.recall-principles h3 { color:var(--text); font-size:21px; margin-bottom:18px; }
.recall-principles ul { list-style:none; }
.recall-principles li { border-top:1px solid var(--border); padding:16px 0; }
.recall-principles li:last-child { padding-bottom:0; }
.recall-principles strong,.recall-principles span { display:block; }
.recall-principles strong { color:var(--text); font-size:14px; margin-bottom:5px; }
.recall-principles span { color:var(--text-mid); font-size:14px; line-height:1.7; }
.step-num { box-shadow:none; }
.step-body { font-size:14px; }
.mot-banner { border-radius:20px; padding:40px; }
.mot-deliverables { padding:24px; border:1px solid rgba(255,255,255,.25); border-radius:16px; background:rgba(255,255,255,.06); }
.mot-deliverables > p { color:rgba(255,255,255,.8); font-size:12px; margin:0 0 12px; }
.mot-deliverables ul { list-style:none; }
.mot-deliverables li { padding:14px 0; border-top:1px solid rgba(255,255,255,.18); }
.mot-deliverables li:last-child { padding-bottom:0; }
.mot-deliverables strong,.mot-deliverables span { display:block; }
.mot-deliverables strong { color:white; font-size:15px; margin-bottom:4px; }
.mot-deliverables span { color:rgba(255,255,255,.8); font-size:13px; line-height:1.6; }
.reveal { opacity:1; transform:none; transition:none; }


.contact-detail { box-shadow:none; border-radius:16px; }
.contact-detail-icon { box-shadow:none; }
.contact-detail:hover { transform:none; box-shadow:none; }
.form-input { border-radius:12px; }
.cta-banner-inner { padding-top:56px; padding-bottom:56px; }
.footer-main { padding-top:40px; padding-bottom:28px; gap:32px; }
.footer-nav-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 24px; }
.footer-nav-label { grid-column:1/-1; }
.mobile-cta { display:none !important; padding:6px; bottom:calc(12px + env(safe-area-inset-bottom)); border-radius:18px; background:var(--footer-bg); box-shadow:0 4px 16px rgba(0,0,0,.16); }
.mobile-cta a { padding:9px 16px; border-radius:12px; }
@media (max-width:1100px) {
 .hero-visual { display:none; }
 .hero-inner { grid-template-columns:1fr; }
 .hero-section { padding-bottom:48px; }
 .hero-sub { max-width:640px; }
}
@media (max-width:860px) {
 .plans-grid { grid-template-columns:1fr; grid-template-rows:none; gap:20px; }
 .plan-card { display:flex; grid-row:auto; }
 .plan-features { display:flex; grid-row:auto; }
 .plan-purpose { min-height:0; }
 .about-layout { grid-template-columns:1fr; gap:28px; }
 .microsoft-layout { gap:32px; }
 .mot-banner { padding:32px; }
}
@media (max-width:760px) {
 .section-wrap { padding:52px 0; }
 .hero-section { padding-top:100px; padding-bottom:44px; }
 .hero-title { font-size:clamp(33px,8vw,44px); }
 .hero-sub { font-size:16px; }
 .hero-logo-img { width:190px; }
 .hero-actions { align-items:flex-start; }
 .hero-actions .btn { padding:12px 18px; }
 .tech-strip { padding:16px 0 32px; }
 .plan-card { padding:0; }
 .plan-heading { padding:30px 22px 22px; }
 .plan-brand { margin-bottom:16px; }
 .plan-purpose { font-size:25px; }
 .plan-features { margin:0; padding:6px 22px; }
 .plan-features li { grid-template-columns:28px minmax(0,1fr); padding:14px 0; }
 .plan-footer { padding:18px 22px 22px; }
 :root[data-contact-bar="visible"] .mobile-cta { display:flex !important; }
 .recall-principles { padding:24px; }
 footer { padding-bottom:calc(20px + env(safe-area-inset-bottom)); }
}
@media (max-width:540px) {
 .trust-item { padding:16px 8px; }
 .trust-val { font-size:16px; }
 .trust-label { font-size:10px; }
 .mot-banner { padding:26px 22px; gap:24px; }
 .mot-deliverables { padding:20px; }
 .hero-actions { flex-direction:column; gap:10px; }
 .hero-actions .btn { justify-content:center; width:100%; }
 .footer-nav-group { gap:10px 18px; }
}
@media (prefers-color-scheme:dark) {
 :root:not([data-theme="light"]) { --shadow:0 10px 28px rgba(0,0,0,.2); --shadow-sm:0 2px 10px rgba(0,0,0,.15); }
}
:root[data-theme="dark"] { --shadow:0 10px 28px rgba(0,0,0,.2); --shadow-sm:0 2px 10px rgba(0,0,0,.15); }

@media (prefers-color-scheme:dark) { :root:not([data-theme="light"]) { --plan-body:#0c1c20; --plan-line:#244048; --plan-header:linear-gradient(135deg,#10353c,#10282e); --plan-featured-header:linear-gradient(135deg,#13434a,#103238); --plan-footer:#0b242a; --plan-icon-bg:#12383f; --plan-neutral:#1a2c32; --plan-halo:rgba(123,218,221,.055); --plan-card-shadow:0 6px 20px rgba(0,0,0,.12); } }
:root[data-theme="dark"] { --plan-body:#0c1c20; --plan-line:#244048; --plan-header:linear-gradient(135deg,#10353c,#10282e); --plan-featured-header:linear-gradient(135deg,#13434a,#103238); --plan-footer:#0b242a; --plan-icon-bg:#12383f; --plan-neutral:#1a2c32; --plan-halo:rgba(123,218,221,.055); --plan-card-shadow:0 6px 20px rgba(0,0,0,.12); }

/* Final visual polish, 18 October 2026. */
/* A connected journey, with a vertical route on smaller screens. */
.journey-header { display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:end; margin-bottom:42px; }
.journey-header .section-title { margin-bottom:0; }
.journey-header .section-intro { margin:0; max-width:480px; }
.recall-journey { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; list-style:none; margin:0; padding:0; }
.journey-step { position:relative; min-width:0; }
.journey-step:not(:last-child)::before { content:''; position:absolute; left:60px; right:-22px; top:27px; height:1px; background:var(--border); }
.journey-step:not(:last-child)::after { content:''; position:absolute; right:-20px; top:24px; width:6px; height:6px; border-right:1px solid var(--theme-ink); border-top:1px solid var(--theme-ink); transform:rotate(45deg); }
.journey-marker { position:relative; width:56px; height:56px; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(145deg,#037a80,#02545c); border:1px solid rgba(255,255,255,.18); border-radius:17px; font-size:19px; font-weight:800; letter-spacing:-.03em; box-shadow:0 4px 12px rgba(3,122,128,.12); }
.journey-body { padding-top:22px; padding-right:12px; }
.journey-body .journey-stage { color:var(--theme-ink); font-size:11px; line-height:1.4; letter-spacing:.1em; text-transform:uppercase; font-weight:700; margin:0 0 8px; }
.journey-body h3 { color:var(--text); font-size:19px; font-weight:800; line-height:1.35; letter-spacing:-.02em; margin:0 0 10px; }
.journey-body p { color:var(--text-mid); font-size:14px; line-height:1.7; margin:0; }
@media (max-width:760px) {
 .journey-header { grid-template-columns:1fr; gap:16px; margin-bottom:30px; }
 .recall-journey { grid-template-columns:1fr; gap:0; }
 .journey-step { display:grid; grid-template-columns:48px minmax(0,1fr); gap:20px; padding-bottom:32px; }
 .journey-step:last-child { padding-bottom:0; }
 .journey-marker { width:48px; height:48px; border-radius:14px; font-size:17px; }
 .journey-body { padding:1px 0 0; }
 .journey-body h3 { font-size:18px; }
 .journey-body .journey-stage { margin-bottom:5px; }
 .journey-step:not(:last-child)::before { left:23px; top:56px; bottom:8px; right:auto; height:auto; width:1px; }
 .journey-step:not(:last-child)::after { display:none; }
}

/* A deliberately light report sheet on the teal banner, in either site appearance. */
.mot-banner-visual { min-width:0; }
.mot-preview { color-scheme:light; color:#163b40; background:#fcfcf6; border:1px solid #e2ebe5; border-radius:17px; padding:24px; box-shadow:0 12px 28px rgba(0,32,35,.15); }
.mot-preview-topline { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.mot-preview-example { display:inline-flex; padding:6px 10px; border:1px solid #b9d6d0; border-radius:6px; background:#e8f2eb; color:#235b51; font-size:10px; font-weight:800; line-height:1.3; text-transform:uppercase; letter-spacing:.07em; }
.mot-preview-icon { color:#16757a; flex-shrink:0; }
.mot-preview h3 { color:#163b40; font-size:23px; font-weight:800; letter-spacing:-.03em; line-height:1.2; margin:0 0 7px; }
.mot-preview .mot-preview-note { color:#52676a; font-size:12px; line-height:1.6; margin:0 0 18px; }
.mot-preview .mot-preview-caption { color:#52676a; font-size:10px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; line-height:1.5; margin:0 0 7px; }
.mot-preview-findings { list-style:none; padding:0; margin:0; }
.mot-preview-finding { padding:13px 0; border-top:1px solid #d8e3dd; }
.mot-preview-finding-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 10px; margin-bottom:5px; }
.mot-preview h4 { color:#163b40; font-size:13px; font-weight:800; line-height:1.5; margin:0; }
.mot-preview-status { display:inline-flex; align-items:center; gap:5px; padding:3px 7px; border-radius:5px; font-size:10px; line-height:1.4; font-weight:700; white-space:nowrap; }
.mot-preview-status i { display:block; width:6px; height:6px; border-radius:50%; background:currentColor; flex-shrink:0; }
.mot-preview-red { color:#9b342c; background:#f9e8e1; }
.mot-preview-amber { color:#795006; background:#f6edcf; }
.mot-preview-green { color:#27653d; background:#e5efe3; }
.mot-preview-finding > p { color:#52676a; font-size:12px; line-height:1.6; margin:0; }
.mot-preview-finding .mot-preview-action { color:#2d5555; margin-top:5px; }
.mot-preview-action strong { color:#163b40; font-size:10px; font-weight:800; white-space:nowrap; margin-right:6px; }
.mot-preview .mot-preview-footnote { color:#52676a; font-size:10px; font-weight:600; letter-spacing:.02em; line-height:1.5; padding-top:11px; border-top:1px solid #d8e3dd; margin:0; }
@media (max-width:540px) {
 .mot-preview { padding:20px; border-radius:14px; }
 .mot-preview h3 { font-size:22px; }
}
@media (forced-colors:active) {
 .mot-preview-status { border:1px solid currentColor; }
 .mot-preview { border:1px solid CanvasText; }
}

/* Append after the existing design stylesheet. The hero keeps its teal in either theme. */
.hero-section.hero-service { background:#025d64; }
.hero-service .hero-bg { background:linear-gradient(130deg,#01454a 0%,#025d64 54%,#037a80 100%); }
.hero-service .hero-grid { opacity:.36; }
.hero-service .hero-blob { display:none; }
.hero-service .hero-inner { grid-template-columns:minmax(0,1.15fr) minmax(340px,1fr); gap:40px; }
.hero-service .hero-visual.hero-connected { display:flex; align-items:center; gap:0; margin:0; min-width:0; }
.hero-service .hero-connected-image { display:block; width:100%; height:auto; max-width:560px; }
.hero-service .hero-connected-caption { margin:0; padding:0 20px 8px; text-align:center; }
.hero-service .hero-connected-kicker { display:block; color:#e8faf8; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.hero-service .hero-connected-line { display:block; margin-top:7px; color:white; font-size:15px; line-height:1.5; font-weight:600; }
@media (max-width:1100px) {
  .hero-service .hero-inner { grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:24px; }
  .hero-service .hero-visual.hero-connected { display:flex; }
  .hero-service .hero-connected-caption { padding-right:0; padding-left:0; }
  .hero-service .hero-connected-line { font-size:13px; }
}
@media (max-width:860px) {
  .hero-service .hero-inner { grid-template-columns:minmax(0,1fr); gap:22px; }
  .hero-service .hero-visual.hero-connected { max-width:450px; width:100%; margin:0 auto; }
  .hero-service .hero-connected-image { max-width:410px; }
  .hero-service .hero-connected-caption { padding:0 0 4px; }
}
@media (max-width:540px) {
  .hero-service .hero-inner { gap:18px; }
  .hero-service .hero-visual.hero-connected { max-width:340px; }
  .hero-service .hero-connected-image { width:100%; }
  .hero-service .hero-connected-kicker { font-size:10px; letter-spacing:.055em; }
  .hero-service .hero-connected-line { margin-top:5px; font-size:13px; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Keep the small MOT banner label readable against its teal background. */
.mot-banner-content .section-label { color:#a6edeb; }

/* recall-visual.css */
/* Reviewed visual additions and preflight refinements, 19 October 2026. */
.about-layout { align-items:center; gap:56px; }
.about-values { list-style:none; display:grid; gap:15px; margin:24px 0; }
.about-values li { border-left:3px solid var(--theme-ink,var(--teal)); padding-left:16px; }
.about-values strong,.about-values span { display:block; }
.about-values strong { font-size:14px; color:var(--text); }
.about-values span { font-size:14px; color:var(--text-mid); }
.about-person { min-width:0; overflow:hidden; border-radius:22px; background:var(--surface); border:1px solid var(--border); }
.about-person > img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.about-person figcaption { padding:23px 26px; }
.persona-label { display:flex; gap:12px; flex-wrap:wrap; align-items:center; font-size:20px; font-weight:800; color:var(--text); }
.persona-label span { font-size:10px; letter-spacing:.07em; text-transform:uppercase; border:1px solid var(--border); padding:4px 8px; border-radius:6px; color:var(--text-mid); }
.about-person figcaption > p { color:var(--text-mid); font-weight:400; font-size:14px; line-height:1.7; margin:0; }
.service-photo-caption h3 { font-size:20px; line-height:1.4; color:var(--text); margin:0 0 10px; }
.about-person small { display:block; font-size:12px; line-height:1.6; color:var(--text-mid); }
.microsoft-layout { align-items:center; }
.microsoft-visual { min-width:0; padding:18px 20px 10px; text-align:center; }
.microsoft-visual img { width:min(100%,460px); height:auto; margin:0 auto; }
.microsoft-visual figcaption { font-size:13px; font-weight:600; color:var(--text-mid); margin-top:10px; }
.microsoft-detail-strip { grid-column:1/-1; border-top:1px solid var(--border); padding-top:28px; }
.microsoft-detail-strip .microsoft-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:16px 0; }
.microsoft-detail-strip .microsoft-list li { padding:0; border:0; }
.recommendations-section { background:var(--surface); border-block:1px solid var(--border); }
.recommendation-heading { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:48px; }
.recommendation-heading .section-title { margin-bottom:0; max-width:500px; }
.recommendation-heading .section-intro { margin:0; }
.recommendation-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.recommendation-card { display:flex; flex-direction:column; padding:30px; border:1px solid var(--border); border-radius:18px; background:var(--bg); min-width:0; }
.quotation-mark { font-family:Georgia,serif; font-size:68px; height:44px; line-height:1; color:var(--theme-ink,var(--teal)); }
.recommendation-card blockquote { color:var(--text); font-size:clamp(19px,1.7vw,23px); line-height:1.55; font-weight:600; margin:14px 0 18px; min-height:140px; }
.recommendation-summary { color:var(--text-mid); font-size:14px; line-height:1.7; margin:0 0 24px; }
.recommendation-author { display:flex; gap:15px; align-items:center; margin-top:auto; padding-top:20px; border-top:1px solid var(--border); }
.recommendation-author img { width:64px; height:64px; object-fit:cover; border-radius:50%; flex-shrink:0; }
.recommendation-author h3 { color:var(--text); font-size:16px; }
.recommendation-author p { color:var(--text-mid); font-size:13px; margin:2px 0; }
.recommendation-author span { display:block; font-size:11px; color:var(--text-mid); }
.recommendation-source { display:inline-block; align-self:flex-start; font-size:12px; margin-top:20px; text-decoration:underline; text-underline-offset:3px; }
.recommendation-preview-note { font-size:12px; line-height:1.7; color:var(--text-mid); margin-top:22px; max-width:780px; }
footer { background:var(--surface); color:var(--text-mid); border-top:1px solid var(--border); --theme-focus:var(--theme-ink); }
footer .footer-brand-name { color:var(--text); }
footer .footer-brand-tagline,footer .footer-nav-label { color:var(--text-mid); }
:root footer .footer-nav-group a,:root footer .footer-bottom a,:root footer .footer-social a,:root footer .footer-platform { color:var(--text-mid); }
:root footer a:hover { color:var(--theme-ink,var(--teal)); }
footer .footer-social a { background:var(--bg); border:1px solid var(--border); }
.footer-programme { max-width:1180px; margin:0 auto; padding:24px; display:flex; justify-content:space-between; align-items:center; gap:32px; border-top:1px solid var(--border); }
.footer-local { font-size:14px; font-weight:700; color:var(--text); }
.footer-local-detail { font-size:12px; color:var(--text-mid); margin-top:5px; }
.csp-preview { width:264px; max-width:100%; flex-shrink:0; }
.csp-plaque { background:#fff; border:1px solid #dce4e5; border-radius:9px; padding:18px; }
.csp-plaque img { width:100%; height:auto; }
.csp-preview figcaption { font-size:10px; text-align:center; margin-top:8px; color:var(--text-mid); }
:root footer .footer-bottom { border-color:var(--border); color:var(--text-mid); }
:root footer .footer-social a:hover { color:#fff; background:#037a80; border-color:#037a80; }
.footer-badge { background:var(--bg); color:var(--text-mid); border:1px solid var(--border); }

#submitBtn:disabled { cursor:default; opacity:.7; }
@media(max-width:900px) { .about-layout { gap:30px; } .recommendation-heading { grid-template-columns:1fr; gap:16px; } .microsoft-detail-strip .microsoft-list { grid-template-columns:1fr 1fr; } }
@media(max-width:760px) {   .about-layout,.recommendation-grid { grid-template-columns:1fr; } .about-person { max-width:600px; } .recommendation-card { padding:24px; } .recommendation-card blockquote { min-height:0; } .recommendation-heading { gap:14px; } .microsoft-visual { padding:0; } .microsoft-visual img { max-width:380px; } .microsoft-detail-strip .microsoft-list { grid-template-columns:1fr; gap:18px; } .footer-programme { flex-direction:column; align-items:flex-start; gap:24px; } .csp-preview { width:250px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Preflight improvements, 19 October 2026. */
.skip-link { position:fixed; left:16px; top:8px; z-index:1200; padding:12px 18px; border:2px solid #037a80; border-radius:8px; background:#fff; color:#025d64; font-weight:700; transform:translateY(-180px); }
.skip-link:focus { transform:translateY(0); outline:3px solid #025d64; outline-offset:3px; }
#main-content { scroll-margin-top:calc(var(--nav-h,72px) + 16px); }
.hero-logo-img { height:auto; }
.plan-term-note { margin:16px 0; color:var(--text-mid); font-size:13px; line-height:1.7; }
.plan-term-note a { text-decoration:underline; text-underline-offset:3px; }
.mot-scope-note { max-width:780px; margin:0 auto 40px; padding:0 24px; color:var(--text-mid); font-size:14px; line-height:1.7; }
.service-photo-caption small { margin-top:12px; }

/* Shared functional and accessibility rules. */
[hidden] { display:none !important; }
.captcha-cancel { margin-top:10px; }
.table-scroll { max-width:100%; overflow-x:auto; margin:16px 0 22px; }
.table-scroll:focus-visible { outline:3px solid var(--theme-focus); outline-offset:3px; }
.table-scroll table.legal-table { margin:0; min-width:580px; }
.table-scroll table.legal-table td:first-child { white-space:normal; }
.table-scroll-hint { display:none; }
@media (max-width:600px) {
 .table-scroll-hint { display:block; margin:12px 0 6px; font-size:13px; color:var(--text-mid); }
}
