/* Header. Single source of truth, no appended overrides. */
.sol-head{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--sol-bg);border-bottom:1px solid var(--sol-line)}
.sol-head__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sol-space-lg);height:var(--sol-header-h)}

/* Brand */
.sol-brand{display:flex;align-items:center;flex:0 0 auto;height:100%}

/* Nav. Every item is the same box so baselines line up. */
.sol-nav{display:flex;align-items:center;gap:var(--sol-space-lg);flex:1 1 auto;justify-content:center;height:100%}
.sol-nav>*{display:flex;align-items:center;height:100%}
.sol-nav a{position:relative;display:flex;align-items:center;height:100%;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--sol-ink)}
.sol-nav a::after{content:'';position:absolute;left:0;right:0;bottom:calc(50% - 0.95em);height:1px;background:var(--sol-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--sol-dur-fast) var(--sol-ease)}
.sol-nav a:hover::after,.sol-nav a[aria-current]::after{transform:scaleX(1)}

/* Dropdown */
.sol-has-sub{position:static}
.sol-subnav{position:absolute;top:100%;left:0;right:0;background:var(--sol-bg);border-bottom:1px solid var(--sol-line);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity var(--sol-dur-fast) var(--sol-ease),transform var(--sol-dur-fast) var(--sol-ease),visibility var(--sol-dur-fast)}
.sol-has-sub:hover .sol-subnav,.sol-has-sub:focus-within .sol-subnav{opacity:1;visibility:visible;transform:none}
.sol-subnav__grid{display:flex;gap:var(--sol-space-xl);padding-block:var(--sol-space-lg)}
.sol-subnav a{height:auto;font-size:13px;letter-spacing:.04em;text-transform:none;font-weight:400;color:var(--sol-ink)}
.sol-subnav a::after{bottom:-2px}

/* Tools */
.sol-tools{display:flex;align-items:center;gap:14px;flex:0 0 auto;height:100%}
.sol-tool{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;background:none;border:0;padding:0;cursor:pointer;color:var(--sol-ink)}
.sol-tool svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.sol-count{position:absolute;top:2px;right:1px;min-width:16px;height:16px;border-radius:999px;background:var(--sol-signal);color:var(--sol-bg);font-size:10px;font-weight:500;line-height:16px;text-align:center;padding-inline:4px}
.sol-burger{display:none}

@media (max-width:1080px){
  .sol-nav{display:none}
  .sol-burger{display:inline-flex}
}

/* Mobile drawer */
.sol-drawer{position:fixed;inset:0;z-index:150;visibility:hidden;pointer-events:none}
.sol-drawer.is-open{visibility:visible;pointer-events:auto}
.sol-drawer__scrim{position:absolute;inset:0;background:rgba(26,21,32,.42);opacity:0;transition:opacity var(--sol-dur) var(--sol-ease)}
.sol-drawer.is-open .sol-drawer__scrim{opacity:1}
.sol-drawer__panel{position:absolute;top:0;right:0;bottom:0;width:min(420px,88vw);background:var(--sol-bg);box-shadow:-24px 0 60px rgba(42,11,104,.14);transform:translateX(100%);transition:transform var(--sol-dur) var(--sol-ease);display:flex;flex-direction:column;overflow-y:auto;padding:var(--sol-space-lg) var(--sol-space-lg) var(--sol-space-xl)}
.sol-drawer.is-open .sol-drawer__panel{transform:none}
.sol-drawer__top{display:flex;justify-content:flex-end;margin-bottom:var(--sol-space-lg)}
.sol-drawer__nav{display:flex;flex-direction:column}
.sol-drawer__nav>li{border-bottom:1px solid var(--sol-line)}
.sol-drawer__nav>li>a{display:block;font-family:var(--sol-font-display);font-size:30px;font-weight:300;line-height:1.2;padding-block:14px}
.sol-drawer__sub{padding:0 0 16px 2px;display:flex;flex-direction:column;gap:9px}
.sol-drawer__sub a{font-size:14px;color:var(--sol-muted)}

