/* Neuzen detailing pass — informed by HSBC's navigation, link grammar and
   typographic restraint, retaining Neuzen's colour, typeface and composition. */

/* Primary navigation and institutional utilities have distinct, quiet weights. */
.theme-corporate .nav { column-gap:34px; }
.theme-corporate .nav-left { gap:29px; align-self:stretch; }
.theme-corporate .nav-left > li { display:flex; align-items:center; }
.theme-corporate .nav a:not(.logo),
.theme-corporate .nav button { font-size:14px; font-weight:400; letter-spacing:0; }
.theme-corporate .nav-left > li > a,
.theme-corporate .nav-left > li > button {
  min-height:91px; display:flex; align-items:center; position:relative;
  padding:0; text-decoration:none!important;
}
.theme-corporate .nav-left > li > a::before {
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .18s ease;
}
.theme-corporate .nav-left > li > a.active::before,
.theme-corporate .nav-left > li > a:hover::before { transform:scaleX(1); }
.theme-corporate .nav-left > li > a:hover,
.theme-corporate .nav-left > li > button:hover { color:var(--accent); }
.theme-corporate .nav-right { border-left:1px solid #d7dee5; padding-left:27px; }
.theme-corporate .nav-right > .has-menu > button {
  border:0;background:transparent;padding:10px 0;min-height:44px;
  font-size:14px;font-weight:600;color:var(--ink);
}
.theme-corporate .has-menu > button::after {
  width:7px;height:7px;flex:none;margin-left:12px;vertical-align:3px;
  transition:transform .18s ease;
}
.theme-corporate .has-menu > button[aria-expanded=true]::after { transform:rotate(225deg); }
.theme-corporate .nav .flyout {
  top:calc(100% + 1px);padding:16px 20px;border:1px solid #e0e5e9;
  border-top:3px solid var(--accent);box-shadow:0 12px 22px #132b4010;
}
.theme-corporate .nav .flyout a {
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding:12px 9px;min-height:48px;border-radius:0;line-height:1.5;font-size:13px;
  border-bottom:1px solid #edf0f2;transition:background .16s,color .16s;
}
.theme-corporate .nav .flyout a::after {
  content:'';width:6px;height:6px;border-top:1px solid currentColor;
  border-right:1px solid currentColor;transform:rotate(45deg);flex:none;margin-right:3px;
}
.theme-corporate .nav .flyout a:hover { background:#f5f8fb;color:var(--accent); }
.theme-corporate .nav .flyout a.active { text-decoration:none!important;color:var(--accent);font-weight:600; }

/* Keep the familiar left-aligned hero, with less compressed type and clearer image detail. */
.theme-corporate.homepage .hero::after {
  background:linear-gradient(90deg,rgba(7,24,43,.87) 0%,rgba(7,24,43,.77) 29%,rgba(7,24,43,.47) 58%,rgba(7,24,43,.12) 100%);
}
.theme-corporate.homepage .hero-statement {
  font-weight:400;letter-spacing:-.028em;line-height:1.12;
  font-size:clamp(49px,4.7vw,68px);
}
.theme-corporate.homepage .hero-brand { font-weight:400;letter-spacing:.035em;font-size:14px;margin-bottom:21px; }
.theme-corporate.homepage .eyebrow { font-size:10px;font-weight:500;letter-spacing:2.1px;color:#d6e7f6; }
.theme-corporate.homepage .hero-sub { font-size:14px;line-height:1.7;margin-top:27px;color:#f0f4f7; }
.theme-corporate.homepage .hero-sub p+p {
  border-left:2px solid #7fc7ed;padding-left:12px;margin-top:11px;
  font-size:12px;color:#dce8f1;
}
.theme-corporate .btn { font-size:13px;font-weight:500;min-height:52px;transition:background .18s,border-color .18s,box-shadow .18s; }
.theme-corporate.homepage .btn-hero { min-width:176px;padding-inline:25px; }
.theme-corporate.homepage .btn-hero::after {
  content:'';width:8px;height:8px;border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:-4px 2px 0 13px;
}
.theme-corporate.homepage .btn-hero:hover { background:#0753b1;border-color:#0753b1;box-shadow:0 0 0 1px #ffffff24; }
.theme-corporate .btn[href^='https://']::after { content:'↗';border:0;transform:none; }
.theme-corporate.homepage .dots { gap:4px; }
.theme-corporate.homepage .dot { width:44px;height:44px; }
.theme-corporate.homepage .dot::after { top:21px;left:7px;right:7px;transition:height .16s,background .16s; }
.theme-corporate.homepage .dot.on::after { height:3px; }
.theme-corporate.homepage .dot:hover::after { background:#fff; }

/* A consistent forward chevron identifies same-site journeys. */
.theme-corporate.homepage .quick-links li { position:relative; }
.theme-corporate.homepage .quick-links li::after {
  content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .2s ease;pointer-events:none;
}
.theme-corporate.homepage .quick-links li:hover::after,
.theme-corporate.homepage .quick-links li:focus-within::after { transform:scaleX(1); }
.theme-corporate.homepage .quick-links a { font-size:14px;font-weight:400;min-height:40px;transition:color .18s; }
.theme-corporate.homepage .quick-links a:hover { background:transparent; }
.theme-corporate.homepage .quick-links a::after,
.theme-corporate.inner-page .btn-list[href^='/']::after {
  content:'';width:7px;height:7px;border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;transform:rotate(45deg);flex:none;
  padding:0;margin-right:3px;transition:translate .18s ease;
}
.theme-corporate.homepage .quick-links a:hover::after,
.theme-corporate.inner-page .btn-list[href^='/']:hover::after { translate:3px 0; }

/* Align small information with the same type scale as the main experience. */
.theme-corporate.homepage .contact-sec { background:#f7f8fa; }
.theme-corporate.homepage .contact-intro .sec-title { font-size:11px;letter-spacing:1.6px; }
.theme-corporate.homepage .contact-intro .card-title { font-weight:400;line-height:1.2;letter-spacing:-.023em; }
.theme-corporate .prose { font-size:15px;line-height:1.85; }
.theme-corporate.homepage .contact-intro .prose { max-width:490px; }
.theme-corporate.homepage .contact-actions .btn { padding:15px 22px;border-color:#849aad;color:#183d60; }
.theme-corporate.homepage .contact-sec .card-img { filter:saturate(.86);object-position:56% center; }
.theme-corporate.homepage .contact-details,
.theme-corporate.homepage .hours { padding-top:32px; }
.theme-corporate.homepage .contact-details p:first-child { font-size:17px;line-height:1.6; }
.theme-corporate.homepage .contact-details p:nth-child(2) { font-size:14px;line-height:1.85; }
.theme-corporate.homepage .contact-details p:nth-child(n+3) { margin-bottom:8px; }
.theme-corporate.homepage .contact-details a {
  display:inline-flex;align-items:center;min-height:44px;font-size:17px;
  text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:#9dabb8;text-underline-offset:6px;
}
.theme-corporate.homepage .contact-details a:hover { color:var(--accent);text-decoration-color:var(--accent); }
.theme-corporate .hours-title { font-size:17px;font-weight:500; }
.theme-corporate .today { font-size:11px;text-transform:none;letter-spacing:0; }
.theme-corporate .week li { font-size:13px;padding:9px 0; }
.theme-corporate .week .hrs { font-variant-numeric:tabular-nums; }
.theme-corporate .foot { background:#10283e; }
.theme-corporate .foot-lead { font-size:21px;line-height:1.55;letter-spacing:-.01em; }
.theme-corporate .foot-links { gap:6px; }
.theme-corporate .foot-links a { display:inline-block;padding-block:7px;font-size:13px; }
.theme-corporate .foot-contact { font-size:13px;line-height:1.85; }
.theme-corporate .foot-contact a { text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:#8293a1;text-underline-offset:5px; }
.theme-corporate .foot-contact a:hover { text-decoration-color:#fff; }
.theme-corporate .reg { font-size:10px;line-height:1.8;letter-spacing:.65px;color:#c7d3de; }

/* Better long-form reading, document rows and visible keyboard focus. */
.theme-corporate.inner-page .sec > .wrap > .sec-title { font-weight:400;letter-spacing:-.026em;line-height:1.2; }
.theme-corporate.inner-page .card-title { font-weight:400;letter-spacing:-.015em; }
.theme-corporate.inner-page .prose { max-width:760px; }
.theme-corporate.inner-page .prose a { text-decoration-color:#87a4c3; }
.theme-corporate.inner-page .prose a:hover { text-decoration-color:var(--accent); }
.theme-corporate.inner-page .btn-list { font-weight:400;font-size:15px;line-height:1.65;transition:background .18s,color .18s;padding:22px 12px 22px 0; }
.theme-corporate.inner-page .btn-list:hover { background:#f5f8fb; }
.theme-corporate.inner-page .downloads a { font-size:15px;transition:background .18s; }
.theme-corporate.inner-page .downloads a:hover { background:#f5f8fb; }
.theme-corporate.inner-page .faq { padding:25px 0; }
.theme-corporate.inner-page .faq summary { font-size:18px;font-weight:400; }
.theme-corporate.inner-page .faq summary:hover { color:var(--accent); }
.theme-corporate.inner-page .site-form input:focus,
.theme-corporate.inner-page .site-form textarea:focus { background:#fff;border-color:var(--accent); }
.theme-corporate :is(a,button,summary,input,textarea):focus-visible { outline:2px solid #1471cb;outline-offset:5px; }
.theme-corporate .hero :is(a,button):focus-visible { outline-color:#fff; }
.theme-corporate .foot a:focus-visible { outline-color:#8dcbef; }

@media(max-width:1100px){
 .theme-corporate .nav { gap:25px; }
 .theme-corporate .nav-left { gap:22px; }
 .theme-corporate .nav a:not(.logo),.theme-corporate .nav button { font-size:13px; }
 .theme-corporate .nav-right { padding-left:21px; }
 .theme-corporate.homepage .hero-statement { font-size:57px; }
 .theme-corporate.homepage .quick-links a { font-size:13px; }
}
@media(max-width:900px){
 .theme-corporate .nav-left > li > a,.theme-corporate .nav-left > li > button { min-height:81px; }
 .theme-corporate.homepage .hero-statement { font-size:54px; }
 .theme-corporate.homepage .hero::after { background:linear-gradient(90deg,rgba(7,24,43,.86),rgba(7,24,43,.51)); }
 .theme-corporate.homepage .quick-links a { min-height:42px; }
 .theme-corporate.homepage .hero-sub { font-size:13px; }
}
@media(max-width:600px){
 .theme-corporate .nav { padding:15px 0 0;min-height:113px;gap:0 20px; }
 .theme-corporate .nav .logo { margin-bottom:8px; }
 .theme-corporate .nav-left > li > a,.theme-corporate .nav-left > li > button { min-height:44px;font-size:12px; }
 .theme-corporate .nav-right { padding-left:20px; }
 .theme-corporate .nav-right > .has-menu > button { min-height:44px;font-size:12px;padding:7px 0; }
 .theme-corporate .nav .flyout { top:var(--nav-bottom,113px);padding:10px 15px;max-height:calc(100dvh - var(--nav-bottom,113px) - 14px); }
 .theme-corporate .nav .flyout a { font-size:14px;min-height:47px;padding:11px 8px; }
 .theme-corporate.homepage .hero-statement { font-size:clamp(31px,9.9vw,51px);line-height:1.15;letter-spacing:-.032em; }
 .theme-corporate.homepage .hero-inner { padding-top:40px;padding-bottom:67px; }
 .theme-corporate.homepage .hero { min-height:573px; }
 .theme-corporate.homepage .hero::after { background:linear-gradient(90deg,rgba(7,24,43,.86),rgba(7,24,43,.68)); }
 .theme-corporate.homepage .hero-brand { font-size:13px;margin-bottom:19px; }
 .theme-corporate.homepage .hero-sub { font-size:13px;line-height:1.75; }
 .theme-corporate.homepage .hero-sub p+p { font-size:11px; }
 .theme-corporate.homepage .btn-hero { min-width:166px; }
 .theme-corporate.homepage .quick-links a { min-height:44px;font-size:13px; }
 .theme-corporate.homepage .contact-intro .sec-title { font-size:11px; }
 .theme-corporate.homepage .contact-intro .card-title { font-size:33px;line-height:1.2; }
 .theme-corporate .prose { font-size:14px;line-height:1.9; }
 .theme-corporate.homepage .contact-details a { min-height:44px;font-size:17px; }
 .theme-corporate .foot-links a { min-height:44px;display:flex;align-items:center;padding-block:7px;font-size:12px; }
 .theme-corporate .reg { font-size:9px;letter-spacing:.45px; }
 .theme-corporate.inner-page .faq summary { font-size:16px; }
 .theme-corporate.inner-page .btn-list { font-size:14px; }
}
@media(prefers-reduced-motion:reduce){
 .theme-corporate *, .theme-corporate *::before, .theme-corporate *::after { transition:none!important;animation:none!important; }
}
.theme-corporate.homepage .contact-intro .card-title,
.theme-corporate.inner-page .sec-title,
.theme-corporate .foot-lead { text-wrap:balance; }

/* Brand wordmark supplied by Neuzen, vector-derived from the original artwork.
   It replaces the typeset name in the header; the circular mark stays as the
   favicon, where a two-line wordmark would be illegible. */
/* Header brand: the Neuzen wordmark on its own.
   The supplied artwork is a STACKED lockup (roughly 1.9 wide to 1 tall), so
   matching the header bar's height makes it far narrower than the typeset name
   it replaced. It is sized by the width it needs to hold the header, and the
   bar is given the room to carry it. */
.nav { min-height: 112px; }
.nav .logo { gap: 0; align-items: center; }
.brand-wordmark { height: 64px; width: auto; display: block; flex: none; }
@media (max-width: 900px) {
  .nav { min-height: 88px; }
  .brand-wordmark { height: 48px; }
}
@media (max-width: 380px) {
  .nav { min-height: 78px; }
  .brand-wordmark { height: 40px; }
}


/* The contact section's photograph was removed. Its grid reserved a whole
   right-hand column for it, so the remaining blocks are re-laid: the intro and
   the WhatsApp action run full width, and the address sits beside the opening
   hours exactly as before. */
.contact-sec > .wrap {
  grid-template-columns: 1fr 1fr;
  grid-template-areas:
    'intro   intro'
    'actions actions'
    'details hours';
}
.contact-intro .prose { max-width: 62ch; }
@media (max-width: 900px) {
  .contact-sec > .wrap {
    grid-template-columns: 1fr;
    grid-template-areas: 'intro' 'actions' 'details' 'hours';
  }
}

/* base.css already sets scroll-padding-top (110px, 135px under 600px) so
   #fragment targets clear the sticky header. Adding scroll-margin-top as well
   would stack with it and overshoot, so it is deliberately not set here.

   base.css does set scroll-behavior:smooth unconditionally, which ignores a
   reduced-motion preference. Honour it. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* ---- user-experience pass ------------------------------------------------
   Each rule below fixes a defect found by measurement, not preference. */

/* The skip link now moves focus to <main>; suppress the browser's ring around
   the whole content region, which is not itself a control. */
#main:focus { outline: none; }

/* Touch target: the Investors button was set to 38px in the mobile block above
   while its sibling rule gave the left-hand items 44px. Corrected there. */

/* One-line FAQ questions were a 25.6px target; the surrounding 26px of padding
   belonged to the non-clickable wrapper, so it did not help the finger. */
.faq summary { min-height: 44px; display: flex; align-items: center; }

/* iOS Safari zooms the page whenever a focused field is under 16px. Every field
   was 13px, so tapping any of them jerked the layout. Only lift it on touch
   screens, so the desktop form keeps its intended scale. */
@media (max-width: 900px) {
  .site-form input:not([type=file]):not([type=hidden]),
  .site-form textarea { font-size: 16px; }
}

/* Field borders were 1.28:1 against their fill, below the 3:1 minimum for the
   boundary of a control, so the inputs read as flat grey blocks. */
.site-form input:not([type=file]):not([type=hidden]),
.site-form textarea { border-color: #7d8b99; }

/* The ≤380px header rule never applied: a (max-width:600px) rule carrying a
   .theme-corporate prefix outranked it. Match that specificity so the shortest
   screens actually get the shorter header. */
@media (max-width: 380px) {
  .theme-corporate .nav { min-height: 78px; }
}

/* The download link now sits outside the PDF embed, so give it room. */
.pdfbox .pdflinks { margin-top: 18px; }

/* Footer phone and e-mail were a 17px tap target — below even the 24px
   minimum. Grow the hit area with transparent padding so the text itself,
   and the footer's layout, stay where they are. */
.foot-contact a { display: inline-block; padding-block: 14px; }
.foot-contact p { margin-bottom: 4px; }