.sol-subnav__grid{display:flex;gap:var(--sol-space-xxl);padding-block:var(--sol-space-lg) var(--sol-space-xl)}
.sol-subnav__col{display:flex;flex-direction:column;gap:11px}
.sol-subnav__col .sol-subnav__h{display:block;font-family:var(--sol-font-ui);font-size:11px;font-weight:500;letter-spacing:var(--sol-track);text-transform:uppercase;color:var(--sol-lavender);margin-bottom:4px}

/* Utility bar */
.sol-utility{position:fixed;top:0;left:0;right:0;z-index:101;background:var(--sol-accent);color:var(--sol-bg);height:var(--sol-utility-h);display:flex;align-items:center;transition:transform var(--sol-dur) var(--sol-ease)}
.sol-utility.is-up{transform:translateY(-100%)}
.sol-utility__in{display:flex;align-items:center;justify-content:space-between;gap:var(--sol-space-md);width:100%}
.sol-utility__msg{font-size:11.5px;letter-spacing:.08em}
.sol-utility__wa{font-size:11px;font-weight:500;letter-spacing:var(--sol-track);text-transform:uppercase;border-bottom:1px solid rgba(247,244,239,.4);padding-bottom:2px;white-space:nowrap;transition:border-color var(--sol-dur-fast) var(--sol-ease)}
.sol-utility__wa:hover{border-bottom-color:var(--sol-bg)}
@media (max-width:620px){.sol-utility__msg{font-size:10.5px}.sol-utility__wa{display:none}.sol-utility__in{justify-content:center}}

/* Header sits below the utility bar and compresses on scroll */
.sol-head{top:var(--sol-utility-h);transition:top var(--sol-dur) var(--sol-ease),box-shadow var(--sol-dur) var(--sol-ease),background var(--sol-dur) var(--sol-ease)}
.sol-head.is-solid{top:0;background:rgba(247,244,239,.97);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);box-shadow:0 1px 24px rgba(42,11,104,.07)}
.sol-head__inner{height:var(--sol-header-h)}

/* Brand */

/* Sliding nav indicator */
.sol-nav{position:relative}
.sol-nav__ink{position:absolute;bottom:calc(50% - 1.05em);height:1px;background:var(--sol-accent);width:0;left:0;opacity:0;transform-origin:left;transition:left .42s var(--sol-ease),width .42s var(--sol-ease),opacity .28s var(--sol-ease)}
.sol-nav.has-ink .sol-nav__ink{opacity:1}
.sol-nav a::after{display:none}
.sol-nav a{transition:color var(--sol-dur-fast) var(--sol-ease)}
.sol-nav a:hover{color:var(--sol-lavender)}
.sol-nav a[aria-current]{color:var(--sol-accent)}

/* Tool icons */
.sol-tool{transition:transform var(--sol-dur-fast) var(--sol-ease),color var(--sol-dur-fast) var(--sol-ease);border-radius:999px}
.sol-tool:hover{transform:translateY(-2px);color:var(--sol-accent)}
.sol-tool svg{transition:stroke-width var(--sol-dur-fast) var(--sol-ease)}
.sol-tool:hover svg{stroke-width:1.7}
.sol-count{transition:transform var(--sol-dur-fast) var(--sol-ease)}
.sol-count.is-pop{animation:sol-pop .5s var(--sol-ease)}
@keyframes sol-pop{0%{transform:scale(1)}40%{transform:scale(1.45)}100%{transform:scale(1)}}

/* Dropdown, items stagger in */
.sol-subnav{box-shadow:0 20px 44px rgba(42,11,104,.09)}
.sol-subnav a{opacity:0;transform:translateY(6px);transition:opacity .34s var(--sol-ease),transform .34s var(--sol-ease),color var(--sol-dur-fast) var(--sol-ease)}
.sol-has-sub:hover .sol-subnav a,.sol-has-sub:focus-within .sol-subnav a{opacity:1;transform:none}
.sol-has-sub:hover .sol-subnav a:nth-child(2),.sol-has-sub:focus-within .sol-subnav a:nth-child(2){transition-delay:0.03s}
.sol-has-sub:hover .sol-subnav a:nth-child(3),.sol-has-sub:focus-within .sol-subnav a:nth-child(3){transition-delay:0.06s}
.sol-has-sub:hover .sol-subnav a:nth-child(4),.sol-has-sub:focus-within .sol-subnav a:nth-child(4){transition-delay:0.09s}
.sol-has-sub:hover .sol-subnav a:nth-child(5),.sol-has-sub:focus-within .sol-subnav a:nth-child(5){transition-delay:0.12s}
.sol-has-sub:hover .sol-subnav a:nth-child(6),.sol-has-sub:focus-within .sol-subnav a:nth-child(6){transition-delay:0.15s}
.sol-has-sub:hover .sol-subnav a:nth-child(7),.sol-has-sub:focus-within .sol-subnav a:nth-child(7){transition-delay:0.18s}
.sol-has-sub:hover .sol-subnav a:nth-child(8),.sol-has-sub:focus-within .sol-subnav a:nth-child(8){transition-delay:0.21s}
.sol-has-sub:hover .sol-subnav a:nth-child(9),.sol-has-sub:focus-within .sol-subnav a:nth-child(9){transition-delay:0.24s}
.sol-has-sub:hover .sol-subnav a:nth-child(10),.sol-has-sub:focus-within .sol-subnav a:nth-child(10){transition-delay:0.27s}
.sol-has-sub:hover .sol-subnav a:nth-child(11),.sol-has-sub:focus-within .sol-subnav a:nth-child(11){transition-delay:0.3s}
.sol-subnav a:hover{color:var(--sol-lavender)}
@media (prefers-reduced-motion:reduce){.sol-subnav a{opacity:1;transform:none;transition:none}.sol-nav__ink{transition:none}.sol-brand:hover .sol-brandImg{transform:none}}

/* Brand. One image, taken from the Media Library. The source has a white ground,
   so multiply blends it away against the ivory header instead of showing a box. */
.sol-brandImg{display:block;width:auto;height:var(--sol-logo-h);object-fit:contain;mix-blend-mode:multiply;transition:transform var(--sol-dur) var(--sol-ease)}
.sol-brand:hover .sol-brandImg{transform:translateY(-2px) scale(1.02)}
.sol-brand:active .sol-brandImg{transform:translateY(0) scale(.99)}
@supports not (mix-blend-mode:multiply){.sol-brandImg{mix-blend-mode:normal}}
@media (prefers-reduced-motion:reduce){.sol-brand:hover .sol-brandImg{transform:none}}

/* The brand can never grow into the tools, whatever the logo height resolves to */
.sol-brand{min-width:0;max-width:52%}
.sol-brandImg{max-width:100%;max-height:calc(var(--sol-header-h) - 18px)}
.sol-tools{flex:0 0 auto}
@media (max-width:1080px){.sol-brand{max-width:58%}}
@media (max-width:620px){.sol-brand{max-width:60%}.sol-tools{gap:8px}.sol-tool{width:34px;height:34px}}

/* Mobile drawer: smaller type. The display face at 30px was overpowering the panel. */
@media (max-width:1080px){
  .sol-drawer__nav>li>a{font-size:21px;padding-block:15px}
  .sol-drawer__sub{padding-bottom:14px;gap:8px}
  .sol-drawer__sub a{font-size:13px}
}
@media (max-width:620px){
  .sol-drawer__nav>li>a{font-size:19px;padding-block:14px}
  .sol-drawer__sub a{font-size:12.5px}
}

/* Drawer links carry more weight. Cormorant is loaded at 300 to 400 only, so 400 is
   the real ceiling; anything heavier would be synthesised and look smeared. */
@media (max-width:1080px){
  .sol-drawer__nav>li>a{font-weight:400;color:var(--sol-accent);letter-spacing:-.005em}
  .sol-drawer__sub a{font-weight:400;color:var(--sol-muted)}
}
